]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/ra144.h
Remove unused values from gain_{val,exp}_tab
[ffmpeg] / libavcodec / ra144.h
index f004e02f6674d1bdf84b5ff73d7bf0032fc7c74c..f2865dfe039852edbe74093d84e9c393d2a2e701 100644 (file)
 #ifndef FFMPEG_RA144_H
 #define FFMPEG_RA144_H
 
-/* 14.4 data tables */
-static const unsigned short sqrt_table[4096]={
-        0,  1024,  1448,  1773,  2048,  2289,  2508,  2709,
-     2896,  3072,  3238,  3396,  3547,  3692,  3831,  3965,
-     4096,  4222,  4344,  4463,  4579,  4692,  4802,  4910,
-     5016,  5120,  5221,  5320,  5418,  5514,  5608,  5701,
-     5792,  5882,  5970,  6058,  6144,  6228,  6312,  6394,
-     6476,  6556,  6636,  6714,  6792,  6869,  6945,  7020,
-     7094,  7168,  7240,  7312,  7384,  7454,  7524,  7594,
-     7662,  7731,  7798,  7865,  7931,  7997,  8062,  8127,
-     8192,  8255,  8319,  8381,  8444,  8505,  8567,  8628,
-     8688,  8749,  8808,  8868,  8927,  8985,  9043,  9101,
-     9158,  9216,  9272,  9329,  9385,  9440,  9496,  9551,
-     9605,  9660,  9714,  9768,  9821,  9875,  9928,  9980,
-    10033, 10085, 10137, 10188, 10240, 10291, 10341, 10392,
-    10442, 10492, 10542, 10592, 10641, 10690, 10739, 10788,
-    10836, 10885, 10933, 10981, 11028, 11076, 11123, 11170,
-    11217, 11264, 11310, 11356, 11402, 11448, 11494, 11539,
-    11585, 11630, 11675, 11720, 11764, 11809, 11853, 11897,
-    11941, 11985, 12029, 12072, 12116, 12159, 12202, 12245,
-    12288, 12330, 12373, 12415, 12457, 12499, 12541, 12583,
-    12624, 12666, 12707, 12748, 12789, 12830, 12871, 12912,
-    12952, 12993, 13033, 13073, 13113, 13153, 13193, 13232,
-    13272, 13312, 13351, 13390, 13429, 13468, 13507, 13546,
-    13584, 13623, 13661, 13700, 13738, 13776, 13814, 13852,
-    13890, 13927, 13965, 14002, 14040, 14077, 14114, 14151,
-    14188, 14225, 14262, 14299, 14336, 14372, 14408, 14445,
-    14481, 14517, 14553, 14589, 14625, 14661, 14697, 14732,
-    14768, 14803, 14839, 14874, 14909, 14944, 14979, 15014,
-    15049, 15084, 15119, 15153, 15188, 15222, 15257, 15291,
-    15325, 15360, 15394, 15428, 15462, 15495, 15529, 15563,
-    15597, 15630, 15664, 15697, 15730, 15764, 15797, 15830,
-    15863, 15896, 15929, 15962, 15995, 16028, 16060, 16093,
-    16125, 16158, 16190, 16223, 16255, 16287, 16319, 16351,
-    16384, 16415, 16447, 16479, 16511, 16543, 16574, 16606,
-    16638, 16669, 16700, 16732, 16763, 16794, 16826, 16857,
-    16888, 16919, 16950, 16981, 17011, 17042, 17073, 17104,
-    17134, 17165, 17195, 17226, 17256, 17287, 17317, 17347,
-    17377, 17408, 17438, 17468, 17498, 17528, 17557, 17587,
-    17617, 17647, 17676, 17706, 17736, 17765, 17795, 17824,
-    17854, 17883, 17912, 17941, 17971, 18000, 18029, 18058,
-    18087, 18116, 18145, 18174, 18203, 18231, 18260, 18289,
-    18317, 18346, 18375, 18403, 18432, 18460, 18488, 18517,
-    18545, 18573, 18601, 18630, 18658, 18686, 18714, 18742,
-    18770, 18798, 18826, 18853, 18881, 18909, 18937, 18964,
-    18992, 19019, 19047, 19075, 19102, 19129, 19157, 19184,
-    19211, 19239, 19266, 19293, 19320, 19347, 19374, 19402,
-    19429, 19456, 19482, 19509, 19536, 19563, 19590, 19617,
-    19643, 19670, 19697, 19723, 19750, 19776, 19803, 19829,
-    19856, 19882, 19908, 19935, 19961, 19987, 20013, 20040,
-    20066, 20092, 20118, 20144, 20170, 20196, 20222, 20248,
-    20274, 20300, 20325, 20351, 20377, 20403, 20428, 20454,
-    20480, 20505, 20531, 20556, 20582, 20607, 20633, 20658,
-    20683, 20709, 20734, 20759, 20784, 20810, 20835, 20860,
-    20885, 20910, 20935, 20960, 20985, 21010, 21035, 21060,
-    21085, 21110, 21135, 21159, 21184, 21209, 21234, 21258,
-    21283, 21308, 21332, 21357, 21381, 21406, 21430, 21455,
-    21479, 21504, 21528, 21552, 21577, 21601, 21625, 21649,
-    21673, 21698, 21722, 21746, 21770, 21794, 21818, 21842,
-    21866, 21890, 21914, 21938, 21962, 21986, 22010, 22033,
-    22057, 22081, 22105, 22128, 22152, 22176, 22199, 22223,
-    22246, 22270, 22294, 22317, 22341, 22364, 22387, 22411,
-    22434, 22458, 22481, 22504, 22528, 22551, 22574, 22597,
-    22620, 22644, 22667, 22690, 22713, 22736, 22759, 22782,
-    22805, 22828, 22851, 22874, 22897, 22920, 22943, 22965,
-    22988, 23011, 23034, 23057, 23079, 23102, 23125, 23147,
-    23170, 23193, 23215, 23238, 23260, 23283, 23305, 23328,
-    23350, 23373, 23395, 23418, 23440, 23462, 23485, 23507,
-    23529, 23552, 23574, 23596, 23618, 23640, 23663, 23685,
-    23707, 23729, 23751, 23773, 23795, 23817, 23839, 23861,
-    23883, 23905, 23927, 23949, 23971, 23993, 24014, 24036,
-    24058, 24080, 24102, 24123, 24145, 24167, 24188, 24210,
-    24232, 24253, 24275, 24297, 24318, 24340, 24361, 24383,
-    24404, 24426, 24447, 24469, 24490, 24511, 24533, 24554,
-    24576, 24597, 24618, 24639, 24661, 24682, 24703, 24724,
-    24746, 24767, 24788, 24809, 24830, 24851, 24872, 24893,
-    24914, 24936, 24957, 24978, 24999, 25019, 25040, 25061,
-    25082, 25103, 25124, 25145, 25166, 25187, 25207, 25228,
-    25249, 25270, 25290, 25311, 25332, 25353, 25373, 25394,
-    25415, 25435, 25456, 25476, 25497, 25517, 25538, 25559,
-    25579, 25600, 25620, 25640, 25661, 25681, 25702, 25722,
-    25742, 25763, 25783, 25803, 25824, 25844, 25864, 25885,
-    25905, 25925, 25945, 25966, 25986, 26006, 26026, 26046,
-    26066, 26086, 26106, 26127, 26147, 26167, 26187, 26207,
-    26227, 26247, 26267, 26287, 26307, 26326, 26346, 26366,
-    26386, 26406, 26426, 26446, 26465, 26485, 26505, 26525,
-    26545, 26564, 26584, 26604, 26624, 26643, 26663, 26683,
-    26702, 26722, 26741, 26761, 26781, 26800, 26820, 26839,
-    26859, 26878, 26898, 26917, 26937, 26956, 26976, 26995,
-    27014, 27034, 27053, 27073, 27092, 27111, 27131, 27150,
-    27169, 27189, 27208, 27227, 27246, 27266, 27285, 27304,
-    27323, 27342, 27362, 27381, 27400, 27419, 27438, 27457,
-    27476, 27495, 27514, 27533, 27553, 27572, 27591, 27610,
-    27629, 27648, 27666, 27685, 27704, 27723, 27742, 27761,
-    27780, 27799, 27818, 27836, 27855, 27874, 27893, 27912,
-    27930, 27949, 27968, 27987, 28005, 28024, 28043, 28062,
-    28080, 28099, 28118, 28136, 28155, 28173, 28192, 28211,
-    28229, 28248, 28266, 28285, 28303, 28322, 28340, 28359,
-    28377, 28396, 28414, 28433, 28451, 28470, 28488, 28506,
-    28525, 28543, 28562, 28580, 28598, 28617, 28635, 28653,
-    28672, 28690, 28708, 28726, 28745, 28763, 28781, 28799,
-    28817, 28836, 28854, 28872, 28890, 28908, 28926, 28944,
-    28963, 28981, 28999, 29017, 29035, 29053, 29071, 29089,
-    29107, 29125, 29143, 29161, 29179, 29197, 29215, 29233,
-    29251, 29269, 29287, 29305, 29322, 29340, 29358, 29376,
-    29394, 29412, 29429, 29447, 29465, 29483, 29501, 29518,
-    29536, 29554, 29572, 29589, 29607, 29625, 29642, 29660,
-    29678, 29696, 29713, 29731, 29748, 29766, 29784, 29801,
-    29819, 29836, 29854, 29872, 29889, 29907, 29924, 29942,
-    29959, 29977, 29994, 30012, 30029, 30047, 30064, 30081,
-    30099, 30116, 30134, 30151, 30168, 30186, 30203, 30221,
-    30238, 30255, 30273, 30290, 30307, 30324, 30342, 30359,
-    30376, 30394, 30411, 30428, 30445, 30462, 30480, 30497,
-    30514, 30531, 30548, 30566, 30583, 30600, 30617, 30634,
-    30651, 30668, 30685, 30702, 30720, 30737, 30754, 30771,
-    30788, 30805, 30822, 30839, 30856, 30873, 30890, 30907,
-    30924, 30941, 30958, 30974, 30991, 31008, 31025, 31042,
-    31059, 31076, 31093, 31110, 31126, 31143, 31160, 31177,
-    31194, 31211, 31227, 31244, 31261, 31278, 31294, 31311,
-    31328, 31345, 31361, 31378, 31395, 31411, 31428, 31445,
-    31461, 31478, 31495, 31511, 31528, 31545, 31561, 31578,
-    31595, 31611, 31628, 31644, 31661, 31677, 31694, 31710,
-    31727, 31744, 31760, 31777, 31793, 31809, 31826, 31842,
-    31859, 31875, 31892, 31908, 31925, 31941, 31957, 31974,
-    31990, 32007, 32023, 32039, 32056, 32072, 32088, 32105,
-    32121, 32137, 32154, 32170, 32186, 32203, 32219, 32235,
-    32251, 32268, 32284, 32300, 32316, 32333, 32349, 32365,
-    32381, 32397, 32414, 32430, 32446, 32462, 32478, 32494,
-    32510, 32527, 32543, 32559, 32575, 32591, 32607, 32623,
-    32639, 32655, 32671, 32687, 32703, 32719, 32735, 32751,
-    32768, 32783, 32799, 32815, 32831, 32847, 32863, 32879,
-    32895, 32911, 32927, 32943, 32959, 32975, 32991, 33007,
-    33023, 33038, 33054, 33070, 33086, 33102, 33118, 33133,
-    33149, 33165, 33181, 33197, 33212, 33228, 33244, 33260,
-    33276, 33291, 33307, 33323, 33339, 33354, 33370, 33386,
-    33401, 33417, 33433, 33448, 33464, 33480, 33495, 33511,
-    33527, 33542, 33558, 33574, 33589, 33605, 33620, 33636,
-    33652, 33667, 33683, 33698, 33714, 33729, 33745, 33760,
-    33776, 33792, 33807, 33823, 33838, 33854, 33869, 33884,
-    33900, 33915, 33931, 33946, 33962, 33977, 33993, 34008,
-    34023, 34039, 34054, 34070, 34085, 34100, 34116, 34131,
-    34146, 34162, 34177, 34193, 34208, 34223, 34238, 34254,
-    34269, 34284, 34300, 34315, 34330, 34346, 34361, 34376,
-    34391, 34407, 34422, 34437, 34452, 34467, 34483, 34498,
-    34513, 34528, 34543, 34559, 34574, 34589, 34604, 34619,
-    34634, 34649, 34665, 34680, 34695, 34710, 34725, 34740,
-    34755, 34770, 34785, 34800, 34816, 34831, 34846, 34861,
-    34876, 34891, 34906, 34921, 34936, 34951, 34966, 34981,
-    34996, 35011, 35026, 35041, 35056, 35071, 35086, 35100,
-    35115, 35130, 35145, 35160, 35175, 35190, 35205, 35220,
-    35235, 35250, 35264, 35279, 35294, 35309, 35324, 35339,
-    35353, 35368, 35383, 35398, 35413, 35428, 35442, 35457,
-    35472, 35487, 35501, 35516, 35531, 35546, 35560, 35575,
-    35590, 35605, 35619, 35634, 35649, 35664, 35678, 35693,
-    35708, 35722, 35737, 35752, 35766, 35781, 35796, 35810,
-    35825, 35840, 35854, 35869, 35883, 35898, 35913, 35927,
-    35942, 35956, 35971, 35985, 36000, 36015, 36029, 36044,
-    36058, 36073, 36087, 36102, 36116, 36131, 36145, 36160,
-    36174, 36189, 36203, 36218, 36232, 36247, 36261, 36276,
-    36290, 36305, 36319, 36333, 36348, 36362, 36377, 36391,
-    36406, 36420, 36434, 36449, 36463, 36477, 36492, 36506,
-    36521, 36535, 36549, 36564, 36578, 36592, 36607, 36621,
-    36635, 36650, 36664, 36678, 36692, 36707, 36721, 36735,
-    36750, 36764, 36778, 36792, 36807, 36821, 36835, 36849,
-    36864, 36878, 36892, 36906, 36920, 36935, 36949, 36963,
-    36977, 36991, 37005, 37020, 37034, 37048, 37062, 37076,
-    37090, 37104, 37119, 37133, 37147, 37161, 37175, 37189,
-    37203, 37217, 37231, 37246, 37260, 37274, 37288, 37302,
-    37316, 37330, 37344, 37358, 37372, 37386, 37400, 37414,
-    37428, 37442, 37456, 37470, 37484, 37498, 37512, 37526,
-    37540, 37554, 37568, 37582, 37596, 37610, 37624, 37638,
-    37652, 37665, 37679, 37693, 37707, 37721, 37735, 37749,
-    37763, 37777, 37791, 37804, 37818, 37832, 37846, 37860,
-    37874, 37888, 37901, 37915, 37929, 37943, 37957, 37970,
-    37984, 37998, 38012, 38026, 38039, 38053, 38067, 38081,
-    38095, 38108, 38122, 38136, 38150, 38163, 38177, 38191,
-    38204, 38218, 38232, 38246, 38259, 38273, 38287, 38300,
-    38314, 38328, 38341, 38355, 38369, 38382, 38396, 38410,
-    38423, 38437, 38451, 38464, 38478, 38492, 38505, 38519,
-    38532, 38546, 38560, 38573, 38587, 38600, 38614, 38628,
-    38641, 38655, 38668, 38682, 38695, 38709, 38722, 38736,
-    38749, 38763, 38777, 38790, 38804, 38817, 38831, 38844,
-    38858, 38871, 38885, 38898, 38912, 38925, 38938, 38952,
-    38965, 38979, 38992, 39006, 39019, 39033, 39046, 39059,
-    39073, 39086, 39100, 39113, 39126, 39140, 39153, 39167,
-    39180, 39193, 39207, 39220, 39234, 39247, 39260, 39274,
-    39287, 39300, 39314, 39327, 39340, 39354, 39367, 39380,
-    39394, 39407, 39420, 39433, 39447, 39460, 39473, 39487,
-    39500, 39513, 39526, 39540, 39553, 39566, 39579, 39593,
-    39606, 39619, 39632, 39646, 39659, 39672, 39685, 39698,
-    39712, 39725, 39738, 39751, 39764, 39778, 39791, 39804,
-    39817, 39830, 39843, 39857, 39870, 39883, 39896, 39909,
-    39922, 39936, 39949, 39962, 39975, 39988, 40001, 40014,
-    40027, 40040, 40053, 40067, 40080, 40093, 40106, 40119,
-    40132, 40145, 40158, 40171, 40184, 40197, 40210, 40223,
-    40236, 40249, 40262, 40275, 40288, 40301, 40314, 40327,
-    40340, 40353, 40366, 40379, 40392, 40405, 40418, 40431,
-    40444, 40457, 40470, 40483, 40496, 40509, 40522, 40535,
-    40548, 40561, 40574, 40587, 40600, 40612, 40625, 40638,
-    40651, 40664, 40677, 40690, 40703, 40716, 40728, 40741,
-    40754, 40767, 40780, 40793, 40806, 40818, 40831, 40844,
-    40857, 40870, 40883, 40895, 40908, 40921, 40934, 40947,
-    40960, 40972, 40985, 40998, 41011, 41023, 41036, 41049,
-    41062, 41075, 41087, 41100, 41113, 41126, 41138, 41151,
-    41164, 41177, 41189, 41202, 41215, 41227, 41240, 41253,
-    41266, 41278, 41291, 41304, 41316, 41329, 41342, 41354,
-    41367, 41380, 41392, 41405, 41418, 41430, 41443, 41456,
-    41468, 41481, 41494, 41506, 41519, 41532, 41544, 41557,
-    41569, 41582, 41595, 41607, 41620, 41632, 41645, 41658,
-    41670, 41683, 41695, 41708, 41720, 41733, 41746, 41758,
-    41771, 41783, 41796, 41808, 41821, 41833, 41846, 41858,
-    41871, 41883, 41896, 41909, 41921, 41934, 41946, 41959,
-    41971, 41984, 41996, 42008, 42021, 42033, 42046, 42058,
-    42071, 42083, 42096, 42108, 42121, 42133, 42146, 42158,
-    42170, 42183, 42195, 42208, 42220, 42233, 42245, 42257,
-    42270, 42282, 42295, 42307, 42319, 42332, 42344, 42356,
-    42369, 42381, 42394, 42406, 42418, 42431, 42443, 42455,
-    42468, 42480, 42492, 42505, 42517, 42529, 42542, 42554,
-    42566, 42579, 42591, 42603, 42616, 42628, 42640, 42653,
-    42665, 42677, 42689, 42702, 42714, 42726, 42738, 42751,
-    42763, 42775, 42788, 42800, 42812, 42824, 42836, 42849,
-    42861, 42873, 42885, 42898, 42910, 42922, 42934, 42947,
-    42959, 42971, 42983, 42995, 43008, 43020, 43032, 43044,
-    43056, 43068, 43081, 43093, 43105, 43117, 43129, 43141,
-    43154, 43166, 43178, 43190, 43202, 43214, 43226, 43238,
-    43251, 43263, 43275, 43287, 43299, 43311, 43323, 43335,
-    43347, 43360, 43372, 43384, 43396, 43408, 43420, 43432,
-    43444, 43456, 43468, 43480, 43492, 43504, 43516, 43529,
-    43541, 43553, 43565, 43577, 43589, 43601, 43613, 43625,
-    43637, 43649, 43661, 43673, 43685, 43697, 43709, 43721,
-    43733, 43745, 43757, 43769, 43781, 43793, 43805, 43817,
-    43829, 43841, 43853, 43864, 43876, 43888, 43900, 43912,
-    43924, 43936, 43948, 43960, 43972, 43984, 43996, 44008,
-    44020, 44032, 44043, 44055, 44067, 44079, 44091, 44103,
-    44115, 44127, 44139, 44150, 44162, 44174, 44186, 44198,
-    44210, 44222, 44233, 44245, 44257, 44269, 44281, 44293,
-    44305, 44316, 44328, 44340, 44352, 44364, 44375, 44387,
-    44399, 44411, 44423, 44434, 44446, 44458, 44470, 44482,
-    44493, 44505, 44517, 44529, 44541, 44552, 44564, 44576,
-    44588, 44599, 44611, 44623, 44635, 44646, 44658, 44670,
-    44682, 44693, 44705, 44717, 44728, 44740, 44752, 44764,
-    44775, 44787, 44799, 44810, 44822, 44834, 44846, 44857,
-    44869, 44881, 44892, 44904, 44916, 44927, 44939, 44951,
-    44962, 44974, 44986, 44997, 45009, 45021, 45032, 45044,
-    45056, 45067, 45079, 45090, 45102, 45114, 45125, 45137,
-    45148, 45160, 45172, 45183, 45195, 45207, 45218, 45230,
-    45241, 45253, 45264, 45276, 45288, 45299, 45311, 45322,
-    45334, 45345, 45357, 45369, 45380, 45392, 45403, 45415,
-    45426, 45438, 45449, 45461, 45472, 45484, 45496, 45507,
-    45519, 45530, 45542, 45553, 45565, 45576, 45588, 45599,
-    45611, 45622, 45634, 45645, 45657, 45668, 45680, 45691,
-    45702, 45714, 45725, 45737, 45748, 45760, 45771, 45783,
-    45794, 45806, 45817, 45829, 45840, 45851, 45863, 45874,
-    45886, 45897, 45909, 45920, 45931, 45943, 45954, 45966,
-    45977, 45988, 46000, 46011, 46023, 46034, 46045, 46057,
-    46068, 46080, 46091, 46102, 46114, 46125, 46136, 46148,
-    46159, 46170, 46182, 46193, 46204, 46216, 46227, 46239,
-    46250, 46261, 46273, 46284, 46295, 46306, 46318, 46329,
-    46340, 46352, 46363, 46374, 46386, 46397, 46408, 46420,
-    46431, 46442, 46453, 46465, 46476, 46487, 46499, 46510,
-    46521, 46532, 46544, 46555, 46566, 46577, 46589, 46600,
-    46611, 46622, 46634, 46645, 46656, 46667, 46679, 46690,
-    46701, 46712, 46724, 46735, 46746, 46757, 46768, 46780,
-    46791, 46802, 46813, 46824, 46836, 46847, 46858, 46869,
-    46880, 46892, 46903, 46914, 46925, 46936, 46947, 46959,
-    46970, 46981, 46992, 47003, 47014, 47026, 47037, 47048,
-    47059, 47070, 47081, 47092, 47104, 47115, 47126, 47137,
-    47148, 47159, 47170, 47181, 47192, 47204, 47215, 47226,
-    47237, 47248, 47259, 47270, 47281, 47292, 47303, 47315,
-    47326, 47337, 47348, 47359, 47370, 47381, 47392, 47403,
-    47414, 47425, 47436, 47447, 47458, 47469, 47480, 47491,
-    47503, 47514, 47525, 47536, 47547, 47558, 47569, 47580,
-    47591, 47602, 47613, 47624, 47635, 47646, 47657, 47668,
-    47679, 47690, 47701, 47712, 47723, 47734, 47745, 47756,
-    47767, 47778, 47789, 47800, 47811, 47822, 47832, 47843,
-    47854, 47865, 47876, 47887, 47898, 47909, 47920, 47931,
-    47942, 47953, 47964, 47975, 47986, 47997, 48008, 48018,
-    48029, 48040, 48051, 48062, 48073, 48084, 48095, 48106,
-    48117, 48128, 48138, 48149, 48160, 48171, 48182, 48193,
-    48204, 48215, 48225, 48236, 48247, 48258, 48269, 48280,
-    48291, 48301, 48312, 48323, 48334, 48345, 48356, 48367,
-    48377, 48388, 48399, 48410, 48421, 48432, 48442, 48453,
-    48464, 48475, 48486, 48496, 48507, 48518, 48529, 48540,
-    48550, 48561, 48572, 48583, 48594, 48604, 48615, 48626,
-    48637, 48648, 48658, 48669, 48680, 48691, 48701, 48712,
-    48723, 48734, 48744, 48755, 48766, 48777, 48787, 48798,
-    48809, 48820, 48830, 48841, 48852, 48863, 48873, 48884,
-    48895, 48906, 48916, 48927, 48938, 48948, 48959, 48970,
-    48981, 48991, 49002, 49013, 49023, 49034, 49045, 49055,
-    49066, 49077, 49087, 49098, 49109, 49119, 49130, 49141,
-    49152, 49162, 49173, 49183, 49194, 49205, 49215, 49226,
-    49237, 49247, 49258, 49269, 49279, 49290, 49301, 49311,
-    49322, 49333, 49343, 49354, 49364, 49375, 49386, 49396,
-    49407, 49417, 49428, 49439, 49449, 49460, 49470, 49481,
-    49492, 49502, 49513, 49523, 49534, 49545, 49555, 49566,
-    49576, 49587, 49597, 49608, 49619, 49629, 49640, 49650,
-    49661, 49671, 49682, 49693, 49703, 49714, 49724, 49735,
-    49745, 49756, 49766, 49777, 49787, 49798, 49808, 49819,
-    49829, 49840, 49851, 49861, 49872, 49882, 49893, 49903,
-    49914, 49924, 49935, 49945, 49956, 49966, 49977, 49987,
-    49998, 50008, 50019, 50029, 50039, 50050, 50060, 50071,
-    50081, 50092, 50102, 50113, 50123, 50134, 50144, 50155,
-    50165, 50176, 50186, 50196, 50207, 50217, 50228, 50238,
-    50249, 50259, 50269, 50280, 50290, 50301, 50311, 50322,
-    50332, 50342, 50353, 50363, 50374, 50384, 50394, 50405,
-    50415, 50426, 50436, 50446, 50457, 50467, 50478, 50488,
-    50498, 50509, 50519, 50530, 50540, 50550, 50561, 50571,
-    50581, 50592, 50602, 50612, 50623, 50633, 50644, 50654,
-    50664, 50675, 50685, 50695, 50706, 50716, 50726, 50737,
-    50747, 50757, 50768, 50778, 50788, 50799, 50809, 50819,
-    50830, 50840, 50850, 50860, 50871, 50881, 50891, 50902,
-    50912, 50922, 50933, 50943, 50953, 50963, 50974, 50984,
-    50994, 51005, 51015, 51025, 51035, 51046, 51056, 51066,
-    51076, 51087, 51097, 51107, 51118, 51128, 51138, 51148,
-    51159, 51169, 51179, 51189, 51200, 51210, 51220, 51230,
-    51240, 51251, 51261, 51271, 51281, 51292, 51302, 51312,
-    51322, 51332, 51343, 51353, 51363, 51373, 51383, 51394,
-    51404, 51414, 51424, 51434, 51445, 51455, 51465, 51475,
-    51485, 51496, 51506, 51516, 51526, 51536, 51546, 51557,
-    51567, 51577, 51587, 51597, 51607, 51618, 51628, 51638,
-    51648, 51658, 51668, 51679, 51689, 51699, 51709, 51719,
-    51729, 51739, 51750, 51760, 51770, 51780, 51790, 51800,
-    51810, 51820, 51830, 51841, 51851, 51861, 51871, 51881,
-    51891, 51901, 51911, 51921, 51932, 51942, 51952, 51962,
-    51972, 51982, 51992, 52002, 52012, 52022, 52032, 52042,
-    52053, 52063, 52073, 52083, 52093, 52103, 52113, 52123,
-    52133, 52143, 52153, 52163, 52173, 52183, 52193, 52203,
-    52213, 52224, 52234, 52244, 52254, 52264, 52274, 52284,
-    52294, 52304, 52314, 52324, 52334, 52344, 52354, 52364,
-    52374, 52384, 52394, 52404, 52414, 52424, 52434, 52444,
-    52454, 52464, 52474, 52484, 52494, 52504, 52514, 52524,
-    52534, 52544, 52554, 52564, 52574, 52584, 52594, 52604,
-    52614, 52624, 52633, 52643, 52653, 52663, 52673, 52683,
-    52693, 52703, 52713, 52723, 52733, 52743, 52753, 52763,
-    52773, 52783, 52793, 52803, 52812, 52822, 52832, 52842,
-    52852, 52862, 52872, 52882, 52892, 52902, 52912, 52922,
-    52931, 52941, 52951, 52961, 52971, 52981, 52991, 53001,
-    53011, 53021, 53030, 53040, 53050, 53060, 53070, 53080,
-    53090, 53100, 53109, 53119, 53129, 53139, 53149, 53159,
-    53169, 53179, 53188, 53198, 53208, 53218, 53228, 53238,
-    53248, 53257, 53267, 53277, 53287, 53297, 53307, 53316,
-    53326, 53336, 53346, 53356, 53366, 53375, 53385, 53395,
-    53405, 53415, 53424, 53434, 53444, 53454, 53464, 53473,
-    53483, 53493, 53503, 53513, 53522, 53532, 53542, 53552,
-    53562, 53571, 53581, 53591, 53601, 53611, 53620, 53630,
-    53640, 53650, 53659, 53669, 53679, 53689, 53699, 53708,
-    53718, 53728, 53738, 53747, 53757, 53767, 53777, 53786,
-    53796, 53806, 53816, 53825, 53835, 53845, 53855, 53864,
-    53874, 53884, 53893, 53903, 53913, 53923, 53932, 53942,
-    53952, 53961, 53971, 53981, 53991, 54000, 54010, 54020,
-    54029, 54039, 54049, 54059, 54068, 54078, 54088, 54097,
-    54107, 54117, 54126, 54136, 54146, 54155, 54165, 54175,
-    54184, 54194, 54204, 54214, 54223, 54233, 54243, 54252,
-    54262, 54272, 54281, 54291, 54300, 54310, 54320, 54329,
-    54339, 54349, 54358, 54368, 54378, 54387, 54397, 54407,
-    54416, 54426, 54435, 54445, 54455, 54464, 54474, 54484,
-    54493, 54503, 54512, 54522, 54532, 54541, 54551, 54561,
-    54570, 54580, 54589, 54599, 54609, 54618, 54628, 54637,
-    54647, 54657, 54666, 54676, 54685, 54695, 54704, 54714,
-    54724, 54733, 54743, 54752, 54762, 54772, 54781, 54791,
-    54800, 54810, 54819, 54829, 54839, 54848, 54858, 54867,
-    54877, 54886, 54896, 54905, 54915, 54924, 54934, 54944,
-    54953, 54963, 54972, 54982, 54991, 55001, 55010, 55020,
-    55029, 55039, 55048, 55058, 55067, 55077, 55087, 55096,
-    55106, 55115, 55125, 55134, 55144, 55153, 55163, 55172,
-    55182, 55191, 55201, 55210, 55220, 55229, 55239, 55248,
-    55258, 55267, 55277, 55286, 55296, 55305, 55314, 55324,
-    55333, 55343, 55352, 55362, 55371, 55381, 55390, 55400,
-    55409, 55419, 55428, 55438, 55447, 55456, 55466, 55475,
-    55485, 55494, 55504, 55513, 55523, 55532, 55541, 55551,
-    55560, 55570, 55579, 55589, 55598, 55608, 55617, 55626,
-    55636, 55645, 55655, 55664, 55673, 55683, 55692, 55702,
-    55711, 55721, 55730, 55739, 55749, 55758, 55768, 55777,
-    55786, 55796, 55805, 55815, 55824, 55833, 55843, 55852,
-    55861, 55871, 55880, 55890, 55899, 55908, 55918, 55927,
-    55937, 55946, 55955, 55965, 55974, 55983, 55993, 56002,
-    56011, 56021, 56030, 56040, 56049, 56058, 56068, 56077,
-    56086, 56096, 56105, 56114, 56124, 56133, 56142, 56152,
-    56161, 56170, 56180, 56189, 56198, 56208, 56217, 56226,
-    56236, 56245, 56254, 56264, 56273, 56282, 56292, 56301,
-    56310, 56320, 56329, 56338, 56347, 56357, 56366, 56375,
-    56385, 56394, 56403, 56413, 56422, 56431, 56440, 56450,
-    56459, 56468, 56478, 56487, 56496, 56505, 56515, 56524,
-    56533, 56542, 56552, 56561, 56570, 56580, 56589, 56598,
-    56607, 56617, 56626, 56635, 56644, 56654, 56663, 56672,
-    56681, 56691, 56700, 56709, 56718, 56728, 56737, 56746,
-    56755, 56765, 56774, 56783, 56792, 56802, 56811, 56820,
-    56829, 56838, 56848, 56857, 56866, 56875, 56885, 56894,
-    56903, 56912, 56921, 56931, 56940, 56949, 56958, 56967,
-    56977, 56986, 56995, 57004, 57013, 57023, 57032, 57041,
-    57050, 57059, 57069, 57078, 57087, 57096, 57105, 57114,
-    57124, 57133, 57142, 57151, 57160, 57170, 57179, 57188,
-    57197, 57206, 57215, 57225, 57234, 57243, 57252, 57261,
-    57270, 57279, 57289, 57298, 57307, 57316, 57325, 57334,
-    57344, 57353, 57362, 57371, 57380, 57389, 57398, 57407,
-    57417, 57426, 57435, 57444, 57453, 57462, 57471, 57480,
-    57490, 57499, 57508, 57517, 57526, 57535, 57544, 57553,
-    57563, 57572, 57581, 57590, 57599, 57608, 57617, 57626,
-    57635, 57644, 57654, 57663, 57672, 57681, 57690, 57699,
-    57708, 57717, 57726, 57735, 57744, 57753, 57763, 57772,
-    57781, 57790, 57799, 57808, 57817, 57826, 57835, 57844,
-    57853, 57862, 57871, 57880, 57889, 57899, 57908, 57917,
-    57926, 57935, 57944, 57953, 57962, 57971, 57980, 57989,
-    57998, 58007, 58016, 58025, 58034, 58043, 58052, 58061,
-    58070, 58079, 58088, 58097, 58106, 58115, 58124, 58133,
-    58143, 58152, 58161, 58170, 58179, 58188, 58197, 58206,
-    58215, 58224, 58233, 58242, 58251, 58260, 58269, 58278,
-    58287, 58296, 58305, 58314, 58323, 58332, 58341, 58350,
-    58359, 58368, 58376, 58385, 58394, 58403, 58412, 58421,
-    58430, 58439, 58448, 58457, 58466, 58475, 58484, 58493,
-    58502, 58511, 58520, 58529, 58538, 58547, 58556, 58565,
-    58574, 58583, 58592, 58601, 58610, 58618, 58627, 58636,
-    58645, 58654, 58663, 58672, 58681, 58690, 58699, 58708,
-    58717, 58726, 58735, 58744, 58752, 58761, 58770, 58779,
-    58788, 58797, 58806, 58815, 58824, 58833, 58842, 58851,
-    58859, 58868, 58877, 58886, 58895, 58904, 58913, 58922,
-    58931, 58940, 58948, 58957, 58966, 58975, 58984, 58993,
-    59002, 59011, 59020, 59028, 59037, 59046, 59055, 59064,
-    59073, 59082, 59091, 59099, 59108, 59117, 59126, 59135,
-    59144, 59153, 59162, 59170, 59179, 59188, 59197, 59206,
-    59215, 59224, 59232, 59241, 59250, 59259, 59268, 59277,
-    59285, 59294, 59303, 59312, 59321, 59330, 59339, 59347,
-    59356, 59365, 59374, 59383, 59392, 59400, 59409, 59418,
-    59427, 59436, 59444, 59453, 59462, 59471, 59480, 59489,
-    59497, 59506, 59515, 59524, 59533, 59541, 59550, 59559,
-    59568, 59577, 59585, 59594, 59603, 59612, 59621, 59629,
-    59638, 59647, 59656, 59665, 59673, 59682, 59691, 59700,
-    59708, 59717, 59726, 59735, 59744, 59752, 59761, 59770,
-    59779, 59787, 59796, 59805, 59814, 59822, 59831, 59840,
-    59849, 59858, 59866, 59875, 59884, 59893, 59901, 59910,
-    59919, 59928, 59936, 59945, 59954, 59963, 59971, 59980,
-    59989, 59998, 60006, 60015, 60024, 60032, 60041, 60050,
-    60059, 60067, 60076, 60085, 60094, 60102, 60111, 60120,
-    60128, 60137, 60146, 60155, 60163, 60172, 60181, 60189,
-    60198, 60207, 60216, 60224, 60233, 60242, 60250, 60259,
-    60268, 60276, 60285, 60294, 60303, 60311, 60320, 60329,
-    60337, 60346, 60355, 60363, 60372, 60381, 60389, 60398,
-    60407, 60416, 60424, 60433, 60442, 60450, 60459, 60468,
-    60476, 60485, 60494, 60502, 60511, 60520, 60528, 60537,
-    60546, 60554, 60563, 60572, 60580, 60589, 60597, 60606,
-    60615, 60623, 60632, 60641, 60649, 60658, 60667, 60675,
-    60684, 60693, 60701, 60710, 60718, 60727, 60736, 60744,
-    60753, 60762, 60770, 60779, 60788, 60796, 60805, 60813,
-    60822, 60831, 60839, 60848, 60856, 60865, 60874, 60882,
-    60891, 60900, 60908, 60917, 60925, 60934, 60943, 60951,
-    60960, 60968, 60977, 60986, 60994, 61003, 61011, 61020,
-    61029, 61037, 61046, 61054, 61063, 61071, 61080, 61089,
-    61097, 61106, 61114, 61123, 61132, 61140, 61149, 61157,
-    61166, 61174, 61183, 61192, 61200, 61209, 61217, 61226,
-    61234, 61243, 61251, 61260, 61269, 61277, 61286, 61294,
-    61303, 61311, 61320, 61328, 61337, 61346, 61354, 61363,
-    61371, 61380, 61388, 61397, 61405, 61414, 61422, 61431,
-    61440, 61448, 61457, 61465, 61474, 61482, 61491, 61499,
-    61508, 61516, 61525, 61533, 61542, 61550, 61559, 61567,
-    61576, 61584, 61593, 61601, 61610, 61618, 61627, 61635,
-    61644, 61652, 61661, 61669, 61678, 61686, 61695, 61703,
-    61712, 61720, 61729, 61737, 61746, 61754, 61763, 61771,
-    61780, 61788, 61797, 61805, 61814, 61822, 61831, 61839,
-    61848, 61856, 61865, 61873, 61882, 61890, 61899, 61907,
-    61916, 61924, 61932, 61941, 61949, 61958, 61966, 61975,
-    61983, 61992, 62000, 62009, 62017, 62026, 62034, 62042,
-    62051, 62059, 62068, 62076, 62085, 62093, 62102, 62110,
-    62118, 62127, 62135, 62144, 62152, 62161, 62169, 62177,
-    62186, 62194, 62203, 62211, 62220, 62228, 62236, 62245,
-    62253, 62262, 62270, 62279, 62287, 62295, 62304, 62312,
-    62321, 62329, 62337, 62346, 62354, 62363, 62371, 62380,
-    62388, 62396, 62405, 62413, 62422, 62430, 62438, 62447,
-    62455, 62464, 62472, 62480, 62489, 62497, 62505, 62514,
-    62522, 62531, 62539, 62547, 62556, 62564, 62573, 62581,
-    62589, 62598, 62606, 62614, 62623, 62631, 62640, 62648,
-    62656, 62665, 62673, 62681, 62690, 62698, 62706, 62715,
-    62723, 62732, 62740, 62748, 62757, 62765, 62773, 62782,
-    62790, 62798, 62807, 62815, 62823, 62832, 62840, 62848,
-    62857, 62865, 62873, 62882, 62890, 62898, 62907, 62915,
-    62923, 62932, 62940, 62948, 62957, 62965, 62973, 62982,
-    62990, 62998, 63007, 63015, 63023, 63032, 63040, 63048,
-    63057, 63065, 63073, 63082, 63090, 63098, 63106, 63115,
-    63123, 63131, 63140, 63148, 63156, 63165, 63173, 63181,
-    63190, 63198, 63206, 63214, 63223, 63231, 63239, 63248,
-    63256, 63264, 63272, 63281, 63289, 63297, 63306, 63314,
-    63322, 63330, 63339, 63347, 63355, 63364, 63372, 63380,
-    63388, 63397, 63405, 63413, 63421, 63430, 63438, 63446,
-    63454, 63463, 63471, 63479, 63488, 63496, 63504, 63512,
-    63521, 63529, 63537, 63545, 63554, 63562, 63570, 63578,
-    63587, 63595, 63603, 63611, 63619, 63628, 63636, 63644,
-    63652, 63661, 63669, 63677, 63685, 63694, 63702, 63710,
-    63718, 63727, 63735, 63743, 63751, 63759, 63768, 63776,
-    63784, 63792, 63801, 63809, 63817, 63825, 63833, 63842,
-    63850, 63858, 63866, 63874, 63883, 63891, 63899, 63907,
-    63915, 63924, 63932, 63940, 63948, 63956, 63965, 63973,
-    63981, 63989, 63997, 64006, 64014, 64022, 64030, 64038,
-    64047, 64055, 64063, 64071, 64079, 64088, 64096, 64104,
-    64112, 64120, 64128, 64137, 64145, 64153, 64161, 64169,
-    64177, 64186, 64194, 64202, 64210, 64218, 64226, 64235,
-    64243, 64251, 64259, 64267, 64275, 64284, 64292, 64300,
-    64308, 64316, 64324, 64332, 64341, 64349, 64357, 64365,
-    64373, 64381, 64389, 64398, 64406, 64414, 64422, 64430,
-    64438, 64446, 64455, 64463, 64471, 64479, 64487, 64495,
-    64503, 64512, 64520, 64528, 64536, 64544, 64552, 64560,
-    64568, 64576, 64585, 64593, 64601, 64609, 64617, 64625,
-    64633, 64641, 64650, 64658, 64666, 64674, 64682, 64690,
-    64698, 64706, 64714, 64722, 64731, 64739, 64747, 64755,
-    64763, 64771, 64779, 64787, 64795, 64803, 64812, 64820,
-    64828, 64836, 64844, 64852, 64860, 64868, 64876, 64884,
-    64892, 64900, 64909, 64917, 64925, 64933, 64941, 64949,
-    64957, 64965, 64973, 64981, 64989, 64997, 65005, 65013,
-    65021, 65030, 65038, 65046, 65054, 65062, 65070, 65078,
-    65086, 65094, 65102, 65110, 65118, 65126, 65134, 65142,
-    65150, 65158, 65166, 65175, 65183, 65191, 65199, 65207,
-    65215, 65223, 65231, 65239, 65247, 65255, 65263, 65271,
-    65279, 65287, 65295, 65303, 65311, 65319, 65327, 65335,
-    65343, 65351, 65359, 65367, 65375, 65383, 65391, 65399,
-    65407, 65415, 65423, 65431, 65439, 65447, 65455, 65463,
-    65471, 65479, 65487, 65495, 65503, 65511, 65519, 65527
-};
+#include <stdint.h>
 
