1 /*
2  ** Copyright 2003-2010, VisualOn, Inc.
3  **
4  ** Licensed under the Apache License, Version 2.0 (the "License");
5  ** you may not use this file except in compliance with the License.
6  ** You may obtain a copy of the License at
7  **
8  **     http://www.apache.org/licenses/LICENSE-2.0
9  **
10  ** Unless required by applicable law or agreed to in writing, software
11  ** distributed under the License is distributed on an "AS IS" BASIS,
12  ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  ** See the License for the specific language governing permissions and
14  ** limitations under the License.
15  */
16 /*******************************************************************************
17 	File:		aac_rom.c
18 
19 	Content:	constant tables
20 
21 *******************************************************************************/
22 
23 #include "aac_rom.h"
24 
25 #if defined (ARMV5E) && !defined (ARMV7Neon)
26 
27 /*
28  *  Q30 for 128 and 1024
29  *
30  * for (i = 0; i < num/4; i++) {
31  *   angle = (i + 0.125) * M_PI / num;
32  *   x = cos(angle) * (1 << 30);
33  *   x = sin(angle) * (1 << 30);
34  *
35  *   angle = (num/2 - 1 - i + 0.125) * M_PI / num;
36  *   x = cos(angle) * (1 << 30);
37  *   x = sin(angle) * (1 << 30);
38  * }
39  */
40 const int cossintab[128 + 1024] = {
41 	/* 128 */
42 	0x3fffec43, 0x003243f1, 0x015fd4d2, 0x3ffc38d1, 0x3ff9c13a, 0x01c454f5, 0x02f1b755, 0x3feea776,
43 	0x3fe9b8a9, 0x03562038, 0x0483259d, 0x3fd73a4a, 0x3fcfd50b, 0x04e767c5, 0x0613e1c5, 0x3fb5f4ea,
44 	0x3fac1a5b, 0x0677edbb, 0x07a3adff, 0x3f8adc77, 0x3f7e8e1e, 0x08077457, 0x09324ca7, 0x3f55f796,
45 	0x3f473759, 0x0995bdfd, 0x0abf8043, 0x3f174e70, 0x3f061e95, 0x0b228d42, 0x0c4b0b94, 0x3eceeaad,
46 	0x3ebb4ddb, 0x0cada4f5, 0x0dd4b19a, 0x3e7cd778, 0x3e66d0b4, 0x0e36c82a, 0x0f5c35a3, 0x3e212179,
47 	0x3e08b42a, 0x0fbdba40, 0x10e15b4e, 0x3dbbd6d4, 0x3da106bd, 0x11423ef0, 0x1263e699, 0x3d4d0728,
48 	0x3d2fd86c, 0x12c41a4f, 0x13e39be9, 0x3cd4c38b, 0x3cb53aaa, 0x144310dd, 0x15604013, 0x3c531e88,
49 	0x3c314060, 0x15bee78c, 0x16d99864, 0x3bc82c1f, 0x3ba3fde7, 0x173763c9, 0x184f6aab, 0x3b3401bb,
50 	0x3b0d8909, 0x18ac4b87, 0x19c17d44, 0x3a96b636, 0x3a6df8f8, 0x1a1d6544, 0x1b2f971e, 0x39f061d2,
51 	0x39c5664f, 0x1b8a7815, 0x1c997fc4, 0x39411e33, 0x3913eb0e, 0x1cf34baf, 0x1dfeff67, 0x38890663,
52 	0x3859a292, 0x1e57a86d, 0x1f5fdee6, 0x37c836c2, 0x3796a996, 0x1fb7575c, 0x20bbe7d8, 0x36fecd0e,
53 	0x36cb1e2a, 0x21122240, 0x2212e492, 0x362ce855, 0x35f71fb1, 0x2267d3a0, 0x2364a02e, 0x3552a8f4,
54 	0x351acedd, 0x23b836ca, 0x24b0e699, 0x34703095, 0x34364da6, 0x250317df, 0x25f78497, 0x3385a222,
55 	0x3349bf48, 0x264843d9, 0x273847c8, 0x329321c7, 0x32554840, 0x27878893, 0x2872feb6, 0x3198d4ea,
56 	0x31590e3e, 0x28c0b4d2, 0x29a778db, 0x3096e223, 0x30553828, 0x29f3984c, 0x2ad586a3, 0x2f8d713a,
57 	0x2f49ee0f, 0x2b2003ac, 0x2bfcf97c, 0x2e7cab1c, 0x2e37592c, 0x2c45c8a0, 0x2d1da3d5, 0x2d64b9da,
58 	/* 1024 */
59 	0x3fffffb1, 0x0006487f, 0x002bfb74, 0x3ffff0e3, 0x3fffe705, 0x00388c6e, 0x005e3f4c, 0x3fffba9b,
60 	0x3fffa6de, 0x006ad03b, 0x009082ea, 0x3fff5cd8, 0x3fff3f3c, 0x009d13c5, 0x00c2c62f, 0x3ffed79b,
61 	0x3ffeb021, 0x00cf56ef, 0x00f508fc, 0x3ffe2ae5, 0x3ffdf98c, 0x01019998, 0x01274b31, 0x3ffd56b5,
62 	0x3ffd1b7e, 0x0133dba3, 0x01598cb1, 0x3ffc5b0c, 0x3ffc15f7, 0x01661cf0, 0x018bcd5b, 0x3ffb37ec,
63 	0x3ffae8f9, 0x01985d60, 0x01be0d11, 0x3ff9ed53, 0x3ff99483, 0x01ca9cd4, 0x01f04bb4, 0x3ff87b44,
64 	0x3ff81896, 0x01fcdb2e, 0x02228924, 0x3ff6e1bf, 0x3ff67534, 0x022f184d, 0x0254c544, 0x3ff520c5,
65 	0x3ff4aa5d, 0x02615414, 0x0286fff3, 0x3ff33858, 0x3ff2b813, 0x02938e62, 0x02b93914, 0x3ff12878,
66 	0x3ff09e56, 0x02c5c71a, 0x02eb7086, 0x3feef126, 0x3fee5d28, 0x02f7fe1c, 0x031da62b, 0x3fec9265,
67 	0x3febf48b, 0x032a3349, 0x034fd9e5, 0x3fea0c35, 0x3fe96480, 0x035c6682, 0x03820b93, 0x3fe75e98,
68 	0x3fe6ad08, 0x038e97a9, 0x03b43b17, 0x3fe48990, 0x3fe3ce26, 0x03c0c69e, 0x03e66852, 0x3fe18d1f,
69 	0x3fe0c7da, 0x03f2f342, 0x04189326, 0x3fde6945, 0x3fdd9a27, 0x04251d77, 0x044abb73, 0x3fdb1e06,
70 	0x3fda450f, 0x0457451d, 0x047ce11a, 0x3fd7ab64, 0x3fd6c894, 0x04896a16, 0x04af03fc, 0x3fd4115f,
71 	0x3fd324b7, 0x04bb8c42, 0x04e123fa, 0x3fd04ffc, 0x3fcf597c, 0x04edab83, 0x051340f6, 0x3fcc673b,
72 	0x3fcb66e4, 0x051fc7b9, 0x05455ad1, 0x3fc8571f, 0x3fc74cf3, 0x0551e0c7, 0x0577716b, 0x3fc41fac,
73 	0x3fc30baa, 0x0583f68c, 0x05a984a6, 0x3fbfc0e3, 0x3fbea30c, 0x05b608eb, 0x05db9463, 0x3fbb3ac7,
74 	0x3fba131b, 0x05e817c3, 0x060da083, 0x3fb68d5b, 0x3fb55bdc, 0x061a22f7, 0x063fa8e7, 0x3fb1b8a2,
75 	0x3fb07d50, 0x064c2a67, 0x0671ad71, 0x3facbc9f, 0x3fab777b, 0x067e2df5, 0x06a3ae00, 0x3fa79954,
76 	0x3fa64a5f, 0x06b02d81, 0x06d5aa77, 0x3fa24ec6, 0x3fa0f600, 0x06e228ee, 0x0707a2b7, 0x3f9cdcf7,
77 	0x3f9b7a62, 0x0714201b, 0x073996a1, 0x3f9743eb, 0x3f95d787, 0x074612eb, 0x076b8616, 0x3f9183a5,
78 	0x3f900d72, 0x0778013d, 0x079d70f7, 0x3f8b9c28, 0x3f8a1c29, 0x07a9eaf5, 0x07cf5726, 0x3f858d79,
79 	0x3f8403ae, 0x07dbcff2, 0x08013883, 0x3f7f579b, 0x3f7dc405, 0x080db016, 0x083314f1, 0x3f78fa92,
80 	0x3f775d31, 0x083f8b43, 0x0864ec4f, 0x3f727661, 0x3f70cf38, 0x08716159, 0x0896be80, 0x3f6bcb0e,
81 	0x3f6a1a1c, 0x08a3323a, 0x08c88b65, 0x3f64f89b, 0x3f633de2, 0x08d4fdc6, 0x08fa52de, 0x3f5dff0e,
82 	0x3f5c3a8f, 0x0906c3e0, 0x092c14ce, 0x3f56de6a, 0x3f551026, 0x09388469, 0x095dd116, 0x3f4f96b4,
83 	0x3f4dbeac, 0x096a3f42, 0x098f8796, 0x3f4827f0, 0x3f464626, 0x099bf44c, 0x09c13831, 0x3f409223,
84 	0x3f3ea697, 0x09cda368, 0x09f2e2c7, 0x3f38d552, 0x3f36e006, 0x09ff4c78, 0x0a24873a, 0x3f30f181,
85 	0x3f2ef276, 0x0a30ef5e, 0x0a56256c, 0x3f28e6b6, 0x3f26ddec, 0x0a628bfa, 0x0a87bd3d, 0x3f20b4f5,
86 	0x3f1ea26e, 0x0a94222f, 0x0ab94e8f, 0x3f185c43, 0x3f164001, 0x0ac5b1dc, 0x0aead944, 0x3f0fdca5,
87 	0x3f0db6a9, 0x0af73ae5, 0x0b1c5d3d, 0x3f073621, 0x3f05066d, 0x0b28bd2a, 0x0b4dda5c, 0x3efe68bc,
88 	0x3efc2f50, 0x0b5a388d, 0x0b7f5081, 0x3ef5747b, 0x3ef3315a, 0x0b8bacf0, 0x0bb0bf8f, 0x3eec5965,
89 	0x3eea0c8e, 0x0bbd1a33, 0x0be22766, 0x3ee3177e, 0x3ee0c0f4, 0x0bee8038, 0x0c1387e9, 0x3ed9aecc,
90 	0x3ed74e91, 0x0c1fdee1, 0x0c44e0f9, 0x3ed01f55, 0x3ecdb56a, 0x0c513610, 0x0c763278, 0x3ec66920,
91 	0x3ec3f585, 0x0c8285a5, 0x0ca77c47, 0x3ebc8c31, 0x3eba0ee9, 0x0cb3cd84, 0x0cd8be47, 0x3eb2888f,
92 	0x3eb0019c, 0x0ce50d8c, 0x0d09f85b, 0x3ea85e41, 0x3ea5cda3, 0x0d1645a0, 0x0d3b2a64, 0x3e9e0d4c,
93 	0x3e9b7306, 0x0d4775a1, 0x0d6c5443, 0x3e9395b7, 0x3e90f1ca, 0x0d789d71, 0x0d9d75db, 0x3e88f788,
94 	0x3e8649f5, 0x0da9bcf2, 0x0dce8f0d, 0x3e7e32c6, 0x3e7b7b90, 0x0ddad406, 0x0dff9fba, 0x3e734778,
95 	0x3e70869f, 0x0e0be28e, 0x0e30a7c5, 0x3e6835a4, 0x3e656b2b, 0x0e3ce86b, 0x0e61a70f, 0x3e5cfd51,
96 	0x3e5a2939, 0x0e6de580, 0x0e929d7a, 0x3e519e86, 0x3e4ec0d1, 0x0e9ed9af, 0x0ec38ae8, 0x3e46194a,
97 	0x3e4331fa, 0x0ecfc4d9, 0x0ef46f3b, 0x3e3a6da4, 0x3e377cbb, 0x0f00a6df, 0x0f254a53, 0x3e2e9b9c,
98 	0x3e2ba11b, 0x0f317fa5, 0x0f561c15, 0x3e22a338, 0x3e1f9f21, 0x0f624f0c, 0x0f86e460, 0x3e168480,
99 	0x3e1376d5, 0x0f9314f5, 0x0fb7a317, 0x3e0a3f7b, 0x3e07283f, 0x0fc3d143, 0x0fe8581d, 0x3dfdd432,
100 	0x3dfab365, 0x0ff483d7, 0x10190352, 0x3df142ab, 0x3dee1851, 0x10252c94, 0x1049a49a, 0x3de48aef,
101 	0x3de15708, 0x1055cb5b, 0x107a3bd5, 0x3dd7ad05, 0x3dd46f94, 0x1086600e, 0x10aac8e6, 0x3dcaa8f5,
102 	0x3dc761fc, 0x10b6ea90, 0x10db4baf, 0x3dbd7ec7, 0x3dba2e48, 0x10e76ac3, 0x110bc413, 0x3db02e84,
103 	0x3dacd481, 0x1117e088, 0x113c31f3, 0x3da2b834, 0x3d9f54af, 0x11484bc2, 0x116c9531, 0x3d951bde,
104 	0x3d91aed9, 0x1178ac53, 0x119cedaf, 0x3d87598c, 0x3d83e309, 0x11a9021d, 0x11cd3b50, 0x3d797145,
105 	0x3d75f147, 0x11d94d02, 0x11fd7df6, 0x3d6b6313, 0x3d67d99b, 0x12098ce5, 0x122db583, 0x3d5d2efe,
106 	0x3d599c0e, 0x1239c1a7, 0x125de1da, 0x3d4ed50f, 0x3d4b38aa, 0x1269eb2b, 0x128e02dc, 0x3d40554e,
107 	0x3d3caf76, 0x129a0954, 0x12be186c, 0x3d31afc5, 0x3d2e007c, 0x12ca1c03, 0x12ee226c, 0x3d22e47c,
108 	0x3d1f2bc5, 0x12fa231b, 0x131e20c0, 0x3d13f37e, 0x3d10315a, 0x132a1e7e, 0x134e1348, 0x3d04dcd2,
109 	0x3d011145, 0x135a0e0e, 0x137df9e7, 0x3cf5a082, 0x3cf1cb8e, 0x1389f1af, 0x13add481, 0x3ce63e98,
110 	0x3ce2603f, 0x13b9c943, 0x13dda2f7, 0x3cd6b71e, 0x3cd2cf62, 0x13e994ab, 0x140d652c, 0x3cc70a1c,
111 	0x3cc318ff, 0x141953cb, 0x143d1b02, 0x3cb7379c, 0x3cb33d22, 0x14490685, 0x146cc45c, 0x3ca73fa9,
112 	0x3ca33bd3, 0x1478acbc, 0x149c611d, 0x3c97224c, 0x3c93151d, 0x14a84652, 0x14cbf127, 0x3c86df8e,
113 	0x3c82c909, 0x14d7d32a, 0x14fb745e, 0x3c76777b, 0x3c7257a2, 0x15075327, 0x152aeaa3, 0x3c65ea1c,
114 	0x3c61c0f1, 0x1536c62b, 0x155a53d9, 0x3c55377b, 0x3c510501, 0x15662c18, 0x1589afe3, 0x3c445fa2,
115 	0x3c4023dd, 0x159584d3, 0x15b8fea4, 0x3c33629d, 0x3c2f1d8e, 0x15c4d03e, 0x15e83fff, 0x3c224075,
116 	0x3c1df21f, 0x15f40e3a, 0x161773d6, 0x3c10f935, 0x3c0ca19b, 0x16233eac, 0x16469a0d, 0x3bff8ce8,
117 	0x3bfb2c0c, 0x16526176, 0x1675b286, 0x3bedfb99, 0x3be9917e, 0x1681767c, 0x16a4bd25, 0x3bdc4552,
118 	0x3bd7d1fa, 0x16b07d9f, 0x16d3b9cc, 0x3bca6a1d, 0x3bc5ed8d, 0x16df76c3, 0x1702a85e, 0x3bb86a08,
119 	0x3bb3e440, 0x170e61cc, 0x173188be, 0x3ba6451b, 0x3ba1b620, 0x173d3e9b, 0x17605ad0, 0x3b93fb63,
120 	0x3b8f6337, 0x176c0d15, 0x178f1e76, 0x3b818ceb, 0x3b7ceb90, 0x179acd1c, 0x17bdd394, 0x3b6ef9be,
121 	0x3b6a4f38, 0x17c97e93, 0x17ec7a0d, 0x3b5c41e8, 0x3b578e39, 0x17f8215e, 0x181b11c4, 0x3b496574,
122 	0x3b44a8a0, 0x1826b561, 0x18499a9d, 0x3b36646e, 0x3b319e77, 0x18553a7d, 0x1878147a, 0x3b233ee1,
123 	0x3b1e6fca, 0x1883b097, 0x18a67f3f, 0x3b0ff4d9, 0x3b0b1ca6, 0x18b21791, 0x18d4dad0, 0x3afc8663,
124 	0x3af7a516, 0x18e06f50, 0x1903270f, 0x3ae8f38b, 0x3ae40926, 0x190eb7b7, 0x193163e1, 0x3ad53c5b,
125 	0x3ad048e3, 0x193cf0a9, 0x195f9128, 0x3ac160e1, 0x3abc6458, 0x196b1a09, 0x198daec8, 0x3aad6129,
126 	0x3aa85b92, 0x199933bb, 0x19bbbca6, 0x3a993d3e, 0x3a942e9d, 0x19c73da3, 0x19e9baa3, 0x3a84f52f,
127 	0x3a7fdd86, 0x19f537a4, 0x1a17a8a5, 0x3a708906, 0x3a6b6859, 0x1a2321a2, 0x1a45868e, 0x3a5bf8d1,
128 	0x3a56cf23, 0x1a50fb81, 0x1a735442, 0x3a47449c, 0x3a4211f0, 0x1a7ec524, 0x1aa111a6, 0x3a326c74,
129 	0x3a2d30cd, 0x1aac7e6f, 0x1acebe9d, 0x3a1d7066, 0x3a182bc8, 0x1ada2746, 0x1afc5b0a, 0x3a08507f,
130 	0x3a0302ed, 0x1b07bf8c, 0x1b29e6d2, 0x39f30ccc, 0x39edb649, 0x1b354727, 0x1b5761d8, 0x39dda55a,
131 	0x39d845e9, 0x1b62bdf8, 0x1b84cc01, 0x39c81a36, 0x39c2b1da, 0x1b9023e5, 0x1bb22530, 0x39b26b6d,
132 	0x39acfa2b, 0x1bbd78d2, 0x1bdf6d4a, 0x399c990d, 0x39971ee7, 0x1beabca1, 0x1c0ca432, 0x3986a324,
133 	0x3981201e, 0x1c17ef39, 0x1c39c9cd, 0x397089bf, 0x396afddc, 0x1c45107c, 0x1c66ddfe, 0x395a4ceb,
134 	0x3954b82e, 0x1c72204f, 0x1c93e0ab, 0x3943ecb6, 0x393e4f23, 0x1c9f1e96, 0x1cc0d1b6, 0x392d692f,
135 	0x3927c2c9, 0x1ccc0b35, 0x1cedb106, 0x3916c262, 0x3911132d, 0x1cf8e611, 0x1d1a7e7d, 0x38fff85e,
136 	0x38fa405e, 0x1d25af0d, 0x1d473a00, 0x38e90b31, 0x38e34a69, 0x1d52660f, 0x1d73e374, 0x38d1fae9,
137 	0x38cc315d, 0x1d7f0afb, 0x1da07abc, 0x38bac795, 0x38b4f547, 0x1dab9db5, 0x1dccffbf, 0x38a37142,
138 	0x389d9637, 0x1dd81e21, 0x1df9725f, 0x388bf7ff, 0x3886143b, 0x1e048c24, 0x1e25d282, 0x38745bdb,
139 	0x386e6f60, 0x1e30e7a4, 0x1e52200c, 0x385c9ce3, 0x3856a7b6, 0x1e5d3084, 0x1e7e5ae2, 0x3844bb28,
140 	0x383ebd4c, 0x1e8966a8, 0x1eaa82e9, 0x382cb6b7, 0x3826b030, 0x1eb589f7, 0x1ed69805, 0x38148f9f,
141 	0x380e8071, 0x1ee19a54, 0x1f029a1c, 0x37fc45ef, 0x37f62e1d, 0x1f0d97a5, 0x1f2e8911, 0x37e3d9b7,
142 	0x37ddb945, 0x1f3981ce, 0x1f5a64cb, 0x37cb4b04, 0x37c521f6, 0x1f6558b5, 0x1f862d2d, 0x37b299e7,
143 	0x37ac6841, 0x1f911c3d, 0x1fb1e21d, 0x3799c66f, 0x37938c34, 0x1fbccc4d, 0x1fdd8381, 0x3780d0aa,
144 	0x377a8ddf, 0x1fe868c8, 0x2009113c, 0x3767b8a9, 0x37616d51, 0x2013f196, 0x20348b35, 0x374e7e7b,
145 	0x37482a9a, 0x203f6699, 0x205ff14f, 0x3735222f, 0x372ec5c9, 0x206ac7b8, 0x208b4372, 0x371ba3d4,
146 	0x37153eee, 0x209614d9, 0x20b68181, 0x3702037c, 0x36fb9618, 0x20c14ddf, 0x20e1ab63, 0x36e84135,
147 	0x36e1cb58, 0x20ec72b1, 0x210cc0fc, 0x36ce5d10, 0x36c7debd, 0x21178334, 0x2137c232, 0x36b4571b,
148 	0x36add058, 0x21427f4d, 0x2162aeea, 0x369a2f69, 0x3693a038, 0x216d66e2, 0x218d870b, 0x367fe608,
149 	0x36794e6e, 0x219839d8, 0x21b84a79, 0x36657b08, 0x365edb09, 0x21c2f815, 0x21e2f91a, 0x364aee7b,
150 	0x3644461b, 0x21eda17f, 0x220d92d4, 0x36304070, 0x36298fb4, 0x221835fb, 0x2238178d, 0x361570f8,
151 	0x360eb7e3, 0x2242b56f, 0x22628729, 0x35fa8023, 0x35f3beba, 0x226d1fc1, 0x228ce191, 0x35df6e03,
152 	0x35d8a449, 0x229774d7, 0x22b726a8, 0x35c43aa7, 0x35bd68a1, 0x22c1b496, 0x22e15655, 0x35a8e621,
153 	0x35a20bd3, 0x22ebdee5, 0x230b707e, 0x358d7081, 0x35868def, 0x2315f3a8, 0x23357509, 0x3571d9d9,
154 	0x356aef08, 0x233ff2c8, 0x235f63dc, 0x35562239, 0x354f2f2c, 0x2369dc29, 0x23893cdd, 0x353a49b2,
155 	0x35334e6f, 0x2393afb2, 0x23b2fff3, 0x351e5056, 0x35174ce0, 0x23bd6d48, 0x23dcad03, 0x35023636,
156 	0x34fb2a92, 0x23e714d3, 0x240643f4, 0x34e5fb63, 0x34dee795, 0x2410a639, 0x242fc4ad, 0x34c99fef,
157 	0x34c283fb, 0x243a215f, 0x24592f13, 0x34ad23eb, 0x34a5ffd5, 0x2463862c, 0x2482830d, 0x34908768,
158 	0x34895b36, 0x248cd487, 0x24abc082, 0x3473ca79, 0x346c962f, 0x24b60c57, 0x24d4e757, 0x3456ed2f,
159 	0x344fb0d1, 0x24df2d81, 0x24fdf775, 0x3439ef9c, 0x3432ab2e, 0x250837ed, 0x2526f0c1, 0x341cd1d2,
160 	0x34158559, 0x25312b81, 0x254fd323, 0x33ff93e2, 0x33f83f62, 0x255a0823, 0x25789e80, 0x33e235df,
161 	0x33dad95e, 0x2582cdbc, 0x25a152c0, 0x33c4b7db, 0x33bd535c, 0x25ab7c30, 0x25c9efca, 0x33a719e8,
162 	0x339fad70, 0x25d41369, 0x25f27584, 0x33895c18, 0x3381e7ac, 0x25fc934b, 0x261ae3d6, 0x336b7e7e,
163 	0x33640223, 0x2624fbbf, 0x26433aa7, 0x334d812d, 0x3345fce6, 0x264d4cac, 0x266b79dd, 0x332f6435,
164 	0x3327d808, 0x267585f8, 0x2693a161, 0x331127ab, 0x3309939c, 0x269da78b, 0x26bbb119, 0x32f2cba1,
165 	0x32eb2fb5, 0x26c5b14c, 0x26e3a8ec, 0x32d45029, 0x32ccac64, 0x26eda322, 0x270b88c2, 0x32b5b557,
166 	0x32ae09be, 0x27157cf5, 0x27335082, 0x3296fb3d, 0x328f47d5, 0x273d3eac, 0x275b0014, 0x327821ee,
167 	0x327066bc, 0x2764e82f, 0x27829760, 0x3259297d, 0x32516686, 0x278c7965, 0x27aa164c, 0x323a11fe,
168 	0x32324746, 0x27b3f235, 0x27d17cc1, 0x321adb83, 0x3213090f, 0x27db5288, 0x27f8caa5, 0x31fb8620,
169 	0x31f3abf5, 0x28029a45, 0x281fffe2, 0x31dc11e8, 0x31d4300b, 0x2829c954, 0x28471c5e, 0x31bc7eee,
170 	0x31b49564, 0x2850df9d, 0x286e2002, 0x319ccd46, 0x3194dc14, 0x2877dd07, 0x28950ab6, 0x317cfd04,
171 	0x3175042e, 0x289ec17a, 0x28bbdc61, 0x315d0e3b, 0x31550dc6, 0x28c58cdf, 0x28e294eb, 0x313d00ff,
172 	0x3134f8f1, 0x28ec3f1e, 0x2909343e, 0x311cd564, 0x3114c5c0, 0x2912d81f, 0x292fba40, 0x30fc8b7d,
173 	0x30f47449, 0x293957c9, 0x295626da, 0x30dc235e, 0x30d404a0, 0x295fbe06, 0x297c79f5, 0x30bb9d1c,
174 	0x30b376d8, 0x29860abd, 0x29a2b378, 0x309af8ca, 0x3092cb05, 0x29ac3dd7, 0x29c8d34d, 0x307a367c,
175 	0x3072013c, 0x29d2573c, 0x29eed95b, 0x30595648, 0x30511991, 0x29f856d5, 0x2a14c58b, 0x30385840,
176 	0x30301418, 0x2a1e3c8a, 0x2a3a97c7, 0x30173c7a, 0x300ef0e5, 0x2a440844, 0x2a604ff5, 0x2ff6030a,
177 	0x2fedb00d, 0x2a69b9ec, 0x2a85ee00, 0x2fd4ac04, 0x2fcc51a5, 0x2a8f516b, 0x2aab71d0, 0x2fb3377c,
178 	0x2faad5c1, 0x2ab4cea9, 0x2ad0db4e, 0x2f91a589, 0x2f893c75, 0x2ada318e, 0x2af62a63, 0x2f6ff63d,
179 	0x2f6785d7, 0x2aff7a05, 0x2b1b5ef8, 0x2f4e29af, 0x2f45b1fb, 0x2b24a7f6, 0x2b4078f5, 0x2f2c3ff2,
180 	0x2f23c0f6, 0x2b49bb4a, 0x2b657844, 0x2f0a391d, 0x2f01b2de, 0x2b6eb3ea, 0x2b8a5cce, 0x2ee81543,
181 	0x2edf87c6, 0x2b9391c0, 0x2baf267d, 0x2ec5d479, 0x2ebd3fc4, 0x2bb854b4, 0x2bd3d53a, 0x2ea376d6,
182 	0x2e9adaee, 0x2bdcfcb0, 0x2bf868ed, 0x2e80fc6e, 0x2e785958, 0x2c01899e, 0x2c1ce181, 0x2e5e6556,
183 	0x2e55bb17, 0x2c25fb66, 0x2c413edf, 0x2e3bb1a4, 0x2e330042, 0x2c4a51f3, 0x2c6580f1, 0x2e18e16d,
184 	0x2e1028ed, 0x2c6e8d2e, 0x2c89a79f, 0x2df5f4c7, 0x2ded352f, 0x2c92ad01, 0x2cadb2d5, 0x2dd2ebc7,
185 	0x2dca251c, 0x2cb6b155, 0x2cd1a27b, 0x2dafc683, 0x2da6f8ca, 0x2cda9a14, 0x2cf5767c, 0x2d8c8510,
186 	0x2d83b04f, 0x2cfe6728, 0x2d192ec1, 0x2d692784, 0x2d604bc0, 0x2d22187a, 0x2d3ccb34, 0x2d45adf6
187 };
188 
189 
190 const int twidTab512[(8*6 + 32*6 + 128*6)/2] = {
191 	0x40000000, 0x40000000, 0x40000000, 0x3b20187d,
192 	0x3ec50c7c, 0x3536238e, 0x2d412d41, 0x3b20187d,
193 	0x187d3b20, 0x187d3b20, 0x3536238e, 0xf3843ec5,
194 	0x00004000, 0x2d412d41, 0xd2bf2d41, 0xe7833b20,
195 	0x238e3536, 0xc13b0c7c, 0xd2bf2d41, 0x187d3b20,
196 	0xc4e0e783, 0xc4e0187d, 0x0c7c3ec5, 0xdc72caca,
197 
198 	0x40000000, 0x40000000, 0x40000000, 0x3fb10645,
199 	0x3fec0323, 0x3f4e0964, 0x3ec50c7c, 0x3fb10645,
200 	0x3d3e1294, 0x3d3e1294, 0x3f4e0964, 0x39da1b5d,
201 	0x3b20187d, 0x3ec50c7c, 0x3536238e, 0x38711e2b,
202 	0x3e140f8c, 0x2f6b2afa, 0x3536238e, 0x3d3e1294,
203 	0x28993179, 0x31792899, 0x3c42158f, 0x20e736e5,
204 	0x2d412d41, 0x3b20187d, 0x187d3b20, 0x28993179,
205 	0x39da1b5d, 0x0f8c3e14, 0x238e3536, 0x38711e2b,
206 	0x06453fb1, 0x1e2b3871, 0x36e520e7, 0xfcdd3fec,
207 	0x187d3b20, 0x3536238e, 0xf3843ec5, 0x12943d3e,
208 	0x3367261f, 0xea713c42, 0x0c7c3ec5, 0x31792899,
209 	0xe1d53871, 0x06453fb1, 0x2f6b2afa, 0xd9e13367,
210 	0x00004000, 0x2d412d41, 0xd2bf2d41, 0xf9bb3fb1,
211 	0x2afa2f6b, 0xcc99261f, 0xf3843ec5, 0x28993179,
212 	0xc78f1e2b, 0xed6c3d3e, 0x261f3367, 0xc3be158f,
213 	0xe7833b20, 0x238e3536, 0xc13b0c7c, 0xe1d53871,
214 	0x20e736e5, 0xc0140323, 0xdc723536, 0x1e2b3871,
215 	0xc04ff9bb, 0xd7673179, 0x1b5d39da, 0xc1ecf074,
216 	0xd2bf2d41, 0x187d3b20, 0xc4e0e783, 0xce872899,
217 	0x158f3c42, 0xc91bdf19, 0xcaca238e, 0x12943d3e,
218 	0xce87d767, 0xc78f1e2b, 0x0f8c3e14, 0xd506d095,
219 	0xc4e0187d, 0x0c7c3ec5, 0xdc72caca, 0xc2c21294,
220 	0x09643f4e, 0xe4a3c626, 0xc13b0c7c, 0x06453fb1,
221 	0xed6cc2c2, 0xc04f0645, 0x03233fec, 0xf69cc0b2,
222 
223 	0x40000000, 0x40000000, 0x40000000, 0x3ffb0192,
224 	0x3ffe00c9, 0x3ff4025b, 0x3fec0323, 0x3ffb0192,
225 	0x3fd304b5, 0x3fd304b5, 0x3ff4025b, 0x3f9c070d,
226 	0x3fb10645, 0x3fec0323, 0x3f4e0964, 0x3f8407d5,
227 	0x3fe103ec, 0x3eeb0bb6, 0x3f4e0964, 0x3fd304b5,
228 	0x3e710e05, 0x3f0e0af1, 0x3fc3057d, 0x3de2104f,
229 	0x3ec50c7c, 0x3fb10645, 0x3d3e1294, 0x3e710e05,
230 	0x3f9c070d, 0x3c8414d1, 0x3e140f8c, 0x3f8407d5,
231 	0x3bb61708, 0x3dae1111, 0x3f6a089c, 0x3ad21937,
232 	0x3d3e1294, 0x3f4e0964, 0x39da1b5d, 0x3cc51413,
233 	0x3f2f0a2a, 0x38cf1d79, 0x3c42158f, 0x3f0e0af1,
234 	0x37af1f8b, 0x3bb61708, 0x3eeb0bb6, 0x367c2192,
235 	0x3b20187d, 0x3ec50c7c, 0x3536238e, 0x3a8219ef,
236 	0x3e9c0d41, 0x33de257d, 0x39da1b5d, 0x3e710e05,
237 	0x3274275f, 0x392a1cc6, 0x3e440ec9, 0x30f82934,
238 	0x38711e2b, 0x3e140f8c, 0x2f6b2afa, 0x37af1f8b,
239 	0x3de2104f, 0x2dce2cb2, 0x36e520e7, 0x3dae1111,
240 	0x2c212e5a, 0x3612223d, 0x3d7711d3, 0x2a652ff1,
241 	0x3536238e, 0x3d3e1294, 0x28993179, 0x345324da,
242 	0x3d021354, 0x26c032ee, 0x3367261f, 0x3cc51413,
243 	0x24da3453, 0x3274275f, 0x3c8414d1, 0x22e635a5,
244 	0x31792899, 0x3c42158f, 0x20e736e5, 0x307629cd,
245 	0x3bfd164c, 0x1edc3811, 0x2f6b2afa, 0x3bb61708,
246 	0x1cc6392a, 0x2e5a2c21, 0x3b6c17c3, 0x1aa63a2f,
247 	0x2d412d41, 0x3b20187d, 0x187d3b20, 0x2c212e5a,
248 	0x3ad21937, 0x164c3bfd, 0x2afa2f6b, 0x3a8219ef,
249 	0x14133cc5, 0x29cd3076, 0x3a2f1aa6, 0x11d33d77,
250 	0x28993179, 0x39da1b5d, 0x0f8c3e14, 0x275f3274,
251 	0x39831c12, 0x0d413e9c, 0x261f3367, 0x392a1cc6,
252 	0x0af13f0e, 0x24da3453, 0x38cf1d79, 0x089c3f6a,
253 	0x238e3536, 0x38711e2b, 0x06453fb1, 0x223d3612,
254 	0x38111edc, 0x03ec3fe1, 0x20e736e5, 0x37af1f8b,
255 	0x01923ffb, 0x1f8b37af, 0x374b2039, 0xff373ffe,
256 	0x1e2b3871, 0x36e520e7, 0xfcdd3fec, 0x1cc6392a,
257 	0x367c2192, 0xfa833fc3, 0x1b5d39da, 0x3612223d,
258 	0xf82b3f84, 0x19ef3a82, 0x35a522e6, 0xf5d63f2f,
259 	0x187d3b20, 0x3536238e, 0xf3843ec5, 0x17083bb6,
260 	0x34c62434, 0xf1373e44, 0x158f3c42, 0x345324da,
261 	0xeeef3dae, 0x14133cc5, 0x33de257d, 0xecac3d02,
262 	0x12943d3e, 0x3367261f, 0xea713c42, 0x11113dae,
263 	0x32ee26c0, 0xe83d3b6c, 0x0f8c3e14, 0x3274275f,
264 	0xe6113a82, 0x0e053e71, 0x31f727fd, 0xe3ee3983,
265 	0x0c7c3ec5, 0x31792899, 0xe1d53871, 0x0af13f0e,
266 	0x30f82934, 0xdfc7374b, 0x09643f4e, 0x307629cd,
267 	0xddc33612, 0x07d53f84, 0x2ff12a65, 0xdbcc34c6,
268 	0x06453fb1, 0x2f6b2afa, 0xd9e13367, 0x04b53fd3,
269 	0x2ee32b8e, 0xd80331f7, 0x03233fec, 0x2e5a2c21,
270 	0xd6333076, 0x01923ffb, 0x2dce2cb2, 0xd4722ee3,
271 	0x00004000, 0x2d412d41, 0xd2bf2d41, 0xfe6e3ffb,
272 	0x2cb22dce, 0xd11d2b8e, 0xfcdd3fec, 0x2c212e5a,
273 	0xcf8a29cd, 0xfb4b3fd3, 0x2b8e2ee3, 0xce0927fd,
274 	0xf9bb3fb1, 0x2afa2f6b, 0xcc99261f, 0xf82b3f84,
275 	0x2a652ff1, 0xcb3a2434, 0xf69c3f4e, 0x29cd3076,
276 	0xc9ee223d, 0xf50f3f0e, 0x293430f8, 0xc8b52039,
277 	0xf3843ec5, 0x28993179, 0xc78f1e2b, 0xf1fb3e71,
278 	0x27fd31f7, 0xc67d1c12, 0xf0743e14, 0x275f3274,
279 	0xc57e19ef, 0xeeef3dae, 0x26c032ee, 0xc49417c3,
280 	0xed6c3d3e, 0x261f3367, 0xc3be158f, 0xebed3cc5,
281 	0x257d33de, 0xc2fe1354, 0xea713c42, 0x24da3453,
282 	0xc2521111, 0xe8f83bb6, 0x243434c6, 0xc1bc0ec9,
283 	0xe7833b20, 0x238e3536, 0xc13b0c7c, 0xe6113a82,
284 	0x22e635a5, 0xc0d10a2a, 0xe4a339da, 0x223d3612,
285 	0xc07c07d5, 0xe33a392a, 0x2192367c, 0xc03d057d,
286 	0xe1d53871, 0x20e736e5, 0xc0140323, 0xe07537af,
287 	0x2039374b, 0xc00200c9, 0xdf1936e5, 0x1f8b37af,
288 	0xc005fe6e, 0xddc33612, 0x1edc3811, 0xc01ffc14,
289 	0xdc723536, 0x1e2b3871, 0xc04ff9bb, 0xdb263453,
290 	0x1d7938cf, 0xc096f764, 0xd9e13367, 0x1cc6392a,
291 	0xc0f2f50f, 0xd8a13274, 0x1c123983, 0xc164f2bf,
292 	0xd7673179, 0x1b5d39da, 0xc1ecf074, 0xd6333076,
293 	0x1aa63a2f, 0xc289ee2d, 0xd5062f6b, 0x19ef3a82,
294 	0xc33bebed, 0xd3df2e5a, 0x19373ad2, 0xc403e9b4,
295 	0xd2bf2d41, 0x187d3b20, 0xc4e0e783, 0xd1a62c21,
296 	0x17c33b6c, 0xc5d1e55a, 0xd0952afa, 0x17083bb6,
297 	0xc6d6e33a, 0xcf8a29cd, 0x164c3bfd, 0xc7efe124,
298 	0xce872899, 0x158f3c42, 0xc91bdf19, 0xcd8c275f,
299 	0x14d13c84, 0xca5bdd1a, 0xcc99261f, 0x14133cc5,
300 	0xcbaddb26, 0xcbad24da, 0x13543d02, 0xcd12d940,
301 	0xcaca238e, 0x12943d3e, 0xce87d767, 0xc9ee223d,
302 	0x11d33d77, 0xd00fd59b, 0xc91b20e7, 0x11113dae,
303 	0xd1a6d3df, 0xc8511f8b, 0x104f3de2, 0xd34ed232,
304 	0xc78f1e2b, 0x0f8c3e14, 0xd506d095, 0xc6d61cc6,
305 	0x0ec93e44, 0xd6cccf08, 0xc6261b5d, 0x0e053e71,
306 	0xd8a1cd8c, 0xc57e19ef, 0x0d413e9c, 0xda83cc22,
307 	0xc4e0187d, 0x0c7c3ec5, 0xdc72caca, 0xc44a1708,
308 	0x0bb63eeb, 0xde6ec984, 0xc3be158f, 0x0af13f0e,
309 	0xe075c851, 0xc33b1413, 0x0a2a3f2f, 0xe287c731,
310 	0xc2c21294, 0x09643f4e, 0xe4a3c626, 0xc2521111,
311 	0x089c3f6a, 0xe6c9c52e, 0xc1ec0f8c, 0x07d53f84,
312 	0xe8f8c44a, 0xc18f0e05, 0x070d3f9c, 0xeb2fc37c,
313 	0xc13b0c7c, 0x06453fb1, 0xed6cc2c2, 0xc0f20af1,
314 	0x057d3fc3, 0xefb1c21e, 0xc0b20964, 0x04b53fd3,
315 	0xf1fbc18f, 0xc07c07d5, 0x03ec3fe1, 0xf44ac115,
316 	0xc04f0645, 0x03233fec, 0xf69cc0b2, 0xc02d04b5,
317 	0x025b3ff4, 0xf8f3c064, 0xc0140323, 0x01923ffb,
318 	0xfb4bc02d, 0xc0050192, 0x00c93ffe, 0xfda5c00c
319 };
320 
321 const int twidTab64[(4*6 + 16*6)/2] = {
322 	0x40000000, 0x40000000, 0x40000000, 0x2d412d41,
323 	0x3b20187d, 0x187d3b20, 0x00004000, 0x2d412d41,
324 	0xd2bf2d41, 0xd2bf2d41, 0x187d3b20, 0xc4e0e783,
325 
326 	0x40000000, 0x40000000, 0x40000000, 0x3ec50c7c,
327 	0x3fb10645, 0x3d3e1294, 0x3b20187d, 0x3ec50c7c,
328 	0x3536238e, 0x3536238e, 0x3d3e1294, 0x28993179,
329 	0x2d412d41, 0x3b20187d, 0x187d3b20, 0x238e3536,
330 	0x38711e2b, 0x06453fb1, 0x187d3b20, 0x3536238e,
331 	0xf3843ec5, 0x0c7c3ec5, 0x31792899, 0xe1d53871,
332 	0x00004000, 0x2d412d41, 0xd2bf2d41, 0xf3843ec5,
333 	0x28993179, 0xc78f1e2b, 0xe7833b20, 0x238e3536,
334 	0xc13b0c7c, 0xdc723536, 0x1e2b3871, 0xc04ff9bb,
335 	0xd2bf2d41, 0x187d3b20, 0xc4e0e783, 0xcaca238e,
336 	0x12943d3e, 0xce87d767, 0xc4e0187d, 0x0c7c3ec5,
337 	0xdc72caca, 0xc13b0c7c, 0x06453fb1, 0xed6cc2c2
338 };
339 
340 #elif defined ARMV7Neon
341 /*
342  *  Q29 for 128 and 1024
343  *
344  * for (i = 0; i < num/4; i++) {
345  *   angle = (i + 0.125) * M_PI / num;
346  *   x = cos(angle) * (1 << 29);
347  *   x = sin(angle) * (1 << 29);
348  *
349  *   angle = (num/2 - 1 - i + 0.125) * M_PI / num;
350  *   x = cos(angle) * (1 << 29);
351  *   x = sin(angle) * (1 << 29);
352  * }
353  */
354 const int cossintab[128 + 1024] = {
355 	/* 128 */
356 	0x1ffff621, 0x001921f9, 0x00afea69, 0x1ffe1c68, 0x1ffce09d, 0x00e22a7a, 0x0178dbaa, 0x1ff753bb,
357 	0x1ff4dc55, 0x01ab101c, 0x024192cf, 0x1feb9d25, 0x1fe7ea85, 0x0273b3e2, 0x0309f0e2, 0x1fdafa75,
358 	0x1fd60d2e, 0x033bf6dd, 0x03d1d700, 0x1fc56e3b, 0x1fbf470f, 0x0403ba2b, 0x04992653, 0x1faafbcb,
359 	0x1fa39bac, 0x04cadefe, 0x055fc022, 0x1f8ba738, 0x1f830f4a, 0x059146a1, 0x062585ca, 0x1f677557,
360 	0x1f5da6ed, 0x0656d27a, 0x06ea58cd, 0x1f3e6bbc, 0x1f33685a, 0x071b6415, 0x07ae1ad2, 0x1f1090bd,
361 	0x1f045a15, 0x07dedd20, 0x0870ada7, 0x1eddeb6a, 0x1ed0835f, 0x08a11f78, 0x0931f34d, 0x1ea68394,
362 	0x1e97ec36, 0x09620d27, 0x09f1cdf5, 0x1e6a61c5, 0x1e5a9d55, 0x0a21886e, 0x0ab02009, 0x1e298f44,
363 	0x1e18a030, 0x0adf73c6, 0x0b6ccc32, 0x1de4160f, 0x1dd1fef4, 0x0b9bb1e5, 0x0c27b555, 0x1d9a00de,
364 	0x1d86c484, 0x0c5625c3, 0x0ce0bea2, 0x1d4b5b1b, 0x1d36fc7c, 0x0d0eb2a2, 0x0d97cb8f, 0x1cf830e9,
365 	0x1ce2b328, 0x0dc53c0a, 0x0e4cbfe2, 0x1ca08f1a, 0x1c89f587, 0x0e79a5d7, 0x0eff7fb3, 0x1c448331,
366 	0x1c2cd149, 0x0f2bd437, 0x0fafef73, 0x1be41b61, 0x1bcb54cb, 0x0fdbabae, 0x105df3ec, 0x1b7f6687,
367 	0x1b658f15, 0x10891120, 0x11097249, 0x1b16742a, 0x1afb8fd9, 0x1133e9d0, 0x11b25017, 0x1aa9547a,
368 	0x1a8d676e, 0x11dc1b65, 0x1258734d, 0x1a38184a, 0x1a1b26d3, 0x12818bef, 0x12fbc24b, 0x19c2d111,
369 	0x19a4dfa4, 0x132421ec, 0x139c23e4, 0x194990e4, 0x192aa420, 0x13c3c44a, 0x14397f5b, 0x18cc6a75,
370 	0x18ac871f, 0x14605a69, 0x14d3bc6d, 0x184b7112, 0x182a9c14, 0x14f9cc26, 0x156ac352, 0x17c6b89d,
371 	0x17a4f708, 0x159001d6, 0x15fe7cbe, 0x173e558e, 0x171bac96, 0x1622e450, 0x168ed1eb, 0x16b25ced,
372 	/* 1024 */
373 	0x1fffffd9, 0x0003243f, 0x0015fdba, 0x1ffff872, 0x1ffff382, 0x001c4637, 0x002f1fa6, 0x1fffdd4d,
374 	0x1fffd36f, 0x0035681d, 0x00484175, 0x1fffae6c, 0x1fff9f9e, 0x004e89e3, 0x00616318, 0x1fff6bce,
375 	0x1fff5811, 0x0067ab77, 0x007a847e, 0x1fff1572, 0x1ffefcc6, 0x0080cccc, 0x0093a599, 0x1ffeab5b,
376 	0x1ffe8dbf, 0x0099edd2, 0x00acc658, 0x1ffe2d86, 0x1ffe0afc, 0x00b30e78, 0x00c5e6ad, 0x1ffd9bf6,
377 	0x1ffd747c, 0x00cc2eb0, 0x00df0688, 0x1ffcf6aa, 0x1ffcca41, 0x00e54e6a, 0x00f825da, 0x1ffc3da2,
378 	0x1ffc0c4b, 0x00fe6d97, 0x01114492, 0x1ffb70e0, 0x1ffb3a9a, 0x01178c27, 0x012a62a2, 0x1ffa9063,
379 	0x1ffa552e, 0x0130aa0a, 0x01437ffa, 0x1ff99c2c, 0x1ff95c09, 0x0149c731, 0x015c9c8a, 0x1ff8943c,
380 	0x1ff84f2b, 0x0162e38d, 0x0175b843, 0x1ff77893, 0x1ff72e94, 0x017bff0e, 0x018ed316, 0x1ff64932,
381 	0x1ff5fa46, 0x019519a5, 0x01a7ecf2, 0x1ff5061b, 0x1ff4b240, 0x01ae3341, 0x01c105c9, 0x1ff3af4c,
382 	0x1ff35684, 0x01c74bd5, 0x01da1d8c, 0x1ff244c8, 0x1ff1e713, 0x01e0634f, 0x01f33429, 0x1ff0c68f,
383 	0x1ff063ed, 0x01f979a1, 0x020c4993, 0x1fef34a3, 0x1feecd14, 0x02128ebb, 0x02255db9, 0x1fed8f03,
384 	0x1fed2287, 0x022ba28f, 0x023e708d, 0x1febd5b2, 0x1feb644a, 0x0244b50b, 0x025781fe, 0x1fea08b0,
385 	0x1fe9925c, 0x025dc621, 0x027091fd, 0x1fe827fe, 0x1fe7acbe, 0x0276d5c1, 0x0289a07b, 0x1fe6339d,
386 	0x1fe5b372, 0x028fe3dd, 0x02a2ad69, 0x1fe42b90, 0x1fe3a679, 0x02a8f063, 0x02bbb8b6, 0x1fe20fd6,
387 	0x1fe185d5, 0x02c1fb46, 0x02d4c253, 0x1fdfe071, 0x1fdf5186, 0x02db0475, 0x02edca32, 0x1fdd9d64,
388 	0x1fdd098e, 0x02f40be2, 0x0306d042, 0x1fdb46ae, 0x1fdaadee, 0x030d117c, 0x031fd474, 0x1fd8dc51,
389 	0x1fd83ea8, 0x03261534, 0x0338d6b8, 0x1fd65e4f, 0x1fd5bbbd, 0x033f16fb, 0x0351d700, 0x1fd3ccaa,
390 	0x1fd32530, 0x035816c1, 0x036ad53c, 0x1fd12763, 0x1fd07b00, 0x03711477, 0x0383d15c, 0x1fce6e7c,
391 	0x1fcdbd31, 0x038a100e, 0x039ccb51, 0x1fcba1f5, 0x1fcaebc3, 0x03a30975, 0x03b5c30b, 0x1fc8c1d2,
392 	0x1fc806b9, 0x03bc009f, 0x03ceb87c, 0x1fc5ce14, 0x1fc50e14, 0x03d4f57a, 0x03e7ab93, 0x1fc2c6bd,
393 	0x1fc201d7, 0x03ede7f9, 0x04009c42, 0x1fbfabcd, 0x1fbee202, 0x0406d80b, 0x04198a78, 0x1fbc7d49,
394 	0x1fbbae99, 0x041fc5a1, 0x04327628, 0x1fb93b31, 0x1fb8679c, 0x0438b0ac, 0x044b5f40, 0x1fb5e587,
395 	0x1fb50d0e, 0x0451991d, 0x046445b2, 0x1fb27c4e, 0x1fb19ef1, 0x046a7ee3, 0x047d296f, 0x1faeff87,
396 	0x1fae1d47, 0x048361f0, 0x04960a67, 0x1fab6f35, 0x1faa8813, 0x049c4235, 0x04aee88b, 0x1fa7cb5a,
397 	0x1fa6df56, 0x04b51fa1, 0x04c7c3cb, 0x1fa413f8, 0x1fa32313, 0x04cdfa26, 0x04e09c18, 0x1fa04912,
398 	0x1f9f534c, 0x04e6d1b4, 0x04f97163, 0x1f9c6aa9, 0x1f9b7003, 0x04ffa63c, 0x0512439d, 0x1f9878c1,
399 	0x1f97793b, 0x051877af, 0x052b12b6, 0x1f94735b, 0x1f936ef6, 0x053145fd, 0x0543de9e, 0x1f905a7a,
400 	0x1f8f5137, 0x054a1117, 0x055ca748, 0x1f8c2e21, 0x1f8b2000, 0x0562d8ee, 0x05756ca2, 0x1f87ee52,
401 	0x1f86db55, 0x057b9d73, 0x058e2e9f, 0x1f839b10, 0x1f828336, 0x05945e95, 0x05a6ed2e, 0x1f7f345e,
402 	0x1f7e17a8, 0x05ad1c47, 0x05bfa840, 0x1f7aba3e, 0x1f7998ad, 0x05c5d678, 0x05d85fc7, 0x1f762cb2,
403 	0x1f750647, 0x05de8d19, 0x05f113b3, 0x1f718bbf, 0x1f70607a, 0x05f7401c, 0x0609c3f5, 0x1f6cd766,
404 	0x1f6ba748, 0x060fef71, 0x0622707d, 0x1f680fab, 0x1f66dab5, 0x06289b08, 0x063b193c, 0x1f633490,
405 	0x1f61fac3, 0x064142d3, 0x0653be23, 0x1f5e4619, 0x1f5d0775, 0x0659e6c2, 0x066c5f24, 0x1f594448,
406 	0x1f5800ce, 0x067286c6, 0x0684fc2e, 0x1f542f21, 0x1f52e6d2, 0x068b22d0, 0x069d9532, 0x1f4f06a6,
407 	0x1f4db983, 0x06a3bad0, 0x06b62a22, 0x1f49cadc, 0x1f4878e5, 0x06bc4eb9, 0x06cebaee, 0x1f447bc4,
408 	0x1f4324fb, 0x06d4de79, 0x06e74786, 0x1f3f1963, 0x1f3dbdc8, 0x06ed6a03, 0x06ffcfdd, 0x1f39a3bc,
409 	0x1f384350, 0x0705f147, 0x071853e3, 0x1f341ad2, 0x1f32b595, 0x071e7436, 0x0730d388, 0x1f2e7ea9,
410 	0x1f2d149d, 0x0736f2c0, 0x07494ebd, 0x1f28cf43, 0x1f276069, 0x074f6cd7, 0x0761c574, 0x1f230ca5,
411 	0x1f2198fd, 0x0767e26c, 0x077a379d, 0x1f1d36d2, 0x1f1bbe5d, 0x07805370, 0x0792a52a, 0x1f174dce,
412 	0x1f15d08d, 0x0798bfd3, 0x07ab0e0a, 0x1f11519c, 0x1f0fcf91, 0x07b12786, 0x07c37230, 0x1f0b4240,
413 	0x1f09bb6b, 0x07c98a7a, 0x07dbd18c, 0x1f051fbe, 0x1f03941f, 0x07e1e8a1, 0x07f42c0e, 0x1efeea19,
414 	0x1efd59b3, 0x07fa41eb, 0x080c81a9, 0x1ef8a155, 0x1ef70c28, 0x0812964a, 0x0824d24d, 0x1ef24577,
415 	0x1ef0ab84, 0x082ae5ad, 0x083d1dea, 0x1eebd682, 0x1eea37ca, 0x08433007, 0x08556473, 0x1ee5547a,
416 	0x1ee3b0fe, 0x085b7548, 0x086da5d8, 0x1edebf64, 0x1edd1724, 0x0873b562, 0x0885e209, 0x1ed81742,
417 	0x1ed66a41, 0x088bf044, 0x089e18f9, 0x1ed15c1a, 0x1ecfaa57, 0x08a425e1, 0x08b64a98, 0x1eca8def,
418 	0x1ec8d76c, 0x08bc562a, 0x08ce76d8, 0x1ec3acc6, 0x1ec1f184, 0x08d4810f, 0x08e69da8, 0x1ebcb8a3,
419 	0x1ebaf8a3, 0x08eca681, 0x08febefb, 0x1eb5b18a, 0x1eb3eccd, 0x0904c673, 0x0916dac2, 0x1eae977f,
420 	0x1eacce07, 0x091ce0d4, 0x092ef0ed, 0x1ea76a87, 0x1ea59c55, 0x0934f596, 0x0947016e, 0x1ea02aa7,
421 	0x1e9e57bb, 0x094d04aa, 0x095f0c36, 0x1e98d7e2, 0x1e97003e, 0x09650e01, 0x09771136, 0x1e91723e,
422 	0x1e8f95e3, 0x097d118d, 0x098f1060, 0x1e89f9bf, 0x1e8818ad, 0x09950f3f, 0x09a709a4, 0x1e826e69,
423 	0x1e8088a2, 0x09ad0707, 0x09befcf4, 0x1e7ad041, 0x1e78e5c7, 0x09c4f8d8, 0x09d6ea40, 0x1e731f4c,
424 	0x1e71301f, 0x09dce4a1, 0x09eed17b, 0x1e6b5b8f, 0x1e6967b1, 0x09f4ca56, 0x0a06b296, 0x1e63850e,
425 	0x1e618c80, 0x0a0ca9e6, 0x0a1e8d81, 0x1e5b9bce, 0x1e599e91, 0x0a248343, 0x0a36622e, 0x1e539fd4,
426 	0x1e519dea, 0x0a3c565e, 0x0a4e308f, 0x1e4b9126, 0x1e498a8e, 0x0a542329, 0x0a65f894, 0x1e436fc7,
427 	0x1e416485, 0x0a6be995, 0x0a7dba2f, 0x1e3b3bbd, 0x1e392bd1, 0x0a83a993, 0x0a957551, 0x1e32f50e,
428 	0x1e30e079, 0x0a9b6315, 0x0aad29ec, 0x1e2a9bbd, 0x1e288281, 0x0ab3160c, 0x0ac4d7f1, 0x1e222fd1,
429 	0x1e2011ee, 0x0acac26a, 0x0adc7f52, 0x1e19b14f, 0x1e178ec7, 0x0ae2681f, 0x0af41fff, 0x1e11203b,
430 	0x1e0ef910, 0x0afa071d, 0x0b0bb9eb, 0x1e087c9b, 0x1e0650ce, 0x0b119f56, 0x0b234d07, 0x1dffc674,
431 	0x1dfd9606, 0x0b2930bb, 0x0b3ad943, 0x1df6fdcc, 0x1df4c8bf, 0x0b40bb3e, 0x0b525e92, 0x1dee22a9,
432 	0x1debe8fd, 0x0b583ecf, 0x0b69dce6, 0x1de5350f, 0x1de2f6c6, 0x0b6fbb62, 0x0b81542f, 0x1ddc3504,
433 	0x1dd9f220, 0x0b8730e6, 0x0b98c45f, 0x1dd3228e, 0x1dd0db10, 0x0b9e9f4d, 0x0bb02d68, 0x1dc9fdb2,
434 	0x1dc7b19b, 0x0bb6068a, 0x0bc78f3b, 0x1dc0c676, 0x1dbe75c8, 0x0bcd668e, 0x0bdee9ca, 0x1db77cdf,
435 	0x1db5279c, 0x0be4bf4a, 0x0bf63d07, 0x1dae20f4, 0x1dabc71d, 0x0bfc10af, 0x0c0d88e2, 0x1da4b2ba,
436 	0x1da25450, 0x0c135ab0, 0x0c24cd4e, 0x1d9b3237, 0x1d98cf3b, 0x0c2a9d3e, 0x0c3c0a3d, 0x1d919f70,
437 	0x1d8f37e5, 0x0c41d84b, 0x0c533fa0, 0x1d87fa6d, 0x1d858e53, 0x0c590bc9, 0x0c6a6d68, 0x1d7e4332,
438 	0x1d7bd28b, 0x0c7037a8, 0x0c819388, 0x1d7479c5, 0x1d720493, 0x0c875bdb, 0x0c98b1f0, 0x1d6a9e2e,
439 	0x1d682472, 0x0c9e7854, 0x0cafc894, 0x1d60b070, 0x1d5e322c, 0x0cb58d04, 0x0cc6d764, 0x1d56b094,
440 	0x1d542dc9, 0x0ccc99de, 0x0cddde53, 0x1d4c9e9f, 0x1d4a174f, 0x0ce39ed2, 0x0cf4dd52, 0x1d427a97,
441 	0x1d3feec3, 0x0cfa9bd2, 0x0d0bd452, 0x1d384483, 0x1d35b42d, 0x0d1190d1, 0x0d22c347, 0x1d2dfc68,
442 	0x1d2b6791, 0x0d287dc1, 0x0d39aa21, 0x1d23a24e, 0x1d2108f8, 0x0d3f6292, 0x0d5088d3, 0x1d19363a,
443 	0x1d169867, 0x0d563f38, 0x0d675f4e, 0x1d0eb833, 0x1d0c15e4, 0x0d6d13a3, 0x0d7e2d85, 0x1d04283f,
444 	0x1d018176, 0x0d83dfc6, 0x0d94f369, 0x1cf98666, 0x1cf6db24, 0x0d9aa393, 0x0dabb0ec, 0x1ceed2ad,
445 	0x1cec22f4, 0x0db15efc, 0x0dc26600, 0x1ce40d1b, 0x1ce158ed, 0x0dc811f3, 0x0dd91298, 0x1cd935b7,
446 	0x1cd67d15, 0x0ddebc69, 0x0defb6a5, 0x1cce4c87, 0x1ccb8f74, 0x0df55e51, 0x0e065219, 0x1cc35192,
447 	0x1cc0900f, 0x0e0bf79c, 0x0e1ce4e6, 0x1cb844df, 0x1cb57eee, 0x0e22883e, 0x0e336eff, 0x1cad2675,
448 	0x1caa5c17, 0x0e391027, 0x0e49f055, 0x1ca1f65b, 0x1c9f2792, 0x0e4f8f4b, 0x0e6068db, 0x1c96b497,
449 	0x1c93e165, 0x0e66059a, 0x0e76d883, 0x1c8b6131, 0x1c888997, 0x0e7c7308, 0x0e8d3f3e, 0x1c7ffc2f,
450 	0x1c7d202f, 0x0e92d787, 0x0ea39d00, 0x1c748599, 0x1c71a535, 0x0ea93308, 0x0eb9f1ba, 0x1c68fd75,
451 	0x1c6618ae, 0x0ebf857d, 0x0ed03d5e, 0x1c5d63ca, 0x1c5a7aa4, 0x0ed5ceda, 0x0ee67fdf, 0x1c51b8a1,
452 	0x1c4ecb1c, 0x0eec0f10, 0x0efcb92f, 0x1c45fc00, 0x1c430a1d, 0x0f024612, 0x0f12e941, 0x1c3a2ded,
453 	0x1c3737b0, 0x0f1873d2, 0x0f291006, 0x1c2e4e72, 0x1c2b53db, 0x0f2e9842, 0x0f3f2d71, 0x1c225d94,
454 	0x1c1f5ea6, 0x0f44b354, 0x0f554175, 0x1c165b5b, 0x1c135818, 0x0f5ac4fc, 0x0f6b4c03, 0x1c0a47cf,
455 	0x1c074038, 0x0f70cd2a, 0x0f814d0e, 0x1bfe22f8, 0x1bfb170f, 0x0f86cbd3, 0x0f974489, 0x1bf1ecdb,
456 	0x1beedca2, 0x0f9cc0e7, 0x0fad3265, 0x1be5a582, 0x1be290fb, 0x0fb2ac5a, 0x0fc31697, 0x1bd94cf4,
457 	0x1bd63421, 0x0fc88e1e, 0x0fd8f10f, 0x1bcce337, 0x1bc9c61a, 0x0fde6626, 0x0feec1c0, 0x1bc06855,
458 	0x1bbd46f0, 0x0ff43464, 0x1004889e, 0x1bb3dc55, 0x1bb0b6a9, 0x1009f8cb, 0x101a459a, 0x1ba73f3d,
459 	0x1ba4154d, 0x101fb34d, 0x102ff8a8, 0x1b9a9117, 0x1b9762e4, 0x103563dc, 0x1045a1b9, 0x1b8dd1ea,
460 	0x1b8a9f77, 0x104b0a6c, 0x105b40c1, 0x1b8101be, 0x1b7dcb0c, 0x1060a6ef, 0x1070d5b1, 0x1b74209b,
461 	0x1b70e5ac, 0x10763958, 0x1086607e, 0x1b672e88, 0x1b63ef5f, 0x108bc19a, 0x109be119, 0x1b5a2b8e,
462 	0x1b56e82c, 0x10a13fa6, 0x10b15775, 0x1b4d17b4, 0x1b49d01c, 0x10b6b371, 0x10c6c385, 0x1b3ff304,
463 	0x1b3ca737, 0x10cc1cec, 0x10dc253c, 0x1b32bd84, 0x1b2f6d85, 0x10e17c0b, 0x10f17c8d, 0x1b25773d,
464 	0x1b22230e, 0x10f6d0c0, 0x1106c96a, 0x1b182038, 0x1b14c7da, 0x110c1afe, 0x111c0bc6, 0x1b0ab87c,
465 	0x1b075bf1, 0x11215ab8, 0x11314395, 0x1afd4012, 0x1af9df5d, 0x11368fe1, 0x114670c8, 0x1aefb702,
466 	0x1aec5225, 0x114bba6b, 0x115b9354, 0x1ae21d54, 0x1adeb451, 0x1160da4b, 0x1170ab2a, 0x1ad47311,
467 	0x1ad105e9, 0x1175ef72, 0x1185b83f, 0x1ac6b841, 0x1ac346f8, 0x118af9d4, 0x119aba84, 0x1ab8ecec,
468 	0x1ab57784, 0x119ff964, 0x11afb1ee, 0x1aab111c, 0x1aa79796, 0x11b4ee14, 0x11c49e6f, 0x1a9d24d9,
469 	0x1a99a737, 0x11c9d7d9, 0x11d97ff9, 0x1a8f282b, 0x1a8ba670, 0x11deb6a4, 0x11ee5682, 0x1a811b1b,
470 	0x1a7d9549, 0x11f38a6a, 0x120321fa, 0x1a72fdb2, 0x1a6f73ca, 0x1208531c, 0x1217e256, 0x1a64cff8,
471 	0x1a6141fd, 0x121d10af, 0x122c9789, 0x1a5691f5, 0x1a52ffeb, 0x1231c316, 0x12414186, 0x1a4843b4,
472 	0x1a44ad9b, 0x12466a44, 0x1255e041, 0x1a39e53d, 0x1a364b17, 0x125b062b, 0x126a73ac, 0x1a2b7698,
473 	0x1a27d868, 0x126f96c1, 0x127efbbb, 0x1a1cf7ce, 0x1a195597, 0x12841bf6, 0x12937861, 0x1a0e68e9,
474 	0x1a0ac2ac, 0x129895c0, 0x12a7e991, 0x19ffc9f1, 0x19fc1fb1, 0x12ad0412, 0x12bc4f40, 0x19f11af0,
475 	0x19ed6caf, 0x12c166de, 0x12d0a960, 0x19e25bee, 0x19dea9ae, 0x12d5be18, 0x12e4f7e5, 0x19d38cf4,
476 	0x19cfd6b8, 0x12ea09b4, 0x12f93ac2, 0x19c4ae0c, 0x19c0f3d6, 0x12fe49a6, 0x130d71eb, 0x19b5bf3f,
477 	0x19b20111, 0x13127de0, 0x13219d53, 0x19a6c096, 0x19a2fe73, 0x1326a656, 0x1335bcef, 0x1997b21b,
478 	0x1993ec04, 0x133ac2fc, 0x1349d0b0, 0x198893d6, 0x1984c9ce, 0x134ed3c5, 0x135dd88c, 0x197965d0,
479 	0x197597da, 0x1362d8a6, 0x1371d476, 0x196a2815, 0x19665632, 0x1376d191, 0x1385c461, 0x195adaab,
480 	0x195704df, 0x138abe7b, 0x1399a841, 0x194b7d9e, 0x1947a3eb, 0x139e9f56, 0x13ad800a, 0x193c10f7,
481 	0x1938335e, 0x13b27417, 0x13c14bb0, 0x192c94bf, 0x1928b343, 0x13c63cb2, 0x13d50b26, 0x191d08ff,
482 	0x191923a3, 0x13d9f91b, 0x13e8be60, 0x190d6dc1, 0x19098488, 0x13eda944, 0x13fc6553, 0x18fdc310,
483 	0x18f9d5fa, 0x14014d23, 0x140ffff1, 0x18ee08f4, 0x18ea1805, 0x1414e4aa, 0x14238e2f, 0x18de3f77,
484 	0x18da4ab2, 0x14286fce, 0x14371001, 0x18ce66a3, 0x18ca6e0a, 0x143bee83, 0x144a855b, 0x18be7e82,
485 	0x18ba8217, 0x144f60bd, 0x145dee30, 0x18ae871e, 0x18aa86e3, 0x1462c670, 0x14714a76, 0x189e8080,
486 	0x189a7c78, 0x14761f8f, 0x14849a1f, 0x188e6ab2, 0x188a62e0, 0x14896c0f, 0x1497dd20, 0x187e45be,
487 	0x187a3a25, 0x149cabe4, 0x14ab136d, 0x186e11af, 0x186a0250, 0x14afdf03, 0x14be3cfa, 0x185dce8e,
488 	0x1859bb6c, 0x14c3055e, 0x14d159bc, 0x184d7c65, 0x18496583, 0x14d61eeb, 0x14e469a6, 0x183d1b3e,
489 	0x1839009e, 0x14e92b9e, 0x14f76cad, 0x182cab24, 0x18288cc8, 0x14fc2b6a, 0x150a62c6, 0x181c2c20,
490 	0x18180a0c, 0x150f1e45, 0x151d4be3, 0x180b9e3d, 0x18077873, 0x15220422, 0x153027fb, 0x17fb0185,
491 	0x17f6d807, 0x1534dcf6, 0x1542f700, 0x17ea5602, 0x17e628d3, 0x1547a8b5, 0x1555b8e8, 0x17d99bbe,
492 	0x17d56ae0, 0x155a6754, 0x15686da7, 0x17c8d2c4, 0x17c49e3b, 0x156d18c7, 0x157b1532, 0x17b7fb1f,
493 	0x17b3c2ec, 0x157fbd03, 0x158daf7c, 0x17a714d7, 0x17a2d8fe, 0x159253fb, 0x15a03c7a, 0x17961ff9,
494 	0x1791e07b, 0x15a4dda5, 0x15b2bc22, 0x17851c8e, 0x1780d96f, 0x15b759f5, 0x15c52e67, 0x17740aa1,
495 	0x176fc3e3, 0x15c9c8e0, 0x15d7933f, 0x1762ea3d, 0x175e9fe2, 0x15dc2a5a, 0x15e9ea9d, 0x1751bb6b,
496 	0x174d6d77, 0x15ee7e58, 0x15fc3477, 0x17407e37, 0x173c2cac, 0x1600c4cf, 0x160e70c1, 0x172f32ab,
497 	0x172add8c, 0x1612fdb3, 0x16209f70, 0x171dd8d2, 0x17198021, 0x162528fa, 0x1632c078, 0x170c70b7,
498 	0x17081477, 0x16374697, 0x1644d3d0, 0x16fafa64, 0x16f69a97, 0x16495680, 0x1656d96a, 0x16e975e4,
499 	0x16e5128e, 0x165b58aa, 0x1668d13e, 0x16d7e341, 0x16d37c65, 0x166d4d0a, 0x167abb3e, 0x16c64288,
500 	0x16c1d827, 0x167f3394, 0x168c9760, 0x16b493c2, 0x16b025e0, 0x16910c3d, 0x169e659a, 0x16a2d6fb
501 };
502 
503 const int twidTab512[8*6 + 32*6 + 128*6] = {
504 	0x20000000, 0x00000000, 0x1d906bcf, 0x0c3ef153, 0x16a09e66, 0x16a09e66, 0x0c3ef153, 0x1d906bcf,
505 	0x20000000, 0x00000000, 0x1f6297d0, 0x063e2e0f, 0x1d906bcf, 0x0c3ef153, 0x1a9b6629, 0x11c73b3a,
506 	0x20000000, 0x00000000, 0x1a9b6629, 0x11c73b3a, 0x0c3ef153, 0x1d906bcf, 0xf9c1d1f1, 0x1f6297d0,
507 	0x00000000, 0x20000000, 0xf3c10ead, 0x1d906bcf, 0xe95f619a, 0x16a09e66, 0xe26f9431, 0x0c3ef153,
508 	0x16a09e66, 0x16a09e66, 0x11c73b3a, 0x1a9b6629, 0x0c3ef153, 0x1d906bcf, 0x063e2e0f, 0x1f6297d0,
509 	0xe95f619a, 0x16a09e66, 0xe09d6830, 0x063e2e0f, 0xe26f9431, 0xf3c10ead, 0xee38c4c6, 0xe56499d7,
510 
511 	0x20000000, 0x00000000, 0x1fd88da4, 0x0322f4d8, 0x1f6297d0, 0x063e2e0f, 0x1e9f4157, 0x094a0317,
512 	0x20000000, 0x00000000, 0x1ff621e3, 0x0191f65f, 0x1fd88da4, 0x0322f4d8, 0x1fa7557f, 0x04b2041c,
513 	0x20000000, 0x00000000, 0x1fa7557f, 0x04b2041c, 0x1e9f4157, 0x094a0317, 0x1ced7af4, 0x0dae8805,
514 	0x1d906bcf, 0x0c3ef153, 0x1c38b2f2, 0x0f15ae9c, 0x1a9b6629, 0x11c73b3a, 0x18bc806b, 0x144cf325,
515 	0x1f6297d0, 0x063e2e0f, 0x1f0a7efc, 0x07c67e5f, 0x1e9f4157, 0x094a0317, 0x1e212105, 0x0ac7cd3b,
516 	0x1a9b6629, 0x11c73b3a, 0x17b5df22, 0x157d6935, 0x144cf325, 0x18bc806b, 0x10738799, 0x1b728345,
517 	0x16a09e66, 0x16a09e66, 0x144cf325, 0x18bc806b, 0x11c73b3a, 0x1a9b6629, 0x0f15ae9c, 0x1c38b2f2,
518 	0x1d906bcf, 0x0c3ef153, 0x1ced7af4, 0x0dae8805, 0x1c38b2f2, 0x0f15ae9c, 0x1b728345, 0x10738799,
519 	0x0c3ef153, 0x1d906bcf, 0x07c67e5f, 0x1f0a7efc, 0x0322f4d8, 0x1fd88da4, 0xfe6e09a1, 0x1ff621e3,
520 	0x0c3ef153, 0x1d906bcf, 0x094a0317, 0x1e9f4157, 0x063e2e0f, 0x1f6297d0, 0x0322f4d8, 0x1fd88da4,
521 	0x1a9b6629, 0x11c73b3a, 0x19b3e048, 0x130ff7fd, 0x18bc806b, 0x144cf325, 0x17b5df22, 0x157d6935,
522 	0xf9c1d1f1, 0x1f6297d0, 0xf53832c5, 0x1e212105, 0xf0ea5164, 0x1c38b2f2, 0xecf00803, 0x19b3e048,
523 	0x00000000, 0x20000000, 0xfcdd0b28, 0x1fd88da4, 0xf9c1d1f1, 0x1f6297d0, 0xf6b5fce9, 0x1e9f4157,
524 	0x16a09e66, 0x16a09e66, 0x157d6935, 0x17b5df22, 0x144cf325, 0x18bc806b, 0x130ff7fd, 0x19b3e048,
525 	0xe95f619a, 0x16a09e66, 0xe64c1fb8, 0x130ff7fd, 0xe3c74d0e, 0x0f15ae9c, 0xe1dedefb, 0x0ac7cd3b,
526 	0xf3c10ead, 0x1d906bcf, 0xf0ea5164, 0x1c38b2f2, 0xee38c4c6, 0x1a9b6629, 0xebb30cdb, 0x18bc806b,
527 	0x11c73b3a, 0x1a9b6629, 0x10738799, 0x1b728345, 0x0f15ae9c, 0x1c38b2f2, 0x0dae8805, 0x1ced7af4,
528 	0xe09d6830, 0x063e2e0f, 0xe009de1d, 0x0191f65f, 0xe027725c, 0xfcdd0b28, 0xe0f58104, 0xf83981a1,
529 	0xe95f619a, 0x16a09e66, 0xe7437f95, 0x144cf325, 0xe56499d7, 0x11c73b3a, 0xe3c74d0e, 0x0f15ae9c,
530 	0x0c3ef153, 0x1d906bcf, 0x0ac7cd3b, 0x1e212105, 0x094a0317, 0x1e9f4157, 0x07c67e5f, 0x1f0a7efc,
531 	0xe26f9431, 0xf3c10ead, 0xe48d7cbb, 0xef8c7867, 0xe7437f95, 0xebb30cdb, 0xea8296cb, 0xe84a20de,
532 	0xe26f9431, 0x0c3ef153, 0xe160bea9, 0x094a0317, 0xe09d6830, 0x063e2e0f, 0xe027725c, 0x0322f4d8,
533 	0x063e2e0f, 0x1f6297d0, 0x04b2041c, 0x1fa7557f, 0x0322f4d8, 0x1fd88da4, 0x0191f65f, 0x1ff621e3,
534 	0xee38c4c6, 0xe56499d7, 0xf25177fb, 0xe312850c, 0xf6b5fce9, 0xe160bea9, 0xfb4dfbe4, 0xe058aa81,
535 
536 	0x20000000, 0x00000000, 0x1ffd8861, 0x00c90ab0, 0x1ff621e3, 0x0191f65f, 0x1fe9cdad, 0x025aa412,
537 	0x20000000, 0x00000000, 0x1fff6217, 0x00648748, 0x1ffd8861, 0x00c90ab0, 0x1ffa72f0, 0x012d8657,
538 	0x20000000, 0x00000000, 0x1ffa72f0, 0x012d8657, 0x1fe9cdad, 0x025aa412, 0x1fce15fd, 0x0386f0b9,
539 	0x1fd88da4, 0x0322f4d8, 0x1fc26471, 0x03eac9cb, 0x1fa7557f, 0x04b2041c, 0x1f8764fa, 0x05788511,
540 	0x1ff621e3, 0x0191f65f, 0x1ff09566, 0x01f656e8, 0x1fe9cdad, 0x025aa412, 0x1fe1cafd, 0x02beda01,
541 	0x1fa7557f, 0x04b2041c, 0x1f7599a4, 0x05db7678, 0x1f38f3ac, 0x0702e09b, 0x1ef178a4, 0x0827dc07,
542 	0x1f6297d0, 0x063e2e0f, 0x1f38f3ac, 0x0702e09b, 0x1f0a7efc, 0x07c67e5f, 0x1ed740e7, 0x0888e931,
543 	0x1fd88da4, 0x0322f4d8, 0x1fce15fd, 0x0386f0b9, 0x1fc26471, 0x03eac9cb, 0x1fb57972, 0x044e7c34,
544 	0x1e9f4157, 0x094a0317, 0x1e426a4b, 0x0a68f121, 0x1ddb13b7, 0x0b844298, 0x1d696174, 0x0c9b9532,
545 	0x1e9f4157, 0x094a0317, 0x1e6288ec, 0x0a09ae4a, 0x1e212105, 0x0ac7cd3b, 0x1ddb13b7, 0x0b844298,
546 	0x1fa7557f, 0x04b2041c, 0x1f97f925, 0x05155dac, 0x1f8764fa, 0x05788511, 0x1f7599a4, 0x05db7678,
547 	0x1ced7af4, 0x0dae8805, 0x1c678b35, 0x0ebcbbae, 0x1bd7c0ac, 0x0fc5d26e, 0x1b3e4d3f, 0x10c9704d,
548 	0x1d906bcf, 0x0c3ef153, 0x1d4134d1, 0x0cf7bca2, 0x1ced7af4, 0x0dae8805, 0x1c954b21, 0x0e63374d,
549 	0x1f6297d0, 0x063e2e0f, 0x1f4e603b, 0x06a0a809, 0x1f38f3ac, 0x0702e09b, 0x1f2252f7, 0x0764d3f9,
550 	0x1a9b6629, 0x11c73b3a, 0x19ef43ef, 0x12bedb26, 0x193a224a, 0x13affa29, 0x187c4010, 0x149a449c,
551 	0x1c38b2f2, 0x0f15ae9c, 0x1bd7c0ac, 0x0fc5d26e, 0x1b728345, 0x10738799, 0x1b090a58, 0x111eb354,
552 	0x1f0a7efc, 0x07c67e5f, 0x1ef178a4, 0x0827dc07, 0x1ed740e7, 0x0888e931, 0x1ebbd8c9, 0x08e9a220,
553 	0x17b5df22, 0x157d6935, 0x16e74455, 0x16591926, 0x1610b755, 0x172d0838, 0x15328293, 0x17f8ece3,
554 	0x1a9b6629, 0x11c73b3a, 0x1a29a7a0, 0x126d054d, 0x19b3e048, 0x130ff7fd, 0x193a224a, 0x13affa29,
555 	0x1e9f4157, 0x094a0317, 0x1e817bab, 0x09aa0861, 0x1e6288ec, 0x0a09ae4a, 0x1e426a4b, 0x0a68f121,
556 	0x144cf325, 0x18bc806b, 0x136058b1, 0x19777ef5, 0x126d054d, 0x1a29a7a0, 0x11734d64, 0x1ad2bc9e,
557 	0x18bc806b, 0x144cf325, 0x183b0e0c, 0x14e6cabc, 0x17b5df22, 0x157d6935, 0x172d0838, 0x1610b755,
558 	0x1e212105, 0x0ac7cd3b, 0x1dfeae62, 0x0b263eef, 0x1ddb13b7, 0x0b844298, 0x1db65262, 0x0be1d499,
559 	0x10738799, 0x1b728345, 0x0f6e0ca9, 0x1c08c426, 0x0e63374d, 0x1c954b21, 0x0d536416, 0x1d17e774,
560 	0x16a09e66, 0x16a09e66, 0x1610b755, 0x172d0838, 0x157d6935, 0x17b5df22, 0x14e6cabc, 0x183b0e0c,
561 	0x1d906bcf, 0x0c3ef153, 0x1d696174, 0x0c9b9532, 0x1d4134d1, 0x0cf7bca2, 0x1d17e774, 0x0d536416,
562 	0x0c3ef153, 0x1d906bcf, 0x0b263eef, 0x1dfeae62, 0x0a09ae4a, 0x1e6288ec, 0x08e9a220, 0x1ebbd8c9,
563 	0x144cf325, 0x18bc806b, 0x13affa29, 0x193a224a, 0x130ff7fd, 0x19b3e048, 0x126d054d, 0x1a29a7a0,
564 	0x1ced7af4, 0x0dae8805, 0x1cc1f0f4, 0x0e0924ec, 0x1c954b21, 0x0e63374d, 0x1c678b35, 0x0ebcbbae,
565 	0x07c67e5f, 0x1f0a7efc, 0x06a0a809, 0x1f4e603b, 0x05788511, 0x1f8764fa, 0x044e7c34, 0x1fb57972,
566 	0x11c73b3a, 0x1a9b6629, 0x111eb354, 0x1b090a58, 0x10738799, 0x1b728345, 0x0fc5d26e, 0x1bd7c0ac,
567 	0x1c38b2f2, 0x0f15ae9c, 0x1c08c426, 0x0f6e0ca9, 0x1bd7c0ac, 0x0fc5d26e, 0x1ba5aa67, 0x101cfc87,
568 	0x0322f4d8, 0x1fd88da4, 0x01f656e8, 0x1ff09566, 0x00c90ab0, 0x1ffd8861, 0xff9b78b8, 0x1fff6217,
569 	0x0f15ae9c, 0x1c38b2f2, 0x0e63374d, 0x1c954b21, 0x0dae8805, 0x1ced7af4, 0x0cf7bca2, 0x1d4134d1,
570 	0x1b728345, 0x10738799, 0x1b3e4d3f, 0x10c9704d, 0x1b090a58, 0x111eb354, 0x1ad2bc9e, 0x11734d64,
571 	0xfe6e09a1, 0x1ff621e3, 0xfd4125ff, 0x1fe1cafd, 0xfc153635, 0x1fc26471, 0xfaeaa254, 0x1f97f925,
572 	0x0c3ef153, 0x1d906bcf, 0x0b844298, 0x1ddb13b7, 0x0ac7cd3b, 0x1e212105, 0x0a09ae4a, 0x1e6288ec,
573 	0x1a9b6629, 0x11c73b3a, 0x1a63091b, 0x121a7999, 0x1a29a7a0, 0x126d054d, 0x19ef43ef, 0x12bedb26,
574 	0xf9c1d1f1, 0x1f6297d0, 0xf89b2c07, 0x1f2252f7, 0xf77716cf, 0x1ed740e7, 0xf655f79f, 0x1e817bab,
575 	0x094a0317, 0x1e9f4157, 0x0888e931, 0x1ed740e7, 0x07c67e5f, 0x1f0a7efc, 0x0702e09b, 0x1f38f3ac,
576 	0x19b3e048, 0x130ff7fd, 0x19777ef5, 0x136058b1, 0x193a224a, 0x13affa29, 0x18fbcca4, 0x13fed953,
577 	0xf53832c5, 0x1e212105, 0xf41e2b67, 0x1db65262, 0xf308435e, 0x1d4134d1, 0xf1f6db14, 0x1cc1f0f4,
578 	0x063e2e0f, 0x1f6297d0, 0x05788511, 0x1f8764fa, 0x04b2041c, 0x1fa7557f, 0x03eac9cb, 0x1fc26471,
579 	0x18bc806b, 0x144cf325, 0x187c4010, 0x149a449c, 0x183b0e0c, 0x14e6cabc, 0x17f8ece3, 0x15328293,
580 	0xf0ea5164, 0x1c38b2f2, 0xefe30379, 0x1ba5aa67, 0xeee14cac, 0x1b090a58, 0xede58667, 0x1a63091b,
581 	0x0322f4d8, 0x1fd88da4, 0x025aa412, 0x1fe9cdad, 0x0191f65f, 0x1ff621e3, 0x00c90ab0, 0x1ffd8861,
582 	0x17b5df22, 0x157d6935, 0x1771e75f, 0x15c77bbe, 0x172d0838, 0x1610b755, 0x16e74455, 0x16591926,
583 	0xecf00803, 0x19b3e048, 0xec0126ad, 0x18fbcca4, 0xeb193544, 0x183b0e0c, 0xea388442, 0x1771e75f,
584 	0x00000000, 0x20000000, 0xff36f550, 0x1ffd8861, 0xfe6e09a1, 0x1ff621e3, 0xfda55bee, 0x1fe9cdad,
585 	0x16a09e66, 0x16a09e66, 0x16591926, 0x16e74455, 0x1610b755, 0x172d0838, 0x15c77bbe, 0x1771e75f,
586 	0xe95f619a, 0x16a09e66, 0xe88e18a1, 0x15c77bbe, 0xe7c4f1f4, 0x14e6cabc, 0xe704335c, 0x13fed953,
587 	0xfcdd0b28, 0x1fd88da4, 0xfc153635, 0x1fc26471, 0xfb4dfbe4, 0x1fa7557f, 0xfa877aef, 0x1f8764fa,
588 	0x157d6935, 0x17b5df22, 0x15328293, 0x17f8ece3, 0x14e6cabc, 0x183b0e0c, 0x149a449c, 0x187c4010,
589 	0xe64c1fb8, 0x130ff7fd, 0xe59cf6e5, 0x121a7999, 0xe4f6f5a8, 0x111eb354, 0xe45a5599, 0x101cfc87,
590 	0xf9c1d1f1, 0x1f6297d0, 0xf8fd1f65, 0x1f38f3ac, 0xf83981a1, 0x1f0a7efc, 0xf77716cf, 0x1ed740e7,
591 	0x144cf325, 0x18bc806b, 0x13fed953, 0x18fbcca4, 0x13affa29, 0x193a224a, 0x136058b1, 0x19777ef5,
592 	0xe3c74d0e, 0x0f15ae9c, 0xe33e0f0c, 0x0e0924ec, 0xe2becb2f, 0x0cf7bca2, 0xe249ad9e, 0x0be1d499,
593 	0xf6b5fce9, 0x1e9f4157, 0xf5f651b6, 0x1e6288ec, 0xf53832c5, 0x1e212105, 0xf47bbd68, 0x1ddb13b7,
594 	0x130ff7fd, 0x19b3e048, 0x12bedb26, 0x19ef43ef, 0x126d054d, 0x1a29a7a0, 0x121a7999, 0x1a63091b,
595 	0xe1dedefb, 0x0ac7cd3b, 0xe17e8455, 0x09aa0861, 0xe128bf19, 0x0888e931, 0xe0ddad09, 0x0764d3f9,
596 	0xf3c10ead, 0x1d906bcf, 0xf308435e, 0x1d4134d1, 0xf25177fb, 0x1ced7af4, 0xf19cc8b3, 0x1c954b21,
597 	0x11c73b3a, 0x1a9b6629, 0x11734d64, 0x1ad2bc9e, 0x111eb354, 0x1b090a58, 0x10c9704d, 0x1b3e4d3f,
598 	0xe09d6830, 0x063e2e0f, 0xe06806db, 0x05155dac, 0xe03d9b8f, 0x03eac9cb, 0xe01e3503, 0x02beda01,
599 	0xf0ea5164, 0x1c38b2f2, 0xf03a2d92, 0x1bd7c0ac, 0xef8c7867, 0x1b728345, 0xeee14cac, 0x1b090a58,
600 	0x10738799, 0x1b728345, 0x101cfc87, 0x1ba5aa67, 0x0fc5d26e, 0x1bd7c0ac, 0x0f6e0ca9, 0x1c08c426,
601 	0xe009de1d, 0x0191f65f, 0xe0009de9, 0x00648748, 0xe002779f, 0xff36f550, 0xe00f6a9a, 0xfe09a918,
602 	0xee38c4c6, 0x1a9b6629, 0xed92fab3, 0x1a29a7a0, 0xecf00803, 0x19b3e048, 0xec5005d7, 0x193a224a,
603 	0x0f15ae9c, 0x1c38b2f2, 0x0ebcbbae, 0x1c678b35, 0x0e63374d, 0x1c954b21, 0x0e0924ec, 0x1cc1f0f4,
604 	0xe027725c, 0xfcdd0b28, 0xe04a868e, 0xfbb183cc, 0xe0789b06, 0xfa877aef, 0xe0b19fc5, 0xf95f57f7,
605 	0xebb30cdb, 0x18bc806b, 0xeb193544, 0x183b0e0c, 0xea8296cb, 0x17b5df22, 0xe9ef48ab, 0x172d0838,
606 	0x0dae8805, 0x1ced7af4, 0x0d536416, 0x1d17e774, 0x0cf7bca2, 0x1d4134d1, 0x0c9b9532, 0x1d696174,
607 	0xe0f58104, 0xf83981a1, 0xe1442737, 0xf7165de0, 0xe19d7714, 0xf5f651b6, 0xe201519e, 0xf4d9c111,
608 	0xe95f619a, 0x16a09e66, 0xe8d2f7c8, 0x1610b755, 0xe84a20de, 0x157d6935, 0xe7c4f1f4, 0x14e6cabc,
609 	0x0c3ef153, 0x1d906bcf, 0x0be1d499, 0x1db65262, 0x0b844298, 0x1ddb13b7, 0x0b263eef, 0x1dfeae62,
610 	0xe26f9431, 0xf3c10ead, 0xe2e8188c, 0xf2ac9bea, 0xe36ab4df, 0xf19cc8b3, 0xe3f73bda, 0xf091f357,
611 	0xe7437f95, 0x144cf325, 0xe6c5ddb6, 0x13affa29, 0xe64c1fb8, 0x130ff7fd, 0xe5d65860, 0x126d054d,
612 	0x0ac7cd3b, 0x1e212105, 0x0a68f121, 0x1e426a4b, 0x0a09ae4a, 0x1e6288ec, 0x09aa0861, 0x1e817bab,
613 	0xe48d7cbb, 0xef8c7867, 0xe52d4362, 0xee8cb29c, 0xe5d65860, 0xed92fab3, 0xe688810b, 0xec9fa74f,
614 	0xe56499d7, 0x11c73b3a, 0xe4f6f5a8, 0x111eb354, 0xe48d7cbb, 0x10738799, 0xe4283f54, 0x0fc5d26e,
615 	0x094a0317, 0x1e9f4157, 0x08e9a220, 0x1ebbd8c9, 0x0888e931, 0x1ed740e7, 0x0827dc07, 0x1ef178a4,
616 	0xe7437f95, 0xebb30cdb, 0xe807131d, 0xeacd7d6d, 0xe8d2f7c8, 0xe9ef48ab, 0xe9a6e6da, 0xe918bbab,
617 	0xe3c74d0e, 0x0f15ae9c, 0xe36ab4df, 0x0e63374d, 0xe312850c, 0x0dae8805, 0xe2becb2f, 0x0cf7bca2,
618 	0x07c67e5f, 0x1f0a7efc, 0x0764d3f9, 0x1f2252f7, 0x0702e09b, 0x1f38f3ac, 0x06a0a809, 0x1f4e603b,
619 	0xea8296cb, 0xe84a20de, 0xeb65bb64, 0xe783bff0, 0xec5005d7, 0xe6c5ddb6, 0xed4124da, 0xe610bc11,
620 	0xe26f9431, 0x0c3ef153, 0xe224ec49, 0x0b844298, 0xe1dedefb, 0x0ac7cd3b, 0xe19d7714, 0x0a09ae4a,
621 	0x063e2e0f, 0x1f6297d0, 0x05db7678, 0x1f7599a4, 0x05788511, 0x1f8764fa, 0x05155dac, 0x1f97f925,
622 	0xee38c4c6, 0xe56499d7, 0xef368fb3, 0xe4c1b2c1, 0xf03a2d92, 0xe4283f54, 0xf1434452, 0xe39874cb,
623 	0xe160bea9, 0x094a0317, 0xe128bf19, 0x0888e931, 0xe0f58104, 0x07c67e5f, 0xe0c70c54, 0x0702e09b,
624 	0x04b2041c, 0x1fa7557f, 0x044e7c34, 0x1fb57972, 0x03eac9cb, 0x1fc26471, 0x0386f0b9, 0x1fce15fd,
625 	0xf25177fb, 0xe312850c, 0xf3646ace, 0xe2969e8c, 0xf47bbd68, 0xe224ec49, 0xf5970edf, 0xe1bd95b5,
626 	0xe09d6830, 0x063e2e0f, 0xe0789b06, 0x05788511, 0xe058aa81, 0x04b2041c, 0xe03d9b8f, 0x03eac9cb,
627 	0x0322f4d8, 0x1fd88da4, 0x02beda01, 0x1fe1cafd, 0x025aa412, 0x1fe9cdad, 0x01f656e8, 0x1ff09566,
628 	0xf6b5fce9, 0xe160bea9, 0xf7d823f9, 0xe10e875c, 0xf8fd1f65, 0xe0c70c54, 0xfa248988, 0xe08a665c,
629 	0xe027725c, 0x0322f4d8, 0xe0163253, 0x025aa412, 0xe009de1d, 0x0191f65f, 0xe002779f, 0x00c90ab0,
630 	0x0191f65f, 0x1ff621e3, 0x012d8657, 0x1ffa72f0, 0x00c90ab0, 0x1ffd8861, 0x00648748, 0x1fff6217,
631 	0xfb4dfbe4, 0xe058aa81, 0xfc790f47, 0xe031ea03, 0xfda55bee, 0xe0163253, 0xfed279a9, 0xe0058d10
632 };
633 
634 const int twidTab64[4*6 + 16*6] = {
635 	0x20000000, 0x00000000, 0x16a09e66, 0x16a09e66, 0x00000000, 0x20000000, 0xe95f619a, 0x16a09e66,
636 	0x20000000, 0x00000000, 0x1d906bcf, 0x0c3ef153, 0x16a09e66, 0x16a09e66, 0x0c3ef153, 0x1d906bcf,
637 	0x20000000, 0x00000000, 0x0c3ef153, 0x1d906bcf, 0xe95f619a, 0x16a09e66, 0xe26f9431, 0xf3c10ead,
638 
639 	0x20000000, 0x00000000, 0x1f6297d0, 0x063e2e0f, 0x1d906bcf, 0x0c3ef153, 0x1a9b6629, 0x11c73b3a,
640 	0x20000000, 0x00000000, 0x1fd88da4, 0x0322f4d8, 0x1f6297d0, 0x063e2e0f, 0x1e9f4157, 0x094a0317,
641 	0x20000000, 0x00000000, 0x1e9f4157, 0x094a0317, 0x1a9b6629, 0x11c73b3a, 0x144cf325, 0x18bc806b,
642 	0x16a09e66, 0x16a09e66, 0x11c73b3a, 0x1a9b6629, 0x0c3ef153, 0x1d906bcf, 0x063e2e0f, 0x1f6297d0,
643 	0x1d906bcf, 0x0c3ef153, 0x1c38b2f2, 0x0f15ae9c, 0x1a9b6629, 0x11c73b3a, 0x18bc806b, 0x144cf325,
644 	0x0c3ef153, 0x1d906bcf, 0x0322f4d8, 0x1fd88da4, 0xf9c1d1f1, 0x1f6297d0, 0xf0ea5164, 0x1c38b2f2,
645 	0x00000000, 0x20000000, 0xf9c1d1f1, 0x1f6297d0, 0xf3c10ead, 0x1d906bcf, 0xee38c4c6, 0x1a9b6629,
646 	0x16a09e66, 0x16a09e66, 0x144cf325, 0x18bc806b, 0x11c73b3a, 0x1a9b6629, 0x0f15ae9c, 0x1c38b2f2,
647 	0xe95f619a, 0x16a09e66, 0xe3c74d0e, 0x0f15ae9c, 0xe09d6830, 0x063e2e0f, 0xe027725c, 0xfcdd0b28,
648 	0xe95f619a, 0x16a09e66, 0xe56499d7, 0x11c73b3a, 0xe26f9431, 0x0c3ef153, 0xe09d6830, 0x063e2e0f,
649 	0x0c3ef153, 0x1d906bcf, 0x094a0317, 0x1e9f4157, 0x063e2e0f, 0x1f6297d0, 0x0322f4d8, 0x1fd88da4,
650 	0xe26f9431, 0xf3c10ead, 0xe7437f95, 0xebb30cdb, 0xee38c4c6, 0xe56499d7, 0xf6b5fce9, 0xe160bea9
651 };
652 
653 #else
654 
655 /*
656  *  Q30 for 128 and 1024
657  *
658  * for (i = 0; i < num/4; i++) {
659  *   angle = (i + 0.125) * M_PI / num;
660  *   x = cos(angle) * (1 << 30);
661  *   x = sin(angle) * (1 << 30);
662  *
663  *   angle = (num/2 - 1 - i + 0.125) * M_PI / num;
664  *   x = cos(angle) * (1 << 30);
665  *   x = sin(angle) * (1 << 30);
666  * }
667  */
668 const int cossintab[128 + 1024] = {
669 	/* 128 */
670 	0x3fffec43, 0x003243f1, 0x015fd4d2, 0x3ffc38d1, 0x3ff9c13a, 0x01c454f5, 0x02f1b755, 0x3feea776,
671 	0x3fe9b8a9, 0x03562038, 0x0483259d, 0x3fd73a4a, 0x3fcfd50b, 0x04e767c5, 0x0613e1c5, 0x3fb5f4ea,
672 	0x3fac1a5b, 0x0677edbb, 0x07a3adff, 0x3f8adc77, 0x3f7e8e1e, 0x08077457, 0x09324ca7, 0x3f55f796,
673 	0x3f473759, 0x0995bdfd, 0x0abf8043, 0x3f174e70, 0x3f061e95, 0x0b228d42, 0x0c4b0b94, 0x3eceeaad,
674 	0x3ebb4ddb, 0x0cada4f5, 0x0dd4b19a, 0x3e7cd778, 0x3e66d0b4, 0x0e36c82a, 0x0f5c35a3, 0x3e212179,
675 	0x3e08b42a, 0x0fbdba40, 0x10e15b4e, 0x3dbbd6d4, 0x3da106bd, 0x11423ef0, 0x1263e699, 0x3d4d0728,
676 	0x3d2fd86c, 0x12c41a4f, 0x13e39be9, 0x3cd4c38b, 0x3cb53aaa, 0x144310dd, 0x15604013, 0x3c531e88,
677 	0x3c314060, 0x15bee78c, 0x16d99864, 0x3bc82c1f, 0x3ba3fde7, 0x173763c9, 0x184f6aab, 0x3b3401bb,
678 	0x3b0d8909, 0x18ac4b87, 0x19c17d44, 0x3a96b636, 0x3a6df8f8, 0x1a1d6544, 0x1b2f971e, 0x39f061d2,
679 	0x39c5664f, 0x1b8a7815, 0x1c997fc4, 0x39411e33, 0x3913eb0e, 0x1cf34baf, 0x1dfeff67, 0x38890663,
680 	0x3859a292, 0x1e57a86d, 0x1f5fdee6, 0x37c836c2, 0x3796a996, 0x1fb7575c, 0x20bbe7d8, 0x36fecd0e,
681 	0x36cb1e2a, 0x21122240, 0x2212e492, 0x362ce855, 0x35f71fb1, 0x2267d3a0, 0x2364a02e, 0x3552a8f4,
682 	0x351acedd, 0x23b836ca, 0x24b0e699, 0x34703095, 0x34364da6, 0x250317df, 0x25f78497, 0x3385a222,
683 	0x3349bf48, 0x264843d9, 0x273847c8, 0x329321c7, 0x32554840, 0x27878893, 0x2872feb6, 0x3198d4ea,
684 	0x31590e3e, 0x28c0b4d2, 0x29a778db, 0x3096e223, 0x30553828, 0x29f3984c, 0x2ad586a3, 0x2f8d713a,
685 	0x2f49ee0f, 0x2b2003ac, 0x2bfcf97c, 0x2e7cab1c, 0x2e37592c, 0x2c45c8a0, 0x2d1da3d5, 0x2d64b9da,
686 	/* 1024 */
687 	0x3fffffb1, 0x0006487f, 0x002bfb74, 0x3ffff0e3, 0x3fffe705, 0x00388c6e, 0x005e3f4c, 0x3fffba9b,
688 	0x3fffa6de, 0x006ad03b, 0x009082ea, 0x3fff5cd8, 0x3fff3f3c, 0x009d13c5, 0x00c2c62f, 0x3ffed79b,
689 	0x3ffeb021, 0x00cf56ef, 0x00f508fc, 0x3ffe2ae5, 0x3ffdf98c, 0x01019998, 0x01274b31, 0x3ffd56b5,
690 	0x3ffd1b7e, 0x0133dba3, 0x01598cb1, 0x3ffc5b0c, 0x3ffc15f7, 0x01661cf0, 0x018bcd5b, 0x3ffb37ec,
691 	0x3ffae8f9, 0x01985d60, 0x01be0d11, 0x3ff9ed53, 0x3ff99483, 0x01ca9cd4, 0x01f04bb4, 0x3ff87b44,
692 	0x3ff81896, 0x01fcdb2e, 0x02228924, 0x3ff6e1bf, 0x3ff67534, 0x022f184d, 0x0254c544, 0x3ff520c5,
693 	0x3ff4aa5d, 0x02615414, 0x0286fff3, 0x3ff33858, 0x3ff2b813, 0x02938e62, 0x02b93914, 0x3ff12878,
694 	0x3ff09e56, 0x02c5c71a, 0x02eb7086, 0x3feef126, 0x3fee5d28, 0x02f7fe1c, 0x031da62b, 0x3fec9265,
695 	0x3febf48b, 0x032a3349, 0x034fd9e5, 0x3fea0c35, 0x3fe96480, 0x035c6682, 0x03820b93, 0x3fe75e98,
696 	0x3fe6ad08, 0x038e97a9, 0x03b43b17, 0x3fe48990, 0x3fe3ce26, 0x03c0c69e, 0x03e66852, 0x3fe18d1f,
697 	0x3fe0c7da, 0x03f2f342, 0x04189326, 0x3fde6945, 0x3fdd9a27, 0x04251d77, 0x044abb73, 0x3fdb1e06,
698 	0x3fda450f, 0x0457451d, 0x047ce11a, 0x3fd7ab64, 0x3fd6c894, 0x04896a16, 0x04af03fc, 0x3fd4115f,
699 	0x3fd324b7, 0x04bb8c42, 0x04e123fa, 0x3fd04ffc, 0x3fcf597c, 0x04edab83, 0x051340f6, 0x3fcc673b,
700 	0x3fcb66e4, 0x051fc7b9, 0x05455ad1, 0x3fc8571f, 0x3fc74cf3, 0x0551e0c7, 0x0577716b, 0x3fc41fac,
701 	0x3fc30baa, 0x0583f68c, 0x05a984a6, 0x3fbfc0e3, 0x3fbea30c, 0x05b608eb, 0x05db9463, 0x3fbb3ac7,
702 	0x3fba131b, 0x05e817c3, 0x060da083, 0x3fb68d5b, 0x3fb55bdc, 0x061a22f7, 0x063fa8e7, 0x3fb1b8a2,
703 	0x3fb07d50, 0x064c2a67, 0x0671ad71, 0x3facbc9f, 0x3fab777b, 0x067e2df5, 0x06a3ae00, 0x3fa79954,
704 	0x3fa64a5f, 0x06b02d81, 0x06d5aa77, 0x3fa24ec6, 0x3fa0f600, 0x06e228ee, 0x0707a2b7, 0x3f9cdcf7,
705 	0x3f9b7a62, 0x0714201b, 0x073996a1, 0x3f9743eb, 0x3f95d787, 0x074612eb, 0x076b8616, 0x3f9183a5,
706 	0x3f900d72, 0x0778013d, 0x079d70f7, 0x3f8b9c28, 0x3f8a1c29, 0x07a9eaf5, 0x07cf5726, 0x3f858d79,
707 	0x3f8403ae, 0x07dbcff2, 0x08013883, 0x3f7f579b, 0x3f7dc405, 0x080db016, 0x083314f1, 0x3f78fa92,
708 	0x3f775d31, 0x083f8b43, 0x0864ec4f, 0x3f727661, 0x3f70cf38, 0x08716159, 0x0896be80, 0x3f6bcb0e,
709 	0x3f6a1a1c, 0x08a3323a, 0x08c88b65, 0x3f64f89b, 0x3f633de2, 0x08d4fdc6, 0x08fa52de, 0x3f5dff0e,
710 	0x3f5c3a8f, 0x0906c3e0, 0x092c14ce, 0x3f56de6a, 0x3f551026, 0x09388469, 0x095dd116, 0x3f4f96b4,
711 	0x3f4dbeac, 0x096a3f42, 0x098f8796, 0x3f4827f0, 0x3f464626, 0x099bf44c, 0x09c13831, 0x3f409223,
712 	0x3f3ea697, 0x09cda368, 0x09f2e2c7, 0x3f38d552, 0x3f36e006, 0x09ff4c78, 0x0a24873a, 0x3f30f181,
713 	0x3f2ef276, 0x0a30ef5e, 0x0a56256c, 0x3f28e6b6, 0x3f26ddec, 0x0a628bfa, 0x0a87bd3d, 0x3f20b4f5,
714 	0x3f1ea26e, 0x0a94222f, 0x0ab94e8f, 0x3f185c43, 0x3f164001, 0x0ac5b1dc, 0x0aead944, 0x3f0fdca5,
715 	0x3f0db6a9, 0x0af73ae5, 0x0b1c5d3d, 0x3f073621, 0x3f05066d, 0x0b28bd2a, 0x0b4dda5c, 0x3efe68bc,
716 	0x3efc2f50, 0x0b5a388d, 0x0b7f5081, 0x3ef5747b, 0x3ef3315a, 0x0b8bacf0, 0x0bb0bf8f, 0x3eec5965,
717 	0x3eea0c8e, 0x0bbd1a33, 0x0be22766, 0x3ee3177e, 0x3ee0c0f4, 0x0bee8038, 0x0c1387e9, 0x3ed9aecc,
718 	0x3ed74e91, 0x0c1fdee1, 0x0c44e0f9, 0x3ed01f55, 0x3ecdb56a, 0x0c513610, 0x0c763278, 0x3ec66920,
719 	0x3ec3f585, 0x0c8285a5, 0x0ca77c47, 0x3ebc8c31, 0x3eba0ee9, 0x0cb3cd84, 0x0cd8be47, 0x3eb2888f,
720 	0x3eb0019c, 0x0ce50d8c, 0x0d09f85b, 0x3ea85e41, 0x3ea5cda3, 0x0d1645a0, 0x0d3b2a64, 0x3e9e0d4c,
721 	0x3e9b7306, 0x0d4775a1, 0x0d6c5443, 0x3e9395b7, 0x3e90f1ca, 0x0d789d71, 0x0d9d75db, 0x3e88f788,
722 	0x3e8649f5, 0x0da9bcf2, 0x0dce8f0d, 0x3e7e32c6, 0x3e7b7b90, 0x0ddad406, 0x0dff9fba, 0x3e734778,
723 	0x3e70869f, 0x0e0be28e, 0x0e30a7c5, 0x3e6835a4, 0x3e656b2b, 0x0e3ce86b, 0x0e61a70f, 0x3e5cfd51,
724 	0x3e5a2939, 0x0e6de580, 0x0e929d7a, 0x3e519e86, 0x3e4ec0d1, 0x0e9ed9af, 0x0ec38ae8, 0x3e46194a,
725 	0x3e4331fa, 0x0ecfc4d9, 0x0ef46f3b, 0x3e3a6da4, 0x3e377cbb, 0x0f00a6df, 0x0f254a53, 0x3e2e9b9c,
726 	0x3e2ba11b, 0x0f317fa5, 0x0f561c15, 0x3e22a338, 0x3e1f9f21, 0x0f624f0c, 0x0f86e460, 0x3e168480,
727 	0x3e1376d5, 0x0f9314f5, 0x0fb7a317, 0x3e0a3f7b, 0x3e07283f, 0x0fc3d143, 0x0fe8581d, 0x3dfdd432,
728 	0x3dfab365, 0x0ff483d7, 0x10190352, 0x3df142ab, 0x3dee1851, 0x10252c94, 0x1049a49a, 0x3de48aef,
729 	0x3de15708, 0x1055cb5b, 0x107a3bd5, 0x3dd7ad05, 0x3dd46f94, 0x1086600e, 0x10aac8e6, 0x3dcaa8f5,
730 	0x3dc761fc, 0x10b6ea90, 0x10db4baf, 0x3dbd7ec7, 0x3dba2e48, 0x10e76ac3, 0x110bc413, 0x3db02e84,
731 	0x3dacd481, 0x1117e088, 0x113c31f3, 0x3da2b834, 0x3d9f54af, 0x11484bc2, 0x116c9531, 0x3d951bde,
732 	0x3d91aed9, 0x1178ac53, 0x119cedaf, 0x3d87598c, 0x3d83e309, 0x11a9021d, 0x11cd3b50, 0x3d797145,
733 	0x3d75f147, 0x11d94d02, 0x11fd7df6, 0x3d6b6313, 0x3d67d99b, 0x12098ce5, 0x122db583, 0x3d5d2efe,
734 	0x3d599c0e, 0x1239c1a7, 0x125de1da, 0x3d4ed50f, 0x3d4b38aa, 0x1269eb2b, 0x128e02dc, 0x3d40554e,
735 	0x3d3caf76, 0x129a0954, 0x12be186c, 0x3d31afc5, 0x3d2e007c, 0x12ca1c03, 0x12ee226c, 0x3d22e47c,
736 	0x3d1f2bc5, 0x12fa231b, 0x131e20c0, 0x3d13f37e, 0x3d10315a, 0x132a1e7e, 0x134e1348, 0x3d04dcd2,
737 	0x3d011145, 0x135a0e0e, 0x137df9e7, 0x3cf5a082, 0x3cf1cb8e, 0x1389f1af, 0x13add481, 0x3ce63e98,
738 	0x3ce2603f, 0x13b9c943, 0x13dda2f7, 0x3cd6b71e, 0x3cd2cf62, 0x13e994ab, 0x140d652c, 0x3cc70a1c,
739 	0x3cc318ff, 0x141953cb, 0x143d1b02, 0x3cb7379c, 0x3cb33d22, 0x14490685, 0x146cc45c, 0x3ca73fa9,
740 	0x3ca33bd3, 0x1478acbc, 0x149c611d, 0x3c97224c, 0x3c93151d, 0x14a84652, 0x14cbf127, 0x3c86df8e,
741 	0x3c82c909, 0x14d7d32a, 0x14fb745e, 0x3c76777b, 0x3c7257a2, 0x15075327, 0x152aeaa3, 0x3c65ea1c,
742 	0x3c61c0f1, 0x1536c62b, 0x155a53d9, 0x3c55377b, 0x3c510501, 0x15662c18, 0x1589afe3, 0x3c445fa2,
743 	0x3c4023dd, 0x159584d3, 0x15b8fea4, 0x3c33629d, 0x3c2f1d8e, 0x15c4d03e, 0x15e83fff, 0x3c224075,
744 	0x3c1df21f, 0x15f40e3a, 0x161773d6, 0x3c10f935, 0x3c0ca19b, 0x16233eac, 0x16469a0d, 0x3bff8ce8,
745 	0x3bfb2c0c, 0x16526176, 0x1675b286, 0x3bedfb99, 0x3be9917e, 0x1681767c, 0x16a4bd25, 0x3bdc4552,
746 	0x3bd7d1fa, 0x16b07d9f, 0x16d3b9cc, 0x3bca6a1d, 0x3bc5ed8d, 0x16df76c3, 0x1702a85e, 0x3bb86a08,
747 	0x3bb3e440, 0x170e61cc, 0x173188be, 0x3ba6451b, 0x3ba1b620, 0x173d3e9b, 0x17605ad0, 0x3b93fb63,
748 	0x3b8f6337, 0x176c0d15, 0x178f1e76, 0x3b818ceb, 0x3b7ceb90, 0x179acd1c, 0x17bdd394, 0x3b6ef9be,
749 	0x3b6a4f38, 0x17c97e93, 0x17ec7a0d, 0x3b5c41e8, 0x3b578e39, 0x17f8215e, 0x181b11c4, 0x3b496574,
750 	0x3b44a8a0, 0x1826b561, 0x18499a9d, 0x3b36646e, 0x3b319e77, 0x18553a7d, 0x1878147a, 0x3b233ee1,
751 	0x3b1e6fca, 0x1883b097, 0x18a67f3f, 0x3b0ff4d9, 0x3b0b1ca6, 0x18b21791, 0x18d4dad0, 0x3afc8663,
752 	0x3af7a516, 0x18e06f50, 0x1903270f, 0x3ae8f38b, 0x3ae40926, 0x190eb7b7, 0x193163e1, 0x3ad53c5b,
753 	0x3ad048e3, 0x193cf0a9, 0x195f9128, 0x3ac160e1, 0x3abc6458, 0x196b1a09, 0x198daec8, 0x3aad6129,
754 	0x3aa85b92, 0x199933bb, 0x19bbbca6, 0x3a993d3e, 0x3a942e9d, 0x19c73da3, 0x19e9baa3, 0x3a84f52f,
755 	0x3a7fdd86, 0x19f537a4, 0x1a17a8a5, 0x3a708906, 0x3a6b6859, 0x1a2321a2, 0x1a45868e, 0x3a5bf8d1,
756 	0x3a56cf23, 0x1a50fb81, 0x1a735442, 0x3a47449c, 0x3a4211f0, 0x1a7ec524, 0x1aa111a6, 0x3a326c74,
757 	0x3a2d30cd, 0x1aac7e6f, 0x1acebe9d, 0x3a1d7066, 0x3a182bc8, 0x1ada2746, 0x1afc5b0a, 0x3a08507f,
758 	0x3a0302ed, 0x1b07bf8c, 0x1b29e6d2, 0x39f30ccc, 0x39edb649, 0x1b354727, 0x1b5761d8, 0x39dda55a,
759 	0x39d845e9, 0x1b62bdf8, 0x1b84cc01, 0x39c81a36, 0x39c2b1da, 0x1b9023e5, 0x1bb22530, 0x39b26b6d,
760 	0x39acfa2b, 0x1bbd78d2, 0x1bdf6d4a, 0x399c990d, 0x39971ee7, 0x1beabca1, 0x1c0ca432, 0x3986a324,
761 	0x3981201e, 0x1c17ef39, 0x1c39c9cd, 0x397089bf, 0x396afddc, 0x1c45107c, 0x1c66ddfe, 0x395a4ceb,
762 	0x3954b82e, 0x1c72204f, 0x1c93e0ab, 0x3943ecb6, 0x393e4f23, 0x1c9f1e96, 0x1cc0d1b6, 0x392d692f,
763 	0x3927c2c9, 0x1ccc0b35, 0x1cedb106, 0x3916c262, 0x3911132d, 0x1cf8e611, 0x1d1a7e7d, 0x38fff85e,
764 	0x38fa405e, 0x1d25af0d, 0x1d473a00, 0x38e90b31, 0x38e34a69, 0x1d52660f, 0x1d73e374, 0x38d1fae9,
765 	0x38cc315d, 0x1d7f0afb, 0x1da07abc, 0x38bac795, 0x38b4f547, 0x1dab9db5, 0x1dccffbf, 0x38a37142,
766 	0x389d9637, 0x1dd81e21, 0x1df9725f, 0x388bf7ff, 0x3886143b, 0x1e048c24, 0x1e25d282, 0x38745bdb,
767 	0x386e6f60, 0x1e30e7a4, 0x1e52200c, 0x385c9ce3, 0x3856a7b6, 0x1e5d3084, 0x1e7e5ae2, 0x3844bb28,
768 	0x383ebd4c, 0x1e8966a8, 0x1eaa82e9, 0x382cb6b7, 0x3826b030, 0x1eb589f7, 0x1ed69805, 0x38148f9f,
769 	0x380e8071, 0x1ee19a54, 0x1f029a1c, 0x37fc45ef, 0x37f62e1d, 0x1f0d97a5, 0x1f2e8911, 0x37e3d9b7,
770 	0x37ddb945, 0x1f3981ce, 0x1f5a64cb, 0x37cb4b04, 0x37c521f6, 0x1f6558b5, 0x1f862d2d, 0x37b299e7,
771 	0x37ac6841, 0x1f911c3d, 0x1fb1e21d, 0x3799c66f, 0x37938c34, 0x1fbccc4d, 0x1fdd8381, 0x3780d0aa,
772 	0x377a8ddf, 0x1fe868c8, 0x2009113c, 0x3767b8a9, 0x37616d51, 0x2013f196, 0x20348b35, 0x374e7e7b,
773 	0x37482a9a, 0x203f6699, 0x205ff14f, 0x3735222f, 0x372ec5c9, 0x206ac7b8, 0x208b4372, 0x371ba3d4,
774 	0x37153eee, 0x209614d9, 0x20b68181, 0x3702037c, 0x36fb9618, 0x20c14ddf, 0x20e1ab63, 0x36e84135,
775 	0x36e1cb58, 0x20ec72b1, 0x210cc0fc, 0x36ce5d10, 0x36c7debd, 0x21178334, 0x2137c232, 0x36b4571b,
776 	0x36add058, 0x21427f4d, 0x2162aeea, 0x369a2f69, 0x3693a038, 0x216d66e2, 0x218d870b, 0x367fe608,
777 	0x36794e6e, 0x219839d8, 0x21b84a79, 0x36657b08, 0x365edb09, 0x21c2f815, 0x21e2f91a, 0x364aee7b,
778 	0x3644461b, 0x21eda17f, 0x220d92d4, 0x36304070, 0x36298fb4, 0x221835fb, 0x2238178d, 0x361570f8,
779 	0x360eb7e3, 0x2242b56f, 0x22628729, 0x35fa8023, 0x35f3beba, 0x226d1fc1, 0x228ce191, 0x35df6e03,
780 	0x35d8a449, 0x229774d7, 0x22b726a8, 0x35c43aa7, 0x35bd68a1, 0x22c1b496, 0x22e15655, 0x35a8e621,
781 	0x35a20bd3, 0x22ebdee5, 0x230b707e, 0x358d7081, 0x35868def, 0x2315f3a8, 0x23357509, 0x3571d9d9,
782 	0x356aef08, 0x233ff2c8, 0x235f63dc, 0x35562239, 0x354f2f2c, 0x2369dc29, 0x23893cdd, 0x353a49b2,
783 	0x35334e6f, 0x2393afb2, 0x23b2fff3, 0x351e5056, 0x35174ce0, 0x23bd6d48, 0x23dcad03, 0x35023636,
784 	0x34fb2a92, 0x23e714d3, 0x240643f4, 0x34e5fb63, 0x34dee795, 0x2410a639, 0x242fc4ad, 0x34c99fef,
785 	0x34c283fb, 0x243a215f, 0x24592f13, 0x34ad23eb, 0x34a5ffd5, 0x2463862c, 0x2482830d, 0x34908768,
786 	0x34895b36, 0x248cd487, 0x24abc082, 0x3473ca79, 0x346c962f, 0x24b60c57, 0x24d4e757, 0x3456ed2f,
787 	0x344fb0d1, 0x24df2d81, 0x24fdf775, 0x3439ef9c, 0x3432ab2e, 0x250837ed, 0x2526f0c1, 0x341cd1d2,
788 	0x34158559, 0x25312b81, 0x254fd323, 0x33ff93e2, 0x33f83f62, 0x255a0823, 0x25789e80, 0x33e235df,
789 	0x33dad95e, 0x2582cdbc, 0x25a152c0, 0x33c4b7db, 0x33bd535c, 0x25ab7c30, 0x25c9efca, 0x33a719e8,
790 	0x339fad70, 0x25d41369, 0x25f27584, 0x33895c18, 0x3381e7ac, 0x25fc934b, 0x261ae3d6, 0x336b7e7e,
791 	0x33640223, 0x2624fbbf, 0x26433aa7, 0x334d812d, 0x3345fce6, 0x264d4cac, 0x266b79dd, 0x332f6435,
792 	0x3327d808, 0x267585f8, 0x2693a161, 0x331127ab, 0x3309939c, 0x269da78b, 0x26bbb119, 0x32f2cba1,
793 	0x32eb2fb5, 0x26c5b14c, 0x26e3a8ec, 0x32d45029, 0x32ccac64, 0x26eda322, 0x270b88c2, 0x32b5b557,
794 	0x32ae09be, 0x27157cf5, 0x27335082, 0x3296fb3d, 0x328f47d5, 0x273d3eac, 0x275b0014, 0x327821ee,
795 	0x327066bc, 0x2764e82f, 0x27829760, 0x3259297d, 0x32516686, 0x278c7965, 0x27aa164c, 0x323a11fe,
796 	0x32324746, 0x27b3f235, 0x27d17cc1, 0x321adb83, 0x3213090f, 0x27db5288, 0x27f8caa5, 0x31fb8620,
797 	0x31f3abf5, 0x28029a45, 0x281fffe2, 0x31dc11e8, 0x31d4300b, 0x2829c954, 0x28471c5e, 0x31bc7eee,
798 	0x31b49564, 0x2850df9d, 0x286e2002, 0x319ccd46, 0x3194dc14, 0x2877dd07, 0x28950ab6, 0x317cfd04,
799 	0x3175042e, 0x289ec17a, 0x28bbdc61, 0x315d0e3b, 0x31550dc6, 0x28c58cdf, 0x28e294eb, 0x313d00ff,
800 	0x3134f8f1, 0x28ec3f1e, 0x2909343e, 0x311cd564, 0x3114c5c0, 0x2912d81f, 0x292fba40, 0x30fc8b7d,
801 	0x30f47449, 0x293957c9, 0x295626da, 0x30dc235e, 0x30d404a0, 0x295fbe06, 0x297c79f5, 0x30bb9d1c,
802 	0x30b376d8, 0x29860abd, 0x29a2b378, 0x309af8ca, 0x3092cb05, 0x29ac3dd7, 0x29c8d34d, 0x307a367c,
803 	0x3072013c, 0x29d2573c, 0x29eed95b, 0x30595648, 0x30511991, 0x29f856d5, 0x2a14c58b, 0x30385840,
804 	0x30301418, 0x2a1e3c8a, 0x2a3a97c7, 0x30173c7a, 0x300ef0e5, 0x2a440844, 0x2a604ff5, 0x2ff6030a,
805 	0x2fedb00d, 0x2a69b9ec, 0x2a85ee00, 0x2fd4ac04, 0x2fcc51a5, 0x2a8f516b, 0x2aab71d0, 0x2fb3377c,
806 	0x2faad5c1, 0x2ab4cea9, 0x2ad0db4e, 0x2f91a589, 0x2f893c75, 0x2ada318e, 0x2af62a63, 0x2f6ff63d,
807 	0x2f6785d7, 0x2aff7a05, 0x2b1b5ef8, 0x2f4e29af, 0x2f45b1fb, 0x2b24a7f6, 0x2b4078f5, 0x2f2c3ff2,
808 	0x2f23c0f6, 0x2b49bb4a, 0x2b657844, 0x2f0a391d, 0x2f01b2de, 0x2b6eb3ea, 0x2b8a5cce, 0x2ee81543,
809 	0x2edf87c6, 0x2b9391c0, 0x2baf267d, 0x2ec5d479, 0x2ebd3fc4, 0x2bb854b4, 0x2bd3d53a, 0x2ea376d6,
810 	0x2e9adaee, 0x2bdcfcb0, 0x2bf868ed, 0x2e80fc6e, 0x2e785958, 0x2c01899e, 0x2c1ce181, 0x2e5e6556,
811 	0x2e55bb17, 0x2c25fb66, 0x2c413edf, 0x2e3bb1a4, 0x2e330042, 0x2c4a51f3, 0x2c6580f1, 0x2e18e16d,
812 	0x2e1028ed, 0x2c6e8d2e, 0x2c89a79f, 0x2df5f4c7, 0x2ded352f, 0x2c92ad01, 0x2cadb2d5, 0x2dd2ebc7,
813 	0x2dca251c, 0x2cb6b155, 0x2cd1a27b, 0x2dafc683, 0x2da6f8ca, 0x2cda9a14, 0x2cf5767c, 0x2d8c8510,
814 	0x2d83b04f, 0x2cfe6728, 0x2d192ec1, 0x2d692784, 0x2d604bc0, 0x2d22187a, 0x2d3ccb34, 0x2d45adf6
815 };
816 
817 const int twidTab512[8*6 + 32*6 + 128*6] = {
818 	0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3b20d79e, 0x187de2a6,
819 	0x3ec52f9f, 0x0c7c5c1e, 0x3536cc52, 0x238e7673, 0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6,
820 	0x187de2a6, 0x3b20d79e, 0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673, 0xf383a3e2, 0x3ec52f9f,
821 	0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xe7821d5a, 0x3b20d79e,
822 	0x238e7673, 0x3536cc52, 0xc13ad061, 0x0c7c5c1e, 0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e,
823 	0xc4df2862, 0xe7821d5a, 0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f, 0xdc71898d, 0xcac933ae,
824 
825 	0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3fb11b47, 0x0645e9af,
826 	0x3fec43c6, 0x0323ecbe, 0x3f4eaafe, 0x09640837, 0x3ec52f9f, 0x0c7c5c1e, 0x3fb11b47, 0x0645e9af,
827 	0x3d3e82ad, 0x1294062e, 0x3d3e82ad, 0x1294062e, 0x3f4eaafe, 0x09640837, 0x39daf5e8, 0x1b5d1009,
828 	0x3b20d79e, 0x187de2a6, 0x3ec52f9f, 0x0c7c5c1e, 0x3536cc52, 0x238e7673, 0x387165e3, 0x1e2b5d38,
829 	0x3e14fdf7, 0x0f8cfcbd, 0x2f6bbe44, 0x2afad269, 0x3536cc52, 0x238e7673, 0x3d3e82ad, 0x1294062e,
830 	0x2899e64a, 0x317900d6, 0x317900d6, 0x2899e64a, 0x3c424209, 0x158f9a75, 0x20e70f32, 0x36e5068a,
831 	0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x2899e64a, 0x317900d6,
832 	0x39daf5e8, 0x1b5d1009, 0x0f8cfcbd, 0x3e14fdf7, 0x238e7673, 0x3536cc52, 0x387165e3, 0x1e2b5d38,
833 	0x0645e9af, 0x3fb11b47, 0x1e2b5d38, 0x387165e3, 0x36e5068a, 0x20e70f32, 0xfcdc1342, 0x3fec43c6,
834 	0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673, 0xf383a3e2, 0x3ec52f9f, 0x1294062e, 0x3d3e82ad,
835 	0x3367c08f, 0x261feff9, 0xea70658b, 0x3c424209, 0x0c7c5c1e, 0x3ec52f9f, 0x317900d6, 0x2899e64a,
836 	0xe1d4a2c8, 0x387165e3, 0x0645e9af, 0x3fb11b47, 0x2f6bbe44, 0x2afad269, 0xd9e01007, 0x3367c08f,
837 	0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xf9ba1651, 0x3fb11b47,
838 	0x2afad269, 0x2f6bbe44, 0xcc983f71, 0x261feff9, 0xf383a3e2, 0x3ec52f9f, 0x2899e64a, 0x317900d6,
839 	0xc78e9a1d, 0x1e2b5d38, 0xed6bf9d2, 0x3d3e82ad, 0x261feff9, 0x3367c08f, 0xc3bdbdf7, 0x158f9a75,
840 	0xe7821d5a, 0x3b20d79e, 0x238e7673, 0x3536cc52, 0xc13ad061, 0x0c7c5c1e, 0xe1d4a2c8, 0x387165e3,
841 	0x20e70f32, 0x36e5068a, 0xc013bc3a, 0x0323ecbe, 0xdc71898d, 0x3536cc52, 0x1e2b5d38, 0x387165e3,
842 	0xc04ee4b9, 0xf9ba1651, 0xd76619b6, 0x317900d6, 0x1b5d1009, 0x39daf5e8, 0xc1eb0209, 0xf0730343,
843 	0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a, 0xce86ff2a, 0x2899e64a,
844 	0x158f9a75, 0x3c424209, 0xc91af976, 0xdf18f0ce, 0xcac933ae, 0x238e7673, 0x1294062e, 0x3d3e82ad,
845 	0xce86ff2a, 0xd76619b6, 0xc78e9a1d, 0x1e2b5d38, 0x0f8cfcbd, 0x3e14fdf7, 0xd5052d97, 0xd09441bc,
846 	0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f, 0xdc71898d, 0xcac933ae, 0xc2c17d53, 0x1294062e,
847 	0x09640837, 0x3f4eaafe, 0xe4a2eff7, 0xc6250a18, 0xc13ad061, 0x0c7c5c1e, 0x0645e9af, 0x3fb11b47,
848 	0xed6bf9d2, 0xc2c17d53, 0xc04ee4b9, 0x0645e9af, 0x0323ecbe, 0x3fec43c6, 0xf69bf7c9, 0xc0b15502,
849 
850 	0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3ffb10c1, 0x0192155f,
851 	0x3ffec42d, 0x00c90e8f, 0x3ff4e5df, 0x025b0cae, 0x3fec43c6, 0x0323ecbe, 0x3ffb10c1, 0x0192155f,
852 	0x3fd39b5a, 0x04b54824, 0x3fd39b5a, 0x04b54824, 0x3ff4e5df, 0x025b0cae, 0x3f9c2bfa, 0x070de171,
853 	0x3fb11b47, 0x0645e9af, 0x3fec43c6, 0x0323ecbe, 0x3f4eaafe, 0x09640837, 0x3f84c8e1, 0x07d59395,
854 	0x3fe12acb, 0x03ecadcf, 0x3eeb3347, 0x0bb6ecef, 0x3f4eaafe, 0x09640837, 0x3fd39b5a, 0x04b54824,
855 	0x3e71e758, 0x0e05c135, 0x3f0ec9f4, 0x0af10a22, 0x3fc395f9, 0x057db402, 0x3de2f147, 0x104fb80e,
856 	0x3ec52f9f, 0x0c7c5c1e, 0x3fb11b47, 0x0645e9af, 0x3d3e82ad, 0x1294062e, 0x3e71e758, 0x0e05c135,
857 	0x3f9c2bfa, 0x070de171, 0x3c84d496, 0x14d1e242, 0x3e14fdf7, 0x0f8cfcbd, 0x3f84c8e1, 0x07d59395,
858 	0x3bb6276d, 0x17088530, 0x3dae81ce, 0x1111d262, 0x3f6af2e3, 0x089cf867, 0x3ad2c2e7, 0x19372a63,
859 	0x3d3e82ad, 0x1294062e, 0x3f4eaafe, 0x09640837, 0x39daf5e8, 0x1b5d1009, 0x3cc511d8, 0x14135c94,
860 	0x3f2ff249, 0x0a2abb58, 0x38cf1669, 0x1d79775b, 0x3c424209, 0x158f9a75, 0x3f0ec9f4, 0x0af10a22,
861 	0x37af8158, 0x1f8ba4db, 0x3bb6276d, 0x17088530, 0x3eeb3347, 0x0bb6ecef, 0x367c9a7d, 0x2192e09a,
862 	0x3b20d79e, 0x187de2a6, 0x3ec52f9f, 0x0c7c5c1e, 0x3536cc52, 0x238e7673, 0x3a8269a2, 0x19ef7943,
863 	0x3e9cc076, 0x0d415012, 0x33de87de, 0x257db64b, 0x39daf5e8, 0x1b5d1009, 0x3e71e758, 0x0e05c135,
864 	0x32744493, 0x275ff452, 0x392a9642, 0x1cc66e99, 0x3e44a5ee, 0x0ec9a7f2, 0x30f8801f, 0x29348937,
865 	0x387165e3, 0x1e2b5d38, 0x3e14fdf7, 0x0f8cfcbd, 0x2f6bbe44, 0x2afad269, 0x37af8158, 0x1f8ba4db,
866 	0x3de2f147, 0x104fb80e, 0x2dce88a9, 0x2cb2324b, 0x36e5068a, 0x20e70f32, 0x3dae81ce, 0x1111d262,
867 	0x2c216eaa, 0x2e5a106f, 0x361214b0, 0x223d66a8, 0x3d77b191, 0x11d3443f, 0x2a650525, 0x2ff1d9c6,
868 	0x3536cc52, 0x238e7673, 0x3d3e82ad, 0x1294062e, 0x2899e64a, 0x317900d6, 0x34534f40, 0x24da0a99,
869 	0x3d02f756, 0x135410c2, 0x26c0b162, 0x32eefde9, 0x3367c08f, 0x261feff9, 0x3cc511d8, 0x14135c94,
870 	0x24da0a99, 0x34534f40, 0x32744493, 0x275ff452, 0x3c84d496, 0x14d1e242, 0x22e69ac7, 0x35a5793c,
871 	0x317900d6, 0x2899e64a, 0x3c424209, 0x158f9a75, 0x20e70f32, 0x36e5068a, 0x30761c17, 0x29cd9577,
872 	0x3bfd5cc4, 0x164c7ddd, 0x1edc1952, 0x3811884c, 0x2f6bbe44, 0x2afad269, 0x3bb6276d, 0x17088530,
873 	0x1cc66e99, 0x392a9642, 0x2e5a106f, 0x2c216eaa, 0x3b6ca4c4, 0x17c3a931, 0x1aa6c82b, 0x3a2fcee8,
874 	0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x2c216eaa, 0x2e5a106f,
875 	0x3ad2c2e7, 0x19372a63, 0x164c7ddd, 0x3bfd5cc4, 0x2afad269, 0x2f6bbe44, 0x3a8269a2, 0x19ef7943,
876 	0x14135c94, 0x3cc511d8, 0x29cd9577, 0x30761c17, 0x3a2fcee8, 0x1aa6c82b, 0x11d3443f, 0x3d77b191,
877 	0x2899e64a, 0x317900d6, 0x39daf5e8, 0x1b5d1009, 0x0f8cfcbd, 0x3e14fdf7, 0x275ff452, 0x32744493,
878 	0x3983e1e7, 0x1c1249d8, 0x0d415012, 0x3e9cc076, 0x261feff9, 0x3367c08f, 0x392a9642, 0x1cc66e99,
879 	0x0af10a22, 0x3f0ec9f4, 0x24da0a99, 0x34534f40, 0x38cf1669, 0x1d79775b, 0x089cf867, 0x3f6af2e3,
880 	0x238e7673, 0x3536cc52, 0x387165e3, 0x1e2b5d38, 0x0645e9af, 0x3fb11b47, 0x223d66a8, 0x361214b0,
881 	0x3811884c, 0x1edc1952, 0x03ecadcf, 0x3fe12acb, 0x20e70f32, 0x36e5068a, 0x37af8158, 0x1f8ba4db,
882 	0x0192155f, 0x3ffb10c1, 0x1f8ba4db, 0x37af8158, 0x374b54ce, 0x2039f90e, 0xff36f171, 0x3ffec42d,
883 	0x1e2b5d38, 0x387165e3, 0x36e5068a, 0x20e70f32, 0xfcdc1342, 0x3fec43c6, 0x1cc66e99, 0x392a9642,
884 	0x367c9a7d, 0x2192e09a, 0xfa824bfe, 0x3fc395f9, 0x1b5d1009, 0x39daf5e8, 0x361214b0, 0x223d66a8,
885 	0xf82a6c6b, 0x3f84c8e1, 0x19ef7943, 0x3a8269a2, 0x35a5793c, 0x22e69ac7, 0xf5d544a8, 0x3f2ff249,
886 	0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673, 0xf383a3e2, 0x3ec52f9f, 0x17088530, 0x3bb6276d,
887 	0x34c61236, 0x2434f332, 0xf136580e, 0x3e44a5ee, 0x158f9a75, 0x3c424209, 0x34534f40, 0x24da0a99,
888 	0xeeee2d9e, 0x3dae81ce, 0x14135c94, 0x3cc511d8, 0x33de87de, 0x257db64b, 0xecabef3e, 0x3d02f756,
889 	0x1294062e, 0x3d3e82ad, 0x3367c08f, 0x261feff9, 0xea70658b, 0x3c424209, 0x1111d262, 0x3dae81ce,
890 	0x32eefde9, 0x26c0b162, 0xe83c56cf, 0x3b6ca4c4, 0x0f8cfcbd, 0x3e14fdf7, 0x32744493, 0x275ff452,
891 	0xe61086bd, 0x3a8269a2, 0x0e05c135, 0x3e71e758, 0x31f79947, 0x27fdb2a6, 0xe3edb628, 0x3983e1e7,
892 	0x0c7c5c1e, 0x3ec52f9f, 0x317900d6, 0x2899e64a, 0xe1d4a2c8, 0x387165e3, 0x0af10a22, 0x3f0ec9f4,
893 	0x30f8801f, 0x29348937, 0xdfc606f2, 0x374b54ce, 0x09640837, 0x3f4eaafe, 0x30761c17, 0x29cd9577,
894 	0xddc29958, 0x361214b0, 0x07d59395, 0x3f84c8e1, 0x2ff1d9c6, 0x2a650525, 0xdbcb0cce, 0x34c61236,
895 	0x0645e9af, 0x3fb11b47, 0x2f6bbe44, 0x2afad269, 0xd9e01007, 0x3367c08f, 0x04b54824, 0x3fd39b5a,
896 	0x2ee3cebe, 0x2b8ef77c, 0xd8024d5a, 0x31f79947, 0x0323ecbe, 0x3fec43c6, 0x2e5a106f, 0x2c216eaa,
897 	0xd6326a89, 0x30761c17, 0x0192155f, 0x3ffb10c1, 0x2dce88a9, 0x2cb2324b, 0xd4710884, 0x2ee3cebe,
898 	0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xfe6deaa1, 0x3ffb10c1,
899 	0x2cb2324b, 0x2dce88a9, 0xd11c3142, 0x2b8ef77c, 0xfcdc1342, 0x3fec43c6, 0x2c216eaa, 0x2e5a106f,
900 	0xcf89e3e9, 0x29cd9577, 0xfb4ab7dc, 0x3fd39b5a, 0x2b8ef77c, 0x2ee3cebe, 0xce0866b9, 0x27fdb2a6,
901 	0xf9ba1651, 0x3fb11b47, 0x2afad269, 0x2f6bbe44, 0xcc983f71, 0x261feff9, 0xf82a6c6b, 0x3f84c8e1,
902 	0x2a650525, 0x2ff1d9c6, 0xcb39edca, 0x2434f332, 0xf69bf7c9, 0x3f4eaafe, 0x29cd9577, 0x30761c17,
903 	0xc9edeb50, 0x223d66a8, 0xf50ef5de, 0x3f0ec9f4, 0x29348937, 0x30f8801f, 0xc8b4ab32, 0x2039f90e,
904 	0xf383a3e2, 0x3ec52f9f, 0x2899e64a, 0x317900d6, 0xc78e9a1d, 0x1e2b5d38, 0xf1fa3ecb, 0x3e71e758,
905 	0x27fdb2a6, 0x31f79947, 0xc67c1e19, 0x1c1249d8, 0xf0730343, 0x3e14fdf7, 0x275ff452, 0x32744493,
906 	0xc57d965e, 0x19ef7943, 0xeeee2d9e, 0x3dae81ce, 0x26c0b162, 0x32eefde9, 0xc4935b3c, 0x17c3a931,
907 	0xed6bf9d2, 0x3d3e82ad, 0x261feff9, 0x3367c08f, 0xc3bdbdf7, 0x158f9a75, 0xebeca36c, 0x3cc511d8,
908 	0x257db64b, 0x33de87de, 0xc2fd08aa, 0x135410c2, 0xea70658b, 0x3c424209, 0x24da0a99, 0x34534f40,
909 	0xc2517e32, 0x1111d262, 0xe8f77ad0, 0x3bb6276d, 0x2434f332, 0x34c61236, 0xc1bb5a12, 0x0ec9a7f2,
910 	0xe7821d5a, 0x3b20d79e, 0x238e7673, 0x3536cc52, 0xc13ad061, 0x0c7c5c1e, 0xe61086bd, 0x3a8269a2,
911 	0x22e69ac7, 0x35a5793c, 0xc0d00db7, 0x0a2abb58, 0xe4a2eff7, 0x39daf5e8, 0x223d66a8, 0x361214b0,
912 	0xc07b371f, 0x07d59395, 0xe3399167, 0x392a9642, 0x2192e09a, 0x367c9a7d, 0xc03c6a07, 0x057db402,
913 	0xe1d4a2c8, 0x387165e3, 0x20e70f32, 0x36e5068a, 0xc013bc3a, 0x0323ecbe, 0xe0745b25, 0x37af8158,
914 	0x2039f90e, 0x374b54ce, 0xc0013bd3, 0x00c90e8f, 0xdf18f0ce, 0x36e5068a, 0x1f8ba4db, 0x37af8158,
915 	0xc004ef3f, 0xfe6deaa1, 0xddc29958, 0x361214b0, 0x1edc1952, 0x3811884c, 0xc01ed535, 0xfc135231,
916 	0xdc71898d, 0x3536cc52, 0x1e2b5d38, 0x387165e3, 0xc04ee4b9, 0xf9ba1651, 0xdb25f567, 0x34534f40,
917 	0x1d79775b, 0x38cf1669, 0xc0950d1d, 0xf7630799, 0xd9e01007, 0x3367c08f, 0x1cc66e99, 0x392a9642,
918 	0xc0f1360c, 0xf50ef5de, 0xd8a00bae, 0x32744493, 0x1c1249d8, 0x3983e1e7, 0xc1633f8a, 0xf2beafee,
919 	0xd76619b6, 0x317900d6, 0x1b5d1009, 0x39daf5e8, 0xc1eb0209, 0xf0730343, 0xd6326a89, 0x30761c17,
920 	0x1aa6c82b, 0x3a2fcee8, 0xc2884e6f, 0xee2cbbc1, 0xd5052d97, 0x2f6bbe44, 0x19ef7943, 0x3a8269a2,
921 	0xc33aee28, 0xebeca36c, 0xd3de9156, 0x2e5a106f, 0x19372a63, 0x3ad2c2e7, 0xc402a33c, 0xe9b38223,
922 	0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a, 0xd1a5ef91, 0x2c216eaa,
923 	0x17c3a931, 0x3b6ca4c4, 0xc5d03118, 0xe55937d5, 0xd09441bc, 0x2afad269, 0x17088530, 0x3bb6276d,
924 	0xc6d569be, 0xe3399167, 0xcf89e3e9, 0x29cd9577, 0x164c7ddd, 0x3bfd5cc4, 0xc7ee77b4, 0xe123e6ae,
925 	0xce86ff2a, 0x2899e64a, 0x158f9a75, 0x3c424209, 0xc91af976, 0xdf18f0ce, 0xcd8bbb6d, 0x275ff452,
926 	0x14d1e242, 0x3c84d496, 0xca5a86c4, 0xdd196539, 0xcc983f71, 0x261feff9, 0x14135c94, 0x3cc511d8,
927 	0xcbacb0c0, 0xdb25f567, 0xcbacb0c0, 0x24da0a99, 0x135410c2, 0x3d02f756, 0xcd110217, 0xd93f4e9e,
928 	0xcac933ae, 0x238e7673, 0x1294062e, 0x3d3e82ad, 0xce86ff2a, 0xd76619b6, 0xc9edeb50, 0x223d66a8,
929 	0x11d3443f, 0x3d77b191, 0xd00e263a, 0xd59afadb, 0xc91af976, 0x20e70f32, 0x1111d262, 0x3dae81ce,
930 	0xd1a5ef91, 0xd3de9156, 0xc8507ea8, 0x1f8ba4db, 0x104fb80e, 0x3de2f147, 0xd34dcdb5, 0xd2317757,
931 	0xc78e9a1d, 0x1e2b5d38, 0x0f8cfcbd, 0x3e14fdf7, 0xd5052d97, 0xd09441bc, 0xc6d569be, 0x1cc66e99,
932 	0x0ec9a7f2, 0x3e44a5ee, 0xd6cb76c9, 0xcf077fe1, 0xc6250a18, 0x1b5d1009, 0x0e05c135, 0x3e71e758,
933 	0xd8a00bae, 0xcd8bbb6d, 0xc57d965e, 0x19ef7943, 0x0d415012, 0x3e9cc076, 0xda8249b5, 0xcc217822,
934 	0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f, 0xdc71898d, 0xcac933ae, 0xc449d893, 0x17088530,
935 	0x0bb6ecef, 0x3eeb3347, 0xde6d1f66, 0xc9836583, 0xc3bdbdf7, 0x158f9a75, 0x0af10a22, 0x3f0ec9f4,
936 	0xe0745b25, 0xc8507ea8, 0xc33aee28, 0x14135c94, 0x0a2abb58, 0x3f2ff249, 0xe28688a5, 0xc730e997,
937 	0xc2c17d53, 0x1294062e, 0x09640837, 0x3f4eaafe, 0xe4a2eff7, 0xc6250a18, 0xc2517e32, 0x1111d262,
938 	0x089cf867, 0x3f6af2e3, 0xe6c8d59d, 0xc52d3d19, 0xc1eb0209, 0x0f8cfcbd, 0x07d59395, 0x3f84c8e1,
939 	0xe8f77ad0, 0xc449d893, 0xc18e18a8, 0x0e05c135, 0x070de171, 0x3f9c2bfa, 0xeb2e1dbe, 0xc37b2b6a,
940 	0xc13ad061, 0x0c7c5c1e, 0x0645e9af, 0x3fb11b47, 0xed6bf9d2, 0xc2c17d53, 0xc0f1360c, 0x0af10a22,
941 	0x057db402, 0x3fc395f9, 0xefb047f2, 0xc21d0eb9, 0xc0b15502, 0x09640837, 0x04b54824, 0x3fd39b5a,
942 	0xf1fa3ecb, 0xc18e18a8, 0xc07b371f, 0x07d59395, 0x03ecadcf, 0x3fe12acb, 0xf4491311, 0xc114ccb9,
943 	0xc04ee4b9, 0x0645e9af, 0x0323ecbe, 0x3fec43c6, 0xf69bf7c9, 0xc0b15502, 0xc02c64a6, 0x04b54824,
944 	0x025b0cae, 0x3ff4e5df, 0xf8f21e8f, 0xc063d406, 0xc013bc3a, 0x0323ecbe, 0x0192155f, 0x3ffb10c1,
945 	0xfb4ab7dc, 0xc02c64a6, 0xc004ef3f, 0x0192155f, 0x00c90e8f, 0x3ffec42d, 0xfda4f352, 0xc00b1a21
946 };
947 
948 const int twidTab64[4*6 + 16*6] = {
949 	0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x2d413ccc, 0x2d413ccc,
950 	0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc,
951 	0xd2bec334, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a,
952 
953 	0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x40000000, 0x00000000, 0x3ec52f9f, 0x0c7c5c1e,
954 	0x3fb11b47, 0x0645e9af, 0x3d3e82ad, 0x1294062e, 0x3b20d79e, 0x187de2a6, 0x3ec52f9f, 0x0c7c5c1e,
955 	0x3536cc52, 0x238e7673, 0x3536cc52, 0x238e7673, 0x3d3e82ad, 0x1294062e, 0x2899e64a, 0x317900d6,
956 	0x2d413ccc, 0x2d413ccc, 0x3b20d79e, 0x187de2a6, 0x187de2a6, 0x3b20d79e, 0x238e7673, 0x3536cc52,
957 	0x387165e3, 0x1e2b5d38, 0x0645e9af, 0x3fb11b47, 0x187de2a6, 0x3b20d79e, 0x3536cc52, 0x238e7673,
958 	0xf383a3e2, 0x3ec52f9f, 0x0c7c5c1e, 0x3ec52f9f, 0x317900d6, 0x2899e64a, 0xe1d4a2c8, 0x387165e3,
959 	0x00000000, 0x40000000, 0x2d413ccc, 0x2d413ccc, 0xd2bec334, 0x2d413ccc, 0xf383a3e2, 0x3ec52f9f,
960 	0x2899e64a, 0x317900d6, 0xc78e9a1d, 0x1e2b5d38, 0xe7821d5a, 0x3b20d79e, 0x238e7673, 0x3536cc52,
961 	0xc13ad061, 0x0c7c5c1e, 0xdc71898d, 0x3536cc52, 0x1e2b5d38, 0x387165e3, 0xc04ee4b9, 0xf9ba1651,
962 	0xd2bec334, 0x2d413ccc, 0x187de2a6, 0x3b20d79e, 0xc4df2862, 0xe7821d5a, 0xcac933ae, 0x238e7673,
963 	0x1294062e, 0x3d3e82ad, 0xce86ff2a, 0xd76619b6, 0xc4df2862, 0x187de2a6, 0x0c7c5c1e, 0x3ec52f9f,
964 	0xdc71898d, 0xcac933ae, 0xc13ad061, 0x0c7c5c1e, 0x0645e9af, 0x3fb11b47, 0xed6bf9d2, 0xc2c17d53
965 };
966 #endif  //ARMV5E
967 
968 const int ShortWindowSine[FRAME_LEN_SHORT/2] ={
969 	0x00c97fff, 0x025b7ffa, 0x03ed7ff1, 0x057f7fe2, 0x07117fce, 0x08a27fb5, 0x0a337f98, 0x0bc47f75,
970 	0x0d547f4e, 0x0ee47f22, 0x10737ef0, 0x12017eba, 0x138f7e7f, 0x151c7e3f, 0x16a87dfb, 0x18337db1,
971 	0x19be7d63, 0x1b477d0f, 0x1cd07cb7, 0x1e577c5a, 0x1fdd7bf9, 0x21627b92, 0x22e57b27, 0x24677ab7,
972 	0x25e87a42, 0x276879c9, 0x28e5794a, 0x2a6278c8, 0x2bdc7840, 0x2d5577b4, 0x2ecc7723, 0x3042768e,
973 	0x31b575f4, 0x33277556, 0x349774b3, 0x3604740b, 0x3770735f, 0x38d972af, 0x3a4071fa, 0x3ba57141,
974 	0x3d087083, 0x3e686fc2, 0x3fc66efb, 0x41216e31, 0x427a6d62, 0x43d16c8f, 0x45246bb8, 0x46756add,
975 	0x47c469fd, 0x490f691a, 0x4a586832, 0x4b9e6747, 0x4ce16657, 0x4e216564, 0x4f5e646c, 0x50986371,
976 	0x51cf6272, 0x5303616f, 0x54336068, 0x55605f5e, 0x568a5e50, 0x57b15d3e, 0x58d45c29, 0x59f45b10
977 };
978 
979 const int LongWindowKBD[FRAME_LEN_LONG/2]={
980 	0x000a7fff, 0x000e7fff, 0x00127fff, 0x00157fff, 0x00197fff, 0x001c7fff, 0x00207fff, 0x00237fff,
981 	0x00267fff, 0x002a7fff, 0x002d7fff, 0x00307fff, 0x00347fff, 0x00387fff, 0x003b7fff, 0x003f7fff,
982 	0x00437fff, 0x00477fff, 0x004b7fff, 0x004f7fff, 0x00537fff, 0x00577fff, 0x005b7fff, 0x00607fff,
983 	0x00647fff, 0x00697fff, 0x006d7fff, 0x00727fff, 0x00777fff, 0x007c7fff, 0x00817fff, 0x00867fff,
984 	0x008b7fff, 0x00917fff, 0x00967fff, 0x009c7fff, 0x00a17fff, 0x00a77fff, 0x00ad7fff, 0x00b37fff,
985 	0x00b97fff, 0x00bf7fff, 0x00c67fff, 0x00cc7fff, 0x00d37fff, 0x00da7fff, 0x00e07fff, 0x00e77fff,
986 	0x00ee7fff, 0x00f57fff, 0x00fd7fff, 0x01047fff, 0x010c7fff, 0x01137fff, 0x011b7fff, 0x01237fff,
987 	0x012b7fff, 0x01337fff, 0x013c7ffe, 0x01447ffe, 0x014d7ffe, 0x01567ffe, 0x015f7ffe, 0x01687ffe,
988 	0x01717ffe, 0x017a7ffe, 0x01837ffe, 0x018d7ffe, 0x01977ffd, 0x01a17ffd, 0x01ab7ffd, 0x01b57ffd,
989 	0x01bf7ffd, 0x01ca7ffd, 0x01d47ffd, 0x01df7ffc, 0x01ea7ffc, 0x01f57ffc, 0x02007ffc, 0x020c7ffc,
990 	0x02177ffc, 0x02237ffb, 0x022f7ffb, 0x023b7ffb, 0x02477ffb, 0x02537ffb, 0x02607ffa, 0x026d7ffa,
991 	0x027a7ffa, 0x02877ffa, 0x02947ff9, 0x02a17ff9, 0x02af7ff9, 0x02bc7ff9, 0x02ca7ff8, 0x02d87ff8,
992 	0x02e77ff8, 0x02f57ff7, 0x03047ff7, 0x03127ff7, 0x03217ff6, 0x03317ff6, 0x03407ff5, 0x034f7ff5,
993 	0x035f7ff5, 0x036f7ff4, 0x037f7ff4, 0x038f7ff3, 0x03a07ff3, 0x03b07ff2, 0x03c17ff2, 0x03d27ff1,
994 	0x03e37ff1, 0x03f57ff0, 0x04067ff0, 0x04187fef, 0x042a7fef, 0x043c7fee, 0x044f7fed, 0x04617fed,
995 	0x04747fec, 0x04877feb, 0x049a7feb, 0x04ae7fea, 0x04c17fe9, 0x04d57fe9, 0x04e97fe8, 0x04fd7fe7,
996 	0x05127fe6, 0x05277fe5, 0x053b7fe5, 0x05507fe4, 0x05667fe3, 0x057b7fe2, 0x05917fe1, 0x05a77fe0,
997 	0x05bd7fdf, 0x05d37fde, 0x05ea7fdd, 0x06017fdc, 0x06187fdb, 0x062f7fda, 0x06467fd9, 0x065e7fd7,
998 	0x06767fd6, 0x068e7fd5, 0x06a67fd4, 0x06bf7fd2, 0x06d87fd1, 0x06f17fd0, 0x070a7fce, 0x07237fcd,
999 	0x073d7fcc, 0x07577fca, 0x07717fc9, 0x078c7fc7, 0x07a67fc5, 0x07c17fc4, 0x07dc7fc2, 0x07f77fc0,
1000 	0x08137fbf, 0x082f7fbd, 0x084b7fbb, 0x08677fb9, 0x08847fb7, 0x08a07fb6, 0x08bd7fb4, 0x08da7fb2,
1001 	0x08f87faf, 0x09167fad, 0x09347fab, 0x09527fa9, 0x09707fa7, 0x098f7fa5, 0x09ae7fa2, 0x09cd7fa0,
1002 	0x09ec7f9d, 0x0a0c7f9b, 0x0a2c7f98, 0x0a4c7f96, 0x0a6c7f93, 0x0a8d7f91, 0x0aae7f8e, 0x0acf7f8b,
1003 	0x0af07f88, 0x0b127f85, 0x0b337f82, 0x0b557f7f, 0x0b787f7c, 0x0b9a7f79, 0x0bbd7f76, 0x0be07f73,
1004 	0x0c047f6f, 0x0c277f6c, 0x0c4b7f69, 0x0c6f7f65, 0x0c937f61, 0x0cb87f5e, 0x0cdd7f5a, 0x0d027f56,
1005 	0x0d277f53, 0x0d4d7f4f, 0x0d737f4b, 0x0d997f47, 0x0dbf7f43, 0x0de67f3e, 0x0e0c7f3a, 0x0e347f36,
1006 	0x0e5b7f31, 0x0e837f2d, 0x0eaa7f28, 0x0ed37f24, 0x0efb7f1f, 0x0f237f1a, 0x0f4c7f15, 0x0f757f10,
1007 	0x0f9f7f0b, 0x0fc87f06, 0x0ff27f01, 0x101c7efb, 0x10477ef6, 0x10717ef0, 0x109c7eeb, 0x10c87ee5,
1008 	0x10f37edf, 0x111f7eda, 0x114a7ed4, 0x11777ece, 0x11a37ec7, 0x11d07ec1, 0x11fd7ebb, 0x122a7eb4,
1009 	0x12577eae, 0x12857ea7, 0x12b37ea0, 0x12e17e9a, 0x130f7e93, 0x133e7e8c, 0x136d7e84, 0x139c7e7d,
1010 	0x13cc7e76, 0x13fb7e6e, 0x142b7e67, 0x145b7e5f, 0x148c7e57, 0x14bc7e4f, 0x14ed7e47, 0x151e7e3f,
1011 	0x15507e37, 0x15817e2e, 0x15b37e26, 0x15e57e1d, 0x16187e14, 0x164a7e0b, 0x167d7e02, 0x16b07df9,
1012 	0x16e47df0, 0x17177de6, 0x174b7ddd, 0x177f7dd3, 0x17b37dc9, 0x17e87dbf, 0x181d7db5, 0x18527dab,
1013 	0x18877da1, 0x18bc7d96, 0x18f27d8c, 0x19287d81, 0x195e7d76, 0x19957d6b, 0x19cb7d60, 0x1a027d54,
1014 	0x1a397d49, 0x1a717d3d, 0x1aa87d31, 0x1ae07d26, 0x1b187d19, 0x1b507d0d, 0x1b897d01, 0x1bc27cf4,
1015 	0x1bfb7ce8, 0x1c347cdb, 0x1c6d7cce, 0x1ca77cc1, 0x1ce17cb3, 0x1d1b7ca6, 0x1d557c98, 0x1d8f7c8a,
1016 	0x1dca7c7c, 0x1e057c6e, 0x1e407c60, 0x1e7b7c51, 0x1eb77c43, 0x1ef37c34, 0x1f2f7c25, 0x1f6b7c16,
1017 	0x1fa77c06, 0x1fe47bf7, 0x20217be7, 0x205e7bd7, 0x209b7bc7, 0x20d87bb7, 0x21167ba6, 0x21547b96,
1018 	0x21927b85, 0x21d07b74, 0x220e7b63, 0x224d7b52, 0x228c7b40, 0x22cb7b2e, 0x230a7b1c, 0x23497b0a,
1019 	0x23897af8, 0x23c87ae6, 0x24087ad3, 0x24487ac0, 0x24897aad, 0x24c97a9a, 0x250a7a86, 0x254b7a73,
1020 	0x258c7a5f, 0x25cd7a4b, 0x260e7a36, 0x26507a22, 0x26917a0d, 0x26d379f8, 0x271579e3, 0x275779ce,
1021 	0x279a79b8, 0x27dc79a3, 0x281f798d, 0x28627977, 0x28a57960, 0x28e8794a, 0x292b7933, 0x296f791c,
1022 	0x29b27905, 0x29f678ed, 0x2a3a78d6, 0x2a7e78be, 0x2ac278a6, 0x2b07788d, 0x2b4b7875, 0x2b90785c,
1023 	0x2bd47843, 0x2c19782a, 0x2c5e7810, 0x2ca477f7, 0x2ce977dd, 0x2d2e77c3, 0x2d7477a8, 0x2dba778e,
1024 	0x2dff7773, 0x2e457758, 0x2e8b773d, 0x2ed27721, 0x2f187706, 0x2f5e76ea, 0x2fa576cd, 0x2fec76b1,
1025 	0x30327694, 0x30797677, 0x30c0765a, 0x3107763d, 0x314e761f, 0x31967601, 0x31dd75e3, 0x322575c5,
1026 	0x326c75a6, 0x32b47588, 0x32fc7569, 0x33447549, 0x338c752a, 0x33d4750a, 0x341c74ea, 0x346474ca,
1027 	0x34ac74a9, 0x34f57488, 0x353d7467, 0x35857446, 0x35ce7424, 0x36177403, 0x365f73e1, 0x36a873be,
1028 	0x36f1739c, 0x373a7379, 0x37837356, 0x37cc7333, 0x3815730f, 0x385e72ec, 0x38a772c8, 0x38f172a3,
1029 	0x393a727f, 0x3983725a, 0x39cd7235, 0x3a167210, 0x3a6071ea, 0x3aa971c4, 0x3af3719e, 0x3b3c7178,
1030 	0x3b867151, 0x3bd0712b, 0x3c197104, 0x3c6370dc, 0x3cad70b5, 0x3cf7708d, 0x3d407065, 0x3d8a703c,
1031 	0x3dd47014, 0x3e1e6feb, 0x3e686fc2, 0x3eb16f98, 0x3efb6f6f, 0x3f456f45, 0x3f8f6f1b, 0x3fd96ef0,
1032 	0x40236ec6, 0x406d6e9b, 0x40b66e70, 0x41006e44, 0x414a6e19, 0x41946ded, 0x41de6dc1, 0x42286d94,
1033 	0x42716d68, 0x42bb6d3b, 0x43056d0d, 0x434f6ce0, 0x43986cb2, 0x43e26c84, 0x442c6c56, 0x44756c28,
1034 	0x44bf6bf9, 0x45086bca, 0x45526b9b, 0x459b6b6b, 0x45e56b3c, 0x462e6b0c, 0x46786adb, 0x46c16aab,
1035 	0x470a6a7a, 0x47536a49, 0x479c6a18, 0x47e569e7, 0x482e69b5, 0x48776983, 0x48c06951, 0x4909691e,
1036 	0x495268ec, 0x499b68b9, 0x49e36885, 0x4a2c6852, 0x4a74681e, 0x4abd67ea, 0x4b0567b6, 0x4b4d6782,
1037 	0x4b95674d, 0x4bde6718, 0x4c2666e3, 0x4c6d66ae, 0x4cb56678, 0x4cfd6642, 0x4d45660c, 0x4d8c65d6,
1038 	0x4dd4659f, 0x4e1b6568, 0x4e626531, 0x4ea964fa, 0x4ef064c3, 0x4f37648b, 0x4f7e6453, 0x4fc5641b,
1039 	0x500b63e2, 0x505263aa, 0x50986371, 0x50df6338, 0x512562fe, 0x516b62c5, 0x51b1628b, 0x51f66251,
1040 	0x523c6217, 0x528161dc, 0x52c761a2, 0x530c6167, 0x5351612c, 0x539660f1, 0x53db60b5, 0x54206079,
1041 	0x5464603d, 0x54a96001, 0x54ed5fc5, 0x55315f88, 0x55755f4b, 0x55b95f0e, 0x55fc5ed1, 0x56405e94,
1042 	0x56835e56, 0x56c75e18, 0x570a5dda, 0x574d5d9c, 0x578f5d5e, 0x57d25d1f, 0x58145ce0, 0x58565ca1,
1043 	0x58995c62, 0x58da5c23, 0x591c5be3, 0x595e5ba4, 0x599f5b64, 0x59e05b24, 0x5a215ae3, 0x5a625aa3
1044 };
1045 
1046 
1047 /*
1048   form factor
1049 */
1050 /* sqrt(((i+(1<<(FF_SQRT_BITS-2)+0.5)/2^31) */
1051 const Word32 formfac_sqrttable[96] = {
1052   0x000407f8, 0x000417b9, 0x0004273f, 0x0004368c, 0x000445a1, 0x00045483, 0x00046332, 0x000471b0,
1053   0x00048000, 0x00048e22, 0x00049c1a, 0x0004a9e7, 0x0004b78c, 0x0004c50a, 0x0004d263, 0x0004df96,
1054   0x0004eca7, 0x0004f995, 0x00050662, 0x0005130e, 0x00051f9c, 0x00052c0a, 0x0005385b, 0x00054490,
1055   0x000550a8, 0x00055ca5, 0x00056888, 0x00057450, 0x00058000, 0x00058b96, 0x00059715, 0x0005a27c,
1056   0x0005adcc, 0x0005b906, 0x0005c42b, 0x0005cf39, 0x0005da33, 0x0005e519, 0x0005efea, 0x0005faa8,
1057   0x00060552, 0x00060fea, 0x00061a70, 0x000624e3, 0x00062f45, 0x00063996, 0x000643d5, 0x00064e04,
1058   0x00065823, 0x00066231, 0x00066c30, 0x0006761f, 0x00068000, 0x000689d1, 0x00069393, 0x00069d47,
1059   0x0006a6ed, 0x0006b085, 0x0006ba10, 0x0006c38d, 0x0006ccfc, 0x0006d65f, 0x0006dfb5, 0x0006e8fe,
1060   0x0006f23b, 0x0006fb6c, 0x00070490, 0x00070da9, 0x000716b6, 0x00071fb8, 0x000728ae, 0x00073199,
1061   0x00073a79, 0x0007434e, 0x00074c19, 0x000754d9, 0x00075d8e, 0x0007663a, 0x00076edb, 0x00077772,
1062   0x00078000, 0x00078883, 0x000790fd, 0x0007996e, 0x0007a1d5, 0x0007aa33, 0x0007b288, 0x0007bad4,
1063   0x0007c318, 0x0007cb52, 0x0007d384, 0x0007dbad, 0x0007e3ce, 0x0007ebe6, 0x0007f3f6, 0x0007fbfe
1064 };
1065 
1066 
1067 
1068 /*!
1069   \name    quantizer and inverse quantizer tables
1070 
1071   \brief   these tables are used for the non
1072            linear quantizer and inverse quantizer
1073 
1074 */
1075 const Word32 mTab_3_4[512] = {
1076 	0x4c1bf829, 0x4c3880de, 0x4c550603, 0x4c71879c,
1077 	0x4c8e05aa, 0x4caa8030, 0x4cc6f72f, 0x4ce36aab,
1078 	0x4cffdaa4, 0x4d1c471d, 0x4d38b019, 0x4d55159a,
1079 	0x4d7177a1, 0x4d8dd631, 0x4daa314b, 0x4dc688f3,
1080 	0x4de2dd2a, 0x4dff2df2, 0x4e1b7b4d, 0x4e37c53d,
1081 	0x4e540bc5, 0x4e704ee6, 0x4e8c8ea3, 0x4ea8cafd,
1082 	0x4ec503f7, 0x4ee13992, 0x4efd6bd0, 0x4f199ab4,
1083 	0x4f35c640, 0x4f51ee75, 0x4f6e1356, 0x4f8a34e4,
1084 	0x4fa65321, 0x4fc26e10, 0x4fde85b2, 0x4ffa9a0a,
1085 	0x5016ab18, 0x5032b8e0, 0x504ec362, 0x506acaa1,
1086 	0x5086cea0, 0x50a2cf5e, 0x50becce0, 0x50dac725,
1087 	0x50f6be31, 0x5112b205, 0x512ea2a3, 0x514a900d,
1088 	0x51667a45, 0x5182614c, 0x519e4524, 0x51ba25cf,
1089 	0x51d60350, 0x51f1dda7, 0x520db4d6, 0x522988e0,
1090 	0x524559c6, 0x52612789, 0x527cf22d, 0x5298b9b1,
1091 	0x52b47e19, 0x52d03f65, 0x52ebfd98, 0x5307b8b4,
1092 	0x532370b9, 0x533f25aa, 0x535ad789, 0x53768656,
1093 	0x53923215, 0x53addac6, 0x53c9806b, 0x53e52306,
1094 	0x5400c298, 0x541c5f24, 0x5437f8ab, 0x54538f2e,
1095 	0x546f22af, 0x548ab330, 0x54a640b3, 0x54c1cb38,
1096 	0x54dd52c2, 0x54f8d753, 0x551458eb, 0x552fd78d,
1097 	0x554b5339, 0x5566cbf3, 0x558241bb, 0x559db492,
1098 	0x55b9247b, 0x55d49177, 0x55effb87, 0x560b62ad,
1099 	0x5626c6eb, 0x56422842, 0x565d86b4, 0x5678e242,
1100 	0x56943aee, 0x56af90b9, 0x56cae3a4, 0x56e633b2,
1101 	0x570180e4, 0x571ccb3b, 0x573812b8, 0x5753575e,
1102 	0x576e992e, 0x5789d829, 0x57a51450, 0x57c04da6,
1103 	0x57db842b, 0x57f6b7e1, 0x5811e8c9, 0x582d16e6,
1104 	0x58484238, 0x58636ac0, 0x587e9081, 0x5899b37c,
1105 	0x58b4d3b1, 0x58cff123, 0x58eb0bd3, 0x590623c2,
1106 	0x592138f2, 0x593c4b63, 0x59575b19, 0x59726812,
1107 	0x598d7253, 0x59a879da, 0x59c37eab, 0x59de80c6,
1108 	0x59f9802d, 0x5a147ce0, 0x5a2f76e2, 0x5a4a6e34,
1109 	0x5a6562d6, 0x5a8054cb, 0x5a9b4414, 0x5ab630b2,
1110 	0x5ad11aa6, 0x5aec01f1, 0x5b06e696, 0x5b21c895,
1111 	0x5b3ca7ef, 0x5b5784a6, 0x5b725ebc, 0x5b8d3631,
1112 	0x5ba80b06, 0x5bc2dd3e, 0x5bddacd9, 0x5bf879d8,
1113 	0x5c13443d, 0x5c2e0c09, 0x5c48d13e, 0x5c6393dc,
1114 	0x5c7e53e5, 0x5c99115a, 0x5cb3cc3c, 0x5cce848d,
1115 	0x5ce93a4e, 0x5d03ed80, 0x5d1e9e24, 0x5d394c3b,
1116 	0x5d53f7c7, 0x5d6ea0c9, 0x5d894742, 0x5da3eb33,
1117 	0x5dbe8c9e, 0x5dd92b84, 0x5df3c7e5, 0x5e0e61c3,
1118 	0x5e28f920, 0x5e438dfc, 0x5e5e2059, 0x5e78b037,
1119 	0x5e933d99, 0x5eadc87e, 0x5ec850e9, 0x5ee2d6da,
1120 	0x5efd5a53, 0x5f17db54, 0x5f3259e0, 0x5f4cd5f6,
1121 	0x5f674f99, 0x5f81c6c8, 0x5f9c3b87, 0x5fb6add4,
1122 	0x5fd11db3, 0x5feb8b23, 0x6005f626, 0x60205ebd,
1123 	0x603ac4e9, 0x605528ac, 0x606f8a05, 0x6089e8f7,
1124 	0x60a44583, 0x60be9fa9, 0x60d8f76b, 0x60f34cca,
1125 	0x610d9fc7, 0x6127f062, 0x61423e9e, 0x615c8a7a,
1126 	0x6176d3f9, 0x61911b1b, 0x61ab5fe1, 0x61c5a24d,
1127 	0x61dfe25f, 0x61fa2018, 0x62145b7a, 0x622e9485,
1128 	0x6248cb3b, 0x6262ff9d, 0x627d31ab, 0x62976167,
1129 	0x62b18ed1, 0x62cbb9eb, 0x62e5e2b6, 0x63000933,
1130 	0x631a2d62, 0x63344f45, 0x634e6edd, 0x63688c2b,
1131 	0x6382a730, 0x639cbfec, 0x63b6d661, 0x63d0ea90,
1132 	0x63eafc7a, 0x64050c1f, 0x641f1982, 0x643924a2,
1133 	0x64532d80, 0x646d341f, 0x6487387e, 0x64a13a9e,
1134 	0x64bb3a81, 0x64d53828, 0x64ef3393, 0x65092cc4,
1135 	0x652323bb, 0x653d1879, 0x65570b00, 0x6570fb50,
1136 	0x658ae96b, 0x65a4d550, 0x65bebf01, 0x65d8a680,
1137 	0x65f28bcc, 0x660c6ee8, 0x66264fd3, 0x66402e8f,
1138 	0x665a0b1c, 0x6673e57d, 0x668dbdb0, 0x66a793b8,
1139 	0x66c16795, 0x66db3949, 0x66f508d4, 0x670ed636,
1140 	0x6728a172, 0x67426a87, 0x675c3177, 0x6775f643,
1141 	0x678fb8eb, 0x67a97971, 0x67c337d5, 0x67dcf418,
1142 	0x67f6ae3b, 0x6810663f, 0x682a1c25, 0x6843cfed,
1143 	0x685d8199, 0x68773129, 0x6890de9f, 0x68aa89fa,
1144 	0x68c4333d, 0x68ddda67, 0x68f77f7a, 0x69112277,
1145 	0x692ac35e, 0x69446230, 0x695dfeee, 0x6977999a,
1146 	0x69913232, 0x69aac8ba, 0x69c45d31, 0x69ddef98,
1147 	0x69f77ff0, 0x6a110e3a, 0x6a2a9a77, 0x6a4424a8,
1148 	0x6a5daccc, 0x6a7732e6, 0x6a90b6f6, 0x6aaa38fd,
1149 	0x6ac3b8fb, 0x6add36f2, 0x6af6b2e2, 0x6b102ccd,
1150 	0x6b29a4b2, 0x6b431a92, 0x6b5c8e6f, 0x6b76004a,
1151 	0x6b8f7022, 0x6ba8ddf9, 0x6bc249d0, 0x6bdbb3a7,
1152 	0x6bf51b80, 0x6c0e815a, 0x6c27e537, 0x6c414718,
1153 	0x6c5aa6fd, 0x6c7404e7, 0x6c8d60d7, 0x6ca6bace,
1154 	0x6cc012cc, 0x6cd968d2, 0x6cf2bce1, 0x6d0c0ef9,
1155 	0x6d255f1d, 0x6d3ead4b, 0x6d57f985, 0x6d7143cc,
1156 	0x6d8a8c21, 0x6da3d283, 0x6dbd16f5, 0x6dd65976,
1157 	0x6def9a08, 0x6e08d8ab, 0x6e221560, 0x6e3b5027,
1158 	0x6e548902, 0x6e6dbff1, 0x6e86f4f5, 0x6ea0280e,
1159 	0x6eb9593e, 0x6ed28885, 0x6eebb5e3, 0x6f04e15a,
1160 	0x6f1e0aea, 0x6f373294, 0x6f505859, 0x6f697c39,
1161 	0x6f829e35, 0x6f9bbe4e, 0x6fb4dc85, 0x6fcdf8d9,
1162 	0x6fe7134d, 0x70002be0, 0x70194293, 0x70325767,
1163 	0x704b6a5d, 0x70647b76, 0x707d8ab1, 0x70969811,
1164 	0x70afa394, 0x70c8ad3d, 0x70e1b50c, 0x70fabb01,
1165 	0x7113bf1d, 0x712cc161, 0x7145c1ce, 0x715ec064,
1166 	0x7177bd24, 0x7190b80f, 0x71a9b124, 0x71c2a866,
1167 	0x71db9dd4, 0x71f49170, 0x720d8339, 0x72267331,
1168 	0x723f6159, 0x72584db0, 0x72713838, 0x728a20f1,
1169 	0x72a307db, 0x72bbecf9, 0x72d4d049, 0x72edb1ce,
1170 	0x73069187, 0x731f6f75, 0x73384b98, 0x735125f3,
1171 	0x7369fe84, 0x7382d54d, 0x739baa4e, 0x73b47d89,
1172 	0x73cd4efd, 0x73e61eab, 0x73feec94, 0x7417b8b8,
1173 	0x74308319, 0x74494bb6, 0x74621291, 0x747ad7aa,
1174 	0x74939b02, 0x74ac5c98, 0x74c51c6f, 0x74ddda86,
1175 	0x74f696de, 0x750f5178, 0x75280a54, 0x7540c174,
1176 	0x755976d7, 0x75722a7e, 0x758adc69, 0x75a38c9b,
1177 	0x75bc3b12, 0x75d4e7cf, 0x75ed92d4, 0x76063c21,
1178 	0x761ee3b6, 0x76378994, 0x76502dbc, 0x7668d02e,
1179 	0x768170eb, 0x769a0ff3, 0x76b2ad47, 0x76cb48e7,
1180 	0x76e3e2d5, 0x76fc7b10, 0x7715119a, 0x772da673,
1181 	0x7746399b, 0x775ecb13, 0x77775adc, 0x778fe8f6,
1182 	0x77a87561, 0x77c1001f, 0x77d98930, 0x77f21095,
1183 	0x780a964d, 0x78231a5b, 0x783b9cbd, 0x78541d75,
1184 	0x786c9c84, 0x788519e9, 0x789d95a6, 0x78b60fbb,
1185 	0x78ce8828, 0x78e6feef, 0x78ff740f, 0x7917e78a,
1186 	0x7930595f, 0x7948c990, 0x7961381d, 0x7979a506,
1187 	0x7992104c, 0x79aa79f0, 0x79c2e1f1, 0x79db4852,
1188 	0x79f3ad11, 0x7a0c1031, 0x7a2471b0, 0x7a3cd191,
1189 	0x7a552fd3, 0x7a6d8c76, 0x7a85e77d, 0x7a9e40e6,
1190 	0x7ab698b2, 0x7aceeee3, 0x7ae74378, 0x7aff9673,
1191 	0x7b17e7d2, 0x7b303799, 0x7b4885c5, 0x7b60d259,
1192 	0x7b791d55, 0x7b9166b9, 0x7ba9ae86, 0x7bc1f4bc,
1193 	0x7bda395c, 0x7bf27c66, 0x7c0abddb, 0x7c22fdbb,
1194 	0x7c3b3c07, 0x7c5378c0, 0x7c6bb3e5, 0x7c83ed78,
1195 	0x7c9c2579, 0x7cb45be9, 0x7ccc90c7, 0x7ce4c414,
1196 	0x7cfcf5d2, 0x7d152600, 0x7d2d549f, 0x7d4581b0,
1197 	0x7d5dad32, 0x7d75d727, 0x7d8dff8f, 0x7da6266a,
1198 	0x7dbe4bba, 0x7dd66f7d, 0x7dee91b6, 0x7e06b264,
1199 	0x7e1ed188, 0x7e36ef22, 0x7e4f0b34, 0x7e6725bd,
1200 	0x7e7f3ebd, 0x7e975636, 0x7eaf6c28, 0x7ec78093,
1201 	0x7edf9378, 0x7ef7a4d7, 0x7f0fb4b1, 0x7f27c307,
1202 	0x7f3fcfd8, 0x7f57db25, 0x7f6fe4ef, 0x7f87ed36,
1203 	0x7f9ff3fb, 0x7fb7f93e, 0x7fcffcff, 0x7fe7ff40
1204 };
1205 
1206 const Word32 mTab_4_3[512]={
1207 	0x32cbfd4a, 0x32eddd70, 0x330fc339, 0x3331aea3,
1208 	0x33539fac, 0x33759652, 0x33979294, 0x33b99470,
1209 	0x33db9be4, 0x33fda8ed, 0x341fbb8b, 0x3441d3bb,
1210 	0x3463f17c, 0x348614cc, 0x34a83da8, 0x34ca6c10,
1211 	0x34eca001, 0x350ed979, 0x35311877, 0x35535cfa,
1212 	0x3575a6fe, 0x3597f683, 0x35ba4b87, 0x35dca607,
1213 	0x35ff0603, 0x36216b78, 0x3643d665, 0x366646c7,
1214 	0x3688bc9e, 0x36ab37e8, 0x36cdb8a2, 0x36f03ecb,
1215 	0x3712ca62, 0x37355b64, 0x3757f1d1, 0x377a8da5,
1216 	0x379d2ee0, 0x37bfd580, 0x37e28184, 0x380532e8,
1217 	0x3827e9ad, 0x384aa5d0, 0x386d674f, 0x38902e2a,
1218 	0x38b2fa5d, 0x38d5cbe9, 0x38f8a2ca, 0x391b7eff,
1219 	0x393e6088, 0x39614761, 0x3984338a, 0x39a72501,
1220 	0x39ca1bc4, 0x39ed17d1, 0x3a101928, 0x3a331fc6,
1221 	0x3a562baa, 0x3a793cd2, 0x3a9c533d, 0x3abf6ee9,
1222 	0x3ae28fd5, 0x3b05b5ff, 0x3b28e165, 0x3b4c1206,
1223 	0x3b6f47e0, 0x3b9282f2, 0x3bb5c33a, 0x3bd908b7,
1224 	0x3bfc5368, 0x3c1fa349, 0x3c42f85b, 0x3c66529c,
1225 	0x3c89b209, 0x3cad16a2, 0x3cd08065, 0x3cf3ef51,
1226 	0x3d176364, 0x3d3adc9c, 0x3d5e5af8, 0x3d81de77,
1227 	0x3da56717, 0x3dc8f4d6, 0x3dec87b4, 0x3e101fae,
1228 	0x3e33bcc3, 0x3e575ef2, 0x3e7b063a, 0x3e9eb298,
1229 	0x3ec2640c, 0x3ee61a93, 0x3f09d62d, 0x3f2d96d8,
1230 	0x3f515c93, 0x3f75275b, 0x3f98f731, 0x3fbccc11,
1231 	0x3fe0a5fc, 0x400484ef, 0x402868ea, 0x404c51e9,
1232 	0x40703fee, 0x409432f5, 0x40b82afd, 0x40dc2806,
1233 	0x41002a0d, 0x41243111, 0x41483d12, 0x416c4e0d,
1234 	0x41906401, 0x41b47eed, 0x41d89ecf, 0x41fcc3a7,
1235 	0x4220ed72, 0x42451c30, 0x42694fde, 0x428d887d,
1236 	0x42b1c609, 0x42d60883, 0x42fa4fe8, 0x431e9c37,
1237 	0x4342ed70, 0x43674390, 0x438b9e96, 0x43affe82,
1238 	0x43d46351, 0x43f8cd03, 0x441d3b95, 0x4441af08,
1239 	0x44662758, 0x448aa487, 0x44af2690, 0x44d3ad75,
1240 	0x44f83933, 0x451cc9c8, 0x45415f35, 0x4565f977,
1241 	0x458a988d, 0x45af3c76, 0x45d3e531, 0x45f892bc,
1242 	0x461d4516, 0x4641fc3e, 0x4666b832, 0x468b78f2,
1243 	0x46b03e7c, 0x46d508cf, 0x46f9d7e9, 0x471eabca,
1244 	0x47438470, 0x476861d9, 0x478d4406, 0x47b22af3,
1245 	0x47d716a1, 0x47fc070e, 0x4820fc39, 0x4845f620,
1246 	0x486af4c3, 0x488ff820, 0x48b50035, 0x48da0d03,
1247 	0x48ff1e87, 0x492434c0, 0x49494fad, 0x496e6f4d,
1248 	0x4993939f, 0x49b8bca2, 0x49ddea54, 0x4a031cb4,
1249 	0x4a2853c1, 0x4a4d8f7a, 0x4a72cfde, 0x4a9814eb,
1250 	0x4abd5ea1, 0x4ae2acfd, 0x4b080000, 0x4b2d57a8,
1251 	0x4b52b3f3, 0x4b7814e1, 0x4b9d7a70, 0x4bc2e49f,
1252 	0x4be8536e, 0x4c0dc6db, 0x4c333ee4, 0x4c58bb89,
1253 	0x4c7e3cc9, 0x4ca3c2a2, 0x4cc94d14, 0x4ceedc1c,
1254 	0x4d146fbb, 0x4d3a07ef, 0x4d5fa4b6, 0x4d854611,
1255 	0x4daaebfd, 0x4dd09679, 0x4df64585, 0x4e1bf91f,
1256 	0x4e41b146, 0x4e676dfa, 0x4e8d2f38, 0x4eb2f501,
1257 	0x4ed8bf52, 0x4efe8e2b, 0x4f24618a, 0x4f4a3970,
1258 	0x4f7015d9, 0x4f95f6c6, 0x4fbbdc36, 0x4fe1c626,
1259 	0x5007b497, 0x502da787, 0x50539ef5, 0x50799ae1,
1260 	0x509f9b48, 0x50c5a02a, 0x50eba985, 0x5111b75a,
1261 	0x5137c9a6, 0x515de069, 0x5183fba2, 0x51aa1b4f,
1262 	0x51d03f70, 0x51f66803, 0x521c9508, 0x5242c67d,
1263 	0x5268fc62, 0x528f36b5, 0x52b57575, 0x52dbb8a2,
1264 	0x5302003a, 0x53284c3c, 0x534e9ca8, 0x5374f17c,
1265 	0x539b4ab7, 0x53c1a858, 0x53e80a5f, 0x540e70ca,
1266 	0x5434db98, 0x545b4ac8, 0x5481be5a, 0x54a8364b,
1267 	0x54ceb29c, 0x54f5334c, 0x551bb858, 0x554241c1,
1268 	0x5568cf85, 0x558f61a3, 0x55b5f81b, 0x55dc92eb,
1269 	0x56033212, 0x5629d590, 0x56507d63, 0x5677298a,
1270 	0x569dda05, 0x56c48ed3, 0x56eb47f2, 0x57120562,
1271 	0x5738c721, 0x575f8d2f, 0x5786578a, 0x57ad2633,
1272 	0x57d3f927, 0x57fad066, 0x5821abef, 0x58488bc0,
1273 	0x586f6fda, 0x5896583b, 0x58bd44e2, 0x58e435ce,
1274 	0x590b2aff, 0x59322473, 0x59592229, 0x59802420,
1275 	0x59a72a59, 0x59ce34d0, 0x59f54387, 0x5a1c567b,
1276 	0x5a436dac, 0x5a6a8919, 0x5a91a8c1, 0x5ab8cca3,
1277 	0x5adff4be, 0x5b072111, 0x5b2e519c, 0x5b55865e,
1278 	0x5b7cbf54, 0x5ba3fc80, 0x5bcb3ddf, 0x5bf28371,
1279 	0x5c19cd35, 0x5c411b2a, 0x5c686d4f, 0x5c8fc3a4,
1280 	0x5cb71e27, 0x5cde7cd7, 0x5d05dfb4, 0x5d2d46bd,
1281 	0x5d54b1f0, 0x5d7c214e, 0x5da394d4, 0x5dcb0c83,
1282 	0x5df28859, 0x5e1a0856, 0x5e418c78, 0x5e6914be,
1283 	0x5e90a129, 0x5eb831b7, 0x5edfc667, 0x5f075f38,
1284 	0x5f2efc29, 0x5f569d3a, 0x5f7e426a, 0x5fa5ebb7,
1285 	0x5fcd9921, 0x5ff54aa8, 0x601d004a, 0x6044ba06,
1286 	0x606c77dc, 0x609439ca, 0x60bbffd0, 0x60e3c9ee,
1287 	0x610b9821, 0x61336a6a, 0x615b40c8, 0x61831b39,
1288 	0x61aaf9bd, 0x61d2dc53, 0x61fac2fa, 0x6222adb2,
1289 	0x624a9c79, 0x62728f4f, 0x629a8633, 0x62c28123,
1290 	0x62ea8020, 0x63128329, 0x633a8a3c, 0x63629559,
1291 	0x638aa47f, 0x63b2b7ad, 0x63dacee2, 0x6402ea1e,
1292 	0x642b0960, 0x64532ca6, 0x647b53f1, 0x64a37f3f,
1293 	0x64cbae8f, 0x64f3e1e2, 0x651c1935, 0x65445488,
1294 	0x656c93db, 0x6594d72c, 0x65bd1e7b, 0x65e569c7,
1295 	0x660db90f, 0x66360c53, 0x665e6391, 0x6686bec9,
1296 	0x66af1dfa, 0x66d78123, 0x66ffe844, 0x6728535b,
1297 	0x6750c268, 0x6779356b, 0x67a1ac62, 0x67ca274c,
1298 	0x67f2a629, 0x681b28f9, 0x6843afb9, 0x686c3a6a,
1299 	0x6894c90b, 0x68bd5b9b, 0x68e5f219, 0x690e8c84,
1300 	0x69372add, 0x695fcd21, 0x69887350, 0x69b11d6a,
1301 	0x69d9cb6d, 0x6a027d5a, 0x6a2b332f, 0x6a53eceb,
1302 	0x6a7caa8d, 0x6aa56c16, 0x6ace3184, 0x6af6fad6,
1303 	0x6b1fc80c, 0x6b489925, 0x6b716e20, 0x6b9a46fd,
1304 	0x6bc323bb, 0x6bec0458, 0x6c14e8d5, 0x6c3dd130,
1305 	0x6c66bd69, 0x6c8fad80, 0x6cb8a172, 0x6ce19940,
1306 	0x6d0a94e9, 0x6d33946d, 0x6d5c97ca, 0x6d859eff,
1307 	0x6daeaa0d, 0x6dd7b8f1, 0x6e00cbad, 0x6e29e23e,
1308 	0x6e52fca4, 0x6e7c1adf, 0x6ea53cee, 0x6ece62cf,
1309 	0x6ef78c83, 0x6f20ba09, 0x6f49eb5f, 0x6f732085,
1310 	0x6f9c597b, 0x6fc59640, 0x6feed6d3, 0x70181b33,
1311 	0x70416360, 0x706aaf59, 0x7093ff1d, 0x70bd52ab,
1312 	0x70e6aa04, 0x71100525, 0x7139640f, 0x7162c6c1,
1313 	0x718c2d3a, 0x71b5977a, 0x71df057f, 0x72087749,
1314 	0x7231ecd8, 0x725b662a, 0x7284e33f, 0x72ae6417,
1315 	0x72d7e8b0, 0x7301710a, 0x732afd24, 0x73548cfe,
1316 	0x737e2097, 0x73a7b7ee, 0x73d15303, 0x73faf1d5,
1317 	0x74249462, 0x744e3aac, 0x7477e4b0, 0x74a1926e,
1318 	0x74cb43e6, 0x74f4f917, 0x751eb201, 0x75486ea1,
1319 	0x75722ef9, 0x759bf307, 0x75c5baca, 0x75ef8642,
1320 	0x7619556f, 0x7643284f, 0x766cfee2, 0x7696d928,
1321 	0x76c0b71f, 0x76ea98c7, 0x77147e20, 0x773e6728,
1322 	0x776853df, 0x77924445, 0x77bc3858, 0x77e63019,
1323 	0x78102b85, 0x783a2a9e, 0x78642d62, 0x788e33d1,
1324 	0x78b83de9, 0x78e24bab, 0x790c5d15, 0x79367228,
1325 	0x79608ae1, 0x798aa742, 0x79b4c748, 0x79deeaf4,
1326 	0x7a091245, 0x7a333d3a, 0x7a5d6bd2, 0x7a879e0e,
1327 	0x7ab1d3ec, 0x7adc0d6b, 0x7b064a8c, 0x7b308b4d,
1328 	0x7b5acfae, 0x7b8517ae, 0x7baf634c, 0x7bd9b289,
1329 	0x7c040563, 0x7c2e5bda, 0x7c58b5ec, 0x7c83139b,
1330 	0x7cad74e4, 0x7cd7d9c7, 0x7d024244, 0x7d2cae5a,
1331 	0x7d571e09, 0x7d81914f, 0x7dac082d, 0x7dd682a1,
1332 	0x7e0100ac, 0x7e2b824b, 0x7e560780, 0x7e809048,
1333 	0x7eab1ca5, 0x7ed5ac94, 0x7f004015, 0x7f2ad729,
1334 	0x7f5571cd, 0x7f801003, 0x7faab1c8, 0x7fd5571d
1335 };
1336 
1337 
1338 const Word32 invSBF[24] = {
1339   0x3FFD34FC, 0x2D3F8000, 0x24F18C7E, 0x1FFE9A7E,
1340   0x1C9DF10C, 0x1A1F851A, 0x182FE994, 0x169FC000,
1341   0x15542AAA, 0x143C31C2, 0x134B1B6C, 0x127920BE,
1342   0x11BF2FCC, 0x111A749E, 0x1085FC42, 0x0FFFA7BE,
1343   0x0F855818, 0x0F14EE56, 0x0EAE6A78, 0x0E4EF886,
1344   0x0DF69880, 0x0DA49568, 0x0D578542, 0x0D101D0C
1345 };
1346 
1347 const Word16 pow2tominusNover16[17] = {
1348   0x7fff, 0x7a93, 0x7560, 0x7066,
1349   0x6ba2, 0x6712, 0x62b4, 0x5e84,
1350   0x5a82, 0x56ac, 0x52ff, 0x4f7b,
1351   0x4c1c, 0x48e2, 0x45cb, 0x42d5,
1352   0x4000
1353 };
1354 
1355 const Word16 sideInfoTabLong[MAX_SFB_LONG + 1] = {
1356   9, 9, 9, 9, 9, 9, 9, 9, 9,
1357   9, 9, 9, 9, 9, 9, 9, 9, 9,
1358   9, 9, 9, 9, 9, 9, 9, 9, 9,
1359   9, 9, 9, 9, 14, 14, 14, 14,
1360   14, 14, 14, 14, 14, 14, 14,
1361   14, 14, 14, 14, 14, 14, 14,
1362   14, 14, 14
1363 };
1364 
1365 const Word16 sideInfoTabShort[MAX_SFB_SHORT + 1] = {
1366   7, 7, 7, 7, 7, 7, 7, 10, 10,
1367   10, 10, 10, 10, 10, 13, 13
1368 };
1369 
1370 const Word32 specExpMantTableComb_enc[4][14] =
1371 {
1372   {0x40000000,  0x50a28be6,  0x6597fa95,  0x40000000,
1373    0x50a28be6,  0x6597fa95,  0x40000000,  0x50a28be6,
1374    0x6597fa95,  0x40000000,  0x50a28be6,  0x6597fa95,
1375    0x40000000,  0x50a28be6},
1376 
1377   {0x4c1bf829,  0x5fe4435e,  0x78d0df9c,  0x4c1bf829,
1378    0x5fe4435e,  0x78d0df9c,  0x4c1bf829,  0x5fe4435e,
1379    0x78d0df9c,  0x4c1bf829,  0x5fe4435e,  0x78d0df9c,
1380    0x4c1bf829,  0x5fe4435e},
1381 
1382   {0x5a82799a,  0x7208f81d,  0x47d66b0f,  0x5a82799a,
1383    0x7208f81d,  0x47d66b0f,  0x5a82799a,  0x7208f81d,
1384    0x47d66b0f,  0x5a82799a,  0x7208f81d,  0x47d66b0f,
1385    0x5a82799a,  0x7208f81d},
1386 
1387   {0x6ba27e65,  0x43ce3e4b,  0x556e0424,  0x6ba27e65,
1388    0x43ce3e4b,  0x556e0424,  0x6ba27e65,  0x43ce3e4b,
1389    0x556e0424,  0x6ba27e65,  0x43ce3e4b,  0x556e0424,
1390    0x6ba27e65,  0x43ce3e4b}
1391 };
1392 
1393 const  UWord8 specExpTableComb_enc[4][14] =
1394 {
1395   {1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15, 17, 18},
1396   {1, 2, 3, 5, 6, 7, 9, 10, 11, 13, 14, 15, 17, 18},
1397   {1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 14, 16, 17, 18},
1398   {1, 3, 4, 5, 7, 8, 9, 11, 12, 13, 15, 16, 17, 19}
1399 };
1400 
1401 const Word16 quantBorders[4][4] = {
1402   /* pow(1.0-0.4054, 4/3)/16 * pow(2, (0..3)/4) */
1403   {0x0400, 0x0ee7, 0x1c86, 0x2c0d},
1404   /* pow(2.0-0.4054, 4/3)/16 * pow(2, (0..3)/4) */
1405   {0x04c2, 0x11b9, 0x21eb, 0x3463},
1406   /* pow(3.0-0.4054, 4/3)/16 * pow(2, (0..3)/4) */
1407   {0x05a8, 0x1514, 0x2856, 0x3e4c},
1408   /* pow(4.0-0.4054, 4/3)/16 * pow(2, (0..3)/4) */
1409   {0x06ba, 0x1911, 0x2ff8, 0x4a16},
1410 };
1411 
1412 const Word16 quantRecon[4][3] = {
1413   {0x0800, 0x1429, 0x229d},
1414   {0x0983, 0x17f9, 0x292a},
1415   {0x0b50, 0x1c82, 0x30f4},
1416   {0x0d74, 0x21e7, 0x3a37},
1417 };
1418 
1419 const int sampRateTab[NUM_SAMPLE_RATES] = {
1420     96000, 88200, 64000, 48000, 44100, 32000,
1421 	24000, 22050, 16000, 12000, 11025,  8000
1422 };
1423 
1424 
1425 const int	rates[8] = {
1426 	160, 240, 320, 400, 480, 560, 640, 0
1427 };
1428 
1429 const int BandwithCoefTab[8][NUM_SAMPLE_RATES] = {
1430 	{ 7000,  7000,  4666,  3500,  3500,  2800,  2800,  2800,  2800,  2000,  2000,  2000},
1431 	{12000, 12000,  8000,  6000,  6000,  6000,  4000,  4000,  4000,  3000,  3000,  3000},
1432 	{18000, 18000, 12000,  9000,  9000,  9000,  7000,  7000,  7000,  5000,  5000,  5000},
1433 	{20000, 20000, 16000, 12000, 12000, 12000,  9000,  9000,  9000,  6000,  6000,  6000},
1434 	{20000, 20000, 18666, 14000, 14000, 14000, 10000, 10000, 10000,  7000,  7000,  7000},
1435 	{20000, 20000, 20000, 16000, 16000, 16000, 12000, 12000, 12000,  8000,  8000,  8000},
1436 	{20000, 20000, 20000, 20000, 20000, 20000, 15000, 15000, 15000, 10000, 10000, 10000},
1437 	{20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000, 20000}
1438 };
1439 
1440 
1441 /* total number of scale factor bands in one window */
1442 const UWord8 sfBandTotalShort[NUM_SAMPLE_RATES] = {
1443     12, 12, 12, 14, 14, 14, 15, 15, 15, 15, 15, 15
1444 };
1445 
1446 const UWord8 sfBandTotalLong[NUM_SAMPLE_RATES] = {
1447     41, 41, 47, 49, 49, 51, 47, 47, 43, 43, 43, 40
1448 };
1449 
1450 /* scale factor band tables */
1451 const int sfBandTabShortOffset[NUM_SAMPLE_RATES] = {0, 0, 0, 13, 13, 13, 28, 28, 44, 44, 44, 60};
1452 
1453 const short sfBandTabShort[76] = {
1454 	/* short block 64, 88, 96 kHz [13]  */
1455 	0,   4,   8,  12,  16,  20,  24,  32,  40,  48,  64,  92, 128,
1456 
1457 	/* short block 32, 44, 48 kHz [15]  */
1458 	0,   4,   8,  12,  16,  20,  28,  36,  44,  56,  68,  80,  96, 112, 128,
1459 
1460 	/* short block 22, 24 kHz [16]  */
1461 	0,   4,   8,  12,  16,  20,  24,  28,  36,  44,  52,  64,  76,  92, 108, 128,
1462 
1463 	/* short block 11, 12, 16 kHz [16] */
1464 	0,   4,   8,  12,  16,  20,  24,  28,  32,  40,  48,  60,  72,  88, 108, 128,
1465 
1466 	/* short block 8 kHz [16] */
1467 	0,   4,   8,  12,  16,  20,  24,  28,  36,  44,  52,  60,  72,  88, 108, 128
1468 };
1469 
1470 const int sfBandTabLongOffset[NUM_SAMPLE_RATES] = {0, 0, 42, 90, 90, 140, 192, 192, 240, 240, 240, 284};
1471 
1472 const short sfBandTabLong[325] = {
1473 	/* long block 88, 96 kHz [42]  */
1474 	  0,   4,   8,  12,  16,  20,  24,  28,  32,  36,  40,  44,  48,   52,
1475 	 56,  64,  72,  80,  88,  96, 108, 120, 132, 144, 156, 172, 188,  212,
1476 	240, 276, 320, 384, 448, 512, 576, 640, 704, 768, 832, 896, 960, 1024,
1477 
1478 	/* long block 64 kHz [48]  */
1479 	  0,   4,   8,  12,  16,  20,  24,  28,  32,  36,  40,  44,  48,  52,  56,   64,
1480 	 72,  80,  88, 100, 112, 124, 140, 156, 172, 192, 216, 240, 268, 304, 344,  384,
1481 	424, 464, 504, 544, 584, 624, 664, 704, 744, 784, 824, 864, 904, 944, 984, 1024,
1482 
1483 	/* long block 44, 48 kHz [50] */
1484 	  0,   4,   8,  12,  16,  20,  24,  28,  32,  36,  40,  48,  56,  64,  72,   80,  88,
1485 	 96, 108, 120, 132, 144, 160, 176, 196, 216, 240, 264, 292, 320, 352, 384,  416, 448,
1486 	480, 512, 544, 576, 608, 640, 672, 704, 736, 768, 800, 832, 864, 896, 928, 1024,
1487 
1488 	/* long block 32 kHz [52] */
1489 	  0,   4,   8,  12,  16,  20,  24,  28,  32,  36,  40,  48,  56,  64,  72,   80,  88,  96,
1490 	108, 120, 132, 144, 160, 176, 196, 216, 240, 264, 292, 320, 352, 384, 416,  448, 480, 512,
1491 	544, 576, 608, 640, 672, 704, 736, 768, 800, 832, 864, 896, 928, 960, 992, 1024,
1492 
1493 	/* long block 22, 24 kHz [48] */
1494 	  0,   4,   8,  12,  16,  20,  24,  28,  32,  36,  40,  44,  52,  60,  68,   76,
1495 	 84,  92, 100, 108, 116, 124, 136, 148, 160, 172, 188, 204, 220, 240, 260,  284,
1496 	308, 336, 364, 396, 432, 468, 508, 552, 600, 652, 704, 768, 832, 896, 960, 1024,
1497 
1498 	/* long block 11, 12, 16 kHz [44] */
1499 	  0,   8,  16,  24,  32,  40,  48,  56,  64,  72,  80,  88, 100,  112, 124,
1500 	136, 148, 160, 172, 184, 196, 212, 228, 244, 260, 280, 300, 320,  344, 368,
1501 	396, 424, 456, 492, 532, 572, 616, 664, 716, 772, 832, 896, 960, 1024,
1502 
1503 	/* long block 8 kHz [41]  */
1504 	  0,  12,  24,  36,  48,  60,  72,  84,  96, 108, 120, 132,  144, 156,
1505 	172, 188, 204, 220, 236, 252, 268, 288, 308, 328, 348, 372,  396, 420,
1506 	448, 476, 508, 544, 580, 620, 664, 712, 764, 820, 880, 944, 1024
1507 };
1508 
1509 /*
1510   these tables are used only for counting and
1511   are stored in packed format
1512 */
1513 const UWord16 huff_ltab1_2[3][3][3][3]=
1514 {
1515   {
1516     {
1517       {0x0b09,0x0907,0x0b09},
1518       {0x0a08,0x0706,0x0a08},
1519       {0x0b09,0x0908,0x0b09}
1520     },
1521     {
1522       {0x0a08,0x0706,0x0a07},
1523       {0x0706,0x0505,0x0706},
1524       {0x0907,0x0706,0x0a08}
1525     },
1526     {
1527       {0x0b09,0x0907,0x0b08},
1528       {0x0908,0x0706,0x0908},
1529       {0x0b09,0x0907,0x0b09}
1530     }
1531   },
1532   {
1533     {
1534       {0x0908,0x0706,0x0907},
1535       {0x0706,0x0505,0x0706},
1536       {0x0907,0x0706,0x0908}
1537     },
1538     {
1539       {0x0706,0x0505,0x0706},
1540       {0x0505,0x0103,0x0505},
1541       {0x0706,0x0505,0x0706}
1542     },
1543     {
1544       {0x0908,0x0706,0x0907},
1545       {0x0706,0x0505,0x0706},
1546       {0x0908,0x0706,0x0908}
1547     }
1548   },
1549   {
1550     {
1551       {0x0b09,0x0907,0x0b09},
1552       {0x0908,0x0706,0x0908},
1553       {0x0b08,0x0907,0x0b09}
1554     },
1555     {
1556       {0x0a08,0x0706,0x0907},
1557       {0x0706,0x0504,0x0706},
1558       {0x0908,0x0706,0x0a07}
1559     },
1560     {
1561       {0x0b09,0x0907,0x0b09},
1562       {0x0a07,0x0706,0x0908},
1563       {0x0b09,0x0907,0x0b09}
1564     }
1565   }
1566 };
1567 
1568 
1569 const UWord16 huff_ltab3_4[3][3][3][3]=
1570 {
1571   {
1572     {
1573       {0x0104,0x0405,0x0808},
1574       {0x0405,0x0504,0x0808},
1575       {0x0909,0x0908,0x0a0b}
1576     },
1577     {
1578       {0x0405,0x0605,0x0908},
1579       {0x0605,0x0604,0x0908},
1580       {0x0908,0x0907,0x0a0a}
1581     },
1582     {
1583       {0x0909,0x0a08,0x0d0b},
1584       {0x0908,0x0908,0x0b0a},
1585       {0x0b0b,0x0a0a,0x0c0b}
1586     }
1587   },
1588   {
1589     {
1590       {0x0404,0x0605,0x0a08},
1591       {0x0604,0x0704,0x0a08},
1592       {0x0a08,0x0a08,0x0c0a}
1593     },
1594     {
1595       {0x0504,0x0704,0x0b08},
1596       {0x0604,0x0704,0x0a07},
1597       {0x0908,0x0907,0x0b09}
1598     },
1599     {
1600       {0x0908,0x0a08,0x0d0a},
1601       {0x0807,0x0907,0x0c09},
1602       {0x0a0a,0x0b09,0x0c0a}
1603     }
1604   },
1605   {
1606     {
1607       {0x0808,0x0a08,0x0f0b},
1608       {0x0908,0x0b07,0x0f0a},
1609       {0x0d0b,0x0e0a,0x100c}
1610     },
1611     {
1612       {0x0808,0x0a07,0x0e0a},
1613       {0x0907,0x0a07,0x0e09},
1614       {0x0c0a,0x0c09,0x0f0b}
1615     },
1616     {
1617       {0x0b0b,0x0c0a,0x100c},
1618       {0x0a0a,0x0b09,0x0f0b},
1619       {0x0c0b,0x0c0a,0x0f0b}
1620     }
1621   }
1622 };
1623 
1624 const UWord16 huff_ltab5_6[9][9]=
1625 {
1626   {0x0d0b,0x0c0a,0x0b09,0x0b09,0x0a09,0x0b09,0x0b09,0x0c0a,0x0d0b},
1627   {0x0c0a,0x0b09,0x0a08,0x0907,0x0807,0x0907,0x0a08,0x0b09,0x0c0a},
1628   {0x0c09,0x0a08,0x0906,0x0806,0x0706,0x0806,0x0906,0x0a08,0x0b09},
1629   {0x0b09,0x0907,0x0806,0x0504,0x0404,0x0504,0x0806,0x0907,0x0b09},
1630   {0x0a09,0x0807,0x0706,0x0404,0x0104,0x0404,0x0706,0x0807,0x0b09},
1631   {0x0b09,0x0907,0x0806,0x0504,0x0404,0x0504,0x0806,0x0907,0x0b09},
1632   {0x0b09,0x0a08,0x0906,0x0806,0x0706,0x0806,0x0906,0x0a08,0x0b09},
1633   {0x0c0a,0x0b09,0x0a08,0x0907,0x0807,0x0907,0x0a07,0x0b08,0x0c0a},
1634   {0x0d0b,0x0c0a,0x0c09,0x0b09,0x0a09,0x0a09,0x0b09,0x0c0a,0x0d0b}
1635 };
1636 
1637 const UWord16 huff_ltab7_8[8][8]=
1638 {
1639   {0x0105,0x0304,0x0605,0x0706,0x0807,0x0908,0x0a09,0x0b0a},
1640   {0x0304,0x0403,0x0604,0x0705,0x0806,0x0807,0x0907,0x0908},
1641   {0x0605,0x0604,0x0704,0x0805,0x0806,0x0907,0x0907,0x0a08},
1642   {0x0706,0x0705,0x0805,0x0806,0x0906,0x0907,0x0a08,0x0a08},
1643   {0x0807,0x0806,0x0906,0x0906,0x0a07,0x0a07,0x0a08,0x0b09},
1644   {0x0908,0x0807,0x0906,0x0907,0x0a07,0x0a08,0x0b08,0x0b0a},
1645   {0x0a09,0x0907,0x0907,0x0a08,0x0a08,0x0b08,0x0c09,0x0c09},
1646   {0x0b0a,0x0a08,0x0a08,0x0a08,0x0b09,0x0b09,0x0c09,0x0c0a}
1647 };
1648 
1649 const UWord16 huff_ltab9_10[13][13]=
1650 {
1651   {0x0106,0x0305,0x0606,0x0806,0x0907,0x0a08,0x0a09,0x0b0a,0x0b0a,0x0c0a,0x0c0b,0x0d0b,0x0d0c},
1652   {0x0305,0x0404,0x0604,0x0705,0x0806,0x0807,0x0907,0x0a08,0x0a08,0x0a09,0x0b0a,0x0c0a,0x0c0b},
1653   {0x0606,0x0604,0x0705,0x0805,0x0806,0x0906,0x0a07,0x0a08,0x0a08,0x0b09,0x0c09,0x0c0a,0x0c0a},
1654   {0x0806,0x0705,0x0805,0x0905,0x0906,0x0a07,0x0a07,0x0b08,0x0b08,0x0b09,0x0c09,0x0c0a,0x0d0a},
1655   {0x0907,0x0806,0x0906,0x0906,0x0a06,0x0a07,0x0b07,0x0b08,0x0b08,0x0c09,0x0c09,0x0c0a,0x0d0a},
1656   {0x0a08,0x0907,0x0906,0x0a07,0x0b07,0x0b07,0x0b08,0x0c08,0x0b08,0x0c09,0x0c0a,0x0d0a,0x0d0b},
1657   {0x0b09,0x0907,0x0a07,0x0b07,0x0b07,0x0b08,0x0c08,0x0c09,0x0c09,0x0c09,0x0d0a,0x0d0a,0x0d0b},
1658   {0x0b09,0x0a08,0x0a08,0x0b08,0x0b08,0x0c08,0x0c09,0x0d09,0x0d09,0x0d0a,0x0d0a,0x0d0b,0x0d0b},
1659   {0x0b09,0x0a08,0x0a08,0x0b08,0x0b08,0x0b08,0x0c09,0x0c09,0x0d0a,0x0d0a,0x0e0a,0x0d0b,0x0e0b},
1660   {0x0b0a,0x0a09,0x0b09,0x0b09,0x0c09,0x0c09,0x0c09,0x0c0a,0x0d0a,0x0d0a,0x0e0b,0x0e0b,0x0e0c},
1661   {0x0c0a,0x0b09,0x0b09,0x0c09,0x0c09,0x0c0a,0x0d0a,0x0d0a,0x0d0a,0x0e0b,0x0e0b,0x0e0b,0x0f0c},
1662   {0x0c0b,0x0b0a,0x0c09,0x0c0a,0x0c0a,0x0d0a,0x0d0a,0x0d0a,0x0d0b,0x0e0b,0x0e0b,0x0f0b,0x0f0c},
1663   {0x0d0b,0x0c0a,0x0c0a,0x0c0a,0x0d0a,0x0d0a,0x0d0a,0x0d0b,0x0e0b,0x0e0c,0x0e0c,0x0e0c,0x0f0c}
1664 };
1665 
1666 const UWord16 huff_ltab11[17][17]=
1667 {
1668   {0x0004,0x0005,0x0006,0x0007,0x0008,0x0008,0x0009,0x000a,0x000a,0x000a,0x000b,0x000b,0x000c,0x000b,0x000c,0x000c,0x000a},
1669   {0x0005,0x0004,0x0005,0x0006,0x0007,0x0007,0x0008,0x0008,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000b,0x0008},
1670   {0x0006,0x0005,0x0005,0x0006,0x0007,0x0007,0x0008,0x0008,0x0008,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x0008},
1671   {0x0007,0x0006,0x0006,0x0006,0x0007,0x0007,0x0008,0x0008,0x0008,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x0008},
1672   {0x0008,0x0007,0x0007,0x0007,0x0007,0x0008,0x0008,0x0008,0x0008,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x0008},
1673   {0x0008,0x0007,0x0007,0x0007,0x0007,0x0008,0x0008,0x0008,0x0009,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x0008},
1674   {0x0009,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x0008},
1675   {0x0009,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x0008},
1676   {0x000a,0x0009,0x0008,0x0008,0x0009,0x0009,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x0008},
1677   {0x000a,0x0009,0x0009,0x0009,0x0009,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b,0x0008},
1678   {0x000b,0x0009,0x0009,0x0009,0x0009,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000a,0x000b,0x000b,0x0008},
1679   {0x000b,0x000a,0x0009,0x0009,0x000a,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b,0x000b,0x000b,0x000b,0x0008},
1680   {0x000b,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b,0x000b,0x000b,0x000b,0x0009},
1681   {0x000b,0x000a,0x0009,0x0009,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b,0x000b,0x000b,0x000b,0x000b,0x0009},
1682   {0x000b,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b,0x000b,0x000b,0x000b,0x000b,0x0009},
1683   {0x000c,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000a,0x000b,0x000b,0x000b,0x000b,0x000b,0x000b,0x000c,0x000c,0x0009},
1684   {0x0009,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0008,0x0009,0x0005}
1685 };
1686 
1687 const UWord16 huff_ltabscf[121]=
1688 {
1689   0x0012,
1690   0x0012,
1691   0x0012,
1692   0x0012,
1693   0x0013,
1694   0x0013,
1695   0x0013,
1696   0x0013,
1697   0x0013,
1698   0x0013,
1699   0x0013,
1700   0x0013,
1701   0x0013,
1702   0x0013,
1703   0x0013,
1704   0x0013,
1705   0x0013,
1706   0x0013,
1707   0x0013,
1708   0x0012,
1709   0x0013,
1710   0x0012,
1711   0x0011,
1712   0x0011,
1713   0x0010,
1714   0x0011,
1715   0x0010,
1716   0x0010,
1717   0x0010,
1718   0x0010,
1719   0x000f,
1720   0x000f,
1721   0x000e,
1722   0x000e,
1723   0x000e,
1724   0x000e,
1725   0x000e,
1726   0x000e,
1727   0x000d,
1728   0x000d,
1729   0x000c,
1730   0x000c,
1731   0x000c,
1732   0x000b,
1733   0x000c,
1734   0x000b,
1735   0x000a,
1736   0x000a,
1737   0x000a,
1738   0x0009,
1739   0x0009,
1740   0x0008,
1741   0x0008,
1742   0x0008,
1743   0x0007,
1744   0x0006,
1745   0x0006,
1746   0x0005,
1747   0x0004,
1748   0x0003,
1749   0x0001,
1750   0x0004,
1751   0x0004,
1752   0x0005,
1753   0x0006,
1754   0x0006,
1755   0x0007,
1756   0x0007,
1757   0x0008,
1758   0x0008,
1759   0x0009,
1760   0x0009,
1761   0x000a,
1762   0x000a,
1763   0x000a,
1764   0x000b,
1765   0x000b,
1766   0x000b,
1767   0x000b,
1768   0x000c,
1769   0x000c,
1770   0x000d,
1771   0x000d,
1772   0x000d,
1773   0x000e,
1774   0x000e,
1775   0x0010,
1776   0x000f,
1777   0x0010,
1778   0x000f,
1779   0x0012,
1780   0x0013,
1781   0x0013,
1782   0x0013,
1783   0x0013,
1784   0x0013,
1785   0x0013,
1786   0x0013,
1787   0x0013,
1788   0x0013,
1789   0x0013,
1790   0x0013,
1791   0x0013,
1792   0x0013,
1793   0x0013,
1794   0x0013,
1795   0x0013,
1796   0x0013,
1797   0x0013,
1798   0x0013,
1799   0x0013,
1800   0x0013,
1801   0x0013,
1802   0x0013,
1803   0x0013,
1804   0x0013,
1805   0x0013,
1806   0x0013,
1807   0x0013,
1808   0x0013,
1809   0x0013
1810 };
1811 
1812 
1813 const UWord16 huff_ctab1[3][3][3][3]=
1814 {
1815   {
1816     {
1817       {0x07f8,0x01f1,0x07fd},
1818       {0x03f5,0x0068,0x03f0},
1819       {0x07f7,0x01ec,0x07f5}
1820     },
1821     {
1822       {0x03f1,0x0072,0x03f4},
1823       {0x0074,0x0011,0x0076},
1824       {0x01eb,0x006c,0x03f6}
1825     },
1826     {
1827       {0x07fc,0x01e1,0x07f1},
1828       {0x01f0,0x0061,0x01f6},
1829       {0x07f2,0x01ea,0x07fb}
1830     }
1831   },
1832   {
1833     {
1834       {0x01f2,0x0069,0x01ed},
1835       {0x0077,0x0017,0x006f},
1836       {0x01e6,0x0064,0x01e5}
1837     },
1838     {
1839       {0x0067,0x0015,0x0062},
1840       {0x0012,0x0000,0x0014},
1841       {0x0065,0x0016,0x006d}
1842     },
1843     {
1844       {0x01e9,0x0063,0x01e4},
1845       {0x006b,0x0013,0x0071},
1846       {0x01e3,0x0070,0x01f3}
1847     }
1848   },
1849   {
1850     {
1851       {0x07fe,0x01e7,0x07f3},
1852       {0x01ef,0x0060,0x01ee},
1853       {0x07f0,0x01e2,0x07fa}
1854     },
1855     {
1856       {0x03f3,0x006a,0x01e8},
1857       {0x0075,0x0010,0x0073},
1858       {0x01f4,0x006e,0x03f7}
1859     },
1860     {
1861       {0x07f6,0x01e0,0x07f9},
1862       {0x03f2,0x0066,0x01f5},
1863       {0x07ff,0x01f7,0x07f4}
1864     }
1865   }
1866 };
1867 
1868 const UWord16 huff_ctab2[3][3][3][3]=
1869 {
1870   {
1871     {
1872       {0x01f3,0x006f,0x01fd},
1873       {0x00eb,0x0023,0x00ea},
1874       {0x01f7,0x00e8,0x01fa}
1875     },
1876     {
1877       {0x00f2,0x002d,0x0070},
1878       {0x0020,0x0006,0x002b},
1879       {0x006e,0x0028,0x00e9}
1880     },
1881     {
1882       {0x01f9,0x0066,0x00f8},
1883       {0x00e7,0x001b,0x00f1},
1884       {0x01f4,0x006b,0x01f5}
1885     }
1886   },
1887   {
1888     {
1889       {0x00ec,0x002a,0x006c},
1890       {0x002c,0x000a,0x0027},
1891       {0x0067,0x001a,0x00f5}
1892     },
1893     {
1894       {0x0024,0x0008,0x001f},
1895       {0x0009,0x0000,0x0007},
1896       {0x001d,0x000b,0x0030}
1897     },
1898     {
1899       {0x00ef,0x001c,0x0064},
1900       {0x001e,0x000c,0x0029},
1901       {0x00f3,0x002f,0x00f0}
1902     }
1903   },
1904   {
1905     {
1906       {0x01fc,0x0071,0x01f2},
1907       {0x00f4,0x0021,0x00e6},
1908       {0x00f7,0x0068,0x01f8}
1909     },
1910     {
1911       {0x00ee,0x0022,0x0065},
1912       {0x0031,0x0002,0x0026},
1913       {0x00ed,0x0025,0x006a}
1914     },
1915     {
1916       {0x01fb,0x0072,0x01fe},
1917       {0x0069,0x002e,0x00f6},
1918       {0x01ff,0x006d,0x01f6}
1919     }
1920   }
1921 };
1922 
1923 const UWord16 huff_ctab3[3][3][3][3]=
1924 {
1925   {
1926     {
1927       {0x0000,0x0009,0x00ef},
1928       {0x000b,0x0019,0x00f0},
1929       {0x01eb,0x01e6,0x03f2}
1930     },
1931     {
1932       {0x000a,0x0035,0x01ef},
1933       {0x0034,0x0037,0x01e9},
1934       {0x01ed,0x01e7,0x03f3}
1935     },
1936     {
1937       {0x01ee,0x03ed,0x1ffa},
1938       {0x01ec,0x01f2,0x07f9},
1939       {0x07f8,0x03f8,0x0ff8}
1940     }
1941   },
1942   {
1943     {
1944       {0x0008,0x0038,0x03f6},
1945       {0x0036,0x0075,0x03f1},
1946       {0x03eb,0x03ec,0x0ff4}
1947     },
1948     {
1949       {0x0018,0x0076,0x07f4},
1950       {0x0039,0x0074,0x03ef},
1951       {0x01f3,0x01f4,0x07f6}
1952     },
1953     {
1954       {0x01e8,0x03ea,0x1ffc},
1955       {0x00f2,0x01f1,0x0ffb},
1956       {0x03f5,0x07f3,0x0ffc}
1957     }
1958   },
1959   {
1960     {
1961       {0x00ee,0x03f7,0x7ffe},
1962       {0x01f0,0x07f5,0x7ffd},
1963       {0x1ffb,0x3ffa,0xffff}
1964     },
1965     {
1966       {0x00f1,0x03f0,0x3ffc},
1967       {0x01ea,0x03ee,0x3ffb},
1968       {0x0ff6,0x0ffa,0x7ffc}
1969     },
1970     {
1971       {0x07f2,0x0ff5,0xfffe},
1972       {0x03f4,0x07f7,0x7ffb},
1973       {0x0ff7,0x0ff9,0x7ffa}
1974     }
1975   }
1976 };
1977 
1978 const UWord16 huff_ctab4[3][3][3][3]=
1979 {
1980   {
1981     {
1982       {0x0007,0x0016,0x00f6},
1983       {0x0018,0x0008,0x00ef},
1984       {0x01ef,0x00f3,0x07f8}
1985     },
1986     {
1987       {0x0019,0x0017,0x00ed},
1988       {0x0015,0x0001,0x00e2},
1989       {0x00f0,0x0070,0x03f0}
1990     },
1991     {
1992       {0x01ee,0x00f1,0x07fa},
1993       {0x00ee,0x00e4,0x03f2},
1994       {0x07f6,0x03ef,0x07fd}
1995     }
1996   },
1997   {
1998     {
1999       {0x0005,0x0014,0x00f2},
2000       {0x0009,0x0004,0x00e5},
2001       {0x00f4,0x00e8,0x03f4}
2002     },
2003     {
2004       {0x0006,0x0002,0x00e7},
2005       {0x0003,0x0000,0x006b},
2006       {0x00e3,0x0069,0x01f3}
2007     },
2008     {
2009       {0x00eb,0x00e6,0x03f6},
2010       {0x006e,0x006a,0x01f4},
2011       {0x03ec,0x01f0,0x03f9}
2012     }
2013   },
2014   {
2015     {
2016       {0x00f5,0x00ec,0x07fb},
2017       {0x00ea,0x006f,0x03f7},
2018       {0x07f9,0x03f3,0x0fff}
2019     },
2020     {
2021       {0x00e9,0x006d,0x03f8},
2022       {0x006c,0x0068,0x01f5},
2023       {0x03ee,0x01f2,0x07f4}
2024     },
2025     {
2026       {0x07f7,0x03f1,0x0ffe},
2027       {0x03ed,0x01f1,0x07f5},
2028       {0x07fe,0x03f5,0x07fc}
2029     }
2030   }
2031 };
2032 const UWord16 huff_ctab5[9][9]=
2033 {
2034   {0x1fff,0x0ff7,0x07f4,0x07e8,0x03f1,0x07ee,0x07f9,0x0ff8,0x1ffd},
2035   {0x0ffd,0x07f1,0x03e8,0x01e8,0x00f0,0x01ec,0x03ee,0x07f2,0x0ffa},
2036   {0x0ff4,0x03ef,0x01f2,0x00e8,0x0070,0x00ec,0x01f0,0x03ea,0x07f3},
2037   {0x07eb,0x01eb,0x00ea,0x001a,0x0008,0x0019,0x00ee,0x01ef,0x07ed},
2038   {0x03f0,0x00f2,0x0073,0x000b,0x0000,0x000a,0x0071,0x00f3,0x07e9},
2039   {0x07ef,0x01ee,0x00ef,0x0018,0x0009,0x001b,0x00eb,0x01e9,0x07ec},
2040   {0x07f6,0x03eb,0x01f3,0x00ed,0x0072,0x00e9,0x01f1,0x03ed,0x07f7},
2041   {0x0ff6,0x07f0,0x03e9,0x01ed,0x00f1,0x01ea,0x03ec,0x07f8,0x0ff9},
2042   {0x1ffc,0x0ffc,0x0ff5,0x07ea,0x03f3,0x03f2,0x07f5,0x0ffb,0x1ffe}
2043 };
2044 
2045 const UWord16 huff_ctab6[9][9]=
2046 {
2047   {0x07fe,0x03fd,0x01f1,0x01eb,0x01f4,0x01ea,0x01f0,0x03fc,0x07fd},
2048   {0x03f6,0x01e5,0x00ea,0x006c,0x0071,0x0068,0x00f0,0x01e6,0x03f7},
2049   {0x01f3,0x00ef,0x0032,0x0027,0x0028,0x0026,0x0031,0x00eb,0x01f7},
2050   {0x01e8,0x006f,0x002e,0x0008,0x0004,0x0006,0x0029,0x006b,0x01ee},
2051   {0x01ef,0x0072,0x002d,0x0002,0x0000,0x0003,0x002f,0x0073,0x01fa},
2052   {0x01e7,0x006e,0x002b,0x0007,0x0001,0x0005,0x002c,0x006d,0x01ec},
2053   {0x01f9,0x00ee,0x0030,0x0024,0x002a,0x0025,0x0033,0x00ec,0x01f2},
2054   {0x03f8,0x01e4,0x00ed,0x006a,0x0070,0x0069,0x0074,0x00f1,0x03fa},
2055   {0x07ff,0x03f9,0x01f6,0x01ed,0x01f8,0x01e9,0x01f5,0x03fb,0x07fc}
2056 };
2057 
2058 const UWord16 huff_ctab7[8][8]=
2059 {
2060   {0x0000,0x0005,0x0037,0x0074,0x00f2,0x01eb,0x03ed,0x07f7},
2061   {0x0004,0x000c,0x0035,0x0071,0x00ec,0x00ee,0x01ee,0x01f5},
2062   {0x0036,0x0034,0x0072,0x00ea,0x00f1,0x01e9,0x01f3,0x03f5},
2063   {0x0073,0x0070,0x00eb,0x00f0,0x01f1,0x01f0,0x03ec,0x03fa},
2064   {0x00f3,0x00ed,0x01e8,0x01ef,0x03ef,0x03f1,0x03f9,0x07fb},
2065   {0x01ed,0x00ef,0x01ea,0x01f2,0x03f3,0x03f8,0x07f9,0x07fc},
2066   {0x03ee,0x01ec,0x01f4,0x03f4,0x03f7,0x07f8,0x0ffd,0x0ffe},
2067   {0x07f6,0x03f0,0x03f2,0x03f6,0x07fa,0x07fd,0x0ffc,0x0fff}
2068 };
2069 
2070 const UWord16 huff_ctab8[8][8]=
2071 {
2072   {0x000e,0x0005,0x0010,0x0030,0x006f,0x00f1,0x01fa,0x03fe},
2073   {0x0003,0x0000,0x0004,0x0012,0x002c,0x006a,0x0075,0x00f8},
2074   {0x000f,0x0002,0x0006,0x0014,0x002e,0x0069,0x0072,0x00f5},
2075   {0x002f,0x0011,0x0013,0x002a,0x0032,0x006c,0x00ec,0x00fa},
2076   {0x0071,0x002b,0x002d,0x0031,0x006d,0x0070,0x00f2,0x01f9},
2077   {0x00ef,0x0068,0x0033,0x006b,0x006e,0x00ee,0x00f9,0x03fc},
2078   {0x01f8,0x0074,0x0073,0x00ed,0x00f0,0x00f6,0x01f6,0x01fd},
2079   {0x03fd,0x00f3,0x00f4,0x00f7,0x01f7,0x01fb,0x01fc,0x03ff}
2080 };
2081 
2082 const UWord16 huff_ctab9[13][13]=
2083 {
2084   {0x0000,0x0005,0x0037,0x00e7,0x01de,0x03ce,0x03d9,0x07c8,0x07cd,0x0fc8,0x0fdd,0x1fe4,0x1fec},
2085   {0x0004,0x000c,0x0035,0x0072,0x00ea,0x00ed,0x01e2,0x03d1,0x03d3,0x03e0,0x07d8,0x0fcf,0x0fd5},
2086   {0x0036,0x0034,0x0071,0x00e8,0x00ec,0x01e1,0x03cf,0x03dd,0x03db,0x07d0,0x0fc7,0x0fd4,0x0fe4},
2087   {0x00e6,0x0070,0x00e9,0x01dd,0x01e3,0x03d2,0x03dc,0x07cc,0x07ca,0x07de,0x0fd8,0x0fea,0x1fdb},
2088   {0x01df,0x00eb,0x01dc,0x01e6,0x03d5,0x03de,0x07cb,0x07dd,0x07dc,0x0fcd,0x0fe2,0x0fe7,0x1fe1},
2089   {0x03d0,0x01e0,0x01e4,0x03d6,0x07c5,0x07d1,0x07db,0x0fd2,0x07e0,0x0fd9,0x0feb,0x1fe3,0x1fe9},
2090   {0x07c4,0x01e5,0x03d7,0x07c6,0x07cf,0x07da,0x0fcb,0x0fda,0x0fe3,0x0fe9,0x1fe6,0x1ff3,0x1ff7},
2091   {0x07d3,0x03d8,0x03e1,0x07d4,0x07d9,0x0fd3,0x0fde,0x1fdd,0x1fd9,0x1fe2,0x1fea,0x1ff1,0x1ff6},
2092   {0x07d2,0x03d4,0x03da,0x07c7,0x07d7,0x07e2,0x0fce,0x0fdb,0x1fd8,0x1fee,0x3ff0,0x1ff4,0x3ff2},
2093   {0x07e1,0x03df,0x07c9,0x07d6,0x0fca,0x0fd0,0x0fe5,0x0fe6,0x1feb,0x1fef,0x3ff3,0x3ff4,0x3ff5},
2094   {0x0fe0,0x07ce,0x07d5,0x0fc6,0x0fd1,0x0fe1,0x1fe0,0x1fe8,0x1ff0,0x3ff1,0x3ff8,0x3ff6,0x7ffc},
2095   {0x0fe8,0x07df,0x0fc9,0x0fd7,0x0fdc,0x1fdc,0x1fdf,0x1fed,0x1ff5,0x3ff9,0x3ffb,0x7ffd,0x7ffe},
2096   {0x1fe7,0x0fcc,0x0fd6,0x0fdf,0x1fde,0x1fda,0x1fe5,0x1ff2,0x3ffa,0x3ff7,0x3ffc,0x3ffd,0x7fff}
2097 };
2098 
2099 const UWord16 huff_ctab10[13][13]=
2100 {
2101   {0x0022,0x0008,0x001d,0x0026,0x005f,0x00d3,0x01cf,0x03d0,0x03d7,0x03ed,0x07f0,0x07f6,0x0ffd},
2102   {0x0007,0x0000,0x0001,0x0009,0x0020,0x0054,0x0060,0x00d5,0x00dc,0x01d4,0x03cd,0x03de,0x07e7},
2103   {0x001c,0x0002,0x0006,0x000c,0x001e,0x0028,0x005b,0x00cd,0x00d9,0x01ce,0x01dc,0x03d9,0x03f1},
2104   {0x0025,0x000b,0x000a,0x000d,0x0024,0x0057,0x0061,0x00cc,0x00dd,0x01cc,0x01de,0x03d3,0x03e7},
2105   {0x005d,0x0021,0x001f,0x0023,0x0027,0x0059,0x0064,0x00d8,0x00df,0x01d2,0x01e2,0x03dd,0x03ee},
2106   {0x00d1,0x0055,0x0029,0x0056,0x0058,0x0062,0x00ce,0x00e0,0x00e2,0x01da,0x03d4,0x03e3,0x07eb},
2107   {0x01c9,0x005e,0x005a,0x005c,0x0063,0x00ca,0x00da,0x01c7,0x01ca,0x01e0,0x03db,0x03e8,0x07ec},
2108   {0x01e3,0x00d2,0x00cb,0x00d0,0x00d7,0x00db,0x01c6,0x01d5,0x01d8,0x03ca,0x03da,0x07ea,0x07f1},
2109   {0x01e1,0x00d4,0x00cf,0x00d6,0x00de,0x00e1,0x01d0,0x01d6,0x03d1,0x03d5,0x03f2,0x07ee,0x07fb},
2110   {0x03e9,0x01cd,0x01c8,0x01cb,0x01d1,0x01d7,0x01df,0x03cf,0x03e0,0x03ef,0x07e6,0x07f8,0x0ffa},
2111   {0x03eb,0x01dd,0x01d3,0x01d9,0x01db,0x03d2,0x03cc,0x03dc,0x03ea,0x07ed,0x07f3,0x07f9,0x0ff9},
2112   {0x07f2,0x03ce,0x01e4,0x03cb,0x03d8,0x03d6,0x03e2,0x03e5,0x07e8,0x07f4,0x07f5,0x07f7,0x0ffb},
2113   {0x07fa,0x03ec,0x03df,0x03e1,0x03e4,0x03e6,0x03f0,0x07e9,0x07ef,0x0ff8,0x0ffe,0x0ffc,0x0fff}
2114 };
2115 
2116 const UWord16 huff_ctab11[17][17]=
2117 {
2118   {0x0000,0x0006,0x0019,0x003d,0x009c,0x00c6,0x01a7,0x0390,0x03c2,0x03df,0x07e6,0x07f3,0x0ffb,0x07ec,0x0ffa,0x0ffe,0x038e},
2119   {0x0005,0x0001,0x0008,0x0014,0x0037,0x0042,0x0092,0x00af,0x0191,0x01a5,0x01b5,0x039e,0x03c0,0x03a2,0x03cd,0x07d6,0x00ae},
2120   {0x0017,0x0007,0x0009,0x0018,0x0039,0x0040,0x008e,0x00a3,0x00b8,0x0199,0x01ac,0x01c1,0x03b1,0x0396,0x03be,0x03ca,0x009d},
2121   {0x003c,0x0015,0x0016,0x001a,0x003b,0x0044,0x0091,0x00a5,0x00be,0x0196,0x01ae,0x01b9,0x03a1,0x0391,0x03a5,0x03d5,0x0094},
2122   {0x009a,0x0036,0x0038,0x003a,0x0041,0x008c,0x009b,0x00b0,0x00c3,0x019e,0x01ab,0x01bc,0x039f,0x038f,0x03a9,0x03cf,0x0093},
2123   {0x00bf,0x003e,0x003f,0x0043,0x0045,0x009e,0x00a7,0x00b9,0x0194,0x01a2,0x01ba,0x01c3,0x03a6,0x03a7,0x03bb,0x03d4,0x009f},
2124   {0x01a0,0x008f,0x008d,0x0090,0x0098,0x00a6,0x00b6,0x00c4,0x019f,0x01af,0x01bf,0x0399,0x03bf,0x03b4,0x03c9,0x03e7,0x00a8},
2125   {0x01b6,0x00ab,0x00a4,0x00aa,0x00b2,0x00c2,0x00c5,0x0198,0x01a4,0x01b8,0x038c,0x03a4,0x03c4,0x03c6,0x03dd,0x03e8,0x00ad},
2126   {0x03af,0x0192,0x00bd,0x00bc,0x018e,0x0197,0x019a,0x01a3,0x01b1,0x038d,0x0398,0x03b7,0x03d3,0x03d1,0x03db,0x07dd,0x00b4},
2127   {0x03de,0x01a9,0x019b,0x019c,0x01a1,0x01aa,0x01ad,0x01b3,0x038b,0x03b2,0x03b8,0x03ce,0x03e1,0x03e0,0x07d2,0x07e5,0x00b7},
2128   {0x07e3,0x01bb,0x01a8,0x01a6,0x01b0,0x01b2,0x01b7,0x039b,0x039a,0x03ba,0x03b5,0x03d6,0x07d7,0x03e4,0x07d8,0x07ea,0x00ba},
2129   {0x07e8,0x03a0,0x01bd,0x01b4,0x038a,0x01c4,0x0392,0x03aa,0x03b0,0x03bc,0x03d7,0x07d4,0x07dc,0x07db,0x07d5,0x07f0,0x00c1},
2130   {0x07fb,0x03c8,0x03a3,0x0395,0x039d,0x03ac,0x03ae,0x03c5,0x03d8,0x03e2,0x03e6,0x07e4,0x07e7,0x07e0,0x07e9,0x07f7,0x0190},
2131   {0x07f2,0x0393,0x01be,0x01c0,0x0394,0x0397,0x03ad,0x03c3,0x03c1,0x03d2,0x07da,0x07d9,0x07df,0x07eb,0x07f4,0x07fa,0x0195},
2132   {0x07f8,0x03bd,0x039c,0x03ab,0x03a8,0x03b3,0x03b9,0x03d0,0x03e3,0x03e5,0x07e2,0x07de,0x07ed,0x07f1,0x07f9,0x07fc,0x0193},
2133   {0x0ffd,0x03dc,0x03b6,0x03c7,0x03cc,0x03cb,0x03d9,0x03da,0x07d3,0x07e1,0x07ee,0x07ef,0x07f5,0x07f6,0x0ffc,0x0fff,0x019d},
2134   {0x01c2,0x00b5,0x00a1,0x0096,0x0097,0x0095,0x0099,0x00a0,0x00a2,0x00ac,0x00a9,0x00b1,0x00b3,0x00bb,0x00c0,0x018f,0x0004}
2135 };
2136 
2137 const UWord32 huff_ctabscf[121]=
2138 {
2139   0x0003ffe8,
2140   0x0003ffe6,
2141   0x0003ffe7,
2142   0x0003ffe5,
2143   0x0007fff5,
2144   0x0007fff1,
2145   0x0007ffed,
2146   0x0007fff6,
2147   0x0007ffee,
2148   0x0007ffef,
2149   0x0007fff0,
2150   0x0007fffc,
2151   0x0007fffd,
2152   0x0007ffff,
2153   0x0007fffe,
2154   0x0007fff7,
2155   0x0007fff8,
2156   0x0007fffb,
2157   0x0007fff9,
2158   0x0003ffe4,
2159   0x0007fffa,
2160   0x0003ffe3,
2161   0x0001ffef,
2162   0x0001fff0,
2163   0x0000fff5,
2164   0x0001ffee,
2165   0x0000fff2,
2166   0x0000fff3,
2167   0x0000fff4,
2168   0x0000fff1,
2169   0x00007ff6,
2170   0x00007ff7,
2171   0x00003ff9,
2172   0x00003ff5,
2173   0x00003ff7,
2174   0x00003ff3,
2175   0x00003ff6,
2176   0x00003ff2,
2177   0x00001ff7,
2178   0x00001ff5,
2179   0x00000ff9,
2180   0x00000ff7,
2181   0x00000ff6,
2182   0x000007f9,
2183   0x00000ff4,
2184   0x000007f8,
2185   0x000003f9,
2186   0x000003f7,
2187   0x000003f5,
2188   0x000001f8,
2189   0x000001f7,
2190   0x000000fa,
2191   0x000000f8,
2192   0x000000f6,
2193   0x00000079,
2194   0x0000003a,
2195   0x00000038,
2196   0x0000001a,
2197   0x0000000b,
2198   0x00000004,
2199   0x00000000,
2200   0x0000000a,
2201   0x0000000c,
2202   0x0000001b,
2203   0x00000039,
2204   0x0000003b,
2205   0x00000078,
2206   0x0000007a,
2207   0x000000f7,
2208   0x000000f9,
2209   0x000001f6,
2210   0x000001f9,
2211   0x000003f4,
2212   0x000003f6,
2213   0x000003f8,
2214   0x000007f5,
2215   0x000007f4,
2216   0x000007f6,
2217   0x000007f7,
2218   0x00000ff5,
2219   0x00000ff8,
2220   0x00001ff4,
2221   0x00001ff6,
2222   0x00001ff8,
2223   0x00003ff8,
2224   0x00003ff4,
2225   0x0000fff0,
2226   0x00007ff4,
2227   0x0000fff6,
2228   0x00007ff5,
2229   0x0003ffe2,
2230   0x0007ffd9,
2231   0x0007ffda,
2232   0x0007ffdb,
2233   0x0007ffdc,
2234   0x0007ffdd,
2235   0x0007ffde,
2236   0x0007ffd8,
2237   0x0007ffd2,
2238   0x0007ffd3,
2239   0x0007ffd4,
2240   0x0007ffd5,
2241   0x0007ffd6,
2242   0x0007fff2,
2243   0x0007ffdf,
2244   0x0007ffe7,
2245   0x0007ffe8,
2246   0x0007ffe9,
2247   0x0007ffea,
2248   0x0007ffeb,
2249   0x0007ffe6,
2250   0x0007ffe0,
2251   0x0007ffe1,
2252   0x0007ffe2,
2253   0x0007ffe3,
2254   0x0007ffe4,
2255   0x0007ffe5,
2256   0x0007ffd7,
2257   0x0007ffec,
2258   0x0007fff4,
2259   0x0007fff3
2260 };
2261 
2262 const Word32 m_log2_table[INT_BITS] = {
2263   0x00000000,0x4ae00d00,0x2934f080,0x15c01a3f,
2264   0x0b31fb80,0x05aeb4e0,0x02dcf2d0,0x016fe50c,
2265   0x00b84e23,0x005c3e10,0x002e24ca,0x001713d6,
2266   0x000b8a47,0x0005c53b,0x0002e2a3,0x00017153,
2267   0x0000b8aa,0x00005c55,0x00002e2b,0x00001715,
2268   0x00000b8b,0x000005c5,0x000002e3,0x00000171,
2269   0x000000b9,0x0000005c,0x0000002e,0x00000017,
2270   0x0000000c,0x00000006,0x00000003,0x00000001
2271 };
2272 
2273 
2274 /*
2275   3 bit resolution
2276 */
2277 const Word32 tnsCoeff3[8] =
2278 {
2279   0x81f1d1d4,
2280   0x9126147c,
2281   0xadb922f7,
2282   0xd438af09,
2283   0x00000000,
2284   0x37898087,
2285   0x64130dfa,
2286   0x7cca6ffb,
2287 };
2288 
2289 const Word32 tnsCoeff3Borders[8] =
2290 {
2291   0x80000000,  /* -4 */
2292   0x87b826de,  /* -3 */
2293   0x9df24153,  /* -2 */
2294   0xbfffffe5,  /* -1 */
2295   0xe9c5e578,  /*  0 */
2296   0x1c7b90f0,  /*  1 */
2297   0x4fce83aa,  /*  2 */
2298   0x7352f2c4,  /*  3 */
2299 };
2300 
2301 
2302 /*
2303   4 bit resolution
2304 */
2305 
2306 const Word32 tnsCoeff4[16] =
2307 {
2308   0x808bc84b,
2309   0x84e2e57d,
2310   0x8d6b49fb,
2311   0x99da9207,
2312   0xa9c45707,
2313   0xbc9dde78,
2314   0xd1c2d4fc,
2315   0xe87ae539,
2316   0x00000000,
2317   0x1a9cd9c0,
2318   0x340ff23b,
2319   0x4b3c8bf7,
2320   0x5f1f5e80,
2321   0x6ed9eb84,
2322   0x79bc3880,
2323   0x7f4c7e89
2324 };
2325 
2326 const Word32 tnsCoeff4Borders[16]=
2327 {
2328   0x80000000,  /* -8 */
2329   0x822defef,  /* -7 */
2330   0x88a4bfe5,  /* -6 */
2331   0x932c159c,  /* -5 */
2332   0xa16827c1,  /* -4 */
2333   0xb2dcde26,  /* -3 */
2334   0xc6f20b91,  /* -2 */
2335   0xdcf89c64,  /* -1 */
2336   0xf4308ce1,  /*  0 */
2337   0x0d613054,  /*  1 */
2338   0x278dde80,  /*  2 */
2339   0x4000001b,  /*  3 */
2340   0x55a6127c,  /*  4 */
2341   0x678dde8f,  /*  5 */
2342   0x74ef0ed8,  /*  6 */
2343   0x7d33f0db   /*  7 */
2344 };
2345 
2346 
2347 const unsigned char bitrevTab[17 + 129] =
2348 {
2349 /* 64 */
2350 0x01, 0x08, 0x02, 0x04, 0x03, 0x0c, 0x05, 0x0a, 0x07, 0x0e, 0x0b, 0x0d, 0x00, 0x06, 0x09, 0x0f,
2351 0x00,
2352 
2353 /* 512 */
2354 0x01, 0x40, 0x02, 0x20, 0x03, 0x60, 0x04, 0x10, 0x05, 0x50, 0x06, 0x30, 0x07, 0x70, 0x09, 0x48,
2355 0x0a, 0x28, 0x0b, 0x68, 0x0c, 0x18, 0x0d, 0x58, 0x0e, 0x38, 0x0f, 0x78, 0x11, 0x44, 0x12, 0x24,
2356 0x13, 0x64, 0x15, 0x54, 0x16, 0x34, 0x17, 0x74, 0x19, 0x4c, 0x1a, 0x2c, 0x1b, 0x6c, 0x1d, 0x5c,
2357 0x1e, 0x3c, 0x1f, 0x7c, 0x21, 0x42, 0x23, 0x62, 0x25, 0x52, 0x26, 0x32, 0x27, 0x72, 0x29, 0x4a,
2358 0x2b, 0x6a, 0x2d, 0x5a, 0x2e, 0x3a, 0x2f, 0x7a, 0x31, 0x46, 0x33, 0x66, 0x35, 0x56, 0x37, 0x76,
2359 0x39, 0x4e, 0x3b, 0x6e, 0x3d, 0x5e, 0x3f, 0x7e, 0x43, 0x61, 0x45, 0x51, 0x47, 0x71, 0x4b, 0x69,
2360 0x4d, 0x59, 0x4f, 0x79, 0x53, 0x65, 0x57, 0x75, 0x5b, 0x6d, 0x5f, 0x7d, 0x67, 0x73, 0x6f, 0x7b,
2361 0x00, 0x08, 0x14, 0x1c, 0x22, 0x2a, 0x36, 0x3e, 0x41, 0x49, 0x55, 0x5d, 0x63, 0x6b, 0x77, 0x7f,
2362 0x00,
2363 };
2364