#ifdef STREAMVBYTE_SSSE3
static const uint8_t shuf_lut[64*16] = {
0x00, 0x04, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x06, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x06, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF,
0x00, 0x04, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF,
0x00, 0x04, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF,
0x00, 0x04, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF,
0x00, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF,
0x00, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF, 0xFF,
0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF, 0xFF,
0x00, 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0xFF,
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F
};
static const uint8_t len_lut[256] = {
4, 5, 6, 7, 5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10,
5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10, 8, 9, 10, 11,
6, 7, 8, 9, 7, 8, 9, 10, 8, 9, 10, 11, 9, 10, 11, 12,
7, 8, 9, 10, 8, 9, 10, 11, 9, 10, 11, 12, 10, 11, 12, 13,
5, 6, 7, 8, 6, 7, 8, 9, 7, 8, 9, 10, 8, 9, 10, 11,
6, 7, 8, 9, 7, 8, 9, 10, 8, 9, 10, 11, 9, 10, 11, 12,
7, 8, 9, 10, 8, 9, 10, 11, 9, 10, 11, 12, 10, 11, 12, 13,
8, 9, 10, 11, 9, 10, 11, 12, 10, 11, 12, 13, 11, 12, 13, 14,
6, 7, 8, 9, 7, 8, 9, 10, 8, 9, 10, 11, 9, 10, 11, 12,
7, 8, 9, 10, 8, 9, 10, 11, 9, 10, 11, 12, 10, 11, 12, 13,
8, 9, 10, 11, 9, 10, 11, 12, 10, 11, 12, 13, 11, 12, 13, 14,
9, 10, 11, 12, 10, 11, 12, 13, 11, 12, 13, 14, 12, 13, 14, 15,
7, 8, 9, 10, 8, 9, 10, 11, 9, 10, 11, 12, 10, 11, 12, 13,
8, 9, 10, 11, 9, 10, 11, 12, 10, 11, 12, 13, 11, 12, 13, 14,
9, 10, 11, 12, 10, 11, 12, 13, 11, 12, 13, 14, 12, 13, 14, 15,
10, 11, 12, 13, 11, 12, 13, 14, 12, 13, 14, 15, 13, 14, 15, 16,
};
#else
static uint8_t encodingShuffleTable[256][16] = {
{ 0, 4, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 12, -1, -1, -1, -1, -1, -1 }, { 0, 4, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 12, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 12, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, -1, -1, -1, -1, -1 }, { 0, 4, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 10, 12, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 12, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, -1, -1, -1, -1 }, { 0, 4, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, -1, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, -1, -1, -1 }, { 0, 4, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, -1, -1, -1, -1, -1 }, { 0, 4, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 12, 13, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, -1, -1, -1, -1 }, { 0, 4, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, -1, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 10, 12, 13, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, -1, -1, -1 }, { 0, 4, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, -1, -1 }, { 0, 4, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, -1, -1, -1, -1 }, { 0, 4, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 14, -1, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, -1, -1, -1 }, { 0, 4, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, -1, -1 }, { 0, 4, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, -1 }, { 0, 4, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 12, 13, 14, 15, -1, -1, -1 }, { 0, 4, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 12, 13, 14, 15, -1, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, -1, -1 }, { 0, 4, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 4, 5, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1 }, { 0, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 13, 14, 15, -1, -1 }, { 0, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, -1 }, { 0, 4, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1, -1 }, { 0, 1, 4, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 1, 2, 4, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1 }, { 0, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, -1 }, { 0, 1, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 1, 2, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1 }, { 0, 1, 2, 3, 4, 5, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1 }, { 0, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1, -1 }, { 0, 1, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1 }, { 0, 1, 2, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1 }, { 0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, -1 }, { 0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1, -1 }, { 0, 1, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1, -1 }, { 0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, -1 }, { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }, };
#endif