uvg266/src/tables.c
2023-08-15 13:08:06 +03:00

2627 lines
216 KiB
C

//The file tables.c is automatically generated by generate_tables, do not edit.
#include "tables.h"
#if LCU_WIDTH!=64
#error "LCU_WIDTH!=64"
#endif
// 4 8 16 32 64
const int8_t uvg_g_convert_to_bit[LCU_WIDTH + 1] = {-1, -1, -1, -1, 0, -1, -1, -1, 1, -1, -1, -1, -1, -1, -1, -1, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 4};
// 0 1 2 4 8 16 32 64
const int8_t uvg_g_convert_to_log2[LCU_WIDTH + 1] = { -1, 0, 1, -1, 2, -1, -1, -1, 3, -1, -1, -1, -1, -1, -1, -1, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 6 };
const uint32_t uvg_g_log2_sbb_size[7 + 1][7 + 1][2] =
//===== luma/chroma =====
{
{ { 0,0 },{ 0,1 },{ 0,2 },{ 0,3 },{ 0,4 },{ 0,4 },{ 0,4 },{ 0,4 } },
{ { 1,0 },{ 1,1 },{ 1,1 },{ 1,3 },{ 1,3 },{ 1,3 },{ 1,3 },{ 1,3 } },
{ { 2,0 },{ 1,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } },
{ { 3,0 },{ 3,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } },
{ { 4,0 },{ 3,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } },
{ { 4,0 },{ 3,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } },
{ { 4,0 },{ 3,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } },
{ { 4,0 },{ 3,1 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 },{ 2,2 } }
};
static const uint32_t g_sig_last_scan_0_0[4] = {0, 2, 1, 3};
static const uint32_t g_sig_last_scan_1_0[4] = {0, 1, 2, 3};
static const uint32_t g_sig_last_scan_2_0[4] = {0, 2, 1, 3};
static const uint32_t g_sig_last_scan_0_1[16] = {0, 4, 1, 8, 5, 2, 12, 9, 6, 3, 13, 10, 7, 14, 11, 15};
static const uint32_t g_sig_last_scan_1_1[16] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
static const uint32_t g_sig_last_scan_2_1[16] = {0, 4, 8, 12, 1, 5, 9, 13, 2, 6, 10, 14, 3, 7, 11, 15};
static const uint32_t g_sig_last_scan_0_2[64] = {0, 8, 1, 16, 9, 2, 24, 17, 10, 3, 25, 18, 11, 26, 19, 27, 32, 40, 33, 48, 41, 34, 56, 49, 42, 35, 57, 50, 43, 58, 51, 59, 4, 12, 5, 20, 13, 6, 28, 21, 14, 7, 29, 22, 15, 30, 23, 31, 36, 44, 37, 52, 45, 38, 60, 53, 46, 39, 61, 54, 47, 62, 55, 63};
static const uint32_t g_sig_last_scan_1_2[64] = {0, 1, 2, 3, 8, 9, 10, 11, 16, 17, 18, 19, 24, 25, 26, 27, 4, 5, 6, 7, 12, 13, 14, 15, 20, 21, 22, 23, 28, 29, 30, 31, 32, 33, 34, 35, 40, 41, 42, 43, 48, 49, 50, 51, 56, 57, 58, 59, 36, 37, 38, 39, 44, 45, 46, 47, 52, 53, 54, 55, 60, 61, 62, 63};
static const uint32_t g_sig_last_scan_2_2[64] = {0, 8, 16, 24, 1, 9, 17, 25, 2, 10, 18, 26, 3, 11, 19, 27, 32, 40, 48, 56, 33, 41, 49, 57, 34, 42, 50, 58, 35, 43, 51, 59, 4, 12, 20, 28, 5, 13, 21, 29, 6, 14, 22, 30, 7, 15, 23, 31, 36, 44, 52, 60, 37, 45, 53, 61, 38, 46, 54, 62, 39, 47, 55, 63};
static const uint32_t g_sig_last_scan_0_3[256] = {0, 16, 1, 32, 17, 2, 48, 33, 18, 3, 49, 34, 19, 50, 35, 51, 64, 80, 65, 96, 81, 66, 112, 97, 82, 67, 113, 98, 83, 114, 99, 115, 4, 20, 5, 36, 21, 6, 52, 37, 22, 7, 53, 38, 23, 54, 39, 55, 128, 144, 129, 160, 145, 130, 176, 161, 146, 131, 177, 162, 147, 178, 163, 179, 68, 84, 69, 100, 85, 70, 116, 101, 86, 71, 117, 102, 87, 118, 103, 119, 8, 24, 9, 40, 25, 10, 56, 41, 26, 11, 57, 42, 27, 58, 43, 59, 192, 208, 193, 224,
209, 194, 240, 225, 210, 195, 241, 226, 211, 242, 227, 243, 132, 148, 133, 164, 149, 134, 180, 165, 150, 135, 181, 166, 151, 182, 167, 183, 72, 88, 73, 104, 89, 74, 120, 105, 90, 75, 121, 106, 91, 122, 107, 123, 12, 28, 13, 44, 29, 14, 60, 45, 30, 15, 61, 46, 31, 62, 47, 63, 196, 212, 197, 228, 213, 198, 244, 229, 214, 199, 245, 230, 215, 246, 231, 247, 136, 152, 137, 168, 153, 138, 184, 169, 154, 139, 185, 170, 155, 186, 171, 187, 76, 92, 77, 108, 93, 78, 124, 109,
94, 79, 125, 110, 95, 126, 111, 127, 200, 216, 201, 232, 217, 202, 248, 233, 218, 203, 249, 234, 219, 250, 235, 251, 140, 156, 141, 172, 157, 142, 188, 173, 158, 143, 189, 174, 159, 190, 175, 191, 204, 220, 205, 236, 221, 206, 252, 237, 222, 207, 253, 238, 223, 254, 239, 255};
static const uint32_t g_sig_last_scan_1_3[256] = {0, 1, 2, 3, 16, 17, 18, 19, 32, 33, 34, 35, 48, 49, 50, 51, 4, 5, 6, 7, 20, 21, 22, 23, 36, 37, 38, 39, 52, 53, 54, 55, 8, 9, 10, 11, 24, 25, 26, 27, 40, 41, 42, 43, 56, 57, 58, 59, 12, 13, 14, 15, 28, 29, 30, 31, 44, 45, 46, 47, 60, 61, 62, 63, 64, 65, 66, 67, 80, 81, 82, 83, 96, 97, 98, 99, 112, 113, 114, 115, 68, 69, 70, 71, 84, 85, 86, 87, 100, 101, 102, 103, 116, 117, 118, 119, 72, 73, 74, 75,
88, 89, 90, 91, 104, 105, 106, 107, 120, 121, 122, 123, 76, 77, 78, 79, 92, 93, 94, 95, 108, 109, 110, 111, 124, 125, 126, 127, 128, 129, 130, 131, 144, 145, 146, 147, 160, 161, 162, 163, 176, 177, 178, 179, 132, 133, 134, 135, 148, 149, 150, 151, 164, 165, 166, 167, 180, 181, 182, 183, 136, 137, 138, 139, 152, 153, 154, 155, 168, 169, 170, 171, 184, 185, 186, 187, 140, 141, 142, 143, 156, 157, 158, 159, 172, 173, 174, 175, 188, 189, 190, 191, 192, 193, 194, 195, 208, 209, 210, 211,
224, 225, 226, 227, 240, 241, 242, 243, 196, 197, 198, 199, 212, 213, 214, 215, 228, 229, 230, 231, 244, 245, 246, 247, 200, 201, 202, 203, 216, 217, 218, 219, 232, 233, 234, 235, 248, 249, 250, 251, 204, 205, 206, 207, 220, 221, 222, 223, 236, 237, 238, 239, 252, 253, 254, 255};
static const uint32_t g_sig_last_scan_2_3[256] = {0, 16, 32, 48, 1, 17, 33, 49, 2, 18, 34, 50, 3, 19, 35, 51, 64, 80, 96, 112, 65, 81, 97, 113, 66, 82, 98, 114, 67, 83, 99, 115, 128, 144, 160, 176, 129, 145, 161, 177, 130, 146, 162, 178, 131, 147, 163, 179, 192, 208, 224, 240, 193, 209, 225, 241, 194, 210, 226, 242, 195, 211, 227, 243, 4, 20, 36, 52, 5, 21, 37, 53, 6, 22, 38, 54, 7, 23, 39, 55, 68, 84, 100, 116, 69, 85, 101, 117, 70, 86, 102, 118, 71, 87, 103, 119, 132, 148, 164, 180,
133, 149, 165, 181, 134, 150, 166, 182, 135, 151, 167, 183, 196, 212, 228, 244, 197, 213, 229, 245, 198, 214, 230, 246, 199, 215, 231, 247, 8, 24, 40, 56, 9, 25, 41, 57, 10, 26, 42, 58, 11, 27, 43, 59, 72, 88, 104, 120, 73, 89, 105, 121, 74, 90, 106, 122, 75, 91, 107, 123, 136, 152, 168, 184, 137, 153, 169, 185, 138, 154, 170, 186, 139, 155, 171, 187, 200, 216, 232, 248, 201, 217, 233, 249, 202, 218, 234, 250, 203, 219, 235, 251, 12, 28, 44, 60, 13, 29, 45, 61,
14, 30, 46, 62, 15, 31, 47, 63, 76, 92, 108, 124, 77, 93, 109, 125, 78, 94, 110, 126, 79, 95, 111, 127, 140, 156, 172, 188, 141, 157, 173, 189, 142, 158, 174, 190, 143, 159, 175, 191, 204, 220, 236, 252, 205, 221, 237, 253, 206, 222, 238, 254, 207, 223, 239, 255};
static const uint32_t g_sig_last_scan_0_4[1024] = {0, 32, 1, 64, 33, 2, 96, 65, 34, 3, 97, 66, 35, 98, 67, 99, 128, 160, 129, 192, 161, 130, 224, 193, 162, 131, 225, 194, 163, 226, 195, 227, 4, 36, 5, 68, 37, 6, 100, 69, 38, 7, 101, 70, 39, 102, 71, 103, 256, 288, 257, 320, 289, 258, 352, 321, 290, 259, 353, 322, 291, 354, 323, 355, 132, 164, 133, 196, 165, 134, 228, 197, 166, 135, 229, 198, 167, 230, 199, 231, 8, 40, 9, 72, 41, 10, 104, 73, 42, 11, 105, 74, 43, 106, 75, 107, 384, 416, 385, 448,
417, 386, 480, 449, 418, 387, 481, 450, 419, 482, 451, 483, 260, 292, 261, 324, 293, 262, 356, 325, 294, 263, 357, 326, 295, 358, 327, 359, 136, 168, 137, 200, 169, 138, 232, 201, 170, 139, 233, 202, 171, 234, 203, 235, 12, 44, 13, 76, 45, 14, 108, 77, 46, 15, 109, 78, 47, 110, 79, 111, 512, 544, 513, 576, 545, 514, 608, 577, 546, 515, 609, 578, 547, 610, 579, 611, 388, 420, 389, 452, 421, 390, 484, 453, 422, 391, 485, 454, 423, 486, 455, 487, 264, 296, 265, 328, 297, 266, 360, 329,
298, 267, 361, 330, 299, 362, 331, 363, 140, 172, 141, 204, 173, 142, 236, 205, 174, 143, 237, 206, 175, 238, 207, 239, 16, 48, 17, 80, 49, 18, 112, 81, 50, 19, 113, 82, 51, 114, 83, 115, 640, 672, 641, 704, 673, 642, 736, 705, 674, 643, 737, 706, 675, 738, 707, 739, 516, 548, 517, 580, 549, 518, 612, 581, 550, 519, 613, 582, 551, 614, 583, 615, 392, 424, 393, 456, 425, 394, 488, 457, 426, 395, 489, 458, 427, 490, 459, 491, 268, 300, 269, 332, 301, 270, 364, 333, 302, 271, 365, 334,
303, 366, 335, 367, 144, 176, 145, 208, 177, 146, 240, 209, 178, 147, 241, 210, 179, 242, 211, 243, 20, 52, 21, 84, 53, 22, 116, 85, 54, 23, 117, 86, 55, 118, 87, 119, 768, 800, 769, 832, 801, 770, 864, 833, 802, 771, 865, 834, 803, 866, 835, 867, 644, 676, 645, 708, 677, 646, 740, 709, 678, 647, 741, 710, 679, 742, 711, 743, 520, 552, 521, 584, 553, 522, 616, 585, 554, 523, 617, 586, 555, 618, 587, 619, 396, 428, 397, 460, 429, 398, 492, 461, 430, 399, 493, 462, 431, 494, 463, 495,
272, 304, 273, 336, 305, 274, 368, 337, 306, 275, 369, 338, 307, 370, 339, 371, 148, 180, 149, 212, 181, 150, 244, 213, 182, 151, 245, 214, 183, 246, 215, 247, 24, 56, 25, 88, 57, 26, 120, 89, 58, 27, 121, 90, 59, 122, 91, 123, 896, 928, 897, 960, 929, 898, 992, 961, 930, 899, 993, 962, 931, 994, 963, 995, 772, 804, 773, 836, 805, 774, 868, 837, 806, 775, 869, 838, 807, 870, 839, 871, 648, 680, 649, 712, 681, 650, 744, 713, 682, 651, 745, 714, 683, 746, 715, 747, 524, 556, 525, 588,
557, 526, 620, 589, 558, 527, 621, 590, 559, 622, 591, 623, 400, 432, 401, 464, 433, 402, 496, 465, 434, 403, 497, 466, 435, 498, 467, 499, 276, 308, 277, 340, 309, 278, 372, 341, 310, 279, 373, 342, 311, 374, 343, 375, 152, 184, 153, 216, 185, 154, 248, 217, 186, 155, 249, 218, 187, 250, 219, 251, 28, 60, 29, 92, 61, 30, 124, 93, 62, 31, 125, 94, 63, 126, 95, 127, 900, 932, 901, 964, 933, 902, 996, 965, 934, 903, 997, 966, 935, 998, 967, 999, 776, 808, 777, 840, 809, 778, 872, 841,
810, 779, 873, 842, 811, 874, 843, 875, 652, 684, 653, 716, 685, 654, 748, 717, 686, 655, 749, 718, 687, 750, 719, 751, 528, 560, 529, 592, 561, 530, 624, 593, 562, 531, 625, 594, 563, 626, 595, 627, 404, 436, 405, 468, 437, 406, 500, 469, 438, 407, 501, 470, 439, 502, 471, 503, 280, 312, 281, 344, 313, 282, 376, 345, 314, 283, 377, 346, 315, 378, 347, 379, 156, 188, 157, 220, 189, 158, 252, 221, 190, 159, 253, 222, 191, 254, 223, 255, 904, 936, 905, 968, 937, 906, 1000, 969, 938, 907, 1001, 970,
939, 1002, 971, 1003, 780, 812, 781, 844, 813, 782, 876, 845, 814, 783, 877, 846, 815, 878, 847, 879, 656, 688, 657, 720, 689, 658, 752, 721, 690, 659, 753, 722, 691, 754, 723, 755, 532, 564, 533, 596, 565, 534, 628, 597, 566, 535, 629, 598, 567, 630, 599, 631, 408, 440, 409, 472, 441, 410, 504, 473, 442, 411, 505, 474, 443, 506, 475, 507, 284, 316, 285, 348, 317, 286, 380, 349, 318, 287, 381, 350, 319, 382, 351, 383, 908, 940, 909, 972, 941, 910, 1004, 973, 942, 911, 1005, 974, 943, 1006, 975, 1007,
784, 816, 785, 848, 817, 786, 880, 849, 818, 787, 881, 850, 819, 882, 851, 883, 660, 692, 661, 724, 693, 662, 756, 725, 694, 663, 757, 726, 695, 758, 727, 759, 536, 568, 537, 600, 569, 538, 632, 601, 570, 539, 633, 602, 571, 634, 603, 635, 412, 444, 413, 476, 445, 414, 508, 477, 446, 415, 509, 478, 447, 510, 479, 511, 912, 944, 913, 976, 945, 914, 1008, 977, 946, 915, 1009, 978, 947, 1010, 979, 1011, 788, 820, 789, 852, 821, 790, 884, 853, 822, 791, 885, 854, 823, 886, 855, 887, 664, 696, 665, 728,
697, 666, 760, 729, 698, 667, 761, 730, 699, 762, 731, 763, 540, 572, 541, 604, 573, 542, 636, 605, 574, 543, 637, 606, 575, 638, 607, 639, 916, 948, 917, 980, 949, 918, 1012, 981, 950, 919, 1013, 982, 951, 1014, 983, 1015, 792, 824, 793, 856, 825, 794, 888, 857, 826, 795, 889, 858, 827, 890, 859, 891, 668, 700, 669, 732, 701, 670, 764, 733, 702, 671, 765, 734, 703, 766, 735, 767, 920, 952, 921, 984, 953, 922, 1016, 985, 954, 923, 1017, 986, 955, 1018, 987, 1019, 796, 828, 797, 860, 829, 798, 892, 861,
830, 799, 893, 862, 831, 894, 863, 895, 924, 956, 925, 988, 957, 926, 1020, 989, 958, 927, 1021, 990, 959, 1022, 991, 1023};
static const uint32_t g_sig_last_scan_1_4[1024] = {0, 1, 2, 3, 32, 33, 34, 35, 64, 65, 66, 67, 96, 97, 98, 99, 4, 5, 6, 7, 36, 37, 38, 39, 68, 69, 70, 71, 100, 101, 102, 103, 8, 9, 10, 11, 40, 41, 42, 43, 72, 73, 74, 75, 104, 105, 106, 107, 12, 13, 14, 15, 44, 45, 46, 47, 76, 77, 78, 79, 108, 109, 110, 111, 16, 17, 18, 19, 48, 49, 50, 51, 80, 81, 82, 83, 112, 113, 114, 115, 20, 21, 22, 23, 52, 53, 54, 55, 84, 85, 86, 87, 116, 117, 118, 119, 24, 25, 26, 27,
56, 57, 58, 59, 88, 89, 90, 91, 120, 121, 122, 123, 28, 29, 30, 31, 60, 61, 62, 63, 92, 93, 94, 95, 124, 125, 126, 127, 128, 129, 130, 131, 160, 161, 162, 163, 192, 193, 194, 195, 224, 225, 226, 227, 132, 133, 134, 135, 164, 165, 166, 167, 196, 197, 198, 199, 228, 229, 230, 231, 136, 137, 138, 139, 168, 169, 170, 171, 200, 201, 202, 203, 232, 233, 234, 235, 140, 141, 142, 143, 172, 173, 174, 175, 204, 205, 206, 207, 236, 237, 238, 239, 144, 145, 146, 147, 176, 177, 178, 179,
208, 209, 210, 211, 240, 241, 242, 243, 148, 149, 150, 151, 180, 181, 182, 183, 212, 213, 214, 215, 244, 245, 246, 247, 152, 153, 154, 155, 184, 185, 186, 187, 216, 217, 218, 219, 248, 249, 250, 251, 156, 157, 158, 159, 188, 189, 190, 191, 220, 221, 222, 223, 252, 253, 254, 255, 256, 257, 258, 259, 288, 289, 290, 291, 320, 321, 322, 323, 352, 353, 354, 355, 260, 261, 262, 263, 292, 293, 294, 295, 324, 325, 326, 327, 356, 357, 358, 359, 264, 265, 266, 267, 296, 297, 298, 299, 328, 329, 330, 331,
360, 361, 362, 363, 268, 269, 270, 271, 300, 301, 302, 303, 332, 333, 334, 335, 364, 365, 366, 367, 272, 273, 274, 275, 304, 305, 306, 307, 336, 337, 338, 339, 368, 369, 370, 371, 276, 277, 278, 279, 308, 309, 310, 311, 340, 341, 342, 343, 372, 373, 374, 375, 280, 281, 282, 283, 312, 313, 314, 315, 344, 345, 346, 347, 376, 377, 378, 379, 284, 285, 286, 287, 316, 317, 318, 319, 348, 349, 350, 351, 380, 381, 382, 383, 384, 385, 386, 387, 416, 417, 418, 419, 448, 449, 450, 451, 480, 481, 482, 483,
388, 389, 390, 391, 420, 421, 422, 423, 452, 453, 454, 455, 484, 485, 486, 487, 392, 393, 394, 395, 424, 425, 426, 427, 456, 457, 458, 459, 488, 489, 490, 491, 396, 397, 398, 399, 428, 429, 430, 431, 460, 461, 462, 463, 492, 493, 494, 495, 400, 401, 402, 403, 432, 433, 434, 435, 464, 465, 466, 467, 496, 497, 498, 499, 404, 405, 406, 407, 436, 437, 438, 439, 468, 469, 470, 471, 500, 501, 502, 503, 408, 409, 410, 411, 440, 441, 442, 443, 472, 473, 474, 475, 504, 505, 506, 507, 412, 413, 414, 415,
444, 445, 446, 447, 476, 477, 478, 479, 508, 509, 510, 511, 512, 513, 514, 515, 544, 545, 546, 547, 576, 577, 578, 579, 608, 609, 610, 611, 516, 517, 518, 519, 548, 549, 550, 551, 580, 581, 582, 583, 612, 613, 614, 615, 520, 521, 522, 523, 552, 553, 554, 555, 584, 585, 586, 587, 616, 617, 618, 619, 524, 525, 526, 527, 556, 557, 558, 559, 588, 589, 590, 591, 620, 621, 622, 623, 528, 529, 530, 531, 560, 561, 562, 563, 592, 593, 594, 595, 624, 625, 626, 627, 532, 533, 534, 535, 564, 565, 566, 567,
596, 597, 598, 599, 628, 629, 630, 631, 536, 537, 538, 539, 568, 569, 570, 571, 600, 601, 602, 603, 632, 633, 634, 635, 540, 541, 542, 543, 572, 573, 574, 575, 604, 605, 606, 607, 636, 637, 638, 639, 640, 641, 642, 643, 672, 673, 674, 675, 704, 705, 706, 707, 736, 737, 738, 739, 644, 645, 646, 647, 676, 677, 678, 679, 708, 709, 710, 711, 740, 741, 742, 743, 648, 649, 650, 651, 680, 681, 682, 683, 712, 713, 714, 715, 744, 745, 746, 747, 652, 653, 654, 655, 684, 685, 686, 687, 716, 717, 718, 719,
748, 749, 750, 751, 656, 657, 658, 659, 688, 689, 690, 691, 720, 721, 722, 723, 752, 753, 754, 755, 660, 661, 662, 663, 692, 693, 694, 695, 724, 725, 726, 727, 756, 757, 758, 759, 664, 665, 666, 667, 696, 697, 698, 699, 728, 729, 730, 731, 760, 761, 762, 763, 668, 669, 670, 671, 700, 701, 702, 703, 732, 733, 734, 735, 764, 765, 766, 767, 768, 769, 770, 771, 800, 801, 802, 803, 832, 833, 834, 835, 864, 865, 866, 867, 772, 773, 774, 775, 804, 805, 806, 807, 836, 837, 838, 839, 868, 869, 870, 871,
776, 777, 778, 779, 808, 809, 810, 811, 840, 841, 842, 843, 872, 873, 874, 875, 780, 781, 782, 783, 812, 813, 814, 815, 844, 845, 846, 847, 876, 877, 878, 879, 784, 785, 786, 787, 816, 817, 818, 819, 848, 849, 850, 851, 880, 881, 882, 883, 788, 789, 790, 791, 820, 821, 822, 823, 852, 853, 854, 855, 884, 885, 886, 887, 792, 793, 794, 795, 824, 825, 826, 827, 856, 857, 858, 859, 888, 889, 890, 891, 796, 797, 798, 799, 828, 829, 830, 831, 860, 861, 862, 863, 892, 893, 894, 895, 896, 897, 898, 899,
928, 929, 930, 931, 960, 961, 962, 963, 992, 993, 994, 995, 900, 901, 902, 903, 932, 933, 934, 935, 964, 965, 966, 967, 996, 997, 998, 999, 904, 905, 906, 907, 936, 937, 938, 939, 968, 969, 970, 971, 1000, 1001, 1002, 1003, 908, 909, 910, 911, 940, 941, 942, 943, 972, 973, 974, 975, 1004, 1005, 1006, 1007, 912, 913, 914, 915, 944, 945, 946, 947, 976, 977, 978, 979, 1008, 1009, 1010, 1011, 916, 917, 918, 919, 948, 949, 950, 951, 980, 981, 982, 983, 1012, 1013, 1014, 1015, 920, 921, 922, 923, 952, 953, 954, 955,
984, 985, 986, 987, 1016, 1017, 1018, 1019, 924, 925, 926, 927, 956, 957, 958, 959, 988, 989, 990, 991, 1020, 1021, 1022, 1023};
static const uint32_t g_sig_last_scan_2_4[1024] = {0, 32, 64, 96, 1, 33, 65, 97, 2, 34, 66, 98, 3, 35, 67, 99, 128, 160, 192, 224, 129, 161, 193, 225, 130, 162, 194, 226, 131, 163, 195, 227, 256, 288, 320, 352, 257, 289, 321, 353, 258, 290, 322, 354, 259, 291, 323, 355, 384, 416, 448, 480, 385, 417, 449, 481, 386, 418, 450, 482, 387, 419, 451, 483, 512, 544, 576, 608, 513, 545, 577, 609, 514, 546, 578, 610, 515, 547, 579, 611, 640, 672, 704, 736, 641, 673, 705, 737, 642, 674, 706, 738, 643, 675, 707, 739, 768, 800, 832, 864,
769, 801, 833, 865, 770, 802, 834, 866, 771, 803, 835, 867, 896, 928, 960, 992, 897, 929, 961, 993, 898, 930, 962, 994, 899, 931, 963, 995, 4, 36, 68, 100, 5, 37, 69, 101, 6, 38, 70, 102, 7, 39, 71, 103, 132, 164, 196, 228, 133, 165, 197, 229, 134, 166, 198, 230, 135, 167, 199, 231, 260, 292, 324, 356, 261, 293, 325, 357, 262, 294, 326, 358, 263, 295, 327, 359, 388, 420, 452, 484, 389, 421, 453, 485, 390, 422, 454, 486, 391, 423, 455, 487, 516, 548, 580, 612, 517, 549, 581, 613,
518, 550, 582, 614, 519, 551, 583, 615, 644, 676, 708, 740, 645, 677, 709, 741, 646, 678, 710, 742, 647, 679, 711, 743, 772, 804, 836, 868, 773, 805, 837, 869, 774, 806, 838, 870, 775, 807, 839, 871, 900, 932, 964, 996, 901, 933, 965, 997, 902, 934, 966, 998, 903, 935, 967, 999, 8, 40, 72, 104, 9, 41, 73, 105, 10, 42, 74, 106, 11, 43, 75, 107, 136, 168, 200, 232, 137, 169, 201, 233, 138, 170, 202, 234, 139, 171, 203, 235, 264, 296, 328, 360, 265, 297, 329, 361, 266, 298, 330, 362,
267, 299, 331, 363, 392, 424, 456, 488, 393, 425, 457, 489, 394, 426, 458, 490, 395, 427, 459, 491, 520, 552, 584, 616, 521, 553, 585, 617, 522, 554, 586, 618, 523, 555, 587, 619, 648, 680, 712, 744, 649, 681, 713, 745, 650, 682, 714, 746, 651, 683, 715, 747, 776, 808, 840, 872, 777, 809, 841, 873, 778, 810, 842, 874, 779, 811, 843, 875, 904, 936, 968, 1000, 905, 937, 969, 1001, 906, 938, 970, 1002, 907, 939, 971, 1003, 12, 44, 76, 108, 13, 45, 77, 109, 14, 46, 78, 110, 15, 47, 79, 111,
140, 172, 204, 236, 141, 173, 205, 237, 142, 174, 206, 238, 143, 175, 207, 239, 268, 300, 332, 364, 269, 301, 333, 365, 270, 302, 334, 366, 271, 303, 335, 367, 396, 428, 460, 492, 397, 429, 461, 493, 398, 430, 462, 494, 399, 431, 463, 495, 524, 556, 588, 620, 525, 557, 589, 621, 526, 558, 590, 622, 527, 559, 591, 623, 652, 684, 716, 748, 653, 685, 717, 749, 654, 686, 718, 750, 655, 687, 719, 751, 780, 812, 844, 876, 781, 813, 845, 877, 782, 814, 846, 878, 783, 815, 847, 879, 908, 940, 972, 1004,
909, 941, 973, 1005, 910, 942, 974, 1006, 911, 943, 975, 1007, 16, 48, 80, 112, 17, 49, 81, 113, 18, 50, 82, 114, 19, 51, 83, 115, 144, 176, 208, 240, 145, 177, 209, 241, 146, 178, 210, 242, 147, 179, 211, 243, 272, 304, 336, 368, 273, 305, 337, 369, 274, 306, 338, 370, 275, 307, 339, 371, 400, 432, 464, 496, 401, 433, 465, 497, 402, 434, 466, 498, 403, 435, 467, 499, 528, 560, 592, 624, 529, 561, 593, 625, 530, 562, 594, 626, 531, 563, 595, 627, 656, 688, 720, 752, 657, 689, 721, 753,
658, 690, 722, 754, 659, 691, 723, 755, 784, 816, 848, 880, 785, 817, 849, 881, 786, 818, 850, 882, 787, 819, 851, 883, 912, 944, 976, 1008, 913, 945, 977, 1009, 914, 946, 978, 1010, 915, 947, 979, 1011, 20, 52, 84, 116, 21, 53, 85, 117, 22, 54, 86, 118, 23, 55, 87, 119, 148, 180, 212, 244, 149, 181, 213, 245, 150, 182, 214, 246, 151, 183, 215, 247, 276, 308, 340, 372, 277, 309, 341, 373, 278, 310, 342, 374, 279, 311, 343, 375, 404, 436, 468, 500, 405, 437, 469, 501, 406, 438, 470, 502,
407, 439, 471, 503, 532, 564, 596, 628, 533, 565, 597, 629, 534, 566, 598, 630, 535, 567, 599, 631, 660, 692, 724, 756, 661, 693, 725, 757, 662, 694, 726, 758, 663, 695, 727, 759, 788, 820, 852, 884, 789, 821, 853, 885, 790, 822, 854, 886, 791, 823, 855, 887, 916, 948, 980, 1012, 917, 949, 981, 1013, 918, 950, 982, 1014, 919, 951, 983, 1015, 24, 56, 88, 120, 25, 57, 89, 121, 26, 58, 90, 122, 27, 59, 91, 123, 152, 184, 216, 248, 153, 185, 217, 249, 154, 186, 218, 250, 155, 187, 219, 251,
280, 312, 344, 376, 281, 313, 345, 377, 282, 314, 346, 378, 283, 315, 347, 379, 408, 440, 472, 504, 409, 441, 473, 505, 410, 442, 474, 506, 411, 443, 475, 507, 536, 568, 600, 632, 537, 569, 601, 633, 538, 570, 602, 634, 539, 571, 603, 635, 664, 696, 728, 760, 665, 697, 729, 761, 666, 698, 730, 762, 667, 699, 731, 763, 792, 824, 856, 888, 793, 825, 857, 889, 794, 826, 858, 890, 795, 827, 859, 891, 920, 952, 984, 1016, 921, 953, 985, 1017, 922, 954, 986, 1018, 923, 955, 987, 1019, 28, 60, 92, 124,
29, 61, 93, 125, 30, 62, 94, 126, 31, 63, 95, 127, 156, 188, 220, 252, 157, 189, 221, 253, 158, 190, 222, 254, 159, 191, 223, 255, 284, 316, 348, 380, 285, 317, 349, 381, 286, 318, 350, 382, 287, 319, 351, 383, 412, 444, 476, 508, 413, 445, 477, 509, 414, 446, 478, 510, 415, 447, 479, 511, 540, 572, 604, 636, 541, 573, 605, 637, 542, 574, 606, 638, 543, 575, 607, 639, 668, 700, 732, 764, 669, 701, 733, 765, 670, 702, 734, 766, 671, 703, 735, 767, 796, 828, 860, 892, 797, 829, 861, 893,
798, 830, 862, 894, 799, 831, 863, 895, 924, 956, 988, 1020, 925, 957, 989, 1021, 926, 958, 990, 1022, 927, 959, 991, 1023};
const uint32_t* const uvg_g_sig_last_scan[3][5] = {
{g_sig_last_scan_0_0, g_sig_last_scan_0_1, g_sig_last_scan_0_2, g_sig_last_scan_0_3, g_sig_last_scan_0_4},
{g_sig_last_scan_1_0, g_sig_last_scan_1_1, g_sig_last_scan_1_2, g_sig_last_scan_1_3, g_sig_last_scan_1_4},
{g_sig_last_scan_2_0, g_sig_last_scan_2_1, g_sig_last_scan_2_2, g_sig_last_scan_2_3, g_sig_last_scan_2_4}
};
// Holds scan order indices for all possible block sizes for diagonal scan order and coefficient group scan order
static const uint32_t const g_scan_order_buffer[32258] = {
0, 0, 1, 0, 1, 2, 3, 0, 1, 2, 3, 4, 5, // UNGROUPED 1xN, 1x2, 1x4, 1x8
6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, // 1x16
11, 12, 13, 14, 15, 0, 1, 2, 3, 4, 5, 6, 7, // 1x32
8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0, 1, // 1x64
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 1, 0, // 2xN, 2x2
2, 1, 3, 0, 2, 1, 4, 3, 6, 5, 7, 0, 2, // 2x4, 2x8
1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13,
15, 0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, // 2x16
11, 14, 13, 16, 15, 18, 17, 20, 19, 22, 21, 24, 23,
26, 25, 28, 27, 30, 29, 31, 0, 2, 1, 4, 3, 6, // 2x32
5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15, 18, 17,
20, 19, 22, 21, 24, 23, 26, 25, 28, 27, 30, 29, 32,
31, 34, 33, 36, 35, 38, 37, 40, 39, 42, 41, 44, 43,
46, 45, 48, 47, 50, 49, 52, 51, 54, 53, 56, 55, 58,
57, 60, 59, 62, 61, 63, 0, 2, 1, 4, 3, 6, 5, // 2x64
8, 7, 10, 9, 12, 11, 14, 13, 16, 15, 18, 17, 20,
19, 22, 21, 24, 23, 26, 25, 28, 27, 30, 29, 32, 31,
34, 33, 36, 35, 38, 37, 40, 39, 42, 41, 44, 43, 46,
45, 48, 47, 50, 49, 52, 51, 54, 53, 56, 55, 58, 57,
60, 59, 62, 61, 64, 63, 66, 65, 68, 67, 70, 69, 72,
71, 74, 73, 76, 75, 78, 77, 80, 79, 82, 81, 84, 83,
86, 85, 88, 87, 90, 89, 92, 91, 94, 93, 96, 95, 98,
97, 100, 99, 102, 101, 104, 103, 106, 105, 108, 107, 110, 109,
112, 111, 114, 113, 116, 115, 118, 117, 120, 119, 122, 121, 124,
123, 126, 125, 127, 0, 1, 2, 3, 0, 4, 1, 5, 2, // 4xN, 4x2
6, 3, 7, 0, 4, 1, 8, 5, 2, 12, 9, 6, 3, // 4x4
13, 10, 7, 14, 11, 15, 0, 4, 1, 8, 5, 2, 12, // 4x8
9, 6, 3, 16, 13, 10, 7, 20, 17, 14, 11, 24, 21,
18, 15, 28, 25, 22, 19, 29, 26, 23, 30, 27, 31, 0, // 4x16
4, 1, 8, 5, 2, 12, 9, 6, 3, 16, 13, 10, 7,
20, 17, 14, 11, 24, 21, 18, 15, 28, 25, 22, 19, 32,
29, 26, 23, 36, 33, 30, 27, 40, 37, 34, 31, 44, 41,
38, 35, 48, 45, 42, 39, 52, 49, 46, 43, 56, 53, 50,
47, 60, 57, 54, 51, 61, 58, 55, 62, 59, 63, 0, 4, // 4x32
1, 8, 5, 2, 12, 9, 6, 3, 16, 13, 10, 7, 20,
17, 14, 11, 24, 21, 18, 15, 28, 25, 22, 19, 32, 29,
26, 23, 36, 33, 30, 27, 40, 37, 34, 31, 44, 41, 38,
35, 48, 45, 42, 39, 52, 49, 46, 43, 56, 53, 50, 47,
60, 57, 54, 51, 64, 61, 58, 55, 68, 65, 62, 59, 72,
69, 66, 63, 76, 73, 70, 67, 80, 77, 74, 71, 84, 81,
78, 75, 88, 85, 82, 79, 92, 89, 86, 83, 96, 93, 90,
87, 100, 97, 94, 91, 104, 101, 98, 95, 108, 105, 102, 99,
112, 109, 106, 103, 116, 113, 110, 107, 120, 117, 114, 111, 124,
121, 118, 115, 125, 122, 119, 126, 123, 127, 0, 4, 1, 8, // 4x64
5, 2, 12, 9, 6, 3, 16, 13, 10, 7, 20, 17, 14,
11, 24, 21, 18, 15, 28, 25, 22, 19, 32, 29, 26, 23,
36, 33, 30, 27, 40, 37, 34, 31, 44, 41, 38, 35, 48,
45, 42, 39, 52, 49, 46, 43, 56, 53, 50, 47, 60, 57,
54, 51, 64, 61, 58, 55, 68, 65, 62, 59, 72, 69, 66,
63, 76, 73, 70, 67, 80, 77, 74, 71, 84, 81, 78, 75,
88, 85, 82, 79, 92, 89, 86, 83, 96, 93, 90, 87, 100,
97, 94, 91, 104, 101, 98, 95, 108, 105, 102, 99, 112, 109,
106, 103, 116, 113, 110, 107, 120, 117, 114, 111, 124, 121, 118,
115, 128, 125, 122, 119, 132, 129, 126, 123, 136, 133, 130, 127,
140, 137, 134, 131, 144, 141, 138, 135, 148, 145, 142, 139, 152,
149, 146, 143, 156, 153, 150, 147, 160, 157, 154, 151, 164, 161,
158, 155, 168, 165, 162, 159, 172, 169, 166, 163, 176, 173, 170,
167, 180, 177, 174, 171, 184, 181, 178, 175, 188, 185, 182, 179,
192, 189, 186, 183, 196, 193, 190, 187, 200, 197, 194, 191, 204,
201, 198, 195, 208, 205, 202, 199, 212, 209, 206, 203, 216, 213,
210, 207, 220, 217, 214, 211, 224, 221, 218, 215, 228, 225, 222,
219, 232, 229, 226, 223, 236, 233, 230, 227, 240, 237, 234, 231,
244, 241, 238, 235, 248, 245, 242, 239, 252, 249, 246, 243, 253,
250, 247, 254, 251, 255, 0, 1, 2, 3, 4, 5, 6, 7, // 8xN
0, 8, 1, 9, 2, 10, 3, 11, 4, 12, 5, 13, 6, // 8x2
14, 7, 15, 0, 8, 1, 16, 9, 2, 24, 17, 10, 3, // 8x4
25, 18, 11, 4, 26, 19, 12, 5, 27, 20, 13, 6, 28,
21, 14, 7, 29, 22, 15, 30, 23, 31, 0, 8, 1, 16, // 8x8
9, 2, 24, 17, 10, 3, 32, 25, 18, 11, 4, 40, 33,
26, 19, 12, 5, 48, 41, 34, 27, 20, 13, 6, 56, 49,
42, 35, 28, 21, 14, 7, 57, 50, 43, 36, 29, 22, 15,
58, 51, 44, 37, 30, 23, 59, 52, 45, 38, 31, 60, 53,
46, 39, 61, 54, 47, 62, 55, 63, 0, 8, 1, 16, 9, // 8x16
2, 24, 17, 10, 3, 32, 25, 18, 11, 4, 40, 33, 26,
19, 12, 5, 48, 41, 34, 27, 20, 13, 6, 56, 49, 42,
35, 28, 21, 14, 7, 64, 57, 50, 43, 36, 29, 22, 15,
72, 65, 58, 51, 44, 37, 30, 23, 80, 73, 66, 59, 52,
45, 38, 31, 88, 81, 74, 67, 60, 53, 46, 39, 96, 89,
82, 75, 68, 61, 54, 47, 104, 97, 90, 83, 76, 69, 62,
55, 112, 105, 98, 91, 84, 77, 70, 63, 120, 113, 106, 99,
92, 85, 78, 71, 121, 114, 107, 100, 93, 86, 79, 122, 115,
108, 101, 94, 87, 123, 116, 109, 102, 95, 124, 117, 110, 103,
125, 118, 111, 126, 119, 127, 0, 8, 1, 16, 9, 2, 24, // 8x32
17, 10, 3, 32, 25, 18, 11, 4, 40, 33, 26, 19, 12,
5, 48, 41, 34, 27, 20, 13, 6, 56, 49, 42, 35, 28,
21, 14, 7, 64, 57, 50, 43, 36, 29, 22, 15, 72, 65,
58, 51, 44, 37, 30, 23, 80, 73, 66, 59, 52, 45, 38,
31, 88, 81, 74, 67, 60, 53, 46, 39, 96, 89, 82, 75,
68, 61, 54, 47, 104, 97, 90, 83, 76, 69, 62, 55, 112,
105, 98, 91, 84, 77, 70, 63, 120, 113, 106, 99, 92, 85,
78, 71, 128, 121, 114, 107, 100, 93, 86, 79, 136, 129, 122,
115, 108, 101, 94, 87, 144, 137, 130, 123, 116, 109, 102, 95,
152, 145, 138, 131, 124, 117, 110, 103, 160, 153, 146, 139, 132,
125, 118, 111, 168, 161, 154, 147, 140, 133, 126, 119, 176, 169,
162, 155, 148, 141, 134, 127, 184, 177, 170, 163, 156, 149, 142,
135, 192, 185, 178, 171, 164, 157, 150, 143, 200, 193, 186, 179,
172, 165, 158, 151, 208, 201, 194, 187, 180, 173, 166, 159, 216,
209, 202, 195, 188, 181, 174, 167, 224, 217, 210, 203, 196, 189,
182, 175, 232, 225, 218, 211, 204, 197, 190, 183, 240, 233, 226,
219, 212, 205, 198, 191, 248, 241, 234, 227, 220, 213, 206, 199,
249, 242, 235, 228, 221, 214, 207, 250, 243, 236, 229, 222, 215,
251, 244, 237, 230, 223, 252, 245, 238, 231, 253, 246, 239, 254,
247, 255, 0, 8, 1, 16, 9, 2, 24, 17, 10, 3, 32, // 8x64
25, 18, 11, 4, 40, 33, 26, 19, 12, 5, 48, 41, 34,
27, 20, 13, 6, 56, 49, 42, 35, 28, 21, 14, 7, 64,
57, 50, 43, 36, 29, 22, 15, 72, 65, 58, 51, 44, 37,
30, 23, 80, 73, 66, 59, 52, 45, 38, 31, 88, 81, 74,
67, 60, 53, 46, 39, 96, 89, 82, 75, 68, 61, 54, 47,
104, 97, 90, 83, 76, 69, 62, 55, 112, 105, 98, 91, 84,
77, 70, 63, 120, 113, 106, 99, 92, 85, 78, 71, 128, 121,
114, 107, 100, 93, 86, 79, 136, 129, 122, 115, 108, 101, 94,
87, 144, 137, 130, 123, 116, 109, 102, 95, 152, 145, 138, 131,
124, 117, 110, 103, 160, 153, 146, 139, 132, 125, 118, 111, 168,
161, 154, 147, 140, 133, 126, 119, 176, 169, 162, 155, 148, 141,
134, 127, 184, 177, 170, 163, 156, 149, 142, 135, 192, 185, 178,
171, 164, 157, 150, 143, 200, 193, 186, 179, 172, 165, 158, 151,
208, 201, 194, 187, 180, 173, 166, 159, 216, 209, 202, 195, 188,
181, 174, 167, 224, 217, 210, 203, 196, 189, 182, 175, 232, 225,
218, 211, 204, 197, 190, 183, 240, 233, 226, 219, 212, 205, 198,
191, 248, 241, 234, 227, 220, 213, 206, 199, 256, 249, 242, 235,
228, 221, 214, 207, 264, 257, 250, 243, 236, 229, 222, 215, 272,
265, 258, 251, 244, 237, 230, 223, 280, 273, 266, 259, 252, 245,
238, 231, 288, 281, 274, 267, 260, 253, 246, 239, 296, 289, 282,
275, 268, 261, 254, 247, 304, 297, 290, 283, 276, 269, 262, 255,
312, 305, 298, 291, 284, 277, 270, 263, 320, 313, 306, 299, 292,
285, 278, 271, 328, 321, 314, 307, 300, 293, 286, 279, 336, 329,
322, 315, 308, 301, 294, 287, 344, 337, 330, 323, 316, 309, 302,
295, 352, 345, 338, 331, 324, 317, 310, 303, 360, 353, 346, 339,
332, 325, 318, 311, 368, 361, 354, 347, 340, 333, 326, 319, 376,
369, 362, 355, 348, 341, 334, 327, 384, 377, 370, 363, 356, 349,
342, 335, 392, 385, 378, 371, 364, 357, 350, 343, 400, 393, 386,
379, 372, 365, 358, 351, 408, 401, 394, 387, 380, 373, 366, 359,
416, 409, 402, 395, 388, 381, 374, 367, 424, 417, 410, 403, 396,
389, 382, 375, 432, 425, 418, 411, 404, 397, 390, 383, 440, 433,
426, 419, 412, 405, 398, 391, 448, 441, 434, 427, 420, 413, 406,
399, 456, 449, 442, 435, 428, 421, 414, 407, 464, 457, 450, 443,
436, 429, 422, 415, 472, 465, 458, 451, 444, 437, 430, 423, 480,
473, 466, 459, 452, 445, 438, 431, 488, 481, 474, 467, 460, 453,
446, 439, 496, 489, 482, 475, 468, 461, 454, 447, 504, 497, 490,
483, 476, 469, 462, 455, 505, 498, 491, 484, 477, 470, 463, 506,
499, 492, 485, 478, 471, 507, 500, 493, 486, 479, 508, 501, 494,
487, 509, 502, 495, 510, 503, 511, 0, 1, 2, 3, 4, 5, // 16xN
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 16, 1, // 16x2
17, 2, 18, 3, 19, 4, 20, 5, 21, 6, 22, 7, 23,
8, 24, 9, 25, 10, 26, 11, 27, 12, 28, 13, 29, 14,
30, 15, 31, 0, 16, 1, 32, 17, 2, 48, 33, 18, 3, // 16x4
49, 34, 19, 4, 50, 35, 20, 5, 51, 36, 21, 6, 52,
37, 22, 7, 53, 38, 23, 8, 54, 39, 24, 9, 55, 40,
25, 10, 56, 41, 26, 11, 57, 42, 27, 12, 58, 43, 28,
13, 59, 44, 29, 14, 60, 45, 30, 15, 61, 46, 31, 62,
47, 63, 0, 16, 1, 32, 17, 2, 48, 33, 18, 3, 64, // 16x8
49, 34, 19, 4, 80, 65, 50, 35, 20, 5, 96, 81, 66,
51, 36, 21, 6, 112, 97, 82, 67, 52, 37, 22, 7, 113,
98, 83, 68, 53, 38, 23, 8, 114, 99, 84, 69, 54, 39,
24, 9, 115, 100, 85, 70, 55, 40, 25, 10, 116, 101, 86,
71, 56, 41, 26, 11, 117, 102, 87, 72, 57, 42, 27, 12,
118, 103, 88, 73, 58, 43, 28, 13, 119, 104, 89, 74, 59,
44, 29, 14, 120, 105, 90, 75, 60, 45, 30, 15, 121, 106,
91, 76, 61, 46, 31, 122, 107, 92, 77, 62, 47, 123, 108,
93, 78, 63, 124, 109, 94, 79, 125, 110, 95, 126, 111, 127,
0, 16, 1, 32, 17, 2, 48, 33, 18, 3, 64, 49, 34, // 16x16
19, 4, 80, 65, 50, 35, 20, 5, 96, 81, 66, 51, 36,
21, 6, 112, 97, 82, 67, 52, 37, 22, 7, 128, 113, 98,
83, 68, 53, 38, 23, 8, 144, 129, 114, 99, 84, 69, 54,
39, 24, 9, 160, 145, 130, 115, 100, 85, 70, 55, 40, 25,
10, 176, 161, 146, 131, 116, 101, 86, 71, 56, 41, 26, 11,
192, 177, 162, 147, 132, 117, 102, 87, 72, 57, 42, 27, 12,
208, 193, 178, 163, 148, 133, 118, 103, 88, 73, 58, 43, 28,
13, 224, 209, 194, 179, 164, 149, 134, 119, 104, 89, 74, 59,
44, 29, 14, 240, 225, 210, 195, 180, 165, 150, 135, 120, 105,
90, 75, 60, 45, 30, 15, 241, 226, 211, 196, 181, 166, 151,
136, 121, 106, 91, 76, 61, 46, 31, 242, 227, 212, 197, 182,
167, 152, 137, 122, 107, 92, 77, 62, 47, 243, 228, 213, 198,
183, 168, 153, 138, 123, 108, 93, 78, 63, 244, 229, 214, 199,
184, 169, 154, 139, 124, 109, 94, 79, 245, 230, 215, 200, 185,
170, 155, 140, 125, 110, 95, 246, 231, 216, 201, 186, 171, 156,
141, 126, 111, 247, 232, 217, 202, 187, 172, 157, 142, 127, 248,
233, 218, 203, 188, 173, 158, 143, 249, 234, 219, 204, 189, 174,
159, 250, 235, 220, 205, 190, 175, 251, 236, 221, 206, 191, 252,
237, 222, 207, 253, 238, 223, 254, 239, 255, 0, 16, 1, 32, // 16x32
17, 2, 48, 33, 18, 3, 64, 49, 34, 19, 4, 80, 65,
50, 35, 20, 5, 96, 81, 66, 51, 36, 21, 6, 112, 97,
82, 67, 52, 37, 22, 7, 128, 113, 98, 83, 68, 53, 38,
23, 8, 144, 129, 114, 99, 84, 69, 54, 39, 24, 9, 160,
145, 130, 115, 100, 85, 70, 55, 40, 25, 10, 176, 161, 146,
131, 116, 101, 86, 71, 56, 41, 26, 11, 192, 177, 162, 147,
132, 117, 102, 87, 72, 57, 42, 27, 12, 208, 193, 178, 163,
148, 133, 118, 103, 88, 73, 58, 43, 28, 13, 224, 209, 194,
179, 164, 149, 134, 119, 104, 89, 74, 59, 44, 29, 14, 240,
225, 210, 195, 180, 165, 150, 135, 120, 105, 90, 75, 60, 45,
30, 15, 256, 241, 226, 211, 196, 181, 166, 151, 136, 121, 106,
91, 76, 61, 46, 31, 272, 257, 242, 227, 212, 197, 182, 167,
152, 137, 122, 107, 92, 77, 62, 47, 288, 273, 258, 243, 228,
213, 198, 183, 168, 153, 138, 123, 108, 93, 78, 63, 304, 289,
274, 259, 244, 229, 214, 199, 184, 169, 154, 139, 124, 109, 94,
79, 320, 305, 290, 275, 260, 245, 230, 215, 200, 185, 170, 155,
140, 125, 110, 95, 336, 321, 306, 291, 276, 261, 246, 231, 216,
201, 186, 171, 156, 141, 126, 111, 352, 337, 322, 307, 292, 277,
262, 247, 232, 217, 202, 187, 172, 157, 142, 127, 368, 353, 338,
323, 308, 293, 278, 263, 248, 233, 218, 203, 188, 173, 158, 143,
384, 369, 354, 339, 324, 309, 294, 279, 264, 249, 234, 219, 204,
189, 174, 159, 400, 385, 370, 355, 340, 325, 310, 295, 280, 265,
250, 235, 220, 205, 190, 175, 416, 401, 386, 371, 356, 341, 326,
311, 296, 281, 266, 251, 236, 221, 206, 191, 432, 417, 402, 387,
372, 357, 342, 327, 312, 297, 282, 267, 252, 237, 222, 207, 448,
433, 418, 403, 388, 373, 358, 343, 328, 313, 298, 283, 268, 253,
238, 223, 464, 449, 434, 419, 404, 389, 374, 359, 344, 329, 314,
299, 284, 269, 254, 239, 480, 465, 450, 435, 420, 405, 390, 375,
360, 345, 330, 315, 300, 285, 270, 255, 496, 481, 466, 451, 436,
421, 406, 391, 376, 361, 346, 331, 316, 301, 286, 271, 497, 482,
467, 452, 437, 422, 407, 392, 377, 362, 347, 332, 317, 302, 287,
498, 483, 468, 453, 438, 423, 408, 393, 378, 363, 348, 333, 318,
303, 499, 484, 469, 454, 439, 424, 409, 394, 379, 364, 349, 334,
319, 500, 485, 470, 455, 440, 425, 410, 395, 380, 365, 350, 335,
501, 486, 471, 456, 441, 426, 411, 396, 381, 366, 351, 502, 487,
472, 457, 442, 427, 412, 397, 382, 367, 503, 488, 473, 458, 443,
428, 413, 398, 383, 504, 489, 474, 459, 444, 429, 414, 399, 505,
490, 475, 460, 445, 430, 415, 506, 491, 476, 461, 446, 431, 507,
492, 477, 462, 447, 508, 493, 478, 463, 509, 494, 479, 510, 495,
511, 0, 16, 1, 32, 17, 2, 48, 33, 18, 3, 64, 49, // 16x64
34, 19, 4, 80, 65, 50, 35, 20, 5, 96, 81, 66, 51,
36, 21, 6, 112, 97, 82, 67, 52, 37, 22, 7, 128, 113,
98, 83, 68, 53, 38, 23, 8, 144, 129, 114, 99, 84, 69,
54, 39, 24, 9, 160, 145, 130, 115, 100, 85, 70, 55, 40,
25, 10, 176, 161, 146, 131, 116, 101, 86, 71, 56, 41, 26,
11, 192, 177, 162, 147, 132, 117, 102, 87, 72, 57, 42, 27,
12, 208, 193, 178, 163, 148, 133, 118, 103, 88, 73, 58, 43,
28, 13, 224, 209, 194, 179, 164, 149, 134, 119, 104, 89, 74,
59, 44, 29, 14, 240, 225, 210, 195, 180, 165, 150, 135, 120,
105, 90, 75, 60, 45, 30, 15, 256, 241, 226, 211, 196, 181,
166, 151, 136, 121, 106, 91, 76, 61, 46, 31, 272, 257, 242,
227, 212, 197, 182, 167, 152, 137, 122, 107, 92, 77, 62, 47,
288, 273, 258, 243, 228, 213, 198, 183, 168, 153, 138, 123, 108,
93, 78, 63, 304, 289, 274, 259, 244, 229, 214, 199, 184, 169,
154, 139, 124, 109, 94, 79, 320, 305, 290, 275, 260, 245, 230,
215, 200, 185, 170, 155, 140, 125, 110, 95, 336, 321, 306, 291,
276, 261, 246, 231, 216, 201, 186, 171, 156, 141, 126, 111, 352,
337, 322, 307, 292, 277, 262, 247, 232, 217, 202, 187, 172, 157,
142, 127, 368, 353, 338, 323, 308, 293, 278, 263, 248, 233, 218,
203, 188, 173, 158, 143, 384, 369, 354, 339, 324, 309, 294, 279,
264, 249, 234, 219, 204, 189, 174, 159, 400, 385, 370, 355, 340,
325, 310, 295, 280, 265, 250, 235, 220, 205, 190, 175, 416, 401,
386, 371, 356, 341, 326, 311, 296, 281, 266, 251, 236, 221, 206,
191, 432, 417, 402, 387, 372, 357, 342, 327, 312, 297, 282, 267,
252, 237, 222, 207, 448, 433, 418, 403, 388, 373, 358, 343, 328,
313, 298, 283, 268, 253, 238, 223, 464, 449, 434, 419, 404, 389,
374, 359, 344, 329, 314, 299, 284, 269, 254, 239, 480, 465, 450,
435, 420, 405, 390, 375, 360, 345, 330, 315, 300, 285, 270, 255,
496, 481, 466, 451, 436, 421, 406, 391, 376, 361, 346, 331, 316,
301, 286, 271, 512, 497, 482, 467, 452, 437, 422, 407, 392, 377,
362, 347, 332, 317, 302, 287, 528, 513, 498, 483, 468, 453, 438,
423, 408, 393, 378, 363, 348, 333, 318, 303, 544, 529, 514, 499,
484, 469, 454, 439, 424, 409, 394, 379, 364, 349, 334, 319, 560,
545, 530, 515, 500, 485, 470, 455, 440, 425, 410, 395, 380, 365,
350, 335, 576, 561, 546, 531, 516, 501, 486, 471, 456, 441, 426,
411, 396, 381, 366, 351, 592, 577, 562, 547, 532, 517, 502, 487,
472, 457, 442, 427, 412, 397, 382, 367, 608, 593, 578, 563, 548,
533, 518, 503, 488, 473, 458, 443, 428, 413, 398, 383, 624, 609,
594, 579, 564, 549, 534, 519, 504, 489, 474, 459, 444, 429, 414,
399, 640, 625, 610, 595, 580, 565, 550, 535, 520, 505, 490, 475,
460, 445, 430, 415, 656, 641, 626, 611, 596, 581, 566, 551, 536,
521, 506, 491, 476, 461, 446, 431, 672, 657, 642, 627, 612, 597,
582, 567, 552, 537, 522, 507, 492, 477, 462, 447, 688, 673, 658,
643, 628, 613, 598, 583, 568, 553, 538, 523, 508, 493, 478, 463,
704, 689, 674, 659, 644, 629, 614, 599, 584, 569, 554, 539, 524,
509, 494, 479, 720, 705, 690, 675, 660, 645, 630, 615, 600, 585,
570, 555, 540, 525, 510, 495, 736, 721, 706, 691, 676, 661, 646,
631, 616, 601, 586, 571, 556, 541, 526, 511, 752, 737, 722, 707,
692, 677, 662, 647, 632, 617, 602, 587, 572, 557, 542, 527, 768,
753, 738, 723, 708, 693, 678, 663, 648, 633, 618, 603, 588, 573,
558, 543, 784, 769, 754, 739, 724, 709, 694, 679, 664, 649, 634,
619, 604, 589, 574, 559, 800, 785, 770, 755, 740, 725, 710, 695,
680, 665, 650, 635, 620, 605, 590, 575, 816, 801, 786, 771, 756,
741, 726, 711, 696, 681, 666, 651, 636, 621, 606, 591, 832, 817,
802, 787, 772, 757, 742, 727, 712, 697, 682, 667, 652, 637, 622,
607, 848, 833, 818, 803, 788, 773, 758, 743, 728, 713, 698, 683,
668, 653, 638, 623, 864, 849, 834, 819, 804, 789, 774, 759, 744,
729, 714, 699, 684, 669, 654, 639, 880, 865, 850, 835, 820, 805,
790, 775, 760, 745, 730, 715, 700, 685, 670, 655, 896, 881, 866,
851, 836, 821, 806, 791, 776, 761, 746, 731, 716, 701, 686, 671,
912, 897, 882, 867, 852, 837, 822, 807, 792, 777, 762, 747, 732,
717, 702, 687, 928, 913, 898, 883, 868, 853, 838, 823, 808, 793,
778, 763, 748, 733, 718, 703, 944, 929, 914, 899, 884, 869, 854,
839, 824, 809, 794, 779, 764, 749, 734, 719, 960, 945, 930, 915,
900, 885, 870, 855, 840, 825, 810, 795, 780, 765, 750, 735, 976,
961, 946, 931, 916, 901, 886, 871, 856, 841, 826, 811, 796, 781,
766, 751, 992, 977, 962, 947, 932, 917, 902, 887, 872, 857, 842,
827, 812, 797, 782, 767, 1008, 993, 978, 963, 948, 933, 918, 903,
888, 873, 858, 843, 828, 813, 798, 783, 1009, 994, 979, 964, 949,
934, 919, 904, 889, 874, 859, 844, 829, 814, 799, 1010, 995, 980,
965, 950, 935, 920, 905, 890, 875, 860, 845, 830, 815, 1011, 996,
981, 966, 951, 936, 921, 906, 891, 876, 861, 846, 831, 1012, 997,
982, 967, 952, 937, 922, 907, 892, 877, 862, 847, 1013, 998, 983,
968, 953, 938, 923, 908, 893, 878, 863, 1014, 999, 984, 969, 954,
939, 924, 909, 894, 879, 1015, 1000, 985, 970, 955, 940, 925, 910,
895, 1016, 1001, 986, 971, 956, 941, 926, 911, 1017, 1002, 987, 972,
957, 942, 927, 1018, 1003, 988, 973, 958, 943, 1019, 1004, 989, 974,
959, 1020, 1005, 990, 975, 1021, 1006, 991, 1022, 1007, 1023, 0, 1, // 32xN
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27,
28, 29, 30, 31, 0, 32, 1, 33, 2, 34, 3, 35, 4, // 32x2
36, 5, 37, 6, 38, 7, 39, 8, 40, 9, 41, 10, 42,
11, 43, 12, 44, 13, 45, 14, 46, 15, 47, 16, 48, 17,
49, 18, 50, 19, 51, 20, 52, 21, 53, 22, 54, 23, 55,
24, 56, 25, 57, 26, 58, 27, 59, 28, 60, 29, 61, 30,
62, 31, 63, 0, 32, 1, 64, 33, 2, 96, 65, 34, 3, // 32x4
97, 66, 35, 4, 98, 67, 36, 5, 99, 68, 37, 6, 100,
69, 38, 7, 101, 70, 39, 8, 102, 71, 40, 9, 103, 72,
41, 10, 104, 73, 42, 11, 105, 74, 43, 12, 106, 75, 44,
13, 107, 76, 45, 14, 108, 77, 46, 15, 109, 78, 47, 16,
110, 79, 48, 17, 111, 80, 49, 18, 112, 81, 50, 19, 113,
82, 51, 20, 114, 83, 52, 21, 115, 84, 53, 22, 116, 85,
54, 23, 117, 86, 55, 24, 118, 87, 56, 25, 119, 88, 57,
26, 120, 89, 58, 27, 121, 90, 59, 28, 122, 91, 60, 29,
123, 92, 61, 30, 124, 93, 62, 31, 125, 94, 63, 126, 95,
127, 0, 32, 1, 64, 33, 2, 96, 65, 34, 3, 128, 97, // 32x8
66, 35, 4, 160, 129, 98, 67, 36, 5, 192, 161, 130, 99,
68, 37, 6, 224, 193, 162, 131, 100, 69, 38, 7, 225, 194,
163, 132, 101, 70, 39, 8, 226, 195, 164, 133, 102, 71, 40,
9, 227, 196, 165, 134, 103, 72, 41, 10, 228, 197, 166, 135,
104, 73, 42, 11, 229, 198, 167, 136, 105, 74, 43, 12, 230,
199, 168, 137, 106, 75, 44, 13, 231, 200, 169, 138, 107, 76,
45, 14, 232, 201, 170, 139, 108, 77, 46, 15, 233, 202, 171,
140, 109, 78, 47, 16, 234, 203, 172, 141, 110, 79, 48, 17,
235, 204, 173, 142, 111, 80, 49, 18, 236, 205, 174, 143, 112,
81, 50, 19, 237, 206, 175, 144, 113, 82, 51, 20, 238, 207,
176, 145, 114, 83, 52, 21, 239, 208, 177, 146, 115, 84, 53,
22, 240, 209, 178, 147, 116, 85, 54, 23, 241, 210, 179, 148,
117, 86, 55, 24, 242, 211, 180, 149, 118, 87, 56, 25, 243,
212, 181, 150, 119, 88, 57, 26, 244, 213, 182, 151, 120, 89,
58, 27, 245, 214, 183, 152, 121, 90, 59, 28, 246, 215, 184,
153, 122, 91, 60, 29, 247, 216, 185, 154, 123, 92, 61, 30,
248, 217, 186, 155, 124, 93, 62, 31, 249, 218, 187, 156, 125,
94, 63, 250, 219, 188, 157, 126, 95, 251, 220, 189, 158, 127,
252, 221, 190, 159, 253, 222, 191, 254, 223, 255, 0, 32, 1, // 32x16
64, 33, 2, 96, 65, 34, 3, 128, 97, 66, 35, 4, 160,
129, 98, 67, 36, 5, 192, 161, 130, 99, 68, 37, 6, 224,
193, 162, 131, 100, 69, 38, 7, 256, 225, 194, 163, 132, 101,
70, 39, 8, 288, 257, 226, 195, 164, 133, 102, 71, 40, 9,
320, 289, 258, 227, 196, 165, 134, 103, 72, 41, 10, 352, 321,
290, 259, 228, 197, 166, 135, 104, 73, 42, 11, 384, 353, 322,
291, 260, 229, 198, 167, 136, 105, 74, 43, 12, 416, 385, 354,
323, 292, 261, 230, 199, 168, 137, 106, 75, 44, 13, 448, 417,
386, 355, 324, 293, 262, 231, 200, 169, 138, 107, 76, 45, 14,
480, 449, 418, 387, 356, 325, 294, 263, 232, 201, 170, 139, 108,
77, 46, 15, 481, 450, 419, 388, 357, 326, 295, 264, 233, 202,
171, 140, 109, 78, 47, 16, 482, 451, 420, 389, 358, 327, 296,
265, 234, 203, 172, 141, 110, 79, 48, 17, 483, 452, 421, 390,
359, 328, 297, 266, 235, 204, 173, 142, 111, 80, 49, 18, 484,
453, 422, 391, 360, 329, 298, 267, 236, 205, 174, 143, 112, 81,
50, 19, 485, 454, 423, 392, 361, 330, 299, 268, 237, 206, 175,
144, 113, 82, 51, 20, 486, 455, 424, 393, 362, 331, 300, 269,
238, 207, 176, 145, 114, 83, 52, 21, 487, 456, 425, 394, 363,
332, 301, 270, 239, 208, 177, 146, 115, 84, 53, 22, 488, 457,
426, 395, 364, 333, 302, 271, 240, 209, 178, 147, 116, 85, 54,
23, 489, 458, 427, 396, 365, 334, 303, 272, 241, 210, 179, 148,
117, 86, 55, 24, 490, 459, 428, 397, 366, 335, 304, 273, 242,
211, 180, 149, 118, 87, 56, 25, 491, 460, 429, 398, 367, 336,
305, 274, 243, 212, 181, 150, 119, 88, 57, 26, 492, 461, 430,
399, 368, 337, 306, 275, 244, 213, 182, 151, 120, 89, 58, 27,
493, 462, 431, 400, 369, 338, 307, 276, 245, 214, 183, 152, 121,
90, 59, 28, 494, 463, 432, 401, 370, 339, 308, 277, 246, 215,
184, 153, 122, 91, 60, 29, 495, 464, 433, 402, 371, 340, 309,
278, 247, 216, 185, 154, 123, 92, 61, 30, 496, 465, 434, 403,
372, 341, 310, 279, 248, 217, 186, 155, 124, 93, 62, 31, 497,
466, 435, 404, 373, 342, 311, 280, 249, 218, 187, 156, 125, 94,
63, 498, 467, 436, 405, 374, 343, 312, 281, 250, 219, 188, 157,
126, 95, 499, 468, 437, 406, 375, 344, 313, 282, 251, 220, 189,
158, 127, 500, 469, 438, 407, 376, 345, 314, 283, 252, 221, 190,
159, 501, 470, 439, 408, 377, 346, 315, 284, 253, 222, 191, 502,
471, 440, 409, 378, 347, 316, 285, 254, 223, 503, 472, 441, 410,
379, 348, 317, 286, 255, 504, 473, 442, 411, 380, 349, 318, 287,
505, 474, 443, 412, 381, 350, 319, 506, 475, 444, 413, 382, 351,
507, 476, 445, 414, 383, 508, 477, 446, 415, 509, 478, 447, 510,
479, 511, 0, 32, 1, 64, 33, 2, 96, 65, 34, 3, 128, // 32x32
97, 66, 35, 4, 160, 129, 98, 67, 36, 5, 192, 161, 130,
99, 68, 37, 6, 224, 193, 162, 131, 100, 69, 38, 7, 256,
225, 194, 163, 132, 101, 70, 39, 8, 288, 257, 226, 195, 164,
133, 102, 71, 40, 9, 320, 289, 258, 227, 196, 165, 134, 103,
72, 41, 10, 352, 321, 290, 259, 228, 197, 166, 135, 104, 73,
42, 11, 384, 353, 322, 291, 260, 229, 198, 167, 136, 105, 74,
43, 12, 416, 385, 354, 323, 292, 261, 230, 199, 168, 137, 106,
75, 44, 13, 448, 417, 386, 355, 324, 293, 262, 231, 200, 169,
138, 107, 76, 45, 14, 480, 449, 418, 387, 356, 325, 294, 263,
232, 201, 170, 139, 108, 77, 46, 15, 512, 481, 450, 419, 388,
357, 326, 295, 264, 233, 202, 171, 140, 109, 78, 47, 16, 544,
513, 482, 451, 420, 389, 358, 327, 296, 265, 234, 203, 172, 141,
110, 79, 48, 17, 576, 545, 514, 483, 452, 421, 390, 359, 328,
297, 266, 235, 204, 173, 142, 111, 80, 49, 18, 608, 577, 546,
515, 484, 453, 422, 391, 360, 329, 298, 267, 236, 205, 174, 143,
112, 81, 50, 19, 640, 609, 578, 547, 516, 485, 454, 423, 392,
361, 330, 299, 268, 237, 206, 175, 144, 113, 82, 51, 20, 672,
641, 610, 579, 548, 517, 486, 455, 424, 393, 362, 331, 300, 269,
238, 207, 176, 145, 114, 83, 52, 21, 704, 673, 642, 611, 580,
549, 518, 487, 456, 425, 394, 363, 332, 301, 270, 239, 208, 177,
146, 115, 84, 53, 22, 736, 705, 674, 643, 612, 581, 550, 519,
488, 457, 426, 395, 364, 333, 302, 271, 240, 209, 178, 147, 116,
85, 54, 23, 768, 737, 706, 675, 644, 613, 582, 551, 520, 489,
458, 427, 396, 365, 334, 303, 272, 241, 210, 179, 148, 117, 86,
55, 24, 800, 769, 738, 707, 676, 645, 614, 583, 552, 521, 490,
459, 428, 397, 366, 335, 304, 273, 242, 211, 180, 149, 118, 87,
56, 25, 832, 801, 770, 739, 708, 677, 646, 615, 584, 553, 522,
491, 460, 429, 398, 367, 336, 305, 274, 243, 212, 181, 150, 119,
88, 57, 26, 864, 833, 802, 771, 740, 709, 678, 647, 616, 585,
554, 523, 492, 461, 430, 399, 368, 337, 306, 275, 244, 213, 182,
151, 120, 89, 58, 27, 896, 865, 834, 803, 772, 741, 710, 679,
648, 617, 586, 555, 524, 493, 462, 431, 400, 369, 338, 307, 276,
245, 214, 183, 152, 121, 90, 59, 28, 928, 897, 866, 835, 804,
773, 742, 711, 680, 649, 618, 587, 556, 525, 494, 463, 432, 401,
370, 339, 308, 277, 246, 215, 184, 153, 122, 91, 60, 29, 960,
929, 898, 867, 836, 805, 774, 743, 712, 681, 650, 619, 588, 557,
526, 495, 464, 433, 402, 371, 340, 309, 278, 247, 216, 185, 154,
123, 92, 61, 30, 992, 961, 930, 899, 868, 837, 806, 775, 744,
713, 682, 651, 620, 589, 558, 527, 496, 465, 434, 403, 372, 341,
310, 279, 248, 217, 186, 155, 124, 93, 62, 31, 993, 962, 931,
900, 869, 838, 807, 776, 745, 714, 683, 652, 621, 590, 559, 528,
497, 466, 435, 404, 373, 342, 311, 280, 249, 218, 187, 156, 125,
94, 63, 994, 963, 932, 901, 870, 839, 808, 777, 746, 715, 684,
653, 622, 591, 560, 529, 498, 467, 436, 405, 374, 343, 312, 281,
250, 219, 188, 157, 126, 95, 995, 964, 933, 902, 871, 840, 809,
778, 747, 716, 685, 654, 623, 592, 561, 530, 499, 468, 437, 406,
375, 344, 313, 282, 251, 220, 189, 158, 127, 996, 965, 934, 903,
872, 841, 810, 779, 748, 717, 686, 655, 624, 593, 562, 531, 500,
469, 438, 407, 376, 345, 314, 283, 252, 221, 190, 159, 997, 966,
935, 904, 873, 842, 811, 780, 749, 718, 687, 656, 625, 594, 563,
532, 501, 470, 439, 408, 377, 346, 315, 284, 253, 222, 191, 998,
967, 936, 905, 874, 843, 812, 781, 750, 719, 688, 657, 626, 595,
564, 533, 502, 471, 440, 409, 378, 347, 316, 285, 254, 223, 999,
968, 937, 906, 875, 844, 813, 782, 751, 720, 689, 658, 627, 596,
565, 534, 503, 472, 441, 410, 379, 348, 317, 286, 255, 1000, 969,
938, 907, 876, 845, 814, 783, 752, 721, 690, 659, 628, 597, 566,
535, 504, 473, 442, 411, 380, 349, 318, 287, 1001, 970, 939, 908,
877, 846, 815, 784, 753, 722, 691, 660, 629, 598, 567, 536, 505,
474, 443, 412, 381, 350, 319, 1002, 971, 940, 909, 878, 847, 816,
785, 754, 723, 692, 661, 630, 599, 568, 537, 506, 475, 444, 413,
382, 351, 1003, 972, 941, 910, 879, 848, 817, 786, 755, 724, 693,
662, 631, 600, 569, 538, 507, 476, 445, 414, 383, 1004, 973, 942,
911, 880, 849, 818, 787, 756, 725, 694, 663, 632, 601, 570, 539,
508, 477, 446, 415, 1005, 974, 943, 912, 881, 850, 819, 788, 757,
726, 695, 664, 633, 602, 571, 540, 509, 478, 447, 1006, 975, 944,
913, 882, 851, 820, 789, 758, 727, 696, 665, 634, 603, 572, 541,
510, 479, 1007, 976, 945, 914, 883, 852, 821, 790, 759, 728, 697,
666, 635, 604, 573, 542, 511, 1008, 977, 946, 915, 884, 853, 822,
791, 760, 729, 698, 667, 636, 605, 574, 543, 1009, 978, 947, 916,
885, 854, 823, 792, 761, 730, 699, 668, 637, 606, 575, 1010, 979,
948, 917, 886, 855, 824, 793, 762, 731, 700, 669, 638, 607, 1011,
980, 949, 918, 887, 856, 825, 794, 763, 732, 701, 670, 639, 1012,
981, 950, 919, 888, 857, 826, 795, 764, 733, 702, 671, 1013, 982,
951, 920, 889, 858, 827, 796, 765, 734, 703, 1014, 983, 952, 921,
890, 859, 828, 797, 766, 735, 1015, 984, 953, 922, 891, 860, 829,
798, 767, 1016, 985, 954, 923, 892, 861, 830, 799, 1017, 986, 955,
924, 893, 862, 831, 1018, 987, 956, 925, 894, 863, 1019, 988, 957,
926, 895, 1020, 989, 958, 927, 1021, 990, 959, 1022, 991, 1023, 0, // 32x64
32, 1, 64, 33, 2, 96, 65, 34, 3, 128, 97, 66, 35,
4, 160, 129, 98, 67, 36, 5, 192, 161, 130, 99, 68, 37,
6, 224, 193, 162, 131, 100, 69, 38, 7, 256, 225, 194, 163,
132, 101, 70, 39, 8, 288, 257, 226, 195, 164, 133, 102, 71,
40, 9, 320, 289, 258, 227, 196, 165, 134, 103, 72, 41, 10,
352, 321, 290, 259, 228, 197, 166, 135, 104, 73, 42, 11, 384,
353, 322, 291, 260, 229, 198, 167, 136, 105, 74, 43, 12, 416,
385, 354, 323, 292, 261, 230, 199, 168, 137, 106, 75, 44, 13,
448, 417, 386, 355, 324, 293, 262, 231, 200, 169, 138, 107, 76,
45, 14, 480, 449, 418, 387, 356, 325, 294, 263, 232, 201, 170,
139, 108, 77, 46, 15, 512, 481, 450, 419, 388, 357, 326, 295,
264, 233, 202, 171, 140, 109, 78, 47, 16, 544, 513, 482, 451,
420, 389, 358, 327, 296, 265, 234, 203, 172, 141, 110, 79, 48,
17, 576, 545, 514, 483, 452, 421, 390, 359, 328, 297, 266, 235,
204, 173, 142, 111, 80, 49, 18, 608, 577, 546, 515, 484, 453,
422, 391, 360, 329, 298, 267, 236, 205, 174, 143, 112, 81, 50,
19, 640, 609, 578, 547, 516, 485, 454, 423, 392, 361, 330, 299,
268, 237, 206, 175, 144, 113, 82, 51, 20, 672, 641, 610, 579,
548, 517, 486, 455, 424, 393, 362, 331, 300, 269, 238, 207, 176,
145, 114, 83, 52, 21, 704, 673, 642, 611, 580, 549, 518, 487,
456, 425, 394, 363, 332, 301, 270, 239, 208, 177, 146, 115, 84,
53, 22, 736, 705, 674, 643, 612, 581, 550, 519, 488, 457, 426,
395, 364, 333, 302, 271, 240, 209, 178, 147, 116, 85, 54, 23,
768, 737, 706, 675, 644, 613, 582, 551, 520, 489, 458, 427, 396,
365, 334, 303, 272, 241, 210, 179, 148, 117, 86, 55, 24, 800,
769, 738, 707, 676, 645, 614, 583, 552, 521, 490, 459, 428, 397,
366, 335, 304, 273, 242, 211, 180, 149, 118, 87, 56, 25, 832,
801, 770, 739, 708, 677, 646, 615, 584, 553, 522, 491, 460, 429,
398, 367, 336, 305, 274, 243, 212, 181, 150, 119, 88, 57, 26,
864, 833, 802, 771, 740, 709, 678, 647, 616, 585, 554, 523, 492,
461, 430, 399, 368, 337, 306, 275, 244, 213, 182, 151, 120, 89,
58, 27, 896, 865, 834, 803, 772, 741, 710, 679, 648, 617, 586,
555, 524, 493, 462, 431, 400, 369, 338, 307, 276, 245, 214, 183,
152, 121, 90, 59, 28, 928, 897, 866, 835, 804, 773, 742, 711,
680, 649, 618, 587, 556, 525, 494, 463, 432, 401, 370, 339, 308,
277, 246, 215, 184, 153, 122, 91, 60, 29, 960, 929, 898, 867,
836, 805, 774, 743, 712, 681, 650, 619, 588, 557, 526, 495, 464,
433, 402, 371, 340, 309, 278, 247, 216, 185, 154, 123, 92, 61,
30, 992, 961, 930, 899, 868, 837, 806, 775, 744, 713, 682, 651,
620, 589, 558, 527, 496, 465, 434, 403, 372, 341, 310, 279, 248,
217, 186, 155, 124, 93, 62, 31, 1024, 993, 962, 931, 900, 869,
838, 807, 776, 745, 714, 683, 652, 621, 590, 559, 528, 497, 466,
435, 404, 373, 342, 311, 280, 249, 218, 187, 156, 125, 94, 63,
1056, 1025, 994, 963, 932, 901, 870, 839, 808, 777, 746, 715, 684,
653, 622, 591, 560, 529, 498, 467, 436, 405, 374, 343, 312, 281,
250, 219, 188, 157, 126, 95, 1088, 1057, 1026, 995, 964, 933, 902,
871, 840, 809, 778, 747, 716, 685, 654, 623, 592, 561, 530, 499,
468, 437, 406, 375, 344, 313, 282, 251, 220, 189, 158, 127, 1120,
1089, 1058, 1027, 996, 965, 934, 903, 872, 841, 810, 779, 748, 717,
686, 655, 624, 593, 562, 531, 500, 469, 438, 407, 376, 345, 314,
283, 252, 221, 190, 159, 1152, 1121, 1090, 1059, 1028, 997, 966, 935,
904, 873, 842, 811, 780, 749, 718, 687, 656, 625, 594, 563, 532,
501, 470, 439, 408, 377, 346, 315, 284, 253, 222, 191, 1184, 1153,
1122, 1091, 1060, 1029, 998, 967, 936, 905, 874, 843, 812, 781, 750,
719, 688, 657, 626, 595, 564, 533, 502, 471, 440, 409, 378, 347,
316, 285, 254, 223, 1216, 1185, 1154, 1123, 1092, 1061, 1030, 999, 968,
937, 906, 875, 844, 813, 782, 751, 720, 689, 658, 627, 596, 565,
534, 503, 472, 441, 410, 379, 348, 317, 286, 255, 1248, 1217, 1186,
1155, 1124, 1093, 1062, 1031, 1000, 969, 938, 907, 876, 845, 814, 783,
752, 721, 690, 659, 628, 597, 566, 535, 504, 473, 442, 411, 380,
349, 318, 287, 1280, 1249, 1218, 1187, 1156, 1125, 1094, 1063, 1032, 1001,
970, 939, 908, 877, 846, 815, 784, 753, 722, 691, 660, 629, 598,
567, 536, 505, 474, 443, 412, 381, 350, 319, 1312, 1281, 1250, 1219,
1188, 1157, 1126, 1095, 1064, 1033, 1002, 971, 940, 909, 878, 847, 816,
785, 754, 723, 692, 661, 630, 599, 568, 537, 506, 475, 444, 413,
382, 351, 1344, 1313, 1282, 1251, 1220, 1189, 1158, 1127, 1096, 1065, 1034,
1003, 972, 941, 910, 879, 848, 817, 786, 755, 724, 693, 662, 631,
600, 569, 538, 507, 476, 445, 414, 383, 1376, 1345, 1314, 1283, 1252,
1221, 1190, 1159, 1128, 1097, 1066, 1035, 1004, 973, 942, 911, 880, 849,
818, 787, 756, 725, 694, 663, 632, 601, 570, 539, 508, 477, 446,
415, 1408, 1377, 1346, 1315, 1284, 1253, 1222, 1191, 1160, 1129, 1098, 1067,
1036, 1005, 974, 943, 912, 881, 850, 819, 788, 757, 726, 695, 664,
633, 602, 571, 540, 509, 478, 447, 1440, 1409, 1378, 1347, 1316, 1285,
1254, 1223, 1192, 1161, 1130, 1099, 1068, 1037, 1006, 975, 944, 913, 882,
851, 820, 789, 758, 727, 696, 665, 634, 603, 572, 541, 510, 479,
1472, 1441, 1410, 1379, 1348, 1317, 1286, 1255, 1224, 1193, 1162, 1131, 1100,
1069, 1038, 1007, 976, 945, 914, 883, 852, 821, 790, 759, 728, 697,
666, 635, 604, 573, 542, 511, 1504, 1473, 1442, 1411, 1380, 1349, 1318,
1287, 1256, 1225, 1194, 1163, 1132, 1101, 1070, 1039, 1008, 977, 946, 915,
884, 853, 822, 791, 760, 729, 698, 667, 636, 605, 574, 543, 1536,
1505, 1474, 1443, 1412, 1381, 1350, 1319, 1288, 1257, 1226, 1195, 1164, 1133,
1102, 1071, 1040, 1009, 978, 947, 916, 885, 854, 823, 792, 761, 730,
699, 668, 637, 606, 575, 1568, 1537, 1506, 1475, 1444, 1413, 1382, 1351,
1320, 1289, 1258, 1227, 1196, 1165, 1134, 1103, 1072, 1041, 1010, 979, 948,
917, 886, 855, 824, 793, 762, 731, 700, 669, 638, 607, 1600, 1569,
1538, 1507, 1476, 1445, 1414, 1383, 1352, 1321, 1290, 1259, 1228, 1197, 1166,
1135, 1104, 1073, 1042, 1011, 980, 949, 918, 887, 856, 825, 794, 763,
732, 701, 670, 639, 1632, 1601, 1570, 1539, 1508, 1477, 1446, 1415, 1384,
1353, 1322, 1291, 1260, 1229, 1198, 1167, 1136, 1105, 1074, 1043, 1012, 981,
950, 919, 888, 857, 826, 795, 764, 733, 702, 671, 1664, 1633, 1602,
1571, 1540, 1509, 1478, 1447, 1416, 1385, 1354, 1323, 1292, 1261, 1230, 1199,
1168, 1137, 1106, 1075, 1044, 1013, 982, 951, 920, 889, 858, 827, 796,
765, 734, 703, 1696, 1665, 1634, 1603, 1572, 1541, 1510, 1479, 1448, 1417,
1386, 1355, 1324, 1293, 1262, 1231, 1200, 1169, 1138, 1107, 1076, 1045, 1014,
983, 952, 921, 890, 859, 828, 797, 766, 735, 1728, 1697, 1666, 1635,
1604, 1573, 1542, 1511, 1480, 1449, 1418, 1387, 1356, 1325, 1294, 1263, 1232,
1201, 1170, 1139, 1108, 1077, 1046, 1015, 984, 953, 922, 891, 860, 829,
798, 767, 1760, 1729, 1698, 1667, 1636, 1605, 1574, 1543, 1512, 1481, 1450,
1419, 1388, 1357, 1326, 1295, 1264, 1233, 1202, 1171, 1140, 1109, 1078, 1047,
1016, 985, 954, 923, 892, 861, 830, 799, 1792, 1761, 1730, 1699, 1668,
1637, 1606, 1575, 1544, 1513, 1482, 1451, 1420, 1389, 1358, 1327, 1296, 1265,
1234, 1203, 1172, 1141, 1110, 1079, 1048, 1017, 986, 955, 924, 893, 862,
831, 1824, 1793, 1762, 1731, 1700, 1669, 1638, 1607, 1576, 1545, 1514, 1483,
1452, 1421, 1390, 1359, 1328, 1297, 1266, 1235, 1204, 1173, 1142, 1111, 1080,
1049, 1018, 987, 956, 925, 894, 863, 1856, 1825, 1794, 1763, 1732, 1701,
1670, 1639, 1608, 1577, 1546, 1515, 1484, 1453, 1422, 1391, 1360, 1329, 1298,
1267, 1236, 1205, 1174, 1143, 1112, 1081, 1050, 1019, 988, 957, 926, 895,
1888, 1857, 1826, 1795, 1764, 1733, 1702, 1671, 1640, 1609, 1578, 1547, 1516,
1485, 1454, 1423, 1392, 1361, 1330, 1299, 1268, 1237, 1206, 1175, 1144, 1113,
1082, 1051, 1020, 989, 958, 927, 1920, 1889, 1858, 1827, 1796, 1765, 1734,
1703, 1672, 1641, 1610, 1579, 1548, 1517, 1486, 1455, 1424, 1393, 1362, 1331,
1300, 1269, 1238, 1207, 1176, 1145, 1114, 1083, 1052, 1021, 990, 959, 1952,
1921, 1890, 1859, 1828, 1797, 1766, 1735, 1704, 1673, 1642, 1611, 1580, 1549,
1518, 1487, 1456, 1425, 1394, 1363, 1332, 1301, 1270, 1239, 1208, 1177, 1146,
1115, 1084, 1053, 1022, 991, 1984, 1953, 1922, 1891, 1860, 1829, 1798, 1767,
1736, 1705, 1674, 1643, 1612, 1581, 1550, 1519, 1488, 1457, 1426, 1395, 1364,
1333, 1302, 1271, 1240, 1209, 1178, 1147, 1116, 1085, 1054, 1023, 2016, 1985,
1954, 1923, 1892, 1861, 1830, 1799, 1768, 1737, 1706, 1675, 1644, 1613, 1582,
1551, 1520, 1489, 1458, 1427, 1396, 1365, 1334, 1303, 1272, 1241, 1210, 1179,
1148, 1117, 1086, 1055, 2017, 1986, 1955, 1924, 1893, 1862, 1831, 1800, 1769,
1738, 1707, 1676, 1645, 1614, 1583, 1552, 1521, 1490, 1459, 1428, 1397, 1366,
1335, 1304, 1273, 1242, 1211, 1180, 1149, 1118, 1087, 2018, 1987, 1956, 1925,
1894, 1863, 1832, 1801, 1770, 1739, 1708, 1677, 1646, 1615, 1584, 1553, 1522,
1491, 1460, 1429, 1398, 1367, 1336, 1305, 1274, 1243, 1212, 1181, 1150, 1119,
2019, 1988, 1957, 1926, 1895, 1864, 1833, 1802, 1771, 1740, 1709, 1678, 1647,
1616, 1585, 1554, 1523, 1492, 1461, 1430, 1399, 1368, 1337, 1306, 1275, 1244,
1213, 1182, 1151, 2020, 1989, 1958, 1927, 1896, 1865, 1834, 1803, 1772, 1741,
1710, 1679, 1648, 1617, 1586, 1555, 1524, 1493, 1462, 1431, 1400, 1369, 1338,
1307, 1276, 1245, 1214, 1183, 2021, 1990, 1959, 1928, 1897, 1866, 1835, 1804,
1773, 1742, 1711, 1680, 1649, 1618, 1587, 1556, 1525, 1494, 1463, 1432, 1401,
1370, 1339, 1308, 1277, 1246, 1215, 2022, 1991, 1960, 1929, 1898, 1867, 1836,
1805, 1774, 1743, 1712, 1681, 1650, 1619, 1588, 1557, 1526, 1495, 1464, 1433,
1402, 1371, 1340, 1309, 1278, 1247, 2023, 1992, 1961, 1930, 1899, 1868, 1837,
1806, 1775, 1744, 1713, 1682, 1651, 1620, 1589, 1558, 1527, 1496, 1465, 1434,
1403, 1372, 1341, 1310, 1279, 2024, 1993, 1962, 1931, 1900, 1869, 1838, 1807,
1776, 1745, 1714, 1683, 1652, 1621, 1590, 1559, 1528, 1497, 1466, 1435, 1404,
1373, 1342, 1311, 2025, 1994, 1963, 1932, 1901, 1870, 1839, 1808, 1777, 1746,
1715, 1684, 1653, 1622, 1591, 1560, 1529, 1498, 1467, 1436, 1405, 1374, 1343,
2026, 1995, 1964, 1933, 1902, 1871, 1840, 1809, 1778, 1747, 1716, 1685, 1654,
1623, 1592, 1561, 1530, 1499, 1468, 1437, 1406, 1375, 2027, 1996, 1965, 1934,
1903, 1872, 1841, 1810, 1779, 1748, 1717, 1686, 1655, 1624, 1593, 1562, 1531,
1500, 1469, 1438, 1407, 2028, 1997, 1966, 1935, 1904, 1873, 1842, 1811, 1780,
1749, 1718, 1687, 1656, 1625, 1594, 1563, 1532, 1501, 1470, 1439, 2029, 1998,
1967, 1936, 1905, 1874, 1843, 1812, 1781, 1750, 1719, 1688, 1657, 1626, 1595,
1564, 1533, 1502, 1471, 2030, 1999, 1968, 1937, 1906, 1875, 1844, 1813, 1782,
1751, 1720, 1689, 1658, 1627, 1596, 1565, 1534, 1503, 2031, 2000, 1969, 1938,
1907, 1876, 1845, 1814, 1783, 1752, 1721, 1690, 1659, 1628, 1597, 1566, 1535,
2032, 2001, 1970, 1939, 1908, 1877, 1846, 1815, 1784, 1753, 1722, 1691, 1660,
1629, 1598, 1567, 2033, 2002, 1971, 1940, 1909, 1878, 1847, 1816, 1785, 1754,
1723, 1692, 1661, 1630, 1599, 2034, 2003, 1972, 1941, 1910, 1879, 1848, 1817,
1786, 1755, 1724, 1693, 1662, 1631, 2035, 2004, 1973, 1942, 1911, 1880, 1849,
1818, 1787, 1756, 1725, 1694, 1663, 2036, 2005, 1974, 1943, 1912, 1881, 1850,
1819, 1788, 1757, 1726, 1695, 2037, 2006, 1975, 1944, 1913, 1882, 1851, 1820,
1789, 1758, 1727, 2038, 2007, 1976, 1945, 1914, 1883, 1852, 1821, 1790, 1759,
2039, 2008, 1977, 1946, 1915, 1884, 1853, 1822, 1791, 2040, 2009, 1978, 1947,
1916, 1885, 1854, 1823, 2041, 2010, 1979, 1948, 1917, 1886, 1855, 2042, 2011,
1980, 1949, 1918, 1887, 2043, 2012, 1981, 1950, 1919, 2044, 2013, 1982, 1951,
2045, 2014, 1983, 2046, 2015, 2047, 0, 1, 2, 3, 4, 5, 6, // 64xN
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
59, 60, 61, 62, 63, 0, 64, 1, 65, 2, 66, 3, 67, // 64x2
4, 68, 5, 69, 6, 70, 7, 71, 8, 72, 9, 73, 10,
74, 11, 75, 12, 76, 13, 77, 14, 78, 15, 79, 16, 80,
17, 81, 18, 82, 19, 83, 20, 84, 21, 85, 22, 86, 23,
87, 24, 88, 25, 89, 26, 90, 27, 91, 28, 92, 29, 93,
30, 94, 31, 95, 32, 96, 33, 97, 34, 98, 35, 99, 36,
100, 37, 101, 38, 102, 39, 103, 40, 104, 41, 105, 42, 106,
43, 107, 44, 108, 45, 109, 46, 110, 47, 111, 48, 112, 49,
113, 50, 114, 51, 115, 52, 116, 53, 117, 54, 118, 55, 119,
56, 120, 57, 121, 58, 122, 59, 123, 60, 124, 61, 125, 62,
126, 63, 127, 0, 64, 1, 128, 65, 2, 192, 129, 66, 3, // 64x4
193, 130, 67, 4, 194, 131, 68, 5, 195, 132, 69, 6, 196,
133, 70, 7, 197, 134, 71, 8, 198, 135, 72, 9, 199, 136,
73, 10, 200, 137, 74, 11, 201, 138, 75, 12, 202, 139, 76,
13, 203, 140, 77, 14, 204, 141, 78, 15, 205, 142, 79, 16,
206, 143, 80, 17, 207, 144, 81, 18, 208, 145, 82, 19, 209,
146, 83, 20, 210, 147, 84, 21, 211, 148, 85, 22, 212, 149,
86, 23, 213, 150, 87, 24, 214, 151, 88, 25, 215, 152, 89,
26, 216, 153, 90, 27, 217, 154, 91, 28, 218, 155, 92, 29,
219, 156, 93, 30, 220, 157, 94, 31, 221, 158, 95, 32, 222,
159, 96, 33, 223, 160, 97, 34, 224, 161, 98, 35, 225, 162,
99, 36, 226, 163, 100, 37, 227, 164, 101, 38, 228, 165, 102,
39, 229, 166, 103, 40, 230, 167, 104, 41, 231, 168, 105, 42,
232, 169, 106, 43, 233, 170, 107, 44, 234, 171, 108, 45, 235,
172, 109, 46, 236, 173, 110, 47, 237, 174, 111, 48, 238, 175,
112, 49, 239, 176, 113, 50, 240, 177, 114, 51, 241, 178, 115,
52, 242, 179, 116, 53, 243, 180, 117, 54, 244, 181, 118, 55,
245, 182, 119, 56, 246, 183, 120, 57, 247, 184, 121, 58, 248,
185, 122, 59, 249, 186, 123, 60, 250, 187, 124, 61, 251, 188,
125, 62, 252, 189, 126, 63, 253, 190, 127, 254, 191, 255, 0, // 64x8
64, 1, 128, 65, 2, 192, 129, 66, 3, 256, 193, 130, 67,
4, 320, 257, 194, 131, 68, 5, 384, 321, 258, 195, 132, 69,
6, 448, 385, 322, 259, 196, 133, 70, 7, 449, 386, 323, 260,
197, 134, 71, 8, 450, 387, 324, 261, 198, 135, 72, 9, 451,
388, 325, 262, 199, 136, 73, 10, 452, 389, 326, 263, 200, 137,
74, 11, 453, 390, 327, 264, 201, 138, 75, 12, 454, 391, 328,
265, 202, 139, 76, 13, 455, 392, 329, 266, 203, 140, 77, 14,
456, 393, 330, 267, 204, 141, 78, 15, 457, 394, 331, 268, 205,
142, 79, 16, 458, 395, 332, 269, 206, 143, 80, 17, 459, 396,
333, 270, 207, 144, 81, 18, 460, 397, 334, 271, 208, 145, 82,
19, 461, 398, 335, 272, 209, 146, 83, 20, 462, 399, 336, 273,
210, 147, 84, 21, 463, 400, 337, 274, 211, 148, 85, 22, 464,
401, 338, 275, 212, 149, 86, 23, 465, 402, 339, 276, 213, 150,
87, 24, 466, 403, 340, 277, 214, 151, 88, 25, 467, 404, 341,
278, 215, 152, 89, 26, 468, 405, 342, 279, 216, 153, 90, 27,
469, 406, 343, 280, 217, 154, 91, 28, 470, 407, 344, 281, 218,
155, 92, 29, 471, 408, 345, 282, 219, 156, 93, 30, 472, 409,
346, 283, 220, 157, 94, 31, 473, 410, 347, 284, 221, 158, 95,
32, 474, 411, 348, 285, 222, 159, 96, 33, 475, 412, 349, 286,
223, 160, 97, 34, 476, 413, 350, 287, 224, 161, 98, 35, 477,
414, 351, 288, 225, 162, 99, 36, 478, 415, 352, 289, 226, 163,
100, 37, 479, 416, 353, 290, 227, 164, 101, 38, 480, 417, 354,
291, 228, 165, 102, 39, 481, 418, 355, 292, 229, 166, 103, 40,
482, 419, 356, 293, 230, 167, 104, 41, 483, 420, 357, 294, 231,
168, 105, 42, 484, 421, 358, 295, 232, 169, 106, 43, 485, 422,
359, 296, 233, 170, 107, 44, 486, 423, 360, 297, 234, 171, 108,
45, 487, 424, 361, 298, 235, 172, 109, 46, 488, 425, 362, 299,
236, 173, 110, 47, 489, 426, 363, 300, 237, 174, 111, 48, 490,
427, 364, 301, 238, 175, 112, 49, 491, 428, 365, 302, 239, 176,
113, 50, 492, 429, 366, 303, 240, 177, 114, 51, 493, 430, 367,
304, 241, 178, 115, 52, 494, 431, 368, 305, 242, 179, 116, 53,
495, 432, 369, 306, 243, 180, 117, 54, 496, 433, 370, 307, 244,
181, 118, 55, 497, 434, 371, 308, 245, 182, 119, 56, 498, 435,
372, 309, 246, 183, 120, 57, 499, 436, 373, 310, 247, 184, 121,
58, 500, 437, 374, 311, 248, 185, 122, 59, 501, 438, 375, 312,
249, 186, 123, 60, 502, 439, 376, 313, 250, 187, 124, 61, 503,
440, 377, 314, 251, 188, 125, 62, 504, 441, 378, 315, 252, 189,
126, 63, 505, 442, 379, 316, 253, 190, 127, 506, 443, 380, 317,
254, 191, 507, 444, 381, 318, 255, 508, 445, 382, 319, 509, 446,
383, 510, 447, 511, 0, 64, 1, 128, 65, 2, 192, 129, 66, // 64x16
3, 256, 193, 130, 67, 4, 320, 257, 194, 131, 68, 5, 384,
321, 258, 195, 132, 69, 6, 448, 385, 322, 259, 196, 133, 70,
7, 512, 449, 386, 323, 260, 197, 134, 71, 8, 576, 513, 450,
387, 324, 261, 198, 135, 72, 9, 640, 577, 514, 451, 388, 325,
262, 199, 136, 73, 10, 704, 641, 578, 515, 452, 389, 326, 263,
200, 137, 74, 11, 768, 705, 642, 579, 516, 453, 390, 327, 264,
201, 138, 75, 12, 832, 769, 706, 643, 580, 517, 454, 391, 328,
265, 202, 139, 76, 13, 896, 833, 770, 707, 644, 581, 518, 455,
392, 329, 266, 203, 140, 77, 14, 960, 897, 834, 771, 708, 645,
582, 519, 456, 393, 330, 267, 204, 141, 78, 15, 961, 898, 835,
772, 709, 646, 583, 520, 457, 394, 331, 268, 205, 142, 79, 16,
962, 899, 836, 773, 710, 647, 584, 521, 458, 395, 332, 269, 206,
143, 80, 17, 963, 900, 837, 774, 711, 648, 585, 522, 459, 396,
333, 270, 207, 144, 81, 18, 964, 901, 838, 775, 712, 649, 586,
523, 460, 397, 334, 271, 208, 145, 82, 19, 965, 902, 839, 776,
713, 650, 587, 524, 461, 398, 335, 272, 209, 146, 83, 20, 966,
903, 840, 777, 714, 651, 588, 525, 462, 399, 336, 273, 210, 147,
84, 21, 967, 904, 841, 778, 715, 652, 589, 526, 463, 400, 337,
274, 211, 148, 85, 22, 968, 905, 842, 779, 716, 653, 590, 527,
464, 401, 338, 275, 212, 149, 86, 23, 969, 906, 843, 780, 717,
654, 591, 528, 465, 402, 339, 276, 213, 150, 87, 24, 970, 907,
844, 781, 718, 655, 592, 529, 466, 403, 340, 277, 214, 151, 88,
25, 971, 908, 845, 782, 719, 656, 593, 530, 467, 404, 341, 278,
215, 152, 89, 26, 972, 909, 846, 783, 720, 657, 594, 531, 468,
405, 342, 279, 216, 153, 90, 27, 973, 910, 847, 784, 721, 658,
595, 532, 469, 406, 343, 280, 217, 154, 91, 28, 974, 911, 848,
785, 722, 659, 596, 533, 470, 407, 344, 281, 218, 155, 92, 29,
975, 912, 849, 786, 723, 660, 597, 534, 471, 408, 345, 282, 219,
156, 93, 30, 976, 913, 850, 787, 724, 661, 598, 535, 472, 409,
346, 283, 220, 157, 94, 31, 977, 914, 851, 788, 725, 662, 599,
536, 473, 410, 347, 284, 221, 158, 95, 32, 978, 915, 852, 789,
726, 663, 600, 537, 474, 411, 348, 285, 222, 159, 96, 33, 979,
916, 853, 790, 727, 664, 601, 538, 475, 412, 349, 286, 223, 160,
97, 34, 980, 917, 854, 791, 728, 665, 602, 539, 476, 413, 350,
287, 224, 161, 98, 35, 981, 918, 855, 792, 729, 666, 603, 540,
477, 414, 351, 288, 225, 162, 99, 36, 982, 919, 856, 793, 730,
667, 604, 541, 478, 415, 352, 289, 226, 163, 100, 37, 983, 920,
857, 794, 731, 668, 605, 542, 479, 416, 353, 290, 227, 164, 101,
38, 984, 921, 858, 795, 732, 669, 606, 543, 480, 417, 354, 291,
228, 165, 102, 39, 985, 922, 859, 796, 733, 670, 607, 544, 481,
418, 355, 292, 229, 166, 103, 40, 986, 923, 860, 797, 734, 671,
608, 545, 482, 419, 356, 293, 230, 167, 104, 41, 987, 924, 861,
798, 735, 672, 609, 546, 483, 420, 357, 294, 231, 168, 105, 42,
988, 925, 862, 799, 736, 673, 610, 547, 484, 421, 358, 295, 232,
169, 106, 43, 989, 926, 863, 800, 737, 674, 611, 548, 485, 422,
359, 296, 233, 170, 107, 44, 990, 927, 864, 801, 738, 675, 612,
549, 486, 423, 360, 297, 234, 171, 108, 45, 991, 928, 865, 802,
739, 676, 613, 550, 487, 424, 361, 298, 235, 172, 109, 46, 992,
929, 866, 803, 740, 677, 614, 551, 488, 425, 362, 299, 236, 173,
110, 47, 993, 930, 867, 804, 741, 678, 615, 552, 489, 426, 363,
300, 237, 174, 111, 48, 994, 931, 868, 805, 742, 679, 616, 553,
490, 427, 364, 301, 238, 175, 112, 49, 995, 932, 869, 806, 743,
680, 617, 554, 491, 428, 365, 302, 239, 176, 113, 50, 996, 933,
870, 807, 744, 681, 618, 555, 492, 429, 366, 303, 240, 177, 114,
51, 997, 934, 871, 808, 745, 682, 619, 556, 493, 430, 367, 304,
241, 178, 115, 52, 998, 935, 872, 809, 746, 683, 620, 557, 494,
431, 368, 305, 242, 179, 116, 53, 999, 936, 873, 810, 747, 684,
621, 558, 495, 432, 369, 306, 243, 180, 117, 54, 1000, 937, 874,
811, 748, 685, 622, 559, 496, 433, 370, 307, 244, 181, 118, 55,
1001, 938, 875, 812, 749, 686, 623, 560, 497, 434, 371, 308, 245,
182, 119, 56, 1002, 939, 876, 813, 750, 687, 624, 561, 498, 435,
372, 309, 246, 183, 120, 57, 1003, 940, 877, 814, 751, 688, 625,
562, 499, 436, 373, 310, 247, 184, 121, 58, 1004, 941, 878, 815,
752, 689, 626, 563, 500, 437, 374, 311, 248, 185, 122, 59, 1005,
942, 879, 816, 753, 690, 627, 564, 501, 438, 375, 312, 249, 186,
123, 60, 1006, 943, 880, 817, 754, 691, 628, 565, 502, 439, 376,
313, 250, 187, 124, 61, 1007, 944, 881, 818, 755, 692, 629, 566,
503, 440, 377, 314, 251, 188, 125, 62, 1008, 945, 882, 819, 756,
693, 630, 567, 504, 441, 378, 315, 252, 189, 126, 63, 1009, 946,
883, 820, 757, 694, 631, 568, 505, 442, 379, 316, 253, 190, 127,
1010, 947, 884, 821, 758, 695, 632, 569, 506, 443, 380, 317, 254,
191, 1011, 948, 885, 822, 759, 696, 633, 570, 507, 444, 381, 318,
255, 1012, 949, 886, 823, 760, 697, 634, 571, 508, 445, 382, 319,
1013, 950, 887, 824, 761, 698, 635, 572, 509, 446, 383, 1014, 951,
888, 825, 762, 699, 636, 573, 510, 447, 1015, 952, 889, 826, 763,
700, 637, 574, 511, 1016, 953, 890, 827, 764, 701, 638, 575, 1017,
954, 891, 828, 765, 702, 639, 1018, 955, 892, 829, 766, 703, 1019,
956, 893, 830, 767, 1020, 957, 894, 831, 1021, 958, 895, 1022, 959,
1023, 0, 64, 1, 128, 65, 2, 192, 129, 66, 3, 256, 193, // 64x32
130, 67, 4, 320, 257, 194, 131, 68, 5, 384, 321, 258, 195,
132, 69, 6, 448, 385, 322, 259, 196, 133, 70, 7, 512, 449,
386, 323, 260, 197, 134, 71, 8, 576, 513, 450, 387, 324, 261,
198, 135, 72, 9, 640, 577, 514, 451, 388, 325, 262, 199, 136,
73, 10, 704, 641, 578, 515, 452, 389, 326, 263, 200, 137, 74,
11, 768, 705, 642, 579, 516, 453, 390, 327, 264, 201, 138, 75,
12, 832, 769, 706, 643, 580, 517, 454, 391, 328, 265, 202, 139,
76, 13, 896, 833, 770, 707, 644, 581, 518, 455, 392, 329, 266,
203, 140, 77, 14, 960, 897, 834, 771, 708, 645, 582, 519, 456,
393, 330, 267, 204, 141, 78, 15, 1024, 961, 898, 835, 772, 709,
646, 583, 520, 457, 394, 331, 268, 205, 142, 79, 16, 1088, 1025,
962, 899, 836, 773, 710, 647, 584, 521, 458, 395, 332, 269, 206,
143, 80, 17, 1152, 1089, 1026, 963, 900, 837, 774, 711, 648, 585,
522, 459, 396, 333, 270, 207, 144, 81, 18, 1216, 1153, 1090, 1027,
964, 901, 838, 775, 712, 649, 586, 523, 460, 397, 334, 271, 208,
145, 82, 19, 1280, 1217, 1154, 1091, 1028, 965, 902, 839, 776, 713,
650, 587, 524, 461, 398, 335, 272, 209, 146, 83, 20, 1344, 1281,
1218, 1155, 1092, 1029, 966, 903, 840, 777, 714, 651, 588, 525, 462,
399, 336, 273, 210, 147, 84, 21, 1408, 1345, 1282, 1219, 1156, 1093,
1030, 967, 904, 841, 778, 715, 652, 589, 526, 463, 400, 337, 274,
211, 148, 85, 22, 1472, 1409, 1346, 1283, 1220, 1157, 1094, 1031, 968,
905, 842, 779, 716, 653, 590, 527, 464, 401, 338, 275, 212, 149,
86, 23, 1536, 1473, 1410, 1347, 1284, 1221, 1158, 1095, 1032, 969, 906,
843, 780, 717, 654, 591, 528, 465, 402, 339, 276, 213, 150, 87,
24, 1600, 1537, 1474, 1411, 1348, 1285, 1222, 1159, 1096, 1033, 970, 907,
844, 781, 718, 655, 592, 529, 466, 403, 340, 277, 214, 151, 88,
25, 1664, 1601, 1538, 1475, 1412, 1349, 1286, 1223, 1160, 1097, 1034, 971,
908, 845, 782, 719, 656, 593, 530, 467, 404, 341, 278, 215, 152,
89, 26, 1728, 1665, 1602, 1539, 1476, 1413, 1350, 1287, 1224, 1161, 1098,
1035, 972, 909, 846, 783, 720, 657, 594, 531, 468, 405, 342, 279,
216, 153, 90, 27, 1792, 1729, 1666, 1603, 1540, 1477, 1414, 1351, 1288,
1225, 1162, 1099, 1036, 973, 910, 847, 784, 721, 658, 595, 532, 469,
406, 343, 280, 217, 154, 91, 28, 1856, 1793, 1730, 1667, 1604, 1541,
1478, 1415, 1352, 1289, 1226, 1163, 1100, 1037, 974, 911, 848, 785, 722,
659, 596, 533, 470, 407, 344, 281, 218, 155, 92, 29, 1920, 1857,
1794, 1731, 1668, 1605, 1542, 1479, 1416, 1353, 1290, 1227, 1164, 1101, 1038,
975, 912, 849, 786, 723, 660, 597, 534, 471, 408, 345, 282, 219,
156, 93, 30, 1984, 1921, 1858, 1795, 1732, 1669, 1606, 1543, 1480, 1417,
1354, 1291, 1228, 1165, 1102, 1039, 976, 913, 850, 787, 724, 661, 598,
535, 472, 409, 346, 283, 220, 157, 94, 31, 1985, 1922, 1859, 1796,
1733, 1670, 1607, 1544, 1481, 1418, 1355, 1292, 1229, 1166, 1103, 1040, 977,
914, 851, 788, 725, 662, 599, 536, 473, 410, 347, 284, 221, 158,
95, 32, 1986, 1923, 1860, 1797, 1734, 1671, 1608, 1545, 1482, 1419, 1356,
1293, 1230, 1167, 1104, 1041, 978, 915, 852, 789, 726, 663, 600, 537,
474, 411, 348, 285, 222, 159, 96, 33, 1987, 1924, 1861, 1798, 1735,
1672, 1609, 1546, 1483, 1420, 1357, 1294, 1231, 1168, 1105, 1042, 979, 916,
853, 790, 727, 664, 601, 538, 475, 412, 349, 286, 223, 160, 97,
34, 1988, 1925, 1862, 1799, 1736, 1673, 1610, 1547, 1484, 1421, 1358, 1295,
1232, 1169, 1106, 1043, 980, 917, 854, 791, 728, 665, 602, 539, 476,
413, 350, 287, 224, 161, 98, 35, 1989, 1926, 1863, 1800, 1737, 1674,
1611, 1548, 1485, 1422, 1359, 1296, 1233, 1170, 1107, 1044, 981, 918, 855,
792, 729, 666, 603, 540, 477, 414, 351, 288, 225, 162, 99, 36,
1990, 1927, 1864, 1801, 1738, 1675, 1612, 1549, 1486, 1423, 1360, 1297, 1234,
1171, 1108, 1045, 982, 919, 856, 793, 730, 667, 604, 541, 478, 415,
352, 289, 226, 163, 100, 37, 1991, 1928, 1865, 1802, 1739, 1676, 1613,
1550, 1487, 1424, 1361, 1298, 1235, 1172, 1109, 1046, 983, 920, 857, 794,
731, 668, 605, 542, 479, 416, 353, 290, 227, 164, 101, 38, 1992,
1929, 1866, 1803, 1740, 1677, 1614, 1551, 1488, 1425, 1362, 1299, 1236, 1173,
1110, 1047, 984, 921, 858, 795, 732, 669, 606, 543, 480, 417, 354,
291, 228, 165, 102, 39, 1993, 1930, 1867, 1804, 1741, 1678, 1615, 1552,
1489, 1426, 1363, 1300, 1237, 1174, 1111, 1048, 985, 922, 859, 796, 733,
670, 607, 544, 481, 418, 355, 292, 229, 166, 103, 40, 1994, 1931,
1868, 1805, 1742, 1679, 1616, 1553, 1490, 1427, 1364, 1301, 1238, 1175, 1112,
1049, 986, 923, 860, 797, 734, 671, 608, 545, 482, 419, 356, 293,
230, 167, 104, 41, 1995, 1932, 1869, 1806, 1743, 1680, 1617, 1554, 1491,
1428, 1365, 1302, 1239, 1176, 1113, 1050, 987, 924, 861, 798, 735, 672,
609, 546, 483, 420, 357, 294, 231, 168, 105, 42, 1996, 1933, 1870,
1807, 1744, 1681, 1618, 1555, 1492, 1429, 1366, 1303, 1240, 1177, 1114, 1051,
988, 925, 862, 799, 736, 673, 610, 547, 484, 421, 358, 295, 232,
169, 106, 43, 1997, 1934, 1871, 1808, 1745, 1682, 1619, 1556, 1493, 1430,
1367, 1304, 1241, 1178, 1115, 1052, 989, 926, 863, 800, 737, 674, 611,
548, 485, 422, 359, 296, 233, 170, 107, 44, 1998, 1935, 1872, 1809,
1746, 1683, 1620, 1557, 1494, 1431, 1368, 1305, 1242, 1179, 1116, 1053, 990,
927, 864, 801, 738, 675, 612, 549, 486, 423, 360, 297, 234, 171,
108, 45, 1999, 1936, 1873, 1810, 1747, 1684, 1621, 1558, 1495, 1432, 1369,
1306, 1243, 1180, 1117, 1054, 991, 928, 865, 802, 739, 676, 613, 550,
487, 424, 361, 298, 235, 172, 109, 46, 2000, 1937, 1874, 1811, 1748,
1685, 1622, 1559, 1496, 1433, 1370, 1307, 1244, 1181, 1118, 1055, 992, 929,
866, 803, 740, 677, 614, 551, 488, 425, 362, 299, 236, 173, 110,
47, 2001, 1938, 1875, 1812, 1749, 1686, 1623, 1560, 1497, 1434, 1371, 1308,
1245, 1182, 1119, 1056, 993, 930, 867, 804, 741, 678, 615, 552, 489,
426, 363, 300, 237, 174, 111, 48, 2002, 1939, 1876, 1813, 1750, 1687,
1624, 1561, 1498, 1435, 1372, 1309, 1246, 1183, 1120, 1057, 994, 931, 868,
805, 742, 679, 616, 553, 490, 427, 364, 301, 238, 175, 112, 49,
2003, 1940, 1877, 1814, 1751, 1688, 1625, 1562, 1499, 1436, 1373, 1310, 1247,
1184, 1121, 1058, 995, 932, 869, 806, 743, 680, 617, 554, 491, 428,
365, 302, 239, 176, 113, 50, 2004, 1941, 1878, 1815, 1752, 1689, 1626,
1563, 1500, 1437, 1374, 1311, 1248, 1185, 1122, 1059, 996, 933, 870, 807,
744, 681, 618, 555, 492, 429, 366, 303, 240, 177, 114, 51, 2005,
1942, 1879, 1816, 1753, 1690, 1627, 1564, 1501, 1438, 1375, 1312, 1249, 1186,
1123, 1060, 997, 934, 871, 808, 745, 682, 619, 556, 493, 430, 367,
304, 241, 178, 115, 52, 2006, 1943, 1880, 1817, 1754, 1691, 1628, 1565,
1502, 1439, 1376, 1313, 1250, 1187, 1124, 1061, 998, 935, 872, 809, 746,
683, 620, 557, 494, 431, 368, 305, 242, 179, 116, 53, 2007, 1944,
1881, 1818, 1755, 1692, 1629, 1566, 1503, 1440, 1377, 1314, 1251, 1188, 1125,
1062, 999, 936, 873, 810, 747, 684, 621, 558, 495, 432, 369, 306,
243, 180, 117, 54, 2008, 1945, 1882, 1819, 1756, 1693, 1630, 1567, 1504,
1441, 1378, 1315, 1252, 1189, 1126, 1063, 1000, 937, 874, 811, 748, 685,
622, 559, 496, 433, 370, 307, 244, 181, 118, 55, 2009, 1946, 1883,
1820, 1757, 1694, 1631, 1568, 1505, 1442, 1379, 1316, 1253, 1190, 1127, 1064,
1001, 938, 875, 812, 749, 686, 623, 560, 497, 434, 371, 308, 245,
182, 119, 56, 2010, 1947, 1884, 1821, 1758, 1695, 1632, 1569, 1506, 1443,
1380, 1317, 1254, 1191, 1128, 1065, 1002, 939, 876, 813, 750, 687, 624,
561, 498, 435, 372, 309, 246, 183, 120, 57, 2011, 1948, 1885, 1822,
1759, 1696, 1633, 1570, 1507, 1444, 1381, 1318, 1255, 1192, 1129, 1066, 1003,
940, 877, 814, 751, 688, 625, 562, 499, 436, 373, 310, 247, 184,
121, 58, 2012, 1949, 1886, 1823, 1760, 1697, 1634, 1571, 1508, 1445, 1382,
1319, 1256, 1193, 1130, 1067, 1004, 941, 878, 815, 752, 689, 626, 563,
500, 437, 374, 311, 248, 185, 122, 59, 2013, 1950, 1887, 1824, 1761,
1698, 1635, 1572, 1509, 1446, 1383, 1320, 1257, 1194, 1131, 1068, 1005, 942,
879, 816, 753, 690, 627, 564, 501, 438, 375, 312, 249, 186, 123,
60, 2014, 1951, 1888, 1825, 1762, 1699, 1636, 1573, 1510, 1447, 1384, 1321,
1258, 1195, 1132, 1069, 1006, 943, 880, 817, 754, 691, 628, 565, 502,
439, 376, 313, 250, 187, 124, 61, 2015, 1952, 1889, 1826, 1763, 1700,
1637, 1574, 1511, 1448, 1385, 1322, 1259, 1196, 1133, 1070, 1007, 944, 881,
818, 755, 692, 629, 566, 503, 440, 377, 314, 251, 188, 125, 62,
2016, 1953, 1890, 1827, 1764, 1701, 1638, 1575, 1512, 1449, 1386, 1323, 1260,
1197, 1134, 1071, 1008, 945, 882, 819, 756, 693, 630, 567, 504, 441,
378, 315, 252, 189, 126, 63, 2017, 1954, 1891, 1828, 1765, 1702, 1639,
1576, 1513, 1450, 1387, 1324, 1261, 1198, 1135, 1072, 1009, 946, 883, 820,
757, 694, 631, 568, 505, 442, 379, 316, 253, 190, 127, 2018, 1955,
1892, 1829, 1766, 1703, 1640, 1577, 1514, 1451, 1388, 1325, 1262, 1199, 1136,
1073, 1010, 947, 884, 821, 758, 695, 632, 569, 506, 443, 380, 317,
254, 191, 2019, 1956, 1893, 1830, 1767, 1704, 1641, 1578, 1515, 1452, 1389,
1326, 1263, 1200, 1137, 1074, 1011, 948, 885, 822, 759, 696, 633, 570,
507, 444, 381, 318, 255, 2020, 1957, 1894, 1831, 1768, 1705, 1642, 1579,
1516, 1453, 1390, 1327, 1264, 1201, 1138, 1075, 1012, 949, 886, 823, 760,
697, 634, 571, 508, 445, 382, 319, 2021, 1958, 1895, 1832, 1769, 1706,
1643, 1580, 1517, 1454, 1391, 1328, 1265, 1202, 1139, 1076, 1013, 950, 887,
824, 761, 698, 635, 572, 509, 446, 383, 2022, 1959, 1896, 1833, 1770,
1707, 1644, 1581, 1518, 1455, 1392, 1329, 1266, 1203, 1140, 1077, 1014, 951,
888, 825, 762, 699, 636, 573, 510, 447, 2023, 1960, 1897, 1834, 1771,
1708, 1645, 1582, 1519, 1456, 1393, 1330, 1267, 1204, 1141, 1078, 1015, 952,
889, 826, 763, 700, 637, 574, 511, 2024, 1961, 1898, 1835, 1772, 1709,
1646, 1583, 1520, 1457, 1394, 1331, 1268, 1205, 1142, 1079, 1016, 953, 890,
827, 764, 701, 638, 575, 2025, 1962, 1899, 1836, 1773, 1710, 1647, 1584,
1521, 1458, 1395, 1332, 1269, 1206, 1143, 1080, 1017, 954, 891, 828, 765,
702, 639, 2026, 1963, 1900, 1837, 1774, 1711, 1648, 1585, 1522, 1459, 1396,
1333, 1270, 1207, 1144, 1081, 1018, 955, 892, 829, 766, 703, 2027, 1964,
1901, 1838, 1775, 1712, 1649, 1586, 1523, 1460, 1397, 1334, 1271, 1208, 1145,
1082, 1019, 956, 893, 830, 767, 2028, 1965, 1902, 1839, 1776, 1713, 1650,
1587, 1524, 1461, 1398, 1335, 1272, 1209, 1146, 1083, 1020, 957, 894, 831,
2029, 1966, 1903, 1840, 1777, 1714, 1651, 1588, 1525, 1462, 1399, 1336, 1273,
1210, 1147, 1084, 1021, 958, 895, 2030, 1967, 1904, 1841, 1778, 1715, 1652,
1589, 1526, 1463, 1400, 1337, 1274, 1211, 1148, 1085, 1022, 959, 2031, 1968,
1905, 1842, 1779, 1716, 1653, 1590, 1527, 1464, 1401, 1338, 1275, 1212, 1149,
1086, 1023, 2032, 1969, 1906, 1843, 1780, 1717, 1654, 1591, 1528, 1465, 1402,
1339, 1276, 1213, 1150, 1087, 2033, 1970, 1907, 1844, 1781, 1718, 1655, 1592,
1529, 1466, 1403, 1340, 1277, 1214, 1151, 2034, 1971, 1908, 1845, 1782, 1719,
1656, 1593, 1530, 1467, 1404, 1341, 1278, 1215, 2035, 1972, 1909, 1846, 1783,
1720, 1657, 1594, 1531, 1468, 1405, 1342, 1279, 2036, 1973, 1910, 1847, 1784,
1721, 1658, 1595, 1532, 1469, 1406, 1343, 2037, 1974, 1911, 1848, 1785, 1722,
1659, 1596, 1533, 1470, 1407, 2038, 1975, 1912, 1849, 1786, 1723, 1660, 1597,
1534, 1471, 2039, 1976, 1913, 1850, 1787, 1724, 1661, 1598, 1535, 2040, 1977,
1914, 1851, 1788, 1725, 1662, 1599, 2041, 1978, 1915, 1852, 1789, 1726, 1663,
2042, 1979, 1916, 1853, 1790, 1727, 2043, 1980, 1917, 1854, 1791, 2044, 1981,
1918, 1855, 2045, 1982, 1919, 2046, 1983, 2047, 0, 64, 1, 128, 65, // 64x64
2, 192, 129, 66, 3, 256, 193, 130, 67, 4, 320, 257, 194,
131, 68, 5, 384, 321, 258, 195, 132, 69, 6, 448, 385, 322,
259, 196, 133, 70, 7, 512, 449, 386, 323, 260, 197, 134, 71,
8, 576, 513, 450, 387, 324, 261, 198, 135, 72, 9, 640, 577,
514, 451, 388, 325, 262, 199, 136, 73, 10, 704, 641, 578, 515,
452, 389, 326, 263, 200, 137, 74, 11, 768, 705, 642, 579, 516,
453, 390, 327, 264, 201, 138, 75, 12, 832, 769, 706, 643, 580,
517, 454, 391, 328, 265, 202, 139, 76, 13, 896, 833, 770, 707,
644, 581, 518, 455, 392, 329, 266, 203, 140, 77, 14, 960, 897,
834, 771, 708, 645, 582, 519, 456, 393, 330, 267, 204, 141, 78,
15, 1024, 961, 898, 835, 772, 709, 646, 583, 520, 457, 394, 331,
268, 205, 142, 79, 16, 1088, 1025, 962, 899, 836, 773, 710, 647,
584, 521, 458, 395, 332, 269, 206, 143, 80, 17, 1152, 1089, 1026,
963, 900, 837, 774, 711, 648, 585, 522, 459, 396, 333, 270, 207,
144, 81, 18, 1216, 1153, 1090, 1027, 964, 901, 838, 775, 712, 649,
586, 523, 460, 397, 334, 271, 208, 145, 82, 19, 1280, 1217, 1154,
1091, 1028, 965, 902, 839, 776, 713, 650, 587, 524, 461, 398, 335,
272, 209, 146, 83, 20, 1344, 1281, 1218, 1155, 1092, 1029, 966, 903,
840, 777, 714, 651, 588, 525, 462, 399, 336, 273, 210, 147, 84,
21, 1408, 1345, 1282, 1219, 1156, 1093, 1030, 967, 904, 841, 778, 715,
652, 589, 526, 463, 400, 337, 274, 211, 148, 85, 22, 1472, 1409,
1346, 1283, 1220, 1157, 1094, 1031, 968, 905, 842, 779, 716, 653, 590,
527, 464, 401, 338, 275, 212, 149, 86, 23, 1536, 1473, 1410, 1347,
1284, 1221, 1158, 1095, 1032, 969, 906, 843, 780, 717, 654, 591, 528,
465, 402, 339, 276, 213, 150, 87, 24, 1600, 1537, 1474, 1411, 1348,
1285, 1222, 1159, 1096, 1033, 970, 907, 844, 781, 718, 655, 592, 529,
466, 403, 340, 277, 214, 151, 88, 25, 1664, 1601, 1538, 1475, 1412,
1349, 1286, 1223, 1160, 1097, 1034, 971, 908, 845, 782, 719, 656, 593,
530, 467, 404, 341, 278, 215, 152, 89, 26, 1728, 1665, 1602, 1539,
1476, 1413, 1350, 1287, 1224, 1161, 1098, 1035, 972, 909, 846, 783, 720,
657, 594, 531, 468, 405, 342, 279, 216, 153, 90, 27, 1792, 1729,
1666, 1603, 1540, 1477, 1414, 1351, 1288, 1225, 1162, 1099, 1036, 973, 910,
847, 784, 721, 658, 595, 532, 469, 406, 343, 280, 217, 154, 91,
28, 1856, 1793, 1730, 1667, 1604, 1541, 1478, 1415, 1352, 1289, 1226, 1163,
1100, 1037, 974, 911, 848, 785, 722, 659, 596, 533, 470, 407, 344,
281, 218, 155, 92, 29, 1920, 1857, 1794, 1731, 1668, 1605, 1542, 1479,
1416, 1353, 1290, 1227, 1164, 1101, 1038, 975, 912, 849, 786, 723, 660,
597, 534, 471, 408, 345, 282, 219, 156, 93, 30, 1984, 1921, 1858,
1795, 1732, 1669, 1606, 1543, 1480, 1417, 1354, 1291, 1228, 1165, 1102, 1039,
976, 913, 850, 787, 724, 661, 598, 535, 472, 409, 346, 283, 220,
157, 94, 31, 2048, 1985, 1922, 1859, 1796, 1733, 1670, 1607, 1544, 1481,
1418, 1355, 1292, 1229, 1166, 1103, 1040, 977, 914, 851, 788, 725, 662,
599, 536, 473, 410, 347, 284, 221, 158, 95, 32, 2112, 2049, 1986,
1923, 1860, 1797, 1734, 1671, 1608, 1545, 1482, 1419, 1356, 1293, 1230, 1167,
1104, 1041, 978, 915, 852, 789, 726, 663, 600, 537, 474, 411, 348,
285, 222, 159, 96, 33, 2176, 2113, 2050, 1987, 1924, 1861, 1798, 1735,
1672, 1609, 1546, 1483, 1420, 1357, 1294, 1231, 1168, 1105, 1042, 979, 916,
853, 790, 727, 664, 601, 538, 475, 412, 349, 286, 223, 160, 97,
34, 2240, 2177, 2114, 2051, 1988, 1925, 1862, 1799, 1736, 1673, 1610, 1547,
1484, 1421, 1358, 1295, 1232, 1169, 1106, 1043, 980, 917, 854, 791, 728,
665, 602, 539, 476, 413, 350, 287, 224, 161, 98, 35, 2304, 2241,
2178, 2115, 2052, 1989, 1926, 1863, 1800, 1737, 1674, 1611, 1548, 1485, 1422,
1359, 1296, 1233, 1170, 1107, 1044, 981, 918, 855, 792, 729, 666, 603,
540, 477, 414, 351, 288, 225, 162, 99, 36, 2368, 2305, 2242, 2179,
2116, 2053, 1990, 1927, 1864, 1801, 1738, 1675, 1612, 1549, 1486, 1423, 1360,
1297, 1234, 1171, 1108, 1045, 982, 919, 856, 793, 730, 667, 604, 541,
478, 415, 352, 289, 226, 163, 100, 37, 2432, 2369, 2306, 2243, 2180,
2117, 2054, 1991, 1928, 1865, 1802, 1739, 1676, 1613, 1550, 1487, 1424, 1361,
1298, 1235, 1172, 1109, 1046, 983, 920, 857, 794, 731, 668, 605, 542,
479, 416, 353, 290, 227, 164, 101, 38, 2496, 2433, 2370, 2307, 2244,
2181, 2118, 2055, 1992, 1929, 1866, 1803, 1740, 1677, 1614, 1551, 1488, 1425,
1362, 1299, 1236, 1173, 1110, 1047, 984, 921, 858, 795, 732, 669, 606,
543, 480, 417, 354, 291, 228, 165, 102, 39, 2560, 2497, 2434, 2371,
2308, 2245, 2182, 2119, 2056, 1993, 1930, 1867, 1804, 1741, 1678, 1615, 1552,
1489, 1426, 1363, 1300, 1237, 1174, 1111, 1048, 985, 922, 859, 796, 733,
670, 607, 544, 481, 418, 355, 292, 229, 166, 103, 40, 2624, 2561,
2498, 2435, 2372, 2309, 2246, 2183, 2120, 2057, 1994, 1931, 1868, 1805, 1742,
1679, 1616, 1553, 1490, 1427, 1364, 1301, 1238, 1175, 1112, 1049, 986, 923,
860, 797, 734, 671, 608, 545, 482, 419, 356, 293, 230, 167, 104,
41, 2688, 2625, 2562, 2499, 2436, 2373, 2310, 2247, 2184, 2121, 2058, 1995,
1932, 1869, 1806, 1743, 1680, 1617, 1554, 1491, 1428, 1365, 1302, 1239, 1176,
1113, 1050, 987, 924, 861, 798, 735, 672, 609, 546, 483, 420, 357,
294, 231, 168, 105, 42, 2752, 2689, 2626, 2563, 2500, 2437, 2374, 2311,
2248, 2185, 2122, 2059, 1996, 1933, 1870, 1807, 1744, 1681, 1618, 1555, 1492,
1429, 1366, 1303, 1240, 1177, 1114, 1051, 988, 925, 862, 799, 736, 673,
610, 547, 484, 421, 358, 295, 232, 169, 106, 43, 2816, 2753, 2690,
2627, 2564, 2501, 2438, 2375, 2312, 2249, 2186, 2123, 2060, 1997, 1934, 1871,
1808, 1745, 1682, 1619, 1556, 1493, 1430, 1367, 1304, 1241, 1178, 1115, 1052,
989, 926, 863, 800, 737, 674, 611, 548, 485, 422, 359, 296, 233,
170, 107, 44, 2880, 2817, 2754, 2691, 2628, 2565, 2502, 2439, 2376, 2313,
2250, 2187, 2124, 2061, 1998, 1935, 1872, 1809, 1746, 1683, 1620, 1557, 1494,
1431, 1368, 1305, 1242, 1179, 1116, 1053, 990, 927, 864, 801, 738, 675,
612, 549, 486, 423, 360, 297, 234, 171, 108, 45, 2944, 2881, 2818,
2755, 2692, 2629, 2566, 2503, 2440, 2377, 2314, 2251, 2188, 2125, 2062, 1999,
1936, 1873, 1810, 1747, 1684, 1621, 1558, 1495, 1432, 1369, 1306, 1243, 1180,
1117, 1054, 991, 928, 865, 802, 739, 676, 613, 550, 487, 424, 361,
298, 235, 172, 109, 46, 3008, 2945, 2882, 2819, 2756, 2693, 2630, 2567,
2504, 2441, 2378, 2315, 2252, 2189, 2126, 2063, 2000, 1937, 1874, 1811, 1748,
1685, 1622, 1559, 1496, 1433, 1370, 1307, 1244, 1181, 1118, 1055, 992, 929,
866, 803, 740, 677, 614, 551, 488, 425, 362, 299, 236, 173, 110,
47, 3072, 3009, 2946, 2883, 2820, 2757, 2694, 2631, 2568, 2505, 2442, 2379,
2316, 2253, 2190, 2127, 2064, 2001, 1938, 1875, 1812, 1749, 1686, 1623, 1560,
1497, 1434, 1371, 1308, 1245, 1182, 1119, 1056, 993, 930, 867, 804, 741,
678, 615, 552, 489, 426, 363, 300, 237, 174, 111, 48, 3136, 3073,
3010, 2947, 2884, 2821, 2758, 2695, 2632, 2569, 2506, 2443, 2380, 2317, 2254,
2191, 2128, 2065, 2002, 1939, 1876, 1813, 1750, 1687, 1624, 1561, 1498, 1435,
1372, 1309, 1246, 1183, 1120, 1057, 994, 931, 868, 805, 742, 679, 616,
553, 490, 427, 364, 301, 238, 175, 112, 49, 3200, 3137, 3074, 3011,
2948, 2885, 2822, 2759, 2696, 2633, 2570, 2507, 2444, 2381, 2318, 2255, 2192,
2129, 2066, 2003, 1940, 1877, 1814, 1751, 1688, 1625, 1562, 1499, 1436, 1373,
1310, 1247, 1184, 1121, 1058, 995, 932, 869, 806, 743, 680, 617, 554,
491, 428, 365, 302, 239, 176, 113, 50, 3264, 3201, 3138, 3075, 3012,
2949, 2886, 2823, 2760, 2697, 2634, 2571, 2508, 2445, 2382, 2319, 2256, 2193,
2130, 2067, 2004, 1941, 1878, 1815, 1752, 1689, 1626, 1563, 1500, 1437, 1374,
1311, 1248, 1185, 1122, 1059, 996, 933, 870, 807, 744, 681, 618, 555,
492, 429, 366, 303, 240, 177, 114, 51, 3328, 3265, 3202, 3139, 3076,
3013, 2950, 2887, 2824, 2761, 2698, 2635, 2572, 2509, 2446, 2383, 2320, 2257,
2194, 2131, 2068, 2005, 1942, 1879, 1816, 1753, 1690, 1627, 1564, 1501, 1438,
1375, 1312, 1249, 1186, 1123, 1060, 997, 934, 871, 808, 745, 682, 619,
556, 493, 430, 367, 304, 241, 178, 115, 52, 3392, 3329, 3266, 3203,
3140, 3077, 3014, 2951, 2888, 2825, 2762, 2699, 2636, 2573, 2510, 2447, 2384,
2321, 2258, 2195, 2132, 2069, 2006, 1943, 1880, 1817, 1754, 1691, 1628, 1565,
1502, 1439, 1376, 1313, 1250, 1187, 1124, 1061, 998, 935, 872, 809, 746,
683, 620, 557, 494, 431, 368, 305, 242, 179, 116, 53, 3456, 3393,
3330, 3267, 3204, 3141, 3078, 3015, 2952, 2889, 2826, 2763, 2700, 2637, 2574,
2511, 2448, 2385, 2322, 2259, 2196, 2133, 2070, 2007, 1944, 1881, 1818, 1755,
1692, 1629, 1566, 1503, 1440, 1377, 1314, 1251, 1188, 1125, 1062, 999, 936,
873, 810, 747, 684, 621, 558, 495, 432, 369, 306, 243, 180, 117,
54, 3520, 3457, 3394, 3331, 3268, 3205, 3142, 3079, 3016, 2953, 2890, 2827,
2764, 2701, 2638, 2575, 2512, 2449, 2386, 2323, 2260, 2197, 2134, 2071, 2008,
1945, 1882, 1819, 1756, 1693, 1630, 1567, 1504, 1441, 1378, 1315, 1252, 1189,
1126, 1063, 1000, 937, 874, 811, 748, 685, 622, 559, 496, 433, 370,
307, 244, 181, 118, 55, 3584, 3521, 3458, 3395, 3332, 3269, 3206, 3143,
3080, 3017, 2954, 2891, 2828, 2765, 2702, 2639, 2576, 2513, 2450, 2387, 2324,
2261, 2198, 2135, 2072, 2009, 1946, 1883, 1820, 1757, 1694, 1631, 1568, 1505,
1442, 1379, 1316, 1253, 1190, 1127, 1064, 1001, 938, 875, 812, 749, 686,
623, 560, 497, 434, 371, 308, 245, 182, 119, 56, 3648, 3585, 3522,
3459, 3396, 3333, 3270, 3207, 3144, 3081, 3018, 2955, 2892, 2829, 2766, 2703,
2640, 2577, 2514, 2451, 2388, 2325, 2262, 2199, 2136, 2073, 2010, 1947, 1884,
1821, 1758, 1695, 1632, 1569, 1506, 1443, 1380, 1317, 1254, 1191, 1128, 1065,
1002, 939, 876, 813, 750, 687, 624, 561, 498, 435, 372, 309, 246,
183, 120, 57, 3712, 3649, 3586, 3523, 3460, 3397, 3334, 3271, 3208, 3145,
3082, 3019, 2956, 2893, 2830, 2767, 2704, 2641, 2578, 2515, 2452, 2389, 2326,
2263, 2200, 2137, 2074, 2011, 1948, 1885, 1822, 1759, 1696, 1633, 1570, 1507,
1444, 1381, 1318, 1255, 1192, 1129, 1066, 1003, 940, 877, 814, 751, 688,
625, 562, 499, 436, 373, 310, 247, 184, 121, 58, 3776, 3713, 3650,
3587, 3524, 3461, 3398, 3335, 3272, 3209, 3146, 3083, 3020, 2957, 2894, 2831,
2768, 2705, 2642, 2579, 2516, 2453, 2390, 2327, 2264, 2201, 2138, 2075, 2012,
1949, 1886, 1823, 1760, 1697, 1634, 1571, 1508, 1445, 1382, 1319, 1256, 1193,
1130, 1067, 1004, 941, 878, 815, 752, 689, 626, 563, 500, 437, 374,
311, 248, 185, 122, 59, 3840, 3777, 3714, 3651, 3588, 3525, 3462, 3399,
3336, 3273, 3210, 3147, 3084, 3021, 2958, 2895, 2832, 2769, 2706, 2643, 2580,
2517, 2454, 2391, 2328, 2265, 2202, 2139, 2076, 2013, 1950, 1887, 1824, 1761,
1698, 1635, 1572, 1509, 1446, 1383, 1320, 1257, 1194, 1131, 1068, 1005, 942,
879, 816, 753, 690, 627, 564, 501, 438, 375, 312, 249, 186, 123,
60, 3904, 3841, 3778, 3715, 3652, 3589, 3526, 3463, 3400, 3337, 3274, 3211,
3148, 3085, 3022, 2959, 2896, 2833, 2770, 2707, 2644, 2581, 2518, 2455, 2392,
2329, 2266, 2203, 2140, 2077, 2014, 1951, 1888, 1825, 1762, 1699, 1636, 1573,
1510, 1447, 1384, 1321, 1258, 1195, 1132, 1069, 1006, 943, 880, 817, 754,
691, 628, 565, 502, 439, 376, 313, 250, 187, 124, 61, 3968, 3905,
3842, 3779, 3716, 3653, 3590, 3527, 3464, 3401, 3338, 3275, 3212, 3149, 3086,
3023, 2960, 2897, 2834, 2771, 2708, 2645, 2582, 2519, 2456, 2393, 2330, 2267,
2204, 2141, 2078, 2015, 1952, 1889, 1826, 1763, 1700, 1637, 1574, 1511, 1448,
1385, 1322, 1259, 1196, 1133, 1070, 1007, 944, 881, 818, 755, 692, 629,
566, 503, 440, 377, 314, 251, 188, 125, 62, 4032, 3969, 3906, 3843,
3780, 3717, 3654, 3591, 3528, 3465, 3402, 3339, 3276, 3213, 3150, 3087, 3024,
2961, 2898, 2835, 2772, 2709, 2646, 2583, 2520, 2457, 2394, 2331, 2268, 2205,
2142, 2079, 2016, 1953, 1890, 1827, 1764, 1701, 1638, 1575, 1512, 1449, 1386,
1323, 1260, 1197, 1134, 1071, 1008, 945, 882, 819, 756, 693, 630, 567,
504, 441, 378, 315, 252, 189, 126, 63, 4033, 3970, 3907, 3844, 3781,
3718, 3655, 3592, 3529, 3466, 3403, 3340, 3277, 3214, 3151, 3088, 3025, 2962,
2899, 2836, 2773, 2710, 2647, 2584, 2521, 2458, 2395, 2332, 2269, 2206, 2143,
2080, 2017, 1954, 1891, 1828, 1765, 1702, 1639, 1576, 1513, 1450, 1387, 1324,
1261, 1198, 1135, 1072, 1009, 946, 883, 820, 757, 694, 631, 568, 505,
442, 379, 316, 253, 190, 127, 4034, 3971, 3908, 3845, 3782, 3719, 3656,
3593, 3530, 3467, 3404, 3341, 3278, 3215, 3152, 3089, 3026, 2963, 2900, 2837,
2774, 2711, 2648, 2585, 2522, 2459, 2396, 2333, 2270, 2207, 2144, 2081, 2018,
1955, 1892, 1829, 1766, 1703, 1640, 1577, 1514, 1451, 1388, 1325, 1262, 1199,
1136, 1073, 1010, 947, 884, 821, 758, 695, 632, 569, 506, 443, 380,
317, 254, 191, 4035, 3972, 3909, 3846, 3783, 3720, 3657, 3594, 3531, 3468,
3405, 3342, 3279, 3216, 3153, 3090, 3027, 2964, 2901, 2838, 2775, 2712, 2649,
2586, 2523, 2460, 2397, 2334, 2271, 2208, 2145, 2082, 2019, 1956, 1893, 1830,
1767, 1704, 1641, 1578, 1515, 1452, 1389, 1326, 1263, 1200, 1137, 1074, 1011,
948, 885, 822, 759, 696, 633, 570, 507, 444, 381, 318, 255, 4036,
3973, 3910, 3847, 3784, 3721, 3658, 3595, 3532, 3469, 3406, 3343, 3280, 3217,
3154, 3091, 3028, 2965, 2902, 2839, 2776, 2713, 2650, 2587, 2524, 2461, 2398,
2335, 2272, 2209, 2146, 2083, 2020, 1957, 1894, 1831, 1768, 1705, 1642, 1579,
1516, 1453, 1390, 1327, 1264, 1201, 1138, 1075, 1012, 949, 886, 823, 760,
697, 634, 571, 508, 445, 382, 319, 4037, 3974, 3911, 3848, 3785, 3722,
3659, 3596, 3533, 3470, 3407, 3344, 3281, 3218, 3155, 3092, 3029, 2966, 2903,
2840, 2777, 2714, 2651, 2588, 2525, 2462, 2399, 2336, 2273, 2210, 2147, 2084,
2021, 1958, 1895, 1832, 1769, 1706, 1643, 1580, 1517, 1454, 1391, 1328, 1265,
1202, 1139, 1076, 1013, 950, 887, 824, 761, 698, 635, 572, 509, 446,
383, 4038, 3975, 3912, 3849, 3786, 3723, 3660, 3597, 3534, 3471, 3408, 3345,
3282, 3219, 3156, 3093, 3030, 2967, 2904, 2841, 2778, 2715, 2652, 2589, 2526,
2463, 2400, 2337, 2274, 2211, 2148, 2085, 2022, 1959, 1896, 1833, 1770, 1707,
1644, 1581, 1518, 1455, 1392, 1329, 1266, 1203, 1140, 1077, 1014, 951, 888,
825, 762, 699, 636, 573, 510, 447, 4039, 3976, 3913, 3850, 3787, 3724,
3661, 3598, 3535, 3472, 3409, 3346, 3283, 3220, 3157, 3094, 3031, 2968, 2905,
2842, 2779, 2716, 2653, 2590, 2527, 2464, 2401, 2338, 2275, 2212, 2149, 2086,
2023, 1960, 1897, 1834, 1771, 1708, 1645, 1582, 1519, 1456, 1393, 1330, 1267,
1204, 1141, 1078, 1015, 952, 889, 826, 763, 700, 637, 574, 511, 4040,
3977, 3914, 3851, 3788, 3725, 3662, 3599, 3536, 3473, 3410, 3347, 3284, 3221,
3158, 3095, 3032, 2969, 2906, 2843, 2780, 2717, 2654, 2591, 2528, 2465, 2402,
2339, 2276, 2213, 2150, 2087, 2024, 1961, 1898, 1835, 1772, 1709, 1646, 1583,
1520, 1457, 1394, 1331, 1268, 1205, 1142, 1079, 1016, 953, 890, 827, 764,
701, 638, 575, 4041, 3978, 3915, 3852, 3789, 3726, 3663, 3600, 3537, 3474,
3411, 3348, 3285, 3222, 3159, 3096, 3033, 2970, 2907, 2844, 2781, 2718, 2655,
2592, 2529, 2466, 2403, 2340, 2277, 2214, 2151, 2088, 2025, 1962, 1899, 1836,
1773, 1710, 1647, 1584, 1521, 1458, 1395, 1332, 1269, 1206, 1143, 1080, 1017,
954, 891, 828, 765, 702, 639, 4042, 3979, 3916, 3853, 3790, 3727, 3664,
3601, 3538, 3475, 3412, 3349, 3286, 3223, 3160, 3097, 3034, 2971, 2908, 2845,
2782, 2719, 2656, 2593, 2530, 2467, 2404, 2341, 2278, 2215, 2152, 2089, 2026,
1963, 1900, 1837, 1774, 1711, 1648, 1585, 1522, 1459, 1396, 1333, 1270, 1207,
1144, 1081, 1018, 955, 892, 829, 766, 703, 4043, 3980, 3917, 3854, 3791,
3728, 3665, 3602, 3539, 3476, 3413, 3350, 3287, 3224, 3161, 3098, 3035, 2972,
2909, 2846, 2783, 2720, 2657, 2594, 2531, 2468, 2405, 2342, 2279, 2216, 2153,
2090, 2027, 1964, 1901, 1838, 1775, 1712, 1649, 1586, 1523, 1460, 1397, 1334,
1271, 1208, 1145, 1082, 1019, 956, 893, 830, 767, 4044, 3981, 3918, 3855,
3792, 3729, 3666, 3603, 3540, 3477, 3414, 3351, 3288, 3225, 3162, 3099, 3036,
2973, 2910, 2847, 2784, 2721, 2658, 2595, 2532, 2469, 2406, 2343, 2280, 2217,
2154, 2091, 2028, 1965, 1902, 1839, 1776, 1713, 1650, 1587, 1524, 1461, 1398,
1335, 1272, 1209, 1146, 1083, 1020, 957, 894, 831, 4045, 3982, 3919, 3856,
3793, 3730, 3667, 3604, 3541, 3478, 3415, 3352, 3289, 3226, 3163, 3100, 3037,
2974, 2911, 2848, 2785, 2722, 2659, 2596, 2533, 2470, 2407, 2344, 2281, 2218,
2155, 2092, 2029, 1966, 1903, 1840, 1777, 1714, 1651, 1588, 1525, 1462, 1399,
1336, 1273, 1210, 1147, 1084, 1021, 958, 895, 4046, 3983, 3920, 3857, 3794,
3731, 3668, 3605, 3542, 3479, 3416, 3353, 3290, 3227, 3164, 3101, 3038, 2975,
2912, 2849, 2786, 2723, 2660, 2597, 2534, 2471, 2408, 2345, 2282, 2219, 2156,
2093, 2030, 1967, 1904, 1841, 1778, 1715, 1652, 1589, 1526, 1463, 1400, 1337,
1274, 1211, 1148, 1085, 1022, 959, 4047, 3984, 3921, 3858, 3795, 3732, 3669,
3606, 3543, 3480, 3417, 3354, 3291, 3228, 3165, 3102, 3039, 2976, 2913, 2850,
2787, 2724, 2661, 2598, 2535, 2472, 2409, 2346, 2283, 2220, 2157, 2094, 2031,
1968, 1905, 1842, 1779, 1716, 1653, 1590, 1527, 1464, 1401, 1338, 1275, 1212,
1149, 1086, 1023, 4048, 3985, 3922, 3859, 3796, 3733, 3670, 3607, 3544, 3481,
3418, 3355, 3292, 3229, 3166, 3103, 3040, 2977, 2914, 2851, 2788, 2725, 2662,
2599, 2536, 2473, 2410, 2347, 2284, 2221, 2158, 2095, 2032, 1969, 1906, 1843,
1780, 1717, 1654, 1591, 1528, 1465, 1402, 1339, 1276, 1213, 1150, 1087, 4049,
3986, 3923, 3860, 3797, 3734, 3671, 3608, 3545, 3482, 3419, 3356, 3293, 3230,
3167, 3104, 3041, 2978, 2915, 2852, 2789, 2726, 2663, 2600, 2537, 2474, 2411,
2348, 2285, 2222, 2159, 2096, 2033, 1970, 1907, 1844, 1781, 1718, 1655, 1592,
1529, 1466, 1403, 1340, 1277, 1214, 1151, 4050, 3987, 3924, 3861, 3798, 3735,
3672, 3609, 3546, 3483, 3420, 3357, 3294, 3231, 3168, 3105, 3042, 2979, 2916,
2853, 2790, 2727, 2664, 2601, 2538, 2475, 2412, 2349, 2286, 2223, 2160, 2097,
2034, 1971, 1908, 1845, 1782, 1719, 1656, 1593, 1530, 1467, 1404, 1341, 1278,
1215, 4051, 3988, 3925, 3862, 3799, 3736, 3673, 3610, 3547, 3484, 3421, 3358,
3295, 3232, 3169, 3106, 3043, 2980, 2917, 2854, 2791, 2728, 2665, 2602, 2539,
2476, 2413, 2350, 2287, 2224, 2161, 2098, 2035, 1972, 1909, 1846, 1783, 1720,
1657, 1594, 1531, 1468, 1405, 1342, 1279, 4052, 3989, 3926, 3863, 3800, 3737,
3674, 3611, 3548, 3485, 3422, 3359, 3296, 3233, 3170, 3107, 3044, 2981, 2918,
2855, 2792, 2729, 2666, 2603, 2540, 2477, 2414, 2351, 2288, 2225, 2162, 2099,
2036, 1973, 1910, 1847, 1784, 1721, 1658, 1595, 1532, 1469, 1406, 1343, 4053,
3990, 3927, 3864, 3801, 3738, 3675, 3612, 3549, 3486, 3423, 3360, 3297, 3234,
3171, 3108, 3045, 2982, 2919, 2856, 2793, 2730, 2667, 2604, 2541, 2478, 2415,
2352, 2289, 2226, 2163, 2100, 2037, 1974, 1911, 1848, 1785, 1722, 1659, 1596,
1533, 1470, 1407, 4054, 3991, 3928, 3865, 3802, 3739, 3676, 3613, 3550, 3487,
3424, 3361, 3298, 3235, 3172, 3109, 3046, 2983, 2920, 2857, 2794, 2731, 2668,
2605, 2542, 2479, 2416, 2353, 2290, 2227, 2164, 2101, 2038, 1975, 1912, 1849,
1786, 1723, 1660, 1597, 1534, 1471, 4055, 3992, 3929, 3866, 3803, 3740, 3677,
3614, 3551, 3488, 3425, 3362, 3299, 3236, 3173, 3110, 3047, 2984, 2921, 2858,
2795, 2732, 2669, 2606, 2543, 2480, 2417, 2354, 2291, 2228, 2165, 2102, 2039,
1976, 1913, 1850, 1787, 1724, 1661, 1598, 1535, 4056, 3993, 3930, 3867, 3804,
3741, 3678, 3615, 3552, 3489, 3426, 3363, 3300, 3237, 3174, 3111, 3048, 2985,
2922, 2859, 2796, 2733, 2670, 2607, 2544, 2481, 2418, 2355, 2292, 2229, 2166,
2103, 2040, 1977, 1914, 1851, 1788, 1725, 1662, 1599, 4057, 3994, 3931, 3868,
3805, 3742, 3679, 3616, 3553, 3490, 3427, 3364, 3301, 3238, 3175, 3112, 3049,
2986, 2923, 2860, 2797, 2734, 2671, 2608, 2545, 2482, 2419, 2356, 2293, 2230,
2167, 2104, 2041, 1978, 1915, 1852, 1789, 1726, 1663, 4058, 3995, 3932, 3869,
3806, 3743, 3680, 3617, 3554, 3491, 3428, 3365, 3302, 3239, 3176, 3113, 3050,
2987, 2924, 2861, 2798, 2735, 2672, 2609, 2546, 2483, 2420, 2357, 2294, 2231,
2168, 2105, 2042, 1979, 1916, 1853, 1790, 1727, 4059, 3996, 3933, 3870, 3807,
3744, 3681, 3618, 3555, 3492, 3429, 3366, 3303, 3240, 3177, 3114, 3051, 2988,
2925, 2862, 2799, 2736, 2673, 2610, 2547, 2484, 2421, 2358, 2295, 2232, 2169,
2106, 2043, 1980, 1917, 1854, 1791, 4060, 3997, 3934, 3871, 3808, 3745, 3682,
3619, 3556, 3493, 3430, 3367, 3304, 3241, 3178, 3115, 3052, 2989, 2926, 2863,
2800, 2737, 2674, 2611, 2548, 2485, 2422, 2359, 2296, 2233, 2170, 2107, 2044,
1981, 1918, 1855, 4061, 3998, 3935, 3872, 3809, 3746, 3683, 3620, 3557, 3494,
3431, 3368, 3305, 3242, 3179, 3116, 3053, 2990, 2927, 2864, 2801, 2738, 2675,
2612, 2549, 2486, 2423, 2360, 2297, 2234, 2171, 2108, 2045, 1982, 1919, 4062,
3999, 3936, 3873, 3810, 3747, 3684, 3621, 3558, 3495, 3432, 3369, 3306, 3243,
3180, 3117, 3054, 2991, 2928, 2865, 2802, 2739, 2676, 2613, 2550, 2487, 2424,
2361, 2298, 2235, 2172, 2109, 2046, 1983, 4063, 4000, 3937, 3874, 3811, 3748,
3685, 3622, 3559, 3496, 3433, 3370, 3307, 3244, 3181, 3118, 3055, 2992, 2929,
2866, 2803, 2740, 2677, 2614, 2551, 2488, 2425, 2362, 2299, 2236, 2173, 2110,
2047, 4064, 4001, 3938, 3875, 3812, 3749, 3686, 3623, 3560, 3497, 3434, 3371,
3308, 3245, 3182, 3119, 3056, 2993, 2930, 2867, 2804, 2741, 2678, 2615, 2552,
2489, 2426, 2363, 2300, 2237, 2174, 2111, 4065, 4002, 3939, 3876, 3813, 3750,
3687, 3624, 3561, 3498, 3435, 3372, 3309, 3246, 3183, 3120, 3057, 2994, 2931,
2868, 2805, 2742, 2679, 2616, 2553, 2490, 2427, 2364, 2301, 2238, 2175, 4066,
4003, 3940, 3877, 3814, 3751, 3688, 3625, 3562, 3499, 3436, 3373, 3310, 3247,
3184, 3121, 3058, 2995, 2932, 2869, 2806, 2743, 2680, 2617, 2554, 2491, 2428,
2365, 2302, 2239, 4067, 4004, 3941, 3878, 3815, 3752, 3689, 3626, 3563, 3500,
3437, 3374, 3311, 3248, 3185, 3122, 3059, 2996, 2933, 2870, 2807, 2744, 2681,
2618, 2555, 2492, 2429, 2366, 2303, 4068, 4005, 3942, 3879, 3816, 3753, 3690,
3627, 3564, 3501, 3438, 3375, 3312, 3249, 3186, 3123, 3060, 2997, 2934, 2871,
2808, 2745, 2682, 2619, 2556, 2493, 2430, 2367, 4069, 4006, 3943, 3880, 3817,
3754, 3691, 3628, 3565, 3502, 3439, 3376, 3313, 3250, 3187, 3124, 3061, 2998,
2935, 2872, 2809, 2746, 2683, 2620, 2557, 2494, 2431, 4070, 4007, 3944, 3881,
3818, 3755, 3692, 3629, 3566, 3503, 3440, 3377, 3314, 3251, 3188, 3125, 3062,
2999, 2936, 2873, 2810, 2747, 2684, 2621, 2558, 2495, 4071, 4008, 3945, 3882,
3819, 3756, 3693, 3630, 3567, 3504, 3441, 3378, 3315, 3252, 3189, 3126, 3063,
3000, 2937, 2874, 2811, 2748, 2685, 2622, 2559, 4072, 4009, 3946, 3883, 3820,
3757, 3694, 3631, 3568, 3505, 3442, 3379, 3316, 3253, 3190, 3127, 3064, 3001,
2938, 2875, 2812, 2749, 2686, 2623, 4073, 4010, 3947, 3884, 3821, 3758, 3695,
3632, 3569, 3506, 3443, 3380, 3317, 3254, 3191, 3128, 3065, 3002, 2939, 2876,
2813, 2750, 2687, 4074, 4011, 3948, 3885, 3822, 3759, 3696, 3633, 3570, 3507,
3444, 3381, 3318, 3255, 3192, 3129, 3066, 3003, 2940, 2877, 2814, 2751, 4075,
4012, 3949, 3886, 3823, 3760, 3697, 3634, 3571, 3508, 3445, 3382, 3319, 3256,
3193, 3130, 3067, 3004, 2941, 2878, 2815, 4076, 4013, 3950, 3887, 3824, 3761,
3698, 3635, 3572, 3509, 3446, 3383, 3320, 3257, 3194, 3131, 3068, 3005, 2942,
2879, 4077, 4014, 3951, 3888, 3825, 3762, 3699, 3636, 3573, 3510, 3447, 3384,
3321, 3258, 3195, 3132, 3069, 3006, 2943, 4078, 4015, 3952, 3889, 3826, 3763,
3700, 3637, 3574, 3511, 3448, 3385, 3322, 3259, 3196, 3133, 3070, 3007, 4079,
4016, 3953, 3890, 3827, 3764, 3701, 3638, 3575, 3512, 3449, 3386, 3323, 3260,
3197, 3134, 3071, 4080, 4017, 3954, 3891, 3828, 3765, 3702, 3639, 3576, 3513,
3450, 3387, 3324, 3261, 3198, 3135, 4081, 4018, 3955, 3892, 3829, 3766, 3703,
3640, 3577, 3514, 3451, 3388, 3325, 3262, 3199, 4082, 4019, 3956, 3893, 3830,
3767, 3704, 3641, 3578, 3515, 3452, 3389, 3326, 3263, 4083, 4020, 3957, 3894,
3831, 3768, 3705, 3642, 3579, 3516, 3453, 3390, 3327, 4084, 4021, 3958, 3895,
3832, 3769, 3706, 3643, 3580, 3517, 3454, 3391, 4085, 4022, 3959, 3896, 3833,
3770, 3707, 3644, 3581, 3518, 3455, 4086, 4023, 3960, 3897, 3834, 3771, 3708,
3645, 3582, 3519, 4087, 4024, 3961, 3898, 3835, 3772, 3709, 3646, 3583, 4088,
4025, 3962, 3899, 3836, 3773, 3710, 3647, 4089, 4026, 3963, 3900, 3837, 3774,
3711, 4090, 4027, 3964, 3901, 3838, 3775, 4091, 4028, 3965, 3902, 3839, 4092,
4029, 3966, 3903, 4093, 4030, 3967, 4094, 4031, 4095, 0, 0, 1, 0, // 4x4 GROUPED 1xN, 1x2, 1x4
1, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, // 1x8, 1x16
2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, // 1x32
12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
25, 26, 27, 28, 29, 30, 31, 0, 1, 2, 3, 4, 5, // 1x64
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 0, 1, 0, 2, 1, 3, 0, // 2xN, 2x2, 2x4
2, 1, 3, 4, 6, 5, 7, 0, 2, 1, 4, 3, 6, // 2x8
5, 8, 7, 10, 9, 12, 11, 14, 13, 15, 0, 2, 1, // 2x16
4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 15,
16, 18, 17, 20, 19, 22, 21, 24, 23, 26, 25, 28, 27,
30, 29, 31, 0, 2, 1, 4, 3, 6, 5, 8, 7, 10, // 2x32
9, 12, 11, 14, 13, 15, 16, 18, 17, 20, 19, 22, 21,
24, 23, 26, 25, 28, 27, 30, 29, 31, 32, 34, 33, 36,
35, 38, 37, 40, 39, 42, 41, 44, 43, 46, 45, 47, 48,
50, 49, 52, 51, 54, 53, 56, 55, 58, 57, 60, 59, 62,
61, 63, 0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, // 2x64
12, 11, 14, 13, 15, 16, 18, 17, 20, 19, 22, 21, 24,
23, 26, 25, 28, 27, 30, 29, 31, 32, 34, 33, 36, 35,
38, 37, 40, 39, 42, 41, 44, 43, 46, 45, 47, 48, 50,
49, 52, 51, 54, 53, 56, 55, 58, 57, 60, 59, 62, 61,
63, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
0, 1, 2, 3, 0, 4, 1, 5, 2, 6, 3, 7, 0, // 4xN, 4x2, 4x4
4, 1, 8, 5, 2, 12, 9, 6, 3, 13, 10, 7, 14,
11, 15, 0, 4, 1, 8, 5, 2, 12, 9, 6, 3, 13, // 4x8
10, 7, 14, 11, 15, 16, 20, 17, 24, 21, 18, 28, 25,
22, 19, 29, 26, 23, 30, 27, 31, 0, 4, 1, 8, 5, // 4x16
2, 12, 9, 6, 3, 13, 10, 7, 14, 11, 15, 16, 20,
17, 24, 21, 18, 28, 25, 22, 19, 29, 26, 23, 30, 27,
31, 32, 36, 33, 40, 37, 34, 44, 41, 38, 35, 45, 42,
39, 46, 43, 47, 48, 52, 49, 56, 53, 50, 60, 57, 54,
51, 61, 58, 55, 62, 59, 63, 0, 4, 1, 8, 5, 2, // 4x32
12, 9, 6, 3, 13, 10, 7, 14, 11, 15, 16, 20, 17,
24, 21, 18, 28, 25, 22, 19, 29, 26, 23, 30, 27, 31,
32, 36, 33, 40, 37, 34, 44, 41, 38, 35, 45, 42, 39,
46, 43, 47, 48, 52, 49, 56, 53, 50, 60, 57, 54, 51,
61, 58, 55, 62, 59, 63, 64, 68, 65, 72, 69, 66, 76,
73, 70, 67, 77, 74, 71, 78, 75, 79, 80, 84, 81, 88,
85, 82, 92, 89, 86, 83, 93, 90, 87, 94, 91, 95, 96,
100, 97, 104, 101, 98, 108, 105, 102, 99, 109, 106, 103, 110,
107, 111, 112, 116, 113, 120, 117, 114, 124, 121, 118, 115, 125,
122, 119, 126, 123, 127, 0, 4, 1, 8, 5, 2, 12, 9, // 4x64
6, 3, 13, 10, 7, 14, 11, 15, 16, 20, 17, 24, 21,
18, 28, 25, 22, 19, 29, 26, 23, 30, 27, 31, 32, 36,
33, 40, 37, 34, 44, 41, 38, 35, 45, 42, 39, 46, 43,
47, 48, 52, 49, 56, 53, 50, 60, 57, 54, 51, 61, 58,
55, 62, 59, 63, 64, 68, 65, 72, 69, 66, 76, 73, 70,
67, 77, 74, 71, 78, 75, 79, 80, 84, 81, 88, 85, 82,
92, 89, 86, 83, 93, 90, 87, 94, 91, 95, 96, 100, 97,
104, 101, 98, 108, 105, 102, 99, 109, 106, 103, 110, 107, 111,
112, 116, 113, 120, 117, 114, 124, 121, 118, 115, 125, 122, 119,
126, 123, 127, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 0, 1, 2, 3, 4, 5, 6, 7, 0, 8, 1, 9, // 8xN, 8x2
2, 10, 3, 11, 4, 12, 5, 13, 6, 14, 7, 15, 0, // 8x4
8, 1, 16, 9, 2, 24, 17, 10, 3, 25, 18, 11, 26,
19, 27, 4, 12, 5, 20, 13, 6, 28, 21, 14, 7, 29,
22, 15, 30, 23, 31, 0, 8, 1, 16, 9, 2, 24, 17, // 8x8
10, 3, 25, 18, 11, 26, 19, 27, 32, 40, 33, 48, 41,
34, 56, 49, 42, 35, 57, 50, 43, 58, 51, 59, 4, 12,
5, 20, 13, 6, 28, 21, 14, 7, 29, 22, 15, 30, 23,
31, 36, 44, 37, 52, 45, 38, 60, 53, 46, 39, 61, 54,
47, 62, 55, 63, 0, 8, 1, 16, 9, 2, 24, 17, 10, // 8x16
3, 25, 18, 11, 26, 19, 27, 32, 40, 33, 48, 41, 34,
56, 49, 42, 35, 57, 50, 43, 58, 51, 59, 4, 12, 5,
20, 13, 6, 28, 21, 14, 7, 29, 22, 15, 30, 23, 31,
64, 72, 65, 80, 73, 66, 88, 81, 74, 67, 89, 82, 75,
90, 83, 91, 36, 44, 37, 52, 45, 38, 60, 53, 46, 39,
61, 54, 47, 62, 55, 63, 96, 104, 97, 112, 105, 98, 120,
113, 106, 99, 121, 114, 107, 122, 115, 123, 68, 76, 69, 84,
77, 70, 92, 85, 78, 71, 93, 86, 79, 94, 87, 95, 100,
108, 101, 116, 109, 102, 124, 117, 110, 103, 125, 118, 111, 126,
119, 127, 0, 8, 1, 16, 9, 2, 24, 17, 10, 3, 25, // 8x32
18, 11, 26, 19, 27, 32, 40, 33, 48, 41, 34, 56, 49,
42, 35, 57, 50, 43, 58, 51, 59, 4, 12, 5, 20, 13,
6, 28, 21, 14, 7, 29, 22, 15, 30, 23, 31, 64, 72,
65, 80, 73, 66, 88, 81, 74, 67, 89, 82, 75, 90, 83,
91, 36, 44, 37, 52, 45, 38, 60, 53, 46, 39, 61, 54,
47, 62, 55, 63, 96, 104, 97, 112, 105, 98, 120, 113, 106,
99, 121, 114, 107, 122, 115, 123, 68, 76, 69, 84, 77, 70,
92, 85, 78, 71, 93, 86, 79, 94, 87, 95, 128, 136, 129,
144, 137, 130, 152, 145, 138, 131, 153, 146, 139, 154, 147, 155,
100, 108, 101, 116, 109, 102, 124, 117, 110, 103, 125, 118, 111,
126, 119, 127, 160, 168, 161, 176, 169, 162, 184, 177, 170, 163,
185, 178, 171, 186, 179, 187, 132, 140, 133, 148, 141, 134, 156,
149, 142, 135, 157, 150, 143, 158, 151, 159, 192, 200, 193, 208,
201, 194, 216, 209, 202, 195, 217, 210, 203, 218, 211, 219, 164,
172, 165, 180, 173, 166, 188, 181, 174, 167, 189, 182, 175, 190,
183, 191, 224, 232, 225, 240, 233, 226, 248, 241, 234, 227, 249,
242, 235, 250, 243, 251, 196, 204, 197, 212, 205, 198, 220, 213,
206, 199, 221, 214, 207, 222, 215, 223, 228, 236, 229, 244, 237,
230, 252, 245, 238, 231, 253, 246, 239, 254, 247, 255, 0, 8, // 8x64
1, 16, 9, 2, 24, 17, 10, 3, 25, 18, 11, 26, 19,
27, 32, 40, 33, 48, 41, 34, 56, 49, 42, 35, 57, 50,
43, 58, 51, 59, 4, 12, 5, 20, 13, 6, 28, 21, 14,
7, 29, 22, 15, 30, 23, 31, 64, 72, 65, 80, 73, 66,
88, 81, 74, 67, 89, 82, 75, 90, 83, 91, 36, 44, 37,
52, 45, 38, 60, 53, 46, 39, 61, 54, 47, 62, 55, 63,
96, 104, 97, 112, 105, 98, 120, 113, 106, 99, 121, 114, 107,
122, 115, 123, 68, 76, 69, 84, 77, 70, 92, 85, 78, 71,
93, 86, 79, 94, 87, 95, 128, 136, 129, 144, 137, 130, 152,
145, 138, 131, 153, 146, 139, 154, 147, 155, 100, 108, 101, 116,
109, 102, 124, 117, 110, 103, 125, 118, 111, 126, 119, 127, 160,
168, 161, 176, 169, 162, 184, 177, 170, 163, 185, 178, 171, 186,
179, 187, 132, 140, 133, 148, 141, 134, 156, 149, 142, 135, 157,
150, 143, 158, 151, 159, 192, 200, 193, 208, 201, 194, 216, 209,
202, 195, 217, 210, 203, 218, 211, 219, 164, 172, 165, 180, 173,
166, 188, 181, 174, 167, 189, 182, 175, 190, 183, 191, 224, 232,
225, 240, 233, 226, 248, 241, 234, 227, 249, 242, 235, 250, 243,
251, 196, 204, 197, 212, 205, 198, 220, 213, 206, 199, 221, 214,
207, 222, 215, 223, 228, 236, 229, 244, 237, 230, 252, 245, 238,
231, 253, 246, 239, 254, 247, 255, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, // 16xN
10, 11, 12, 13, 14, 15, 0, 16, 1, 17, 2, 18, 3, // 16x2
19, 4, 20, 5, 21, 6, 22, 7, 23, 8, 24, 9, 25,
10, 26, 11, 27, 12, 28, 13, 29, 14, 30, 15, 31, 0, // 16x4
16, 1, 32, 17, 2, 48, 33, 18, 3, 49, 34, 19, 50,
35, 51, 4, 20, 5, 36, 21, 6, 52, 37, 22, 7, 53,
38, 23, 54, 39, 55, 8, 24, 9, 40, 25, 10, 56, 41,
26, 11, 57, 42, 27, 58, 43, 59, 12, 28, 13, 44, 29,
14, 60, 45, 30, 15, 61, 46, 31, 62, 47, 63, 0, 16, // 16x8
1, 32, 17, 2, 48, 33, 18, 3, 49, 34, 19, 50, 35,
51, 64, 80, 65, 96, 81, 66, 112, 97, 82, 67, 113, 98,
83, 114, 99, 115, 4, 20, 5, 36, 21, 6, 52, 37, 22,
7, 53, 38, 23, 54, 39, 55, 68, 84, 69, 100, 85, 70,
116, 101, 86, 71, 117, 102, 87, 118, 103, 119, 8, 24, 9,
40, 25, 10, 56, 41, 26, 11, 57, 42, 27, 58, 43, 59,
72, 88, 73, 104, 89, 74, 120, 105, 90, 75, 121, 106, 91,
122, 107, 123, 12, 28, 13, 44, 29, 14, 60, 45, 30, 15,
61, 46, 31, 62, 47, 63, 76, 92, 77, 108, 93, 78, 124,
109, 94, 79, 125, 110, 95, 126, 111, 127, 0, 16, 1, 32, // 16x16
17, 2, 48, 33, 18, 3, 49, 34, 19, 50, 35, 51, 64,
80, 65, 96, 81, 66, 112, 97, 82, 67, 113, 98, 83, 114,
99, 115, 4, 20, 5, 36, 21, 6, 52, 37, 22, 7, 53,
38, 23, 54, 39, 55, 128, 144, 129, 160, 145, 130, 176, 161,
146, 131, 177, 162, 147, 178, 163, 179, 68, 84, 69, 100, 85,
70, 116, 101, 86, 71, 117, 102, 87, 118, 103, 119, 8, 24,
9, 40, 25, 10, 56, 41, 26, 11, 57, 42, 27, 58, 43,
59, 192, 208, 193, 224, 209, 194, 240, 225, 210, 195, 241, 226,
211, 242, 227, 243, 132, 148, 133, 164, 149, 134, 180, 165, 150,
135, 181, 166, 151, 182, 167, 183, 72, 88, 73, 104, 89, 74,
120, 105, 90, 75, 121, 106, 91, 122, 107, 123, 12, 28, 13,
44, 29, 14, 60, 45, 30, 15, 61, 46, 31, 62, 47, 63,
196, 212, 197, 228, 213, 198, 244, 229, 214, 199, 245, 230, 215,
246, 231, 247, 136, 152, 137, 168, 153, 138, 184, 169, 154, 139,
185, 170, 155, 186, 171, 187, 76, 92, 77, 108, 93, 78, 124,
109, 94, 79, 125, 110, 95, 126, 111, 127, 200, 216, 201, 232,
217, 202, 248, 233, 218, 203, 249, 234, 219, 250, 235, 251, 140,
156, 141, 172, 157, 142, 188, 173, 158, 143, 189, 174, 159, 190,
175, 191, 204, 220, 205, 236, 221, 206, 252, 237, 222, 207, 253,
238, 223, 254, 239, 255, 0, 16, 1, 32, 17, 2, 48, 33, // 16x32
18, 3, 49, 34, 19, 50, 35, 51, 64, 80, 65, 96, 81,
66, 112, 97, 82, 67, 113, 98, 83, 114, 99, 115, 4, 20,
5, 36, 21, 6, 52, 37, 22, 7, 53, 38, 23, 54, 39,
55, 128, 144, 129, 160, 145, 130, 176, 161, 146, 131, 177, 162,
147, 178, 163, 179, 68, 84, 69, 100, 85, 70, 116, 101, 86,
71, 117, 102, 87, 118, 103, 119, 8, 24, 9, 40, 25, 10,
56, 41, 26, 11, 57, 42, 27, 58, 43, 59, 192, 208, 193,
224, 209, 194, 240, 225, 210, 195, 241, 226, 211, 242, 227, 243,
132, 148, 133, 164, 149, 134, 180, 165, 150, 135, 181, 166, 151,
182, 167, 183, 72, 88, 73, 104, 89, 74, 120, 105, 90, 75,
121, 106, 91, 122, 107, 123, 12, 28, 13, 44, 29, 14, 60,
45, 30, 15, 61, 46, 31, 62, 47, 63, 256, 272, 257, 288,
273, 258, 304, 289, 274, 259, 305, 290, 275, 306, 291, 307, 196,
212, 197, 228, 213, 198, 244, 229, 214, 199, 245, 230, 215, 246,
231, 247, 136, 152, 137, 168, 153, 138, 184, 169, 154, 139, 185,
170, 155, 186, 171, 187, 76, 92, 77, 108, 93, 78, 124, 109,
94, 79, 125, 110, 95, 126, 111, 127, 320, 336, 321, 352, 337,
322, 368, 353, 338, 323, 369, 354, 339, 370, 355, 371, 260, 276,
261, 292, 277, 262, 308, 293, 278, 263, 309, 294, 279, 310, 295,
311, 200, 216, 201, 232, 217, 202, 248, 233, 218, 203, 249, 234,
219, 250, 235, 251, 140, 156, 141, 172, 157, 142, 188, 173, 158,
143, 189, 174, 159, 190, 175, 191, 384, 400, 385, 416, 401, 386,
432, 417, 402, 387, 433, 418, 403, 434, 419, 435, 324, 340, 325,
356, 341, 326, 372, 357, 342, 327, 373, 358, 343, 374, 359, 375,
264, 280, 265, 296, 281, 266, 312, 297, 282, 267, 313, 298, 283,
314, 299, 315, 204, 220, 205, 236, 221, 206, 252, 237, 222, 207,
253, 238, 223, 254, 239, 255, 448, 464, 449, 480, 465, 450, 496,
481, 466, 451, 497, 482, 467, 498, 483, 499, 388, 404, 389, 420,
405, 390, 436, 421, 406, 391, 437, 422, 407, 438, 423, 439, 328,
344, 329, 360, 345, 330, 376, 361, 346, 331, 377, 362, 347, 378,
363, 379, 268, 284, 269, 300, 285, 270, 316, 301, 286, 271, 317,
302, 287, 318, 303, 319, 452, 468, 453, 484, 469, 454, 500, 485,
470, 455, 501, 486, 471, 502, 487, 503, 392, 408, 393, 424, 409,
394, 440, 425, 410, 395, 441, 426, 411, 442, 427, 443, 332, 348,
333, 364, 349, 334, 380, 365, 350, 335, 381, 366, 351, 382, 367,
383, 456, 472, 457, 488, 473, 458, 504, 489, 474, 459, 505, 490,
475, 506, 491, 507, 396, 412, 397, 428, 413, 398, 444, 429, 414,
399, 445, 430, 415, 446, 431, 447, 460, 476, 461, 492, 477, 462,
508, 493, 478, 463, 509, 494, 479, 510, 495, 511, 0, 16, 1, // 16x64
32, 17, 2, 48, 33, 18, 3, 49, 34, 19, 50, 35, 51,
64, 80, 65, 96, 81, 66, 112, 97, 82, 67, 113, 98, 83,
114, 99, 115, 4, 20, 5, 36, 21, 6, 52, 37, 22, 7,
53, 38, 23, 54, 39, 55, 128, 144, 129, 160, 145, 130, 176,
161, 146, 131, 177, 162, 147, 178, 163, 179, 68, 84, 69, 100,
85, 70, 116, 101, 86, 71, 117, 102, 87, 118, 103, 119, 8,
24, 9, 40, 25, 10, 56, 41, 26, 11, 57, 42, 27, 58,
43, 59, 192, 208, 193, 224, 209, 194, 240, 225, 210, 195, 241,
226, 211, 242, 227, 243, 132, 148, 133, 164, 149, 134, 180, 165,
150, 135, 181, 166, 151, 182, 167, 183, 72, 88, 73, 104, 89,
74, 120, 105, 90, 75, 121, 106, 91, 122, 107, 123, 12, 28,
13, 44, 29, 14, 60, 45, 30, 15, 61, 46, 31, 62, 47,
63, 256, 272, 257, 288, 273, 258, 304, 289, 274, 259, 305, 290,
275, 306, 291, 307, 196, 212, 197, 228, 213, 198, 244, 229, 214,
199, 245, 230, 215, 246, 231, 247, 136, 152, 137, 168, 153, 138,
184, 169, 154, 139, 185, 170, 155, 186, 171, 187, 76, 92, 77,
108, 93, 78, 124, 109, 94, 79, 125, 110, 95, 126, 111, 127,
320, 336, 321, 352, 337, 322, 368, 353, 338, 323, 369, 354, 339,
370, 355, 371, 260, 276, 261, 292, 277, 262, 308, 293, 278, 263,
309, 294, 279, 310, 295, 311, 200, 216, 201, 232, 217, 202, 248,
233, 218, 203, 249, 234, 219, 250, 235, 251, 140, 156, 141, 172,
157, 142, 188, 173, 158, 143, 189, 174, 159, 190, 175, 191, 384,
400, 385, 416, 401, 386, 432, 417, 402, 387, 433, 418, 403, 434,
419, 435, 324, 340, 325, 356, 341, 326, 372, 357, 342, 327, 373,
358, 343, 374, 359, 375, 264, 280, 265, 296, 281, 266, 312, 297,
282, 267, 313, 298, 283, 314, 299, 315, 204, 220, 205, 236, 221,
206, 252, 237, 222, 207, 253, 238, 223, 254, 239, 255, 448, 464,
449, 480, 465, 450, 496, 481, 466, 451, 497, 482, 467, 498, 483,
499, 388, 404, 389, 420, 405, 390, 436, 421, 406, 391, 437, 422,
407, 438, 423, 439, 328, 344, 329, 360, 345, 330, 376, 361, 346,
331, 377, 362, 347, 378, 363, 379, 268, 284, 269, 300, 285, 270,
316, 301, 286, 271, 317, 302, 287, 318, 303, 319, 452, 468, 453,
484, 469, 454, 500, 485, 470, 455, 501, 486, 471, 502, 487, 503,
392, 408, 393, 424, 409, 394, 440, 425, 410, 395, 441, 426, 411,
442, 427, 443, 332, 348, 333, 364, 349, 334, 380, 365, 350, 335,
381, 366, 351, 382, 367, 383, 456, 472, 457, 488, 473, 458, 504,
489, 474, 459, 505, 490, 475, 506, 491, 507, 396, 412, 397, 428,
413, 398, 444, 429, 414, 399, 445, 430, 415, 446, 431, 447, 460,
476, 461, 492, 477, 462, 508, 493, 478, 463, 509, 494, 479, 510,
495, 511, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 0, 1, 2, 3, 4, 5, // 32xN
6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
0, 32, 1, 33, 2, 34, 3, 35, 4, 36, 5, 37, 6, // 32x2
38, 7, 39, 8, 40, 9, 41, 10, 42, 11, 43, 12, 44,
13, 45, 14, 46, 15, 47, 16, 48, 17, 49, 18, 50, 19,
51, 20, 52, 21, 53, 22, 54, 23, 55, 24, 56, 25, 57,
26, 58, 27, 59, 28, 60, 29, 61, 30, 62, 31, 63, 0, // 32x4
32, 1, 64, 33, 2, 96, 65, 34, 3, 97, 66, 35, 98,
67, 99, 4, 36, 5, 68, 37, 6, 100, 69, 38, 7, 101,
70, 39, 102, 71, 103, 8, 40, 9, 72, 41, 10, 104, 73,
42, 11, 105, 74, 43, 106, 75, 107, 12, 44, 13, 76, 45,
14, 108, 77, 46, 15, 109, 78, 47, 110, 79, 111, 16, 48,
17, 80, 49, 18, 112, 81, 50, 19, 113, 82, 51, 114, 83,
115, 20, 52, 21, 84, 53, 22, 116, 85, 54, 23, 117, 86,
55, 118, 87, 119, 24, 56, 25, 88, 57, 26, 120, 89, 58,
27, 121, 90, 59, 122, 91, 123, 28, 60, 29, 92, 61, 30,
124, 93, 62, 31, 125, 94, 63, 126, 95, 127, 0, 32, 1, // 32x8
64, 33, 2, 96, 65, 34, 3, 97, 66, 35, 98, 67, 99,
128, 160, 129, 192, 161, 130, 224, 193, 162, 131, 225, 194, 163,
226, 195, 227, 4, 36, 5, 68, 37, 6, 100, 69, 38, 7,
101, 70, 39, 102, 71, 103, 132, 164, 133, 196, 165, 134, 228,
197, 166, 135, 229, 198, 167, 230, 199, 231, 8, 40, 9, 72,
41, 10, 104, 73, 42, 11, 105, 74, 43, 106, 75, 107, 136,
168, 137, 200, 169, 138, 232, 201, 170, 139, 233, 202, 171, 234,
203, 235, 12, 44, 13, 76, 45, 14, 108, 77, 46, 15, 109,
78, 47, 110, 79, 111, 140, 172, 141, 204, 173, 142, 236, 205,
174, 143, 237, 206, 175, 238, 207, 239, 16, 48, 17, 80, 49,
18, 112, 81, 50, 19, 113, 82, 51, 114, 83, 115, 144, 176,
145, 208, 177, 146, 240, 209, 178, 147, 241, 210, 179, 242, 211,
243, 20, 52, 21, 84, 53, 22, 116, 85, 54, 23, 117, 86,
55, 118, 87, 119, 148, 180, 149, 212, 181, 150, 244, 213, 182,
151, 245, 214, 183, 246, 215, 247, 24, 56, 25, 88, 57, 26,
120, 89, 58, 27, 121, 90, 59, 122, 91, 123, 152, 184, 153,
216, 185, 154, 248, 217, 186, 155, 249, 218, 187, 250, 219, 251,
28, 60, 29, 92, 61, 30, 124, 93, 62, 31, 125, 94, 63,
126, 95, 127, 156, 188, 157, 220, 189, 158, 252, 221, 190, 159,
253, 222, 191, 254, 223, 255, 0, 32, 1, 64, 33, 2, 96, // 32x16
65, 34, 3, 97, 66, 35, 98, 67, 99, 128, 160, 129, 192,
161, 130, 224, 193, 162, 131, 225, 194, 163, 226, 195, 227, 4,
36, 5, 68, 37, 6, 100, 69, 38, 7, 101, 70, 39, 102,
71, 103, 256, 288, 257, 320, 289, 258, 352, 321, 290, 259, 353,
322, 291, 354, 323, 355, 132, 164, 133, 196, 165, 134, 228, 197,
166, 135, 229, 198, 167, 230, 199, 231, 8, 40, 9, 72, 41,
10, 104, 73, 42, 11, 105, 74, 43, 106, 75, 107, 384, 416,
385, 448, 417, 386, 480, 449, 418, 387, 481, 450, 419, 482, 451,
483, 260, 292, 261, 324, 293, 262, 356, 325, 294, 263, 357, 326,
295, 358, 327, 359, 136, 168, 137, 200, 169, 138, 232, 201, 170,
139, 233, 202, 171, 234, 203, 235, 12, 44, 13, 76, 45, 14,
108, 77, 46, 15, 109, 78, 47, 110, 79, 111, 388, 420, 389,
452, 421, 390, 484, 453, 422, 391, 485, 454, 423, 486, 455, 487,
264, 296, 265, 328, 297, 266, 360, 329, 298, 267, 361, 330, 299,
362, 331, 363, 140, 172, 141, 204, 173, 142, 236, 205, 174, 143,
237, 206, 175, 238, 207, 239, 16, 48, 17, 80, 49, 18, 112,
81, 50, 19, 113, 82, 51, 114, 83, 115, 392, 424, 393, 456,
425, 394, 488, 457, 426, 395, 489, 458, 427, 490, 459, 491, 268,
300, 269, 332, 301, 270, 364, 333, 302, 271, 365, 334, 303, 366,
335, 367, 144, 176, 145, 208, 177, 146, 240, 209, 178, 147, 241,
210, 179, 242, 211, 243, 20, 52, 21, 84, 53, 22, 116, 85,
54, 23, 117, 86, 55, 118, 87, 119, 396, 428, 397, 460, 429,
398, 492, 461, 430, 399, 493, 462, 431, 494, 463, 495, 272, 304,
273, 336, 305, 274, 368, 337, 306, 275, 369, 338, 307, 370, 339,
371, 148, 180, 149, 212, 181, 150, 244, 213, 182, 151, 245, 214,
183, 246, 215, 247, 24, 56, 25, 88, 57, 26, 120, 89, 58,
27, 121, 90, 59, 122, 91, 123, 400, 432, 401, 464, 433, 402,
496, 465, 434, 403, 497, 466, 435, 498, 467, 499, 276, 308, 277,
340, 309, 278, 372, 341, 310, 279, 373, 342, 311, 374, 343, 375,
152, 184, 153, 216, 185, 154, 248, 217, 186, 155, 249, 218, 187,
250, 219, 251, 28, 60, 29, 92, 61, 30, 124, 93, 62, 31,
125, 94, 63, 126, 95, 127, 404, 436, 405, 468, 437, 406, 500,
469, 438, 407, 501, 470, 439, 502, 471, 503, 280, 312, 281, 344,
313, 282, 376, 345, 314, 283, 377, 346, 315, 378, 347, 379, 156,
188, 157, 220, 189, 158, 252, 221, 190, 159, 253, 222, 191, 254,
223, 255, 408, 440, 409, 472, 441, 410, 504, 473, 442, 411, 505,
474, 443, 506, 475, 507, 284, 316, 285, 348, 317, 286, 380, 349,
318, 287, 381, 350, 319, 382, 351, 383, 412, 444, 413, 476, 445,
414, 508, 477, 446, 415, 509, 478, 447, 510, 479, 511, 0, 32, // 32x32
1, 64, 33, 2, 96, 65, 34, 3, 97, 66, 35, 98, 67,
99, 128, 160, 129, 192, 161, 130, 224, 193, 162, 131, 225, 194,
163, 226, 195, 227, 4, 36, 5, 68, 37, 6, 100, 69, 38,
7, 101, 70, 39, 102, 71, 103, 256, 288, 257, 320, 289, 258,
352, 321, 290, 259, 353, 322, 291, 354, 323, 355, 132, 164, 133,
196, 165, 134, 228, 197, 166, 135, 229, 198, 167, 230, 199, 231,
8, 40, 9, 72, 41, 10, 104, 73, 42, 11, 105, 74, 43,
106, 75, 107, 384, 416, 385, 448, 417, 386, 480, 449, 418, 387,
481, 450, 419, 482, 451, 483, 260, 292, 261, 324, 293, 262, 356,
325, 294, 263, 357, 326, 295, 358, 327, 359, 136, 168, 137, 200,
169, 138, 232, 201, 170, 139, 233, 202, 171, 234, 203, 235, 12,
44, 13, 76, 45, 14, 108, 77, 46, 15, 109, 78, 47, 110,
79, 111, 512, 544, 513, 576, 545, 514, 608, 577, 546, 515, 609,
578, 547, 610, 579, 611, 388, 420, 389, 452, 421, 390, 484, 453,
422, 391, 485, 454, 423, 486, 455, 487, 264, 296, 265, 328, 297,
266, 360, 329, 298, 267, 361, 330, 299, 362, 331, 363, 140, 172,
141, 204, 173, 142, 236, 205, 174, 143, 237, 206, 175, 238, 207,
239, 16, 48, 17, 80, 49, 18, 112, 81, 50, 19, 113, 82,
51, 114, 83, 115, 640, 672, 641, 704, 673, 642, 736, 705, 674,
643, 737, 706, 675, 738, 707, 739, 516, 548, 517, 580, 549, 518,
612, 581, 550, 519, 613, 582, 551, 614, 583, 615, 392, 424, 393,
456, 425, 394, 488, 457, 426, 395, 489, 458, 427, 490, 459, 491,
268, 300, 269, 332, 301, 270, 364, 333, 302, 271, 365, 334, 303,
366, 335, 367, 144, 176, 145, 208, 177, 146, 240, 209, 178, 147,
241, 210, 179, 242, 211, 243, 20, 52, 21, 84, 53, 22, 116,
85, 54, 23, 117, 86, 55, 118, 87, 119, 768, 800, 769, 832,
801, 770, 864, 833, 802, 771, 865, 834, 803, 866, 835, 867, 644,
676, 645, 708, 677, 646, 740, 709, 678, 647, 741, 710, 679, 742,
711, 743, 520, 552, 521, 584, 553, 522, 616, 585, 554, 523, 617,
586, 555, 618, 587, 619, 396, 428, 397, 460, 429, 398, 492, 461,
430, 399, 493, 462, 431, 494, 463, 495, 272, 304, 273, 336, 305,
274, 368, 337, 306, 275, 369, 338, 307, 370, 339, 371, 148, 180,
149, 212, 181, 150, 244, 213, 182, 151, 245, 214, 183, 246, 215,
247, 24, 56, 25, 88, 57, 26, 120, 89, 58, 27, 121, 90,
59, 122, 91, 123, 896, 928, 897, 960, 929, 898, 992, 961, 930,
899, 993, 962, 931, 994, 963, 995, 772, 804, 773, 836, 805, 774,
868, 837, 806, 775, 869, 838, 807, 870, 839, 871, 648, 680, 649,
712, 681, 650, 744, 713, 682, 651, 745, 714, 683, 746, 715, 747,
524, 556, 525, 588, 557, 526, 620, 589, 558, 527, 621, 590, 559,
622, 591, 623, 400, 432, 401, 464, 433, 402, 496, 465, 434, 403,
497, 466, 435, 498, 467, 499, 276, 308, 277, 340, 309, 278, 372,
341, 310, 279, 373, 342, 311, 374, 343, 375, 152, 184, 153, 216,
185, 154, 248, 217, 186, 155, 249, 218, 187, 250, 219, 251, 28,
60, 29, 92, 61, 30, 124, 93, 62, 31, 125, 94, 63, 126,
95, 127, 900, 932, 901, 964, 933, 902, 996, 965, 934, 903, 997,
966, 935, 998, 967, 999, 776, 808, 777, 840, 809, 778, 872, 841,
810, 779, 873, 842, 811, 874, 843, 875, 652, 684, 653, 716, 685,
654, 748, 717, 686, 655, 749, 718, 687, 750, 719, 751, 528, 560,
529, 592, 561, 530, 624, 593, 562, 531, 625, 594, 563, 626, 595,
627, 404, 436, 405, 468, 437, 406, 500, 469, 438, 407, 501, 470,
439, 502, 471, 503, 280, 312, 281, 344, 313, 282, 376, 345, 314,
283, 377, 346, 315, 378, 347, 379, 156, 188, 157, 220, 189, 158,
252, 221, 190, 159, 253, 222, 191, 254, 223, 255, 904, 936, 905,
968, 937, 906, 1000, 969, 938, 907, 1001, 970, 939, 1002, 971, 1003,
780, 812, 781, 844, 813, 782, 876, 845, 814, 783, 877, 846, 815,
878, 847, 879, 656, 688, 657, 720, 689, 658, 752, 721, 690, 659,
753, 722, 691, 754, 723, 755, 532, 564, 533, 596, 565, 534, 628,
597, 566, 535, 629, 598, 567, 630, 599, 631, 408, 440, 409, 472,
441, 410, 504, 473, 442, 411, 505, 474, 443, 506, 475, 507, 284,
316, 285, 348, 317, 286, 380, 349, 318, 287, 381, 350, 319, 382,
351, 383, 908, 940, 909, 972, 941, 910, 1004, 973, 942, 911, 1005,
974, 943, 1006, 975, 1007, 784, 816, 785, 848, 817, 786, 880, 849,
818, 787, 881, 850, 819, 882, 851, 883, 660, 692, 661, 724, 693,
662, 756, 725, 694, 663, 757, 726, 695, 758, 727, 759, 536, 568,
537, 600, 569, 538, 632, 601, 570, 539, 633, 602, 571, 634, 603,
635, 412, 444, 413, 476, 445, 414, 508, 477, 446, 415, 509, 478,
447, 510, 479, 511, 912, 944, 913, 976, 945, 914, 1008, 977, 946,
915, 1009, 978, 947, 1010, 979, 1011, 788, 820, 789, 852, 821, 790,
884, 853, 822, 791, 885, 854, 823, 886, 855, 887, 664, 696, 665,
728, 697, 666, 760, 729, 698, 667, 761, 730, 699, 762, 731, 763,
540, 572, 541, 604, 573, 542, 636, 605, 574, 543, 637, 606, 575,
638, 607, 639, 916, 948, 917, 980, 949, 918, 1012, 981, 950, 919,
1013, 982, 951, 1014, 983, 1015, 792, 824, 793, 856, 825, 794, 888,
857, 826, 795, 889, 858, 827, 890, 859, 891, 668, 700, 669, 732,
701, 670, 764, 733, 702, 671, 765, 734, 703, 766, 735, 767, 920,
952, 921, 984, 953, 922, 1016, 985, 954, 923, 1017, 986, 955, 1018,
987, 1019, 796, 828, 797, 860, 829, 798, 892, 861, 830, 799, 893,
862, 831, 894, 863, 895, 924, 956, 925, 988, 957, 926, 1020, 989,
958, 927, 1021, 990, 959, 1022, 991, 1023, 0, 32, 1, 64, 33, // 32x64
2, 96, 65, 34, 3, 97, 66, 35, 98, 67, 99, 128, 160,
129, 192, 161, 130, 224, 193, 162, 131, 225, 194, 163, 226, 195,
227, 4, 36, 5, 68, 37, 6, 100, 69, 38, 7, 101, 70,
39, 102, 71, 103, 256, 288, 257, 320, 289, 258, 352, 321, 290,
259, 353, 322, 291, 354, 323, 355, 132, 164, 133, 196, 165, 134,
228, 197, 166, 135, 229, 198, 167, 230, 199, 231, 8, 40, 9,
72, 41, 10, 104, 73, 42, 11, 105, 74, 43, 106, 75, 107,
384, 416, 385, 448, 417, 386, 480, 449, 418, 387, 481, 450, 419,
482, 451, 483, 260, 292, 261, 324, 293, 262, 356, 325, 294, 263,
357, 326, 295, 358, 327, 359, 136, 168, 137, 200, 169, 138, 232,
201, 170, 139, 233, 202, 171, 234, 203, 235, 12, 44, 13, 76,
45, 14, 108, 77, 46, 15, 109, 78, 47, 110, 79, 111, 512,
544, 513, 576, 545, 514, 608, 577, 546, 515, 609, 578, 547, 610,
579, 611, 388, 420, 389, 452, 421, 390, 484, 453, 422, 391, 485,
454, 423, 486, 455, 487, 264, 296, 265, 328, 297, 266, 360, 329,
298, 267, 361, 330, 299, 362, 331, 363, 140, 172, 141, 204, 173,
142, 236, 205, 174, 143, 237, 206, 175, 238, 207, 239, 16, 48,
17, 80, 49, 18, 112, 81, 50, 19, 113, 82, 51, 114, 83,
115, 640, 672, 641, 704, 673, 642, 736, 705, 674, 643, 737, 706,
675, 738, 707, 739, 516, 548, 517, 580, 549, 518, 612, 581, 550,
519, 613, 582, 551, 614, 583, 615, 392, 424, 393, 456, 425, 394,
488, 457, 426, 395, 489, 458, 427, 490, 459, 491, 268, 300, 269,
332, 301, 270, 364, 333, 302, 271, 365, 334, 303, 366, 335, 367,
144, 176, 145, 208, 177, 146, 240, 209, 178, 147, 241, 210, 179,
242, 211, 243, 20, 52, 21, 84, 53, 22, 116, 85, 54, 23,
117, 86, 55, 118, 87, 119, 768, 800, 769, 832, 801, 770, 864,
833, 802, 771, 865, 834, 803, 866, 835, 867, 644, 676, 645, 708,
677, 646, 740, 709, 678, 647, 741, 710, 679, 742, 711, 743, 520,
552, 521, 584, 553, 522, 616, 585, 554, 523, 617, 586, 555, 618,
587, 619, 396, 428, 397, 460, 429, 398, 492, 461, 430, 399, 493,
462, 431, 494, 463, 495, 272, 304, 273, 336, 305, 274, 368, 337,
306, 275, 369, 338, 307, 370, 339, 371, 148, 180, 149, 212, 181,
150, 244, 213, 182, 151, 245, 214, 183, 246, 215, 247, 24, 56,
25, 88, 57, 26, 120, 89, 58, 27, 121, 90, 59, 122, 91,
123, 896, 928, 897, 960, 929, 898, 992, 961, 930, 899, 993, 962,
931, 994, 963, 995, 772, 804, 773, 836, 805, 774, 868, 837, 806,
775, 869, 838, 807, 870, 839, 871, 648, 680, 649, 712, 681, 650,
744, 713, 682, 651, 745, 714, 683, 746, 715, 747, 524, 556, 525,
588, 557, 526, 620, 589, 558, 527, 621, 590, 559, 622, 591, 623,
400, 432, 401, 464, 433, 402, 496, 465, 434, 403, 497, 466, 435,
498, 467, 499, 276, 308, 277, 340, 309, 278, 372, 341, 310, 279,
373, 342, 311, 374, 343, 375, 152, 184, 153, 216, 185, 154, 248,
217, 186, 155, 249, 218, 187, 250, 219, 251, 28, 60, 29, 92,
61, 30, 124, 93, 62, 31, 125, 94, 63, 126, 95, 127, 900,
932, 901, 964, 933, 902, 996, 965, 934, 903, 997, 966, 935, 998,
967, 999, 776, 808, 777, 840, 809, 778, 872, 841, 810, 779, 873,
842, 811, 874, 843, 875, 652, 684, 653, 716, 685, 654, 748, 717,
686, 655, 749, 718, 687, 750, 719, 751, 528, 560, 529, 592, 561,
530, 624, 593, 562, 531, 625, 594, 563, 626, 595, 627, 404, 436,
405, 468, 437, 406, 500, 469, 438, 407, 501, 470, 439, 502, 471,
503, 280, 312, 281, 344, 313, 282, 376, 345, 314, 283, 377, 346,
315, 378, 347, 379, 156, 188, 157, 220, 189, 158, 252, 221, 190,
159, 253, 222, 191, 254, 223, 255, 904, 936, 905, 968, 937, 906,
1000, 969, 938, 907, 1001, 970, 939, 1002, 971, 1003, 780, 812, 781,
844, 813, 782, 876, 845, 814, 783, 877, 846, 815, 878, 847, 879,
656, 688, 657, 720, 689, 658, 752, 721, 690, 659, 753, 722, 691,
754, 723, 755, 532, 564, 533, 596, 565, 534, 628, 597, 566, 535,
629, 598, 567, 630, 599, 631, 408, 440, 409, 472, 441, 410, 504,
473, 442, 411, 505, 474, 443, 506, 475, 507, 284, 316, 285, 348,
317, 286, 380, 349, 318, 287, 381, 350, 319, 382, 351, 383, 908,
940, 909, 972, 941, 910, 1004, 973, 942, 911, 1005, 974, 943, 1006,
975, 1007, 784, 816, 785, 848, 817, 786, 880, 849, 818, 787, 881,
850, 819, 882, 851, 883, 660, 692, 661, 724, 693, 662, 756, 725,
694, 663, 757, 726, 695, 758, 727, 759, 536, 568, 537, 600, 569,
538, 632, 601, 570, 539, 633, 602, 571, 634, 603, 635, 412, 444,
413, 476, 445, 414, 508, 477, 446, 415, 509, 478, 447, 510, 479,
511, 912, 944, 913, 976, 945, 914, 1008, 977, 946, 915, 1009, 978,
947, 1010, 979, 1011, 788, 820, 789, 852, 821, 790, 884, 853, 822,
791, 885, 854, 823, 886, 855, 887, 664, 696, 665, 728, 697, 666,
760, 729, 698, 667, 761, 730, 699, 762, 731, 763, 540, 572, 541,
604, 573, 542, 636, 605, 574, 543, 637, 606, 575, 638, 607, 639,
916, 948, 917, 980, 949, 918, 1012, 981, 950, 919, 1013, 982, 951,
1014, 983, 1015, 792, 824, 793, 856, 825, 794, 888, 857, 826, 795,
889, 858, 827, 890, 859, 891, 668, 700, 669, 732, 701, 670, 764,
733, 702, 671, 765, 734, 703, 766, 735, 767, 920, 952, 921, 984,
953, 922, 1016, 985, 954, 923, 1017, 986, 955, 1018, 987, 1019, 796,
828, 797, 860, 829, 798, 892, 861, 830, 799, 893, 862, 831, 894,
863, 895, 924, 956, 925, 988, 957, 926, 1020, 989, 958, 927, 1021,
990, 959, 1022, 991, 1023, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, // 64xN
11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
24, 25, 26, 27, 28, 29, 30, 31, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
63, 0, 64, 1, 65, 2, 66, 3, 67, 4, 68, 5, 69, // 64x2
6, 70, 7, 71, 8, 72, 9, 73, 10, 74, 11, 75, 12,
76, 13, 77, 14, 78, 15, 79, 16, 80, 17, 81, 18, 82,
19, 83, 20, 84, 21, 85, 22, 86, 23, 87, 24, 88, 25,
89, 26, 90, 27, 91, 28, 92, 29, 93, 30, 94, 31, 95,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, // 64x4
64, 1, 128, 65, 2, 192, 129, 66, 3, 193, 130, 67, 194,
131, 195, 4, 68, 5, 132, 69, 6, 196, 133, 70, 7, 197,
134, 71, 198, 135, 199, 8, 72, 9, 136, 73, 10, 200, 137,
74, 11, 201, 138, 75, 202, 139, 203, 12, 76, 13, 140, 77,
14, 204, 141, 78, 15, 205, 142, 79, 206, 143, 207, 16, 80,
17, 144, 81, 18, 208, 145, 82, 19, 209, 146, 83, 210, 147,
211, 20, 84, 21, 148, 85, 22, 212, 149, 86, 23, 213, 150,
87, 214, 151, 215, 24, 88, 25, 152, 89, 26, 216, 153, 90,
27, 217, 154, 91, 218, 155, 219, 28, 92, 29, 156, 93, 30,
220, 157, 94, 31, 221, 158, 95, 222, 159, 223, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
255, 255, 255, 255, 255, 255, 255, 255, 0, 64, 1, 128, 65, // 64x8
2, 192, 129, 66, 3, 193, 130, 67, 194, 131, 195, 256, 320,
257, 384, 321, 258, 448, 385, 322, 259, 449, 386, 323, 450, 387,
451, 4, 68, 5, 132, 69, 6, 196, 133, 70, 7, 197, 134,
71, 198, 135, 199, 260, 324, 261, 388, 325, 262, 452, 389, 326,
263, 453, 390, 327, 454, 391, 455, 8, 72, 9, 136, 73, 10,
200, 137, 74, 11, 201, 138, 75, 202, 139, 203, 264, 328, 265,
392, 329, 266, 456, 393, 330, 267, 457, 394, 331, 458, 395, 459,
12, 76, 13, 140, 77, 14, 204, 141, 78, 15, 205, 142, 79,
206, 143, 207, 268, 332, 269, 396, 333, 270, 460, 397, 334, 271,
461, 398, 335, 462, 399, 463, 16, 80, 17, 144, 81, 18, 208,
145, 82, 19, 209, 146, 83, 210, 147, 211, 272, 336, 273, 400,
337, 274, 464, 401, 338, 275, 465, 402, 339, 466, 403, 467, 20,
84, 21, 148, 85, 22, 212, 149, 86, 23, 213, 150, 87, 214,
151, 215, 276, 340, 277, 404, 341, 278, 468, 405, 342, 279, 469,
406, 343, 470, 407, 471, 24, 88, 25, 152, 89, 26, 216, 153,
90, 27, 217, 154, 91, 218, 155, 219, 280, 344, 281, 408, 345,
282, 472, 409, 346, 283, 473, 410, 347, 474, 411, 475, 28, 92,
29, 156, 93, 30, 220, 157, 94, 31, 221, 158, 95, 222, 159,
223, 284, 348, 285, 412, 349, 286, 476, 413, 350, 287, 477, 414,
351, 478, 415, 479, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511, 511,
0, 64, 1, 128, 65, 2, 192, 129, 66, 3, 193, 130, 67, // 64x16
194, 131, 195, 256, 320, 257, 384, 321, 258, 448, 385, 322, 259,
449, 386, 323, 450, 387, 451, 4, 68, 5, 132, 69, 6, 196,
133, 70, 7, 197, 134, 71, 198, 135, 199, 512, 576, 513, 640,
577, 514, 704, 641, 578, 515, 705, 642, 579, 706, 643, 707, 260,
324, 261, 388, 325, 262, 452, 389, 326, 263, 453, 390, 327, 454,
391, 455, 8, 72, 9, 136, 73, 10, 200, 137, 74, 11, 201,
138, 75, 202, 139, 203, 768, 832, 769, 896, 833, 770, 960, 897,
834, 771, 961, 898, 835, 962, 899, 963, 516, 580, 517, 644, 581,
518, 708, 645, 582, 519, 709, 646, 583, 710, 647, 711, 264, 328,
265, 392, 329, 266, 456, 393, 330, 267, 457, 394, 331, 458, 395,
459, 12, 76, 13, 140, 77, 14, 204, 141, 78, 15, 205, 142,
79, 206, 143, 207, 772, 836, 773, 900, 837, 774, 964, 901, 838,
775, 965, 902, 839, 966, 903, 967, 520, 584, 521, 648, 585, 522,
712, 649, 586, 523, 713, 650, 587, 714, 651, 715, 268, 332, 269,
396, 333, 270, 460, 397, 334, 271, 461, 398, 335, 462, 399, 463,
16, 80, 17, 144, 81, 18, 208, 145, 82, 19, 209, 146, 83,
210, 147, 211, 776, 840, 777, 904, 841, 778, 968, 905, 842, 779,
969, 906, 843, 970, 907, 971, 524, 588, 525, 652, 589, 526, 716,
653, 590, 527, 717, 654, 591, 718, 655, 719, 272, 336, 273, 400,
337, 274, 464, 401, 338, 275, 465, 402, 339, 466, 403, 467, 20,
84, 21, 148, 85, 22, 212, 149, 86, 23, 213, 150, 87, 214,
151, 215, 780, 844, 781, 908, 845, 782, 972, 909, 846, 783, 973,
910, 847, 974, 911, 975, 528, 592, 529, 656, 593, 530, 720, 657,
594, 531, 721, 658, 595, 722, 659, 723, 276, 340, 277, 404, 341,
278, 468, 405, 342, 279, 469, 406, 343, 470, 407, 471, 24, 88,
25, 152, 89, 26, 216, 153, 90, 27, 217, 154, 91, 218, 155,
219, 784, 848, 785, 912, 849, 786, 976, 913, 850, 787, 977, 914,
851, 978, 915, 979, 532, 596, 533, 660, 597, 534, 724, 661, 598,
535, 725, 662, 599, 726, 663, 727, 280, 344, 281, 408, 345, 282,
472, 409, 346, 283, 473, 410, 347, 474, 411, 475, 28, 92, 29,
156, 93, 30, 220, 157, 94, 31, 221, 158, 95, 222, 159, 223,
788, 852, 789, 916, 853, 790, 980, 917, 854, 791, 981, 918, 855,
982, 919, 983, 536, 600, 537, 664, 601, 538, 728, 665, 602, 539,
729, 666, 603, 730, 667, 731, 284, 348, 285, 412, 349, 286, 476,
413, 350, 287, 477, 414, 351, 478, 415, 479, 792, 856, 793, 920,
857, 794, 984, 921, 858, 795, 985, 922, 859, 986, 923, 987, 540,
604, 541, 668, 605, 542, 732, 669, 606, 543, 733, 670, 607, 734,
671, 735, 796, 860, 797, 924, 861, 798, 988, 925, 862, 799, 989,
926, 863, 990, 927, 991, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023,
1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 0, 64, 1, // 64x32
128, 65, 2, 192, 129, 66, 3, 193, 130, 67, 194, 131, 195,
256, 320, 257, 384, 321, 258, 448, 385, 322, 259, 449, 386, 323,
450, 387, 451, 4, 68, 5, 132, 69, 6, 196, 133, 70, 7,
197, 134, 71, 198, 135, 199, 512, 576, 513, 640, 577, 514, 704,
641, 578, 515, 705, 642, 579, 706, 643, 707, 260, 324, 261, 388,
325, 262, 452, 389, 326, 263, 453, 390, 327, 454, 391, 455, 8,
72, 9, 136, 73, 10, 200, 137, 74, 11, 201, 138, 75, 202,
139, 203, 768, 832, 769, 896, 833, 770, 960, 897, 834, 771, 961,
898, 835, 962, 899, 963, 516, 580, 517, 644, 581, 518, 708, 645,
582, 519, 709, 646, 583, 710, 647, 711, 264, 328, 265, 392, 329,
266, 456, 393, 330, 267, 457, 394, 331, 458, 395, 459, 12, 76,
13, 140, 77, 14, 204, 141, 78, 15, 205, 142, 79, 206, 143,
207, 1024, 1088, 1025, 1152, 1089, 1026, 1216, 1153, 1090, 1027, 1217, 1154,
1091, 1218, 1155, 1219, 772, 836, 773, 900, 837, 774, 964, 901, 838,
775, 965, 902, 839, 966, 903, 967, 520, 584, 521, 648, 585, 522,
712, 649, 586, 523, 713, 650, 587, 714, 651, 715, 268, 332, 269,
396, 333, 270, 460, 397, 334, 271, 461, 398, 335, 462, 399, 463,
16, 80, 17, 144, 81, 18, 208, 145, 82, 19, 209, 146, 83,
210, 147, 211, 1280, 1344, 1281, 1408, 1345, 1282, 1472, 1409, 1346, 1283,
1473, 1410, 1347, 1474, 1411, 1475, 1028, 1092, 1029, 1156, 1093, 1030, 1220,
1157, 1094, 1031, 1221, 1158, 1095, 1222, 1159, 1223, 776, 840, 777, 904,
841, 778, 968, 905, 842, 779, 969, 906, 843, 970, 907, 971, 524,
588, 525, 652, 589, 526, 716, 653, 590, 527, 717, 654, 591, 718,
655, 719, 272, 336, 273, 400, 337, 274, 464, 401, 338, 275, 465,
402, 339, 466, 403, 467, 20, 84, 21, 148, 85, 22, 212, 149,
86, 23, 213, 150, 87, 214, 151, 215, 1536, 1600, 1537, 1664, 1601,
1538, 1728, 1665, 1602, 1539, 1729, 1666, 1603, 1730, 1667, 1731, 1284, 1348,
1285, 1412, 1349, 1286, 1476, 1413, 1350, 1287, 1477, 1414, 1351, 1478, 1415,
1479, 1032, 1096, 1033, 1160, 1097, 1034, 1224, 1161, 1098, 1035, 1225, 1162,
1099, 1226, 1163, 1227, 780, 844, 781, 908, 845, 782, 972, 909, 846,
783, 973, 910, 847, 974, 911, 975, 528, 592, 529, 656, 593, 530,
720, 657, 594, 531, 721, 658, 595, 722, 659, 723, 276, 340, 277,
404, 341, 278, 468, 405, 342, 279, 469, 406, 343, 470, 407, 471,
24, 88, 25, 152, 89, 26, 216, 153, 90, 27, 217, 154, 91,
218, 155, 219, 1792, 1856, 1793, 1920, 1857, 1794, 1984, 1921, 1858, 1795,
1985, 1922, 1859, 1986, 1923, 1987, 1540, 1604, 1541, 1668, 1605, 1542, 1732,
1669, 1606, 1543, 1733, 1670, 1607, 1734, 1671, 1735, 1288, 1352, 1289, 1416,
1353, 1290, 1480, 1417, 1354, 1291, 1481, 1418, 1355, 1482, 1419, 1483, 1036,
1100, 1037, 1164, 1101, 1038, 1228, 1165, 1102, 1039, 1229, 1166, 1103, 1230,
1167, 1231, 784, 848, 785, 912, 849, 786, 976, 913, 850, 787, 977,
914, 851, 978, 915, 979, 532, 596, 533, 660, 597, 534, 724, 661,
598, 535, 725, 662, 599, 726, 663, 727, 280, 344, 281, 408, 345,
282, 472, 409, 346, 283, 473, 410, 347, 474, 411, 475, 28, 92,
29, 156, 93, 30, 220, 157, 94, 31, 221, 158, 95, 222, 159,
223, 1796, 1860, 1797, 1924, 1861, 1798, 1988, 1925, 1862, 1799, 1989, 1926,
1863, 1990, 1927, 1991, 1544, 1608, 1545, 1672, 1609, 1546, 1736, 1673, 1610,
1547, 1737, 1674, 1611, 1738, 1675, 1739, 1292, 1356, 1293, 1420, 1357, 1294,
1484, 1421, 1358, 1295, 1485, 1422, 1359, 1486, 1423, 1487, 1040, 1104, 1041,
1168, 1105, 1042, 1232, 1169, 1106, 1043, 1233, 1170, 1107, 1234, 1171, 1235,
788, 852, 789, 916, 853, 790, 980, 917, 854, 791, 981, 918, 855,
982, 919, 983, 536, 600, 537, 664, 601, 538, 728, 665, 602, 539,
729, 666, 603, 730, 667, 731, 284, 348, 285, 412, 349, 286, 476,
413, 350, 287, 477, 414, 351, 478, 415, 479, 1800, 1864, 1801, 1928,
1865, 1802, 1992, 1929, 1866, 1803, 1993, 1930, 1867, 1994, 1931, 1995, 1548,
1612, 1549, 1676, 1613, 1550, 1740, 1677, 1614, 1551, 1741, 1678, 1615, 1742,
1679, 1743, 1296, 1360, 1297, 1424, 1361, 1298, 1488, 1425, 1362, 1299, 1489,
1426, 1363, 1490, 1427, 1491, 1044, 1108, 1045, 1172, 1109, 1046, 1236, 1173,
1110, 1047, 1237, 1174, 1111, 1238, 1175, 1239, 792, 856, 793, 920, 857,
794, 984, 921, 858, 795, 985, 922, 859, 986, 923, 987, 540, 604,
541, 668, 605, 542, 732, 669, 606, 543, 733, 670, 607, 734, 671,
735, 1804, 1868, 1805, 1932, 1869, 1806, 1996, 1933, 1870, 1807, 1997, 1934,
1871, 1998, 1935, 1999, 1552, 1616, 1553, 1680, 1617, 1554, 1744, 1681, 1618,
1555, 1745, 1682, 1619, 1746, 1683, 1747, 1300, 1364, 1301, 1428, 1365, 1302,
1492, 1429, 1366, 1303, 1493, 1430, 1367, 1494, 1431, 1495, 1048, 1112, 1049,
1176, 1113, 1050, 1240, 1177, 1114, 1051, 1241, 1178, 1115, 1242, 1179, 1243,
796, 860, 797, 924, 861, 798, 988, 925, 862, 799, 989, 926, 863,
990, 927, 991, 1808, 1872, 1809, 1936, 1873, 1810, 2000, 1937, 1874, 1811,
2001, 1938, 1875, 2002, 1939, 2003, 1556, 1620, 1557, 1684, 1621, 1558, 1748,
1685, 1622, 1559, 1749, 1686, 1623, 1750, 1687, 1751, 1304, 1368, 1305, 1432,
1369, 1306, 1496, 1433, 1370, 1307, 1497, 1434, 1371, 1498, 1435, 1499, 1052,
1116, 1053, 1180, 1117, 1054, 1244, 1181, 1118, 1055, 1245, 1182, 1119, 1246,
1183, 1247, 1812, 1876, 1813, 1940, 1877, 1814, 2004, 1941, 1878, 1815, 2005,
1942, 1879, 2006, 1943, 2007, 1560, 1624, 1561, 1688, 1625, 1562, 1752, 1689,
1626, 1563, 1753, 1690, 1627, 1754, 1691, 1755, 1308, 1372, 1309, 1436, 1373,
1310, 1500, 1437, 1374, 1311, 1501, 1438, 1375, 1502, 1439, 1503, 1816, 1880,
1817, 1944, 1881, 1818, 2008, 1945, 1882, 1819, 2009, 1946, 1883, 2010, 1947,
2011, 1564, 1628, 1565, 1692, 1629, 1566, 1756, 1693, 1630, 1567, 1757, 1694,
1631, 1758, 1695, 1759, 1820, 1884, 1821, 1948, 1885, 1822, 2012, 1949, 1886,
1823, 2013, 1950, 1887, 2014, 1951, 2015, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047, 2047,
2047, 2047, 2047, 2047, 0, 64, 1, 128, 65, 2, 192, 129, 66, // 64x64
3, 193, 130, 67, 194, 131, 195, 256, 320, 257, 384, 321, 258,
448, 385, 322, 259, 449, 386, 323, 450, 387, 451, 4, 68, 5,
132, 69, 6, 196, 133, 70, 7, 197, 134, 71, 198, 135, 199,
512, 576, 513, 640, 577, 514, 704, 641, 578, 515, 705, 642, 579,
706, 643, 707, 260, 324, 261, 388, 325, 262, 452, 389, 326, 263,
453, 390, 327, 454, 391, 455, 8, 72, 9, 136, 73, 10, 200,
137, 74, 11, 201, 138, 75, 202, 139, 203, 768, 832, 769, 896,
833, 770, 960, 897, 834, 771, 961, 898, 835, 962, 899, 963, 516,
580, 517, 644, 581, 518, 708, 645, 582, 519, 709, 646, 583, 710,
647, 711, 264, 328, 265, 392, 329, 266, 456, 393, 330, 267, 457,
394, 331, 458, 395, 459, 12, 76, 13, 140, 77, 14, 204, 141,
78, 15, 205, 142, 79, 206, 143, 207, 1024, 1088, 1025, 1152, 1089,
1026, 1216, 1153, 1090, 1027, 1217, 1154, 1091, 1218, 1155, 1219, 772, 836,
773, 900, 837, 774, 964, 901, 838, 775, 965, 902, 839, 966, 903,
967, 520, 584, 521, 648, 585, 522, 712, 649, 586, 523, 713, 650,
587, 714, 651, 715, 268, 332, 269, 396, 333, 270, 460, 397, 334,
271, 461, 398, 335, 462, 399, 463, 16, 80, 17, 144, 81, 18,
208, 145, 82, 19, 209, 146, 83, 210, 147, 211, 1280, 1344, 1281,
1408, 1345, 1282, 1472, 1409, 1346, 1283, 1473, 1410, 1347, 1474, 1411, 1475,
1028, 1092, 1029, 1156, 1093, 1030, 1220, 1157, 1094, 1031, 1221, 1158, 1095,
1222, 1159, 1223, 776, 840, 777, 904, 841, 778, 968, 905, 842, 779,
969, 906, 843, 970, 907, 971, 524, 588, 525, 652, 589, 526, 716,
653, 590, 527, 717, 654, 591, 718, 655, 719, 272, 336, 273, 400,
337, 274, 464, 401, 338, 275, 465, 402, 339, 466, 403, 467, 20,
84, 21, 148, 85, 22, 212, 149, 86, 23, 213, 150, 87, 214,
151, 215, 1536, 1600, 1537, 1664, 1601, 1538, 1728, 1665, 1602, 1539, 1729,
1666, 1603, 1730, 1667, 1731, 1284, 1348, 1285, 1412, 1349, 1286, 1476, 1413,
1350, 1287, 1477, 1414, 1351, 1478, 1415, 1479, 1032, 1096, 1033, 1160, 1097,
1034, 1224, 1161, 1098, 1035, 1225, 1162, 1099, 1226, 1163, 1227, 780, 844,
781, 908, 845, 782, 972, 909, 846, 783, 973, 910, 847, 974, 911,
975, 528, 592, 529, 656, 593, 530, 720, 657, 594, 531, 721, 658,
595, 722, 659, 723, 276, 340, 277, 404, 341, 278, 468, 405, 342,
279, 469, 406, 343, 470, 407, 471, 24, 88, 25, 152, 89, 26,
216, 153, 90, 27, 217, 154, 91, 218, 155, 219, 1792, 1856, 1793,
1920, 1857, 1794, 1984, 1921, 1858, 1795, 1985, 1922, 1859, 1986, 1923, 1987,
1540, 1604, 1541, 1668, 1605, 1542, 1732, 1669, 1606, 1543, 1733, 1670, 1607,
1734, 1671, 1735, 1288, 1352, 1289, 1416, 1353, 1290, 1480, 1417, 1354, 1291,
1481, 1418, 1355, 1482, 1419, 1483, 1036, 1100, 1037, 1164, 1101, 1038, 1228,
1165, 1102, 1039, 1229, 1166, 1103, 1230, 1167, 1231, 784, 848, 785, 912,
849, 786, 976, 913, 850, 787, 977, 914, 851, 978, 915, 979, 532,
596, 533, 660, 597, 534, 724, 661, 598, 535, 725, 662, 599, 726,
663, 727, 280, 344, 281, 408, 345, 282, 472, 409, 346, 283, 473,
410, 347, 474, 411, 475, 28, 92, 29, 156, 93, 30, 220, 157,
94, 31, 221, 158, 95, 222, 159, 223, 1796, 1860, 1797, 1924, 1861,
1798, 1988, 1925, 1862, 1799, 1989, 1926, 1863, 1990, 1927, 1991, 1544, 1608,
1545, 1672, 1609, 1546, 1736, 1673, 1610, 1547, 1737, 1674, 1611, 1738, 1675,
1739, 1292, 1356, 1293, 1420, 1357, 1294, 1484, 1421, 1358, 1295, 1485, 1422,
1359, 1486, 1423, 1487, 1040, 1104, 1041, 1168, 1105, 1042, 1232, 1169, 1106,
1043, 1233, 1170, 1107, 1234, 1171, 1235, 788, 852, 789, 916, 853, 790,
980, 917, 854, 791, 981, 918, 855, 982, 919, 983, 536, 600, 537,
664, 601, 538, 728, 665, 602, 539, 729, 666, 603, 730, 667, 731,
284, 348, 285, 412, 349, 286, 476, 413, 350, 287, 477, 414, 351,
478, 415, 479, 1800, 1864, 1801, 1928, 1865, 1802, 1992, 1929, 1866, 1803,
1993, 1930, 1867, 1994, 1931, 1995, 1548, 1612, 1549, 1676, 1613, 1550, 1740,
1677, 1614, 1551, 1741, 1678, 1615, 1742, 1679, 1743, 1296, 1360, 1297, 1424,
1361, 1298, 1488, 1425, 1362, 1299, 1489, 1426, 1363, 1490, 1427, 1491, 1044,
1108, 1045, 1172, 1109, 1046, 1236, 1173, 1110, 1047, 1237, 1174, 1111, 1238,
1175, 1239, 792, 856, 793, 920, 857, 794, 984, 921, 858, 795, 985,
922, 859, 986, 923, 987, 540, 604, 541, 668, 605, 542, 732, 669,
606, 543, 733, 670, 607, 734, 671, 735, 1804, 1868, 1805, 1932, 1869,
1806, 1996, 1933, 1870, 1807, 1997, 1934, 1871, 1998, 1935, 1999, 1552, 1616,
1553, 1680, 1617, 1554, 1744, 1681, 1618, 1555, 1745, 1682, 1619, 1746, 1683,
1747, 1300, 1364, 1301, 1428, 1365, 1302, 1492, 1429, 1366, 1303, 1493, 1430,
1367, 1494, 1431, 1495, 1048, 1112, 1049, 1176, 1113, 1050, 1240, 1177, 1114,
1051, 1241, 1178, 1115, 1242, 1179, 1243, 796, 860, 797, 924, 861, 798,
988, 925, 862, 799, 989, 926, 863, 990, 927, 991, 1808, 1872, 1809,
1936, 1873, 1810, 2000, 1937, 1874, 1811, 2001, 1938, 1875, 2002, 1939, 2003,
1556, 1620, 1557, 1684, 1621, 1558, 1748, 1685, 1622, 1559, 1749, 1686, 1623,
1750, 1687, 1751, 1304, 1368, 1305, 1432, 1369, 1306, 1496, 1433, 1370, 1307,
1497, 1434, 1371, 1498, 1435, 1499, 1052, 1116, 1053, 1180, 1117, 1054, 1244,
1181, 1118, 1055, 1245, 1182, 1119, 1246, 1183, 1247, 1812, 1876, 1813, 1940,
1877, 1814, 2004, 1941, 1878, 1815, 2005, 1942, 1879, 2006, 1943, 2007, 1560,
1624, 1561, 1688, 1625, 1562, 1752, 1689, 1626, 1563, 1753, 1690, 1627, 1754,
1691, 1755, 1308, 1372, 1309, 1436, 1373, 1310, 1500, 1437, 1374, 1311, 1501,
1438, 1375, 1502, 1439, 1503, 1816, 1880, 1817, 1944, 1881, 1818, 2008, 1945,
1882, 1819, 2009, 1946, 1883, 2010, 1947, 2011, 1564, 1628, 1565, 1692, 1629,
1566, 1756, 1693, 1630, 1567, 1757, 1694, 1631, 1758, 1695, 1759, 1820, 1884,
1821, 1948, 1885, 1822, 2012, 1949, 1886, 1823, 2013, 1950, 1887, 2014, 1951,
2015, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095, 4095,
4095, 4095, 4095, 4095, 4095,
};
// Get scan order table based on scan group type (grouped or ungrouped)
// and log2 block width and height index
static const uint32_t* const g_scan_order[SCAN_GROUP_TYPES][MAX_LOG2_INDEX][MAX_LOG2_INDEX] =
{
{
{ g_scan_order_buffer + 0, g_scan_order_buffer + 1, g_scan_order_buffer + 3, g_scan_order_buffer + 7, g_scan_order_buffer + 15, g_scan_order_buffer + 31, g_scan_order_buffer + 63, },
{ g_scan_order_buffer + 127, g_scan_order_buffer + 129, g_scan_order_buffer + 133, g_scan_order_buffer + 141, g_scan_order_buffer + 157, g_scan_order_buffer + 189, g_scan_order_buffer + 253, },
{ g_scan_order_buffer + 381, g_scan_order_buffer + 385, g_scan_order_buffer + 393, g_scan_order_buffer + 409, g_scan_order_buffer + 441, g_scan_order_buffer + 505, g_scan_order_buffer + 633, },
{ g_scan_order_buffer + 889, g_scan_order_buffer + 897, g_scan_order_buffer + 913, g_scan_order_buffer + 945, g_scan_order_buffer + 1009, g_scan_order_buffer + 1137, g_scan_order_buffer + 1393, },
{ g_scan_order_buffer + 1905, g_scan_order_buffer + 1921, g_scan_order_buffer + 1953, g_scan_order_buffer + 2017, g_scan_order_buffer + 2145, g_scan_order_buffer + 2401, g_scan_order_buffer + 2913, },
{ g_scan_order_buffer + 3937, g_scan_order_buffer + 3969, g_scan_order_buffer + 4033, g_scan_order_buffer + 4161, g_scan_order_buffer + 4417, g_scan_order_buffer + 4929, g_scan_order_buffer + 5953, },
{ g_scan_order_buffer + 8001, g_scan_order_buffer + 8065, g_scan_order_buffer + 8193, g_scan_order_buffer + 8449, g_scan_order_buffer + 8961, g_scan_order_buffer + 9985, g_scan_order_buffer + 12033, },
},
{
{ g_scan_order_buffer + 16129, g_scan_order_buffer + 16130, g_scan_order_buffer + 16132, g_scan_order_buffer + 16136, g_scan_order_buffer + 16144, g_scan_order_buffer + 16160, g_scan_order_buffer + 16192, },
{ g_scan_order_buffer + 16256, g_scan_order_buffer + 16258, g_scan_order_buffer + 16262, g_scan_order_buffer + 16270, g_scan_order_buffer + 16286, g_scan_order_buffer + 16318, g_scan_order_buffer + 16382, },
{ g_scan_order_buffer + 16510, g_scan_order_buffer + 16514, g_scan_order_buffer + 16522, g_scan_order_buffer + 16538, g_scan_order_buffer + 16570, g_scan_order_buffer + 16634, g_scan_order_buffer + 16762, },
{ g_scan_order_buffer + 17018, g_scan_order_buffer + 17026, g_scan_order_buffer + 17042, g_scan_order_buffer + 17074, g_scan_order_buffer + 17138, g_scan_order_buffer + 17266, g_scan_order_buffer + 17522, },
{ g_scan_order_buffer + 18034, g_scan_order_buffer + 18050, g_scan_order_buffer + 18082, g_scan_order_buffer + 18146, g_scan_order_buffer + 18274, g_scan_order_buffer + 18530, g_scan_order_buffer + 19042, },
{ g_scan_order_buffer + 20066, g_scan_order_buffer + 20098, g_scan_order_buffer + 20162, g_scan_order_buffer + 20290, g_scan_order_buffer + 20546, g_scan_order_buffer + 21058, g_scan_order_buffer + 22082, },
{ g_scan_order_buffer + 24130, g_scan_order_buffer + 24194, g_scan_order_buffer + 24322, g_scan_order_buffer + 24578, g_scan_order_buffer + 25090, g_scan_order_buffer + 26114, g_scan_order_buffer + 28162, },
}
};
/**
* \brief Return array of scan order indices.
*
* \param scan_group Scan group type, normal or coefficient.
* \param scan_type Scan type, diagonal, horizontal or vertical
* \param log2_w Log2 of block width.
* \param log2_h Log2 of block height.
*
* \return Returns pointer to scan order table based on given dimensions.
*/
const uint32_t* const uvg_get_scan_order_table(int scan_group, int scan_type, int log2_w, int log2_h)
{
// TODO: horizontal and vertical scan types
assert(scan_type == SCAN_DIAG && "Horizontal and vertical scan not implemented.");
if (scan_group == SCAN_GROUP_4X4) {
return g_scan_order[scan_group][log2_w][log2_h];
}
else {
if (log2_w <= 1 || log2_h <= 1) {
// Just return array containing [0, 15] in order
return g_scan_order[scan_group][0][4];
}
else {
return g_scan_order[scan_group][log2_w - 2][log2_h - 2];
}
}
}