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