2 * Authors.....: Jens Steube <jens.steube@gmail.com>
3 * Gabriele Gristina <matrix@hashcat.net>
4 * magnum <john.magnum@hushmail.com>
13 #include "include/constants.h"
14 #include "include/kernel_vendor.h"
21 #include "include/kernel_functions.c"
22 #include "OpenCL/types_ocl.c"
23 #include "OpenCL/common.c"
24 #include "include/rp_kernel.h"
25 #include "OpenCL/rp.c"
26 #include "OpenCL/simd.c"
31 #define BOX(S,n,i) (S)[(n)][(i)]
33 #define BOX(S,n,i) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1])
35 #define BOX(S,n,i) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3])
37 #define BOX(S,n,i) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7])
39 #define BOX(S,n,i) (u32x) ((S)[(n)][(i).s0], (S)[(n)][(i).s1], (S)[(n)][(i).s2], (S)[(n)][(i).s3], (S)[(n)][(i).s4], (S)[(n)][(i).s5], (S)[(n)][(i).s6], (S)[(n)][(i).s7], (S)[(n)][(i).s8], (S)[(n)][(i).s9], (S)[(n)][(i).sa], (S)[(n)][(i).sb], (S)[(n)][(i).sc], (S)[(n)][(i).sd], (S)[(n)][(i).se], (S)[(n)][(i).sf])
42 __constant u32 Ch[8][256] =
45 0x18186018, 0x23238c23, 0xc6c63fc6, 0xe8e887e8,
46 0x87872687, 0xb8b8dab8, 0x01010401, 0x4f4f214f,
47 0x3636d836, 0xa6a6a2a6, 0xd2d26fd2, 0xf5f5f3f5,
48 0x7979f979, 0x6f6fa16f, 0x91917e91, 0x52525552,
49 0x60609d60, 0xbcbccabc, 0x9b9b569b, 0x8e8e028e,
50 0xa3a3b6a3, 0x0c0c300c, 0x7b7bf17b, 0x3535d435,
51 0x1d1d741d, 0xe0e0a7e0, 0xd7d77bd7, 0xc2c22fc2,
52 0x2e2eb82e, 0x4b4b314b, 0xfefedffe, 0x57574157,
53 0x15155415, 0x7777c177, 0x3737dc37, 0xe5e5b3e5,
54 0x9f9f469f, 0xf0f0e7f0, 0x4a4a354a, 0xdada4fda,
55 0x58587d58, 0xc9c903c9, 0x2929a429, 0x0a0a280a,
56 0xb1b1feb1, 0xa0a0baa0, 0x6b6bb16b, 0x85852e85,
57 0xbdbdcebd, 0x5d5d695d, 0x10104010, 0xf4f4f7f4,
58 0xcbcb0bcb, 0x3e3ef83e, 0x05051405, 0x67678167,
59 0xe4e4b7e4, 0x27279c27, 0x41411941, 0x8b8b168b,
60 0xa7a7a6a7, 0x7d7de97d, 0x95956e95, 0xd8d847d8,
61 0xfbfbcbfb, 0xeeee9fee, 0x7c7ced7c, 0x66668566,
62 0xdddd53dd, 0x17175c17, 0x47470147, 0x9e9e429e,
63 0xcaca0fca, 0x2d2db42d, 0xbfbfc6bf, 0x07071c07,
64 0xadad8ead, 0x5a5a755a, 0x83833683, 0x3333cc33,
65 0x63639163, 0x02020802, 0xaaaa92aa, 0x7171d971,
66 0xc8c807c8, 0x19196419, 0x49493949, 0xd9d943d9,
67 0xf2f2eff2, 0xe3e3abe3, 0x5b5b715b, 0x88881a88,
68 0x9a9a529a, 0x26269826, 0x3232c832, 0xb0b0fab0,
69 0xe9e983e9, 0x0f0f3c0f, 0xd5d573d5, 0x80803a80,
70 0xbebec2be, 0xcdcd13cd, 0x3434d034, 0x48483d48,
71 0xffffdbff, 0x7a7af57a, 0x90907a90, 0x5f5f615f,
72 0x20208020, 0x6868bd68, 0x1a1a681a, 0xaeae82ae,
73 0xb4b4eab4, 0x54544d54, 0x93937693, 0x22228822,
74 0x64648d64, 0xf1f1e3f1, 0x7373d173, 0x12124812,
75 0x40401d40, 0x08082008, 0xc3c32bc3, 0xecec97ec,
76 0xdbdb4bdb, 0xa1a1bea1, 0x8d8d0e8d, 0x3d3df43d,
77 0x97976697, 0x00000000, 0xcfcf1bcf, 0x2b2bac2b,
78 0x7676c576, 0x82823282, 0xd6d67fd6, 0x1b1b6c1b,
79 0xb5b5eeb5, 0xafaf86af, 0x6a6ab56a, 0x50505d50,
80 0x45450945, 0xf3f3ebf3, 0x3030c030, 0xefef9bef,
81 0x3f3ffc3f, 0x55554955, 0xa2a2b2a2, 0xeaea8fea,
82 0x65658965, 0xbabad2ba, 0x2f2fbc2f, 0xc0c027c0,
83 0xdede5fde, 0x1c1c701c, 0xfdfdd3fd, 0x4d4d294d,
84 0x92927292, 0x7575c975, 0x06061806, 0x8a8a128a,
85 0xb2b2f2b2, 0xe6e6bfe6, 0x0e0e380e, 0x1f1f7c1f,
86 0x62629562, 0xd4d477d4, 0xa8a89aa8, 0x96966296,
87 0xf9f9c3f9, 0xc5c533c5, 0x25259425, 0x59597959,
88 0x84842a84, 0x7272d572, 0x3939e439, 0x4c4c2d4c,
89 0x5e5e655e, 0x7878fd78, 0x3838e038, 0x8c8c0a8c,
90 0xd1d163d1, 0xa5a5aea5, 0xe2e2afe2, 0x61619961,
91 0xb3b3f6b3, 0x21218421, 0x9c9c4a9c, 0x1e1e781e,
92 0x43431143, 0xc7c73bc7, 0xfcfcd7fc, 0x04041004,
93 0x51515951, 0x99995e99, 0x6d6da96d, 0x0d0d340d,
94 0xfafacffa, 0xdfdf5bdf, 0x7e7ee57e, 0x24249024,
95 0x3b3bec3b, 0xabab96ab, 0xcece1fce, 0x11114411,
96 0x8f8f068f, 0x4e4e254e, 0xb7b7e6b7, 0xebeb8beb,
97 0x3c3cf03c, 0x81813e81, 0x94946a94, 0xf7f7fbf7,
98 0xb9b9deb9, 0x13134c13, 0x2c2cb02c, 0xd3d36bd3,
99 0xe7e7bbe7, 0x6e6ea56e, 0xc4c437c4, 0x03030c03,
100 0x56564556, 0x44440d44, 0x7f7fe17f, 0xa9a99ea9,
101 0x2a2aa82a, 0xbbbbd6bb, 0xc1c123c1, 0x53535153,
102 0xdcdc57dc, 0x0b0b2c0b, 0x9d9d4e9d, 0x6c6cad6c,
103 0x3131c431, 0x7474cd74, 0xf6f6fff6, 0x46460546,
104 0xacac8aac, 0x89891e89, 0x14145014, 0xe1e1a3e1,
105 0x16165816, 0x3a3ae83a, 0x6969b969, 0x09092409,
106 0x7070dd70, 0xb6b6e2b6, 0xd0d067d0, 0xeded93ed,
107 0xcccc17cc, 0x42421542, 0x98985a98, 0xa4a4aaa4,
108 0x2828a028, 0x5c5c6d5c, 0xf8f8c7f8, 0x86862286,
111 0xd8181860, 0x2623238c, 0xb8c6c63f, 0xfbe8e887,
112 0xcb878726, 0x11b8b8da, 0x09010104, 0x0d4f4f21,
113 0x9b3636d8, 0xffa6a6a2, 0x0cd2d26f, 0x0ef5f5f3,
114 0x967979f9, 0x306f6fa1, 0x6d91917e, 0xf8525255,
115 0x4760609d, 0x35bcbcca, 0x379b9b56, 0x8a8e8e02,
116 0xd2a3a3b6, 0x6c0c0c30, 0x847b7bf1, 0x803535d4,
117 0xf51d1d74, 0xb3e0e0a7, 0x21d7d77b, 0x9cc2c22f,
118 0x432e2eb8, 0x294b4b31, 0x5dfefedf, 0xd5575741,
119 0xbd151554, 0xe87777c1, 0x923737dc, 0x9ee5e5b3,
120 0x139f9f46, 0x23f0f0e7, 0x204a4a35, 0x44dada4f,
121 0xa258587d, 0xcfc9c903, 0x7c2929a4, 0x5a0a0a28,
122 0x50b1b1fe, 0xc9a0a0ba, 0x146b6bb1, 0xd985852e,
123 0x3cbdbdce, 0x8f5d5d69, 0x90101040, 0x07f4f4f7,
124 0xddcbcb0b, 0xd33e3ef8, 0x2d050514, 0x78676781,
125 0x97e4e4b7, 0x0227279c, 0x73414119, 0xa78b8b16,
126 0xf6a7a7a6, 0xb27d7de9, 0x4995956e, 0x56d8d847,
127 0x70fbfbcb, 0xcdeeee9f, 0xbb7c7ced, 0x71666685,
128 0x7bdddd53, 0xaf17175c, 0x45474701, 0x1a9e9e42,
129 0xd4caca0f, 0x582d2db4, 0x2ebfbfc6, 0x3f07071c,
130 0xacadad8e, 0xb05a5a75, 0xef838336, 0xb63333cc,
131 0x5c636391, 0x12020208, 0x93aaaa92, 0xde7171d9,
132 0xc6c8c807, 0xd1191964, 0x3b494939, 0x5fd9d943,
133 0x31f2f2ef, 0xa8e3e3ab, 0xb95b5b71, 0xbc88881a,
134 0x3e9a9a52, 0x0b262698, 0xbf3232c8, 0x59b0b0fa,
135 0xf2e9e983, 0x770f0f3c, 0x33d5d573, 0xf480803a,
136 0x27bebec2, 0xebcdcd13, 0x893434d0, 0x3248483d,
137 0x54ffffdb, 0x8d7a7af5, 0x6490907a, 0x9d5f5f61,
138 0x3d202080, 0x0f6868bd, 0xca1a1a68, 0xb7aeae82,
139 0x7db4b4ea, 0xce54544d, 0x7f939376, 0x2f222288,
140 0x6364648d, 0x2af1f1e3, 0xcc7373d1, 0x82121248,
141 0x7a40401d, 0x48080820, 0x95c3c32b, 0xdfecec97,
142 0x4ddbdb4b, 0xc0a1a1be, 0x918d8d0e, 0xc83d3df4,
143 0x5b979766, 0x00000000, 0xf9cfcf1b, 0x6e2b2bac,
144 0xe17676c5, 0xe6828232, 0x28d6d67f, 0xc31b1b6c,
145 0x74b5b5ee, 0xbeafaf86, 0x1d6a6ab5, 0xea50505d,
146 0x57454509, 0x38f3f3eb, 0xad3030c0, 0xc4efef9b,
147 0xda3f3ffc, 0xc7555549, 0xdba2a2b2, 0xe9eaea8f,
148 0x6a656589, 0x03babad2, 0x4a2f2fbc, 0x8ec0c027,
149 0x60dede5f, 0xfc1c1c70, 0x46fdfdd3, 0x1f4d4d29,
150 0x76929272, 0xfa7575c9, 0x36060618, 0xae8a8a12,
151 0x4bb2b2f2, 0x85e6e6bf, 0x7e0e0e38, 0xe71f1f7c,
152 0x55626295, 0x3ad4d477, 0x81a8a89a, 0x52969662,
153 0x62f9f9c3, 0xa3c5c533, 0x10252594, 0xab595979,
154 0xd084842a, 0xc57272d5, 0xec3939e4, 0x164c4c2d,
155 0x945e5e65, 0x9f7878fd, 0xe53838e0, 0x988c8c0a,
156 0x17d1d163, 0xe4a5a5ae, 0xa1e2e2af, 0x4e616199,
157 0x42b3b3f6, 0x34212184, 0x089c9c4a, 0xee1e1e78,
158 0x61434311, 0xb1c7c73b, 0x4ffcfcd7, 0x24040410,
159 0xe3515159, 0x2599995e, 0x226d6da9, 0x650d0d34,
160 0x79fafacf, 0x69dfdf5b, 0xa97e7ee5, 0x19242490,
161 0xfe3b3bec, 0x9aabab96, 0xf0cece1f, 0x99111144,
162 0x838f8f06, 0x044e4e25, 0x66b7b7e6, 0xe0ebeb8b,
163 0xc13c3cf0, 0xfd81813e, 0x4094946a, 0x1cf7f7fb,
164 0x18b9b9de, 0x8b13134c, 0x512c2cb0, 0x05d3d36b,
165 0x8ce7e7bb, 0x396e6ea5, 0xaac4c437, 0x1b03030c,
166 0xdc565645, 0x5e44440d, 0xa07f7fe1, 0x88a9a99e,
167 0x672a2aa8, 0x0abbbbd6, 0x87c1c123, 0xf1535351,
168 0x72dcdc57, 0x530b0b2c, 0x019d9d4e, 0x2b6c6cad,
169 0xa43131c4, 0xf37474cd, 0x15f6f6ff, 0x4c464605,
170 0xa5acac8a, 0xb589891e, 0xb4141450, 0xbae1e1a3,
171 0xa6161658, 0xf73a3ae8, 0x066969b9, 0x41090924,
172 0xd77070dd, 0x6fb6b6e2, 0x1ed0d067, 0xd6eded93,
173 0xe2cccc17, 0x68424215, 0x2c98985a, 0xeda4a4aa,
174 0x752828a0, 0x865c5c6d, 0x6bf8f8c7, 0xc2868622,
177 0x30d81818, 0x46262323, 0x91b8c6c6, 0xcdfbe8e8,
178 0x13cb8787, 0x6d11b8b8, 0x02090101, 0x9e0d4f4f,
179 0x6c9b3636, 0x51ffa6a6, 0xb90cd2d2, 0xf70ef5f5,
180 0xf2967979, 0xde306f6f, 0x3f6d9191, 0xa4f85252,
181 0xc0476060, 0x6535bcbc, 0x2b379b9b, 0x018a8e8e,
182 0x5bd2a3a3, 0x186c0c0c, 0xf6847b7b, 0x6a803535,
183 0x3af51d1d, 0xddb3e0e0, 0xb321d7d7, 0x999cc2c2,
184 0x5c432e2e, 0x96294b4b, 0xe15dfefe, 0xaed55757,
185 0x2abd1515, 0xeee87777, 0x6e923737, 0xd79ee5e5,
186 0x23139f9f, 0xfd23f0f0, 0x94204a4a, 0xa944dada,
187 0xb0a25858, 0x8fcfc9c9, 0x527c2929, 0x145a0a0a,
188 0x7f50b1b1, 0x5dc9a0a0, 0xd6146b6b, 0x17d98585,
189 0x673cbdbd, 0xba8f5d5d, 0x20901010, 0xf507f4f4,
190 0x8bddcbcb, 0x7cd33e3e, 0x0a2d0505, 0xce786767,
191 0xd597e4e4, 0x4e022727, 0x82734141, 0x0ba78b8b,
192 0x53f6a7a7, 0xfab27d7d, 0x37499595, 0xad56d8d8,
193 0xeb70fbfb, 0xc1cdeeee, 0xf8bb7c7c, 0xcc716666,
194 0xa77bdddd, 0x2eaf1717, 0x8e454747, 0x211a9e9e,
195 0x89d4caca, 0x5a582d2d, 0x632ebfbf, 0x0e3f0707,
196 0x47acadad, 0xb4b05a5a, 0x1bef8383, 0x66b63333,
197 0xc65c6363, 0x04120202, 0x4993aaaa, 0xe2de7171,
198 0x8dc6c8c8, 0x32d11919, 0x923b4949, 0xaf5fd9d9,
199 0xf931f2f2, 0xdba8e3e3, 0xb6b95b5b, 0x0dbc8888,
200 0x293e9a9a, 0x4c0b2626, 0x64bf3232, 0x7d59b0b0,
201 0xcff2e9e9, 0x1e770f0f, 0xb733d5d5, 0x1df48080,
202 0x6127bebe, 0x87ebcdcd, 0x68893434, 0x90324848,
203 0xe354ffff, 0xf48d7a7a, 0x3d649090, 0xbe9d5f5f,
204 0x403d2020, 0xd00f6868, 0x34ca1a1a, 0x41b7aeae,
205 0x757db4b4, 0xa8ce5454, 0x3b7f9393, 0x442f2222,
206 0xc8636464, 0xff2af1f1, 0xe6cc7373, 0x24821212,
207 0x807a4040, 0x10480808, 0x9b95c3c3, 0xc5dfecec,
208 0xab4ddbdb, 0x5fc0a1a1, 0x07918d8d, 0x7ac83d3d,
209 0x335b9797, 0x00000000, 0x83f9cfcf, 0x566e2b2b,
210 0xece17676, 0x19e68282, 0xb128d6d6, 0x36c31b1b,
211 0x7774b5b5, 0x43beafaf, 0xd41d6a6a, 0xa0ea5050,
212 0x8a574545, 0xfb38f3f3, 0x60ad3030, 0xc3c4efef,
213 0x7eda3f3f, 0xaac75555, 0x59dba2a2, 0xc9e9eaea,
214 0xca6a6565, 0x6903baba, 0x5e4a2f2f, 0x9d8ec0c0,
215 0xa160dede, 0x38fc1c1c, 0xe746fdfd, 0x9a1f4d4d,
216 0x39769292, 0xeafa7575, 0x0c360606, 0x09ae8a8a,
217 0x794bb2b2, 0xd185e6e6, 0x1c7e0e0e, 0x3ee71f1f,
218 0xc4556262, 0xb53ad4d4, 0x4d81a8a8, 0x31529696,
219 0xef62f9f9, 0x97a3c5c5, 0x4a102525, 0xb2ab5959,
220 0x15d08484, 0xe4c57272, 0x72ec3939, 0x98164c4c,
221 0xbc945e5e, 0xf09f7878, 0x70e53838, 0x05988c8c,
222 0xbf17d1d1, 0x57e4a5a5, 0xd9a1e2e2, 0xc24e6161,
223 0x7b42b3b3, 0x42342121, 0x25089c9c, 0x3cee1e1e,
224 0x86614343, 0x93b1c7c7, 0xe54ffcfc, 0x08240404,
225 0xa2e35151, 0x2f259999, 0xda226d6d, 0x1a650d0d,
226 0xe979fafa, 0xa369dfdf, 0xfca97e7e, 0x48192424,
227 0x76fe3b3b, 0x4b9aabab, 0x81f0cece, 0x22991111,
228 0x03838f8f, 0x9c044e4e, 0x7366b7b7, 0xcbe0ebeb,
229 0x78c13c3c, 0x1ffd8181, 0x35409494, 0xf31cf7f7,
230 0x6f18b9b9, 0x268b1313, 0x58512c2c, 0xbb05d3d3,
231 0xd38ce7e7, 0xdc396e6e, 0x95aac4c4, 0x061b0303,
232 0xacdc5656, 0x885e4444, 0xfea07f7f, 0x4f88a9a9,
233 0x54672a2a, 0x6b0abbbb, 0x9f87c1c1, 0xa6f15353,
234 0xa572dcdc, 0x16530b0b, 0x27019d9d, 0xd82b6c6c,
235 0x62a43131, 0xe8f37474, 0xf115f6f6, 0x8c4c4646,
236 0x45a5acac, 0x0fb58989, 0x28b41414, 0xdfbae1e1,
237 0x2ca61616, 0x74f73a3a, 0xd2066969, 0x12410909,
238 0xe0d77070, 0x716fb6b6, 0xbd1ed0d0, 0xc7d6eded,
239 0x85e2cccc, 0x84684242, 0x2d2c9898, 0x55eda4a4,
240 0x50752828, 0xb8865c5c, 0xed6bf8f8, 0x11c28686,
243 0x7830d818, 0xaf462623, 0xf991b8c6, 0x6fcdfbe8,
244 0xa113cb87, 0x626d11b8, 0x05020901, 0x6e9e0d4f,
245 0xee6c9b36, 0x0451ffa6, 0xbdb90cd2, 0x06f70ef5,
246 0x80f29679, 0xcede306f, 0xef3f6d91, 0x07a4f852,
247 0xfdc04760, 0x766535bc, 0xcd2b379b, 0x8c018a8e,
248 0x155bd2a3, 0x3c186c0c, 0x8af6847b, 0xe16a8035,
249 0x693af51d, 0x47ddb3e0, 0xacb321d7, 0xed999cc2,
250 0x965c432e, 0x7a96294b, 0x21e15dfe, 0x16aed557,
251 0x412abd15, 0xb6eee877, 0xeb6e9237, 0x56d79ee5,
252 0xd923139f, 0x17fd23f0, 0x7f94204a, 0x95a944da,
253 0x25b0a258, 0xca8fcfc9, 0x8d527c29, 0x22145a0a,
254 0x4f7f50b1, 0x1a5dc9a0, 0xdad6146b, 0xab17d985,
255 0x73673cbd, 0x34ba8f5d, 0x50209010, 0x03f507f4,
256 0xc08bddcb, 0xc67cd33e, 0x110a2d05, 0xe6ce7867,
257 0x53d597e4, 0xbb4e0227, 0x58827341, 0x9d0ba78b,
258 0x0153f6a7, 0x94fab27d, 0xfb374995, 0x9fad56d8,
259 0x30eb70fb, 0x71c1cdee, 0x91f8bb7c, 0xe3cc7166,
260 0x8ea77bdd, 0x4b2eaf17, 0x468e4547, 0xdc211a9e,
261 0xc589d4ca, 0x995a582d, 0x79632ebf, 0x1b0e3f07,
262 0x2347acad, 0x2fb4b05a, 0xb51bef83, 0xff66b633,
263 0xf2c65c63, 0x0a041202, 0x384993aa, 0xa8e2de71,
264 0xcf8dc6c8, 0x7d32d119, 0x70923b49, 0x9aaf5fd9,
265 0x1df931f2, 0x48dba8e3, 0x2ab6b95b, 0x920dbc88,
266 0xc8293e9a, 0xbe4c0b26, 0xfa64bf32, 0x4a7d59b0,
267 0x6acff2e9, 0x331e770f, 0xa6b733d5, 0xba1df480,
268 0x7c6127be, 0xde87ebcd, 0xe4688934, 0x75903248,
269 0x24e354ff, 0x8ff48d7a, 0xea3d6490, 0x3ebe9d5f,
270 0xa0403d20, 0xd5d00f68, 0x7234ca1a, 0x2c41b7ae,
271 0x5e757db4, 0x19a8ce54, 0xe53b7f93, 0xaa442f22,
272 0xe9c86364, 0x12ff2af1, 0xa2e6cc73, 0x5a248212,
273 0x5d807a40, 0x28104808, 0xe89b95c3, 0x7bc5dfec,
274 0x90ab4ddb, 0x1f5fc0a1, 0x8307918d, 0xc97ac83d,
275 0xf1335b97, 0x00000000, 0xd483f9cf, 0x87566e2b,
276 0xb3ece176, 0xb019e682, 0xa9b128d6, 0x7736c31b,
277 0x5b7774b5, 0x2943beaf, 0xdfd41d6a, 0x0da0ea50,
278 0x4c8a5745, 0x18fb38f3, 0xf060ad30, 0x74c3c4ef,
279 0xc37eda3f, 0x1caac755, 0x1059dba2, 0x65c9e9ea,
280 0xecca6a65, 0x686903ba, 0x935e4a2f, 0xe79d8ec0,
281 0x81a160de, 0x6c38fc1c, 0x2ee746fd, 0x649a1f4d,
282 0xe0397692, 0xbceafa75, 0x1e0c3606, 0x9809ae8a,
283 0x40794bb2, 0x59d185e6, 0x361c7e0e, 0x633ee71f,
284 0xf7c45562, 0xa3b53ad4, 0x324d81a8, 0xf4315296,
285 0x3aef62f9, 0xf697a3c5, 0xb14a1025, 0x20b2ab59,
286 0xae15d084, 0xa7e4c572, 0xdd72ec39, 0x6198164c,
287 0x3bbc945e, 0x85f09f78, 0xd870e538, 0x8605988c,
288 0xb2bf17d1, 0x0b57e4a5, 0x4dd9a1e2, 0xf8c24e61,
289 0x457b42b3, 0xa5423421, 0xd625089c, 0x663cee1e,
290 0x52866143, 0xfc93b1c7, 0x2be54ffc, 0x14082404,
291 0x08a2e351, 0xc72f2599, 0xc4da226d, 0x391a650d,
292 0x35e979fa, 0x84a369df, 0x9bfca97e, 0xb4481924,
293 0xd776fe3b, 0x3d4b9aab, 0xd181f0ce, 0x55229911,
294 0x8903838f, 0x6b9c044e, 0x517366b7, 0x60cbe0eb,
295 0xcc78c13c, 0xbf1ffd81, 0xfe354094, 0x0cf31cf7,
296 0x676f18b9, 0x5f268b13, 0x9c58512c, 0xb8bb05d3,
297 0x5cd38ce7, 0xcbdc396e, 0xf395aac4, 0x0f061b03,
298 0x13acdc56, 0x49885e44, 0x9efea07f, 0x374f88a9,
299 0x8254672a, 0x6d6b0abb, 0xe29f87c1, 0x02a6f153,
300 0x8ba572dc, 0x2716530b, 0xd327019d, 0xc1d82b6c,
301 0xf562a431, 0xb9e8f374, 0x09f115f6, 0x438c4c46,
302 0x2645a5ac, 0x970fb589, 0x4428b414, 0x42dfbae1,
303 0x4e2ca616, 0xd274f73a, 0xd0d20669, 0x2d124109,
304 0xade0d770, 0x54716fb6, 0xb7bd1ed0, 0x7ec7d6ed,
305 0xdb85e2cc, 0x57846842, 0xc22d2c98, 0x0e55eda4,
306 0x88507528, 0x31b8865c, 0x3fed6bf8, 0xa411c286,
309 0xc07830d8, 0x05af4626, 0x7ef991b8, 0x136fcdfb,
310 0x4ca113cb, 0xa9626d11, 0x08050209, 0x426e9e0d,
311 0xadee6c9b, 0x590451ff, 0xdebdb90c, 0xfb06f70e,
312 0xef80f296, 0x5fcede30, 0xfcef3f6d, 0xaa07a4f8,
313 0x27fdc047, 0x89766535, 0xaccd2b37, 0x048c018a,
314 0x71155bd2, 0x603c186c, 0xff8af684, 0xb5e16a80,
315 0xe8693af5, 0x5347ddb3, 0xf6acb321, 0x5eed999c,
316 0x6d965c43, 0x627a9629, 0xa321e15d, 0x8216aed5,
317 0xa8412abd, 0x9fb6eee8, 0xa5eb6e92, 0x7b56d79e,
318 0x8cd92313, 0xd317fd23, 0x6a7f9420, 0x9e95a944,
319 0xfa25b0a2, 0x06ca8fcf, 0x558d527c, 0x5022145a,
320 0xe14f7f50, 0x691a5dc9, 0x7fdad614, 0x5cab17d9,
321 0x8173673c, 0xd234ba8f, 0x80502090, 0xf303f507,
322 0x16c08bdd, 0xedc67cd3, 0x28110a2d, 0x1fe6ce78,
323 0x7353d597, 0x25bb4e02, 0x32588273, 0x2c9d0ba7,
324 0x510153f6, 0xcf94fab2, 0xdcfb3749, 0x8e9fad56,
325 0x8b30eb70, 0x2371c1cd, 0xc791f8bb, 0x17e3cc71,
326 0xa68ea77b, 0xb84b2eaf, 0x02468e45, 0x84dc211a,
327 0x1ec589d4, 0x75995a58, 0x9179632e, 0x381b0e3f,
328 0x012347ac, 0xea2fb4b0, 0x6cb51bef, 0x85ff66b6,
329 0x3ff2c65c, 0x100a0412, 0x39384993, 0xafa8e2de,
330 0x0ecf8dc6, 0xc87d32d1, 0x7270923b, 0x869aaf5f,
331 0xc31df931, 0x4b48dba8, 0xe22ab6b9, 0x34920dbc,
332 0xa4c8293e, 0x2dbe4c0b, 0x8dfa64bf, 0xe94a7d59,
333 0x1b6acff2, 0x78331e77, 0xe6a6b733, 0x74ba1df4,
334 0x997c6127, 0x26de87eb, 0xbde46889, 0x7a759032,
335 0xab24e354, 0xf78ff48d, 0xf4ea3d64, 0xc23ebe9d,
336 0x1da0403d, 0x67d5d00f, 0xd07234ca, 0x192c41b7,
337 0xc95e757d, 0x9a19a8ce, 0xece53b7f, 0x0daa442f,
338 0x07e9c863, 0xdb12ff2a, 0xbfa2e6cc, 0x905a2482,
339 0x3a5d807a, 0x40281048, 0x56e89b95, 0x337bc5df,
340 0x9690ab4d, 0x611f5fc0, 0x1c830791, 0xf5c97ac8,
341 0xccf1335b, 0x00000000, 0x36d483f9, 0x4587566e,
342 0x97b3ece1, 0x64b019e6, 0xfea9b128, 0xd87736c3,
343 0xc15b7774, 0x112943be, 0x77dfd41d, 0xba0da0ea,
344 0x124c8a57, 0xcb18fb38, 0x9df060ad, 0x2b74c3c4,
345 0xe5c37eda, 0x921caac7, 0x791059db, 0x0365c9e9,
346 0x0fecca6a, 0xb9686903, 0x65935e4a, 0x4ee79d8e,
347 0xbe81a160, 0xe06c38fc, 0xbb2ee746, 0x52649a1f,
348 0xe4e03976, 0x8fbceafa, 0x301e0c36, 0x249809ae,
349 0xf940794b, 0x6359d185, 0x70361c7e, 0xf8633ee7,
350 0x37f7c455, 0xeea3b53a, 0x29324d81, 0xc4f43152,
351 0x9b3aef62, 0x66f697a3, 0x35b14a10, 0xf220b2ab,
352 0x54ae15d0, 0xb7a7e4c5, 0xd5dd72ec, 0x5a619816,
353 0xca3bbc94, 0xe785f09f, 0xddd870e5, 0x14860598,
354 0xc6b2bf17, 0x410b57e4, 0x434dd9a1, 0x2ff8c24e,
355 0xf1457b42, 0x15a54234, 0x94d62508, 0xf0663cee,
356 0x22528661, 0x76fc93b1, 0xb32be54f, 0x20140824,
357 0xb208a2e3, 0xbcc72f25, 0x4fc4da22, 0x68391a65,
358 0x8335e979, 0xb684a369, 0xd79bfca9, 0x3db44819,
359 0xc5d776fe, 0x313d4b9a, 0x3ed181f0, 0x88552299,
360 0x0c890383, 0x4a6b9c04, 0xd1517366, 0x0b60cbe0,
361 0xfdcc78c1, 0x7cbf1ffd, 0xd4fe3540, 0xeb0cf31c,
362 0xa1676f18, 0x985f268b, 0x7d9c5851, 0xd6b8bb05,
363 0x6b5cd38c, 0x57cbdc39, 0x6ef395aa, 0x180f061b,
364 0x8a13acdc, 0x1a49885e, 0xdf9efea0, 0x21374f88,
365 0x4d825467, 0xb16d6b0a, 0x46e29f87, 0xa202a6f1,
366 0xae8ba572, 0x58271653, 0x9cd32701, 0x47c1d82b,
367 0x95f562a4, 0x87b9e8f3, 0xe309f115, 0x0a438c4c,
368 0x092645a5, 0x3c970fb5, 0xa04428b4, 0x5b42dfba,
369 0xb04e2ca6, 0xcdd274f7, 0x6fd0d206, 0x482d1241,
370 0xa7ade0d7, 0xd954716f, 0xceb7bd1e, 0x3b7ec7d6,
371 0x2edb85e2, 0x2a578468, 0xb4c22d2c, 0x490e55ed,
372 0x5d885075, 0xda31b886, 0x933fed6b, 0x44a411c2,
375 0x18c07830, 0x2305af46, 0xc67ef991, 0xe8136fcd,
376 0x874ca113, 0xb8a9626d, 0x01080502, 0x4f426e9e,
377 0x36adee6c, 0xa6590451, 0xd2debdb9, 0xf5fb06f7,
378 0x79ef80f2, 0x6f5fcede, 0x91fcef3f, 0x52aa07a4,
379 0x6027fdc0, 0xbc897665, 0x9baccd2b, 0x8e048c01,
380 0xa371155b, 0x0c603c18, 0x7bff8af6, 0x35b5e16a,
381 0x1de8693a, 0xe05347dd, 0xd7f6acb3, 0xc25eed99,
382 0x2e6d965c, 0x4b627a96, 0xfea321e1, 0x578216ae,
383 0x15a8412a, 0x779fb6ee, 0x37a5eb6e, 0xe57b56d7,
384 0x9f8cd923, 0xf0d317fd, 0x4a6a7f94, 0xda9e95a9,
385 0x58fa25b0, 0xc906ca8f, 0x29558d52, 0x0a502214,
386 0xb1e14f7f, 0xa0691a5d, 0x6b7fdad6, 0x855cab17,
387 0xbd817367, 0x5dd234ba, 0x10805020, 0xf4f303f5,
388 0xcb16c08b, 0x3eedc67c, 0x0528110a, 0x671fe6ce,
389 0xe47353d5, 0x2725bb4e, 0x41325882, 0x8b2c9d0b,
390 0xa7510153, 0x7dcf94fa, 0x95dcfb37, 0xd88e9fad,
391 0xfb8b30eb, 0xee2371c1, 0x7cc791f8, 0x6617e3cc,
392 0xdda68ea7, 0x17b84b2e, 0x4702468e, 0x9e84dc21,
393 0xca1ec589, 0x2d75995a, 0xbf917963, 0x07381b0e,
394 0xad012347, 0x5aea2fb4, 0x836cb51b, 0x3385ff66,
395 0x633ff2c6, 0x02100a04, 0xaa393849, 0x71afa8e2,
396 0xc80ecf8d, 0x19c87d32, 0x49727092, 0xd9869aaf,
397 0xf2c31df9, 0xe34b48db, 0x5be22ab6, 0x8834920d,
398 0x9aa4c829, 0x262dbe4c, 0x328dfa64, 0xb0e94a7d,
399 0xe91b6acf, 0x0f78331e, 0xd5e6a6b7, 0x8074ba1d,
400 0xbe997c61, 0xcd26de87, 0x34bde468, 0x487a7590,
401 0xffab24e3, 0x7af78ff4, 0x90f4ea3d, 0x5fc23ebe,
402 0x201da040, 0x6867d5d0, 0x1ad07234, 0xae192c41,
403 0xb4c95e75, 0x549a19a8, 0x93ece53b, 0x220daa44,
404 0x6407e9c8, 0xf1db12ff, 0x73bfa2e6, 0x12905a24,
405 0x403a5d80, 0x08402810, 0xc356e89b, 0xec337bc5,
406 0xdb9690ab, 0xa1611f5f, 0x8d1c8307, 0x3df5c97a,
407 0x97ccf133, 0x00000000, 0xcf36d483, 0x2b458756,
408 0x7697b3ec, 0x8264b019, 0xd6fea9b1, 0x1bd87736,
409 0xb5c15b77, 0xaf112943, 0x6a77dfd4, 0x50ba0da0,
410 0x45124c8a, 0xf3cb18fb, 0x309df060, 0xef2b74c3,
411 0x3fe5c37e, 0x55921caa, 0xa2791059, 0xea0365c9,
412 0x650fecca, 0xbab96869, 0x2f65935e, 0xc04ee79d,
413 0xdebe81a1, 0x1ce06c38, 0xfdbb2ee7, 0x4d52649a,
414 0x92e4e039, 0x758fbcea, 0x06301e0c, 0x8a249809,
415 0xb2f94079, 0xe66359d1, 0x0e70361c, 0x1ff8633e,
416 0x6237f7c4, 0xd4eea3b5, 0xa829324d, 0x96c4f431,
417 0xf99b3aef, 0xc566f697, 0x2535b14a, 0x59f220b2,
418 0x8454ae15, 0x72b7a7e4, 0x39d5dd72, 0x4c5a6198,
419 0x5eca3bbc, 0x78e785f0, 0x38ddd870, 0x8c148605,
420 0xd1c6b2bf, 0xa5410b57, 0xe2434dd9, 0x612ff8c2,
421 0xb3f1457b, 0x2115a542, 0x9c94d625, 0x1ef0663c,
422 0x43225286, 0xc776fc93, 0xfcb32be5, 0x04201408,
423 0x51b208a2, 0x99bcc72f, 0x6d4fc4da, 0x0d68391a,
424 0xfa8335e9, 0xdfb684a3, 0x7ed79bfc, 0x243db448,
425 0x3bc5d776, 0xab313d4b, 0xce3ed181, 0x11885522,
426 0x8f0c8903, 0x4e4a6b9c, 0xb7d15173, 0xeb0b60cb,
427 0x3cfdcc78, 0x817cbf1f, 0x94d4fe35, 0xf7eb0cf3,
428 0xb9a1676f, 0x13985f26, 0x2c7d9c58, 0xd3d6b8bb,
429 0xe76b5cd3, 0x6e57cbdc, 0xc46ef395, 0x03180f06,
430 0x568a13ac, 0x441a4988, 0x7fdf9efe, 0xa921374f,
431 0x2a4d8254, 0xbbb16d6b, 0xc146e29f, 0x53a202a6,
432 0xdcae8ba5, 0x0b582716, 0x9d9cd327, 0x6c47c1d8,
433 0x3195f562, 0x7487b9e8, 0xf6e309f1, 0x460a438c,
434 0xac092645, 0x893c970f, 0x14a04428, 0xe15b42df,
435 0x16b04e2c, 0x3acdd274, 0x696fd0d2, 0x09482d12,
436 0x70a7ade0, 0xb6d95471, 0xd0ceb7bd, 0xed3b7ec7,
437 0xcc2edb85, 0x422a5784, 0x98b4c22d, 0xa4490e55,
438 0x285d8850, 0x5cda31b8, 0xf8933fed, 0x8644a411,
441 0x6018c078, 0x8c2305af, 0x3fc67ef9, 0x87e8136f,
442 0x26874ca1, 0xdab8a962, 0x04010805, 0x214f426e,
443 0xd836adee, 0xa2a65904, 0x6fd2debd, 0xf3f5fb06,
444 0xf979ef80, 0xa16f5fce, 0x7e91fcef, 0x5552aa07,
445 0x9d6027fd, 0xcabc8976, 0x569baccd, 0x028e048c,
446 0xb6a37115, 0x300c603c, 0xf17bff8a, 0xd435b5e1,
447 0x741de869, 0xa7e05347, 0x7bd7f6ac, 0x2fc25eed,
448 0xb82e6d96, 0x314b627a, 0xdffea321, 0x41578216,
449 0x5415a841, 0xc1779fb6, 0xdc37a5eb, 0xb3e57b56,
450 0x469f8cd9, 0xe7f0d317, 0x354a6a7f, 0x4fda9e95,
451 0x7d58fa25, 0x03c906ca, 0xa429558d, 0x280a5022,
452 0xfeb1e14f, 0xbaa0691a, 0xb16b7fda, 0x2e855cab,
453 0xcebd8173, 0x695dd234, 0x40108050, 0xf7f4f303,
454 0x0bcb16c0, 0xf83eedc6, 0x14052811, 0x81671fe6,
455 0xb7e47353, 0x9c2725bb, 0x19413258, 0x168b2c9d,
456 0xa6a75101, 0xe97dcf94, 0x6e95dcfb, 0x47d88e9f,
457 0xcbfb8b30, 0x9fee2371, 0xed7cc791, 0x856617e3,
458 0x53dda68e, 0x5c17b84b, 0x01470246, 0x429e84dc,
459 0x0fca1ec5, 0xb42d7599, 0xc6bf9179, 0x1c07381b,
460 0x8ead0123, 0x755aea2f, 0x36836cb5, 0xcc3385ff,
461 0x91633ff2, 0x0802100a, 0x92aa3938, 0xd971afa8,
462 0x07c80ecf, 0x6419c87d, 0x39497270, 0x43d9869a,
463 0xeff2c31d, 0xabe34b48, 0x715be22a, 0x1a883492,
464 0x529aa4c8, 0x98262dbe, 0xc8328dfa, 0xfab0e94a,
465 0x83e91b6a, 0x3c0f7833, 0x73d5e6a6, 0x3a8074ba,
466 0xc2be997c, 0x13cd26de, 0xd034bde4, 0x3d487a75,
467 0xdbffab24, 0xf57af78f, 0x7a90f4ea, 0x615fc23e,
468 0x80201da0, 0xbd6867d5, 0x681ad072, 0x82ae192c,
469 0xeab4c95e, 0x4d549a19, 0x7693ece5, 0x88220daa,
470 0x8d6407e9, 0xe3f1db12, 0xd173bfa2, 0x4812905a,
471 0x1d403a5d, 0x20084028, 0x2bc356e8, 0x97ec337b,
472 0x4bdb9690, 0xbea1611f, 0x0e8d1c83, 0xf43df5c9,
473 0x6697ccf1, 0x00000000, 0x1bcf36d4, 0xac2b4587,
474 0xc57697b3, 0x328264b0, 0x7fd6fea9, 0x6c1bd877,
475 0xeeb5c15b, 0x86af1129, 0xb56a77df, 0x5d50ba0d,
476 0x0945124c, 0xebf3cb18, 0xc0309df0, 0x9bef2b74,
477 0xfc3fe5c3, 0x4955921c, 0xb2a27910, 0x8fea0365,
478 0x89650fec, 0xd2bab968, 0xbc2f6593, 0x27c04ee7,
479 0x5fdebe81, 0x701ce06c, 0xd3fdbb2e, 0x294d5264,
480 0x7292e4e0, 0xc9758fbc, 0x1806301e, 0x128a2498,
481 0xf2b2f940, 0xbfe66359, 0x380e7036, 0x7c1ff863,
482 0x956237f7, 0x77d4eea3, 0x9aa82932, 0x6296c4f4,
483 0xc3f99b3a, 0x33c566f6, 0x942535b1, 0x7959f220,
484 0x2a8454ae, 0xd572b7a7, 0xe439d5dd, 0x2d4c5a61,
485 0x655eca3b, 0xfd78e785, 0xe038ddd8, 0x0a8c1486,
486 0x63d1c6b2, 0xaea5410b, 0xafe2434d, 0x99612ff8,
487 0xf6b3f145, 0x842115a5, 0x4a9c94d6, 0x781ef066,
488 0x11432252, 0x3bc776fc, 0xd7fcb32b, 0x10042014,
489 0x5951b208, 0x5e99bcc7, 0xa96d4fc4, 0x340d6839,
490 0xcffa8335, 0x5bdfb684, 0xe57ed79b, 0x90243db4,
491 0xec3bc5d7, 0x96ab313d, 0x1fce3ed1, 0x44118855,
492 0x068f0c89, 0x254e4a6b, 0xe6b7d151, 0x8beb0b60,
493 0xf03cfdcc, 0x3e817cbf, 0x6a94d4fe, 0xfbf7eb0c,
494 0xdeb9a167, 0x4c13985f, 0xb02c7d9c, 0x6bd3d6b8,
495 0xbbe76b5c, 0xa56e57cb, 0x37c46ef3, 0x0c03180f,
496 0x45568a13, 0x0d441a49, 0xe17fdf9e, 0x9ea92137,
497 0xa82a4d82, 0xd6bbb16d, 0x23c146e2, 0x5153a202,
498 0x57dcae8b, 0x2c0b5827, 0x4e9d9cd3, 0xad6c47c1,
499 0xc43195f5, 0xcd7487b9, 0xfff6e309, 0x05460a43,
500 0x8aac0926, 0x1e893c97, 0x5014a044, 0xa3e15b42,
501 0x5816b04e, 0xe83acdd2, 0xb9696fd0, 0x2409482d,
502 0xdd70a7ad, 0xe2b6d954, 0x67d0ceb7, 0x93ed3b7e,
503 0x17cc2edb, 0x15422a57, 0x5a98b4c2, 0xaaa4490e,
504 0xa0285d88, 0x6d5cda31, 0xc7f8933f, 0x228644a4,
507 0x186018c0, 0x238c2305, 0xc63fc67e, 0xe887e813,
508 0x8726874c, 0xb8dab8a9, 0x01040108, 0x4f214f42,
509 0x36d836ad, 0xa6a2a659, 0xd26fd2de, 0xf5f3f5fb,
510 0x79f979ef, 0x6fa16f5f, 0x917e91fc, 0x525552aa,
511 0x609d6027, 0xbccabc89, 0x9b569bac, 0x8e028e04,
512 0xa3b6a371, 0x0c300c60, 0x7bf17bff, 0x35d435b5,
513 0x1d741de8, 0xe0a7e053, 0xd77bd7f6, 0xc22fc25e,
514 0x2eb82e6d, 0x4b314b62, 0xfedffea3, 0x57415782,
515 0x155415a8, 0x77c1779f, 0x37dc37a5, 0xe5b3e57b,
516 0x9f469f8c, 0xf0e7f0d3, 0x4a354a6a, 0xda4fda9e,
517 0x587d58fa, 0xc903c906, 0x29a42955, 0x0a280a50,
518 0xb1feb1e1, 0xa0baa069, 0x6bb16b7f, 0x852e855c,
519 0xbdcebd81, 0x5d695dd2, 0x10401080, 0xf4f7f4f3,
520 0xcb0bcb16, 0x3ef83eed, 0x05140528, 0x6781671f,
521 0xe4b7e473, 0x279c2725, 0x41194132, 0x8b168b2c,
522 0xa7a6a751, 0x7de97dcf, 0x956e95dc, 0xd847d88e,
523 0xfbcbfb8b, 0xee9fee23, 0x7ced7cc7, 0x66856617,
524 0xdd53dda6, 0x175c17b8, 0x47014702, 0x9e429e84,
525 0xca0fca1e, 0x2db42d75, 0xbfc6bf91, 0x071c0738,
526 0xad8ead01, 0x5a755aea, 0x8336836c, 0x33cc3385,
527 0x6391633f, 0x02080210, 0xaa92aa39, 0x71d971af,
528 0xc807c80e, 0x196419c8, 0x49394972, 0xd943d986,
529 0xf2eff2c3, 0xe3abe34b, 0x5b715be2, 0x881a8834,
530 0x9a529aa4, 0x2698262d, 0x32c8328d, 0xb0fab0e9,
531 0xe983e91b, 0x0f3c0f78, 0xd573d5e6, 0x803a8074,
532 0xbec2be99, 0xcd13cd26, 0x34d034bd, 0x483d487a,
533 0xffdbffab, 0x7af57af7, 0x907a90f4, 0x5f615fc2,
534 0x2080201d, 0x68bd6867, 0x1a681ad0, 0xae82ae19,
535 0xb4eab4c9, 0x544d549a, 0x937693ec, 0x2288220d,
536 0x648d6407, 0xf1e3f1db, 0x73d173bf, 0x12481290,
537 0x401d403a, 0x08200840, 0xc32bc356, 0xec97ec33,
538 0xdb4bdb96, 0xa1bea161, 0x8d0e8d1c, 0x3df43df5,
539 0x976697cc, 0x00000000, 0xcf1bcf36, 0x2bac2b45,
540 0x76c57697, 0x82328264, 0xd67fd6fe, 0x1b6c1bd8,
541 0xb5eeb5c1, 0xaf86af11, 0x6ab56a77, 0x505d50ba,
542 0x45094512, 0xf3ebf3cb, 0x30c0309d, 0xef9bef2b,
543 0x3ffc3fe5, 0x55495592, 0xa2b2a279, 0xea8fea03,
544 0x6589650f, 0xbad2bab9, 0x2fbc2f65, 0xc027c04e,
545 0xde5fdebe, 0x1c701ce0, 0xfdd3fdbb, 0x4d294d52,
546 0x927292e4, 0x75c9758f, 0x06180630, 0x8a128a24,
547 0xb2f2b2f9, 0xe6bfe663, 0x0e380e70, 0x1f7c1ff8,
548 0x62956237, 0xd477d4ee, 0xa89aa829, 0x966296c4,
549 0xf9c3f99b, 0xc533c566, 0x25942535, 0x597959f2,
550 0x842a8454, 0x72d572b7, 0x39e439d5, 0x4c2d4c5a,
551 0x5e655eca, 0x78fd78e7, 0x38e038dd, 0x8c0a8c14,
552 0xd163d1c6, 0xa5aea541, 0xe2afe243, 0x6199612f,
553 0xb3f6b3f1, 0x21842115, 0x9c4a9c94, 0x1e781ef0,
554 0x43114322, 0xc73bc776, 0xfcd7fcb3, 0x04100420,
555 0x515951b2, 0x995e99bc, 0x6da96d4f, 0x0d340d68,
556 0xfacffa83, 0xdf5bdfb6, 0x7ee57ed7, 0x2490243d,
557 0x3bec3bc5, 0xab96ab31, 0xce1fce3e, 0x11441188,
558 0x8f068f0c, 0x4e254e4a, 0xb7e6b7d1, 0xeb8beb0b,
559 0x3cf03cfd, 0x813e817c, 0x946a94d4, 0xf7fbf7eb,
560 0xb9deb9a1, 0x134c1398, 0x2cb02c7d, 0xd36bd3d6,
561 0xe7bbe76b, 0x6ea56e57, 0xc437c46e, 0x030c0318,
562 0x5645568a, 0x440d441a, 0x7fe17fdf, 0xa99ea921,
563 0x2aa82a4d, 0xbbd6bbb1, 0xc123c146, 0x535153a2,
564 0xdc57dcae, 0x0b2c0b58, 0x9d4e9d9c, 0x6cad6c47,
565 0x31c43195, 0x74cd7487, 0xf6fff6e3, 0x4605460a,
566 0xac8aac09, 0x891e893c, 0x145014a0, 0xe1a3e15b,
567 0x165816b0, 0x3ae83acd, 0x69b9696f, 0x09240948,
568 0x70dd70a7, 0xb6e2b6d9, 0xd067d0ce, 0xed93ed3b,
569 0xcc17cc2e, 0x4215422a, 0x985a98b4, 0xa4aaa449,
570 0x28a0285d, 0x5c6d5cda, 0xf8c7f893, 0x86228644,
574 __constant u32 Cl[8][256] =
577 0xc07830d8, 0x05af4626, 0x7ef991b8, 0x136fcdfb,
578 0x4ca113cb, 0xa9626d11, 0x08050209, 0x426e9e0d,
579 0xadee6c9b, 0x590451ff, 0xdebdb90c, 0xfb06f70e,
580 0xef80f296, 0x5fcede30, 0xfcef3f6d, 0xaa07a4f8,
581 0x27fdc047, 0x89766535, 0xaccd2b37, 0x048c018a,
582 0x71155bd2, 0x603c186c, 0xff8af684, 0xb5e16a80,
583 0xe8693af5, 0x5347ddb3, 0xf6acb321, 0x5eed999c,
584 0x6d965c43, 0x627a9629, 0xa321e15d, 0x8216aed5,
585 0xa8412abd, 0x9fb6eee8, 0xa5eb6e92, 0x7b56d79e,
586 0x8cd92313, 0xd317fd23, 0x6a7f9420, 0x9e95a944,
587 0xfa25b0a2, 0x06ca8fcf, 0x558d527c, 0x5022145a,
588 0xe14f7f50, 0x691a5dc9, 0x7fdad614, 0x5cab17d9,
589 0x8173673c, 0xd234ba8f, 0x80502090, 0xf303f507,
590 0x16c08bdd, 0xedc67cd3, 0x28110a2d, 0x1fe6ce78,
591 0x7353d597, 0x25bb4e02, 0x32588273, 0x2c9d0ba7,
592 0x510153f6, 0xcf94fab2, 0xdcfb3749, 0x8e9fad56,
593 0x8b30eb70, 0x2371c1cd, 0xc791f8bb, 0x17e3cc71,
594 0xa68ea77b, 0xb84b2eaf, 0x02468e45, 0x84dc211a,
595 0x1ec589d4, 0x75995a58, 0x9179632e, 0x381b0e3f,
596 0x012347ac, 0xea2fb4b0, 0x6cb51bef, 0x85ff66b6,
597 0x3ff2c65c, 0x100a0412, 0x39384993, 0xafa8e2de,
598 0x0ecf8dc6, 0xc87d32d1, 0x7270923b, 0x869aaf5f,
599 0xc31df931, 0x4b48dba8, 0xe22ab6b9, 0x34920dbc,
600 0xa4c8293e, 0x2dbe4c0b, 0x8dfa64bf, 0xe94a7d59,
601 0x1b6acff2, 0x78331e77, 0xe6a6b733, 0x74ba1df4,
602 0x997c6127, 0x26de87eb, 0xbde46889, 0x7a759032,
603 0xab24e354, 0xf78ff48d, 0xf4ea3d64, 0xc23ebe9d,
604 0x1da0403d, 0x67d5d00f, 0xd07234ca, 0x192c41b7,
605 0xc95e757d, 0x9a19a8ce, 0xece53b7f, 0x0daa442f,
606 0x07e9c863, 0xdb12ff2a, 0xbfa2e6cc, 0x905a2482,
607 0x3a5d807a, 0x40281048, 0x56e89b95, 0x337bc5df,
608 0x9690ab4d, 0x611f5fc0, 0x1c830791, 0xf5c97ac8,
609 0xccf1335b, 0x00000000, 0x36d483f9, 0x4587566e,
610 0x97b3ece1, 0x64b019e6, 0xfea9b128, 0xd87736c3,
611 0xc15b7774, 0x112943be, 0x77dfd41d, 0xba0da0ea,
612 0x124c8a57, 0xcb18fb38, 0x9df060ad, 0x2b74c3c4,
613 0xe5c37eda, 0x921caac7, 0x791059db, 0x0365c9e9,
614 0x0fecca6a, 0xb9686903, 0x65935e4a, 0x4ee79d8e,
615 0xbe81a160, 0xe06c38fc, 0xbb2ee746, 0x52649a1f,
616 0xe4e03976, 0x8fbceafa, 0x301e0c36, 0x249809ae,
617 0xf940794b, 0x6359d185, 0x70361c7e, 0xf8633ee7,
618 0x37f7c455, 0xeea3b53a, 0x29324d81, 0xc4f43152,
619 0x9b3aef62, 0x66f697a3, 0x35b14a10, 0xf220b2ab,
620 0x54ae15d0, 0xb7a7e4c5, 0xd5dd72ec, 0x5a619816,
621 0xca3bbc94, 0xe785f09f, 0xddd870e5, 0x14860598,
622 0xc6b2bf17, 0x410b57e4, 0x434dd9a1, 0x2ff8c24e,
623 0xf1457b42, 0x15a54234, 0x94d62508, 0xf0663cee,
624 0x22528661, 0x76fc93b1, 0xb32be54f, 0x20140824,
625 0xb208a2e3, 0xbcc72f25, 0x4fc4da22, 0x68391a65,
626 0x8335e979, 0xb684a369, 0xd79bfca9, 0x3db44819,
627 0xc5d776fe, 0x313d4b9a, 0x3ed181f0, 0x88552299,
628 0x0c890383, 0x4a6b9c04, 0xd1517366, 0x0b60cbe0,
629 0xfdcc78c1, 0x7cbf1ffd, 0xd4fe3540, 0xeb0cf31c,
630 0xa1676f18, 0x985f268b, 0x7d9c5851, 0xd6b8bb05,
631 0x6b5cd38c, 0x57cbdc39, 0x6ef395aa, 0x180f061b,
632 0x8a13acdc, 0x1a49885e, 0xdf9efea0, 0x21374f88,
633 0x4d825467, 0xb16d6b0a, 0x46e29f87, 0xa202a6f1,
634 0xae8ba572, 0x58271653, 0x9cd32701, 0x47c1d82b,
635 0x95f562a4, 0x87b9e8f3, 0xe309f115, 0x0a438c4c,
636 0x092645a5, 0x3c970fb5, 0xa04428b4, 0x5b42dfba,
637 0xb04e2ca6, 0xcdd274f7, 0x6fd0d206, 0x482d1241,
638 0xa7ade0d7, 0xd954716f, 0xceb7bd1e, 0x3b7ec7d6,
639 0x2edb85e2, 0x2a578468, 0xb4c22d2c, 0x490e55ed,
640 0x5d885075, 0xda31b886, 0x933fed6b, 0x44a411c2,
643 0x18c07830, 0x2305af46, 0xc67ef991, 0xe8136fcd,
644 0x874ca113, 0xb8a9626d, 0x01080502, 0x4f426e9e,
645 0x36adee6c, 0xa6590451, 0xd2debdb9, 0xf5fb06f7,
646 0x79ef80f2, 0x6f5fcede, 0x91fcef3f, 0x52aa07a4,
647 0x6027fdc0, 0xbc897665, 0x9baccd2b, 0x8e048c01,
648 0xa371155b, 0x0c603c18, 0x7bff8af6, 0x35b5e16a,
649 0x1de8693a, 0xe05347dd, 0xd7f6acb3, 0xc25eed99,
650 0x2e6d965c, 0x4b627a96, 0xfea321e1, 0x578216ae,
651 0x15a8412a, 0x779fb6ee, 0x37a5eb6e, 0xe57b56d7,
652 0x9f8cd923, 0xf0d317fd, 0x4a6a7f94, 0xda9e95a9,
653 0x58fa25b0, 0xc906ca8f, 0x29558d52, 0x0a502214,
654 0xb1e14f7f, 0xa0691a5d, 0x6b7fdad6, 0x855cab17,
655 0xbd817367, 0x5dd234ba, 0x10805020, 0xf4f303f5,
656 0xcb16c08b, 0x3eedc67c, 0x0528110a, 0x671fe6ce,
657 0xe47353d5, 0x2725bb4e, 0x41325882, 0x8b2c9d0b,
658 0xa7510153, 0x7dcf94fa, 0x95dcfb37, 0xd88e9fad,
659 0xfb8b30eb, 0xee2371c1, 0x7cc791f8, 0x6617e3cc,
660 0xdda68ea7, 0x17b84b2e, 0x4702468e, 0x9e84dc21,
661 0xca1ec589, 0x2d75995a, 0xbf917963, 0x07381b0e,
662 0xad012347, 0x5aea2fb4, 0x836cb51b, 0x3385ff66,
663 0x633ff2c6, 0x02100a04, 0xaa393849, 0x71afa8e2,
664 0xc80ecf8d, 0x19c87d32, 0x49727092, 0xd9869aaf,
665 0xf2c31df9, 0xe34b48db, 0x5be22ab6, 0x8834920d,
666 0x9aa4c829, 0x262dbe4c, 0x328dfa64, 0xb0e94a7d,
667 0xe91b6acf, 0x0f78331e, 0xd5e6a6b7, 0x8074ba1d,
668 0xbe997c61, 0xcd26de87, 0x34bde468, 0x487a7590,
669 0xffab24e3, 0x7af78ff4, 0x90f4ea3d, 0x5fc23ebe,
670 0x201da040, 0x6867d5d0, 0x1ad07234, 0xae192c41,
671 0xb4c95e75, 0x549a19a8, 0x93ece53b, 0x220daa44,
672 0x6407e9c8, 0xf1db12ff, 0x73bfa2e6, 0x12905a24,
673 0x403a5d80, 0x08402810, 0xc356e89b, 0xec337bc5,
674 0xdb9690ab, 0xa1611f5f, 0x8d1c8307, 0x3df5c97a,
675 0x97ccf133, 0x00000000, 0xcf36d483, 0x2b458756,
676 0x7697b3ec, 0x8264b019, 0xd6fea9b1, 0x1bd87736,
677 0xb5c15b77, 0xaf112943, 0x6a77dfd4, 0x50ba0da0,
678 0x45124c8a, 0xf3cb18fb, 0x309df060, 0xef2b74c3,
679 0x3fe5c37e, 0x55921caa, 0xa2791059, 0xea0365c9,
680 0x650fecca, 0xbab96869, 0x2f65935e, 0xc04ee79d,
681 0xdebe81a1, 0x1ce06c38, 0xfdbb2ee7, 0x4d52649a,
682 0x92e4e039, 0x758fbcea, 0x06301e0c, 0x8a249809,
683 0xb2f94079, 0xe66359d1, 0x0e70361c, 0x1ff8633e,
684 0x6237f7c4, 0xd4eea3b5, 0xa829324d, 0x96c4f431,
685 0xf99b3aef, 0xc566f697, 0x2535b14a, 0x59f220b2,
686 0x8454ae15, 0x72b7a7e4, 0x39d5dd72, 0x4c5a6198,
687 0x5eca3bbc, 0x78e785f0, 0x38ddd870, 0x8c148605,
688 0xd1c6b2bf, 0xa5410b57, 0xe2434dd9, 0x612ff8c2,
689 0xb3f1457b, 0x2115a542, 0x9c94d625, 0x1ef0663c,
690 0x43225286, 0xc776fc93, 0xfcb32be5, 0x04201408,
691 0x51b208a2, 0x99bcc72f, 0x6d4fc4da, 0x0d68391a,
692 0xfa8335e9, 0xdfb684a3, 0x7ed79bfc, 0x243db448,
693 0x3bc5d776, 0xab313d4b, 0xce3ed181, 0x11885522,
694 0x8f0c8903, 0x4e4a6b9c, 0xb7d15173, 0xeb0b60cb,
695 0x3cfdcc78, 0x817cbf1f, 0x94d4fe35, 0xf7eb0cf3,
696 0xb9a1676f, 0x13985f26, 0x2c7d9c58, 0xd3d6b8bb,
697 0xe76b5cd3, 0x6e57cbdc, 0xc46ef395, 0x03180f06,
698 0x568a13ac, 0x441a4988, 0x7fdf9efe, 0xa921374f,
699 0x2a4d8254, 0xbbb16d6b, 0xc146e29f, 0x53a202a6,
700 0xdcae8ba5, 0x0b582716, 0x9d9cd327, 0x6c47c1d8,
701 0x3195f562, 0x7487b9e8, 0xf6e309f1, 0x460a438c,
702 0xac092645, 0x893c970f, 0x14a04428, 0xe15b42df,
703 0x16b04e2c, 0x3acdd274, 0x696fd0d2, 0x09482d12,
704 0x70a7ade0, 0xb6d95471, 0xd0ceb7bd, 0xed3b7ec7,
705 0xcc2edb85, 0x422a5784, 0x98b4c22d, 0xa4490e55,
706 0x285d8850, 0x5cda31b8, 0xf8933fed, 0x8644a411,
709 0x6018c078, 0x8c2305af, 0x3fc67ef9, 0x87e8136f,
710 0x26874ca1, 0xdab8a962, 0x04010805, 0x214f426e,
711 0xd836adee, 0xa2a65904, 0x6fd2debd, 0xf3f5fb06,
712 0xf979ef80, 0xa16f5fce, 0x7e91fcef, 0x5552aa07,
713 0x9d6027fd, 0xcabc8976, 0x569baccd, 0x028e048c,
714 0xb6a37115, 0x300c603c, 0xf17bff8a, 0xd435b5e1,
715 0x741de869, 0xa7e05347, 0x7bd7f6ac, 0x2fc25eed,
716 0xb82e6d96, 0x314b627a, 0xdffea321, 0x41578216,
717 0x5415a841, 0xc1779fb6, 0xdc37a5eb, 0xb3e57b56,
718 0x469f8cd9, 0xe7f0d317, 0x354a6a7f, 0x4fda9e95,
719 0x7d58fa25, 0x03c906ca, 0xa429558d, 0x280a5022,
720 0xfeb1e14f, 0xbaa0691a, 0xb16b7fda, 0x2e855cab,
721 0xcebd8173, 0x695dd234, 0x40108050, 0xf7f4f303,
722 0x0bcb16c0, 0xf83eedc6, 0x14052811, 0x81671fe6,
723 0xb7e47353, 0x9c2725bb, 0x19413258, 0x168b2c9d,
724 0xa6a75101, 0xe97dcf94, 0x6e95dcfb, 0x47d88e9f,
725 0xcbfb8b30, 0x9fee2371, 0xed7cc791, 0x856617e3,
726 0x53dda68e, 0x5c17b84b, 0x01470246, 0x429e84dc,
727 0x0fca1ec5, 0xb42d7599, 0xc6bf9179, 0x1c07381b,
728 0x8ead0123, 0x755aea2f, 0x36836cb5, 0xcc3385ff,
729 0x91633ff2, 0x0802100a, 0x92aa3938, 0xd971afa8,
730 0x07c80ecf, 0x6419c87d, 0x39497270, 0x43d9869a,
731 0xeff2c31d, 0xabe34b48, 0x715be22a, 0x1a883492,
732 0x529aa4c8, 0x98262dbe, 0xc8328dfa, 0xfab0e94a,
733 0x83e91b6a, 0x3c0f7833, 0x73d5e6a6, 0x3a8074ba,
734 0xc2be997c, 0x13cd26de, 0xd034bde4, 0x3d487a75,
735 0xdbffab24, 0xf57af78f, 0x7a90f4ea, 0x615fc23e,
736 0x80201da0, 0xbd6867d5, 0x681ad072, 0x82ae192c,
737 0xeab4c95e, 0x4d549a19, 0x7693ece5, 0x88220daa,
738 0x8d6407e9, 0xe3f1db12, 0xd173bfa2, 0x4812905a,
739 0x1d403a5d, 0x20084028, 0x2bc356e8, 0x97ec337b,
740 0x4bdb9690, 0xbea1611f, 0x0e8d1c83, 0xf43df5c9,
741 0x6697ccf1, 0x00000000, 0x1bcf36d4, 0xac2b4587,
742 0xc57697b3, 0x328264b0, 0x7fd6fea9, 0x6c1bd877,
743 0xeeb5c15b, 0x86af1129, 0xb56a77df, 0x5d50ba0d,
744 0x0945124c, 0xebf3cb18, 0xc0309df0, 0x9bef2b74,
745 0xfc3fe5c3, 0x4955921c, 0xb2a27910, 0x8fea0365,
746 0x89650fec, 0xd2bab968, 0xbc2f6593, 0x27c04ee7,
747 0x5fdebe81, 0x701ce06c, 0xd3fdbb2e, 0x294d5264,
748 0x7292e4e0, 0xc9758fbc, 0x1806301e, 0x128a2498,
749 0xf2b2f940, 0xbfe66359, 0x380e7036, 0x7c1ff863,
750 0x956237f7, 0x77d4eea3, 0x9aa82932, 0x6296c4f4,
751 0xc3f99b3a, 0x33c566f6, 0x942535b1, 0x7959f220,
752 0x2a8454ae, 0xd572b7a7, 0xe439d5dd, 0x2d4c5a61,
753 0x655eca3b, 0xfd78e785, 0xe038ddd8, 0x0a8c1486,
754 0x63d1c6b2, 0xaea5410b, 0xafe2434d, 0x99612ff8,
755 0xf6b3f145, 0x842115a5, 0x4a9c94d6, 0x781ef066,
756 0x11432252, 0x3bc776fc, 0xd7fcb32b, 0x10042014,
757 0x5951b208, 0x5e99bcc7, 0xa96d4fc4, 0x340d6839,
758 0xcffa8335, 0x5bdfb684, 0xe57ed79b, 0x90243db4,
759 0xec3bc5d7, 0x96ab313d, 0x1fce3ed1, 0x44118855,
760 0x068f0c89, 0x254e4a6b, 0xe6b7d151, 0x8beb0b60,
761 0xf03cfdcc, 0x3e817cbf, 0x6a94d4fe, 0xfbf7eb0c,
762 0xdeb9a167, 0x4c13985f, 0xb02c7d9c, 0x6bd3d6b8,
763 0xbbe76b5c, 0xa56e57cb, 0x37c46ef3, 0x0c03180f,
764 0x45568a13, 0x0d441a49, 0xe17fdf9e, 0x9ea92137,
765 0xa82a4d82, 0xd6bbb16d, 0x23c146e2, 0x5153a202,
766 0x57dcae8b, 0x2c0b5827, 0x4e9d9cd3, 0xad6c47c1,
767 0xc43195f5, 0xcd7487b9, 0xfff6e309, 0x05460a43,
768 0x8aac0926, 0x1e893c97, 0x5014a044, 0xa3e15b42,
769 0x5816b04e, 0xe83acdd2, 0xb9696fd0, 0x2409482d,
770 0xdd70a7ad, 0xe2b6d954, 0x67d0ceb7, 0x93ed3b7e,
771 0x17cc2edb, 0x15422a57, 0x5a98b4c2, 0xaaa4490e,
772 0xa0285d88, 0x6d5cda31, 0xc7f8933f, 0x228644a4,
775 0x186018c0, 0x238c2305, 0xc63fc67e, 0xe887e813,
776 0x8726874c, 0xb8dab8a9, 0x01040108, 0x4f214f42,
777 0x36d836ad, 0xa6a2a659, 0xd26fd2de, 0xf5f3f5fb,
778 0x79f979ef, 0x6fa16f5f, 0x917e91fc, 0x525552aa,
779 0x609d6027, 0xbccabc89, 0x9b569bac, 0x8e028e04,
780 0xa3b6a371, 0x0c300c60, 0x7bf17bff, 0x35d435b5,
781 0x1d741de8, 0xe0a7e053, 0xd77bd7f6, 0xc22fc25e,
782 0x2eb82e6d, 0x4b314b62, 0xfedffea3, 0x57415782,
783 0x155415a8, 0x77c1779f, 0x37dc37a5, 0xe5b3e57b,
784 0x9f469f8c, 0xf0e7f0d3, 0x4a354a6a, 0xda4fda9e,
785 0x587d58fa, 0xc903c906, 0x29a42955, 0x0a280a50,
786 0xb1feb1e1, 0xa0baa069, 0x6bb16b7f, 0x852e855c,
787 0xbdcebd81, 0x5d695dd2, 0x10401080, 0xf4f7f4f3,
788 0xcb0bcb16, 0x3ef83eed, 0x05140528, 0x6781671f,
789 0xe4b7e473, 0x279c2725, 0x41194132, 0x8b168b2c,
790 0xa7a6a751, 0x7de97dcf, 0x956e95dc, 0xd847d88e,
791 0xfbcbfb8b, 0xee9fee23, 0x7ced7cc7, 0x66856617,
792 0xdd53dda6, 0x175c17b8, 0x47014702, 0x9e429e84,
793 0xca0fca1e, 0x2db42d75, 0xbfc6bf91, 0x071c0738,
794 0xad8ead01, 0x5a755aea, 0x8336836c, 0x33cc3385,
795 0x6391633f, 0x02080210, 0xaa92aa39, 0x71d971af,
796 0xc807c80e, 0x196419c8, 0x49394972, 0xd943d986,
797 0xf2eff2c3, 0xe3abe34b, 0x5b715be2, 0x881a8834,
798 0x9a529aa4, 0x2698262d, 0x32c8328d, 0xb0fab0e9,
799 0xe983e91b, 0x0f3c0f78, 0xd573d5e6, 0x803a8074,
800 0xbec2be99, 0xcd13cd26, 0x34d034bd, 0x483d487a,
801 0xffdbffab, 0x7af57af7, 0x907a90f4, 0x5f615fc2,
802 0x2080201d, 0x68bd6867, 0x1a681ad0, 0xae82ae19,
803 0xb4eab4c9, 0x544d549a, 0x937693ec, 0x2288220d,
804 0x648d6407, 0xf1e3f1db, 0x73d173bf, 0x12481290,
805 0x401d403a, 0x08200840, 0xc32bc356, 0xec97ec33,
806 0xdb4bdb96, 0xa1bea161, 0x8d0e8d1c, 0x3df43df5,
807 0x976697cc, 0x00000000, 0xcf1bcf36, 0x2bac2b45,
808 0x76c57697, 0x82328264, 0xd67fd6fe, 0x1b6c1bd8,
809 0xb5eeb5c1, 0xaf86af11, 0x6ab56a77, 0x505d50ba,
810 0x45094512, 0xf3ebf3cb, 0x30c0309d, 0xef9bef2b,
811 0x3ffc3fe5, 0x55495592, 0xa2b2a279, 0xea8fea03,
812 0x6589650f, 0xbad2bab9, 0x2fbc2f65, 0xc027c04e,
813 0xde5fdebe, 0x1c701ce0, 0xfdd3fdbb, 0x4d294d52,
814 0x927292e4, 0x75c9758f, 0x06180630, 0x8a128a24,
815 0xb2f2b2f9, 0xe6bfe663, 0x0e380e70, 0x1f7c1ff8,
816 0x62956237, 0xd477d4ee, 0xa89aa829, 0x966296c4,
817 0xf9c3f99b, 0xc533c566, 0x25942535, 0x597959f2,
818 0x842a8454, 0x72d572b7, 0x39e439d5, 0x4c2d4c5a,
819 0x5e655eca, 0x78fd78e7, 0x38e038dd, 0x8c0a8c14,
820 0xd163d1c6, 0xa5aea541, 0xe2afe243, 0x6199612f,
821 0xb3f6b3f1, 0x21842115, 0x9c4a9c94, 0x1e781ef0,
822 0x43114322, 0xc73bc776, 0xfcd7fcb3, 0x04100420,
823 0x515951b2, 0x995e99bc, 0x6da96d4f, 0x0d340d68,
824 0xfacffa83, 0xdf5bdfb6, 0x7ee57ed7, 0x2490243d,
825 0x3bec3bc5, 0xab96ab31, 0xce1fce3e, 0x11441188,
826 0x8f068f0c, 0x4e254e4a, 0xb7e6b7d1, 0xeb8beb0b,
827 0x3cf03cfd, 0x813e817c, 0x946a94d4, 0xf7fbf7eb,
828 0xb9deb9a1, 0x134c1398, 0x2cb02c7d, 0xd36bd3d6,
829 0xe7bbe76b, 0x6ea56e57, 0xc437c46e, 0x030c0318,
830 0x5645568a, 0x440d441a, 0x7fe17fdf, 0xa99ea921,
831 0x2aa82a4d, 0xbbd6bbb1, 0xc123c146, 0x535153a2,
832 0xdc57dcae, 0x0b2c0b58, 0x9d4e9d9c, 0x6cad6c47,
833 0x31c43195, 0x74cd7487, 0xf6fff6e3, 0x4605460a,
834 0xac8aac09, 0x891e893c, 0x145014a0, 0xe1a3e15b,
835 0x165816b0, 0x3ae83acd, 0x69b9696f, 0x09240948,
836 0x70dd70a7, 0xb6e2b6d9, 0xd067d0ce, 0xed93ed3b,
837 0xcc17cc2e, 0x4215422a, 0x985a98b4, 0xa4aaa449,
838 0x28a0285d, 0x5c6d5cda, 0xf8c7f893, 0x86228644,
841 0x18186018, 0x23238c23, 0xc6c63fc6, 0xe8e887e8,
842 0x87872687, 0xb8b8dab8, 0x01010401, 0x4f4f214f,
843 0x3636d836, 0xa6a6a2a6, 0xd2d26fd2, 0xf5f5f3f5,
844 0x7979f979, 0x6f6fa16f, 0x91917e91, 0x52525552,
845 0x60609d60, 0xbcbccabc, 0x9b9b569b, 0x8e8e028e,
846 0xa3a3b6a3, 0x0c0c300c, 0x7b7bf17b, 0x3535d435,
847 0x1d1d741d, 0xe0e0a7e0, 0xd7d77bd7, 0xc2c22fc2,
848 0x2e2eb82e, 0x4b4b314b, 0xfefedffe, 0x57574157,
849 0x15155415, 0x7777c177, 0x3737dc37, 0xe5e5b3e5,
850 0x9f9f469f, 0xf0f0e7f0, 0x4a4a354a, 0xdada4fda,
851 0x58587d58, 0xc9c903c9, 0x2929a429, 0x0a0a280a,
852 0xb1b1feb1, 0xa0a0baa0, 0x6b6bb16b, 0x85852e85,
853 0xbdbdcebd, 0x5d5d695d, 0x10104010, 0xf4f4f7f4,
854 0xcbcb0bcb, 0x3e3ef83e, 0x05051405, 0x67678167,
855 0xe4e4b7e4, 0x27279c27, 0x41411941, 0x8b8b168b,
856 0xa7a7a6a7, 0x7d7de97d, 0x95956e95, 0xd8d847d8,
857 0xfbfbcbfb, 0xeeee9fee, 0x7c7ced7c, 0x66668566,
858 0xdddd53dd, 0x17175c17, 0x47470147, 0x9e9e429e,
859 0xcaca0fca, 0x2d2db42d, 0xbfbfc6bf, 0x07071c07,
860 0xadad8ead, 0x5a5a755a, 0x83833683, 0x3333cc33,
861 0x63639163, 0x02020802, 0xaaaa92aa, 0x7171d971,
862 0xc8c807c8, 0x19196419, 0x49493949, 0xd9d943d9,
863 0xf2f2eff2, 0xe3e3abe3, 0x5b5b715b, 0x88881a88,
864 0x9a9a529a, 0x26269826, 0x3232c832, 0xb0b0fab0,
865 0xe9e983e9, 0x0f0f3c0f, 0xd5d573d5, 0x80803a80,
866 0xbebec2be, 0xcdcd13cd, 0x3434d034, 0x48483d48,
867 0xffffdbff, 0x7a7af57a, 0x90907a90, 0x5f5f615f,
868 0x20208020, 0x6868bd68, 0x1a1a681a, 0xaeae82ae,
869 0xb4b4eab4, 0x54544d54, 0x93937693, 0x22228822,
870 0x64648d64, 0xf1f1e3f1, 0x7373d173, 0x12124812,
871 0x40401d40, 0x08082008, 0xc3c32bc3, 0xecec97ec,
872 0xdbdb4bdb, 0xa1a1bea1, 0x8d8d0e8d, 0x3d3df43d,
873 0x97976697, 0x00000000, 0xcfcf1bcf, 0x2b2bac2b,
874 0x7676c576, 0x82823282, 0xd6d67fd6, 0x1b1b6c1b,
875 0xb5b5eeb5, 0xafaf86af, 0x6a6ab56a, 0x50505d50,
876 0x45450945, 0xf3f3ebf3, 0x3030c030, 0xefef9bef,
877 0x3f3ffc3f, 0x55554955, 0xa2a2b2a2, 0xeaea8fea,
878 0x65658965, 0xbabad2ba, 0x2f2fbc2f, 0xc0c027c0,
879 0xdede5fde, 0x1c1c701c, 0xfdfdd3fd, 0x4d4d294d,
880 0x92927292, 0x7575c975, 0x06061806, 0x8a8a128a,
881 0xb2b2f2b2, 0xe6e6bfe6, 0x0e0e380e, 0x1f1f7c1f,
882 0x62629562, 0xd4d477d4, 0xa8a89aa8, 0x96966296,
883 0xf9f9c3f9, 0xc5c533c5, 0x25259425, 0x59597959,
884 0x84842a84, 0x7272d572, 0x3939e439, 0x4c4c2d4c,
885 0x5e5e655e, 0x7878fd78, 0x3838e038, 0x8c8c0a8c,
886 0xd1d163d1, 0xa5a5aea5, 0xe2e2afe2, 0x61619961,
887 0xb3b3f6b3, 0x21218421, 0x9c9c4a9c, 0x1e1e781e,
888 0x43431143, 0xc7c73bc7, 0xfcfcd7fc, 0x04041004,
889 0x51515951, 0x99995e99, 0x6d6da96d, 0x0d0d340d,
890 0xfafacffa, 0xdfdf5bdf, 0x7e7ee57e, 0x24249024,
891 0x3b3bec3b, 0xabab96ab, 0xcece1fce, 0x11114411,
892 0x8f8f068f, 0x4e4e254e, 0xb7b7e6b7, 0xebeb8beb,
893 0x3c3cf03c, 0x81813e81, 0x94946a94, 0xf7f7fbf7,
894 0xb9b9deb9, 0x13134c13, 0x2c2cb02c, 0xd3d36bd3,
895 0xe7e7bbe7, 0x6e6ea56e, 0xc4c437c4, 0x03030c03,
896 0x56564556, 0x44440d44, 0x7f7fe17f, 0xa9a99ea9,
897 0x2a2aa82a, 0xbbbbd6bb, 0xc1c123c1, 0x53535153,
898 0xdcdc57dc, 0x0b0b2c0b, 0x9d9d4e9d, 0x6c6cad6c,
899 0x3131c431, 0x7474cd74, 0xf6f6fff6, 0x46460546,
900 0xacac8aac, 0x89891e89, 0x14145014, 0xe1e1a3e1,
901 0x16165816, 0x3a3ae83a, 0x6969b969, 0x09092409,
902 0x7070dd70, 0xb6b6e2b6, 0xd0d067d0, 0xeded93ed,
903 0xcccc17cc, 0x42421542, 0x98985a98, 0xa4a4aaa4,
904 0x2828a028, 0x5c5c6d5c, 0xf8f8c7f8, 0x86862286,
907 0xd8181860, 0x2623238c, 0xb8c6c63f, 0xfbe8e887,
908 0xcb878726, 0x11b8b8da, 0x09010104, 0x0d4f4f21,
909 0x9b3636d8, 0xffa6a6a2, 0x0cd2d26f, 0x0ef5f5f3,
910 0x967979f9, 0x306f6fa1, 0x6d91917e, 0xf8525255,
911 0x4760609d, 0x35bcbcca, 0x379b9b56, 0x8a8e8e02,
912 0xd2a3a3b6, 0x6c0c0c30, 0x847b7bf1, 0x803535d4,
913 0xf51d1d74, 0xb3e0e0a7, 0x21d7d77b, 0x9cc2c22f,
914 0x432e2eb8, 0x294b4b31, 0x5dfefedf, 0xd5575741,
915 0xbd151554, 0xe87777c1, 0x923737dc, 0x9ee5e5b3,
916 0x139f9f46, 0x23f0f0e7, 0x204a4a35, 0x44dada4f,
917 0xa258587d, 0xcfc9c903, 0x7c2929a4, 0x5a0a0a28,
918 0x50b1b1fe, 0xc9a0a0ba, 0x146b6bb1, 0xd985852e,
919 0x3cbdbdce, 0x8f5d5d69, 0x90101040, 0x07f4f4f7,
920 0xddcbcb0b, 0xd33e3ef8, 0x2d050514, 0x78676781,
921 0x97e4e4b7, 0x0227279c, 0x73414119, 0xa78b8b16,
922 0xf6a7a7a6, 0xb27d7de9, 0x4995956e, 0x56d8d847,
923 0x70fbfbcb, 0xcdeeee9f, 0xbb7c7ced, 0x71666685,
924 0x7bdddd53, 0xaf17175c, 0x45474701, 0x1a9e9e42,
925 0xd4caca0f, 0x582d2db4, 0x2ebfbfc6, 0x3f07071c,
926 0xacadad8e, 0xb05a5a75, 0xef838336, 0xb63333cc,
927 0x5c636391, 0x12020208, 0x93aaaa92, 0xde7171d9,
928 0xc6c8c807, 0xd1191964, 0x3b494939, 0x5fd9d943,
929 0x31f2f2ef, 0xa8e3e3ab, 0xb95b5b71, 0xbc88881a,
930 0x3e9a9a52, 0x0b262698, 0xbf3232c8, 0x59b0b0fa,
931 0xf2e9e983, 0x770f0f3c, 0x33d5d573, 0xf480803a,
932 0x27bebec2, 0xebcdcd13, 0x893434d0, 0x3248483d,
933 0x54ffffdb, 0x8d7a7af5, 0x6490907a, 0x9d5f5f61,
934 0x3d202080, 0x0f6868bd, 0xca1a1a68, 0xb7aeae82,
935 0x7db4b4ea, 0xce54544d, 0x7f939376, 0x2f222288,
936 0x6364648d, 0x2af1f1e3, 0xcc7373d1, 0x82121248,
937 0x7a40401d, 0x48080820, 0x95c3c32b, 0xdfecec97,
938 0x4ddbdb4b, 0xc0a1a1be, 0x918d8d0e, 0xc83d3df4,
939 0x5b979766, 0x00000000, 0xf9cfcf1b, 0x6e2b2bac,
940 0xe17676c5, 0xe6828232, 0x28d6d67f, 0xc31b1b6c,
941 0x74b5b5ee, 0xbeafaf86, 0x1d6a6ab5, 0xea50505d,
942 0x57454509, 0x38f3f3eb, 0xad3030c0, 0xc4efef9b,
943 0xda3f3ffc, 0xc7555549, 0xdba2a2b2, 0xe9eaea8f,
944 0x6a656589, 0x03babad2, 0x4a2f2fbc, 0x8ec0c027,
945 0x60dede5f, 0xfc1c1c70, 0x46fdfdd3, 0x1f4d4d29,
946 0x76929272, 0xfa7575c9, 0x36060618, 0xae8a8a12,
947 0x4bb2b2f2, 0x85e6e6bf, 0x7e0e0e38, 0xe71f1f7c,
948 0x55626295, 0x3ad4d477, 0x81a8a89a, 0x52969662,
949 0x62f9f9c3, 0xa3c5c533, 0x10252594, 0xab595979,
950 0xd084842a, 0xc57272d5, 0xec3939e4, 0x164c4c2d,
951 0x945e5e65, 0x9f7878fd, 0xe53838e0, 0x988c8c0a,
952 0x17d1d163, 0xe4a5a5ae, 0xa1e2e2af, 0x4e616199,
953 0x42b3b3f6, 0x34212184, 0x089c9c4a, 0xee1e1e78,
954 0x61434311, 0xb1c7c73b, 0x4ffcfcd7, 0x24040410,
955 0xe3515159, 0x2599995e, 0x226d6da9, 0x650d0d34,
956 0x79fafacf, 0x69dfdf5b, 0xa97e7ee5, 0x19242490,
957 0xfe3b3bec, 0x9aabab96, 0xf0cece1f, 0x99111144,
958 0x838f8f06, 0x044e4e25, 0x66b7b7e6, 0xe0ebeb8b,
959 0xc13c3cf0, 0xfd81813e, 0x4094946a, 0x1cf7f7fb,
960 0x18b9b9de, 0x8b13134c, 0x512c2cb0, 0x05d3d36b,
961 0x8ce7e7bb, 0x396e6ea5, 0xaac4c437, 0x1b03030c,
962 0xdc565645, 0x5e44440d, 0xa07f7fe1, 0x88a9a99e,
963 0x672a2aa8, 0x0abbbbd6, 0x87c1c123, 0xf1535351,
964 0x72dcdc57, 0x530b0b2c, 0x019d9d4e, 0x2b6c6cad,
965 0xa43131c4, 0xf37474cd, 0x15f6f6ff, 0x4c464605,
966 0xa5acac8a, 0xb589891e, 0xb4141450, 0xbae1e1a3,
967 0xa6161658, 0xf73a3ae8, 0x066969b9, 0x41090924,
968 0xd77070dd, 0x6fb6b6e2, 0x1ed0d067, 0xd6eded93,
969 0xe2cccc17, 0x68424215, 0x2c98985a, 0xeda4a4aa,
970 0x752828a0, 0x865c5c6d, 0x6bf8f8c7, 0xc2868622,
973 0x30d81818, 0x46262323, 0x91b8c6c6, 0xcdfbe8e8,
974 0x13cb8787, 0x6d11b8b8, 0x02090101, 0x9e0d4f4f,
975 0x6c9b3636, 0x51ffa6a6, 0xb90cd2d2, 0xf70ef5f5,
976 0xf2967979, 0xde306f6f, 0x3f6d9191, 0xa4f85252,
977 0xc0476060, 0x6535bcbc, 0x2b379b9b, 0x018a8e8e,
978 0x5bd2a3a3, 0x186c0c0c, 0xf6847b7b, 0x6a803535,
979 0x3af51d1d, 0xddb3e0e0, 0xb321d7d7, 0x999cc2c2,
980 0x5c432e2e, 0x96294b4b, 0xe15dfefe, 0xaed55757,
981 0x2abd1515, 0xeee87777, 0x6e923737, 0xd79ee5e5,
982 0x23139f9f, 0xfd23f0f0, 0x94204a4a, 0xa944dada,
983 0xb0a25858, 0x8fcfc9c9, 0x527c2929, 0x145a0a0a,
984 0x7f50b1b1, 0x5dc9a0a0, 0xd6146b6b, 0x17d98585,
985 0x673cbdbd, 0xba8f5d5d, 0x20901010, 0xf507f4f4,
986 0x8bddcbcb, 0x7cd33e3e, 0x0a2d0505, 0xce786767,
987 0xd597e4e4, 0x4e022727, 0x82734141, 0x0ba78b8b,
988 0x53f6a7a7, 0xfab27d7d, 0x37499595, 0xad56d8d8,
989 0xeb70fbfb, 0xc1cdeeee, 0xf8bb7c7c, 0xcc716666,
990 0xa77bdddd, 0x2eaf1717, 0x8e454747, 0x211a9e9e,
991 0x89d4caca, 0x5a582d2d, 0x632ebfbf, 0x0e3f0707,
992 0x47acadad, 0xb4b05a5a, 0x1bef8383, 0x66b63333,
993 0xc65c6363, 0x04120202, 0x4993aaaa, 0xe2de7171,
994 0x8dc6c8c8, 0x32d11919, 0x923b4949, 0xaf5fd9d9,
995 0xf931f2f2, 0xdba8e3e3, 0xb6b95b5b, 0x0dbc8888,
996 0x293e9a9a, 0x4c0b2626, 0x64bf3232, 0x7d59b0b0,
997 0xcff2e9e9, 0x1e770f0f, 0xb733d5d5, 0x1df48080,
998 0x6127bebe, 0x87ebcdcd, 0x68893434, 0x90324848,
999 0xe354ffff, 0xf48d7a7a, 0x3d649090, 0xbe9d5f5f,
1000 0x403d2020, 0xd00f6868, 0x34ca1a1a, 0x41b7aeae,
1001 0x757db4b4, 0xa8ce5454, 0x3b7f9393, 0x442f2222,
1002 0xc8636464, 0xff2af1f1, 0xe6cc7373, 0x24821212,
1003 0x807a4040, 0x10480808, 0x9b95c3c3, 0xc5dfecec,
1004 0xab4ddbdb, 0x5fc0a1a1, 0x07918d8d, 0x7ac83d3d,
1005 0x335b9797, 0x00000000, 0x83f9cfcf, 0x566e2b2b,
1006 0xece17676, 0x19e68282, 0xb128d6d6, 0x36c31b1b,
1007 0x7774b5b5, 0x43beafaf, 0xd41d6a6a, 0xa0ea5050,
1008 0x8a574545, 0xfb38f3f3, 0x60ad3030, 0xc3c4efef,
1009 0x7eda3f3f, 0xaac75555, 0x59dba2a2, 0xc9e9eaea,
1010 0xca6a6565, 0x6903baba, 0x5e4a2f2f, 0x9d8ec0c0,
1011 0xa160dede, 0x38fc1c1c, 0xe746fdfd, 0x9a1f4d4d,
1012 0x39769292, 0xeafa7575, 0x0c360606, 0x09ae8a8a,
1013 0x794bb2b2, 0xd185e6e6, 0x1c7e0e0e, 0x3ee71f1f,
1014 0xc4556262, 0xb53ad4d4, 0x4d81a8a8, 0x31529696,
1015 0xef62f9f9, 0x97a3c5c5, 0x4a102525, 0xb2ab5959,
1016 0x15d08484, 0xe4c57272, 0x72ec3939, 0x98164c4c,
1017 0xbc945e5e, 0xf09f7878, 0x70e53838, 0x05988c8c,
1018 0xbf17d1d1, 0x57e4a5a5, 0xd9a1e2e2, 0xc24e6161,
1019 0x7b42b3b3, 0x42342121, 0x25089c9c, 0x3cee1e1e,
1020 0x86614343, 0x93b1c7c7, 0xe54ffcfc, 0x08240404,
1021 0xa2e35151, 0x2f259999, 0xda226d6d, 0x1a650d0d,
1022 0xe979fafa, 0xa369dfdf, 0xfca97e7e, 0x48192424,
1023 0x76fe3b3b, 0x4b9aabab, 0x81f0cece, 0x22991111,
1024 0x03838f8f, 0x9c044e4e, 0x7366b7b7, 0xcbe0ebeb,
1025 0x78c13c3c, 0x1ffd8181, 0x35409494, 0xf31cf7f7,
1026 0x6f18b9b9, 0x268b1313, 0x58512c2c, 0xbb05d3d3,
1027 0xd38ce7e7, 0xdc396e6e, 0x95aac4c4, 0x061b0303,
1028 0xacdc5656, 0x885e4444, 0xfea07f7f, 0x4f88a9a9,
1029 0x54672a2a, 0x6b0abbbb, 0x9f87c1c1, 0xa6f15353,
1030 0xa572dcdc, 0x16530b0b, 0x27019d9d, 0xd82b6c6c,
1031 0x62a43131, 0xe8f37474, 0xf115f6f6, 0x8c4c4646,
1032 0x45a5acac, 0x0fb58989, 0x28b41414, 0xdfbae1e1,
1033 0x2ca61616, 0x74f73a3a, 0xd2066969, 0x12410909,
1034 0xe0d77070, 0x716fb6b6, 0xbd1ed0d0, 0xc7d6eded,
1035 0x85e2cccc, 0x84684242, 0x2d2c9898, 0x55eda4a4,
1036 0x50752828, 0xb8865c5c, 0xed6bf8f8, 0x11c28686,
1039 0x7830d818, 0xaf462623, 0xf991b8c6, 0x6fcdfbe8,
1040 0xa113cb87, 0x626d11b8, 0x05020901, 0x6e9e0d4f,
1041 0xee6c9b36, 0x0451ffa6, 0xbdb90cd2, 0x06f70ef5,
1042 0x80f29679, 0xcede306f, 0xef3f6d91, 0x07a4f852,
1043 0xfdc04760, 0x766535bc, 0xcd2b379b, 0x8c018a8e,
1044 0x155bd2a3, 0x3c186c0c, 0x8af6847b, 0xe16a8035,
1045 0x693af51d, 0x47ddb3e0, 0xacb321d7, 0xed999cc2,
1046 0x965c432e, 0x7a96294b, 0x21e15dfe, 0x16aed557,
1047 0x412abd15, 0xb6eee877, 0xeb6e9237, 0x56d79ee5,
1048 0xd923139f, 0x17fd23f0, 0x7f94204a, 0x95a944da,
1049 0x25b0a258, 0xca8fcfc9, 0x8d527c29, 0x22145a0a,
1050 0x4f7f50b1, 0x1a5dc9a0, 0xdad6146b, 0xab17d985,
1051 0x73673cbd, 0x34ba8f5d, 0x50209010, 0x03f507f4,
1052 0xc08bddcb, 0xc67cd33e, 0x110a2d05, 0xe6ce7867,
1053 0x53d597e4, 0xbb4e0227, 0x58827341, 0x9d0ba78b,
1054 0x0153f6a7, 0x94fab27d, 0xfb374995, 0x9fad56d8,
1055 0x30eb70fb, 0x71c1cdee, 0x91f8bb7c, 0xe3cc7166,
1056 0x8ea77bdd, 0x4b2eaf17, 0x468e4547, 0xdc211a9e,
1057 0xc589d4ca, 0x995a582d, 0x79632ebf, 0x1b0e3f07,
1058 0x2347acad, 0x2fb4b05a, 0xb51bef83, 0xff66b633,
1059 0xf2c65c63, 0x0a041202, 0x384993aa, 0xa8e2de71,
1060 0xcf8dc6c8, 0x7d32d119, 0x70923b49, 0x9aaf5fd9,
1061 0x1df931f2, 0x48dba8e3, 0x2ab6b95b, 0x920dbc88,
1062 0xc8293e9a, 0xbe4c0b26, 0xfa64bf32, 0x4a7d59b0,
1063 0x6acff2e9, 0x331e770f, 0xa6b733d5, 0xba1df480,
1064 0x7c6127be, 0xde87ebcd, 0xe4688934, 0x75903248,
1065 0x24e354ff, 0x8ff48d7a, 0xea3d6490, 0x3ebe9d5f,
1066 0xa0403d20, 0xd5d00f68, 0x7234ca1a, 0x2c41b7ae,
1067 0x5e757db4, 0x19a8ce54, 0xe53b7f93, 0xaa442f22,
1068 0xe9c86364, 0x12ff2af1, 0xa2e6cc73, 0x5a248212,
1069 0x5d807a40, 0x28104808, 0xe89b95c3, 0x7bc5dfec,
1070 0x90ab4ddb, 0x1f5fc0a1, 0x8307918d, 0xc97ac83d,
1071 0xf1335b97, 0x00000000, 0xd483f9cf, 0x87566e2b,
1072 0xb3ece176, 0xb019e682, 0xa9b128d6, 0x7736c31b,
1073 0x5b7774b5, 0x2943beaf, 0xdfd41d6a, 0x0da0ea50,
1074 0x4c8a5745, 0x18fb38f3, 0xf060ad30, 0x74c3c4ef,
1075 0xc37eda3f, 0x1caac755, 0x1059dba2, 0x65c9e9ea,
1076 0xecca6a65, 0x686903ba, 0x935e4a2f, 0xe79d8ec0,
1077 0x81a160de, 0x6c38fc1c, 0x2ee746fd, 0x649a1f4d,
1078 0xe0397692, 0xbceafa75, 0x1e0c3606, 0x9809ae8a,
1079 0x40794bb2, 0x59d185e6, 0x361c7e0e, 0x633ee71f,
1080 0xf7c45562, 0xa3b53ad4, 0x324d81a8, 0xf4315296,
1081 0x3aef62f9, 0xf697a3c5, 0xb14a1025, 0x20b2ab59,
1082 0xae15d084, 0xa7e4c572, 0xdd72ec39, 0x6198164c,
1083 0x3bbc945e, 0x85f09f78, 0xd870e538, 0x8605988c,
1084 0xb2bf17d1, 0x0b57e4a5, 0x4dd9a1e2, 0xf8c24e61,
1085 0x457b42b3, 0xa5423421, 0xd625089c, 0x663cee1e,
1086 0x52866143, 0xfc93b1c7, 0x2be54ffc, 0x14082404,
1087 0x08a2e351, 0xc72f2599, 0xc4da226d, 0x391a650d,
1088 0x35e979fa, 0x84a369df, 0x9bfca97e, 0xb4481924,
1089 0xd776fe3b, 0x3d4b9aab, 0xd181f0ce, 0x55229911,
1090 0x8903838f, 0x6b9c044e, 0x517366b7, 0x60cbe0eb,
1091 0xcc78c13c, 0xbf1ffd81, 0xfe354094, 0x0cf31cf7,
1092 0x676f18b9, 0x5f268b13, 0x9c58512c, 0xb8bb05d3,
1093 0x5cd38ce7, 0xcbdc396e, 0xf395aac4, 0x0f061b03,
1094 0x13acdc56, 0x49885e44, 0x9efea07f, 0x374f88a9,
1095 0x8254672a, 0x6d6b0abb, 0xe29f87c1, 0x02a6f153,
1096 0x8ba572dc, 0x2716530b, 0xd327019d, 0xc1d82b6c,
1097 0xf562a431, 0xb9e8f374, 0x09f115f6, 0x438c4c46,
1098 0x2645a5ac, 0x970fb589, 0x4428b414, 0x42dfbae1,
1099 0x4e2ca616, 0xd274f73a, 0xd0d20669, 0x2d124109,
1100 0xade0d770, 0x54716fb6, 0xb7bd1ed0, 0x7ec7d6ed,
1101 0xdb85e2cc, 0x57846842, 0xc22d2c98, 0x0e55eda4,
1102 0x88507528, 0x31b8865c, 0x3fed6bf8, 0xa411c286,
1106 __constant u32 rch[R + 1] =
1121 __constant u32 rcl[R + 1] =
1136 // this is a highly optimized that assumes dgst[16] = { 0 }; only reuse of no 2nd transform is needed
1138 static void whirlpool_transform (const u32x w[16], u32x dgst[16], __local u32 (*s_Ch)[256], __local u32 (*s_Cl)[256])
1184 for (int i = 0; i < 8; i++)
1186 const u32x Lp0 = stateh[(i + 8) & 7] >> 24;
1187 const u32x Lp1 = stateh[(i + 7) & 7] >> 16;
1188 const u32x Lp2 = stateh[(i + 6) & 7] >> 8;
1189 const u32x Lp3 = stateh[(i + 5) & 7] >> 0;
1190 const u32x Lp4 = statel[(i + 4) & 7] >> 24;
1191 const u32x Lp5 = statel[(i + 3) & 7] >> 16;
1192 const u32x Lp6 = statel[(i + 2) & 7] >> 8;
1193 const u32x Lp7 = statel[(i + 1) & 7] >> 0;
1195 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1196 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1197 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1198 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1199 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1200 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1201 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1202 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1204 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1205 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1206 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1207 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1208 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1209 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1210 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1211 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1214 stateh[0] = Lh[0] ^ Kh[0];
1215 statel[0] = Ll[0] ^ Kl[0];
1216 stateh[1] = Lh[1] ^ Kh[1];
1217 statel[1] = Ll[1] ^ Kl[1];
1218 stateh[2] = Lh[2] ^ Kh[2];
1219 statel[2] = Ll[2] ^ Kl[2];
1220 stateh[3] = Lh[3] ^ Kh[3];
1221 statel[3] = Ll[3] ^ Kl[3];
1222 stateh[4] = Lh[4] ^ Kh[4];
1223 statel[4] = Ll[4] ^ Kl[4];
1224 stateh[5] = Lh[5] ^ Kh[5];
1225 statel[5] = Ll[5] ^ Kl[5];
1226 stateh[6] = Lh[6] ^ Kh[6];
1227 statel[6] = Ll[6] ^ Kl[6];
1228 stateh[7] = Lh[7] ^ Kh[7];
1229 statel[7] = Ll[7] ^ Kl[7];
1231 for (int r = 2; r <= R; r++)
1237 for (int i = 0; i < 8; i++)
1239 const u32x Lp0 = Kh[(i + 8) & 7] >> 24;
1240 const u32x Lp1 = Kh[(i + 7) & 7] >> 16;
1241 const u32x Lp2 = Kh[(i + 6) & 7] >> 8;
1242 const u32x Lp3 = Kh[(i + 5) & 7] >> 0;
1243 const u32x Lp4 = Kl[(i + 4) & 7] >> 24;
1244 const u32x Lp5 = Kl[(i + 3) & 7] >> 16;
1245 const u32x Lp6 = Kl[(i + 2) & 7] >> 8;
1246 const u32x Lp7 = Kl[(i + 1) & 7] >> 0;
1248 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1249 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1250 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1251 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1252 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1253 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1254 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1255 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1257 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1258 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1259 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1260 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1261 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1262 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1263 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1264 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1267 Kh[0] = Lh[0] ^ rch[r];
1268 Kl[0] = Ll[0] ^ rcl[r];
1285 for (int i = 0; i < 8; i++)
1287 const u32x Lp0 = stateh[(i + 8) & 7] >> 24;
1288 const u32x Lp1 = stateh[(i + 7) & 7] >> 16;
1289 const u32x Lp2 = stateh[(i + 6) & 7] >> 8;
1290 const u32x Lp3 = stateh[(i + 5) & 7] >> 0;
1291 const u32x Lp4 = statel[(i + 4) & 7] >> 24;
1292 const u32x Lp5 = statel[(i + 3) & 7] >> 16;
1293 const u32x Lp6 = statel[(i + 2) & 7] >> 8;
1294 const u32x Lp7 = statel[(i + 1) & 7] >> 0;
1296 Lh[i] = BOX (s_Ch, 0, Lp0 & 0xff)
1297 ^ BOX (s_Ch, 1, Lp1 & 0xff)
1298 ^ BOX (s_Ch, 2, Lp2 & 0xff)
1299 ^ BOX (s_Ch, 3, Lp3 & 0xff)
1300 ^ BOX (s_Ch, 4, Lp4 & 0xff)
1301 ^ BOX (s_Ch, 5, Lp5 & 0xff)
1302 ^ BOX (s_Ch, 6, Lp6 & 0xff)
1303 ^ BOX (s_Ch, 7, Lp7 & 0xff);
1305 Ll[i] = BOX (s_Cl, 0, Lp0 & 0xff)
1306 ^ BOX (s_Cl, 1, Lp1 & 0xff)
1307 ^ BOX (s_Cl, 2, Lp2 & 0xff)
1308 ^ BOX (s_Cl, 3, Lp3 & 0xff)
1309 ^ BOX (s_Cl, 4, Lp4 & 0xff)
1310 ^ BOX (s_Cl, 5, Lp5 & 0xff)
1311 ^ BOX (s_Cl, 6, Lp6 & 0xff)
1312 ^ BOX (s_Cl, 7, Lp7 & 0xff);
1315 stateh[0] = Lh[0] ^ Kh[0];
1316 statel[0] = Ll[0] ^ Kl[0];
1317 stateh[1] = Lh[1] ^ Kh[1];
1318 statel[1] = Ll[1] ^ Kl[1];
1319 stateh[2] = Lh[2] ^ Kh[2];
1320 statel[2] = Ll[2] ^ Kl[2];
1321 stateh[3] = Lh[3] ^ Kh[3];
1322 statel[3] = Ll[3] ^ Kl[3];
1323 stateh[4] = Lh[4] ^ Kh[4];
1324 statel[4] = Ll[4] ^ Kl[4];
1325 stateh[5] = Lh[5] ^ Kh[5];
1326 statel[5] = Ll[5] ^ Kl[5];
1327 stateh[6] = Lh[6] ^ Kh[6];
1328 statel[6] = Ll[6] ^ Kl[6];
1329 stateh[7] = Lh[7] ^ Kh[7];
1330 statel[7] = Ll[7] ^ Kl[7];
1333 dgst[ 0] = stateh[0] ^ w[ 0];
1334 dgst[ 1] = statel[0] ^ w[ 1];
1335 dgst[ 2] = stateh[1] ^ w[ 2];
1336 dgst[ 3] = statel[1] ^ w[ 3];
1337 dgst[ 4] = stateh[2] ^ w[ 4];
1338 dgst[ 5] = statel[2] ^ w[ 5];
1339 dgst[ 6] = stateh[3] ^ w[ 6];
1340 dgst[ 7] = statel[3] ^ w[ 7];
1341 dgst[ 8] = stateh[4] ^ w[ 8];
1342 dgst[ 9] = statel[4] ^ w[ 9];
1343 dgst[10] = stateh[5] ^ w[10];
1344 dgst[11] = statel[5] ^ w[11];
1345 dgst[12] = stateh[6] ^ w[12];
1346 dgst[13] = statel[6] ^ w[13];
1347 dgst[14] = stateh[7] ^ w[14];
1348 dgst[15] = statel[7] ^ w[15];
1351 __kernel void m06100_m04 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global netntlm_t *netntlm_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1357 const u32 gid = get_global_id (0);
1358 const u32 lid = get_local_id (0);
1359 const u32 lsz = get_local_size (0);
1365 __local u32 s_Ch[8][256];
1366 __local u32 s_Cl[8][256];
1368 for (u32 i = lid; i < 256; i += lsz)
1370 s_Ch[0][i] = Ch[0][i];
1371 s_Ch[1][i] = Ch[1][i];
1372 s_Ch[2][i] = Ch[2][i];
1373 s_Ch[3][i] = Ch[3][i];
1374 s_Ch[4][i] = Ch[4][i];
1375 s_Ch[5][i] = Ch[5][i];
1376 s_Ch[6][i] = Ch[6][i];
1377 s_Ch[7][i] = Ch[7][i];
1379 s_Cl[0][i] = Cl[0][i];
1380 s_Cl[1][i] = Cl[1][i];
1381 s_Cl[2][i] = Cl[2][i];
1382 s_Cl[3][i] = Cl[3][i];
1383 s_Cl[4][i] = Cl[4][i];
1384 s_Cl[5][i] = Cl[5][i];
1385 s_Cl[6][i] = Cl[6][i];
1386 s_Cl[7][i] = Cl[7][i];
1389 barrier (CLK_LOCAL_MEM_FENCE);
1391 if (gid >= gid_max) return;
1400 pw_buf0[0] = pws[gid].i[0];
1401 pw_buf0[1] = pws[gid].i[1];
1402 pw_buf0[2] = pws[gid].i[2];
1403 pw_buf0[3] = pws[gid].i[3];
1404 pw_buf1[0] = pws[gid].i[4];
1405 pw_buf1[1] = pws[gid].i[5];
1406 pw_buf1[2] = pws[gid].i[6];
1407 pw_buf1[3] = pws[gid].i[7];
1409 const u32 pw_len = pws[gid].pw_len;
1415 for (u32 il_pos = 0; il_pos < il_cnt; il_pos += VECT_SIZE)
1422 const u32x out_len = apply_rules_vect (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
1424 append_0x80_2x4_VV (w0, w1, out_len);
1428 w[ 0] = swap32 (w0[0]);
1429 w[ 1] = swap32 (w0[1]);
1430 w[ 2] = swap32 (w0[2]);
1431 w[ 3] = swap32 (w0[3]);
1432 w[ 4] = swap32 (w1[0]);
1433 w[ 5] = swap32 (w1[1]);
1434 w[ 6] = swap32 (w1[2]);
1435 w[ 7] = swap32 (w1[3]);
1443 w[15] = out_len * 8;
1468 whirlpool_transform (w, dgst, s_Ch, s_Cl);
1470 COMPARE_M_SIMD (dgst[0], dgst[1], dgst[2], dgst[3]);
1474 __kernel void m06100_m08 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1478 __kernel void m06100_m16 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1482 __kernel void m06100_s04 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global netntlm_t *netntlm_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1488 const u32 gid = get_global_id (0);
1489 const u32 lid = get_local_id (0);
1490 const u32 lsz = get_local_size (0);
1496 __local u32 s_Ch[8][256];
1497 __local u32 s_Cl[8][256];
1499 for (u32 i = lid; i < 256; i += lsz)
1501 s_Ch[0][i] = Ch[0][i];
1502 s_Ch[1][i] = Ch[1][i];
1503 s_Ch[2][i] = Ch[2][i];
1504 s_Ch[3][i] = Ch[3][i];
1505 s_Ch[4][i] = Ch[4][i];
1506 s_Ch[5][i] = Ch[5][i];
1507 s_Ch[6][i] = Ch[6][i];
1508 s_Ch[7][i] = Ch[7][i];
1510 s_Cl[0][i] = Cl[0][i];
1511 s_Cl[1][i] = Cl[1][i];
1512 s_Cl[2][i] = Cl[2][i];
1513 s_Cl[3][i] = Cl[3][i];
1514 s_Cl[4][i] = Cl[4][i];
1515 s_Cl[5][i] = Cl[5][i];
1516 s_Cl[6][i] = Cl[6][i];
1517 s_Cl[7][i] = Cl[7][i];
1520 barrier (CLK_LOCAL_MEM_FENCE);
1522 if (gid >= gid_max) return;
1531 pw_buf0[0] = pws[gid].i[0];
1532 pw_buf0[1] = pws[gid].i[1];
1533 pw_buf0[2] = pws[gid].i[2];
1534 pw_buf0[3] = pws[gid].i[3];
1535 pw_buf1[0] = pws[gid].i[4];
1536 pw_buf1[1] = pws[gid].i[5];
1537 pw_buf1[2] = pws[gid].i[6];
1538 pw_buf1[3] = pws[gid].i[7];
1540 const u32 pw_len = pws[gid].pw_len;
1546 const u32 search[4] =
1548 digests_buf[digests_offset].digest_buf[DGST_R0],
1549 digests_buf[digests_offset].digest_buf[DGST_R1],
1550 digests_buf[digests_offset].digest_buf[DGST_R2],
1551 digests_buf[digests_offset].digest_buf[DGST_R3]
1558 for (u32 il_pos = 0; il_pos < il_cnt; il_pos += VECT_SIZE)
1565 const u32x out_len = apply_rules_vect (pw_buf0, pw_buf1, pw_len, rules_buf, il_pos, w0, w1);
1567 append_0x80_2x4_VV (w0, w1, out_len);
1571 w[ 0] = swap32 (w0[0]);
1572 w[ 1] = swap32 (w0[1]);
1573 w[ 2] = swap32 (w0[2]);
1574 w[ 3] = swap32 (w0[3]);
1575 w[ 4] = swap32 (w1[0]);
1576 w[ 5] = swap32 (w1[1]);
1577 w[ 6] = swap32 (w1[2]);
1578 w[ 7] = swap32 (w1[3]);
1586 w[15] = out_len * 8;
1611 whirlpool_transform (w, dgst, s_Ch, s_Cl);
1613 COMPARE_S_SIMD (dgst[0], dgst[1], dgst[2], dgst[3]);
1617 __kernel void m06100_s08 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)
1621 __kernel void m06100_s16 (__global pw_t *pws, __global kernel_rule_t *rules_buf, __global comb_t *combs_buf, __global bf_t *bfs_buf, __global void *tmps, __global void *hooks, __global u32 *bitmaps_buf_s1_a, __global u32 *bitmaps_buf_s1_b, __global u32 *bitmaps_buf_s1_c, __global u32 *bitmaps_buf_s1_d, __global u32 *bitmaps_buf_s2_a, __global u32 *bitmaps_buf_s2_b, __global u32 *bitmaps_buf_s2_c, __global u32 *bitmaps_buf_s2_d, __global plain_t *plains_buf, __global digest_t *digests_buf, __global u32 *hashes_shown, __global salt_t *salt_bufs, __global void *esalt_bufs, __global u32 *d_return_buf, __global u32 *d_scryptV_buf, const u32 bitmap_mask, const u32 bitmap_shift1, const u32 bitmap_shift2, const u32 salt_pos, const u32 loop_pos, const u32 loop_cnt, const u32 il_cnt, const u32 digests_cnt, const u32 digests_offset, const u32 combs_mode, const u32 gid_max)