pub const IQ1S_DELTA: f32 = 0.125;
pub const NGRID_IQ1S: usize = 2048;
pub static IQ1S_GRID: [u64; NGRID_IQ1S] = [
0xffffffffffffffff,
0xffffffffffffff01,
0xffffffffffff0000,
0xffffffffffff01ff,
0xffffffffffff0101,
0xffffffffff00ff00,
0xffffffffff000000,
0xffffffffff01ffff,
0xffffffffff01ff01,
0xffffffffff0101ff,
0xffffffffff010101,
0xffffffff00ff0000,
0xffffffff0000ff00,
0xffffffff000000ff,
0xffffffff00000001,
0xffffffff00010000,
0xffffffff01ffffff,
0xffffffff01ffff01,
0xffffffff01ff01ff,
0xffffffff01ff0101,
0xffffffff01000000,
0xffffffff0101ffff,
0xffffffff0101ff01,
0xffffffff010101ff,
0xffffffff01010101,
0xffffff00ffff00ff,
0xffffff00ffff0000,
0xffffff00ff00ff00,
0xffffff00ff0000ff,
0xffffff00ff000001,
0xffffff00ff000100,
0xffffff00ff000101,
0xffffff00ff010000,
0xffffff0000ffff00,
0xffffff0000ff0001,
0xffffff0000ff0100,
0xffffff000000ff01,
0xffffff0000000000,
0xffffff0000000101,
0xffffff000001ff00,
0xffffff00000100ff,
0xffffff0000010001,
0xffffff00000101ff,
0xffffff0001ff0000,
0xffffff000100ff00,
0xffffff00010000ff,
0xffffff0001000001,
0xffffff0001010000,
0xffffff01ffffffff,
0xffffff01ffffff01,
0xffffff01ffff01ff,
0xffffff01ffff0101,
0xffffff01ff000000,
0xffffff01ff01ffff,
0xffffff01ff01ff01,
0xffffff01ff0101ff,
0xffffff01ff010101,
0xffffff0100ff0000,
0xffffff010000ff00,
0xffffff0100000100,
0xffffff01000100ff,
0xffffff0100010100,
0xffffff0101ffffff,
0xffffff0101ffff01,
0xffffff0101ff01ff,
0xffffff0101ff0101,
0xffffff010100ff00,
0xffffff0101000000,
0xffffff0101000100,
0xffffff010101ffff,
0xffffff010101ff01,
0xffffff01010101ff,
0xffffff0101010101,
0xffff00ffff00ff00,
0xffff00ffff0000ff,
0xffff00ffff000001,
0xffff00ffff010000,
0xffff00ff00ffff00,
0xffff00ff00ff0100,
0xffff00ff00000000,
0xffff00ff00000101,
0xffff00ff000100ff,
0xffff00ff00010000,
0xffff00ff0100ff00,
0xffff00ff01000100,
0xffff00ff01010000,
0xffff0000ffffff00,
0xffff0000ffff00ff,
0xffff0000ffff0000,
0xffff0000ffff0001,
0xffff0000ff000000,
0xffff0000ff0001ff,
0xffff0000ff000101,
0xffff0000ff010100,
0xffff000000ffffff,
0xffff000000ff0000,
0xffff000000ff0101,
0xffff00000000ffff,
0xffff00000000ff00,
0xffff0000000000ff,
0xffff000000000000,
0xffff000000000001,
0xffff000000000100,
0xffff00000001ffff,
0xffff00000001ff01,
0xffff000000010000,
0xffff0000000101ff,
0xffff000000010101,
0xffff000001ffff00,
0xffff00000100ff00,
0xffff000001000000,
0xffff0000010001ff,
0xffff000001000101,
0xffff00000101ff00,
0xffff0000010100ff,
0xffff000001010000,
0xffff000001010001,
0xffff000001010100,
0xffff0001ff0000ff,
0xffff0001ff000100,
0xffff000100ffff00,
0xffff000100ff00ff,
0xffff00010000ffff,
0xffff00010000ff01,
0xffff000100000000,
0xffff0001000001ff,
0xffff00010001ffff,
0xffff00010001ff00,
0xffff000100010001,
0xffff000100010100,
0xffff000101ff0000,
0xffff00010100ff00,
0xffff0001010000ff,
0xffff000101000100,
0xffff01ffffffffff,
0xffff01ffffffff01,
0xffff01ffffff01ff,
0xffff01ffffff0101,
0xffff01ffff000000,
0xffff01ffff01ffff,
0xffff01ffff01ff01,
0xffff01ffff0101ff,
0xffff01ffff010101,
0xffff01ff00ff0000,
0xffff01ff0000ff00,
0xffff01ff00000001,
0xffff01ff00010000,
0xffff01ff01ffffff,
0xffff01ff01ffff01,
0xffff01ff01ff01ff,
0xffff01ff01ff0101,
0xffff01ff01000000,
0xffff01ff0101ffff,
0xffff01ff0101ff01,
0xffff01ff010101ff,
0xffff01ff01010101,
0xffff0100ffff0000,
0xffff0100ff00ff00,
0xffff0100ff0000ff,
0xffff0100ff000100,
0xffff0100ff0100ff,
0xffff0100ff010000,
0xffff010000ffff00,
0xffff01000000ffff,
0xffff01000000ff00,
0xffff010000000000,
0xffff01000001ff00,
0xffff0100000100ff,
0xffff010000010100,
0xffff01000100ff00,
0xffff0100010000ff,
0xffff010001000001,
0xffff010001000100,
0xffff010001010000,
0xffff0101ffffffff,
0xffff0101ffffff01,
0xffff0101ffff01ff,
0xffff0101ffff0101,
0xffff0101ff000000,
0xffff0101ff01ffff,
0xffff0101ff01ff01,
0xffff0101ff0101ff,
0xffff0101ff010101,
0xffff010100ff0000,
0xffff01010000ff00,
0xffff010100000100,
0xffff01010001ff00,
0xffff010100010000,
0xffff010101ffffff,
0xffff010101ffff01,
0xffff010101ff0000,
0xffff010101ff01ff,
0xffff010101ff0101,
0xffff010101000000,
0xffff01010101ffff,
0xffff01010101ff01,
0xffff0101010101ff,
0xffff010101010101,
0xff00ffffff00ffff,
0xff00ffffff00ff00,
0xff00ffffff0000ff,
0xff00ffffff000100,
0xff00ffffff0100ff,
0xff00ffffff010000,
0xff00ffff00ffff00,
0xff00ffff00ff00ff,
0xff00ffff0000ffff,
0xff00ffff00000000,
0xff00ffff000001ff,
0xff00ffff0001ff00,
0xff00ffff000100ff,
0xff00ffff00010000,
0xff00ffff00010100,
0xff00ffff0100ff00,
0xff00ffff010000ff,
0xff00ffff01000001,
0xff00ffff0101ff00,
0xff00ffff01010000,
0xff00ff00ffffff00,
0xff00ff00ffff00ff,
0xff00ff00ffff0001,
0xff00ff00ffff0100,
0xff00ff00ff00ffff,
0xff00ff00ff00ff01,
0xff00ff00ff000000,
0xff00ff00ff0001ff,
0xff00ff00ff01ff00,
0xff00ff00ff0100ff,
0xff00ff00ff010100,
0xff00ff0000ff0000,
0xff00ff0000ff0101,
0xff00ff000000ffff,
0xff00ff000000ff00,
0xff00ff000000ff01,
0xff00ff00000000ff,
0xff00ff0000000000,
0xff00ff0000000001,
0xff00ff0000000100,
0xff00ff000001ffff,
0xff00ff0000010000,
0xff00ff0001ff00ff,
0xff00ff000100ff01,
0xff00ff0001000000,
0xff00ff000101ff00,
0xff00ff00010100ff,
0xff00ff01ff00ff00,
0xff00ff01ff0000ff,
0xff00ff01ff000001,
0xff00ff01ff010000,
0xff00ff0100ffffff,
0xff00ff0100ff0001,
0xff00ff0100ff0100,
0xff00ff010000ff01,
0xff00ff0100000000,
0xff00ff01000001ff,
0xff00ff0100000101,
0xff00ff01000100ff,
0xff00ff0100010001,
0xff00ff0101ff0000,
0xff00ff010100ff00,
0xff00ff01010000ff,
0xff00ff0101000001,
0xff00ff0101010000,
0xff0000ffffffff00,
0xff0000ffffff0001,
0xff0000ffffff0100,
0xff0000ffff0000ff,
0xff0000ffff000000,
0xff0000ffff0001ff,
0xff0000ffff000100,
0xff0000ffff01ff00,
0xff0000ffff010001,
0xff0000ff00ffff00,
0xff0000ff00ff0000,
0xff0000ff00ff0001,
0xff0000ff00ff01ff,
0xff0000ff00ff0101,
0xff0000ff0000ff00,
0xff0000ff000000ff,
0xff0000ff00000000,
0xff0000ff00000001,
0xff0000ff00000100,
0xff0000ff0001ff01,
0xff0000ff00010000,
0xff0000ff000101ff,
0xff0000ff01ff00ff,
0xff0000ff01ff0100,
0xff0000ff0100ffff,
0xff0000ff010000ff,
0xff0000ff01000000,
0xff0000ff010001ff,
0xff0000ff01000100,
0xff0000ff01000101,
0xff0000ff0101ff00,
0xff0000ff010100ff,
0xff0000ff01010000,
0xff0000ff01010100,
0xff000000ffffff01,
0xff000000ffff0000,
0xff000000ffff0101,
0xff000000ff00ff00,
0xff000000ff0000ff,
0xff000000ff000000,
0xff000000ff000001,
0xff000000ff000100,
0xff000000ff01ffff,
0xff000000ff01ff01,
0xff000000ff010000,
0xff000000ff0101ff,
0xff000000ff010101,
0xff00000000ffff00,
0xff00000000ff00ff,
0xff00000000ff0000,
0xff00000000ff0001,
0xff0000000000ff00,
0xff0000000000ff01,
0xff000000000000ff,
0xff00000000000000,
0xff00000000000001,
0xff00000000000100,
0xff00000000000101,
0xff0000000001ff00,
0xff000000000100ff,
0xff00000000010000,
0xff00000000010001,
0xff00000000010100,
0xff00000001ffffff,
0xff00000001ffff01,
0xff00000001ff00ff,
0xff00000001ff0000,
0xff00000001ff01ff,
0xff00000001ff0101,
0xff0000000100ffff,
0xff0000000100ff00,
0xff000000010000ff,
0xff00000001000000,
0xff00000001000001,
0xff00000001000100,
0xff00000001000101,
0xff0000000101ffff,
0xff0000000101ff01,
0xff00000001010000,
0xff000001ffffff00,
0xff000001ffff00ff,
0xff000001ffff0000,
0xff000001ffff0001,
0xff000001ff000000,
0xff000001ff000001,
0xff000001ff0001ff,
0xff000001ff000101,
0xff000001ff01ff00,
0xff000001ff010001,
0xff00000100ffffff,
0xff00000100ffff01,
0xff00000100ff00ff,
0xff00000100ff0000,
0xff00000100ff01ff,
0xff00000100ff0101,
0xff0000010000ff00,
0xff00000100000000,
0xff00000100000001,
0xff000001000001ff,
0xff00000100000100,
0xff0000010001ff00,
0xff000001000100ff,
0xff00000100010000,
0xff000001000101ff,
0xff00000100010100,
0xff00000100010101,
0xff00000101ff0001,
0xff00000101ff0101,
0xff0000010100ff01,
0xff00000101000000,
0xff000001010100ff,
0xff00000101010100,
0xff0001ffff00ff00,
0xff0001ffff000001,
0xff0001ffff010000,
0xff0001ff00ffff00,
0xff0001ff00ff00ff,
0xff0001ff00ff0001,
0xff0001ff00ff0100,
0xff0001ff0000ffff,
0xff0001ff00000000,
0xff0001ff000001ff,
0xff0001ff00000101,
0xff0001ff0001ffff,
0xff0001ff0001ff00,
0xff0001ff000100ff,
0xff0001ff00010001,
0xff0001ff00010100,
0xff0001ff01ff0000,
0xff0001ff0100ff00,
0xff0001ff010000ff,
0xff0001ff01010000,
0xff000100ff00ffff,
0xff000100ff00ff01,
0xff000100ff000000,
0xff000100ff000101,
0xff000100ff01ff00,
0xff000100ff010000,
0xff00010000ffff01,
0xff00010000ff00ff,
0xff00010000ff0000,
0xff00010000ff01ff,
0xff0001000000ff00,
0xff000100000000ff,
0xff00010000000000,
0xff00010000000001,
0xff00010000000100,
0xff00010000000101,
0xff0001000001ffff,
0xff00010000010000,
0xff00010000010101,
0xff00010001ff0100,
0xff0001000100ff00,
0xff0001000100ff01,
0xff00010001000000,
0xff000100010001ff,
0xff0001000101ff00,
0xff00010001010001,
0xff00010001010100,
0xff000101ffff0100,
0xff000101ff000001,
0xff000101ff0100ff,
0xff000101ff010001,
0xff00010100ff00ff,
0xff00010100ff0001,
0xff00010100ff0100,
0xff0001010000ffff,
0xff0001010000ff01,
0xff00010100000000,
0xff000101000001ff,
0xff0001010001ff00,
0xff00010100010001,
0xff00010100010100,
0xff00010101ff0000,
0xff0001010100ff00,
0xff00010101000001,
0xff00010101000101,
0xff01ffffffffffff,
0xff01ffffffffff01,
0xff01ffffffff01ff,
0xff01ffffffff0101,
0xff01ffffff000000,
0xff01ffffff01ffff,
0xff01ffffff01ff01,
0xff01ffffff010000,
0xff01ffffff0101ff,
0xff01ffffff010101,
0xff01ffff00ff0000,
0xff01ffff0000ff00,
0xff01ffff00000100,
0xff01ffff0001ff00,
0xff01ffff00010000,
0xff01ffff01ffffff,
0xff01ffff01ffff01,
0xff01ffff01ff01ff,
0xff01ffff01ff0101,
0xff01ffff01000000,
0xff01ffff0101ffff,
0xff01ffff0101ff01,
0xff01ffff01010000,
0xff01ffff010101ff,
0xff01ffff01010101,
0xff01ff00ffff0000,
0xff01ff00ff00ff00,
0xff01ff00ff0000ff,
0xff01ff00ff000100,
0xff01ff00ff010000,
0xff01ff0000ffff01,
0xff01ff0000ff00ff,
0xff01ff0000ff0100,
0xff01ff0000000000,
0xff01ff00000001ff,
0xff01ff0000000101,
0xff01ff000001ff00,
0xff01ff00000100ff,
0xff01ff0000010000,
0xff01ff0000010001,
0xff01ff0001ff0000,
0xff01ff000100ffff,
0xff01ff0001000001,
0xff01ff0001000100,
0xff01ff0001010000,
0xff01ff01ffffff00,
0xff01ff01ffff01ff,
0xff01ff01ffff0101,
0xff01ff01ff00ff00,
0xff01ff01ff000000,
0xff01ff01ff01ffff,
0xff01ff01ff01ff01,
0xff01ff01ff0101ff,
0xff01ff01ff010101,
0xff01ff0100ff0000,
0xff01ff010000ff00,
0xff01ff0100000001,
0xff01ff0100000100,
0xff01ff0100010000,
0xff01ff0101ffff00,
0xff01ff0101ff01ff,
0xff01ff0101ff0101,
0xff01ff010100ff00,
0xff01ff0101000000,
0xff01ff010101ffff,
0xff01ff010101ff01,
0xff01ff01010101ff,
0xff01ff0101010101,
0xff0100ffffff0000,
0xff0100ffff0000ff,
0xff0100ffff000001,
0xff0100ffff000100,
0xff0100ffff010000,
0xff0100ff00ff00ff,
0xff0100ff00ff0000,
0xff0100ff00ff0001,
0xff0100ff00ff0100,
0xff0100ff0000ff01,
0xff0100ff00000000,
0xff0100ff000001ff,
0xff0100ff00000101,
0xff0100ff00010001,
0xff0100ff01ff0000,
0xff0100ff0100ff00,
0xff0100ff010000ff,
0xff0100ff01000100,
0xff0100ff0101ff00,
0xff0100ff01010000,
0xff010000ffff0100,
0xff010000ff000000,
0xff010000ff01ff00,
0xff010000ff010100,
0xff01000000ffffff,
0xff01000000ff0000,
0xff01000000ff01ff,
0xff0100000000ff00,
0xff010000000000ff,
0xff01000000000000,
0xff01000000000100,
0xff0100000001ff01,
0xff01000000010000,
0xff010000000101ff,
0xff01000001ff0100,
0xff0100000100ffff,
0xff010000010000ff,
0xff01000001000000,
0xff010000010001ff,
0xff01000001000101,
0xff0100000101ff00,
0xff010000010100ff,
0xff01000001010001,
0xff01000001010100,
0xff010001ffff0000,
0xff010001ff00ffff,
0xff010001ff00ff01,
0xff010001ff000100,
0xff010001ff010000,
0xff01000100ffff00,
0xff01000100ff0100,
0xff01000100000000,
0xff0100010001ffff,
0xff0100010001ff00,
0xff01000100010100,
0xff01000101ff00ff,
0xff01000101ff0001,
0xff0100010100ffff,
0xff01000101000101,
0xff0101ffffffffff,
0xff0101ffffffff01,
0xff0101ffffff01ff,
0xff0101ffffff0101,
0xff0101ffff000000,
0xff0101ffff01ffff,
0xff0101ffff01ff01,
0xff0101ffff0101ff,
0xff0101ffff010101,
0xff0101ff00ff0000,
0xff0101ff0000ff00,
0xff0101ff000000ff,
0xff0101ff00010000,
0xff0101ff01ffffff,
0xff0101ff01ffff01,
0xff0101ff01ff01ff,
0xff0101ff01ff0101,
0xff0101ff0101ffff,
0xff0101ff0101ff01,
0xff0101ff010101ff,
0xff0101ff01010101,
0xff010100ffff0100,
0xff010100ff00ff00,
0xff010100ff0000ff,
0xff010100ff000100,
0xff010100ff010000,
0xff01010000ff0001,
0xff01010000ff0100,
0xff0101000000ff01,
0xff01010000000000,
0xff0101000001ff00,
0xff010100000100ff,
0xff01010000010001,
0xff01010000010100,
0xff01010001ff0000,
0xff0101000100ffff,
0xff01010001000001,
0xff01010001000100,
0xff010100010100ff,
0xff01010001010000,
0xff010101ffffffff,
0xff010101ffffff01,
0xff010101ffff01ff,
0xff010101ffff0101,
0xff010101ff01ffff,
0xff010101ff01ff01,
0xff010101ff0101ff,
0xff010101ff010101,
0xff01010100ff0000,
0xff0101010000ff00,
0xff01010100000001,
0xff01010100000100,
0xff01010100010000,
0xff01010101ffffff,
0xff01010101ffff01,
0xff01010101ff01ff,
0xff01010101ff0101,
0xff01010101000000,
0xff0101010101ffff,
0xff0101010101ff01,
0xff010101010101ff,
0xff01010101010101,
0x00ffffffffff0000,
0x00ffffffff00ff00,
0x00ffffffff000001,
0x00ffffffff010000,
0x00ffffff00ff0100,
0x00ffffff0000ff01,
0x00ffffff00000000,
0x00ffffff000001ff,
0x00ffffff00000101,
0x00ffffff0001ff00,
0x00ffffff000100ff,
0x00ffffff00010001,
0x00ffffff010000ff,
0x00ffffff01000100,
0x00ffffff0101ff00,
0x00ffffff01010001,
0x00ffff00ffffffff,
0x00ffff00ffffff00,
0x00ffff00ffff00ff,
0x00ffff00ffff0001,
0x00ffff00ffff0100,
0x00ffff00ff00ff01,
0x00ffff00ff000000,
0x00ffff00ff000001,
0x00ffff00ff0001ff,
0x00ffff00ff000101,
0x00ffff00ff01ff00,
0x00ffff00ff010001,
0x00ffff00ff010100,
0x00ffff0000ff0000,
0x00ffff0000ff01ff,
0x00ffff0000ff0101,
0x00ffff000000ff00,
0x00ffff00000000ff,
0x00ffff0000000000,
0x00ffff0000000001,
0x00ffff0000000100,
0x00ffff0000000101,
0x00ffff0000010000,
0x00ffff00000101ff,
0x00ffff0000010101,
0x00ffff0001ffff00,
0x00ffff0001ff00ff,
0x00ffff0001ff0001,
0x00ffff000100ffff,
0x00ffff000100ff01,
0x00ffff0001000000,
0x00ffff000101ffff,
0x00ffff000101ff00,
0x00ffff000101ff01,
0x00ffff01ffff0000,
0x00ffff01ff00ff00,
0x00ffff01ff0000ff,
0x00ffff01ff000001,
0x00ffff01ff010000,
0x00ffff0100ffff00,
0x00ffff010000ff01,
0x00ffff0100000000,
0x00ffff0100000101,
0x00ffff01000100ff,
0x00ffff0100010100,
0x00ffff0101ff0100,
0x00ffff01010000ff,
0x00ffff0101010000,
0x00ff00ffffffff00,
0x00ff00ffff000000,
0x00ff00ffff000100,
0x00ff00ffff010100,
0x00ff00ff00ff0000,
0x00ff00ff00ff01ff,
0x00ff00ff00ff0101,
0x00ff00ff0000ff00,
0x00ff00ff000000ff,
0x00ff00ff00000000,
0x00ff00ff00000001,
0x00ff00ff0001ff00,
0x00ff00ff0001ff01,
0x00ff00ff00010000,
0x00ff00ff000101ff,
0x00ff00ff00010101,
0x00ff00ff01ffff00,
0x00ff00ff01ff0001,
0x00ff00ff01ff0100,
0x00ff00ff0100ffff,
0x00ff00ff0100ff01,
0x00ff00ff01000000,
0x00ff00ff0101ffff,
0x00ff00ff0101ff00,
0x00ff00ff01010100,
0x00ff0000ffffff00,
0x00ff0000ffffff01,
0x00ff0000ffff0000,
0x00ff0000ffff0101,
0x00ff0000ff00ff00,
0x00ff0000ff0000ff,
0x00ff0000ff000000,
0x00ff0000ff000001,
0x00ff0000ff000100,
0x00ff0000ff01ffff,
0x00ff0000ff010000,
0x00ff0000ff010101,
0x00ff000000ffff00,
0x00ff000000ff00ff,
0x00ff000000ff0000,
0x00ff000000ff0001,
0x00ff000000ff0100,
0x00ff00000000ffff,
0x00ff00000000ff00,
0x00ff0000000000ff,
0x00ff000000000000,
0x00ff000000000001,
0x00ff0000000001ff,
0x00ff000000000100,
0x00ff00000001ff00,
0x00ff0000000100ff,
0x00ff000000010000,
0x00ff000000010001,
0x00ff000000010100,
0x00ff000001ffff01,
0x00ff000001ff00ff,
0x00ff000001ff0000,
0x00ff000001ff01ff,
0x00ff00000100ff00,
0x00ff0000010000ff,
0x00ff000001000000,
0x00ff000001000001,
0x00ff000001000100,
0x00ff000001000101,
0x00ff000001010000,
0x00ff0000010101ff,
0x00ff000001010101,
0x00ff0001ffffff00,
0x00ff0001ffff0000,
0x00ff0001ffff0100,
0x00ff0001ff0000ff,
0x00ff0001ff000000,
0x00ff0001ff0001ff,
0x00ff0001ff000101,
0x00ff0001ff01ff00,
0x00ff0001ff0100ff,
0x00ff0001ff010100,
0x00ff000100ffffff,
0x00ff000100ffff01,
0x00ff000100ff0000,
0x00ff000100ff01ff,
0x00ff00010000ffff,
0x00ff00010000ff00,
0x00ff00010000ff01,
0x00ff000100000000,
0x00ff000100000001,
0x00ff000100000100,
0x00ff00010001ff01,
0x00ff000100010000,
0x00ff0001000101ff,
0x00ff000101ffff00,
0x00ff000101ff0000,
0x00ff000101ff0101,
0x00ff0001010000ff,
0x00ff000101000000,
0x00ff00010101ff00,
0x00ff0001010100ff,
0x00ff000101010001,
0x00ff01ffffff0000,
0x00ff01ffff00ff00,
0x00ff01ffff000000,
0x00ff01ffff000101,
0x00ff01ffff010000,
0x00ff01ff00ffff01,
0x00ff01ff00ff0100,
0x00ff01ff0000ffff,
0x00ff01ff00000000,
0x00ff01ff000001ff,
0x00ff01ff0001ff00,
0x00ff01ff000100ff,
0x00ff01ff00010001,
0x00ff01ff00010100,
0x00ff01ff01ff0000,
0x00ff01ff0100ff00,
0x00ff01ff010000ff,
0x00ff01ff01000001,
0x00ff01ff01000100,
0x00ff01ff01010000,
0x00ff0100ffffff00,
0x00ff0100ffff0000,
0x00ff0100ffff0001,
0x00ff0100ffff0101,
0x00ff0100ff00ffff,
0x00ff0100ff0000ff,
0x00ff0100ff000000,
0x00ff0100ff0001ff,
0x00ff0100ff01ff00,
0x00ff0100ff0100ff,
0x00ff0100ff010001,
0x00ff010000ffffff,
0x00ff010000ff0000,
0x00ff010000ff0101,
0x00ff01000000ff00,
0x00ff01000000ff01,
0x00ff0100000000ff,
0x00ff010000000000,
0x00ff010000000001,
0x00ff010000000100,
0x00ff01000001ffff,
0x00ff01000001ff01,
0x00ff010000010000,
0x00ff010000010001,
0x00ff010000010101,
0x00ff010001ff0001,
0x00ff010001ff0100,
0x00ff01000100ff01,
0x00ff010001000000,
0x00ff010001000001,
0x00ff0100010001ff,
0x00ff01000101ff00,
0x00ff0100010100ff,
0x00ff010001010001,
0x00ff010001010100,
0x00ff0101ff000001,
0x00ff010100ff00ff,
0x00ff010100ff0001,
0x00ff010100ff0100,
0x00ff010100000000,
0x00ff0101000001ff,
0x00ff010100000101,
0x00ff0101000100ff,
0x00ff010100010100,
0x00ff0101010000ff,
0x00ff010101010000,
0x0000ffffffffff00,
0x0000ffffffff00ff,
0x0000ffffffff0000,
0x0000ffffffff0001,
0x0000ffffffff0100,
0x0000ffffff00ff01,
0x0000ffffff000000,
0x0000ffffff000101,
0x0000ffffff01ff00,
0x0000ffffff0100ff,
0x0000ffffff010100,
0x0000ffff00ffffff,
0x0000ffff00ff0000,
0x0000ffff00ff01ff,
0x0000ffff0000ff00,
0x0000ffff000000ff,
0x0000ffff00000000,
0x0000ffff00000001,
0x0000ffff00000100,
0x0000ffff00010000,
0x0000ffff000101ff,
0x0000ffff01ff0001,
0x0000ffff01ff0100,
0x0000ffff01000000,
0x0000ffff010001ff,
0x0000ffff0101ffff,
0x0000ffff0101ff00,
0x0000ffff01010001,
0x0000ffff01010100,
0x0000ff00ffff0000,
0x0000ff00ffff01ff,
0x0000ff00ffff0100,
0x0000ff00ffff0101,
0x0000ff00ff00ff00,
0x0000ff00ff0000ff,
0x0000ff00ff000000,
0x0000ff00ff000001,
0x0000ff00ff0001ff,
0x0000ff00ff000100,
0x0000ff00ff01ffff,
0x0000ff00ff010000,
0x0000ff00ff010001,
0x0000ff00ff0101ff,
0x0000ff00ff010101,
0x0000ff0000ffff00,
0x0000ff0000ff00ff,
0x0000ff0000ff0000,
0x0000ff0000ff0001,
0x0000ff0000ff0100,
0x0000ff000000ffff,
0x0000ff000000ff00,
0x0000ff000000ff01,
0x0000ff00000000ff,
0x0000ff0000000000,
0x0000ff0000000001,
0x0000ff00000001ff,
0x0000ff0000000100,
0x0000ff0000000101,
0x0000ff000001ff00,
0x0000ff00000100ff,
0x0000ff0000010000,
0x0000ff0000010001,
0x0000ff0000010100,
0x0000ff0001ffff01,
0x0000ff0001ff0000,
0x0000ff000100ff00,
0x0000ff00010000ff,
0x0000ff0001000000,
0x0000ff0001000001,
0x0000ff0001000100,
0x0000ff000101ffff,
0x0000ff0001010000,
0x0000ff0001010101,
0x0000ff01ffffff00,
0x0000ff01ffff0001,
0x0000ff01ff00ff01,
0x0000ff01ff000000,
0x0000ff01ff000101,
0x0000ff01ff01ff00,
0x0000ff01ff0100ff,
0x0000ff0100ffff01,
0x0000ff0100ff0000,
0x0000ff0100ff0101,
0x0000ff010000ff00,
0x0000ff01000000ff,
0x0000ff0100000000,
0x0000ff0100000001,
0x0000ff0100000100,
0x0000ff010001ff01,
0x0000ff0100010000,
0x0000ff0101ff0000,
0x0000ff010100ffff,
0x0000ff010100ff01,
0x0000ff0101000000,
0x0000ff0101000100,
0x0000ff0101000101,
0x0000ff01010100ff,
0x000000ffffff00ff,
0x000000ffffff0000,
0x000000ffff00ff00,
0x000000ffff0000ff,
0x000000ffff000000,
0x000000ffff000001,
0x000000ffff0001ff,
0x000000ffff000100,
0x000000ffff01ff00,
0x000000ffff010000,
0x000000ffff0101ff,
0x000000ffff010101,
0x000000ff00ffff00,
0x000000ff00ff00ff,
0x000000ff00ff0000,
0x000000ff00ff0001,
0x000000ff00ff0100,
0x000000ff00ff0101,
0x000000ff0000ffff,
0x000000ff0000ff00,
0x000000ff000000ff,
0x000000ff00000000,
0x000000ff00000001,
0x000000ff000001ff,
0x000000ff00000100,
0x000000ff00000101,
0x000000ff0001ff00,
0x000000ff0001ff01,
0x000000ff000100ff,
0x000000ff00010000,
0x000000ff00010001,
0x000000ff00010100,
0x000000ff01ffffff,
0x000000ff01ff01ff,
0x000000ff01ff0101,
0x000000ff0100ff00,
0x000000ff010000ff,
0x000000ff01000000,
0x000000ff01000001,
0x000000ff01000100,
0x000000ff0101ff00,
0x000000ff010100ff,
0x000000ff01010000,
0x000000ff01010101,
0x00000000ffffff00,
0x00000000ffffff01,
0x00000000ffff00ff,
0x00000000ffff0000,
0x00000000ffff0001,
0x00000000ffff0100,
0x00000000ff00ffff,
0x00000000ff00ff00,
0x00000000ff00ff01,
0x00000000ff0000ff,
0x00000000ff000000,
0x00000000ff000001,
0x00000000ff000100,
0x00000000ff000101,
0x00000000ff01ff00,
0x00000000ff0100ff,
0x00000000ff010000,
0x00000000ff010001,
0x00000000ff010100,
0x0000000000ffffff,
0x0000000000ffff00,
0x0000000000ffff01,
0x0000000000ff00ff,
0x0000000000ff0000,
0x0000000000ff0001,
0x0000000000ff01ff,
0x0000000000ff0100,
0x000000000000ffff,
0x000000000000ff00,
0x000000000000ff01,
0x00000000000000ff,
0x0000000000000000,
0x0000000000000001,
0x00000000000001ff,
0x0000000000000100,
0x0000000000000101,
0x000000000001ffff,
0x000000000001ff00,
0x00000000000100ff,
0x0000000000010000,
0x0000000000010001,
0x00000000000101ff,
0x0000000000010100,
0x0000000000010101,
0x0000000001ffff00,
0x0000000001ff00ff,
0x0000000001ff0000,
0x0000000001ff0100,
0x0000000001ff0101,
0x000000000100ffff,
0x000000000100ff00,
0x00000000010000ff,
0x0000000001000000,
0x0000000001000001,
0x00000000010001ff,
0x0000000001000100,
0x000000000101ff00,
0x00000000010100ff,
0x0000000001010000,
0x0000000001010001,
0x0000000001010100,
0x00000001ffffffff,
0x00000001ffffff00,
0x00000001ffffff01,
0x00000001ffff00ff,
0x00000001ffff0001,
0x00000001ffff01ff,
0x00000001ffff0100,
0x00000001ff00ff00,
0x00000001ff0000ff,
0x00000001ff000000,
0x00000001ff0001ff,
0x00000001ff000100,
0x00000001ff01ffff,
0x00000001ff01ff00,
0x00000001ff01ff01,
0x00000001ff0100ff,
0x00000001ff010000,
0x00000001ff010001,
0x00000001ff0101ff,
0x00000001ff010100,
0x0000000100ffff00,
0x0000000100ff0000,
0x0000000100ff0001,
0x0000000100ff01ff,
0x0000000100ff0100,
0x0000000100ff0101,
0x000000010000ffff,
0x000000010000ff00,
0x000000010000ff01,
0x00000001000000ff,
0x0000000100000000,
0x0000000100000001,
0x00000001000001ff,
0x0000000100000100,
0x0000000100000101,
0x000000010001ff00,
0x00000001000100ff,
0x0000000100010000,
0x0000000100010100,
0x0000000101ffff01,
0x0000000101ff0000,
0x0000000101ff0001,
0x0000000101ff01ff,
0x0000000101ff0100,
0x0000000101ff0101,
0x000000010100ff00,
0x0000000101000000,
0x0000000101000101,
0x000000010101ff01,
0x0000000101010000,
0x0000000101010001,
0x00000001010101ff,
0x0000000101010100,
0x000001ffffff00ff,
0x000001ffffff0000,
0x000001ffffff0001,
0x000001ffffff0100,
0x000001ffff00ffff,
0x000001ffff000000,
0x000001ffff0001ff,
0x000001ffff01ff00,
0x000001ffff010101,
0x000001ff00ff0000,
0x000001ff00ff01ff,
0x000001ff00ff0101,
0x000001ff0000ff00,
0x000001ff000000ff,
0x000001ff00000000,
0x000001ff00000001,
0x000001ff000001ff,
0x000001ff00000100,
0x000001ff0001ffff,
0x000001ff0001ff01,
0x000001ff000100ff,
0x000001ff00010000,
0x000001ff01ffff01,
0x000001ff01ff0100,
0x000001ff0100ffff,
0x000001ff0100ff01,
0x000001ff01000000,
0x000001ff010001ff,
0x000001ff0101ff00,
0x000001ff01010100,
0x00000100ffffff00,
0x00000100ffffff01,
0x00000100ffff0000,
0x00000100ffff0101,
0x00000100ff00ff00,
0x00000100ff0000ff,
0x00000100ff000000,
0x00000100ff000001,
0x00000100ff000100,
0x00000100ff010000,
0x0000010000ffff00,
0x0000010000ff00ff,
0x0000010000ff0000,
0x0000010000ff0001,
0x0000010000ff0100,
0x000001000000ffff,
0x000001000000ff00,
0x000001000000ff01,
0x00000100000000ff,
0x0000010000000000,
0x0000010000000001,
0x00000100000001ff,
0x0000010000000100,
0x0000010000000101,
0x000001000001ff00,
0x00000100000100ff,
0x0000010000010000,
0x0000010000010001,
0x0000010000010100,
0x0000010001ffff00,
0x0000010001ff0000,
0x0000010001ff0100,
0x000001000100ff00,
0x00000100010000ff,
0x0000010001000000,
0x0000010001000001,
0x00000100010001ff,
0x0000010001000100,
0x0000010001010000,
0x00000101ffff00ff,
0x00000101ffff01ff,
0x00000101ff000000,
0x00000101ff000101,
0x00000101ff01ffff,
0x00000101ff010000,
0x00000101ff010001,
0x00000101ff010100,
0x0000010100ff0000,
0x0000010100ff01ff,
0x0000010100ff0100,
0x000001010000ff00,
0x0000010100000000,
0x0000010100000001,
0x00000101000001ff,
0x0000010100000100,
0x000001010001ff01,
0x0000010100010000,
0x00000101000101ff,
0x0000010100010101,
0x0000010101ffff00,
0x0000010101ff0101,
0x000001010100ff01,
0x0000010101000000,
0x0000010101000001,
0x00000101010001ff,
0x0000010101000101,
0x000001010101ff00,
0x0001ffffffff0000,
0x0001ffffff0000ff,
0x0001ffffff000001,
0x0001ffffff000100,
0x0001ffffff010000,
0x0001ffff00ff00ff,
0x0001ffff0000ffff,
0x0001ffff00000000,
0x0001ffff00000001,
0x0001ffff000001ff,
0x0001ffff00000101,
0x0001ffff0001ff00,
0x0001ffff000100ff,
0x0001ffff00010001,
0x0001ffff00010100,
0x0001ffff01ffff00,
0x0001ffff01000001,
0x0001ffff01010000,
0x0001ff00ffffff00,
0x0001ff00ffff00ff,
0x0001ff00ffff0001,
0x0001ff00ffff0100,
0x0001ff00ff00ff01,
0x0001ff00ff000000,
0x0001ff00ff01ff00,
0x0001ff00ff01ff01,
0x0001ff00ff010001,
0x0001ff00ff010100,
0x0001ff0000ff0000,
0x0001ff0000ff0100,
0x0001ff000000ff00,
0x0001ff0000000000,
0x0001ff0000000001,
0x0001ff0000000100,
0x0001ff0000010000,
0x0001ff0000010001,
0x0001ff0000010101,
0x0001ff0001ff00ff,
0x0001ff0001ff0101,
0x0001ff000100ff01,
0x0001ff0001000000,
0x0001ff000101ff00,
0x0001ff0001010001,
0x0001ff0001010100,
0x0001ff01ff00ff00,
0x0001ff01ff000001,
0x0001ff01ff000100,
0x0001ff0100ffffff,
0x0001ff0100ffff00,
0x0001ff0100ff0001,
0x0001ff0100000000,
0x0001ff0100000001,
0x0001ff01000001ff,
0x0001ff010001ffff,
0x0001ff0101ff0000,
0x0001ff010100ff00,
0x0001ff0101000001,
0x0001ff0101010000,
0x000100ffff00ff00,
0x000100ffff00ff01,
0x000100ffff000000,
0x000100ffff000001,
0x000100ffff000101,
0x000100ffff01ff00,
0x000100ffff010001,
0x000100ffff010100,
0x000100ff00ffffff,
0x000100ff00ffff01,
0x000100ff00ff0000,
0x000100ff00ff01ff,
0x000100ff00ff0101,
0x000100ff0000ff00,
0x000100ff000000ff,
0x000100ff00000000,
0x000100ff00000001,
0x000100ff00000100,
0x000100ff00000101,
0x000100ff0001ffff,
0x000100ff0001ff01,
0x000100ff00010000,
0x000100ff01ff00ff,
0x000100ff01ff0000,
0x000100ff01ff0100,
0x000100ff0100ffff,
0x000100ff0100ff01,
0x000100ff010000ff,
0x000100ff01000000,
0x000100ff01000001,
0x000100ff010001ff,
0x000100ff01000101,
0x000100ff0101ff00,
0x000100ff010100ff,
0x000100ff01010100,
0x00010000ffff0000,
0x00010000ffff01ff,
0x00010000ffff0101,
0x00010000ff00ff00,
0x00010000ff000000,
0x00010000ff000001,
0x00010000ff000100,
0x0001000000ff00ff,
0x0001000000ff0000,
0x0001000000ff0001,
0x0001000000ff0100,
0x000100000000ffff,
0x000100000000ff00,
0x00010000000000ff,
0x0001000000000000,
0x0001000000000001,
0x0001000000000100,
0x000100000001ff00,
0x00010000000100ff,
0x0001000000010000,
0x0001000000010001,
0x0001000000010100,
0x0001000001ff0001,
0x0001000001ff0100,
0x0001000001ff0101,
0x000100000100ff00,
0x0001000001000000,
0x0001000001000001,
0x0001000001000100,
0x0001000001000101,
0x000100000101ff01,
0x0001000001010000,
0x0001000001010001,
0x00010000010101ff,
0x00010001ffffff01,
0x00010001ffff0100,
0x00010001ff000000,
0x00010001ff01ffff,
0x00010001ff010001,
0x00010001ff0101ff,
0x00010001ff010100,
0x0001000100ffffff,
0x0001000100ff0000,
0x0001000100ff01ff,
0x0001000100ff0101,
0x000100010000ff00,
0x00010001000000ff,
0x0001000100000000,
0x0001000100000001,
0x00010001000001ff,
0x0001000100000101,
0x000100010001ffff,
0x0001000100010000,
0x00010001000101ff,
0x0001000101ffffff,
0x0001000101ffff01,
0x0001000101ff0000,
0x0001000101ff0101,
0x00010001010000ff,
0x0001000101000001,
0x00010001010001ff,
0x0001000101000100,
0x000100010101ffff,
0x00010001010100ff,
0x0001000101010001,
0x0001000101010101,
0x000101ffff000001,
0x000101ffff000100,
0x000101ffff010000,
0x000101ff00ffff00,
0x000101ff0000ff01,
0x000101ff00000000,
0x000101ff00000101,
0x000101ff0001ff00,
0x000101ff00010100,
0x000101ff01ff0000,
0x000101ff0100ff00,
0x000101ff010001ff,
0x000101ff01010001,
0x00010100ffffff00,
0x00010100ffff00ff,
0x00010100ff00ffff,
0x00010100ff000000,
0x00010100ff01ff00,
0x00010100ff0100ff,
0x00010100ff010001,
0x00010100ff010100,
0x0001010000ffffff,
0x0001010000ffff00,
0x0001010000ff0000,
0x0001010000ff0001,
0x0001010000ff01ff,
0x000101000000ff00,
0x00010100000000ff,
0x0001010000000000,
0x0001010000000001,
0x0001010000000100,
0x000101000001ffff,
0x0001010000010000,
0x0001010000010101,
0x0001010001ffff01,
0x0001010001ff00ff,
0x0001010001ff0101,
0x0001010001000000,
0x000101000101ff00,
0x00010100010100ff,
0x0001010001010000,
0x0001010001010100,
0x00010101ff00ff00,
0x00010101ff000001,
0x00010101ff0001ff,
0x0001010100ffff00,
0x0001010100ff00ff,
0x0001010100ff0100,
0x000101010000ffff,
0x0001010100000000,
0x00010101000001ff,
0x0001010100000101,
0x00010101000100ff,
0x0001010100010000,
0x0001010100010100,
0x0001010101ff0001,
0x00010101010000ff,
0x00010101010001ff,
0x0001010101000101,
0x0001010101010001,
0x01ffffffffffffff,
0x01ffffffffffff01,
0x01ffffffffff01ff,
0x01ffffffffff0101,
0x01ffffffff01ffff,
0x01ffffffff01ff01,
0x01ffffffff0101ff,
0x01ffffffff010101,
0x01ffffff00ff0000,
0x01ffffff0000ffff,
0x01ffffff0000ff00,
0x01ffffff000000ff,
0x01ffffff00000001,
0x01ffffff00000100,
0x01ffffff00010000,
0x01ffffff01ffffff,
0x01ffffff01ffff01,
0x01ffffff01ff01ff,
0x01ffffff01ff0101,
0x01ffffff01000000,
0x01ffffff0101ffff,
0x01ffffff0101ff01,
0x01ffffff010101ff,
0x01ffffff01010101,
0x01ffff00ffff0000,
0x01ffff00ff00ff00,
0x01ffff00ff0000ff,
0x01ffff00ff000001,
0x01ffff00ff000100,
0x01ffff00ff010000,
0x01ffff0000ffff00,
0x01ffff0000ff00ff,
0x01ffff0000ff0100,
0x01ffff000000ffff,
0x01ffff000000ff01,
0x01ffff0000000000,
0x01ffff0000000001,
0x01ffff00000001ff,
0x01ffff0000000100,
0x01ffff00000100ff,
0x01ffff0000010001,
0x01ffff0000010100,
0x01ffff0001ff0000,
0x01ffff0001ff0100,
0x01ffff00010000ff,
0x01ffff0001000001,
0x01ffff0001000100,
0x01ffff0001010000,
0x01ffff01ffffffff,
0x01ffff01ffffff01,
0x01ffff01ffff01ff,
0x01ffff01ffff0101,
0x01ffff01ff000000,
0x01ffff01ff01ffff,
0x01ffff01ff01ff01,
0x01ffff01ff0101ff,
0x01ffff01ff010101,
0x01ffff010000ff00,
0x01ffff01000000ff,
0x01ffff0100000100,
0x01ffff0100010000,
0x01ffff0101ffffff,
0x01ffff0101ffff01,
0x01ffff0101ff01ff,
0x01ffff0101ff0101,
0x01ffff0101000000,
0x01ffff010101ffff,
0x01ffff010101ff01,
0x01ffff01010101ff,
0x01ffff0101010101,
0x01ff00ffff0000ff,
0x01ff00ffff000100,
0x01ff00ff00ffff00,
0x01ff00ff00ff00ff,
0x01ff00ff0000ff00,
0x01ff00ff00000000,
0x01ff00ff00000101,
0x01ff00ff0001ff00,
0x01ff00ff000100ff,
0x01ff00ff00010100,
0x01ff00ff010000ff,
0x01ff00ff01000100,
0x01ff0000ffffff00,
0x01ff0000ffff0100,
0x01ff0000ff00ff01,
0x01ff0000ff000000,
0x01ff0000ff000101,
0x01ff0000ff010001,
0x01ff0000ff010100,
0x01ff000000ffffff,
0x01ff000000ffff00,
0x01ff000000ff0000,
0x01ff000000ff01ff,
0x01ff00000000ff00,
0x01ff0000000000ff,
0x01ff000000000000,
0x01ff000000000001,
0x01ff000000000100,
0x01ff000000000101,
0x01ff000000010000,
0x01ff000000010001,
0x01ff0000000101ff,
0x01ff000000010101,
0x01ff000001ffff00,
0x01ff000001ff00ff,
0x01ff000001ff0001,
0x01ff000001ff0100,
0x01ff00000100ffff,
0x01ff00000100ff01,
0x01ff000001000000,
0x01ff0000010001ff,
0x01ff000001010001,
0x01ff0001ff00ff00,
0x01ff0001ff000001,
0x01ff0001ff000100,
0x01ff0001ff010000,
0x01ff000100ffff00,
0x01ff000100ff00ff,
0x01ff000100ff0100,
0x01ff000100ff0101,
0x01ff00010000ffff,
0x01ff000100000000,
0x01ff000100000100,
0x01ff000100000101,
0x01ff00010001ff00,
0x01ff000100010001,
0x01ff000100010101,
0x01ff000101ff0000,
0x01ff00010100ff00,
0x01ff000101000101,
0x01ff0001010100ff,
0x01ff01ffffffffff,
0x01ff01ffffffff01,
0x01ff01ffffff01ff,
0x01ff01ffffff0101,
0x01ff01ffff000000,
0x01ff01ffff01ffff,
0x01ff01ffff01ff01,
0x01ff01ffff0101ff,
0x01ff01ffff010101,
0x01ff01ff00ffff00,
0x01ff01ff00ff0000,
0x01ff01ff0000ff00,
0x01ff01ff000000ff,
0x01ff01ff00000100,
0x01ff01ff00010000,
0x01ff01ff00010100,
0x01ff01ff01ffffff,
0x01ff01ff01ffff01,
0x01ff01ff01ff01ff,
0x01ff01ff01ff0101,
0x01ff01ff01000000,
0x01ff01ff0101ffff,
0x01ff01ff0101ff01,
0x01ff01ff010101ff,
0x01ff01ff01010101,
0x01ff0100ffff0000,
0x01ff0100ffff0001,
0x01ff0100ff00ff00,
0x01ff0100ff0000ff,
0x01ff0100ff000001,
0x01ff0100ff010000,
0x01ff010000ffff00,
0x01ff010000ff00ff,
0x01ff010000ff0001,
0x01ff010000ff0100,
0x01ff01000000ffff,
0x01ff01000000ff01,
0x01ff010000000000,
0x01ff010000000101,
0x01ff01000001ff00,
0x01ff0100000100ff,
0x01ff010001ff0000,
0x01ff010001000001,
0x01ff010001000100,
0x01ff010001010000,
0x01ff0101ffffffff,
0x01ff0101ffffff01,
0x01ff0101ffff01ff,
0x01ff0101ffff0101,
0x01ff0101ff000000,
0x01ff0101ff01ffff,
0x01ff0101ff01ff01,
0x01ff0101ff0101ff,
0x01ff0101ff010101,
0x01ff010100ff0000,
0x01ff01010000ff00,
0x01ff0101000000ff,
0x01ff010100000001,
0x01ff010101ffffff,
0x01ff010101ffff01,
0x01ff010101ff01ff,
0x01ff010101ff0101,
0x01ff010101000000,
0x01ff01010101ffff,
0x01ff01010101ff01,
0x01ff0101010101ff,
0x01ff010101010101,
0x0100ffffffff0000,
0x0100ffffff00ff00,
0x0100ffffff000001,
0x0100ffffff0001ff,
0x0100ffffff000100,
0x0100ffffff010000,
0x0100ffff00ffff00,
0x0100ffff00ff0001,
0x0100ffff00ff0100,
0x0100ffff00000000,
0x0100ffff000001ff,
0x0100ffff00000101,
0x0100ffff00010100,
0x0100ffff00010101,
0x0100ffff01ff0000,
0x0100ffff0100ff00,
0x0100ffff010000ff,
0x0100ffff01000001,
0x0100ffff01000100,
0x0100ffff01010000,
0x0100ff00ffffff00,
0x0100ff00ffff00ff,
0x0100ff00ffff0001,
0x0100ff00ffff0100,
0x0100ff00ff00ffff,
0x0100ff00ff000000,
0x0100ff00ff0001ff,
0x0100ff00ff000101,
0x0100ff00ff01ff00,
0x0100ff00ff0100ff,
0x0100ff00ff010001,
0x0100ff00ff010100,
0x0100ff0000ffffff,
0x0100ff0000ff0000,
0x0100ff000000ffff,
0x0100ff000000ff00,
0x0100ff00000000ff,
0x0100ff0000000000,
0x0100ff0000000001,
0x0100ff0000000100,
0x0100ff000001ff01,
0x0100ff0000010000,
0x0100ff0001ff00ff,
0x0100ff0001ff0001,
0x0100ff000100ff01,
0x0100ff0001000000,
0x0100ff00010001ff,
0x0100ff000101ff00,
0x0100ff00010100ff,
0x0100ff0001010001,
0x0100ff0001010100,
0x0100ff01ffff0000,
0x0100ff01ff00ff00,
0x0100ff01ff0000ff,
0x0100ff01ff000100,
0x0100ff01ff010000,
0x0100ff0100ff00ff,
0x0100ff0100ff0001,
0x0100ff0100ff0100,
0x0100ff010000ffff,
0x0100ff010000ff01,
0x0100ff0100000000,
0x0100ff01000001ff,
0x0100ff0100010001,
0x0100ff0100010100,
0x0100ff0101ff0000,
0x0100ff01010000ff,
0x0100ff0101000001,
0x0100ff0101010100,
0x010000ffffffff00,
0x010000ffffff00ff,
0x010000ffffff0001,
0x010000ffff00ffff,
0x010000ffff000000,
0x010000ffff0001ff,
0x010000ffff010001,
0x010000ff00ffffff,
0x010000ff00ff0101,
0x010000ff0000ff00,
0x010000ff000000ff,
0x010000ff00000000,
0x010000ff00000001,
0x010000ff000001ff,
0x010000ff00000100,
0x010000ff0001ffff,
0x010000ff0001ff00,
0x010000ff0001ff01,
0x010000ff00010000,
0x010000ff01ff00ff,
0x010000ff01ff0001,
0x010000ff0100ff01,
0x010000ff010000ff,
0x010000ff01000000,
0x010000ff010001ff,
0x010000ff0101ff00,
0x010000ff01010100,
0x01000000ffffffff,
0x01000000ffff0000,
0x01000000ffff01ff,
0x01000000ffff0101,
0x01000000ff00ffff,
0x01000000ff00ff00,
0x01000000ff0000ff,
0x01000000ff000000,
0x01000000ff000001,
0x01000000ff000100,
0x01000000ff01ff00,
0x01000000ff010000,
0x01000000ff010100,
0x01000000ff010101,
0x0100000000ffff00,
0x0100000000ff00ff,
0x0100000000ff0000,
0x0100000000ff0001,
0x0100000000ff0100,
0x010000000000ffff,
0x010000000000ff00,
0x010000000000ff01,
0x01000000000000ff,
0x0100000000000000,
0x0100000000000001,
0x01000000000001ff,
0x0100000000000100,
0x0100000000000101,
0x010000000001ff00,
0x01000000000100ff,
0x0100000000010000,
0x0100000000010001,
0x0100000000010100,
0x0100000001ffff00,
0x0100000001ff0000,
0x0100000001ff01ff,
0x010000000100ff00,
0x010000000100ff01,
0x01000000010000ff,
0x0100000001000000,
0x0100000001000001,
0x0100000001000100,
0x0100000001000101,
0x010000000101ffff,
0x010000000101ff01,
0x0100000001010000,
0x01000000010101ff,
0x0100000001010101,
0x01000001ffffff00,
0x01000001ffff00ff,
0x01000001ff00ffff,
0x01000001ff000000,
0x01000001ff000100,
0x01000001ff01ffff,
0x01000001ff010001,
0x01000001ff010100,
0x0100000100ff0000,
0x0100000100ff01ff,
0x0100000100ff0100,
0x010000010000ff00,
0x010000010000ff01,
0x0100000100000000,
0x0100000100000001,
0x0100000100000100,
0x0100000100010000,
0x01000001000101ff,
0x0100000101ffff01,
0x0100000101ff00ff,
0x0100000101ff0100,
0x0100000101ff0101,
0x010000010100ff01,
0x01000001010000ff,
0x0100000101000000,
0x01000001010100ff,
0x0100000101010001,
0x0100000101010100,
0x010001ffffff0000,
0x010001ffff000001,
0x010001ffff000100,
0x010001ffff010000,
0x010001ff00ffff00,
0x010001ff00ff0001,
0x010001ff0000ffff,
0x010001ff0000ff01,
0x010001ff00000000,
0x010001ff00000001,
0x010001ff00000101,
0x010001ff000100ff,
0x010001ff00010000,
0x010001ff01ff0000,
0x010001ff0100ff00,
0x010001ff01000001,
0x010001ff01000100,
0x010001ff01010000,
0x01000100ffff00ff,
0x01000100ffff0001,
0x01000100ffff0100,
0x01000100ff00ffff,
0x01000100ff00ff01,
0x01000100ff000000,
0x01000100ff0001ff,
0x01000100ff000101,
0x01000100ff01ffff,
0x01000100ff01ff00,
0x01000100ff0100ff,
0x01000100ff010001,
0x0100010000ffffff,
0x0100010000ffff01,
0x0100010000ff0000,
0x0100010000ff01ff,
0x0100010000ff0101,
0x010001000000ff00,
0x01000100000000ff,
0x0100010000000000,
0x0100010000000001,
0x0100010000000100,
0x010001000001ff01,
0x0100010000010000,
0x0100010000010001,
0x0100010000010101,
0x0100010001ffff00,
0x0100010001ff00ff,
0x010001000100ffff,
0x010001000100ff01,
0x0100010001000000,
0x0100010001000101,
0x010001000101ff00,
0x0100010001010001,
0x01000101ffff0000,
0x01000101ff000000,
0x01000101ff010000,
0x0100010100ff00ff,
0x0100010100ff0001,
0x0100010100ff0100,
0x010001010000ffff,
0x0100010100000000,
0x01000101000001ff,
0x010001010001ff00,
0x0100010101ff0000,
0x010001010100ff00,
0x01000101010000ff,
0x0100010101000000,
0x0100010101000001,
0x0101ffffffffffff,
0x0101ffffffffff01,
0x0101ffffffff01ff,
0x0101ffffffff0101,
0x0101ffffff000000,
0x0101ffffff01ffff,
0x0101ffffff01ff01,
0x0101ffffff0101ff,
0x0101ffffff010101,
0x0101ffff00ff0000,
0x0101ffff0000ff00,
0x0101ffff000000ff,
0x0101ffff00000001,
0x0101ffff00000100,
0x0101ffff01ffffff,
0x0101ffff01ffff01,
0x0101ffff01ff01ff,
0x0101ffff01ff0101,
0x0101ffff01000000,
0x0101ffff0101ffff,
0x0101ffff0101ff01,
0x0101ffff010101ff,
0x0101ffff01010101,
0x0101ff00ffff0000,
0x0101ff00ffff0100,
0x0101ff00ff00ff00,
0x0101ff00ff0000ff,
0x0101ff00ff000001,
0x0101ff00ff000100,
0x0101ff00ff000101,
0x0101ff0000ff0001,
0x0101ff0000ff0100,
0x0101ff000000ff00,
0x0101ff0000000000,
0x0101ff00000001ff,
0x0101ff0000000101,
0x0101ff000001ff00,
0x0101ff00000100ff,
0x0101ff0001ff0000,
0x0101ff000100ffff,
0x0101ff000100ff01,
0x0101ff0001000001,
0x0101ff0001000100,
0x0101ff01ffffff01,
0x0101ff01ffff01ff,
0x0101ff01ffff0101,
0x0101ff01ff00ffff,
0x0101ff01ff000100,
0x0101ff01ff01ff01,
0x0101ff01ff0101ff,
0x0101ff01ff010101,
0x0101ff0100ff0000,
0x0101ff010000ff00,
0x0101ff0100000001,
0x0101ff0100000100,
0x0101ff0100010000,
0x0101ff0101ffffff,
0x0101ff0101ffff01,
0x0101ff0101ff01ff,
0x0101ff0101ff0101,
0x0101ff0101000000,
0x0101ff010101ffff,
0x0101ff010101ff01,
0x0101ff01010101ff,
0x0101ff0101010101,
0x010100ffff000100,
0x010100ffff010000,
0x010100ff00ffff00,
0x010100ff00ff00ff,
0x010100ff0000ffff,
0x010100ff000000ff,
0x010100ff00000000,
0x010100ff000001ff,
0x010100ff00000101,
0x010100ff0001ff00,
0x010100ff00010000,
0x010100ff00010001,
0x010100ff000101ff,
0x010100ff00010100,
0x010100ff01ff0000,
0x01010000ffff0001,
0x01010000ffff0100,
0x01010000ff00ffff,
0x01010000ff00ff01,
0x01010000ff000000,
0x01010000ff0001ff,
0x01010000ff010001,
0x01010000ff010100,
0x0101000000ffff01,
0x0101000000ff0000,
0x010100000000ff00,
0x01010000000000ff,
0x0101000000000000,
0x0101000000000001,
0x0101000000000100,
0x0101000000010000,
0x0101000000010101,
0x0101000001ffff00,
0x0101000001ff00ff,
0x0101000001ff0000,
0x0101000001ff0001,
0x0101000001ff0100,
0x010100000100ff01,
0x0101000001000000,
0x01010000010001ff,
0x01010001ffff0000,
0x01010001ff00ff00,
0x01010001ff000001,
0x01010001ff000101,
0x01010001ff01ff00,
0x01010001ff010000,
0x0101000100ff00ff,
0x0101000100ff0001,
0x0101000100ff0101,
0x010100010000ff01,
0x0101000100000000,
0x0101000100000001,
0x01010001000001ff,
0x010100010001ffff,
0x010100010001ff01,
0x0101000101ff0001,
0x010100010100ffff,
0x0101000101000000,
0x0101000101000001,
0x0101000101000100,
0x010100010101ff00,
0x01010001010100ff,
0x0101000101010001,
0x010101ffffffffff,
0x010101ffffffff01,
0x010101ffffff01ff,
0x010101ffffff0101,
0x010101ffff01ffff,
0x010101ffff01ff01,
0x010101ffff0101ff,
0x010101ffff010101,
0x010101ff0000ff00,
0x010101ff000000ff,
0x010101ff00000001,
0x010101ff00000100,
0x010101ff01ffffff,
0x010101ff01ffff01,
0x010101ff01ff01ff,
0x010101ff01ff0101,
0x010101ff01000000,
0x010101ff0101ffff,
0x010101ff0101ff01,
0x010101ff010101ff,
0x010101ff01010101,
0x01010100ffff0000,
0x01010100ff0000ff,
0x01010100ff000100,
0x01010100ff01ff00,
0x01010100ff010000,
0x0101010000ffff00,
0x010101000000ffff,
0x0101010000000000,
0x0101010000000101,
0x010101000001ff00,
0x0101010000010001,
0x0101010000010100,
0x010101000100ffff,
0x0101010001000001,
0x01010101ffffffff,
0x01010101ffffff01,
0x01010101ffff01ff,
0x01010101ffff0101,
0x01010101ff01ffff,
0x01010101ff01ff01,
0x01010101ff0101ff,
0x01010101ff010101,
0x010101010000ff00,
0x01010101000000ff,
0x0101010100000001,
0x0101010101ffffff,
0x0101010101ffff01,
0x0101010101ff01ff,
0x0101010101ff0101,
0x0101010101000000,
0x010101010101ffff,
0x010101010101ff01,
0x01010101010101ff,
0x0101010101010101,
];
pub fn dequantize_iq1_s(data: &[u8], out: &mut [f32]) {
const BLOCK_BYTES: usize = 50;
const QK_K: usize = 256;
assert!(
data.len().is_multiple_of(BLOCK_BYTES),
"iq1_s data length {} not a multiple of block size {BLOCK_BYTES}",
data.len()
);
let n_blocks = data.len() / BLOCK_BYTES;
assert_eq!(
out.len(),
n_blocks * QK_K,
"iq1_s dequantize output length {} must equal {n_blocks} * QK_K {QK_K}",
out.len()
);
for ib in 0..n_blocks {
let block = &data[ib * BLOCK_BYTES..(ib + 1) * BLOCK_BYTES];
let d = crate::gguf::f16_to_f32(u16::from_le_bytes([block[0], block[1]]));
let qs = &block[2..2 + 32];
let qh_bytes = &block[2 + 32..2 + 32 + 16];
let out_offset = ib * QK_K;
for ib32 in 0..8 {
let qh = u16::from_le_bytes([qh_bytes[ib32 * 2], qh_bytes[ib32 * 2 + 1]]);
let scale_bits = ((qh >> 12) & 7) as f32;
let dl = d * (2.0 * scale_bits + 1.0);
let delta = if qh & 0x8000 != 0 {
-IQ1S_DELTA
} else {
IQ1S_DELTA
};
for l in 0..4 {
let qs_byte = qs[ib32 * 4 + l];
let idx = qs_byte as usize | (((qh >> (3 * l)) & 7) as usize) << 8;
let grid = IQ1S_GRID[idx];
for j in 0..8 {
let g_byte = ((grid >> (j * 8)) & 0xFF) as u8;
let g_int = g_byte as i8; let out_idx = out_offset + ib32 * 32 + l * 8 + j;
out[out_idx] = dl * (g_int as f32 + delta);
}
}
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn iq1s_grid_size() {
assert_eq!(IQ1S_GRID.len(), 2048);
}
#[test]
fn dequantize_iq1_s_matches_block_size() {
let data = vec![0u8; 50];
let mut out = vec![0.0_f32; 256];
dequantize_iq1_s(&data, &mut out);
for (i, v) in out.iter().enumerate() {
assert!(v.is_finite(), "out[{i}] = {v} must be finite");
}
}
#[test]
fn dequantize_iq1_s_two_blocks() {
let data = vec![0u8; 100];
let mut out = vec![0.0_f32; 512];
dequantize_iq1_s(&data, &mut out);
assert_eq!(out.len(), 512);
}
}