-static const signed short wavtable1[2304]={
-     541,   956,   768, -1011,  -811,  -717,  -571,  -893,  -576,
-     877,   581,   568,  -997,  -975,  -646,  -752,  -661,  -632,
-     675,   787,   635,  -519,  -838,  -977,  -890,  -605,  -789,
-     624,   732,   668,  -893,  -815,  -956,  -762,  -523,  -873,
-     623,   839,   697, -1022,  -849,  -571,  -759,  -688,  -949,
-     640,   693,   991,  -867,  -619,  -671,  -800,  -940,  -959,
-     925,   687,   608,  -621,  -549,  -817,  -837,  -924,  -722,
-     552,   797,   572,  -861,  -617,  -892,  -596,  -621,  -640,
-     535,   832,   799,  -871,  -836,  -649,  -560,  -676,  -624,
-     762,   605,   577,  -902,  -859,  -682,  -568,  -716,  -650,
-     832,   561,  1003,  -913,  -815,  -550,  -676,  -616,  -982,
-     590,   687,   588,  -793,  -679,  -790,  -681,  -923,  -677,
-     646,   901,   732,  -569,  -924,  -645,  -816,  -794,  -524,
-     828,   689,   896,  -557,  -725,  -603,  -670,  -927,  -784,
-     875,   624,   848,  -533,  -725,  -516,  -748,  -760,  -702,
-     571,   942,  1022,  -526,  -570,  -941,  -638,  -868, -1020,
-     824,   736,   643,  -593,  -517,  -925,  -663,  -530,  -808,
-     517,   765,   512,  -774,  -518,  -767,  -523,  -572,  -513,
-     562,   908,   761,  -997,  -836,  -675,  -617,  -805,  -566,
-     694,   913,   675,  -619,  -916,  -603,  -941,  -815,  -891,
-     704,   524,   672,  -722,  -925,  -689,  -969,  -538,  -883,
-     721,   757,   558,  -534,  -786,  -826, -1018,  -561,  -608,
-     884,   551,   633,  -951,  -546,  -681,  -763,  -592,  -784,
-     558,  1007,   846,  -549,  -923,  -832,  -608,  -991,  -699,
-     932,   746,   777,  -679,  -707,  -566,  -849,  -544,  -589,
-     566,   822,   926,  -910,  -513,  -744,  -627,  -659,  -839,
-     613,   771,   611,  -924,  -731,  -921,  -733,  -581,  -729,
-     737,   671,  1008,  -967,  -726,  -661,  -531,  -880,  -993,
-     651,   594,   579,  -757,  -737,  -673,  -830,  -691,  -655,
-     801,   636,   564,  -996,  -883,  -702,  -626,  -792,  -622,
-     852,   910,   719,  -757,  -599,  -639,  -709,  -809, -1012,
-     998,   614,   575,  -599,  -561,  -691,  -974,  -737,  -647,
-     665,   935,   628,  -607,  -816,  -574,  -863,  -854,  -771,
-     631,   596,   829,  -735, -1023,  -966,  -778,  -694,  -672,
-     644,   926,   526,  -583,  -663,  -953,  -811,  -838,  -542,
-     879,   988,   613,  -848,  -526,  -592,  -755,  -953,  -734,
-     941,   692,   693,  -637,  -638,  -939,  -866,  -937,  -940,
-     565,   672,   576,  -742,  -637,  -757,  -625,  -882,  -649,
-     547,   628,   740,  -671,  -791,  -909,  -585,  -771,  -535,
-     639,   532,   537,  -665,  -671,  -559,  -798,  -554,  -564,
-     955,   604,   598,  -564,  -558,  -706,  -891,  -714,  -699,
-     562,   580,   900,  -637,  -989, -1021,  -617,  -658,  -791,
-     603,   899,   621,  -530,  -733,  -545,  -712,  -789,  -755,
-     746,   533,   624,  -776,  -909,  -650,  -543,  -555,  -761,
-     729,   514,   735,  -733,  -523,  -739,  -519,  -517,  -528,
-     853,   551,   692,  -919,  -577,  -745,  -711,  -593,  -936,
-     949,  1018,  1004,  -944,  -931,  -999,  -880, -1013,  -985,
-     544,   988,   735,  -525,  -781,  -710,  -578,  -954,  -528,
-     789,   782,   821,  -603,  -633,  -628,  -608,  -598,  -659,
-     897,   516,   754,  -906,  -661,  -761,  -786,  -521,  -556,
-     517,   702,   828,  -710,  -837,  -568,  -523,  -963,  -670,
-     586,   818,   763,  -937,  -874,  -609,  -672,  -654,  -568,
-     907,   652,   592,  -578,  -525,  -754,  -804,  -830,  -686,
-     528,   652,   642,  -673,  -663,  -818,  -546,  -830,  -806,
-     531,   708,   780,  -736,  -811,  -540,  -552,  -981,  -595,
-     666,   625,   727,  -813,  -946,  -888,  -867,  -763,  -516,
-     947,   727,   554,  -673,  -512,  -787,  -875,  -517,  -599,
-     549,   657,   981,  -705,  -526,  -630,  -589,  -843,  -941,
-     605,   920,   852,  -544, -1008,  -766,  -716,  -827,  -709,
-     624,   619,   983,  -755,  -599,  -595,  -761,  -750,  -944,
-     605,   909,   547,  -537,  -646,  -971,  -715,  -807,  -584,
-     690,   935,   516,  -631,  -697,  -944,  -932,  -855,  -521,
-     700,   612,   853,  -838,  -584, -1021,  -959,  -732,  -711,
-     767,   832,   574,  -623,  -861,  -933,  -575,  -676,  -643,
-     523,   898,   923,  -919,  -945,  -810,  -536,  -789,  -833,
-     722,   958,   691,  -676,  -976,  -647, -1020,  -896,  -935,
-     613,   771,   928,  -924,  -556,  -700,  -734,  -581,  -842,
-     758,   757,   584,  -561,  -866,  -865,  -562,  -560,  -667,
-     512,   567,   577,  -567,  -577,  -639,  -512,  -628,  -650,
-     615,   638,   698,  -766,  -839,  -871,  -739,  -795,  -954,
-     574,   642,   589,  -720,  -660,  -739,  -644,  -806,  -677,
-     993,   682,   878,  -662,  -852,  -585,  -963,  -910,  -753,
-     539,   890,   913,  -939,  -963,  -795,  -569,  -775,  -815,
-     694,   928,   544,  -629,  -738,  -987,  -941,  -842,  -578,
-     805,   600,   680,  -944,  -535,  -798,  -633,  -704,  -905,
-     540,   951,   782, -1004,  -825,  -727,  -570,  -884,  -597,
-     816,   950,   590,  -757,  -941,  -548,  -650,  -881,  -681,
-     955,   847,   811,  -790,  -757,  -671,  -891,  -700,  -643,
-     547,   883,   556,  -945,  -595,  -960,  -586,  -762,  -605,
-     652,   888,   604,  -565,  -770,  -524,  -831,  -770,  -713,
-     863,   585,   855,  -986,  -721,  -978,  -727,  -668,  -715,
-    1023,   997,   516,  -997,  -516, -1006, -1023,  -972,  -520,
-     932,   614,   640,  -560,  -583,  -769,  -850,  -738,  -800,
-     627,   564,   573,  -691,  -702,  -631,  -769,  -621,  -641,
-     876,   900,   724,  -770,  -620,  -637,  -750,  -792,  -512,
-     515,   857,   896,  -863,  -902,  -750,  -519,  -718,  -784,
-     647,   953,   879,  -602,  -555,  -818,  -817,  -888,  -755,
-     806,   854,   857,  -672,  -675,  -715,  -634,  -712,  -718,
-     545,   583,   631,  -621,  -672,  -719,  -581,  -664,  -778,
-     657,   601,   751,  -772,  -963,  -882,  -843,  -707,  -550,
-     740,   905,   795,  -654,  -575,  -704,  -535,  -801,  -618,
-     841,  1016,   568,  -835,  -934,  -564,  -691, -1009,  -631,
-     747,   589,   983,  -861,  -718,  -566,  -545,  -679,  -945,
-     878,   613,   526,  -526,  -902,  -630,  -753,  -736,  -540,
-     864,   723,   779,  -610,  -657,  -550,  -729, -1022,  -592,
-     534,   674,   774,  -703,  -808, -1019,  -557,  -887,  -586,
-     950,   649,   939,  -602,  -871,  -595,  -881,  -824,  -861,
-     590,   703,   899,  -811,  -518,  -618,  -680,  -966,  -790,
-     618,   527,   579,  -637,  -700,  -597,  -746,  -543,  -657,
-     725,   647,   972,  -917,  -689,  -615,  -513,  -818,  -924,
-     641,   647,   707,  -810,  -885,  -893,  -803,  -817,  -976,
-     730,   663,   644,  -946,  -920,  -835,  -521,  -860,  -812,
-     807,   572,   578,  -902,  -912,  -646,  -637,  -639,  -653,
-     879,   611,   821,  -524,  -705,  -979,  -755,  -729,  -658,
-     667,   729,   841,  -951,  -549,  -599,  -871,  -519,  -692,
-     782,   585,   751,  -895,  -574,  -859,  -598,  -670,  -551,
-     802,   733,   976,  -574,  -765,  -699,  -628,  -525,  -931,
-     850,   871,   708,  -724,  -588,  -602,  -706,  -742,  -979,
-     870,   743,   704,  -632,  -598, -1023,  -739,  -540,  -970,
-     941,   899,   585,  -827,  -538,  -514,  -866,  -790,  -669,
-     943,   632,   875,  -582,  -806,  -541,  -869,  -781,  -749,
-    1023,   732,   638,  -731,  -637,  -912, -1022,  -523,  -795,
-     778,   753,   655,  -573,  -997,  -965,  -592,  -554,  -839,
-     843,   945,   945,  -779,  -779,  -873,  -694,  -873,  -873,
-     942,   969,   572,  -892,  -527,  -542,  -867,  -918,  -640,
-    1008,   559,   854,  -551,  -841,  -934,  -993,  -612,  -712,
-     868,   729,   787,  -618,  -668,  -560,  -737,  -519,  -605,
-     970,   686,   547,  -650,  -518,  -733,  -919,  -919,  -585,
-     535,   635,   674,  -664,  -705,  -836,  -560,  -788,  -887,
-     560,   636,   828,  -696,  -907,  -514,  -613,  -790,  -670,
-     994,   592,   833,  -575,  -809,  -964,  -966,  -686,  -677,
-     548,   621,   694,  -665,  -743,  -843,  -587,  -755,  -942,
-     550,   801,   955,  -861,  -513,  -748,  -591,  -627,  -892,
-     582,   522,   646,  -594,  -735,  -659,  -663,  -533,  -815,
-     606,   625,   818,  -739,  -969,  -999,  -717,  -763,  -655,
-     623,   591,   874,  -720,  -531, -1010,  -758,  -683,  -746,
-     669,   535,  1001,  -700,  -654,  -523,  -876,  -559,  -979,
-     701,   938,   592,  -642,  -810,  -542,  -960,  -860,  -684,
-     925,   820,   738,  -741,  -667,  -592,  -835,  -657,  -533,
-     735,   790,   544,  -567,  -781,  -840,  -527,  -610,  -578,
-     575,   788,   674,  -886,  -758,  -519,  -647,  -607,  -888,
-     655,   783,   528, -1003,  -677,  -809,  -840,  -599,  -545,
-     527,   513,   677,  -529,  -699,  -679,  -544,  -514,  -897,
-     782,   852,   940,  -651,  -718,  -783,  -597,  -709,  -863,
-     578,   910,   513,  -514,  -581,  -914,  -654,  -809,  -515,
-     692,   882,   734,  -596,  -993,  -632,  -937,  -759,  -526,
-     586,   683,   715,  -782,  -818,  -954,  -670,  -911,  -999,
-     739,   609,   717,  -880,  -518,  -854,  -534,  -725, -1006,
-     778,   773,   697,  -588,  -530,  -527,  -592,  -584,  -951,
-     922,   785,   813,  -707,  -732,  -624,  -830,  -602,  -646,
-     766,   651,   984,  -974,  -736,  -626,  -573,  -827,  -946,
-     978,   596,   515,  -569,  -984,  -600,  -934,  -694,  -518,
-     535,   757,   540,  -792,  -565,  -799,  -560,  -559,  -571,
-     662,   687,   589,  -890,  -762,  -791,  -857,  -924,  -678,
-     554,   536,   979,  -580,  -530,  -512,  -601,  -561,  -936,
-     723,   982,   690,  -694,  -976,  -662, -1022,  -943,  -932,
-     936,   956,   527,  -875,  -965,  -986,  -856,  -894,  -543,
-     590,  1002,   547,  -577,  -631,  -536,  -680,  -980,  -586,
-     517,   653,   825,  -660,  -833,  -526,  -522,  -834,  -664,
-     832,   592,   974,  -964,  -792,  -564,  -677,  -686,  -928,
-     512,   957,   903,  -957,  -903,  -844,  -512,  -894,  -796,
-     631,   545,   906,  -672,  -558,  -965,  -777,  -581,  -802,
-     514,   720,   649,  -723,  -652,  -913,  -516, -1012,  -824,
-     596,   679,   694,  -790,  -807,  -920,  -693,  -900,  -940,
-     617,   740,   979,  -892,  -590,  -708,  -743,  -535,  -936,
-     711,   685,   877,  -952,  -609,  -587,  -987,  -917,  -752,
-     655,   835,   848,  -534,  -542,  -691,  -838,  -681,  -702,
-     754,   839,   698,  -618,  -515,  -573,  -556,  -688,  -954,
-     871,   515,   769,  -877,  -655,  -774,  -742,  -518,  -578,
-     955,   852,   573,  -795,  -535,  -955,  -892,  -709,  -643,
-     640,   859,   587,  -537,  -735,  -986,  -801,  -721,  -674,
-     792,   863,   554,  -667,  -858,  -935,  -612,  -727,  -601,
-     843,   708,   682,  -583,  -562,  -944,  -694,  -979,  -910,
-     971,   768,   552,  -728,  -524,  -829,  -921,  -576,  -596,
-     891,   536,   690,  -935,  -601,  -724,  -776,  -563,  -931,
-    1016,   560,   663,  -556,  -659,  -727, -1009,  -614,  -860,
-     543,   870,   674,  -924,  -716,  -573,  -577,  -739,  -889,
-     601,   999,   585,  -586,  -686,  -571,  -705,  -975,  -668,
-     945,   966,   889,  -892,  -821,  -840,  -872,  -912,  -773,
-     529,   912,   777,  -943,  -804,  -692,  -547,  -812,  -590,
-     574,  1020,   714,  -572,  -801,  -711,  -643, -1016,  -997,
-     609,   922,   932,  -549,  -555,  -840,  -725,  -831,  -848,
-     598,   778,   929,  -909,  -543,  -707,  -698,  -592,  -844,
-     651,   772,   744,  -982,  -947,  -561,  -827,  -582,  -541,
-     691,   957,   722,  -646,  -976,  -675,  -934,  -894, -1020,
-     729,   766,   984,  -546,  -701,  -736,  -520,  -573,  -945,
-     547,   519,   632,  -555,  -675,  -640,  -585,  -526,  -780,
-     583,   532,   922,  -607,  -525,  -960,  -664,  -554,  -831,
-     633,   995,   603,  -615,  -745,  -586,  -783,  -968,  -710,
-     677,   571,   874,  -757,  -578,  -977,  -896,  -638,  -747,
-     602,   545,   666,  -641,  -783,  -709,  -708,  -580,  -866,
-     627,   542,   875,  -665,  -536,  -928,  -769,  -575,  -748,
-     672,   983,   598,  -645,  -786,  -575,  -882,  -944,  -700,
-     692,   979,   730,  -662,  -988,  -698,  -937,  -937,  -521,
-     668,   634,   872,  -827,  -569,  -540,  -871,  -785,  -742,
-     711,   706,   674,  -982,  -937,  -931,  -988,  -975,  -889,
-     739,   977,   595,  -706,  -860,  -568,  -534,  -932,  -691,
-     759,   905,   763,  -671,  -566,  -675,  -563,  -799,  -569,
-     756,   582,   763,  -860,  -563,  -868,  -558,  -663,  -568,
-     748,  1013,   908,  -741,  -664,  -898,  -547, -1002,  -805,
-     804,   937,   950,  -736,  -746,  -869,  -631,  -858,  -882,
-     785,   543,   998,  -833,  -766,  -529,  -602,  -576,  -973,
-     999,   684,   942,  -668,  -920,  -630,  -975,  -915,  -868,
-     626,   633,   996,  -774,  -609,  -616,  -765,  -783,  -970,
-     626,   567,   835,  -693, -1021,  -925,  -765,  -628,  -681,
-     739,   571,   973,  -825,  -702,  -543,  -533,  -637,  -925,
-     655,   769,   707,  -984,  -906,  -531,  -839,  -577,  -978,
-     702,   952,   571,  -653,  -785,  -532,  -964,  -886,  -638,
-     727,   712,   514, -1012,  -730,  -715,  -516,  -990,  -516,
-     744,   686,   741,  -998,  -539,  -994,  -541,  -921,  -536,
-     731,   552,   714,  -789, -1021,  -772,  -522,  -596,  -998,
-     824,   991,   726,  -798,  -585,  -703,  -664,  -959,  -515,
-     795,   615,   544,  -955,  -844,  -653,  -617,  -738,  -578,
-     870,   575,   824,  -978,  -700,  -926,  -739,  -646,  -664,
-     803,   832,   923,  -653,  -724,  -750,  -630,  -677,  -832,
-     819,   839,   531,  -671,  -849,  -871,  -655,  -688,  -550,
-     887,   786,   852,  -681,  -738,  -654,  -769,  -603,  -709,
-     933,   764,   570,  -696,  -519,  -851,  -850,  -570,  -634,
-     716,   906,   654,  -634,  -916,  -579, -1003,  -802,  -837,
-     784,   804,   563,  -616,  -864,  -885,  -601,  -631,  -620,
-     774,   535,   876,  -809,  -662,  -915,  -585,  -559,  -749,
-     807,   598,   649,  -943, -1023,  -758,  -636,  -699,  -822,
-     817,   759,   718,  -606,  -573,  -533,  -652,  -563, -1008,
-     831,   993,   846,  -806,  -687,  -821,  -675,  -963,  -699,
-     858,   567,   605,  -951, -1015,  -670,  -720,  -628,  -716,
-     876,  1012,   651,  -866,  -557,  -643,  -750, -1001,  -827,
-     852,   548,   549,  -913,  -914,  -588,  -710,  -587,  -589,
-     895,  1008,   871,  -881,  -761,  -858,  -782,  -993,  -741,
-     892,  1000,   591,  -872,  -515,  -578,  -777,  -977,  -683,
-     935,   516,   836,  -944,  -764,  -844,  -855,  -521,  -682,
-     931,   612,   776,  -557,  -706,  -929,  -847,  -733,  -589,
-     968,   614,   816,  -581,  -771,  -980,  -915,  -738,  -651,
-     524,   777,   719,  -796,  -737,  -546,  -537,  -590, -1012,
-     549,   694,   786,  -744,  -843,  -533,  -589,  -941,  -603,
-     882,   754,   534,  -649,  -920,  -787,  -759,  -555,  -557,
-     597,   837,   766,  -977,  -895,  -627,  -697,  -684,  -574,
-     635,   954,   704,  -592,  -873,  -656,  -788,  -890,  -969,
-     803,   550,   798,  -863,  -626,  -858,  -630,  -591,  -622,
-     699,   654,   798,  -894,  -545, -1021,  -954,  -837,  -622,
-     924,   767,   738,  -693,  -666,  -553,  -834,  -575,  -531,
-     970,   675,   608,  -639,  -576,  -801,  -919,  -890,  -722,
-     632,   706,   684,  -873,  -844,  -944,  -780,  -976,  -914,
-     858,   767,   563,  -643,  -945,  -844,  -719,  -574,  -620,
-     527,   765,   702,  -788,  -724,  -525,  -543,  -572,  -964,
-     559,   924,  1003, -1009,  -547,  -905,  -610,  -833,  -983,
-     618,   524,   611,  -633,  -738,  -625,  -747,  -536,  -729,
-     999,   942,   963,  -920,  -940,  -886,  -976,  -867,  -905,
-     547,   857,   935,  -916,  -999,  -783,  -584,  -718,  -854,
-     734,   926,   569,  -665,  -818,  -515,  -527,  -838,  -634,
-     967,   746,   551,  -705,  -520,  -804,  -913,  -544,  -593,
-     834,   633,   881,  -515,  -718,  -545,  -679,  -783,  -758,
-     941,   701,   727,  -645,  -668,  -997,  -865,  -961,  -516,
-     945,   564,   636,  -521,  -587,  -701,  -873,  -623,  -790,
-     512,   563,   793,  -563,  -794,  -873,  -512,  -619,  -615,
-     984,   556,   570,  -534,  -548,  -620,  -945,  -604,  -636,
-     984,   540,   740,  -519,  -712,  -782,  -946,  -570,  -536,
-     527,   764,   874,  -787,  -901,  -652,  -543,  -570,  -747,
-     530,   664,  1014,  -688,  -525,  -658,  -549,  -862, -1005,
-     546,   515,   521,  -550,  -556,  -525,  -584,  -519,  -531,
-     554,   934,   672, -1011,  -728,  -613,  -600,  -852,  -882,
-     598,   945,   556,  -552,  -650,  -513,  -700,  -872,  -603,
-     627,   531,   733,  -651,  -899,  -760,  -769,  -551,  -525,
-     576,  1020,  1014,  -574,  -571, -1011,  -650, -1016, -1005,
-     623,   924,   594,  -563,  -724,  -537,  -759,  -835,  -691,
-     678,   909,   603,  -602,  -800,  -536,  -899,  -807,  -712,
-     814,   744,   543,  -592,  -865,  -790,  -648,  -541,  -577
+/* 14.4 data tables */
+static const int16_t gain_val_tab[256][3] = {
+    {541,  956,  768}, {877,  581,  568}, {675,  787,  635}, {624,  732,  668},
+    {623,  839,  697}, {640,  693,  991}, {925,  687,  608}, {552,  797,  572},
+    {535,  832,  799}, {762,  605,  577}, {832,  561, 1003}, {590,  687,  588},
+    {646,  901,  732}, {828,  689,  896}, {875,  624,  848}, {571,  942, 1022},
+    {824,  736,  643}, {517,  765,  512}, {562,  908,  761}, {694,  913,  675},
+    {704,  524,  672}, {721,  757,  558}, {884,  551,  633}, {558, 1007,  846},
+    {932,  746,  777}, {566,  822,  926}, {613,  771,  611}, {737,  671, 1008},
+    {651,  594,  579}, {801,  636,  564}, {852,  910,  719}, {998,  614,  575},
+    {665,  935,  628}, {631,  596,  829}, {644,  926,  526}, {879,  988,  613},
+    {941,  692,  693}, {565,  672,  576}, {547,  628,  740}, {639,  532,  537},
+    {955,  604,  598}, {562,  580,  900}, {603,  899,  621}, {746,  533,  624},
+    {729,  514,  735}, {853,  551,  692}, {949, 1018, 1004}, {544,  988,  735},
+    {789,  782,  821}, {897,  516,  754}, {517,  702,  828}, {586,  818,  763},
+    {907,  652,  592}, {528,  652,  642}, {531,  708,  780}, {666,  625,  727},
+    {947,  727,  554}, {549,  657,  981}, {605,  920,  852}, {624,  619,  983},
+    {605,  909,  547}, {690,  935,  516}, {700,  612,  853}, {767,  832,  574},
+    {523,  898,  923}, {722,  958,  691}, {613,  771,  928}, {758,  757,  584},
+    {512,  567,  577}, {615,  638,  698}, {574,  642,  589}, {993,  682,  878},
+    {539,  890,  913}, {694,  928,  544}, {805,  600,  680}, {540,  951,  782},
+    {816,  950,  590}, {955,  847,  811}, {547,  883,  556}, {652,  888,  604},
+    {863,  585,  855}, {1023, 997,  516}, {932,  614,  640}, {627,  564,  573},
+    {876,  900,  724}, {515,  857,  896}, {647,  953,  879}, {806,  854,  857},
+    {545,  583,  631}, {657,  601,  751}, {740,  905,  795}, {841, 1016,  568},
+    {747,  589,  983}, {878,  613,  526}, {864,  723,  779}, {534,  674,  774},
+    {950,  649,  939}, {590,  703,  899}, {618,  527,  579}, {725,  647,  972},
+    {641,  647,  707}, {730,  663,  644}, {807,  572,  578}, {879,  611,  821},
+    {667,  729,  841}, {782,  585,  751}, {802,  733,  976}, {850,  871,  708},
+    {870,  743,  704}, {941,  899,  585}, {943,  632,  875}, {1023, 732,  638},
+    {778,  753,  655}, {843,  945,  945}, {942,  969,  572}, {1008, 559,  854},
+    {868,  729,  787}, {970,  686,  547}, {535,  635,  674}, {560,  636,  828},
+    {994,  592,  833}, {548,  621,  694}, {550,  801,  955}, {582,  522,  646},
+    {606,  625,  818}, {623,  591,  874}, {669,  535, 1001}, {701,  938,  592},
+    {925,  820,  738}, {735,  790,  544}, {575,  788,  674}, {655,  783,  528},
+    {527,  513,  677}, {782,  852,  940}, {578,  910,  513}, {692,  882,  734},
+    {586,  683,  715}, {739,  609,  717}, {778,  773,  697}, {922,  785,  813},
+    {766,  651,  984}, {978,  596,  515}, {535,  757,  540}, {662,  687,  589},
+    {554,  536,  979}, {723,  982,  690}, {936,  956,  527}, {590, 1002,  547},
+    {517,  653,  825}, {832,  592,  974}, {512,  957,  903}, {631,  545,  906},
+    {514,  720,  649}, {596,  679,  694}, {617,  740,  979}, {711,  685,  877},
+    {655,  835,  848}, {754,  839,  698}, {871,  515,  769}, {955,  852,  573},
+    {640,  859,  587}, {792,  863,  554}, {843,  708,  682}, {971,  768,  552},
+    {891,  536,  690}, {1016, 560,  663}, {543,  870,  674}, {601,  999,  585},
+    {945,  966,  889}, {529,  912,  777}, {574, 1020,  714}, {609,  922,  932},
+    {598,  778,  929}, {651,  772,  744}, {691,  957,  722}, {729,  766,  984},
+    {547,  519,  632}, {583,  532,  922}, {633,  995,  603}, {677,  571,  874},
+    {602,  545,  666}, {627,  542,  875}, {672,  983,  598}, {692,  979,  730},
+    {668,  634,  872}, {711,  706,  674}, {739,  977,  595}, {759,  905,  763},
+    {756,  582,  763}, {748, 1013,  908}, {804,  937,  950}, {785,  543,  998},
+    {999,  684,  942}, {626,  633,  996}, {626,  567,  835}, {739,  571,  973},
+    {655,  769,  707}, {702,  952,  571}, {727,  712,  514}, {744,  686,  741},
+    {731,  552,  714}, {824,  991,  726}, {795,  615,  544}, {870,  575,  824},
+    {803,  832,  923}, {819,  839,  531}, {887,  786,  852}, {933,  764,  570},
+    {716,  906,  654}, {784,  804,  563}, {774,  535,  876}, {807,  598,  649},
+    {817,  759,  718}, {831,  993,  846}, {858,  567,  605}, {876, 1012,  651},
+    {852,  548,  549}, {895, 1008,  871}, {892, 1000,  591}, {935,  516,  836},
+    {931,  612,  776}, {968,  614,  816}, {524,  777,  719}, {549,  694,  786},
+    {882,  754,  534}, {597,  837,  766}, {635,  954,  704}, {803,  550,  798},
+    {699,  654,  798}, {924,  767,  738}, {970,  675,  608}, {632,  706,  684},
+    {858,  767,  563}, {527,  765,  702}, {559,  924, 1003}, {618,  524,  611},
+    {999,  942,  963}, {547,  857,  935}, {734,  926,  569}, {967,  746,  551},
+    {834,  633,  881}, {941,  701,  727}, {945,  564,  636}, {512,  563,  793},
+    {984,  556,  570}, {984,  540,  740}, {527,  764,  874}, {530,  664, 1014},
+    {546,  515,  521}, {554,  934,  672}, {598,  945,  556}, {627,  531,  733},
+    {576, 1020, 1014}, {623,  924,  594}, {678,  909,  603}, {814,  744,  543}
 };
 
-static const unsigned short wavtable2[2304]={
-    14,  14,  14,  20,  20,  19,  21,  20,  20,
-    14,  14,  14,  20,  20,  20,  20,  21,  21,
-    14,  13,  14,  18,  20,  19,  21,  18,  21,
-    13,  13,  14,  18,  19,  19,  19,  18,  21,
-    13,  14,  13,  19,  18,  18,  19,  20,  19,
-    13,  14,  15,  19,  19,  20,  19,  21,  22,
-    13,  13,  13,  17,  17,  18,  18,  19,  19,
-    12,  14,  13,  18,  17,  19,  17,  20,  19,
-    13,  13,  13,  18,  18,  17,  19,  18,  18,
-    13,  13,  12,  18,  17,  17,  18,  19,  17,
-    13,  12,  13,  17,  17,  16,  18,  17,  18,
-    12,  13,  12,  17,  16,  17,  17,  19,  17,
-    12,  13,  13,  16,  17,  17,  17,  18,  18,
-    12,  13,  13,  16,  16,  17,  16,  19,  18,
-    12,  12,  13,  15,  16,  16,  16,  17,  18,
-    11,  13,  13,  15,  15,  17,  15,  18,  18,
-    13,  12,  13,  16,  17,  17,  18,  16,  19,
-    12,  12,  12,  16,  16,  16,  17,  16,  17,
-    13,  12,  12,  17,  17,  15,  19,  16,  16,
-    13,  12,  11,  16,  16,  14,  19,  16,  15,
-    12,  12,  12,  16,  16,  16,  17,  17,  17,
-    12,  13,  11,  16,  15,  16,  17,  18,  15,
-    12,  12,  11,  16,  14,  15,  16,  17,  15,
-    11,  13,  12,  15,  15,  16,  15,  18,  16,
-    12,  12,  12,  15,  15,  15,  16,  16,  16,
-    11,  12,  12,  15,  14,  15,  15,  16,  16,
-    11,  12,  12,  15,  15,  16,  15,  16,  17,
-    11,  12,  13,  15,  15,  16,  14,  17,  18,
-    11,  12,  11,  15,  14,  15,  15,  17,  15,
-    11,  12,  11,  15,  14,  15,  14,  17,  15,
-    11,  13,  12,  15,  14,  16,  14,  18,  17,
-    11,  12,  12,  14,  14,  16,  14,  17,  17,
-    12,  12,  12,  15,  16,  15,  17,  16,  17,
-    12,  11,  12,  15,  16,  15,  17,  15,  16,
-    12,  12,  11,  15,  15,  15,  17,  16,  15,
-    12,  12,  11,  15,  14,  14,  16,  16,  15,
-    13,  11,  11,  15,  15,  14,  18,  15,  15,
-    12,  11,  10,  15,  14,  13,  17,  15,  13,
-    11,  11,  11,  14,  14,  14,  15,  15,  14,
-    11,  11,  10,  14,  13,  13,  15,  15,  13,
-    12,  11,  12,  14,  15,  15,  16,  15,  17,
-    11,  11,  12,  14,  15,  15,  15,  15,  16,
-    11,  12,  11,  14,  14,  14,  15,  16,  15,
-    11,  11,  11,  14,  14,  14,  14,  15,  15,
-    11,  11,  12,  14,  14,  15,  14,  15,  16,
-    11,  11,  12,  14,  14,  15,  14,  15,  17,
-    11,  12,  12,  14,  14,  15,  14,  16,  16,
-    10,  12,  12,  13,  14,  15,  13,  16,  16,
-    11,  12,  11,  14,  13,  14,  14,  16,  14,
-    11,  11,  11,  14,  13,  14,  14,  15,  14,
-    10,  12,  11,  14,  13,  14,  13,  17,  14,
-    10,  12,  11,  14,  13,  14,  13,  16,  14,
-    11,  11,  11,  13,  13,  14,  14,  15,  15,
-    10,  11,  11,  13,  13,  14,  13,  15,  15,
-    10,  11,  12,  13,  14,  14,  13,  15,  16,
-    10,  11,  12,  13,  14,  15,  13,  15,  16,
-    11,  12,  11,  14,  13,  15,  14,  16,  15,
-    10,  12,  12,  14,  13,  15,  13,  17,  16,
-    10,  13,  12,  14,  14,  16,  13,  18,  16,
-    10,  12,  13,  14,  14,  16,  13,  17,  18,
-    10,  12,  11,  13,  13,  15,  13,  16,  15,
-    10,  12,  11,  13,  13,  15,  13,  16,  15,
-    10,  12,  12,  14,  13,  16,  13,  17,  16,
-    10,  12,  12,  13,  14,  16,  12,  16,  17,
-    12,  11,  12,  15,  16,  14,  17,  14,  16,
-    12,  11,  11,  14,  15,  13,  17,  14,  15,
-    11,  11,  12,  14,  14,  14,  15,  14,  16,
-    11,  11,  11,  13,  14,  14,  14,  14,  15,
-    11,  10,  11,  13,  14,  13,  15,  13,  15,
-    11,  10,  11,  13,  14,  13,  15,  13,  15,
-    12,  10,  10,  14,  14,  12,  17,  13,  13,
-    12,  10,  10,  13,  13,  11,  16,  13,  12,
-    11,  11,  11,  14,  14,  13,  15,  14,  14,
-    11,  11,  10,  13,  13,  13,  15,  14,  13,
-    11,  11,  10,  14,  12,  13,  14,  15,  13,
-    10,  12,  10,  14,  12,  13,  13,  16,  12,
-    11,  11,  11,  13,  14,  13,  14,  14,  15,
-    11,  11,  11,  13,  13,  13,  14,  14,  14,
-    10,  11,  11,  13,  13,  14,  13,  14,  15,
-    10,  11,  11,  12,  13,  13,  13,  14,  15,
-    11,  10,  11,  13,  13,  13,  14,  13,  14,
-    11,  11,  10,  13,  12,  13,  14,  14,  13,
-    11,  10,  10,  12,  12,  12,  14,  13,  13,
-    10,  10,  10,  12,  12,  12,  13,  13,  13,
-    11,  11,  10,  13,  12,  12,  14,  14,  12,
-    10,  11,  10,  13,  12,  12,  13,  14,  12,
-    10,  11,  10,  12,  11,  12,  13,  14,  12,
-    10,  11,  10,  12,  11,  12,  12,  14,  12,
-    10,  10,  11,  12,  13,  13,  13,  13,  15,
-    10,  10,  11,  12,  13,  13,  13,  13,  14,
-    10,  11,  11,  12,  12,  13,  12,  14,  14,
-    10,  11,  11,  12,  13,  13,  12,  14,  15,
-    10,  10,  11,  12,  12,  12,  12,  13,  14,
-    10,  10,  10,  11,  12,  12,  12,  13,  13,
-    10,  10,  11,  11,  12,  12,  12,  13,  14,
-     9,  10,  11,  11,  12,  13,  11,  13,  14,
-    11,  11,  11,  13,  13,  13,  14,  15,  14,
-    10,  11,  11,  13,  12,  13,  13,  15,  14,
-    10,  11,  10,  13,  12,  13,  13,  15,  13,
-    10,  11,  11,  13,  12,  13,  12,  15,  14,
-    10,  11,  11,  13,  13,  14,  13,  15,  15,
-    10,  11,  11,  13,  13,  14,  12,  15,  15,
-    10,  11,  11,  13,  13,  14,  12,  15,  15,
-    10,  11,  12,  12,  13,  15,  12,  15,  16,
-    10,  12,  11,  14,  12,  14,  13,  16,  14,
-    10,  12,  11,  14,  12,  15,  12,  17,  14,
-    10,  12,  12,  13,  13,  15,  12,  16,  16,
-    10,  13,  12,  14,  13,  16,  12,  18,  17,
-    10,  12,  11,  13,  12,  15,  12,  16,  15,
-    10,  12,  11,  13,  12,  14,  12,  16,  15,
-    10,  12,  12,  13,  13,  15,  12,  17,  16,
-    10,  12,  12,  13,  13,  16,  12,  16,  17,
-    10,  12,  10,  13,  12,  14,  12,  16,  13,
-    10,  12,  11,  13,  12,  14,  12,  16,  14,
-    10,  12,  10,  13,  11,  13,  12,  16,  13,
-    10,  11,  11,  12,  12,  14,  12,  15,  14,
-    10,  11,  11,  12,  12,  13,  12,  14,  14,
-    10,  11,  11,  12,  12,  14,  12,  15,  15,
-     9,  11,  11,  12,  12,  14,  11,  15,  15,
-     9,  11,  12,  12,  13,  14,  11,  15,  16,
-    10,  12,  11,  13,  12,  15,  12,  17,  14,
-     9,  12,  11,  13,  12,  15,  11,  17,  15,
-     9,  12,  12,  13,  12,  15,  11,  16,  16,
-     9,  12,  12,  13,  13,  16,  11,  17,  17,
-     9,  12,  11,  13,  12,  15,  11,  17,  14,
-     9,  12,  12,  13,  12,  16,  11,  17,  16,
-     9,  12,  12,  13,  12,  15,  11,  17,  16,
-     9,  13,  12,  13,  13,  16,  11,  18,  17,
-    12,  10,  11,  13,  14,  12,  16,  12,  14,
-    11,  10,  10,  12,  13,  12,  14,  12,  13,
-    10,  10,  11,  12,  13,  12,  13,  12,  15,
-    10,  10,  10,  12,  12,  12,  13,  12,  13,
-    11,   9,  10,  12,  13,  11,  15,  11,  13,
-    11,  10,  10,  12,  12,  11,  14,  12,  12,
-    10,  10,   9,  11,  11,  11,  13,  12,  11,
-    10,  10,   9,  11,  11,  10,  13,  12,  10,
-    10,  10,  10,  12,  12,  12,  13,  13,  13,
-    10,  10,  10,  12,  11,  12,  12,  13,  13,
-    10,  10,  10,  11,  11,  11,  12,  12,  13,
-    10,  10,  10,  11,  11,  11,  12,  12,  12,
-    10,  10,  10,  12,  11,  11,  12,  13,  12,
-    10,  10,   9,  11,  11,  11,  12,  13,  11,
-     9,  10,   9,  11,  10,  11,  11,  12,  11,
-     9,  10,   9,  11,  10,  11,  11,  13,  11,
-    10,   9,  11,  11,  12,  11,  13,  11,  14,
-    10,  10,  10,  11,  12,  11,  13,  12,  13,
-    10,  10,  10,  11,  12,  12,  12,  12,  13,
-     9,  10,  10,  10,  11,  11,  11,  12,  13,
-    10,   9,  10,  11,  12,  10,  13,  11,  12,
-    10,   9,  10,  11,  11,  10,  12,  11,  12,
-     9,  10,  10,  11,  11,  11,  11,  12,  12,
-     9,   9,  10,  10,  10,  11,  11,  11,  12,
-     9,  10,  10,  11,  11,  12,  11,  13,  13,
-     9,  10,  10,  11,  11,  12,  11,  13,  13,
-     9,  10,  11,  11,  11,  12,  11,  12,  14,
-     9,  10,  11,  11,  11,  12,  11,  13,  14,
-     9,  10,  10,  10,  10,  11,  11,  12,  12,
-     9,  10,  10,  10,  10,  11,  10,  12,  13,
-     9,   9,  10,  10,  10,  11,  10,  11,  12,
-     9,  10,  10,  10,  10,  12,  10,  12,  13,
-    10,  11,  10,  12,  12,  13,  13,  14,  13,
-    10,  11,  10,  12,  12,  13,  12,  14,  13,
-    10,  11,  10,  12,  11,  13,  12,  15,  13,
-    10,  11,  10,  12,  11,  13,  12,  14,  13,
-    10,  10,  10,  12,  11,  12,  12,  13,  13,
-    10,  10,  10,  11,  11,  12,  12,  13,  13,
-     9,  11,  10,  12,  11,  12,  11,  14,  13,
-     9,  11,  10,  11,  11,  12,  11,  14,  13,
-    10,  11,  11,  12,  12,  13,  12,  14,  14,
-     9,  11,  11,  12,  12,  13,  11,  14,  14,
-     9,  11,  11,  11,  12,  13,  11,  14,  15,
-     9,  11,  12,  11,  12,  14,  11,  14,  16,
-     9,  11,  11,  12,  11,  13,  11,  14,  14,
-     9,  11,  11,  12,  12,  13,  11,  14,  14,
-     9,  11,  11,  11,  12,  13,  11,  14,  15,
-     9,  11,  12,  11,  12,  14,  10,  14,  16,
-     9,  11,  10,  12,  11,  13,  11,  15,  13,
-     9,  11,  11,  12,  11,  14,  11,  15,  14,
-     9,  12,  10,  12,  11,  13,  11,  16,  13,
-     9,  11,  11,  12,  11,  14,  11,  15,  14,
-     9,  11,  11,  12,  12,  14,  11,  15,  15,
-     9,  11,  12,  12,  12,  15,  11,  15,  16,
-     9,  12,  11,  12,  12,  14,  11,  16,  15,
-     9,  12,  12,  12,  13,  15,  11,  16,  16,
-     9,  12,  11,  13,  11,  14,  11,  17,  14,
-     9,  12,  11,  13,  12,  15,  11,  17,  15,
-     9,  12,  11,  12,  12,  14,  10,  16,  15,
-     9,  12,  12,  12,  12,  15,  10,  16,  16,
-     9,  12,  11,  13,  11,  15,  10,  17,  14,
-     9,  13,  12,  13,  12,  16,  10,  18,  16,
-     9,  13,  12,  13,  12,  16,  10,  18,  16,
-     9,  12,  13,  13,  13,  16,  10,  17,  18,
-    10,  11,  10,  12,  11,  12,  12,  15,  12,
-     9,  11,  10,  12,  10,  12,  11,  15,  12,
-     9,  10,  10,  11,  11,  12,  11,  13,  12,
-     9,  10,  10,  11,  10,  11,  10,  13,  12,
-     9,  11,  10,  12,  11,  12,  11,  14,  13,
-     9,  11,  10,  11,  11,  12,  11,  14,  13,
-     9,  11,  10,  12,  11,  13,  10,  15,  13,
-     9,  11,  11,  12,  11,  14,  10,  15,  14,
-     9,  10,  10,  11,  11,  12,  10,  13,  13,
-     9,  11,  10,  11,  10,  12,  10,  14,  12,
-     9,  10,  10,  11,  11,  12,  10,  13,  13,
-     9,  10,  11,  11,  11,  13,  10,  13,  14,
-     9,  11,  11,  11,  11,  13,  10,  14,  14,
-     9,  11,  11,  11,  12,  14,  10,  14,  15,
-     9,  11,  11,  11,  11,  13,  10,  14,  14,
-     9,  11,  11,  11,  11,  14,  10,  14,  15,
-     9,  12,  10,  12,  11,  13,  11,  16,  13,
-     9,  12,  10,  12,  11,  14,  10,  16,  13,
-     9,  11,  11,  12,  11,  14,  10,  15,  14,
-     9,  11,  11,  12,  12,  14,  10,  15,  15,
-     9,  12,  11,  12,  11,  14,  10,  16,  15,
-     9,  12,  12,  12,  12,  15,  10,  16,  16,
-     9,  12,  11,  13,  12,  15,  10,  17,  15,
-     9,  13,  12,  13,  12,  16,  10,  18,  17,
-     9,  11,  10,  12,  11,  13,  10,  15,  13,
-     9,  12,  11,  12,  11,  14,  10,  16,  14,
-     9,  12,  11,  12,  11,  14,  10,  16,  15,
-     9,  11,  12,  12,  12,  15,  10,  15,  16,
-     9,  12,  11,  12,  11,  15,  10,  17,  14,
-     9,  12,  12,  12,  12,  16,  10,  17,  16,
-     8,  12,  11,  12,  11,  14,   9,  16,  15,
-     8,  12,  12,  12,  12,  15,   9,  17,  16,
-    10,   9,   9,  10,  11,  10,  12,  10,  11,
-     9,   9,   9,  10,  10,   9,  11,  10,  10,
-     9,  10,   9,  10,  10,  10,  11,  12,  11,
-     9,   9,   9,  10,   9,  10,  10,  11,  10,
-     9,   9,  10,  10,  10,  11,  11,  11,  12,
-     9,   9,  10,   9,  10,  10,  10,  10,  12,
-     9,   9,   9,   9,   9,  10,  10,  11,  11,
-     8,   9,   9,   9,   9,  10,   9,  11,  11,
-     9,  10,   9,  10,  10,  11,  10,  12,  11,
-     8,  10,   9,  10,   9,  10,   9,  12,  11,
-     8,  10,  10,  10,   9,  11,   9,  12,  12,
-     8,   9,  10,   9,  10,  11,   9,  11,  13,
-     9,   9,   9,   9,   9,   9,  10,  10,  10,
-     7,   8,   8,   7,   7,   7,   7,   8,   8,
-     8,  10,   9,   9,   9,  10,   8,  12,  11,
-     8,   9,   9,   8,   8,  10,   8,  10,  11,
-     9,  11,  10,  11,  10,  12,  10,  15,  12,
-     9,  11,  10,  11,  10,  13,  10,  15,  12,
-     9,  10,  10,  10,  10,  12,  10,  13,  13,
-     8,  10,  11,  10,  11,  13,   9,  13,  14,
-     9,  11,  10,  11,  10,  13,  10,  15,  13,
-     9,  11,  11,  11,  11,  14,  10,  15,  14,
-     8,  11,  11,  11,  11,  13,   9,  14,  14,
-     8,  11,  12,  11,  11,  14,   9,  15,  16,
-     8,  10,   9,  10,   9,  11,   9,  13,  11,
-     8,  11,  10,  11,  10,  12,   9,  14,  13,
-     8,  11,  10,  10,  10,  12,   9,  14,  13,
-     8,  10,  11,  10,  11,  13,   9,  13,  14,
-     8,  12,  11,  11,  10,  14,   9,  16,  14,
-     8,  12,  11,  11,  11,  14,   9,  16,  15,
-     8,  11,  10,  10,  10,  12,   9,  14,  13,
-     8,  11,  10,  10,  10,  13,   8,  14,  13
+static const uint8_t gain_exp_tab[256][3] = {
+    {14, 14, 14}, {14, 14, 14}, {14, 13, 14}, {13, 13, 14},
+    {13, 14, 13}, {13, 14, 15}, {13, 13, 13}, {12, 14, 13},
+    {13, 13, 13}, {13, 13, 12}, {13, 12, 13}, {12, 13, 12},
+    {12, 13, 13}, {12, 13, 13}, {12, 12, 13}, {11, 13, 13},
+    {13, 12, 13}, {12, 12, 12}, {13, 12, 12}, {13, 12, 11},
+    {12, 12, 12}, {12, 13, 11}, {12, 12, 11}, {11, 13, 12},
+    {12, 12, 12}, {11, 12, 12}, {11, 12, 12}, {11, 12, 13},
+    {11, 12, 11}, {11, 12, 11}, {11, 13, 12}, {11, 12, 12},
+    {12, 12, 12}, {12, 11, 12}, {12, 12, 11}, {12, 12, 11},
+    {13, 11, 11}, {12, 11, 10}, {11, 11, 11}, {11, 11, 10},
+    {12, 11, 12}, {11, 11, 12}, {11, 12, 11}, {11, 11, 11},
+    {11, 11, 12}, {11, 11, 12}, {11, 12, 12}, {10, 12, 12},
+    {11, 12, 11}, {11, 11, 11}, {10, 12, 11}, {10, 12, 11},
+    {11, 11, 11}, {10, 11, 11}, {10, 11, 12}, {10, 11, 12},
+    {11, 12, 11}, {10, 12, 12}, {10, 13, 12}, {10, 12, 13},
+    {10, 12, 11}, {10, 12, 11}, {10, 12, 12}, {10, 12, 12},
+    {12, 11, 12}, {12, 11, 11}, {11, 11, 12}, {11, 11, 11},
+    {11, 10, 11}, {11, 10, 11}, {12, 10, 10}, {12, 10, 10},
+    {11, 11, 11}, {11, 11, 10}, {11, 11, 10}, {10, 12, 10},
+    {11, 11, 11}, {11, 11, 11}, {10, 11, 11}, {10, 11, 11},
+    {11, 10, 11}, {11, 11, 10}, {11, 10, 10}, {10, 10, 10},
+    {11, 11, 10}, {10, 11, 10}, {10, 11, 10}, {10, 11, 10},
+    {10, 10, 11}, {10, 10, 11}, {10, 11, 11}, {10, 11, 11},
+    {10, 10, 11}, {10, 10, 10}, {10, 10, 11}, { 9, 10, 11},
+    {11, 11, 11}, {10, 11, 11}, {10, 11, 10}, {10, 11, 11},
+    {10, 11, 11}, {10, 11, 11}, {10, 11, 11}, {10, 11, 12},
+    {10, 12, 11}, {10, 12, 11}, {10, 12, 12}, {10, 13, 12},
+    {10, 12, 11}, {10, 12, 11}, {10, 12, 12}, {10, 12, 12},
+    {10, 12, 10}, {10, 12, 11}, {10, 12, 10}, {10, 11, 11},
+    {10, 11, 11}, {10, 11, 11}, { 9, 11, 11}, { 9, 11, 12},
+    {10, 12, 11}, { 9, 12, 11}, { 9, 12, 12}, { 9, 12, 12},
+    { 9, 12, 11}, { 9, 12, 12}, { 9, 12, 12}, { 9, 13, 12},
+    {12, 10, 11}, {11, 10, 10}, {10, 10, 11}, {10, 10, 10},
+    {11,  9, 10}, {11, 10, 10}, {10, 10,  9}, {10, 10,  9},
+    {10, 10, 10}, {10, 10, 10}, {10, 10, 10}, {10, 10, 10},
+    {10, 10, 10}, {10, 10,  9}, { 9, 10,  9}, { 9, 10,  9},
+    {10,  9, 11}, {10, 10, 10}, {10, 10, 10}, { 9, 10, 10},
+    {10,  9, 10}, {10,  9, 10}, { 9, 10, 10}, { 9,  9, 10},
+    { 9, 10, 10}, { 9, 10, 10}, { 9, 10, 11}, { 9, 10, 11},
+    { 9, 10, 10}, { 9, 10, 10}, { 9,  9, 10}, { 9, 10, 10},
+    {10, 11, 10}, {10, 11, 10}, {10, 11, 10}, {10, 11, 10},
+    {10, 10, 10}, {10, 10, 10}, { 9, 11, 10}, { 9, 11, 10},
+    {10, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 12},
+    { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 12},
+    { 9, 11, 10}, { 9, 11, 11}, { 9, 12, 10}, { 9, 11, 11},
+    { 9, 11, 11}, { 9, 11, 12}, { 9, 12, 11}, { 9, 12, 12},
+    { 9, 12, 11}, { 9, 12, 11}, { 9, 12, 11}, { 9, 12, 12},
+    { 9, 12, 11}, { 9, 13, 12}, { 9, 13, 12}, { 9, 12, 13},
+    {10, 11, 10}, { 9, 11, 10}, { 9, 10, 10}, { 9, 10, 10},
+    { 9, 11, 10}, { 9, 11, 10}, { 9, 11, 10}, { 9, 11, 11},
+    { 9, 10, 10}, { 9, 11, 10}, { 9, 10, 10}, { 9, 10, 11},
+    { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 11}, { 9, 11, 11},
+    { 9, 12, 10}, { 9, 12, 10}, { 9, 11, 11}, { 9, 11, 11},
+    { 9, 12, 11}, { 9, 12, 12}, { 9, 12, 11}, { 9, 13, 12},
+    { 9, 11, 10}, { 9, 12, 11}, { 9, 12, 11}, { 9, 11, 12},
+    { 9, 12, 11}, { 9, 12, 12}, { 8, 12, 11}, { 8, 12, 12},
+    {10,  9,  9}, { 9,  9,  9}, { 9, 10,  9}, { 9,  9,  9},
+    { 9,  9, 10}, { 9,  9, 10}, { 9,  9,  9}, { 8,  9,  9},
+    { 9, 10,  9}, { 8, 10,  9}, { 8, 10, 10}, { 8,  9, 10},
+    { 9,  9,  9}, { 7,  8,  8}, { 8, 10,  9}, { 8,  9,  9},
+    { 9, 11, 10}, { 9, 11, 10}, { 9, 10, 10}, { 8, 10, 11},
+    { 9, 11, 10}, { 9, 11, 11}, { 8, 11, 11}, { 8, 11, 12},
+    { 8, 10,  9}, { 8, 11, 10}, { 8, 11, 10}, { 8, 10, 11},
+    { 8, 12, 11}, { 8, 12, 11}, { 8, 11, 10}, { 8, 11, 10}
 };
 
-static const signed short etable1[5120]={
+static const int8_t cb1_vects[128][40]={
+    {
      38,  -4,  15,  -4,  14, -13,  12, -11,  -2,  -6,
      -6, -11, -45, -16, -11, -13,  -7,   6, -12,   4,
     -20,   3, -16,  12,  -1,  12,  46,  24,   0,  33,
      -3,   9, -12, -12,  -8,  -7,  17,  -6,   0,  -2,
+    }, {
      60, -16,   3, -22,  10, -32,   0, -28, -17, -18,
      -3, -25, -37, -23, -10,   3,   2,   3,   0,   3,
     -14,   0, -14,  -1,   0,   2,  32,   9,  -1,  25,
       7,  13,  -5,  13,   8,   1,   2,   8, -10,   6,
+    }, {
      27, -12,  28,  -2,   6,  -7,  15,   9, -11,   1,
     -13, -11, -40,   4, -29, -14, -19,  -5, -23,  -8,
     -30, -13, -17,   0, -14,  12,  34,  20,  -2,  25,
       2, -16,  -4, -12,  15,  16,  29,   7,  24,  10,
+    }, {
      49, -24,  16, -20,   2, -26,   2,  -7, -25, -10,
     -11, -25, -32,  -3, -27,   2,  -8,  -8, -11,  -9,
     -24, -17, -16, -14, -13,   2,  20,   5,  -4,  17,
      14, -12,   3,  13,  33,  25,  14,  23,  15,  19,
+    }, {
      46,  -6,  21,   8,  -2, -16,  -5,  -8, -11,   4,
       8,  15, -24,   4,  -2, -26,  -3, -16, -16, -14,
      -9,  -2,  -1,   4,  19,   7,  36,  17,   9,  13,
       0,  31,  -5, -12,   7,  -8,  11, -15, -13,  -4,
+    }, {
      68, -18,   9,  -9,  -6, -35, -18, -25, -26,  -7,
      10,   1, -16,  -3,  -1,  -9,   6, -19,  -4, -15,
      -4,  -6,   0,  -8,  20,  -2,  23,   2,   7,   5,
      12,  35,   1,  13,  24,   0,  -3,   0, -22,   4,
+    }, {
      35, -14,  34,  10, -10, -10,  -1,  12, -20,  12,
       0,  15, -18,  24, -20, -27, -14, -28, -27, -27,
     -20, -19,  -2,  -8,   5,   7,  25,  13,   5,   5,
       6,   5,   2, -12,  31,  15,  23,  -1,  12,   8,
+    }, {
      57, -26,  22,  -7, -14, -28, -14,  -3, -35,   0,
       3,   1, -11,  16, -18, -10,  -4, -31, -15, -28,
     -14, -23,  -1, -21,   7,  -2,  11,  -1,   3,  -1,
      18,   9,  10,  13,  49,  24,   8,  14,   2,  16,
+    }, {
      25,  15,  22,  11,  18,   4,  15, -22,   8,  -2,
     -17,  -9, -48, -20, -30, -17, -16,  11,  -1,  16,
       2,  10,  -5,  26,  -2,  -4,  22,   0,   2,  10,
      -6,  13, -14,  10, -23,   0,  10,  -2,   1,   0,
+    }, {
      47,   3,  11,  -6,  15, -13,   2, -38,  -6, -13,
     -15, -22, -40, -28, -28,   0,  -5,   8,  10,  15,
       7,   7,  -4,  13,  -1, -14,   9, -14,   0,   2,
       4,  18,  -7,  36,  -6,   8,  -3,  13,  -7,   8,
+    }, {
      14,   7,  36,  13,  10,  10,  18,   0,   0,   5,
     -25,  -8, -43,   0, -48, -18, -27,   0, -12,   3,
      -7,  -6,  -7,  13, -15,  -5,  11,  -3,   0,   2,
       0, -12,  -6,  10,   0,  23,  22,  11,  26,  12,
+    }, {
      36,  -5,  24,  -4,   7,  -7,   6, -17, -14,  -5,
     -22, -22, -35,  -8, -46,  -1, -17,  -3,   0,   2,
      -2, -10,  -5,   0, -14, -15,  -2, -18,  -2,  -4,
      11,  -7,   1,  36,  18,  32,   7,  27,  17,  20,
+    }, {
      33,  13,  29,  24,   1,   1,  -2, -18,   0,   9,
      -3,  17, -27,   0, -21, -30, -12, -11,  -5,  -2,
      12,   4,   9,  19,  18,  -9,  13,  -6,  11,  -8,
      -2,  35,  -8,  10,  -7,  -1,   4, -11, -10,  -2,
+    }, {
      55,   1,  17,   6,  -1, -16, -15, -35, -15,  -2,
       0,   4, -19,  -8, -20, -13,  -1, -14,   7,  -3,
      18,   0,  10,   5,  19, -19,   0, -21,   8, -16,
       9,  39,   0,  36,  10,   7,  -9,   4, -20,   5,
+    }, {
      22,   5,  42,  26,  -6,   8,   1,   2,  -9,  17,
     -10,  18, -21,  19, -39, -31, -23, -23, -16, -15,
       2, -12,   7,   6,   5,  -9,   1, -10,   7, -16,
       4,   9,   0,  10,  17,  22,  16,   2,  14,   9,
+    }, {
      44,  -6,  30,   8,  -9, -10, -11, -14, -23,   5,
      -8,   4, -14,  12, -37, -14, -12, -26,  -4, -16,
       8, -16,   9,  -7,   6, -19, -12, -25,   5, -24,
      15,  13,   8,  36,  34,  31,   1,  18,   4,  18,
+    }, {
      -3,  -5,  -9,  -7,  15,  -1,   5,  13,   2,  12,
       5,   2, -21, -23,  -2, -16,   0,   5,  -6,  13,
     -23,   3, -32,  10, -15,   8,  44,  28,   9,  37,
      -2,  13,  -9, -15, -12, -27,  -7, -12,   0, -11,
+    }, {
      18, -17, -21, -25,  11, -19,  -6,  -3, -11,   0,
       7, -11, -13, -31,  -1,   0,   9,   1,   5,  12,
     -18,   0, -31,  -2, -13,  -1,  30,  14,   7,  29,
       9,  18,  -1,  10,   4, -18, -22,   3, -10,  -2,
+    }, {
     -13, -13,   3,  -5,   7,   4,   9,  34,  -5,  20,
      -2,   3, -16,  -3, -20, -17, -11,  -7, -17,   0,
     -34, -13, -33,  -2, -28,   8,  32,  24,   5,  29,
       3, -12,   0, -15,  11,  -3,   3,   2,  24,   1,
+    }, {
       8, -25,  -8, -23,   3, -13,  -3,  17, -20,   8,
       0, -10,  -8, -11, -18,   0,  -1, -10,  -5,   0,
     -28, -17, -32, -15, -26,  -1,  19,   9,   3,  21,
      15,  -7,   6,   9,  29,   5, -10,  17,  15,   9,
+    }, {
       4,  -6,  -3,   5,  -1,  -4, -11,  16,  -6,  23,
      19,  29,   0,  -3,   6, -30,   3, -17, -10,  -5,
     -13,  -2, -17,   3,   5,   3,  35,  21,  17,  17,
       2,  35,  -2, -15,   3, -28, -13, -21, -13, -13,
+    }, {
      26, -19, -15, -12,  -5, -22, -24,   0, -21,  12,
      21,  15,   8, -11,   7, -12,  14, -20,   2,  -6,
      -7,  -6, -16,  -9,   6,  -5,  21,   7,  15,  10,
      13,  39,   5,  10,  20, -19, -28,  -5, -22,  -5,
+    }, {
      -5, -15,   9,   7,  -9,   2,  -8,  37, -14,  31,
      11,  29,   5,  16, -11, -30,  -7, -29, -21, -18,
     -23, -19, -18,  -9,  -7,   3,  23,  17,  14,   9,
       8,   9,   6, -15,  27,  -4,  -2,  -6,  12,  -1,
+    }, {
      16, -27,  -2, -10, -13, -16, -20,  20, -29,  20,
      14,  16,  13,   8,  -9, -13,   2, -33,  -9, -19,
     -17, -23, -17, -22,  -6,  -6,   9,   2,  12,   2,
      20,  13,  13,  10,  45,   4, -16,   8,   2,   7,
+    }, {
     -16,  14,  -2,   8,  20,  17,   9,   2,  14,  16,
      -6,   5, -24, -28, -21, -20,  -8,   9,   4,  25,
      -1,  11, -22,  24, -15,  -8,  21,   5,  11,  14,
      -5,  18, -11,   7, -27, -20, -14,  -7,   1,  -9,
+    }, {
       6,   2, -14,  -9,  16,  -1,  -3, -14,   0,   5,
      -3,  -8, -16, -36, -19,  -3,   1,   6,  17,  24,
       4,   7, -21,  11, -14, -18,   7,  -9,   9,   7,
       6,  22,  -3,  33, -10, -11, -28,   7,  -7,   0,
+    }, {
     -26,   6,  11,  10,  12,  23,  12,  23,   5,  24,
     -13,   5, -19,  -8, -38, -21, -20,  -2,  -6,  12,
     -11,  -5, -23,  11, -29,  -9,   9,   0,   7,   6,
       1,  -7,  -2,   7,  -3,   3,  -2,   6,  27,   3,
+    }, {
      -4,  -6,   0,  -7,   8,   4,   0,   6,  -9,  13,
     -11,  -7, -11, -15, -37,  -4,  -9,  -5,   5,  11,
      -5,  -9, -22,  -1, -27, -18,  -4, -14,   5,   0,
      12,  -3,   4,  32,  14,  12, -17,  22,  17,  11,
+    }, {
      -8,  12,   3,  21,   3,  14,  -8,   5,   4,  28,
       7,  32,  -2,  -8, -12, -34,  -4, -12,   1,   6,
       9,   4,  -7,  17,   4, -13,  11,  -1,  19,  -4,
       0,  39,  -4,   7, -11, -21, -20, -16, -10, -11,
+    }, {
      13,   0,  -8,   3,   0,  -4, -21, -11,  -9,  16,
      10,  18,   5, -16, -10, -16,   5, -15,  13,   5,
      15,   1,  -6,   4,   6, -23,  -2, -16,  17, -12,
      10,  44,   3,  33,   6, -12, -34,  -1, -20,  -3,
+    }, {
     -18,   4,  17,  23,  -4,  20,  -4,  26,  -3,  36,
       0,  32,   2,  12, -29, -34, -16, -24, -10,  -6,
       0, -12,  -8,   4,  -8, -13,   0,  -6,  16, -12,
       5,  13,   3,   7,  13,   3,  -8,  -2,  14,   0,
+    }, {
       3,  -7,   5,   5,  -8,   2, -17,   9, -18,  24,
       2,  19,  10,   4, -28, -17,  -5, -28,   2,  -7,
       4, -15,  -7,  -8,  -6, -23, -13, -21,  14, -20,
      17,  18,  11,  33,  30,  11, -23,  13,   5,   9,
+    }, {
      60,  10,   7,  -1,   9,  -8,   6, -13,   2, -15,
      -1, -10, -13, -11,  15,   0,   6,   9,  -1,   0,
     -13,   1, -11,  -3, -13,  21,  13,  26,  -7,  31,
     -10,  -7, -16, -33, -31, -10,  22,  -8,   1,  -2,
+    }, {
      82,  -1,  -4, -19,   6, -27,  -6, -29, -12, -26,
       1, -24,  -5, -18,  17,  17,  17,   6,  10,   0,
      -7,  -2,  -9, -16, -12,  11,   0,  11,  -9,  23,
       0,  -3,  -8,  -8, -13,  -1,   8,   7,  -7,   6,
+    }, {
      49,   2,  21,   0,   1,  -2,   9,   8,  -6,  -6,
      -8, -10,  -8,   9,  -2,   0,  -4,  -2, -13, -12,
     -23, -15, -12, -16, -26,  21,   2,  21, -11,  23,
      -4, -33,  -7, -33,  -6,  13,  34,   5,  27,  10,
+    }, {
      71, -10,   9, -17,  -1, -20,  -3,  -8, -21, -18,
      -6, -24,   0,   1,   0,  16,   6,  -5,   0, -13,
     -17, -19, -11, -29, -25,  11, -11,   6, -13,  15,
       7, -29,   0,  -8,  11,  22,  20,  21,  17,  18,
+    }, {
      67,   8,  14,  11,  -7, -11, -11,  -9,  -7,  -3,
      13,  16,   8,   9,  24, -12,  10, -13,  -5, -17,
      -2,  -4,   3, -10,   6,  17,   4,  19,   0,  11,
      -6,  13,  -9, -33, -14, -10,  16, -17, -10,  -4,
+    }, {
      90,  -3,   2,  -6, -10, -29, -24, -26, -21, -15,
      15,   2,  16,   1,  25,   4,  21, -16,   6, -18,
       3,  -8,   5, -24,   8,   7,  -9,   4,  -1,   3,
       5,  18,  -1,  -7,   2,  -1,   2,  -1, -19,   3,
+    }, {
      57,   0,  27,  13, -14,  -5,  -7,  11, -15,   4,
       5,  16,  13,  29,   6, -13,   0, -25, -16, -31,
     -12, -22,   2, -23,  -6,  16,  -7,  14,  -2,   3,
       0, -12,   0, -33,   9,  13,  28,  -3,  14,   7,
+    }, {
      79, -11,  15,  -4, -18, -23, -20,  -5, -30,  -7,
       7,   2,  21,  21,   8,   3,  10, -28,  -4, -31,
      -6, -25,   3, -37,  -4,   7, -20,   0,  -4,  -4,
      11,  -7,   6,  -8,  27,  22,  14,  12,   5,  16,
+    }, {
      47,  30,  15,  14,  14,   9,   9, -23,  13, -10,
     -12,  -7, -16, -15,  -3,  -3,  -1,  14,   9,  12,
       9,   8,   0,  10, -14,   4,  -9,   2,  -5,   8,
     -13,  -3, -18, -10, -45,  -3,  16,  -4,   4,   0,
+    }, {
      69,  17,   3,  -3,  10,  -8,  -3, -40,  -1, -21,
     -10, -21,  -8, -23,  -1,  13,   8,  11,  21,  11,
      15,   4,   0,  -2, -13,  -5, -23, -12,  -7,   0,
      -1,   0, -10,  14, -28,   5,   1,  11,  -5,   7,
+    }, {
      36,  21,  28,  16,   6,  16,  12,  -2,   4,  -2,
     -20,  -7, -11,   4, -20,  -4, -12,   2,  -1,   0,
       0,  -8,  -2,  -2, -27,   4, -21,  -2,  -9,   0,
      -6, -29,  -9, -10, -21,  21,  28,  10,  29,  11,
+    }, {
      58,   9,  16,  -1,   2,  -2,   0, -19, -10, -13,
     -17, -21,  -3,  -3, -19,  12,  -2,   0,  10,  -1,
       5, -12,   0, -15, -26,  -5, -34, -16, -11,  -7,
       4, -25,  -2,  14,  -3,  29,  13,  25,  20,  20,
+    }, {
      55,  28,  21,  27,  -2,   7,  -8, -20,   4,   1,
       1,  18,   5,   4,   5, -16,   2,  -8,   5,  -5,
      19,   2,  14,   3,   6,   0, -18,  -4,   2, -11,
      -8,  18, -11, -10, -29,  -3,  10, -13,  -8,  -3,
+    }, {
      77,  16,   9,   9,  -6, -11, -21, -37, -10, -10,
       4,   5,  13,  -3,   7,   0,  13, -11,  17,  -6,
      25,  -1,  15,  -9,   7,  -9, -32, -19,   0, -18,
       2,  22,  -3,  15, -12,   5,  -4,   2, -17,   5,
+    }, {
      44,  20,  34,  29, -10,  13,  -4,   0,  -4,   9,
      -5,  19,  10,  24, -11, -17,  -8, -20,  -5, -19,
       9, -14,  12,  -9,  -6,   0, -30,  -9,   0, -19,
      -2,  -7,  -2, -10,  -5,  20,  21,   1,  17,   9,
+    }, {
      66,   8,  23,  11, -14,  -5, -17, -16, -19,  -2,
      -3,   5,  18,  17, -10,   0,   1, -23,   6, -20,
      15, -18,  14, -22,  -5, -10, -44, -23,  -2, -26,
       9,  -3,   4,  14,  12,  29,   7,  16,   7,  18,
+    }, {
      18,   9, -17,  -4,  11,   3,   0,  11,   7,   4,
      10,   3,  10, -18,  24,  -3,  14,   7,   4,  10,
     -16,   1, -27,  -4, -27,  17,  12,  30,   0,  35,
      -9,  -3, -12, -36, -35, -30,  -2, -13,   2, -11,
+    }, {
      40,  -2, -29, -22,   7, -14, -12,  -5,  -7,  -7,
      12,  -9,  18, -26,  26,  14,  24,   4,  16,   9,
     -10,  -2, -26, -18, -26,   7,  -1,  15,  -1,  27,
       2,   0,  -4, -11, -17, -21, -16,   1,  -7,  -3,
+    }, {
       8,   1,  -3,  -2,   3,  10,   3,  32,  -1,  12,
       2,   4,  15,   1,   7,  -3,   2,  -4,  -6,  -3,
     -26, -15, -29, -17, -40,  17,   0,  26,  -2,  27,
      -2, -29,  -4, -36, -10,  -6,   9,   0,  27,   0,
+    }, {
      30, -11, -15, -20,   0,  -8,  -9,  15, -15,   0,
       5,  -9,  23,  -6,   8,  13,  13,  -7,   5,  -3,
     -20, -19, -27, -31, -39,   7, -13,  11,  -4,  19,
       8, -25,   3, -11,   7,   2,  -4,  16,  18,   9,
+    }, {
      26,   7, -11,   8,  -5,   1, -17,  14,  -1,  15,
      24,  30,  32,   1,  33, -16,  18, -14,   0,  -8,
      -6,  -4, -12, -12,  -6,  13,   2,  23,   8,  15,
      -4,  17,  -5, -36, -18, -30,  -8, -22, -10, -14,
+    }, {
      48,  -4, -23,  -9,  -9, -17, -30,  -2, -16,   3,
      26,  16,  40,  -6,  35,   1,  28, -17,  12,  -9,
       0,  -8, -11, -25,  -5,   3, -10,   8,   6,   7,
       6,  22,   1, -11,  -1, -21, -22,  -7, -19,  -5,
+    }, {
      15,   0,   2,  10, -13,   7, -14,  35, -10,  23,
      16,  31,  37,  21,  16, -17,   6, -26, -10, -21,
     -16, -21, -13, -25, -19,  13,  -8,  19,   5,   7,
       1,  -8,   2, -36,   5,  -6,   3,  -8,  15,  -1,
+    }, {
      37, -12,  -9,  -7, -17, -11, -26,  18, -25,  12,
      19,  17,  45,  14,  17,   0,  17, -30,   1, -22,
     -10, -25, -12, -38, -18,   3, -22,   4,   3,   0,
      13,  -3,  10, -11,  23,   2, -10,   7,   5,   7,
+    }, {
       5,  29,  -9,  11,  15,  22,   3,   0,  18,   8,
      -1,   6,   7, -23,   6,  -6,   5,  12,  15,  21,
       5,   8, -17,   9, -28,   0, -11,   6,   2,  12,
     -11,   0, -14, -13, -49, -22,  -8,  -9,   4,  -9,
+    }, {
      27,  16, -21,  -6,  12,   3,  -9, -16,   3,  -2,
       1,  -7,  15, -31,   7,  10,  16,   9,  27,  21,
      11,   5, -16,  -3, -26,  -9, -24,  -7,   0,   4,
       0,   4,  -6,  11, -32, -14, -23,   6,  -5,  -1,
+    }, {
      -4,  20,   3,  13,   8,  28,   6,  21,  10,  16,
      -8,   7,  12,  -3, -11,  -7,  -5,   0,   4,   8,
      -4,  -8, -18,  -3, -41,   0, -22,   2,   0,   4,
      -5, -25,  -6, -14, -25,   1,   2,   4,  29,   2,
+    }, {
      17,   8,  -8,  -4,   4,  10,  -6,   5,  -4,   5,
      -6,  -6,  20, -10,  -9,   9,   4,  -2,  16,   7,
       1, -12, -17, -16, -39,  -9, -36, -12,  -2,  -3,
       6, -21,   1,  11,  -7,  10, -11,  20,  20,  11,
+    }, {
      13,  27,  -3,  24,  -1,  19, -14,   3,   9,  20,
      12,  33,  29,  -3,  15, -20,   9,  -9,  11,   3,
      16,   2,  -2,   2,  -7,  -3, -20,   0,  10,  -7,
      -7,  22,  -7, -13, -33, -23, -14, -18,  -7, -12,
+    }, {
      35,  15, -15,   6,  -4,   1, -27, -12,  -5,   8,
      15,  19,  37, -11,  16,  -2,  20, -12,  23,   2,
      22,  -1,  -1, -11,  -5, -13, -34, -14,   8, -14,
       4,  26,   0,  11, -16, -14, -29,  -2, -17,  -3,
+    }, {
       3,  19,   9,  26,  -8,  26, -10,  24,   0,  28,
       5,  33,  34,  17,  -2, -20,  -1, -22,   0, -10,
       6, -14,  -3, -10, -20,  -4, -32,  -4,   7, -15,
       0,  -3,   0, -13,  -9,   0,  -3,  -4,  17,   0,
+    }, {
      25,   7,  -2,   8, -12,   7, -23,   8, -13,  16,
       7,  20,  42,   9,   0,  -3,   9, -25,  12, -10,
      12, -18,  -2, -24, -19, -13, -46, -19,   5, -22,
      10,   0,   8,  11,   8,   9, -17,  11,   7,   8,
+    }, {
     -25,  -7,   2,  -8,  12,  -7,  23,  -8,  13, -16,
      -7, -20, -42,  -9,   0,   3,  -9,  25, -12,  10,
     -12,  18,   2,  24,  19,  13,  46,  19,  -5,  22,
     -10,   0,  -8, -11,  -8,  -9,  17, -11,  -7,  -8,
+    }, {
      -3, -19,  -9, -26,   8, -26,  10, -24,   0, -28,
      -5, -33, -34, -17,   2,  20,   1,  22,   0,  10,
      -6,  14,   3,  10,  20,   4,  32,   4,  -7,  15,
       0,   3,   0,  13,   9,   0,   3,   4, -17,   0,
+    }, {
     -35, -15,  15,  -6,   4,  -1,  27,  12,   5,  -8,
     -15, -19, -37,  11, -16,   2, -20,  12, -23,  -2,
     -22,   1,   1,  11,   5,  13,  34,  14,  -8,  14,
      -4, -26,   0, -11,  16,  14,  29,   2,  17,   3,
+    }, {
     -13, -27,   3, -24,   1, -19,  14,  -3,  -9, -20,
     -12, -33, -29,   3, -15,  20,  -9,   9, -11,  -3,
     -16,  -2,   2,  -2,   7,   3,  20,   0, -10,   7,
       7, -22,   7,  13,  33,  23,  14,  18,   7,  12,
+    }, {
     -17,  -8,   8,   4,  -4, -10,   6,  -5,   4,  -5,
       6,   6, -20,  10,   9,  -9,  -4,   2, -16,  -7,
      -1,  12,  17,  16,  39,   9,  36,  12,   2,   3,
      -6,  21,  -1, -11,   7, -10,  11, -20, -20, -11,
+    }, {
       4, -20,  -3, -13,  -8, -28,  -6, -21, -10, -16,
       8,  -7, -12,   3,  11,   7,   5,   0,  -4,  -8,
       4,   8,  18,   3,  41,   0,  22,  -2,   0,  -4,
       5,  25,   6,  14,  25,  -1,  -2,  -4, -29,  -2,
+    }, {
     -27, -16,  21,   6, -12,  -3,   9,  16,  -3,   2,
      -1,   7, -15,  31,  -7, -10, -16,  -9, -27, -21,
     -11,  -5,  16,   3,  26,   9,  24,   7,   0,  -4,
       0,  -4,   6, -11,  32,  14,  23,  -6,   5,   1,
+    }, {
      -5, -29,   9, -11, -15, -22,  -3,   0, -18,  -8,
       1,  -6,  -7,  23,  -6,   6,  -5, -12, -15, -21,
      -5,  -8,  17,  -9,  28,   0,  11,  -6,  -2, -12,
      11,   0,  14,  13,  49,  22,   8,   9,  -4,   9,
+    }, {
     -37,  12,   9,   7,  17,  11,  26, -18,  25, -12,
     -19, -17, -45, -14, -17,   0, -17,  30,  -1,  22,
      10,  25,  12,  38,  18,  -3,  22,  -4,  -3,   0,
     -13,   3, -10,  11, -23,  -2,  10,  -7,  -5,  -7,
+    }, {
     -15,   0,  -2, -10,  13,  -7,  14, -35,  10, -23,
     -16, -31, -37, -21, -16,  17,  -6,  26,  10,  21,
      16,  21,  13,  25,  19, -13,   8, -19,  -5,  -7,
      -1,   8,  -2,  36,  -5,   6,  -3,   8, -15,   1,
+    }, {
     -48,   4,  23,   9,   9,  17,  30,   2,  16,  -3,
     -26, -16, -40,   6, -35,  -1, -28,  17, -12,   9,
       0,   8,  11,  25,   5,  -3,  10,  -8,  -6,  -7,
      -6, -22,  -1,  11,   1,  21,  22,   7,  19,   5,
+    }, {
     -26,  -7,  11,  -8,   5,  -1,  17, -14,   1, -15,
     -24, -30, -32,  -1, -33,  16, -18,  14,   0,   8,
       6,   4,  12,  12,   6, -13,  -2, -23,  -8, -15,
       4, -17,   5,  36,  18,  30,   8,  22,  10,  14,
+    }, {
     -30,  11,  15,  20,   0,   8,   9, -15,  15,   0,
      -5,   9, -23,   6,  -8, -13, -13,   7,  -5,   3,
      20,  19,  27,  31,  39,  -7,  13, -11,   4, -19,
      -8,  25,  -3,  11,  -7,  -2,   4, -16, -18,  -9,
+    }, {
      -8,  -1,   3,   2,  -3, -10,  -3, -32,   1, -12,
      -2,  -4, -15,  -1,  -7,   3,  -2,   4,   6,   3,
      26,  15,  29,  17,  40, -17,   0, -26,   2, -27,
       2,  29,   4,  36,  10,   6,  -9,   0, -27,   0,
+    }, {
     -40,   2,  29,  22,  -7,  14,  12,   5,   7,   7,
     -12,   9, -18,  26, -26, -14, -24,  -4, -16,  -9,
      10,   2,  26,  18,  26,  -7,   1, -15,   1, -27,
      -2,   0,   4,  11,  17,  21,  16,  -1,   7,   3,
+    }, {
     -18,  -9,  17,   4, -11,  -3,   0, -11,  -7,  -4,
     -10,  -3, -10,  18, -24,   3, -14,  -7,  -4, -10,
      16,  -1,  27,   4,  27, -17, -12, -30,   0, -35,
       9,   3,  12,  36,  35,  30,   2,  13,  -2,  11,
+    }, {
     -66,  -8, -23, -11,  14,   5,  17,  16,  19,   2,
       3,  -5, -18, -17,  10,   0,  -1,  23,  -6,  20,
     -15,  18, -14,  22,   5,  10,  44,  23,   2,  26,
      -9,   3,  -4, -14, -12, -29,  -7, -16,  -7, -18,
+    }, {
     -44, -20, -34, -29,  10, -13,   4,   0,   4,  -9,
       5, -19, -10, -24,  11,  17,   8,  20,   5,  19,
      -9,  14, -12,   9,   6,   0,  30,   9,   0,  19,
       2,   7,   2,  10,   5, -20, -21,  -1, -17,  -9,
+    }, {
     -77, -16,  -9,  -9,   6,  11,  21,  37,  10,  10,
      -4,  -5, -13,   3,  -7,   0, -13,  11, -17,   6,
     -25,   1, -15,   9,  -7,   9,  32,  19,   0,  18,
      -2, -22,   3, -15,  12,  -5,   4,  -2,  17,  -5,
+    }, {
     -55, -28, -21, -27,   2,  -7,   8,  20,  -4,  -1,
      -1, -18,  -5,  -4,  -5,  16,  -2,   8,  -5,   5,
     -19,  -2, -14,  -3,  -6,   0,  18,   4,  -2,  11,
       8, -18,  11,  10,  29,   3, -10,  13,   8,   3,
+    }, {
     -58,  -9, -16,   1,  -2,   2,   0,  19,  10,  13,
      17,  21,   3,   3,  19, -12,   2,   0, -10,   1,
      -5,  12,   0,  15,  26,   5,  34,  16,  11,   7,
      -4,  25,   2, -14,   3, -29, -13, -25, -20, -20,
+    }, {
     -36, -21, -28, -16,  -6, -16, -12,   2,  -4,   2,
      20,   7,  11,  -4,  20,   4,  12,  -2,   1,   0,
       0,   8,   2,   2,  27,  -4,  21,   2,   9,   0,
       6,  29,   9,  10,  21, -21, -28, -10, -29, -11,
+    }, {
     -69, -17,  -3,   3, -10,   8,   3,  40,   1,  21,
      10,  21,   8,  23,   1, -13,  -8, -11, -21, -11,
     -15,  -4,   0,   2,  13,   5,  23,  12,   7,   0,
       1,   0,  10, -14,  28,  -5,  -1, -11,   5,  -7,
+    }, {
     -47, -30, -15, -14, -14,  -9,  -9,  23, -13,  10,
      12,   7,  16,  15,   3,   3,   1, -14,  -9, -12,
      -9,  -8,   0, -10,  14,  -4,   9,  -2,   5,  -8,
      13,   3,  18,  10,  45,   3, -16,   4,  -4,   0,
+    }, {
     -79,  11, -15,   4,  18,  23,  20,   5,  30,   7,
      -7,  -2, -21, -21,  -8,  -3, -10,  28,   4,  31,
       6,  25,  -3,  37,   4,  -7,  20,   0,   4,   4,
     -11,   7,  -6,   8, -27, -22, -14, -12,  -5, -16,
+    }, {
     -57,   0, -27, -13,  14,   5,   7, -11,  15,  -4,
      -5, -16, -13, -29,  -6,  13,   0,  25,  16,  31,
      12,  22,  -2,  23,   6, -16,   7, -14,   2,  -3,
       0,  12,   0,  33,  -9, -13, -28,   3, -14,  -7,
+    }, {
     -90,   3,  -2,   6,  10,  29,  24,  26,  21,  15,
     -15,  -2, -16,  -1, -25,  -4, -21,  16,  -6,  18,
      -3,   8,  -5,  24,  -8,  -7,   9,  -4,   1,  -3,
      -5, -18,   1,   7,  -2,   1,  -2,   1,  19,  -3,
+    }, {
     -67,  -8, -14, -11,   7,  11,  11,   9,   7,   3,
     -13, -16,  -8,  -9, -24,  12, -10,  13,   5,  17,
       2,   4,  -3,  10,  -6, -17,  -4, -19,   0, -11,
       6, -13,   9,  33,  14,  10, -16,  17,  10,   4,
+    }, {
     -71,  10,  -9,  17,   1,  20,   3,   8,  21,  18,
       6,  24,   0,  -1,   0, -16,  -6,   5,   0,  13,
      17,  19,  11,  29,  25, -11,  11,  -6,  13, -15,
      -7,  29,   0,   8, -11, -22, -20, -21, -17, -18,
+    }, {
     -49,  -2, -21,   0,  -1,   2,  -9,  -8,   6,   6,
       8,  10,   8,  -9,   2,   0,   4,   2,  13,  12,
      23,  15,  12,  16,  26, -21,  -2, -21,  11, -23,
       4,  33,   7,  33,   6, -13, -34,  -5, -27, -10,
+    }, {
     -82,   1,   4,  19,  -6,  27,   6,  29,  12,  26,
      -1,  24,   5,  18, -17, -17, -17,  -6, -10,   0,
       7,   2,   9,  16,  12, -11,   0, -11,   9, -23,
       0,   3,   8,   8,  13,   1,  -8,  -7,   7,  -6,
+    }, {
     -60, -10,  -7,   1,  -9,   8,  -6,  13,  -2,  15,
       1,  10,  13,  11, -15,   0,  -6,  -9,   1,   0,
      13,  -1,  11,   3,  13, -21, -13, -26,   7, -31,
      10,   7,  16,  33,  31,  10, -22,   8,  -1,   2,
+    }, {
      -3,   7,  -5,  -5,   8,  -2,  17,  -9,  18, -24,
      -2, -19, -10,  -4,  28,  17,   5,  28,  -2,   7,
      -4,  15,   7,   8,   6,  23,  13,  21, -14,  20,
     -17, -18, -11, -33, -30, -11,  23, -13,  -5,  -9,
+    }, {
      18,  -4, -17, -23,   4, -20,   4, -26,   3, -36,
       0, -32,  -2, -12,  29,  34,  16,  24,  10,   6,
       0,  12,   8,  -4,   8,  13,   0,   6, -16,  12,
      -5, -13,  -3,  -7, -13,  -3,   8,   2, -14,   0,
+    }, {
     -13,   0,   8,  -3,   0,   4,  21,  11,   9, -16,
     -10, -18,  -5,  16,  10,  16,  -5,  15, -13,  -5,
     -15,  -1,   6,  -4,  -6,  23,   2,  16, -17,  12,
     -10, -44,  -3, -33,  -6,  12,  34,   1,  20,   3,
+    }, {
       8, -12,  -3, -21,  -3, -14,   8,  -5,  -4, -28,
      -7, -32,   2,   8,  12,  34,   4,  12,  -1,  -6,
      -9,  -4,   7, -17,  -4,  13, -11,   1, -19,   4,
       0, -39,   4,  -7,  11,  21,  20,  16,  10,  11,
+    }, {
       4,   6,   0,   7,  -8,  -4,   0,  -6,   9, -13,
      11,   7,  11,  15,  37,   4,   9,   5,  -5, -11,
       5,   9,  22,   1,  27,  18,   4,  14,  -5,   0,
     -12,   3,  -4, -32, -14, -12,  17, -22, -17, -11,
+    }, {
      26,  -6, -11, -10, -12, -23, -12, -23,  -5, -24,
      13,  -5,  19,   8,  38,  21,  20,   2,   6, -12,
      11,   5,  23, -11,  29,   9,  -9,   0,  -7,  -6,
      -1,   7,   2,  -7,   3,  -3,   2,  -6, -27,  -3,
+    }, {
      -6,  -2,  14,   9, -16,   1,   3,  14,   0,  -5,
       3,   8,  16,  36,  19,   3,  -1,  -6, -17, -24,
      -4,  -7,  21, -11,  14,  18,  -7,   9,  -9,  -7,
      -6, -22,   3, -33,  10,  11,  28,  -7,   7,   0,
+    }, {
      16, -14,   2,  -8, -20, -17,  -9,  -2, -14, -16,
       6,  -5,  24,  28,  21,  20,   8,  -9,  -4, -25,
       1, -11,  22, -24,  15,   8, -21,  -5, -11, -14,
       5, -18,  11,  -7,  27,  20,  14,   7,  -1,   9,
+    }, {
     -16,  27,   2,  10,  13,  16,  20, -20,  29, -20,
     -14, -16, -13,  -8,   9,  13,  -2,  33,   9,  19,
      17,  23,  17,  22,   6,   6,  -9,  -2, -12,  -2,
     -20, -13, -13, -10, -45,  -4,  16,  -8,  -2,  -7,
+    }, {
       5,  15,  -9,  -7,   9,  -2,   8, -37,  14, -31,
     -11, -29,  -5, -16,  11,  30,   7,  29,  21,  18,
      23,  19,  18,   9,   7,  -3, -23, -17, -14,  -9,
      -8,  -9,  -6,  15, -27,   4,   2,   6, -12,   1,
+    }, {
     -26,  19,  15,  12,   5,  22,  24,   0,  21, -12,
     -21, -15,  -8,  11,  -7,  12, -14,  20,  -2,   6,
       7,   6,  16,   9,  -6,   5, -21,  -7, -15, -10,
     -13, -39,  -5, -10, -20,  19,  28,   5,  22,   5,
+    }, {
      -4,   6,   3,  -5,   1,   4,  11, -16,   6, -23,
     -19, -29,   0,   3,  -6,  30,  -3,  17,  10,   5,
      13,   2,  17,  -3,  -5,  -3, -35, -21, -17, -17,
      -2, -35,   2,  15,  -3,  28,  13,  21,  13,  13,
+    }, {
      -8,  25,   8,  23,  -3,  13,   3, -17,  20,  -8,
       0,  10,   8,  11,  18,   0,   1,  10,   5,   0,
      28,  17,  32,  15,  26,   1, -19,  -9,  -3, -21,
     -15,   7,  -6,  -9, -29,  -5,  10, -17, -15,  -9,
+    }, {
      13,  13,  -3,   5,  -7,  -4,  -9, -34,   5, -20,
       2,  -3,  16,   3,  20,  17,  11,   7,  17,   0,
      34,  13,  33,   2,  28,  -8, -32, -24,  -5, -29,
      -3,  12,   0,  15, -11,   3,  -3,  -2, -24,  -1,
+    }, {
     -18,  17,  21,  25, -11,  19,   6,   3,  11,   0,
      -7,  11,  13,  31,   1,   0,  -9,  -1,  -5, -12,
      18,   0,  31,   2,  13,   1, -30, -14,  -7, -29,
      -9, -18,   1, -10,  -4,  18,  22,  -3,  10,   2,
+    }, {
       3,   5,   9,   7, -15,   1,  -5, -13,  -2, -12,
      -5,  -2,  21,  23,   2,  16,   0,  -5,   6, -13,
      23,  -3,  32, -10,  15,  -8, -44, -28,  -9, -37,
       2, -13,   9,  15,  12,  27,   7,  12,   0,  11,
+    }, {
     -44,   6, -30,  -8,   9,  10,  11,  14,  23,  -5,
       8,  -4,  14, -12,  37,  14,  12,  26,   4,  16,
      -8,  16,  -9,   7,  -6,  19,  12,  25,  -5,  24,
     -15, -13,  -8, -36, -34, -31,  -1, -18,  -4, -18,
+    }, {
     -22,  -5, -42, -26,   6,  -8,  -1,  -2,   9, -17,
      10, -18,  21, -19,  39,  31,  23,  23,  16,  15,
      -2,  12,  -7,  -6,  -5,   9,  -1,  10,  -7,  16,
      -4,  -9,   0, -10, -17, -22, -16,  -2, -14,  -9,
+    }, {
     -55,  -1, -17,  -6,   1,  16,  15,  35,  15,   2,
       0,  -4,  19,   8,  20,  13,   1,  14,  -7,   3,
     -18,   0, -10,  -5, -19,  19,   0,  21,  -8,  16,
      -9, -39,   0, -36, -10,  -7,   9,  -4,  20,  -5,
+    }, {
     -33, -13, -29, -24,  -1,  -1,   2,  18,   0,  -9,
       3, -17,  27,   0,  21,  30,  12,  11,   5,   2,
     -12,  -4,  -9, -19, -18,   9, -13,   6, -11,   8,
       2, -35,   8, -10,   7,   1,  -4,  11,  10,   2,
+    }, {
     -36,   5, -24,   4,  -7,   7,  -6,  17,  14,   5,
      22,  22,  35,   8,  46,   1,  17,   3,   0,  -2,
       2,  10,   5,   0,  14,  15,   2,  18,   2,   4,
     -11,   7,  -1, -36, -18, -32,  -7, -27, -17, -20,
+    }, {
     -14,  -7, -36, -13, -10, -10, -18,   0,   0,  -5,
      25,   8,  43,   0,  48,  18,  27,   0,  12,  -3,
       7,   6,   7, -13,  15,   5, -11,   3,   0,  -2,
       0,  12,   6, -10,   0, -23, -22, -11, -26, -12,
+    }, {
     -47,  -3, -11,   6, -15,  13,  -2,  38,   6,  13,
      15,  22,  40,  28,  28,   0,   5,  -8, -10, -15,
      -7,  -7,   4, -13,   1,  14,  -9,  14,   0,  -2,
      -4, -18,   7, -36,   6,  -8,   3, -13,   7,  -8,
+    }, {
     -25, -15, -22, -11, -18,  -4, -15,  22,  -8,   2,
      17,   9,  48,  20,  30,  17,  16, -11,   1, -16,
      -2, -10,   5, -26,   2,   4, -22,   0,  -2, -10,
       6, -13,  14, -10,  23,   0, -10,   2,  -1,   0,
+    }, {
     -57,  26, -22,   7,  14,  28,  14,   3,  35,   0,
      -3,  -1,  11, -16,  18,  10,   4,  31,  15,  28,
      14,  23,   1,  21,  -7,   2, -11,   1,  -3,   1,
     -18,  -9, -10, -13, -49, -24,  -8, -14,  -2, -16,
+    }, {
     -35,  14, -34, -10,  10,  10,   1, -12,  20, -12,
       0, -15,  18, -24,  20,  27,  14,  28,  27,  27,
      20,  19,   2,   8,  -5,  -7, -25, -13,  -5,  -5,
      -6,  -5,  -2,  12, -31, -15, -23,   1, -12,  -8,
+    }, {
     -68,  18,  -9,   9,   6,  35,  18,  25,  26,   7,
     -10,  -1,  16,   3,   1,   9,  -6,  19,   4,  15,
       4,   6,   0,   8, -20,   2, -23,  -2,  -7,  -5,
     -12, -35,  -1, -13, -24,   0,   3,   0,  22,  -4,
+    }, {
     -46,   6, -21,  -8,   2,  16,   5,   8,  11,  -4,
      -8, -15,  24,  -4,   2,  26,   3,  16,  16,  14,
       9,   2,   1,  -4, -19,  -7, -36, -17,  -9, -13,
       0, -31,   5,  12,  -7,   8, -11,  15,  13,   4,
+    }, {
     -49,  24, -16,  20,  -2,  26,  -2,   7,  25,  10,
      11,  25,  32,   3,  27,  -2,   8,   8,  11,   9,
      24,  17,  16,  14,  13,  -2, -20,  -5,   4, -17,
     -14,  12,  -3, -13, -33, -25, -14, -23, -15, -19,
+    }, {
     -27,  12, -28,   2,  -6,   7, -15,  -9,  11,  -1,
      13,  11,  40,  -4,  29,  14,  19,   5,  23,   8,
      30,  13,  17,   0,  14, -12, -34, -20,   2, -25,
      -2,  16,   4,  12, -15, -16, -29,  -7, -24, -10,
+    }, {
     -60,  16,  -3,  22, -10,  32,   0,  28,  17,  18,
       3,  25,  37,  23,  10,  -3,  -2,  -3,   0,  -3,
      14,   0,  14,   1,   0,  -2, -32,  -9,   1, -25,
      -7, -13,   5, -13,  -8,  -1,  -2,  -8,  10,  -6,
+    }, {
     -38,   4, -15,   4, -14,  13, -12,  11,   2,   6,
       6,  11,  45,  16,  11,  13,   7,  -6,  12,  -4,
      20,  -3,  16, -12,   1, -12, -46, -24,   0, -33,
       3,  -9,  12,  12,   8,   7, -17,   6,   0,   2
+    }
 };
 
-static const signed short etable2[5120]={
+static const int8_t cb2_vects[128][40]={
+    {
      73, -32, -60, -15, -26,  59,   2, -33,  30, -10,
      -3, -17,   8,  30,  -1, -26,  -4, -22,  10,  16,
     -36,  -5, -11,  56,  37,   6, -10,  -5, -13,  -3,
       6,  -5,  11,   4, -19,  -5, -16,  41,  24,  13,
+    }, {
       4, -11, -37,  23,  -5,  46,  -2, -29,  -5, -39,
     -21,  -9,   0,  49,  12,  -9, -16, -26,  22,  15,
     -45, -20,  -5,  40,  22,  17, -26,  31, -14,   2,
     -14,  10,  30,  20, -27,  -9, -39,  39,  18,   5,
+    }, {
      34, -25, -48, -28, -11,  34,  -2, -41,   9,  -7,
     -17,  21,  20,  24, -17, -33,   0, -24,  10,  42,
       3,  -5,  10,  42,  11,   8,  -3,   3,  16,   9,
      22,  -2,   0, -33, -10,  18,   7,  58,  10,  28,
+    }, {
     -34,  -4, -25,  10,   9,  21,  -7, -36, -26, -36,
     -35,  28,  12,  42,  -3, -16, -12, -28,  21,  42,
      -5, -21,  16,  26,  -4,  19, -19,  39,  15,  15,
       1,  13,  19, -17, -17,  14, -15,  55,   4,  19,
+    }, {
      28, -20, -51, -14,  -6,   7,   0, -26,  27,  -4,
      18, -40,  -6,  16,  -1, -15,   0, -55,  -5, -16,
     -19,  14,  -3,  49,  14,   1, -22, -30, -12,   0,
      24,  15,   9, -17, -45, -29,   4,  28,  51,  35,
+    }, {
     -40,   0, -28,  24,  14,  -5,  -4, -21,  -7, -33,
       0, -32, -15,  35,  12,   1, -11, -58,   5, -16,
     -28,   0,   1,  33,   0,  11, -39,   5, -14,   6,
       3,  31,  28,  -1, -53, -33, -19,  25,  46,  26,
+    }, {
     -11, -14, -39, -27,   9, -17,  -4, -33,   6,   0,
       4,  -1,   5,  10, -17, -22,   5, -57,  -5,   9,
      20,  13,  18,  35, -11,   3, -16, -22,  17,  13,
      40,  19,  -1, -55, -35,  -5,  27,  44,  37,  49,
+    }, {
     -80,   6, -16,  11,  30, -30,  -9, -28, -28, -29,
     -13,   6,  -2,  28,  -3,  -5,  -7, -60,   5,   9,
      11,  -1,  24,  19, -27,  13, -32,  13,  15,  19,
      19,  35,  17, -39, -43,  -9,   4,  42,  32,  41,
+    }, {
      78, -21, -43,   4, -38,  17,  17,  -5,  55,  24,
     -15, -36,  14,   4,  24, -24,  12,   5,  17,  31,
     -54,  -5,  -2,  27,  43, -12,   2,   9,  -9, -15,
      22,  -3,  28,  21, -20,   3,  20,  28,   9,  -5,
+    }, {
       9,  -1, -20,  43, -17,   3,  12,   0,  20,  -4,
     -33, -29,   6,  22,  38,  -7,   0,   1,  29,  30,
     -63, -21,   3,  11,  27,  -1, -14,  45, -10,  -9,
       1,  12,  47,  37, -28,   0,  -2,  26,   4, -13,
+    }, {
      39, -14, -30,  -8, -22,  -8,  12, -12,  34,  27,
     -29,   2,  26,  -2,   8, -31,  16,   3,  17,  57,
     -14,  -6,  19,  13,  16, -10,   8,  17,  20,  -2,
      38,   0,  17, -16, -11,  27,  44,  45,  -4,   8,
+    }, {
     -29,   5,  -7,  30,  -1, -21,   7,  -7,   0,   0,
     -47,   9,  18,  15,  22, -14,   4,   0,  28,  57,
     -23, -21,  25,  -2,   1,   0,  -7,  53,  19,   3,
      17,  15,  36,   0, -19,  24,  21,  43,  -9,   0,
+    }, {
      33, -10, -34,   5, -17, -35,  15,   1,  53,  30,
       6, -59,   0, -10,  24, -13,  17, -27,   1,  -1,
     -37,  13,   4,  20,  20, -18, -10, -16,  -8, -11,
      39,  18,  26,   0, -46, -20,  41,  15,  37,  15,
+    }, {
     -35,  10, -11,  44,   3, -48,  10,   6,  17,   2,
     -11, -51,  -8,   8,  38,   3,   4, -31,  12,  -2,
     -46,  -1,  10,   4,   5,  -7, -26,  19, -10,  -5,
      18,  34,  45,  15, -54, -24,  18,  13,  31,   7,
+    }, {
      -5,  -3, -21,  -7,  -2, -60,  10,  -5,  32,  34,
      -7, -20,  11, -16,   8, -20,  21, -29,   1,  24,
       2,  13,  27,   6,  -5, -15,  -3,  -8,  21,   1,
      55,  21,  15, -38, -37,   3,  65,  32,  23,  30,
+    }, {
     -74,  17,   0,  31,  18, -73,   5,   0,  -3,   5,
     -25, -12,   3,   1,  22,  -3,   9, -33,  12,  24,
      -6,  -2,  33,  -9, -21,  -5, -20,  27,  19,   7,
      34,  37,  34, -22, -44,   0,  41,  29,  17,  21,
+    }, {
      76, -35, -31, -28, -49,  43, -40,   0,  29, -14,
       8,   5,  10,  18, -26, -46,   0,   7,   6,   3,
     -25,  -7,  -2,  40,  28,  14,  18,  -3, -27, -28,
      -8, -45, -13,  34, -13, -27, -15,  31,  12,   3,
+    }, {
       7, -15,  -9,   9, -28,  29, -45,   5,  -6, -43,
      -9,  12,   2,  36, -12, -30, -11,   3,  17,   3,
     -34, -22,   3,  24,  12,  24,   2,  32, -28, -22,
     -29, -29,   5,  50, -21, -31, -38,  29,   7,  -5,
+    }, {
      36, -29, -19, -41, -34,  18, -45,  -6,   8, -10,
      -5,  43,  23,  11, -42, -53,   5,   5,   6,  30,
      14,  -8,  20,  26,   1,  16,  25,   4,   3, -15,
       7, -41, -23,  -3,  -4,  -3,   8,  48,  -1,  17,
+    }, {
     -32,  -8,   3,  -2, -13,   4, -50,  -1, -27, -39,
     -23,  51,  15,  30, -27, -37,  -7,   1,  17,  29,
       5, -23,  25,  10, -14,  26,   8,  41,   1,  -9,
     -13, -26,  -5,  12, -12,  -7, -14,  45,  -6,   9,
+    }, {
      31, -24, -23, -27, -29,  -9, -43,   8,  26,  -7,
      30, -17,  -4,   3, -26, -35,   5, -24, -10, -28,
      -9,  12,   5,  33,   5,   8,   5, -29, -26, -24,
       9, -23, -14,  12, -39, -52,   5,  18,  39,  24,
+    }, {
     -37,  -3,   0,  10,  -7, -22, -48,  12,  -8, -36,
      12,  -9, -12,  22, -12, -19,  -6, -28,   0, -29,
     -18,  -3,  11,  17, -10,  18, -10,   7, -27, -18,
     -11,  -7,   3,  28, -47, -55, -18,  15,  34,  16,
+    }, {
      -8, -17, -10, -40, -13, -34, -47,   0,   5,  -4,
      16,  21,   8,  -2, -42, -43,  10, -26, -10,  -2,
      31,  11,  27,  19, -21,  10,  12, -20,   3, -11,
      25, -20, -25, -25, -29, -28,  28,  34,  25,  38,
+    }, {
     -77,   2,  11,  -1,   7, -47, -52,   5, -29, -33,
      -1,  28,   0,  15, -28, -26,  -2, -30,   0,  -2,
      22,  -4,  33,   3, -36,  21,  -3,  15,   2,  -5,
       4,  -4,  -6,  -9, -37, -31,   5,  32,  20,  30,
+    }, {
      81, -25, -14,  -8, -61,   0, -25,  28,  54,  20,
      -3, -14,  17,  -8,   0, -44,  16,  35,  13,  18,
     -43,  -7,   6,  11,  33,  -4,  30,  11, -22, -40,
       6, -43,   3,  50, -14, -18,  22,  18,  -1, -16,
+    }, {
      12,  -4,   8,  29, -39, -12, -30,  33,  19,  -8,
     -21,  -6,   8,   9,  13, -28,   4,  31,  24,  18,
     -52, -23,  12,  -4,  18,   5,  14,  47, -24, -34,
     -14, -27,  22,  66, -22, -22,  -1,  16,  -6, -24,
+    }, {
      41, -18,  -2, -21, -45, -24, -30,  21,  33,  24,
     -17,  24,  29, -15, -16, -51,  21,  33,  13,  45,
      -3,  -8,  28,  -2,   7,  -2,  37,  19,   7, -27,
      22, -39,  -7,  12,  -5,   5,  45,  35, -15,  -1,
+    }, {
     -27,   1,  20,  17, -24, -38, -35,  26,  -1,  -4,
     -35,  32,  21,   3,  -2, -35,   8,  29,  24,  44,
     -12, -24,  34, -18,  -8,   7,  21,  55,   5, -21,
       2, -23,  11,  28, -13,   1,  22,  33, -21, -10,
+    }, {
      36, -13,  -5,  -7, -40, -51, -28,  36,  52,  27,
      18, -36,   2, -22,   0, -33,  21,   2,  -3, -13,
     -26,  11,  14,   4,  10, -10,  18, -14, -22, -36,
      24, -21,   1,  28, -40, -42,  42,   5,  25,   5,
+    }, {
     -32,   6,  17,  31, -19, -65, -33,  41,  16,  -1,
       0, -29,  -6,  -4,  13, -17,   9,  -1,   8, -14,
     -35,  -3,  19, -11,  -4,   0,   1,  21, -23, -30,
       3,  -5,  20,  44, -48, -46,  19,   3,  20,  -3,
+    }, {
      -3,  -7,   6, -20, -25, -77, -32,  29,  31,  30,
       4,   2,  14, -29, -16, -40,  26,   0,  -3,  12,
      13,  10,  36,  -9, -15,  -8,  24,  -6,   7, -22,
      40, -17,  -8,  -9, -31, -18,  66,  22,  11,  19,
+    }, {
     -72,  13,  29,  18,  -4, -90, -37,  34,  -4,   1,
     -13,   9,   6, -11,  -2, -24,  13,  -3,   7,  11,
       4,  -4,  42, -25, -31,   1,   8,  29,   6, -17,
      19,  -2,  10,   6, -38, -22,  42,  19,   6,  11,
+    }, {
     116, -20, -68, -30, -28,  83,  28, -18,  32, -22,
     -13, -21,   5,  28,   5,  -7, -24,  -8, -22,  17,
     -23,  30, -25,  45,  15,  -9, -11, -18,  22, -10,
       4,  -2,  19, -12,  23,   3, -43,   2,  12,  -4,
+    }, {
      47,   0, -45,   7,  -7,  69,  23, -13,  -2, -51,
     -32, -14,  -3,  47,  19,   8, -37, -11, -10,  16,
     -32,  15, -19,  29,   0,   1, -28,  18,  20,  -4,
     -16,  13,  38,   3,  15,   0, -66,   0,   7, -13,
+    }, {
      77, -13, -56, -43, -13,  57,  23, -26,  11, -19,
     -27,  16,  17,  22, -10, -15, -19, -10, -22,  43,
      16,  30,  -2,  31, -11,  -6,  -5,  -9,  52,   2,
      20,   0,   8, -50,  33,  27, -19,  19,  -1,   9,
+    }, {
       8,   6, -33,  -4,   7,  44,  18, -21, -23, -48,
     -46,  24,   9,  40,   3,   1, -32, -13, -11,  43,
       7,  14,   3,  15, -26,   3, -21,  26,  50,   8,
       0,  16,  27, -34,  25,  23, -43,  17,  -6,   1,
+    }, {
      71,  -9, -59, -29,  -8,  30,  26, -11,  30, -16,
       8, -44,  -9,  14,   5,   2, -19, -40, -38, -15,
      -7,  50, -17,  38,  -7, -14, -24, -43,  22,  -6,
      22,  19,  17, -34,  -2, -20, -23, -10,  39,  16,
+    }, {
       2,  11, -36,   9,  13,  17,  21,  -6,  -5, -45,
     -10, -36, -18,  33,  19,  19, -31, -44, -27, -15,
     -16,  34, -11,  22, -22,  -4, -40,  -7,  21,   0,
       1,  35,  36, -18, -10, -24, -46, -12,  34,   8,
+    }, {
      32,  -2, -47, -42,   7,   5,  21, -18,   9, -12,
      -5,  -5,   2,   8, -10,  -4, -14, -42, -38,  10,
      33,  49,   5,  24, -33, -12, -17, -35,  52,   6,
      38,  22,   7, -72,   7,   3,   0,   6,  25,  30,
+    }, {
     -36,  18, -24,  -3,  28,  -7,  16, -13, -26, -41,
     -24,   1,  -5,  26,   3,  12, -27, -46, -27,  10,
      24,  34,  10,   8, -49,  -2, -34,   0,  51,  12,
      17,  38,  25, -56,   0,   0, -22,   3,  20,  22,
+    }, {
     121,  -9, -50, -10, -40,  40,  43,   9,  58,  12,
     -25, -41,  11,   2,  31,  -5,  -8,  19, -15,  32,
     -41,  30, -16,  16,  20, -28,   0,  -3,  26, -22,
      19,   0,  36,   4,  22,  12,  -6,  -9,  -1, -24,
+    }, {
      52,  10, -27,  27, -18,  26,  38,  14,  23, -16,
     -44, -33,   3,  20,  45,  10, -20,  15,  -3,  31,
     -50,  14, -10,   0,   5, -17, -15,  32,  24, -16,
      -1,  15,  55,  20,  14,   8, -29, -12,  -7, -32,
+    }, {
      82,  -3, -38, -23, -24,  15,  38,   2,  37,  15,
     -39,  -2,  23,  -4,  15, -12,  -3,  17, -15,  58,
      -1,  29,   6,   2,  -5, -26,   7,   4,  56,  -9,
      35,   3,  25, -33,  32,  36,  17,   7, -15,  -9,
+    }, {
      13,  17, -15,  15,  -3,   1,  33,   7,   1, -12,
     -58,   5,  15,  13,  29,   3, -16,  13,  -4,  57,
     -10,  13,  11, -13, -21, -15,  -9,  40,  55,  -3,
      14,  19,  44, -17,  24,  32,  -5,   4, -21, -18,
+    }, {
      76,   1, -41,  -9, -19, -12,  41,  17,  55,  18,
      -3, -63,  -3, -12,  30,   5,  -3, -12, -31,   0,
     -24,  49,  -8,   9,  -1, -33, -12, -29,  27, -18,
      37,  21,  34, -17,  -3, -11,  14, -23,  25,  -2,
+    }, {
       7,  22, -18,  29,   1, -25,  36,  21,  20,  -9,
     -22, -56, -11,   6,  45,  21, -15, -16, -20,  -1,
     -33,  34,  -2,  -6, -17, -23, -28,   6,  25, -12,
      16,  37,  53,  -1, -11, -15,  -8, -25,  20, -11,
+    }, {
      37,   8, -29, -22,  -4, -37,  36,   9,  34,  22,
     -17, -24,   8, -18,  15,  -2,   1, -14, -31,  25,
      15,  48,  13,  -4, -28, -31,  -5, -21,  57,  -4,
      53,  24,  23, -55,   6,  12,  37,  -6,  11,  11,
+    }, {
     -31,  28,  -6,  16,  16, -50,  31,  14,   0,  -6,
     -36, -17,   0,   0,  29,  14, -11, -18, -20,  25,
       6,  33,  19, -20, -43, -21, -21,  14,  55,   0,
      32,  40,  42, -39,  -1,   8,  14,  -8,   6,   3,
+    }, {
     119, -24, -39, -44, -51,  66, -14,  15,  31, -26,
      -1,   0,   7,  16, -19, -28, -19,  22, -26,   4,
     -13,  28, -16,  29,   5,  -1,  16, -16,   8, -35,
     -10, -42,  -4,  17,  29, -19, -42,  -7,   0, -15,
+    }, {
      50,  -3, -16,  -5, -30,  53, -19,  20,  -3, -55,
     -19,   8,   0,  34,  -5, -11, -32,  18, -15,   4,
     -22,  13, -10,  13,  -9,   8,   0,  19,   7, -29,
     -31, -26,  13,  33,  21, -22, -65,  -9,  -4, -23,
+    }, {
      79, -17, -27, -56, -36,  41, -19,   8,  10, -22,
     -15,  39,  20,   9, -35, -35, -15,  20, -26,  31,
      26,  27,   6,  15, -20,   0,  23,  -8,  38, -22,
       5, -38, -15, -20,  39,   4, -18,   9, -13,  -1,
+    }, {
      10,   3,  -4, -18, -15,  27, -24,  13, -24, -51,
     -34,  47,  12,  28, -21, -19, -27,  16, -15,  30,
      17,  12,  12,   0, -36,  10,   7,  27,  37, -16,
     -15, -22,   3,  -4,  31,   1, -42,   7, -18,  -9,
+    }, {
      74, -12, -30, -42, -30,  14, -16,  23,  29, -19,
      20, -21,  -7,   1, -19, -17, -14, -10, -43, -27,
       3,  48,  -8,  22, -16,  -7,   4, -42,   9, -31,
       6, -20,  -6,  -4,   3, -43, -22, -20,  28,   5,
+    }, {
       5,   7,  -7,  -4,  -9,   0, -21,  28,  -6, -48,
       2, -14, -15,  20,  -5,   0, -27, -14, -32, -28,
      -5,  32,  -2,   6, -32,   3, -12,  -5,   8, -25,
     -14,  -4,  12,  11,  -4, -47, -45, -22,  22,  -2,
+    }, {
      34,  -6, -18, -55, -15, -11, -21,  16,   8, -16,
       6,  16,   5,  -4, -35, -24, -10, -12, -43,  -1,
      43,  47,  14,   8, -43,  -5,  10, -34,  39, -18,
      22, -16, -17, -42,  13, -19,   1,  -3,  14,  20,
+    }, {
     -34,  14,   4, -17,   5, -24, -26,  20, -27, -45,
     -12,  24,  -2,  13, -21,  -8, -22, -16, -32,  -2,
      34,  31,  20,  -7, -58,   5,  -5,   2,  38, -12,
       2,  -1,   1, -26,   5, -23, -21,  -6,   8,  11,
+    }, {
     124, -13, -21, -23, -62,  23,   0,  43,  57,   8,
     -13, -18,  14, -10,   6, -26,  -3,  49, -19,  19,
     -31,  27,  -7,   0,  11, -20,  29,  -1,  12, -47,
       4, -39,  11,  34,  28,  -9,  -5, -19, -13, -34,
+    }, {
      55,   6,   1,  14, -41,  10,  -4,  48,  22, -20,
     -31, -10,   5,   7,  20,  -9, -16,  45,  -8,  19,
     -40,  12,  -1, -15,  -4, -10,  12,  34,  11, -41,
     -16, -24,  30,  49,  20, -13, -28, -22, -18, -43,
+    }, {
      84,  -6,  -9, -36, -47,  -1,  -4,  36,  36,  12,
     -27,  20,  26, -17,  -9, -33,   1,  47, -19,  46,
       9,  27,  15, -13, -15, -18,  35,   6,  42, -33,
      20, -36,   1,  -4,  38,  14,  18,  -2, -27, -20,
+    }, {
      15,  13,  13,   1, -26, -14,  -9,  41,   1, -16,
     -46,  27,  18,   1,   4, -16, -11,  43,  -8,  45,
       0,  11,  21, -29, -30,  -8,  19,  42,  41, -28,
       0, -20,  20,  11,  30,  10,  -4,  -5, -32, -28,
+    }, {
      79,  -2, -12, -22, -42, -28,  -1,  51,  54,  15,
       8, -41,   0, -24,   6, -15,   1,  17, -36, -12,
     -14,  47,   0,  -6, -11, -26,  16, -27,  13, -43,
      22, -18,  10,  12,   2, -34,  15, -33,  13, -13,
+    }, {
      10,  18,  10,  15, -21, -41,  -6,  56,  19, -13,
      -9, -33,  -9,  -6,  20,   1, -11,  13, -24, -13,
     -23,  32,   6, -22, -26, -15,   0,   8,  12, -37,
       1,  -2,  28,  27,  -5, -37,  -7, -35,   8, -21,
+    }, {
      39,   4,   0, -35, -27, -53,  -6,  44,  33,  18,
      -5,  -2,  11, -31,  -9, -22,   6,  15, -36,  13,
      25,  46,  23, -20, -37, -24,  23, -19,  43, -29,
      38, -14,   0, -26,  12, -10,  38, -16,   0,   0,
+    }, {
     -29,  25,  22,   2,  -6, -67, -11,  49,  -1, -10,
     -24,   5,   3, -13,   4,  -5,  -6,  11, -25,  12,
      16,  31,  28, -36, -53, -13,   6,  16,  42, -24,
      17,   1,  18, -10,   4, -13,  15, -18,  -5,  -7,
+    }, {
      29, -25, -22,  -2,   6,  67,  11, -49,   1,  10,
      24,  -5,  -3,  13,  -4,   5,   6, -11,  25, -12,
     -16, -31, -28,  36,  53,  13,  -6, -16, -42,  24,
     -17,  -1, -18,  10,  -4,  13, -15,  18,   5,   7,
+    }, {
     -39,  -4,   0,  35,  27,  53,   6, -44, -33, -18,
       5,   2, -11,  31,   9,  22,  -6, -15,  36, -13,
     -25, -46, -23,  20,  37,  24, -23,  19, -43,  29,
     -38,  14,   0,  26, -12,  10, -38,  16,   0,   0,
+    }, {
     -10, -18, -10, -15,  21,  41,   6, -56, -19,  13,
       9,  33,   9,   6, -20,  -1,  11, -13,  24,  13,
      23, -32,  -6,  22,  26,  15,   0,  -8, -12,  37,
      -1,   2, -28, -27,   5,  37,   7,  35,  -8,  21,
+    }, {
     -79,   2,  12,  22,  42,  28,   1, -51, -54, -15,
      -8,  41,   0,  24,  -6,  15,  -1, -17,  36,  12,
      14, -47,   0,   6,  11,  26, -16,  27, -13,  43,
     -22,  18, -10, -12,  -2,  34, -15,  33, -13,  13,
+    }, {
     -15, -13, -13,  -1,  26,  14,   9, -41,  -1,  16,
      46, -27, -18,  -1,  -4,  16,  11, -43,   8, -45,
       0, -11, -21,  29,  30,   8, -19, -42, -41,  28,
       0,  20, -20, -11, -30, -10,   4,   5,  32,  28,
+    }, {
     -84,   6,   9,  36,  47,   1,   4, -36, -36, -12,
      27, -20, -26,  17,   9,  33,  -1, -47,  19, -46,
      -9, -27, -15,  13,  15,  18, -35,  -6, -42,  33,
     -20,  36,  -1,   4, -38, -14, -18,   2,  27,  20,
+    }, {
     -55,  -6,  -1, -14,  41, -10,   4, -48, -22,  20,
      31,  10,  -5,  -7, -20,   9,  16, -45,   8, -19,
      40, -12,   1,  15,   4,  10, -12, -34, -11,  41,
      16,  24, -30, -49, -20,  13,  28,  22,  18,  43,
+    }, {
    -124,  13,  21,  23,  62, -23,   0, -43, -57,  -8,
      13,  18, -14,  10,  -6,  26,   3, -49,  19, -19,
      31, -27,   7,   0, -11,  20, -29,   1, -12,  47,
      -4,  39, -11, -34, -28,   9,   5,  19,  13,  34,
+    }, {
      34, -14,  -4,  17,  -5,  24,  26, -20,  27,  45,
      12, -24,   2, -13,  21,   8,  22,  16,  32,   2,
     -34, -31, -20,   7,  58,  -5,   5,  -2, -38,  12,
      -2,   1,  -1,  26,  -5,  23,  21,   6,  -8, -11,
+    }, {
     -34,   6,  18,  55,  15,  11,  21, -16,  -8,  16,
      -6, -16,  -5,   4,  35,  24,  10,  12,  43,   1,
     -43, -47, -14,  -8,  43,   5, -10,  34, -39,  18,
     -22,  16,  17,  42, -13,  19,  -1,   3, -14, -20,
+    }, {
      -5,  -7,   7,   4,   9,   0,  21, -28,   6,  48,
      -2,  14,  15, -20,   5,   0,  27,  14,  32,  28,
       5, -32,   2,  -6,  32,  -3,  12,   5,  -8,  25,
      14,   4, -12, -11,   4,  47,  45,  22, -22,   2,
+    }, {
     -74,  12,  30,  42,  30, -14,  16, -23, -29,  19,
     -20,  21,   7,  -1,  19,  17,  14,  10,  43,  27,
      -3, -48,   8, -22,  16,   7,  -4,  42,  -9,  31,
      -6,  20,   6,   4,  -3,  43,  22,  20, -28,  -5,
+    }, {
     -10,  -3,   4,  18,  15, -27,  24, -13,  24,  51,
      34, -47, -12, -28,  21,  19,  27, -16,  15, -30,
     -17, -12, -12,   0,  36, -10,  -7, -27, -37,  16,
      15,  22,  -3,   4, -31,  -1,  42,  -7,  18,   9,
+    }, {
     -79,  17,  27,  56,  36, -41,  19,  -8, -10,  22,
      15, -39, -20,  -9,  35,  35,  15, -20,  26, -31,
     -26, -27,  -6, -15,  20,   0, -23,   8, -38,  22,
      -5,  38,  15,  20, -39,  -4,  18,  -9,  13,   1,
+    }, {
     -50,   3,  16,   5,  30, -53,  19, -20,   3,  55,
      19,  -8,   0, -34,   5,  11,  32, -18,  15,  -4,
      22, -13,  10, -13,   9,  -8,   0, -19,  -7,  29,
      31,  26, -13, -33, -21,  22,  65,   9,   4,  23,
+    }, {
    -119,  24,  39,  44,  51, -66,  14, -15, -31,  26,
       1,   0,  -7, -16,  19,  28,  19, -22,  26,  -4,
      13, -28,  16, -29,  -5,   1, -16,  16,  -8,  35,
      10,  42,   4, -17, -29,  19,  42,   7,   0,  15,
+    }, {
      31, -28,   6, -16, -16,  50, -31, -14,   0,   6,
      36,  17,   0,   0, -29, -14,  11,  18,  20, -25,
      -6, -33, -19,  20,  43,  21,  21, -14, -55,   0,
     -32, -40, -42,  39,   1,  -8, -14,   8,  -6,  -3,
+    }, {
     -37,  -8,  29,  22,   4,  37, -36,  -9, -34, -22,
      17,  24,  -8,  18, -15,   2,  -1,  14,  31, -25,
     -15, -48, -13,   4,  28,  31,   5,  21, -57,   4,
     -53, -24, -23,  55,  -6, -12, -37,   6, -11, -11,
+    }, {
      -7, -22,  18, -29,  -1,  25, -36, -21, -20,   9,
      22,  56,  11,  -6, -45, -21,  15,  16,  20,   1,
      33, -34,   2,   6,  17,  23,  28,  -6, -25,  12,
     -16, -37, -53,   1,  11,  15,   8,  25, -20,  11,
+    }, {
     -76,  -1,  41,   9,  19,  12, -41, -17, -55, -18,
       3,  63,   3,  12, -30,  -5,   3,  12,  31,   0,
      24, -49,   8,  -9,   1,  33,  12,  29, -27,  18,
     -37, -21, -34,  17,   3,  11, -14,  23, -25,   2,
+    }, {
     -13, -17,  15, -15,   3,  -1, -33,  -7,  -1,  12,
      58,  -5, -15, -13, -29,  -3,  16, -13,   4, -57,
      10, -13, -11,  13,  21,  15,   9, -40, -55,   3,
     -14, -19, -44,  17, -24, -32,   5,  -4,  21,  18,
+    }, {
     -82,   3,  38,  23,  24, -15, -38,  -2, -37, -15,
      39,   2, -23,   4, -15,  12,   3, -17,  15, -58,
       1, -29,  -6,  -2,   5,  26,  -7,  -4, -56,   9,
     -35,  -3, -25,  33, -32, -36, -17,  -7,  15,   9,
+    }, {
     -52, -10,  27, -27,  18, -26, -38, -14, -23,  16,
      44,  33,  -3, -20, -45, -10,  20, -15,   3, -31,
      50, -14,  10,   0,  -5,  17,  15, -32, -24,  16,
       1, -15, -55, -20, -14,  -8,  29,  12,   7,  32,
+    }, {
    -121,   9,  50,  10,  40, -40, -43,  -9, -58, -12,
      25,  41, -11,  -2, -31,   5,   8, -19,  15, -32,
      41, -30,  16, -16, -20,  28,   0,   3, -26,  22,
     -19,   0, -36,  -4, -22, -12,   6,   9,   1,  24,
+    }, {
      36, -18,  24,   3, -28,   7, -16,  13,  26,  41,
      24,  -1,   5, -26,  -3, -12,  27,  46,  27, -10,
     -24, -34, -10,  -8,  49,   2,  34,   0, -51, -12,
     -17, -38, -25,  56,   0,   0,  22,  -3, -20, -22,
+    }, {
     -32,   2,  47,  42,  -7,  -5, -21,  18,  -9,  12,
       5,   5,  -2,  -8,  10,   4,  14,  42,  38, -10,
     -33, -49,  -5, -24,  33,  12,  17,  35, -52,  -6,
     -38, -22,  -7,  72,  -7,  -3,   0,  -6, -25, -30,
+    }, {
      -2, -11,  36,  -9, -13, -17, -21,   6,   5,  45,
      10,  36,  18, -33, -19, -19,  31,  44,  27,  15,
      16, -34,  11, -22,  22,   4,  40,   7, -21,   0,
      -1, -35, -36,  18,  10,  24,  46,  12, -34,  -8,
+    }, {
     -71,   9,  59,  29,   8, -30, -26,  11, -30,  16,
      -8,  44,   9, -14,  -5,  -2,  19,  40,  38,  15,
       7, -50,  17, -38,   7,  14,  24,  43, -22,   6,
     -22, -19, -17,  34,   2,  20,  23,  10, -39, -16,
+    }, {
      -8,  -6,  33,   4,  -7, -44, -18,  21,  23,  48,
      46, -24,  -9, -40,  -3,  -1,  32,  13,  11, -43,
      -7, -14,  -3, -15,  26,  -3,  21, -26, -50,  -8,
       0, -16, -27,  34, -25, -23,  43, -17,   6,  -1,
+    }, {
     -77,  13,  56,  43,  13, -57, -23,  26, -11,  19,
      27, -16, -17, -22,  10,  15,  19,  10,  22, -43,
     -16, -30,   2, -31,  11,   6,   5,   9, -52,  -2,
     -20,   0,  -8,  50, -33, -27,  19, -19,   1,  -9,
+    }, {
     -47,   0,  45,  -7,   7, -69, -23,  13,   2,  51,
      32,  14,   3, -47, -19,  -8,  37,  11,  10, -16,
      32, -15,  19, -29,   0,  -1,  28, -18, -20,   4,
      16, -13, -38,  -3, -15,   0,  66,   0,  -7,  13,
+    }, {
    -116,  20,  68,  30,  28, -83, -28,  18, -32,  22,
      13,  21,  -5, -28,  -5,   7,  24,   8,  22, -17,
      23, -30,  25, -45, -15,   9,  11,  18, -22,  10,
      -4,   2, -19,  12, -23,  -3,  43,  -2, -12,   4,
+    }, {
      72, -13, -29, -18,   4,  90,  37, -34,   4,  -1,
      13,  -9,  -6,  11,   2,  24, -13,   3,  -7, -11,
      -4,   4, -42,  25,  31,  -1,  -8, -29,  -6,  17,
     -19,   2, -10,  -6,  38,  22, -42, -19,  -6, -11,
+    }, {
       3,   7,  -6,  20,  25,  77,  32, -29, -31, -30,
      -4,  -2, -14,  29,  16,  40, -26,   0,   3, -12,
     -13, -10, -36,   9,  15,   8, -24,   6,  -7,  22,
     -40,  17,   8,   9,  31,  18, -66, -22, -11, -19,
+    }, {
      32,  -6, -17, -31,  19,  65,  33, -41, -16,   1,
       0,  29,   6,   4, -13,  17,  -9,   1,  -8,  14,
      35,   3, -19,  11,   4,   0,  -1, -21,  23,  30,
      -3,   5, -20, -44,  48,  46, -19,  -3, -20,   3,
+    }, {
     -36,  13,   5,   7,  40,  51,  28, -36, -52, -27,
     -18,  36,  -2,  22,   0,  33, -21,  -2,   3,  13,
      26, -11, -14,  -4, -10,  10, -18,  14,  22,  36,
     -24,  21,  -1, -28,  40,  42, -42,  -5, -25,  -5,
+    }, {
      27,  -1, -20, -17,  24,  38,  35, -26,   1,   4,
      35, -32, -21,  -3,   2,  35,  -8, -29, -24, -44,
      12,  24, -34,  18,   8,  -7, -21, -55,  -5,  21,
      -2,  23, -11, -28,  13,  -1, -22, -33,  21,  10,
+    }, {
     -41,  18,   2,  21,  45,  24,  30, -21, -33, -24,
      17, -24, -29,  15,  16,  51, -21, -33, -13, -45,
       3,   8, -28,   2,  -7,   2, -37, -19,  -7,  27,
     -22,  39,   7, -12,   5,  -5, -45, -35,  15,   1,
+    }, {
     -12,   4,  -8, -29,  39,  12,  30, -33, -19,   8,
      21,   6,  -8,  -9, -13,  28,  -4, -31, -24, -18,
      52,  23, -12,   4, -18,  -5, -14, -47,  24,  34,
      14,  27, -22, -66,  22,  22,   1, -16,   6,  24,
+    }, {
     -81,  25,  14,   8,  61,   0,  25, -28, -54, -20,
       3,  14, -17,   8,   0,  44, -16, -35, -13, -18,
      43,   7,  -6, -11, -33,   4, -30, -11,  22,  40,
      -6,  43,  -3, -50,  14,  18, -22, -18,   1,  16,
+    }, {
      77,  -2, -11,   1,  -7,  47,  52,  -5,  29,  33,
       1, -28,   0, -15,  28,  26,   2,  30,   0,   2,
     -22,   4, -33,  -3,  36, -21,   3, -15,  -2,   5,
      -4,   4,   6,   9,  37,  31,  -5, -32, -20, -30,
+    }, {
       8,  17,  10,  40,  13,  34,  47,   0,  -5,   4,
     -16, -21,  -8,   2,  42,  43, -10,  26,  10,   2,
     -31, -11, -27, -19,  21, -10, -12,  20,  -3,  11,
     -25,  20,  25,  25,  29,  28, -28, -34, -25, -38,
+    }, {
      37,   3,   0, -10,   7,  22,  48, -12,   8,  36,
     -12,   9,  12, -22,  12,  19,   6,  28,   0,  29,
      18,   3, -11, -17,  10, -18,  10,  -7,  27,  18,
      11,   7,  -3, -28,  47,  55,  18, -15, -34, -16,
+    }, {
     -31,  24,  23,  27,  29,   9,  43,  -8, -26,   7,
     -30,  17,   4,  -3,  26,  35,  -5,  24,  10,  28,
       9, -12,  -5, -33,  -5,  -8,  -5,  29,  26,  24,
      -9,  23,  14, -12,  39,  52,  -5, -18, -39, -24,
+    }, {
      32,   8,  -3,   2,  13,  -4,  50,   1,  27,  39,
      23, -51, -15, -30,  27,  37,   7,  -1, -17, -29,
      -5,  23, -25, -10,  14, -26,  -8, -41,  -1,   9,
      13,  26,   5, -12,  12,   7,  14, -45,   6,  -9,
+    }, {
     -36,  29,  19,  41,  34, -18,  45,   6,  -8,  10,
       5, -43, -23, -11,  42,  53,  -5,  -5,  -6, -30,
     -14,   8, -20, -26,  -1, -16, -25,  -4,  -3,  15,
      -7,  41,  23,   3,   4,   3,  -8, -48,   1, -17,
+    }, {
      -7,  15,   9,  -9,  28, -29,  45,  -5,   6,  43,
       9, -12,  -2, -36,  12,  30,  11,  -3, -17,  -3,
      34,  22,  -3, -24, -12, -24,  -2, -32,  28,  22,
      29,  29,  -5, -50,  21,  31,  38, -29,  -7,   5,
+    }, {
     -76,  35,  31,  28,  49, -43,  40,   0, -29,  14,
      -8,  -5, -10, -18,  26,  46,   0,  -7,  -6,  -3,
      25,   7,   2, -40, -28, -14, -18,   3,  27,  28,
       8,  45,  13, -34,  13,  27,  15, -31, -12,  -3,
+    }, {
      74, -17,   0, -31, -18,  73,  -5,   0,   3,  -5,
      25,  12,  -3,  -1, -22,   3,  -9,  33, -12, -24,
       6,   2, -33,   9,  21,   5,  20, -27, -19,  -7,
     -34, -37, -34,  22,  44,   0, -41, -29, -17, -21,
+    }, {
       5,   3,  21,   7,   2,  60, -10,   5, -32, -34,
       7,  20, -11,  16,  -8,  20, -21,  29,  -1, -24,
      -2, -13, -27,  -6,   5,  15,   3,   8, -21,  -1,
     -55, -21, -15,  38,  37,  -3, -65, -32, -23, -30,
+    }, {
      35, -10,  11, -44,  -3,  48, -10,  -6, -17,  -2,
      11,  51,   8,  -8, -38,  -3,  -4,  31, -12,   2,
      46,   1, -10,  -4,  -5,   7,  26, -19,  10,   5,
     -18, -34, -45, -15,  54,  24, -18, -13, -31,  -7,
+    }, {
     -33,  10,  34,  -5,  17,  35, -15,  -1, -53, -30,
      -6,  59,   0,  10, -24,  13, -17,  27,  -1,   1,
      37, -13,  -4, -20, -20,  18,  10,  16,   8,  11,
     -39, -18, -26,   0,  46,  20, -41, -15, -37, -15,
+    }, {
      29,  -5,   7, -30,   1,  21,  -7,   7,   0,   0,
      47,  -9, -18, -15, -22,  14,  -4,   0, -28, -57,
      23,  21, -25,   2,  -1,   0,   7, -53, -19,  -3,
     -17, -15, -36,   0,  19, -24, -21, -43,   9,   0,
+    }, {
     -39,  14,  30,   8,  22,   8, -12,  12, -34, -27,
      29,  -2, -26,   2,  -8,  31, -16,  -3, -17, -57,
      14,   6, -19, -13, -16,  10,  -8, -17, -20,   2,
     -38,   0, -17,  16,  11, -27, -44, -45,   4,  -8,
+    }, {
      -9,   1,  20, -43,  17,  -3, -12,   0, -20,   4,
      33,  29,  -6, -22, -38,   7,   0,  -1, -29, -30,
      63,  21,  -3, -11, -27,   1,  14, -45,  10,   9,
      -1, -12, -47, -37,  28,   0,   2, -26,  -4,  13,
+    }, {
     -78,  21,  43,  -4,  38, -17, -17,   5, -55, -24,
      15,  36, -14,  -4, -24,  24, -12,  -5, -17, -31,
      54,   5,   2, -27, -43,  12,  -2,  -9,   9,  15,
     -22,   3, -28, -21,  20,  -3, -20, -28,  -9,   5,
+    }, {
      80,  -6,  16, -11, -30,  30,   9,  28,  28,  29,
      13,  -6,   2, -28,   3,   5,   7,  60,  -5,  -9,
     -11,   1, -24, -19,  27, -13,  32, -13, -15, -19,
     -19, -35, -17,  39,  43,   9,  -4, -42, -32, -41,
+    }, {
      11,  14,  39,  27,  -9,  17,   4,  33,  -6,   0,
      -4,   1,  -5, -10,  17,  22,  -5,  57,   5,  -9,
     -20, -13, -18, -35,  11,  -3,  16,  22, -17, -13,
     -40, -19,   1,  55,  35,   5, -27, -44, -37, -49,
+    }, {
      40,   0,  28, -24, -14,   5,   4,  21,   7,  33,
       0,  32,  15, -35, -12,  -1,  11,  58,  -5,  16,
      28,   0,  -1, -33,   0, -11,  39,  -5,  14,  -6,
      -3, -31, -28,   1,  53,  33,  19, -25, -46, -26,
+    }, {
     -28,  20,  51,  14,   6,  -7,   0,  26, -27,   4,
     -18,  40,   6, -16,   1,  15,   0,  55,   5,  16,
      19, -14,   3, -49, -14,  -1,  22,  30,  12,   0,
     -24, -15,  -9,  17,  45,  29,  -4, -28, -51, -35,
+    }, {
      34,   4,  25, -10,  -9, -21,   7,  36,  26,  36,
      35, -28, -12, -42,   3,  16,  12,  28, -21, -42,
       5,  21, -16, -26,   4, -19,  19, -39, -15, -15,
      -1, -13, -19,  17,  17, -14,  15, -55,  -4, -19,
+    }, {
     -34,  25,  48,  28,  11, -34,   2,  41,  -9,   7,
      17, -21, -20, -24,  17,  33,   0,  24, -10, -42,
      -3,   5, -10, -42, -11,  -8,   3,  -3, -16,  -9,
     -22,   2,   0,  33,  10, -18,  -7, -58, -10, -28,
+    }, {
      -4,  11,  37, -23,   5, -46,   2,  29,   5,  39,
      21,   9,   0, -49, -12,   9,  16,  26, -22, -15,
      45,  20,   5, -40, -22, -17,  26, -31,  14,  -2,
      14, -10, -30, -20,  27,   9,  39, -39, -18,  -5,
+    }, {
     -73,  32,  60,  15,  26, -59,  -2,  33, -30,  10,
       3,  17,  -8, -30,   1,  26,   4,  22, -10, -16,
      36,   5,  11, -56, -37,  -6,  10,   5,  13,   3,
      -6,   5, -11,  -4,  19,   5,  16, -41, -24, -13
+    }
 };
 
-static const unsigned long ftable1[128]={
-    314527,  295599,  293848,  280320,  336779,  291703,  297354,  266749,
-    325815,  305109,  310555,  294891,  349515,  300052,  313812,  278588,
-    326231,  348357,  322076,  347246,  335655,  327567,  314037,  310198,
-    343640,  370152,  349471,  382719,  353433,  344311,  338152,  333632,
-    314810,  285147,  304708,  279643,  319779,  271292,  295149,  257376,
-    338219,  302387,  335244,  302877,  343236,  285341,  321676,  274547,
-    316321,  320899,  325378,  333870,  309279,  291473,  302532,  288065,
-    344907,  351169,  369278,  382224,  334752,  312711,  335747,  316511,
-    316511,  335747,  312711,  334752,  382224,  369278,  351169,  344907,
-    288065,  302532,  291473,  309279,  333870,  325378,  320899,  316321,
-    274547,  321676,  285341,  343236,  302877,  335244,  302387,  338219,
-    257376,  295149,  271292,  319779,  279643,  304708,  285147,  314810,
-    333632,  338152,  344311,  353433,  382719,  349471,  370152,  343640,
-    310198,  314037,  327567,  335655,  347246,  322076,  348357,  326231,
-    278588,  313812,  300052,  349515,  294891,  310555,  305109,  325815,
-    266749,  297354,  291703,  336779,  280320,  293848,  295599,  314527
+static const uint16_t cb1_base[128]={
+    19657, 18474, 18365, 17520, 21048, 18231, 18584, 16671,
+    20363, 19069, 19409, 18430, 21844, 18753, 19613, 17411,
+    20389, 21772, 20129, 21702, 20978, 20472, 19627, 19387,
+    21477, 23134, 21841, 23919, 22089, 21519, 21134, 20852,
+    19675, 17821, 19044, 17477, 19986, 16955, 18446, 16086,
+    21138, 18899, 20952, 18929, 21452, 17833, 20104, 17159,
+    19770, 20056, 20336, 20866, 19329, 18217, 18908, 18004,
+    21556, 21948, 23079, 23889, 20922, 19544, 20984, 19781,
+    19781, 20984, 19544, 20922, 23889, 23079, 21948, 21556,
+    18004, 18908, 18217, 19329, 20866, 20336, 20056, 19770,
+    17159, 20104, 17833, 21452, 18929, 20952, 18899, 21138,
+    16086, 18446, 16955, 19986, 17477, 19044, 17821, 19675,
+    20852, 21134, 21519, 22089, 23919, 21841, 23134, 21477,
+    19387, 19627, 20472, 20978, 21702, 20129, 21772, 20389,
+    17411, 19613, 18753, 21844, 18430, 19409, 19069, 20363,
+    16671, 18584, 18231, 21048, 17520, 18365, 18474, 19657,
 };
 
-static const unsigned long ftable2[128]={
-    194793,  214093,  222075,  221325,  210734,  211641,  211270,  192855,
-    198561,  223821,  229577,  234105,  209600,  214643,  211594,  196292,
-    191722,  221201,  215984,  227369,  222035,  236618,  220978,  209746,
-    183193,  212405,  205343,  219484,  203652,  219140,  204153,  198495,
-    163695,  194973,  186057,  210587,  188197,  215336,  197004,  205097,
-    167090,  204380,  192189,  224334,  189091,  221215,  199256,  211624,
-    167150,  210594,  190109,  228813,  205750,  260616,  215853,  240851,
-    162492,  205131,  184310,  223583,  192669,  241298,  202170,  227169,
-    227169,  202170,  241298,  192669,  223583,  184310,  205131,  162492,
-    240851,  215853,  260616,  205750,  228813,  190109,  210594,  167150,
-    211624,  199256,  221215,  189091,  224334,  192189,  204380,  167090,
-    205097,  197004,  215336,  188197,  210587,  186057,  194973,  163695,
-    198495,  204153,  219140,  203652,  219484,  205343,  212405,  183193,
-    209746,  220978,  236618,  222035,  227369,  215984,  221201,  191722,
-    196292,  211594,  214643,  209600,  234105,  229577,  223821,  198561,
-    192855,  211270,  211641,  210734,  221325,  222075,  214093,  194793
+static const uint16_t cb2_base[128]={
+    12174, 13380, 13879, 13832, 13170, 13227, 13204, 12053,
+    12410, 13988, 14348, 14631, 13100, 13415, 13224, 12268,
+    11982, 13825, 13499, 14210, 13877, 14788, 13811, 13109,
+    11449, 13275, 12833, 13717, 12728, 13696, 12759, 12405,
+    10230, 12185, 11628, 13161, 11762, 13458, 12312, 12818,
+    10443, 12773, 12011, 14020, 11818, 13825, 12453, 13226,
+    10446, 13162, 11881, 14300, 12859, 16288, 13490, 15053,
+    10155, 12820, 11519, 13973, 12041, 15081, 12635, 14198,
+    14198, 12635, 15081, 12041, 13973, 11519, 12820, 10155,
+    15053, 13490, 16288, 12859, 14300, 11881, 13162, 10446,
+    13226, 12453, 13825, 11818, 14020, 12011, 12773, 10443,
+    12818, 12312, 13458, 11762, 13161, 11628, 12185, 10230,
+    12405, 12759, 13696, 12728, 13717, 12833, 13275, 11449,
+    13109, 13811, 14788, 13877, 14210, 13499, 13825, 11982,
+    12268, 13224, 13415, 13100, 14631, 14348, 13988, 12410,
+    12053, 13204, 13227, 13170, 13832, 13879, 13380, 12174,
 };
 
-static const short decodeval[63]={
+static const int16_t energy_tab[63]={
         0,     6,    16,    18,    20,    23,    25,    29,
        32,    36,    41,    46,    51,    57,    65,    73,
        81,    91,   103,   115,   129,   145,   163,   183,
@@ -2135,7 +1496,7 @@ static const short decodeval[63]={
      8192,  9191, 10313, 11571, 12983, 14567, 16345
 };
 
-static const short decodetable1[127]={
+static const int16_t lpc_refl_cb1[127]={
     -4041, -4029, -4018, -4008, -3998, -3988, -3977, -3966,
     -3954, -3942, -3930, -3918, -3906, -3892, -3879, -3866,
     -3852, -3839, -3825, -3810, -3795, -3779, -3764, -3748,
@@ -2154,7 +1515,7 @@ static const short decodetable1[127]={
      3118,  3240,  3363,  3475,  3588,  3701,  3814
 };
 
-static const short decodetable2[63]={
+static const int16_t lpc_refl_cb2[63]={
     -3091, -2739, -2386, -2129, -1871, -1648, -1425, -1223,
     -1021,  -835,  -649,  -483,  -316,  -168,   -20,   123,
       267,   406,   544,   677,   810,   937,  1065,  1185,
@@ -2165,7 +1526,7 @@ static const short decodetable2[63]={
      3789,  3829,  3870,  3908,  3947,  3983,  4020
 };
 
-static const short decodetable3[63]={
+static const int16_t lpc_refl_cb3[63]={
     -3525, -3410, -3295, -3188, -3081, -2985, -2890, -2793,
     -2696, -2603, -2511, -2419, -2328, -2238, -2149, -2064,
     -1979, -1898, -1817, -1737, -1658, -1578, -1498, -1420,
@@ -2176,46 +1537,47 @@ static const short decodetable3[63]={
      1651,  1808,  1965,  2162,  2360,  2607,  2854
 };
 
-static const short decodetable4[31]={
+static const int16_t lpc_refl_cb4[31]={
     -1845, -1451, -1057,  -790,  -522,  -300,   -77,   111,
       301,   474,   647,   811,   975,  1130,  1285,  1434,
      1582,  1727,  1873,  2018,  2163,  2308,  2452,  2594,
      2735,  2876,  3017,  3158,  3299,  3434,  3569
 };
 
-static const short decodetable5[31]={
+static const int16_t lpc_refl_cb5[31]={
     -2691, -2439, -2187, -1987, -1788, -1611, -1435, -1276,
     -1118,  -977,  -837,  -704,  -571,  -444,  -316,  -188,
       -59,    71,   201,   336,   470,   614,   759,   918,
      1077,  1267,  1457,  1682,  1908,  2201,  2495
 };
 
-static const short decodetable6[15]={
+static const int16_t lpc_refl_cb6[15]={
     -1372,  -923,  -474,  -170,   133,   383,   632,   866,
      1100,  1335,  1571,  1823,  2075,  2374,  2672
 };
 
-static const short decodetable7[15]={
+static const int16_t lpc_refl_cb7[15]={
     -2389, -2088, -1787, -1509, -1231,  -974,  -717,  -478,
      -239,    -2,   234,   502,   770,  1122,  1474
 };
 
-static const short decodetable8[15]={
+static const int16_t lpc_refl_cb8[15]={
     -1569, -1217,  -864,  -580,  -296,   -47,   200,   435,
       670,   911,  1151,  1430,  1709,  2047,  2385
 };
 
-static const short decodetable9[15]={
+static const int16_t lpc_refl_cb9[15]={
     -2200, -1904, -1608, -1335, -1062,  -816,  -569,  -344,
      -120,   108,   338,   600,   863,  1242,  1621
 };
 
-static const short decodetable10[7]={
+static const int16_t lpc_refl_cb10[7]={
      -617,  -213,   190,   496,   802,  1142,  1483
 };
 
-static const short *decodetable[10]={
-decodetable1,decodetable2,decodetable3,decodetable4,decodetable5,
-decodetable6,decodetable7,decodetable8,decodetable9,decodetable10};
+static const int16_t *lpc_refl_cb[10]={
+    lpc_refl_cb1, lpc_refl_cb2, lpc_refl_cb3, lpc_refl_cb4, lpc_refl_cb5,
+    lpc_refl_cb6, lpc_refl_cb7, lpc_refl_cb8, lpc_refl_cb9, lpc_refl_cb10
+};
 
 #endif /* FFMPEG_RA144_H */