xref: /OK3568_Linux_fs/kernel/lib/crypto/blake2s-selftest.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0 OR MIT
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * Copyright (C) 2015-2019 Jason A. Donenfeld <Jason@zx2c4.com>. All Rights Reserved.
4*4882a593Smuzhiyun  */
5*4882a593Smuzhiyun 
6*4882a593Smuzhiyun #include <crypto/internal/blake2s.h>
7*4882a593Smuzhiyun #include <linux/string.h>
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun /*
10*4882a593Smuzhiyun  * blake2s_testvecs[] generated with the program below (using libb2-dev and
11*4882a593Smuzhiyun  * libssl-dev [OpenSSL])
12*4882a593Smuzhiyun  *
13*4882a593Smuzhiyun  * #include <blake2.h>
14*4882a593Smuzhiyun  * #include <stdint.h>
15*4882a593Smuzhiyun  * #include <stdio.h>
16*4882a593Smuzhiyun  *
17*4882a593Smuzhiyun  * #include <openssl/evp.h>
18*4882a593Smuzhiyun  *
19*4882a593Smuzhiyun  * #define BLAKE2S_TESTVEC_COUNT	256
20*4882a593Smuzhiyun  *
21*4882a593Smuzhiyun  * static void print_vec(const uint8_t vec[], int len)
22*4882a593Smuzhiyun  * {
23*4882a593Smuzhiyun  *	int i;
24*4882a593Smuzhiyun  *
25*4882a593Smuzhiyun  *	printf("  { ");
26*4882a593Smuzhiyun  *	for (i = 0; i < len; i++) {
27*4882a593Smuzhiyun  *		if (i && (i % 12) == 0)
28*4882a593Smuzhiyun  *			printf("\n    ");
29*4882a593Smuzhiyun  *		printf("0x%02x, ", vec[i]);
30*4882a593Smuzhiyun  *	}
31*4882a593Smuzhiyun  *	printf("},\n");
32*4882a593Smuzhiyun  * }
33*4882a593Smuzhiyun  *
34*4882a593Smuzhiyun  * int main(void)
35*4882a593Smuzhiyun  * {
36*4882a593Smuzhiyun  *	uint8_t key[BLAKE2S_KEYBYTES];
37*4882a593Smuzhiyun  *	uint8_t buf[BLAKE2S_TESTVEC_COUNT];
38*4882a593Smuzhiyun  *	uint8_t hash[BLAKE2S_OUTBYTES];
39*4882a593Smuzhiyun  *	int i, j;
40*4882a593Smuzhiyun  *
41*4882a593Smuzhiyun  *	key[0] = key[1] = 1;
42*4882a593Smuzhiyun  *	for (i = 2; i < BLAKE2S_KEYBYTES; ++i)
43*4882a593Smuzhiyun  *		key[i] = key[i - 2] + key[i - 1];
44*4882a593Smuzhiyun  *
45*4882a593Smuzhiyun  *	for (i = 0; i < BLAKE2S_TESTVEC_COUNT; ++i)
46*4882a593Smuzhiyun  *		buf[i] = (uint8_t)i;
47*4882a593Smuzhiyun  *
48*4882a593Smuzhiyun  *	printf("static const u8 blake2s_testvecs[][BLAKE2S_HASH_SIZE] __initconst = {\n");
49*4882a593Smuzhiyun  *
50*4882a593Smuzhiyun  *	for (i = 0; i < BLAKE2S_TESTVEC_COUNT; ++i) {
51*4882a593Smuzhiyun  *		int outlen = 1 + i % BLAKE2S_OUTBYTES;
52*4882a593Smuzhiyun  *		int keylen = (13 * i) % (BLAKE2S_KEYBYTES + 1);
53*4882a593Smuzhiyun  *
54*4882a593Smuzhiyun  *		blake2s(hash, buf, key + BLAKE2S_KEYBYTES - keylen, outlen, i,
55*4882a593Smuzhiyun  *			keylen);
56*4882a593Smuzhiyun  *		print_vec(hash, outlen);
57*4882a593Smuzhiyun  *	}
58*4882a593Smuzhiyun  *	printf("};\n\n");
59*4882a593Smuzhiyun  *
60*4882a593Smuzhiyun  *	return 0;
61*4882a593Smuzhiyun  *}
62*4882a593Smuzhiyun  */
63*4882a593Smuzhiyun static const u8 blake2s_testvecs[][BLAKE2S_HASH_SIZE] __initconst = {
64*4882a593Smuzhiyun   { 0xa1, },
65*4882a593Smuzhiyun   { 0x7c, 0x89, },
66*4882a593Smuzhiyun   { 0x74, 0x0e, 0xd4, },
67*4882a593Smuzhiyun   { 0x47, 0x0c, 0x21, 0x15, },
68*4882a593Smuzhiyun   { 0x18, 0xd6, 0x9c, 0xa6, 0xc4, },
69*4882a593Smuzhiyun   { 0x13, 0x5d, 0x16, 0x63, 0x2e, 0xf9, },
70*4882a593Smuzhiyun   { 0x2c, 0xb5, 0x04, 0xb7, 0x99, 0xe2, 0x73, },
71*4882a593Smuzhiyun   { 0x9a, 0x0f, 0xd2, 0x39, 0xd6, 0x68, 0x1b, 0x92, },
72*4882a593Smuzhiyun   { 0xc8, 0xde, 0x7a, 0xea, 0x2f, 0xf4, 0xd2, 0xe3, 0x2b, },
73*4882a593Smuzhiyun   { 0x5b, 0xf9, 0x43, 0x52, 0x0c, 0x12, 0xba, 0xb5, 0x93, 0x9f, },
74*4882a593Smuzhiyun   { 0xc6, 0x2c, 0x4e, 0x80, 0xfc, 0x32, 0x5b, 0x33, 0xb8, 0xb8, 0x0a, },
75*4882a593Smuzhiyun   { 0xa7, 0x5c, 0xfd, 0x3a, 0xcc, 0xbf, 0x90, 0xca, 0xb7, 0x97, 0xde, 0xd8, },
76*4882a593Smuzhiyun   { 0x66, 0xca, 0x3c, 0xc4, 0x19, 0xef, 0x92, 0x66, 0x3f, 0x21, 0x8f, 0xda,
77*4882a593Smuzhiyun     0xb7, },
78*4882a593Smuzhiyun   { 0xba, 0xe5, 0xbb, 0x30, 0x25, 0x94, 0x6d, 0xc3, 0x89, 0x09, 0xc4, 0x25,
79*4882a593Smuzhiyun     0x52, 0x3e, },
80*4882a593Smuzhiyun   { 0xa2, 0xef, 0x0e, 0x52, 0x0b, 0x5f, 0xa2, 0x01, 0x6d, 0x0a, 0x25, 0xbc,
81*4882a593Smuzhiyun     0x57, 0xe2, 0x27, },
82*4882a593Smuzhiyun   { 0x4f, 0xe0, 0xf9, 0x52, 0x12, 0xda, 0x84, 0xb7, 0xab, 0xae, 0xb0, 0xa6,
83*4882a593Smuzhiyun     0x47, 0x2a, 0xc7, 0xf5, },
84*4882a593Smuzhiyun   { 0x56, 0xe7, 0xa8, 0x1c, 0x4c, 0xca, 0xed, 0x90, 0x31, 0xec, 0x87, 0x43,
85*4882a593Smuzhiyun     0xe7, 0x72, 0x08, 0xec, 0xbe, },
86*4882a593Smuzhiyun   { 0x7e, 0xdf, 0x80, 0x1c, 0x93, 0x33, 0xfd, 0x53, 0x44, 0xba, 0xfd, 0x96,
87*4882a593Smuzhiyun     0xe1, 0xbb, 0xb5, 0x65, 0xa5, 0x00, },
88*4882a593Smuzhiyun   { 0xec, 0x6b, 0xed, 0xf7, 0x7b, 0x62, 0x1d, 0x7d, 0xf4, 0x82, 0xf3, 0x1e,
89*4882a593Smuzhiyun     0x18, 0xff, 0x2b, 0xc4, 0x06, 0x20, 0x2a, },
90*4882a593Smuzhiyun   { 0x74, 0x98, 0xd7, 0x68, 0x63, 0xed, 0x87, 0xe4, 0x5d, 0x8d, 0x9e, 0x1d,
91*4882a593Smuzhiyun     0xfd, 0x2a, 0xbb, 0x86, 0xac, 0xe9, 0x2a, 0x89, },
92*4882a593Smuzhiyun   { 0x89, 0xc3, 0x88, 0xce, 0x2b, 0x33, 0x1e, 0x10, 0xd1, 0x37, 0x20, 0x86,
93*4882a593Smuzhiyun     0x28, 0x43, 0x70, 0xd9, 0xfb, 0x96, 0xd9, 0xb5, 0xd3, },
94*4882a593Smuzhiyun   { 0xcb, 0x56, 0x74, 0x41, 0x8d, 0x80, 0x01, 0x9a, 0x6b, 0x38, 0xe1, 0x41,
95*4882a593Smuzhiyun     0xad, 0x9c, 0x62, 0x74, 0xce, 0x35, 0xd5, 0x6c, 0x89, 0x6e, },
96*4882a593Smuzhiyun   { 0x79, 0xaf, 0x94, 0x59, 0x99, 0x26, 0xe1, 0xc9, 0x34, 0xfe, 0x7c, 0x22,
97*4882a593Smuzhiyun     0xf7, 0x43, 0xd7, 0x65, 0xd4, 0x48, 0x18, 0xac, 0x3d, 0xfd, 0x93, },
98*4882a593Smuzhiyun   { 0x85, 0x0d, 0xff, 0xb8, 0x3e, 0x87, 0x41, 0xb0, 0x95, 0xd3, 0x3d, 0x00,
99*4882a593Smuzhiyun     0x47, 0x55, 0x9e, 0xd2, 0x69, 0xea, 0xbf, 0xe9, 0x7a, 0x2d, 0x61, 0x45, },
100*4882a593Smuzhiyun   { 0x03, 0xe0, 0x85, 0xec, 0x54, 0xb5, 0x16, 0x53, 0xa8, 0xc4, 0x71, 0xe9,
101*4882a593Smuzhiyun     0x6a, 0xe7, 0xcb, 0xc4, 0x15, 0x02, 0xfc, 0x34, 0xa4, 0xa4, 0x28, 0x13,
102*4882a593Smuzhiyun     0xd1, },
103*4882a593Smuzhiyun   { 0xe3, 0x34, 0x4b, 0xe1, 0xd0, 0x4b, 0x55, 0x61, 0x8f, 0xc0, 0x24, 0x05,
104*4882a593Smuzhiyun     0xe6, 0xe0, 0x3d, 0x70, 0x24, 0x4d, 0xda, 0xb8, 0x91, 0x05, 0x29, 0x07,
105*4882a593Smuzhiyun     0x01, 0x3e, },
106*4882a593Smuzhiyun   { 0x61, 0xff, 0x01, 0x72, 0xb1, 0x4d, 0xf6, 0xfe, 0xd1, 0xd1, 0x08, 0x74,
107*4882a593Smuzhiyun     0xe6, 0x91, 0x44, 0xeb, 0x61, 0xda, 0x40, 0xaf, 0xfc, 0x8c, 0x91, 0x6b,
108*4882a593Smuzhiyun     0xec, 0x13, 0xed, },
109*4882a593Smuzhiyun   { 0xd4, 0x40, 0xd2, 0xa0, 0x7f, 0xc1, 0x58, 0x0c, 0x85, 0xa0, 0x86, 0xc7,
110*4882a593Smuzhiyun     0x86, 0xb9, 0x61, 0xc9, 0xea, 0x19, 0x86, 0x1f, 0xab, 0x07, 0xce, 0x37,
111*4882a593Smuzhiyun     0x72, 0x67, 0x09, 0xfc, },
112*4882a593Smuzhiyun   { 0x9e, 0xf8, 0x18, 0x67, 0x93, 0x10, 0x9b, 0x39, 0x75, 0xe8, 0x8b, 0x38,
113*4882a593Smuzhiyun     0x82, 0x7d, 0xb8, 0xb7, 0xa5, 0xaf, 0xe6, 0x6a, 0x22, 0x5e, 0x1f, 0x9c,
114*4882a593Smuzhiyun     0x95, 0x29, 0x19, 0xf2, 0x4b, },
115*4882a593Smuzhiyun   { 0xc8, 0x62, 0x25, 0xf5, 0x98, 0xc9, 0xea, 0xe5, 0x29, 0x3a, 0xd3, 0x22,
116*4882a593Smuzhiyun     0xeb, 0xeb, 0x07, 0x7c, 0x15, 0x07, 0xee, 0x15, 0x61, 0xbb, 0x05, 0x30,
117*4882a593Smuzhiyun     0x99, 0x7f, 0x11, 0xf6, 0x0a, 0x1d, },
118*4882a593Smuzhiyun   { 0x68, 0x70, 0xf7, 0x90, 0xa1, 0x8b, 0x1f, 0x0f, 0xbb, 0xce, 0xd2, 0x0e,
119*4882a593Smuzhiyun     0x33, 0x1f, 0x7f, 0xa9, 0x78, 0xa8, 0xa6, 0x81, 0x66, 0xab, 0x8d, 0xcd,
120*4882a593Smuzhiyun     0x58, 0x55, 0x3a, 0x0b, 0x7a, 0xdb, 0xb5, },
121*4882a593Smuzhiyun   { 0xdd, 0x35, 0xd2, 0xb4, 0xf6, 0xc7, 0xea, 0xab, 0x64, 0x24, 0x4e, 0xfe,
122*4882a593Smuzhiyun     0xe5, 0x3d, 0x4e, 0x95, 0x8b, 0x6d, 0x6c, 0xbc, 0xb0, 0xf8, 0x88, 0x61,
123*4882a593Smuzhiyun     0x09, 0xb7, 0x78, 0xa3, 0x31, 0xfe, 0xd9, 0x2f, },
124*4882a593Smuzhiyun   { 0x0a, },
125*4882a593Smuzhiyun   { 0x6e, 0xd4, },
126*4882a593Smuzhiyun   { 0x64, 0xe9, 0xd1, },
127*4882a593Smuzhiyun   { 0x30, 0xdd, 0x71, 0xef, },
128*4882a593Smuzhiyun   { 0x11, 0xb5, 0x0c, 0x87, 0xc9, },
129*4882a593Smuzhiyun   { 0x06, 0x1c, 0x6d, 0x04, 0x82, 0xd0, },
130*4882a593Smuzhiyun   { 0x5c, 0x42, 0x0b, 0xee, 0xc5, 0x9c, 0xb2, },
131*4882a593Smuzhiyun   { 0xe8, 0x29, 0xd6, 0xb4, 0x5d, 0xf7, 0x2b, 0x93, },
132*4882a593Smuzhiyun   { 0x18, 0xca, 0x27, 0x72, 0x43, 0x39, 0x16, 0xbc, 0x6a, },
133*4882a593Smuzhiyun   { 0x39, 0x8f, 0xfd, 0x64, 0xf5, 0x57, 0x23, 0xb0, 0x45, 0xf8, },
134*4882a593Smuzhiyun   { 0xbb, 0x3a, 0x78, 0x6b, 0x02, 0x1d, 0x0b, 0x16, 0xe3, 0xb2, 0x9a, },
135*4882a593Smuzhiyun   { 0xb8, 0xb4, 0x0b, 0xe5, 0xd4, 0x1d, 0x0d, 0x85, 0x49, 0x91, 0x35, 0xfa, },
136*4882a593Smuzhiyun   { 0x6d, 0x48, 0x2a, 0x0c, 0x42, 0x08, 0xbd, 0xa9, 0x78, 0x6f, 0x18, 0xaf,
137*4882a593Smuzhiyun     0xe2, },
138*4882a593Smuzhiyun   { 0x10, 0x45, 0xd4, 0x58, 0x88, 0xec, 0x4e, 0x1e, 0xf6, 0x14, 0x92, 0x64,
139*4882a593Smuzhiyun     0x7e, 0xb0, },
140*4882a593Smuzhiyun   { 0x8b, 0x0b, 0x95, 0xee, 0x92, 0xc6, 0x3b, 0x91, 0xf1, 0x1e, 0xeb, 0x51,
141*4882a593Smuzhiyun     0x98, 0x0a, 0x8d, },
142*4882a593Smuzhiyun   { 0xa3, 0x50, 0x4d, 0xa5, 0x1d, 0x03, 0x68, 0xe9, 0x57, 0x78, 0xd6, 0x04,
143*4882a593Smuzhiyun     0xf1, 0xc3, 0x94, 0xd8, },
144*4882a593Smuzhiyun   { 0xb8, 0x66, 0x6e, 0xdd, 0x46, 0x15, 0xae, 0x3d, 0x83, 0x7e, 0xcf, 0xe7,
145*4882a593Smuzhiyun     0x2c, 0xe8, 0x8f, 0xc7, 0x34, },
146*4882a593Smuzhiyun   { 0x2e, 0xc0, 0x1f, 0x29, 0xea, 0xf6, 0xb9, 0xe2, 0xc2, 0x93, 0xeb, 0x41,
147*4882a593Smuzhiyun     0x0d, 0xf0, 0x0a, 0x13, 0x0e, 0xa2, },
148*4882a593Smuzhiyun   { 0x71, 0xb8, 0x33, 0xa9, 0x1b, 0xac, 0xf1, 0xb5, 0x42, 0x8f, 0x5e, 0x81,
149*4882a593Smuzhiyun     0x34, 0x43, 0xb7, 0xa4, 0x18, 0x5c, 0x47, },
150*4882a593Smuzhiyun   { 0xda, 0x45, 0xb8, 0x2e, 0x82, 0x1e, 0xc0, 0x59, 0x77, 0x9d, 0xfa, 0xb4,
151*4882a593Smuzhiyun     0x1c, 0x5e, 0xa0, 0x2b, 0x33, 0x96, 0x5a, 0x58, },
152*4882a593Smuzhiyun   { 0xe3, 0x09, 0x05, 0xa9, 0xeb, 0x48, 0x13, 0xad, 0x71, 0x88, 0x81, 0x9a,
153*4882a593Smuzhiyun     0x3e, 0x2c, 0xe1, 0x23, 0x99, 0x13, 0x35, 0x9f, 0xb5, },
154*4882a593Smuzhiyun   { 0xb7, 0x86, 0x2d, 0x16, 0xe1, 0x04, 0x00, 0x47, 0x47, 0x61, 0x31, 0xfb,
155*4882a593Smuzhiyun     0x14, 0xac, 0xd8, 0xe9, 0xe3, 0x49, 0xbd, 0xf7, 0x9c, 0x3f, },
156*4882a593Smuzhiyun   { 0x7f, 0xd9, 0x95, 0xa8, 0xa7, 0xa0, 0xcc, 0xba, 0xef, 0xb1, 0x0a, 0xa9,
157*4882a593Smuzhiyun     0x21, 0x62, 0x08, 0x0f, 0x1b, 0xff, 0x7b, 0x9d, 0xae, 0xb2, 0x95, },
158*4882a593Smuzhiyun   { 0x85, 0x99, 0xea, 0x33, 0xe0, 0x56, 0xff, 0x13, 0xc6, 0x61, 0x8c, 0xf9,
159*4882a593Smuzhiyun     0x57, 0x05, 0x03, 0x11, 0xf9, 0xfb, 0x3a, 0xf7, 0xce, 0xbb, 0x52, 0x30, },
160*4882a593Smuzhiyun   { 0xb2, 0x72, 0x9c, 0xf8, 0x77, 0x4e, 0x8f, 0x6b, 0x01, 0x6c, 0xff, 0x4e,
161*4882a593Smuzhiyun     0x4f, 0x02, 0xd2, 0xbc, 0xeb, 0x51, 0x28, 0x99, 0x50, 0xab, 0xc4, 0x42,
162*4882a593Smuzhiyun     0xe3, },
163*4882a593Smuzhiyun   { 0x8b, 0x0a, 0xb5, 0x90, 0x8f, 0xf5, 0x7b, 0xdd, 0xba, 0x47, 0x37, 0xc9,
164*4882a593Smuzhiyun     0x2a, 0xd5, 0x4b, 0x25, 0x08, 0x8b, 0x02, 0x17, 0xa7, 0x9e, 0x6b, 0x6e,
165*4882a593Smuzhiyun     0xe3, 0x90, },
166*4882a593Smuzhiyun   { 0x90, 0xdd, 0xf7, 0x75, 0xa7, 0xa3, 0x99, 0x5e, 0x5b, 0x7d, 0x75, 0xc3,
167*4882a593Smuzhiyun     0x39, 0x6b, 0xa0, 0xe2, 0x44, 0x53, 0xb1, 0x9e, 0xc8, 0xf1, 0x77, 0x10,
168*4882a593Smuzhiyun     0x58, 0x06, 0x9a, },
169*4882a593Smuzhiyun   { 0x99, 0x52, 0xf0, 0x49, 0xa8, 0x8c, 0xec, 0xa6, 0x97, 0x32, 0x13, 0xb5,
170*4882a593Smuzhiyun     0xf7, 0xa3, 0x8e, 0xfb, 0x4b, 0x59, 0x31, 0x3d, 0x01, 0x59, 0x98, 0x5d,
171*4882a593Smuzhiyun     0x53, 0x03, 0x1a, 0x39, },
172*4882a593Smuzhiyun   { 0x9f, 0xe0, 0xc2, 0xe5, 0x5d, 0x93, 0xd6, 0x9b, 0x47, 0x8f, 0x9b, 0xe0,
173*4882a593Smuzhiyun     0x26, 0x35, 0x84, 0x20, 0x1d, 0xc5, 0x53, 0x10, 0x0f, 0x22, 0xb9, 0xb5,
174*4882a593Smuzhiyun     0xd4, 0x36, 0xb1, 0xac, 0x73, },
175*4882a593Smuzhiyun   { 0x30, 0x32, 0x20, 0x3b, 0x10, 0x28, 0xec, 0x1f, 0x4f, 0x9b, 0x47, 0x59,
176*4882a593Smuzhiyun     0xeb, 0x7b, 0xee, 0x45, 0xfb, 0x0c, 0x49, 0xd8, 0x3d, 0x69, 0xbd, 0x90,
177*4882a593Smuzhiyun     0x2c, 0xf0, 0x9e, 0x8d, 0xbf, 0xd5, },
178*4882a593Smuzhiyun   { 0x2a, 0x37, 0x73, 0x7f, 0xf9, 0x96, 0x19, 0xaa, 0x25, 0xd8, 0x13, 0x28,
179*4882a593Smuzhiyun     0x01, 0x29, 0x89, 0xdf, 0x6e, 0x0c, 0x9b, 0x43, 0x44, 0x51, 0xe9, 0x75,
180*4882a593Smuzhiyun     0x26, 0x0c, 0xb7, 0x87, 0x66, 0x0b, 0x5f, },
181*4882a593Smuzhiyun   { 0x23, 0xdf, 0x96, 0x68, 0x91, 0x86, 0xd0, 0x93, 0x55, 0x33, 0x24, 0xf6,
182*4882a593Smuzhiyun     0xba, 0x08, 0x75, 0x5b, 0x59, 0x11, 0x69, 0xb8, 0xb9, 0xe5, 0x2c, 0x77,
183*4882a593Smuzhiyun     0x02, 0xf6, 0x47, 0xee, 0x81, 0xdd, 0xb9, 0x06, },
184*4882a593Smuzhiyun   { 0x9d, },
185*4882a593Smuzhiyun   { 0x9d, 0x7d, },
186*4882a593Smuzhiyun   { 0xfd, 0xc3, 0xda, },
187*4882a593Smuzhiyun   { 0xe8, 0x82, 0xcd, 0x21, },
188*4882a593Smuzhiyun   { 0xc3, 0x1d, 0x42, 0x4c, 0x74, },
189*4882a593Smuzhiyun   { 0xe9, 0xda, 0xf1, 0xa2, 0xe5, 0x7c, },
190*4882a593Smuzhiyun   { 0x52, 0xb8, 0x6f, 0x81, 0x5c, 0x3a, 0x4c, },
191*4882a593Smuzhiyun   { 0x5b, 0x39, 0x26, 0xfc, 0x92, 0x5e, 0xe0, 0x49, },
192*4882a593Smuzhiyun   { 0x59, 0xe4, 0x7c, 0x93, 0x1c, 0xf9, 0x28, 0x93, 0xde, },
193*4882a593Smuzhiyun   { 0xde, 0xdf, 0xb2, 0x43, 0x61, 0x0b, 0x86, 0x16, 0x4c, 0x2e, },
194*4882a593Smuzhiyun   { 0x14, 0x8f, 0x75, 0x51, 0xaf, 0xb9, 0xee, 0x51, 0x5a, 0xae, 0x23, },
195*4882a593Smuzhiyun   { 0x43, 0x5f, 0x50, 0xd5, 0x70, 0xb0, 0x5b, 0x87, 0xf5, 0xd9, 0xb3, 0x6d, },
196*4882a593Smuzhiyun   { 0x66, 0x0a, 0x64, 0x93, 0x79, 0x71, 0x94, 0x40, 0xb7, 0x68, 0x2d, 0xd3,
197*4882a593Smuzhiyun     0x63, },
198*4882a593Smuzhiyun   { 0x15, 0x00, 0xc4, 0x0c, 0x7d, 0x1b, 0x10, 0xa9, 0x73, 0x1b, 0x90, 0x6f,
199*4882a593Smuzhiyun     0xe6, 0xa9, },
200*4882a593Smuzhiyun   { 0x34, 0x75, 0xf3, 0x86, 0x8f, 0x56, 0xcf, 0x2a, 0x0a, 0xf2, 0x62, 0x0a,
201*4882a593Smuzhiyun     0xf6, 0x0e, 0x20, },
202*4882a593Smuzhiyun   { 0xb1, 0xde, 0xc9, 0xf5, 0xdb, 0xf3, 0x2f, 0x4c, 0xd6, 0x41, 0x7d, 0x39,
203*4882a593Smuzhiyun     0x18, 0x3e, 0xc7, 0xc3, },
204*4882a593Smuzhiyun   { 0xc5, 0x89, 0xb2, 0xf8, 0xb8, 0xc0, 0xa3, 0xb9, 0x3b, 0x10, 0x6d, 0x7c,
205*4882a593Smuzhiyun     0x92, 0xfc, 0x7f, 0x34, 0x41, },
206*4882a593Smuzhiyun   { 0xc4, 0xd8, 0xef, 0xba, 0xef, 0xd2, 0xaa, 0xc5, 0x6c, 0x8e, 0x3e, 0xbb,
207*4882a593Smuzhiyun     0x12, 0xfc, 0x0f, 0x72, 0xbf, 0x0f, },
208*4882a593Smuzhiyun   { 0xdd, 0x91, 0xd1, 0x15, 0x9e, 0x7d, 0xf8, 0xc1, 0xb9, 0x14, 0x63, 0x96,
209*4882a593Smuzhiyun     0xb5, 0xcb, 0x83, 0x1d, 0x35, 0x1c, 0xec, },
210*4882a593Smuzhiyun   { 0xa9, 0xf8, 0x52, 0xc9, 0x67, 0x76, 0x2b, 0xad, 0xfb, 0xd8, 0x3a, 0xa6,
211*4882a593Smuzhiyun     0x74, 0x02, 0xae, 0xb8, 0x25, 0x2c, 0x63, 0x49, },
212*4882a593Smuzhiyun   { 0x77, 0x1f, 0x66, 0x70, 0xfd, 0x50, 0x29, 0xaa, 0xeb, 0xdc, 0xee, 0xba,
213*4882a593Smuzhiyun     0x75, 0x98, 0xdc, 0x93, 0x12, 0x3f, 0xdc, 0x7c, 0x38, },
214*4882a593Smuzhiyun   { 0xe2, 0xe1, 0x89, 0x5c, 0x37, 0x38, 0x6a, 0xa3, 0x40, 0xac, 0x3f, 0xb0,
215*4882a593Smuzhiyun     0xca, 0xfc, 0xa7, 0xf3, 0xea, 0xf9, 0x0f, 0x5d, 0x8e, 0x39, },
216*4882a593Smuzhiyun   { 0x0f, 0x67, 0xc8, 0x38, 0x01, 0xb1, 0xb7, 0xb8, 0xa2, 0xe7, 0x0a, 0x6d,
217*4882a593Smuzhiyun     0xd2, 0x63, 0x69, 0x9e, 0xcc, 0xf0, 0xf2, 0xbe, 0x9b, 0x98, 0xdd, },
218*4882a593Smuzhiyun   { 0x13, 0xe1, 0x36, 0x30, 0xfe, 0xc6, 0x01, 0x8a, 0xa1, 0x63, 0x96, 0x59,
219*4882a593Smuzhiyun     0xc2, 0xa9, 0x68, 0x3f, 0x58, 0xd4, 0x19, 0x0c, 0x40, 0xf3, 0xde, 0x02, },
220*4882a593Smuzhiyun   { 0xa3, 0x9e, 0xce, 0xda, 0x42, 0xee, 0x8c, 0x6c, 0x5a, 0x7d, 0xdc, 0x89,
221*4882a593Smuzhiyun     0x02, 0x77, 0xdd, 0xe7, 0x95, 0xbb, 0xff, 0x0d, 0xa4, 0xb5, 0x38, 0x1e,
222*4882a593Smuzhiyun     0xaf, },
223*4882a593Smuzhiyun   { 0x9a, 0xf6, 0xb5, 0x9a, 0x4f, 0xa9, 0x4f, 0x2c, 0x35, 0x3c, 0x24, 0xdc,
224*4882a593Smuzhiyun     0x97, 0x6f, 0xd9, 0xa1, 0x7d, 0x1a, 0x85, 0x0b, 0xf5, 0xda, 0x2e, 0xe7,
225*4882a593Smuzhiyun     0xb1, 0x1d, },
226*4882a593Smuzhiyun   { 0x84, 0x1e, 0x8e, 0x3d, 0x45, 0xa5, 0xf2, 0x27, 0xf3, 0x31, 0xfe, 0xb9,
227*4882a593Smuzhiyun     0xfb, 0xc5, 0x45, 0x99, 0x99, 0xdd, 0x93, 0x43, 0x02, 0xee, 0x58, 0xaf,
228*4882a593Smuzhiyun     0xee, 0x6a, 0xbe, },
229*4882a593Smuzhiyun   { 0x07, 0x2f, 0xc0, 0xa2, 0x04, 0xc4, 0xab, 0x7c, 0x26, 0xbb, 0xa8, 0xd8,
230*4882a593Smuzhiyun     0xe3, 0x1c, 0x75, 0x15, 0x64, 0x5d, 0x02, 0x6a, 0xf0, 0x86, 0xe9, 0xcd,
231*4882a593Smuzhiyun     0x5c, 0xef, 0xa3, 0x25, },
232*4882a593Smuzhiyun   { 0x2f, 0x3b, 0x1f, 0xb5, 0x91, 0x8f, 0x86, 0xe0, 0xdc, 0x31, 0x48, 0xb6,
233*4882a593Smuzhiyun     0xa1, 0x8c, 0xfd, 0x75, 0xbb, 0x7d, 0x3d, 0xc1, 0xf0, 0x10, 0x9a, 0xd8,
234*4882a593Smuzhiyun     0x4b, 0x0e, 0xe3, 0x94, 0x9f, },
235*4882a593Smuzhiyun   { 0x29, 0xbb, 0x8f, 0x6c, 0xd1, 0xf2, 0xb6, 0xaf, 0xe5, 0xe3, 0x2d, 0xdc,
236*4882a593Smuzhiyun     0x6f, 0xa4, 0x53, 0x88, 0xd8, 0xcf, 0x4d, 0x45, 0x42, 0x62, 0xdb, 0xdf,
237*4882a593Smuzhiyun     0xf8, 0x45, 0xc2, 0x13, 0xec, 0x35, },
238*4882a593Smuzhiyun   { 0x06, 0x3c, 0xe3, 0x2c, 0x15, 0xc6, 0x43, 0x03, 0x81, 0xfb, 0x08, 0x76,
239*4882a593Smuzhiyun     0x33, 0xcb, 0x02, 0xc1, 0xba, 0x33, 0xe5, 0xe0, 0xd1, 0x92, 0xa8, 0x46,
240*4882a593Smuzhiyun     0x28, 0x3f, 0x3e, 0x9d, 0x2c, 0x44, 0x54, },
241*4882a593Smuzhiyun   { 0xea, 0xbb, 0x96, 0xf8, 0xd1, 0x8b, 0x04, 0x11, 0x40, 0x78, 0x42, 0x02,
242*4882a593Smuzhiyun     0x19, 0xd1, 0xbc, 0x65, 0x92, 0xd3, 0xc3, 0xd6, 0xd9, 0x19, 0xe7, 0xc3,
243*4882a593Smuzhiyun     0x40, 0x97, 0xbd, 0xd4, 0xed, 0xfa, 0x5e, 0x28, },
244*4882a593Smuzhiyun   { 0x02, },
245*4882a593Smuzhiyun   { 0x52, 0xa8, },
246*4882a593Smuzhiyun   { 0x38, 0x25, 0x0d, },
247*4882a593Smuzhiyun   { 0xe3, 0x04, 0xd4, 0x92, },
248*4882a593Smuzhiyun   { 0x97, 0xdb, 0xf7, 0x81, 0xca, },
249*4882a593Smuzhiyun   { 0x8a, 0x56, 0x9d, 0x62, 0x56, 0xcc, },
250*4882a593Smuzhiyun   { 0xa1, 0x8e, 0x3c, 0x72, 0x8f, 0x63, 0x03, },
251*4882a593Smuzhiyun   { 0xf7, 0xf3, 0x39, 0x09, 0x0a, 0xa1, 0xbb, 0x23, },
252*4882a593Smuzhiyun   { 0x6b, 0x03, 0xc0, 0xe9, 0xd9, 0x83, 0x05, 0x22, 0x01, },
253*4882a593Smuzhiyun   { 0x1b, 0x4b, 0xf5, 0xd6, 0x4f, 0x05, 0x75, 0x91, 0x4c, 0x7f, },
254*4882a593Smuzhiyun   { 0x4c, 0x8c, 0x25, 0x20, 0x21, 0xcb, 0xc2, 0x4b, 0x3a, 0x5b, 0x8d, },
255*4882a593Smuzhiyun   { 0x56, 0xe2, 0x77, 0xa0, 0xb6, 0x9f, 0x81, 0xec, 0x83, 0x75, 0xc4, 0xf9, },
256*4882a593Smuzhiyun   { 0x71, 0x70, 0x0f, 0xad, 0x4d, 0x35, 0x81, 0x9d, 0x88, 0x69, 0xf9, 0xaa,
257*4882a593Smuzhiyun     0xd3, },
258*4882a593Smuzhiyun   { 0x50, 0x6e, 0x86, 0x6e, 0x43, 0xc0, 0xc2, 0x44, 0xc2, 0xe2, 0xa0, 0x1c,
259*4882a593Smuzhiyun     0xb7, 0x9a, },
260*4882a593Smuzhiyun   { 0xe4, 0x7e, 0x72, 0xc6, 0x12, 0x8e, 0x7c, 0xfc, 0xbd, 0xe2, 0x08, 0x31,
261*4882a593Smuzhiyun     0x3d, 0x47, 0x3d, },
262*4882a593Smuzhiyun   { 0x08, 0x97, 0x5b, 0x80, 0xae, 0xc4, 0x1d, 0x50, 0x77, 0xdf, 0x1f, 0xd0,
263*4882a593Smuzhiyun     0x24, 0xf0, 0x17, 0xc0, },
264*4882a593Smuzhiyun   { 0x01, 0xb6, 0x29, 0xf4, 0xaf, 0x78, 0x5f, 0xb6, 0x91, 0xdd, 0x76, 0x76,
265*4882a593Smuzhiyun     0xd2, 0xfd, 0x0c, 0x47, 0x40, },
266*4882a593Smuzhiyun   { 0xa1, 0xd8, 0x09, 0x97, 0x7a, 0xa6, 0xc8, 0x94, 0xf6, 0x91, 0x7b, 0xae,
267*4882a593Smuzhiyun     0x2b, 0x9f, 0x0d, 0x83, 0x48, 0xf7, },
268*4882a593Smuzhiyun   { 0x12, 0xd5, 0x53, 0x7d, 0x9a, 0xb0, 0xbe, 0xd9, 0xed, 0xe9, 0x9e, 0xee,
269*4882a593Smuzhiyun     0x61, 0x5b, 0x42, 0xf2, 0xc0, 0x73, 0xc0, },
270*4882a593Smuzhiyun   { 0xd5, 0x77, 0xd6, 0x5c, 0x6e, 0xa5, 0x69, 0x2b, 0x3b, 0x8c, 0xd6, 0x7d,
271*4882a593Smuzhiyun     0x1d, 0xbe, 0x2c, 0xa1, 0x02, 0x21, 0xcd, 0x29, },
272*4882a593Smuzhiyun   { 0xa4, 0x98, 0x80, 0xca, 0x22, 0xcf, 0x6a, 0xab, 0x5e, 0x40, 0x0d, 0x61,
273*4882a593Smuzhiyun     0x08, 0x21, 0xef, 0xc0, 0x6c, 0x52, 0xb4, 0xb0, 0x53, },
274*4882a593Smuzhiyun   { 0xbf, 0xaf, 0x8f, 0x3b, 0x7a, 0x97, 0x33, 0xe5, 0xca, 0x07, 0x37, 0xfd,
275*4882a593Smuzhiyun     0x15, 0xdf, 0xce, 0x26, 0x2a, 0xb1, 0xa7, 0x0b, 0xb3, 0xac, },
276*4882a593Smuzhiyun   { 0x16, 0x22, 0xe1, 0xbc, 0x99, 0x4e, 0x01, 0xf0, 0xfa, 0xff, 0x8f, 0xa5,
277*4882a593Smuzhiyun     0x0c, 0x61, 0xb0, 0xad, 0xcc, 0xb1, 0xe1, 0x21, 0x46, 0xfa, 0x2e, },
278*4882a593Smuzhiyun   { 0x11, 0x5b, 0x0b, 0x2b, 0xe6, 0x14, 0xc1, 0xd5, 0x4d, 0x71, 0x5e, 0x17,
279*4882a593Smuzhiyun     0xea, 0x23, 0xdd, 0x6c, 0xbd, 0x1d, 0xbe, 0x12, 0x1b, 0xee, 0x4c, 0x1a, },
280*4882a593Smuzhiyun   { 0x40, 0x88, 0x22, 0xf3, 0x20, 0x6c, 0xed, 0xe1, 0x36, 0x34, 0x62, 0x2c,
281*4882a593Smuzhiyun     0x98, 0x83, 0x52, 0xe2, 0x25, 0xee, 0xe9, 0xf5, 0xe1, 0x17, 0xf0, 0x5c,
282*4882a593Smuzhiyun     0xae, },
283*4882a593Smuzhiyun   { 0xc3, 0x76, 0x37, 0xde, 0x95, 0x8c, 0xca, 0x2b, 0x0c, 0x23, 0xe7, 0xb5,
284*4882a593Smuzhiyun     0x38, 0x70, 0x61, 0xcc, 0xff, 0xd3, 0x95, 0x7b, 0xf3, 0xff, 0x1f, 0x9d,
285*4882a593Smuzhiyun     0x59, 0x00, },
286*4882a593Smuzhiyun   { 0x0c, 0x19, 0x52, 0x05, 0x22, 0x53, 0xcb, 0x48, 0xd7, 0x10, 0x0e, 0x7e,
287*4882a593Smuzhiyun     0x14, 0x69, 0xb5, 0xa2, 0x92, 0x43, 0xa3, 0x9e, 0x4b, 0x8f, 0x51, 0x2c,
288*4882a593Smuzhiyun     0x5a, 0x2c, 0x3b, },
289*4882a593Smuzhiyun   { 0xe1, 0x9d, 0x70, 0x70, 0x28, 0xec, 0x86, 0x40, 0x55, 0x33, 0x56, 0xda,
290*4882a593Smuzhiyun     0x88, 0xca, 0xee, 0xc8, 0x6a, 0x20, 0xb1, 0xe5, 0x3d, 0x57, 0xf8, 0x3c,
291*4882a593Smuzhiyun     0x10, 0x07, 0x2a, 0xc4, },
292*4882a593Smuzhiyun   { 0x0b, 0xae, 0xf1, 0xc4, 0x79, 0xee, 0x1b, 0x3d, 0x27, 0x35, 0x8d, 0x14,
293*4882a593Smuzhiyun     0xd6, 0xae, 0x4e, 0x3c, 0xe9, 0x53, 0x50, 0xb5, 0xcc, 0x0c, 0xf7, 0xdf,
294*4882a593Smuzhiyun     0xee, 0xa1, 0x74, 0xd6, 0x71, },
295*4882a593Smuzhiyun   { 0xe6, 0xa4, 0xf4, 0x99, 0x98, 0xb9, 0x80, 0xea, 0x96, 0x7f, 0x4f, 0x33,
296*4882a593Smuzhiyun     0xcf, 0x74, 0x25, 0x6f, 0x17, 0x6c, 0xbf, 0xf5, 0x5c, 0x38, 0xd0, 0xff,
297*4882a593Smuzhiyun     0x96, 0xcb, 0x13, 0xf9, 0xdf, 0xfd, },
298*4882a593Smuzhiyun   { 0xbe, 0x92, 0xeb, 0xba, 0x44, 0x2c, 0x24, 0x74, 0xd4, 0x03, 0x27, 0x3c,
299*4882a593Smuzhiyun     0x5d, 0x5b, 0x03, 0x30, 0x87, 0x63, 0x69, 0xe0, 0xb8, 0x94, 0xf4, 0x44,
300*4882a593Smuzhiyun     0x7e, 0xad, 0xcd, 0x20, 0x12, 0x16, 0x79, },
301*4882a593Smuzhiyun   { 0x30, 0xf1, 0xc4, 0x8e, 0x05, 0x90, 0x2a, 0x97, 0x63, 0x94, 0x46, 0xff,
302*4882a593Smuzhiyun     0xce, 0xd8, 0x67, 0xa7, 0xac, 0x33, 0x8c, 0x95, 0xb7, 0xcd, 0xa3, 0x23,
303*4882a593Smuzhiyun     0x98, 0x9d, 0x76, 0x6c, 0x9d, 0xa8, 0xd6, 0x8a, },
304*4882a593Smuzhiyun   { 0xbe, },
305*4882a593Smuzhiyun   { 0x17, 0x6c, },
306*4882a593Smuzhiyun   { 0x1a, 0x42, 0x4f, },
307*4882a593Smuzhiyun   { 0xba, 0xaf, 0xb7, 0x65, },
308*4882a593Smuzhiyun   { 0xc2, 0x63, 0x43, 0x6a, 0xea, },
309*4882a593Smuzhiyun   { 0xe4, 0x4d, 0xad, 0xf2, 0x0b, 0x02, },
310*4882a593Smuzhiyun   { 0x04, 0xc7, 0xc4, 0x7f, 0xa9, 0x2b, 0xce, },
311*4882a593Smuzhiyun   { 0x66, 0xf6, 0x67, 0xcb, 0x03, 0x53, 0xc8, 0xf1, },
312*4882a593Smuzhiyun   { 0x56, 0xa3, 0x60, 0x78, 0xc9, 0x5f, 0x70, 0x1b, 0x5e, },
313*4882a593Smuzhiyun   { 0x99, 0xff, 0x81, 0x7c, 0x13, 0x3c, 0x29, 0x79, 0x4b, 0x65, },
314*4882a593Smuzhiyun   { 0x51, 0x10, 0x50, 0x93, 0x01, 0x93, 0xb7, 0x01, 0xc9, 0x18, 0xb7, },
315*4882a593Smuzhiyun   { 0x8e, 0x3c, 0x42, 0x1e, 0x5e, 0x7d, 0xc1, 0x50, 0x70, 0x1f, 0x00, 0x98, },
316*4882a593Smuzhiyun   { 0x5f, 0xd9, 0x9b, 0xc8, 0xd7, 0xb2, 0x72, 0x62, 0x1a, 0x1e, 0xba, 0x92,
317*4882a593Smuzhiyun     0xe9, },
318*4882a593Smuzhiyun   { 0x70, 0x2b, 0xba, 0xfe, 0xad, 0x5d, 0x96, 0x3f, 0x27, 0xc2, 0x41, 0x6d,
319*4882a593Smuzhiyun     0xc4, 0xb3, },
320*4882a593Smuzhiyun   { 0xae, 0xe0, 0xd5, 0xd4, 0xc7, 0xae, 0x15, 0x5e, 0xdc, 0xdd, 0x33, 0x60,
321*4882a593Smuzhiyun     0xd7, 0xd3, 0x5e, },
322*4882a593Smuzhiyun   { 0x79, 0x8e, 0xbc, 0x9e, 0x20, 0xb9, 0x19, 0x4b, 0x63, 0x80, 0xf3, 0x16,
323*4882a593Smuzhiyun     0xaf, 0x39, 0xbd, 0x92, },
324*4882a593Smuzhiyun   { 0xc2, 0x0e, 0x85, 0xa0, 0x0b, 0x9a, 0xb0, 0xec, 0xde, 0x38, 0xd3, 0x10,
325*4882a593Smuzhiyun     0xd9, 0xa7, 0x66, 0x27, 0xcf, },
326*4882a593Smuzhiyun   { 0x0e, 0x3b, 0x75, 0x80, 0x67, 0x14, 0x0c, 0x02, 0x90, 0xd6, 0xb3, 0x02,
327*4882a593Smuzhiyun     0x81, 0xf6, 0xa6, 0x87, 0xce, 0x58, },
328*4882a593Smuzhiyun   { 0x79, 0xb5, 0xe9, 0x5d, 0x52, 0x4d, 0xf7, 0x59, 0xf4, 0x2e, 0x27, 0xdd,
329*4882a593Smuzhiyun     0xb3, 0xed, 0x57, 0x5b, 0x82, 0xea, 0x6f, },
330*4882a593Smuzhiyun   { 0xa2, 0x97, 0xf5, 0x80, 0x02, 0x3d, 0xde, 0xa3, 0xf9, 0xf6, 0xab, 0xe3,
331*4882a593Smuzhiyun     0x57, 0x63, 0x7b, 0x9b, 0x10, 0x42, 0x6f, 0xf2, },
332*4882a593Smuzhiyun   { 0x12, 0x7a, 0xfc, 0xb7, 0x67, 0x06, 0x0c, 0x78, 0x1a, 0xfe, 0x88, 0x4f,
333*4882a593Smuzhiyun     0xc6, 0xac, 0x52, 0x96, 0x64, 0x28, 0x97, 0x84, 0x06, },
334*4882a593Smuzhiyun   { 0xc5, 0x04, 0x44, 0x6b, 0xb2, 0xa5, 0xa4, 0x66, 0xe1, 0x76, 0xa2, 0x51,
335*4882a593Smuzhiyun     0xf9, 0x59, 0x69, 0x97, 0x56, 0x0b, 0xbf, 0x50, 0xb3, 0x34, },
336*4882a593Smuzhiyun   { 0x21, 0x32, 0x6b, 0x42, 0xb5, 0xed, 0x71, 0x8d, 0xf7, 0x5a, 0x35, 0xe3,
337*4882a593Smuzhiyun     0x90, 0xe2, 0xee, 0xaa, 0x89, 0xf6, 0xc9, 0x9c, 0x4d, 0x73, 0xf4, },
338*4882a593Smuzhiyun   { 0x4c, 0xa6, 0x09, 0xf4, 0x48, 0xe7, 0x46, 0xbc, 0x49, 0xfc, 0xe5, 0xda,
339*4882a593Smuzhiyun     0xd1, 0x87, 0x13, 0x17, 0x4c, 0x59, 0x71, 0x26, 0x5b, 0x2c, 0x42, 0xb7, },
340*4882a593Smuzhiyun   { 0x13, 0x63, 0xf3, 0x40, 0x02, 0xe5, 0xa3, 0x3a, 0x5e, 0x8e, 0xf8, 0xb6,
341*4882a593Smuzhiyun     0x8a, 0x49, 0x60, 0x76, 0x34, 0x72, 0x94, 0x73, 0xf6, 0xd9, 0x21, 0x6a,
342*4882a593Smuzhiyun     0x26, },
343*4882a593Smuzhiyun   { 0xdf, 0x75, 0x16, 0x10, 0x1b, 0x5e, 0x81, 0xc3, 0xc8, 0xde, 0x34, 0x24,
344*4882a593Smuzhiyun     0xb0, 0x98, 0xeb, 0x1b, 0x8f, 0xa1, 0x9b, 0x05, 0xee, 0xa5, 0xe9, 0x35,
345*4882a593Smuzhiyun     0xf4, 0x1d, },
346*4882a593Smuzhiyun   { 0xcd, 0x21, 0x93, 0x6e, 0x5b, 0xa0, 0x26, 0x2b, 0x21, 0x0e, 0xa0, 0xb9,
347*4882a593Smuzhiyun     0x1c, 0xb5, 0xbb, 0xb8, 0xf8, 0x1e, 0xff, 0x5c, 0xa8, 0xf9, 0x39, 0x46,
348*4882a593Smuzhiyun     0x4e, 0x29, 0x26, },
349*4882a593Smuzhiyun   { 0x73, 0x7f, 0x0e, 0x3b, 0x0b, 0x5c, 0xf9, 0x60, 0xaa, 0x88, 0xa1, 0x09,
350*4882a593Smuzhiyun     0xb1, 0x5d, 0x38, 0x7b, 0x86, 0x8f, 0x13, 0x7a, 0x8d, 0x72, 0x7a, 0x98,
351*4882a593Smuzhiyun     0x1a, 0x5b, 0xff, 0xc9, },
352*4882a593Smuzhiyun   { 0xd3, 0x3c, 0x61, 0x71, 0x44, 0x7e, 0x31, 0x74, 0x98, 0x9d, 0x9a, 0xd2,
353*4882a593Smuzhiyun     0x27, 0xf3, 0x46, 0x43, 0x42, 0x51, 0xd0, 0x5f, 0xe9, 0x1c, 0x5c, 0x69,
354*4882a593Smuzhiyun     0xbf, 0xf6, 0xbe, 0x3c, 0x40, },
355*4882a593Smuzhiyun   { 0x31, 0x99, 0x31, 0x9f, 0xaa, 0x43, 0x2e, 0x77, 0x3e, 0x74, 0x26, 0x31,
356*4882a593Smuzhiyun     0x5e, 0x61, 0xf1, 0x87, 0xe2, 0xeb, 0x9b, 0xcd, 0xd0, 0x3a, 0xee, 0x20,
357*4882a593Smuzhiyun     0x7e, 0x10, 0x0a, 0x0b, 0x7e, 0xfa, },
358*4882a593Smuzhiyun   { 0xa4, 0x27, 0x80, 0x67, 0x81, 0x2a, 0xa7, 0x62, 0xf7, 0x6e, 0xda, 0xd4,
359*4882a593Smuzhiyun     0x5c, 0x39, 0x74, 0xad, 0x7e, 0xbe, 0xad, 0xa5, 0x84, 0x7f, 0xa9, 0x30,
360*4882a593Smuzhiyun     0x5d, 0xdb, 0xe2, 0x05, 0x43, 0xf7, 0x1b, },
361*4882a593Smuzhiyun   { 0x0b, 0x37, 0xd8, 0x02, 0xe1, 0x83, 0xd6, 0x80, 0xf2, 0x35, 0xc2, 0xb0,
362*4882a593Smuzhiyun     0x37, 0xef, 0xef, 0x5e, 0x43, 0x93, 0xf0, 0x49, 0x45, 0x0a, 0xef, 0xb5,
363*4882a593Smuzhiyun     0x76, 0x70, 0x12, 0x44, 0xc4, 0xdb, 0xf5, 0x7a, },
364*4882a593Smuzhiyun   { 0x1f, },
365*4882a593Smuzhiyun   { 0x82, 0x60, },
366*4882a593Smuzhiyun   { 0xcc, 0xe3, 0x08, },
367*4882a593Smuzhiyun   { 0x56, 0x17, 0xe4, 0x59, },
368*4882a593Smuzhiyun   { 0xe2, 0xd7, 0x9e, 0xc4, 0x4c, },
369*4882a593Smuzhiyun   { 0xb2, 0xad, 0xd3, 0x78, 0x58, 0x5a, },
370*4882a593Smuzhiyun   { 0xce, 0x43, 0xb4, 0x02, 0x96, 0xab, 0x3c, },
371*4882a593Smuzhiyun   { 0xe6, 0x05, 0x1a, 0x73, 0x22, 0x32, 0xbb, 0x77, },
372*4882a593Smuzhiyun   { 0x23, 0xe7, 0xda, 0xfe, 0x2c, 0xef, 0x8c, 0x22, 0xec, },
373*4882a593Smuzhiyun   { 0xe9, 0x8e, 0x55, 0x38, 0xd1, 0xd7, 0x35, 0x23, 0x98, 0xc7, },
374*4882a593Smuzhiyun   { 0xb5, 0x81, 0x1a, 0xe5, 0xb5, 0xa5, 0xd9, 0x4d, 0xca, 0x41, 0xe7, },
375*4882a593Smuzhiyun   { 0x41, 0x16, 0x16, 0x95, 0x8d, 0x9e, 0x0c, 0xea, 0x8c, 0x71, 0x9a, 0xc1, },
376*4882a593Smuzhiyun   { 0x7c, 0x33, 0xc0, 0xa4, 0x00, 0x62, 0xea, 0x60, 0x67, 0xe4, 0x20, 0xbc,
377*4882a593Smuzhiyun     0x5b, },
378*4882a593Smuzhiyun   { 0xdb, 0xb1, 0xdc, 0xfd, 0x08, 0xc0, 0xde, 0x82, 0xd1, 0xde, 0x38, 0xc0,
379*4882a593Smuzhiyun     0x90, 0x48, },
380*4882a593Smuzhiyun   { 0x37, 0x18, 0x2e, 0x0d, 0x61, 0xaa, 0x61, 0xd7, 0x86, 0x20, 0x16, 0x60,
381*4882a593Smuzhiyun     0x04, 0xd9, 0xd5, },
382*4882a593Smuzhiyun   { 0xb0, 0xcf, 0x2c, 0x4c, 0x5e, 0x5b, 0x4f, 0x2a, 0x23, 0x25, 0x58, 0x47,
383*4882a593Smuzhiyun     0xe5, 0x31, 0x06, 0x70, },
384*4882a593Smuzhiyun   { 0x91, 0xa0, 0xa3, 0x86, 0x4e, 0xe0, 0x72, 0x38, 0x06, 0x67, 0x59, 0x5c,
385*4882a593Smuzhiyun     0x70, 0x25, 0xdb, 0x33, 0x27, },
386*4882a593Smuzhiyun   { 0x44, 0x58, 0x66, 0xb8, 0x58, 0xc7, 0x13, 0xed, 0x4c, 0xc0, 0xf4, 0x9a,
387*4882a593Smuzhiyun     0x1e, 0x67, 0x75, 0x33, 0xb6, 0xb8, },
388*4882a593Smuzhiyun   { 0x7f, 0x98, 0x4a, 0x8e, 0x50, 0xa2, 0x5c, 0xcd, 0x59, 0xde, 0x72, 0xb3,
389*4882a593Smuzhiyun     0x9d, 0xc3, 0x09, 0x8a, 0xab, 0x56, 0xf1, },
390*4882a593Smuzhiyun   { 0x80, 0x96, 0x49, 0x1a, 0x59, 0xa2, 0xc5, 0xd5, 0xa7, 0x20, 0x8a, 0xb7,
391*4882a593Smuzhiyun     0x27, 0x62, 0x84, 0x43, 0xc6, 0xe1, 0x1b, 0x5d, },
392*4882a593Smuzhiyun   { 0x6b, 0xb7, 0x2b, 0x26, 0x62, 0x14, 0x70, 0x19, 0x3d, 0x4d, 0xac, 0xac,
393*4882a593Smuzhiyun     0x63, 0x58, 0x5e, 0x94, 0xb5, 0xb7, 0xe8, 0xe8, 0xa2, },
394*4882a593Smuzhiyun   { 0x20, 0xa8, 0xc0, 0xfd, 0x63, 0x3d, 0x6e, 0x98, 0xcf, 0x0c, 0x49, 0x98,
395*4882a593Smuzhiyun     0xe4, 0x5a, 0xfe, 0x8c, 0xaa, 0x70, 0x82, 0x1c, 0x7b, 0x74, },
396*4882a593Smuzhiyun   { 0xc8, 0xe8, 0xdd, 0xdf, 0x69, 0x30, 0x01, 0xc2, 0x0f, 0x7e, 0x2f, 0x11,
397*4882a593Smuzhiyun     0xcc, 0x3e, 0x17, 0xa5, 0x69, 0x40, 0x3f, 0x0e, 0x79, 0x7f, 0xcf, },
398*4882a593Smuzhiyun   { 0xdb, 0x61, 0xc0, 0xe2, 0x2e, 0x49, 0x07, 0x31, 0x1d, 0x91, 0x42, 0x8a,
399*4882a593Smuzhiyun     0xfc, 0x5e, 0xd3, 0xf8, 0x56, 0x1f, 0x2b, 0x73, 0xfd, 0x9f, 0xb2, 0x8e, },
400*4882a593Smuzhiyun   { 0x0c, 0x89, 0x55, 0x0c, 0x1f, 0x59, 0x2c, 0x9d, 0x1b, 0x29, 0x1d, 0x41,
401*4882a593Smuzhiyun     0x1d, 0xe6, 0x47, 0x8f, 0x8c, 0x2b, 0xea, 0x8f, 0xf0, 0xff, 0x21, 0x70,
402*4882a593Smuzhiyun     0x88, },
403*4882a593Smuzhiyun   { 0x12, 0x18, 0x95, 0xa6, 0x59, 0xb1, 0x31, 0x24, 0x45, 0x67, 0x55, 0xa4,
404*4882a593Smuzhiyun     0x1a, 0x2d, 0x48, 0x67, 0x1b, 0x43, 0x88, 0x2d, 0x8e, 0xa0, 0x70, 0xb3,
405*4882a593Smuzhiyun     0xc6, 0xbb, },
406*4882a593Smuzhiyun   { 0xe7, 0xb1, 0x1d, 0xb2, 0x76, 0x4d, 0x68, 0x68, 0x68, 0x23, 0x02, 0x55,
407*4882a593Smuzhiyun     0x3a, 0xe2, 0xe5, 0xd5, 0x4b, 0x43, 0xf9, 0x34, 0x77, 0x5c, 0xa1, 0xf5,
408*4882a593Smuzhiyun     0x55, 0xfd, 0x4f, },
409*4882a593Smuzhiyun   { 0x8c, 0x87, 0x5a, 0x08, 0x3a, 0x73, 0xad, 0x61, 0xe1, 0xe7, 0x99, 0x7e,
410*4882a593Smuzhiyun     0xf0, 0x5d, 0xe9, 0x5d, 0x16, 0x43, 0x80, 0x2f, 0xd0, 0x66, 0x34, 0xe2,
411*4882a593Smuzhiyun     0x42, 0x64, 0x3b, 0x1a, },
412*4882a593Smuzhiyun   { 0x39, 0xc1, 0x99, 0xcf, 0x22, 0xbf, 0x16, 0x8f, 0x9f, 0x80, 0x7f, 0x95,
413*4882a593Smuzhiyun     0x0a, 0x05, 0x67, 0x27, 0xe7, 0x15, 0xdf, 0x9d, 0xb2, 0xfe, 0x1c, 0xb5,
414*4882a593Smuzhiyun     0x1d, 0x60, 0x8f, 0x8a, 0x1d, },
415*4882a593Smuzhiyun   { 0x9b, 0x6e, 0x08, 0x09, 0x06, 0x73, 0xab, 0x68, 0x02, 0x62, 0x1a, 0xe4,
416*4882a593Smuzhiyun     0xd4, 0xdf, 0xc7, 0x02, 0x4c, 0x6a, 0x5f, 0xfd, 0x23, 0xac, 0xae, 0x6d,
417*4882a593Smuzhiyun     0x43, 0xa4, 0x7a, 0x50, 0x60, 0x3c, },
418*4882a593Smuzhiyun   { 0x1d, 0xb4, 0xc6, 0xe1, 0xb1, 0x4b, 0xe3, 0xf2, 0xe2, 0x1a, 0x73, 0x1b,
419*4882a593Smuzhiyun     0xa0, 0x92, 0xa7, 0xf5, 0xff, 0x8f, 0x8b, 0x5d, 0xdf, 0xa8, 0x04, 0xb3,
420*4882a593Smuzhiyun     0xb0, 0xf7, 0xcc, 0x12, 0xfa, 0x35, 0x46, },
421*4882a593Smuzhiyun   { 0x49, 0x45, 0x97, 0x11, 0x0f, 0x1c, 0x60, 0x8e, 0xe8, 0x47, 0x30, 0xcf,
422*4882a593Smuzhiyun     0x60, 0xa8, 0x71, 0xc5, 0x1b, 0xe9, 0x39, 0x4d, 0x49, 0xb6, 0x12, 0x1f,
423*4882a593Smuzhiyun     0x24, 0xab, 0x37, 0xff, 0x83, 0xc2, 0xe1, 0x3a, },
424*4882a593Smuzhiyun   { 0x60, },
425*4882a593Smuzhiyun   { 0x24, 0x26, },
426*4882a593Smuzhiyun   { 0x47, 0xeb, 0xc9, },
427*4882a593Smuzhiyun   { 0x4a, 0xd0, 0xbc, 0xf0, },
428*4882a593Smuzhiyun   { 0x8e, 0x2b, 0xc9, 0x85, 0x3c, },
429*4882a593Smuzhiyun   { 0xa2, 0x07, 0x15, 0xb8, 0x12, 0x74, },
430*4882a593Smuzhiyun   { 0x0f, 0xdb, 0x5b, 0x33, 0x69, 0xfe, 0x4b, },
431*4882a593Smuzhiyun   { 0xa2, 0x86, 0x54, 0xf4, 0xfd, 0xb2, 0xd4, 0xe6, },
432*4882a593Smuzhiyun   { 0xbb, 0x84, 0x78, 0x49, 0x27, 0x8e, 0x61, 0xda, 0x60, },
433*4882a593Smuzhiyun   { 0x04, 0xc3, 0xcd, 0xaa, 0x8f, 0xa7, 0x03, 0xc9, 0xf9, 0xb6, },
434*4882a593Smuzhiyun   { 0xf8, 0x27, 0x1d, 0x61, 0xdc, 0x21, 0x42, 0xdd, 0xad, 0x92, 0x40, },
435*4882a593Smuzhiyun   { 0x12, 0x87, 0xdf, 0xc2, 0x41, 0x45, 0x5a, 0x36, 0x48, 0x5b, 0x51, 0x2b, },
436*4882a593Smuzhiyun   { 0xbb, 0x37, 0x5d, 0x1f, 0xf1, 0x68, 0x7a, 0xc4, 0xa5, 0xd2, 0xa4, 0x91,
437*4882a593Smuzhiyun     0x8d, },
438*4882a593Smuzhiyun   { 0x5b, 0x27, 0xd1, 0x04, 0x54, 0x52, 0x9f, 0xa3, 0x47, 0x86, 0x33, 0x33,
439*4882a593Smuzhiyun     0xbf, 0xa0, },
440*4882a593Smuzhiyun   { 0xcf, 0x04, 0xea, 0xf8, 0x03, 0x2a, 0x43, 0xff, 0xa6, 0x68, 0x21, 0x4c,
441*4882a593Smuzhiyun     0xd5, 0x4b, 0xed, },
442*4882a593Smuzhiyun   { 0xaf, 0xb8, 0xbc, 0x63, 0x0f, 0x18, 0x4d, 0xe2, 0x7a, 0xdd, 0x46, 0x44,
443*4882a593Smuzhiyun     0xc8, 0x24, 0x0a, 0xb7, },
444*4882a593Smuzhiyun   { 0x3e, 0xdc, 0x36, 0xe4, 0x89, 0xb1, 0xfa, 0xc6, 0x40, 0x93, 0x2e, 0x75,
445*4882a593Smuzhiyun     0xb2, 0x15, 0xd1, 0xb1, 0x10, },
446*4882a593Smuzhiyun   { 0x6c, 0xd8, 0x20, 0x3b, 0x82, 0x79, 0xf9, 0xc8, 0xbc, 0x9d, 0xe0, 0x35,
447*4882a593Smuzhiyun     0xbe, 0x1b, 0x49, 0x1a, 0xbc, 0x3a, },
448*4882a593Smuzhiyun   { 0x78, 0x65, 0x2c, 0xbe, 0x35, 0x67, 0xdc, 0x78, 0xd4, 0x41, 0xf6, 0xc9,
449*4882a593Smuzhiyun     0xde, 0xde, 0x1f, 0x18, 0x13, 0x31, 0x11, },
450*4882a593Smuzhiyun   { 0x8a, 0x7f, 0xb1, 0x33, 0x8f, 0x0c, 0x3c, 0x0a, 0x06, 0x61, 0xf0, 0x47,
451*4882a593Smuzhiyun     0x29, 0x1b, 0x29, 0xbc, 0x1c, 0x47, 0xef, 0x7a, },
452*4882a593Smuzhiyun   { 0x65, 0x91, 0xf1, 0xe6, 0xb3, 0x96, 0xd3, 0x8c, 0xc2, 0x4a, 0x59, 0x35,
453*4882a593Smuzhiyun     0x72, 0x8e, 0x0b, 0x9a, 0x87, 0xca, 0x34, 0x7b, 0x63, },
454*4882a593Smuzhiyun   { 0x5f, 0x08, 0x87, 0x80, 0x56, 0x25, 0x89, 0x77, 0x61, 0x8c, 0x64, 0xa1,
455*4882a593Smuzhiyun     0x59, 0x6d, 0x59, 0x62, 0xe8, 0x4a, 0xc8, 0x58, 0x99, 0xd1, },
456*4882a593Smuzhiyun   { 0x23, 0x87, 0x1d, 0xed, 0x6f, 0xf2, 0x91, 0x90, 0xe2, 0xfe, 0x43, 0x21,
457*4882a593Smuzhiyun     0xaf, 0x97, 0xc6, 0xbc, 0xd7, 0x15, 0xc7, 0x2d, 0x08, 0x77, 0x91, },
458*4882a593Smuzhiyun   { 0x90, 0x47, 0x9a, 0x9e, 0x3a, 0xdf, 0xf3, 0xc9, 0x4c, 0x1e, 0xa7, 0xd4,
459*4882a593Smuzhiyun     0x6a, 0x32, 0x90, 0xfe, 0xb7, 0xb6, 0x7b, 0xfa, 0x96, 0x61, 0xfb, 0xa4, },
460*4882a593Smuzhiyun   { 0xb1, 0x67, 0x60, 0x45, 0xb0, 0x96, 0xc5, 0x15, 0x9f, 0x4d, 0x26, 0xd7,
461*4882a593Smuzhiyun     0x9d, 0xf1, 0xf5, 0x6d, 0x21, 0x00, 0x94, 0x31, 0x64, 0x94, 0xd3, 0xa7,
462*4882a593Smuzhiyun     0xd3, },
463*4882a593Smuzhiyun   { 0x02, 0x3e, 0xaf, 0xf3, 0x79, 0x73, 0xa5, 0xf5, 0xcc, 0x7a, 0x7f, 0xfb,
464*4882a593Smuzhiyun     0x79, 0x2b, 0x85, 0x8c, 0x88, 0x72, 0x06, 0xbe, 0xfe, 0xaf, 0xc1, 0x16,
465*4882a593Smuzhiyun     0xa6, 0xd6, },
466*4882a593Smuzhiyun   { 0x2a, 0xb0, 0x1a, 0xe5, 0xaa, 0x6e, 0xb3, 0xae, 0x53, 0x85, 0x33, 0x80,
467*4882a593Smuzhiyun     0x75, 0xae, 0x30, 0xe6, 0xb8, 0x72, 0x42, 0xf6, 0x25, 0x4f, 0x38, 0x88,
468*4882a593Smuzhiyun     0x55, 0xd1, 0xa9, },
469*4882a593Smuzhiyun   { 0x90, 0xd8, 0x0c, 0xc0, 0x93, 0x4b, 0x4f, 0x9e, 0x65, 0x6c, 0xa1, 0x54,
470*4882a593Smuzhiyun     0xa6, 0xf6, 0x6e, 0xca, 0xd2, 0xbb, 0x7e, 0x6a, 0x1c, 0xd3, 0xce, 0x46,
471*4882a593Smuzhiyun     0xef, 0xb0, 0x00, 0x8d, },
472*4882a593Smuzhiyun   { 0xed, 0x9c, 0x49, 0xcd, 0xc2, 0xde, 0x38, 0x0e, 0xe9, 0x98, 0x6c, 0xc8,
473*4882a593Smuzhiyun     0x90, 0x9e, 0x3c, 0xd4, 0xd3, 0xeb, 0x88, 0x32, 0xc7, 0x28, 0xe3, 0x94,
474*4882a593Smuzhiyun     0x1c, 0x9f, 0x8b, 0xf3, 0xcb, },
475*4882a593Smuzhiyun   { 0xac, 0xe7, 0x92, 0x16, 0xb4, 0x14, 0xa0, 0xe4, 0x04, 0x79, 0xa2, 0xf4,
476*4882a593Smuzhiyun     0x31, 0xe6, 0x0c, 0x26, 0xdc, 0xbf, 0x2f, 0x69, 0x1b, 0x55, 0x94, 0x67,
477*4882a593Smuzhiyun     0xda, 0x0c, 0xd7, 0x32, 0x1f, 0xef, },
478*4882a593Smuzhiyun   { 0x68, 0x63, 0x85, 0x57, 0x95, 0x9e, 0x42, 0x27, 0x41, 0x43, 0x42, 0x02,
479*4882a593Smuzhiyun     0xa5, 0x78, 0xa7, 0xc6, 0x43, 0xc1, 0x6a, 0xba, 0x70, 0x80, 0xcd, 0x04,
480*4882a593Smuzhiyun     0xb6, 0x78, 0x76, 0x29, 0xf3, 0xe8, 0xa0, },
481*4882a593Smuzhiyun   { 0xe6, 0xac, 0x8d, 0x9d, 0xf0, 0xc0, 0xf7, 0xf7, 0xe3, 0x3e, 0x4e, 0x28,
482*4882a593Smuzhiyun     0x0f, 0x59, 0xb2, 0x67, 0x9e, 0x84, 0x34, 0x42, 0x96, 0x30, 0x2b, 0xca,
483*4882a593Smuzhiyun     0x49, 0xb6, 0xc5, 0x9a, 0x84, 0x59, 0xa7, 0x81, },
484*4882a593Smuzhiyun   { 0x7e, },
485*4882a593Smuzhiyun   { 0x1e, 0x21, },
486*4882a593Smuzhiyun   { 0x26, 0xd3, 0xdd, },
487*4882a593Smuzhiyun   { 0x2c, 0xd4, 0xb3, 0x3d, },
488*4882a593Smuzhiyun   { 0x86, 0x7b, 0x76, 0x3c, 0xf0, },
489*4882a593Smuzhiyun   { 0x12, 0xc3, 0x70, 0x1d, 0x55, 0x18, },
490*4882a593Smuzhiyun   { 0x96, 0xc2, 0xbd, 0x61, 0x55, 0xf4, 0x24, },
491*4882a593Smuzhiyun   { 0x20, 0x51, 0xf7, 0x86, 0x58, 0x8f, 0x07, 0x2a, },
492*4882a593Smuzhiyun   { 0x93, 0x15, 0xa8, 0x1d, 0xda, 0x97, 0xee, 0x0e, 0x6c, },
493*4882a593Smuzhiyun   { 0x39, 0x93, 0xdf, 0xd5, 0x0e, 0xca, 0xdc, 0x7a, 0x92, 0xce, },
494*4882a593Smuzhiyun   { 0x60, 0xd5, 0xfd, 0xf5, 0x1b, 0x26, 0x82, 0x26, 0x73, 0x02, 0xbc, },
495*4882a593Smuzhiyun   { 0x98, 0xf2, 0x34, 0xe1, 0xf5, 0xfb, 0x00, 0xac, 0x10, 0x4a, 0x38, 0x9f, },
496*4882a593Smuzhiyun   { 0xda, 0x3a, 0x92, 0x8a, 0xd0, 0xcd, 0x12, 0xcd, 0x15, 0xbb, 0xab, 0x77,
497*4882a593Smuzhiyun     0x66, },
498*4882a593Smuzhiyun   { 0xa2, 0x92, 0x1a, 0xe5, 0xca, 0x0c, 0x30, 0x75, 0xeb, 0xaf, 0x00, 0x31,
499*4882a593Smuzhiyun     0x55, 0x66, },
500*4882a593Smuzhiyun   { 0x06, 0xea, 0xfd, 0x3e, 0x86, 0x38, 0x62, 0x4e, 0xa9, 0x12, 0xa4, 0x12,
501*4882a593Smuzhiyun     0x43, 0xbf, 0xa1, },
502*4882a593Smuzhiyun   { 0xe4, 0x71, 0x7b, 0x94, 0xdb, 0xa0, 0xd2, 0xff, 0x9b, 0xeb, 0xad, 0x8e,
503*4882a593Smuzhiyun     0x95, 0x8a, 0xc5, 0xed, },
504*4882a593Smuzhiyun   { 0x25, 0x5a, 0x77, 0x71, 0x41, 0x0e, 0x7a, 0xe9, 0xed, 0x0c, 0x10, 0xef,
505*4882a593Smuzhiyun     0xf6, 0x2b, 0x3a, 0xba, 0x60, },
506*4882a593Smuzhiyun   { 0xee, 0xe2, 0xa3, 0x67, 0x64, 0x1d, 0xc6, 0x04, 0xc4, 0xe1, 0x68, 0xd2,
507*4882a593Smuzhiyun     0x6e, 0xd2, 0x91, 0x75, 0x53, 0x07, },
508*4882a593Smuzhiyun   { 0xe0, 0xf6, 0x4d, 0x8f, 0x68, 0xfc, 0x06, 0x7e, 0x18, 0x79, 0x7f, 0x2b,
509*4882a593Smuzhiyun     0x6d, 0xef, 0x46, 0x7f, 0xab, 0xb2, 0xad, },
510*4882a593Smuzhiyun   { 0x3d, 0x35, 0x88, 0x9f, 0x2e, 0xcf, 0x96, 0x45, 0x07, 0x60, 0x71, 0x94,
511*4882a593Smuzhiyun     0x00, 0x8d, 0xbf, 0xf4, 0xef, 0x46, 0x2e, 0x3c, },
512*4882a593Smuzhiyun   { 0x43, 0xcf, 0x98, 0xf7, 0x2d, 0xf4, 0x17, 0xe7, 0x8c, 0x05, 0x2d, 0x9b,
513*4882a593Smuzhiyun     0x24, 0xfb, 0x4d, 0xea, 0x4a, 0xec, 0x01, 0x25, 0x29, },
514*4882a593Smuzhiyun   { 0x8e, 0x73, 0x9a, 0x78, 0x11, 0xfe, 0x48, 0xa0, 0x3b, 0x1a, 0x26, 0xdf,
515*4882a593Smuzhiyun     0x25, 0xe9, 0x59, 0x1c, 0x70, 0x07, 0x9f, 0xdc, 0xa0, 0xa6, },
516*4882a593Smuzhiyun   { 0xe8, 0x47, 0x71, 0xc7, 0x3e, 0xdf, 0xb5, 0x13, 0xb9, 0x85, 0x13, 0xa8,
517*4882a593Smuzhiyun     0x54, 0x47, 0x6e, 0x59, 0x96, 0x09, 0x13, 0x5f, 0x82, 0x16, 0x0b, },
518*4882a593Smuzhiyun   { 0xfb, 0xc0, 0x8c, 0x03, 0x21, 0xb3, 0xc4, 0xb5, 0x43, 0x32, 0x6c, 0xea,
519*4882a593Smuzhiyun     0x7f, 0xa8, 0x43, 0x91, 0xe8, 0x4e, 0x3f, 0xbf, 0x45, 0x58, 0x6a, 0xa3, },
520*4882a593Smuzhiyun   { 0x55, 0xf8, 0xf3, 0x00, 0x76, 0x09, 0xef, 0x69, 0x5d, 0xd2, 0x8a, 0xf2,
521*4882a593Smuzhiyun     0x65, 0xc3, 0xcb, 0x9b, 0x43, 0xfd, 0xb1, 0x7e, 0x7f, 0xa1, 0x94, 0xb0,
522*4882a593Smuzhiyun     0xd7, },
523*4882a593Smuzhiyun   { 0xaa, 0x13, 0xc1, 0x51, 0x40, 0x6d, 0x8d, 0x4c, 0x0a, 0x95, 0x64, 0x7b,
524*4882a593Smuzhiyun     0xd1, 0x96, 0xb6, 0x56, 0xb4, 0x5b, 0xcf, 0xd6, 0xd9, 0x15, 0x97, 0xdd,
525*4882a593Smuzhiyun     0xb6, 0xef, },
526*4882a593Smuzhiyun   { 0xaf, 0xb7, 0x36, 0xb0, 0x04, 0xdb, 0xd7, 0x9c, 0x9a, 0x44, 0xc4, 0xf6,
527*4882a593Smuzhiyun     0x1f, 0x12, 0x21, 0x2d, 0x59, 0x30, 0x54, 0xab, 0x27, 0x61, 0xa3, 0x57,
528*4882a593Smuzhiyun     0xef, 0xf8, 0x53, },
529*4882a593Smuzhiyun   { 0x97, 0x34, 0x45, 0x3e, 0xce, 0x7c, 0x35, 0xa2, 0xda, 0x9f, 0x4b, 0x46,
530*4882a593Smuzhiyun     0x6c, 0x11, 0x67, 0xff, 0x2f, 0x76, 0x58, 0x15, 0x71, 0xfa, 0x44, 0x89,
531*4882a593Smuzhiyun     0x89, 0xfd, 0xf7, 0x99, },
532*4882a593Smuzhiyun   { 0x1f, 0xb1, 0x62, 0xeb, 0x83, 0xc5, 0x9c, 0x89, 0xf9, 0x2c, 0xd2, 0x03,
533*4882a593Smuzhiyun     0x61, 0xbc, 0xbb, 0xa5, 0x74, 0x0e, 0x9b, 0x7e, 0x82, 0x3e, 0x70, 0x0a,
534*4882a593Smuzhiyun     0xa9, 0x8f, 0x2b, 0x59, 0xfb, },
535*4882a593Smuzhiyun   { 0xf8, 0xca, 0x5e, 0x3a, 0x4f, 0x9e, 0x10, 0x69, 0x10, 0xd5, 0x4c, 0xeb,
536*4882a593Smuzhiyun     0x1a, 0x0f, 0x3c, 0x6a, 0x98, 0xf5, 0xb0, 0x97, 0x5b, 0x37, 0x2f, 0x0d,
537*4882a593Smuzhiyun     0xbd, 0x42, 0x4b, 0x69, 0xa1, 0x82, },
538*4882a593Smuzhiyun   { 0x12, 0x8c, 0x6d, 0x52, 0x08, 0xef, 0x74, 0xb2, 0xe6, 0xaa, 0xd3, 0xb0,
539*4882a593Smuzhiyun     0x26, 0xb0, 0xd9, 0x94, 0xb6, 0x11, 0x45, 0x0e, 0x36, 0x71, 0x14, 0x2d,
540*4882a593Smuzhiyun     0x41, 0x8c, 0x21, 0x53, 0x31, 0xe9, 0x68, },
541*4882a593Smuzhiyun   { 0xee, 0xea, 0x0d, 0x89, 0x47, 0x7e, 0x72, 0xd1, 0xd8, 0xce, 0x58, 0x4c,
542*4882a593Smuzhiyun     0x94, 0x1f, 0x0d, 0x51, 0x08, 0xa3, 0xb6, 0x3d, 0xe7, 0x82, 0x46, 0x92,
543*4882a593Smuzhiyun     0xd6, 0x98, 0x6b, 0x07, 0x10, 0x65, 0x52, 0x65, },
544*4882a593Smuzhiyun };
545*4882a593Smuzhiyun 
blake2s_selftest(void)546*4882a593Smuzhiyun bool __init blake2s_selftest(void)
547*4882a593Smuzhiyun {
548*4882a593Smuzhiyun 	u8 key[BLAKE2S_KEY_SIZE];
549*4882a593Smuzhiyun 	u8 buf[ARRAY_SIZE(blake2s_testvecs)];
550*4882a593Smuzhiyun 	u8 hash[BLAKE2S_HASH_SIZE];
551*4882a593Smuzhiyun 	struct blake2s_state state;
552*4882a593Smuzhiyun 	bool success = true;
553*4882a593Smuzhiyun 	int i, l;
554*4882a593Smuzhiyun 
555*4882a593Smuzhiyun 	key[0] = key[1] = 1;
556*4882a593Smuzhiyun 	for (i = 2; i < sizeof(key); ++i)
557*4882a593Smuzhiyun 		key[i] = key[i - 2] + key[i - 1];
558*4882a593Smuzhiyun 
559*4882a593Smuzhiyun 	for (i = 0; i < sizeof(buf); ++i)
560*4882a593Smuzhiyun 		buf[i] = (u8)i;
561*4882a593Smuzhiyun 
562*4882a593Smuzhiyun 	for (i = l = 0; i < ARRAY_SIZE(blake2s_testvecs); l = (l + 37) % ++i) {
563*4882a593Smuzhiyun 		int outlen = 1 + i % BLAKE2S_HASH_SIZE;
564*4882a593Smuzhiyun 		int keylen = (13 * i) % (BLAKE2S_KEY_SIZE + 1);
565*4882a593Smuzhiyun 
566*4882a593Smuzhiyun 		blake2s(hash, buf, key + BLAKE2S_KEY_SIZE - keylen, outlen, i,
567*4882a593Smuzhiyun 			keylen);
568*4882a593Smuzhiyun 		if (memcmp(hash, blake2s_testvecs[i], outlen)) {
569*4882a593Smuzhiyun 			pr_err("blake2s self-test %d: FAIL\n", i + 1);
570*4882a593Smuzhiyun 			success = false;
571*4882a593Smuzhiyun 		}
572*4882a593Smuzhiyun 
573*4882a593Smuzhiyun 		if (!keylen)
574*4882a593Smuzhiyun 			blake2s_init(&state, outlen);
575*4882a593Smuzhiyun 		else
576*4882a593Smuzhiyun 			blake2s_init_key(&state, outlen,
577*4882a593Smuzhiyun 					 key + BLAKE2S_KEY_SIZE - keylen,
578*4882a593Smuzhiyun 					 keylen);
579*4882a593Smuzhiyun 
580*4882a593Smuzhiyun 		blake2s_update(&state, buf, l);
581*4882a593Smuzhiyun 		blake2s_update(&state, buf + l, i - l);
582*4882a593Smuzhiyun 		blake2s_final(&state, hash);
583*4882a593Smuzhiyun 		if (memcmp(hash, blake2s_testvecs[i], outlen)) {
584*4882a593Smuzhiyun 			pr_err("blake2s init/update/final self-test %d: FAIL\n",
585*4882a593Smuzhiyun 			       i + 1);
586*4882a593Smuzhiyun 			success = false;
587*4882a593Smuzhiyun 		}
588*4882a593Smuzhiyun 	}
589*4882a593Smuzhiyun 
590*4882a593Smuzhiyun 	return success;
591*4882a593Smuzhiyun }
592