x25519 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +5 -0
- data/.rubocop.yml +32 -0
- data/.travis.yml +12 -0
- data/CODE_OF_CONDUCT.md +74 -0
- data/Gemfile +11 -0
- data/LICENSE +165 -0
- data/README.md +67 -0
- data/Rakefile +11 -0
- data/ext/x25519/bytes.c +42 -0
- data/ext/x25519/bytes.h +25 -0
- data/ext/x25519/fp25519_x64.c +826 -0
- data/ext/x25519/fp25519_x64.h +91 -0
- data/ext/x25519/random.c +51 -0
- data/ext/x25519/random.h +24 -0
- data/ext/x25519/rfc7748_precompted.h +49 -0
- data/ext/x25519/rfc7748_precomputed.c +20 -0
- data/ext/x25519/table_ladder_x25519.h +277 -0
- data/ext/x25519/x25519_x64.c +244 -0
- data/lib/x25519.rb +7 -0
- data/lib/x25519/version.rb +5 -0
- data/x25519.gemspec +28 -0
- metadata +82 -0
@@ -0,0 +1,91 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2017 Armando Faz <armfazh@ic.unicamp.br>.
|
3
|
+
* Institute of Computing.
|
4
|
+
* University of Campinas, Brazil.
|
5
|
+
*
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
7
|
+
* it under the terms of the GNU Lesser General Public License as
|
8
|
+
* published by the Free Software Foundation, version 3.
|
9
|
+
*
|
10
|
+
* This program is distributed in the hope that it will be useful, but
|
11
|
+
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public License
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
*/
|
18
|
+
#ifndef FP25519_X64_H
|
19
|
+
#define FP25519_X64_H
|
20
|
+
|
21
|
+
#include <stdint.h>
|
22
|
+
|
23
|
+
#define ALIGN_BYTES 32
|
24
|
+
#ifdef __INTEL_COMPILER
|
25
|
+
#define ALIGN __declspec(align(ALIGN_BYTES))
|
26
|
+
#else
|
27
|
+
#define ALIGN __attribute__ ((aligned (ALIGN_BYTES)))
|
28
|
+
#endif
|
29
|
+
|
30
|
+
#define SIZE_ELEMENT_BYTES 32
|
31
|
+
#define NUM_WORDS_ELTFP25519_X64 4
|
32
|
+
typedef ALIGN uint64_t EltFp25519_1w_x64[NUM_WORDS_ELTFP25519_X64];
|
33
|
+
typedef ALIGN uint64_t EltFp25519_1w_Buffer_x64[2*NUM_WORDS_ELTFP25519_X64];
|
34
|
+
typedef ALIGN uint64_t EltFp25519_2w_x64[2*NUM_WORDS_ELTFP25519_X64];
|
35
|
+
typedef ALIGN uint64_t EltFp25519_2w_Buffer_x64[4*NUM_WORDS_ELTFP25519_X64];
|
36
|
+
|
37
|
+
void print_bytes(uint8_t * A,int num_bytes);
|
38
|
+
|
39
|
+
/* Integer Arithmetic */
|
40
|
+
void mul2_256x256_integer_x64(uint64_t *const c, uint64_t *const a, uint64_t *const b);
|
41
|
+
void sqr2_256x256_integer_x64(uint64_t *const c, uint64_t *const a);
|
42
|
+
void red_EltFp25519_2w_x64(uint64_t *const c, uint64_t *const a);
|
43
|
+
|
44
|
+
void mul_256x256_integer_x64(uint64_t *const c, uint64_t *const a, uint64_t *const b);
|
45
|
+
void sqr_256x256_integer_x64(uint64_t *const c, uint64_t *const a);
|
46
|
+
void red_EltFp25519_1w_x64(uint64_t *const c, uint64_t *const a);
|
47
|
+
|
48
|
+
/* Prime Field Util */
|
49
|
+
void random_EltFp25519_1w_x64(uint64_t *A);
|
50
|
+
void print_EltFp25519_1w_x64(uint64_t *A);
|
51
|
+
int compare_EltFp25519_1w_x64(uint64_t *A, uint64_t *B);
|
52
|
+
void random_EltFp25519_2w_x64(uint64_t *A);
|
53
|
+
void print_EltFp25519_2w(uint64_t *A);
|
54
|
+
int compare_EltFp25519_2w(uint64_t *A, uint64_t *B);
|
55
|
+
|
56
|
+
/* Prime Field Arithmetic */
|
57
|
+
void add_EltFp25519_1w_x64(uint64_t *const c, uint64_t *const a, uint64_t *const b);
|
58
|
+
void sub_EltFp25519_1w_x64(uint64_t *const c, uint64_t *const a, uint64_t *const b);
|
59
|
+
void mul_a24_EltFp25519_1w_x64(uint64_t *const c, uint64_t *const a);
|
60
|
+
void inv_EltFp25519_1w_x64(uint64_t *const pC, uint64_t *const pA);
|
61
|
+
void fred_EltFp25519_1w_x64(uint64_t *const c);
|
62
|
+
|
63
|
+
#define mul_EltFp25519_1w_x64(c,a,b) \
|
64
|
+
mul_256x256_integer_x64(buffer_1w,a,b);\
|
65
|
+
red_EltFp25519_1w_x64(c,buffer_1w);
|
66
|
+
|
67
|
+
#define sqr_EltFp25519_1w_x64(a)\
|
68
|
+
sqr_256x256_integer_x64(buffer_1w,a);\
|
69
|
+
red_EltFp25519_1w_x64(a,buffer_1w);
|
70
|
+
|
71
|
+
#define mul_EltFp25519_2w_x64(c,a,b) \
|
72
|
+
mul2_256x256_integer_x64(buffer_2w,a,b);\
|
73
|
+
red_EltFp25519_2w_x64(c,buffer_2w);
|
74
|
+
|
75
|
+
#define sqr_EltFp25519_2w_x64(a)\
|
76
|
+
sqr2_256x256_integer_x64(buffer_2w,a);\
|
77
|
+
red_EltFp25519_2w_x64(a,buffer_2w);
|
78
|
+
|
79
|
+
#define copy_EltFp25519_1w_x64(C,A)\
|
80
|
+
(C)[0] = (A)[0];\
|
81
|
+
(C)[1] = (A)[1];\
|
82
|
+
(C)[2] = (A)[2];\
|
83
|
+
(C)[3] = (A)[3];
|
84
|
+
|
85
|
+
#define setzero_EltFp25519_1w_x64(C)\
|
86
|
+
(C)[0] = 0;\
|
87
|
+
(C)[1] = 0;\
|
88
|
+
(C)[2] = 0;\
|
89
|
+
(C)[3] = 0;
|
90
|
+
|
91
|
+
#endif /* FP25519_X64_H */
|
data/ext/x25519/random.c
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2017 Armando Faz <armfazh@ic.unicamp.br>.
|
3
|
+
* Institute of Computing.
|
4
|
+
* University of Campinas, Brazil.
|
5
|
+
*
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
7
|
+
* it under the terms of the GNU Lesser General Public License as
|
8
|
+
* published by the Free Software Foundation, version 3.
|
9
|
+
*
|
10
|
+
* This program is distributed in the hope that it will be useful, but
|
11
|
+
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public License
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
*/
|
18
|
+
#include <stdlib.h>
|
19
|
+
#include <stdint.h>
|
20
|
+
#include <stdio.h>
|
21
|
+
|
22
|
+
/** Random number Generator:
|
23
|
+
* Taken from: https://github.com/relic-toolkit/relic/src/rand/relic_rand_call.c
|
24
|
+
*
|
25
|
+
* @warning Provide a secure random number generator.
|
26
|
+
* @param buffer
|
27
|
+
* @param num_bytes
|
28
|
+
*/
|
29
|
+
#include <unistd.h>
|
30
|
+
#include <fcntl.h>
|
31
|
+
void random_bytes(uint8_t *buffer, int num_bytes)
|
32
|
+
{
|
33
|
+
int c, l, fd = open("/dev/urandom", O_RDONLY);
|
34
|
+
|
35
|
+
if (fd == -1)
|
36
|
+
{
|
37
|
+
printf("Error opening /dev/urandom\n");
|
38
|
+
}
|
39
|
+
|
40
|
+
l = 0;
|
41
|
+
do {
|
42
|
+
c = read(fd, buffer + l, num_bytes - l);
|
43
|
+
l += c;
|
44
|
+
if (c == -1)
|
45
|
+
{
|
46
|
+
printf("Error reading /dev/urandom\n");
|
47
|
+
}
|
48
|
+
} while (l < num_bytes);
|
49
|
+
|
50
|
+
close(fd);
|
51
|
+
}
|
data/ext/x25519/random.h
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2017 Armando Faz <armfazh@ic.unicamp.br>.
|
3
|
+
* Institute of Computing.
|
4
|
+
* University of Campinas, Brazil.
|
5
|
+
*
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
7
|
+
* it under the terms of the GNU Lesser General Public License as
|
8
|
+
* published by the Free Software Foundation, version 3.
|
9
|
+
*
|
10
|
+
* This program is distributed in the hope that it will be useful, but
|
11
|
+
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public License
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
*/
|
18
|
+
#ifndef RANDOM_H
|
19
|
+
#define RANDOM_H
|
20
|
+
|
21
|
+
#include <stdint.h>
|
22
|
+
void random_bytes(uint8_t *A, int length);
|
23
|
+
|
24
|
+
#endif /* RANDOM_H */
|
@@ -0,0 +1,49 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2017 Armando Faz <armfazh@ic.unicamp.br>.
|
3
|
+
* Institute of Computing.
|
4
|
+
* University of Campinas, Brazil.
|
5
|
+
*
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
7
|
+
* it under the terms of the GNU Lesser General Public License as
|
8
|
+
* published by the Free Software Foundation, version 3.
|
9
|
+
*
|
10
|
+
* This program is distributed in the hope that it will be useful, but
|
11
|
+
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public License
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
*/
|
18
|
+
#ifndef RFC7748_PRECOMPUTED_H
|
19
|
+
#define RFC7748_PRECOMPUTED_H
|
20
|
+
|
21
|
+
#include <stdint.h>
|
22
|
+
|
23
|
+
#define ALIGN_BYTES 32
|
24
|
+
#ifdef __INTEL_COMPILER
|
25
|
+
#define ALIGN __declspec(align(ALIGN_BYTES))
|
26
|
+
#else
|
27
|
+
#define ALIGN __attribute__ ((aligned (ALIGN_BYTES)))
|
28
|
+
#endif
|
29
|
+
|
30
|
+
#define X25519_KEYSIZE_BYTES 32
|
31
|
+
typedef ALIGN uint8_t X25519_KEY[X25519_KEYSIZE_BYTES];
|
32
|
+
#define X448_KEYSIZE_BYTES 56
|
33
|
+
typedef ALIGN uint8_t X448_KEY[X448_KEYSIZE_BYTES];
|
34
|
+
|
35
|
+
typedef uint8_t * argKey;
|
36
|
+
typedef void (*KeyGen)(argKey session_key, argKey private_key);
|
37
|
+
typedef void (*Shared)(argKey shared, argKey session_key, argKey private_key);
|
38
|
+
|
39
|
+
void print_X25519_key(argKey key);
|
40
|
+
void print_X448_key(argKey key);
|
41
|
+
void random_X25519_key(argKey key);
|
42
|
+
void random_X448_key(argKey key);
|
43
|
+
|
44
|
+
extern const KeyGen X25519_KeyGen_x64;
|
45
|
+
extern const Shared X25519_Shared_x64;
|
46
|
+
extern const KeyGen X448_KeyGen_x64;
|
47
|
+
extern const Shared X448_Shared_x64;
|
48
|
+
|
49
|
+
#endif /* RFC7748_PRECOMPUTED_H */
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2017 Armando Faz <armfazh@ic.unicamp.br>.
|
3
|
+
* Institute of Computing.
|
4
|
+
* University of Campinas, Brazil.
|
5
|
+
*
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
7
|
+
* it under the terms of the GNU Lesser General Public License as
|
8
|
+
* published by the Free Software Foundation, version 3.
|
9
|
+
*
|
10
|
+
* This program is distributed in the hope that it will be useful, but
|
11
|
+
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public License
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
*/
|
18
|
+
#include "rfc7748_precompted.h"
|
19
|
+
|
20
|
+
|
@@ -0,0 +1,277 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright (c) 2017 Armando Faz <armfazh@ic.unicamp.br>.
|
3
|
+
* Institute of Computing.
|
4
|
+
* University of Campinas, Brazil.
|
5
|
+
*
|
6
|
+
* This program is free software: you can redistribute it and/or modify
|
7
|
+
* it under the terms of the GNU Lesser General Public License as
|
8
|
+
* published by the Free Software Foundation, version 3.
|
9
|
+
*
|
10
|
+
* This program is distributed in the hope that it will be useful, but
|
11
|
+
* WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
13
|
+
* Lesser General Public License for more details.
|
14
|
+
*
|
15
|
+
* You should have received a copy of the GNU Lesser General Public License
|
16
|
+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
*/
|
18
|
+
#ifndef TABLE_LADDER_8K_H
|
19
|
+
#define TABLE_LADDER_8K_H
|
20
|
+
#include<stdint.h>
|
21
|
+
|
22
|
+
ALIGN static const uint64_t Table_Ladder_8k [252*NUM_WORDS_ELTFP25519_X64] = {
|
23
|
+
/* 1 */ 0xfffffffffffffff3,0xffffffffffffffff,0xffffffffffffffff,0x5fffffffffffffff,
|
24
|
+
/* 2 */ 0x6b8220f416aafe96,0x82ebeb2b4f566a34,0xd5a9a5b075a5950f,0x5142b2cf4b2488f4,
|
25
|
+
/* 3 */ 0x6aaebc750069680c,0x89cf7820a0f99c41,0x2a58d9183b56d0f4,0x4b5aca80e36011a4,
|
26
|
+
/* 4 */ 0x329132348c29745d,0xf4a2e616e1642fd7,0x1e45bb03ff67bc34,0x306912d0f42a9b4a,
|
27
|
+
/* 5 */ 0xff886507e6af7154,0x04f50e13dfeec82f,0xaa512fe82abab5ce,0x174e251a68d5f222,
|
28
|
+
/* 6 */ 0xcf96700d82028898,0x1743e3370a2c02c5,0x379eec98b4e86eaa,0x0c59888a51e0482e,
|
29
|
+
/* 7 */ 0xfbcbf1d699b5d189,0xacaef0d58e9fdc84,0xc1c20d06231f7614,0x2938218da274f972,
|
30
|
+
/* 8 */ 0xf6af49beff1d7f18,0xcc541c22387ac9c2,0x96fcc9ef4015c56b,0x69c1627c690913a9,
|
31
|
+
/* 9 */ 0x7a86fd2f4733db0e,0xfdb8c4f29e087de9,0x095e4b1a8ea2a229,0x1ad7a7c829b37a79,
|
32
|
+
/* 10 */ 0x342d89cad17ea0c0,0x67bedda6cced2051,0x19ca31bf2bb42f74,0x3df7b4c84980acbb,
|
33
|
+
/* 11 */ 0xa8c6444dc80ad883,0xb91e440366e3ab85,0xc215cda00164f6d8,0x3d867c6ef247e668,
|
34
|
+
/* 12 */ 0xc7dd582bcc3e658c,0xfd2c4748ee0e5528,0xa0fd9b95cc9f4f71,0x7529d871b0675ddf,
|
35
|
+
/* 13 */ 0xb8f568b42d3cbd78,0x1233011b91f3da82,0x2dce6ccd4a7c3b62,0x75e7fc8e9e498603,
|
36
|
+
/* 14 */ 0x2f4f13f1fcd0b6ec,0xf1a8ca1f29ff7a45,0xc249c1a72981e29b,0x6ebe0dbb8c83b56a,
|
37
|
+
/* 15 */ 0x7114fa8d170bb222,0x65a2dcd5bf93935f,0xbdc41f68b59c979a,0x2f0eef79a2ce9289,
|
38
|
+
/* 16 */ 0x42ecbf0c083c37ce,0x2930bc09ec496322,0xf294b0c19cfeac0d,0x3780aa4bedfabb80,
|
39
|
+
/* 17 */ 0x56c17d3e7cead929,0xe7cb4beb2e5722c5,0x0ce931732dbfe15a,0x41b883c7621052f8,
|
40
|
+
/* 18 */ 0xdbf75ca0c3d25350,0x2936be086eb1e351,0xc936e03cb4a9b212,0x1d45bf82322225aa,
|
41
|
+
/* 19 */ 0xe81ab1036a024cc5,0xe212201c304c9a72,0xc5d73fba6832b1fc,0x20ffdb5a4d839581,
|
42
|
+
/* 20 */ 0xa283d367be5d0fad,0x6c2b25ca8b164475,0x9d4935467caaf22e,0x5166408eee85ff49,
|
43
|
+
/* 21 */ 0x3c67baa2fab4e361,0xb3e433c67ef35cef,0x5259729241159b1c,0x6a621892d5b0ab33,
|
44
|
+
/* 22 */ 0x20b74a387555cdcb,0x532aa10e1208923f,0xeaa17b7762281dd1,0x61ab3443f05c44bf,
|
45
|
+
/* 23 */ 0x257a6c422324def8,0x131c6c1017e3cf7f,0x23758739f630a257,0x295a407a01a78580,
|
46
|
+
/* 24 */ 0xf8c443246d5da8d9,0x19d775450c52fa5d,0x2afcfc92731bf83d,0x7d10c8e81b2b4700,
|
47
|
+
/* 25 */ 0xc8e0271f70baa20b,0x993748867ca63957,0x5412efb3cb7ed4bb,0x3196d36173e62975,
|
48
|
+
/* 26 */ 0xde5bcad141c7dffc,0x47cc8cd2b395c848,0xa34cd942e11af3cb,0x0256dbf2d04ecec2,
|
49
|
+
/* 27 */ 0x875ab7e94b0e667f,0xcad4dd83c0850d10,0x47f12e8f4e72c79f,0x5f1a87bb8c85b19b,
|
50
|
+
/* 28 */ 0x7ae9d0b6437f51b8,0x12c7ce5518879065,0x2ade09fe5cf77aee,0x23a05a2f7d2c5627,
|
51
|
+
/* 29 */ 0x5908e128f17c169a,0xf77498dd8ad0852d,0x74b4c4ceab102f64,0x183abadd10139845,
|
52
|
+
/* 30 */ 0xb165ba8daa92aaac,0xd5c5ef9599386705,0xbe2f8f0cf8fc40d1,0x2701e635ee204514,
|
53
|
+
/* 31 */ 0x629fa80020156514,0xf223868764a8c1ce,0x5b894fff0b3f060e,0x60d9944cf708a3fa,
|
54
|
+
/* 32 */ 0xaeea001a1c7a201f,0xebf16a633ee2ce63,0x6f7709594c7a07e1,0x79b958150d0208cb,
|
55
|
+
/* 33 */ 0x24b55e5301d410e7,0xe3a34edff3fdc84d,0xd88768e4904032d8,0x131384427b3aaeec,
|
56
|
+
/* 34 */ 0x8405e51286234f14,0x14dc4739adb4c529,0xb8a2b5b250634ffd,0x2fe2a94ad8a7ff93,
|
57
|
+
/* 35 */ 0xec5c57efe843fadd,0x2843ce40f0bb9918,0xa4b561d6cf3d6305,0x743629bde8fb777e,
|
58
|
+
/* 36 */ 0x343edd46bbaf738f,0xed981828b101a651,0xa401760b882c797a,0x1fc223e28dc88730,
|
59
|
+
/* 37 */ 0x48604e91fc0fba0e,0xb637f78f052c6fa4,0x91ccac3d09e9239c,0x23f7eed4437a687c,
|
60
|
+
/* 38 */ 0x5173b1118d9bd800,0x29d641b63189d4a7,0xfdbf177988bbc586,0x2959894fcad81df5,
|
61
|
+
/* 39 */ 0xaebc8ef3b4bbc899,0x4148995ab26992b9,0x24e20b0134f92cfb,0x40d158894a05dee8,
|
62
|
+
/* 40 */ 0x46b00b1185af76f6,0x26bac77873187a79,0x3dc0bf95ab8fff5f,0x2a608bd8945524d7,
|
63
|
+
/* 41 */ 0x26449588bd446302,0x7c4bc21c0388439c,0x8e98a4f383bd11b2,0x26218d7bc9d876b9,
|
64
|
+
/* 42 */ 0xe3081542997c178a,0x3c2d29a86fb6606f,0x5c217736fa279374,0x7dde05734afeb1fa,
|
65
|
+
/* 43 */ 0x3bf10e3906d42bab,0xe4f7803e1980649c,0xe6053bf89595bf7a,0x394faf38da245530,
|
66
|
+
/* 44 */ 0x7a8efb58896928f4,0xfbc778e9cc6a113c,0x72670ce330af596f,0x48f222a81d3d6cf7,
|
67
|
+
/* 45 */ 0xf01fce410d72caa7,0x5a20ecc7213b5595,0x7bc21165c1fa1483,0x07f89ae31da8a741,
|
68
|
+
/* 46 */ 0x05d2c2b4c6830ff9,0xd43e330fc6316293,0xa5a5590a96d3a904,0x705edb91a65333b6,
|
69
|
+
/* 47 */ 0x048ee15e0bb9a5f7,0x3240cfca9e0aaf5d,0x8f4b71ceedc4a40b,0x621c0da3de544a6d,
|
70
|
+
/* 48 */ 0x92872836a08c4091,0xce8375b010c91445,0x8a72eb524f276394,0x2667fcfa7ec83635,
|
71
|
+
/* 49 */ 0x7f4c173345e8752a,0x061b47feee7079a5,0x25dd9afa9f86ff34,0x3780cef5425dc89c,
|
72
|
+
/* 50 */ 0x1a46035a513bb4e9,0x3e1ef379ac575ada,0xc78c5f1c5fa24b50,0x321a967634fd9f22,
|
73
|
+
/* 51 */ 0x946707b8826e27fa,0x3dca84d64c506fd0,0xc189218075e91436,0x6d9284169b3b8484,
|
74
|
+
/* 52 */ 0x3a67e840383f2ddf,0x33eec9a30c4f9b75,0x3ec7c86fa783ef47,0x26ec449fbac9fbc4,
|
75
|
+
/* 53 */ 0x5c0f38cba09b9e7d,0x81168cc762a3478c,0x3e23b0d306fc121c,0x5a238aa0a5efdcdd,
|
76
|
+
/* 54 */ 0x1ba26121c4ea43ff,0x36f8c77f7c8832b5,0x88fbea0b0adcf99a,0x5ca9938ec25bebf9,
|
77
|
+
/* 55 */ 0xd5436a5e51fccda0,0x1dbc4797c2cd893b,0x19346a65d3224a08,0x0f5034e49b9af466,
|
78
|
+
/* 56 */ 0xf23c3967a1e0b96e,0xe58b08fa867a4d88,0xfb2fabc6a7341679,0x2a75381eb6026946,
|
79
|
+
/* 57 */ 0xc80a3be4c19420ac,0x66b1f6c681f2b6dc,0x7cf7036761e93388,0x25abbbd8a660a4c4,
|
80
|
+
/* 58 */ 0x91ea12ba14fd5198,0x684950fc4a3cffa9,0xf826842130f5ad28,0x3ea988f75301a441,
|
81
|
+
/* 59 */ 0xc978109a695f8c6f,0x1746eb4a0530c3f3,0x444d6d77b4459995,0x75952b8c054e5cc7,
|
82
|
+
/* 60 */ 0xa3703f7915f4d6aa,0x66c346202f2647d8,0xd01469df811d644b,0x77fea47d81a5d71f,
|
83
|
+
/* 61 */ 0xc5e9529ef57ca381,0x6eeeb4b9ce2f881a,0xb6e91a28e8009bd6,0x4b80be3e9afc3fec,
|
84
|
+
/* 62 */ 0x7e3773c526aed2c5,0x1b4afcb453c9a49d,0xa920bdd7baffb24d,0x7c54699f122d400e,
|
85
|
+
/* 63 */ 0xef46c8e14fa94bc8,0xe0b074ce2952ed5e,0xbea450e1dbd885d5,0x61b68649320f712c,
|
86
|
+
/* 64 */ 0x8a485f7309ccbdd1,0xbd06320d7d4d1a2d,0x25232973322dbef4,0x445dc4758c17f770,
|
87
|
+
/* 65 */ 0xdb0434177cc8933c,0xed6fe82175ea059f,0x1efebefdc053db34,0x4adbe867c65daf99,
|
88
|
+
/* 66 */ 0x3acd71a2a90609df,0xe5e991856dd04050,0x1ec69b688157c23c,0x697427f6885cfe4d,
|
89
|
+
/* 67 */ 0xd7be7b9b65e1a851,0xa03d28d522c536dd,0x28399d658fd2b645,0x49e5b7e17c2641e1,
|
90
|
+
/* 68 */ 0x6f8c3a98700457a4,0x5078f0a25ebb6778,0xd13c3ccbc382960f,0x2e003258a7df84b1,
|
91
|
+
/* 69 */ 0x8ad1f39be6296a1c,0xc1eeaa652a5fbfb2,0x33ee0673fd26f3cb,0x59256173a69d2ccc,
|
92
|
+
/* 70 */ 0x41ea07aa4e18fc41,0xd9fc19527c87a51e,0xbdaacb805831ca6f,0x445b652dc916694f,
|
93
|
+
/* 71 */ 0xce92a3a7f2172315,0x1edc282de11b9964,0xa1823aafe04c314a,0x790a2d94437cf586,
|
94
|
+
/* 72 */ 0x71c447fb93f6e009,0x8922a56722845276,0xbf70903b204f5169,0x2f7a89891ba319fe,
|
95
|
+
/* 73 */ 0x02a08eb577e2140c,0xed9a4ed4427bdcf4,0x5253ec44e4323cd1,0x3e88363c14e9355b,
|
96
|
+
/* 74 */ 0xaa66c14277110b8c,0x1ae0391610a23390,0x2030bd12c93fc2a2,0x3ee141579555c7ab,
|
97
|
+
/* 75 */ 0x9214de3a6d6e7d41,0x3ccdd88607f17efe,0x674f1288f8e11217,0x5682250f329f93d0,
|
98
|
+
/* 76 */ 0x6cf00b136d2e396e,0x6e4cf86f1014debf,0x5930b1b5bfcc4e83,0x047069b48aba16b6,
|
99
|
+
/* 77 */ 0x0d4ce4ab69b20793,0xb24db91a97d0fb9e,0xcdfa50f54e00d01d,0x221b1085368bddb5,
|
100
|
+
/* 78 */ 0xe7e59468b1e3d8d2,0x53c56563bd122f93,0xeee8a903e0663f09,0x61efa662cbbe3d42,
|
101
|
+
/* 79 */ 0x2cf8ddddde6eab2a,0x9bf80ad51435f231,0x5deadacec9f04973,0x29275b5d41d29b27,
|
102
|
+
/* 80 */ 0xcfde0f0895ebf14f,0xb9aab96b054905a7,0xcae80dd9a1c420fd,0x0a63bf2f1673bbc7,
|
103
|
+
/* 81 */ 0x092f6e11958fbc8c,0x672a81e804822fad,0xcac8351560d52517,0x6f3f7722c8f192f8,
|
104
|
+
/* 82 */ 0xf8ba90ccc2e894b7,0x2c7557a438ff9f0d,0x894d1d855ae52359,0x68e122157b743d69,
|
105
|
+
/* 83 */ 0xd87e5570cfb919f3,0x3f2cdecd95798db9,0x2121154710c0a2ce,0x3c66a115246dc5b2,
|
106
|
+
/* 84 */ 0xcbedc562294ecb72,0xba7143c36a280b16,0x9610c2efd4078b67,0x6144735d946a4b1e,
|
107
|
+
/* 85 */ 0x536f111ed75b3350,0x0211db8c2041d81b,0xf93cb1000e10413c,0x149dfd3c039e8876,
|
108
|
+
/* 86 */ 0xd479dde46b63155b,0xb66e15e93c837976,0xdafde43b1f13e038,0x5fafda1a2e4b0b35,
|
109
|
+
/* 87 */ 0x3600bbdf17197581,0x3972050bbe3cd2c2,0x5938906dbdd5be86,0x34fce5e43f9b860f,
|
110
|
+
/* 88 */ 0x75a8a4cd42d14d02,0x828dabc53441df65,0x33dcabedd2e131d3,0x3ebad76fb814d25f,
|
111
|
+
/* 89 */ 0xd4906f566f70e10f,0x5d12f7aa51690f5a,0x45adb16e76cefcf2,0x01f768aead232999,
|
112
|
+
/* 90 */ 0x2b6cc77b6248febd,0x3cd30628ec3aaffd,0xce1c0b80d4ef486a,0x4c3bff2ea6f66c23,
|
113
|
+
/* 91 */ 0x3f2ec4094aeaeb5f,0x61b19b286e372ca7,0x5eefa966de2a701d,0x23b20565de55e3ef,
|
114
|
+
/* 92 */ 0xe301ca5279d58557,0x07b2d4ce27c2874f,0xa532cd8a9dcf1d67,0x2a52fee23f2bff56,
|
115
|
+
/* 93 */ 0x8624efb37cd8663d,0xbbc7ac20ffbd7594,0x57b85e9c82d37445,0x7b3052cb86a6ec66,
|
116
|
+
/* 94 */ 0x3482f0ad2525e91e,0x2cb68043d28edca0,0xaf4f6d052e1b003a,0x185f8c2529781b0a,
|
117
|
+
/* 95 */ 0xaa41de5bd80ce0d6,0x9407b2416853e9d6,0x563ec36e357f4c3a,0x4cc4b8dd0e297bce,
|
118
|
+
/* 96 */ 0xa2fc1a52ffb8730e,0x1811f16e67058e37,0x10f9a366cddf4ee1,0x72f4a0c4a0b9f099,
|
119
|
+
/* 97 */ 0x8c16c06f663f4ea7,0x693b3af74e970fba,0x2102e7f1d69ec345,0x0ba53cbc968a8089,
|
120
|
+
/* 98 */ 0xca3d9dc7fea15537,0x4c6824bb51536493,0xb9886314844006b1,0x40d2a72ab454cc60,
|
121
|
+
/* 99 */ 0x5936a1b712570975,0x91b9d648debda657,0x3344094bb64330ea,0x006ba10d12ee51d0,
|
122
|
+
/* 100 */ 0x19228468f5de5d58,0x0eb12f4c38cc05b0,0xa1039f9dd5601990,0x4502d4ce4fff0e0b,
|
123
|
+
/* 101 */ 0xeb2054106837c189,0xd0f6544c6dd3b93c,0x40727064c416d74f,0x6e15c6114b502ef0,
|
124
|
+
/* 102 */ 0x4df2a398cfb1a76b,0x11256c7419f2f6b1,0x4a497962066e6043,0x705b3aab41355b44,
|
125
|
+
/* 103 */ 0x365ef536d797b1d8,0x00076bd622ddf0db,0x3bbf33b0e0575a88,0x3777aa05c8e4ca4d,
|
126
|
+
/* 104 */ 0x392745c85578db5f,0x6fda4149dbae5ae2,0xb1f0b00b8adc9867,0x09963437d36f1da3,
|
127
|
+
/* 105 */ 0x7e824e90a5dc3853,0xccb5f6641f135cbd,0x6736d86c87ce8fcc,0x625f3ce26604249f,
|
128
|
+
/* 106 */ 0xaf8ac8059502f63f,0x0c05e70a2e351469,0x35292e9c764b6305,0x1a394360c7e23ac3,
|
129
|
+
/* 107 */ 0xd5c6d53251183264,0x62065abd43c2b74f,0xb5fbf5d03b973f9b,0x13a3da3661206e5e,
|
130
|
+
/* 108 */ 0xc6bd5837725d94e5,0x18e30912205016c5,0x2088ce1570033c68,0x7fba1f495c837987,
|
131
|
+
/* 109 */ 0x5a8c7423f2f9079d,0x1735157b34023fc5,0xe4f9b49ad2fab351,0x6691ff72c878e33c,
|
132
|
+
/* 110 */ 0x122c2adedc5eff3e,0xf8dd4bf1d8956cf4,0xeb86205d9e9e5bda,0x049b92b9d975c743,
|
133
|
+
/* 111 */ 0xa5379730b0f6c05a,0x72a0ffacc6f3a553,0xb0032c34b20dcd6d,0x470e9dbc88d5164a,
|
134
|
+
/* 112 */ 0xb19cf10ca237c047,0xb65466711f6c81a2,0xb3321bd16dd80b43,0x48c14f600c5fbe8e,
|
135
|
+
/* 113 */ 0x66451c264aa6c803,0xb66e3904a4fa7da6,0xd45f19b0b3128395,0x31602627c3c9bc10,
|
136
|
+
/* 114 */ 0x3120dc4832e4e10d,0xeb20c46756c717f7,0x00f52e3f67280294,0x566d4fc14730c509,
|
137
|
+
/* 115 */ 0x7e3a5d40fd837206,0xc1e926dc7159547a,0x216730fba68d6095,0x22e8c3843f69cea7,
|
138
|
+
/* 116 */ 0x33d074e8930e4b2b,0xb6e4350e84d15816,0x5534c26ad6ba2365,0x7773c12f89f1f3f3,
|
139
|
+
/* 117 */ 0x8cba404da57962aa,0x5b9897a81999ce56,0x508e862f121692fc,0x3a81907fa093c291,
|
140
|
+
/* 118 */ 0x0dded0ff4725a510,0x10d8cc10673fc503,0x5b9d151c9f1f4e89,0x32a5c1d5cb09a44c,
|
141
|
+
/* 119 */ 0x1e0aa442b90541fb,0x5f85eb7cc1b485db,0xbee595ce8a9df2e5,0x25e496c722422236,
|
142
|
+
/* 120 */ 0x5edf3c46cd0fe5b9,0x34e75a7ed2a43388,0xe488de11d761e352,0x0e878a01a085545c,
|
143
|
+
/* 121 */ 0xba493c77e021bb04,0x2b4d1843c7df899a,0x9ea37a487ae80d67,0x67a9958011e41794,
|
144
|
+
/* 122 */ 0x4b58051a6697b065,0x47e33f7d8d6ba6d4,0xbb4da8d483ca46c1,0x68becaa181c2db0d,
|
145
|
+
/* 123 */ 0x8d8980e90b989aa5,0xf95eb14a2c93c99b,0x51c6c7c4796e73a2,0x6e228363b5efb569,
|
146
|
+
/* 124 */ 0xc6bbc0b02dd624c8,0x777eb47dec8170ee,0x3cde15a004cfafa9,0x1dc6bc087160bf9b,
|
147
|
+
/* 125 */ 0x2e07e043eec34002,0x18e9fc677a68dc7f,0xd8da03188bd15b9a,0x48fbc3bb00568253,
|
148
|
+
/* 126 */ 0x57547d4cfb654ce1,0xd3565b82a058e2ad,0xf63eaf0bbf154478,0x47531ef114dfbb18,
|
149
|
+
/* 127 */ 0xe1ec630a4278c587,0x5507d546ca8e83f3,0x85e135c63adc0c2b,0x0aa7efa85682844e,
|
150
|
+
/* 128 */ 0x72691ba8b3e1f615,0x32b4e9701fbe3ffa,0x97b6d92e39bb7868,0x2cfe53dea02e39e8,
|
151
|
+
/* 129 */ 0x687392cd85cd52b0,0x27ff66c910e29831,0x97134556a9832d06,0x269bb0360a84f8a0,
|
152
|
+
/* 130 */ 0x706e55457643f85c,0x3734a48c9b597d1b,0x7aee91e8c6efa472,0x5cd6abc198a9d9e0,
|
153
|
+
/* 131 */ 0x0e04de06cb3ce41a,0xd8c6eb893402e138,0x904659bb686e3772,0x7215c371746ba8c8,
|
154
|
+
/* 132 */ 0xfd12a97eeae4a2d9,0x9514b7516394f2c5,0x266fd5809208f294,0x5c847085619a26b9,
|
155
|
+
/* 133 */ 0x52985410fed694ea,0x3c905b934a2ed254,0x10bb47692d3be467,0x063b3d2d69e5e9e1,
|
156
|
+
/* 134 */ 0x472726eedda57deb,0xefb6c4ae10f41891,0x2b1641917b307614,0x117c554fc4f45b7c,
|
157
|
+
/* 135 */ 0xc07cf3118f9d8812,0x01dbd82050017939,0xd7e803f4171b2827,0x1015e87487d225ea,
|
158
|
+
/* 136 */ 0xc58de3fed23acc4d,0x50db91c294a7be2d,0x0b94d43d1c9cf457,0x6b1640fa6e37524a,
|
159
|
+
/* 137 */ 0x692f346c5fda0d09,0x200b1c59fa4d3151,0xb8c46f760777a296,0x4b38395f3ffdfbcf,
|
160
|
+
/* 138 */ 0x18d25e00be54d671,0x60d50582bec8aba6,0x87ad8f263b78b982,0x50fdf64e9cda0432,
|
161
|
+
/* 139 */ 0x90f567aac578dcf0,0xef1e9b0ef2a3133b,0x0eebba9242d9de71,0x15473c9bf03101c7,
|
162
|
+
/* 140 */ 0x7c77e8ae56b78095,0xb678e7666e6f078e,0x2da0b9615348ba1f,0x7cf931c1ff733f0b,
|
163
|
+
/* 141 */ 0x26b357f50a0a366c,0xe9708cf42b87d732,0xc13aeea5f91cb2c0,0x35d90c991143bb4c,
|
164
|
+
/* 142 */ 0x47c1c404a9a0d9dc,0x659e58451972d251,0x3875a8c473b38c31,0x1fbd9ed379561f24,
|
165
|
+
/* 143 */ 0x11fabc6fd41ec28d,0x7ef8dfe3cd2a2dca,0x72e73b5d8c404595,0x6135fa4954b72f27,
|
166
|
+
/* 144 */ 0xccfc32a2de24b69c,0x3f55698c1f095d88,0xbe3350ed5ac3f929,0x5e9bf806ca477eeb,
|
167
|
+
/* 145 */ 0xe9ce8fb63c309f68,0x5376f63565e1f9f4,0xd1afcfb35a6393f1,0x6632a1ede5623506,
|
168
|
+
/* 146 */ 0x0b7d6c390c2ded4c,0x56cb3281df04cb1f,0x66305a1249ecc3c7,0x5d588b60a38ca72a,
|
169
|
+
/* 147 */ 0xa6ecbf78e8e5f42d,0x86eeb44b3c8a3eec,0xec219c48fbd21604,0x1aaf1af517c36731,
|
170
|
+
/* 148 */ 0xc306a2836769bde7,0x208280622b1e2adb,0x8027f51ffbff94a6,0x76cfa1ce1124f26b,
|
171
|
+
/* 149 */ 0x18eb00562422abb6,0xf377c4d58f8c29c3,0x4dbbc207f531561a,0x0253b7f082128a27,
|
172
|
+
/* 150 */ 0x3d1f091cb62c17e0,0x4860e1abd64628a9,0x52d17436309d4253,0x356f97e13efae576,
|
173
|
+
/* 151 */ 0xd351e11aa150535b,0x3e6b45bb1dd878cc,0x0c776128bed92c98,0x1d34ae93032885b8,
|
174
|
+
/* 152 */ 0x4ba0488ca85ba4c3,0x985348c33c9ce6ce,0x66124c6f97bda770,0x0f81a0290654124a,
|
175
|
+
/* 153 */ 0x9ed09ca6569b86fd,0x811009fd18af9a2d,0xff08d03f93d8c20a,0x52a148199faef26b,
|
176
|
+
/* 154 */ 0x3e03f9dc2d8d1b73,0x4205801873961a70,0xc0d987f041a35970,0x07aa1f15a1c0d549,
|
177
|
+
/* 155 */ 0xdfd46ce08cd27224,0x6d0a024f934e4239,0x808a7a6399897b59,0x0a4556e9e13d95a2,
|
178
|
+
/* 156 */ 0xd21a991fe9c13045,0x9b0e8548fe7751b8,0x5da643cb4bf30035,0x77db28d63940f721,
|
179
|
+
/* 157 */ 0xfc5eeb614adc9011,0x5229419ae8c411eb,0x9ec3e7787d1dcf74,0x340d053e216e4cb5,
|
180
|
+
/* 158 */ 0xcac7af39b48df2b4,0xc0faec2871a10a94,0x140a69245ca575ed,0x0cf1c37134273a4c,
|
181
|
+
/* 159 */ 0xc8ee306ac224b8a5,0x57eaee7ccb4930b0,0xa1e806bdaacbe74f,0x7d9a62742eeb657d,
|
182
|
+
/* 160 */ 0x9eb6b6ef546c4830,0x885cca1fddb36e2e,0xe6b9f383ef0d7105,0x58654fef9d2e0412,
|
183
|
+
/* 161 */ 0xa905c4ffbe0e8e26,0x942de5df9b31816e,0x497d723f802e88e1,0x30684dea602f408d,
|
184
|
+
/* 162 */ 0x21e5a278a3e6cb34,0xaefb6e6f5b151dc4,0xb30b8e049d77ca15,0x28c3c9cf53b98981,
|
185
|
+
/* 163 */ 0x287fb721556cdd2a,0x0d317ca897022274,0x7468c7423a543258,0x4a7f11464eb5642f,
|
186
|
+
/* 164 */ 0xa237a4774d193aa6,0xd865986ea92129a1,0x24c515ecf87c1a88,0x604003575f39f5eb,
|
187
|
+
/* 165 */ 0x47b9f189570a9b27,0x2b98cede465e4b78,0x026df551dbb85c20,0x74fcd91047e21901,
|
188
|
+
/* 166 */ 0x13e2a90a23c1bfa3,0x0cb0074e478519f6,0x5ff1cbbe3af6cf44,0x67fe5438be812dbe,
|
189
|
+
/* 167 */ 0xd13cf64fa40f05b0,0x054dfb2f32283787,0x4173915b7f0d2aea,0x482f144f1f610d4e,
|
190
|
+
/* 168 */ 0xf6210201b47f8234,0x5d0ae1929e70b990,0xdcd7f455b049567c,0x7e93d0f1f0916f01,
|
191
|
+
/* 169 */ 0xdd79cbf18a7db4fa,0xbe8391bf6f74c62f,0x027145d14b8291bd,0x585a73ea2cbf1705,
|
192
|
+
/* 170 */ 0x485ca03e928a0db2,0x10fc01a5742857e7,0x2f482edbd6d551a7,0x0f0433b5048fdb8a,
|
193
|
+
/* 171 */ 0x60da2e8dd7dc6247,0x88b4c9d38cd4819a,0x13033ac001f66697,0x273b24fe3b367d75,
|
194
|
+
/* 172 */ 0xc6e8f66a31b3b9d4,0x281514a494df49d5,0xd1726fdfc8b23da7,0x4b3ae7d103dee548,
|
195
|
+
/* 173 */ 0xc6256e19ce4b9d7e,0xff5c5cf186e3c61c,0xacc63ca34b8ec145,0x74621888fee66574,
|
196
|
+
/* 174 */ 0x956f409645290a1e,0xef0bf8e3263a962e,0xed6a50eb5ec2647b,0x0694283a9dca7502,
|
197
|
+
/* 175 */ 0x769b963643a2dcd1,0x42b7c8ea09fc5353,0x4f002aee13397eab,0x63005e2c19b7d63a,
|
198
|
+
/* 176 */ 0xca6736da63023bea,0x966c7f6db12a99b7,0xace09390c537c5e1,0x0b696063a1aa89ee,
|
199
|
+
/* 177 */ 0xebb03e97288c56e5,0x432a9f9f938c8be8,0xa6a5a93d5b717f71,0x1a5fb4c3e18f9d97,
|
200
|
+
/* 178 */ 0x1c94e7ad1c60cdce,0xee202a43fc02c4a0,0x8dafe4d867c46a20,0x0a10263c8ac27b58,
|
201
|
+
/* 179 */ 0xd0dea9dfe4432a4a,0x856af87bbe9277c5,0xce8472acc212c71a,0x6f151b6d9bbb1e91,
|
202
|
+
/* 180 */ 0x26776c527ceed56a,0x7d211cb7fbf8faec,0x37ae66a6fd4609cc,0x1f81b702d2770c42,
|
203
|
+
/* 181 */ 0x2fb0b057eac58392,0xe1dd89fe29744e9d,0xc964f8eb17beb4f8,0x29571073c9a2d41e,
|
204
|
+
/* 182 */ 0xa948a18981c0e254,0x2df6369b65b22830,0xa33eb2d75fcfd3c6,0x078cd6ec4199a01f,
|
205
|
+
/* 183 */ 0x4a584a41ad900d2f,0x32142b78e2c74c52,0x68c4e8338431c978,0x7f69ea9008689fc2,
|
206
|
+
/* 184 */ 0x52f2c81e46a38265,0xfd78072d04a832fd,0x8cd7d5fa25359e94,0x4de71b7454cc29d2,
|
207
|
+
/* 185 */ 0x42eb60ad1eda6ac9,0x0aad37dfdbc09c3a,0x81004b71e33cc191,0x44e6be345122803c,
|
208
|
+
/* 186 */ 0x03fe8388ba1920db,0xf5d57c32150db008,0x49c8c4281af60c29,0x21edb518de701aee,
|
209
|
+
/* 187 */ 0x7fb63e418f06dc99,0xa4460d99c166d7b8,0x24dd5248ce520a83,0x5ec3ad712b928358,
|
210
|
+
/* 188 */ 0x15022a5fbd17930f,0xa4f64a77d82570e3,0x12bc8d6915783712,0x498194c0fc620abb,
|
211
|
+
/* 189 */ 0x38a2d9d255686c82,0x785c6bd9193e21f0,0xe4d5c81ab24a5484,0x56307860b2e20989,
|
212
|
+
/* 190 */ 0x429d55f78b4d74c4,0x22f1834643350131,0x1e60c24598c71fff,0x59f2f014979983ef,
|
213
|
+
/* 191 */ 0x46a47d56eb494a44,0x3e22a854d636a18e,0xb346e15274491c3b,0x2ceafd4e5390cde7,
|
214
|
+
/* 192 */ 0xba8a8538be0d6675,0x4b9074bb50818e23,0xcbdab89085d304c3,0x61a24fe0e56192c4,
|
215
|
+
/* 193 */ 0xcb7615e6db525bcb,0xdd7d8c35a567e4ca,0xe6b4153acafcdd69,0x2d668e097f3c9766,
|
216
|
+
/* 194 */ 0xa57e7e265ce55ef0,0x5d9f4e527cd4b967,0xfbc83606492fd1e5,0x090d52beb7c3f7ae,
|
217
|
+
/* 195 */ 0x09b9515a1e7b4d7c,0x1f266a2599da44c0,0xa1c49548e2c55504,0x7ef04287126f15cc,
|
218
|
+
/* 196 */ 0xfed1659dbd30ef15,0x8b4ab9eec4e0277b,0x884d6236a5df3291,0x1fd96ea6bf5cf788,
|
219
|
+
/* 197 */ 0x42a161981f190d9a,0x61d849507e6052c1,0x9fe113bf285a2cd5,0x7c22d676dbad85d8,
|
220
|
+
/* 198 */ 0x82e770ed2bfbd27d,0x4c05b2ece996f5a5,0xcd40a9c2b0900150,0x5895319213d9bf64,
|
221
|
+
/* 199 */ 0xe7cc5d703fea2e08,0xb50c491258e2188c,0xcce30baa48205bf0,0x537c659ccfa32d62,
|
222
|
+
/* 200 */ 0x37b6623a98cfc088,0xfe9bed1fa4d6aca4,0x04d29b8e56a8d1b0,0x725f71c40b519575,
|
223
|
+
/* 201 */ 0x28c7f89cd0339ce6,0x8367b14469ddc18b,0x883ada83a6a1652c,0x585f1974034d6c17,
|
224
|
+
/* 202 */ 0x89cfb266f1b19188,0xe63b4863e7c35217,0xd88c9da6b4c0526a,0x3e035c9df0954635,
|
225
|
+
/* 203 */ 0xdd9d5412fb45de9d,0xdd684532e4cff40d,0x4b5c999b151d671c,0x2d8c2cc811e7f690,
|
226
|
+
/* 204 */ 0x7f54be1d90055d40,0xa464c5df464aaf40,0x33979624f0e917be,0x2c018dc527356b30,
|
227
|
+
/* 205 */ 0xa5415024e330b3d4,0x73ff3d96691652d3,0x94ec42c4ef9b59f1,0x0747201618d08e5a,
|
228
|
+
/* 206 */ 0x4d6ca48aca411c53,0x66415f2fcfa66119,0x9c4dd40051e227ff,0x59810bc09a02f7eb,
|
229
|
+
/* 207 */ 0x2a7eb171b3dc101d,0x441c5ab99ffef68e,0x32025c9b93b359ea,0x5e8ce0a71e9d112f,
|
230
|
+
/* 208 */ 0xbfcccb92429503fd,0xd271ba752f095d55,0x345ead5e972d091e,0x18c8df11a83103ba,
|
231
|
+
/* 209 */ 0x90cd949a9aed0f4c,0xc5d1f4cb6660e37e,0xb8cac52d56c52e0b,0x6e42e400c5808e0d,
|
232
|
+
/* 210 */ 0xa3b46966eeaefd23,0x0c4f1f0be39ecdca,0x189dc8c9d683a51d,0x51f27f054c09351b,
|
233
|
+
/* 211 */ 0x4c487ccd2a320682,0x587ea95bb3df1c96,0xc8ccf79e555cb8e8,0x547dc829a206d73d,
|
234
|
+
/* 212 */ 0xb822a6cd80c39b06,0xe96d54732000d4c6,0x28535b6f91463b4d,0x228f4660e2486e1d,
|
235
|
+
/* 213 */ 0x98799538de8d3abf,0x8cd8330045ebca6e,0x79952a008221e738,0x4322e1a7535cd2bb,
|
236
|
+
/* 214 */ 0xb114c11819d1801c,0x2016e4d84f3f5ec7,0xdd0e2df409260f4c,0x5ec362c0ae5f7266,
|
237
|
+
/* 215 */ 0xc0462b18b8b2b4ee,0x7cc8d950274d1afb,0xf25f7105436b02d2,0x43bbf8dcbff9ccd3,
|
238
|
+
/* 216 */ 0xb6ad1767a039e9df,0xb0714da8f69d3583,0x5e55fa18b42931f5,0x4ed5558f33c60961,
|
239
|
+
/* 217 */ 0x1fe37901c647a5dd,0x593ddf1f8081d357,0x0249a4fd813fd7a6,0x69acca274e9caf61,
|
240
|
+
/* 218 */ 0x047ba3ea330721c9,0x83423fc20e7e1ea0,0x1df4c0af01314a60,0x09a62dab89289527,
|
241
|
+
/* 219 */ 0xa5b325a49cc6cb00,0xe94b5dc654b56cb6,0x3be28779adc994a0,0x4296e8f8ba3a4aad,
|
242
|
+
/* 220 */ 0x328689761e451eab,0x2e4d598bff59594a,0x49b96853d7a7084a,0x4980a319601420a8,
|
243
|
+
/* 221 */ 0x9565b9e12f552c42,0x8a5318db7100fe96,0x05c90b4d43add0d7,0x538b4cd66a5d4eda,
|
244
|
+
/* 222 */ 0xf4e94fc3e89f039f,0x592c9af26f618045,0x08a36eb5fd4b9550,0x25fffaf6c2ed1419,
|
245
|
+
/* 223 */ 0x34434459cc79d354,0xeeecbfb4b1d5476b,0xddeb34a061615d99,0x5129cecceb64b773,
|
246
|
+
/* 224 */ 0xee43215894993520,0x772f9c7cf14c0b3b,0xd2e2fce306bedad5,0x715f42b546f06a97,
|
247
|
+
/* 225 */ 0x434ecdceda5b5f1a,0x0da17115a49741a9,0x680bd77c73edad2e,0x487c02354edd9041,
|
248
|
+
/* 226 */ 0xb8efeff3a70ed9c4,0x56a32aa3e857e302,0xdf3a68bd48a2a5a0,0x07f650b73176c444,
|
249
|
+
/* 227 */ 0xe38b9b1626e0ccb1,0x79e053c18b09fb36,0x56d90319c9f94964,0x1ca941e7ac9ff5c4,
|
250
|
+
/* 228 */ 0x49c4df29162fa0bb,0x8488cf3282b33305,0x95dfda14cabb437d,0x3391f78264d5ad86,
|
251
|
+
/* 229 */ 0x729ae06ae2b5095d,0xd58a58d73259a946,0xe9834262d13921ed,0x27fedafaa54bb592,
|
252
|
+
/* 230 */ 0xa99dc5b829ad48bb,0x5f025742499ee260,0x802c8ecd5d7513fd,0x78ceb3ef3f6dd938,
|
253
|
+
/* 231 */ 0xc342f44f8a135d94,0x7b9edb44828cdda3,0x9436d11a0537cfe7,0x5064b164ec1ab4c8,
|
254
|
+
/* 232 */ 0x7020eccfd37eb2fc,0x1f31ea3ed90d25fc,0x1b930d7bdfa1bb34,0x5344467a48113044,
|
255
|
+
/* 233 */ 0x70073170f25e6dfb,0xe385dc1a50114cc8,0x2348698ac8fc4f00,0x2a77a55284dd40d8,
|
256
|
+
/* 234 */ 0xfe06afe0c98c6ce4,0xc235df96dddfd6e4,0x1428d01e33bf1ed3,0x785768ec9300bdaf,
|
257
|
+
/* 235 */ 0x9702e57a91deb63b,0x61bdb8bfe5ce8b80,0x645b426f3d1d58ac,0x4804a82227a557bc,
|
258
|
+
/* 236 */ 0x8e57048ab44d2601,0x68d6501a4b3a6935,0xc39c9ec3f9e1c293,0x4172f257d4de63e2,
|
259
|
+
/* 237 */ 0xd368b450330c6401,0x040d3017418f2391,0x2c34bb6090b7d90d,0x16f649228fdfd51f,
|
260
|
+
/* 238 */ 0xbea6818e2b928ef5,0xe28ccf91cdc11e72,0x594aaa68e77a36cd,0x313034806c7ffd0f,
|
261
|
+
/* 239 */ 0x8a9d27ac2249bd65,0x19a3b464018e9512,0xc26ccff352b37ec7,0x056f68341d797b21,
|
262
|
+
/* 240 */ 0x5e79d6757efd2327,0xfabdbcb6553afe15,0xd3e7222c6eaf5a60,0x7046c76d4dae743b,
|
263
|
+
/* 241 */ 0x660be872b18d4a55,0x19992518574e1496,0xc103053a302bdcbb,0x3ed8e9800b218e8e,
|
264
|
+
/* 242 */ 0x7b0b9239fa75e03e,0xefe9fb684633c083,0x98a35fbe391a7793,0x6065510fe2d0fe34,
|
265
|
+
/* 243 */ 0x55cb668548abad0c,0xb4584548da87e527,0x2c43ecea0107c1dd,0x526028809372de35,
|
266
|
+
/* 244 */ 0x3415c56af9213b1f,0x5bee1a4d017e98db,0x13f6b105b5cf709b,0x5ff20e3482b29ab6,
|
267
|
+
/* 245 */ 0x0aa29c75cc2e6c90,0xfc7d73ca3a70e206,0x899fc38fc4b5c515,0x250386b124ffc207,
|
268
|
+
/* 246 */ 0x54ea28d5ae3d2b56,0x9913149dd6de60ce,0x16694fc58f06d6c1,0x46b23975eb018fc7,
|
269
|
+
/* 247 */ 0x470a6a0fb4b7b4e2,0x5d92475a8f7253de,0xabeee5b52fbd3adb,0x7fa20801a0806968,
|
270
|
+
/* 248 */ 0x76f3faf19f7714d2,0xb3e840c12f4660c3,0x0fb4cd8df212744e,0x4b065a251d3a2dd2,
|
271
|
+
/* 249 */ 0x5cebde383d77cd4a,0x6adf39df882c9cb1,0xa2dd242eb09af759,0x3147c0e50e5f6422,
|
272
|
+
/* 250 */ 0x164ca5101d1350db,0xf8d13479c33fc962,0xe640ce4d13e5da08,0x4bdee0c45061f8ba,
|
273
|
+
/* 251 */ 0xd7c46dc1a4edb1c9,0x5514d7b6437fd98a,0x58942f6bb2a1c00b,0x2dffb2ab1d70710e,
|
274
|
+
/* 252 */ 0xccdfcf2fc18b6d68,0xa8ebcba8b7806167,0x980697f95e2937e3,0x02fbba1cd0126e8c
|
275
|
+
};
|
276
|
+
|
277
|
+
#endif /* TABLE_LADDER_8K_H */
|