blob: 40c89fa136ebb6329c7bc16c8be5bd6967b5d857 [file] [log] [blame]
David Brownfecda2d2017-09-07 10:20:34 -06001/* test_aes.c - TinyCrypt
2 * Implementation of some AES-128 tests (including NIST tests)
3 */
4
5/*
6 * Copyright (C) 2015 by Intel Corporation, All Rights Reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions are met:
10 *
11 * - Redistributions of source code must retain the above copyright notice,
12 * this list of conditions and the following disclaimer.
13 *
14 * - Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the distribution.
17 *
18 * - Neither the name of Intel Corporation nor the names of its contributors
19 * may be used to endorse or promote products derived from this software
20 * without specific prior written permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
26 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32 * POSSIBILITY OF SUCH DAMAGE.
33 */
34
35/*
36 * DESCRIPTION
37 * This module tests the following AES routines:
38 *
39 * Scenarios tested include:
40 * - AES128 NIST key schedule test
41 * - AES128 NIST encryption test
42 * - AES128 NIST fixed-key and variable-text
43 * - AES128 NIST variable-key and fixed-text
44 */
45
46#include <tinycrypt/aes.h>
47#include <tinycrypt/constants.h>
48#include <test_utils.h>
49
50#include <stdlib.h>
51#include <stdio.h>
52#include <string.h>
53
54#include <stdint.h>
55#include <stddef.h>
56
57#define NUM_OF_NIST_KEYS 16
58#define NUM_OF_FIXED_KEYS 128
59
60
61struct kat_table {
62 uint8_t in[NUM_OF_NIST_KEYS];
63 uint8_t out[NUM_OF_NIST_KEYS];
64};
65
66/*
67 * NIST test key schedule.
68 */
69int test_1(void)
70{
71 int result = TC_PASS;
72 const uint8_t nist_key[NUM_OF_NIST_KEYS] = {
73 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
74 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
75 };
76 const struct tc_aes_key_sched_struct expected = {{
77 0x2b7e1516, 0x28aed2a6, 0xabf71588, 0x09cf4f3c,
78 0xa0fafe17, 0x88542cb1, 0x23a33939, 0x2a6c7605,
79 0xf2c295f2, 0x7a96b943, 0x5935807a, 0x7359f67f,
80 0x3d80477d, 0x4716fe3e, 0x1e237e44, 0x6d7a883b,
81 0xef44a541, 0xa8525b7f, 0xb671253b, 0xdb0bad00,
82 0xd4d1c6f8, 0x7c839d87, 0xcaf2b8bc, 0x11f915bc,
83 0x6d88a37a, 0x110b3efd, 0xdbf98641, 0xca0093fd,
84 0x4e54f70e, 0x5f5fc9f3, 0x84a64fb2, 0x4ea6dc4f,
85 0xead27321, 0xb58dbad2, 0x312bf560, 0x7f8d292f,
86 0xac7766f3, 0x19fadc21, 0x28d12941, 0x575c006e,
87 0xd014f9a8, 0xc9ee2589, 0xe13f0cc8, 0xb6630ca6
88 } };
89 struct tc_aes_key_sched_struct s;
90
91 TC_PRINT("AES128 %s (NIST key schedule test):\n", __func__);
92
93 if (tc_aes128_set_encrypt_key(&s, nist_key) == 0) {
94 TC_ERROR("AES128 test %s (NIST key schedule test) failed.\n",
95 __func__);
96 result = TC_FAIL;
97 goto exitTest1;
98 }
99
100 result = check_result(1, expected.words,
101 sizeof(expected.words),
102 s.words, sizeof(s.words));
103
104 exitTest1:
105 TC_END_RESULT(result);
106 return result;
107}
108
109/*
110 * NIST test vectors for encryption.
111 */
112int test_2(void)
113{
114 int result = TC_PASS;
115 const uint8_t nist_key[NUM_OF_NIST_KEYS] = {
116 0x2b, 0x7e, 0x15, 0x16, 0x28, 0xae, 0xd2, 0xa6,
117 0xab, 0xf7, 0x15, 0x88, 0x09, 0xcf, 0x4f, 0x3c
118 };
119 const uint8_t nist_input[NUM_OF_NIST_KEYS] = {
120 0x32, 0x43, 0xf6, 0xa8, 0x88, 0x5a, 0x30, 0x8d,
121 0x31, 0x31, 0x98, 0xa2, 0xe0, 0x37, 0x07, 0x34
122 };
123 const uint8_t expected[NUM_OF_NIST_KEYS] = {
124 0x39, 0x25, 0x84, 0x1d, 0x02, 0xdc, 0x09, 0xfb,
125 0xdc, 0x11, 0x85, 0x97, 0x19, 0x6a, 0x0b, 0x32
126 };
127 struct tc_aes_key_sched_struct s;
128 uint8_t ciphertext[NUM_OF_NIST_KEYS];
129
130 TC_PRINT("AES128 %s (NIST encryption test):\n", __func__);
131
132 (void)tc_aes128_set_encrypt_key(&s, nist_key);
133 if (tc_aes_encrypt(ciphertext, nist_input, &s) == 0) {
134 TC_ERROR("AES128 %s (NIST encryption test) failed.\n",
135 __func__);
136 result = TC_FAIL;
137 goto exitTest2;
138 }
139
140 result = check_result(2, expected, sizeof(expected),
141 ciphertext, sizeof(ciphertext));
142
143 exitTest2:
144 TC_END_RESULT(result);
145
146 return result;
147}
148
149int var_text_test(uint32_t r, const uint8_t *in, const uint8_t *out,
150 TCAesKeySched_t s)
151{
152 uint8_t ciphertext[NUM_OF_NIST_KEYS];
153 uint8_t decrypted[NUM_OF_NIST_KEYS];
154 int result = TC_PASS;
155
156 (void)tc_aes_encrypt(ciphertext, in, s);
157 result = check_result(r, out, NUM_OF_NIST_KEYS,
158 ciphertext, sizeof(ciphertext));
159 if (result != TC_FAIL) {
160 if (tc_aes_decrypt(decrypted, ciphertext, s) == 0) {
161 TC_ERROR("aes_decrypt failed\n");
162 result = TC_FAIL;
163 } else {
164 result = check_result(r, in, NUM_OF_NIST_KEYS,
165 decrypted, sizeof(decrypted));
166 }
167 }
168
169 return result;
170}
171
172/*
173 * All NIST tests with fixed key and variable text.
174 */
175int test_3(void)
176{
177 int result = TC_PASS;
178 const uint8_t key[NUM_OF_NIST_KEYS] = {
179 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
180 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
181 };
182 const struct kat_table kat_tbl[NUM_OF_FIXED_KEYS] = {
183 {{
184 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
185 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
186 }, {
187 0x3a, 0xd7, 0x8e, 0x72, 0x6c, 0x1e, 0xc0, 0x2b,
188 0x7e, 0xbf, 0xe9, 0x2b, 0x23, 0xd9, 0xec, 0x34
189 } },
190 {{
191 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
192 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
193 }, {
194 0xaa, 0xe5, 0x93, 0x9c, 0x8e, 0xfd, 0xf2, 0xf0,
195 0x4e, 0x60, 0xb9, 0xfe, 0x71, 0x17, 0xb2, 0xc2
196 } },
197 {{
198 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
199 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
200 }, {
201 0xf0, 0x31, 0xd4, 0xd7, 0x4f, 0x5d, 0xcb, 0xf3,
202 0x9d, 0xaa, 0xf8, 0xca, 0x3a, 0xf6, 0xe5, 0x27
203 } },
204 {{
205 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
206 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
207 }, {
208 0x96, 0xd9, 0xfd, 0x5c, 0xc4, 0xf0, 0x74, 0x41,
209 0x72, 0x7d, 0xf0, 0xf3, 0x3e, 0x40, 0x1a, 0x36
210 } },
211 {{
212 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
213 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
214 }, {
215 0x30, 0xcc, 0xdb, 0x04, 0x46, 0x46, 0xd7, 0xe1,
216 0xf3, 0xcc, 0xea, 0x3d, 0xca, 0x08, 0xb8, 0xc0
217 } },
218 {{
219 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
220 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
221 }, {
222 0x16, 0xae, 0x4c, 0xe5, 0x04, 0x2a, 0x67, 0xee,
223 0x8e, 0x17, 0x7b, 0x7c, 0x58, 0x7e, 0xcc, 0x82
224 } },
225 {{
226 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
227 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
228 }, {
229 0xb6, 0xda, 0x0b, 0xb1, 0x1a, 0x23, 0x85, 0x5d,
230 0x9c, 0x5c, 0xb1, 0xb4, 0xc6, 0x41, 0x2e, 0x0a
231 } },
232 {{
233 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
234 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
235 }, {
236 0xdb, 0x4f, 0x1a, 0xa5, 0x30, 0x96, 0x7d, 0x67,
237 0x32, 0xce, 0x47, 0x15, 0xeb, 0x0e, 0xe2, 0x4b
238 } },
239 {{
240 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
241 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
242 }, {
243 0xa8, 0x17, 0x38, 0x25, 0x26, 0x21, 0xdd, 0x18,
244 0x0a, 0x34, 0xf3, 0x45, 0x5b, 0x4b, 0xaa, 0x2f
245 } },
246 {{
247 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
248 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
249 }, {
250 0x77, 0xe2, 0xb5, 0x08, 0xdb, 0x7f, 0xd8, 0x92,
251 0x34, 0xca, 0xf7, 0x93, 0x9e, 0xe5, 0x62, 0x1a
252 } },
253 {{
254 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
255 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
256 }, {
257 0xb8, 0x49, 0x9c, 0x25, 0x1f, 0x84, 0x42, 0xee,
258 0x13, 0xf0, 0x93, 0x3b, 0x68, 0x8f, 0xcd, 0x19
259 } },
260 {{
261 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
262 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
263 }, {
264 0x96, 0x51, 0x35, 0xf8, 0xa8, 0x1f, 0x25, 0xc9,
265 0xd6, 0x30, 0xb1, 0x75, 0x02, 0xf6, 0x8e, 0x53
266 } },
267 {{
268 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
269 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
270 }, {
271 0x8b, 0x87, 0x14, 0x5a, 0x01, 0xad, 0x1c, 0x6c,
272 0xed, 0xe9, 0x95, 0xea, 0x36, 0x70, 0x45, 0x4f
273 } },
274 {{
275 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
276 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
277 }, {
278 0x8e, 0xae, 0x3b, 0x10, 0xa0, 0xc8, 0xca, 0x6d,
279 0x1d, 0x3b, 0x0f, 0xa6, 0x1e, 0x56, 0xb0, 0xb2
280 } },
281 {{
282 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
283 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
284 }, {
285 0x64, 0xb4, 0xd6, 0x29, 0x81, 0x0f, 0xda, 0x6b,
286 0xaf, 0xdf, 0x08, 0xf3, 0xb0, 0xd8, 0xd2, 0xc5
287 } },
288 {{
289 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
290 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
291 }, {
292 0xd7, 0xe5, 0xdb, 0xd3, 0x32, 0x45, 0x95, 0xf8,
293 0xfd, 0xc7, 0xd7, 0xc5, 0x71, 0xda, 0x6c, 0x2a
294 } },
295 {{
296 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
297 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
298 }, {
299 0xf3, 0xf7, 0x23, 0x75, 0x26, 0x4e, 0x16, 0x7f,
300 0xca, 0x9d, 0xe2, 0xc1, 0x52, 0x7d, 0x96, 0x06
301 } },
302 {{
303 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
304 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
305 }, {
306 0x8e, 0xe7, 0x9d, 0xd4, 0xf4, 0x01, 0xff, 0x9b,
307 0x7e, 0xa9, 0x45, 0xd8, 0x66, 0x66, 0xc1, 0x3b
308 } },
309 {{
310 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
311 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
312 }, {
313 0xdd, 0x35, 0xce, 0xa2, 0x79, 0x99, 0x40, 0xb4,
314 0x0d, 0xb3, 0xf8, 0x19, 0xcb, 0x94, 0xc0, 0x8b
315 } },
316 {{
317 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
318 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
319 }, {
320 0x69, 0x41, 0xcb, 0x6b, 0x3e, 0x08, 0xc2, 0xb7,
321 0xaf, 0xa5, 0x81, 0xeb, 0xdd, 0x60, 0x7b, 0x87
322 } },
323 {{
324 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
325 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
326 }, {
327 0x2c, 0x20, 0xf4, 0x39, 0xf6, 0xbb, 0x09, 0x7b,
328 0x29, 0xb8, 0xbd, 0x6d, 0x99, 0xaa, 0xd7, 0x99
329 } },
330 {{
331 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
332 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
333 }, {
334 0x62, 0x5d, 0x01, 0xf0, 0x58, 0xe5, 0x65, 0xf7,
335 0x7a, 0xe8, 0x63, 0x78, 0xbd, 0x2c, 0x49, 0xb3
336 } },
337 {{
338 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
339 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
340 }, {
341 0xc0, 0xb5, 0xfd, 0x98, 0x19, 0x0e, 0xf4, 0x5f,
342 0xbb, 0x43, 0x01, 0x43, 0x8d, 0x09, 0x59, 0x50
343 } },
344 {{
345 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
346 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
347 }, {
348 0x13, 0x00, 0x1f, 0xf5, 0xd9, 0x98, 0x06, 0xef,
349 0xd2, 0x5d, 0xa3, 0x4f, 0x56, 0xbe, 0x85, 0x4b
350 } },
351 {{
352 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
353 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
354 }, {
355 0x3b, 0x59, 0x4c, 0x60, 0xf5, 0xc8, 0x27, 0x7a,
356 0x51, 0x13, 0x67, 0x7f, 0x94, 0x20, 0x8d, 0x82
357 } },
358 {{
359 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
360 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
361 }, {
362 0xe9, 0xc0, 0xfc, 0x18, 0x18, 0xe4, 0xaa, 0x46,
363 0xbd, 0x2e, 0x39, 0xd6, 0x38, 0xf8, 0x9e, 0x05
364 } },
365 {{
366 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
367 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
368 }, {
369 0xf8, 0x02, 0x3e, 0xe9, 0xc3, 0xfd, 0xc4, 0x5a,
370 0x01, 0x9b, 0x4e, 0x98, 0x5c, 0x7e, 0x1a, 0x54
371 } },
372 {{
373 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
374 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
375 }, {
376 0x35, 0xf4, 0x01, 0x82, 0xab, 0x46, 0x62, 0xf3,
377 0x02, 0x3b, 0xae, 0xc1, 0xee, 0x79, 0x6b, 0x57
378 } },
379 {{
380 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
381 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
382 }, {
383 0x3a, 0xeb, 0xba, 0xd7, 0x30, 0x36, 0x49, 0xb4,
384 0x19, 0x4a, 0x69, 0x45, 0xc6, 0xcc, 0x36, 0x94
385 } },
386 {{
387 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
388 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
389 }, {
390 0xa2, 0x12, 0x4b, 0xea, 0x53, 0xec, 0x28, 0x34,
391 0x27, 0x9b, 0xed, 0x7f, 0x7e, 0xb0, 0xf9, 0x38
392 } },
393 {{
394 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
395 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
396 }, {
397 0xb9, 0xfb, 0x43, 0x99, 0xfa, 0x4f, 0xac, 0xc7,
398 0x30, 0x9e, 0x14, 0xec, 0x98, 0x36, 0x0b, 0x0a
399 } },
400 {{
401 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
402 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
403 }, {
404 0xc2, 0x62, 0x77, 0x43, 0x74, 0x20, 0xc5, 0xd6,
405 0x34, 0xf7, 0x15, 0xae, 0xa8, 0x1a, 0x91, 0x32
406 } },
407 {{
408 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00,
409 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
410 }, {
411 0x17, 0x1a, 0x0e, 0x1b, 0x2d, 0xd4, 0x24, 0xf0,
412 0xe0, 0x89, 0xaf, 0x2c, 0x4c, 0x10, 0xf3, 0x2f
413 } },
414 {{
415 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00,
416 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
417 }, {
418 0x7c, 0xad, 0xbe, 0x40, 0x2d, 0x1b, 0x20, 0x8f,
419 0xe7, 0x35, 0xed, 0xce, 0x00, 0xae, 0xe7, 0xce
420 } },
421 {{
422 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00,
423 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
424 }, {
425 0x43, 0xb0, 0x2f, 0xf9, 0x29, 0xa1, 0x48, 0x5a,
426 0xf6, 0xf5, 0xc6, 0xd6, 0x55, 0x8b, 0xaa, 0x0f
427 } },
428 {{
429 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
430 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
431 }, {
432 0x09, 0x2f, 0xaa, 0xcc, 0x9b, 0xf4, 0x35, 0x08,
433 0xbf, 0x8f, 0xa8, 0x61, 0x3c, 0xa7, 0x5d, 0xea
434 } },
435 {{
436 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
437 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
438 }, {
439 0xcb, 0x2b, 0xf8, 0x28, 0x0f, 0x3f, 0x97, 0x42,
440 0xc7, 0xed, 0x51, 0x3f, 0xe8, 0x02, 0x62, 0x9c
441 } },
442 {{
443 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
444 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
445 }, {
446 0x21, 0x5a, 0x41, 0xee, 0x44, 0x2f, 0xa9, 0x92,
447 0xa6, 0xe3, 0x23, 0x98, 0x6d, 0xed, 0x3f, 0x68
448 } },
449 {{
450 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
451 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
452 }, {
453 0xf2, 0x1e, 0x99, 0xcf, 0x4f, 0x0f, 0x77, 0xce,
454 0xa8, 0x36, 0xe1, 0x1a, 0x2f, 0xe7, 0x5f, 0xb1
455 } },
456 {{
457 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
458 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
459 }, {
460 0x95, 0xe3, 0xa0, 0xca, 0x90, 0x79, 0xe6, 0x46,
461 0x33, 0x1d, 0xf8, 0xb4, 0xe7, 0x0d, 0x2c, 0xd6
462 } },
463 {{
464 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
465 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
466 }, {
467 0x4a, 0xfe, 0x7f, 0x12, 0x0c, 0xe7, 0x61, 0x3f,
468 0x74, 0xfc, 0x12, 0xa0, 0x1a, 0x82, 0x80, 0x73
469 } },
470 {{
471 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
472 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
473 }, {
474 0x82, 0x7f, 0x00, 0x0e, 0x75, 0xe2, 0xc8, 0xb9,
475 0xd4, 0x79, 0xbe, 0xed, 0x91, 0x3f, 0xe6, 0x78
476 } },
477 {{
478 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
479 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
480 }, {
481 0x35, 0x83, 0x0c, 0x8e, 0x7a, 0xae, 0xfe, 0x2d,
482 0x30, 0x31, 0x0e, 0xf3, 0x81, 0xcb, 0xf6, 0x91
483 } },
484 {{
485 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00,
486 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
487 }, {
488 0x19, 0x1a, 0xa0, 0xf2, 0xc8, 0x57, 0x01, 0x44,
489 0xf3, 0x86, 0x57, 0xea, 0x40, 0x85, 0xeb, 0xe5
490 } },
491 {{
492 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
493 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
494 }, {
495 0x85, 0x06, 0x2c, 0x2c, 0x90, 0x9f, 0x15, 0xd9,
496 0x26, 0x9b, 0x6c, 0x18, 0xce, 0x99, 0xc4, 0xf0
497 } },
498 {{
499 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
500 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
501 }, {
502 0x67, 0x80, 0x34, 0xdc, 0x9e, 0x41, 0xb5, 0xa5,
503 0x60, 0xed, 0x23, 0x9e, 0xea, 0xb1, 0xbc, 0x78
504 } },
505 {{
506 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
507 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
508 }, {
509 0xc2, 0xf9, 0x3a, 0x4c, 0xe5, 0xab, 0x6d, 0x5d,
510 0x56, 0xf1, 0xb9, 0x3c, 0xf1, 0x99, 0x11, 0xc1
511 } },
512 {{
513 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
514 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
515 }, {
516 0x1c, 0x31, 0x12, 0xbc, 0xb0, 0xc1, 0xdc, 0xc7,
517 0x49, 0xd7, 0x99, 0x74, 0x36, 0x91, 0xbf, 0x82
518 } },
519 {{
520 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
521 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
522 }, {
523 0x00, 0xc5, 0x5b, 0xd7, 0x5c, 0x7f, 0x9c, 0x88,
524 0x19, 0x89, 0xd3, 0xec, 0x19, 0x11, 0xc0, 0xd4
525 } },
526 {{
527 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
528 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
529 }, {
530 0xea, 0x2e, 0x6b, 0x5e, 0xf1, 0x82, 0xb7, 0xdf,
531 0xf3, 0x62, 0x9a, 0xbd, 0x6a, 0x12, 0x04, 0x5f
532 } },
533 {{
534 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
535 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
536 }, {
537 0x22, 0x32, 0x23, 0x27, 0xe0, 0x17, 0x80, 0xb1,
538 0x73, 0x97, 0xf2, 0x40, 0x87, 0xf8, 0xcc, 0x6f
539 } },
540 {{
541 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
542 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
543 }, {
544 0xc9, 0xca, 0xcb, 0x5c, 0xd1, 0x16, 0x92, 0xc3,
545 0x73, 0xb2, 0x41, 0x17, 0x68, 0x14, 0x9e, 0xe7
546 } },
547 {{
548 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
549 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
550 }, {
551 0xa1, 0x8e, 0x3d, 0xbb, 0xca, 0x57, 0x78, 0x60,
552 0xda, 0xb6, 0xb8, 0x0d, 0xa3, 0x13, 0x92, 0x56
553 } },
554 {{
555 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
556 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
557 }, {
558 0x79, 0xb6, 0x1c, 0x37, 0xbf, 0x32, 0x8e, 0xcc,
559 0xa8, 0xd7, 0x43, 0x26, 0x5a, 0x3d, 0x42, 0x5c
560 } },
561 {{
562 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
563 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
564 }, {
565 0xd2, 0xd9, 0x9c, 0x6b, 0xcc, 0x1f, 0x06, 0xfd,
566 0xa8, 0xe2, 0x7e, 0x8a, 0xe3, 0xf1, 0xcc, 0xc7
567 } },
568 {{
569 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
570 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
571 }, {
572 0x1b, 0xfd, 0x4b, 0x91, 0xc7, 0x01, 0xfd, 0x6b,
573 0x61, 0xb7, 0xf9, 0x97, 0x82, 0x9d, 0x66, 0x3b
574 } },
575 {{
576 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
577 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
578 }, {
579 0x11, 0x00, 0x5d, 0x52, 0xf2, 0x5f, 0x16, 0xbd,
580 0xc9, 0x54, 0x5a, 0x87, 0x6a, 0x63, 0x49, 0x0a
581 } },
582 {{
583 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
584 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
585 }, {
586 0x3a, 0x4d, 0x35, 0x4f, 0x02, 0xbb, 0x5a, 0x5e,
587 0x47, 0xd3, 0x96, 0x66, 0x86, 0x7f, 0x24, 0x6a
588 } },
589 {{
590 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
591 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
592 }, {
593 0xd4, 0x51, 0xb8, 0xd6, 0xe1, 0xe1, 0xa0, 0xeb,
594 0xb1, 0x55, 0xfb, 0xbf, 0x6e, 0x7b, 0x7d, 0xc3
595 } },
596 {{
597 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
598 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
599 }, {
600 0x68, 0x98, 0xd4, 0xf4, 0x2f, 0xa7, 0xba, 0x6a,
601 0x10, 0xac, 0x05, 0xe8, 0x7b, 0x9f, 0x20, 0x80
602 } },
603 {{
604 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
605 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
606 }, {
607 0xb6, 0x11, 0x29, 0x5e, 0x73, 0x9c, 0xa7, 0xd9,
608 0xb5, 0x0f, 0x8e, 0x4c, 0x0e, 0x75, 0x4a, 0x3f
609 } },
610 {{
611 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
612 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
613 }, {
614 0x7d, 0x33, 0xfc, 0x7d, 0x8a, 0xbe, 0x3c, 0xa1,
615 0x93, 0x67, 0x59, 0xf8, 0xf5, 0xde, 0xaf, 0x20
616 } },
617 {{
618 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
619 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
620 }, {
621 0x3b, 0x5e, 0x0f, 0x56, 0x6d, 0xc9, 0x6c, 0x29,
622 0x8f, 0x0c, 0x12, 0x63, 0x75, 0x39, 0xb2, 0x5c
623 } },
624 {{
625 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
626 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
627 }, {
628 0xf8, 0x07, 0xc3, 0xe7, 0x98, 0x5f, 0xe0, 0xf5,
629 0xa5, 0x0e, 0x2c, 0xdb, 0x25, 0xc5, 0x10, 0x9e
630 } },
631 {{
632 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
633 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
634 }, {
635 0x41, 0xf9, 0x92, 0xa8, 0x56, 0xfb, 0x27, 0x8b,
636 0x38, 0x9a, 0x62, 0xf5, 0xd2, 0x74, 0xd7, 0xe9
637 } },
638 {{
639 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
640 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
641 }, {
642 0x10, 0xd3, 0xed, 0x7a, 0x6f, 0xe1, 0x5a, 0xb4,
643 0xd9, 0x1a, 0xcb, 0xc7, 0xd0, 0x76, 0x7a, 0xb1
644 } },
645 {{
646 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
647 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
648 }, {
649 0x21, 0xfe, 0xec, 0xd4, 0x5b, 0x2e, 0x67, 0x59,
650 0x73, 0xac, 0x33, 0xbf, 0x0c, 0x54, 0x24, 0xfc
651 } },
652 {{
653 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
654 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
655 }, {
656 0x14, 0x80, 0xcb, 0x39, 0x55, 0xba, 0x62, 0xd0,
657 0x9e, 0xea, 0x66, 0x8f, 0x7c, 0x70, 0x88, 0x17
658 } },
659 {{
660 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
661 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
662 }, {
663 0x66, 0x40, 0x40, 0x33, 0xd6, 0xb7, 0x2b, 0x60,
664 0x93, 0x54, 0xd5, 0x49, 0x6e, 0x7e, 0xb5, 0x11
665 } },
666 {{
667 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
668 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
669 }, {
670 0x1c, 0x31, 0x7a, 0x22, 0x0a, 0x7d, 0x70, 0x0d,
671 0xa2, 0xb1, 0xe0, 0x75, 0xb0, 0x02, 0x66, 0xe1
672 } },
673 {{
674 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
675 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
676 }, {
677 0xab, 0x3b, 0x89, 0x54, 0x22, 0x33, 0xf1, 0x27,
678 0x1b, 0xf8, 0xfd, 0x0c, 0x0f, 0x40, 0x35, 0x45
679 } },
680 {{
681 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
682 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
683 }, {
684 0xd9, 0x3e, 0xae, 0x96, 0x6f, 0xac, 0x46, 0xdc,
685 0xa9, 0x27, 0xd6, 0xb1, 0x14, 0xfa, 0x3f, 0x9e
686 } },
687 {{
688 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
689 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
690 }, {
691 0x1b, 0xde, 0xc5, 0x21, 0x31, 0x65, 0x03, 0xd9,
692 0xd5, 0xee, 0x65, 0xdf, 0x3e, 0xa9, 0x4d, 0xdf
693 } },
694 {{
695 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
696 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
697 }, {
698 0xee, 0xf4, 0x56, 0x43, 0x1d, 0xea, 0x8b, 0x4a,
699 0xcf, 0x83, 0xbd, 0xae, 0x37, 0x17, 0xf7, 0x5f
700 } },
701 {{
702 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
703 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
704 }, {
705 0x06, 0xf2, 0x51, 0x9a, 0x2f, 0xaf, 0xaa, 0x59,
706 0x6b, 0xfe, 0xf5, 0xcf, 0xa1, 0x5c, 0x21, 0xb9
707 } },
708 {{
709 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
710 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
711 }, {
712 0x25, 0x1a, 0x7e, 0xac, 0x7e, 0x2f, 0xe8, 0x09,
713 0xe4, 0xaa, 0x8d, 0x0d, 0x70, 0x12, 0x53, 0x1a
714 } },
715 {{
716 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
717 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
718 }, {
719 0x3b, 0xff, 0xc1, 0x6e, 0x4c, 0x49, 0xb2, 0x68,
720 0xa2, 0x0f, 0x8d, 0x96, 0xa6, 0x0b, 0x40, 0x58
721 } },
722 {{
723 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
724 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
725 }, {
726 0xe8, 0x86, 0xf9, 0x28, 0x19, 0x99, 0xc5, 0xbb,
727 0x3b, 0x3e, 0x88, 0x62, 0xe2, 0xf7, 0xc9, 0x88
728 } },
729 {{
730 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
731 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
732 }, {
733 0x56, 0x3b, 0xf9, 0x0d, 0x61, 0xbe, 0xef, 0x39,
734 0xf4, 0x8d, 0xd6, 0x25, 0xfc, 0xef, 0x13, 0x61
735 } },
736 {{
737 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
738 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
739 }, {
740 0x4d, 0x37, 0xc8, 0x50, 0x64, 0x45, 0x63, 0xc6,
741 0x9f, 0xd0, 0xac, 0xd9, 0xa0, 0x49, 0x32, 0x5b
742 } },
743 {{
744 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
745 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
746 }, {
747 0xb8, 0x7c, 0x92, 0x1b, 0x91, 0x82, 0x9e, 0xf3,
748 0xb1, 0x3c, 0xa5, 0x41, 0xee, 0x11, 0x30, 0xa6
749 } },
750 {{
751 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
752 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00
753 }, {
754 0x2e, 0x65, 0xeb, 0x6b, 0x6e, 0xa3, 0x83, 0xe1,
755 0x09, 0xac, 0xcc, 0xe8, 0x32, 0x6b, 0x03, 0x93
756 } },
757 {{
758 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
759 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00
760 }, {
761 0x9c, 0xa5, 0x47, 0xf7, 0x43, 0x9e, 0xdc, 0x3e,
762 0x25, 0x5c, 0x0f, 0x4d, 0x49, 0xaa, 0x89, 0x90
763 } },
764 {{
765 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
766 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00
767 }, {
768 0xa5, 0xe6, 0x52, 0x61, 0x4c, 0x93, 0x00, 0xf3,
769 0x78, 0x16, 0xb1, 0xf9, 0xfd, 0x0c, 0x87, 0xf9
770 } },
771 {{
772 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
773 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00
774 }, {
775 0x14, 0x95, 0x4f, 0x0b, 0x46, 0x97, 0x77, 0x6f,
776 0x44, 0x49, 0x4f, 0xe4, 0x58, 0xd8, 0x14, 0xed
777 } },
778 {{
779 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
780 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00
781 }, {
782 0x7c, 0x8d, 0x9a, 0xb6, 0xc2, 0x76, 0x17, 0x23,
783 0xfe, 0x42, 0xf8, 0xbb, 0x50, 0x6c, 0xbc, 0xf7
784 } },
785 {{
786 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
787 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00
788 }, {
789 0xdb, 0x7e, 0x19, 0x32, 0x67, 0x9f, 0xdd, 0x99,
790 0x74, 0x2a, 0xab, 0x04, 0xaa, 0x0d, 0x5a, 0x80
791 } },
792 {{
793 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
794 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
795 }, {
796 0x4c, 0x6a, 0x1c, 0x83, 0xe5, 0x68, 0xcd, 0x10,
797 0xf2, 0x7c, 0x2d, 0x73, 0xde, 0xd1, 0x9c, 0x28
798 } },
799 {{
800 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
801 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00
802 }, {
803 0x90, 0xec, 0xbe, 0x61, 0x77, 0xe6, 0x74, 0xc9,
804 0x8d, 0xe4, 0x12, 0x41, 0x3f, 0x7a, 0xc9, 0x15
805 } },
806 {{
807 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
808 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00
809 }, {
810 0x90, 0x68, 0x4a, 0x2a, 0xc5, 0x5f, 0xe1, 0xec,
811 0x2b, 0x8e, 0xbd, 0x56, 0x22, 0x52, 0x0b, 0x73
812 } },
813 {{
814 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
815 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00
816 }, {
817 0x74, 0x72, 0xf9, 0xa7, 0x98, 0x86, 0x07, 0xca,
818 0x79, 0x70, 0x77, 0x95, 0x99, 0x10, 0x35, 0xe6
819 } },
820 {{
821 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
822 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00
823 }, {
824 0x56, 0xaf, 0xf0, 0x89, 0x87, 0x8b, 0xf3, 0x35,
825 0x2f, 0x8d, 0xf1, 0x72, 0xa3, 0xae, 0x47, 0xd8
826 } },
827 {{
828 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
829 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00
830 }, {
831 0x65, 0xc0, 0x52, 0x6c, 0xbe, 0x40, 0x16, 0x1b,
832 0x80, 0x19, 0xa2, 0xa3, 0x17, 0x1a, 0xbd, 0x23
833 } },
834 {{
835 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
836 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00
837 }, {
838 0x37, 0x7b, 0xe0, 0xbe, 0x33, 0xb4, 0xe3, 0xe3,
839 0x10, 0xb4, 0xaa, 0xbd, 0xa1, 0x73, 0xf8, 0x4f
840 } },
841 {{
842 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
843 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00
844 }, {
845 0x94, 0x02, 0xe9, 0xaa, 0x6f, 0x69, 0xde, 0x65,
846 0x04, 0xda, 0x8d, 0x20, 0xc4, 0xfc, 0xaa, 0x2f
847 } },
848 {{
849 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
850 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00
851 }, {
852 0x12, 0x3c, 0x1f, 0x4a, 0xf3, 0x13, 0xad, 0x8c,
853 0x2c, 0xe6, 0x48, 0xb2, 0xe7, 0x1f, 0xb6, 0xe1
854 } },
855 {{
856 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
857 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00
858 }, {
859 0x1f, 0xfc, 0x62, 0x6d, 0x30, 0x20, 0x3d, 0xcd,
860 0xb0, 0x01, 0x9f, 0xb8, 0x0f, 0x72, 0x6c, 0xf4
861 } },
862 {{
863 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
864 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00
865 }, {
866 0x76, 0xda, 0x1f, 0xbe, 0x3a, 0x50, 0x72, 0x8c,
867 0x50, 0xfd, 0x2e, 0x62, 0x1b, 0x5a, 0xd8, 0x85
868 } },
869 {{
870 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
871 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00
872 }, {
873 0x08, 0x2e, 0xb8, 0xbe, 0x35, 0xf4, 0x42, 0xfb,
874 0x52, 0x66, 0x8e, 0x16, 0xa5, 0x91, 0xd1, 0xd6
875 } },
876 {{
877 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
878 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00
879 }, {
880 0xe6, 0x56, 0xf9, 0xec, 0xf5, 0xfe, 0x27, 0xec,
881 0x3e, 0x4a, 0x73, 0xd0, 0x0c, 0x28, 0x2f, 0xb3
882 } },
883 {{
884 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
885 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00
886 }, {
887 0x2c, 0xa8, 0x20, 0x9d, 0x63, 0x27, 0x4c, 0xd9,
888 0xa2, 0x9b, 0xb7, 0x4b, 0xcd, 0x77, 0x68, 0x3a
889 } },
890 {{
891 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
892 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00
893 }, {
894 0x79, 0xbf, 0x5d, 0xce, 0x14, 0xbb, 0x7d, 0xd7,
895 0x3a, 0x8e, 0x36, 0x11, 0xde, 0x7c, 0xe0, 0x26
896 } },
897 {{
898 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
899 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00
900 }, {
901 0x3c, 0x84, 0x99, 0x39, 0xa5, 0xd2, 0x93, 0x99,
902 0xf3, 0x44, 0xc4, 0xa0, 0xec, 0xa8, 0xa5, 0x76
903 } },
904 {{
905 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
906 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00
907 }, {
908 0xed, 0x3c, 0x0a, 0x94, 0xd5, 0x9b, 0xec, 0xe9,
909 0x88, 0x35, 0xda, 0x7a, 0xa4, 0xf0, 0x7c, 0xa2
910 } },
911 {{
912 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
913 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00
914 }, {
915 0x63, 0x91, 0x9e, 0xd4, 0xce, 0x10, 0x19, 0x64,
916 0x38, 0xb6, 0xad, 0x09, 0xd9, 0x9c, 0xd7, 0x95
917 } },
918 {{
919 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
920 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00
921 }, {
922 0x76, 0x78, 0xf3, 0xa8, 0x33, 0xf1, 0x9f, 0xea,
923 0x95, 0xf3, 0xc6, 0x02, 0x9e, 0x2b, 0xc6, 0x10
924 } },
925 {{
926 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
927 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00
928 }, {
929 0x3a, 0xa4, 0x26, 0x83, 0x10, 0x67, 0xd3, 0x6b,
930 0x92, 0xbe, 0x7c, 0x5f, 0x81, 0xc1, 0x3c, 0x56
931 } },
932 {{
933 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
934 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00
935 }, {
936 0x92, 0x72, 0xe2, 0xd2, 0xcd, 0xd1, 0x10, 0x50,
937 0x99, 0x8c, 0x84, 0x50, 0x77, 0xa3, 0x0e, 0xa0
938 } },
939 {{
940 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
941 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00
942 }, {
943 0x08, 0x8c, 0x4b, 0x53, 0xf5, 0xec, 0x0f, 0xf8,
944 0x14, 0xc1, 0x9a, 0xda, 0xe7, 0xf6, 0x24, 0x6c
945 } },
946 {{
947 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
948 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00
949 }, {
950 0x40, 0x10, 0xa5, 0xe4, 0x01, 0xfd, 0xf0, 0xa0,
951 0x35, 0x4d, 0xdb, 0xcc, 0x0d, 0x01, 0x2b, 0x17
952 } },
953 {{
954 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
955 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00
956 }, {
957 0xa8, 0x7a, 0x38, 0x57, 0x36, 0xc0, 0xa6, 0x18,
958 0x9b, 0xd6, 0x58, 0x9b, 0xd8, 0x44, 0x5a, 0x93
959 } },
960 {{
961 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
962 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00
963 }, {
964 0x54, 0x5f, 0x2b, 0x83, 0xd9, 0x61, 0x6d, 0xcc,
965 0xf6, 0x0f, 0xa9, 0x83, 0x0e, 0x9c, 0xd2, 0x87
966 } },
967 {{
968 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
969 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00
970 }, {
971 0x4b, 0x70, 0x6f, 0x7f, 0x92, 0x40, 0x63, 0x52,
972 0x39, 0x40, 0x37, 0xa6, 0xd4, 0xf4, 0x68, 0x8d
973 } },
974 {{
975 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
976 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00
977 }, {
978 0xb7, 0x97, 0x2b, 0x39, 0x41, 0xc4, 0x4b, 0x90,
979 0xaf, 0xa7, 0xb2, 0x64, 0xbf, 0xba, 0x73, 0x87
980 } },
981 {{
982 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
983 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00
984 }, {
985 0x6f, 0x45, 0x73, 0x2c, 0xf1, 0x08, 0x81, 0x54,
986 0x6f, 0x0f, 0xd2, 0x38, 0x96, 0xd2, 0xbb, 0x60
987 } },
988 {{
989 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
990 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00
991 }, {
992 0x2e, 0x35, 0x79, 0xca, 0x15, 0xaf, 0x27, 0xf6,
993 0x4b, 0x3c, 0x95, 0x5a, 0x5b, 0xfc, 0x30, 0xba
994 } },
995 {{
996 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
997 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00
998 }, {
999 0x34, 0xa2, 0xc5, 0xa9, 0x1a, 0xe2, 0xae, 0xc9,
1000 0x9b, 0x7d, 0x1b, 0x5f, 0xa6, 0x78, 0x04, 0x47
1001 } },
1002 {{
1003 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1004 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00
1005 }, {
1006 0xa4, 0xd6, 0x61, 0x6b, 0xd0, 0x4f, 0x87, 0x33,
1007 0x5b, 0x0e, 0x53, 0x35, 0x12, 0x27, 0xa9, 0xee
1008 } },
1009 {{
1010 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1011 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00
1012 }, {
1013 0x7f, 0x69, 0x2b, 0x03, 0x94, 0x58, 0x67, 0xd1,
1014 0x61, 0x79, 0xa8, 0xce, 0xfc, 0x83, 0xea, 0x3f
1015 } },
1016 {{
1017 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1018 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00
1019 }, {
1020 0x3b, 0xd1, 0x41, 0xee, 0x84, 0xa0, 0xe6, 0x41,
1021 0x4a, 0x26, 0xe7, 0xa4, 0xf2, 0x81, 0xf8, 0xa2
1022 } },
1023 {{
1024 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1025 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80
1026 }, {
1027 0xd1, 0x78, 0x8f, 0x57, 0x2d, 0x98, 0xb2, 0xb1,
1028 0x6e, 0xc5, 0xd5, 0xf3, 0x92, 0x2b, 0x99, 0xbc
1029 } },
1030 {{
1031 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1032 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
1033 }, {
1034 0x08, 0x33, 0xff, 0x6f, 0x61, 0xd9, 0x8a, 0x57,
1035 0xb2, 0x88, 0xe8, 0xc3, 0x58, 0x6b, 0x85, 0xa6
1036 } },
1037 {{
1038 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1039 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0
1040 }, {
1041 0x85, 0x68, 0x26, 0x17, 0x97, 0xde, 0x17, 0x6b,
1042 0xf0, 0xb4, 0x3b, 0xec, 0xc6, 0x28, 0x5a, 0xfb
1043 } },
1044 {{
1045 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1046 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0
1047 }, {
1048 0xf9, 0xb0, 0xfd, 0xa0, 0xc4, 0xa8, 0x98, 0xf5,
1049 0xb9, 0xe6, 0xf6, 0x61, 0xc4, 0xce, 0x4d, 0x07
1050 } },
1051 {{
1052 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1053 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8
1054 }, {
1055 0x8a, 0xde, 0x89, 0x59, 0x13, 0x68, 0x5c, 0x67,
1056 0xc5, 0x26, 0x9f, 0x8a, 0xae, 0x42, 0x98, 0x3e
1057 } },
1058 {{
1059 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1060 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc
1061 }, {
1062 0x39, 0xbd, 0xe6, 0x7d, 0x5c, 0x8e, 0xd8, 0xa8,
1063 0xb1, 0xc3, 0x7e, 0xb8, 0xfa, 0x9f, 0x5a, 0xc0
1064 } },
1065 {{
1066 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1067 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe
1068 }, {
1069 0x5c, 0x00, 0x5e, 0x72, 0xc1, 0x41, 0x8c, 0x44,
1070 0xf5, 0x69, 0xf2, 0xea, 0x33, 0xba, 0x54, 0xf3
1071 } },
1072 {{
1073 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1074 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
1075 }, {
1076 0x3f, 0x5b, 0x8c, 0xc9, 0xea, 0x85, 0x5a, 0x0a,
1077 0xfa, 0x73, 0x47, 0xd2, 0x3e, 0x8d, 0x66, 0x4e
1078 } }
1079 };
1080 struct tc_aes_key_sched_struct s;
1081 uint32_t i;
1082
1083 TC_PRINT("AES128 %s (NIST fixed-key and variable-text):\n", __func__);
1084
1085 (void)tc_aes128_set_encrypt_key(&s, key);
1086
1087 for (i = 0; i < 128; ++i) {
1088 result = var_text_test(i, kat_tbl[i].in, kat_tbl[i].out, &s);
1089 if (result == TC_FAIL) {
1090 break;
1091 }
1092 }
1093
1094 TC_END_RESULT(result);
1095
1096 return result;
1097}
1098
1099int var_key_test(uint32_t r, const uint8_t *in, const uint8_t *out)
1100{
1101 int result = TC_PASS;
1102
1103 const uint8_t plaintext[NUM_OF_NIST_KEYS] = {
1104 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1105 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1106 };
1107 uint8_t ciphertext[NUM_OF_NIST_KEYS];
1108 struct tc_aes_key_sched_struct s;
1109
1110 (void)tc_aes128_set_encrypt_key(&s, in);
1111
1112 (void)tc_aes_encrypt(ciphertext, plaintext, &s);
1113 result = check_result(r, out, NUM_OF_NIST_KEYS,
1114 ciphertext, sizeof(ciphertext));
1115
1116 return result;
1117}
1118
1119/*
1120 * All NIST tests with variable key and fixed text.
1121 */
1122int test_4(void)
1123{
1124 int result = TC_PASS;
1125 const struct kat_table kat_tbl[NUM_OF_FIXED_KEYS] = {
1126 {{
1127 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1128 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1129 }, {
1130 0x0e, 0xdd, 0x33, 0xd3, 0xc6, 0x21, 0xe5, 0x46,
1131 0x45, 0x5b, 0xd8, 0xba, 0x14, 0x18, 0xbe, 0xc8
1132 } },
1133 {{
1134 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1135 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1136 }, {
1137 0x4b, 0xc3, 0xf8, 0x83, 0x45, 0x0c, 0x11, 0x3c,
1138 0x64, 0xca, 0x42, 0xe1, 0x11, 0x2a, 0x9e, 0x87
1139 } },
1140 {{
1141 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1142 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1143 }, {
1144 0x72, 0xa1, 0xda, 0x77, 0x0f, 0x5d, 0x7a, 0xc4,
1145 0xc9, 0xef, 0x94, 0xd8, 0x22, 0xaf, 0xfd, 0x97
1146 } },
1147 {{
1148 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1149 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1150 }, {
1151 0x97, 0x00, 0x14, 0xd6, 0x34, 0xe2, 0xb7, 0x65,
1152 0x07, 0x77, 0xe8, 0xe8, 0x4d, 0x03, 0xcc, 0xd8
1153 } },
1154 {{
1155 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1156 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1157 }, {
1158 0xf1, 0x7e, 0x79, 0xae, 0xd0, 0xdb, 0x7e, 0x27,
1159 0x9e, 0x95, 0x5b, 0x5f, 0x49, 0x38, 0x75, 0xa7
1160 } },
1161 {{
1162 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1163 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1164 }, {
1165 0x9e, 0xd5, 0xa7, 0x51, 0x36, 0xa9, 0x40, 0xd0,
1166 0x96, 0x3d, 0xa3, 0x79, 0xdb, 0x4a, 0xf2, 0x6a
1167 } },
1168 {{
1169 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1170 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1171 }, {
1172 0xc4, 0x29, 0x5f, 0x83, 0x46, 0x5c, 0x77, 0x55,
1173 0xe8, 0xfa, 0x36, 0x4b, 0xac, 0x6a, 0x7e, 0xa5
1174 } },
1175 {{
1176 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1177 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1178 }, {
1179 0xb1, 0xd7, 0x58, 0x25, 0x6b, 0x28, 0xfd, 0x85,
1180 0x0a, 0xd4, 0x94, 0x42, 0x08, 0xcf, 0x11, 0x55
1181 } },
1182 {{
1183 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1184 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1185 }, {
1186 0x42, 0xff, 0xb3, 0x4c, 0x74, 0x3d, 0xe4, 0xd8,
1187 0x8c, 0xa3, 0x80, 0x11, 0xc9, 0x90, 0x89, 0x0b
1188 } },
1189 {{
1190 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1191 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1192 }, {
1193 0x99, 0x58, 0xf0, 0xec, 0xea, 0x8b, 0x21, 0x72,
1194 0xc0, 0xc1, 0x99, 0x5f, 0x91, 0x82, 0xc0, 0xf3
1195 } },
1196 {{
1197 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1198 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1199 }, {
1200 0x95, 0x6d, 0x77, 0x98, 0xfa, 0xc2, 0x0f, 0x82,
1201 0xa8, 0x82, 0x3f, 0x98, 0x4d, 0x06, 0xf7, 0xf5
1202 } },
1203 {{
1204 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1205 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1206 }, {
1207 0xa0, 0x1b, 0xf4, 0x4f, 0x2d, 0x16, 0xbe, 0x92,
1208 0x8c, 0xa4, 0x4a, 0xaf, 0x7b, 0x9b, 0x10, 0x6b
1209 } },
1210 {{
1211 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1212 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1213 }, {
1214 0xb5, 0xf1, 0xa3, 0x3e, 0x50, 0xd4, 0x0d, 0x10,
1215 0x37, 0x64, 0xc7, 0x6b, 0xd4, 0xc6, 0xb6, 0xf8
1216 } },
1217 {{
1218 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1219 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1220 }, {
1221 0x26, 0x37, 0x05, 0x0c, 0x9f, 0xc0, 0xd4, 0x81,
1222 0x7e, 0x2d, 0x69, 0xde, 0x87, 0x8a, 0xee, 0x8d
1223 } },
1224 {{
1225 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1226 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1227 }, {
1228 0x11, 0x3e, 0xcb, 0xe4, 0xa4, 0x53, 0x26, 0x9a,
1229 0x0d, 0xd2, 0x60, 0x69, 0x46, 0x7f, 0xb5, 0xb5
1230 } },
1231 {{
1232 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1233 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1234 }, {
1235 0x97, 0xd0, 0x75, 0x4f, 0xe6, 0x8f, 0x11, 0xb9,
1236 0xe3, 0x75, 0xd0, 0x70, 0xa6, 0x08, 0xc8, 0x84
1237 } },
1238 {{
1239 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
1240 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1241 }, {
1242 0xc6, 0xa0, 0xb3, 0xe9, 0x98, 0xd0, 0x50, 0x68,
1243 0xa5, 0x39, 0x97, 0x78, 0x40, 0x52, 0x00, 0xb4
1244 } },
1245 {{
1246 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00,
1247 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1248 }, {
1249 0xdf, 0x55, 0x6a, 0x33, 0x43, 0x8d, 0xb8, 0x7b,
1250 0xc4, 0x1b, 0x17, 0x52, 0xc5, 0x5e, 0x5e, 0x49
1251 } },
1252 {{
1253 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00,
1254 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1255 }, {
1256 0x90, 0xfb, 0x12, 0x8d, 0x3a, 0x1a, 0xf6, 0xe5,
1257 0x48, 0x52, 0x1b, 0xb9, 0x62, 0xbf, 0x1f, 0x05
1258 } },
1259 {{
1260 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
1261 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1262 }, {
1263 0x26, 0x29, 0x8e, 0x9c, 0x1d, 0xb5, 0x17, 0xc2,
1264 0x15, 0xfa, 0xdf, 0xb7, 0xd2, 0xa8, 0xd6, 0x91
1265 } },
1266 {{
1267 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00,
1268 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1269 }, {
1270 0xa6, 0xcb, 0x76, 0x1d, 0x61, 0xf8, 0x29, 0x2d,
1271 0x0d, 0xf3, 0x93, 0xa2, 0x79, 0xad, 0x03, 0x80
1272 } },
1273 {{
1274 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00,
1275 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1276 }, {
1277 0x12, 0xac, 0xd8, 0x9b, 0x13, 0xcd, 0x5f, 0x87,
1278 0x26, 0xe3, 0x4d, 0x44, 0xfd, 0x48, 0x61, 0x08
1279 } },
1280 {{
1281 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00,
1282 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1283 }, {
1284 0x95, 0xb1, 0x70, 0x3f, 0xc5, 0x7b, 0xa0, 0x9f,
1285 0xe0, 0xc3, 0x58, 0x0f, 0xeb, 0xdd, 0x7e, 0xd4
1286 } },
1287 {{
1288 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00,
1289 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1290 }, {
1291 0xde, 0x11, 0x72, 0x2d, 0x89, 0x3e, 0x9f, 0x91,
1292 0x21, 0xc3, 0x81, 0xbe, 0xcc, 0x1d, 0xa5, 0x9a
1293 } },
1294 {{
1295 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00,
1296 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1297 }, {
1298 0x6d, 0x11, 0x4c, 0xcb, 0x27, 0xbf, 0x39, 0x10,
1299 0x12, 0xe8, 0x97, 0x4c, 0x54, 0x6d, 0x9b, 0xf2
1300 } },
1301 {{
1302 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00,
1303 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1304 }, {
1305 0x5c, 0xe3, 0x7e, 0x17, 0xeb, 0x46, 0x46, 0xec,
1306 0xfa, 0xc2, 0x9b, 0x9c, 0xc3, 0x8d, 0x93, 0x40
1307 } },
1308 {{
1309 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00,
1310 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1311 }, {
1312 0x18, 0xc1, 0xb6, 0xe2, 0x15, 0x71, 0x22, 0x05,
1313 0x6d, 0x02, 0x43, 0xd8, 0xa1, 0x65, 0xcd, 0xdb
1314 } },
1315 {{
1316 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00,
1317 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1318 }, {
1319 0x99, 0x69, 0x3e, 0x6a, 0x59, 0xd1, 0x36, 0x6c,
1320 0x74, 0xd8, 0x23, 0x56, 0x2d, 0x7e, 0x14, 0x31
1321 } },
1322 {{
1323 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00,
1324 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1325 }, {
1326 0x6c, 0x7c, 0x64, 0xdc, 0x84, 0xa8, 0xbb, 0xa7,
1327 0x58, 0xed, 0x17, 0xeb, 0x02, 0x5a, 0x57, 0xe3
1328 } },
1329 {{
1330 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00,
1331 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1332 }, {
1333 0xe1, 0x7b, 0xc7, 0x9f, 0x30, 0xea, 0xab, 0x2f,
1334 0xac, 0x2c, 0xbb, 0xe3, 0x45, 0x8d, 0x68, 0x7a
1335 } },
1336 {{
1337 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00,
1338 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1339 }, {
1340 0x11, 0x14, 0xbc, 0x20, 0x28, 0x00, 0x9b, 0x92,
1341 0x3f, 0x0b, 0x01, 0x91, 0x5c, 0xe5, 0xe7, 0xc4
1342 } },
1343 {{
1344 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00,
1345 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1346 }, {
1347 0x9c, 0x28, 0x52, 0x4a, 0x16, 0xa1, 0xe1, 0xc1,
1348 0x45, 0x29, 0x71, 0xca, 0xa8, 0xd1, 0x34, 0x76
1349 } },
1350 {{
1351 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00,
1352 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1353 }, {
1354 0xed, 0x62, 0xe1, 0x63, 0x63, 0x63, 0x83, 0x60,
1355 0xfd, 0xd6, 0xad, 0x62, 0x11, 0x27, 0x94, 0xf0
1356 } },
1357 {{
1358 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00,
1359 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1360 }, {
1361 0x5a, 0x86, 0x88, 0xf0, 0xb2, 0xa2, 0xc1, 0x62,
1362 0x24, 0xc1, 0x61, 0x65, 0x8f, 0xfd, 0x40, 0x44
1363 } },
1364 {{
1365 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00,
1366 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1367 }, {
1368 0x23, 0xf7, 0x10, 0x84, 0x2b, 0x9b, 0xb9, 0xc3,
1369 0x2f, 0x26, 0x64, 0x8c, 0x78, 0x68, 0x07, 0xca
1370 } },
1371 {{
1372 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00,
1373 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1374 }, {
1375 0x44, 0xa9, 0x8b, 0xf1, 0x1e, 0x16, 0x3f, 0x63,
1376 0x2c, 0x47, 0xec, 0x6a, 0x49, 0x68, 0x3a, 0x89
1377 } },
1378 {{
1379 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00,
1380 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1381 }, {
1382 0x0f, 0x18, 0xaf, 0xf9, 0x42, 0x74, 0x69, 0x6d,
1383 0x9b, 0x61, 0x84, 0x8b, 0xd5, 0x0a, 0xc5, 0xe5
1384 } },
1385 {{
1386 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00,
1387 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1388 }, {
1389 0x82, 0x40, 0x85, 0x71, 0xc3, 0xe2, 0x42, 0x45,
1390 0x40, 0x20, 0x7f, 0x83, 0x3b, 0x6d, 0xda, 0x69
1391 } },
1392 {{
1393 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00,
1394 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1395 }, {
1396 0x30, 0x3f, 0xf9, 0x96, 0x94, 0x7f, 0x0c, 0x7d,
1397 0x1f, 0x43, 0xc8, 0xf3, 0x02, 0x7b, 0x9b, 0x75
1398 } },
1399 {{
1400 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
1401 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1402 }, {
1403 0x7d, 0xf4, 0xda, 0xf4, 0xad, 0x29, 0xa3, 0x61,
1404 0x5a, 0x9b, 0x6e, 0xce, 0x5c, 0x99, 0x51, 0x8a
1405 } },
1406 {{
1407 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00,
1408 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1409 }, {
1410 0xc7, 0x29, 0x54, 0xa4, 0x8d, 0x07, 0x74, 0xdb,
1411 0x0b, 0x49, 0x71, 0xc5, 0x26, 0x26, 0x04, 0x15
1412 } },
1413 {{
1414 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00,
1415 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1416 }, {
1417 0x1d, 0xf9, 0xb7, 0x61, 0x12, 0xdc, 0x65, 0x31,
1418 0xe0, 0x7d, 0x2c, 0xfd, 0xa0, 0x44, 0x11, 0xf0
1419 } },
1420 {{
1421 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00,
1422 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1423 }, {
1424 0x8e, 0x4d, 0x8e, 0x69, 0x91, 0x19, 0xe1, 0xfc,
1425 0x87, 0x54, 0x5a, 0x64, 0x7f, 0xb1, 0xd3, 0x4f
1426 } },
1427 {{
1428 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00,
1429 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1430 }, {
1431 0xe6, 0xc4, 0x80, 0x7a, 0xe1, 0x1f, 0x36, 0xf0,
1432 0x91, 0xc5, 0x7d, 0x9f, 0xb6, 0x85, 0x48, 0xd1
1433 } },
1434 {{
1435 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00,
1436 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1437 }, {
1438 0x8e, 0xbf, 0x73, 0xaa, 0xd4, 0x9c, 0x82, 0x00,
1439 0x7f, 0x77, 0xa5, 0xc1, 0xcc, 0xec, 0x6a, 0xb4
1440 } },
1441 {{
1442 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00,
1443 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1444 }, {
1445 0x4f, 0xb2, 0x88, 0xcc, 0x20, 0x40, 0x04, 0x90,
1446 0x01, 0xd2, 0xc7, 0x58, 0x5a, 0xd1, 0x23, 0xfc
1447 } },
1448 {{
1449 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00,
1450 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1451 }, {
1452 0x04, 0x49, 0x71, 0x10, 0xef, 0xb9, 0xdc, 0xeb,
1453 0x13, 0xe2, 0xb1, 0x3f, 0xb4, 0x46, 0x55, 0x64
1454 } },
1455 {{
1456 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
1457 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1458 }, {
1459 0x75, 0x55, 0x0e, 0x6c, 0xb5, 0xa8, 0x8e, 0x49,
1460 0x63, 0x4c, 0x9a, 0xb6, 0x9e, 0xda, 0x04, 0x30
1461 } },
1462 {{
1463 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00,
1464 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1465 }, {
1466 0xb6, 0x76, 0x84, 0x73, 0xce, 0x98, 0x43, 0xea,
1467 0x66, 0xa8, 0x14, 0x05, 0xdd, 0x50, 0xb3, 0x45
1468 } },
1469 {{
1470 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00,
1471 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1472 }, {
1473 0xcb, 0x2f, 0x43, 0x03, 0x83, 0xf9, 0x08, 0x4e,
1474 0x03, 0xa6, 0x53, 0x57, 0x1e, 0x06, 0x5d, 0xe6
1475 } },
1476 {{
1477 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00,
1478 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1479 }, {
1480 0xff, 0x4e, 0x66, 0xc0, 0x7b, 0xae, 0x3e, 0x79,
1481 0xfb, 0x7d, 0x21, 0x08, 0x47, 0xa3, 0xb0, 0xba
1482 } },
1483 {{
1484 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00,
1485 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1486 }, {
1487 0x7b, 0x90, 0x78, 0x51, 0x25, 0x50, 0x5f, 0xad,
1488 0x59, 0xb1, 0x3c, 0x18, 0x6d, 0xd6, 0x6c, 0xe3
1489 } },
1490 {{
1491 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00,
1492 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1493 }, {
1494 0x8b, 0x52, 0x7a, 0x6a, 0xeb, 0xda, 0xec, 0x9e,
1495 0xae, 0xf8, 0xed, 0xa2, 0xcb, 0x77, 0x83, 0xe5
1496 } },
1497 {{
1498 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00,
1499 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1500 }, {
1501 0x43, 0xfd, 0xaf, 0x53, 0xeb, 0xbc, 0x98, 0x80,
1502 0xc2, 0x28, 0x61, 0x7d, 0x6a, 0x9b, 0x54, 0x8b
1503 } },
1504 {{
1505 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
1506 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1507 }, {
1508 0x53, 0x78, 0x61, 0x04, 0xb9, 0x74, 0x4b, 0x98,
1509 0xf0, 0x52, 0xc4, 0x6f, 0x1c, 0x85, 0x0d, 0x0b
1510 } },
1511 {{
1512 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
1513 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1514 }, {
1515 0xb5, 0xab, 0x30, 0x13, 0xdd, 0x1e, 0x61, 0xdf,
1516 0x06, 0xcb, 0xaf, 0x34, 0xca, 0x2a, 0xee, 0x78
1517 } },
1518 {{
1519 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
1520 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1521 }, {
1522 0x74, 0x70, 0x46, 0x9b, 0xe9, 0x72, 0x30, 0x30,
1523 0xfd, 0xcc, 0x73, 0xa8, 0xcd, 0x4f, 0xbb, 0x10
1524 } },
1525 {{
1526 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
1527 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1528 }, {
1529 0xa3, 0x5a, 0x63, 0xf5, 0x34, 0x3e, 0xbe, 0x9e,
1530 0xf8, 0x16, 0x7b, 0xcb, 0x48, 0xad, 0x12, 0x2e
1531 } },
1532 {{
1533 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
1534 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1535 }, {
1536 0xfd, 0x86, 0x87, 0xf0, 0x75, 0x7a, 0x21, 0x0e,
1537 0x9f, 0xdf, 0x18, 0x12, 0x04, 0xc3, 0x08, 0x63
1538 } },
1539 {{
1540 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
1541 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1542 }, {
1543 0x7a, 0x18, 0x1e, 0x84, 0xbd, 0x54, 0x57, 0xd2,
1544 0x6a, 0x88, 0xfb, 0xae, 0x96, 0x01, 0x8f, 0xb0
1545 } },
1546 {{
1547 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8,
1548 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1549 }, {
1550 0x65, 0x33, 0x17, 0xb9, 0x36, 0x2b, 0x6f, 0x9b,
1551 0x9e, 0x1a, 0x58, 0x0e, 0x68, 0xd4, 0x94, 0xb5
1552 } },
1553 {{
1554 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
1555 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1556 }, {
1557 0x99, 0x5c, 0x9d, 0xc0, 0xb6, 0x89, 0xf0, 0x3c,
1558 0x45, 0x86, 0x7b, 0x5f, 0xaa, 0x5c, 0x18, 0xd1
1559 } },
1560 {{
1561 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe,
1562 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1563 }, {
1564 0x77, 0xa4, 0xd9, 0x6d, 0x56, 0xdd, 0xa3, 0x98,
1565 0xb9, 0xaa, 0xbe, 0xcf, 0xc7, 0x57, 0x29, 0xfd
1566 } },
1567 {{
1568 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1569 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1570 }, {
1571 0x84, 0xbe, 0x19, 0xe0, 0x53, 0x63, 0x5f, 0x09,
1572 0xf2, 0x66, 0x5e, 0x7b, 0xae, 0x85, 0xb4, 0x2d
1573 } },
1574 {{
1575 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1576 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1577 }, {
1578 0x32, 0xcd, 0x65, 0x28, 0x42, 0x92, 0x6a, 0xea,
1579 0x4a, 0xa6, 0x13, 0x7b, 0xb2, 0xbe, 0x2b, 0x5e
1580 } },
1581 {{
1582 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1583 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1584 }, {
1585 0x49, 0x3d, 0x4a, 0x4f, 0x38, 0xeb, 0xb3, 0x37,
1586 0xd1, 0x0a, 0xa8, 0x4e, 0x91, 0x71, 0xa5, 0x54
1587 } },
1588 {{
1589 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1590 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1591 }, {
1592 0xd9, 0xbf, 0xf7, 0xff, 0x45, 0x4b, 0x0e, 0xc5,
1593 0xa4, 0xa2, 0xa6, 0x95, 0x66, 0xe2, 0xcb, 0x84
1594 } },
1595 {{
1596 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1597 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1598 }, {
1599 0x35, 0x35, 0xd5, 0x65, 0xac, 0xe3, 0xf3, 0x1e,
1600 0xb2, 0x49, 0xba, 0x2c, 0xc6, 0x76, 0x5d, 0x7a
1601 } },
1602 {{
1603 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1604 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1605 }, {
1606 0xf6, 0x0e, 0x91, 0xfc, 0x32, 0x69, 0xee, 0xcf,
1607 0x32, 0x31, 0xc6, 0xe9, 0x94, 0x56, 0x97, 0xc6
1608 } },
1609 {{
1610 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1611 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1612 }, {
1613 0xab, 0x69, 0xcf, 0xad, 0xf5, 0x1f, 0x8e, 0x60,
1614 0x4d, 0x9c, 0xc3, 0x71, 0x82, 0xf6, 0x63, 0x5a
1615 } },
1616 {{
1617 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1618 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1619 }, {
1620 0x78, 0x66, 0x37, 0x3f, 0x24, 0xa0, 0xb6, 0xed,
1621 0x56, 0xe0, 0xd9, 0x6f, 0xcd, 0xaf, 0xb8, 0x77
1622 } },
1623 {{
1624 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1625 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1626 }, {
1627 0x1e, 0xa4, 0x48, 0xc2, 0xaa, 0xc9, 0x54, 0xf5,
1628 0xd8, 0x12, 0xe9, 0xd7, 0x84, 0x94, 0x44, 0x6a
1629 } },
1630 {{
1631 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1632 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1633 }, {
1634 0xac, 0xc5, 0x59, 0x9d, 0xd8, 0xac, 0x02, 0x23,
1635 0x9a, 0x0f, 0xef, 0x4a, 0x36, 0xdd, 0x16, 0x68
1636 } },
1637 {{
1638 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1639 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1640 }, {
1641 0xd8, 0x76, 0x44, 0x68, 0xbb, 0x10, 0x38, 0x28,
1642 0xcf, 0x7e, 0x14, 0x73, 0xce, 0x89, 0x50, 0x73
1643 } },
1644 {{
1645 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1646 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1647 }, {
1648 0x1b, 0x0d, 0x02, 0x89, 0x36, 0x83, 0xb9, 0xf1,
1649 0x80, 0x45, 0x8e, 0x4a, 0xa6, 0xb7, 0x39, 0x82
1650 } },
1651 {{
1652 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1653 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1654 }, {
1655 0x96, 0xd9, 0xb0, 0x17, 0xd3, 0x02, 0xdf, 0x41,
1656 0x0a, 0x93, 0x7d, 0xcd, 0xb8, 0xbb, 0x6e, 0x43
1657 } },
1658 {{
1659 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1660 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1661 }, {
1662 0xef, 0x16, 0x23, 0xcc, 0x44, 0x31, 0x3c, 0xff,
1663 0x44, 0x0b, 0x15, 0x94, 0xa7, 0xe2, 0x1c, 0xc6
1664 } },
1665 {{
1666 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1667 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1668 }, {
1669 0x28, 0x4c, 0xa2, 0xfa, 0x35, 0x80, 0x7b, 0x8b,
1670 0x0a, 0xe4, 0xd1, 0x9e, 0x11, 0xd7, 0xdb, 0xd7
1671 } },
1672 {{
1673 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1674 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1675 }, {
1676 0xf2, 0xe9, 0x76, 0x87, 0x57, 0x55, 0xf9, 0x40,
1677 0x1d, 0x54, 0xf3, 0x6e, 0x2a, 0x23, 0xa5, 0x94
1678 } },
1679 {{
1680 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1681 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1682 }, {
1683 0xec, 0x19, 0x8a, 0x18, 0xe1, 0x0e, 0x53, 0x24,
1684 0x03, 0xb7, 0xe2, 0x08, 0x87, 0xc8, 0xdd, 0x80
1685 } },
1686 {{
1687 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1688 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
1689 }, {
1690 0x54, 0x5d, 0x50, 0xeb, 0xd9, 0x19, 0xe4, 0xa6,
1691 0x94, 0x9d, 0x96, 0xad, 0x47, 0xe4, 0x6a, 0x80
1692 } },
1693 {{
1694 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1695 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00
1696 }, {
1697 0xdb, 0xdf, 0xb5, 0x27, 0x06, 0x0e, 0x0a, 0x71,
1698 0x00, 0x9c, 0x7b, 0xb0, 0xc6, 0x8f, 0x1d, 0x44
1699 } },
1700 {{
1701 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1702 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00
1703 }, {
1704 0x9c, 0xfa, 0x13, 0x22, 0xea, 0x33, 0xda, 0x21,
1705 0x73, 0xa0, 0x24, 0xf2, 0xff, 0x0d, 0x89, 0x6d
1706 } },
1707 {{
1708 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1709 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00
1710 }, {
1711 0x87, 0x85, 0xb1, 0xa7, 0x5b, 0x0f, 0x3b, 0xd9,
1712 0x58, 0xdc, 0xd0, 0xe2, 0x93, 0x18, 0xc5, 0x21
1713 } },
1714 {{
1715 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1716 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00
1717 }, {
1718 0x38, 0xf6, 0x7b, 0x9e, 0x98, 0xe4, 0xa9, 0x7b,
1719 0x6d, 0xf0, 0x30, 0xa9, 0xfc, 0xdd, 0x01, 0x04
1720 } },
1721 {{
1722 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1723 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00, 0x00
1724 }, {
1725 0x19, 0x2a, 0xff, 0xfb, 0x2c, 0x88, 0x0e, 0x82,
1726 0xb0, 0x59, 0x26, 0xd0, 0xfc, 0x6c, 0x44, 0x8b
1727 } },
1728 {{
1729 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1730 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00, 0x00
1731 }, {
1732 0x6a, 0x79, 0x80, 0xce, 0x7b, 0x10, 0x5c, 0xf5,
1733 0x30, 0x95, 0x2d, 0x74, 0xda, 0xaf, 0x79, 0x8c
1734 } },
1735 {{
1736 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1737 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
1738 }, {
1739 0xea, 0x36, 0x95, 0xe1, 0x35, 0x1b, 0x9d, 0x68,
1740 0x58, 0xbd, 0x95, 0x8c, 0xf5, 0x13, 0xef, 0x6c
1741 } },
1742 {{
1743 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1744 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x00
1745 }, {
1746 0x6d, 0xa0, 0x49, 0x0b, 0xa0, 0xba, 0x03, 0x43,
1747 0xb9, 0x35, 0x68, 0x1d, 0x2c, 0xce, 0x5b, 0xa1
1748 } },
1749 {{
1750 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1751 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00, 0x00
1752 }, {
1753 0xf0, 0xea, 0x23, 0xaf, 0x08, 0x53, 0x40, 0x11,
1754 0xc6, 0x00, 0x09, 0xab, 0x29, 0xad, 0xa2, 0xf1
1755 } },
1756 {{
1757 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1758 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0x00
1759 }, {
1760 0xff, 0x13, 0x80, 0x6c, 0xf1, 0x9c, 0xc3, 0x87,
1761 0x21, 0x55, 0x4d, 0x7c, 0x0f, 0xcd, 0xcd, 0x4b
1762 } },
1763 {{
1764 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1765 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00, 0x00
1766 }, {
1767 0x68, 0x38, 0xaf, 0x1f, 0x4f, 0x69, 0xba, 0xe9,
1768 0xd8, 0x5d, 0xd1, 0x88, 0xdc, 0xdf, 0x06, 0x88
1769 } },
1770 {{
1771 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1772 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00, 0x00
1773 }, {
1774 0x36, 0xcf, 0x44, 0xc9, 0x2d, 0x55, 0x0b, 0xfb,
1775 0x1e, 0xd2, 0x8e, 0xf5, 0x83, 0xdd, 0xf5, 0xd7
1776 } },
1777 {{
1778 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1779 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0x00
1780 }, {
1781 0xd0, 0x6e, 0x31, 0x95, 0xb5, 0x37, 0x6f, 0x10,
1782 0x9d, 0x5c, 0x4e, 0xc6, 0xc5, 0xd6, 0x2c, 0xed
1783 } },
1784 {{
1785 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1786 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x00
1787 }, {
1788 0xc4, 0x40, 0xde, 0x01, 0x4d, 0x3d, 0x61, 0x07,
1789 0x07, 0x27, 0x9b, 0x13, 0x24, 0x2a, 0x5c, 0x36
1790 } },
1791 {{
1792 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1793 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00
1794 }, {
1795 0xf0, 0xc5, 0xc6, 0xff, 0xa5, 0xe0, 0xbd, 0x3a,
1796 0x94, 0xc8, 0x8f, 0x6b, 0x6f, 0x7c, 0x16, 0xb9
1797 } },
1798 {{
1799 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1800 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00
1801 }, {
1802 0x3e, 0x40, 0xc3, 0x90, 0x1c, 0xd7, 0xef, 0xfc,
1803 0x22, 0xbf, 0xfc, 0x35, 0xde, 0xe0, 0xb4, 0xd9
1804 } },
1805 {{
1806 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1807 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0x00
1808 }, {
1809 0xb6, 0x33, 0x05, 0xc7, 0x2b, 0xed, 0xfa, 0xb9,
1810 0x73, 0x82, 0xc4, 0x06, 0xd0, 0xc4, 0x9b, 0xc6
1811 } },
1812 {{
1813 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1814 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00
1815 }, {
1816 0x36, 0xbb, 0xaa, 0xb2, 0x2a, 0x6b, 0xd4, 0x92,
1817 0x5a, 0x99, 0xa2, 0xb4, 0x08, 0xd2, 0xdb, 0xae
1818 } },
1819 {{
1820 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1821 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00, 0x00
1822 }, {
1823 0x30, 0x7c, 0x5b, 0x8f, 0xcd, 0x05, 0x33, 0xab,
1824 0x98, 0xbc, 0x51, 0xe2, 0x7a, 0x6c, 0xe4, 0x61
1825 } },
1826 {{
1827 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1828 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x00
1829 }, {
1830 0x82, 0x9c, 0x04, 0xff, 0x4c, 0x07, 0x51, 0x3c,
1831 0x0b, 0x3e, 0xf0, 0x5c, 0x03, 0xe3, 0x37, 0xb5
1832 } },
1833 {{
1834 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1835 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00
1836 }, {
1837 0xf1, 0x7a, 0xf0, 0xe8, 0x95, 0xdd, 0xa5, 0xeb,
1838 0x98, 0xef, 0xc6, 0x80, 0x66, 0xe8, 0x4c, 0x54
1839 } },
1840 {{
1841 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1842 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00
1843 }, {
1844 0x27, 0x71, 0x67, 0xf3, 0x81, 0x2a, 0xff, 0xf1,
1845 0xff, 0xac, 0xb4, 0xa9, 0x34, 0x37, 0x9f, 0xc3
1846 } },
1847 {{
1848 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1849 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00
1850 }, {
1851 0x2c, 0xb1, 0xdc, 0x3a, 0x9c, 0x72, 0x97, 0x2e,
1852 0x42, 0x5a, 0xe2, 0xef, 0x3e, 0xb5, 0x97, 0xcd
1853 } },
1854 {{
1855 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1856 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00
1857 }, {
1858 0x36, 0xae, 0xaa, 0x3a, 0x21, 0x3e, 0x96, 0x8d,
1859 0x4b, 0x5b, 0x67, 0x9d, 0x3a, 0x2c, 0x97, 0xfe
1860 } },
1861 {{
1862 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1863 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00
1864 }, {
1865 0x92, 0x41, 0xda, 0xca, 0x4f, 0xdd, 0x03, 0x4a,
1866 0x82, 0x37, 0x2d, 0xb5, 0x0e, 0x1a, 0x0f, 0x3f
1867 } },
1868 {{
1869 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1870 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00
1871 }, {
1872 0xc1, 0x45, 0x74, 0xd9, 0xcd, 0x00, 0xcf, 0x2b,
1873 0x5a, 0x7f, 0x77, 0xe5, 0x3c, 0xd5, 0x78, 0x85
1874 } },
1875 {{
1876 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1877 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x00
1878 }, {
1879 0x79, 0x3d, 0xe3, 0x92, 0x36, 0x57, 0x0a, 0xba,
1880 0x83, 0xab, 0x9b, 0x73, 0x7c, 0xb5, 0x21, 0xc9
1881 } },
1882 {{
1883 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1884 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00
1885 }, {
1886 0x16, 0x59, 0x1c, 0x0f, 0x27, 0xd6, 0x0e, 0x29,
1887 0xb8, 0x5a, 0x96, 0xc3, 0x38, 0x61, 0xa7, 0xef
1888 } },
1889 {{
1890 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1891 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00
1892 }, {
1893 0x44, 0xfb, 0x5c, 0x4d, 0x4f, 0x5c, 0xb7, 0x9b,
1894 0xe5, 0xc1, 0x74, 0xa3, 0xb1, 0xc9, 0x73, 0x48
1895 } },
1896 {{
1897 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1898 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00
1899 }, {
1900 0x67, 0x4d, 0x2b, 0x61, 0x63, 0x3d, 0x16, 0x2b,
1901 0xe5, 0x9d, 0xde, 0x04, 0x22, 0x2f, 0x47, 0x40
1902 } },
1903 {{
1904 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1905 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00
1906 }, {
1907 0xb4, 0x75, 0x0f, 0xf2, 0x63, 0xa6, 0x5e, 0x1f,
1908 0x9e, 0x92, 0x4c, 0xcf, 0xd9, 0x8f, 0x3e, 0x37
1909 } },
1910 {{
1911 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1912 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00
1913 }, {
1914 0x62, 0xd0, 0x66, 0x2d, 0x6e, 0xae, 0xdd, 0xed,
1915 0xeb, 0xae, 0x7f, 0x7e, 0xa3, 0xa4, 0xf6, 0xb6
1916 } },
1917 {{
1918 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1919 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00
1920 }, {
1921 0x70, 0xc4, 0x6b, 0xb3, 0x06, 0x92, 0xbe, 0x65,
1922 0x7f, 0x7e, 0xaa, 0x93, 0xeb, 0xad, 0x98, 0x97
1923 } },
1924 {{
1925 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1926 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00
1927 }, {
1928 0x32, 0x39, 0x94, 0xcf, 0xb9, 0xda, 0x28, 0x5a,
1929 0x5d, 0x96, 0x42, 0xe1, 0x75, 0x9b, 0x22, 0x4a
1930 } },
1931 {{
1932 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1933 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00
1934 }, {
1935 0x1d, 0xbf, 0x57, 0x87, 0x7b, 0x7b, 0x17, 0x38,
1936 0x5c, 0x85, 0xd0, 0xb5, 0x48, 0x51, 0xe3, 0x71
1937 } },
1938 {{
1939 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1940 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00
1941 }, {
1942 0xdf, 0xa5, 0xc0, 0x97, 0xcd, 0xc1, 0x53, 0x2a,
1943 0xc0, 0x71, 0xd5, 0x7b, 0x1d, 0x28, 0xd1, 0xbd
1944 } },
1945 {{
1946 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1947 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00
1948 }, {
1949 0x3a, 0x0c, 0x53, 0xfa, 0x37, 0x31, 0x1f, 0xc1,
1950 0x0b, 0xd2, 0xa9, 0x98, 0x1f, 0x51, 0x31, 0x74
1951 } },
1952 {{
1953 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1954 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00
1955 }, {
1956 0xba, 0x4f, 0x97, 0x0c, 0x0a, 0x25, 0xc4, 0x18,
1957 0x14, 0xbd, 0xae, 0x2e, 0x50, 0x6b, 0xe3, 0xb4
1958 } },
1959 {{
1960 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1961 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00
1962 }, {
1963 0x2d, 0xce, 0x3a, 0xcb, 0x72, 0x7c, 0xd1, 0x3c,
1964 0xcd, 0x76, 0xd4, 0x25, 0xea, 0x56, 0xe4, 0xf6
1965 } },
1966 {{
1967 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1968 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80
1969 }, {
1970 0x51, 0x60, 0x47, 0x4d, 0x50, 0x4b, 0x9b, 0x3e,
1971 0xef, 0xb6, 0x8d, 0x35, 0xf2, 0x45, 0xf4, 0xb3
1972 } },
1973 {{
1974 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1975 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0
1976 }, {
1977 0x41, 0xa8, 0xa9, 0x47, 0x76, 0x66, 0x35, 0xde,
1978 0xc3, 0x75, 0x53, 0xd9, 0xa6, 0xc0, 0xcb, 0xb7
1979 } },
1980 {{
1981 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1982 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0
1983 }, {
1984 0x25, 0xd6, 0xcf, 0xe6, 0x88, 0x1f, 0x2b, 0xf4,
1985 0x97, 0xdd, 0x14, 0xcd, 0x4d, 0xdf, 0x44, 0x5b
1986 } },
1987 {{
1988 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1989 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0
1990 }, {
1991 0x41, 0xc7, 0x8c, 0x13, 0x5e, 0xd9, 0xe9, 0x8c,
1992 0x09, 0x66, 0x40, 0x64, 0x72, 0x65, 0xda, 0x1e
1993 } },
1994 {{
1995 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
1996 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8
1997 }, {
1998 0x5a, 0x4d, 0x40, 0x4d, 0x89, 0x17, 0xe3, 0x53,
1999 0xe9, 0x2a, 0x21, 0x07, 0x2c, 0x3b, 0x23, 0x05
2000 } },
2001 {{
2002 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2003 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc
2004 }, {
2005 0x02, 0xbc, 0x96, 0x84, 0x6b, 0x3f, 0xdc, 0x71,
2006 0x64, 0x3f, 0x38, 0x4c, 0xd3, 0xcc, 0x3e, 0xaf
2007 } },
2008 {{
2009 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2010 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe
2011 }, {
2012 0x9b, 0xa4, 0xa9, 0x14, 0x3f, 0x4e, 0x5d, 0x40,
2013 0x48, 0x52, 0x1c, 0x4f, 0x88, 0x77, 0xd8, 0x8e
2014 } },
2015 {{
2016 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
2017 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
2018 }, {
2019 0xa1, 0xf6, 0x25, 0x8c, 0x87, 0x7d, 0x5f, 0xcd,
2020 0x89, 0x64, 0x48, 0x45, 0x38, 0xbf, 0xc9, 0x2c
2021 } }
2022 };
2023 uint32_t i;
2024
2025 TC_PRINT("AES128 test #4 (NIST variable-key and fixed-text):\n");
2026
2027 for (i = 0; i < NUM_OF_FIXED_KEYS; ++i) {
2028 result = var_key_test(i, kat_tbl[i].in, kat_tbl[i].out);
2029 if (result == TC_FAIL) {
2030 break;
2031 }
2032
2033 }
2034
2035 TC_END_RESULT(result);
2036
2037 return result;
2038}
2039
2040/*
2041 * Main task to test AES
2042 */
2043int main(void)
2044{
2045 int result = TC_PASS;
2046
2047 TC_START("Performing AES128 tests:");
2048
2049 result = test_1();
2050 if (result == TC_FAIL) { /* terminate test */
2051 TC_ERROR("AES128 test #1 (NIST key schedule test) failed.\n");
2052 goto exitTest;
2053 }
2054 result = test_2();
2055 if (result == TC_FAIL) { /* terminate test */
2056 TC_ERROR("AES128 test #2 (NIST encryption test) failed.\n");
2057 goto exitTest;
2058 }
2059 result = test_3();
2060 if (result == TC_FAIL) { /* terminate test */
2061 TC_ERROR("AES128 test #3 (NIST fixed-key and variable-text) "
2062 "failed.\n");
2063 goto exitTest;
2064 }
2065 result = test_4();
2066 if (result == TC_FAIL) { /* terminate test */
2067 TC_ERROR("AES128 test #4 (NIST variable-key and fixed-text) "
2068 "failed.\n");
2069 goto exitTest;
2070 }
2071
2072 TC_PRINT("All AES128 tests succeeded!\n");
2073
2074 exitTest:
2075 TC_END_RESULT(result);
2076 TC_END_REPORT(result);
2077
2078 return result;
2079}