Bug Summary

File:src/lib/libcrypto/gost/streebog.c
Warning:line 1196, column 16
The right operand of '^' is a garbage value

Annotated Source Code

Press '?' to see keyboard shortcuts

clang -cc1 -cc1 -triple amd64-unknown-openbsd7.0 -analyze -disable-free -disable-llvm-verifier -discard-value-names -main-file-name streebog.c -analyzer-store=region -analyzer-opt-analyze-nested-blocks -analyzer-checker=core -analyzer-checker=apiModeling -analyzer-checker=unix -analyzer-checker=deadcode -analyzer-checker=security.insecureAPI.UncheckedReturn -analyzer-checker=security.insecureAPI.getpw -analyzer-checker=security.insecureAPI.gets -analyzer-checker=security.insecureAPI.mktemp -analyzer-checker=security.insecureAPI.mkstemp -analyzer-checker=security.insecureAPI.vfork -analyzer-checker=nullability.NullPassedToNonnull -analyzer-checker=nullability.NullReturnedFromNonnull -analyzer-output plist -w -setup-static-analyzer -mrelocation-model pic -pic-level 1 -pic-is-pie -mframe-pointer=all -relaxed-aliasing -fno-rounding-math -mconstructor-aliases -munwind-tables -target-cpu x86-64 -target-feature +retpoline-indirect-calls -target-feature +retpoline-indirect-branches -tune-cpu generic -debugger-tuning=gdb -fcoverage-compilation-dir=/usr/src/lib/libcrypto/obj -resource-dir /usr/local/lib/clang/13.0.0 -D LIBRESSL_INTERNAL -D LIBRESSL_CRYPTO_INTERNAL -D DSO_DLFCN -D HAVE_DLFCN_H -D HAVE_FUNOPEN -D OPENSSL_NO_HW_PADLOCK -I /usr/src/lib/libcrypto -I /usr/src/lib/libcrypto/asn1 -I /usr/src/lib/libcrypto/bio -I /usr/src/lib/libcrypto/bn -I /usr/src/lib/libcrypto/bytestring -I /usr/src/lib/libcrypto/dh -I /usr/src/lib/libcrypto/dsa -I /usr/src/lib/libcrypto/ec -I /usr/src/lib/libcrypto/ecdh -I /usr/src/lib/libcrypto/ecdsa -I /usr/src/lib/libcrypto/evp -I /usr/src/lib/libcrypto/hmac -I /usr/src/lib/libcrypto/modes -I /usr/src/lib/libcrypto/ocsp -I /usr/src/lib/libcrypto/rsa -I /usr/src/lib/libcrypto/x509 -I /usr/src/lib/libcrypto/obj -D AES_ASM -D BSAES_ASM -D VPAES_ASM -D OPENSSL_IA32_SSE2 -D RSA_ASM -D OPENSSL_BN_ASM_MONT -D OPENSSL_BN_ASM_MONT5 -D OPENSSL_BN_ASM_GF2m -D MD5_ASM -D GHASH_ASM -D RC4_MD5_ASM -D SHA1_ASM -D SHA256_ASM -D SHA512_ASM -D WHIRLPOOL_ASM -D OPENSSL_CPUID_OBJ -internal-isystem /usr/local/lib/clang/13.0.0/include -internal-externc-isystem /usr/include -O2 -fdebug-compilation-dir=/usr/src/lib/libcrypto/obj -ferror-limit 19 -fwrapv -D_RET_PROTECTOR -ret-protector -fgnuc-version=4.2.1 -vectorize-loops -vectorize-slp -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-valloc -fno-builtin-free -fno-builtin-strdup -fno-builtin-strndup -analyzer-output=html -faddrsig -D__GCC_HAVE_DWARF2_CFI_ASM=1 -o /home/ben/Projects/vmm/scan-build/2022-01-12-194120-40624-1 -x c /usr/src/lib/libcrypto/gost/streebog.c
1/* $OpenBSD: streebog.c,v 1.7 2021/11/09 18:40:21 bcook Exp $ */
2/*
3 * Copyright (c) 2014 Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
4 * Copyright (c) 2005-2006 Cryptocom LTD
5 *
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
8 * are met:
9 *
10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
12 *
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in
15 * the documentation and/or other materials provided with the
16 * distribution.
17 *
18 * 3. All advertising materials mentioning features or use of this
19 * software must display the following acknowledgment:
20 * "This product includes software developed by the OpenSSL Project
21 * for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
22 *
23 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
24 * endorse or promote products derived from this software without
25 * prior written permission. For written permission, please contact
26 * openssl-core@openssl.org.
27 *
28 * 5. Products derived from this software may not be called "OpenSSL"
29 * nor may "OpenSSL" appear in their names without prior written
30 * permission of the OpenSSL Project.
31 *
32 * 6. Redistributions of any form whatsoever must retain the following
33 * acknowledgment:
34 * "This product includes software developed by the OpenSSL Project
35 * for use in the OpenSSL Toolkit (http://www.openssl.org/)"
36 *
37 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
38 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
39 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
40 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
41 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
43 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
44 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
45 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
46 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
47 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
48 * OF THE POSSIBILITY OF SUCH DAMAGE.
49 * ====================================================================
50 */
51
52#include <endian.h>
53#include <stdlib.h>
54#include <string.h>
55
56#include <openssl/opensslconf.h>
57
58#ifndef OPENSSL_NO_GOST
59#include <openssl/crypto.h>
60#include <openssl/objects.h>
61#include <openssl/gost.h>
62
63#include "gost_locl.h"
64
65static const STREEBOG_LONG64unsigned long A_PI_table[8][256] = {
66 { /* 0 */
67 U64(0xd01f715b5c7ef8e6)0xd01f715b5c7ef8e6UL, U64(0x16fa240980778325)0x16fa240980778325UL,
68 U64(0xa8a42e857ee049c8)0xa8a42e857ee049c8UL, U64(0x6ac1068fa186465b)0x6ac1068fa186465bUL,
69 U64(0x6e417bd7a2e9320b)0x6e417bd7a2e9320bUL, U64(0x665c8167a437daab)0x665c8167a437daabUL,
70 U64(0x7666681aa89617f6)0x7666681aa89617f6UL, U64(0x4b959163700bdcf5)0x4b959163700bdcf5UL,
71 U64(0xf14be6b78df36248)0xf14be6b78df36248UL, U64(0xc585bd689a625cff)0xc585bd689a625cffUL,
72 U64(0x9557d7fca67d82cb)0x9557d7fca67d82cbUL, U64(0x89f0b969af6dd366)0x89f0b969af6dd366UL,
73 U64(0xb0833d48749f6c35)0xb0833d48749f6c35UL, U64(0xa1998c23b1ecbc7c)0xa1998c23b1ecbc7cUL,
74 U64(0x8d70c431ac02a736)0x8d70c431ac02a736UL, U64(0xd6dfbc2fd0a8b69e)0xd6dfbc2fd0a8b69eUL,
75 U64(0x37aeb3e551fa198b)0x37aeb3e551fa198bUL, U64(0x0b7d128a40b5cf9c)0x0b7d128a40b5cf9cUL,
76 U64(0x5a8f2008b5780cbc)0x5a8f2008b5780cbcUL, U64(0xedec882284e333e5)0xedec882284e333e5UL,
77 U64(0xd25fc177d3c7c2ce)0xd25fc177d3c7c2ceUL, U64(0x5e0f5d50b61778ec)0x5e0f5d50b61778ecUL,
78 U64(0x1d873683c0c24cb9)0x1d873683c0c24cb9UL, U64(0xad040bcbb45d208c)0xad040bcbb45d208cUL,
79 U64(0x2f89a0285b853c76)0x2f89a0285b853c76UL, U64(0x5732fff6791b8d58)0x5732fff6791b8d58UL,
80 U64(0x3e9311439ef6ec3f)0x3e9311439ef6ec3fUL, U64(0xc9183a809fd3c00f)0xc9183a809fd3c00fUL,
81 U64(0x83adf3f5260a01ee)0x83adf3f5260a01eeUL, U64(0xa6791941f4e8ef10)0xa6791941f4e8ef10UL,
82 U64(0x103ae97d0ca1cd5d)0x103ae97d0ca1cd5dUL, U64(0x2ce948121dee1b4a)0x2ce948121dee1b4aUL,
83 U64(0x39738421dbf2bf53)0x39738421dbf2bf53UL, U64(0x093da2a6cf0cf5b4)0x093da2a6cf0cf5b4UL,
84 U64(0xcd9847d89cbcb45f)0xcd9847d89cbcb45fUL, U64(0xf9561c078b2d8ae8)0xf9561c078b2d8ae8UL,
85 U64(0x9c6a755a6971777f)0x9c6a755a6971777fUL, U64(0xbc1ebaa0712ef0c5)0xbc1ebaa0712ef0c5UL,
86 U64(0x72e61542abf963a6)0x72e61542abf963a6UL, U64(0x78bb5fde229eb12e)0x78bb5fde229eb12eUL,
87 U64(0x14ba94250fceb90d)0x14ba94250fceb90dUL, U64(0x844d6697630e5282)0x844d6697630e5282UL,
88 U64(0x98ea08026a1e032f)0x98ea08026a1e032fUL, U64(0xf06bbea144217f5c)0xf06bbea144217f5cUL,
89 U64(0xdb6263d11ccb377a)0xdb6263d11ccb377aUL, U64(0x641c314b2b8ee083)0x641c314b2b8ee083UL,
90 U64(0x320e96ab9b4770cf)0x320e96ab9b4770cfUL, U64(0x1ee7deb986a96b85)0x1ee7deb986a96b85UL,
91 U64(0xe96cf57a878c47b5)0xe96cf57a878c47b5UL, U64(0xfdd6615f8842feb8)0xfdd6615f8842feb8UL,
92 U64(0xc83862965601dd1b)0xc83862965601dd1bUL, U64(0x2ea9f83e92572162)0x2ea9f83e92572162UL,
93 U64(0xf876441142ff97fc)0xf876441142ff97fcUL, U64(0xeb2c455608357d9d)0xeb2c455608357d9dUL,
94 U64(0x5612a7e0b0c9904c)0x5612a7e0b0c9904cUL, U64(0x6c01cbfb2d500823)0x6c01cbfb2d500823UL,
95 U64(0x4548a6a7fa037a2d)0x4548a6a7fa037a2dUL, U64(0xabc4c6bf388b6ef4)0xabc4c6bf388b6ef4UL,
96 U64(0xbade77d4fdf8bebd)0xbade77d4fdf8bebdUL, U64(0x799b07c8eb4cac3a)0x799b07c8eb4cac3aUL,
97 U64(0x0c9d87e805b19cf0)0x0c9d87e805b19cf0UL, U64(0xcb588aac106afa27)0xcb588aac106afa27UL,
98 U64(0xea0c1d40c1e76089)0xea0c1d40c1e76089UL, U64(0x2869354a1e816f1a)0x2869354a1e816f1aUL,
99 U64(0xff96d17307fbc490)0xff96d17307fbc490UL, U64(0x9f0a9d602f1a5043)0x9f0a9d602f1a5043UL,
100 U64(0x96373fc6e016a5f7)0x96373fc6e016a5f7UL, U64(0x5292dab8b3a6e41c)0x5292dab8b3a6e41cUL,
101 U64(0x9b8ae0382c752413)0x9b8ae0382c752413UL, U64(0x4f15ec3b7364a8a5)0x4f15ec3b7364a8a5UL,
102 U64(0x3fb349555724f12b)0x3fb349555724f12bUL, U64(0xc7c50d4415db66d7)0xc7c50d4415db66d7UL,
103 U64(0x92b7429ee379d1a7)0x92b7429ee379d1a7UL, U64(0xd37f99611a15dfda)0xd37f99611a15dfdaUL,
104 U64(0x231427c05e34a086)0x231427c05e34a086UL, U64(0xa439a96d7b51d538)0xa439a96d7b51d538UL,
105 U64(0xb403401077f01865)0xb403401077f01865UL, U64(0xdda2aea5901d7902)0xdda2aea5901d7902UL,
106 U64(0x0a5d4a9c8967d288)0x0a5d4a9c8967d288UL, U64(0xc265280adf660f93)0xc265280adf660f93UL,
107 U64(0x8bb0094520d4e94e)0x8bb0094520d4e94eUL, U64(0x2a29856691385532)0x2a29856691385532UL,
108 U64(0x42a833c5bf072941)0x42a833c5bf072941UL, U64(0x73c64d54622b7eb2)0x73c64d54622b7eb2UL,
109 U64(0x07e095624504536c)0x07e095624504536cUL, U64(0x8a905153e906f45a)0x8a905153e906f45aUL,
110 U64(0x6f6123c16b3b2f1f)0x6f6123c16b3b2f1fUL, U64(0xc6e55552dc097bc3)0xc6e55552dc097bc3UL,
111 U64(0x4468feb133d16739)0x4468feb133d16739UL, U64(0xe211e7f0c7398829)0xe211e7f0c7398829UL,
112 U64(0xa2f96419f7879b40)0xa2f96419f7879b40UL, U64(0x19074bdbc3ad38e9)0x19074bdbc3ad38e9UL,
113 U64(0xf4ebc3f9474e0b0c)0xf4ebc3f9474e0b0cUL, U64(0x43886bd376d53455)0x43886bd376d53455UL,
114 U64(0xd8028beb5aa01046)0xd8028beb5aa01046UL, U64(0x51f23282f5cdc320)0x51f23282f5cdc320UL,
115 U64(0xe7b1c2be0d84e16d)0xe7b1c2be0d84e16dUL, U64(0x081dfab006dee8a0)0x081dfab006dee8a0UL,
116 U64(0x3b33340d544b857b)0x3b33340d544b857bUL, U64(0x7f5bcabc679ae242)0x7f5bcabc679ae242UL,
117 U64(0x0edd37c48a08a6d8)0x0edd37c48a08a6d8UL, U64(0x81ed43d9a9b33bc6)0x81ed43d9a9b33bc6UL,
118 U64(0xb1a3655ebd4d7121)0xb1a3655ebd4d7121UL, U64(0x69a1eeb5e7ed6167)0x69a1eeb5e7ed6167UL,
119 U64(0xf6ab73d5c8f73124)0xf6ab73d5c8f73124UL, U64(0x1a67a3e185c61fd5)0x1a67a3e185c61fd5UL,
120 U64(0x2dc91004d43c065e)0x2dc91004d43c065eUL, U64(0x0240b02c8fb93a28)0x0240b02c8fb93a28UL,
121 U64(0x90f7f2b26cc0eb8f)0x90f7f2b26cc0eb8fUL, U64(0x3cd3a16f114fd617)0x3cd3a16f114fd617UL,
122 U64(0xaae49ea9f15973e0)0xaae49ea9f15973e0UL, U64(0x06c0cd748cd64e78)0x06c0cd748cd64e78UL,
123 U64(0xda423bc7d5192a6e)0xda423bc7d5192a6eUL, U64(0xc345701c16b41287)0xc345701c16b41287UL,
124 U64(0x6d2193ede4821537)0x6d2193ede4821537UL, U64(0xfcf639494190e3ac)0xfcf639494190e3acUL,
125 U64(0x7c3b228621f1c57e)0x7c3b228621f1c57eUL, U64(0xfb16ac2b0494b0c0)0xfb16ac2b0494b0c0UL,
126 U64(0xbf7e529a3745d7f9)0xbf7e529a3745d7f9UL, U64(0x6881b6a32e3f7c73)0x6881b6a32e3f7c73UL,
127 U64(0xca78d2bad9b8e733)0xca78d2bad9b8e733UL, U64(0xbbfe2fc2342aa3a9)0xbbfe2fc2342aa3a9UL,
128 U64(0x0dbddffecc6381e4)0x0dbddffecc6381e4UL, U64(0x70a6a56e2440598e)0x70a6a56e2440598eUL,
129 U64(0xe4d12a844befc651)0xe4d12a844befc651UL, U64(0x8c509c2765d0ba22)0x8c509c2765d0ba22UL,
130 U64(0xee8c6018c28814d9)0xee8c6018c28814d9UL, U64(0x17da7c1f49a59e31)0x17da7c1f49a59e31UL,
131 U64(0x609c4c1328e194d3)0x609c4c1328e194d3UL, U64(0xb3e3d57232f44b09)0xb3e3d57232f44b09UL,
132 U64(0x91d7aaa4a512f69b)0x91d7aaa4a512f69bUL, U64(0x0ffd6fd243dabbcc)0x0ffd6fd243dabbccUL,
133 U64(0x50d26a943c1fde34)0x50d26a943c1fde34UL, U64(0x6be15e9968545b4f)0x6be15e9968545b4fUL,
134 U64(0x94778fea6faf9fdf)0x94778fea6faf9fdfUL, U64(0x2b09dd7058ea4826)0x2b09dd7058ea4826UL,
135 U64(0x677cd9716de5c7bf)0x677cd9716de5c7bfUL, U64(0x49d5214fffb2e6dd)0x49d5214fffb2e6ddUL,
136 U64(0x0360e83a466b273c)0x0360e83a466b273cUL, U64(0x1fc786af4f7b7691)0x1fc786af4f7b7691UL,
137 U64(0xa0b9d435783ea168)0xa0b9d435783ea168UL, U64(0xd49f0c035f118cb6)0xd49f0c035f118cb6UL,
138 U64(0x01205816c9d21d14)0x01205816c9d21d14UL, U64(0xac2453dd7d8f3d98)0xac2453dd7d8f3d98UL,
139 U64(0x545217cc3f70aa64)0x545217cc3f70aa64UL, U64(0x26b4028e9489c9c2)0x26b4028e9489c9c2UL,
140 U64(0xdec2469fd6765e3e)0xdec2469fd6765e3eUL, U64(0x04807d58036f7450)0x04807d58036f7450UL,
141 U64(0xe5f17292823ddb45)0xe5f17292823ddb45UL, U64(0xf30b569b024a5860)0xf30b569b024a5860UL,
142 U64(0x62dcfc3fa758aefb)0x62dcfc3fa758aefbUL, U64(0xe84cad6c4e5e5aa1)0xe84cad6c4e5e5aa1UL,
143 U64(0xccb81fce556ea94b)0xccb81fce556ea94bUL, U64(0x53b282ae7a74f908)0x53b282ae7a74f908UL,
144 U64(0x1b47fbf74c1402c1)0x1b47fbf74c1402c1UL, U64(0x368eebf39828049f)0x368eebf39828049fUL,
145 U64(0x7afbeff2ad278b06)0x7afbeff2ad278b06UL, U64(0xbe5e0a8cfe97caed)0xbe5e0a8cfe97caedUL,
146 U64(0xcfd8f7f413058e77)0xcfd8f7f413058e77UL, U64(0xf78b2bc301252c30)0xf78b2bc301252c30UL,
147 U64(0x4d555c17fcdd928d)0x4d555c17fcdd928dUL, U64(0x5f2f05467fc565f8)0x5f2f05467fc565f8UL,
148 U64(0x24f4b2a21b30f3ea)0x24f4b2a21b30f3eaUL, U64(0x860dd6bbecb768aa)0x860dd6bbecb768aaUL,
149 U64(0x4c750401350f8f99)0x4c750401350f8f99UL, U64(0x0000000000000000)0x0000000000000000UL,
150 U64(0xecccd0344d312ef1)0xecccd0344d312ef1UL, U64(0xb5231806be220571)0xb5231806be220571UL,
151 U64(0xc105c030990d28af)0xc105c030990d28afUL, U64(0x653c695de25cfd97)0x653c695de25cfd97UL,
152 U64(0x159acc33c61ca419)0x159acc33c61ca419UL, U64(0xb89ec7f872418495)0xb89ec7f872418495UL,
153 U64(0xa9847693b73254dc)0xa9847693b73254dcUL, U64(0x58cf90243ac13694)0x58cf90243ac13694UL,
154 U64(0x59efc832f3132b80)0x59efc832f3132b80UL, U64(0x5c4fed7c39ae42c4)0x5c4fed7c39ae42c4UL,
155 U64(0x828dabe3efd81cfa)0x828dabe3efd81cfaUL, U64(0xd13f294d95ace5f2)0xd13f294d95ace5f2UL,
156 U64(0x7d1b7a90e823d86a)0x7d1b7a90e823d86aUL, U64(0xb643f03cf849224d)0xb643f03cf849224dUL,
157 U64(0x3df3f979d89dcb03)0x3df3f979d89dcb03UL, U64(0x7426d836272f2dde)0x7426d836272f2ddeUL,
158 U64(0xdfe21e891fa4432a)0xdfe21e891fa4432aUL, U64(0x3a136c1b9d99986f)0x3a136c1b9d99986fUL,
159 U64(0xfa36f43dcd46add4)0xfa36f43dcd46add4UL, U64(0xc025982650df35bb)0xc025982650df35bbUL,
160 U64(0x856d3e81aadc4f96)0x856d3e81aadc4f96UL, U64(0xc4a5e57e53b041eb)0xc4a5e57e53b041ebUL,
161 U64(0x4708168b75ba4005)0x4708168b75ba4005UL, U64(0xaf44bbe73be41aa4)0xaf44bbe73be41aa4UL,
162 U64(0x971767d029c4b8e3)0x971767d029c4b8e3UL, U64(0xb9be9feebb939981)0xb9be9feebb939981UL,
163 U64(0x215497ecd18d9aae)0x215497ecd18d9aaeUL, U64(0x316e7e91dd2c57f3)0x316e7e91dd2c57f3UL,
164 U64(0xcef8afe2dad79363)0xcef8afe2dad79363UL, U64(0x3853dc371220a247)0x3853dc371220a247UL,
165 U64(0x35ee03c9de4323a3)0x35ee03c9de4323a3UL, U64(0xe6919aa8c456fc79)0xe6919aa8c456fc79UL,
166 U64(0xe05157dc4880b201)0xe05157dc4880b201UL, U64(0x7bdbb7e464f59612)0x7bdbb7e464f59612UL,
167 U64(0x127a59518318f775)0x127a59518318f775UL, U64(0x332ecebd52956ddb)0x332ecebd52956ddbUL,
168 U64(0x8f30741d23bb9d1e)0x8f30741d23bb9d1eUL, U64(0xd922d3fd93720d52)0xd922d3fd93720d52UL,
169 U64(0x7746300c61440ae2)0x7746300c61440ae2UL, U64(0x25d4eab4d2e2eefe)0x25d4eab4d2e2eefeUL,
170 U64(0x75068020eefd30ca)0x75068020eefd30caUL, U64(0x135a01474acaea61)0x135a01474acaea61UL,
171 U64(0x304e268714fe4ae7)0x304e268714fe4ae7UL, U64(0xa519f17bb283c82c)0xa519f17bb283c82cUL,
172 U64(0xdc82f6b359cf6416)0xdc82f6b359cf6416UL, U64(0x5baf781e7caa11a8)0x5baf781e7caa11a8UL,
173 U64(0xb2c38d64fb26561d)0xb2c38d64fb26561dUL, U64(0x34ce5bdf17913eb7)0x34ce5bdf17913eb7UL,
174 U64(0x5d6fb56af07c5fd0)0x5d6fb56af07c5fd0UL, U64(0x182713cd0a7f25fd)0x182713cd0a7f25fdUL,
175 U64(0x9e2ac576e6c84d57)0x9e2ac576e6c84d57UL, U64(0x9aaab82ee5a73907)0x9aaab82ee5a73907UL,
176 U64(0xa3d93c0f3e558654)0xa3d93c0f3e558654UL, U64(0x7e7b92aaae48ff56)0x7e7b92aaae48ff56UL,
177 U64(0x872d8ead256575be)0x872d8ead256575beUL, U64(0x41c8dbfff96c0e7d)0x41c8dbfff96c0e7dUL,
178 U64(0x99ca5014a3cc1e3b)0x99ca5014a3cc1e3bUL, U64(0x40e883e930be1369)0x40e883e930be1369UL,
179 U64(0x1ca76e95091051ad)0x1ca76e95091051adUL, U64(0x4e35b42dbab6b5b1)0x4e35b42dbab6b5b1UL,
180 U64(0x05a0254ecabd6944)0x05a0254ecabd6944UL, U64(0xe1710fca8152af15)0xe1710fca8152af15UL,
181 U64(0xf22b0e8dcb984574)0xf22b0e8dcb984574UL, U64(0xb763a82a319b3f59)0xb763a82a319b3f59UL,
182 U64(0x63fca4296e8ab3ef)0x63fca4296e8ab3efUL, U64(0x9d4a2d4ca0a36a6b)0x9d4a2d4ca0a36a6bUL,
183 U64(0xe331bfe60eeb953d)0xe331bfe60eeb953dUL, U64(0xd5bf541596c391a2)0xd5bf541596c391a2UL,
184 U64(0xf5cb9bef8e9c1618)0xf5cb9bef8e9c1618UL, U64(0x46284e9dbc685d11)0x46284e9dbc685d11UL,
185 U64(0x2074cffa185f87ba)0x2074cffa185f87baUL, U64(0xbd3ee2b6b8fcedd1)0xbd3ee2b6b8fcedd1UL,
186 U64(0xae64e3f1f23607b0)0xae64e3f1f23607b0UL, U64(0xfeb68965ce29d984)0xfeb68965ce29d984UL,
187 U64(0x55724fdaf6a2b770)0x55724fdaf6a2b770UL, U64(0x29496d5cd753720e)0x29496d5cd753720eUL,
188 U64(0xa75941573d3af204)0xa75941573d3af204UL, U64(0x8e102c0bea69800a)0x8e102c0bea69800aUL,
189 U64(0x111ab16bc573d049)0x111ab16bc573d049UL, U64(0xd7ffe439197aab8a)0xd7ffe439197aab8aUL,
190 U64(0xefac380e0b5a09cd)0xefac380e0b5a09cdUL, U64(0x48f579593660fbc9)0x48f579593660fbc9UL,
191 U64(0x22347fd697e6bd92)0x22347fd697e6bd92UL, U64(0x61bc1405e13389c7)0x61bc1405e13389c7UL,
192 U64(0x4ab5c975b9d9c1e1)0x4ab5c975b9d9c1e1UL, U64(0x80cd1bcf606126d2)0x80cd1bcf606126d2UL,
193 U64(0x7186fd78ed92449a)0x7186fd78ed92449aUL, U64(0x93971a882aabccb3)0x93971a882aabccb3UL,
194 U64(0x88d0e17f66bfce72)0x88d0e17f66bfce72UL, U64(0x27945a985d5bd4d6)0x27945a985d5bd4d6UL
195 }, { /* 1 */
196 U64(0xde553f8c05a811c8)0xde553f8c05a811c8UL, U64(0x1906b59631b4f565)0x1906b59631b4f565UL,
197 U64(0x436e70d6b1964ff7)0x436e70d6b1964ff7UL, U64(0x36d343cb8b1e9d85)0x36d343cb8b1e9d85UL,
198 U64(0x843dfacc858aab5a)0x843dfacc858aab5aUL, U64(0xfdfc95c299bfc7f9)0xfdfc95c299bfc7f9UL,
199 U64(0x0f634bdea1d51fa2)0x0f634bdea1d51fa2UL, U64(0x6d458b3b76efb3cd)0x6d458b3b76efb3cdUL,
200 U64(0x85c3f77cf8593f80)0x85c3f77cf8593f80UL, U64(0x3c91315fbe737cb2)0x3c91315fbe737cb2UL,
201 U64(0x2148b03366ace398)0x2148b03366ace398UL, U64(0x18f8b8264c6761bf)0x18f8b8264c6761bfUL,
202 U64(0xc830c1c495c9fb0f)0xc830c1c495c9fb0fUL, U64(0x981a76102086a0aa)0x981a76102086a0aaUL,
203 U64(0xaa16012142f35760)0xaa16012142f35760UL, U64(0x35cc54060c763cf6)0x35cc54060c763cf6UL,
204 U64(0x42907d66cc45db2d)0x42907d66cc45db2dUL, U64(0x8203d44b965af4bc)0x8203d44b965af4bcUL,
205 U64(0x3d6f3cefc3a0e868)0x3d6f3cefc3a0e868UL, U64(0xbc73ff69d292bda7)0xbc73ff69d292bda7UL,
206 U64(0x8722ed0102e20a29)0x8722ed0102e20a29UL, U64(0x8f8185e8cd34deb7)0x8f8185e8cd34deb7UL,
207 U64(0x9b0561dda7ee01d9)0x9b0561dda7ee01d9UL, U64(0x5335a0193227fad6)0x5335a0193227fad6UL,
208 U64(0xc9cecc74e81a6fd5)0xc9cecc74e81a6fd5UL, U64(0x54f5832e5c2431ea)0x54f5832e5c2431eaUL,
209 U64(0x99e47ba05d553470)0x99e47ba05d553470UL, U64(0xf7bee756acd226ce)0xf7bee756acd226ceUL,
210 U64(0x384e05a5571816fd)0x384e05a5571816fdUL, U64(0xd1367452a47d0e6a)0xd1367452a47d0e6aUL,
211 U64(0xf29fde1c386ad85b)0xf29fde1c386ad85bUL, U64(0x320c77316275f7ca)0x320c77316275f7caUL,
212 U64(0xd0c879e2d9ae9ab0)0xd0c879e2d9ae9ab0UL, U64(0xdb7406c69110ef5d)0xdb7406c69110ef5dUL,
213 U64(0x45505e51a2461011)0x45505e51a2461011UL, U64(0xfc029872e46c5323)0xfc029872e46c5323UL,
214 U64(0xfa3cb6f5f7bc0cc5)0xfa3cb6f5f7bc0cc5UL, U64(0x031f17cd8768a173)0x031f17cd8768a173UL,
215 U64(0xbd8df2d9af41297d)0xbd8df2d9af41297dUL, U64(0x9d3b4f5ab43e5e3f)0x9d3b4f5ab43e5e3fUL,
216 U64(0x4071671b36feee84)0x4071671b36feee84UL, U64(0x716207e7d3e3b83d)0x716207e7d3e3b83dUL,
217 U64(0x48d20ff2f9283a1a)0x48d20ff2f9283a1aUL, U64(0x27769eb4757cbc7e)0x27769eb4757cbc7eUL,
218 U64(0x5c56ebc793f2e574)0x5c56ebc793f2e574UL, U64(0xa48b474f9ef5dc18)0xa48b474f9ef5dc18UL,
219 U64(0x52cbada94ff46e0c)0x52cbada94ff46e0cUL, U64(0x60c7da982d8199c6)0x60c7da982d8199c6UL,
220 U64(0x0e9d466edc068b78)0x0e9d466edc068b78UL, U64(0x4eec2175eaf865fc)0x4eec2175eaf865fcUL,
221 U64(0x550b8e9e21f7a530)0x550b8e9e21f7a530UL, U64(0x6b7ba5bc653fec2b)0x6b7ba5bc653fec2bUL,
222 U64(0x5eb7f1ba6949d0dd)0x5eb7f1ba6949d0ddUL, U64(0x57ea94e3db4c9099)0x57ea94e3db4c9099UL,
223 U64(0xf640eae6d101b214)0xf640eae6d101b214UL, U64(0xdd4a284182c0b0bb)0xdd4a284182c0b0bbUL,
224 U64(0xff1d8fbf6304f250)0xff1d8fbf6304f250UL, U64(0xb8accb933bf9d7e8)0xb8accb933bf9d7e8UL,
225 U64(0xe8867c478eb68c4d)0xe8867c478eb68c4dUL, U64(0x3f8e2692391bddc1)0x3f8e2692391bddc1UL,
226 U64(0xcb2fd60912a15a7c)0xcb2fd60912a15a7cUL, U64(0xaec935dbab983d2f)0xaec935dbab983d2fUL,
227 U64(0xf55ffd2b56691367)0xf55ffd2b56691367UL, U64(0x80e2ce366ce1c115)0x80e2ce366ce1c115UL,
228 U64(0x179bf3f8edb27e1d)0x179bf3f8edb27e1dUL, U64(0x01fe0db07dd394da)0x01fe0db07dd394daUL,
229 U64(0xda8a0b76ecc37b87)0xda8a0b76ecc37b87UL, U64(0x44ae53e1df9584cb)0x44ae53e1df9584cbUL,
230 U64(0xb310b4b77347a205)0xb310b4b77347a205UL, U64(0xdfab323c787b8512)0xdfab323c787b8512UL,
231 U64(0x3b511268d070b78e)0x3b511268d070b78eUL, U64(0x65e6e3d2b9396753)0x65e6e3d2b9396753UL,
232 U64(0x6864b271e2574d58)0x6864b271e2574d58UL, U64(0x259784c98fc789d7)0x259784c98fc789d7UL,
233 U64(0x02e11a7dfabb35a9)0x02e11a7dfabb35a9UL, U64(0x8841a6dfa337158b)0x8841a6dfa337158bUL,
234 U64(0x7ade78c39b5dcdd0)0x7ade78c39b5dcdd0UL, U64(0xb7cf804d9a2cc84a)0xb7cf804d9a2cc84aUL,
235 U64(0x20b6bd831b7f7742)0x20b6bd831b7f7742UL, U64(0x75bd331d3a88d272)0x75bd331d3a88d272UL,
236 U64(0x418f6aab4b2d7a5e)0x418f6aab4b2d7a5eUL, U64(0xd9951cbb6babdaf4)0xd9951cbb6babdaf4UL,
237 U64(0xb6318dfde7ff5c90)0xb6318dfde7ff5c90UL, U64(0x1f389b112264aa83)0x1f389b112264aa83UL,
238 U64(0x492c024284fbaec0)0x492c024284fbaec0UL, U64(0xe33a0363c608f9a0)0xe33a0363c608f9a0UL,
239 U64(0x2688930408af28a4)0x2688930408af28a4UL, U64(0xc7538a1a341ce4ad)0xc7538a1a341ce4adUL,
240 U64(0x5da8e677ee2171ae)0x5da8e677ee2171aeUL, U64(0x8c9e92254a5c7fc4)0x8c9e92254a5c7fc4UL,
241 U64(0x63d8cd55aae938b5)0x63d8cd55aae938b5UL, U64(0x29ebd8daa97a3706)0x29ebd8daa97a3706UL,
242 U64(0x959827b37be88aa1)0x959827b37be88aa1UL, U64(0x1484e4356adadf6e)0x1484e4356adadf6eUL,
243 U64(0xa7945082199d7d6b)0xa7945082199d7d6bUL, U64(0xbf6ce8a455fa1cd4)0xbf6ce8a455fa1cd4UL,
244 U64(0x9cc542eac9edcae5)0x9cc542eac9edcae5UL, U64(0x79c16f0e1c356ca3)0x79c16f0e1c356ca3UL,
245 U64(0x89bfab6fdee48151)0x89bfab6fdee48151UL, U64(0xd4174d1830c5f0ff)0xd4174d1830c5f0ffUL,
246 U64(0x9258048415eb419d)0x9258048415eb419dUL, U64(0x6139d72850520d1c)0x6139d72850520d1cUL,
247 U64(0x6a85a80c18ec78f1)0x6a85a80c18ec78f1UL, U64(0xcd11f88e0171059a)0xcd11f88e0171059aUL,
248 U64(0xcceff53e7ca29140)0xcceff53e7ca29140UL, U64(0xd229639f2315af19)0xd229639f2315af19UL,
249 U64(0x90b91ef9ef507434)0x90b91ef9ef507434UL, U64(0x5977d28d074a1be1)0x5977d28d074a1be1UL,
250 U64(0x311360fce51d56b9)0x311360fce51d56b9UL, U64(0xc093a92d5a1f2f91)0xc093a92d5a1f2f91UL,
251 U64(0x1a19a25bb6dc5416)0x1a19a25bb6dc5416UL, U64(0xeb996b8a09de2d3e)0xeb996b8a09de2d3eUL,
252 U64(0xfee3820f1ed7668a)0xfee3820f1ed7668aUL, U64(0xd7085ad5b7ad518c)0xd7085ad5b7ad518cUL,
253 U64(0x7fff41890fe53345)0x7fff41890fe53345UL, U64(0xec5948bd67dde602)0xec5948bd67dde602UL,
254 U64(0x2fd5f65dbaaa68e0)0x2fd5f65dbaaa68e0UL, U64(0xa5754affe32648c2)0xa5754affe32648c2UL,
255 U64(0xf8ddac880d07396c)0xf8ddac880d07396cUL, U64(0x6fa491468c548664)0x6fa491468c548664UL,
256 U64(0x0c7c5c1326bdbed1)0x0c7c5c1326bdbed1UL, U64(0x4a33158f03930fb3)0x4a33158f03930fb3UL,
257 U64(0x699abfc19f84d982)0x699abfc19f84d982UL, U64(0xe4fa2054a80b329c)0xe4fa2054a80b329cUL,
258 U64(0x6707f9af438252fa)0x6707f9af438252faUL, U64(0x08a368e9cfd6d49e)0x08a368e9cfd6d49eUL,
259 U64(0x47b1442c58fd25b8)0x47b1442c58fd25b8UL, U64(0xbbb3dc5ebc91769b)0xbbb3dc5ebc91769bUL,
260 U64(0x1665fe489061eac7)0x1665fe489061eac7UL, U64(0x33f27a811fa66310)0x33f27a811fa66310UL,
261 U64(0x93a609346838d547)0x93a609346838d547UL, U64(0x30ed6d4c98cec263)0x30ed6d4c98cec263UL,
262 U64(0x1dd9816cd8df9f2a)0x1dd9816cd8df9f2aUL, U64(0x94662a03063b1e7b)0x94662a03063b1e7bUL,
263 U64(0x83fdd9fbeb896066)0x83fdd9fbeb896066UL, U64(0x7b207573e68e590a)0x7b207573e68e590aUL,
264 U64(0x5f49fc0a149a4407)0x5f49fc0a149a4407UL, U64(0x343259b671a5a82c)0x343259b671a5a82cUL,
265 U64(0xfbc2bb458a6f981f)0xfbc2bb458a6f981fUL, U64(0xc272b350a0a41a38)0xc272b350a0a41a38UL,
266 U64(0x3aaf1fd8ada32354)0x3aaf1fd8ada32354UL, U64(0x6cbb868b0b3c2717)0x6cbb868b0b3c2717UL,
267 U64(0xa2b569c88d2583fe)0xa2b569c88d2583feUL, U64(0xf180c9d1bf027928)0xf180c9d1bf027928UL,
268 U64(0xaf37386bd64ba9f5)0xaf37386bd64ba9f5UL, U64(0x12bacab2790a8088)0x12bacab2790a8088UL,
269 U64(0x4c0d3b0810435055)0x4c0d3b0810435055UL, U64(0xb2eeb9070e9436df)0xb2eeb9070e9436dfUL,
270 U64(0xc5b29067cea7d104)0xc5b29067cea7d104UL, U64(0xdcb425f1ff132461)0xdcb425f1ff132461UL,
271 U64(0x4f122cc5972bf126)0x4f122cc5972bf126UL, U64(0xac282fa651230886)0xac282fa651230886UL,
272 U64(0xe7e537992f6393ef)0xe7e537992f6393efUL, U64(0xe61b3a2952b00735)0xe61b3a2952b00735UL,
273 U64(0x709c0a57ae302ce7)0x709c0a57ae302ce7UL, U64(0xe02514ae416058d3)0xe02514ae416058d3UL,
274 U64(0xc44c9dd7b37445de)0xc44c9dd7b37445deUL, U64(0x5a68c5408022ba92)0x5a68c5408022ba92UL,
275 U64(0x1c278cdca50c0bf0)0x1c278cdca50c0bf0UL, U64(0x6e5a9cf6f18712be)0x6e5a9cf6f18712beUL,
276 U64(0x86dce0b17f319ef3)0x86dce0b17f319ef3UL, U64(0x2d34ec2040115d49)0x2d34ec2040115d49UL,
277 U64(0x4bcd183f7e409b69)0x4bcd183f7e409b69UL, U64(0x2815d56ad4a9a3dc)0x2815d56ad4a9a3dcUL,
278 U64(0x24698979f2141d0d)0x24698979f2141d0dUL, U64(0x0000000000000000)0x0000000000000000UL,
279 U64(0x1ec696a15fb73e59)0x1ec696a15fb73e59UL, U64(0xd86b110b16784e2e)0xd86b110b16784e2eUL,
280 U64(0x8e7f8858b0e74a6d)0x8e7f8858b0e74a6dUL, U64(0x063e2e8713d05fe6)0x063e2e8713d05fe6UL,
281 U64(0xe2c40ed3bbdb6d7a)0xe2c40ed3bbdb6d7aUL, U64(0xb1f1aeca89fc97ac)0xb1f1aeca89fc97acUL,
282 U64(0xe1db191e3cb3cc09)0xe1db191e3cb3cc09UL, U64(0x6418ee62c4eaf389)0x6418ee62c4eaf389UL,
283 U64(0xc6ad87aa49cf7077)0xc6ad87aa49cf7077UL, U64(0xd6f65765ca7ec556)0xd6f65765ca7ec556UL,
284 U64(0x9afb6c6dda3d9503)0x9afb6c6dda3d9503UL, U64(0x7ce05644888d9236)0x7ce05644888d9236UL,
285 U64(0x8d609f95378feb1e)0x8d609f95378feb1eUL, U64(0x23a9aa4e9c17d631)0x23a9aa4e9c17d631UL,
286 U64(0x6226c0e5d73aac6f)0x6226c0e5d73aac6fUL, U64(0x56149953a69f0443)0x56149953a69f0443UL,
287 U64(0xeeb852c09d66d3ab)0xeeb852c09d66d3abUL, U64(0x2b0ac2a753c102af)0x2b0ac2a753c102afUL,
288 U64(0x07c023376e03cb3c)0x07c023376e03cb3cUL, U64(0x2ccae1903dc2c993)0x2ccae1903dc2c993UL,
289 U64(0xd3d76e2f5ec63bc3)0xd3d76e2f5ec63bc3UL, U64(0x9e2458973356ff4c)0x9e2458973356ff4cUL,
290 U64(0xa66a5d32644ee9b1)0xa66a5d32644ee9b1UL, U64(0x0a427294356de137)0x0a427294356de137UL,
291 U64(0x783f62be61e6f879)0x783f62be61e6f879UL, U64(0x1344c70204d91452)0x1344c70204d91452UL,
292 U64(0x5b96c8f0fdf12e48)0x5b96c8f0fdf12e48UL, U64(0xa90916ecc59bf613)0xa90916ecc59bf613UL,
293 U64(0xbe92e5142829880e)0xbe92e5142829880eUL, U64(0x727d102a548b194e)0x727d102a548b194eUL,
294 U64(0x1be7afebcb0fc0cc)0x1be7afebcb0fc0ccUL, U64(0x3e702b2244c8491b)0x3e702b2244c8491bUL,
295 U64(0xd5e940a84d166425)0xd5e940a84d166425UL, U64(0x66f9f41f3e51c620)0x66f9f41f3e51c620UL,
296 U64(0xabe80c913f20c3ba)0xabe80c913f20c3baUL, U64(0xf07ec461c2d1edf2)0xf07ec461c2d1edf2UL,
297 U64(0xf361d3ac45b94c81)0xf361d3ac45b94c81UL, U64(0x0521394a94b8fe95)0x0521394a94b8fe95UL,
298 U64(0xadd622162cf09c5c)0xadd622162cf09c5cUL, U64(0xe97871f7f3651897)0xe97871f7f3651897UL,
299 U64(0xf4a1f09b2bba87bd)0xf4a1f09b2bba87bdUL, U64(0x095d6559b2054044)0x095d6559b2054044UL,
300 U64(0x0bbc7f2448be75ed)0x0bbc7f2448be75edUL, U64(0x2af4cf172e129675)0x2af4cf172e129675UL,
301 U64(0x157ae98517094bb4)0x157ae98517094bb4UL, U64(0x9fda55274e856b96)0x9fda55274e856b96UL,
302 U64(0x914713499283e0ee)0x914713499283e0eeUL, U64(0xb952c623462a4332)0xb952c623462a4332UL,
303 U64(0x74433ead475b46a8)0x74433ead475b46a8UL, U64(0x8b5eb112245fb4f8)0x8b5eb112245fb4f8UL,
304 U64(0xa34b6478f0f61724)0xa34b6478f0f61724UL, U64(0x11a5dd7ffe6221fb)0x11a5dd7ffe6221fbUL,
305 U64(0xc16da49d27ccbb4b)0xc16da49d27ccbb4bUL, U64(0x76a224d0bde07301)0x76a224d0bde07301UL,
306 U64(0x8aa0bca2598c2022)0x8aa0bca2598c2022UL, U64(0x4df336b86d90c48f)0x4df336b86d90c48fUL,
307 U64(0xea67663a740db9e4)0xea67663a740db9e4UL, U64(0xef465f70e0b54771)0xef465f70e0b54771UL,
308 U64(0x39b008152acb8227)0x39b008152acb8227UL, U64(0x7d1e5bf4f55e06ec)0x7d1e5bf4f55e06ecUL,
309 U64(0x105bd0cf83b1b521)0x105bd0cf83b1b521UL, U64(0x775c2960c033e7db)0x775c2960c033e7dbUL,
310 U64(0x7e014c397236a79f)0x7e014c397236a79fUL, U64(0x811cc386113255cf)0x811cc386113255cfUL,
311 U64(0xeda7450d1a0e72d8)0xeda7450d1a0e72d8UL, U64(0x5889df3d7a998f3b)0x5889df3d7a998f3bUL,
312 U64(0x2e2bfbedc779fc3a)0x2e2bfbedc779fc3aUL, U64(0xce0eef438619a4e9)0xce0eef438619a4e9UL,
313 U64(0x372d4e7bf6cd095f)0x372d4e7bf6cd095fUL, U64(0x04df34fae96b6a4f)0x04df34fae96b6a4fUL,
314 U64(0xf923a13870d4adb6)0xf923a13870d4adb6UL, U64(0xa1aa7e050a4d228d)0xa1aa7e050a4d228dUL,
315 U64(0xa8f71b5cb84862c9)0xa8f71b5cb84862c9UL, U64(0xb52e9a306097fde3)0xb52e9a306097fde3UL,
316 U64(0x0d8251a35b6e2a0b)0x0d8251a35b6e2a0bUL, U64(0x2257a7fee1c442eb)0x2257a7fee1c442ebUL,
317 U64(0x73831d9a29588d94)0x73831d9a29588d94UL, U64(0x51d4ba64c89ccf7f)0x51d4ba64c89ccf7fUL,
318 U64(0x502ab7d4b54f5ba5)0x502ab7d4b54f5ba5UL, U64(0x97793dce8153bf08)0x97793dce8153bf08UL,
319 U64(0xe5042de4d5d8a646)0xe5042de4d5d8a646UL, U64(0x9687307efc802bd2)0x9687307efc802bd2UL,
320 U64(0xa05473b5779eb657)0xa05473b5779eb657UL, U64(0xb4d097801d446939)0xb4d097801d446939UL,
321 U64(0xcff0e2f3fbca3033)0xcff0e2f3fbca3033UL, U64(0xc38cbee0dd778ee2)0xc38cbee0dd778ee2UL,
322 U64(0x464f499c252eb162)0x464f499c252eb162UL, U64(0xcad1dbb96f72cea6)0xcad1dbb96f72cea6UL,
323 U64(0xba4dd1eec142e241)0xba4dd1eec142e241UL, U64(0xb00fa37af42f0376)0xb00fa37af42f0376UL
324 }, { /* 2 */
325 U64(0xcce4cd3aa968b245)0xcce4cd3aa968b245UL, U64(0x089d5484e80b7faf)0x089d5484e80b7fafUL,
326 U64(0x638246c1b3548304)0x638246c1b3548304UL, U64(0xd2fe0ec8c2355492)0xd2fe0ec8c2355492UL,
327 U64(0xa7fbdf7ff2374eee)0xa7fbdf7ff2374eeeUL, U64(0x4df1600c92337a16)0x4df1600c92337a16UL,
328 U64(0x84e503ea523b12fb)0x84e503ea523b12fbUL, U64(0x0790bbfd53ab0c4a)0x0790bbfd53ab0c4aUL,
329 U64(0x198a780f38f6ea9d)0x198a780f38f6ea9dUL, U64(0x2ab30c8f55ec48cb)0x2ab30c8f55ec48cbUL,
330 U64(0xe0f7fed6b2c49db5)0xe0f7fed6b2c49db5UL, U64(0xb6ecf3f422cadbdc)0xb6ecf3f422cadbdcUL,
331 U64(0x409c9a541358df11)0x409c9a541358df11UL, U64(0xd3ce8a56dfde3fe3)0xd3ce8a56dfde3fe3UL,
332 U64(0xc3e9224312c8c1a0)0xc3e9224312c8c1a0UL, U64(0x0d6dfa58816ba507)0x0d6dfa58816ba507UL,
333 U64(0xddf3e1b179952777)0xddf3e1b179952777UL, U64(0x04c02a42748bb1d9)0x04c02a42748bb1d9UL,
334 U64(0x94c2abff9f2decb8)0x94c2abff9f2decb8UL, U64(0x4f91752da8f8acf4)0x4f91752da8f8acf4UL,
335 U64(0x78682befb169bf7b)0x78682befb169bf7bUL, U64(0xe1c77a48af2ff6c4)0xe1c77a48af2ff6c4UL,
336 U64(0x0c5d7ec69c80ce76)0x0c5d7ec69c80ce76UL, U64(0x4cc1e4928fd81167)0x4cc1e4928fd81167UL,
337 U64(0xfeed3d24d9997b62)0xfeed3d24d9997b62UL, U64(0x518bb6dfc3a54a23)0x518bb6dfc3a54a23UL,
338 U64(0x6dbf2d26151f9b90)0x6dbf2d26151f9b90UL, U64(0xb5bc624b05ea664f)0xb5bc624b05ea664fUL,
339 U64(0xe86aaa525acfe21a)0xe86aaa525acfe21aUL, U64(0x4801ced0fb53a0be)0x4801ced0fb53a0beUL,
340 U64(0xc91463e6c00868ed)0xc91463e6c00868edUL, U64(0x1027a815cd16fe43)0x1027a815cd16fe43UL,
341 U64(0xf67069a0319204cd)0xf67069a0319204cdUL, U64(0xb04ccc976c8abce7)0xb04ccc976c8abce7UL,
342 U64(0xc0b9b3fc35e87c33)0xc0b9b3fc35e87c33UL, U64(0xf380c77c58f2de65)0xf380c77c58f2de65UL,
343 U64(0x50bb3241de4e2152)0x50bb3241de4e2152UL, U64(0xdf93f490435ef195)0xdf93f490435ef195UL,
344 U64(0xf1e0d25d62390887)0xf1e0d25d62390887UL, U64(0xaf668bfb1a3c3141)0xaf668bfb1a3c3141UL,
345 U64(0xbc11b251f00a7291)0xbc11b251f00a7291UL, U64(0x73a5eed47e427d47)0x73a5eed47e427d47UL,
346 U64(0x25bee3f6ee4c3b2e)0x25bee3f6ee4c3b2eUL, U64(0x43cc0beb34786282)0x43cc0beb34786282UL,
347 U64(0xc824e778dde3039c)0xc824e778dde3039cUL, U64(0xf97d86d98a327728)0xf97d86d98a327728UL,
348 U64(0xf2b043e24519b514)0xf2b043e24519b514UL, U64(0xe297ebf7880f4b57)0xe297ebf7880f4b57UL,
349 U64(0x3a94a49a98fab688)0x3a94a49a98fab688UL, U64(0x868516cb68f0c419)0x868516cb68f0c419UL,
350 U64(0xeffa11af0964ee50)0xeffa11af0964ee50UL, U64(0xa4ab4ec0d517f37d)0xa4ab4ec0d517f37dUL,
351 U64(0xa9c6b498547c567a)0xa9c6b498547c567aUL, U64(0x8e18424f80fbbbb6)0x8e18424f80fbbbb6UL,
352 U64(0x0bcdc53bcf2bc23c)0x0bcdc53bcf2bc23cUL, U64(0x137739aaea3643d0)0x137739aaea3643d0UL,
353 U64(0x2c1333ec1bac2ff0)0x2c1333ec1bac2ff0UL, U64(0x8d48d3f0a7db0625)0x8d48d3f0a7db0625UL,
354 U64(0x1e1ac3f26b5de6d7)0x1e1ac3f26b5de6d7UL, U64(0xf520f81f16b2b95e)0xf520f81f16b2b95eUL,
355 U64(0x9f0f6ec450062e84)0x9f0f6ec450062e84UL, U64(0x0130849e1deb6b71)0x0130849e1deb6b71UL,
356 U64(0xd45e31ab8c7533a9)0xd45e31ab8c7533a9UL, U64(0x652279a2fd14e43f)0x652279a2fd14e43fUL,
357 U64(0x3209f01e70f1c927)0x3209f01e70f1c927UL, U64(0xbe71a770cac1a473)0xbe71a770cac1a473UL,
358 U64(0x0e3d6be7a64b1894)0x0e3d6be7a64b1894UL, U64(0x7ec8148cff29d840)0x7ec8148cff29d840UL,
359 U64(0xcb7476c7fac3be0f)0xcb7476c7fac3be0fUL, U64(0x72956a4a63a91636)0x72956a4a63a91636UL,
360 U64(0x37f95ec21991138f)0x37f95ec21991138fUL, U64(0x9e3fea5a4ded45f5)0x9e3fea5a4ded45f5UL,
361 U64(0x7b38ba50964902e8)0x7b38ba50964902e8UL, U64(0x222e580bbde73764)0x222e580bbde73764UL,
362 U64(0x61e253e0899f55e6)0x61e253e0899f55e6UL, U64(0xfc8d2805e352ad80)0xfc8d2805e352ad80UL,
363 U64(0x35994be3235ac56d)0x35994be3235ac56dUL, U64(0x09add01af5e014de)0x09add01af5e014deUL,
364 U64(0x5e8659a6780539c6)0x5e8659a6780539c6UL, U64(0xb17c48097161d796)0xb17c48097161d796UL,
365 U64(0x026015213acbd6e2)0x026015213acbd6e2UL, U64(0xd1ae9f77e515e901)0xd1ae9f77e515e901UL,
366 U64(0xb7dc776a3f21b0ad)0xb7dc776a3f21b0adUL, U64(0xaba6a1b96eb78098)0xaba6a1b96eb78098UL,
367 U64(0x9bcf4486248d9f5d)0x9bcf4486248d9f5dUL, U64(0x582666c536455efd)0x582666c536455efdUL,
368 U64(0xfdbdac9bfeb9c6f1)0xfdbdac9bfeb9c6f1UL, U64(0xc47999be4163cdea)0xc47999be4163cdeaUL,
369 U64(0x765540081722a7ef)0x765540081722a7efUL, U64(0x3e548ed8ec710751)0x3e548ed8ec710751UL,
370 U64(0x3d041f67cb51bac2)0x3d041f67cb51bac2UL, U64(0x7958af71ac82d40a)0x7958af71ac82d40aUL,
371 U64(0x36c9da5c047a78fe)0x36c9da5c047a78feUL, U64(0xed9a048e33af38b2)0xed9a048e33af38b2UL,
372 U64(0x26ee7249c96c86bd)0x26ee7249c96c86bdUL, U64(0x900281bdeba65d61)0x900281bdeba65d61UL,
373 U64(0x11172c8bd0fd9532)0x11172c8bd0fd9532UL, U64(0xea0abf73600434f8)0xea0abf73600434f8UL,
374 U64(0x42fc8f75299309f3)0x42fc8f75299309f3UL, U64(0x34a9cf7d3eb1ae1c)0x34a9cf7d3eb1ae1cUL,
375 U64(0x2b838811480723ba)0x2b838811480723baUL, U64(0x5ce64c8742ceef24)0x5ce64c8742ceef24UL,
376 U64(0x1adae9b01fd6570e)0x1adae9b01fd6570eUL, U64(0x3c349bf9d6bad1b3)0x3c349bf9d6bad1b3UL,
377 U64(0x82453c891c7b75c0)0x82453c891c7b75c0UL, U64(0x97923a40b80d512b)0x97923a40b80d512bUL,
378 U64(0x4a61dbf1c198765c)0x4a61dbf1c198765cUL, U64(0xb48ce6d518010d3e)0xb48ce6d518010d3eUL,
379 U64(0xcfb45c858e480fd6)0xcfb45c858e480fd6UL, U64(0xd933cbf30d1e96ae)0xd933cbf30d1e96aeUL,
380 U64(0xd70ea014ab558e3a)0xd70ea014ab558e3aUL, U64(0xc189376228031742)0xc189376228031742UL,
381 U64(0x9262949cd16d8b83)0x9262949cd16d8b83UL, U64(0xeb3a3bed7def5f89)0xeb3a3bed7def5f89UL,
382 U64(0x49314a4ee6b8cbcf)0x49314a4ee6b8cbcfUL, U64(0xdcc3652f647e4c06)0xdcc3652f647e4c06UL,
383 U64(0xda635a4c2a3e2b3d)0xda635a4c2a3e2b3dUL, U64(0x470c21a940f3d35b)0x470c21a940f3d35bUL,
384 U64(0x315961a157d174b4)0x315961a157d174b4UL, U64(0x6672e81dda3459ac)0x6672e81dda3459acUL,
385 U64(0x5b76f77a1165e36e)0x5b76f77a1165e36eUL, U64(0x445cb01667d36ec8)0x445cb01667d36ec8UL,
386 U64(0xc5491d205c88a69b)0xc5491d205c88a69bUL, U64(0x456c34887a3805b9)0x456c34887a3805b9UL,
387 U64(0xffddb9bac4721013)0xffddb9bac4721013UL, U64(0x99af51a71e4649bf)0x99af51a71e4649bfUL,
388 U64(0xa15be01cbc7729d5)0xa15be01cbc7729d5UL, U64(0x52db2760e485f7b0)0x52db2760e485f7b0UL,
389 U64(0x8c78576eba306d54)0x8c78576eba306d54UL, U64(0xae560f6507d75a30)0xae560f6507d75a30UL,
390 U64(0x95f22f6182c687c9)0x95f22f6182c687c9UL, U64(0x71c5fbf54489aba5)0x71c5fbf54489aba5UL,
391 U64(0xca44f259e728d57e)0xca44f259e728d57eUL, U64(0x88b87d2ccebbdc8d)0x88b87d2ccebbdc8dUL,
392 U64(0xbab18d32be4a15aa)0xbab18d32be4a15aaUL, U64(0x8be8ec93e99b611e)0x8be8ec93e99b611eUL,
393 U64(0x17b713e89ebdf209)0x17b713e89ebdf209UL, U64(0xb31c5d284baa0174)0xb31c5d284baa0174UL,
394 U64(0xeeca9531148f8521)0xeeca9531148f8521UL, U64(0xb8d198138481c348)0xb8d198138481c348UL,
395 U64(0x8988f9b2d350b7fc)0x8988f9b2d350b7fcUL, U64(0xb9e11c8d996aa839)0xb9e11c8d996aa839UL,
396 U64(0x5a4673e40c8e881f)0x5a4673e40c8e881fUL, U64(0x1687977683569978)0x1687977683569978UL,
397 U64(0xbf4123eed72acf02)0xbf4123eed72acf02UL, U64(0x4ea1f1b3b513c785)0x4ea1f1b3b513c785UL,
398 U64(0xe767452be16f91ff)0xe767452be16f91ffUL, U64(0x7505d1b730021a7c)0x7505d1b730021a7cUL,
399 U64(0xa59bca5ec8fc980c)0xa59bca5ec8fc980cUL, U64(0xad069eda20f7e7a3)0xad069eda20f7e7a3UL,
400 U64(0x38f4b1bba231606a)0x38f4b1bba231606aUL, U64(0x60d2d77e94743e97)0x60d2d77e94743e97UL,
401 U64(0x9affc0183966f42c)0x9affc0183966f42cUL, U64(0x248e6768f3a7505f)0x248e6768f3a7505fUL,
402 U64(0xcdd449a4b483d934)0xcdd449a4b483d934UL, U64(0x87b59255751baf68)0x87b59255751baf68UL,
403 U64(0x1bea6d2e023d3c7f)0x1bea6d2e023d3c7fUL, U64(0x6b1f12455b5ffcab)0x6b1f12455b5ffcabUL,
404 U64(0x743555292de9710d)0x743555292de9710dUL, U64(0xd8034f6d10f5fddf)0xd8034f6d10f5fddfUL,
405 U64(0xc6198c9f7ba81b08)0xc6198c9f7ba81b08UL, U64(0xbb8109aca3a17edb)0xbb8109aca3a17edbUL,
406 U64(0xfa2d1766ad12cabb)0xfa2d1766ad12cabbUL, U64(0xc729080166437079)0xc729080166437079UL,
407 U64(0x9c5fff7b77269317)0x9c5fff7b77269317UL, U64(0x0000000000000000)0x0000000000000000UL,
408 U64(0x15d706c9a47624eb)0x15d706c9a47624ebUL, U64(0x6fdf38072fd44d72)0x6fdf38072fd44d72UL,
409 U64(0x5fb6dd3865ee52b7)0x5fb6dd3865ee52b7UL, U64(0xa33bf53d86bcff37)0xa33bf53d86bcff37UL,
410 U64(0xe657c1b5fc84fa8e)0xe657c1b5fc84fa8eUL, U64(0xaa962527735cebe9)0xaa962527735cebe9UL,
411 U64(0x39c43525bfda0b1b)0x39c43525bfda0b1bUL, U64(0x204e4d2a872ce186)0x204e4d2a872ce186UL,
412 U64(0x7a083ece8ba26999)0x7a083ece8ba26999UL, U64(0x554b9c9db72efbfa)0x554b9c9db72efbfaUL,
413 U64(0xb22cd9b656416a05)0xb22cd9b656416a05UL, U64(0x96a2bedea5e63a5a)0x96a2bedea5e63a5aUL,
414 U64(0x802529a826b0a322)0x802529a826b0a322UL, U64(0x8115ad363b5bc853)0x8115ad363b5bc853UL,
415 U64(0x8375b81701901eb1)0x8375b81701901eb1UL, U64(0x3069e53f4a3a1fc5)0x3069e53f4a3a1fc5UL,
416 U64(0xbd2136cfede119e0)0xbd2136cfede119e0UL, U64(0x18bafc91251d81ec)0x18bafc91251d81ecUL,
417 U64(0x1d4a524d4c7d5b44)0x1d4a524d4c7d5b44UL, U64(0x05f0aedc6960daa8)0x05f0aedc6960daa8UL,
418 U64(0x29e39d3072ccf558)0x29e39d3072ccf558UL, U64(0x70f57f6b5962c0d4)0x70f57f6b5962c0d4UL,
419 U64(0x989fd53903ad22ce)0x989fd53903ad22ceUL, U64(0xf84d024797d91c59)0xf84d024797d91c59UL,
420 U64(0x547b1803aac5908b)0x547b1803aac5908bUL, U64(0xf0d056c37fd263f6)0xf0d056c37fd263f6UL,
421 U64(0xd56eb535919e58d8)0xd56eb535919e58d8UL, U64(0x1c7ad6d351963035)0x1c7ad6d351963035UL,
422 U64(0x2e7326cd2167f912)0x2e7326cd2167f912UL, U64(0xac361a443d1c8cd2)0xac361a443d1c8cd2UL,
423 U64(0x697f076461942a49)0x697f076461942a49UL, U64(0x4b515f6fdc731d2d)0x4b515f6fdc731d2dUL,
424 U64(0x8ad8680df4700a6f)0x8ad8680df4700a6fUL, U64(0x41ac1eca0eb3b460)0x41ac1eca0eb3b460UL,
425 U64(0x7d988533d80965d3)0x7d988533d80965d3UL, U64(0xa8f6300649973d0b)0xa8f6300649973d0bUL,
426 U64(0x7765c4960ac9cc9e)0x7765c4960ac9cc9eUL, U64(0x7ca801adc5e20ea2)0x7ca801adc5e20ea2UL,
427 U64(0xdea3700e5eb59ae4)0xdea3700e5eb59ae4UL, U64(0xa06b6482a19c42a4)0xa06b6482a19c42a4UL,
428 U64(0x6a2f96db46b497da)0x6a2f96db46b497daUL, U64(0x27def6d7d487edcc)0x27def6d7d487edccUL,
429 U64(0x463ca5375d18b82a)0x463ca5375d18b82aUL, U64(0xa6cb5be1efdc259f)0xa6cb5be1efdc259fUL,
430 U64(0x53eba3fef96e9cc1)0x53eba3fef96e9cc1UL, U64(0xce84d81b93a364a7)0xce84d81b93a364a7UL,
431 U64(0xf4107c810b59d22f)0xf4107c810b59d22fUL, U64(0x333974806d1aa256)0x333974806d1aa256UL,
432 U64(0x0f0def79bba073e5)0x0f0def79bba073e5UL, U64(0x231edc95a00c5c15)0x231edc95a00c5c15UL,
433 U64(0xe437d494c64f2c6c)0xe437d494c64f2c6cUL, U64(0x91320523f64d3610)0x91320523f64d3610UL,
434 U64(0x67426c83c7df32dd)0x67426c83c7df32ddUL, U64(0x6eefbc99323f2603)0x6eefbc99323f2603UL,
435 U64(0x9d6f7be56acdf866)0x9d6f7be56acdf866UL, U64(0x5916e25b2bae358c)0x5916e25b2bae358cUL,
436 U64(0x7ff89012e2c2b331)0x7ff89012e2c2b331UL, U64(0x035091bf2720bd93)0x035091bf2720bd93UL,
437 U64(0x561b0d22900e4669)0x561b0d22900e4669UL, U64(0x28d319ae6f279e29)0x28d319ae6f279e29UL,
438 U64(0x2f43a2533c8c9263)0x2f43a2533c8c9263UL, U64(0xd09e1be9f8fe8270)0xd09e1be9f8fe8270UL,
439 U64(0xf740ed3e2c796fbc)0xf740ed3e2c796fbcUL, U64(0xdb53ded237d5404c)0xdb53ded237d5404cUL,
440 U64(0x62b2c25faebfe875)0x62b2c25faebfe875UL, U64(0x0afd41a5d2c0a94d)0x0afd41a5d2c0a94dUL,
441 U64(0x6412fd3ce0ff8f4e)0x6412fd3ce0ff8f4eUL, U64(0xe3a76f6995e42026)0xe3a76f6995e42026UL,
442 U64(0x6c8fa9b808f4f0e1)0x6c8fa9b808f4f0e1UL, U64(0xc2d9a6dd0f23aad1)0xc2d9a6dd0f23aad1UL,
443 U64(0x8f28c6d19d10d0c7)0x8f28c6d19d10d0c7UL, U64(0x85d587744fd0798a)0x85d587744fd0798aUL,
444 U64(0xa20b71a39b579446)0xa20b71a39b579446UL, U64(0x684f83fa7c7f4138)0x684f83fa7c7f4138UL,
445 U64(0xe507500adba4471d)0xe507500adba4471dUL, U64(0x3f640a46f19a6c20)0x3f640a46f19a6c20UL,
446 U64(0x1247bd34f7dd28a1)0x1247bd34f7dd28a1UL, U64(0x2d23b77206474481)0x2d23b77206474481UL,
447 U64(0x93521002cc86e0f2)0x93521002cc86e0f2UL, U64(0x572b89bc8de52d18)0x572b89bc8de52d18UL,
448 U64(0xfb1d93f8b0f9a1ca)0xfb1d93f8b0f9a1caUL, U64(0xe95a2ecc4724896b)0xe95a2ecc4724896bUL,
449 U64(0x3ba420048511ddf9)0x3ba420048511ddf9UL, U64(0xd63e248ab6bee54b)0xd63e248ab6bee54bUL,
450 U64(0x5dd6c8195f258455)0x5dd6c8195f258455UL, U64(0x06a03f634e40673b)0x06a03f634e40673bUL,
451 U64(0x1f2a476c76b68da6)0x1f2a476c76b68da6UL, U64(0x217ec9b49ac78af7)0x217ec9b49ac78af7UL,
452 U64(0xecaa80102e4453c3)0xecaa80102e4453c3UL, U64(0x14e78257b99d4f9a)0x14e78257b99d4f9aUL
453 }, { /* 3 */
454 U64(0x20329b2cc87bba05)0x20329b2cc87bba05UL, U64(0x4f5eb6f86546a531)0x4f5eb6f86546a531UL,
455 U64(0xd4f44775f751b6b1)0xd4f44775f751b6b1UL, U64(0x8266a47b850dfa8b)0x8266a47b850dfa8bUL,
456 U64(0xbb986aa15a6ca985)0xbb986aa15a6ca985UL, U64(0xc979eb08f9ae0f99)0xc979eb08f9ae0f99UL,
457 U64(0x2da6f447a2375ea1)0x2da6f447a2375ea1UL, U64(0x1e74275dcd7d8576)0x1e74275dcd7d8576UL,
458 U64(0xbc20180a800bc5f8)0xbc20180a800bc5f8UL, U64(0xb4a2f701b2dc65be)0xb4a2f701b2dc65beUL,
459 U64(0xe726946f981b6d66)0xe726946f981b6d66UL, U64(0x48e6c453bf21c94c)0x48e6c453bf21c94cUL,
460 U64(0x42cad9930f0a4195)0x42cad9930f0a4195UL, U64(0xefa47b64aacccd20)0xefa47b64aacccd20UL,
461 U64(0x71180a8960409a42)0x71180a8960409a42UL, U64(0x8bb3329bf6a44e0c)0x8bb3329bf6a44e0cUL,
462 U64(0xd34c35de2d36dacc)0xd34c35de2d36daccUL, U64(0xa92f5b7cbc23dc96)0xa92f5b7cbc23dc96UL,
463 U64(0xb31a85aa68bb09c3)0xb31a85aa68bb09c3UL, U64(0x13e04836a73161d2)0x13e04836a73161d2UL,
464 U64(0xb24dfc4129c51d02)0xb24dfc4129c51d02UL, U64(0x8ae44b70b7da5acd)0x8ae44b70b7da5acdUL,
465 U64(0xe671ed84d96579a7)0xe671ed84d96579a7UL, U64(0xa4bb3417d66f3832)0xa4bb3417d66f3832UL,
466 U64(0x4572ab38d56d2de8)0x4572ab38d56d2de8UL, U64(0xb1b47761ea47215c)0xb1b47761ea47215cUL,
467 U64(0xe81c09cf70aba15d)0xe81c09cf70aba15dUL, U64(0xffbdb872ce7f90ac)0xffbdb872ce7f90acUL,
468 U64(0xa8782297fd5dc857)0xa8782297fd5dc857UL, U64(0x0d946f6b6a4ce4a4)0x0d946f6b6a4ce4a4UL,
469 U64(0xe4df1f4f5b995138)0xe4df1f4f5b995138UL, U64(0x9ebc71edca8c5762)0x9ebc71edca8c5762UL,
470 U64(0x0a2c1dc0b02b88d9)0x0a2c1dc0b02b88d9UL, U64(0x3b503c115d9d7b91)0x3b503c115d9d7b91UL,
471 U64(0xc64376a8111ec3a2)0xc64376a8111ec3a2UL, U64(0xcec199a323c963e4)0xcec199a323c963e4UL,
472 U64(0xdc76a87ec58616f7)0xdc76a87ec58616f7UL, U64(0x09d596e073a9b487)0x09d596e073a9b487UL,
473 U64(0x14583a9d7d560daf)0x14583a9d7d560dafUL, U64(0xf4c6dc593f2a0cb4)0xf4c6dc593f2a0cb4UL,
474 U64(0xdd21d19584f80236)0xdd21d19584f80236UL, U64(0x4a4836983ddde1d3)0x4a4836983ddde1d3UL,
475 U64(0xe58866a41ae745f9)0xe58866a41ae745f9UL, U64(0xf591a5b27e541875)0xf591a5b27e541875UL,
476 U64(0x891dc05074586693)0x891dc05074586693UL, U64(0x5b068c651810a89e)0x5b068c651810a89eUL,
477 U64(0xa30346bc0c08544f)0xa30346bc0c08544fUL, U64(0x3dbf3751c684032d)0x3dbf3751c684032dUL,
478 U64(0x2a1e86ec785032dc)0x2a1e86ec785032dcUL, U64(0xf73f5779fca830ea)0xf73f5779fca830eaUL,
479 U64(0xb60c05ca30204d21)0xb60c05ca30204d21UL, U64(0x0cc316802b32f065)0x0cc316802b32f065UL,
480 U64(0x8770241bdd96be69)0x8770241bdd96be69UL, U64(0xb861e18199ee95db)0xb861e18199ee95dbUL,
481 U64(0xf805cad91418fcd1)0xf805cad91418fcd1UL, U64(0x29e70dccbbd20e82)0x29e70dccbbd20e82UL,
482 U64(0xc7140f435060d763)0xc7140f435060d763UL, U64(0x0f3a9da0e8b0cc3b)0x0f3a9da0e8b0cc3bUL,
483 U64(0xa2543f574d76408e)0xa2543f574d76408eUL, U64(0xbd7761e1c175d139)0xbd7761e1c175d139UL,
484 U64(0x4b1f4f737ca3f512)0x4b1f4f737ca3f512UL, U64(0x6dc2df1f2fc137ab)0x6dc2df1f2fc137abUL,
485 U64(0xf1d05c3967b14856)0xf1d05c3967b14856UL, U64(0xa742bf3715ed046c)0xa742bf3715ed046cUL,
486 U64(0x654030141d1697ed)0x654030141d1697edUL, U64(0x07b872abda676c7d)0x07b872abda676c7dUL,
487 U64(0x3ce84eba87fa17ec)0x3ce84eba87fa17ecUL, U64(0xc1fb0403cb79afdf)0xc1fb0403cb79afdfUL,
488 U64(0x3e46bc7105063f73)0x3e46bc7105063f73UL, U64(0x278ae987121cd678)0x278ae987121cd678UL,
489 U64(0xa1adb4778ef47cd0)0xa1adb4778ef47cd0UL, U64(0x26dd906c5362c2b9)0x26dd906c5362c2b9UL,
490 U64(0x05168060589b44e2)0x05168060589b44e2UL, U64(0xfbfc41f9d79ac08f)0xfbfc41f9d79ac08fUL,
491 U64(0x0e6de44ba9ced8fa)0x0e6de44ba9ced8faUL, U64(0x9feb08068bf243a3)0x9feb08068bf243a3UL,
492 U64(0x7b341749d06b129b)0x7b341749d06b129bUL, U64(0x229c69e74a87929a)0x229c69e74a87929aUL,
493 U64(0xe09ee6c4427c011b)0xe09ee6c4427c011bUL, U64(0x5692e30e725c4c3a)0x5692e30e725c4c3aUL,
494 U64(0xda99a33e5e9f6e4b)0xda99a33e5e9f6e4bUL, U64(0x353dd85af453a36b)0x353dd85af453a36bUL,
495 U64(0x25241b4c90e0fee7)0x25241b4c90e0fee7UL, U64(0x5de987258309d022)0x5de987258309d022UL,
496 U64(0xe230140fc0802984)0xe230140fc0802984UL, U64(0x93281e86a0c0b3c6)0x93281e86a0c0b3c6UL,
497 U64(0xf229d719a4337408)0xf229d719a4337408UL, U64(0x6f6c2dd4ad3d1f34)0x6f6c2dd4ad3d1f34UL,
498 U64(0x8ea5b2fbae3f0aee)0x8ea5b2fbae3f0aeeUL, U64(0x8331dd90c473ee4a)0x8331dd90c473ee4aUL,
499 U64(0x346aa1b1b52db7aa)0x346aa1b1b52db7aaUL, U64(0xdf8f235e06042aa9)0xdf8f235e06042aa9UL,
500 U64(0xcc6f6b68a1354b7b)0xcc6f6b68a1354b7bUL, U64(0x6c95a6f46ebf236a)0x6c95a6f46ebf236aUL,
501 U64(0x52d31a856bb91c19)0x52d31a856bb91c19UL, U64(0x1a35ded6d498d555)0x1a35ded6d498d555UL,
502 U64(0xf37eaef2e54d60c9)0xf37eaef2e54d60c9UL, U64(0x72e181a9a3c2a61c)0x72e181a9a3c2a61cUL,
503 U64(0x98537aad51952fde)0x98537aad51952fdeUL, U64(0x16f6c856ffaa2530)0x16f6c856ffaa2530UL,
504 U64(0xd960281e9d1d5215)0xd960281e9d1d5215UL, U64(0x3a0745fa1ce36f50)0x3a0745fa1ce36f50UL,
505 U64(0x0b7b642bf1559c18)0x0b7b642bf1559c18UL, U64(0x59a87eae9aec8001)0x59a87eae9aec8001UL,
506 U64(0x5e100c05408bec7c)0x5e100c05408bec7cUL, U64(0x0441f98b19e55023)0x0441f98b19e55023UL,
507 U64(0xd70dcc5534d38aef)0xd70dcc5534d38aefUL, U64(0x927f676de1bea707)0x927f676de1bea707UL,
508 U64(0x9769e70db925e3e5)0x9769e70db925e3e5UL, U64(0x7a636ea29115065a)0x7a636ea29115065aUL,
509 U64(0x468b201816ef11b6)0x468b201816ef11b6UL, U64(0xab81a9b73edff409)0xab81a9b73edff409UL,
510 U64(0xc0ac7de88a07bb1e)0xc0ac7de88a07bb1eUL, U64(0x1f235eb68c0391b7)0x1f235eb68c0391b7UL,
511 U64(0x6056b074458dd30f)0x6056b074458dd30fUL, U64(0xbe8eeac102f7ed67)0xbe8eeac102f7ed67UL,
512 U64(0xcd381283e04b5fba)0xcd381283e04b5fbaUL, U64(0x5cbefecec277c4e3)0x5cbefecec277c4e3UL,
513 U64(0xd21b4c356c48ce0d)0xd21b4c356c48ce0dUL, U64(0x1019c31664b35d8c)0x1019c31664b35d8cUL,
514 U64(0x247362a7d19eea26)0x247362a7d19eea26UL, U64(0xebe582efb3299d03)0xebe582efb3299d03UL,
515 U64(0x02aef2cb82fc289f)0x02aef2cb82fc289fUL, U64(0x86275df09ce8aaa8)0x86275df09ce8aaa8UL,
516 U64(0x28b07427faac1a43)0x28b07427faac1a43UL, U64(0x38a9b7319e1f47cf)0x38a9b7319e1f47cfUL,
517 U64(0xc82e92e3b8d01b58)0xc82e92e3b8d01b58UL, U64(0x06ef0b409b1978bc)0x06ef0b409b1978bcUL,
518 U64(0x62f842bfc771fb90)0x62f842bfc771fb90UL, U64(0x9904034610eb3b1f)0x9904034610eb3b1fUL,
519 U64(0xded85ab5477a3e68)0xded85ab5477a3e68UL, U64(0x90d195a663428f98)0x90d195a663428f98UL,
520 U64(0x5384636e2ac708d8)0x5384636e2ac708d8UL, U64(0xcbd719c37b522706)0xcbd719c37b522706UL,
521 U64(0xae9729d76644b0eb)0xae9729d76644b0ebUL, U64(0x7c8c65e20a0c7ee6)0x7c8c65e20a0c7ee6UL,
522 U64(0x80c856b007f1d214)0x80c856b007f1d214UL, U64(0x8c0b40302cc32271)0x8c0b40302cc32271UL,
523 U64(0xdbcedad51fe17a8a)0xdbcedad51fe17a8aUL, U64(0x740e8ae938dbdea0)0x740e8ae938dbdea0UL,
524 U64(0xa615c6dc549310ad)0xa615c6dc549310adUL, U64(0x19cc55f6171ae90b)0x19cc55f6171ae90bUL,
525 U64(0x49b1bdb8fe5fdd8d)0x49b1bdb8fe5fdd8dUL, U64(0xed0a89af2830e5bf)0xed0a89af2830e5bfUL,
526 U64(0x6a7aadb4f5a65bd6)0x6a7aadb4f5a65bd6UL, U64(0x7e22972988f05679)0x7e22972988f05679UL,
527 U64(0xf952b3325566e810)0xf952b3325566e810UL, U64(0x39fecedadf61530e)0x39fecedadf61530eUL,
528 U64(0x6101c99f04f3c7ce)0x6101c99f04f3c7ceUL, U64(0x2e5f7f6761b562ff)0x2e5f7f6761b562ffUL,
529 U64(0xf08725d226cf5c97)0xf08725d226cf5c97UL, U64(0x63af3b54860fef51)0x63af3b54860fef51UL,
530 U64(0x8ff2cb10ef411e2f)0x8ff2cb10ef411e2fUL, U64(0x884ab9bb35267252)0x884ab9bb35267252UL,
531 U64(0x4df04433e7ba8dae)0x4df04433e7ba8daeUL, U64(0x9afd8866d3690741)0x9afd8866d3690741UL,
532 U64(0x66b9bb34de94abb3)0x66b9bb34de94abb3UL, U64(0x9baaf18d92171380)0x9baaf18d92171380UL,
533 U64(0x543c11c5f0a064a5)0x543c11c5f0a064a5UL, U64(0x17a1b1bdbed431f1)0x17a1b1bdbed431f1UL,
534 U64(0xb5f58eeaf3a2717f)0xb5f58eeaf3a2717fUL, U64(0xc355f6c849858740)0xc355f6c849858740UL,
535 U64(0xec5df044694ef17e)0xec5df044694ef17eUL, U64(0xd83751f5dc6346d4)0xd83751f5dc6346d4UL,
536 U64(0xfc4433520dfdacf2)0xfc4433520dfdacf2UL, U64(0x0000000000000000)0x0000000000000000UL,
537 U64(0x5a51f58e596ebc5f)0x5a51f58e596ebc5fUL, U64(0x3285aaf12e34cf16)0x3285aaf12e34cf16UL,
538 U64(0x8d5c39db6dbd36b0)0x8d5c39db6dbd36b0UL, U64(0x12b731dde64f7513)0x12b731dde64f7513UL,
539 U64(0x94906c2d7aa7dfbb)0x94906c2d7aa7dfbbUL, U64(0x302b583aacc8e789)0x302b583aacc8e789UL,
540 U64(0x9d45facd090e6b3c)0x9d45facd090e6b3cUL, U64(0x2165e2c78905aec4)0x2165e2c78905aec4UL,
541 U64(0x68d45f7f775a7349)0x68d45f7f775a7349UL, U64(0x189b2c1d5664fdca)0x189b2c1d5664fdcaUL,
542 U64(0xe1c99f2f030215da)0xe1c99f2f030215daUL, U64(0x6983269436246788)0x6983269436246788UL,
543 U64(0x8489af3b1e148237)0x8489af3b1e148237UL, U64(0xe94b702431d5b59c)0xe94b702431d5b59cUL,
544 U64(0x33d2d31a6f4adbd7)0x33d2d31a6f4adbd7UL, U64(0xbfd9932a4389f9a6)0xbfd9932a4389f9a6UL,
545 U64(0xb0e30e8aab39359d)0xb0e30e8aab39359dUL, U64(0xd1e2c715afcaf253)0xd1e2c715afcaf253UL,
546 U64(0x150f43763c28196e)0x150f43763c28196eUL, U64(0xc4ed846393e2eb3d)0xc4ed846393e2eb3dUL,
547 U64(0x03f98b20c3823c5e)0x03f98b20c3823c5eUL, U64(0xfd134ab94c83b833)0xfd134ab94c83b833UL,
548 U64(0x556b682eb1de7064)0x556b682eb1de7064UL, U64(0x36c4537a37d19f35)0x36c4537a37d19f35UL,
549 U64(0x7559f30279a5ca61)0x7559f30279a5ca61UL, U64(0x799ae58252973a04)0x799ae58252973a04UL,
550 U64(0x9c12832648707ffd)0x9c12832648707ffdUL, U64(0x78cd9c6913e92ec5)0x78cd9c6913e92ec5UL,
551 U64(0x1d8dac7d0effb928)0x1d8dac7d0effb928UL, U64(0x439da0784e745554)0x439da0784e745554UL,
552 U64(0x413352b3cc887dcb)0x413352b3cc887dcbUL, U64(0xbacf134a1b12bd44)0xbacf134a1b12bd44UL,
553 U64(0x114ebafd25cd494d)0x114ebafd25cd494dUL, U64(0x2f08068c20cb763e)0x2f08068c20cb763eUL,
554 U64(0x76a07822ba27f63f)0x76a07822ba27f63fUL, U64(0xeab2fb04f25789c2)0xeab2fb04f25789c2UL,
555 U64(0xe3676de481fe3d45)0xe3676de481fe3d45UL, U64(0x1b62a73d95e6c194)0x1b62a73d95e6c194UL,
556 U64(0x641749ff5c68832c)0x641749ff5c68832cUL, U64(0xa5ec4dfc97112cf3)0xa5ec4dfc97112cf3UL,
557 U64(0xf6682e92bdd6242b)0xf6682e92bdd6242bUL, U64(0x3f11c59a44782bb2)0x3f11c59a44782bb2UL,
558 U64(0x317c21d1edb6f348)0x317c21d1edb6f348UL, U64(0xd65ab5be75ad9e2e)0xd65ab5be75ad9e2eUL,
559 U64(0x6b2dd45fb4d84f17)0x6b2dd45fb4d84f17UL, U64(0xfaab381296e4d44e)0xfaab381296e4d44eUL,
560 U64(0xd0b5befeeeb4e692)0xd0b5befeeeb4e692UL, U64(0x0882ef0b32d7a046)0x0882ef0b32d7a046UL,
561 U64(0x512a91a5a83b2047)0x512a91a5a83b2047UL, U64(0x963e9ee6f85bf724)0x963e9ee6f85bf724UL,
562 U64(0x4e09cf132438b1f0)0x4e09cf132438b1f0UL, U64(0x77f701c9fb59e2fe)0x77f701c9fb59e2feUL,
563 U64(0x7ddb1c094b726a27)0x7ddb1c094b726a27UL, U64(0x5f4775ee01f5f8bd)0x5f4775ee01f5f8bdUL,
564 U64(0x9186ec4d223c9b59)0x9186ec4d223c9b59UL, U64(0xfeeac1998f01846d)0xfeeac1998f01846dUL,
565 U64(0xac39db1ce4b89874)0xac39db1ce4b89874UL, U64(0xb75b7c21715e59e0)0xb75b7c21715e59e0UL,
566 U64(0xafc0503c273aa42a)0xafc0503c273aa42aUL, U64(0x6e3b543fec430bf5)0x6e3b543fec430bf5UL,
567 U64(0x704f7362213e8e83)0x704f7362213e8e83UL, U64(0x58ff0745db9294c0)0x58ff0745db9294c0UL,
568 U64(0x67eec2df9feabf72)0x67eec2df9feabf72UL, U64(0xa0facd9ccf8a6811)0xa0facd9ccf8a6811UL,
569 U64(0xb936986ad890811a)0xb936986ad890811aUL, U64(0x95c715c63bd9cb7a)0x95c715c63bd9cb7aUL,
570 U64(0xca8060283a2c33c7)0xca8060283a2c33c7UL, U64(0x507de84ee9453486)0x507de84ee9453486UL,
571 U64(0x85ded6d05f6a96f6)0x85ded6d05f6a96f6UL, U64(0x1cdad5964f81ade9)0x1cdad5964f81ade9UL,
572 U64(0xd5a33e9eb62fa270)0xd5a33e9eb62fa270UL, U64(0x40642b588df6690a)0x40642b588df6690aUL,
573 U64(0x7f75eec2c98e42b8)0x7f75eec2c98e42b8UL, U64(0x2cf18dace3494a60)0x2cf18dace3494a60UL,
574 U64(0x23cb100c0bf9865b)0x23cb100c0bf9865bUL, U64(0xeef3028febb2d9e1)0xeef3028febb2d9e1UL,
575 U64(0x4425d2d394133929)0x4425d2d394133929UL, U64(0xaad6d05c7fa1e0c8)0xaad6d05c7fa1e0c8UL,
576 U64(0xad6ea2f7a5c68cb5)0xad6ea2f7a5c68cb5UL, U64(0xc2028f2308fb9381)0xc2028f2308fb9381UL,
577 U64(0x819f2f5b468fc6d5)0x819f2f5b468fc6d5UL, U64(0xc5bafd88d29cfffc)0xc5bafd88d29cfffcUL,
578 U64(0x47dc59f357910577)0x47dc59f357910577UL, U64(0x2b49ff07392e261d)0x2b49ff07392e261dUL,
579 U64(0x57c59ae5332258fb)0x57c59ae5332258fbUL, U64(0x73b6f842e2bcb2dd)0x73b6f842e2bcb2ddUL,
580 U64(0xcf96e04862b77725)0xcf96e04862b77725UL, U64(0x4ca73dd8a6c4996f)0x4ca73dd8a6c4996fUL,
581 U64(0x015779eb417e14c1)0x015779eb417e14c1UL, U64(0x37932a9176af8bf4)0x37932a9176af8bf4UL
582 }, { /* 4 */
583 U64(0x190a2c9b249df23e)0x190a2c9b249df23eUL, U64(0x2f62f8b62263e1e9)0x2f62f8b62263e1e9UL,
584 U64(0x7a7f754740993655)0x7a7f754740993655UL, U64(0x330b7ba4d5564d9f)0x330b7ba4d5564d9fUL,
585 U64(0x4c17a16a46672582)0x4c17a16a46672582UL, U64(0xb22f08eb7d05f5b8)0xb22f08eb7d05f5b8UL,
586 U64(0x535f47f40bc148cc)0x535f47f40bc148ccUL, U64(0x3aec5d27d4883037)0x3aec5d27d4883037UL,
587 U64(0x10ed0a1825438f96)0x10ed0a1825438f96UL, U64(0x516101f72c233d17)0x516101f72c233d17UL,
588 U64(0x13cc6f949fd04eae)0x13cc6f949fd04eaeUL, U64(0x739853c441474bfd)0x739853c441474bfdUL,
589 U64(0x653793d90d3f5b1b)0x653793d90d3f5b1bUL, U64(0x5240647b96b0fc2f)0x5240647b96b0fc2fUL,
590 U64(0x0c84890ad27623e0)0x0c84890ad27623e0UL, U64(0xd7189b32703aaea3)0xd7189b32703aaea3UL,
591 U64(0x2685de3523bd9c41)0x2685de3523bd9c41UL, U64(0x99317c5b11bffefa)0x99317c5b11bffefaUL,
592 U64(0x0d9baa854f079703)0x0d9baa854f079703UL, U64(0x70b93648fbd48ac5)0x70b93648fbd48ac5UL,
593 U64(0xa80441fce30bc6be)0xa80441fce30bc6beUL, U64(0x7287704bdc36ff1e)0x7287704bdc36ff1eUL,
594 U64(0xb65384ed33dc1f13)0xb65384ed33dc1f13UL, U64(0xd36417343ee34408)0xd36417343ee34408UL,
595 U64(0x39cd38ab6e1bf10f)0x39cd38ab6e1bf10fUL, U64(0x5ab861770a1f3564)0x5ab861770a1f3564UL,
596 U64(0x0ebacf09f594563b)0x0ebacf09f594563bUL, U64(0xd04572b884708530)0xd04572b884708530UL,
597 U64(0x3cae9722bdb3af47)0x3cae9722bdb3af47UL, U64(0x4a556b6f2f5cbaf2)0x4a556b6f2f5cbaf2UL,
598 U64(0xe1704f1f76c4bd74)0xe1704f1f76c4bd74UL, U64(0x5ec4ed7144c6dfcf)0x5ec4ed7144c6dfcfUL,
599 U64(0x16afc01d4c7810e6)0x16afc01d4c7810e6UL, U64(0x283f113cd629ca7a)0x283f113cd629ca7aUL,
600 U64(0xaf59a8761741ed2d)0xaf59a8761741ed2dUL, U64(0xeed5a3991e215fac)0xeed5a3991e215facUL,
601 U64(0x3bf37ea849f984d4)0x3bf37ea849f984d4UL, U64(0xe413e096a56ce33c)0xe413e096a56ce33cUL,
602 U64(0x2c439d3a98f020d1)0x2c439d3a98f020d1UL, U64(0x637559dc6404c46b)0x637559dc6404c46bUL,
603 U64(0x9e6c95d1e5f5d569)0x9e6c95d1e5f5d569UL, U64(0x24bb9836045fe99a)0x24bb9836045fe99aUL,
604 U64(0x44efa466dac8ecc9)0x44efa466dac8ecc9UL, U64(0xc6eab2a5c80895d6)0xc6eab2a5c80895d6UL,
605 U64(0x803b50c035220cc4)0x803b50c035220cc4UL, U64(0x0321658cba93c138)0x0321658cba93c138UL,
606 U64(0x8f9ebc465dc7ee1c)0x8f9ebc465dc7ee1cUL, U64(0xd15a5137190131d3)0xd15a5137190131d3UL,
607 U64(0x0fa5ec8668e5e2d8)0x0fa5ec8668e5e2d8UL, U64(0x91c979578d1037b1)0x91c979578d1037b1UL,
608 U64(0x0642ca05693b9f70)0x0642ca05693b9f70UL, U64(0xefca80168350eb4f)0xefca80168350eb4fUL,
609 U64(0x38d21b24f36a45ec)0x38d21b24f36a45ecUL, U64(0xbeab81e1af73d658)0xbeab81e1af73d658UL,
610 U64(0x8cbfd9cae7542f24)0x8cbfd9cae7542f24UL, U64(0xfd19cc0d81f11102)0xfd19cc0d81f11102UL,
611 U64(0x0ac6430fbb4dbc90)0x0ac6430fbb4dbc90UL, U64(0x1d76a09d6a441895)0x1d76a09d6a441895UL,
612 U64(0x2a01573ff1cbbfa1)0x2a01573ff1cbbfa1UL, U64(0xb572e161894fde2b)0xb572e161894fde2bUL,
613 U64(0x8124734fa853b827)0x8124734fa853b827UL, U64(0x614b1fdf43e6b1b0)0x614b1fdf43e6b1b0UL,
614 U64(0x68ac395c4238cc18)0x68ac395c4238cc18UL, U64(0x21d837bfd7f7b7d2)0x21d837bfd7f7b7d2UL,
615 U64(0x20c714304a860331)0x20c714304a860331UL, U64(0x5cfaab726324aa14)0x5cfaab726324aa14UL,
616 U64(0x74c5ba4eb50d606e)0x74c5ba4eb50d606eUL, U64(0xf3a3030474654739)0xf3a3030474654739UL,
617 U64(0x23e671bcf015c209)0x23e671bcf015c209UL, U64(0x45f087e947b9582a)0x45f087e947b9582aUL,
618 U64(0xd8bd77b418df4c7b)0xd8bd77b418df4c7bUL, U64(0xe06f6c90ebb50997)0xe06f6c90ebb50997UL,
619 U64(0x0bd96080263c0873)0x0bd96080263c0873UL, U64(0x7e03f9410e40dcfe)0x7e03f9410e40dcfeUL,
620 U64(0xb8e94be4c6484928)0xb8e94be4c6484928UL, U64(0xfb5b0608e8ca8e72)0xfb5b0608e8ca8e72UL,
621 U64(0x1a2b49179e0e3306)0x1a2b49179e0e3306UL, U64(0x4e29e76961855059)0x4e29e76961855059UL,
622 U64(0x4f36c4e6fcf4e4ba)0x4f36c4e6fcf4e4baUL, U64(0x49740ee395cf7bca)0x49740ee395cf7bcaUL,
623 U64(0xc2963ea386d17f7d)0xc2963ea386d17f7dUL, U64(0x90d65ad810618352)0x90d65ad810618352UL,
624 U64(0x12d34c1b02a1fa4d)0x12d34c1b02a1fa4dUL, U64(0xfa44258775bb3a91)0xfa44258775bb3a91UL,
625 U64(0x18150f14b9ec46dd)0x18150f14b9ec46ddUL, U64(0x1491861e6b9a653d)0x1491861e6b9a653dUL,
626 U64(0x9a1019d7ab2c3fc2)0x9a1019d7ab2c3fc2UL, U64(0x3668d42d06fe13d7)0x3668d42d06fe13d7UL,
627 U64(0xdcc1fbb25606a6d0)0xdcc1fbb25606a6d0UL, U64(0x969490dd795a1c22)0x969490dd795a1c22UL,
628 U64(0x3549b1a1bc6dd2ef)0x3549b1a1bc6dd2efUL, U64(0xc94f5e23a0ed770e)0xc94f5e23a0ed770eUL,
629 U64(0xb9f6686b5b39fdcb)0xb9f6686b5b39fdcbUL, U64(0xc4d4f4a6efeae00d)0xc4d4f4a6efeae00dUL,
630 U64(0xe732851a1fff2204)0xe732851a1fff2204UL, U64(0x94aad6de5eb869f9)0x94aad6de5eb869f9UL,
631 U64(0x3f8ff2ae07206e7f)0x3f8ff2ae07206e7fUL, U64(0xfe38a9813b62d03a)0xfe38a9813b62d03aUL,
632 U64(0xa7a1ad7a8bee2466)0xa7a1ad7a8bee2466UL, U64(0x7b6056c8dde882b6)0x7b6056c8dde882b6UL,
633 U64(0x302a1e286fc58ca7)0x302a1e286fc58ca7UL, U64(0x8da0fa457a259bc7)0x8da0fa457a259bc7UL,
634 U64(0xb3302b64e074415b)0xb3302b64e074415bUL, U64(0x5402ae7eff8b635f)0x5402ae7eff8b635fUL,
635 U64(0x08f8050c9cafc94b)0x08f8050c9cafc94bUL, U64(0xae468bf98a3059ce)0xae468bf98a3059ceUL,
636 U64(0x88c355cca98dc58f)0x88c355cca98dc58fUL, U64(0xb10e6d67c7963480)0xb10e6d67c7963480UL,
637 U64(0xbad70de7e1aa3cf3)0xbad70de7e1aa3cf3UL, U64(0xbfb4a26e320262bb)0xbfb4a26e320262bbUL,
638 U64(0xcb711820870f02d5)0xcb711820870f02d5UL, U64(0xce12b7a954a75c9d)0xce12b7a954a75c9dUL,
639 U64(0x563ce87dd8691684)0x563ce87dd8691684UL, U64(0x9f73b65e7884618a)0x9f73b65e7884618aUL,
640 U64(0x2b1e74b06cba0b42)0x2b1e74b06cba0b42UL, U64(0x47cec1ea605b2df1)0x47cec1ea605b2df1UL,
641 U64(0x1c698312f735ac76)0x1c698312f735ac76UL, U64(0x5fdbcefed9b76b2c)0x5fdbcefed9b76b2cUL,
642 U64(0x831a354c8fb1cdfc)0x831a354c8fb1cdfcUL, U64(0x820516c312c0791f)0x820516c312c0791fUL,
643 U64(0xb74ca762aeadabf0)0xb74ca762aeadabf0UL, U64(0xfc06ef821c80a5e1)0xfc06ef821c80a5e1UL,
644 U64(0x5723cbf24518a267)0x5723cbf24518a267UL, U64(0x9d4df05d5f661451)0x9d4df05d5f661451UL,
645 U64(0x588627742dfd40bf)0x588627742dfd40bfUL, U64(0xda8331b73f3d39a0)0xda8331b73f3d39a0UL,
646 U64(0x17b0e392d109a405)0x17b0e392d109a405UL, U64(0xf965400bcf28fba9)0xf965400bcf28fba9UL,
647 U64(0x7c3dbf4229a2a925)0x7c3dbf4229a2a925UL, U64(0x023e460327e275db)0x023e460327e275dbUL,
648 U64(0x6cd0b55a0ce126b3)0x6cd0b55a0ce126b3UL, U64(0xe62da695828e96e7)0xe62da695828e96e7UL,
649 U64(0x42ad6e63b3f373b9)0x42ad6e63b3f373b9UL, U64(0xe50cc319381d57df)0xe50cc319381d57dfUL,
650 U64(0xc5cbd729729b54ee)0xc5cbd729729b54eeUL, U64(0x46d1e265fd2a9912)0x46d1e265fd2a9912UL,
651 U64(0x6428b056904eeff8)0x6428b056904eeff8UL, U64(0x8be23040131e04b7)0x8be23040131e04b7UL,
652 U64(0x6709d5da2add2ec0)0x6709d5da2add2ec0UL, U64(0x075de98af44a2b93)0x075de98af44a2b93UL,
653 U64(0x8447dcc67bfbe66f)0x8447dcc67bfbe66fUL, U64(0x6616f655b7ac9a23)0x6616f655b7ac9a23UL,
654 U64(0xd607b8bded4b1a40)0xd607b8bded4b1a40UL, U64(0x0563af89d3a85e48)0x0563af89d3a85e48UL,
655 U64(0x3db1b4ad20c21ba4)0x3db1b4ad20c21ba4UL, U64(0x11f22997b8323b75)0x11f22997b8323b75UL,
656 U64(0x292032b34b587e99)0x292032b34b587e99UL, U64(0x7f1cdace9331681d)0x7f1cdace9331681dUL,
657 U64(0x8e819fc9c0b65aff)0x8e819fc9c0b65affUL, U64(0xa1e3677fe2d5bb16)0xa1e3677fe2d5bb16UL,
658 U64(0xcd33d225ee349da5)0xcd33d225ee349da5UL, U64(0xd9a2543b85aef898)0xd9a2543b85aef898UL,
659 U64(0x795e10cbfa0af76d)0x795e10cbfa0af76dUL, U64(0x25a4bbb9992e5d79)0x25a4bbb9992e5d79UL,
660 U64(0x78413344677b438e)0x78413344677b438eUL, U64(0xf0826688cef68601)0xf0826688cef68601UL,
661 U64(0xd27b34bba392f0eb)0xd27b34bba392f0ebUL, U64(0x551d8df162fad7bc)0x551d8df162fad7bcUL,
662 U64(0x1e57c511d0d7d9ad)0x1e57c511d0d7d9adUL, U64(0xdeffbdb171e4d30b)0xdeffbdb171e4d30bUL,
663 U64(0xf4feea8e802f6caa)0xf4feea8e802f6caaUL, U64(0xa480c8f6317de55e)0xa480c8f6317de55eUL,
664 U64(0xa0fc44f07fa40ff5)0xa0fc44f07fa40ff5UL, U64(0x95b5f551c3c9dd1a)0x95b5f551c3c9dd1aUL,
665 U64(0x22f952336d6476ea)0x22f952336d6476eaUL, U64(0x0000000000000000)0x0000000000000000UL,
666 U64(0xa6be8ef5169f9085)0xa6be8ef5169f9085UL, U64(0xcc2cf1aa73452946)0xcc2cf1aa73452946UL,
667 U64(0x2e7ddb39bf12550a)0x2e7ddb39bf12550aUL, U64(0xd526dd3157d8db78)0xd526dd3157d8db78UL,
668 U64(0x486b2d6c08becf29)0x486b2d6c08becf29UL, U64(0x9b0f3a58365d8b21)0x9b0f3a58365d8b21UL,
669 U64(0xac78cdfaadd22c15)0xac78cdfaadd22c15UL, U64(0xbc95c7e28891a383)0xbc95c7e28891a383UL,
670 U64(0x6a927f5f65dab9c3)0x6a927f5f65dab9c3UL, U64(0xc3891d2c1ba0cb9e)0xc3891d2c1ba0cb9eUL,
671 U64(0xeaa92f9f50f8b507)0xeaa92f9f50f8b507UL, U64(0xcf0d9426c9d6e87e)0xcf0d9426c9d6e87eUL,
672 U64(0xca6e3baf1a7eb636)0xca6e3baf1a7eb636UL, U64(0xab25247059980786)0xab25247059980786UL,
673 U64(0x69b31ad3df4978fb)0x69b31ad3df4978fbUL, U64(0xe2512a93cc577c4c)0xe2512a93cc577c4cUL,
674 U64(0xff278a0ea61364d9)0xff278a0ea61364d9UL, U64(0x71a615c766a53e26)0x71a615c766a53e26UL,
675 U64(0x89dc764334fc716c)0x89dc764334fc716cUL, U64(0xf87a638452594f4a)0xf87a638452594f4aUL,
676 U64(0xf2bc208be914f3da)0xf2bc208be914f3daUL, U64(0x8766b94ac1682757)0x8766b94ac1682757UL,
677 U64(0xbbc82e687cdb8810)0xbbc82e687cdb8810UL, U64(0x626a7a53f9757088)0x626a7a53f9757088UL,
678 U64(0xa2c202f358467a2e)0xa2c202f358467a2eUL, U64(0x4d0882e5db169161)0x4d0882e5db169161UL,
679 U64(0x09e7268301de7da8)0x09e7268301de7da8UL, U64(0xe897699c771ac0dc)0xe897699c771ac0dcUL,
680 U64(0xc8507dac3d9cc3ed)0xc8507dac3d9cc3edUL, U64(0xc0a878a0a1330aa6)0xc0a878a0a1330aa6UL,
681 U64(0x978bb352e42ba8c1)0x978bb352e42ba8c1UL, U64(0xe9884a13ea6b743f)0xe9884a13ea6b743fUL,
682 U64(0x279afdbabecc28a2)0x279afdbabecc28a2UL, U64(0x047c8c064ed9eaab)0x047c8c064ed9eaabUL,
683 U64(0x507e2278b15289f4)0x507e2278b15289f4UL, U64(0x599904fbb08cf45c)0x599904fbb08cf45cUL,
684 U64(0xbd8ae46d15e01760)0xbd8ae46d15e01760UL, U64(0x31353da7f2b43844)0x31353da7f2b43844UL,
685 U64(0x8558ff49e68a528c)0x8558ff49e68a528cUL, U64(0x76fbfc4d92ef15b5)0x76fbfc4d92ef15b5UL,
686 U64(0x3456922e211c660c)0x3456922e211c660cUL, U64(0x86799ac55c1993b4)0x86799ac55c1993b4UL,
687 U64(0x3e90d1219a51da9c)0x3e90d1219a51da9cUL, U64(0x2d5cbeb505819432)0x2d5cbeb505819432UL,
688 U64(0x982e5fd48cce4a19)0x982e5fd48cce4a19UL, U64(0xdb9c1238a24c8d43)0xdb9c1238a24c8d43UL,
689 U64(0xd439febecaa96f9b)0xd439febecaa96f9bUL, U64(0x418c0bef0960b281)0x418c0bef0960b281UL,
690 U64(0x158ea591f6ebd1de)0x158ea591f6ebd1deUL, U64(0x1f48e69e4da66d4e)0x1f48e69e4da66d4eUL,
691 U64(0x8afd13cf8e6fb054)0x8afd13cf8e6fb054UL, U64(0xf5e1c9011d5ed849)0xf5e1c9011d5ed849UL,
692 U64(0xe34e091c5126c8af)0xe34e091c5126c8afUL, U64(0xad67ee7530a398f6)0xad67ee7530a398f6UL,
693 U64(0x43b24dec2e82c75a)0x43b24dec2e82c75aUL, U64(0x75da99c1287cd48d)0x75da99c1287cd48dUL,
694 U64(0x92e81cdb3783f689)0x92e81cdb3783f689UL, U64(0xa3dd217cc537cecd)0xa3dd217cc537cecdUL,
695 U64(0x60543c50de970553)0x60543c50de970553UL, U64(0x93f73f54aaf2426a)0x93f73f54aaf2426aUL,
696 U64(0xa91b62737e7a725d)0xa91b62737e7a725dUL, U64(0xf19d4507538732e2)0xf19d4507538732e2UL,
697 U64(0x77e4dfc20f9ea156)0x77e4dfc20f9ea156UL, U64(0x7d229ccdb4d31dc6)0x7d229ccdb4d31dc6UL,
698 U64(0x1b346a98037f87e5)0x1b346a98037f87e5UL, U64(0xedf4c615a4b29e94)0xedf4c615a4b29e94UL,
699 U64(0x4093286094110662)0x4093286094110662UL, U64(0xb0114ee85ae78063)0xb0114ee85ae78063UL,
700 U64(0x6ff1d0d6b672e78b)0x6ff1d0d6b672e78bUL, U64(0x6dcf96d591909250)0x6dcf96d591909250UL,
701 U64(0xdfe09e3eec9567e8)0xdfe09e3eec9567e8UL, U64(0x3214582b4827f97c)0x3214582b4827f97cUL,
702 U64(0xb46dc2ee143e6ac8)0xb46dc2ee143e6ac8UL, U64(0xf6c0ac8da7cd1971)0xf6c0ac8da7cd1971UL,
703 U64(0xebb60c10cd8901e4)0xebb60c10cd8901e4UL, U64(0xf7df8f023abcad92)0xf7df8f023abcad92UL,
704 U64(0x9c52d3d2c217a0b2)0x9c52d3d2c217a0b2UL, U64(0x6b8d5cd0f8ab0d20)0x6b8d5cd0f8ab0d20UL,
705 U64(0x3777f7a29b8fa734)0x3777f7a29b8fa734UL, U64(0x011f238f9d71b4e3)0x011f238f9d71b4e3UL,
706 U64(0xc1b75b2f3c42be45)0xc1b75b2f3c42be45UL, U64(0x5de588fdfe551ef7)0x5de588fdfe551ef7UL,
707 U64(0x6eeef3592b035368)0x6eeef3592b035368UL, U64(0xaa3a07ffc4e9b365)0xaa3a07ffc4e9b365UL,
708 U64(0xecebe59a39c32a77)0xecebe59a39c32a77UL, U64(0x5ba742f8976e8187)0x5ba742f8976e8187UL,
709 U64(0x4b4a48e0b22d0e11)0x4b4a48e0b22d0e11UL, U64(0xddded83dcb771233)0xddded83dcb771233UL,
710 U64(0xa59feb79ac0c51bd)0xa59feb79ac0c51bdUL, U64(0xc7f5912a55792135)0xc7f5912a55792135UL
711 }, { /* 5 */
712 U64(0x6d6ae04668a9b08a)0x6d6ae04668a9b08aUL, U64(0x3ab3f04b0be8c743)0x3ab3f04b0be8c743UL,
713 U64(0xe51e166b54b3c908)0xe51e166b54b3c908UL, U64(0xbe90a9eb35c2f139)0xbe90a9eb35c2f139UL,
714 U64(0xb2c7066637f2bec1)0xb2c7066637f2bec1UL, U64(0xaa6945613392202c)0xaa6945613392202cUL,
715 U64(0x9a28c36f3b5201eb)0x9a28c36f3b5201ebUL, U64(0xddce5a93ab536994)0xddce5a93ab536994UL,
716 U64(0x0e34133ef6382827)0x0e34133ef6382827UL, U64(0x52a02ba1ec55048b)0x52a02ba1ec55048bUL,
717 U64(0xa2f88f97c4b2a177)0xa2f88f97c4b2a177UL, U64(0x8640e513ca2251a5)0x8640e513ca2251a5UL,
718 U64(0xcdf1d36258137622)0xcdf1d36258137622UL, U64(0xfe6cb708dedf8ddb)0xfe6cb708dedf8ddbUL,
719 U64(0x8a174a9ec8121e5d)0x8a174a9ec8121e5dUL, U64(0x679896036b81560e)0x679896036b81560eUL,
720 U64(0x59ed033395795fee)0x59ed033395795feeUL, U64(0x1dd778ab8b74edaf)0x1dd778ab8b74edafUL,
721 U64(0xee533ef92d9f926d)0xee533ef92d9f926dUL, U64(0x2a8c79baf8a8d8f5)0x2a8c79baf8a8d8f5UL,
722 U64(0x6bcf398e69b119f6)0x6bcf398e69b119f6UL, U64(0xe20491742fafdd95)0xe20491742fafdd95UL,
723 U64(0x276488e0809c2aec)0x276488e0809c2aecUL, U64(0xea955b82d88f5cce)0xea955b82d88f5cceUL,
724 U64(0x7102c63a99d9e0c4)0x7102c63a99d9e0c4UL, U64(0xf9763017a5c39946)0xf9763017a5c39946UL,
725 U64(0x429fa2501f151b3d)0x429fa2501f151b3dUL, U64(0x4659c72bea05d59e)0x4659c72bea05d59eUL,
726 U64(0x984b7fdccf5a6634)0x984b7fdccf5a6634UL, U64(0xf742232953fbb161)0xf742232953fbb161UL,
727 U64(0x3041860e08c021c7)0x3041860e08c021c7UL, U64(0x747bfd9616cd9386)0x747bfd9616cd9386UL,
728 U64(0x4bb1367192312787)0x4bb1367192312787UL, U64(0x1b72a1638a6c44d3)0x1b72a1638a6c44d3UL,
729 U64(0x4a0e68a6e8359a66)0x4a0e68a6e8359a66UL, U64(0x169a5039f258b6ca)0x169a5039f258b6caUL,
730 U64(0xb98a2ef44edee5a4)0xb98a2ef44edee5a4UL, U64(0xd9083fe85e43a737)0xd9083fe85e43a737UL,
731 U64(0x967f6ce239624e13)0x967f6ce239624e13UL, U64(0x8874f62d3c1a7982)0x8874f62d3c1a7982UL,
732 U64(0x3c1629830af06e3f)0x3c1629830af06e3fUL, U64(0x9165ebfd427e5a8e)0x9165ebfd427e5a8eUL,
733 U64(0xb5dd81794ceeaa5c)0xb5dd81794ceeaa5cUL, U64(0x0de8f15a7834f219)0x0de8f15a7834f219UL,
734 U64(0x70bd98ede3dd5d25)0x70bd98ede3dd5d25UL, U64(0xaccc9ca9328a8950)0xaccc9ca9328a8950UL,
735 U64(0x56664eda1945ca28)0x56664eda1945ca28UL, U64(0x221db34c0f8859ae)0x221db34c0f8859aeUL,
736 U64(0x26dbd637fa98970d)0x26dbd637fa98970dUL, U64(0x1acdffb4f068f932)0x1acdffb4f068f932UL,
737 U64(0x4585254f64090fa0)0x4585254f64090fa0UL, U64(0x72de245e17d53afa)0x72de245e17d53afaUL,
738 U64(0x1546b25d7c546cf4)0x1546b25d7c546cf4UL, U64(0x207e0ffffb803e71)0x207e0ffffb803e71UL,
739 U64(0xfaaad2732bcf4378)0xfaaad2732bcf4378UL, U64(0xb462dfae36ea17bd)0xb462dfae36ea17bdUL,
740 U64(0xcf926fd1ac1b11fd)0xcf926fd1ac1b11fdUL, U64(0xe0672dc7dba7ba4a)0xe0672dc7dba7ba4aUL,
741 U64(0xd3fa49ad5d6b41b3)0xd3fa49ad5d6b41b3UL, U64(0x8ba81449b216a3bc)0x8ba81449b216a3bcUL,
742 U64(0x14f9ec8a0650d115)0x14f9ec8a0650d115UL, U64(0x40fc1ee3eb1d7ce2)0x40fc1ee3eb1d7ce2UL,
743 U64(0x23a2ed9b758ce44f)0x23a2ed9b758ce44fUL, U64(0x782c521b14fddc7e)0x782c521b14fddc7eUL,
744 U64(0x1c68267cf170504e)0x1c68267cf170504eUL, U64(0xbcf31558c1ca96e6)0xbcf31558c1ca96e6UL,
745 U64(0xa781b43b4ba6d235)0xa781b43b4ba6d235UL, U64(0xf6fd7dfe29ff0c80)0xf6fd7dfe29ff0c80UL,
746 U64(0xb0a4bad5c3fad91e)0xb0a4bad5c3fad91eUL, U64(0xd199f51ea963266c)0xd199f51ea963266cUL,
747 U64(0x414340349119c103)0x414340349119c103UL, U64(0x5405f269ed4dadf7)0x5405f269ed4dadf7UL,
748 U64(0xabd61bb649969dcd)0xabd61bb649969dcdUL, U64(0x6813dbeae7bdc3c8)0x6813dbeae7bdc3c8UL,
749 U64(0x65fb2ab09f8931d1)0x65fb2ab09f8931d1UL, U64(0xf1e7fae152e3181d)0xf1e7fae152e3181dUL,
750 U64(0xc1a67cef5a2339da)0xc1a67cef5a2339daUL, U64(0x7a4feea8e0f5bba1)0x7a4feea8e0f5bba1UL,
751 U64(0x1e0b9acf05783791)0x1e0b9acf05783791UL, U64(0x5b8ebf8061713831)0x5b8ebf8061713831UL,
752 U64(0x80e53cdbcb3af8d9)0x80e53cdbcb3af8d9UL, U64(0x7e898bd315e57502)0x7e898bd315e57502UL,
753 U64(0xc6bcfbf0213f2d47)0xc6bcfbf0213f2d47UL, U64(0x95a38e86b76e942d)0x95a38e86b76e942dUL,
754 U64(0x092e94218d243cba)0x092e94218d243cbaUL, U64(0x8339debf453622e7)0x8339debf453622e7UL,
755 U64(0xb11be402b9fe64ff)0xb11be402b9fe64ffUL, U64(0x57d9100d634177c9)0x57d9100d634177c9UL,
756 U64(0xcc4e8db52217cbc3)0xcc4e8db52217cbc3UL, U64(0x3b0cae9c71ec7aa2)0x3b0cae9c71ec7aa2UL,
757 U64(0xfb158ca451cbfe99)0xfb158ca451cbfe99UL, U64(0x2b33276d82ac6514)0x2b33276d82ac6514UL,
758 U64(0x01bf5ed77a04bde1)0x01bf5ed77a04bde1UL, U64(0xc5601994af33f779)0xc5601994af33f779UL,
759 U64(0x75c4a3416cc92e67)0x75c4a3416cc92e67UL, U64(0xf3844652a6eb7fc2)0xf3844652a6eb7fc2UL,
760 U64(0x3487e375fdd0ef64)0x3487e375fdd0ef64UL, U64(0x18ae430704609eed)0x18ae430704609eedUL,
761 U64(0x4d14efb993298efb)0x4d14efb993298efbUL, U64(0x815a620cb13e4538)0x815a620cb13e4538UL,
762 U64(0x125c354207487869)0x125c354207487869UL, U64(0x9eeea614ce42cf48)0x9eeea614ce42cf48UL,
763 U64(0xce2d3106d61fac1c)0xce2d3106d61fac1cUL, U64(0xbbe99247bad6827b)0xbbe99247bad6827bUL,
764 U64(0x071a871f7b1c149d)0x071a871f7b1c149dUL, U64(0x2e4a1cc10db81656)0x2e4a1cc10db81656UL,
765 U64(0x77a71ff298c149b8)0x77a71ff298c149b8UL, U64(0x06a5d9c80118a97c)0x06a5d9c80118a97cUL,
766 U64(0xad73c27e488e34b1)0xad73c27e488e34b1UL, U64(0x443a7b981e0db241)0x443a7b981e0db241UL,
767 U64(0xe3bbcfa355ab6074)0xe3bbcfa355ab6074UL, U64(0x0af276450328e684)0x0af276450328e684UL,
768 U64(0x73617a896dd1871b)0x73617a896dd1871bUL, U64(0x58525de4ef7de20f)0x58525de4ef7de20fUL,
769 U64(0xb7be3dcab8e6cd83)0xb7be3dcab8e6cd83UL, U64(0x19111dd07e64230c)0x19111dd07e64230cUL,
770 U64(0x842359a03e2a367a)0x842359a03e2a367aUL, U64(0x103f89f1f3401fb6)0x103f89f1f3401fb6UL,
771 U64(0xdc710444d157d475)0xdc710444d157d475UL, U64(0xb835702334da5845)0xb835702334da5845UL,
772 U64(0x4320fc876511a6dc)0x4320fc876511a6dcUL, U64(0xd026abc9d3679b8d)0xd026abc9d3679b8dUL,
773 U64(0x17250eee885c0b2b)0x17250eee885c0b2bUL, U64(0x90dab52a387ae76f)0x90dab52a387ae76fUL,
774 U64(0x31fed8d972c49c26)0x31fed8d972c49c26UL, U64(0x89cba8fa461ec463)0x89cba8fa461ec463UL,
775 U64(0x2ff5421677bcabb7)0x2ff5421677bcabb7UL, U64(0x396f122f85e41d7d)0x396f122f85e41d7dUL,
776 U64(0xa09b332430bac6a8)0xa09b332430bac6a8UL, U64(0xc888e8ced7070560)0xc888e8ced7070560UL,
777 U64(0xaeaf201ac682ee8f)0xaeaf201ac682ee8fUL, U64(0x1180d7268944a257)0x1180d7268944a257UL,
778 U64(0xf058a43628e7a5fc)0xf058a43628e7a5fcUL, U64(0xbd4c4b8fbbce2b07)0xbd4c4b8fbbce2b07UL,
779 U64(0xa1246df34abe7b49)0xa1246df34abe7b49UL, U64(0x7d5569b79be9af3c)0x7d5569b79be9af3cUL,
780 U64(0xa9b5a705bd9efa12)0xa9b5a705bd9efa12UL, U64(0xdb6b835baa4bc0e8)0xdb6b835baa4bc0e8UL,
781 U64(0x05793bac8f147342)0x05793bac8f147342UL, U64(0x21c1512881848390)0x21c1512881848390UL,
782 U64(0xfdb0556c50d357e5)0xfdb0556c50d357e5UL, U64(0x613d4fcb6a99ff72)0x613d4fcb6a99ff72UL,
783 U64(0x03dce2648e0cda3e)0x03dce2648e0cda3eUL, U64(0xe949b9e6568386f0)0xe949b9e6568386f0UL,
784 U64(0xfc0f0bbb2ad7ea04)0xfc0f0bbb2ad7ea04UL, U64(0x6a70675913b5a417)0x6a70675913b5a417UL,
785 U64(0x7f36d5046fe1c8e3)0x7f36d5046fe1c8e3UL, U64(0x0c57af8d02304ff8)0x0c57af8d02304ff8UL,
786 U64(0x32223abdfcc84618)0x32223abdfcc84618UL, U64(0x0891caf6f720815b)0x0891caf6f720815bUL,
787 U64(0xa63eeaec31a26fd4)0xa63eeaec31a26fd4UL, U64(0x2507345374944d33)0x2507345374944d33UL,
788 U64(0x49d28ac266394058)0x49d28ac266394058UL, U64(0xf5219f9aa7f3d6be)0xf5219f9aa7f3d6beUL,
789 U64(0x2d96fea583b4cc68)0x2d96fea583b4cc68UL, U64(0x5a31e1571b7585d0)0x5a31e1571b7585d0UL,
790 U64(0x8ed12fe53d02d0fe)0x8ed12fe53d02d0feUL, U64(0xdfade6205f5b0e4b)0xdfade6205f5b0e4bUL,
791 U64(0x4cabb16ee92d331a)0x4cabb16ee92d331aUL, U64(0x04c6657bf510cea3)0x04c6657bf510cea3UL,
792 U64(0xd73c2cd6a87b8f10)0xd73c2cd6a87b8f10UL, U64(0xe1d87310a1a307ab)0xe1d87310a1a307abUL,
793 U64(0x6cd5be9112ad0d6b)0x6cd5be9112ad0d6bUL, U64(0x97c032354366f3f2)0x97c032354366f3f2UL,
794 U64(0xd4e0ceb22677552e)0xd4e0ceb22677552eUL, U64(0x0000000000000000)0x0000000000000000UL,
795 U64(0x29509bde76a402cb)0x29509bde76a402cbUL, U64(0xc27a9e8bd42fe3e4)0xc27a9e8bd42fe3e4UL,
796 U64(0x5ef7842cee654b73)0x5ef7842cee654b73UL, U64(0xaf107ecdbc86536e)0xaf107ecdbc86536eUL,
797 U64(0x3fcacbe784fcb401)0x3fcacbe784fcb401UL, U64(0xd55f90655c73e8cf)0xd55f90655c73e8cfUL,
798 U64(0xe6c2f40fdabf1336)0xe6c2f40fdabf1336UL, U64(0xe8f6e7312c873b11)0xe8f6e7312c873b11UL,
799 U64(0xeb2a0555a28be12f)0xeb2a0555a28be12fUL, U64(0xe4a148bc2eb774e9)0xe4a148bc2eb774e9UL,
800 U64(0x9b979db84156bc0a)0x9b979db84156bc0aUL, U64(0x6eb60222e6a56ab4)0x6eb60222e6a56ab4UL,
801 U64(0x87ffbbc4b026ec44)0x87ffbbc4b026ec44UL, U64(0xc703a5275b3b90a6)0xc703a5275b3b90a6UL,
802 U64(0x47e699fc9001687f)0x47e699fc9001687fUL, U64(0x9c8d1aa73a4aa897)0x9c8d1aa73a4aa897UL,
803 U64(0x7cea3760e1ed12dd)0x7cea3760e1ed12ddUL, U64(0x4ec80ddd1d2554c5)0x4ec80ddd1d2554c5UL,
804 U64(0x13e36b957d4cc588)0x13e36b957d4cc588UL, U64(0x5d2b66486069914d)0x5d2b66486069914dUL,
805 U64(0x92b90999cc7280b0)0x92b90999cc7280b0UL, U64(0x517cc9c56259deb5)0x517cc9c56259deb5UL,
806 U64(0xc937b619ad03b881)0xc937b619ad03b881UL, U64(0xec30824ad997f5b2)0xec30824ad997f5b2UL,
807 U64(0xa45d565fc5aa080b)0xa45d565fc5aa080bUL, U64(0xd6837201d27f32f1)0xd6837201d27f32f1UL,
808 U64(0x635ef3789e9198ad)0x635ef3789e9198adUL, U64(0x531f75769651b96a)0x531f75769651b96aUL,
809 U64(0x4f77530a6721e924)0x4f77530a6721e924UL, U64(0x486dd4151c3dfdb9)0x486dd4151c3dfdb9UL,
810 U64(0x5f48dafb9461f692)0x5f48dafb9461f692UL, U64(0x375b011173dc355a)0x375b011173dc355aUL,
811 U64(0x3da9775470f4d3de)0x3da9775470f4d3deUL, U64(0x8d0dcd81b30e0ac0)0x8d0dcd81b30e0ac0UL,
812 U64(0x36e45fc609d888bb)0x36e45fc609d888bbUL, U64(0x55baacbe97491016)0x55baacbe97491016UL,
813 U64(0x8cb29356c90ab721)0x8cb29356c90ab721UL, U64(0x76184125e2c5f459)0x76184125e2c5f459UL,
814 U64(0x99f4210bb55edbd5)0x99f4210bb55edbd5UL, U64(0x6f095cf59ca1d755)0x6f095cf59ca1d755UL,
815 U64(0x9f51f8c3b44672a9)0x9f51f8c3b44672a9UL, U64(0x3538bda287d45285)0x3538bda287d45285UL,
816 U64(0x50c39712185d6354)0x50c39712185d6354UL, U64(0xf23b1885dcefc223)0xf23b1885dcefc223UL,
817 U64(0x79930ccc6ef9619f)0x79930ccc6ef9619fUL, U64(0xed8fdc9da3934853)0xed8fdc9da3934853UL,
818 U64(0xcb540aaa590bdf5e)0xcb540aaa590bdf5eUL, U64(0x5c94389f1a6d2cac)0x5c94389f1a6d2cacUL,
819 U64(0xe77daad8a0bbaed7)0xe77daad8a0bbaed7UL, U64(0x28efc5090ca0bf2a)0x28efc5090ca0bf2aUL,
820 U64(0xbf2ff73c4fc64cd8)0xbf2ff73c4fc64cd8UL, U64(0xb37858b14df60320)0xb37858b14df60320UL,
821 U64(0xf8c96ec0dfc724a7)0xf8c96ec0dfc724a7UL, U64(0x828680683f329f06)0x828680683f329f06UL,
822 U64(0x941cd051cd6a29cc)0x941cd051cd6a29ccUL, U64(0xc3c5c05cae2b5e05)0xc3c5c05cae2b5e05UL,
823 U64(0xb601631dc2e27062)0xb601631dc2e27062UL, U64(0xc01922382027843b)0xc01922382027843bUL,
824 U64(0x24b86a840e90f0d2)0x24b86a840e90f0d2UL, U64(0xd245177a276ffc52)0xd245177a276ffc52UL,
825 U64(0x0f8b4de98c3c95c6)0x0f8b4de98c3c95c6UL, U64(0x3e759530fef809e0)0x3e759530fef809e0UL,
826 U64(0x0b4d2892792c5b65)0x0b4d2892792c5b65UL, U64(0xc4df4743d5374a98)0xc4df4743d5374a98UL,
827 U64(0xa5e20888bfaeb5ea)0xa5e20888bfaeb5eaUL, U64(0xba56cc90c0d23f9a)0xba56cc90c0d23f9aUL,
828 U64(0x38d04cf8ffe0a09c)0x38d04cf8ffe0a09cUL, U64(0x62e1adafe495254c)0x62e1adafe495254cUL,
829 U64(0x0263bcb3f40867df)0x0263bcb3f40867dfUL, U64(0xcaeb547d230f62bf)0xcaeb547d230f62bfUL,
830 U64(0x6082111c109d4293)0x6082111c109d4293UL, U64(0xdad4dd8cd04f7d09)0xdad4dd8cd04f7d09UL,
831 U64(0xefec602e579b2f8c)0xefec602e579b2f8cUL, U64(0x1fb4c4187f7c8a70)0x1fb4c4187f7c8a70UL,
832 U64(0xffd3e9dfa4db303a)0xffd3e9dfa4db303aUL, U64(0x7bf0b07f9af10640)0x7bf0b07f9af10640UL,
833 U64(0xf49ec14dddf76b5f)0xf49ec14dddf76b5fUL, U64(0x8f6e713247066d1f)0x8f6e713247066d1fUL,
834 U64(0x339d646a86ccfbf9)0x339d646a86ccfbf9UL, U64(0x64447467e58d8c30)0x64447467e58d8c30UL,
835 U64(0x2c29a072f9b07189)0x2c29a072f9b07189UL, U64(0xd8b7613f24471ad6)0xd8b7613f24471ad6UL,
836 U64(0x6627c8d41185ebef)0x6627c8d41185ebefUL, U64(0xa347d140beb61c96)0xa347d140beb61c96UL,
837 U64(0xde12b8f7255fb3aa)0xde12b8f7255fb3aaUL, U64(0x9d324470404e1576)0x9d324470404e1576UL,
838 U64(0x9306574eb6763d51)0x9306574eb6763d51UL, U64(0xa80af9d2c79a47f3)0xa80af9d2c79a47f3UL,
839 U64(0x859c0777442e8b9b)0x859c0777442e8b9bUL, U64(0x69ac853d9db97e29)0x69ac853d9db97e29UL
840 }, { /* 6 */
841 U64(0xc3407dfc2de6377e)0xc3407dfc2de6377eUL, U64(0x5b9e93eea4256f77)0x5b9e93eea4256f77UL,
842 U64(0xadb58fdd50c845e0)0xadb58fdd50c845e0UL, U64(0x5219ff11a75bed86)0x5219ff11a75bed86UL,
843 U64(0x356b61cfd90b1de9)0x356b61cfd90b1de9UL, U64(0xfb8f406e25abe037)0xfb8f406e25abe037UL,
844 U64(0x7a5a0231c0f60796)0x7a5a0231c0f60796UL, U64(0x9d3cd216e1f5020b)0x9d3cd216e1f5020bUL,
845 U64(0x0c6550fb6b48d8f3)0x0c6550fb6b48d8f3UL, U64(0xf57508c427ff1c62)0xf57508c427ff1c62UL,
846 U64(0x4ad35ffa71cb407d)0x4ad35ffa71cb407dUL, U64(0x6290a2da1666aa6d)0x6290a2da1666aa6dUL,
847 U64(0xe284ec2349355f9f)0xe284ec2349355f9fUL, U64(0xb3c307c53d7c84ec)0xb3c307c53d7c84ecUL,
848 U64(0x05e23c0468365a02)0x05e23c0468365a02UL, U64(0x190bac4d6c9ebfa8)0x190bac4d6c9ebfa8UL,
849 U64(0x94bbbee9e28b80fa)0x94bbbee9e28b80faUL, U64(0xa34fc777529cb9b5)0xa34fc777529cb9b5UL,
850 U64(0xcc7b39f095bcd978)0xcc7b39f095bcd978UL, U64(0x2426addb0ce532e3)0x2426addb0ce532e3UL,
851 U64(0x7e79329312ce4fc7)0x7e79329312ce4fc7UL, U64(0xab09a72eebec2917)0xab09a72eebec2917UL,
852 U64(0xf8d15499f6b9d6c2)0xf8d15499f6b9d6c2UL, U64(0x1a55b8babf8c895d)0x1a55b8babf8c895dUL,
853 U64(0xdb8add17fb769a85)0xdb8add17fb769a85UL, U64(0xb57f2f368658e81b)0xb57f2f368658e81bUL,
854 U64(0x8acd36f18f3f41f6)0x8acd36f18f3f41f6UL, U64(0x5ce3b7bba50f11d3)0x5ce3b7bba50f11d3UL,
855 U64(0x114dcc14d5ee2f0a)0x114dcc14d5ee2f0aUL, U64(0xb91a7fcded1030e8)0xb91a7fcded1030e8UL,
856 U64(0x81d5425fe55de7a1)0x81d5425fe55de7a1UL, U64(0xb6213bc1554adeee)0xb6213bc1554adeeeUL,
857 U64(0x80144ef95f53f5f2)0x80144ef95f53f5f2UL, U64(0x1e7688186db4c10c)0x1e7688186db4c10cUL,
858 U64(0x3b912965db5fe1bc)0x3b912965db5fe1bcUL, U64(0xc281715a97e8252d)0xc281715a97e8252dUL,
859 U64(0x54a5d7e21c7f8171)0x54a5d7e21c7f8171UL, U64(0x4b12535ccbc5522e)0x4b12535ccbc5522eUL,
860 U64(0x1d289cefbea6f7f9)0x1d289cefbea6f7f9UL, U64(0x6ef5f2217d2e729e)0x6ef5f2217d2e729eUL,
861 U64(0xe6a7dc819b0d17ce)0xe6a7dc819b0d17ceUL, U64(0x1b94b41c05829b0e)0x1b94b41c05829b0eUL,
862 U64(0x33d7493c622f711e)0x33d7493c622f711eUL, U64(0xdcf7f942fa5ce421)0xdcf7f942fa5ce421UL,
863 U64(0x600fba8b7f7a8ecb)0x600fba8b7f7a8ecbUL, U64(0x46b60f011a83988e)0x46b60f011a83988eUL,
864 U64(0x235b898e0dcf4c47)0x235b898e0dcf4c47UL, U64(0x957ab24f588592a9)0x957ab24f588592a9UL,
865 U64(0x4354330572b5c28c)0x4354330572b5c28cUL, U64(0xa5f3ef84e9b8d542)0xa5f3ef84e9b8d542UL,
866 U64(0x8c711e02341b2d01)0x8c711e02341b2d01UL, U64(0x0b1874ae6a62a657)0x0b1874ae6a62a657UL,
867 U64(0x1213d8e306fc19ff)0x1213d8e306fc19ffUL, U64(0xfe6d7c6a4d9dba35)0xfe6d7c6a4d9dba35UL,
868 U64(0x65ed868f174cd4c9)0x65ed868f174cd4c9UL, U64(0x88522ea0e6236550)0x88522ea0e6236550UL,
869 U64(0x899322065c2d7703)0x899322065c2d7703UL, U64(0xc01e690bfef4018b)0xc01e690bfef4018bUL,
870 U64(0x915982ed8abddaf8)0x915982ed8abddaf8UL, U64(0xbe675b98ec3a4e4c)0xbe675b98ec3a4e4cUL,
871 U64(0xa996bf7f82f00db1)0xa996bf7f82f00db1UL, U64(0xe1daf8d49a27696a)0xe1daf8d49a27696aUL,
872 U64(0x2effd5d3dc8986e7)0x2effd5d3dc8986e7UL, U64(0xd153a51f2b1a2e81)0xd153a51f2b1a2e81UL,
873 U64(0x18caa0ebd690adfb)0x18caa0ebd690adfbUL, U64(0x390e3134b243c51a)0x390e3134b243c51aUL,
874 U64(0x2778b92cdff70416)0x2778b92cdff70416UL, U64(0x029f1851691c24a6)0x029f1851691c24a6UL,
875 U64(0x5e7cafeacc133575)0x5e7cafeacc133575UL, U64(0xfa4e4cc89fa5f264)0xfa4e4cc89fa5f264UL,
876 U64(0x5a5f9f481e2b7d24)0x5a5f9f481e2b7d24UL, U64(0x484c47ab18d764db)0x484c47ab18d764dbUL,
877 U64(0x400a27f2a1a7f479)0x400a27f2a1a7f479UL, U64(0xaeeb9b2a83da7315)0xaeeb9b2a83da7315UL,
878 U64(0x721c626879869734)0x721c626879869734UL, U64(0x042330a2d2384851)0x042330a2d2384851UL,
879 U64(0x85f672fd3765aff0)0x85f672fd3765aff0UL, U64(0xba446b3a3e02061d)0xba446b3a3e02061dUL,
880 U64(0x73dd6ecec3888567)0x73dd6ecec3888567UL, U64(0xffac70ccf793a866)0xffac70ccf793a866UL,
881 U64(0xdfa9edb5294ed2d4)0xdfa9edb5294ed2d4UL, U64(0x6c6aea7014325638)0x6c6aea7014325638UL,
882 U64(0x834a5a0e8c41c307)0x834a5a0e8c41c307UL, U64(0xcdba35562fb2cb2b)0xcdba35562fb2cb2bUL,
883 U64(0x0ad97808d06cb404)0x0ad97808d06cb404UL, U64(0x0f3b440cb85aee06)0x0f3b440cb85aee06UL,
884 U64(0xe5f9c876481f213b)0xe5f9c876481f213bUL, U64(0x98deee1289c35809)0x98deee1289c35809UL,
885 U64(0x59018bbfcd394bd1)0x59018bbfcd394bd1UL, U64(0xe01bf47220297b39)0xe01bf47220297b39UL,
886 U64(0xde68e1139340c087)0xde68e1139340c087UL, U64(0x9fa3ca4788e926ad)0x9fa3ca4788e926adUL,
887 U64(0xbb85679c840c144e)0xbb85679c840c144eUL, U64(0x53d8f3b71d55ffd5)0x53d8f3b71d55ffd5UL,
888 U64(0x0da45c5dd146caa0)0x0da45c5dd146caa0UL, U64(0x6f34fe87c72060cd)0x6f34fe87c72060cdUL,
889 U64(0x57fbc315cf6db784)0x57fbc315cf6db784UL, U64(0xcee421a1fca0fdde)0xcee421a1fca0fddeUL,
890 U64(0x3d2d0196607b8d4b)0x3d2d0196607b8d4bUL, U64(0x642c8a29ad42c69a)0x642c8a29ad42c69aUL,
891 U64(0x14aff010bdd87508)0x14aff010bdd87508UL, U64(0xac74837beac657b3)0xac74837beac657b3UL,
892 U64(0x3216459ad821634d)0x3216459ad821634dUL, U64(0x3fb219c70967a9ed)0x3fb219c70967a9edUL,
893 U64(0x06bc28f3bb246cf7)0x06bc28f3bb246cf7UL, U64(0xf2082c9126d562c6)0xf2082c9126d562c6UL,
894 U64(0x66b39278c45ee23c)0x66b39278c45ee23cUL, U64(0xbd394f6f3f2878b9)0xbd394f6f3f2878b9UL,
895 U64(0xfd33689d9e8f8cc0)0xfd33689d9e8f8cc0UL, U64(0x37f4799eb017394f)0x37f4799eb017394fUL,
896 U64(0x108cc0b26fe03d59)0x108cc0b26fe03d59UL, U64(0xda4bd1b1417888d6)0xda4bd1b1417888d6UL,
897 U64(0xb09d1332ee6eb219)0xb09d1332ee6eb219UL, U64(0x2f3ed975668794b4)0x2f3ed975668794b4UL,
898 U64(0x58c0871977375982)0x58c0871977375982UL, U64(0x7561463d78ace990)0x7561463d78ace990UL,
899 U64(0x09876cff037e82f1)0x09876cff037e82f1UL, U64(0x7fb83e35a8c05d94)0x7fb83e35a8c05d94UL,
900 U64(0x26b9b58a65f91645)0x26b9b58a65f91645UL, U64(0xef20b07e9873953f)0xef20b07e9873953fUL,
901 U64(0x3148516d0b3355b8)0x3148516d0b3355b8UL, U64(0x41cb2b541ba9e62a)0x41cb2b541ba9e62aUL,
902 U64(0x790416c613e43163)0x790416c613e43163UL, U64(0xa011d380818e8f40)0xa011d380818e8f40UL,
903 U64(0x3a5025c36151f3ef)0x3a5025c36151f3efUL, U64(0xd57095bdf92266d0)0xd57095bdf92266d0UL,
904 U64(0x498d4b0da2d97688)0x498d4b0da2d97688UL, U64(0x8b0c3a57353153a5)0x8b0c3a57353153a5UL,
905 U64(0x21c491df64d368e1)0x21c491df64d368e1UL, U64(0x8f2f0af5e7091bf4)0x8f2f0af5e7091bf4UL,
906 U64(0x2da1c1240f9bb012)0x2da1c1240f9bb012UL, U64(0xc43d59a92ccc49da)0xc43d59a92ccc49daUL,
907 U64(0xbfa6573e56345c1f)0xbfa6573e56345c1fUL, U64(0x828b56a8364fd154)0x828b56a8364fd154UL,
908 U64(0x9a41f643e0df7caf)0x9a41f643e0df7cafUL, U64(0xbcf843c985266aea)0xbcf843c985266aeaUL,
909 U64(0x2b1de9d7b4bfdce5)0x2b1de9d7b4bfdce5UL, U64(0x20059d79dedd7ab2)0x20059d79dedd7ab2UL,
910 U64(0x6dabe6d6ae3c446b)0x6dabe6d6ae3c446bUL, U64(0x45e81bf6c991ae7b)0x45e81bf6c991ae7bUL,
911 U64(0x6351ae7cac68b83e)0x6351ae7cac68b83eUL, U64(0xa432e32253b6c711)0xa432e32253b6c711UL,
912 U64(0xd092a9b991143cd2)0xd092a9b991143cd2UL, U64(0xcac711032e98b58f)0xcac711032e98b58fUL,
913 U64(0xd8d4c9e02864ac70)0xd8d4c9e02864ac70UL, U64(0xc5fc550f96c25b89)0xc5fc550f96c25b89UL,
914 U64(0xd7ef8dec903e4276)0xd7ef8dec903e4276UL, U64(0x67729ede7e50f06f)0x67729ede7e50f06fUL,
915 U64(0xeac28c7af045cf3d)0xeac28c7af045cf3dUL, U64(0xb15c1f945460a04a)0xb15c1f945460a04aUL,
916 U64(0x9cfddeb05bfb1058)0x9cfddeb05bfb1058UL, U64(0x93c69abce3a1fe5e)0x93c69abce3a1fe5eUL,
917 U64(0xeb0380dc4a4bdd6e)0xeb0380dc4a4bdd6eUL, U64(0xd20db1e8f8081874)0xd20db1e8f8081874UL,
918 U64(0x229a8528b7c15e14)0x229a8528b7c15e14UL, U64(0x44291750739fbc28)0x44291750739fbc28UL,
919 U64(0xd3ccbd4e42060a27)0xd3ccbd4e42060a27UL, U64(0xf62b1c33f4ed2a97)0xf62b1c33f4ed2a97UL,
920 U64(0x86a8660ae4779905)0x86a8660ae4779905UL, U64(0xd62e814a2a305025)0xd62e814a2a305025UL,
921 U64(0x477703a7a08d8add)0x477703a7a08d8addUL, U64(0x7b9b0e977af815c5)0x7b9b0e977af815c5UL,
922 U64(0x78c51a60a9ea2330)0x78c51a60a9ea2330UL, U64(0xa6adfb733aaae3b7)0xa6adfb733aaae3b7UL,
923 U64(0x97e5aa1e3199b60f)0x97e5aa1e3199b60fUL, U64(0x0000000000000000)0x0000000000000000UL,
924 U64(0xf4b404629df10e31)0xf4b404629df10e31UL, U64(0x5564db44a6719322)0x5564db44a6719322UL,
925 U64(0x9207961a59afec0d)0x9207961a59afec0dUL, U64(0x9624a6b88b97a45c)0x9624a6b88b97a45cUL,
926 U64(0x363575380a192b1c)0x363575380a192b1cUL, U64(0x2c60cd82b595a241)0x2c60cd82b595a241UL,
927 U64(0x7d272664c1dc7932)0x7d272664c1dc7932UL, U64(0x7142769faa94a1c1)0x7142769faa94a1c1UL,
928 U64(0xa1d0df263b809d13)0xa1d0df263b809d13UL, U64(0x1630e841d4c451ae)0x1630e841d4c451aeUL,
929 U64(0xc1df65ad44fa13d8)0xc1df65ad44fa13d8UL, U64(0x13d2d445bcf20bac)0x13d2d445bcf20bacUL,
930 U64(0xd915c546926abe23)0xd915c546926abe23UL, U64(0x38cf3d92084dd749)0x38cf3d92084dd749UL,
931 U64(0xe766d0272103059d)0xe766d0272103059dUL, U64(0xc7634d5effde7f2f)0xc7634d5effde7f2fUL,
932 U64(0x077d2455012a7ea4)0x077d2455012a7ea4UL, U64(0xedbfa82ff16fb199)0xedbfa82ff16fb199UL,
933 U64(0xaf2a978c39d46146)0xaf2a978c39d46146UL, U64(0x42953fa3c8bbd0df)0x42953fa3c8bbd0dfUL,
934 U64(0xcb061da59496a7dc)0xcb061da59496a7dcUL, U64(0x25e7a17db6eb20b0)0x25e7a17db6eb20b0UL,
935 U64(0x34aa6d6963050fba)0x34aa6d6963050fbaUL, U64(0xa76cf7d580a4f1e4)0xa76cf7d580a4f1e4UL,
936 U64(0xf7ea10954ee338c4)0xf7ea10954ee338c4UL, U64(0xfcf2643b24819e93)0xfcf2643b24819e93UL,
937 U64(0xcf252d0746aeef8d)0xcf252d0746aeef8dUL, U64(0x4ef06f58a3f3082c)0x4ef06f58a3f3082cUL,
938 U64(0x563acfb37563a5d7)0x563acfb37563a5d7UL, U64(0x5086e740ce47c920)0x5086e740ce47c920UL,
939 U64(0x2982f186dda3f843)0x2982f186dda3f843UL, U64(0x87696aac5e798b56)0x87696aac5e798b56UL,
940 U64(0x5d22bb1d1f010380)0x5d22bb1d1f010380UL, U64(0x035e14f7d31236f5)0x035e14f7d31236f5UL,
941 U64(0x3cec0d30da759f18)0x3cec0d30da759f18UL, U64(0xf3c920379cdb7095)0xf3c920379cdb7095UL,
942 U64(0xb8db736b571e22bb)0xb8db736b571e22bbUL, U64(0xdd36f5e44052f672)0xdd36f5e44052f672UL,
943 U64(0xaac8ab8851e23b44)0xaac8ab8851e23b44UL, U64(0xa857b3d938fe1fe2)0xa857b3d938fe1fe2UL,
944 U64(0x17f1e4e76eca43fd)0x17f1e4e76eca43fdUL, U64(0xec7ea4894b61a3ca)0xec7ea4894b61a3caUL,
945 U64(0x9e62c6e132e734fe)0x9e62c6e132e734feUL, U64(0xd4b1991b432c7483)0xd4b1991b432c7483UL,
946 U64(0x6ad6c283af163acf)0x6ad6c283af163acfUL, U64(0x1ce9904904a8e5aa)0x1ce9904904a8e5aaUL,
947 U64(0x5fbda34c761d2726)0x5fbda34c761d2726UL, U64(0xf910583f4cb7c491)0xf910583f4cb7c491UL,
948 U64(0xc6a241f845d06d7c)0xc6a241f845d06d7cUL, U64(0x4f3163fe19fd1a7f)0x4f3163fe19fd1a7fUL,
949 U64(0xe99c988d2357f9c8)0xe99c988d2357f9c8UL, U64(0x8eee06535d0709a7)0x8eee06535d0709a7UL,
950 U64(0x0efa48aa0254fc55)0x0efa48aa0254fc55UL, U64(0xb4be23903c56fa48)0xb4be23903c56fa48UL,
951 U64(0x763f52caabbedf65)0x763f52caabbedf65UL, U64(0xeee1bcd8227d876c)0xeee1bcd8227d876cUL,
952 U64(0xe345e085f33b4dcc)0xe345e085f33b4dccUL, U64(0x3e731561b369bbbe)0x3e731561b369bbbeUL,
953 U64(0x2843fd2067adea10)0x2843fd2067adea10UL, U64(0x2adce5710eb1ceb6)0x2adce5710eb1ceb6UL,
954 U64(0xb7e03767ef44ccbd)0xb7e03767ef44ccbdUL, U64(0x8db012a48e153f52)0x8db012a48e153f52UL,
955 U64(0x61ceb62dc5749c98)0x61ceb62dc5749c98UL, U64(0xe85d942b9959eb9b)0xe85d942b9959eb9bUL,
956 U64(0x4c6f7709caef2c8a)0x4c6f7709caef2c8aUL, U64(0x84377e5b8d6bbda3)0x84377e5b8d6bbda3UL,
957 U64(0x30895dcbb13d47eb)0x30895dcbb13d47ebUL, U64(0x74a04a9bc2a2fbc3)0x74a04a9bc2a2fbc3UL,
958 U64(0x6b17ce251518289c)0x6b17ce251518289cUL, U64(0xe438c4d0f2113368)0xe438c4d0f2113368UL,
959 U64(0x1fb784bed7bad35f)0x1fb784bed7bad35fUL, U64(0x9b80fae55ad16efc)0x9b80fae55ad16efcUL,
960 U64(0x77fe5e6c11b0cd36)0x77fe5e6c11b0cd36UL, U64(0xc858095247849129)0xc858095247849129UL,
961 U64(0x08466059b97090a2)0x08466059b97090a2UL, U64(0x01c10ca6ba0e1253)0x01c10ca6ba0e1253UL,
962 U64(0x6988d6747c040c3a)0x6988d6747c040c3aUL, U64(0x6849dad2c60a1e69)0x6849dad2c60a1e69UL,
963 U64(0x5147ebe67449db73)0x5147ebe67449db73UL, U64(0xc99905f4fd8a837a)0xc99905f4fd8a837aUL,
964 U64(0x991fe2b433cd4a5a)0x991fe2b433cd4a5aUL, U64(0xf09734c04fc94660)0xf09734c04fc94660UL,
965 U64(0xa28ecbd1e892abe6)0xa28ecbd1e892abe6UL, U64(0xf1563866f5c75433)0xf1563866f5c75433UL,
966 U64(0x4dae7baf70e13ed9)0x4dae7baf70e13ed9UL, U64(0x7ce62ac27bd26b61)0x7ce62ac27bd26b61UL,
967 U64(0x70837a39109ab392)0x70837a39109ab392UL, U64(0x90988e4b30b3c8ab)0x90988e4b30b3c8abUL,
968 U64(0xb2020b63877296bf)0xb2020b63877296bfUL, U64(0x156efcb607d6675b)0x156efcb607d6675bUL
969 }, { /* 7 */
970 U64(0xe63f55ce97c331d0)0xe63f55ce97c331d0UL, U64(0x25b506b0015bba16)0x25b506b0015bba16UL,
971 U64(0xc8706e29e6ad9ba8)0xc8706e29e6ad9ba8UL, U64(0x5b43d3775d521f6a)0x5b43d3775d521f6aUL,
972 U64(0x0bfa3d577035106e)0x0bfa3d577035106eUL, U64(0xab95fc172afb0e66)0xab95fc172afb0e66UL,
973 U64(0xf64b63979e7a3276)0xf64b63979e7a3276UL, U64(0xf58b4562649dad4b)0xf58b4562649dad4bUL,
974 U64(0x48f7c3dbae0c83f1)0x48f7c3dbae0c83f1UL, U64(0xff31916642f5c8c5)0xff31916642f5c8c5UL,
975 U64(0xcbb048dc1c4a0495)0xcbb048dc1c4a0495UL, U64(0x66b8f83cdf622989)0x66b8f83cdf622989UL,
976 U64(0x35c130e908e2b9b0)0x35c130e908e2b9b0UL, U64(0x7c761a61f0b34fa1)0x7c761a61f0b34fa1UL,
977 U64(0x3601161cf205268d)0x3601161cf205268dUL, U64(0x9e54ccfe2219b7d6)0x9e54ccfe2219b7d6UL,
978 U64(0x8b7d90a538940837)0x8b7d90a538940837UL, U64(0x9cd403588ea35d0b)0x9cd403588ea35d0bUL,
979 U64(0xbc3c6fea9ccc5b5a)0xbc3c6fea9ccc5b5aUL, U64(0xe5ff733b6d24aeed)0xe5ff733b6d24aeedUL,
980 U64(0xceed22de0f7eb8d2)0xceed22de0f7eb8d2UL, U64(0xec8581cab1ab545e)0xec8581cab1ab545eUL,
981 U64(0xb96105e88ff8e71d)0xb96105e88ff8e71dUL, U64(0x8ca03501871a5ead)0x8ca03501871a5eadUL,
982 U64(0x76ccce65d6db2a2f)0x76ccce65d6db2a2fUL, U64(0x5883f582a7b58057)0x5883f582a7b58057UL,
983 U64(0x3f7be4ed2e8adc3e)0x3f7be4ed2e8adc3eUL, U64(0x0fe7be06355cd9c9)0x0fe7be06355cd9c9UL,
984 U64(0xee054e6c1d11be83)0xee054e6c1d11be83UL, U64(0x1074365909b903a6)0x1074365909b903a6UL,
985 U64(0x5dde9f80b4813c10)0x5dde9f80b4813c10UL, U64(0x4a770c7d02b6692c)0x4a770c7d02b6692cUL,
986 U64(0x5379c8d5d7809039)0x5379c8d5d7809039UL, U64(0xb4067448161ed409)0xb4067448161ed409UL,
987 U64(0x5f5e5026183bd6cd)0x5f5e5026183bd6cdUL, U64(0xe898029bf4c29df9)0xe898029bf4c29df9UL,
988 U64(0x7fb63c940a54d09c)0x7fb63c940a54d09cUL, U64(0xc5171f897f4ba8bc)0xc5171f897f4ba8bcUL,
989 U64(0xa6f28db7b31d3d72)0xa6f28db7b31d3d72UL, U64(0x2e4f3be7716eaa78)0x2e4f3be7716eaa78UL,
990 U64(0x0d6771a099e63314)0x0d6771a099e63314UL, U64(0x82076254e41bf284)0x82076254e41bf284UL,
991 U64(0x2f0fd2b42733df98)0x2f0fd2b42733df98UL, U64(0x5c9e76d3e2dc49f0)0x5c9e76d3e2dc49f0UL,
992 U64(0x7aeb569619606cdb)0x7aeb569619606cdbUL, U64(0x83478b07b2468764)0x83478b07b2468764UL,
993 U64(0xcfadcb8d5923cd32)0xcfadcb8d5923cd32UL, U64(0x85dac7f05b95a41e)0x85dac7f05b95a41eUL,
994 U64(0xb5469d1b4043a1e9)0xb5469d1b4043a1e9UL, U64(0xb821ecbbd9a592fd)0xb821ecbbd9a592fdUL,
995 U64(0x1b8e0b0e798c13c8)0x1b8e0b0e798c13c8UL, U64(0x62a57b6d9a0be02e)0x62a57b6d9a0be02eUL,
996 U64(0xfcf1b793b81257f8)0xfcf1b793b81257f8UL, U64(0x9d94ea0bd8fe28eb)0x9d94ea0bd8fe28ebUL,
997 U64(0x4cea408aeb654a56)0x4cea408aeb654a56UL, U64(0x23284a47e888996c)0x23284a47e888996cUL,
998 U64(0x2d8f1d128b893545)0x2d8f1d128b893545UL, U64(0xf4cbac3132c0d8ab)0xf4cbac3132c0d8abUL,
999 U64(0xbd7c86b9ca912eba)0xbd7c86b9ca912ebaUL, U64(0x3a268eef3dbe6079)0x3a268eef3dbe6079UL,
1000 U64(0xf0d62f6077a9110c)0xf0d62f6077a9110cUL, U64(0x2735c916ade150cb)0x2735c916ade150cbUL,
1001 U64(0x89fd5f03942ee2ea)0x89fd5f03942ee2eaUL, U64(0x1acee25d2fd16628)0x1acee25d2fd16628UL,
1002 U64(0x90f39bab41181bff)0x90f39bab41181bffUL, U64(0x430dfe8cde39939f)0x430dfe8cde39939fUL,
1003 U64(0xf70b8ac4c8274796)0xf70b8ac4c8274796UL, U64(0x1c53aeaac6024552)0x1c53aeaac6024552UL,
1004 U64(0x13b410acf35e9c9b)0x13b410acf35e9c9bUL, U64(0xa532ab4249faa24f)0xa532ab4249faa24fUL,
1005 U64(0x2b1251e5625a163f)0x2b1251e5625a163fUL, U64(0xd7e3e676da4841c7)0xd7e3e676da4841c7UL,
1006 U64(0xa7b264e4e5404892)0xa7b264e4e5404892UL, U64(0xda8497d643ae72d3)0xda8497d643ae72d3UL,
1007 U64(0x861ae105a1723b23)0x861ae105a1723b23UL, U64(0x38a6414991048aa4)0x38a6414991048aa4UL,
1008 U64(0x6578dec92585b6b4)0x6578dec92585b6b4UL, U64(0x0280cfa6acbaeadd)0x0280cfa6acbaeaddUL,
1009 U64(0x88bdb650c273970a)0x88bdb650c273970aUL, U64(0x9333bd5ebbff84c2)0x9333bd5ebbff84c2UL,
1010 U64(0x4e6a8f2c47dfa08b)0x4e6a8f2c47dfa08bUL, U64(0x321c954db76cef2a)0x321c954db76cef2aUL,
1011 U64(0x418d312a72837942)0x418d312a72837942UL, U64(0xb29b38bfffcdf773)0xb29b38bfffcdf773UL,
1012 U64(0x6c022c38f90a4c07)0x6c022c38f90a4c07UL, U64(0x5a033a240b0f6a8a)0x5a033a240b0f6a8aUL,
1013 U64(0x1f93885f3ce5da6f)0x1f93885f3ce5da6fUL, U64(0xc38a537e96988bc6)0xc38a537e96988bc6UL,
1014 U64(0x39e6a81ac759ff44)0x39e6a81ac759ff44UL, U64(0x29929e43cee0fce2)0x29929e43cee0fce2UL,
1015 U64(0x40cdd87924de0ca2)0x40cdd87924de0ca2UL, U64(0xe9d8ebc8a29fe819)0xe9d8ebc8a29fe819UL,
1016 U64(0x0c2798f3cfbb46f4)0x0c2798f3cfbb46f4UL, U64(0x55e484223e53b343)0x55e484223e53b343UL,
1017 U64(0x4650948ecd0d2fd8)0x4650948ecd0d2fd8UL, U64(0x20e86cb2126f0651)0x20e86cb2126f0651UL,
1018 U64(0x6d42c56baf5739e7)0x6d42c56baf5739e7UL, U64(0xa06fc1405ace1e08)0xa06fc1405ace1e08UL,
1019 U64(0x7babbfc54f3d193b)0x7babbfc54f3d193bUL, U64(0x424d17df8864e67f)0x424d17df8864e67fUL,
1020 U64(0xd8045870ef14980e)0xd8045870ef14980eUL, U64(0xc6d7397c85ac3781)0xc6d7397c85ac3781UL,
1021 U64(0x21a885e1443273b1)0x21a885e1443273b1UL, U64(0x67f8116f893f5c69)0x67f8116f893f5c69UL,
1022 U64(0x24f5efe35706cff6)0x24f5efe35706cff6UL, U64(0xd56329d076f2ab1a)0xd56329d076f2ab1aUL,
1023 U64(0x5e1eb9754e66a32d)0x5e1eb9754e66a32dUL, U64(0x28d2771098bd8902)0x28d2771098bd8902UL,
1024 U64(0x8f6013f47dfdc190)0x8f6013f47dfdc190UL, U64(0x17a993fdb637553c)0x17a993fdb637553cUL,
1025 U64(0xe0a219397e1012aa)0xe0a219397e1012aaUL, U64(0x786b9930b5da8606)0x786b9930b5da8606UL,
1026 U64(0x6e82e39e55b0a6da)0x6e82e39e55b0a6daUL, U64(0x875a0856f72f4ec3)0x875a0856f72f4ec3UL,
1027 U64(0x3741ff4fa458536d)0x3741ff4fa458536dUL, U64(0xac4859b3957558fc)0xac4859b3957558fcUL,
1028 U64(0x7ef6d5c75c09a57c)0x7ef6d5c75c09a57cUL, U64(0xc04a758b6c7f14fb)0xc04a758b6c7f14fbUL,
1029 U64(0xf9acdd91ab26ebbf)0xf9acdd91ab26ebbfUL, U64(0x7391a467c5ef9668)0x7391a467c5ef9668UL,
1030 U64(0x335c7c1ee1319aca)0x335c7c1ee1319acaUL, U64(0xa91533b18641e4bb)0xa91533b18641e4bbUL,
1031 U64(0xe4bf9a683b79db0d)0xe4bf9a683b79db0dUL, U64(0x8e20faa72ba0b470)0x8e20faa72ba0b470UL,
1032 U64(0x51f907737b3a7ae4)0x51f907737b3a7ae4UL, U64(0x2268a314bed5ec8c)0x2268a314bed5ec8cUL,
1033 U64(0xd944b123b949edee)0xd944b123b949edeeUL, U64(0x31dcb3b84d8b7017)0x31dcb3b84d8b7017UL,
1034 U64(0xd3fe65279f218860)0xd3fe65279f218860UL, U64(0x097af2f1dc8ffab3)0x097af2f1dc8ffab3UL,
1035 U64(0x9b09a6fc312d0b91)0x9b09a6fc312d0b91UL, U64(0xcc6ded78a3c4520f)0xcc6ded78a3c4520fUL,
1036 U64(0x3481d9ba5ebfcc50)0x3481d9ba5ebfcc50UL, U64(0x4f2a667f1182d56b)0x4f2a667f1182d56bUL,
1037 U64(0xdfd9fdd4509ace94)0xdfd9fdd4509ace94UL, U64(0x26752045fbbc252b)0x26752045fbbc252bUL,
1038 U64(0xbffc491f662bc467)0xbffc491f662bc467UL, U64(0xdd593272fc202449)0xdd593272fc202449UL,
1039 U64(0x3cbbc218d46d4303)0x3cbbc218d46d4303UL, U64(0x91b372f817456e1f)0x91b372f817456e1fUL,
1040 U64(0x681faf69bc6385a0)0x681faf69bc6385a0UL, U64(0xb686bbeebaa43ed4)0xb686bbeebaa43ed4UL,
1041 U64(0x1469b5084cd0ca01)0x1469b5084cd0ca01UL, U64(0x98c98009cbca94ac)0x98c98009cbca94acUL,
1042 U64(0x6438379a73d8c354)0x6438379a73d8c354UL, U64(0xc2caba2dc0c5fe26)0xc2caba2dc0c5fe26UL,
1043 U64(0x3e3b0dbe78d7a9de)0x3e3b0dbe78d7a9deUL, U64(0x50b9ee202d670f04)0x50b9ee202d670f04UL,
1044 U64(0x4590b27b37eab0e5)0x4590b27b37eab0e5UL, U64(0x6025b4cb36b10af3)0x6025b4cb36b10af3UL,
1045 U64(0xfb2c1237079c0162)0xfb2c1237079c0162UL, U64(0xa12f28130c936be8)0xa12f28130c936be8UL,
1046 U64(0x4b37e52e54eb1ccc)0x4b37e52e54eb1cccUL, U64(0x083a1ba28ad28f53)0x083a1ba28ad28f53UL,
1047 U64(0xc10a9cd83a22611b)0xc10a9cd83a22611bUL, U64(0x9f1425ad7444c236)0x9f1425ad7444c236UL,
1048 U64(0x069d4cf7e9d3237a)0x069d4cf7e9d3237aUL, U64(0xedc56899e7f621be)0xedc56899e7f621beUL,
1049 U64(0x778c273680865fcf)0x778c273680865fcfUL, U64(0x309c5aeb1bd605f7)0x309c5aeb1bd605f7UL,
1050 U64(0x8de0dc52d1472b4d)0x8de0dc52d1472b4dUL, U64(0xf8ec34c2fd7b9e5f)0xf8ec34c2fd7b9e5fUL,
1051 U64(0xea18cd3d58787724)0xea18cd3d58787724UL, U64(0xaad515447ca67b86)0xaad515447ca67b86UL,
1052 U64(0x9989695a9d97e14c)0x9989695a9d97e14cUL, U64(0x0000000000000000)0x0000000000000000UL,
1053 U64(0xf196c63321f464ec)0xf196c63321f464ecUL, U64(0x71116bc169557cb5)0x71116bc169557cb5UL,
1054 U64(0xaf887f466f92c7c1)0xaf887f466f92c7c1UL, U64(0x972e3e0ffe964d65)0x972e3e0ffe964d65UL,
1055 U64(0x190ec4a8d536f915)0x190ec4a8d536f915UL, U64(0x95aef1a9522ca7b8)0x95aef1a9522ca7b8UL,
1056 U64(0xdc19db21aa7d51a9)0xdc19db21aa7d51a9UL, U64(0x94ee18fa0471d258)0x94ee18fa0471d258UL,
1057 U64(0x8087adf248a11859)0x8087adf248a11859UL, U64(0xc457f6da2916dd5c)0xc457f6da2916dd5cUL,
1058 U64(0xfa6cfb6451c17482)0xfa6cfb6451c17482UL, U64(0xf256e0c6db13fbd1)0xf256e0c6db13fbd1UL,
1059 U64(0x6a9f60cf10d96f7d)0x6a9f60cf10d96f7dUL, U64(0x4daaa9d9bd383fb6)0x4daaa9d9bd383fb6UL,
1060 U64(0x03c026f5fae79f3d)0x03c026f5fae79f3dUL, U64(0xde99148706c7bb74)0xde99148706c7bb74UL,
1061 U64(0x2a52b8b6340763df)0x2a52b8b6340763dfUL, U64(0x6fc20acd03edd33a)0x6fc20acd03edd33aUL,
1062 U64(0xd423c08320afdefa)0xd423c08320afdefaUL, U64(0xbbe1ca4e23420dc0)0xbbe1ca4e23420dc0UL,
1063 U64(0x966ed75ca8cb3885)0x966ed75ca8cb3885UL, U64(0xeb58246e0e2502c4)0xeb58246e0e2502c4UL,
1064 U64(0x055d6a021334bc47)0x055d6a021334bc47UL, U64(0xa47242111fa7d7af)0xa47242111fa7d7afUL,
1065 U64(0xe3623fcc84f78d97)0xe3623fcc84f78d97UL, U64(0x81c744a11efc6db9)0x81c744a11efc6db9UL,
1066 U64(0xaec8961539cfb221)0xaec8961539cfb221UL, U64(0xf31609958d4e8e31)0xf31609958d4e8e31UL,
1067 U64(0x63e5923ecc5695ce)0x63e5923ecc5695ceUL, U64(0x47107ddd9b505a38)0x47107ddd9b505a38UL,
1068 U64(0xa3afe7b5a0298135)0xa3afe7b5a0298135UL, U64(0x792b7063e387f3e6)0x792b7063e387f3e6UL,
1069 U64(0x0140e953565d75e0)0x0140e953565d75e0UL, U64(0x12f4f9ffa503e97b)0x12f4f9ffa503e97bUL,
1070 U64(0x750ce8902c3cb512)0x750ce8902c3cb512UL, U64(0xdbc47e8515f30733)0xdbc47e8515f30733UL,
1071 U64(0x1ed3610c6ab8af8f)0x1ed3610c6ab8af8fUL, U64(0x5239218681dde5d9)0x5239218681dde5d9UL,
1072 U64(0xe222d69fd2aaf877)0xe222d69fd2aaf877UL, U64(0xfe71783514a8bd25)0xfe71783514a8bd25UL,
1073 U64(0xcaf0a18f4a177175)0xcaf0a18f4a177175UL, U64(0x61655d9860ec7f13)0x61655d9860ec7f13UL,
1074 U64(0xe77fbc9dc19e4430)0xe77fbc9dc19e4430UL, U64(0x2ccff441ddd440a5)0x2ccff441ddd440a5UL,
1075 U64(0x16e97aaee06a20dc)0x16e97aaee06a20dcUL, U64(0xa855dae2d01c915b)0xa855dae2d01c915bUL,
1076 U64(0x1d1347f9905f30b2)0x1d1347f9905f30b2UL, U64(0xb7c652bdecf94b34)0xb7c652bdecf94b34UL,
1077 U64(0xd03e43d265c6175d)0xd03e43d265c6175dUL, U64(0xfdb15ec0ee4f2218)0xfdb15ec0ee4f2218UL,
1078 U64(0x57644b8492e9599e)0x57644b8492e9599eUL, U64(0x07dda5a4bf8e569a)0x07dda5a4bf8e569aUL,
1079 U64(0x54a46d71680ec6a3)0x54a46d71680ec6a3UL, U64(0x5624a2d7c4b42c7e)0x5624a2d7c4b42c7eUL,
1080 U64(0xbebca04c3076b187)0xbebca04c3076b187UL, U64(0x7d36f332a6ee3a41)0x7d36f332a6ee3a41UL,
1081 U64(0x3b6667bc6be31599)0x3b6667bc6be31599UL, U64(0x695f463aea3ef040)0x695f463aea3ef040UL,
1082 U64(0xad08b0e0c3282d1c)0xad08b0e0c3282d1cUL, U64(0xb15b1e4a052a684e)0xb15b1e4a052a684eUL,
1083 U64(0x44d05b2861b7c505)0x44d05b2861b7c505UL, U64(0x15295c5b1a8dbfe1)0x15295c5b1a8dbfe1UL,
1084 U64(0x744c01c37a61c0f2)0x744c01c37a61c0f2UL, U64(0x59c31cd1f1e8f5b7)0x59c31cd1f1e8f5b7UL,
1085 U64(0xef45a73f4b4ccb63)0xef45a73f4b4ccb63UL, U64(0x6bdf899c46841a9d)0x6bdf899c46841a9dUL,
1086 U64(0x3dfb2b4b823036e3)0x3dfb2b4b823036e3UL, U64(0xa2ef0ee6f674f4d5)0xa2ef0ee6f674f4d5UL,
1087 U64(0x184e2dfb836b8cf5)0x184e2dfb836b8cf5UL, U64(0x1134df0a5fe47646)0x1134df0a5fe47646UL,
1088 U64(0xbaa1231d751f7820)0xbaa1231d751f7820UL, U64(0xd17eaa81339b62bd)0xd17eaa81339b62bdUL,
1089 U64(0xb01bf71953771dae)0xb01bf71953771daeUL, U64(0x849a2ea30dc8d1fe)0x849a2ea30dc8d1feUL,
1090 U64(0x705182923f080955)0x705182923f080955UL, U64(0x0ea757556301ac29)0x0ea757556301ac29UL,
1091 U64(0x041d83514569c9a7)0x041d83514569c9a7UL, U64(0x0abad4042668658e)0x0abad4042668658eUL,
1092 U64(0x49b72a88f851f611)0x49b72a88f851f611UL, U64(0x8a3d79f66ec97dd7)0x8a3d79f66ec97dd7UL,
1093 U64(0xcd2d042bf59927ef)0xcd2d042bf59927efUL, U64(0xc930877ab0f0ee48)0xc930877ab0f0ee48UL,
1094 U64(0x9273540deda2f122)0x9273540deda2f122UL, U64(0xc797d02fd3f14261)0xc797d02fd3f14261UL,
1095 U64(0xe1e2f06a284d674a)0xe1e2f06a284d674aUL, U64(0xd2be8c74c97cfd80)0xd2be8c74c97cfd80UL,
1096 U64(0x9a494faf67707e71)0x9a494faf67707e71UL, U64(0xb3dbd1eca9908293)0xb3dbd1eca9908293UL,
1097 U64(0x72d14d3493b2e388)0x72d14d3493b2e388UL, U64(0xd6a30f258c153427)0xd6a30f258c153427UL
1098 },
1099};
1100
1101static const STREEBOG_LONG64unsigned long C16[12][8] = {
1102 {
1103 U64(0xdd806559f2a64507)0xdd806559f2a64507UL, U64(0x05767436cc744d23)0x05767436cc744d23UL,
1104 U64(0xa2422a08a460d315)0xa2422a08a460d315UL, U64(0x4b7ce09192676901)0x4b7ce09192676901UL,
1105 U64(0x714eb88d7585c4fc)0x714eb88d7585c4fcUL, U64(0x2f6a76432e45d016)0x2f6a76432e45d016UL,
1106 U64(0xebcb2f81c0657c1f)0xebcb2f81c0657c1fUL, U64(0xb1085bda1ecadae9)0xb1085bda1ecadae9UL
1107 }, {
1108 U64(0xe679047021b19bb7)0xe679047021b19bb7UL, U64(0x55dda21bd7cbcd56)0x55dda21bd7cbcd56UL,
1109 U64(0x5cb561c2db0aa7ca)0x5cb561c2db0aa7caUL, U64(0x9ab5176b12d69958)0x9ab5176b12d69958UL,
1110 U64(0x61d55e0f16b50131)0x61d55e0f16b50131UL, U64(0xf3feea720a232b98)0xf3feea720a232b98UL,
1111 U64(0x4fe39d460f70b5d7)0x4fe39d460f70b5d7UL, U64(0x6fa3b58aa99d2f1a)0x6fa3b58aa99d2f1aUL
1112 }, {
1113 U64(0x991e96f50aba0ab2)0x991e96f50aba0ab2UL, U64(0xc2b6f443867adb31)0xc2b6f443867adb31UL,
1114 U64(0xc1c93a376062db09)0xc1c93a376062db09UL, U64(0xd3e20fe490359eb1)0xd3e20fe490359eb1UL,
1115 U64(0xf2ea7514b1297b7b)0xf2ea7514b1297b7bUL, U64(0x06f15e5f529c1f8b)0x06f15e5f529c1f8bUL,
1116 U64(0x0a39fc286a3d8435)0x0a39fc286a3d8435UL, U64(0xf574dcac2bce2fc7)0xf574dcac2bce2fc7UL
1117 }, {
1118 U64(0x220cbebc84e3d12e)0x220cbebc84e3d12eUL, U64(0x3453eaa193e837f1)0x3453eaa193e837f1UL,
1119 U64(0xd8b71333935203be)0xd8b71333935203beUL, U64(0xa9d72c82ed03d675)0xa9d72c82ed03d675UL,
1120 U64(0x9d721cad685e353f)0x9d721cad685e353fUL, U64(0x488e857e335c3c7d)0x488e857e335c3c7dUL,
1121 U64(0xf948e1a05d71e4dd)0xf948e1a05d71e4ddUL, U64(0xef1fdfb3e81566d2)0xef1fdfb3e81566d2UL
1122 }, {
1123 U64(0x601758fd7c6cfe57)0x601758fd7c6cfe57UL, U64(0x7a56a27ea9ea63f5)0x7a56a27ea9ea63f5UL,
1124 U64(0xdfff00b723271a16)0xdfff00b723271a16UL, U64(0xbfcd1747253af5a3)0xbfcd1747253af5a3UL,
1125 U64(0x359e35d7800fffbd)0x359e35d7800fffbdUL, U64(0x7f151c1f1686104a)0x7f151c1f1686104aUL,
1126 U64(0x9a3f410c6ca92363)0x9a3f410c6ca92363UL, U64(0x4bea6bacad474799)0x4bea6bacad474799UL
1127 }, {
1128 U64(0xfa68407a46647d6e)0xfa68407a46647d6eUL, U64(0xbf71c57236904f35)0xbf71c57236904f35UL,
1129 U64(0x0af21f66c2bec6b6)0x0af21f66c2bec6b6UL, U64(0xcffaa6b71c9ab7b4)0xcffaa6b71c9ab7b4UL,
1130 U64(0x187f9ab49af08ec6)0x187f9ab49af08ec6UL, U64(0x2d66c4f95142a46c)0x2d66c4f95142a46cUL,
1131 U64(0x6fa4c33b7a3039c0)0x6fa4c33b7a3039c0UL, U64(0xae4faeae1d3ad3d9)0xae4faeae1d3ad3d9UL
1132 }, {
1133 U64(0x8886564d3a14d493)0x8886564d3a14d493UL, U64(0x3517454ca23c4af3)0x3517454ca23c4af3UL,
1134 U64(0x06476983284a0504)0x06476983284a0504UL, U64(0x0992abc52d822c37)0x0992abc52d822c37UL,
1135 U64(0xd3473e33197a93c9)0xd3473e33197a93c9UL, U64(0x399ec6c7e6bf87c9)0x399ec6c7e6bf87c9UL,
1136 U64(0x51ac86febf240954)0x51ac86febf240954UL, U64(0xf4c70e16eeaac5ec)0xf4c70e16eeaac5ecUL
1137 }, {
1138 U64(0xa47f0dd4bf02e71e)0xa47f0dd4bf02e71eUL, U64(0x36acc2355951a8d9)0x36acc2355951a8d9UL,
1139 U64(0x69d18d2bd1a5c42f)0x69d18d2bd1a5c42fUL, U64(0xf4892bcb929b0690)0xf4892bcb929b0690UL,
1140 U64(0x89b4443b4ddbc49a)0x89b4443b4ddbc49aUL, U64(0x4eb7f8719c36de1e)0x4eb7f8719c36de1eUL,
1141 U64(0x03e7aa020c6e4141)0x03e7aa020c6e4141UL, U64(0x9b1f5b424d93c9a7)0x9b1f5b424d93c9a7UL
1142 }, {
1143 U64(0x7261445183235adb)0x7261445183235adbUL, U64(0x0e38dc92cb1f2a60)0x0e38dc92cb1f2a60UL,
1144 U64(0x7b2b8a9aa6079c54)0x7b2b8a9aa6079c54UL, U64(0x800a440bdbb2ceb1)0x800a440bdbb2ceb1UL,
1145 U64(0x3cd955b7e00d0984)0x3cd955b7e00d0984UL, U64(0x3a7d3a1b25894224)0x3a7d3a1b25894224UL,
1146 U64(0x944c9ad8ec165fde)0x944c9ad8ec165fdeUL, U64(0x378f5a541631229b)0x378f5a541631229bUL
1147 }, {
1148 U64(0x74b4c7fb98459ced)0x74b4c7fb98459cedUL, U64(0x3698fad1153bb6c3)0x3698fad1153bb6c3UL,
1149 U64(0x7a1e6c303b7652f4)0x7a1e6c303b7652f4UL, U64(0x9fe76702af69334b)0x9fe76702af69334bUL,
1150 U64(0x1fffe18a1b336103)0x1fffe18a1b336103UL, U64(0x8941e71cff8a78db)0x8941e71cff8a78dbUL,
1151 U64(0x382ae548b2e4f3f3)0x382ae548b2e4f3f3UL, U64(0xabbedea680056f52)0xabbedea680056f52UL
1152 }, {
1153 U64(0x6bcaa4cd81f32d1b)0x6bcaa4cd81f32d1bUL, U64(0xdea2594ac06fd85d)0xdea2594ac06fd85dUL,
1154 U64(0xefbacd1d7d476e98)0xefbacd1d7d476e98UL, U64(0x8a1d71efea48b9ca)0x8a1d71efea48b9caUL,
1155 U64(0x2001802114846679)0x2001802114846679UL, U64(0xd8fa6bbbebab0761)0xd8fa6bbbebab0761UL,
1156 U64(0x3002c6cd635afe94)0x3002c6cd635afe94UL, U64(0x7bcd9ed0efc889fb)0x7bcd9ed0efc889fbUL
1157 }, {
1158 U64(0x48bc924af11bd720)0x48bc924af11bd720UL, U64(0xfaf417d5d9b21b99)0xfaf417d5d9b21b99UL,
1159 U64(0xe71da4aa88e12852)0xe71da4aa88e12852UL, U64(0x5d80ef9d1891cc86)0x5d80ef9d1891cc86UL,
1160 U64(0xf82012d430219f9b)0xf82012d430219f9bUL, U64(0xcda43c32bcdf1d77)0xcda43c32bcdf1d77UL,
1161 U64(0xd21380b00449b17a)0xd21380b00449b17aUL, U64(0x378ee767f11631ba)0x378ee767f11631baUL
1162 },
1163};
1164
1165#define B(x,i,j)(((unsigned long)(*(((const unsigned char *)(&x))+i)))<<
(j*8))
(((STREEBOG_LONG64unsigned long)(*(((const unsigned char *)(&x))+i)))<<(j*8))
1166#define PULL64(x)((((unsigned long)(*(((const unsigned char *)(&x))+0)))<<
(0*8))|(((unsigned long)(*(((const unsigned char *)(&x))+
1)))<<(1*8))|(((unsigned long)(*(((const unsigned char *
)(&x))+2)))<<(2*8))|(((unsigned long)(*(((const unsigned
char *)(&x))+3)))<<(3*8))|(((unsigned long)(*(((const
unsigned char *)(&x))+4)))<<(4*8))|(((unsigned long
)(*(((const unsigned char *)(&x))+5)))<<(5*8))|(((unsigned
long)(*(((const unsigned char *)(&x))+6)))<<(6*8))
|(((unsigned long)(*(((const unsigned char *)(&x))+7)))<<
(7*8)))
(B(x,0,0)(((unsigned long)(*(((const unsigned char *)(&x))+0)))<<
(0*8))
|B(x,1,1)(((unsigned long)(*(((const unsigned char *)(&x))+1)))<<
(1*8))
|B(x,2,2)(((unsigned long)(*(((const unsigned char *)(&x))+2)))<<
(2*8))
|B(x,3,3)(((unsigned long)(*(((const unsigned char *)(&x))+3)))<<
(3*8))
|B(x,4,4)(((unsigned long)(*(((const unsigned char *)(&x))+4)))<<
(4*8))
|B(x,5,5)(((unsigned long)(*(((const unsigned char *)(&x))+5)))<<
(5*8))
|B(x,6,6)(((unsigned long)(*(((const unsigned char *)(&x))+6)))<<
(6*8))
|B(x,7,7)(((unsigned long)(*(((const unsigned char *)(&x))+7)))<<
(7*8))
)
1167#define SWAB64(x)((((unsigned long)(*(((const unsigned char *)(&x))+0)))<<
(7*8))|(((unsigned long)(*(((const unsigned char *)(&x))+
1)))<<(6*8))|(((unsigned long)(*(((const unsigned char *
)(&x))+2)))<<(5*8))|(((unsigned long)(*(((const unsigned
char *)(&x))+3)))<<(4*8))|(((unsigned long)(*(((const
unsigned char *)(&x))+4)))<<(3*8))|(((unsigned long
)(*(((const unsigned char *)(&x))+5)))<<(2*8))|(((unsigned
long)(*(((const unsigned char *)(&x))+6)))<<(1*8))
|(((unsigned long)(*(((const unsigned char *)(&x))+7)))<<
(0*8)))
(B(x,0,7)(((unsigned long)(*(((const unsigned char *)(&x))+0)))<<
(7*8))
|B(x,1,6)(((unsigned long)(*(((const unsigned char *)(&x))+1)))<<
(6*8))
|B(x,2,5)(((unsigned long)(*(((const unsigned char *)(&x))+2)))<<
(5*8))
|B(x,3,4)(((unsigned long)(*(((const unsigned char *)(&x))+3)))<<
(4*8))
|B(x,4,3)(((unsigned long)(*(((const unsigned char *)(&x))+4)))<<
(3*8))
|B(x,5,2)(((unsigned long)(*(((const unsigned char *)(&x))+5)))<<
(2*8))
|B(x,6,1)(((unsigned long)(*(((const unsigned char *)(&x))+6)))<<
(1*8))
|B(x,7,0)(((unsigned long)(*(((const unsigned char *)(&x))+7)))<<
(0*8))
)
1168
1169static inline STREEBOG_LONG64unsigned long
1170multipermute(const STREEBOG_LONG64unsigned long *in, int i)
1171{
1172 STREEBOG_LONG64unsigned long t = 0;
1173
1174 t ^= A_PI_table[0][(in[0] >> (i * 8)) & 0xff];
1175 t ^= A_PI_table[1][(in[1] >> (i * 8)) & 0xff];
1176 t ^= A_PI_table[2][(in[2] >> (i * 8)) & 0xff];
1177 t ^= A_PI_table[3][(in[3] >> (i * 8)) & 0xff];
1178 t ^= A_PI_table[4][(in[4] >> (i * 8)) & 0xff];
1179 t ^= A_PI_table[5][(in[5] >> (i * 8)) & 0xff];
1180 t ^= A_PI_table[6][(in[6] >> (i * 8)) & 0xff];
1181 t ^= A_PI_table[7][(in[7] >> (i * 8)) & 0xff];
1182
1183 return t;
1184}
1185
1186static void
1187transform(STREEBOG_LONG64unsigned long *out, const STREEBOG_LONG64unsigned long *a,
1188 const STREEBOG_LONG64unsigned long *b)
1189{
1190 STREEBOG_LONG64unsigned long tmp[8];
1191
1192 tmp[0] = a[0] ^ b[0];
1193 tmp[1] = a[1] ^ b[1];
1194 tmp[2] = a[2] ^ b[2];
1195 tmp[3] = a[3] ^ b[3];
1196 tmp[4] = a[4] ^ b[4];
8
The right operand of '^' is a garbage value
1197 tmp[5] = a[5] ^ b[5];
1198 tmp[6] = a[6] ^ b[6];
1199 tmp[7] = a[7] ^ b[7];
1200
1201 out[0] = multipermute(tmp, 0);
1202 out[1] = multipermute(tmp, 1);
1203 out[2] = multipermute(tmp, 2);
1204 out[3] = multipermute(tmp, 3);
1205 out[4] = multipermute(tmp, 4);
1206 out[5] = multipermute(tmp, 5);
1207 out[6] = multipermute(tmp, 6);
1208 out[7] = multipermute(tmp, 7);
1209}
1210
1211static inline void
1212gN(STREEBOG_LONG64unsigned long *h, STREEBOG_LONG64unsigned long *m, STREEBOG_LONG64unsigned long *N)
1213{
1214 STREEBOG_LONG64unsigned long K[8];
1215 STREEBOG_LONG64unsigned long T[8];
1216 int i;
1217
1218 transform(K, h, N);
1219
1220 transform(T, K, m);
1221 transform(K, K, C16[0]);
1222 for (i = 1; i < 12; i++) {
6
Loop condition is true. Entering loop body
1223 transform(T, K, T);
1224 transform(K, K, C16[i]);
7
Calling 'transform'
1225 }
1226
1227 h[0] ^= T[0] ^ K[0] ^ m[0];
1228 h[1] ^= T[1] ^ K[1] ^ m[1];
1229 h[2] ^= T[2] ^ K[2] ^ m[2];
1230 h[3] ^= T[3] ^ K[3] ^ m[3];
1231 h[4] ^= T[4] ^ K[4] ^ m[4];
1232 h[5] ^= T[5] ^ K[5] ^ m[5];
1233 h[6] ^= T[6] ^ K[6] ^ m[6];
1234 h[7] ^= T[7] ^ K[7] ^ m[7];
1235}
1236
1237
1238static void
1239streebog_single_block(STREEBOG_CTX *ctx, const unsigned char *in, size_t num)
1240{
1241 STREEBOG_LONG64unsigned long M[8], l;
1242 STREEBOG_LONG64unsigned long CF;
1243 int i;
1244
1245 for (i = 0; i < 8; i++)
1246 M[i] = PULL64(in[i*8])((((unsigned long)(*(((const unsigned char *)(&in[i*8]))+
0)))<<(0*8))|(((unsigned long)(*(((const unsigned char *
)(&in[i*8]))+1)))<<(1*8))|(((unsigned long)(*(((const
unsigned char *)(&in[i*8]))+2)))<<(2*8))|(((unsigned
long)(*(((const unsigned char *)(&in[i*8]))+3)))<<
(3*8))|(((unsigned long)(*(((const unsigned char *)(&in[i
*8]))+4)))<<(4*8))|(((unsigned long)(*(((const unsigned
char *)(&in[i*8]))+5)))<<(5*8))|(((unsigned long)(
*(((const unsigned char *)(&in[i*8]))+6)))<<(6*8))|
(((unsigned long)(*(((const unsigned char *)(&in[i*8]))+7
)))<<(7*8)))
;
1247
1248 gN(ctx->h, M, ctx->N);
1249
1250 l = ctx->N[0];
1251 ctx->N[0] += num;
1252
1253 if (ctx->N[0] < l || ctx->N[0] < num) {
1254 for (i = 1; i < 8; i++) {
1255 ctx->N[i]++;
1256 if (ctx->N[i] != 0)
1257 break;
1258 }
1259 }
1260
1261 CF = 0;
1262 ctx->Sigma[0] += M[0];
1263 for (i = 1; i < 8; i++) {
1264 if (ctx->Sigma[i-1] != M[i-1])
1265 CF = (ctx->Sigma[i-1] < M[i-1]);
1266 ctx->Sigma[i] += M[i] + CF;
1267 }
1268}
1269
1270
1271
1272static void
1273streebog_block_data_order(STREEBOG_CTX *ctx, const unsigned char *in,
1274 size_t num)
1275{
1276 int i;
1277
1278 for (i = 0; i < num; i++)
1279 streebog_single_block(ctx, in + i * STREEBOG_CBLOCK64, 64 * 8);
1280}
1281
1282int
1283STREEBOG512_Final(unsigned char *md, STREEBOG_CTX *c)
1284{
1285 unsigned char *p = (unsigned char *)c->data;
1286 STREEBOG_LONG64unsigned long Z[STREEBOG_LBLOCK8] = {0};
1287 int n;
1288
1289 if (c->num
3.1
Field 'num' is not equal to STREEBOG_CBLOCK
== STREEBOG_CBLOCK64) {
4
Taking false branch
1290 streebog_block_data_order(c, p, 1);
1291 c->num -= STREEBOG_CBLOCK64;
1292 }
1293
1294 n = c->num;
1295 p[n++] = 1;
1296 memset(p + n, 0, STREEBOG_CBLOCK64 - n);
1297
1298 streebog_single_block(c, p, c->num * 8);
1299
1300 gN(c->h, c->N, Z);
5
Calling 'gN'
1301 gN(c->h, c->Sigma, Z);
1302
1303 for (n = 0; n < STREEBOG_LBLOCK8; n++)
1304 c->h[n] = SWAB64(c->h[n])((((unsigned long)(*(((const unsigned char *)(&c->h[n]
))+0)))<<(7*8))|(((unsigned long)(*(((const unsigned char
*)(&c->h[n]))+1)))<<(6*8))|(((unsigned long)(*(
((const unsigned char *)(&c->h[n]))+2)))<<(5*8))
|(((unsigned long)(*(((const unsigned char *)(&c->h[n]
))+3)))<<(4*8))|(((unsigned long)(*(((const unsigned char
*)(&c->h[n]))+4)))<<(3*8))|(((unsigned long)(*(
((const unsigned char *)(&c->h[n]))+5)))<<(2*8))
|(((unsigned long)(*(((const unsigned char *)(&c->h[n]
))+6)))<<(1*8))|(((unsigned long)(*(((const unsigned char
*)(&c->h[n]))+7)))<<(0*8)))
;
1305
1306 if (md == NULL((void*)0))
1307 return 0;
1308
1309 switch (c->md_len) {
1310 /* Let compiler decide if it's appropriate to unroll... */
1311 case STREEBOG256_LENGTH32:
1312 for (n = 0; n < STREEBOG256_LENGTH32 / 8; n++) {
1313 STREEBOG_LONG64unsigned long t = c->h[4+n];
1314
1315#if BYTE_ORDER1234 == BIG_ENDIAN4321
1316 *(md++) = (unsigned char)(t);
1317 *(md++) = (unsigned char)(t >> 8);
1318 *(md++) = (unsigned char)(t >> 16);
1319 *(md++) = (unsigned char)(t >> 24);
1320 *(md++) = (unsigned char)(t >> 32);
1321 *(md++) = (unsigned char)(t >> 40);
1322 *(md++) = (unsigned char)(t >> 48);
1323 *(md++) = (unsigned char)(t >> 56);
1324#else
1325 *(md++) = (unsigned char)(t >> 56);
1326 *(md++) = (unsigned char)(t >> 48);
1327 *(md++) = (unsigned char)(t >> 40);
1328 *(md++) = (unsigned char)(t >> 32);
1329 *(md++) = (unsigned char)(t >> 24);
1330 *(md++) = (unsigned char)(t >> 16);
1331 *(md++) = (unsigned char)(t >> 8);
1332 *(md++) = (unsigned char)(t);
1333#endif
1334 }
1335 break;
1336 case STREEBOG512_LENGTH64:
1337 for (n = 0; n < STREEBOG512_LENGTH64 / 8; n++) {
1338 STREEBOG_LONG64unsigned long t = c->h[n];
1339
1340#if BYTE_ORDER1234 == BIG_ENDIAN4321
1341 *(md++) = (unsigned char)(t);
1342 *(md++) = (unsigned char)(t >> 8);
1343 *(md++) = (unsigned char)(t >> 16);
1344 *(md++) = (unsigned char)(t >> 24);
1345 *(md++) = (unsigned char)(t >> 32);
1346 *(md++) = (unsigned char)(t >> 40);
1347 *(md++) = (unsigned char)(t >> 48);
1348 *(md++) = (unsigned char)(t >> 56);
1349#else
1350 *(md++) = (unsigned char)(t >> 56);
1351 *(md++) = (unsigned char)(t >> 48);
1352 *(md++) = (unsigned char)(t >> 40);
1353 *(md++) = (unsigned char)(t >> 32);
1354 *(md++) = (unsigned char)(t >> 24);
1355 *(md++) = (unsigned char)(t >> 16);
1356 *(md++) = (unsigned char)(t >> 8);
1357 *(md++) = (unsigned char)(t);
1358#endif
1359 }
1360 break;
1361 /* ... as well as make sure md_len is not abused. */
1362 default:
1363 return 0;
1364 }
1365
1366 return 1;
1367}
1368
1369int
1370STREEBOG256_Final(unsigned char *md, STREEBOG_CTX * c)
1371{
1372 return STREEBOG512_Final(md, c);
1373}
1374
1375int
1376STREEBOG512_Update(STREEBOG_CTX *c, const void *_data, size_t len)
1377{
1378 unsigned char *p = (unsigned char *)c->data;
1379 const unsigned char *data = (const unsigned char *)_data;
1380
1381 if (len == 0)
1382 return 1;
1383
1384 if (c->num != 0) {
1385 size_t n = STREEBOG_CBLOCK64 - c->num;
1386
1387 if (len < n) {
1388 memcpy(p + c->num, data, len);
1389 c->num += (unsigned int)len;
1390 return 1;
1391 } else {
1392 memcpy(p + c->num, data, n);
1393 c->num = 0;
1394 len -= n;
1395 data += n;
1396 streebog_block_data_order(c, p, 1);
1397 }
1398 }
1399
1400 if (len >= STREEBOG_CBLOCK64) {
1401 streebog_block_data_order(c, data, len / STREEBOG_CBLOCK64);
1402 data += len;
1403 len %= STREEBOG_CBLOCK64;
1404 data -= len;
1405 }
1406
1407 if (len != 0) {
1408 memcpy(p, data, len);
1409 c->num = (int)len;
1410 }
1411
1412 return 1;
1413}
1414
1415int
1416STREEBOG256_Update(STREEBOG_CTX *c, const void *data, size_t len)
1417{
1418 return STREEBOG512_Update(c, data, len);
1419}
1420
1421void
1422STREEBOG512_Transform(STREEBOG_CTX *c, const unsigned char *data)
1423{
1424 streebog_block_data_order(c, data, 1);
1425}
1426
1427int
1428STREEBOG256_Init(STREEBOG_CTX *c)
1429{
1430 memset(c, 0, sizeof(*c));
1431 memset(c->h, 1, sizeof(c->h));
1432
1433 c->md_len = STREEBOG256_LENGTH32;
1434 return 1;
1435}
1436
1437int
1438STREEBOG512_Init(STREEBOG_CTX *c)
1439{
1440 memset(c, 0, sizeof(*c));
1441 memset(c->h, 0, sizeof(c->h));
1442
1443 c->num = 0;
1444 c->md_len = STREEBOG512_LENGTH64;
1445 return 1;
1446}
1447
1448unsigned char *
1449STREEBOG256(const unsigned char *d, size_t n, unsigned char *md)
1450{
1451 STREEBOG_CTX c;
1452 static unsigned char m[STREEBOG256_LENGTH32];
1453
1454 if (md == NULL((void*)0))
1455 md = m;
1456 STREEBOG256_Init(&c);
1457 STREEBOG256_Update(&c, d, n);
1458 STREEBOG256_Final(md, &c);
1459 explicit_bzero(&c, sizeof(c));
1460 return (md);
1461}
1462
1463unsigned char *
1464STREEBOG512(const unsigned char *d, size_t n, unsigned char *md)
1465{
1466 STREEBOG_CTX c;
1467 static unsigned char m[STREEBOG512_LENGTH64];
1468
1469 if (md == NULL((void*)0))
1
Assuming 'md' is not equal to NULL
2
Taking false branch
1470 md = m;
1471 STREEBOG512_Init(&c);
1472 STREEBOG512_Update(&c, d, n);
1473 STREEBOG512_Final(md, &c);
3
Calling 'STREEBOG512_Final'
1474 explicit_bzero(&c, sizeof(c));
1475 return (md);
1476}
1477
1478#endif