4 * Copyright 2007 Vijay Kiran Kamuju
5 * Based on public domain code by Tom St Denis (tomstdenis@iahu.ca)
6 * and Dobes Vandermeer.
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
24 * This file contains code from the LibTomCrypt cryptographic
25 * library written by Tom St Denis (tomstdenis@iahu.ca). LibTomCrypt
26 * is in the public domain. The code in this file is tailored to
27 * special requirements. Take a look at http://libtom.org for the
33 static const ulong32 TE0
[256] = {
34 0xc66363a5UL
, 0xf87c7c84UL
, 0xee777799UL
, 0xf67b7b8dUL
,
35 0xfff2f20dUL
, 0xd66b6bbdUL
, 0xde6f6fb1UL
, 0x91c5c554UL
,
36 0x60303050UL
, 0x02010103UL
, 0xce6767a9UL
, 0x562b2b7dUL
,
37 0xe7fefe19UL
, 0xb5d7d762UL
, 0x4dababe6UL
, 0xec76769aUL
,
38 0x8fcaca45UL
, 0x1f82829dUL
, 0x89c9c940UL
, 0xfa7d7d87UL
,
39 0xeffafa15UL
, 0xb25959ebUL
, 0x8e4747c9UL
, 0xfbf0f00bUL
,
40 0x41adadecUL
, 0xb3d4d467UL
, 0x5fa2a2fdUL
, 0x45afafeaUL
,
41 0x239c9cbfUL
, 0x53a4a4f7UL
, 0xe4727296UL
, 0x9bc0c05bUL
,
42 0x75b7b7c2UL
, 0xe1fdfd1cUL
, 0x3d9393aeUL
, 0x4c26266aUL
,
43 0x6c36365aUL
, 0x7e3f3f41UL
, 0xf5f7f702UL
, 0x83cccc4fUL
,
44 0x6834345cUL
, 0x51a5a5f4UL
, 0xd1e5e534UL
, 0xf9f1f108UL
,
45 0xe2717193UL
, 0xabd8d873UL
, 0x62313153UL
, 0x2a15153fUL
,
46 0x0804040cUL
, 0x95c7c752UL
, 0x46232365UL
, 0x9dc3c35eUL
,
47 0x30181828UL
, 0x379696a1UL
, 0x0a05050fUL
, 0x2f9a9ab5UL
,
48 0x0e070709UL
, 0x24121236UL
, 0x1b80809bUL
, 0xdfe2e23dUL
,
49 0xcdebeb26UL
, 0x4e272769UL
, 0x7fb2b2cdUL
, 0xea75759fUL
,
50 0x1209091bUL
, 0x1d83839eUL
, 0x582c2c74UL
, 0x341a1a2eUL
,
51 0x361b1b2dUL
, 0xdc6e6eb2UL
, 0xb45a5aeeUL
, 0x5ba0a0fbUL
,
52 0xa45252f6UL
, 0x763b3b4dUL
, 0xb7d6d661UL
, 0x7db3b3ceUL
,
53 0x5229297bUL
, 0xdde3e33eUL
, 0x5e2f2f71UL
, 0x13848497UL
,
54 0xa65353f5UL
, 0xb9d1d168UL
, 0x00000000UL
, 0xc1eded2cUL
,
55 0x40202060UL
, 0xe3fcfc1fUL
, 0x79b1b1c8UL
, 0xb65b5bedUL
,
56 0xd46a6abeUL
, 0x8dcbcb46UL
, 0x67bebed9UL
, 0x7239394bUL
,
57 0x944a4adeUL
, 0x984c4cd4UL
, 0xb05858e8UL
, 0x85cfcf4aUL
,
58 0xbbd0d06bUL
, 0xc5efef2aUL
, 0x4faaaae5UL
, 0xedfbfb16UL
,
59 0x864343c5UL
, 0x9a4d4dd7UL
, 0x66333355UL
, 0x11858594UL
,
60 0x8a4545cfUL
, 0xe9f9f910UL
, 0x04020206UL
, 0xfe7f7f81UL
,
61 0xa05050f0UL
, 0x783c3c44UL
, 0x259f9fbaUL
, 0x4ba8a8e3UL
,
62 0xa25151f3UL
, 0x5da3a3feUL
, 0x804040c0UL
, 0x058f8f8aUL
,
63 0x3f9292adUL
, 0x219d9dbcUL
, 0x70383848UL
, 0xf1f5f504UL
,
64 0x63bcbcdfUL
, 0x77b6b6c1UL
, 0xafdada75UL
, 0x42212163UL
,
65 0x20101030UL
, 0xe5ffff1aUL
, 0xfdf3f30eUL
, 0xbfd2d26dUL
,
66 0x81cdcd4cUL
, 0x180c0c14UL
, 0x26131335UL
, 0xc3ecec2fUL
,
67 0xbe5f5fe1UL
, 0x359797a2UL
, 0x884444ccUL
, 0x2e171739UL
,
68 0x93c4c457UL
, 0x55a7a7f2UL
, 0xfc7e7e82UL
, 0x7a3d3d47UL
,
69 0xc86464acUL
, 0xba5d5de7UL
, 0x3219192bUL
, 0xe6737395UL
,
70 0xc06060a0UL
, 0x19818198UL
, 0x9e4f4fd1UL
, 0xa3dcdc7fUL
,
71 0x44222266UL
, 0x542a2a7eUL
, 0x3b9090abUL
, 0x0b888883UL
,
72 0x8c4646caUL
, 0xc7eeee29UL
, 0x6bb8b8d3UL
, 0x2814143cUL
,
73 0xa7dede79UL
, 0xbc5e5ee2UL
, 0x160b0b1dUL
, 0xaddbdb76UL
,
74 0xdbe0e03bUL
, 0x64323256UL
, 0x743a3a4eUL
, 0x140a0a1eUL
,
75 0x924949dbUL
, 0x0c06060aUL
, 0x4824246cUL
, 0xb85c5ce4UL
,
76 0x9fc2c25dUL
, 0xbdd3d36eUL
, 0x43acacefUL
, 0xc46262a6UL
,
77 0x399191a8UL
, 0x319595a4UL
, 0xd3e4e437UL
, 0xf279798bUL
,
78 0xd5e7e732UL
, 0x8bc8c843UL
, 0x6e373759UL
, 0xda6d6db7UL
,
79 0x018d8d8cUL
, 0xb1d5d564UL
, 0x9c4e4ed2UL
, 0x49a9a9e0UL
,
80 0xd86c6cb4UL
, 0xac5656faUL
, 0xf3f4f407UL
, 0xcfeaea25UL
,
81 0xca6565afUL
, 0xf47a7a8eUL
, 0x47aeaee9UL
, 0x10080818UL
,
82 0x6fbabad5UL
, 0xf0787888UL
, 0x4a25256fUL
, 0x5c2e2e72UL
,
83 0x381c1c24UL
, 0x57a6a6f1UL
, 0x73b4b4c7UL
, 0x97c6c651UL
,
84 0xcbe8e823UL
, 0xa1dddd7cUL
, 0xe874749cUL
, 0x3e1f1f21UL
,
85 0x964b4bddUL
, 0x61bdbddcUL
, 0x0d8b8b86UL
, 0x0f8a8a85UL
,
86 0xe0707090UL
, 0x7c3e3e42UL
, 0x71b5b5c4UL
, 0xcc6666aaUL
,
87 0x904848d8UL
, 0x06030305UL
, 0xf7f6f601UL
, 0x1c0e0e12UL
,
88 0xc26161a3UL
, 0x6a35355fUL
, 0xae5757f9UL
, 0x69b9b9d0UL
,
89 0x17868691UL
, 0x99c1c158UL
, 0x3a1d1d27UL
, 0x279e9eb9UL
,
90 0xd9e1e138UL
, 0xebf8f813UL
, 0x2b9898b3UL
, 0x22111133UL
,
91 0xd26969bbUL
, 0xa9d9d970UL
, 0x078e8e89UL
, 0x339494a7UL
,
92 0x2d9b9bb6UL
, 0x3c1e1e22UL
, 0x15878792UL
, 0xc9e9e920UL
,
93 0x87cece49UL
, 0xaa5555ffUL
, 0x50282878UL
, 0xa5dfdf7aUL
,
94 0x038c8c8fUL
, 0x59a1a1f8UL
, 0x09898980UL
, 0x1a0d0d17UL
,
95 0x65bfbfdaUL
, 0xd7e6e631UL
, 0x844242c6UL
, 0xd06868b8UL
,
96 0x824141c3UL
, 0x299999b0UL
, 0x5a2d2d77UL
, 0x1e0f0f11UL
,
97 0x7bb0b0cbUL
, 0xa85454fcUL
, 0x6dbbbbd6UL
, 0x2c16163aUL
,
100 static const ulong32 TD0
[256] = {
101 0x51f4a750UL
, 0x7e416553UL
, 0x1a17a4c3UL
, 0x3a275e96UL
,
102 0x3bab6bcbUL
, 0x1f9d45f1UL
, 0xacfa58abUL
, 0x4be30393UL
,
103 0x2030fa55UL
, 0xad766df6UL
, 0x88cc7691UL
, 0xf5024c25UL
,
104 0x4fe5d7fcUL
, 0xc52acbd7UL
, 0x26354480UL
, 0xb562a38fUL
,
105 0xdeb15a49UL
, 0x25ba1b67UL
, 0x45ea0e98UL
, 0x5dfec0e1UL
,
106 0xc32f7502UL
, 0x814cf012UL
, 0x8d4697a3UL
, 0x6bd3f9c6UL
,
107 0x038f5fe7UL
, 0x15929c95UL
, 0xbf6d7aebUL
, 0x955259daUL
,
108 0xd4be832dUL
, 0x587421d3UL
, 0x49e06929UL
, 0x8ec9c844UL
,
109 0x75c2896aUL
, 0xf48e7978UL
, 0x99583e6bUL
, 0x27b971ddUL
,
110 0xbee14fb6UL
, 0xf088ad17UL
, 0xc920ac66UL
, 0x7dce3ab4UL
,
111 0x63df4a18UL
, 0xe51a3182UL
, 0x97513360UL
, 0x62537f45UL
,
112 0xb16477e0UL
, 0xbb6bae84UL
, 0xfe81a01cUL
, 0xf9082b94UL
,
113 0x70486858UL
, 0x8f45fd19UL
, 0x94de6c87UL
, 0x527bf8b7UL
,
114 0xab73d323UL
, 0x724b02e2UL
, 0xe31f8f57UL
, 0x6655ab2aUL
,
115 0xb2eb2807UL
, 0x2fb5c203UL
, 0x86c57b9aUL
, 0xd33708a5UL
,
116 0x302887f2UL
, 0x23bfa5b2UL
, 0x02036abaUL
, 0xed16825cUL
,
117 0x8acf1c2bUL
, 0xa779b492UL
, 0xf307f2f0UL
, 0x4e69e2a1UL
,
118 0x65daf4cdUL
, 0x0605bed5UL
, 0xd134621fUL
, 0xc4a6fe8aUL
,
119 0x342e539dUL
, 0xa2f355a0UL
, 0x058ae132UL
, 0xa4f6eb75UL
,
120 0x0b83ec39UL
, 0x4060efaaUL
, 0x5e719f06UL
, 0xbd6e1051UL
,
121 0x3e218af9UL
, 0x96dd063dUL
, 0xdd3e05aeUL
, 0x4de6bd46UL
,
122 0x91548db5UL
, 0x71c45d05UL
, 0x0406d46fUL
, 0x605015ffUL
,
123 0x1998fb24UL
, 0xd6bde997UL
, 0x894043ccUL
, 0x67d99e77UL
,
124 0xb0e842bdUL
, 0x07898b88UL
, 0xe7195b38UL
, 0x79c8eedbUL
,
125 0xa17c0a47UL
, 0x7c420fe9UL
, 0xf8841ec9UL
, 0x00000000UL
,
126 0x09808683UL
, 0x322bed48UL
, 0x1e1170acUL
, 0x6c5a724eUL
,
127 0xfd0efffbUL
, 0x0f853856UL
, 0x3daed51eUL
, 0x362d3927UL
,
128 0x0a0fd964UL
, 0x685ca621UL
, 0x9b5b54d1UL
, 0x24362e3aUL
,
129 0x0c0a67b1UL
, 0x9357e70fUL
, 0xb4ee96d2UL
, 0x1b9b919eUL
,
130 0x80c0c54fUL
, 0x61dc20a2UL
, 0x5a774b69UL
, 0x1c121a16UL
,
131 0xe293ba0aUL
, 0xc0a02ae5UL
, 0x3c22e043UL
, 0x121b171dUL
,
132 0x0e090d0bUL
, 0xf28bc7adUL
, 0x2db6a8b9UL
, 0x141ea9c8UL
,
133 0x57f11985UL
, 0xaf75074cUL
, 0xee99ddbbUL
, 0xa37f60fdUL
,
134 0xf701269fUL
, 0x5c72f5bcUL
, 0x44663bc5UL
, 0x5bfb7e34UL
,
135 0x8b432976UL
, 0xcb23c6dcUL
, 0xb6edfc68UL
, 0xb8e4f163UL
,
136 0xd731dccaUL
, 0x42638510UL
, 0x13972240UL
, 0x84c61120UL
,
137 0x854a247dUL
, 0xd2bb3df8UL
, 0xaef93211UL
, 0xc729a16dUL
,
138 0x1d9e2f4bUL
, 0xdcb230f3UL
, 0x0d8652ecUL
, 0x77c1e3d0UL
,
139 0x2bb3166cUL
, 0xa970b999UL
, 0x119448faUL
, 0x47e96422UL
,
140 0xa8fc8cc4UL
, 0xa0f03f1aUL
, 0x567d2cd8UL
, 0x223390efUL
,
141 0x87494ec7UL
, 0xd938d1c1UL
, 0x8ccaa2feUL
, 0x98d40b36UL
,
142 0xa6f581cfUL
, 0xa57ade28UL
, 0xdab78e26UL
, 0x3fadbfa4UL
,
143 0x2c3a9de4UL
, 0x5078920dUL
, 0x6a5fcc9bUL
, 0x547e4662UL
,
144 0xf68d13c2UL
, 0x90d8b8e8UL
, 0x2e39f75eUL
, 0x82c3aff5UL
,
145 0x9f5d80beUL
, 0x69d0937cUL
, 0x6fd52da9UL
, 0xcf2512b3UL
,
146 0xc8ac993bUL
, 0x10187da7UL
, 0xe89c636eUL
, 0xdb3bbb7bUL
,
147 0xcd267809UL
, 0x6e5918f4UL
, 0xec9ab701UL
, 0x834f9aa8UL
,
148 0xe6956e65UL
, 0xaaffe67eUL
, 0x21bccf08UL
, 0xef15e8e6UL
,
149 0xbae79bd9UL
, 0x4a6f36ceUL
, 0xea9f09d4UL
, 0x29b07cd6UL
,
150 0x31a4b2afUL
, 0x2a3f2331UL
, 0xc6a59430UL
, 0x35a266c0UL
,
151 0x744ebc37UL
, 0xfc82caa6UL
, 0xe090d0b0UL
, 0x33a7d815UL
,
152 0xf104984aUL
, 0x41ecdaf7UL
, 0x7fcd500eUL
, 0x1791f62fUL
,
153 0x764dd68dUL
, 0x43efb04dUL
, 0xccaa4d54UL
, 0xe49604dfUL
,
154 0x9ed1b5e3UL
, 0x4c6a881bUL
, 0xc12c1fb8UL
, 0x4665517fUL
,
155 0x9d5eea04UL
, 0x018c355dUL
, 0xfa877473UL
, 0xfb0b412eUL
,
156 0xb3671d5aUL
, 0x92dbd252UL
, 0xe9105633UL
, 0x6dd64713UL
,
157 0x9ad7618cUL
, 0x37a10c7aUL
, 0x59f8148eUL
, 0xeb133c89UL
,
158 0xcea927eeUL
, 0xb761c935UL
, 0xe11ce5edUL
, 0x7a47b13cUL
,
159 0x9cd2df59UL
, 0x55f2733fUL
, 0x1814ce79UL
, 0x73c737bfUL
,
160 0x53f7cdeaUL
, 0x5ffdaa5bUL
, 0xdf3d6f14UL
, 0x7844db86UL
,
161 0xcaaff381UL
, 0xb968c43eUL
, 0x3824342cUL
, 0xc2a3405fUL
,
162 0x161dc372UL
, 0xbce2250cUL
, 0x283c498bUL
, 0xff0d9541UL
,
163 0x39a80171UL
, 0x080cb3deUL
, 0xd8b4e49cUL
, 0x6456c190UL
,
164 0x7bcb8461UL
, 0xd532b670UL
, 0x486c5c74UL
, 0xd0b85742UL
,
167 static const ulong32 Td4
[256] = {
168 0x52525252UL
, 0x09090909UL
, 0x6a6a6a6aUL
, 0xd5d5d5d5UL
,
169 0x30303030UL
, 0x36363636UL
, 0xa5a5a5a5UL
, 0x38383838UL
,
170 0xbfbfbfbfUL
, 0x40404040UL
, 0xa3a3a3a3UL
, 0x9e9e9e9eUL
,
171 0x81818181UL
, 0xf3f3f3f3UL
, 0xd7d7d7d7UL
, 0xfbfbfbfbUL
,
172 0x7c7c7c7cUL
, 0xe3e3e3e3UL
, 0x39393939UL
, 0x82828282UL
,
173 0x9b9b9b9bUL
, 0x2f2f2f2fUL
, 0xffffffffUL
, 0x87878787UL
,
174 0x34343434UL
, 0x8e8e8e8eUL
, 0x43434343UL
, 0x44444444UL
,
175 0xc4c4c4c4UL
, 0xdedededeUL
, 0xe9e9e9e9UL
, 0xcbcbcbcbUL
,
176 0x54545454UL
, 0x7b7b7b7bUL
, 0x94949494UL
, 0x32323232UL
,
177 0xa6a6a6a6UL
, 0xc2c2c2c2UL
, 0x23232323UL
, 0x3d3d3d3dUL
,
178 0xeeeeeeeeUL
, 0x4c4c4c4cUL
, 0x95959595UL
, 0x0b0b0b0bUL
,
179 0x42424242UL
, 0xfafafafaUL
, 0xc3c3c3c3UL
, 0x4e4e4e4eUL
,
180 0x08080808UL
, 0x2e2e2e2eUL
, 0xa1a1a1a1UL
, 0x66666666UL
,
181 0x28282828UL
, 0xd9d9d9d9UL
, 0x24242424UL
, 0xb2b2b2b2UL
,
182 0x76767676UL
, 0x5b5b5b5bUL
, 0xa2a2a2a2UL
, 0x49494949UL
,
183 0x6d6d6d6dUL
, 0x8b8b8b8bUL
, 0xd1d1d1d1UL
, 0x25252525UL
,
184 0x72727272UL
, 0xf8f8f8f8UL
, 0xf6f6f6f6UL
, 0x64646464UL
,
185 0x86868686UL
, 0x68686868UL
, 0x98989898UL
, 0x16161616UL
,
186 0xd4d4d4d4UL
, 0xa4a4a4a4UL
, 0x5c5c5c5cUL
, 0xccccccccUL
,
187 0x5d5d5d5dUL
, 0x65656565UL
, 0xb6b6b6b6UL
, 0x92929292UL
,
188 0x6c6c6c6cUL
, 0x70707070UL
, 0x48484848UL
, 0x50505050UL
,
189 0xfdfdfdfdUL
, 0xededededUL
, 0xb9b9b9b9UL
, 0xdadadadaUL
,
190 0x5e5e5e5eUL
, 0x15151515UL
, 0x46464646UL
, 0x57575757UL
,
191 0xa7a7a7a7UL
, 0x8d8d8d8dUL
, 0x9d9d9d9dUL
, 0x84848484UL
,
192 0x90909090UL
, 0xd8d8d8d8UL
, 0xababababUL
, 0x00000000UL
,
193 0x8c8c8c8cUL
, 0xbcbcbcbcUL
, 0xd3d3d3d3UL
, 0x0a0a0a0aUL
,
194 0xf7f7f7f7UL
, 0xe4e4e4e4UL
, 0x58585858UL
, 0x05050505UL
,
195 0xb8b8b8b8UL
, 0xb3b3b3b3UL
, 0x45454545UL
, 0x06060606UL
,
196 0xd0d0d0d0UL
, 0x2c2c2c2cUL
, 0x1e1e1e1eUL
, 0x8f8f8f8fUL
,
197 0xcacacacaUL
, 0x3f3f3f3fUL
, 0x0f0f0f0fUL
, 0x02020202UL
,
198 0xc1c1c1c1UL
, 0xafafafafUL
, 0xbdbdbdbdUL
, 0x03030303UL
,
199 0x01010101UL
, 0x13131313UL
, 0x8a8a8a8aUL
, 0x6b6b6b6bUL
,
200 0x3a3a3a3aUL
, 0x91919191UL
, 0x11111111UL
, 0x41414141UL
,
201 0x4f4f4f4fUL
, 0x67676767UL
, 0xdcdcdcdcUL
, 0xeaeaeaeaUL
,
202 0x97979797UL
, 0xf2f2f2f2UL
, 0xcfcfcfcfUL
, 0xcecececeUL
,
203 0xf0f0f0f0UL
, 0xb4b4b4b4UL
, 0xe6e6e6e6UL
, 0x73737373UL
,
204 0x96969696UL
, 0xacacacacUL
, 0x74747474UL
, 0x22222222UL
,
205 0xe7e7e7e7UL
, 0xadadadadUL
, 0x35353535UL
, 0x85858585UL
,
206 0xe2e2e2e2UL
, 0xf9f9f9f9UL
, 0x37373737UL
, 0xe8e8e8e8UL
,
207 0x1c1c1c1cUL
, 0x75757575UL
, 0xdfdfdfdfUL
, 0x6e6e6e6eUL
,
208 0x47474747UL
, 0xf1f1f1f1UL
, 0x1a1a1a1aUL
, 0x71717171UL
,
209 0x1d1d1d1dUL
, 0x29292929UL
, 0xc5c5c5c5UL
, 0x89898989UL
,
210 0x6f6f6f6fUL
, 0xb7b7b7b7UL
, 0x62626262UL
, 0x0e0e0e0eUL
,
211 0xaaaaaaaaUL
, 0x18181818UL
, 0xbebebebeUL
, 0x1b1b1b1bUL
,
212 0xfcfcfcfcUL
, 0x56565656UL
, 0x3e3e3e3eUL
, 0x4b4b4b4bUL
,
213 0xc6c6c6c6UL
, 0xd2d2d2d2UL
, 0x79797979UL
, 0x20202020UL
,
214 0x9a9a9a9aUL
, 0xdbdbdbdbUL
, 0xc0c0c0c0UL
, 0xfefefefeUL
,
215 0x78787878UL
, 0xcdcdcdcdUL
, 0x5a5a5a5aUL
, 0xf4f4f4f4UL
,
216 0x1f1f1f1fUL
, 0xddddddddUL
, 0xa8a8a8a8UL
, 0x33333333UL
,
217 0x88888888UL
, 0x07070707UL
, 0xc7c7c7c7UL
, 0x31313131UL
,
218 0xb1b1b1b1UL
, 0x12121212UL
, 0x10101010UL
, 0x59595959UL
,
219 0x27272727UL
, 0x80808080UL
, 0xececececUL
, 0x5f5f5f5fUL
,
220 0x60606060UL
, 0x51515151UL
, 0x7f7f7f7fUL
, 0xa9a9a9a9UL
,
221 0x19191919UL
, 0xb5b5b5b5UL
, 0x4a4a4a4aUL
, 0x0d0d0d0dUL
,
222 0x2d2d2d2dUL
, 0xe5e5e5e5UL
, 0x7a7a7a7aUL
, 0x9f9f9f9fUL
,
223 0x93939393UL
, 0xc9c9c9c9UL
, 0x9c9c9c9cUL
, 0xefefefefUL
,
224 0xa0a0a0a0UL
, 0xe0e0e0e0UL
, 0x3b3b3b3bUL
, 0x4d4d4d4dUL
,
225 0xaeaeaeaeUL
, 0x2a2a2a2aUL
, 0xf5f5f5f5UL
, 0xb0b0b0b0UL
,
226 0xc8c8c8c8UL
, 0xebebebebUL
, 0xbbbbbbbbUL
, 0x3c3c3c3cUL
,
227 0x83838383UL
, 0x53535353UL
, 0x99999999UL
, 0x61616161UL
,
228 0x17171717UL
, 0x2b2b2b2bUL
, 0x04040404UL
, 0x7e7e7e7eUL
,
229 0xbabababaUL
, 0x77777777UL
, 0xd6d6d6d6UL
, 0x26262626UL
,
230 0xe1e1e1e1UL
, 0x69696969UL
, 0x14141414UL
, 0x63636363UL
,
231 0x55555555UL
, 0x21212121UL
, 0x0c0c0c0cUL
, 0x7d7d7d7dUL
,
234 #define Te0(x) TE0[x]
235 #define Te1(x) TE1[x]
236 #define Te2(x) TE2[x]
237 #define Te3(x) TE3[x]
239 #define Td0(x) TD0[x]
240 #define Td1(x) TD1[x]
241 #define Td2(x) TD2[x]
242 #define Td3(x) TD3[x]
244 static const ulong32 TE1
[256] = {
245 0xa5c66363UL
, 0x84f87c7cUL
, 0x99ee7777UL
, 0x8df67b7bUL
,
246 0x0dfff2f2UL
, 0xbdd66b6bUL
, 0xb1de6f6fUL
, 0x5491c5c5UL
,
247 0x50603030UL
, 0x03020101UL
, 0xa9ce6767UL
, 0x7d562b2bUL
,
248 0x19e7fefeUL
, 0x62b5d7d7UL
, 0xe64dababUL
, 0x9aec7676UL
,
249 0x458fcacaUL
, 0x9d1f8282UL
, 0x4089c9c9UL
, 0x87fa7d7dUL
,
250 0x15effafaUL
, 0xebb25959UL
, 0xc98e4747UL
, 0x0bfbf0f0UL
,
251 0xec41adadUL
, 0x67b3d4d4UL
, 0xfd5fa2a2UL
, 0xea45afafUL
,
252 0xbf239c9cUL
, 0xf753a4a4UL
, 0x96e47272UL
, 0x5b9bc0c0UL
,
253 0xc275b7b7UL
, 0x1ce1fdfdUL
, 0xae3d9393UL
, 0x6a4c2626UL
,
254 0x5a6c3636UL
, 0x417e3f3fUL
, 0x02f5f7f7UL
, 0x4f83ccccUL
,
255 0x5c683434UL
, 0xf451a5a5UL
, 0x34d1e5e5UL
, 0x08f9f1f1UL
,
256 0x93e27171UL
, 0x73abd8d8UL
, 0x53623131UL
, 0x3f2a1515UL
,
257 0x0c080404UL
, 0x5295c7c7UL
, 0x65462323UL
, 0x5e9dc3c3UL
,
258 0x28301818UL
, 0xa1379696UL
, 0x0f0a0505UL
, 0xb52f9a9aUL
,
259 0x090e0707UL
, 0x36241212UL
, 0x9b1b8080UL
, 0x3ddfe2e2UL
,
260 0x26cdebebUL
, 0x694e2727UL
, 0xcd7fb2b2UL
, 0x9fea7575UL
,
261 0x1b120909UL
, 0x9e1d8383UL
, 0x74582c2cUL
, 0x2e341a1aUL
,
262 0x2d361b1bUL
, 0xb2dc6e6eUL
, 0xeeb45a5aUL
, 0xfb5ba0a0UL
,
263 0xf6a45252UL
, 0x4d763b3bUL
, 0x61b7d6d6UL
, 0xce7db3b3UL
,
264 0x7b522929UL
, 0x3edde3e3UL
, 0x715e2f2fUL
, 0x97138484UL
,
265 0xf5a65353UL
, 0x68b9d1d1UL
, 0x00000000UL
, 0x2cc1ededUL
,
266 0x60402020UL
, 0x1fe3fcfcUL
, 0xc879b1b1UL
, 0xedb65b5bUL
,
267 0xbed46a6aUL
, 0x468dcbcbUL
, 0xd967bebeUL
, 0x4b723939UL
,
268 0xde944a4aUL
, 0xd4984c4cUL
, 0xe8b05858UL
, 0x4a85cfcfUL
,
269 0x6bbbd0d0UL
, 0x2ac5efefUL
, 0xe54faaaaUL
, 0x16edfbfbUL
,
270 0xc5864343UL
, 0xd79a4d4dUL
, 0x55663333UL
, 0x94118585UL
,
271 0xcf8a4545UL
, 0x10e9f9f9UL
, 0x06040202UL
, 0x81fe7f7fUL
,
272 0xf0a05050UL
, 0x44783c3cUL
, 0xba259f9fUL
, 0xe34ba8a8UL
,
273 0xf3a25151UL
, 0xfe5da3a3UL
, 0xc0804040UL
, 0x8a058f8fUL
,
274 0xad3f9292UL
, 0xbc219d9dUL
, 0x48703838UL
, 0x04f1f5f5UL
,
275 0xdf63bcbcUL
, 0xc177b6b6UL
, 0x75afdadaUL
, 0x63422121UL
,
276 0x30201010UL
, 0x1ae5ffffUL
, 0x0efdf3f3UL
, 0x6dbfd2d2UL
,
277 0x4c81cdcdUL
, 0x14180c0cUL
, 0x35261313UL
, 0x2fc3ececUL
,
278 0xe1be5f5fUL
, 0xa2359797UL
, 0xcc884444UL
, 0x392e1717UL
,
279 0x5793c4c4UL
, 0xf255a7a7UL
, 0x82fc7e7eUL
, 0x477a3d3dUL
,
280 0xacc86464UL
, 0xe7ba5d5dUL
, 0x2b321919UL
, 0x95e67373UL
,
281 0xa0c06060UL
, 0x98198181UL
, 0xd19e4f4fUL
, 0x7fa3dcdcUL
,
282 0x66442222UL
, 0x7e542a2aUL
, 0xab3b9090UL
, 0x830b8888UL
,
283 0xca8c4646UL
, 0x29c7eeeeUL
, 0xd36bb8b8UL
, 0x3c281414UL
,
284 0x79a7dedeUL
, 0xe2bc5e5eUL
, 0x1d160b0bUL
, 0x76addbdbUL
,
285 0x3bdbe0e0UL
, 0x56643232UL
, 0x4e743a3aUL
, 0x1e140a0aUL
,
286 0xdb924949UL
, 0x0a0c0606UL
, 0x6c482424UL
, 0xe4b85c5cUL
,
287 0x5d9fc2c2UL
, 0x6ebdd3d3UL
, 0xef43acacUL
, 0xa6c46262UL
,
288 0xa8399191UL
, 0xa4319595UL
, 0x37d3e4e4UL
, 0x8bf27979UL
,
289 0x32d5e7e7UL
, 0x438bc8c8UL
, 0x596e3737UL
, 0xb7da6d6dUL
,
290 0x8c018d8dUL
, 0x64b1d5d5UL
, 0xd29c4e4eUL
, 0xe049a9a9UL
,
291 0xb4d86c6cUL
, 0xfaac5656UL
, 0x07f3f4f4UL
, 0x25cfeaeaUL
,
292 0xafca6565UL
, 0x8ef47a7aUL
, 0xe947aeaeUL
, 0x18100808UL
,
293 0xd56fbabaUL
, 0x88f07878UL
, 0x6f4a2525UL
, 0x725c2e2eUL
,
294 0x24381c1cUL
, 0xf157a6a6UL
, 0xc773b4b4UL
, 0x5197c6c6UL
,
295 0x23cbe8e8UL
, 0x7ca1ddddUL
, 0x9ce87474UL
, 0x213e1f1fUL
,
296 0xdd964b4bUL
, 0xdc61bdbdUL
, 0x860d8b8bUL
, 0x850f8a8aUL
,
297 0x90e07070UL
, 0x427c3e3eUL
, 0xc471b5b5UL
, 0xaacc6666UL
,
298 0xd8904848UL
, 0x05060303UL
, 0x01f7f6f6UL
, 0x121c0e0eUL
,
299 0xa3c26161UL
, 0x5f6a3535UL
, 0xf9ae5757UL
, 0xd069b9b9UL
,
300 0x91178686UL
, 0x5899c1c1UL
, 0x273a1d1dUL
, 0xb9279e9eUL
,
301 0x38d9e1e1UL
, 0x13ebf8f8UL
, 0xb32b9898UL
, 0x33221111UL
,
302 0xbbd26969UL
, 0x70a9d9d9UL
, 0x89078e8eUL
, 0xa7339494UL
,
303 0xb62d9b9bUL
, 0x223c1e1eUL
, 0x92158787UL
, 0x20c9e9e9UL
,
304 0x4987ceceUL
, 0xffaa5555UL
, 0x78502828UL
, 0x7aa5dfdfUL
,
305 0x8f038c8cUL
, 0xf859a1a1UL
, 0x80098989UL
, 0x171a0d0dUL
,
306 0xda65bfbfUL
, 0x31d7e6e6UL
, 0xc6844242UL
, 0xb8d06868UL
,
307 0xc3824141UL
, 0xb0299999UL
, 0x775a2d2dUL
, 0x111e0f0fUL
,
308 0xcb7bb0b0UL
, 0xfca85454UL
, 0xd66dbbbbUL
, 0x3a2c1616UL
,
310 static const ulong32 TE2
[256] = {
311 0x63a5c663UL
, 0x7c84f87cUL
, 0x7799ee77UL
, 0x7b8df67bUL
,
312 0xf20dfff2UL
, 0x6bbdd66bUL
, 0x6fb1de6fUL
, 0xc55491c5UL
,
313 0x30506030UL
, 0x01030201UL
, 0x67a9ce67UL
, 0x2b7d562bUL
,
314 0xfe19e7feUL
, 0xd762b5d7UL
, 0xabe64dabUL
, 0x769aec76UL
,
315 0xca458fcaUL
, 0x829d1f82UL
, 0xc94089c9UL
, 0x7d87fa7dUL
,
316 0xfa15effaUL
, 0x59ebb259UL
, 0x47c98e47UL
, 0xf00bfbf0UL
,
317 0xadec41adUL
, 0xd467b3d4UL
, 0xa2fd5fa2UL
, 0xafea45afUL
,
318 0x9cbf239cUL
, 0xa4f753a4UL
, 0x7296e472UL
, 0xc05b9bc0UL
,
319 0xb7c275b7UL
, 0xfd1ce1fdUL
, 0x93ae3d93UL
, 0x266a4c26UL
,
320 0x365a6c36UL
, 0x3f417e3fUL
, 0xf702f5f7UL
, 0xcc4f83ccUL
,
321 0x345c6834UL
, 0xa5f451a5UL
, 0xe534d1e5UL
, 0xf108f9f1UL
,
322 0x7193e271UL
, 0xd873abd8UL
, 0x31536231UL
, 0x153f2a15UL
,
323 0x040c0804UL
, 0xc75295c7UL
, 0x23654623UL
, 0xc35e9dc3UL
,
324 0x18283018UL
, 0x96a13796UL
, 0x050f0a05UL
, 0x9ab52f9aUL
,
325 0x07090e07UL
, 0x12362412UL
, 0x809b1b80UL
, 0xe23ddfe2UL
,
326 0xeb26cdebUL
, 0x27694e27UL
, 0xb2cd7fb2UL
, 0x759fea75UL
,
327 0x091b1209UL
, 0x839e1d83UL
, 0x2c74582cUL
, 0x1a2e341aUL
,
328 0x1b2d361bUL
, 0x6eb2dc6eUL
, 0x5aeeb45aUL
, 0xa0fb5ba0UL
,
329 0x52f6a452UL
, 0x3b4d763bUL
, 0xd661b7d6UL
, 0xb3ce7db3UL
,
330 0x297b5229UL
, 0xe33edde3UL
, 0x2f715e2fUL
, 0x84971384UL
,
331 0x53f5a653UL
, 0xd168b9d1UL
, 0x00000000UL
, 0xed2cc1edUL
,
332 0x20604020UL
, 0xfc1fe3fcUL
, 0xb1c879b1UL
, 0x5bedb65bUL
,
333 0x6abed46aUL
, 0xcb468dcbUL
, 0xbed967beUL
, 0x394b7239UL
,
334 0x4ade944aUL
, 0x4cd4984cUL
, 0x58e8b058UL
, 0xcf4a85cfUL
,
335 0xd06bbbd0UL
, 0xef2ac5efUL
, 0xaae54faaUL
, 0xfb16edfbUL
,
336 0x43c58643UL
, 0x4dd79a4dUL
, 0x33556633UL
, 0x85941185UL
,
337 0x45cf8a45UL
, 0xf910e9f9UL
, 0x02060402UL
, 0x7f81fe7fUL
,
338 0x50f0a050UL
, 0x3c44783cUL
, 0x9fba259fUL
, 0xa8e34ba8UL
,
339 0x51f3a251UL
, 0xa3fe5da3UL
, 0x40c08040UL
, 0x8f8a058fUL
,
340 0x92ad3f92UL
, 0x9dbc219dUL
, 0x38487038UL
, 0xf504f1f5UL
,
341 0xbcdf63bcUL
, 0xb6c177b6UL
, 0xda75afdaUL
, 0x21634221UL
,
342 0x10302010UL
, 0xff1ae5ffUL
, 0xf30efdf3UL
, 0xd26dbfd2UL
,
343 0xcd4c81cdUL
, 0x0c14180cUL
, 0x13352613UL
, 0xec2fc3ecUL
,
344 0x5fe1be5fUL
, 0x97a23597UL
, 0x44cc8844UL
, 0x17392e17UL
,
345 0xc45793c4UL
, 0xa7f255a7UL
, 0x7e82fc7eUL
, 0x3d477a3dUL
,
346 0x64acc864UL
, 0x5de7ba5dUL
, 0x192b3219UL
, 0x7395e673UL
,
347 0x60a0c060UL
, 0x81981981UL
, 0x4fd19e4fUL
, 0xdc7fa3dcUL
,
348 0x22664422UL
, 0x2a7e542aUL
, 0x90ab3b90UL
, 0x88830b88UL
,
349 0x46ca8c46UL
, 0xee29c7eeUL
, 0xb8d36bb8UL
, 0x143c2814UL
,
350 0xde79a7deUL
, 0x5ee2bc5eUL
, 0x0b1d160bUL
, 0xdb76addbUL
,
351 0xe03bdbe0UL
, 0x32566432UL
, 0x3a4e743aUL
, 0x0a1e140aUL
,
352 0x49db9249UL
, 0x060a0c06UL
, 0x246c4824UL
, 0x5ce4b85cUL
,
353 0xc25d9fc2UL
, 0xd36ebdd3UL
, 0xacef43acUL
, 0x62a6c462UL
,
354 0x91a83991UL
, 0x95a43195UL
, 0xe437d3e4UL
, 0x798bf279UL
,
355 0xe732d5e7UL
, 0xc8438bc8UL
, 0x37596e37UL
, 0x6db7da6dUL
,
356 0x8d8c018dUL
, 0xd564b1d5UL
, 0x4ed29c4eUL
, 0xa9e049a9UL
,
357 0x6cb4d86cUL
, 0x56faac56UL
, 0xf407f3f4UL
, 0xea25cfeaUL
,
358 0x65afca65UL
, 0x7a8ef47aUL
, 0xaee947aeUL
, 0x08181008UL
,
359 0xbad56fbaUL
, 0x7888f078UL
, 0x256f4a25UL
, 0x2e725c2eUL
,
360 0x1c24381cUL
, 0xa6f157a6UL
, 0xb4c773b4UL
, 0xc65197c6UL
,
361 0xe823cbe8UL
, 0xdd7ca1ddUL
, 0x749ce874UL
, 0x1f213e1fUL
,
362 0x4bdd964bUL
, 0xbddc61bdUL
, 0x8b860d8bUL
, 0x8a850f8aUL
,
363 0x7090e070UL
, 0x3e427c3eUL
, 0xb5c471b5UL
, 0x66aacc66UL
,
364 0x48d89048UL
, 0x03050603UL
, 0xf601f7f6UL
, 0x0e121c0eUL
,
365 0x61a3c261UL
, 0x355f6a35UL
, 0x57f9ae57UL
, 0xb9d069b9UL
,
366 0x86911786UL
, 0xc15899c1UL
, 0x1d273a1dUL
, 0x9eb9279eUL
,
367 0xe138d9e1UL
, 0xf813ebf8UL
, 0x98b32b98UL
, 0x11332211UL
,
368 0x69bbd269UL
, 0xd970a9d9UL
, 0x8e89078eUL
, 0x94a73394UL
,
369 0x9bb62d9bUL
, 0x1e223c1eUL
, 0x87921587UL
, 0xe920c9e9UL
,
370 0xce4987ceUL
, 0x55ffaa55UL
, 0x28785028UL
, 0xdf7aa5dfUL
,
371 0x8c8f038cUL
, 0xa1f859a1UL
, 0x89800989UL
, 0x0d171a0dUL
,
372 0xbfda65bfUL
, 0xe631d7e6UL
, 0x42c68442UL
, 0x68b8d068UL
,
373 0x41c38241UL
, 0x99b02999UL
, 0x2d775a2dUL
, 0x0f111e0fUL
,
374 0xb0cb7bb0UL
, 0x54fca854UL
, 0xbbd66dbbUL
, 0x163a2c16UL
,
376 static const ulong32 TE3
[256] = {
378 0x6363a5c6UL
, 0x7c7c84f8UL
, 0x777799eeUL
, 0x7b7b8df6UL
,
379 0xf2f20dffUL
, 0x6b6bbdd6UL
, 0x6f6fb1deUL
, 0xc5c55491UL
,
380 0x30305060UL
, 0x01010302UL
, 0x6767a9ceUL
, 0x2b2b7d56UL
,
381 0xfefe19e7UL
, 0xd7d762b5UL
, 0xababe64dUL
, 0x76769aecUL
,
382 0xcaca458fUL
, 0x82829d1fUL
, 0xc9c94089UL
, 0x7d7d87faUL
,
383 0xfafa15efUL
, 0x5959ebb2UL
, 0x4747c98eUL
, 0xf0f00bfbUL
,
384 0xadadec41UL
, 0xd4d467b3UL
, 0xa2a2fd5fUL
, 0xafafea45UL
,
385 0x9c9cbf23UL
, 0xa4a4f753UL
, 0x727296e4UL
, 0xc0c05b9bUL
,
386 0xb7b7c275UL
, 0xfdfd1ce1UL
, 0x9393ae3dUL
, 0x26266a4cUL
,
387 0x36365a6cUL
, 0x3f3f417eUL
, 0xf7f702f5UL
, 0xcccc4f83UL
,
388 0x34345c68UL
, 0xa5a5f451UL
, 0xe5e534d1UL
, 0xf1f108f9UL
,
389 0x717193e2UL
, 0xd8d873abUL
, 0x31315362UL
, 0x15153f2aUL
,
390 0x04040c08UL
, 0xc7c75295UL
, 0x23236546UL
, 0xc3c35e9dUL
,
391 0x18182830UL
, 0x9696a137UL
, 0x05050f0aUL
, 0x9a9ab52fUL
,
392 0x0707090eUL
, 0x12123624UL
, 0x80809b1bUL
, 0xe2e23ddfUL
,
393 0xebeb26cdUL
, 0x2727694eUL
, 0xb2b2cd7fUL
, 0x75759feaUL
,
394 0x09091b12UL
, 0x83839e1dUL
, 0x2c2c7458UL
, 0x1a1a2e34UL
,
395 0x1b1b2d36UL
, 0x6e6eb2dcUL
, 0x5a5aeeb4UL
, 0xa0a0fb5bUL
,
396 0x5252f6a4UL
, 0x3b3b4d76UL
, 0xd6d661b7UL
, 0xb3b3ce7dUL
,
397 0x29297b52UL
, 0xe3e33eddUL
, 0x2f2f715eUL
, 0x84849713UL
,
398 0x5353f5a6UL
, 0xd1d168b9UL
, 0x00000000UL
, 0xeded2cc1UL
,
399 0x20206040UL
, 0xfcfc1fe3UL
, 0xb1b1c879UL
, 0x5b5bedb6UL
,
400 0x6a6abed4UL
, 0xcbcb468dUL
, 0xbebed967UL
, 0x39394b72UL
,
401 0x4a4ade94UL
, 0x4c4cd498UL
, 0x5858e8b0UL
, 0xcfcf4a85UL
,
402 0xd0d06bbbUL
, 0xefef2ac5UL
, 0xaaaae54fUL
, 0xfbfb16edUL
,
403 0x4343c586UL
, 0x4d4dd79aUL
, 0x33335566UL
, 0x85859411UL
,
404 0x4545cf8aUL
, 0xf9f910e9UL
, 0x02020604UL
, 0x7f7f81feUL
,
405 0x5050f0a0UL
, 0x3c3c4478UL
, 0x9f9fba25UL
, 0xa8a8e34bUL
,
406 0x5151f3a2UL
, 0xa3a3fe5dUL
, 0x4040c080UL
, 0x8f8f8a05UL
,
407 0x9292ad3fUL
, 0x9d9dbc21UL
, 0x38384870UL
, 0xf5f504f1UL
,
408 0xbcbcdf63UL
, 0xb6b6c177UL
, 0xdada75afUL
, 0x21216342UL
,
409 0x10103020UL
, 0xffff1ae5UL
, 0xf3f30efdUL
, 0xd2d26dbfUL
,
410 0xcdcd4c81UL
, 0x0c0c1418UL
, 0x13133526UL
, 0xecec2fc3UL
,
411 0x5f5fe1beUL
, 0x9797a235UL
, 0x4444cc88UL
, 0x1717392eUL
,
412 0xc4c45793UL
, 0xa7a7f255UL
, 0x7e7e82fcUL
, 0x3d3d477aUL
,
413 0x6464acc8UL
, 0x5d5de7baUL
, 0x19192b32UL
, 0x737395e6UL
,
414 0x6060a0c0UL
, 0x81819819UL
, 0x4f4fd19eUL
, 0xdcdc7fa3UL
,
415 0x22226644UL
, 0x2a2a7e54UL
, 0x9090ab3bUL
, 0x8888830bUL
,
416 0x4646ca8cUL
, 0xeeee29c7UL
, 0xb8b8d36bUL
, 0x14143c28UL
,
417 0xdede79a7UL
, 0x5e5ee2bcUL
, 0x0b0b1d16UL
, 0xdbdb76adUL
,
418 0xe0e03bdbUL
, 0x32325664UL
, 0x3a3a4e74UL
, 0x0a0a1e14UL
,
419 0x4949db92UL
, 0x06060a0cUL
, 0x24246c48UL
, 0x5c5ce4b8UL
,
420 0xc2c25d9fUL
, 0xd3d36ebdUL
, 0xacacef43UL
, 0x6262a6c4UL
,
421 0x9191a839UL
, 0x9595a431UL
, 0xe4e437d3UL
, 0x79798bf2UL
,
422 0xe7e732d5UL
, 0xc8c8438bUL
, 0x3737596eUL
, 0x6d6db7daUL
,
423 0x8d8d8c01UL
, 0xd5d564b1UL
, 0x4e4ed29cUL
, 0xa9a9e049UL
,
424 0x6c6cb4d8UL
, 0x5656faacUL
, 0xf4f407f3UL
, 0xeaea25cfUL
,
425 0x6565afcaUL
, 0x7a7a8ef4UL
, 0xaeaee947UL
, 0x08081810UL
,
426 0xbabad56fUL
, 0x787888f0UL
, 0x25256f4aUL
, 0x2e2e725cUL
,
427 0x1c1c2438UL
, 0xa6a6f157UL
, 0xb4b4c773UL
, 0xc6c65197UL
,
428 0xe8e823cbUL
, 0xdddd7ca1UL
, 0x74749ce8UL
, 0x1f1f213eUL
,
429 0x4b4bdd96UL
, 0xbdbddc61UL
, 0x8b8b860dUL
, 0x8a8a850fUL
,
430 0x707090e0UL
, 0x3e3e427cUL
, 0xb5b5c471UL
, 0x6666aaccUL
,
431 0x4848d890UL
, 0x03030506UL
, 0xf6f601f7UL
, 0x0e0e121cUL
,
432 0x6161a3c2UL
, 0x35355f6aUL
, 0x5757f9aeUL
, 0xb9b9d069UL
,
433 0x86869117UL
, 0xc1c15899UL
, 0x1d1d273aUL
, 0x9e9eb927UL
,
434 0xe1e138d9UL
, 0xf8f813ebUL
, 0x9898b32bUL
, 0x11113322UL
,
435 0x6969bbd2UL
, 0xd9d970a9UL
, 0x8e8e8907UL
, 0x9494a733UL
,
436 0x9b9bb62dUL
, 0x1e1e223cUL
, 0x87879215UL
, 0xe9e920c9UL
,
437 0xcece4987UL
, 0x5555ffaaUL
, 0x28287850UL
, 0xdfdf7aa5UL
,
438 0x8c8c8f03UL
, 0xa1a1f859UL
, 0x89898009UL
, 0x0d0d171aUL
,
439 0xbfbfda65UL
, 0xe6e631d7UL
, 0x4242c684UL
, 0x6868b8d0UL
,
440 0x4141c382UL
, 0x9999b029UL
, 0x2d2d775aUL
, 0x0f0f111eUL
,
441 0xb0b0cb7bUL
, 0x5454fca8UL
, 0xbbbbd66dUL
, 0x16163a2cUL
,
444 static const ulong32 Te4_0
[] = {
445 0x00000063UL
, 0x0000007cUL
, 0x00000077UL
, 0x0000007bUL
, 0x000000f2UL
, 0x0000006bUL
, 0x0000006fUL
, 0x000000c5UL
,
446 0x00000030UL
, 0x00000001UL
, 0x00000067UL
, 0x0000002bUL
, 0x000000feUL
, 0x000000d7UL
, 0x000000abUL
, 0x00000076UL
,
447 0x000000caUL
, 0x00000082UL
, 0x000000c9UL
, 0x0000007dUL
, 0x000000faUL
, 0x00000059UL
, 0x00000047UL
, 0x000000f0UL
,
448 0x000000adUL
, 0x000000d4UL
, 0x000000a2UL
, 0x000000afUL
, 0x0000009cUL
, 0x000000a4UL
, 0x00000072UL
, 0x000000c0UL
,
449 0x000000b7UL
, 0x000000fdUL
, 0x00000093UL
, 0x00000026UL
, 0x00000036UL
, 0x0000003fUL
, 0x000000f7UL
, 0x000000ccUL
,
450 0x00000034UL
, 0x000000a5UL
, 0x000000e5UL
, 0x000000f1UL
, 0x00000071UL
, 0x000000d8UL
, 0x00000031UL
, 0x00000015UL
,
451 0x00000004UL
, 0x000000c7UL
, 0x00000023UL
, 0x000000c3UL
, 0x00000018UL
, 0x00000096UL
, 0x00000005UL
, 0x0000009aUL
,
452 0x00000007UL
, 0x00000012UL
, 0x00000080UL
, 0x000000e2UL
, 0x000000ebUL
, 0x00000027UL
, 0x000000b2UL
, 0x00000075UL
,
453 0x00000009UL
, 0x00000083UL
, 0x0000002cUL
, 0x0000001aUL
, 0x0000001bUL
, 0x0000006eUL
, 0x0000005aUL
, 0x000000a0UL
,
454 0x00000052UL
, 0x0000003bUL
, 0x000000d6UL
, 0x000000b3UL
, 0x00000029UL
, 0x000000e3UL
, 0x0000002fUL
, 0x00000084UL
,
455 0x00000053UL
, 0x000000d1UL
, 0x00000000UL
, 0x000000edUL
, 0x00000020UL
, 0x000000fcUL
, 0x000000b1UL
, 0x0000005bUL
,
456 0x0000006aUL
, 0x000000cbUL
, 0x000000beUL
, 0x00000039UL
, 0x0000004aUL
, 0x0000004cUL
, 0x00000058UL
, 0x000000cfUL
,
457 0x000000d0UL
, 0x000000efUL
, 0x000000aaUL
, 0x000000fbUL
, 0x00000043UL
, 0x0000004dUL
, 0x00000033UL
, 0x00000085UL
,
458 0x00000045UL
, 0x000000f9UL
, 0x00000002UL
, 0x0000007fUL
, 0x00000050UL
, 0x0000003cUL
, 0x0000009fUL
, 0x000000a8UL
,
459 0x00000051UL
, 0x000000a3UL
, 0x00000040UL
, 0x0000008fUL
, 0x00000092UL
, 0x0000009dUL
, 0x00000038UL
, 0x000000f5UL
,
460 0x000000bcUL
, 0x000000b6UL
, 0x000000daUL
, 0x00000021UL
, 0x00000010UL
, 0x000000ffUL
, 0x000000f3UL
, 0x000000d2UL
,
461 0x000000cdUL
, 0x0000000cUL
, 0x00000013UL
, 0x000000ecUL
, 0x0000005fUL
, 0x00000097UL
, 0x00000044UL
, 0x00000017UL
,
462 0x000000c4UL
, 0x000000a7UL
, 0x0000007eUL
, 0x0000003dUL
, 0x00000064UL
, 0x0000005dUL
, 0x00000019UL
, 0x00000073UL
,
463 0x00000060UL
, 0x00000081UL
, 0x0000004fUL
, 0x000000dcUL
, 0x00000022UL
, 0x0000002aUL
, 0x00000090UL
, 0x00000088UL
,
464 0x00000046UL
, 0x000000eeUL
, 0x000000b8UL
, 0x00000014UL
, 0x000000deUL
, 0x0000005eUL
, 0x0000000bUL
, 0x000000dbUL
,
465 0x000000e0UL
, 0x00000032UL
, 0x0000003aUL
, 0x0000000aUL
, 0x00000049UL
, 0x00000006UL
, 0x00000024UL
, 0x0000005cUL
,
466 0x000000c2UL
, 0x000000d3UL
, 0x000000acUL
, 0x00000062UL
, 0x00000091UL
, 0x00000095UL
, 0x000000e4UL
, 0x00000079UL
,
467 0x000000e7UL
, 0x000000c8UL
, 0x00000037UL
, 0x0000006dUL
, 0x0000008dUL
, 0x000000d5UL
, 0x0000004eUL
, 0x000000a9UL
,
468 0x0000006cUL
, 0x00000056UL
, 0x000000f4UL
, 0x000000eaUL
, 0x00000065UL
, 0x0000007aUL
, 0x000000aeUL
, 0x00000008UL
,
469 0x000000baUL
, 0x00000078UL
, 0x00000025UL
, 0x0000002eUL
, 0x0000001cUL
, 0x000000a6UL
, 0x000000b4UL
, 0x000000c6UL
,
470 0x000000e8UL
, 0x000000ddUL
, 0x00000074UL
, 0x0000001fUL
, 0x0000004bUL
, 0x000000bdUL
, 0x0000008bUL
, 0x0000008aUL
,
471 0x00000070UL
, 0x0000003eUL
, 0x000000b5UL
, 0x00000066UL
, 0x00000048UL
, 0x00000003UL
, 0x000000f6UL
, 0x0000000eUL
,
472 0x00000061UL
, 0x00000035UL
, 0x00000057UL
, 0x000000b9UL
, 0x00000086UL
, 0x000000c1UL
, 0x0000001dUL
, 0x0000009eUL
,
473 0x000000e1UL
, 0x000000f8UL
, 0x00000098UL
, 0x00000011UL
, 0x00000069UL
, 0x000000d9UL
, 0x0000008eUL
, 0x00000094UL
,
474 0x0000009bUL
, 0x0000001eUL
, 0x00000087UL
, 0x000000e9UL
, 0x000000ceUL
, 0x00000055UL
, 0x00000028UL
, 0x000000dfUL
,
475 0x0000008cUL
, 0x000000a1UL
, 0x00000089UL
, 0x0000000dUL
, 0x000000bfUL
, 0x000000e6UL
, 0x00000042UL
, 0x00000068UL
,
476 0x00000041UL
, 0x00000099UL
, 0x0000002dUL
, 0x0000000fUL
, 0x000000b0UL
, 0x00000054UL
, 0x000000bbUL
, 0x00000016UL
479 static const ulong32 Te4_1
[] = {
480 0x00006300UL
, 0x00007c00UL
, 0x00007700UL
, 0x00007b00UL
, 0x0000f200UL
, 0x00006b00UL
, 0x00006f00UL
, 0x0000c500UL
,
481 0x00003000UL
, 0x00000100UL
, 0x00006700UL
, 0x00002b00UL
, 0x0000fe00UL
, 0x0000d700UL
, 0x0000ab00UL
, 0x00007600UL
,
482 0x0000ca00UL
, 0x00008200UL
, 0x0000c900UL
, 0x00007d00UL
, 0x0000fa00UL
, 0x00005900UL
, 0x00004700UL
, 0x0000f000UL
,
483 0x0000ad00UL
, 0x0000d400UL
, 0x0000a200UL
, 0x0000af00UL
, 0x00009c00UL
, 0x0000a400UL
, 0x00007200UL
, 0x0000c000UL
,
484 0x0000b700UL
, 0x0000fd00UL
, 0x00009300UL
, 0x00002600UL
, 0x00003600UL
, 0x00003f00UL
, 0x0000f700UL
, 0x0000cc00UL
,
485 0x00003400UL
, 0x0000a500UL
, 0x0000e500UL
, 0x0000f100UL
, 0x00007100UL
, 0x0000d800UL
, 0x00003100UL
, 0x00001500UL
,
486 0x00000400UL
, 0x0000c700UL
, 0x00002300UL
, 0x0000c300UL
, 0x00001800UL
, 0x00009600UL
, 0x00000500UL
, 0x00009a00UL
,
487 0x00000700UL
, 0x00001200UL
, 0x00008000UL
, 0x0000e200UL
, 0x0000eb00UL
, 0x00002700UL
, 0x0000b200UL
, 0x00007500UL
,
488 0x00000900UL
, 0x00008300UL
, 0x00002c00UL
, 0x00001a00UL
, 0x00001b00UL
, 0x00006e00UL
, 0x00005a00UL
, 0x0000a000UL
,
489 0x00005200UL
, 0x00003b00UL
, 0x0000d600UL
, 0x0000b300UL
, 0x00002900UL
, 0x0000e300UL
, 0x00002f00UL
, 0x00008400UL
,
490 0x00005300UL
, 0x0000d100UL
, 0x00000000UL
, 0x0000ed00UL
, 0x00002000UL
, 0x0000fc00UL
, 0x0000b100UL
, 0x00005b00UL
,
491 0x00006a00UL
, 0x0000cb00UL
, 0x0000be00UL
, 0x00003900UL
, 0x00004a00UL
, 0x00004c00UL
, 0x00005800UL
, 0x0000cf00UL
,
492 0x0000d000UL
, 0x0000ef00UL
, 0x0000aa00UL
, 0x0000fb00UL
, 0x00004300UL
, 0x00004d00UL
, 0x00003300UL
, 0x00008500UL
,
493 0x00004500UL
, 0x0000f900UL
, 0x00000200UL
, 0x00007f00UL
, 0x00005000UL
, 0x00003c00UL
, 0x00009f00UL
, 0x0000a800UL
,
494 0x00005100UL
, 0x0000a300UL
, 0x00004000UL
, 0x00008f00UL
, 0x00009200UL
, 0x00009d00UL
, 0x00003800UL
, 0x0000f500UL
,
495 0x0000bc00UL
, 0x0000b600UL
, 0x0000da00UL
, 0x00002100UL
, 0x00001000UL
, 0x0000ff00UL
, 0x0000f300UL
, 0x0000d200UL
,
496 0x0000cd00UL
, 0x00000c00UL
, 0x00001300UL
, 0x0000ec00UL
, 0x00005f00UL
, 0x00009700UL
, 0x00004400UL
, 0x00001700UL
,
497 0x0000c400UL
, 0x0000a700UL
, 0x00007e00UL
, 0x00003d00UL
, 0x00006400UL
, 0x00005d00UL
, 0x00001900UL
, 0x00007300UL
,
498 0x00006000UL
, 0x00008100UL
, 0x00004f00UL
, 0x0000dc00UL
, 0x00002200UL
, 0x00002a00UL
, 0x00009000UL
, 0x00008800UL
,
499 0x00004600UL
, 0x0000ee00UL
, 0x0000b800UL
, 0x00001400UL
, 0x0000de00UL
, 0x00005e00UL
, 0x00000b00UL
, 0x0000db00UL
,
500 0x0000e000UL
, 0x00003200UL
, 0x00003a00UL
, 0x00000a00UL
, 0x00004900UL
, 0x00000600UL
, 0x00002400UL
, 0x00005c00UL
,
501 0x0000c200UL
, 0x0000d300UL
, 0x0000ac00UL
, 0x00006200UL
, 0x00009100UL
, 0x00009500UL
, 0x0000e400UL
, 0x00007900UL
,
502 0x0000e700UL
, 0x0000c800UL
, 0x00003700UL
, 0x00006d00UL
, 0x00008d00UL
, 0x0000d500UL
, 0x00004e00UL
, 0x0000a900UL
,
503 0x00006c00UL
, 0x00005600UL
, 0x0000f400UL
, 0x0000ea00UL
, 0x00006500UL
, 0x00007a00UL
, 0x0000ae00UL
, 0x00000800UL
,
504 0x0000ba00UL
, 0x00007800UL
, 0x00002500UL
, 0x00002e00UL
, 0x00001c00UL
, 0x0000a600UL
, 0x0000b400UL
, 0x0000c600UL
,
505 0x0000e800UL
, 0x0000dd00UL
, 0x00007400UL
, 0x00001f00UL
, 0x00004b00UL
, 0x0000bd00UL
, 0x00008b00UL
, 0x00008a00UL
,
506 0x00007000UL
, 0x00003e00UL
, 0x0000b500UL
, 0x00006600UL
, 0x00004800UL
, 0x00000300UL
, 0x0000f600UL
, 0x00000e00UL
,
507 0x00006100UL
, 0x00003500UL
, 0x00005700UL
, 0x0000b900UL
, 0x00008600UL
, 0x0000c100UL
, 0x00001d00UL
, 0x00009e00UL
,
508 0x0000e100UL
, 0x0000f800UL
, 0x00009800UL
, 0x00001100UL
, 0x00006900UL
, 0x0000d900UL
, 0x00008e00UL
, 0x00009400UL
,
509 0x00009b00UL
, 0x00001e00UL
, 0x00008700UL
, 0x0000e900UL
, 0x0000ce00UL
, 0x00005500UL
, 0x00002800UL
, 0x0000df00UL
,
510 0x00008c00UL
, 0x0000a100UL
, 0x00008900UL
, 0x00000d00UL
, 0x0000bf00UL
, 0x0000e600UL
, 0x00004200UL
, 0x00006800UL
,
511 0x00004100UL
, 0x00009900UL
, 0x00002d00UL
, 0x00000f00UL
, 0x0000b000UL
, 0x00005400UL
, 0x0000bb00UL
, 0x00001600UL
514 static const ulong32 Te4_2
[] = {
515 0x00630000UL
, 0x007c0000UL
, 0x00770000UL
, 0x007b0000UL
, 0x00f20000UL
, 0x006b0000UL
, 0x006f0000UL
, 0x00c50000UL
,
516 0x00300000UL
, 0x00010000UL
, 0x00670000UL
, 0x002b0000UL
, 0x00fe0000UL
, 0x00d70000UL
, 0x00ab0000UL
, 0x00760000UL
,
517 0x00ca0000UL
, 0x00820000UL
, 0x00c90000UL
, 0x007d0000UL
, 0x00fa0000UL
, 0x00590000UL
, 0x00470000UL
, 0x00f00000UL
,
518 0x00ad0000UL
, 0x00d40000UL
, 0x00a20000UL
, 0x00af0000UL
, 0x009c0000UL
, 0x00a40000UL
, 0x00720000UL
, 0x00c00000UL
,
519 0x00b70000UL
, 0x00fd0000UL
, 0x00930000UL
, 0x00260000UL
, 0x00360000UL
, 0x003f0000UL
, 0x00f70000UL
, 0x00cc0000UL
,
520 0x00340000UL
, 0x00a50000UL
, 0x00e50000UL
, 0x00f10000UL
, 0x00710000UL
, 0x00d80000UL
, 0x00310000UL
, 0x00150000UL
,
521 0x00040000UL
, 0x00c70000UL
, 0x00230000UL
, 0x00c30000UL
, 0x00180000UL
, 0x00960000UL
, 0x00050000UL
, 0x009a0000UL
,
522 0x00070000UL
, 0x00120000UL
, 0x00800000UL
, 0x00e20000UL
, 0x00eb0000UL
, 0x00270000UL
, 0x00b20000UL
, 0x00750000UL
,
523 0x00090000UL
, 0x00830000UL
, 0x002c0000UL
, 0x001a0000UL
, 0x001b0000UL
, 0x006e0000UL
, 0x005a0000UL
, 0x00a00000UL
,
524 0x00520000UL
, 0x003b0000UL
, 0x00d60000UL
, 0x00b30000UL
, 0x00290000UL
, 0x00e30000UL
, 0x002f0000UL
, 0x00840000UL
,
525 0x00530000UL
, 0x00d10000UL
, 0x00000000UL
, 0x00ed0000UL
, 0x00200000UL
, 0x00fc0000UL
, 0x00b10000UL
, 0x005b0000UL
,
526 0x006a0000UL
, 0x00cb0000UL
, 0x00be0000UL
, 0x00390000UL
, 0x004a0000UL
, 0x004c0000UL
, 0x00580000UL
, 0x00cf0000UL
,
527 0x00d00000UL
, 0x00ef0000UL
, 0x00aa0000UL
, 0x00fb0000UL
, 0x00430000UL
, 0x004d0000UL
, 0x00330000UL
, 0x00850000UL
,
528 0x00450000UL
, 0x00f90000UL
, 0x00020000UL
, 0x007f0000UL
, 0x00500000UL
, 0x003c0000UL
, 0x009f0000UL
, 0x00a80000UL
,
529 0x00510000UL
, 0x00a30000UL
, 0x00400000UL
, 0x008f0000UL
, 0x00920000UL
, 0x009d0000UL
, 0x00380000UL
, 0x00f50000UL
,
530 0x00bc0000UL
, 0x00b60000UL
, 0x00da0000UL
, 0x00210000UL
, 0x00100000UL
, 0x00ff0000UL
, 0x00f30000UL
, 0x00d20000UL
,
531 0x00cd0000UL
, 0x000c0000UL
, 0x00130000UL
, 0x00ec0000UL
, 0x005f0000UL
, 0x00970000UL
, 0x00440000UL
, 0x00170000UL
,
532 0x00c40000UL
, 0x00a70000UL
, 0x007e0000UL
, 0x003d0000UL
, 0x00640000UL
, 0x005d0000UL
, 0x00190000UL
, 0x00730000UL
,
533 0x00600000UL
, 0x00810000UL
, 0x004f0000UL
, 0x00dc0000UL
, 0x00220000UL
, 0x002a0000UL
, 0x00900000UL
, 0x00880000UL
,
534 0x00460000UL
, 0x00ee0000UL
, 0x00b80000UL
, 0x00140000UL
, 0x00de0000UL
, 0x005e0000UL
, 0x000b0000UL
, 0x00db0000UL
,
535 0x00e00000UL
, 0x00320000UL
, 0x003a0000UL
, 0x000a0000UL
, 0x00490000UL
, 0x00060000UL
, 0x00240000UL
, 0x005c0000UL
,
536 0x00c20000UL
, 0x00d30000UL
, 0x00ac0000UL
, 0x00620000UL
, 0x00910000UL
, 0x00950000UL
, 0x00e40000UL
, 0x00790000UL
,
537 0x00e70000UL
, 0x00c80000UL
, 0x00370000UL
, 0x006d0000UL
, 0x008d0000UL
, 0x00d50000UL
, 0x004e0000UL
, 0x00a90000UL
,
538 0x006c0000UL
, 0x00560000UL
, 0x00f40000UL
, 0x00ea0000UL
, 0x00650000UL
, 0x007a0000UL
, 0x00ae0000UL
, 0x00080000UL
,
539 0x00ba0000UL
, 0x00780000UL
, 0x00250000UL
, 0x002e0000UL
, 0x001c0000UL
, 0x00a60000UL
, 0x00b40000UL
, 0x00c60000UL
,
540 0x00e80000UL
, 0x00dd0000UL
, 0x00740000UL
, 0x001f0000UL
, 0x004b0000UL
, 0x00bd0000UL
, 0x008b0000UL
, 0x008a0000UL
,
541 0x00700000UL
, 0x003e0000UL
, 0x00b50000UL
, 0x00660000UL
, 0x00480000UL
, 0x00030000UL
, 0x00f60000UL
, 0x000e0000UL
,
542 0x00610000UL
, 0x00350000UL
, 0x00570000UL
, 0x00b90000UL
, 0x00860000UL
, 0x00c10000UL
, 0x001d0000UL
, 0x009e0000UL
,
543 0x00e10000UL
, 0x00f80000UL
, 0x00980000UL
, 0x00110000UL
, 0x00690000UL
, 0x00d90000UL
, 0x008e0000UL
, 0x00940000UL
,
544 0x009b0000UL
, 0x001e0000UL
, 0x00870000UL
, 0x00e90000UL
, 0x00ce0000UL
, 0x00550000UL
, 0x00280000UL
, 0x00df0000UL
,
545 0x008c0000UL
, 0x00a10000UL
, 0x00890000UL
, 0x000d0000UL
, 0x00bf0000UL
, 0x00e60000UL
, 0x00420000UL
, 0x00680000UL
,
546 0x00410000UL
, 0x00990000UL
, 0x002d0000UL
, 0x000f0000UL
, 0x00b00000UL
, 0x00540000UL
, 0x00bb0000UL
, 0x00160000UL
549 static const ulong32 Te4_3
[] = {
550 0x63000000UL
, 0x7c000000UL
, 0x77000000UL
, 0x7b000000UL
, 0xf2000000UL
, 0x6b000000UL
, 0x6f000000UL
, 0xc5000000UL
,
551 0x30000000UL
, 0x01000000UL
, 0x67000000UL
, 0x2b000000UL
, 0xfe000000UL
, 0xd7000000UL
, 0xab000000UL
, 0x76000000UL
,
552 0xca000000UL
, 0x82000000UL
, 0xc9000000UL
, 0x7d000000UL
, 0xfa000000UL
, 0x59000000UL
, 0x47000000UL
, 0xf0000000UL
,
553 0xad000000UL
, 0xd4000000UL
, 0xa2000000UL
, 0xaf000000UL
, 0x9c000000UL
, 0xa4000000UL
, 0x72000000UL
, 0xc0000000UL
,
554 0xb7000000UL
, 0xfd000000UL
, 0x93000000UL
, 0x26000000UL
, 0x36000000UL
, 0x3f000000UL
, 0xf7000000UL
, 0xcc000000UL
,
555 0x34000000UL
, 0xa5000000UL
, 0xe5000000UL
, 0xf1000000UL
, 0x71000000UL
, 0xd8000000UL
, 0x31000000UL
, 0x15000000UL
,
556 0x04000000UL
, 0xc7000000UL
, 0x23000000UL
, 0xc3000000UL
, 0x18000000UL
, 0x96000000UL
, 0x05000000UL
, 0x9a000000UL
,
557 0x07000000UL
, 0x12000000UL
, 0x80000000UL
, 0xe2000000UL
, 0xeb000000UL
, 0x27000000UL
, 0xb2000000UL
, 0x75000000UL
,
558 0x09000000UL
, 0x83000000UL
, 0x2c000000UL
, 0x1a000000UL
, 0x1b000000UL
, 0x6e000000UL
, 0x5a000000UL
, 0xa0000000UL
,
559 0x52000000UL
, 0x3b000000UL
, 0xd6000000UL
, 0xb3000000UL
, 0x29000000UL
, 0xe3000000UL
, 0x2f000000UL
, 0x84000000UL
,
560 0x53000000UL
, 0xd1000000UL
, 0x00000000UL
, 0xed000000UL
, 0x20000000UL
, 0xfc000000UL
, 0xb1000000UL
, 0x5b000000UL
,
561 0x6a000000UL
, 0xcb000000UL
, 0xbe000000UL
, 0x39000000UL
, 0x4a000000UL
, 0x4c000000UL
, 0x58000000UL
, 0xcf000000UL
,
562 0xd0000000UL
, 0xef000000UL
, 0xaa000000UL
, 0xfb000000UL
, 0x43000000UL
, 0x4d000000UL
, 0x33000000UL
, 0x85000000UL
,
563 0x45000000UL
, 0xf9000000UL
, 0x02000000UL
, 0x7f000000UL
, 0x50000000UL
, 0x3c000000UL
, 0x9f000000UL
, 0xa8000000UL
,
564 0x51000000UL
, 0xa3000000UL
, 0x40000000UL
, 0x8f000000UL
, 0x92000000UL
, 0x9d000000UL
, 0x38000000UL
, 0xf5000000UL
,
565 0xbc000000UL
, 0xb6000000UL
, 0xda000000UL
, 0x21000000UL
, 0x10000000UL
, 0xff000000UL
, 0xf3000000UL
, 0xd2000000UL
,
566 0xcd000000UL
, 0x0c000000UL
, 0x13000000UL
, 0xec000000UL
, 0x5f000000UL
, 0x97000000UL
, 0x44000000UL
, 0x17000000UL
,
567 0xc4000000UL
, 0xa7000000UL
, 0x7e000000UL
, 0x3d000000UL
, 0x64000000UL
, 0x5d000000UL
, 0x19000000UL
, 0x73000000UL
,
568 0x60000000UL
, 0x81000000UL
, 0x4f000000UL
, 0xdc000000UL
, 0x22000000UL
, 0x2a000000UL
, 0x90000000UL
, 0x88000000UL
,
569 0x46000000UL
, 0xee000000UL
, 0xb8000000UL
, 0x14000000UL
, 0xde000000UL
, 0x5e000000UL
, 0x0b000000UL
, 0xdb000000UL
,
570 0xe0000000UL
, 0x32000000UL
, 0x3a000000UL
, 0x0a000000UL
, 0x49000000UL
, 0x06000000UL
, 0x24000000UL
, 0x5c000000UL
,
571 0xc2000000UL
, 0xd3000000UL
, 0xac000000UL
, 0x62000000UL
, 0x91000000UL
, 0x95000000UL
, 0xe4000000UL
, 0x79000000UL
,
572 0xe7000000UL
, 0xc8000000UL
, 0x37000000UL
, 0x6d000000UL
, 0x8d000000UL
, 0xd5000000UL
, 0x4e000000UL
, 0xa9000000UL
,
573 0x6c000000UL
, 0x56000000UL
, 0xf4000000UL
, 0xea000000UL
, 0x65000000UL
, 0x7a000000UL
, 0xae000000UL
, 0x08000000UL
,
574 0xba000000UL
, 0x78000000UL
, 0x25000000UL
, 0x2e000000UL
, 0x1c000000UL
, 0xa6000000UL
, 0xb4000000UL
, 0xc6000000UL
,
575 0xe8000000UL
, 0xdd000000UL
, 0x74000000UL
, 0x1f000000UL
, 0x4b000000UL
, 0xbd000000UL
, 0x8b000000UL
, 0x8a000000UL
,
576 0x70000000UL
, 0x3e000000UL
, 0xb5000000UL
, 0x66000000UL
, 0x48000000UL
, 0x03000000UL
, 0xf6000000UL
, 0x0e000000UL
,
577 0x61000000UL
, 0x35000000UL
, 0x57000000UL
, 0xb9000000UL
, 0x86000000UL
, 0xc1000000UL
, 0x1d000000UL
, 0x9e000000UL
,
578 0xe1000000UL
, 0xf8000000UL
, 0x98000000UL
, 0x11000000UL
, 0x69000000UL
, 0xd9000000UL
, 0x8e000000UL
, 0x94000000UL
,
579 0x9b000000UL
, 0x1e000000UL
, 0x87000000UL
, 0xe9000000UL
, 0xce000000UL
, 0x55000000UL
, 0x28000000UL
, 0xdf000000UL
,
580 0x8c000000UL
, 0xa1000000UL
, 0x89000000UL
, 0x0d000000UL
, 0xbf000000UL
, 0xe6000000UL
, 0x42000000UL
, 0x68000000UL
,
581 0x41000000UL
, 0x99000000UL
, 0x2d000000UL
, 0x0f000000UL
, 0xb0000000UL
, 0x54000000UL
, 0xbb000000UL
, 0x16000000UL
584 static const ulong32 TD1
[256] = {
585 0x5051f4a7UL
, 0x537e4165UL
, 0xc31a17a4UL
, 0x963a275eUL
,
586 0xcb3bab6bUL
, 0xf11f9d45UL
, 0xabacfa58UL
, 0x934be303UL
,
587 0x552030faUL
, 0xf6ad766dUL
, 0x9188cc76UL
, 0x25f5024cUL
,
588 0xfc4fe5d7UL
, 0xd7c52acbUL
, 0x80263544UL
, 0x8fb562a3UL
,
589 0x49deb15aUL
, 0x6725ba1bUL
, 0x9845ea0eUL
, 0xe15dfec0UL
,
590 0x02c32f75UL
, 0x12814cf0UL
, 0xa38d4697UL
, 0xc66bd3f9UL
,
591 0xe7038f5fUL
, 0x9515929cUL
, 0xebbf6d7aUL
, 0xda955259UL
,
592 0x2dd4be83UL
, 0xd3587421UL
, 0x2949e069UL
, 0x448ec9c8UL
,
593 0x6a75c289UL
, 0x78f48e79UL
, 0x6b99583eUL
, 0xdd27b971UL
,
594 0xb6bee14fUL
, 0x17f088adUL
, 0x66c920acUL
, 0xb47dce3aUL
,
595 0x1863df4aUL
, 0x82e51a31UL
, 0x60975133UL
, 0x4562537fUL
,
596 0xe0b16477UL
, 0x84bb6baeUL
, 0x1cfe81a0UL
, 0x94f9082bUL
,
597 0x58704868UL
, 0x198f45fdUL
, 0x8794de6cUL
, 0xb7527bf8UL
,
598 0x23ab73d3UL
, 0xe2724b02UL
, 0x57e31f8fUL
, 0x2a6655abUL
,
599 0x07b2eb28UL
, 0x032fb5c2UL
, 0x9a86c57bUL
, 0xa5d33708UL
,
600 0xf2302887UL
, 0xb223bfa5UL
, 0xba02036aUL
, 0x5ced1682UL
,
601 0x2b8acf1cUL
, 0x92a779b4UL
, 0xf0f307f2UL
, 0xa14e69e2UL
,
602 0xcd65daf4UL
, 0xd50605beUL
, 0x1fd13462UL
, 0x8ac4a6feUL
,
603 0x9d342e53UL
, 0xa0a2f355UL
, 0x32058ae1UL
, 0x75a4f6ebUL
,
604 0x390b83ecUL
, 0xaa4060efUL
, 0x065e719fUL
, 0x51bd6e10UL
,
605 0xf93e218aUL
, 0x3d96dd06UL
, 0xaedd3e05UL
, 0x464de6bdUL
,
606 0xb591548dUL
, 0x0571c45dUL
, 0x6f0406d4UL
, 0xff605015UL
,
607 0x241998fbUL
, 0x97d6bde9UL
, 0xcc894043UL
, 0x7767d99eUL
,
608 0xbdb0e842UL
, 0x8807898bUL
, 0x38e7195bUL
, 0xdb79c8eeUL
,
609 0x47a17c0aUL
, 0xe97c420fUL
, 0xc9f8841eUL
, 0x00000000UL
,
610 0x83098086UL
, 0x48322bedUL
, 0xac1e1170UL
, 0x4e6c5a72UL
,
611 0xfbfd0effUL
, 0x560f8538UL
, 0x1e3daed5UL
, 0x27362d39UL
,
612 0x640a0fd9UL
, 0x21685ca6UL
, 0xd19b5b54UL
, 0x3a24362eUL
,
613 0xb10c0a67UL
, 0x0f9357e7UL
, 0xd2b4ee96UL
, 0x9e1b9b91UL
,
614 0x4f80c0c5UL
, 0xa261dc20UL
, 0x695a774bUL
, 0x161c121aUL
,
615 0x0ae293baUL
, 0xe5c0a02aUL
, 0x433c22e0UL
, 0x1d121b17UL
,
616 0x0b0e090dUL
, 0xadf28bc7UL
, 0xb92db6a8UL
, 0xc8141ea9UL
,
617 0x8557f119UL
, 0x4caf7507UL
, 0xbbee99ddUL
, 0xfda37f60UL
,
618 0x9ff70126UL
, 0xbc5c72f5UL
, 0xc544663bUL
, 0x345bfb7eUL
,
619 0x768b4329UL
, 0xdccb23c6UL
, 0x68b6edfcUL
, 0x63b8e4f1UL
,
620 0xcad731dcUL
, 0x10426385UL
, 0x40139722UL
, 0x2084c611UL
,
621 0x7d854a24UL
, 0xf8d2bb3dUL
, 0x11aef932UL
, 0x6dc729a1UL
,
622 0x4b1d9e2fUL
, 0xf3dcb230UL
, 0xec0d8652UL
, 0xd077c1e3UL
,
623 0x6c2bb316UL
, 0x99a970b9UL
, 0xfa119448UL
, 0x2247e964UL
,
624 0xc4a8fc8cUL
, 0x1aa0f03fUL
, 0xd8567d2cUL
, 0xef223390UL
,
625 0xc787494eUL
, 0xc1d938d1UL
, 0xfe8ccaa2UL
, 0x3698d40bUL
,
626 0xcfa6f581UL
, 0x28a57adeUL
, 0x26dab78eUL
, 0xa43fadbfUL
,
627 0xe42c3a9dUL
, 0x0d507892UL
, 0x9b6a5fccUL
, 0x62547e46UL
,
628 0xc2f68d13UL
, 0xe890d8b8UL
, 0x5e2e39f7UL
, 0xf582c3afUL
,
629 0xbe9f5d80UL
, 0x7c69d093UL
, 0xa96fd52dUL
, 0xb3cf2512UL
,
630 0x3bc8ac99UL
, 0xa710187dUL
, 0x6ee89c63UL
, 0x7bdb3bbbUL
,
631 0x09cd2678UL
, 0xf46e5918UL
, 0x01ec9ab7UL
, 0xa8834f9aUL
,
632 0x65e6956eUL
, 0x7eaaffe6UL
, 0x0821bccfUL
, 0xe6ef15e8UL
,
633 0xd9bae79bUL
, 0xce4a6f36UL
, 0xd4ea9f09UL
, 0xd629b07cUL
,
634 0xaf31a4b2UL
, 0x312a3f23UL
, 0x30c6a594UL
, 0xc035a266UL
,
635 0x37744ebcUL
, 0xa6fc82caUL
, 0xb0e090d0UL
, 0x1533a7d8UL
,
636 0x4af10498UL
, 0xf741ecdaUL
, 0x0e7fcd50UL
, 0x2f1791f6UL
,
637 0x8d764dd6UL
, 0x4d43efb0UL
, 0x54ccaa4dUL
, 0xdfe49604UL
,
638 0xe39ed1b5UL
, 0x1b4c6a88UL
, 0xb8c12c1fUL
, 0x7f466551UL
,
639 0x049d5eeaUL
, 0x5d018c35UL
, 0x73fa8774UL
, 0x2efb0b41UL
,
640 0x5ab3671dUL
, 0x5292dbd2UL
, 0x33e91056UL
, 0x136dd647UL
,
641 0x8c9ad761UL
, 0x7a37a10cUL
, 0x8e59f814UL
, 0x89eb133cUL
,
642 0xeecea927UL
, 0x35b761c9UL
, 0xede11ce5UL
, 0x3c7a47b1UL
,
643 0x599cd2dfUL
, 0x3f55f273UL
, 0x791814ceUL
, 0xbf73c737UL
,
644 0xea53f7cdUL
, 0x5b5ffdaaUL
, 0x14df3d6fUL
, 0x867844dbUL
,
645 0x81caaff3UL
, 0x3eb968c4UL
, 0x2c382434UL
, 0x5fc2a340UL
,
646 0x72161dc3UL
, 0x0cbce225UL
, 0x8b283c49UL
, 0x41ff0d95UL
,
647 0x7139a801UL
, 0xde080cb3UL
, 0x9cd8b4e4UL
, 0x906456c1UL
,
648 0x617bcb84UL
, 0x70d532b6UL
, 0x74486c5cUL
, 0x42d0b857UL
,
650 static const ulong32 TD2
[256] = {
651 0xa75051f4UL
, 0x65537e41UL
, 0xa4c31a17UL
, 0x5e963a27UL
,
652 0x6bcb3babUL
, 0x45f11f9dUL
, 0x58abacfaUL
, 0x03934be3UL
,
653 0xfa552030UL
, 0x6df6ad76UL
, 0x769188ccUL
, 0x4c25f502UL
,
654 0xd7fc4fe5UL
, 0xcbd7c52aUL
, 0x44802635UL
, 0xa38fb562UL
,
655 0x5a49deb1UL
, 0x1b6725baUL
, 0x0e9845eaUL
, 0xc0e15dfeUL
,
656 0x7502c32fUL
, 0xf012814cUL
, 0x97a38d46UL
, 0xf9c66bd3UL
,
657 0x5fe7038fUL
, 0x9c951592UL
, 0x7aebbf6dUL
, 0x59da9552UL
,
658 0x832dd4beUL
, 0x21d35874UL
, 0x692949e0UL
, 0xc8448ec9UL
,
659 0x896a75c2UL
, 0x7978f48eUL
, 0x3e6b9958UL
, 0x71dd27b9UL
,
660 0x4fb6bee1UL
, 0xad17f088UL
, 0xac66c920UL
, 0x3ab47dceUL
,
661 0x4a1863dfUL
, 0x3182e51aUL
, 0x33609751UL
, 0x7f456253UL
,
662 0x77e0b164UL
, 0xae84bb6bUL
, 0xa01cfe81UL
, 0x2b94f908UL
,
663 0x68587048UL
, 0xfd198f45UL
, 0x6c8794deUL
, 0xf8b7527bUL
,
664 0xd323ab73UL
, 0x02e2724bUL
, 0x8f57e31fUL
, 0xab2a6655UL
,
665 0x2807b2ebUL
, 0xc2032fb5UL
, 0x7b9a86c5UL
, 0x08a5d337UL
,
666 0x87f23028UL
, 0xa5b223bfUL
, 0x6aba0203UL
, 0x825ced16UL
,
667 0x1c2b8acfUL
, 0xb492a779UL
, 0xf2f0f307UL
, 0xe2a14e69UL
,
668 0xf4cd65daUL
, 0xbed50605UL
, 0x621fd134UL
, 0xfe8ac4a6UL
,
669 0x539d342eUL
, 0x55a0a2f3UL
, 0xe132058aUL
, 0xeb75a4f6UL
,
670 0xec390b83UL
, 0xefaa4060UL
, 0x9f065e71UL
, 0x1051bd6eUL
,
671 0x8af93e21UL
, 0x063d96ddUL
, 0x05aedd3eUL
, 0xbd464de6UL
,
672 0x8db59154UL
, 0x5d0571c4UL
, 0xd46f0406UL
, 0x15ff6050UL
,
673 0xfb241998UL
, 0xe997d6bdUL
, 0x43cc8940UL
, 0x9e7767d9UL
,
674 0x42bdb0e8UL
, 0x8b880789UL
, 0x5b38e719UL
, 0xeedb79c8UL
,
675 0x0a47a17cUL
, 0x0fe97c42UL
, 0x1ec9f884UL
, 0x00000000UL
,
676 0x86830980UL
, 0xed48322bUL
, 0x70ac1e11UL
, 0x724e6c5aUL
,
677 0xfffbfd0eUL
, 0x38560f85UL
, 0xd51e3daeUL
, 0x3927362dUL
,
678 0xd9640a0fUL
, 0xa621685cUL
, 0x54d19b5bUL
, 0x2e3a2436UL
,
679 0x67b10c0aUL
, 0xe70f9357UL
, 0x96d2b4eeUL
, 0x919e1b9bUL
,
680 0xc54f80c0UL
, 0x20a261dcUL
, 0x4b695a77UL
, 0x1a161c12UL
,
681 0xba0ae293UL
, 0x2ae5c0a0UL
, 0xe0433c22UL
, 0x171d121bUL
,
682 0x0d0b0e09UL
, 0xc7adf28bUL
, 0xa8b92db6UL
, 0xa9c8141eUL
,
683 0x198557f1UL
, 0x074caf75UL
, 0xddbbee99UL
, 0x60fda37fUL
,
684 0x269ff701UL
, 0xf5bc5c72UL
, 0x3bc54466UL
, 0x7e345bfbUL
,
685 0x29768b43UL
, 0xc6dccb23UL
, 0xfc68b6edUL
, 0xf163b8e4UL
,
686 0xdccad731UL
, 0x85104263UL
, 0x22401397UL
, 0x112084c6UL
,
687 0x247d854aUL
, 0x3df8d2bbUL
, 0x3211aef9UL
, 0xa16dc729UL
,
688 0x2f4b1d9eUL
, 0x30f3dcb2UL
, 0x52ec0d86UL
, 0xe3d077c1UL
,
689 0x166c2bb3UL
, 0xb999a970UL
, 0x48fa1194UL
, 0x642247e9UL
,
690 0x8cc4a8fcUL
, 0x3f1aa0f0UL
, 0x2cd8567dUL
, 0x90ef2233UL
,
691 0x4ec78749UL
, 0xd1c1d938UL
, 0xa2fe8ccaUL
, 0x0b3698d4UL
,
692 0x81cfa6f5UL
, 0xde28a57aUL
, 0x8e26dab7UL
, 0xbfa43fadUL
,
693 0x9de42c3aUL
, 0x920d5078UL
, 0xcc9b6a5fUL
, 0x4662547eUL
,
694 0x13c2f68dUL
, 0xb8e890d8UL
, 0xf75e2e39UL
, 0xaff582c3UL
,
695 0x80be9f5dUL
, 0x937c69d0UL
, 0x2da96fd5UL
, 0x12b3cf25UL
,
696 0x993bc8acUL
, 0x7da71018UL
, 0x636ee89cUL
, 0xbb7bdb3bUL
,
697 0x7809cd26UL
, 0x18f46e59UL
, 0xb701ec9aUL
, 0x9aa8834fUL
,
698 0x6e65e695UL
, 0xe67eaaffUL
, 0xcf0821bcUL
, 0xe8e6ef15UL
,
699 0x9bd9bae7UL
, 0x36ce4a6fUL
, 0x09d4ea9fUL
, 0x7cd629b0UL
,
700 0xb2af31a4UL
, 0x23312a3fUL
, 0x9430c6a5UL
, 0x66c035a2UL
,
701 0xbc37744eUL
, 0xcaa6fc82UL
, 0xd0b0e090UL
, 0xd81533a7UL
,
702 0x984af104UL
, 0xdaf741ecUL
, 0x500e7fcdUL
, 0xf62f1791UL
,
703 0xd68d764dUL
, 0xb04d43efUL
, 0x4d54ccaaUL
, 0x04dfe496UL
,
704 0xb5e39ed1UL
, 0x881b4c6aUL
, 0x1fb8c12cUL
, 0x517f4665UL
,
705 0xea049d5eUL
, 0x355d018cUL
, 0x7473fa87UL
, 0x412efb0bUL
,
706 0x1d5ab367UL
, 0xd25292dbUL
, 0x5633e910UL
, 0x47136dd6UL
,
707 0x618c9ad7UL
, 0x0c7a37a1UL
, 0x148e59f8UL
, 0x3c89eb13UL
,
708 0x27eecea9UL
, 0xc935b761UL
, 0xe5ede11cUL
, 0xb13c7a47UL
,
709 0xdf599cd2UL
, 0x733f55f2UL
, 0xce791814UL
, 0x37bf73c7UL
,
710 0xcdea53f7UL
, 0xaa5b5ffdUL
, 0x6f14df3dUL
, 0xdb867844UL
,
711 0xf381caafUL
, 0xc43eb968UL
, 0x342c3824UL
, 0x405fc2a3UL
,
712 0xc372161dUL
, 0x250cbce2UL
, 0x498b283cUL
, 0x9541ff0dUL
,
713 0x017139a8UL
, 0xb3de080cUL
, 0xe49cd8b4UL
, 0xc1906456UL
,
714 0x84617bcbUL
, 0xb670d532UL
, 0x5c74486cUL
, 0x5742d0b8UL
,
716 static const ulong32 TD3
[256] = {
717 0xf4a75051UL
, 0x4165537eUL
, 0x17a4c31aUL
, 0x275e963aUL
,
718 0xab6bcb3bUL
, 0x9d45f11fUL
, 0xfa58abacUL
, 0xe303934bUL
,
719 0x30fa5520UL
, 0x766df6adUL
, 0xcc769188UL
, 0x024c25f5UL
,
720 0xe5d7fc4fUL
, 0x2acbd7c5UL
, 0x35448026UL
, 0x62a38fb5UL
,
721 0xb15a49deUL
, 0xba1b6725UL
, 0xea0e9845UL
, 0xfec0e15dUL
,
722 0x2f7502c3UL
, 0x4cf01281UL
, 0x4697a38dUL
, 0xd3f9c66bUL
,
723 0x8f5fe703UL
, 0x929c9515UL
, 0x6d7aebbfUL
, 0x5259da95UL
,
724 0xbe832dd4UL
, 0x7421d358UL
, 0xe0692949UL
, 0xc9c8448eUL
,
725 0xc2896a75UL
, 0x8e7978f4UL
, 0x583e6b99UL
, 0xb971dd27UL
,
726 0xe14fb6beUL
, 0x88ad17f0UL
, 0x20ac66c9UL
, 0xce3ab47dUL
,
727 0xdf4a1863UL
, 0x1a3182e5UL
, 0x51336097UL
, 0x537f4562UL
,
728 0x6477e0b1UL
, 0x6bae84bbUL
, 0x81a01cfeUL
, 0x082b94f9UL
,
729 0x48685870UL
, 0x45fd198fUL
, 0xde6c8794UL
, 0x7bf8b752UL
,
730 0x73d323abUL
, 0x4b02e272UL
, 0x1f8f57e3UL
, 0x55ab2a66UL
,
731 0xeb2807b2UL
, 0xb5c2032fUL
, 0xc57b9a86UL
, 0x3708a5d3UL
,
732 0x2887f230UL
, 0xbfa5b223UL
, 0x036aba02UL
, 0x16825cedUL
,
733 0xcf1c2b8aUL
, 0x79b492a7UL
, 0x07f2f0f3UL
, 0x69e2a14eUL
,
734 0xdaf4cd65UL
, 0x05bed506UL
, 0x34621fd1UL
, 0xa6fe8ac4UL
,
735 0x2e539d34UL
, 0xf355a0a2UL
, 0x8ae13205UL
, 0xf6eb75a4UL
,
736 0x83ec390bUL
, 0x60efaa40UL
, 0x719f065eUL
, 0x6e1051bdUL
,
737 0x218af93eUL
, 0xdd063d96UL
, 0x3e05aeddUL
, 0xe6bd464dUL
,
738 0x548db591UL
, 0xc45d0571UL
, 0x06d46f04UL
, 0x5015ff60UL
,
739 0x98fb2419UL
, 0xbde997d6UL
, 0x4043cc89UL
, 0xd99e7767UL
,
740 0xe842bdb0UL
, 0x898b8807UL
, 0x195b38e7UL
, 0xc8eedb79UL
,
741 0x7c0a47a1UL
, 0x420fe97cUL
, 0x841ec9f8UL
, 0x00000000UL
,
742 0x80868309UL
, 0x2bed4832UL
, 0x1170ac1eUL
, 0x5a724e6cUL
,
743 0x0efffbfdUL
, 0x8538560fUL
, 0xaed51e3dUL
, 0x2d392736UL
,
744 0x0fd9640aUL
, 0x5ca62168UL
, 0x5b54d19bUL
, 0x362e3a24UL
,
745 0x0a67b10cUL
, 0x57e70f93UL
, 0xee96d2b4UL
, 0x9b919e1bUL
,
746 0xc0c54f80UL
, 0xdc20a261UL
, 0x774b695aUL
, 0x121a161cUL
,
747 0x93ba0ae2UL
, 0xa02ae5c0UL
, 0x22e0433cUL
, 0x1b171d12UL
,
748 0x090d0b0eUL
, 0x8bc7adf2UL
, 0xb6a8b92dUL
, 0x1ea9c814UL
,
749 0xf1198557UL
, 0x75074cafUL
, 0x99ddbbeeUL
, 0x7f60fda3UL
,
750 0x01269ff7UL
, 0x72f5bc5cUL
, 0x663bc544UL
, 0xfb7e345bUL
,
751 0x4329768bUL
, 0x23c6dccbUL
, 0xedfc68b6UL
, 0xe4f163b8UL
,
752 0x31dccad7UL
, 0x63851042UL
, 0x97224013UL
, 0xc6112084UL
,
753 0x4a247d85UL
, 0xbb3df8d2UL
, 0xf93211aeUL
, 0x29a16dc7UL
,
754 0x9e2f4b1dUL
, 0xb230f3dcUL
, 0x8652ec0dUL
, 0xc1e3d077UL
,
755 0xb3166c2bUL
, 0x70b999a9UL
, 0x9448fa11UL
, 0xe9642247UL
,
756 0xfc8cc4a8UL
, 0xf03f1aa0UL
, 0x7d2cd856UL
, 0x3390ef22UL
,
757 0x494ec787UL
, 0x38d1c1d9UL
, 0xcaa2fe8cUL
, 0xd40b3698UL
,
758 0xf581cfa6UL
, 0x7ade28a5UL
, 0xb78e26daUL
, 0xadbfa43fUL
,
759 0x3a9de42cUL
, 0x78920d50UL
, 0x5fcc9b6aUL
, 0x7e466254UL
,
760 0x8d13c2f6UL
, 0xd8b8e890UL
, 0x39f75e2eUL
, 0xc3aff582UL
,
761 0x5d80be9fUL
, 0xd0937c69UL
, 0xd52da96fUL
, 0x2512b3cfUL
,
762 0xac993bc8UL
, 0x187da710UL
, 0x9c636ee8UL
, 0x3bbb7bdbUL
,
763 0x267809cdUL
, 0x5918f46eUL
, 0x9ab701ecUL
, 0x4f9aa883UL
,
764 0x956e65e6UL
, 0xffe67eaaUL
, 0xbccf0821UL
, 0x15e8e6efUL
,
765 0xe79bd9baUL
, 0x6f36ce4aUL
, 0x9f09d4eaUL
, 0xb07cd629UL
,
766 0xa4b2af31UL
, 0x3f23312aUL
, 0xa59430c6UL
, 0xa266c035UL
,
767 0x4ebc3774UL
, 0x82caa6fcUL
, 0x90d0b0e0UL
, 0xa7d81533UL
,
768 0x04984af1UL
, 0xecdaf741UL
, 0xcd500e7fUL
, 0x91f62f17UL
,
769 0x4dd68d76UL
, 0xefb04d43UL
, 0xaa4d54ccUL
, 0x9604dfe4UL
,
770 0xd1b5e39eUL
, 0x6a881b4cUL
, 0x2c1fb8c1UL
, 0x65517f46UL
,
771 0x5eea049dUL
, 0x8c355d01UL
, 0x877473faUL
, 0x0b412efbUL
,
772 0x671d5ab3UL
, 0xdbd25292UL
, 0x105633e9UL
, 0xd647136dUL
,
773 0xd7618c9aUL
, 0xa10c7a37UL
, 0xf8148e59UL
, 0x133c89ebUL
,
774 0xa927eeceUL
, 0x61c935b7UL
, 0x1ce5ede1UL
, 0x47b13c7aUL
,
775 0xd2df599cUL
, 0xf2733f55UL
, 0x14ce7918UL
, 0xc737bf73UL
,
776 0xf7cdea53UL
, 0xfdaa5b5fUL
, 0x3d6f14dfUL
, 0x44db8678UL
,
777 0xaff381caUL
, 0x68c43eb9UL
, 0x24342c38UL
, 0xa3405fc2UL
,
778 0x1dc37216UL
, 0xe2250cbcUL
, 0x3c498b28UL
, 0x0d9541ffUL
,
779 0xa8017139UL
, 0x0cb3de08UL
, 0xb4e49cd8UL
, 0x56c19064UL
,
780 0xcb84617bUL
, 0x32b670d5UL
, 0x6c5c7448UL
, 0xb85742d0UL
,
783 static const ulong32 Tks0
[] = {
784 0x00000000UL
, 0x0e090d0bUL
, 0x1c121a16UL
, 0x121b171dUL
, 0x3824342cUL
, 0x362d3927UL
, 0x24362e3aUL
, 0x2a3f2331UL
,
785 0x70486858UL
, 0x7e416553UL
, 0x6c5a724eUL
, 0x62537f45UL
, 0x486c5c74UL
, 0x4665517fUL
, 0x547e4662UL
, 0x5a774b69UL
,
786 0xe090d0b0UL
, 0xee99ddbbUL
, 0xfc82caa6UL
, 0xf28bc7adUL
, 0xd8b4e49cUL
, 0xd6bde997UL
, 0xc4a6fe8aUL
, 0xcaaff381UL
,
787 0x90d8b8e8UL
, 0x9ed1b5e3UL
, 0x8ccaa2feUL
, 0x82c3aff5UL
, 0xa8fc8cc4UL
, 0xa6f581cfUL
, 0xb4ee96d2UL
, 0xbae79bd9UL
,
788 0xdb3bbb7bUL
, 0xd532b670UL
, 0xc729a16dUL
, 0xc920ac66UL
, 0xe31f8f57UL
, 0xed16825cUL
, 0xff0d9541UL
, 0xf104984aUL
,
789 0xab73d323UL
, 0xa57ade28UL
, 0xb761c935UL
, 0xb968c43eUL
, 0x9357e70fUL
, 0x9d5eea04UL
, 0x8f45fd19UL
, 0x814cf012UL
,
790 0x3bab6bcbUL
, 0x35a266c0UL
, 0x27b971ddUL
, 0x29b07cd6UL
, 0x038f5fe7UL
, 0x0d8652ecUL
, 0x1f9d45f1UL
, 0x119448faUL
,
791 0x4be30393UL
, 0x45ea0e98UL
, 0x57f11985UL
, 0x59f8148eUL
, 0x73c737bfUL
, 0x7dce3ab4UL
, 0x6fd52da9UL
, 0x61dc20a2UL
,
792 0xad766df6UL
, 0xa37f60fdUL
, 0xb16477e0UL
, 0xbf6d7aebUL
, 0x955259daUL
, 0x9b5b54d1UL
, 0x894043ccUL
, 0x87494ec7UL
,
793 0xdd3e05aeUL
, 0xd33708a5UL
, 0xc12c1fb8UL
, 0xcf2512b3UL
, 0xe51a3182UL
, 0xeb133c89UL
, 0xf9082b94UL
, 0xf701269fUL
,
794 0x4de6bd46UL
, 0x43efb04dUL
, 0x51f4a750UL
, 0x5ffdaa5bUL
, 0x75c2896aUL
, 0x7bcb8461UL
, 0x69d0937cUL
, 0x67d99e77UL
,
795 0x3daed51eUL
, 0x33a7d815UL
, 0x21bccf08UL
, 0x2fb5c203UL
, 0x058ae132UL
, 0x0b83ec39UL
, 0x1998fb24UL
, 0x1791f62fUL
,
796 0x764dd68dUL
, 0x7844db86UL
, 0x6a5fcc9bUL
, 0x6456c190UL
, 0x4e69e2a1UL
, 0x4060efaaUL
, 0x527bf8b7UL
, 0x5c72f5bcUL
,
797 0x0605bed5UL
, 0x080cb3deUL
, 0x1a17a4c3UL
, 0x141ea9c8UL
, 0x3e218af9UL
, 0x302887f2UL
, 0x223390efUL
, 0x2c3a9de4UL
,
798 0x96dd063dUL
, 0x98d40b36UL
, 0x8acf1c2bUL
, 0x84c61120UL
, 0xaef93211UL
, 0xa0f03f1aUL
, 0xb2eb2807UL
, 0xbce2250cUL
,
799 0xe6956e65UL
, 0xe89c636eUL
, 0xfa877473UL
, 0xf48e7978UL
, 0xdeb15a49UL
, 0xd0b85742UL
, 0xc2a3405fUL
, 0xccaa4d54UL
,
800 0x41ecdaf7UL
, 0x4fe5d7fcUL
, 0x5dfec0e1UL
, 0x53f7cdeaUL
, 0x79c8eedbUL
, 0x77c1e3d0UL
, 0x65daf4cdUL
, 0x6bd3f9c6UL
,
801 0x31a4b2afUL
, 0x3fadbfa4UL
, 0x2db6a8b9UL
, 0x23bfa5b2UL
, 0x09808683UL
, 0x07898b88UL
, 0x15929c95UL
, 0x1b9b919eUL
,
802 0xa17c0a47UL
, 0xaf75074cUL
, 0xbd6e1051UL
, 0xb3671d5aUL
, 0x99583e6bUL
, 0x97513360UL
, 0x854a247dUL
, 0x8b432976UL
,
803 0xd134621fUL
, 0xdf3d6f14UL
, 0xcd267809UL
, 0xc32f7502UL
, 0xe9105633UL
, 0xe7195b38UL
, 0xf5024c25UL
, 0xfb0b412eUL
,
804 0x9ad7618cUL
, 0x94de6c87UL
, 0x86c57b9aUL
, 0x88cc7691UL
, 0xa2f355a0UL
, 0xacfa58abUL
, 0xbee14fb6UL
, 0xb0e842bdUL
,
805 0xea9f09d4UL
, 0xe49604dfUL
, 0xf68d13c2UL
, 0xf8841ec9UL
, 0xd2bb3df8UL
, 0xdcb230f3UL
, 0xcea927eeUL
, 0xc0a02ae5UL
,
806 0x7a47b13cUL
, 0x744ebc37UL
, 0x6655ab2aUL
, 0x685ca621UL
, 0x42638510UL
, 0x4c6a881bUL
, 0x5e719f06UL
, 0x5078920dUL
,
807 0x0a0fd964UL
, 0x0406d46fUL
, 0x161dc372UL
, 0x1814ce79UL
, 0x322bed48UL
, 0x3c22e043UL
, 0x2e39f75eUL
, 0x2030fa55UL
,
808 0xec9ab701UL
, 0xe293ba0aUL
, 0xf088ad17UL
, 0xfe81a01cUL
, 0xd4be832dUL
, 0xdab78e26UL
, 0xc8ac993bUL
, 0xc6a59430UL
,
809 0x9cd2df59UL
, 0x92dbd252UL
, 0x80c0c54fUL
, 0x8ec9c844UL
, 0xa4f6eb75UL
, 0xaaffe67eUL
, 0xb8e4f163UL
, 0xb6edfc68UL
,
810 0x0c0a67b1UL
, 0x02036abaUL
, 0x10187da7UL
, 0x1e1170acUL
, 0x342e539dUL
, 0x3a275e96UL
, 0x283c498bUL
, 0x26354480UL
,
811 0x7c420fe9UL
, 0x724b02e2UL
, 0x605015ffUL
, 0x6e5918f4UL
, 0x44663bc5UL
, 0x4a6f36ceUL
, 0x587421d3UL
, 0x567d2cd8UL
,
812 0x37a10c7aUL
, 0x39a80171UL
, 0x2bb3166cUL
, 0x25ba1b67UL
, 0x0f853856UL
, 0x018c355dUL
, 0x13972240UL
, 0x1d9e2f4bUL
,
813 0x47e96422UL
, 0x49e06929UL
, 0x5bfb7e34UL
, 0x55f2733fUL
, 0x7fcd500eUL
, 0x71c45d05UL
, 0x63df4a18UL
, 0x6dd64713UL
,
814 0xd731dccaUL
, 0xd938d1c1UL
, 0xcb23c6dcUL
, 0xc52acbd7UL
, 0xef15e8e6UL
, 0xe11ce5edUL
, 0xf307f2f0UL
, 0xfd0efffbUL
,
815 0xa779b492UL
, 0xa970b999UL
, 0xbb6bae84UL
, 0xb562a38fUL
, 0x9f5d80beUL
, 0x91548db5UL
, 0x834f9aa8UL
, 0x8d4697a3UL
818 static const ulong32 Tks1
[] = {
819 0x00000000UL
, 0x0b0e090dUL
, 0x161c121aUL
, 0x1d121b17UL
, 0x2c382434UL
, 0x27362d39UL
, 0x3a24362eUL
, 0x312a3f23UL
,
820 0x58704868UL
, 0x537e4165UL
, 0x4e6c5a72UL
, 0x4562537fUL
, 0x74486c5cUL
, 0x7f466551UL
, 0x62547e46UL
, 0x695a774bUL
,
821 0xb0e090d0UL
, 0xbbee99ddUL
, 0xa6fc82caUL
, 0xadf28bc7UL
, 0x9cd8b4e4UL
, 0x97d6bde9UL
, 0x8ac4a6feUL
, 0x81caaff3UL
,
822 0xe890d8b8UL
, 0xe39ed1b5UL
, 0xfe8ccaa2UL
, 0xf582c3afUL
, 0xc4a8fc8cUL
, 0xcfa6f581UL
, 0xd2b4ee96UL
, 0xd9bae79bUL
,
823 0x7bdb3bbbUL
, 0x70d532b6UL
, 0x6dc729a1UL
, 0x66c920acUL
, 0x57e31f8fUL
, 0x5ced1682UL
, 0x41ff0d95UL
, 0x4af10498UL
,
824 0x23ab73d3UL
, 0x28a57adeUL
, 0x35b761c9UL
, 0x3eb968c4UL
, 0x0f9357e7UL
, 0x049d5eeaUL
, 0x198f45fdUL
, 0x12814cf0UL
,
825 0xcb3bab6bUL
, 0xc035a266UL
, 0xdd27b971UL
, 0xd629b07cUL
, 0xe7038f5fUL
, 0xec0d8652UL
, 0xf11f9d45UL
, 0xfa119448UL
,
826 0x934be303UL
, 0x9845ea0eUL
, 0x8557f119UL
, 0x8e59f814UL
, 0xbf73c737UL
, 0xb47dce3aUL
, 0xa96fd52dUL
, 0xa261dc20UL
,
827 0xf6ad766dUL
, 0xfda37f60UL
, 0xe0b16477UL
, 0xebbf6d7aUL
, 0xda955259UL
, 0xd19b5b54UL
, 0xcc894043UL
, 0xc787494eUL
,
828 0xaedd3e05UL
, 0xa5d33708UL
, 0xb8c12c1fUL
, 0xb3cf2512UL
, 0x82e51a31UL
, 0x89eb133cUL
, 0x94f9082bUL
, 0x9ff70126UL
,
829 0x464de6bdUL
, 0x4d43efb0UL
, 0x5051f4a7UL
, 0x5b5ffdaaUL
, 0x6a75c289UL
, 0x617bcb84UL
, 0x7c69d093UL
, 0x7767d99eUL
,
830 0x1e3daed5UL
, 0x1533a7d8UL
, 0x0821bccfUL
, 0x032fb5c2UL
, 0x32058ae1UL
, 0x390b83ecUL
, 0x241998fbUL
, 0x2f1791f6UL
,
831 0x8d764dd6UL
, 0x867844dbUL
, 0x9b6a5fccUL
, 0x906456c1UL
, 0xa14e69e2UL
, 0xaa4060efUL
, 0xb7527bf8UL
, 0xbc5c72f5UL
,
832 0xd50605beUL
, 0xde080cb3UL
, 0xc31a17a4UL
, 0xc8141ea9UL
, 0xf93e218aUL
, 0xf2302887UL
, 0xef223390UL
, 0xe42c3a9dUL
,
833 0x3d96dd06UL
, 0x3698d40bUL
, 0x2b8acf1cUL
, 0x2084c611UL
, 0x11aef932UL
, 0x1aa0f03fUL
, 0x07b2eb28UL
, 0x0cbce225UL
,
834 0x65e6956eUL
, 0x6ee89c63UL
, 0x73fa8774UL
, 0x78f48e79UL
, 0x49deb15aUL
, 0x42d0b857UL
, 0x5fc2a340UL
, 0x54ccaa4dUL
,
835 0xf741ecdaUL
, 0xfc4fe5d7UL
, 0xe15dfec0UL
, 0xea53f7cdUL
, 0xdb79c8eeUL
, 0xd077c1e3UL
, 0xcd65daf4UL
, 0xc66bd3f9UL
,
836 0xaf31a4b2UL
, 0xa43fadbfUL
, 0xb92db6a8UL
, 0xb223bfa5UL
, 0x83098086UL
, 0x8807898bUL
, 0x9515929cUL
, 0x9e1b9b91UL
,
837 0x47a17c0aUL
, 0x4caf7507UL
, 0x51bd6e10UL
, 0x5ab3671dUL
, 0x6b99583eUL
, 0x60975133UL
, 0x7d854a24UL
, 0x768b4329UL
,
838 0x1fd13462UL
, 0x14df3d6fUL
, 0x09cd2678UL
, 0x02c32f75UL
, 0x33e91056UL
, 0x38e7195bUL
, 0x25f5024cUL
, 0x2efb0b41UL
,
839 0x8c9ad761UL
, 0x8794de6cUL
, 0x9a86c57bUL
, 0x9188cc76UL
, 0xa0a2f355UL
, 0xabacfa58UL
, 0xb6bee14fUL
, 0xbdb0e842UL
,
840 0xd4ea9f09UL
, 0xdfe49604UL
, 0xc2f68d13UL
, 0xc9f8841eUL
, 0xf8d2bb3dUL
, 0xf3dcb230UL
, 0xeecea927UL
, 0xe5c0a02aUL
,
841 0x3c7a47b1UL
, 0x37744ebcUL
, 0x2a6655abUL
, 0x21685ca6UL
, 0x10426385UL
, 0x1b4c6a88UL
, 0x065e719fUL
, 0x0d507892UL
,
842 0x640a0fd9UL
, 0x6f0406d4UL
, 0x72161dc3UL
, 0x791814ceUL
, 0x48322bedUL
, 0x433c22e0UL
, 0x5e2e39f7UL
, 0x552030faUL
,
843 0x01ec9ab7UL
, 0x0ae293baUL
, 0x17f088adUL
, 0x1cfe81a0UL
, 0x2dd4be83UL
, 0x26dab78eUL
, 0x3bc8ac99UL
, 0x30c6a594UL
,
844 0x599cd2dfUL
, 0x5292dbd2UL
, 0x4f80c0c5UL
, 0x448ec9c8UL
, 0x75a4f6ebUL
, 0x7eaaffe6UL
, 0x63b8e4f1UL
, 0x68b6edfcUL
,
845 0xb10c0a67UL
, 0xba02036aUL
, 0xa710187dUL
, 0xac1e1170UL
, 0x9d342e53UL
, 0x963a275eUL
, 0x8b283c49UL
, 0x80263544UL
,
846 0xe97c420fUL
, 0xe2724b02UL
, 0xff605015UL
, 0xf46e5918UL
, 0xc544663bUL
, 0xce4a6f36UL
, 0xd3587421UL
, 0xd8567d2cUL
,
847 0x7a37a10cUL
, 0x7139a801UL
, 0x6c2bb316UL
, 0x6725ba1bUL
, 0x560f8538UL
, 0x5d018c35UL
, 0x40139722UL
, 0x4b1d9e2fUL
,
848 0x2247e964UL
, 0x2949e069UL
, 0x345bfb7eUL
, 0x3f55f273UL
, 0x0e7fcd50UL
, 0x0571c45dUL
, 0x1863df4aUL
, 0x136dd647UL
,
849 0xcad731dcUL
, 0xc1d938d1UL
, 0xdccb23c6UL
, 0xd7c52acbUL
, 0xe6ef15e8UL
, 0xede11ce5UL
, 0xf0f307f2UL
, 0xfbfd0effUL
,
850 0x92a779b4UL
, 0x99a970b9UL
, 0x84bb6baeUL
, 0x8fb562a3UL
, 0xbe9f5d80UL
, 0xb591548dUL
, 0xa8834f9aUL
, 0xa38d4697UL
853 static const ulong32 Tks2
[] = {
854 0x00000000UL
, 0x0d0b0e09UL
, 0x1a161c12UL
, 0x171d121bUL
, 0x342c3824UL
, 0x3927362dUL
, 0x2e3a2436UL
, 0x23312a3fUL
,
855 0x68587048UL
, 0x65537e41UL
, 0x724e6c5aUL
, 0x7f456253UL
, 0x5c74486cUL
, 0x517f4665UL
, 0x4662547eUL
, 0x4b695a77UL
,
856 0xd0b0e090UL
, 0xddbbee99UL
, 0xcaa6fc82UL
, 0xc7adf28bUL
, 0xe49cd8b4UL
, 0xe997d6bdUL
, 0xfe8ac4a6UL
, 0xf381caafUL
,
857 0xb8e890d8UL
, 0xb5e39ed1UL
, 0xa2fe8ccaUL
, 0xaff582c3UL
, 0x8cc4a8fcUL
, 0x81cfa6f5UL
, 0x96d2b4eeUL
, 0x9bd9bae7UL
,
858 0xbb7bdb3bUL
, 0xb670d532UL
, 0xa16dc729UL
, 0xac66c920UL
, 0x8f57e31fUL
, 0x825ced16UL
, 0x9541ff0dUL
, 0x984af104UL
,
859 0xd323ab73UL
, 0xde28a57aUL
, 0xc935b761UL
, 0xc43eb968UL
, 0xe70f9357UL
, 0xea049d5eUL
, 0xfd198f45UL
, 0xf012814cUL
,
860 0x6bcb3babUL
, 0x66c035a2UL
, 0x71dd27b9UL
, 0x7cd629b0UL
, 0x5fe7038fUL
, 0x52ec0d86UL
, 0x45f11f9dUL
, 0x48fa1194UL
,
861 0x03934be3UL
, 0x0e9845eaUL
, 0x198557f1UL
, 0x148e59f8UL
, 0x37bf73c7UL
, 0x3ab47dceUL
, 0x2da96fd5UL
, 0x20a261dcUL
,
862 0x6df6ad76UL
, 0x60fda37fUL
, 0x77e0b164UL
, 0x7aebbf6dUL
, 0x59da9552UL
, 0x54d19b5bUL
, 0x43cc8940UL
, 0x4ec78749UL
,
863 0x05aedd3eUL
, 0x08a5d337UL
, 0x1fb8c12cUL
, 0x12b3cf25UL
, 0x3182e51aUL
, 0x3c89eb13UL
, 0x2b94f908UL
, 0x269ff701UL
,
864 0xbd464de6UL
, 0xb04d43efUL
, 0xa75051f4UL
, 0xaa5b5ffdUL
, 0x896a75c2UL
, 0x84617bcbUL
, 0x937c69d0UL
, 0x9e7767d9UL
,
865 0xd51e3daeUL
, 0xd81533a7UL
, 0xcf0821bcUL
, 0xc2032fb5UL
, 0xe132058aUL
, 0xec390b83UL
, 0xfb241998UL
, 0xf62f1791UL
,
866 0xd68d764dUL
, 0xdb867844UL
, 0xcc9b6a5fUL
, 0xc1906456UL
, 0xe2a14e69UL
, 0xefaa4060UL
, 0xf8b7527bUL
, 0xf5bc5c72UL
,
867 0xbed50605UL
, 0xb3de080cUL
, 0xa4c31a17UL
, 0xa9c8141eUL
, 0x8af93e21UL
, 0x87f23028UL
, 0x90ef2233UL
, 0x9de42c3aUL
,
868 0x063d96ddUL
, 0x0b3698d4UL
, 0x1c2b8acfUL
, 0x112084c6UL
, 0x3211aef9UL
, 0x3f1aa0f0UL
, 0x2807b2ebUL
, 0x250cbce2UL
,
869 0x6e65e695UL
, 0x636ee89cUL
, 0x7473fa87UL
, 0x7978f48eUL
, 0x5a49deb1UL
, 0x5742d0b8UL
, 0x405fc2a3UL
, 0x4d54ccaaUL
,
870 0xdaf741ecUL
, 0xd7fc4fe5UL
, 0xc0e15dfeUL
, 0xcdea53f7UL
, 0xeedb79c8UL
, 0xe3d077c1UL
, 0xf4cd65daUL
, 0xf9c66bd3UL
,
871 0xb2af31a4UL
, 0xbfa43fadUL
, 0xa8b92db6UL
, 0xa5b223bfUL
, 0x86830980UL
, 0x8b880789UL
, 0x9c951592UL
, 0x919e1b9bUL
,
872 0x0a47a17cUL
, 0x074caf75UL
, 0x1051bd6eUL
, 0x1d5ab367UL
, 0x3e6b9958UL
, 0x33609751UL
, 0x247d854aUL
, 0x29768b43UL
,
873 0x621fd134UL
, 0x6f14df3dUL
, 0x7809cd26UL
, 0x7502c32fUL
, 0x5633e910UL
, 0x5b38e719UL
, 0x4c25f502UL
, 0x412efb0bUL
,
874 0x618c9ad7UL
, 0x6c8794deUL
, 0x7b9a86c5UL
, 0x769188ccUL
, 0x55a0a2f3UL
, 0x58abacfaUL
, 0x4fb6bee1UL
, 0x42bdb0e8UL
,
875 0x09d4ea9fUL
, 0x04dfe496UL
, 0x13c2f68dUL
, 0x1ec9f884UL
, 0x3df8d2bbUL
, 0x30f3dcb2UL
, 0x27eecea9UL
, 0x2ae5c0a0UL
,
876 0xb13c7a47UL
, 0xbc37744eUL
, 0xab2a6655UL
, 0xa621685cUL
, 0x85104263UL
, 0x881b4c6aUL
, 0x9f065e71UL
, 0x920d5078UL
,
877 0xd9640a0fUL
, 0xd46f0406UL
, 0xc372161dUL
, 0xce791814UL
, 0xed48322bUL
, 0xe0433c22UL
, 0xf75e2e39UL
, 0xfa552030UL
,
878 0xb701ec9aUL
, 0xba0ae293UL
, 0xad17f088UL
, 0xa01cfe81UL
, 0x832dd4beUL
, 0x8e26dab7UL
, 0x993bc8acUL
, 0x9430c6a5UL
,
879 0xdf599cd2UL
, 0xd25292dbUL
, 0xc54f80c0UL
, 0xc8448ec9UL
, 0xeb75a4f6UL
, 0xe67eaaffUL
, 0xf163b8e4UL
, 0xfc68b6edUL
,
880 0x67b10c0aUL
, 0x6aba0203UL
, 0x7da71018UL
, 0x70ac1e11UL
, 0x539d342eUL
, 0x5e963a27UL
, 0x498b283cUL
, 0x44802635UL
,
881 0x0fe97c42UL
, 0x02e2724bUL
, 0x15ff6050UL
, 0x18f46e59UL
, 0x3bc54466UL
, 0x36ce4a6fUL
, 0x21d35874UL
, 0x2cd8567dUL
,
882 0x0c7a37a1UL
, 0x017139a8UL
, 0x166c2bb3UL
, 0x1b6725baUL
, 0x38560f85UL
, 0x355d018cUL
, 0x22401397UL
, 0x2f4b1d9eUL
,
883 0x642247e9UL
, 0x692949e0UL
, 0x7e345bfbUL
, 0x733f55f2UL
, 0x500e7fcdUL
, 0x5d0571c4UL
, 0x4a1863dfUL
, 0x47136dd6UL
,
884 0xdccad731UL
, 0xd1c1d938UL
, 0xc6dccb23UL
, 0xcbd7c52aUL
, 0xe8e6ef15UL
, 0xe5ede11cUL
, 0xf2f0f307UL
, 0xfffbfd0eUL
,
885 0xb492a779UL
, 0xb999a970UL
, 0xae84bb6bUL
, 0xa38fb562UL
, 0x80be9f5dUL
, 0x8db59154UL
, 0x9aa8834fUL
, 0x97a38d46UL
888 static const ulong32 Tks3
[] = {
889 0x00000000UL
, 0x090d0b0eUL
, 0x121a161cUL
, 0x1b171d12UL
, 0x24342c38UL
, 0x2d392736UL
, 0x362e3a24UL
, 0x3f23312aUL
,
890 0x48685870UL
, 0x4165537eUL
, 0x5a724e6cUL
, 0x537f4562UL
, 0x6c5c7448UL
, 0x65517f46UL
, 0x7e466254UL
, 0x774b695aUL
,
891 0x90d0b0e0UL
, 0x99ddbbeeUL
, 0x82caa6fcUL
, 0x8bc7adf2UL
, 0xb4e49cd8UL
, 0xbde997d6UL
, 0xa6fe8ac4UL
, 0xaff381caUL
,
892 0xd8b8e890UL
, 0xd1b5e39eUL
, 0xcaa2fe8cUL
, 0xc3aff582UL
, 0xfc8cc4a8UL
, 0xf581cfa6UL
, 0xee96d2b4UL
, 0xe79bd9baUL
,
893 0x3bbb7bdbUL
, 0x32b670d5UL
, 0x29a16dc7UL
, 0x20ac66c9UL
, 0x1f8f57e3UL
, 0x16825cedUL
, 0x0d9541ffUL
, 0x04984af1UL
,
894 0x73d323abUL
, 0x7ade28a5UL
, 0x61c935b7UL
, 0x68c43eb9UL
, 0x57e70f93UL
, 0x5eea049dUL
, 0x45fd198fUL
, 0x4cf01281UL
,
895 0xab6bcb3bUL
, 0xa266c035UL
, 0xb971dd27UL
, 0xb07cd629UL
, 0x8f5fe703UL
, 0x8652ec0dUL
, 0x9d45f11fUL
, 0x9448fa11UL
,
896 0xe303934bUL
, 0xea0e9845UL
, 0xf1198557UL
, 0xf8148e59UL
, 0xc737bf73UL
, 0xce3ab47dUL
, 0xd52da96fUL
, 0xdc20a261UL
,
897 0x766df6adUL
, 0x7f60fda3UL
, 0x6477e0b1UL
, 0x6d7aebbfUL
, 0x5259da95UL
, 0x5b54d19bUL
, 0x4043cc89UL
, 0x494ec787UL
,
898 0x3e05aeddUL
, 0x3708a5d3UL
, 0x2c1fb8c1UL
, 0x2512b3cfUL
, 0x1a3182e5UL
, 0x133c89ebUL
, 0x082b94f9UL
, 0x01269ff7UL
,
899 0xe6bd464dUL
, 0xefb04d43UL
, 0xf4a75051UL
, 0xfdaa5b5fUL
, 0xc2896a75UL
, 0xcb84617bUL
, 0xd0937c69UL
, 0xd99e7767UL
,
900 0xaed51e3dUL
, 0xa7d81533UL
, 0xbccf0821UL
, 0xb5c2032fUL
, 0x8ae13205UL
, 0x83ec390bUL
, 0x98fb2419UL
, 0x91f62f17UL
,
901 0x4dd68d76UL
, 0x44db8678UL
, 0x5fcc9b6aUL
, 0x56c19064UL
, 0x69e2a14eUL
, 0x60efaa40UL
, 0x7bf8b752UL
, 0x72f5bc5cUL
,
902 0x05bed506UL
, 0x0cb3de08UL
, 0x17a4c31aUL
, 0x1ea9c814UL
, 0x218af93eUL
, 0x2887f230UL
, 0x3390ef22UL
, 0x3a9de42cUL
,
903 0xdd063d96UL
, 0xd40b3698UL
, 0xcf1c2b8aUL
, 0xc6112084UL
, 0xf93211aeUL
, 0xf03f1aa0UL
, 0xeb2807b2UL
, 0xe2250cbcUL
,
904 0x956e65e6UL
, 0x9c636ee8UL
, 0x877473faUL
, 0x8e7978f4UL
, 0xb15a49deUL
, 0xb85742d0UL
, 0xa3405fc2UL
, 0xaa4d54ccUL
,
905 0xecdaf741UL
, 0xe5d7fc4fUL
, 0xfec0e15dUL
, 0xf7cdea53UL
, 0xc8eedb79UL
, 0xc1e3d077UL
, 0xdaf4cd65UL
, 0xd3f9c66bUL
,
906 0xa4b2af31UL
, 0xadbfa43fUL
, 0xb6a8b92dUL
, 0xbfa5b223UL
, 0x80868309UL
, 0x898b8807UL
, 0x929c9515UL
, 0x9b919e1bUL
,
907 0x7c0a47a1UL
, 0x75074cafUL
, 0x6e1051bdUL
, 0x671d5ab3UL
, 0x583e6b99UL
, 0x51336097UL
, 0x4a247d85UL
, 0x4329768bUL
,
908 0x34621fd1UL
, 0x3d6f14dfUL
, 0x267809cdUL
, 0x2f7502c3UL
, 0x105633e9UL
, 0x195b38e7UL
, 0x024c25f5UL
, 0x0b412efbUL
,
909 0xd7618c9aUL
, 0xde6c8794UL
, 0xc57b9a86UL
, 0xcc769188UL
, 0xf355a0a2UL
, 0xfa58abacUL
, 0xe14fb6beUL
, 0xe842bdb0UL
,
910 0x9f09d4eaUL
, 0x9604dfe4UL
, 0x8d13c2f6UL
, 0x841ec9f8UL
, 0xbb3df8d2UL
, 0xb230f3dcUL
, 0xa927eeceUL
, 0xa02ae5c0UL
,
911 0x47b13c7aUL
, 0x4ebc3774UL
, 0x55ab2a66UL
, 0x5ca62168UL
, 0x63851042UL
, 0x6a881b4cUL
, 0x719f065eUL
, 0x78920d50UL
,
912 0x0fd9640aUL
, 0x06d46f04UL
, 0x1dc37216UL
, 0x14ce7918UL
, 0x2bed4832UL
, 0x22e0433cUL
, 0x39f75e2eUL
, 0x30fa5520UL
,
913 0x9ab701ecUL
, 0x93ba0ae2UL
, 0x88ad17f0UL
, 0x81a01cfeUL
, 0xbe832dd4UL
, 0xb78e26daUL
, 0xac993bc8UL
, 0xa59430c6UL
,
914 0xd2df599cUL
, 0xdbd25292UL
, 0xc0c54f80UL
, 0xc9c8448eUL
, 0xf6eb75a4UL
, 0xffe67eaaUL
, 0xe4f163b8UL
, 0xedfc68b6UL
,
915 0x0a67b10cUL
, 0x036aba02UL
, 0x187da710UL
, 0x1170ac1eUL
, 0x2e539d34UL
, 0x275e963aUL
, 0x3c498b28UL
, 0x35448026UL
,
916 0x420fe97cUL
, 0x4b02e272UL
, 0x5015ff60UL
, 0x5918f46eUL
, 0x663bc544UL
, 0x6f36ce4aUL
, 0x7421d358UL
, 0x7d2cd856UL
,
917 0xa10c7a37UL
, 0xa8017139UL
, 0xb3166c2bUL
, 0xba1b6725UL
, 0x8538560fUL
, 0x8c355d01UL
, 0x97224013UL
, 0x9e2f4b1dUL
,
918 0xe9642247UL
, 0xe0692949UL
, 0xfb7e345bUL
, 0xf2733f55UL
, 0xcd500e7fUL
, 0xc45d0571UL
, 0xdf4a1863UL
, 0xd647136dUL
,
919 0x31dccad7UL
, 0x38d1c1d9UL
, 0x23c6dccbUL
, 0x2acbd7c5UL
, 0x15e8e6efUL
, 0x1ce5ede1UL
, 0x07f2f0f3UL
, 0x0efffbfdUL
,
920 0x79b492a7UL
, 0x70b999a9UL
, 0x6bae84bbUL
, 0x62a38fb5UL
, 0x5d80be9fUL
, 0x548db591UL
, 0x4f9aa883UL
, 0x4697a38dUL
923 static const ulong32 rcon
[] = {
924 0x01000000UL
, 0x02000000UL
, 0x04000000UL
, 0x08000000UL
,
925 0x10000000UL
, 0x20000000UL
, 0x40000000UL
, 0x80000000UL
,
926 0x1B000000UL
, 0x36000000UL
929 static ulong32
setup_mix(ulong32 temp
)
931 return (Te4_3
[byte(temp
, 2)]) ^
932 (Te4_2
[byte(temp
, 1)]) ^
933 (Te4_1
[byte(temp
, 0)]) ^
934 (Te4_0
[byte(temp
, 3)]);
937 int aes_setup(const unsigned char *key
, int keylen
, int rounds
, aes_key
*skey
)
943 if (keylen
!= 16 && keylen
!= 24 && keylen
!= 32) {
944 return CRYPT_INVALID_KEYSIZE
;
947 if (rounds
!= 0 && rounds
!= (10 + ((keylen
/8)-2)*2)) {
948 return CRYPT_INVALID_ROUNDS
;
951 skey
->Nr
= 10 + ((keylen
/8)-2)*2;
953 /* setup the forward key */
956 LOAD32H(rk
[0], key
);
957 LOAD32H(rk
[1], key
+ 4);
958 LOAD32H(rk
[2], key
+ 8);
959 LOAD32H(rk
[3], key
+ 12);
964 rk
[4] = rk
[0] ^ setup_mix(temp
) ^ rcon
[i
];
965 rk
[5] = rk
[1] ^ rk
[4];
966 rk
[6] = rk
[2] ^ rk
[5];
967 rk
[7] = rk
[3] ^ rk
[6];
973 } else if (keylen
== 24) {
975 LOAD32H(rk
[4], key
+ 16);
976 LOAD32H(rk
[5], key
+ 20);
979 rk
[ 6] = rk
[ 0] ^ setup_mix(temp
) ^ rcon
[i
];
980 rk
[ 7] = rk
[ 1] ^ rk
[ 6];
981 rk
[ 8] = rk
[ 2] ^ rk
[ 7];
982 rk
[ 9] = rk
[ 3] ^ rk
[ 8];
986 rk
[10] = rk
[ 4] ^ rk
[ 9];
987 rk
[11] = rk
[ 5] ^ rk
[10];
990 } else if (keylen
== 32) {
992 LOAD32H(rk
[4], key
+ 16);
993 LOAD32H(rk
[5], key
+ 20);
994 LOAD32H(rk
[6], key
+ 24);
995 LOAD32H(rk
[7], key
+ 28);
998 rk
[ 8] = rk
[ 0] ^ setup_mix(temp
) ^ rcon
[i
];
999 rk
[ 9] = rk
[ 1] ^ rk
[ 8];
1000 rk
[10] = rk
[ 2] ^ rk
[ 9];
1001 rk
[11] = rk
[ 3] ^ rk
[10];
1006 rk
[12] = rk
[ 4] ^ setup_mix(ROR(temp
, 8));
1007 rk
[13] = rk
[ 5] ^ rk
[12];
1008 rk
[14] = rk
[ 6] ^ rk
[13];
1009 rk
[15] = rk
[ 7] ^ rk
[14];
1017 rrk
= skey
->eK
+ j
- 4;
1025 for (i
= 1; i
< skey
->Nr
; i
++) {
1030 Tks0
[byte(temp
, 3)] ^
1031 Tks1
[byte(temp
, 2)] ^
1032 Tks2
[byte(temp
, 1)] ^
1033 Tks3
[byte(temp
, 0)];
1036 Tks0
[byte(temp
, 3)] ^
1037 Tks1
[byte(temp
, 2)] ^
1038 Tks2
[byte(temp
, 1)] ^
1039 Tks3
[byte(temp
, 0)];
1042 Tks0
[byte(temp
, 3)] ^
1043 Tks1
[byte(temp
, 2)] ^
1044 Tks2
[byte(temp
, 1)] ^
1045 Tks3
[byte(temp
, 0)];
1048 Tks0
[byte(temp
, 3)] ^
1049 Tks1
[byte(temp
, 2)] ^
1050 Tks2
[byte(temp
, 1)] ^
1051 Tks3
[byte(temp
, 0)];
1064 void aes_ecb_encrypt(const unsigned char *pt
, unsigned char *ct
, aes_key
*skey
)
1066 ulong32 s0
, s1
, s2
, s3
, t0
, t1
, t2
, t3
, *rk
;
1072 LOAD32H(s0
, pt
); s0
^= rk
[0];
1073 LOAD32H(s1
, pt
+ 4); s1
^= rk
[1];
1074 LOAD32H(s2
, pt
+ 8); s2
^= rk
[2];
1075 LOAD32H(s3
, pt
+ 12); s3
^= rk
[3];
1136 (Te4_3
[byte(t0
, 3)]) ^
1137 (Te4_2
[byte(t1
, 2)]) ^
1138 (Te4_1
[byte(t2
, 1)]) ^
1139 (Te4_0
[byte(t3
, 0)]) ^
1143 (Te4_3
[byte(t1
, 3)]) ^
1144 (Te4_2
[byte(t2
, 2)]) ^
1145 (Te4_1
[byte(t3
, 1)]) ^
1146 (Te4_0
[byte(t0
, 0)]) ^
1150 (Te4_3
[byte(t2
, 3)]) ^
1151 (Te4_2
[byte(t3
, 2)]) ^
1152 (Te4_1
[byte(t0
, 1)]) ^
1153 (Te4_0
[byte(t1
, 0)]) ^
1157 (Te4_3
[byte(t3
, 3)]) ^
1158 (Te4_2
[byte(t0
, 2)]) ^
1159 (Te4_1
[byte(t1
, 1)]) ^
1160 (Te4_0
[byte(t2
, 0)]) ^
1162 STORE32H(s3
, ct
+12);
1165 void aes_ecb_decrypt(const unsigned char *ct
, unsigned char *pt
, aes_key
*skey
)
1167 ulong32 s0
, s1
, s2
, s3
, t0
, t1
, t2
, t3
, *rk
;
1173 LOAD32H(s0
, ct
); s0
^= rk
[0];
1174 LOAD32H(s1
, ct
+ 4); s1
^= rk
[1];
1175 LOAD32H(s2
, ct
+ 8); s2
^= rk
[2];
1176 LOAD32H(s3
, ct
+ 12); s3
^= rk
[3];
1239 (Td4
[byte(t0
, 3)] & 0xff000000) ^
1240 (Td4
[byte(t3
, 2)] & 0x00ff0000) ^
1241 (Td4
[byte(t2
, 1)] & 0x0000ff00) ^
1242 (Td4
[byte(t1
, 0)] & 0x000000ff) ^
1246 (Td4
[byte(t1
, 3)] & 0xff000000) ^
1247 (Td4
[byte(t0
, 2)] & 0x00ff0000) ^
1248 (Td4
[byte(t3
, 1)] & 0x0000ff00) ^
1249 (Td4
[byte(t2
, 0)] & 0x000000ff) ^
1253 (Td4
[byte(t2
, 3)] & 0xff000000) ^
1254 (Td4
[byte(t1
, 2)] & 0x00ff0000) ^
1255 (Td4
[byte(t0
, 1)] & 0x0000ff00) ^
1256 (Td4
[byte(t3
, 0)] & 0x000000ff) ^
1260 (Td4
[byte(t3
, 3)] & 0xff000000) ^
1261 (Td4
[byte(t2
, 2)] & 0x00ff0000) ^
1262 (Td4
[byte(t1
, 1)] & 0x0000ff00) ^
1263 (Td4
[byte(t0
, 0)] & 0x000000ff) ^
1265 STORE32H(s3
, pt
+12);