/* Autogenerated: ECCKiila https://gitlab.com/nisec/ecckiila */ /*- * MIT License * * Copyright (c) 2020 Luis Rivera-Zamarripa, Jesús-Javier Chi-Domínguez, Billy Bob Brumley * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in all * copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #if defined(__SIZEOF_INT128__) && !defined(PEDANTIC) #include #include #define LIMB_BITS 64 #define LIMB_CNT 10 /* Field elements */ typedef uint64_t fe_t[LIMB_CNT]; typedef uint64_t limb_t; #ifdef OPENSSL_NO_ASM #define FIAT_ID_TC26_GOST_3410_2012_512_PARAMSETC_NO_ASM #endif #define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) #define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) #define fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(c, a, b) \ fiat_id_tc26_gost_3410_2012_512_paramSetC_add(c, a, b); \ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry(c, c) #define fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(c, a, b) \ fiat_id_tc26_gost_3410_2012_512_paramSetC_sub(c, a, b); \ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry(c, c) /* Projective points */ typedef struct { fe_t X; fe_t Y; fe_t T; fe_t Z; } pt_prj_t; /* Affine points */ typedef struct { fe_t X; fe_t Y; fe_t T; } pt_aff_t; /* BEGIN verbatim fiat code https://github.com/mit-plv/fiat-crypto */ /*- * MIT License * * Copyright (c) 2020 the fiat-crypto authors (see the AUTHORS file) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /* Autogenerated: unsaturated_solinas --static --use-value-barrier id_tc26_gost_3410_2012_512_paramSetC 64 '(auto)' '2^512 - 569' */ /* curve description: id_tc26_gost_3410_2012_512_paramSetC */ /* machine_wordsize = 64 (from "64") */ /* requested operations: (all) */ /* n = 10 (from "(auto)") */ /* s-c = 2^512 - [(1, 569)] (from "2^512 - 569") */ /* tight_bounds_multiplier = 1 (from "") */ /* */ /* Computed values: */ /* carry_chain = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 1] */ /* eval z = z[0] + (z[1] << 52) + (z[2] << 103) + (z[3] << 154) + (z[4] << 205) + (z[5] << 256) + (z[6] << 0x134) + (z[7] << 0x167) + (z[8] << 0x19a) + (z[9] << 0x1cd) */ /* bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) + (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) + (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96) + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17] << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168) + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26] << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240) + (z[31] << 248) + (z[32] << 256) + (z[33] << 0x108) + (z[34] << 0x110) + (z[35] << 0x118) + (z[36] << 0x120) + (z[37] << 0x128) + (z[38] << 0x130) + (z[39] << 0x138) + (z[40] << 0x140) + (z[41] << 0x148) + (z[42] << 0x150) + (z[43] << 0x158) + (z[44] << 0x160) + (z[45] << 0x168) + (z[46] << 0x170) + (z[47] << 0x178) + (z[48] << 0x180) + (z[49] << 0x188) + (z[50] << 0x190) + (z[51] << 0x198) + (z[52] << 0x1a0) + (z[53] << 0x1a8) + (z[54] << 0x1b0) + (z[55] << 0x1b8) + (z[56] << 0x1c0) + (z[57] << 0x1c8) + (z[58] << 0x1d0) + (z[59] << 0x1d8) + (z[60] << 0x1e0) + (z[61] << 0x1e8) + (z[62] << 0x1f0) + (z[63] << 0x1f8) */ /* balance = [0x1ffffffffffb8e, 0xffffffffffffe, 0xffffffffffffe, 0xffffffffffffe, 0xffffffffffffe, 0x1ffffffffffffe, 0xffffffffffffe, 0xffffffffffffe, 0xffffffffffffe, 0xffffffffffffe] */ #include typedef unsigned char fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1; typedef signed char fiat_id_tc26_gost_3410_2012_512_paramSetC_int1; typedef signed __int128 fiat_id_tc26_gost_3410_2012_512_paramSetC_int128; typedef unsigned __int128 fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128; #if (-1 & 3) != 3 #error "This code only works on a two's complement system" #endif #if !defined(FIAT_ID_TC26_GOST_3410_2012_512_PARAMSETC_NO_ASM) && \ (defined(__GNUC__) || defined(__clang__)) static __inline__ uint64_t fiat_id_tc26_gost_3410_2012_512_paramSetC_value_barrier_u64(uint64_t a) { __asm__("" : "+r"(a) : /* no inputs */); return a; } #else #define fiat_id_tc26_gost_3410_2012_512_paramSetC_value_barrier_u64(x) (x) #endif /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u52 is an addition with carry. * Postconditions: * out1 = (arg1 + arg2 + arg3) mod 2^52 * out2 = ⌊(arg1 + arg2 + arg3) / 2^52⌋ * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [0x0 ~> 0xfffffffffffff] * arg3: [0x0 ~> 0xfffffffffffff] * Output Bounds: * out1: [0x0 ~> 0xfffffffffffff] * out2: [0x0 ~> 0x1] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u52( uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint64_t arg2, uint64_t arg3) { uint64_t x1; uint64_t x2; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x3; x1 = ((arg1 + arg2) + arg3); x2 = (x1 & UINT64_C(0xfffffffffffff)); x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x1 >> 52); *out1 = x2; *out2 = x3; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u52 is a subtraction with borrow. * Postconditions: * out1 = (-arg1 + arg2 + -arg3) mod 2^52 * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^52⌋ * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [0x0 ~> 0xfffffffffffff] * arg3: [0x0 ~> 0xfffffffffffff] * Output Bounds: * out1: [0x0 ~> 0xfffffffffffff] * out2: [0x0 ~> 0x1] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u52( uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint64_t arg2, uint64_t arg3) { int64_t x1; fiat_id_tc26_gost_3410_2012_512_paramSetC_int1 x2; uint64_t x3; x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(x1 >> 52); x3 = (x1 & UINT64_C(0xfffffffffffff)); *out1 = x3; *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(0x0 - x2); } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51 is an addition with carry. * Postconditions: * out1 = (arg1 + arg2 + arg3) mod 2^51 * out2 = ⌊(arg1 + arg2 + arg3) / 2^51⌋ * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [0x0 ~> 0x7ffffffffffff] * arg3: [0x0 ~> 0x7ffffffffffff] * Output Bounds: * out1: [0x0 ~> 0x7ffffffffffff] * out2: [0x0 ~> 0x1] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint64_t arg2, uint64_t arg3) { uint64_t x1; uint64_t x2; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x3; x1 = ((arg1 + arg2) + arg3); x2 = (x1 & UINT64_C(0x7ffffffffffff)); x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x1 >> 51); *out1 = x2; *out2 = x3; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51 is a subtraction with borrow. * Postconditions: * out1 = (-arg1 + arg2 + -arg3) mod 2^51 * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^51⌋ * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [0x0 ~> 0x7ffffffffffff] * arg3: [0x0 ~> 0x7ffffffffffff] * Output Bounds: * out1: [0x0 ~> 0x7ffffffffffff] * out2: [0x0 ~> 0x1] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint64_t arg2, uint64_t arg3) { int64_t x1; fiat_id_tc26_gost_3410_2012_512_paramSetC_int1 x2; uint64_t x3; x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(x1 >> 51); x3 = (x1 & UINT64_C(0x7ffffffffffff)); *out1 = x3; *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(0x0 - x2); } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64 is a single-word conditional move. * Postconditions: * out1 = (if arg1 = 0 then arg2 else arg3) * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [0x0 ~> 0xffffffffffffffff] * arg3: [0x0 ~> 0xffffffffffffffff] * Output Bounds: * out1: [0x0 ~> 0xffffffffffffffff] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64( uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint64_t arg2, uint64_t arg3) { fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x1; uint64_t x2; uint64_t x3; x1 = (!(!arg1)); x2 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(0x0 - x1) & UINT64_C(0xffffffffffffffff)); x3 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_value_barrier_u64(x2) & arg3) | (fiat_id_tc26_gost_3410_2012_512_paramSetC_value_barrier_u64((~x2)) & arg2)); *out1 = x3; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul multiplies two field elements and reduces the result. * Postconditions: * eval out1 mod m = (eval arg1 * eval arg2) mod m * * Input Bounds: * arg1: [[0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000]] * arg2: [[0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000]] * Output Bounds: * out1: [[0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul( uint64_t out1[10], const uint64_t arg1[10], const uint64_t arg2[10]) { fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x1; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x2; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x3; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x4; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x5; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x6; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x7; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x8; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x9; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x10; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x11; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x12; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x13; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x14; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x15; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x16; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x17; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x18; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x19; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x20; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x21; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x22; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x23; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x24; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x25; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x26; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x27; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x28; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x29; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x30; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x31; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x32; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x33; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x34; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x35; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x36; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x37; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x38; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x39; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x40; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x41; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x42; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x43; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x44; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x45; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x46; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x47; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x48; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x49; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x50; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x51; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x52; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x53; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x54; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x55; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x56; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x57; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x58; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x59; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x60; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x61; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x62; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x63; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x64; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x65; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x66; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x67; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x68; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x69; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x70; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x71; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x72; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x73; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x74; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x75; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x76; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x77; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x78; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x79; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x80; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x81; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x82; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x83; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x84; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x85; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x86; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x87; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x88; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x89; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x90; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x91; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x92; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x93; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x94; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x95; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x96; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x97; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x98; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x99; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x100; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x101; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x102; uint64_t x103; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x104; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x105; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x106; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x107; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x108; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x109; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x110; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x111; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x112; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x113; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x114; uint64_t x115; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x116; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x117; uint64_t x118; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x119; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x120; uint64_t x121; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x122; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x123; uint64_t x124; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x125; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x126; uint64_t x127; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x128; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x129; uint64_t x130; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x131; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x132; uint64_t x133; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x134; uint64_t x135; uint64_t x136; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x137; uint64_t x138; uint64_t x139; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x140; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x141; uint64_t x142; uint64_t x143; uint64_t x144; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x145; uint64_t x146; uint64_t x147; x1 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * (arg2[9]))); x2 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * (arg2[8]))); x3 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * (arg2[7]))); x4 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * (arg2[6])) * 0x2)); x5 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * (arg2[5]))); x6 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * (arg2[4]))); x7 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * (arg2[3]))); x8 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * (arg2[2]))); x9 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * (arg2[1])) * 0x2)); x10 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * (arg2[9]))); x11 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * (arg2[8]))); x12 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * (arg2[7])) * 0x2)); x13 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * (arg2[6])) * 0x2)); x14 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * (arg2[5]))); x15 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * (arg2[4]))); x16 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * (arg2[3]))); x17 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * (arg2[2])) * 0x2)); x18 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * (arg2[9]))); x19 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * (arg2[8])) * 0x2)); x20 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * (arg2[7])) * 0x2)); x21 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * (arg2[6])) * 0x2)); x22 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * (arg2[5]))); x23 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * (arg2[4]))); x24 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * (arg2[3])) * 0x2)); x25 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (arg2[9])) * 0x2)); x26 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (arg2[8])) * 0x2)); x27 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (arg2[7])) * 0x2)); x28 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (arg2[6])) * 0x2)); x29 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (arg2[5]))); x30 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (arg2[4])) * 0x2)); x31 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * (arg2[9]))); x32 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * (arg2[8]))); x33 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * (arg2[7]))); x34 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * (arg2[6]))); x35 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * (arg2[5]))); x36 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (arg2[9]))); x37 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (arg2[8]))); x38 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (arg2[7]))); x39 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (arg2[6])) * 0x2)); x40 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * (arg2[9]))); x41 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * (arg2[8]))); x42 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * (arg2[7])) * 0x2)); x43 = (UINT16_C(0x239) * ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * (arg2[9]))); x44 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * (arg2[8])) * 0x2)); x45 = (UINT16_C(0x239) * (((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * (arg2[9])) * 0x2)); x46 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * (arg2[0])); x47 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * ((arg2[1]) * 0x2)); x48 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * (arg2[0])); x49 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * ((arg2[2]) * 0x2)); x50 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * ((arg2[1]) * 0x2)); x51 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * (arg2[0])); x52 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * ((arg2[3]) * 0x2)); x53 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * ((arg2[2]) * 0x2)); x54 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * ((arg2[1]) * 0x2)); x55 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (arg2[0])); x56 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * (arg2[4])); x57 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * (arg2[3])); x58 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * (arg2[2])); x59 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * (arg2[1])); x60 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * (arg2[0])); x61 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (arg2[5])); x62 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (arg2[4])); x63 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (arg2[3])); x64 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (arg2[2])); x65 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * ((arg2[1]) * 0x2)); x66 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (arg2[0])); x67 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * ((arg2[6]) * 0x2)); x68 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * (arg2[5])); x69 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * (arg2[4])); x70 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * (arg2[3])); x71 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * ((arg2[2]) * 0x2)); x72 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * ((arg2[1]) * 0x2)); x73 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * (arg2[0])); x74 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * ((arg2[7]) * 0x2)); x75 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * ((arg2[6]) * 0x2)); x76 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * (arg2[5])); x77 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * (arg2[4])); x78 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * ((arg2[3]) * 0x2)); x79 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * ((arg2[2]) * 0x2)); x80 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * ((arg2[1]) * 0x2)); x81 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * (arg2[0])); x82 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * ((arg2[8]) * 0x2)); x83 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * ((arg2[7]) * 0x2)); x84 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * ((arg2[6]) * 0x2)); x85 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * (arg2[5])); x86 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * ((arg2[4]) * 0x2)); x87 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * ((arg2[3]) * 0x2)); x88 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * ((arg2[2]) * 0x2)); x89 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * ((arg2[1]) * 0x2)); x90 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * (arg2[0])); x91 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg2[9])); x92 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg2[8])); x93 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg2[7])); x94 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg2[6])); x95 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg2[5])); x96 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg2[4])); x97 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg2[3])); x98 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg2[2])); x99 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg2[1])); x100 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg2[0])); x101 = (x100 + (x45 + (x44 + (x42 + (x39 + (x35 + (x30 + (x24 + (x17 + x9))))))))); x102 = (x101 >> 52); x103 = (uint64_t)(x101 & UINT64_C(0xfffffffffffff)); x104 = (x91 + (x82 + (x74 + (x67 + (x61 + (x56 + (x52 + (x49 + (x47 + x46))))))))); x105 = (x92 + (x83 + (x75 + (x68 + (x62 + (x57 + (x53 + (x50 + (x48 + x1))))))))); x106 = (x93 + (x84 + (x76 + (x69 + (x63 + (x58 + (x54 + (x51 + (x10 + x2))))))))); x107 = (x94 + (x85 + (x77 + (x70 + (x64 + (x59 + (x55 + (x18 + (x11 + x3))))))))); x108 = (x95 + (x86 + (x78 + (x71 + (x65 + (x60 + (x25 + (x19 + (x12 + x4))))))))); x109 = (x96 + (x87 + (x79 + (x72 + (x66 + (x31 + (x26 + (x20 + (x13 + x5))))))))); x110 = (x97 + (x88 + (x80 + (x73 + (x36 + (x32 + (x27 + (x21 + (x14 + x6))))))))); x111 = (x98 + (x89 + (x81 + (x40 + (x37 + (x33 + (x28 + (x22 + (x15 + x7))))))))); x112 = (x99 + (x90 + (x43 + (x41 + (x38 + (x34 + (x29 + (x23 + (x16 + x8))))))))); x113 = (x102 + x112); x114 = (x113 >> 51); x115 = (uint64_t)(x113 & UINT64_C(0x7ffffffffffff)); x116 = (x114 + x111); x117 = (x116 >> 51); x118 = (uint64_t)(x116 & UINT64_C(0x7ffffffffffff)); x119 = (x117 + x110); x120 = (x119 >> 51); x121 = (uint64_t)(x119 & UINT64_C(0x7ffffffffffff)); x122 = (x120 + x109); x123 = (x122 >> 51); x124 = (uint64_t)(x122 & UINT64_C(0x7ffffffffffff)); x125 = (x123 + x108); x126 = (x125 >> 52); x127 = (uint64_t)(x125 & UINT64_C(0xfffffffffffff)); x128 = (x126 + x107); x129 = (x128 >> 51); x130 = (uint64_t)(x128 & UINT64_C(0x7ffffffffffff)); x131 = (x129 + x106); x132 = (x131 >> 51); x133 = (uint64_t)(x131 & UINT64_C(0x7ffffffffffff)); x134 = (x132 + x105); x135 = (uint64_t)(x134 >> 51); x136 = (uint64_t)(x134 & UINT64_C(0x7ffffffffffff)); x137 = (x135 + x104); x138 = (uint64_t)(x137 >> 51); x139 = (uint64_t)(x137 & UINT64_C(0x7ffffffffffff)); x140 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)UINT16_C(0x239) * x138); x141 = (x103 + x140); x142 = (uint64_t)(x141 >> 52); x143 = (uint64_t)(x141 & UINT64_C(0xfffffffffffff)); x144 = (x142 + x115); x145 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x144 >> 51); x146 = (x144 & UINT64_C(0x7ffffffffffff)); x147 = (x145 + x118); out1[0] = x143; out1[1] = x146; out1[2] = x147; out1[3] = x121; out1[4] = x124; out1[5] = x127; out1[6] = x130; out1[7] = x133; out1[8] = x136; out1[9] = x139; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square squares a field element and reduces the result. * Postconditions: * eval out1 mod m = (eval arg1 * eval arg1) mod m * * Input Bounds: * arg1: [[0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000]] * Output Bounds: * out1: [[0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square( uint64_t out1[10], const uint64_t arg1[10]) { uint64_t x1; uint64_t x2; uint64_t x3; uint64_t x4; uint64_t x5; uint64_t x6; uint64_t x7; uint64_t x8; uint64_t x9; uint64_t x10; uint64_t x11; uint64_t x12; uint64_t x13; uint64_t x14; uint64_t x15; uint64_t x16; uint64_t x17; uint64_t x18; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x19; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x20; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x21; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x22; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x23; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x24; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x25; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x26; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x27; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x28; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x29; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x30; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x31; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x32; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x33; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x34; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x35; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x36; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x37; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x38; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x39; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x40; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x41; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x42; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x43; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x44; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x45; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x46; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x47; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x48; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x49; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x50; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x51; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x52; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x53; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x54; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x55; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x56; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x57; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x58; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x59; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x60; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x61; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x62; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x63; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x64; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x65; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x66; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x67; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x68; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x69; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x70; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x71; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x72; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x73; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x74; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x75; uint64_t x76; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x77; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x78; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x79; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x80; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x81; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x82; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x83; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x84; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x85; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x86; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x87; uint64_t x88; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x89; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x90; uint64_t x91; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x92; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x93; uint64_t x94; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x95; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x96; uint64_t x97; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x98; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x99; uint64_t x100; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x101; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x102; uint64_t x103; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x104; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x105; uint64_t x106; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x107; uint64_t x108; uint64_t x109; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x110; uint64_t x111; uint64_t x112; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x113; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128 x114; uint64_t x115; uint64_t x116; uint64_t x117; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x118; uint64_t x119; uint64_t x120; x1 = ((arg1[9]) * UINT16_C(0x239)); x2 = (x1 * 0x2); x3 = ((arg1[9]) * 0x2); x4 = ((arg1[8]) * UINT16_C(0x239)); x5 = (x4 * 0x2); x6 = ((arg1[8]) * 0x2); x7 = ((arg1[7]) * UINT16_C(0x239)); x8 = (x7 * 0x2); x9 = ((arg1[7]) * 0x2); x10 = ((arg1[6]) * UINT16_C(0x239)); x11 = (x10 * 0x2); x12 = ((arg1[6]) * 0x2); x13 = ((arg1[5]) * UINT16_C(0x239)); x14 = ((arg1[5]) * 0x2); x15 = ((arg1[4]) * 0x2); x16 = ((arg1[3]) * 0x2); x17 = ((arg1[2]) * 0x2); x18 = ((arg1[1]) * 0x2); x19 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[9]) * x1); x20 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * x2); x21 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[8]) * x4); x22 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * x2); x23 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * (x5 * 0x2)); x24 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[7]) * (x7 * 0x2)); x25 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (x2 * 0x2)); x26 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (x5 * 0x2)); x27 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (x8 * 0x2)); x28 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[6]) * (x10 * 0x2)); x29 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * x2); x30 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * x5); x31 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * x8); x32 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * x11); x33 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[5]) * x13); x34 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * x2); x35 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * x5); x36 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * x8); x37 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (x11 * 0x2)); x38 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * x14); x39 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[4]) * (arg1[4])); x40 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * x2); x41 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * x5); x42 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * (x8 * 0x2)); x43 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * (x12 * 0x2)); x44 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * x14); x45 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * x15); x46 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[3]) * (arg1[3])); x47 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * x2); x48 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * (x5 * 0x2)); x49 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * (x9 * 0x2)); x50 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * (x12 * 0x2)); x51 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * x14); x52 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * x15); x53 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * (x16 * 0x2)); x54 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[2]) * ((arg1[2]) * 0x2)); x55 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * (x2 * 0x2)); x56 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * (x6 * 0x2)); x57 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * (x9 * 0x2)); x58 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * (x12 * 0x2)); x59 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * x14); x60 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * (x15 * 0x2)); x61 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * (x16 * 0x2)); x62 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * (x17 * 0x2)); x63 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[1]) * ((arg1[1]) * 0x2)); x64 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x3); x65 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x6); x66 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x9); x67 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x12); x68 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x14); x69 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x15); x70 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x16); x71 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x17); x72 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * x18); x73 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)(arg1[0]) * (arg1[0])); x74 = (x73 + (x55 + (x48 + (x42 + (x37 + x33))))); x75 = (x74 >> 52); x76 = (uint64_t)(x74 & UINT64_C(0xfffffffffffff)); x77 = (x64 + (x56 + (x49 + (x43 + x38)))); x78 = (x65 + (x57 + (x50 + (x44 + (x39 + x19))))); x79 = (x66 + (x58 + (x51 + (x45 + x20)))); x80 = (x67 + (x59 + (x52 + (x46 + (x22 + x21))))); x81 = (x68 + (x60 + (x53 + (x25 + x23)))); x82 = (x69 + (x61 + (x54 + (x29 + (x26 + x24))))); x83 = (x70 + (x62 + (x34 + (x30 + x27)))); x84 = (x71 + (x63 + (x40 + (x35 + (x31 + x28))))); x85 = (x72 + (x47 + (x41 + (x36 + x32)))); x86 = (x75 + x85); x87 = (x86 >> 51); x88 = (uint64_t)(x86 & UINT64_C(0x7ffffffffffff)); x89 = (x87 + x84); x90 = (x89 >> 51); x91 = (uint64_t)(x89 & UINT64_C(0x7ffffffffffff)); x92 = (x90 + x83); x93 = (x92 >> 51); x94 = (uint64_t)(x92 & UINT64_C(0x7ffffffffffff)); x95 = (x93 + x82); x96 = (x95 >> 51); x97 = (uint64_t)(x95 & UINT64_C(0x7ffffffffffff)); x98 = (x96 + x81); x99 = (x98 >> 52); x100 = (uint64_t)(x98 & UINT64_C(0xfffffffffffff)); x101 = (x99 + x80); x102 = (x101 >> 51); x103 = (uint64_t)(x101 & UINT64_C(0x7ffffffffffff)); x104 = (x102 + x79); x105 = (x104 >> 51); x106 = (uint64_t)(x104 & UINT64_C(0x7ffffffffffff)); x107 = (x105 + x78); x108 = (uint64_t)(x107 >> 51); x109 = (uint64_t)(x107 & UINT64_C(0x7ffffffffffff)); x110 = (x108 + x77); x111 = (uint64_t)(x110 >> 51); x112 = (uint64_t)(x110 & UINT64_C(0x7ffffffffffff)); x113 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint128)UINT16_C(0x239) * x111); x114 = (x76 + x113); x115 = (uint64_t)(x114 >> 52); x116 = (uint64_t)(x114 & UINT64_C(0xfffffffffffff)); x117 = (x115 + x88); x118 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x117 >> 51); x119 = (x117 & UINT64_C(0x7ffffffffffff)); x120 = (x118 + x91); out1[0] = x116; out1[1] = x119; out1[2] = x120; out1[3] = x94; out1[4] = x97; out1[5] = x100; out1[6] = x103; out1[7] = x106; out1[8] = x109; out1[9] = x112; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry reduces a field element. * Postconditions: * eval out1 mod m = eval arg1 mod m * * Input Bounds: * arg1: [[0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000]] * Output Bounds: * out1: [[0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry( uint64_t out1[10], const uint64_t arg1[10]) { uint64_t x1; uint64_t x2; uint64_t x3; uint64_t x4; uint64_t x5; uint64_t x6; uint64_t x7; uint64_t x8; uint64_t x9; uint64_t x10; uint64_t x11; uint64_t x12; uint64_t x13; uint64_t x14; uint64_t x15; uint64_t x16; uint64_t x17; uint64_t x18; uint64_t x19; uint64_t x20; uint64_t x21; uint64_t x22; x1 = (arg1[0]); x2 = ((x1 >> 52) + (arg1[1])); x3 = ((x2 >> 51) + (arg1[2])); x4 = ((x3 >> 51) + (arg1[3])); x5 = ((x4 >> 51) + (arg1[4])); x6 = ((x5 >> 51) + (arg1[5])); x7 = ((x6 >> 52) + (arg1[6])); x8 = ((x7 >> 51) + (arg1[7])); x9 = ((x8 >> 51) + (arg1[8])); x10 = ((x9 >> 51) + (arg1[9])); x11 = ((x1 & UINT64_C(0xfffffffffffff)) + (UINT16_C(0x239) * (x10 >> 51))); x12 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x11 >> 52) + (x2 & UINT64_C(0x7ffffffffffff))); x13 = (x11 & UINT64_C(0xfffffffffffff)); x14 = (x12 & UINT64_C(0x7ffffffffffff)); x15 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x12 >> 51) + (x3 & UINT64_C(0x7ffffffffffff))); x16 = (x4 & UINT64_C(0x7ffffffffffff)); x17 = (x5 & UINT64_C(0x7ffffffffffff)); x18 = (x6 & UINT64_C(0xfffffffffffff)); x19 = (x7 & UINT64_C(0x7ffffffffffff)); x20 = (x8 & UINT64_C(0x7ffffffffffff)); x21 = (x9 & UINT64_C(0x7ffffffffffff)); x22 = (x10 & UINT64_C(0x7ffffffffffff)); out1[0] = x13; out1[1] = x14; out1[2] = x15; out1[3] = x16; out1[4] = x17; out1[5] = x18; out1[6] = x19; out1[7] = x20; out1[8] = x21; out1[9] = x22; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_add adds two field elements. * Postconditions: * eval out1 mod m = (eval arg1 + eval arg2) mod m * * Input Bounds: * arg1: [[0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000]] * arg2: [[0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000]] * Output Bounds: * out1: [[0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_add( uint64_t out1[10], const uint64_t arg1[10], const uint64_t arg2[10]) { uint64_t x1; uint64_t x2; uint64_t x3; uint64_t x4; uint64_t x5; uint64_t x6; uint64_t x7; uint64_t x8; uint64_t x9; uint64_t x10; x1 = ((arg1[0]) + (arg2[0])); x2 = ((arg1[1]) + (arg2[1])); x3 = ((arg1[2]) + (arg2[2])); x4 = ((arg1[3]) + (arg2[3])); x5 = ((arg1[4]) + (arg2[4])); x6 = ((arg1[5]) + (arg2[5])); x7 = ((arg1[6]) + (arg2[6])); x8 = ((arg1[7]) + (arg2[7])); x9 = ((arg1[8]) + (arg2[8])); x10 = ((arg1[9]) + (arg2[9])); out1[0] = x1; out1[1] = x2; out1[2] = x3; out1[3] = x4; out1[4] = x5; out1[5] = x6; out1[6] = x7; out1[7] = x8; out1[8] = x9; out1[9] = x10; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_sub subtracts two field elements. * Postconditions: * eval out1 mod m = (eval arg1 - eval arg2) mod m * * Input Bounds: * arg1: [[0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000]] * arg2: [[0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000]] * Output Bounds: * out1: [[0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_sub( uint64_t out1[10], const uint64_t arg1[10], const uint64_t arg2[10]) { uint64_t x1; uint64_t x2; uint64_t x3; uint64_t x4; uint64_t x5; uint64_t x6; uint64_t x7; uint64_t x8; uint64_t x9; uint64_t x10; x1 = ((UINT64_C(0x1ffffffffffb8e) + (arg1[0])) - (arg2[0])); x2 = ((UINT64_C(0xffffffffffffe) + (arg1[1])) - (arg2[1])); x3 = ((UINT64_C(0xffffffffffffe) + (arg1[2])) - (arg2[2])); x4 = ((UINT64_C(0xffffffffffffe) + (arg1[3])) - (arg2[3])); x5 = ((UINT64_C(0xffffffffffffe) + (arg1[4])) - (arg2[4])); x6 = ((UINT64_C(0x1ffffffffffffe) + (arg1[5])) - (arg2[5])); x7 = ((UINT64_C(0xffffffffffffe) + (arg1[6])) - (arg2[6])); x8 = ((UINT64_C(0xffffffffffffe) + (arg1[7])) - (arg2[7])); x9 = ((UINT64_C(0xffffffffffffe) + (arg1[8])) - (arg2[8])); x10 = ((UINT64_C(0xffffffffffffe) + (arg1[9])) - (arg2[9])); out1[0] = x1; out1[1] = x2; out1[2] = x3; out1[3] = x4; out1[4] = x5; out1[5] = x6; out1[6] = x7; out1[7] = x8; out1[8] = x9; out1[9] = x10; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_opp negates a field element. * Postconditions: * eval out1 mod m = -eval arg1 mod m * * Input Bounds: * arg1: [[0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000]] * Output Bounds: * out1: [[0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x30000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000], [0x0 ~> 0x18000000000000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_opp( uint64_t out1[10], const uint64_t arg1[10]) { uint64_t x1; uint64_t x2; uint64_t x3; uint64_t x4; uint64_t x5; uint64_t x6; uint64_t x7; uint64_t x8; uint64_t x9; uint64_t x10; x1 = (UINT64_C(0x1ffffffffffb8e) - (arg1[0])); x2 = (UINT64_C(0xffffffffffffe) - (arg1[1])); x3 = (UINT64_C(0xffffffffffffe) - (arg1[2])); x4 = (UINT64_C(0xffffffffffffe) - (arg1[3])); x5 = (UINT64_C(0xffffffffffffe) - (arg1[4])); x6 = (UINT64_C(0x1ffffffffffffe) - (arg1[5])); x7 = (UINT64_C(0xffffffffffffe) - (arg1[6])); x8 = (UINT64_C(0xffffffffffffe) - (arg1[7])); x9 = (UINT64_C(0xffffffffffffe) - (arg1[8])); x10 = (UINT64_C(0xffffffffffffe) - (arg1[9])); out1[0] = x1; out1[1] = x2; out1[2] = x3; out1[3] = x4; out1[4] = x5; out1[5] = x6; out1[6] = x7; out1[7] = x8; out1[8] = x9; out1[9] = x10; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz is a multi-limb conditional select. * Postconditions: * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3) * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] * Output Bounds: * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( uint64_t out1[10], fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, const uint64_t arg2[10], const uint64_t arg3[10]) { uint64_t x1; uint64_t x2; uint64_t x3; uint64_t x4; uint64_t x5; uint64_t x6; uint64_t x7; uint64_t x8; uint64_t x9; uint64_t x10; fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x1, arg1, (arg2[0]), (arg3[0])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x2, arg1, (arg2[1]), (arg3[1])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x3, arg1, (arg2[2]), (arg3[2])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x4, arg1, (arg2[3]), (arg3[3])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x5, arg1, (arg2[4]), (arg3[4])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x6, arg1, (arg2[5]), (arg3[5])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x7, arg1, (arg2[6]), (arg3[6])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x8, arg1, (arg2[7]), (arg3[7])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x9, arg1, (arg2[8]), (arg3[8])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64(&x10, arg1, (arg2[9]), (arg3[9])); out1[0] = x1; out1[1] = x2; out1[2] = x3; out1[3] = x4; out1[4] = x5; out1[5] = x6; out1[6] = x7; out1[7] = x8; out1[8] = x9; out1[9] = x10; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes serializes a field element to bytes in little-endian order. * Postconditions: * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..63] * * Input Bounds: * arg1: [[0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000]] * Output Bounds: * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes( uint8_t out1[64], const uint64_t arg1[10]) { uint64_t x1; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x2; uint64_t x3; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x4; uint64_t x5; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x6; uint64_t x7; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x8; uint64_t x9; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x10; uint64_t x11; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x12; uint64_t x13; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x14; uint64_t x15; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x16; uint64_t x17; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x18; uint64_t x19; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x20; uint64_t x21; uint64_t x22; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x23; uint64_t x24; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x25; uint64_t x26; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x27; uint64_t x28; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x29; uint64_t x30; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x31; uint64_t x32; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x33; uint64_t x34; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x35; uint64_t x36; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x37; uint64_t x38; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x39; uint64_t x40; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x41; uint64_t x42; uint64_t x43; uint64_t x44; uint64_t x45; uint64_t x46; uint64_t x47; uint64_t x48; uint64_t x49; uint8_t x50; uint64_t x51; uint8_t x52; uint64_t x53; uint8_t x54; uint64_t x55; uint8_t x56; uint64_t x57; uint8_t x58; uint64_t x59; uint8_t x60; uint8_t x61; uint64_t x62; uint8_t x63; uint64_t x64; uint8_t x65; uint64_t x66; uint8_t x67; uint64_t x68; uint8_t x69; uint64_t x70; uint8_t x71; uint64_t x72; uint8_t x73; uint8_t x74; uint64_t x75; uint8_t x76; uint64_t x77; uint8_t x78; uint64_t x79; uint8_t x80; uint64_t x81; uint8_t x82; uint64_t x83; uint8_t x84; uint64_t x85; uint8_t x86; uint64_t x87; uint8_t x88; uint8_t x89; uint64_t x90; uint8_t x91; uint64_t x92; uint8_t x93; uint64_t x94; uint8_t x95; uint64_t x96; uint8_t x97; uint64_t x98; uint8_t x99; uint64_t x100; uint8_t x101; uint8_t x102; uint64_t x103; uint8_t x104; uint64_t x105; uint8_t x106; uint64_t x107; uint8_t x108; uint64_t x109; uint8_t x110; uint64_t x111; uint8_t x112; uint64_t x113; uint8_t x114; uint8_t x115; uint8_t x116; uint64_t x117; uint8_t x118; uint64_t x119; uint8_t x120; uint64_t x121; uint8_t x122; uint64_t x123; uint8_t x124; uint64_t x125; uint8_t x126; uint8_t x127; uint64_t x128; uint8_t x129; uint64_t x130; uint8_t x131; uint64_t x132; uint8_t x133; uint64_t x134; uint8_t x135; uint64_t x136; uint8_t x137; uint64_t x138; uint8_t x139; uint8_t x140; uint64_t x141; uint8_t x142; uint64_t x143; uint8_t x144; uint64_t x145; uint8_t x146; uint64_t x147; uint8_t x148; uint64_t x149; uint8_t x150; uint64_t x151; uint8_t x152; uint64_t x153; uint8_t x154; uint8_t x155; uint64_t x156; uint8_t x157; uint64_t x158; uint8_t x159; uint64_t x160; uint8_t x161; uint64_t x162; uint8_t x163; uint64_t x164; uint8_t x165; uint64_t x166; uint8_t x167; uint8_t x168; uint64_t x169; uint8_t x170; uint64_t x171; uint8_t x172; uint64_t x173; uint8_t x174; uint64_t x175; uint8_t x176; uint64_t x177; uint8_t x178; uint64_t x179; uint8_t x180; uint8_t x181; fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u52( &x1, &x2, 0x0, (arg1[0]), UINT64_C(0xffffffffffdc7)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( &x3, &x4, x2, (arg1[1]), UINT64_C(0x7ffffffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( &x5, &x6, x4, (arg1[2]), UINT64_C(0x7ffffffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( &x7, &x8, x6, (arg1[3]), UINT64_C(0x7ffffffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( &x9, &x10, x8, (arg1[4]), UINT64_C(0x7ffffffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u52( &x11, &x12, x10, (arg1[5]), UINT64_C(0xfffffffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( &x13, &x14, x12, (arg1[6]), UINT64_C(0x7ffffffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( &x15, &x16, x14, (arg1[7]), UINT64_C(0x7ffffffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( &x17, &x18, x16, (arg1[8]), UINT64_C(0x7ffffffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u51( &x19, &x20, x18, (arg1[9]), UINT64_C(0x7ffffffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u64( &x21, x20, 0x0, UINT64_C(0xffffffffffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u52( &x22, &x23, 0x0, x1, (x21 & UINT64_C(0xffffffffffdc7))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( &x24, &x25, x23, x3, (x21 & UINT64_C(0x7ffffffffffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( &x26, &x27, x25, x5, (x21 & UINT64_C(0x7ffffffffffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( &x28, &x29, x27, x7, (x21 & UINT64_C(0x7ffffffffffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( &x30, &x31, x29, x9, (x21 & UINT64_C(0x7ffffffffffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u52( &x32, &x33, x31, x11, (x21 & UINT64_C(0xfffffffffffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( &x34, &x35, x33, x13, (x21 & UINT64_C(0x7ffffffffffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( &x36, &x37, x35, x15, (x21 & UINT64_C(0x7ffffffffffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( &x38, &x39, x37, x17, (x21 & UINT64_C(0x7ffffffffffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u51( &x40, &x41, x39, x19, (x21 & UINT64_C(0x7ffffffffffff))); x42 = (x40 << 5); x43 = (x38 << 2); x44 = (x36 << 7); x45 = (x34 << 4); x46 = (x30 << 5); x47 = (x28 << 2); x48 = (x26 << 7); x49 = (x24 << 4); x50 = (uint8_t)(x22 & UINT8_C(0xff)); x51 = (x22 >> 8); x52 = (uint8_t)(x51 & UINT8_C(0xff)); x53 = (x51 >> 8); x54 = (uint8_t)(x53 & UINT8_C(0xff)); x55 = (x53 >> 8); x56 = (uint8_t)(x55 & UINT8_C(0xff)); x57 = (x55 >> 8); x58 = (uint8_t)(x57 & UINT8_C(0xff)); x59 = (x57 >> 8); x60 = (uint8_t)(x59 & UINT8_C(0xff)); x61 = (uint8_t)(x59 >> 8); x62 = (x49 + (uint64_t)x61); x63 = (uint8_t)(x62 & UINT8_C(0xff)); x64 = (x62 >> 8); x65 = (uint8_t)(x64 & UINT8_C(0xff)); x66 = (x64 >> 8); x67 = (uint8_t)(x66 & UINT8_C(0xff)); x68 = (x66 >> 8); x69 = (uint8_t)(x68 & UINT8_C(0xff)); x70 = (x68 >> 8); x71 = (uint8_t)(x70 & UINT8_C(0xff)); x72 = (x70 >> 8); x73 = (uint8_t)(x72 & UINT8_C(0xff)); x74 = (uint8_t)(x72 >> 8); x75 = (x48 + (uint64_t)x74); x76 = (uint8_t)(x75 & UINT8_C(0xff)); x77 = (x75 >> 8); x78 = (uint8_t)(x77 & UINT8_C(0xff)); x79 = (x77 >> 8); x80 = (uint8_t)(x79 & UINT8_C(0xff)); x81 = (x79 >> 8); x82 = (uint8_t)(x81 & UINT8_C(0xff)); x83 = (x81 >> 8); x84 = (uint8_t)(x83 & UINT8_C(0xff)); x85 = (x83 >> 8); x86 = (uint8_t)(x85 & UINT8_C(0xff)); x87 = (x85 >> 8); x88 = (uint8_t)(x87 & UINT8_C(0xff)); x89 = (uint8_t)(x87 >> 8); x90 = (x47 + (uint64_t)x89); x91 = (uint8_t)(x90 & UINT8_C(0xff)); x92 = (x90 >> 8); x93 = (uint8_t)(x92 & UINT8_C(0xff)); x94 = (x92 >> 8); x95 = (uint8_t)(x94 & UINT8_C(0xff)); x96 = (x94 >> 8); x97 = (uint8_t)(x96 & UINT8_C(0xff)); x98 = (x96 >> 8); x99 = (uint8_t)(x98 & UINT8_C(0xff)); x100 = (x98 >> 8); x101 = (uint8_t)(x100 & UINT8_C(0xff)); x102 = (uint8_t)(x100 >> 8); x103 = (x46 + (uint64_t)x102); x104 = (uint8_t)(x103 & UINT8_C(0xff)); x105 = (x103 >> 8); x106 = (uint8_t)(x105 & UINT8_C(0xff)); x107 = (x105 >> 8); x108 = (uint8_t)(x107 & UINT8_C(0xff)); x109 = (x107 >> 8); x110 = (uint8_t)(x109 & UINT8_C(0xff)); x111 = (x109 >> 8); x112 = (uint8_t)(x111 & UINT8_C(0xff)); x113 = (x111 >> 8); x114 = (uint8_t)(x113 & UINT8_C(0xff)); x115 = (uint8_t)(x113 >> 8); x116 = (uint8_t)(x32 & UINT8_C(0xff)); x117 = (x32 >> 8); x118 = (uint8_t)(x117 & UINT8_C(0xff)); x119 = (x117 >> 8); x120 = (uint8_t)(x119 & UINT8_C(0xff)); x121 = (x119 >> 8); x122 = (uint8_t)(x121 & UINT8_C(0xff)); x123 = (x121 >> 8); x124 = (uint8_t)(x123 & UINT8_C(0xff)); x125 = (x123 >> 8); x126 = (uint8_t)(x125 & UINT8_C(0xff)); x127 = (uint8_t)(x125 >> 8); x128 = (x45 + (uint64_t)x127); x129 = (uint8_t)(x128 & UINT8_C(0xff)); x130 = (x128 >> 8); x131 = (uint8_t)(x130 & UINT8_C(0xff)); x132 = (x130 >> 8); x133 = (uint8_t)(x132 & UINT8_C(0xff)); x134 = (x132 >> 8); x135 = (uint8_t)(x134 & UINT8_C(0xff)); x136 = (x134 >> 8); x137 = (uint8_t)(x136 & UINT8_C(0xff)); x138 = (x136 >> 8); x139 = (uint8_t)(x138 & UINT8_C(0xff)); x140 = (uint8_t)(x138 >> 8); x141 = (x44 + (uint64_t)x140); x142 = (uint8_t)(x141 & UINT8_C(0xff)); x143 = (x141 >> 8); x144 = (uint8_t)(x143 & UINT8_C(0xff)); x145 = (x143 >> 8); x146 = (uint8_t)(x145 & UINT8_C(0xff)); x147 = (x145 >> 8); x148 = (uint8_t)(x147 & UINT8_C(0xff)); x149 = (x147 >> 8); x150 = (uint8_t)(x149 & UINT8_C(0xff)); x151 = (x149 >> 8); x152 = (uint8_t)(x151 & UINT8_C(0xff)); x153 = (x151 >> 8); x154 = (uint8_t)(x153 & UINT8_C(0xff)); x155 = (uint8_t)(x153 >> 8); x156 = (x43 + (uint64_t)x155); x157 = (uint8_t)(x156 & UINT8_C(0xff)); x158 = (x156 >> 8); x159 = (uint8_t)(x158 & UINT8_C(0xff)); x160 = (x158 >> 8); x161 = (uint8_t)(x160 & UINT8_C(0xff)); x162 = (x160 >> 8); x163 = (uint8_t)(x162 & UINT8_C(0xff)); x164 = (x162 >> 8); x165 = (uint8_t)(x164 & UINT8_C(0xff)); x166 = (x164 >> 8); x167 = (uint8_t)(x166 & UINT8_C(0xff)); x168 = (uint8_t)(x166 >> 8); x169 = (x42 + (uint64_t)x168); x170 = (uint8_t)(x169 & UINT8_C(0xff)); x171 = (x169 >> 8); x172 = (uint8_t)(x171 & UINT8_C(0xff)); x173 = (x171 >> 8); x174 = (uint8_t)(x173 & UINT8_C(0xff)); x175 = (x173 >> 8); x176 = (uint8_t)(x175 & UINT8_C(0xff)); x177 = (x175 >> 8); x178 = (uint8_t)(x177 & UINT8_C(0xff)); x179 = (x177 >> 8); x180 = (uint8_t)(x179 & UINT8_C(0xff)); x181 = (uint8_t)(x179 >> 8); out1[0] = x50; out1[1] = x52; out1[2] = x54; out1[3] = x56; out1[4] = x58; out1[5] = x60; out1[6] = x63; out1[7] = x65; out1[8] = x67; out1[9] = x69; out1[10] = x71; out1[11] = x73; out1[12] = x76; out1[13] = x78; out1[14] = x80; out1[15] = x82; out1[16] = x84; out1[17] = x86; out1[18] = x88; out1[19] = x91; out1[20] = x93; out1[21] = x95; out1[22] = x97; out1[23] = x99; out1[24] = x101; out1[25] = x104; out1[26] = x106; out1[27] = x108; out1[28] = x110; out1[29] = x112; out1[30] = x114; out1[31] = x115; out1[32] = x116; out1[33] = x118; out1[34] = x120; out1[35] = x122; out1[36] = x124; out1[37] = x126; out1[38] = x129; out1[39] = x131; out1[40] = x133; out1[41] = x135; out1[42] = x137; out1[43] = x139; out1[44] = x142; out1[45] = x144; out1[46] = x146; out1[47] = x148; out1[48] = x150; out1[49] = x152; out1[50] = x154; out1[51] = x157; out1[52] = x159; out1[53] = x161; out1[54] = x163; out1[55] = x165; out1[56] = x167; out1[57] = x170; out1[58] = x172; out1[59] = x174; out1[60] = x176; out1[61] = x178; out1[62] = x180; out1[63] = x181; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes deserializes a field element from bytes in little-endian order. * Postconditions: * eval out1 mod m = bytes_eval arg1 mod m * * Input Bounds: * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] * Output Bounds: * out1: [[0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x10000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000], [0x0 ~> 0x8000000000000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes( uint64_t out1[10], const uint8_t arg1[64]) { uint64_t x1; uint64_t x2; uint64_t x3; uint64_t x4; uint64_t x5; uint64_t x6; uint64_t x7; uint64_t x8; uint64_t x9; uint64_t x10; uint64_t x11; uint64_t x12; uint64_t x13; uint64_t x14; uint64_t x15; uint64_t x16; uint64_t x17; uint64_t x18; uint64_t x19; uint64_t x20; uint64_t x21; uint64_t x22; uint64_t x23; uint64_t x24; uint64_t x25; uint64_t x26; uint64_t x27; uint64_t x28; uint64_t x29; uint64_t x30; uint64_t x31; uint8_t x32; uint64_t x33; uint64_t x34; uint64_t x35; uint64_t x36; uint64_t x37; uint64_t x38; uint64_t x39; uint64_t x40; uint64_t x41; uint64_t x42; uint64_t x43; uint64_t x44; uint64_t x45; uint64_t x46; uint64_t x47; uint64_t x48; uint64_t x49; uint64_t x50; uint64_t x51; uint64_t x52; uint64_t x53; uint64_t x54; uint64_t x55; uint64_t x56; uint64_t x57; uint64_t x58; uint64_t x59; uint64_t x60; uint64_t x61; uint64_t x62; uint64_t x63; uint8_t x64; uint64_t x65; uint64_t x66; uint64_t x67; uint64_t x68; uint64_t x69; uint64_t x70; uint64_t x71; uint8_t x72; uint64_t x73; uint64_t x74; uint64_t x75; uint64_t x76; uint64_t x77; uint64_t x78; uint64_t x79; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x80; uint64_t x81; uint64_t x82; uint64_t x83; uint64_t x84; uint64_t x85; uint64_t x86; uint64_t x87; uint64_t x88; uint8_t x89; uint64_t x90; uint64_t x91; uint64_t x92; uint64_t x93; uint64_t x94; uint64_t x95; uint64_t x96; uint8_t x97; uint64_t x98; uint64_t x99; uint64_t x100; uint64_t x101; uint64_t x102; uint64_t x103; uint64_t x104; uint64_t x105; uint64_t x106; uint64_t x107; uint64_t x108; uint64_t x109; uint64_t x110; uint8_t x111; uint64_t x112; uint64_t x113; uint64_t x114; uint64_t x115; uint64_t x116; uint64_t x117; uint64_t x118; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x119; uint64_t x120; uint64_t x121; uint64_t x122; uint64_t x123; uint64_t x124; uint64_t x125; uint64_t x126; uint64_t x127; uint8_t x128; uint64_t x129; uint64_t x130; uint64_t x131; uint64_t x132; uint64_t x133; uint64_t x134; uint64_t x135; uint8_t x136; uint64_t x137; uint64_t x138; uint64_t x139; uint64_t x140; uint64_t x141; uint64_t x142; x1 = ((uint64_t)(arg1[63]) << 43); x2 = ((uint64_t)(arg1[62]) << 35); x3 = ((uint64_t)(arg1[61]) << 27); x4 = ((uint64_t)(arg1[60]) << 19); x5 = ((uint64_t)(arg1[59]) << 11); x6 = ((uint64_t)(arg1[58]) << 3); x7 = ((uint64_t)(arg1[57]) << 46); x8 = ((uint64_t)(arg1[56]) << 38); x9 = ((uint64_t)(arg1[55]) << 30); x10 = ((uint64_t)(arg1[54]) << 22); x11 = ((uint64_t)(arg1[53]) << 14); x12 = ((uint64_t)(arg1[52]) << 6); x13 = ((uint64_t)(arg1[51]) << 49); x14 = ((uint64_t)(arg1[50]) << 41); x15 = ((uint64_t)(arg1[49]) << 33); x16 = ((uint64_t)(arg1[48]) << 25); x17 = ((uint64_t)(arg1[47]) << 17); x18 = ((uint64_t)(arg1[46]) << 9); x19 = ((uint64_t)(arg1[45]) * 0x2); x20 = ((uint64_t)(arg1[44]) << 44); x21 = ((uint64_t)(arg1[43]) << 36); x22 = ((uint64_t)(arg1[42]) << 28); x23 = ((uint64_t)(arg1[41]) << 20); x24 = ((uint64_t)(arg1[40]) << 12); x25 = ((uint64_t)(arg1[39]) << 4); x26 = ((uint64_t)(arg1[38]) << 48); x27 = ((uint64_t)(arg1[37]) << 40); x28 = ((uint64_t)(arg1[36]) << 32); x29 = ((uint64_t)(arg1[35]) << 24); x30 = ((uint64_t)(arg1[34]) << 16); x31 = ((uint64_t)(arg1[33]) << 8); x32 = (arg1[32]); x33 = ((uint64_t)(arg1[31]) << 43); x34 = ((uint64_t)(arg1[30]) << 35); x35 = ((uint64_t)(arg1[29]) << 27); x36 = ((uint64_t)(arg1[28]) << 19); x37 = ((uint64_t)(arg1[27]) << 11); x38 = ((uint64_t)(arg1[26]) << 3); x39 = ((uint64_t)(arg1[25]) << 46); x40 = ((uint64_t)(arg1[24]) << 38); x41 = ((uint64_t)(arg1[23]) << 30); x42 = ((uint64_t)(arg1[22]) << 22); x43 = ((uint64_t)(arg1[21]) << 14); x44 = ((uint64_t)(arg1[20]) << 6); x45 = ((uint64_t)(arg1[19]) << 49); x46 = ((uint64_t)(arg1[18]) << 41); x47 = ((uint64_t)(arg1[17]) << 33); x48 = ((uint64_t)(arg1[16]) << 25); x49 = ((uint64_t)(arg1[15]) << 17); x50 = ((uint64_t)(arg1[14]) << 9); x51 = ((uint64_t)(arg1[13]) * 0x2); x52 = ((uint64_t)(arg1[12]) << 44); x53 = ((uint64_t)(arg1[11]) << 36); x54 = ((uint64_t)(arg1[10]) << 28); x55 = ((uint64_t)(arg1[9]) << 20); x56 = ((uint64_t)(arg1[8]) << 12); x57 = ((uint64_t)(arg1[7]) << 4); x58 = ((uint64_t)(arg1[6]) << 48); x59 = ((uint64_t)(arg1[5]) << 40); x60 = ((uint64_t)(arg1[4]) << 32); x61 = ((uint64_t)(arg1[3]) << 24); x62 = ((uint64_t)(arg1[2]) << 16); x63 = ((uint64_t)(arg1[1]) << 8); x64 = (arg1[0]); x65 = (x63 + (uint64_t)x64); x66 = (x62 + x65); x67 = (x61 + x66); x68 = (x60 + x67); x69 = (x59 + x68); x70 = (x58 + x69); x71 = (x70 & UINT64_C(0xfffffffffffff)); x72 = (uint8_t)(x70 >> 52); x73 = (x57 + (uint64_t)x72); x74 = (x56 + x73); x75 = (x55 + x74); x76 = (x54 + x75); x77 = (x53 + x76); x78 = (x52 + x77); x79 = (x78 & UINT64_C(0x7ffffffffffff)); x80 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x78 >> 51); x81 = (x51 + (uint64_t)x80); x82 = (x50 + x81); x83 = (x49 + x82); x84 = (x48 + x83); x85 = (x47 + x84); x86 = (x46 + x85); x87 = (x45 + x86); x88 = (x87 & UINT64_C(0x7ffffffffffff)); x89 = (uint8_t)(x87 >> 51); x90 = (x44 + (uint64_t)x89); x91 = (x43 + x90); x92 = (x42 + x91); x93 = (x41 + x92); x94 = (x40 + x93); x95 = (x39 + x94); x96 = (x95 & UINT64_C(0x7ffffffffffff)); x97 = (uint8_t)(x95 >> 51); x98 = (x38 + (uint64_t)x97); x99 = (x37 + x98); x100 = (x36 + x99); x101 = (x35 + x100); x102 = (x34 + x101); x103 = (x33 + x102); x104 = (x31 + (uint64_t)x32); x105 = (x30 + x104); x106 = (x29 + x105); x107 = (x28 + x106); x108 = (x27 + x107); x109 = (x26 + x108); x110 = (x109 & UINT64_C(0xfffffffffffff)); x111 = (uint8_t)(x109 >> 52); x112 = (x25 + (uint64_t)x111); x113 = (x24 + x112); x114 = (x23 + x113); x115 = (x22 + x114); x116 = (x21 + x115); x117 = (x20 + x116); x118 = (x117 & UINT64_C(0x7ffffffffffff)); x119 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x117 >> 51); x120 = (x19 + (uint64_t)x119); x121 = (x18 + x120); x122 = (x17 + x121); x123 = (x16 + x122); x124 = (x15 + x123); x125 = (x14 + x124); x126 = (x13 + x125); x127 = (x126 & UINT64_C(0x7ffffffffffff)); x128 = (uint8_t)(x126 >> 51); x129 = (x12 + (uint64_t)x128); x130 = (x11 + x129); x131 = (x10 + x130); x132 = (x9 + x131); x133 = (x8 + x132); x134 = (x7 + x133); x135 = (x134 & UINT64_C(0x7ffffffffffff)); x136 = (uint8_t)(x134 >> 51); x137 = (x6 + (uint64_t)x136); x138 = (x5 + x137); x139 = (x4 + x138); x140 = (x3 + x139); x141 = (x2 + x140); x142 = (x1 + x141); out1[0] = x71; out1[1] = x79; out1[2] = x88; out1[3] = x96; out1[4] = x103; out1[5] = x110; out1[6] = x118; out1[7] = x127; out1[8] = x135; out1[9] = x142; } /* END verbatim fiat code */ /*- * Finite field inversion via FLT. * NB: this is not a real Fiat function, just named that way for consistency. * Autogenerated: ecp/id_tc26_gost_3410_2012_512_paramSetC/fe_inv.op3 * custom repunit addition chain */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(fe_t output, const fe_t t1) { int i; /* temporary variables */ fe_t acc, t102, t12, t198, t2, t200, t24, t3, t400, t48, t502, t6, t96; fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, acc, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t3, acc, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t3); for (i = 0; i < 2; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t6, acc, t3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t6); for (i = 0; i < 5; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t12, acc, t6); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t12); for (i = 0; i < 11; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t24, acc, t12); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t24); for (i = 0; i < 23; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t48, acc, t24); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t48); for (i = 0; i < 47; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t96, acc, t48); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t96); for (i = 0; i < 5; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t102, acc, t6); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t102); for (i = 0; i < 95; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t198, acc, t96); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t198); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t200, acc, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t200); for (i = 0; i < 199; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t400, acc, t200); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t400); for (i = 0; i < 101; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t502, acc, t102); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t502); for (i = 0; i < 3; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(acc, acc, t3); for (i = 0; i < 4; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(acc, acc, t1); for (i = 0; i < 2; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(output, acc, t1); } /* curve coefficient constants */ static const limb_t const_one[10] = { UINT64_C(0x0000000000000001), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000)}; static const limb_t const_d[10] = { UINT64_C(0x00002DBB33EE7550), UINT64_C(0x00042BC2A22B4CA3), UINT64_C(0x00073C6D3D23419F), UINT64_C(0x0001ACC138B390F9), UINT64_C(0x0005359CF0528AE0), UINT64_C(0x0008A0621050439C), UINT64_C(0x00054198E31EBDE2), UINT64_C(0x0006B7FC9B56805A), UINT64_C(0x000367C4E973CF37), UINT64_C(0x0004F27AEC600BEC)}; static const limb_t const_S[10] = { UINT64_C(0x0003F4913304621E), UINT64_C(0x0000F50F57752CD7), UINT64_C(0x000430E4B0B72F98), UINT64_C(0x000794CFB1D31BC1), UINT64_C(0x0006B298C3EB5D47), UINT64_C(0x0005D7E77BEBEF18), UINT64_C(0x0002AF99C7385087), UINT64_C(0x00005200D92A5FE9), UINT64_C(0x0007260EC5A30C32), UINT64_C(0x0000C36144E7FD04)}; static const limb_t const_T[10] = { UINT64_C(0x0002B249DDFD1271), UINT64_C(0x0004B1F5C5B1E21B), UINT64_C(0x00028A1234DB359A), UINT64_C(0x00004775897342D4), UINT64_C(0x0006339A280DC1D0), UINT64_C(0x000C1ABB02B80B44), UINT64_C(0x00038AEED0851FA5), UINT64_C(0x000273FF6F391564), UINT64_C(0x00033BF626E8A289), UINT64_C(0x0004D3147CBAACA7)}; /* LUT for scalar multiplication by comb interleaving */ static const pt_aff_t lut_cmb[8][16] = { { {{UINT64_C(0x0000000000000012), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000)}, {UINT64_C(0x000303EE73001A3D), UINT64_C(0x000404B2BAAE7600), UINT64_C(0x00072E65E120AC45), UINT64_C(0x00027BAFC1A31744), UINT64_C(0x000116EA5B2867BC), UINT64_C(0x0006117F7B386695), UINT64_C(0x000501794368D9A5), UINT64_C(0x0007403C541FBF61), UINT64_C(0x0005785AE6564ADD), UINT64_C(0x000234D7BCE8FD8F)}, {UINT64_C(0x000646C41601E12E), UINT64_C(0x0000549120444C03), UINT64_C(0x00014329D44C1CE3), UINT64_C(0x0004B25B9D77A2D8), UINT64_C(0x00039C7A68D74B3D), UINT64_C(0x000D3AF6A9F7367C), UINT64_C(0x00021A86BD5F4DA0), UINT64_C(0x0002843DEA3B74DD), UINT64_C(0x000276643211439A), UINT64_C(0x0007B72B4861D41A)}}, {{UINT64_C(0x000DDC3263F14838), UINT64_C(0x0001CBD1F17B2BCB), UINT64_C(0x0002BAFA22A82009), UINT64_C(0x0005322387667A03), UINT64_C(0x00055B751CB96A65), UINT64_C(0x000A0DFD0340FDE7), UINT64_C(0x0005C48FB27C4503), UINT64_C(0x000268CD738A33D9), UINT64_C(0x0001B2D195DC6145), UINT64_C(0x00006EA96DB2EACC)}, {UINT64_C(0x000BBCD609E2FF0C), UINT64_C(0x0005F4AE7E31E8D1), UINT64_C(0x000360BD6E15CC1F), UINT64_C(0x000409CF3A7414FB), UINT64_C(0x00031EE2AD0268C7), UINT64_C(0x0005CB4FB4D93FBB), UINT64_C(0x0003CADF6924D45D), UINT64_C(0x0001C5874E363854), UINT64_C(0x00037EFA0AF03B97), UINT64_C(0x00001148D12E29B3)}, {UINT64_C(0x000E0DB54C224325), UINT64_C(0x00010454C4B66E25), UINT64_C(0x000648D062587B3B), UINT64_C(0x0003D2EE25796057), UINT64_C(0x00004BB47D7FDE7C), UINT64_C(0x000244DB1E9D557B), UINT64_C(0x0006BE33D5802F21), UINT64_C(0x00042132C57B6D1F), UINT64_C(0x0003D487A5698542), UINT64_C(0x0007C1540EB060D1)}}, {{UINT64_C(0x00079342FE30B9C8), UINT64_C(0x00041A8C6FF7B725), UINT64_C(0x00075CAE2380D311), UINT64_C(0x00038F8B24FD7BC3), UINT64_C(0x0004844218778181), UINT64_C(0x000C42D63D57509A), UINT64_C(0x000535D988A70AAF), UINT64_C(0x0001A3FD38C3746A), UINT64_C(0x0001E914A2CBA533), UINT64_C(0x0004D2080711F2B0)}, {UINT64_C(0x0009F2BA98B41E21), UINT64_C(0x000615CCDD4A12CF), UINT64_C(0x0003EE0BB3543CA8), UINT64_C(0x00015A62A2476E14), UINT64_C(0x00061C939A6ECEDD), UINT64_C(0x000BE481A4C0C342), UINT64_C(0x000795DEC470D8C2), UINT64_C(0x0000ABE2CB782E96), UINT64_C(0x0007A7D6BF78D7EE), UINT64_C(0x0004E3A1B9FC9045)}, {UINT64_C(0x000BAEA9645E541E), UINT64_C(0x0002D492585BA0C5), UINT64_C(0x000114FE72026DC5), UINT64_C(0x00053A929E20E410), UINT64_C(0x00060E85CF97390E), UINT64_C(0x0007D39ADBD8478A), UINT64_C(0x0002063C667C0601), UINT64_C(0x000742C442708702), UINT64_C(0x0000A2426FB29578), UINT64_C(0x00048CBFCAE1F773)}}, {{UINT64_C(0x000A0BBFED323C86), UINT64_C(0x0006F7539EA3736E), UINT64_C(0x0005DF9B59EA30BF), UINT64_C(0x0005D9C303700CA0), UINT64_C(0x0001AB39B96006A3), UINT64_C(0x000D38FB4C2CE047), UINT64_C(0x0004257F3B363F21), UINT64_C(0x00018E0BAF6472A8), UINT64_C(0x000483ACD523D9F5), UINT64_C(0x00036FACA6C25759)}, {UINT64_C(0x000231905C4CD0FD), UINT64_C(0x00016CA0261FB96E), UINT64_C(0x00031D0ECAC833D3), UINT64_C(0x0003E05643F857D5), UINT64_C(0x000040F272FCC47D), UINT64_C(0x00067E5354B2A5B5), UINT64_C(0x0000AE3CF45E8B10), UINT64_C(0x000599F3DD49B217), UINT64_C(0x000626891D86B28E), UINT64_C(0x0003E3F07489D3C0)}, {UINT64_C(0x000C646BFDF7F340), UINT64_C(0x0001913CBD57D3CE), UINT64_C(0x00004B9386B4B830), UINT64_C(0x0007C9304B89B5D0), UINT64_C(0x00007520EC2D81FB), UINT64_C(0x0000D50731E5F0DF), UINT64_C(0x0006129D0F7AD03D), UINT64_C(0x0002FA03D5A61196), UINT64_C(0x0001A9011556D653), UINT64_C(0x0002A7D6F6C7BDB0)}}, {{UINT64_C(0x00061D011098A411), UINT64_C(0x000260BCC6C7F863), UINT64_C(0x0000E1117CD19373), UINT64_C(0x0004B68FE728DDED), UINT64_C(0x0002AA52ACFB998D), UINT64_C(0x00015AD84E849B1A), UINT64_C(0x0002CBCDF89B3EA6), UINT64_C(0x00067ABD295869C6), UINT64_C(0x0000C524BC70CA4A), UINT64_C(0x0004C62E5FE7557E)}, {UINT64_C(0x0007CFBEC39A14E2), UINT64_C(0x000626369976E030), UINT64_C(0x00032365D9DEE36F), UINT64_C(0x000734EC026C36B6), UINT64_C(0x00075F2357A20A57), UINT64_C(0x0006C63528ED47F5), UINT64_C(0x0000E985E6F0FA99), UINT64_C(0x00059351FE01E099), UINT64_C(0x0002C483F70283A2), UINT64_C(0x0004E1A30B241A78)}, {UINT64_C(0x0003579D4EB3F8B7), UINT64_C(0x000127186D359C4A), UINT64_C(0x000625FBDA161934), UINT64_C(0x000786DE6F454C06), UINT64_C(0x00032BA63340A9DB), UINT64_C(0x0000CC026D945494), UINT64_C(0x000079206668566B), UINT64_C(0x00046E3529640A46), UINT64_C(0x000533DFE4808D98), UINT64_C(0x0001202AEF1AA871)}}, {{UINT64_C(0x000D5A034C320711), UINT64_C(0x00046D5DEC9CBE0A), UINT64_C(0x0002FD14714E2D8B), UINT64_C(0x00071E0CE392B781), UINT64_C(0x0006EE842039DCC6), UINT64_C(0x0002AFE7EEFBE82E), UINT64_C(0x0001706CA91CE495), UINT64_C(0x0005B0F58587732F), UINT64_C(0x0003BA85FDED0A5B), UINT64_C(0x00054CEBB3898127)}, {UINT64_C(0x000A6C4C3C22D5DC), UINT64_C(0x0003FD092008F2AF), UINT64_C(0x000678C1C38BE060), UINT64_C(0x00029494E571D7ED), UINT64_C(0x000679B640BD621E), UINT64_C(0x000E89487D97914B), UINT64_C(0x0003B91C01A032CB), UINT64_C(0x0005715AFC07377B), UINT64_C(0x0006AB64B7814DA4), UINT64_C(0x0005E7734E1241FA)}, {UINT64_C(0x000EBC29D557AFE2), UINT64_C(0x00015EA9E492702C), UINT64_C(0x00039B8FF4CB3E25), UINT64_C(0x0005D3DA87AD6898), UINT64_C(0x0001B20F6958F437), UINT64_C(0x000FE179ED072875), UINT64_C(0x0003299FC0106D8A), UINT64_C(0x00063AB8C98927F6), UINT64_C(0x0004425DDEB4A8FE), UINT64_C(0x00021FCE1531E24E)}}, {{UINT64_C(0x0007745E07BBFFEF), UINT64_C(0x0007125991A3183C), UINT64_C(0x000288F58C85404B), UINT64_C(0x0005F0E01F988465), UINT64_C(0x00058A085EA50075), UINT64_C(0x00006AB7768A5A2B), UINT64_C(0x00043ABF68337850), UINT64_C(0x00075B86C98A35FB), UINT64_C(0x000612842EA8B184), UINT64_C(0x000109A8BB7AB3ED)}, {UINT64_C(0x0004F08D1A6DDAC3), UINT64_C(0x0005B2B420BFE682), UINT64_C(0x00010DFAF256A129), UINT64_C(0x0001B6CDADBEB8E5), UINT64_C(0x0006F611F5281A54), UINT64_C(0x000A1B472B862641), UINT64_C(0x000335A2003B6703), UINT64_C(0x00008AD4CAD5F73B), UINT64_C(0x0007A0EC3F0E578C), UINT64_C(0x00023141F13E5FA2)}, {UINT64_C(0x0005188CBAD97549), UINT64_C(0x0001F6C5FC0F255B), UINT64_C(0x00036A526CAC9622), UINT64_C(0x0000BB287D684ADB), UINT64_C(0x0006F28BF1F5FA01), UINT64_C(0x000D7D8997333372), UINT64_C(0x000236EF8A6D2653), UINT64_C(0x0000C2BF98DACC6E), UINT64_C(0x0002FA4352B452E0), UINT64_C(0x00043FDC45864176)}}, {{UINT64_C(0x000EA137F595EE0D), UINT64_C(0x000179D93A5775A9), UINT64_C(0x0001E0372E081E93), UINT64_C(0x0003A69DAD123CC1), UINT64_C(0x00025A2C66DE635D), UINT64_C(0x0002EEA6D51CD899), UINT64_C(0x0003138B80BA676F), UINT64_C(0x000411B2C78B4F07), UINT64_C(0x0007AAE1E0D50C65), UINT64_C(0x000528F5BDE8B6D3)}, {UINT64_C(0x000D742C7F0B19BD), UINT64_C(0x0006DBF28C91828A), UINT64_C(0x00076FE332464CA9), UINT64_C(0x0001873DC4EBC9D9), UINT64_C(0x00014016F9C485A4), UINT64_C(0x000F894AD46EB122), UINT64_C(0x0006AE2B805EB995), UINT64_C(0x00004C6AF846DDB3), UINT64_C(0x0004C43621B2FA9D), UINT64_C(0x0001C9C1089132C7)}, {UINT64_C(0x0007B12746972BA5), UINT64_C(0x00010D7707EB91D0), UINT64_C(0x00057125FEF70465), UINT64_C(0x000722135480EB9A), UINT64_C(0x000439824482D29B), UINT64_C(0x00019B590375A86B), UINT64_C(0x000732235FA4483D), UINT64_C(0x00035CD4C74AE3F3), UINT64_C(0x00076A29C3A22075), UINT64_C(0x0001E3D85B615311)}}, {{UINT64_C(0x0005CCC96BFF3A5F), UINT64_C(0x0001D6DCC8ACE7EF), UINT64_C(0x0001B8A8497C7E75), UINT64_C(0x0001448EF2271B21), UINT64_C(0x000469E763024DA6), UINT64_C(0x000C1E4859EDB4E8), UINT64_C(0x00022B32D11EA0B8), UINT64_C(0x0007833F6716976E), UINT64_C(0x00056E62E2CC647C), UINT64_C(0x00060A6CC7E8F469)}, {UINT64_C(0x000A5D20AC5EDF20), UINT64_C(0x0006BD1CB9C662A5), UINT64_C(0x000053F695AD3F0C), UINT64_C(0x0003BB68B21BAC80), UINT64_C(0x0006FA23083E49C3), UINT64_C(0x000960F58A7F49C4), UINT64_C(0x000534DF3026534A), UINT64_C(0x00068C4D4E5AFD06), UINT64_C(0x00003C47E39095B9), UINT64_C(0x000113AD9DE11151)}, {UINT64_C(0x000AD10BAF7B6E7F), UINT64_C(0x0005FBD2F1D1D0A6), UINT64_C(0x00064E2BF5A74481), UINT64_C(0x00000C9DED412AB9), UINT64_C(0x0006DF76D2881747), UINT64_C(0x000F68ADE96EFAEE), UINT64_C(0x0007CF2EE2DD3D95), UINT64_C(0x00029109B2E5028B), UINT64_C(0x000084C0C872E5AF), UINT64_C(0x00055EF1044EE901)}}, {{UINT64_C(0x0000978CD0735FB2), UINT64_C(0x0000A3B4EC3A861F), UINT64_C(0x00024123B8F06382), UINT64_C(0x00076C7DAA554F27), UINT64_C(0x0001B6A5E18D2E6A), UINT64_C(0x000947CC76EF8A46), UINT64_C(0x0001CA1CA453479A), UINT64_C(0x000072531851597A), UINT64_C(0x00005962E72A5B9F), UINT64_C(0x00035F4D1AE3ECEF)}, {UINT64_C(0x00063950B57813F3), UINT64_C(0x0003955052095B99), UINT64_C(0x0000910D0C16F997), UINT64_C(0x0006561C81D19E24), UINT64_C(0x0005BD32E2B1D2DC), UINT64_C(0x000B1BCFBCC703F8), UINT64_C(0x00044176746C4650), UINT64_C(0x00025ECF08C32C2B), UINT64_C(0x00034A09E20BB15C), UINT64_C(0x00059E3EA6051146)}, {UINT64_C(0x0005697698D05E0F), UINT64_C(0x00053B12113E48E9), UINT64_C(0x0003CCFD3B3F2E28), UINT64_C(0x0003B625F59D23B8), UINT64_C(0x0005E36ACA4E9712), UINT64_C(0x0003CD4602A4EB25), UINT64_C(0x0001F0A79E67888A), UINT64_C(0x0001A3BB856644D1), UINT64_C(0x0007BC8D45D9BE80), UINT64_C(0x000240C74D67C49F)}}, {{UINT64_C(0x000F4AB4ACE9FBFB), UINT64_C(0x0001323C2E448C11), UINT64_C(0x0007E627CF56EBD6), UINT64_C(0x0000AFD6CA7DE511), UINT64_C(0x0006DCC97293C201), UINT64_C(0x00045898E21442A0), UINT64_C(0x0004D8D6616961DB), UINT64_C(0x000120025DFF12D0), UINT64_C(0x00027486D92674F0), UINT64_C(0x0000E577FD8D1E8D)}, {UINT64_C(0x0008D1FF64347FD3), UINT64_C(0x0000B5503113ECB8), UINT64_C(0x0006A04E1F0AD932), UINT64_C(0x0005EFDB668B751C), UINT64_C(0x0007A75A308E95E9), UINT64_C(0x000DE0F991E7DCE0), UINT64_C(0x0001AC3243FB2D46), UINT64_C(0x0007C4CD25A8CCA1), UINT64_C(0x00020F39C66C4FB0), UINT64_C(0x00030EF201B6694C)}, {UINT64_C(0x000D02B23C415547), UINT64_C(0x000585D53C64FF35), UINT64_C(0x0003D4E05329F658), UINT64_C(0x0003E78544910FE9), UINT64_C(0x000145FA301F1487), UINT64_C(0x00084D749E22B3AC), UINT64_C(0x0005DB00726E0F27), UINT64_C(0x00049F8B12327E02), UINT64_C(0x00066FA6FAE6E30F), UINT64_C(0x000148864CA7B024)}}, {{UINT64_C(0x00072DB89831C22E), UINT64_C(0x000212B7A78FBD12), UINT64_C(0x00021EB595C4F6D8), UINT64_C(0x000230B818D0625E), UINT64_C(0x000432CEBFBE8326), UINT64_C(0x0005A4237390A4E7), UINT64_C(0x00048BC4F80E39D8), UINT64_C(0x0002C266EDA08C65), UINT64_C(0x0003003D1ACFB73A), UINT64_C(0x0003B25FB2316C33)}, {UINT64_C(0x0001309EB03AE17C), UINT64_C(0x0006B7D21F1AC8CA), UINT64_C(0x00030F22AD66CC64), UINT64_C(0x00068CAE1E8A8AE4), UINT64_C(0x000036B8E12F02A1), UINT64_C(0x00051A9A31790107), UINT64_C(0x0002BC64D9C75BC2), UINT64_C(0x00012E0A5E87C678), UINT64_C(0x0005A6B78E7A5666), UINT64_C(0x0007ADC780A85627)}, {UINT64_C(0x000623C20A48F7FB), UINT64_C(0x00068BD279754B54), UINT64_C(0x000214146A030D28), UINT64_C(0x0000BCF5046BE3DE), UINT64_C(0x0007F0B1C26980FD), UINT64_C(0x000E951243CBB013), UINT64_C(0x0003FEDEE8A79D6A), UINT64_C(0x00037CD9BA1B93CC), UINT64_C(0x00060FA57A12C244), UINT64_C(0x000342025E288D46)}}, {{UINT64_C(0x00060F5BE50D6219), UINT64_C(0x0004F425F334521F), UINT64_C(0x000084F4C30F8CB3), UINT64_C(0x0004572CAA850AB6), UINT64_C(0x0007491416856BB1), UINT64_C(0x000DD438508B179E), UINT64_C(0x0005AF1DAD1E9061), UINT64_C(0x00072FF71C440602), UINT64_C(0x000640C33C87D2DD), UINT64_C(0x0006CEED81188498)}, {UINT64_C(0x000EFB091DF854C6), UINT64_C(0x00028A1D31C19FA0), UINT64_C(0x0002A9A404668E0B), UINT64_C(0x000727F82CC27ACF), UINT64_C(0x000126282CC527D7), UINT64_C(0x00014FAB2CE4AC32), UINT64_C(0x0001FAFC4C09B367), UINT64_C(0x000252F0B2B54F3B), UINT64_C(0x0007E8131BAA6FF5), UINT64_C(0x000517793281415B)}, {UINT64_C(0x000BDEBEB66BDFE8), UINT64_C(0x0002CC5E9E8B6103), UINT64_C(0x00004B6B392825E5), UINT64_C(0x0002C59B6082CA61), UINT64_C(0x000540C66BBC2394), UINT64_C(0x0003927DEFBBC62D), UINT64_C(0x0001F26C16D6387C), UINT64_C(0x000086AB5563FC8E), UINT64_C(0x00064F3E8C626EBD), UINT64_C(0x0000C841CACA38C0)}}, {{UINT64_C(0x0000A508668F873E), UINT64_C(0x00005FDC5913D7CF), UINT64_C(0x00077CFFBBDCF5A1), UINT64_C(0x0003F77B2390B8D4), UINT64_C(0x0005594711779416), UINT64_C(0x0005ADA86CAF4491), UINT64_C(0x0007F7C714C93E3D), UINT64_C(0x0005186774E545D7), UINT64_C(0x0002C4325416B617), UINT64_C(0x0002EAF1D8B132CD)}, {UINT64_C(0x000AEBD507E37692), UINT64_C(0x000309A15EAB0693), UINT64_C(0x0005FF4C2A7A5D05), UINT64_C(0x000218CCB516CA7F), UINT64_C(0x000091C7C9915F63), UINT64_C(0x00004C73F619E0B9), UINT64_C(0x00018867BD8D792A), UINT64_C(0x00077DF8951E6F62), UINT64_C(0x0002FCA92BD5A710), UINT64_C(0x0003DE1F4CB64968)}, {UINT64_C(0x0007D8C68947865A), UINT64_C(0x00035B85E8AF7920), UINT64_C(0x000138BC855475E9), UINT64_C(0x00065B8343CF3C8E), UINT64_C(0x00072C46C618D9B0), UINT64_C(0x000DD020C6DF0D12), UINT64_C(0x000470F00A8FAEE1), UINT64_C(0x0005DAF00E2DC642), UINT64_C(0x00063930E56AAF60), UINT64_C(0x000286F9B967AAC9)}}, {{UINT64_C(0x000DD90F276D31AF), UINT64_C(0x0000EA6D5DBA194F), UINT64_C(0x000430D033491006), UINT64_C(0x0007F9FA0D60BE75), UINT64_C(0x0004B562950EEA1A), UINT64_C(0x000E6BCD0715D21E), UINT64_C(0x0000590F8E3023F7), UINT64_C(0x0001D19FD03857CA), UINT64_C(0x000620A7B51ED174), UINT64_C(0x0001D40D3102B572)}, {UINT64_C(0x00032D705F8518C5), UINT64_C(0x0000368F16F69285), UINT64_C(0x00031B1912C61DA8), UINT64_C(0x0006862322CE1F30), UINT64_C(0x00010660B97D08CF), UINT64_C(0x00035D64540A6D07), UINT64_C(0x0004199885EE5BEA), UINT64_C(0x00028D3C28F71406), UINT64_C(0x000098A7ED42E515), UINT64_C(0x0000033517091A8F)}, {UINT64_C(0x000BEEAD956FEED8), UINT64_C(0x0006D144B99B7E54), UINT64_C(0x0006620FDB6DADBF), UINT64_C(0x00065F15A8F5ECA2), UINT64_C(0x00024170192B151F), UINT64_C(0x0006068B65F5278C), UINT64_C(0x0006AB4CACC7BF25), UINT64_C(0x0006680608A271D0), UINT64_C(0x00025004C7539417), UINT64_C(0x000727215A3B6BFA)}}, {{UINT64_C(0x000FAA227F4F5AD3), UINT64_C(0x00048C30B1278D75), UINT64_C(0x0004C2380F042C08), UINT64_C(0x0006F4250A5404FA), UINT64_C(0x0000E5775C9D6EA4), UINT64_C(0x000C434ED2579348), UINT64_C(0x00043B279220C0B7), UINT64_C(0x00011C3AB979AF10), UINT64_C(0x000593B8B6831C9A), UINT64_C(0x0000C951C87E440D)}, {UINT64_C(0x0009E652CBEBE9EA), UINT64_C(0x0002D471C31CC4A7), UINT64_C(0x0001180C86178F58), UINT64_C(0x0004A1CBEE332A03), UINT64_C(0x0004F056D32EEC00), UINT64_C(0x000E9D6F5A148CC7), UINT64_C(0x00038F214F11933B), UINT64_C(0x0006AB7F8DF475B6), UINT64_C(0x00016E32A36F4E7A), UINT64_C(0x00002D0656419319)}, {UINT64_C(0x000FCD3F816A5978), UINT64_C(0x0006041C99F186A9), UINT64_C(0x0001D3D980EFB038), UINT64_C(0x0007E9FDEA9BE147), UINT64_C(0x00032BCE66E90B6D), UINT64_C(0x0001B6674476F1BF), UINT64_C(0x00051E25FEF557ED), UINT64_C(0x000029CDE03D236F), UINT64_C(0x000478BCDD0C953A), UINT64_C(0x0004BEBB6141C907)}}, }, { {{UINT64_C(0x0009E2E990726798), UINT64_C(0x00009676B8E190DC), UINT64_C(0x00048C9965EA2A0C), UINT64_C(0x0004EF181E315DD7), UINT64_C(0x00003A6A0FE2B108), UINT64_C(0x0004B4B789B5786E), UINT64_C(0x0001839D83E4BC52), UINT64_C(0x0003B9D09BE4ACFC), UINT64_C(0x000603A800326917), UINT64_C(0x0007C7926D46765A)}, {UINT64_C(0x000BDE461C54BBE9), UINT64_C(0x00030C12C7BE3000), UINT64_C(0x00068D49E4D38051), UINT64_C(0x000002424DFF63EE), UINT64_C(0x0006748D0F817A7A), UINT64_C(0x000DAAAC34BF5895), UINT64_C(0x0004BF755438F5F4), UINT64_C(0x00031C0109A0A789), UINT64_C(0x0000257084478A82), UINT64_C(0x0000EADEDC01C8B8)}, {UINT64_C(0x000BA95D208FC8C9), UINT64_C(0x000171FB35AEDA7D), UINT64_C(0x0002108B68CD61DE), UINT64_C(0x00032F4E1D4BC730), UINT64_C(0x0000FFB462AB7826), UINT64_C(0x000A3E9F4B3F7B0E), UINT64_C(0x0001E70DB7658F11), UINT64_C(0x00028C2EF3EEB807), UINT64_C(0x000753BD52CA29CE), UINT64_C(0x000547E50673926A)}}, {{UINT64_C(0x000F9CABD5C6650F), UINT64_C(0x00036740AC449DBC), UINT64_C(0x0004759192EC241F), UINT64_C(0x000381C0F9E7EAB2), UINT64_C(0x00063278E1545DA8), UINT64_C(0x000037A5B7E50AB6), UINT64_C(0x000476FAC0FF808E), UINT64_C(0x00036E5576C1E063), UINT64_C(0x00027A9D39B89A83), UINT64_C(0x0006F1DA42C4750F)}, {UINT64_C(0x0000C0B93DC3C004), UINT64_C(0x00035D0E6F5E38D1), UINT64_C(0x00061A730762CA71), UINT64_C(0x0003A620EFD387BE), UINT64_C(0x0003E2EC3540ED15), UINT64_C(0x000E424C214D117F), UINT64_C(0x0003E1325B0BB449), UINT64_C(0x0006FC7D1FC2FC7C), UINT64_C(0x00073F72D066FB57), UINT64_C(0x0004B2D6EC5C213B)}, {UINT64_C(0x000ACB4FC84F8936), UINT64_C(0x0000757CBE4C50D6), UINT64_C(0x00049E1C99C1E958), UINT64_C(0x0007D86D6FF27A95), UINT64_C(0x00029876C3EF1BD5), UINT64_C(0x000A9E00A5CBE886), UINT64_C(0x0000BD4E512C515F), UINT64_C(0x0005C75102170269), UINT64_C(0x0007807E85A235DA), UINT64_C(0x000293A17091A760)}}, {{UINT64_C(0x000308924C47EA21), UINT64_C(0x0007EFFEAF16E651), UINT64_C(0x0007D78EEF6B95C8), UINT64_C(0x000480EBCBF733D4), UINT64_C(0x0001F759131373D1), UINT64_C(0x000F52DAA6D26E12), UINT64_C(0x0001AA1A394183A6), UINT64_C(0x00031E24C017EBE3), UINT64_C(0x000134A7ECCB3DEC), UINT64_C(0x0001EAACFA806C01)}, {UINT64_C(0x0000C8DC99E4D9E5), UINT64_C(0x0000499FCD94685F), UINT64_C(0x0004FB45C9641579), UINT64_C(0x00014AE4737E13F2), UINT64_C(0x0005BAC25108C107), UINT64_C(0x000407F8F14C185F), UINT64_C(0x0003281019A9EC49), UINT64_C(0x00018C647189223F), UINT64_C(0x00077667AEF20006), UINT64_C(0x000342D230F93D40)}, {UINT64_C(0x000C9265EF97099F), UINT64_C(0x0002CB0A3B71869F), UINT64_C(0x0000DD18B78BEFAB), UINT64_C(0x000445C0E95393D6), UINT64_C(0x00022C17960D9AEB), UINT64_C(0x00055752E5A3E34F), UINT64_C(0x00029B02A7513832), UINT64_C(0x000115BB849BE596), UINT64_C(0x00070895A6FD0E07), UINT64_C(0x0002E9C698B128A0)}}, {{UINT64_C(0x0000460245EC561C), UINT64_C(0x000759CFCDC4304B), UINT64_C(0x0000354F11DD3770), UINT64_C(0x00034ECA59B714C8), UINT64_C(0x0006DEB5CFBFE8AA), UINT64_C(0x0009C83E53DD01E1), UINT64_C(0x000681045B1B2B4B), UINT64_C(0x00066B499D80354A), UINT64_C(0x0007B09A32C5EB10), UINT64_C(0x0007F5BFC7687E65)}, {UINT64_C(0x0007DBDD7509D7B6), UINT64_C(0x0001FF07267C40F7), UINT64_C(0x00020C1AAC3C0409), UINT64_C(0x0006148B211F9D4A), UINT64_C(0x0007D9183357E99A), UINT64_C(0x0005FB86106C8179), UINT64_C(0x00061566F3217886), UINT64_C(0x00064086D6797E68), UINT64_C(0x0000AAE710B5D9A0), UINT64_C(0x0003A7960D860C8C)}, {UINT64_C(0x000BA0F7583190C4), UINT64_C(0x00076FA655DA6153), UINT64_C(0x0006AD011EF06120), UINT64_C(0x0001B9919F914745), UINT64_C(0x0006933CC4A1F75E), UINT64_C(0x0008B0C001D798B5), UINT64_C(0x0003A7401C076C5F), UINT64_C(0x0002A5E88685994E), UINT64_C(0x00040E300EEB5F5B), UINT64_C(0x000401FE079260EE)}}, {{UINT64_C(0x000659914EBDF906), UINT64_C(0x0004AC87025B5364), UINT64_C(0x0000284A5CDE167E), UINT64_C(0x0003DCE5E16B1561), UINT64_C(0x000109507CE45C7B), UINT64_C(0x000E774890C7761C), UINT64_C(0x0005E1CED11C691A), UINT64_C(0x0000B979E77DA4D4), UINT64_C(0x0004EF607D7B0F58), UINT64_C(0x000597CD44BFB28F)}, {UINT64_C(0x000A69885D31FD12), UINT64_C(0x00077B176FC02779), UINT64_C(0x00032C80E3987695), UINT64_C(0x00075F209C1E30BB), UINT64_C(0x0001009FD731AAC0), UINT64_C(0x000D3EB5362EA2CF), UINT64_C(0x0001D6C33BB4F1EC), UINT64_C(0x0005811CB2ECEF96), UINT64_C(0x00057D8C6C5AE4E1), UINT64_C(0x0004B4EA22243336)}, {UINT64_C(0x000E6D776CDADB51), UINT64_C(0x00059CCC0F8E0BB1), UINT64_C(0x000788DF3C7AD498), UINT64_C(0x000142A89307C686), UINT64_C(0x00016B22FB5E10E8), UINT64_C(0x0004175AE2F3EB2B), UINT64_C(0x0002B10B599DE0CC), UINT64_C(0x0001EBE2F56C5287), UINT64_C(0x0001A33116E45EDF), UINT64_C(0x0004AE20B6AA13BB)}}, {{UINT64_C(0x000D4F1640E31025), UINT64_C(0x00005369F3A71705), UINT64_C(0x0006E57097B5B700), UINT64_C(0x000287C31DDA7EB0), UINT64_C(0x0006BD941635599D), UINT64_C(0x000958A013ADB362), UINT64_C(0x000797EC3AF59A21), UINT64_C(0x000532140C91BE6E), UINT64_C(0x0004936CF742D1B9), UINT64_C(0x0006D291755B4C5F)}, {UINT64_C(0x0000A926A8EE98B9), UINT64_C(0x00046DFF06B0EA14), UINT64_C(0x000422FF6FD967CC), UINT64_C(0x000779542C4521B1), UINT64_C(0x000469BEAB421801), UINT64_C(0x000E418E584BB6E2), UINT64_C(0x00009CA813EF2F4E), UINT64_C(0x0005F68592828DF0), UINT64_C(0x0000656C0BBF9122), UINT64_C(0x0000CCB05A025C71)}, {UINT64_C(0x000E98CF9AA86649), UINT64_C(0x0004280C51AC4674), UINT64_C(0x00069006DA4ABEB3), UINT64_C(0x00046B1CDF4D42C3), UINT64_C(0x00052325C9885550), UINT64_C(0x00030D64AFD848FD), UINT64_C(0x0002C8ACC81C6FC5), UINT64_C(0x00047CB0D16BECBB), UINT64_C(0x000424989DA2A6C5), UINT64_C(0x000168C78A279267)}}, {{UINT64_C(0x000D255173B3974D), UINT64_C(0x00078AB8051F9D89), UINT64_C(0x0005D31E2BD6FAF8), UINT64_C(0x0007DECEFF2FED16), UINT64_C(0x0000A995EBB1AF3C), UINT64_C(0x000EC88849F934DD), UINT64_C(0x0003F4357D1349BF), UINT64_C(0x0003003724CCAD86), UINT64_C(0x0005CC63A601A857), UINT64_C(0x000343B88A410741)}, {UINT64_C(0x000B861EBEC11DA3), UINT64_C(0x0002F7DA0CE66B58), UINT64_C(0x0004A05CFDD667EC), UINT64_C(0x000618C4234E4317), UINT64_C(0x00077E534DE5E42D), UINT64_C(0x000F510ACBE2E35B), UINT64_C(0x0004D176CC3F8974), UINT64_C(0x0004199583F06449), UINT64_C(0x0000406979E0EB70), UINT64_C(0x000695F16DD2B384)}, {UINT64_C(0x000B5F01887D972B), UINT64_C(0x000591009B9788BD), UINT64_C(0x0001CFB8C1E46165), UINT64_C(0x0005B8112A6084A0), UINT64_C(0x00049527793479C1), UINT64_C(0x000B187275AFF4A8), UINT64_C(0x00049D80550875EB), UINT64_C(0x00065B3359B96DBD), UINT64_C(0x0001FB8879675983), UINT64_C(0x0005DEBD62191D57)}}, {{UINT64_C(0x000D1CA24C4248EB), UINT64_C(0x0005F680B9DB4143), UINT64_C(0x000332A16BFB989D), UINT64_C(0x000753E5C1BD1DD6), UINT64_C(0x0004FB5069A3DD11), UINT64_C(0x000B36967D95CB7F), UINT64_C(0x0007C1A743B83E84), UINT64_C(0x0000AEE0A0745A8D), UINT64_C(0x0006C7A9C91323B2), UINT64_C(0x000528CD9463AAFB)}, {UINT64_C(0x000C466D9EBE068D), UINT64_C(0x00013A27797DC234), UINT64_C(0x00018F27D8B96428), UINT64_C(0x000024C1197D66BB), UINT64_C(0x00030D29442EEAC4), UINT64_C(0x000D7F436D88C8D7), UINT64_C(0x00041C67DD503E48), UINT64_C(0x00071B77621F3C37), UINT64_C(0x0001E384DE527534), UINT64_C(0x0004A3548D4230EF)}, {UINT64_C(0x0009D0F8D367877F), UINT64_C(0x000144D7265E0804), UINT64_C(0x0005645C59D64EAE), UINT64_C(0x000533EB925569B6), UINT64_C(0x0004DFD1C43D5A74), UINT64_C(0x000E0AA14014632B), UINT64_C(0x0005693798BB1AC4), UINT64_C(0x00000B28BE3E0068), UINT64_C(0x000379AAA7EAE112), UINT64_C(0x0000247F1C8CFD8E)}}, {{UINT64_C(0x000C15D58808355F), UINT64_C(0x0003A9B54B4046D8), UINT64_C(0x0003BE1A6AB6A8D7), UINT64_C(0x000699C7D04884C2), UINT64_C(0x00055A19B13E30E6), UINT64_C(0x000FBA511C14C314), UINT64_C(0x0007C4B1AB58948C), UINT64_C(0x00014F0D999CB430), UINT64_C(0x0007AFCB455F6D0F), UINT64_C(0x00013287261490BE)}, {UINT64_C(0x000C39060A09A6A6), UINT64_C(0x00068EFAAE7BEA33), UINT64_C(0x0000F39708828339), UINT64_C(0x00074458444BC73B), UINT64_C(0x0004EBB9FE3A3451), UINT64_C(0x0002963523524531), UINT64_C(0x0002BA9B39DAC86F), UINT64_C(0x000296C0868A96CA), UINT64_C(0x0000E1FD8D0A7823), UINT64_C(0x00010A911670FB07)}, {UINT64_C(0x000F856897F72F1E), UINT64_C(0x0000EEE5678607C6), UINT64_C(0x000517CD2197022F), UINT64_C(0x0004BEDF2B12DB4D), UINT64_C(0x00019C0AF97A5D1D), UINT64_C(0x000374FACB3B50F7), UINT64_C(0x0003917CBAD403FF), UINT64_C(0x0004C4704E757E6D), UINT64_C(0x00029A25D20AD24F), UINT64_C(0x000369770FC2A344)}}, {{UINT64_C(0x0008DA57843C3422), UINT64_C(0x000082AA03CF53E5), UINT64_C(0x0007396268B0FA19), UINT64_C(0x000148F2D5ECB6B4), UINT64_C(0x0000E4C3E6069C02), UINT64_C(0x0008A317BACC7D91), UINT64_C(0x00023FB0B882B0C6), UINT64_C(0x0003470CCBB116C6), UINT64_C(0x0001DD2C55D9FCCD), UINT64_C(0x0003D996E34873D8)}, {UINT64_C(0x000494440ECC3AB3), UINT64_C(0x0002540E1E629CBC), UINT64_C(0x0007355927AA0DA6), UINT64_C(0x000617CCFB6EB6C6), UINT64_C(0x00045DCD2CD0B597), UINT64_C(0x000A9351FEF0BD26), UINT64_C(0x0000E241A46E98C5), UINT64_C(0x00011AAC255B8C6D), UINT64_C(0x00077EB6092D7F54), UINT64_C(0x00006C19945480AB)}, {UINT64_C(0x0008B1824E089690), UINT64_C(0x0004658566F83B39), UINT64_C(0x0007A1E24B6B0E67), UINT64_C(0x0003546FE60DC8CA), UINT64_C(0x000527C86CABEAC9), UINT64_C(0x0006138EFAB370BD), UINT64_C(0x000367B7A18E4830), UINT64_C(0x0005F41E7F74F931), UINT64_C(0x00043CD498AEE92B), UINT64_C(0x00036640F17461CB)}}, {{UINT64_C(0x00014F84E18CA5AB), UINT64_C(0x000581E482520BE7), UINT64_C(0x0006D3C0B43466D5), UINT64_C(0x000717397C15F270), UINT64_C(0x0002926AAAE17414), UINT64_C(0x000CEE21A20BFDB7), UINT64_C(0x0005627F8C434E1F), UINT64_C(0x0007B06611540ADD), UINT64_C(0x00017C0766AD8FF8), UINT64_C(0x0001A6DF1F7CFD76)}, {UINT64_C(0x00048F19C87B8FFD), UINT64_C(0x000738685355DF41), UINT64_C(0x00062D4C85207B23), UINT64_C(0x0004DA81080542F4), UINT64_C(0x0002595A163374DE), UINT64_C(0x00077DF196F75779), UINT64_C(0x0003CC24DA342DED), UINT64_C(0x00071C8601CD59A9), UINT64_C(0x000575ED879C1606), UINT64_C(0x0003C9A80845E0C4)}, {UINT64_C(0x000E4341EC68E990), UINT64_C(0x00007DB9731C2EAE), UINT64_C(0x00050B4AC8A0C069), UINT64_C(0x00020F490D1B024D), UINT64_C(0x00067C6E1654BBA0), UINT64_C(0x0003EFDE035BD6AF), UINT64_C(0x0003C25584A7D506), UINT64_C(0x000591764CC32886), UINT64_C(0x0006FC9CB331260F), UINT64_C(0x00017E5D60885352)}}, {{UINT64_C(0x000731233C0BF910), UINT64_C(0x000329E61DB0C699), UINT64_C(0x0007BA2FF701A4E9), UINT64_C(0x000333EA1E17AEF2), UINT64_C(0x00004C20BB4E7B23), UINT64_C(0x00036D578DEB0B28), UINT64_C(0x0001EB9E5DFB52E4), UINT64_C(0x0004CA4959FA2735), UINT64_C(0x0001D94E469AE705), UINT64_C(0x00076C278152C2A0)}, {UINT64_C(0x00098E1BB8C2F143), UINT64_C(0x0004D297A9E0C320), UINT64_C(0x00076A7705B29809), UINT64_C(0x0001C4AB1E7AA3FB), UINT64_C(0x0007CEC0D37488E9), UINT64_C(0x000AF115EFF64680), UINT64_C(0x0000120EF3CBB216), UINT64_C(0x00054823751D4F6C), UINT64_C(0x0002AC54F606C3D7), UINT64_C(0x0001EBCEFB260725)}, {UINT64_C(0x000B771E27A53F81), UINT64_C(0x0006D54C547C8EC4), UINT64_C(0x0000011D3B796F70), UINT64_C(0x000103E44C9CDCE1), UINT64_C(0x0004C7BA40D38FA7), UINT64_C(0x00089A5EBD4841A3), UINT64_C(0x000684C71D5AEC65), UINT64_C(0x000605EEF1D5EAB1), UINT64_C(0x00067509EAF71EBE), UINT64_C(0x0005963E232F38F6)}}, {{UINT64_C(0x000BCAC8C9D8CB62), UINT64_C(0x000201763A59294E), UINT64_C(0x00019A01979C0FF2), UINT64_C(0x0004D0E0410F78A4), UINT64_C(0x0006EB9F8CAC287A), UINT64_C(0x000EA0768460F44C), UINT64_C(0x0005A455F94A712D), UINT64_C(0x0000BC93EBB5FFB3), UINT64_C(0x00020C65BD0C37ED), UINT64_C(0x000261BF4CEC1574)}, {UINT64_C(0x000FF07CB12EA13B), UINT64_C(0x00020429E9B2B0F9), UINT64_C(0x0004DFA80EA8ECD6), UINT64_C(0x00073BBBD56CD402), UINT64_C(0x0003919C06A06CA6), UINT64_C(0x000A50DFCA5441D8), UINT64_C(0x0002B9A99A9B237D), UINT64_C(0x000742A2E2D61162), UINT64_C(0x0002CA00A4309B93), UINT64_C(0x0000905C120B4320)}, {UINT64_C(0x00061578EB35918B), UINT64_C(0x0001446B3BE9D4A0), UINT64_C(0x0003D523BC8898B4), UINT64_C(0x00064BBE9875DB61), UINT64_C(0x0000D3A22E1BC0BA), UINT64_C(0x00061BADB8814627), UINT64_C(0x0001E3CC67E1C334), UINT64_C(0x0007D8BFF80A52C8), UINT64_C(0x0007C1A1B139325E), UINT64_C(0x000699D472241937)}}, {{UINT64_C(0x00025E7D1EB3C74B), UINT64_C(0x0007898AA108BC0E), UINT64_C(0x00047515F8ED8CD4), UINT64_C(0x0004D3B9580C495A), UINT64_C(0x0007180B924B02DC), UINT64_C(0x0000F661E19F6359), UINT64_C(0x000670BF44B39CC7), UINT64_C(0x0007FE66B0398776), UINT64_C(0x0007995A1E2AC824), UINT64_C(0x0006D5DC46677210)}, {UINT64_C(0x000FAAD726B55EA2), UINT64_C(0x00079D5D2BEE8A46), UINT64_C(0x00026095ED36BEE6), UINT64_C(0x0006B2CD7C0A5EAC), UINT64_C(0x0007363AADE3CBFF), UINT64_C(0x0008973FB787E167), UINT64_C(0x0007C0F634CBA455), UINT64_C(0x0000FA999E76881F), UINT64_C(0x000324C512E8946B), UINT64_C(0x000380D8788E7945)}, {UINT64_C(0x0008DB1A6DE4460C), UINT64_C(0x00062893735BF9A0), UINT64_C(0x000013BA32E02B7B), UINT64_C(0x00073C9F80B4A895), UINT64_C(0x0003C3F3C87AAFB2), UINT64_C(0x000827F36493E441), UINT64_C(0x000292EFAC99E138), UINT64_C(0x000022A4A4904138), UINT64_C(0x00024529ECB28E37), UINT64_C(0x00077421EE238C1B)}}, {{UINT64_C(0x000F7B9C6C9FCA63), UINT64_C(0x00034B8A0AAFC9BE), UINT64_C(0x0005DAE98DB7E24F), UINT64_C(0x00074C6CA22931E1), UINT64_C(0x0002A4921C14D883), UINT64_C(0x0006EFA91FA1CE71), UINT64_C(0x0003CE84355E0DCE), UINT64_C(0x000753C05DD0ADC7), UINT64_C(0x00017FAB49BE457E), UINT64_C(0x000352750D53DB1E)}, {UINT64_C(0x000C2F7461033645), UINT64_C(0x000513C3544B8E3B), UINT64_C(0x00052C0D08ECF672), UINT64_C(0x000724A3D76B9645), UINT64_C(0x0005EE3A414B8581), UINT64_C(0x0001B06B1A55E453), UINT64_C(0x000186401A4D8285), UINT64_C(0x00038DD6E8C786ED), UINT64_C(0x0002D70CAF4EE8DD), UINT64_C(0x0005D01B347C3A06)}, {UINT64_C(0x0001567FFD93F0D1), UINT64_C(0x000309252F65BB4A), UINT64_C(0x0005959B6ED014AB), UINT64_C(0x0004B43212E34585), UINT64_C(0x000438AFACBE2355), UINT64_C(0x0005CE8397224869), UINT64_C(0x0005A2F2198160CD), UINT64_C(0x00038CA3C93100EF), UINT64_C(0x0005B4E108E763BD), UINT64_C(0x00013AB825E9037B)}}, {{UINT64_C(0x00035B4D0F47A893), UINT64_C(0x0000F88590FD42E6), UINT64_C(0x0000D7368E95AC4C), UINT64_C(0x000195F98944B691), UINT64_C(0x000486CCF2B919EC), UINT64_C(0x0004A59D1C2A3F33), UINT64_C(0x000534076FD4DE0F), UINT64_C(0x00059369592A8078), UINT64_C(0x00075849457601A8), UINT64_C(0x0005BCFEF89B98B3)}, {UINT64_C(0x00082471AB978FF4), UINT64_C(0x000417A722D632A1), UINT64_C(0x000119FFFE762A0C), UINT64_C(0x000154FACAC33A86), UINT64_C(0x000629B146A09126), UINT64_C(0x00077F98E5A9B02A), UINT64_C(0x0007BFDF4C9B46F3), UINT64_C(0x0006F3CE86DA2075), UINT64_C(0x00043496F1F7058B), UINT64_C(0x000410C0161E3F69)}, {UINT64_C(0x00061C0DDD1D5193), UINT64_C(0x0005D358D2C1C9E2), UINT64_C(0x0000F247BBCF087E), UINT64_C(0x00075A43B2343359), UINT64_C(0x0001269D6EFC98D0), UINT64_C(0x0009DE5FF8C9C95C), UINT64_C(0x00051605D13327E2), UINT64_C(0x00033CB5838CF4A6), UINT64_C(0x0003A16E2B08FE9E), UINT64_C(0x0003650C080431E5)}}, }, { {{UINT64_C(0x00049602E45D0A93), UINT64_C(0x00059C589221A880), UINT64_C(0x00006BFB336EDCAF), UINT64_C(0x0005AD45223DDD99), UINT64_C(0x00057F8BFA84AC51), UINT64_C(0x000AB4970BF8F60A), UINT64_C(0x00067F4FB7299A69), UINT64_C(0x0006C45D1DA5576A), UINT64_C(0x0001DF5059D6F745), UINT64_C(0x0007522509A7E4C7)}, {UINT64_C(0x000754184C1EAC3E), UINT64_C(0x0001803402F7CD15), UINT64_C(0x0004F73F4944A6CF), UINT64_C(0x00046CEC832A58F1), UINT64_C(0x0005BF7C9110EC11), UINT64_C(0x0006BEE5D06C0C15), UINT64_C(0x00004D8B8B8F00B0), UINT64_C(0x00028C4D421BD379), UINT64_C(0x00075078416E153C), UINT64_C(0x000359B19C14F12F)}, {UINT64_C(0x000808DDF052F857), UINT64_C(0x000019692911893C), UINT64_C(0x00020F8AC2158528), UINT64_C(0x0006BF85B2D465D0), UINT64_C(0x0000E4B967AE33BF), UINT64_C(0x0006B2C044AA16CD), UINT64_C(0x0005714242B5BB0F), UINT64_C(0x0005D92812DAFB73), UINT64_C(0x0007AD2DCB20ECFF), UINT64_C(0x00077EEC1D3FA208)}}, {{UINT64_C(0x0002119238646FD8), UINT64_C(0x0005ABC2F8AF448B), UINT64_C(0x000453259E95D8E5), UINT64_C(0x0005B48782EBCAEE), UINT64_C(0x00038436F43CDFBF), UINT64_C(0x00048D16E429CE28), UINT64_C(0x000570D828600948), UINT64_C(0x0003453855620095), UINT64_C(0x0006AD331E478470), UINT64_C(0x000651BFAB5074BD)}, {UINT64_C(0x0005F4433BDB32D9), UINT64_C(0x000105218D10DE9D), UINT64_C(0x000584EFCC5C27E2), UINT64_C(0x00013201F8F88C14), UINT64_C(0x0005783EC5680875), UINT64_C(0x0005599CE7F06E7D), UINT64_C(0x000469D4A0F10D5A), UINT64_C(0x00066493C7BE869D), UINT64_C(0x000282E244723DA2), UINT64_C(0x000003DDA26211EF)}, {UINT64_C(0x0004777CF1747536), UINT64_C(0x0004BD8E40F0AAC6), UINT64_C(0x0007330BCEF012F6), UINT64_C(0x0005B417B099D130), UINT64_C(0x00008F04461BF63F), UINT64_C(0x0002FAB6C914DFFC), UINT64_C(0x00012387DF5AFEB9), UINT64_C(0x00060B418608D67A), UINT64_C(0x00028BA76C66CFD8), UINT64_C(0x00046A5D5B19C944)}}, {{UINT64_C(0x000D23E16E7EB572), UINT64_C(0x00046332FC8A601B), UINT64_C(0x00065A48317134CE), UINT64_C(0x00043B6D52860AED), UINT64_C(0x0006EEB80466982A), UINT64_C(0x0009E57FBD4942F2), UINT64_C(0x0001B441B9B92D52), UINT64_C(0x0003927622998150), UINT64_C(0x00032063CFE0CC69), UINT64_C(0x0001E7A8EAAD8648)}, {UINT64_C(0x0009791DBC2F7ADE), UINT64_C(0x0005B5AE56F669E8), UINT64_C(0x0004787844482C09), UINT64_C(0x000233D0503DE859), UINT64_C(0x0002980F93DB7782), UINT64_C(0x000E89640104583D), UINT64_C(0x000256749A55B356), UINT64_C(0x000346FB5377E7C7), UINT64_C(0x0005986D02625C7F), UINT64_C(0x0006501A5BE2B9EA)}, {UINT64_C(0x000DC86BCD571C18), UINT64_C(0x000295273CB7094B), UINT64_C(0x0002353CEEA64824), UINT64_C(0x0000EDE9FDAEF274), UINT64_C(0x0006FC2FE16F8340), UINT64_C(0x000E75263685AE89), UINT64_C(0x0002A6B522548B24), UINT64_C(0x00030B331A3CF122), UINT64_C(0x00040AA1996D71AF), UINT64_C(0x00021DA1E66C5828)}}, {{UINT64_C(0x0006237FE85D84B7), UINT64_C(0x0005D493978AA748), UINT64_C(0x0005606DB28D11E0), UINT64_C(0x0001404E7EE9A4A7), UINT64_C(0x0000009FCCF95887), UINT64_C(0x0001F35190486D07), UINT64_C(0x0005ABF1251A2823), UINT64_C(0x0007D9F90E1B9546), UINT64_C(0x000027D362BD3273), UINT64_C(0x0001D3276CA5DBCA)}, {UINT64_C(0x0005BCE59854F4F2), UINT64_C(0x00068A97823BA015), UINT64_C(0x00069C7B6BA3A2B9), UINT64_C(0x000391289E956A27), UINT64_C(0x0006D77C747BE4B3), UINT64_C(0x00030591F7C41921), UINT64_C(0x0002A1EB441BD53B), UINT64_C(0x00014CCBBA39D2CC), UINT64_C(0x0002A9EAEDC15CEF), UINT64_C(0x000175CD0B5E3DFD)}, {UINT64_C(0x00037ECC8CE85AE8), UINT64_C(0x0002D2E68B37C995), UINT64_C(0x0007756F4C412926), UINT64_C(0x00064C1755FD279C), UINT64_C(0x0005D142CA088513), UINT64_C(0x0005C77113983F17), UINT64_C(0x000667B020C82500), UINT64_C(0x000303A898E3AC4F), UINT64_C(0x0007E3C86D19C210), UINT64_C(0x0004249657F2E122)}}, {{UINT64_C(0x0001D1C5E353E5CA), UINT64_C(0x0002576EB624749B), UINT64_C(0x00065CDB175F1C9E), UINT64_C(0x0003A41B811E62CE), UINT64_C(0x000518CFEE6F53F7), UINT64_C(0x00098B04A4AC2F13), UINT64_C(0x0006AB7610983F96), UINT64_C(0x000746A4D621967E), UINT64_C(0x000350349EC927D2), UINT64_C(0x000222970DF1E1BE)}, {UINT64_C(0x0008906EEA836812), UINT64_C(0x0003114905108F3F), UINT64_C(0x0005C9663C445888), UINT64_C(0x0001C71F712BD33B), UINT64_C(0x00043D935A54A0DA), UINT64_C(0x0003646E9FDC729F), UINT64_C(0x0007210C4951848F), UINT64_C(0x00011FEF8E510953), UINT64_C(0x000346FAA21A5B8C), UINT64_C(0x00003AD57103DD51)}, {UINT64_C(0x00033864A36064D6), UINT64_C(0x000029B9EAFEDC2A), UINT64_C(0x0003BE3DEB0B5F9A), UINT64_C(0x0003B506AA541679), UINT64_C(0x0005B2A6B10327B0), UINT64_C(0x000157232B715DB2), UINT64_C(0x0001EA48E7F6FCF8), UINT64_C(0x00025E863CA33319), UINT64_C(0x0005C8D3F568BF16), UINT64_C(0x0004C5D907C3D1C8)}}, {{UINT64_C(0x00046AD26F23721E), UINT64_C(0x0002C765BDA314CE), UINT64_C(0x000752858F9EB295), UINT64_C(0x000513964D698E8F), UINT64_C(0x0001C85381B9C98C), UINT64_C(0x00007D077B6D8B14), UINT64_C(0x0002650BE441372D), UINT64_C(0x0007C92EF836C485), UINT64_C(0x0000F996ACD339F6), UINT64_C(0x0007E8564FED0A69)}, {UINT64_C(0x000E29A25F3371CF), UINT64_C(0x00008814C5A56ED5), UINT64_C(0x0000021D0DCD381D), UINT64_C(0x00076A6088860540), UINT64_C(0x0004219513890BB8), UINT64_C(0x0009B16B9A0A067F), UINT64_C(0x00047E7B85349C38), UINT64_C(0x00074B3FE445EC78), UINT64_C(0x000275D721E0622F), UINT64_C(0x0002A2EC646BA867)}, {UINT64_C(0x000BBDD3A720C17F), UINT64_C(0x0001B2C37BA0E3D1), UINT64_C(0x00054714236D0CC2), UINT64_C(0x00076964A35C7638), UINT64_C(0x000025052B296A76), UINT64_C(0x000C48304202EE65), UINT64_C(0x0006ED1F7DCB85DA), UINT64_C(0x0002FA4317B61178), UINT64_C(0x0006CEE7698DA4B8), UINT64_C(0x00044B0FF2267F23)}}, {{UINT64_C(0x000D747A3E22E2B1), UINT64_C(0x0003DEDA875D7CAE), UINT64_C(0x0006A21C6B5FE47D), UINT64_C(0x000412BD22E4D137), UINT64_C(0x00029DA6D3B3667F), UINT64_C(0x00048E20CB87439F), UINT64_C(0x000325A27394F2C8), UINT64_C(0x000428463E1D4FBF), UINT64_C(0x00041B300FF04818), UINT64_C(0x0001521958F0E161)}, {UINT64_C(0x000085DB6B7E977C), UINT64_C(0x00017CE01F10308D), UINT64_C(0x0000AC1CA092A153), UINT64_C(0x000415739EAB8C46), UINT64_C(0x0000C8CDF9774C54), UINT64_C(0x00051119A4D27CD6), UINT64_C(0x0003979EF4CABD4E), UINT64_C(0x000306E82DE011FD), UINT64_C(0x000130D235924305), UINT64_C(0x0004BC668226FA1A)}, {UINT64_C(0x00035460C289FE8C), UINT64_C(0x00077FC4B88D0A33), UINT64_C(0x00034B3A2F12DA46), UINT64_C(0x0000587252519A91), UINT64_C(0x00067696AD8CA13F), UINT64_C(0x0004B367ED30881B), UINT64_C(0x0006ECDC69A04362), UINT64_C(0x00062060141E8A58), UINT64_C(0x000446717A1D4C41), UINT64_C(0x00059C92F4144291)}}, {{UINT64_C(0x00090BCBA13F3FFA), UINT64_C(0x000459F76914A474), UINT64_C(0x00077DF9C1AB8451), UINT64_C(0x00027F4173658DE6), UINT64_C(0x000752A654451BBD), UINT64_C(0x0004389BF205F6A5), UINT64_C(0x0002A0F6E2CAC058), UINT64_C(0x000759DDCA3CF248), UINT64_C(0x0001DB6435DE0B7B), UINT64_C(0x0007A40E4FF1D274)}, {UINT64_C(0x000B40F9FEA2DF61), UINT64_C(0x000187FAF0A90648), UINT64_C(0x0007F429F69E5C3C), UINT64_C(0x0005E462DCD8F74D), UINT64_C(0x00002FB868905F55), UINT64_C(0x0006227264E559AC), UINT64_C(0x0005DCC2ACD4BE01), UINT64_C(0x0001754DD8D51BE7), UINT64_C(0x000254DBE11362D7), UINT64_C(0x00067071A34DAE0B)}, {UINT64_C(0x00052B353E84B78C), UINT64_C(0x000564D48962EE3B), UINT64_C(0x000566CE4AC9469E), UINT64_C(0x00022969A603533F), UINT64_C(0x00057CBF4F23DA31), UINT64_C(0x000F413FE6288E6F), UINT64_C(0x00043A5E06D777D3), UINT64_C(0x0000D59724B433B0), UINT64_C(0x0004AC5FF7A4F7F5), UINT64_C(0x0007581748BFBCFE)}}, {{UINT64_C(0x00051789D3E212FA), UINT64_C(0x0000BCEB94909B13), UINT64_C(0x00028C362BBCB45E), UINT64_C(0x00070EF351F3B7C0), UINT64_C(0x000666ECDEB8047E), UINT64_C(0x00078E439202364E), UINT64_C(0x0007E77E6140B4A9), UINT64_C(0x000482D5B04DDC11), UINT64_C(0x0001764AEFADC75A), UINT64_C(0x0006B47820ED7E1B)}, {UINT64_C(0x000E69076D92441D), UINT64_C(0x0007F96BE0ECA0A5), UINT64_C(0x0005B603DEE01A8E), UINT64_C(0x0002D1B5AEAB2F76), UINT64_C(0x0007A711B7087718), UINT64_C(0x000277D13CD92B5F), UINT64_C(0x0003AE287A233D24), UINT64_C(0x000666E9F9CC65A3), UINT64_C(0x000676645DDC4BCF), UINT64_C(0x0004C2FE8FE9D67B)}, {UINT64_C(0x00027D78672C6C00), UINT64_C(0x0002479A6D9CA279), UINT64_C(0x00072D4B69EE9EED), UINT64_C(0x000115C466A0FF92), UINT64_C(0x00040A74ED91DE82), UINT64_C(0x00007A983DF62653), UINT64_C(0x0003E0BD157BC637), UINT64_C(0x000257CF02231B18), UINT64_C(0x00021FB8D5B274BC), UINT64_C(0x00063F5ED86AF20B)}}, {{UINT64_C(0x000417CD2C573949), UINT64_C(0x0005C0A0F0D85A83), UINT64_C(0x0004BCA59A389EFA), UINT64_C(0x0004BC9A8EDBAE72), UINT64_C(0x00031DA12B0ED484), UINT64_C(0x000361F7E36F579E), UINT64_C(0x0002F55EEE1A1AB5), UINT64_C(0x0001FE95A3CDAB65), UINT64_C(0x0000BD0E2F996073), UINT64_C(0x00069840C7AEA37F)}, {UINT64_C(0x0008A8244C90AAE5), UINT64_C(0x000192938B5C4443), UINT64_C(0x00062E8381B8DA6E), UINT64_C(0x0002A57B4398E87B), UINT64_C(0x0001B401B603039D), UINT64_C(0x000F8931B08E2459), UINT64_C(0x0005FDE03EB7E448), UINT64_C(0x000042A4FFF29BE1), UINT64_C(0x0005548F632ED26F), UINT64_C(0x00007E01A00DDD53)}, {UINT64_C(0x00009C5F1271C360), UINT64_C(0x00014712324EDF39), UINT64_C(0x00024AF2050F1BB5), UINT64_C(0x0000FB6B43AD3C7B), UINT64_C(0x00066F4AA55F0B74), UINT64_C(0x000C69A365B54877), UINT64_C(0x0000D87DE69BA1D3), UINT64_C(0x00001F390592ACB1), UINT64_C(0x0002D3ACDCBEEC70), UINT64_C(0x0006A6C9430F6DC5)}}, {{UINT64_C(0x00076182951B9FCD), UINT64_C(0x00014DA2A6CA4A38), UINT64_C(0x00061C55C6BDE562), UINT64_C(0x0006ECA43E5605F8), UINT64_C(0x00006B6FFF6EC841), UINT64_C(0x0000713C0144812B), UINT64_C(0x00071F1D396EB0DD), UINT64_C(0x00071210D066A6DB), UINT64_C(0x000737CF73AC235F), UINT64_C(0x000056B844B68475)}, {UINT64_C(0x0008F1CEAD60A1D0), UINT64_C(0x0000444231BD8012), UINT64_C(0x000445D6A0ED8B97), UINT64_C(0x0002DD91F0EEE5C0), UINT64_C(0x0003766A3BF6B231), UINT64_C(0x000F5C93D686296E), UINT64_C(0x000233237F38DC42), UINT64_C(0x0007525D1A3497EA), UINT64_C(0x0001819B905D774A), UINT64_C(0x0007FFB178F7CE0F)}, {UINT64_C(0x000641A17722C8F1), UINT64_C(0x00079F1706850C02), UINT64_C(0x0006060CBB0518EB), UINT64_C(0x0002B66C8CB99F42), UINT64_C(0x00066E8E928880E6), UINT64_C(0x0001989CC847F22C), UINT64_C(0x0003469EEFF682ED), UINT64_C(0x0000D34A55978260), UINT64_C(0x00044C59D525236B), UINT64_C(0x000390050E10B720)}}, {{UINT64_C(0x00009CD2BD71F4DB), UINT64_C(0x00029F23BB9D8BE1), UINT64_C(0x0000FB44276A7039), UINT64_C(0x0005F4E44D6437E8), UINT64_C(0x0004E5D5F5C4BB02), UINT64_C(0x000662EA552904DE), UINT64_C(0x00072BFD95DA12F6), UINT64_C(0x0006E4A9CCE5BBB7), UINT64_C(0x00035D0BE00D7A94), UINT64_C(0x0001C01BCE0CD7F9)}, {UINT64_C(0x000C0AFD973DBCF3), UINT64_C(0x00064CE4BD3B9ACA), UINT64_C(0x0007702F5FC560D5), UINT64_C(0x0005E595BA3FBA8C), UINT64_C(0x0005B6BF254BF97D), UINT64_C(0x000576ABA05DA74C), UINT64_C(0x000010304EEBAB26), UINT64_C(0x00015D19F5797872), UINT64_C(0x00016D4017CFBF4A), UINT64_C(0x00026F6161725AEC)}, {UINT64_C(0x00087F397AEAE324), UINT64_C(0x0005FA83BB5E2D0C), UINT64_C(0x0007223E58B05D25), UINT64_C(0x0003870F05A9B0F5), UINT64_C(0x0001A6AE5BF4D17D), UINT64_C(0x000EC0FEC7C22B4D), UINT64_C(0x0004123EA40B3D05), UINT64_C(0x0006AB321BCED2BF), UINT64_C(0x0005EB8B088ADF8C), UINT64_C(0x0006D4D7B749D913)}}, {{UINT64_C(0x0004F5FA884DA730), UINT64_C(0x0000AF25F411BD67), UINT64_C(0x0003BA45D0584E3F), UINT64_C(0x0002185580D7028A), UINT64_C(0x00042C01189DCCED), UINT64_C(0x00008C6AE9B1ABB6), UINT64_C(0x00052E642E3C2B76), UINT64_C(0x0007310740FB3824), UINT64_C(0x000728038396164C), UINT64_C(0x000699C02D4658C4)}, {UINT64_C(0x00079389C8FD6F3C), UINT64_C(0x000334AEF7344570), UINT64_C(0x000242D78C5A1222), UINT64_C(0x0003C2A690D38351), UINT64_C(0x0001CF5ACE9C51A0), UINT64_C(0x00055B466F344A63), UINT64_C(0x0007E983BE7FDAE4), UINT64_C(0x00055CFA24140C02), UINT64_C(0x000069CB7B9C5BD2), UINT64_C(0x0006188710431607)}, {UINT64_C(0x00026F7B943A846D), UINT64_C(0x0002D01FFCEE4F40), UINT64_C(0x00018950D46B06FD), UINT64_C(0x000489C50B872A31), UINT64_C(0x0006350B0D584129), UINT64_C(0x0001F25CBB8B17E3), UINT64_C(0x0002C5C45781F165), UINT64_C(0x0005737448097914), UINT64_C(0x000511D83B88DD30), UINT64_C(0x000274954F75EF59)}}, {{UINT64_C(0x000ECDBAA9D6B470), UINT64_C(0x0004FEAEC5FC07C4), UINT64_C(0x00006ACFE89ADEF6), UINT64_C(0x0001DA4AAD513147), UINT64_C(0x00067D3AF31AE9ED), UINT64_C(0x000A4B232569B195), UINT64_C(0x0004CF616E4681F8), UINT64_C(0x000644769BD5A3D2), UINT64_C(0x00025E58B311AC44), UINT64_C(0x00052C8B011460F8)}, {UINT64_C(0x00045717702B786E), UINT64_C(0x00014A10820591ED), UINT64_C(0x00062D9363FA4EE1), UINT64_C(0x00022163012006D4), UINT64_C(0x000271B0D1CBDBE0), UINT64_C(0x00026F3A015A99D4), UINT64_C(0x0007C87580D2C201), UINT64_C(0x0001BF98F86FC444), UINT64_C(0x000138F3A6FA662A), UINT64_C(0x0001A06E15120B69)}, {UINT64_C(0x0008025E88D639DD), UINT64_C(0x0000E347C30AA122), UINT64_C(0x0002589D8BA62AC4), UINT64_C(0x0002E11924750A60), UINT64_C(0x0001FBEE719BDB54), UINT64_C(0x0004C0C9348C22B4), UINT64_C(0x00057FD26F80CAC8), UINT64_C(0x00019B358CE6D1E3), UINT64_C(0x00007A93D359D2C5), UINT64_C(0x00077158FA133E83)}}, {{UINT64_C(0x000D7DAFE61175ED), UINT64_C(0x0000E4504E665412), UINT64_C(0x0005FB729DDEE3EC), UINT64_C(0x000047F270C83BC2), UINT64_C(0x0005A73604DF6148), UINT64_C(0x000BD1E93DBD8BB5), UINT64_C(0x0000AC824EAD6B31), UINT64_C(0x0005FF3E8CE9DCC5), UINT64_C(0x00007CC6E8CFFAC1), UINT64_C(0x0002AFFEFFBB1A9A)}, {UINT64_C(0x00023316BB40DF6E), UINT64_C(0x000481B56A077501), UINT64_C(0x00013E2A0B14557D), UINT64_C(0x000595D27B53FF98), UINT64_C(0x0003C19B9D245EB2), UINT64_C(0x000FE22605BBBE16), UINT64_C(0x0005BBC13BECC9C3), UINT64_C(0x0005555CC21B1639), UINT64_C(0x0006C7E755F4FE0A), UINT64_C(0x00004CED449C0043)}, {UINT64_C(0x000F212C1FCCCAFA), UINT64_C(0x00065AA07D23A1F0), UINT64_C(0x000653B0A8787B0D), UINT64_C(0x0002764B66DA9938), UINT64_C(0x0001C729D799C70F), UINT64_C(0x000B8104F70D5296), UINT64_C(0x0002712DA31EC0BF), UINT64_C(0x00015C3C4923D483), UINT64_C(0x0005652F2FB13CB3), UINT64_C(0x00041664C0C8CDFC)}}, {{UINT64_C(0x00082999B7AC4DE8), UINT64_C(0x00058A2CECA252A7), UINT64_C(0x00020C73280A45C0), UINT64_C(0x000450DA84CA8CD7), UINT64_C(0x0007BF0E4090350D), UINT64_C(0x000ADF283C44352A), UINT64_C(0x0003E4DCFC4CEE6B), UINT64_C(0x000763CA01B20C07), UINT64_C(0x00074828372B938A), UINT64_C(0x00022EC150908F6A)}, {UINT64_C(0x0002582469359E84), UINT64_C(0x000228A33D25EEC6), UINT64_C(0x0006435073D85A7E), UINT64_C(0x000227840F93D3F5), UINT64_C(0x000262B1B8D3C804), UINT64_C(0x000340D7D4B65A82), UINT64_C(0x0003D2F31E1046E9), UINT64_C(0x0004F093EF407EAD), UINT64_C(0x0000739071C0CFCC), UINT64_C(0x00026D2395B09E2C)}, {UINT64_C(0x000F54E820DEB8D8), UINT64_C(0x000587F5BBC119C5), UINT64_C(0x00033CF484DE2CE4), UINT64_C(0x00072D6E48747C29), UINT64_C(0x0001FC0C06AF6484), UINT64_C(0x00072C72C472F425), UINT64_C(0x0006A997E7AC72B4), UINT64_C(0x000615BA71BDA74C), UINT64_C(0x000194736B2BCBEA), UINT64_C(0x00053764E1CF34DF)}}, }, { {{UINT64_C(0x000869A43C294C54), UINT64_C(0x0003CB29D7749693), UINT64_C(0x0007C4909DB7E1DF), UINT64_C(0x0005228EB2FBC6A3), UINT64_C(0x0001416FC12D302E), UINT64_C(0x00091471B10D8725), UINT64_C(0x0001E08AA9DECE88), UINT64_C(0x000587A018AD629C), UINT64_C(0x0006C4A4C27A1DCA), UINT64_C(0x0005C28EBD109BCD)}, {UINT64_C(0x000F17D6F444B156), UINT64_C(0x00010614A6278D4D), UINT64_C(0x00004E296EC65945), UINT64_C(0x000764A3D99A6C4C), UINT64_C(0x0003AC1DDF8C7862), UINT64_C(0x000A1BDC47EBAF83), UINT64_C(0x000575E7E4E6E02D), UINT64_C(0x000346FF3FA7D4EF), UINT64_C(0x0006490E0AA55F9E), UINT64_C(0x0003DE09135EA98D)}, {UINT64_C(0x0004B1218EED069B), UINT64_C(0x0003A6C9EA9923A4), UINT64_C(0x0001EC1877C85728), UINT64_C(0x000300A0F14A71F6), UINT64_C(0x0006ECECC49016EB), UINT64_C(0x00058EED82849105), UINT64_C(0x000400ECD17E513E), UINT64_C(0x00060825E3952E96), UINT64_C(0x000565AE484D0F5D), UINT64_C(0x000209AD7372BC07)}}, {{UINT64_C(0x000967088E9B527F), UINT64_C(0x0002672CB51B0152), UINT64_C(0x0000A1B79BAEC761), UINT64_C(0x0001174B982E833F), UINT64_C(0x00024E0D77B79A0D), UINT64_C(0x00047372BD137D72), UINT64_C(0x0000BD9098E4916F), UINT64_C(0x0002AE2E6C280D68), UINT64_C(0x000569AB6BDEC767), UINT64_C(0x0006EB14F61A266B)}, {UINT64_C(0x000468847FDDE1A1), UINT64_C(0x0007E47FFAC321C1), UINT64_C(0x000099E09961D0C8), UINT64_C(0x0007F115DEAE525D), UINT64_C(0x000694F77EF9636E), UINT64_C(0x00040F8DDE23159D), UINT64_C(0x0006680E30AEF9BB), UINT64_C(0x0006B528CEF988BE), UINT64_C(0x000518BE82D6063B), UINT64_C(0x00022B8C074B2105)}, {UINT64_C(0x0003A4C05B585761), UINT64_C(0x0003528539A1DAD4), UINT64_C(0x000540826053F31F), UINT64_C(0x0003BA075642B0C7), UINT64_C(0x000368D07DE9484A), UINT64_C(0x000B3D3E8D9BA85E), UINT64_C(0x0007550F9A53DD73), UINT64_C(0x000041A194358CC9), UINT64_C(0x0004F9F0386A50A1), UINT64_C(0x00041D37DCFBA507)}}, {{UINT64_C(0x00024FF20ED85567), UINT64_C(0x00026ACB40B58156), UINT64_C(0x0002C9398F6DD650), UINT64_C(0x00030160273B8447), UINT64_C(0x0002E3773B782B9F), UINT64_C(0x0007030F6938A06B), UINT64_C(0x0004E62A1384F897), UINT64_C(0x000225C672A35300), UINT64_C(0x0005C1F66CAD5B3A), UINT64_C(0x0005832B4574C046)}, {UINT64_C(0x0006B08E0399855F), UINT64_C(0x0000E9671A6388F9), UINT64_C(0x0006596FB4577230), UINT64_C(0x00041255210F89BD), UINT64_C(0x00058F5E2E72B2D8), UINT64_C(0x0003DEA57DF34241), UINT64_C(0x00021714F7980B29), UINT64_C(0x00033241DDA8B0E5), UINT64_C(0x000502E01B9EF7BE), UINT64_C(0x00027166556F5433)}, {UINT64_C(0x0002068F4390F72B), UINT64_C(0x000037FC7DD50F35), UINT64_C(0x0003D7105B085171), UINT64_C(0x0003F4A9D00E2D1B), UINT64_C(0x00036BA34F00ADB8), UINT64_C(0x000BAA7FD102D0DF), UINT64_C(0x0006D540C7AB1FE3), UINT64_C(0x0006D399320CD3FB), UINT64_C(0x00000969ECDCA36E), UINT64_C(0x000736A5F44C73E5)}}, {{UINT64_C(0x000A1EA8102BF7EA), UINT64_C(0x00076681D903FE4E), UINT64_C(0x00016827A8F7E29F), UINT64_C(0x000041D34C09DF5C), UINT64_C(0x0003C9643E4AE7F0), UINT64_C(0x000AA849BA118FEC), UINT64_C(0x0004F8B809BA8FD8), UINT64_C(0x0000D32D898D1E18), UINT64_C(0x00057AF4934DCD86), UINT64_C(0x000564F85C2CDDAD)}, {UINT64_C(0x000E180C6892618B), UINT64_C(0x0006FF7240030636), UINT64_C(0x000366CD397F1774), UINT64_C(0x0005728BDC33187B), UINT64_C(0x0000B3266F640DCE), UINT64_C(0x000128B8A25D3F67), UINT64_C(0x0007708EE6E8BF9F), UINT64_C(0x00046A93620B4A05), UINT64_C(0x0007290D084B52EC), UINT64_C(0x000739810783526B)}, {UINT64_C(0x000CC39B5FFAF5D7), UINT64_C(0x0003C6202DA25104), UINT64_C(0x00062CC8759BDEDE), UINT64_C(0x00036D29F17389AF), UINT64_C(0x00012C6A9C28C6C5), UINT64_C(0x0009DCE18E457FFC), UINT64_C(0x0004ECCE05180B2B), UINT64_C(0x000596ACCF512291), UINT64_C(0x00062945DAA66E26), UINT64_C(0x00050AD4823F6CFD)}}, {{UINT64_C(0x000A8CC651B80948), UINT64_C(0x0001E1750AC465BE), UINT64_C(0x000187C1C7A67AC8), UINT64_C(0x0006F89CE139F631), UINT64_C(0x00036828EE424F47), UINT64_C(0x000F2D70AE145D31), UINT64_C(0x0004B3577A19593F), UINT64_C(0x0001B7EA66A3F33D), UINT64_C(0x00077FC34430FB8C), UINT64_C(0x0007F27E8D488429)}, {UINT64_C(0x000F6CC160A3C9DE), UINT64_C(0x000192CEF1A784E0), UINT64_C(0x00055B5C5AEEC896), UINT64_C(0x0006D5903202D1D5), UINT64_C(0x00044EE2B9F57100), UINT64_C(0x00085703712819CA), UINT64_C(0x00050908533B6653), UINT64_C(0x0003454ED72A02D5), UINT64_C(0x00070AC25F6383E3), UINT64_C(0x00048EB15CD43A55)}, {UINT64_C(0x000A62A87FDE7680), UINT64_C(0x0001AF035CE0A44A), UINT64_C(0x0007F2C92A8D048E), UINT64_C(0x0000CEE23583E470), UINT64_C(0x00003B703640D1F1), UINT64_C(0x00098B27784DA23E), UINT64_C(0x0003A7C34610E147), UINT64_C(0x00073D1ABE50B09E), UINT64_C(0x0002938FFA96CAB7), UINT64_C(0x0003E1959EF246D8)}}, {{UINT64_C(0x0001869BB1B94C69), UINT64_C(0x00051734C75D4111), UINT64_C(0x00000E8A85605AF9), UINT64_C(0x00047660F7146E01), UINT64_C(0x00026CB57D10B81E), UINT64_C(0x0006DC6E8E61EABF), UINT64_C(0x00040BDBDDA25575), UINT64_C(0x000621970F444FB0), UINT64_C(0x0005A68915E84863), UINT64_C(0x0003FC0413B2B9DB)}, {UINT64_C(0x00057BA222699263), UINT64_C(0x0007645EE7373008), UINT64_C(0x0001A2F8038B610D), UINT64_C(0x000677556F7C8C70), UINT64_C(0x0004CE4E5D52ADBA), UINT64_C(0x000CAE8AF894C9EB), UINT64_C(0x000289D1174CA2E9), UINT64_C(0x00032825A0B38AD1), UINT64_C(0x0002D70424509A50), UINT64_C(0x000588C224908678)}, {UINT64_C(0x000EC8195559B033), UINT64_C(0x0004928CC1FABC5C), UINT64_C(0x0007E050DE738A9E), UINT64_C(0x0003E981A0A1EF6A), UINT64_C(0x00001FE76C501153), UINT64_C(0x000CB9239B643220), UINT64_C(0x0006875D72093E18), UINT64_C(0x00025CA8156C881B), UINT64_C(0x00048360BD70DA5F), UINT64_C(0x00012C76B37E5C67)}}, {{UINT64_C(0x000CADFF54C5FC61), UINT64_C(0x0003100C3F2C3EC2), UINT64_C(0x00072D1EA82213E6), UINT64_C(0x0007F17AA56C2E31), UINT64_C(0x0006CBE667300217), UINT64_C(0x000A75C32AC1D00C), UINT64_C(0x0000900399B302FC), UINT64_C(0x00066D6BDEE4B606), UINT64_C(0x00005EFA0E987CE1), UINT64_C(0x0002C879F735E948)}, {UINT64_C(0x0002780923AD1294), UINT64_C(0x00050A7906F38719), UINT64_C(0x0004D2CE3806BCDB), UINT64_C(0x0006D8F87C7B1F2D), UINT64_C(0x0005BC54F9F117E6), UINT64_C(0x000AFCE58A3CEADC), UINT64_C(0x000026B8F094B4FB), UINT64_C(0x000511D8D0A6A1C0), UINT64_C(0x00026046F65CA5CE), UINT64_C(0x0007B31882AB5612)}, {UINT64_C(0x00019F342DF704E3), UINT64_C(0x00053617515314C8), UINT64_C(0x000622A658FC7975), UINT64_C(0x0006453B59E91EF8), UINT64_C(0x00042BFDC9994A46), UINT64_C(0x000238C1575D2AF0), UINT64_C(0x00029CD2DC2AE52F), UINT64_C(0x000479332C429AD4), UINT64_C(0x000428FDA62FAFFA), UINT64_C(0x0007D90C15C992EF)}}, {{UINT64_C(0x000E4A20CED7FD14), UINT64_C(0x0004C97EA9E0328B), UINT64_C(0x0006E9445684BABF), UINT64_C(0x000151806F26ED39), UINT64_C(0x0001160C77905467), UINT64_C(0x000C6609DEA0FC1A), UINT64_C(0x0002A722284AD939), UINT64_C(0x00003ADBE879DBC4), UINT64_C(0x00015AC0555FD701), UINT64_C(0x0001F94BEBDB96D9)}, {UINT64_C(0x0004AAF2301F16D2), UINT64_C(0x0007F51734ABB20B), UINT64_C(0x00042C8A35243B42), UINT64_C(0x0001B3820B36100F), UINT64_C(0x000115444F5C6CAF), UINT64_C(0x000F3926D4333445), UINT64_C(0x000587A6557C80D0), UINT64_C(0x000665447A091344), UINT64_C(0x0003F84BD9CE1BCA), UINT64_C(0x0007200779A07D57)}, {UINT64_C(0x000C61B46E3949CF), UINT64_C(0x0000D8E735ED00B6), UINT64_C(0x00048A5E9F98CEA3), UINT64_C(0x00024C0D94F3C634), UINT64_C(0x000538D79B7A6393), UINT64_C(0x00021002B287137D), UINT64_C(0x000799366E30C2E8), UINT64_C(0x0006B1AF8463E70D), UINT64_C(0x00048CDE10CB3E51), UINT64_C(0x00017412D6535F95)}}, {{UINT64_C(0x000BAA4CCFEC442D), UINT64_C(0x0005DDC1184E8BA8), UINT64_C(0x0007D1F6A8B018EA), UINT64_C(0x000769A32FD77A23), UINT64_C(0x0002355FBFEE11A4), UINT64_C(0x000D2BB5D9500DE9), UINT64_C(0x000351D470C5EA4E), UINT64_C(0x0004BDBFBB0E40E5), UINT64_C(0x0001A757E0DE9DFA), UINT64_C(0x0005DD504BAB40E2)}, {UINT64_C(0x000D79053EF41593), UINT64_C(0x0000C6229EE33D5E), UINT64_C(0x0004C4A2E362ED5D), UINT64_C(0x0006D21696B79D70), UINT64_C(0x000530ED2DF8E89F), UINT64_C(0x00033E8AD160078D), UINT64_C(0x000188BB911588CC), UINT64_C(0x0001659B61A4C110), UINT64_C(0x0000AC04E00E10DC), UINT64_C(0x0007BAAFBA1435EF)}, {UINT64_C(0x000F5FC78EDB6AE0), UINT64_C(0x00053D7865FB725A), UINT64_C(0x0006ED24F885E307), UINT64_C(0x0005CE843771EF4F), UINT64_C(0x00058D6256C79CC2), UINT64_C(0x00010C8CBB613DE9), UINT64_C(0x0004D23EBA7C20F7), UINT64_C(0x0004AAB81D2BD1A4), UINT64_C(0x0007EAA3AAB8A668), UINT64_C(0x0003973523884C90)}}, {{UINT64_C(0x000D315BCC6A4EBE), UINT64_C(0x00023AE21C0D026D), UINT64_C(0x00074CC51E26A4A7), UINT64_C(0x0004EABBCED74E32), UINT64_C(0x0006B0E906F48456), UINT64_C(0x0001FD94BDF2BC16), UINT64_C(0x0002B3738B72AE1B), UINT64_C(0x0006DDA66FC3E72B), UINT64_C(0x0000A0BAE6CE73F8), UINT64_C(0x000649ACF7A899F4)}, {UINT64_C(0x000B963804F8D424), UINT64_C(0x0006F39A9330D7C7), UINT64_C(0x0004A7B044BBF992), UINT64_C(0x0003B6ACEE3101AE), UINT64_C(0x000380FD2850FBDA), UINT64_C(0x000A7E356E4721CB), UINT64_C(0x0006D74381BB53BD), UINT64_C(0x00077C758E87A472), UINT64_C(0x00034ED47B90A5C1), UINT64_C(0x000541B8694A1D57)}, {UINT64_C(0x000213F762157EAF), UINT64_C(0x0003DDFE58F8609F), UINT64_C(0x00051DB2894E81BD), UINT64_C(0x000217B6B6443ED1), UINT64_C(0x0003C3FD6874D805), UINT64_C(0x0009D6AC77E5E651), UINT64_C(0x000585C8D73CF003), UINT64_C(0x0001177F582F8B0D), UINT64_C(0x0006139F224E35C7), UINT64_C(0x00006B22BB7192B0)}}, {{UINT64_C(0x0005C1F05010C834), UINT64_C(0x0003113280A7C18B), UINT64_C(0x000402B6DBFA220A), UINT64_C(0x00046EABCF726FB6), UINT64_C(0x000175B743915725), UINT64_C(0x000E4CE9A3461CCF), UINT64_C(0x0001C5E283A38DED), UINT64_C(0x0004D6C8A05331E5), UINT64_C(0x0006D2583BCB0A6F), UINT64_C(0x0003AAA41153FCC0)}, {UINT64_C(0x000A352F702DDC40), UINT64_C(0x0007D7130B63AB8C), UINT64_C(0x00017012D62D24CA), UINT64_C(0x00036D6618341280), UINT64_C(0x00042CD7A92424EC), UINT64_C(0x0004455D81496370), UINT64_C(0x0002C71773A15E7B), UINT64_C(0x000319726F43A64E), UINT64_C(0x00061BA3963EE4E5), UINT64_C(0x0006EA9AD805A571)}, {UINT64_C(0x0001C51E5B6AE1BB), UINT64_C(0x0000940E67BDF3D8), UINT64_C(0x0004303CE5522A77), UINT64_C(0x0007682D028A84C6), UINT64_C(0x00054D741BEDE444), UINT64_C(0x00049041A3E00485), UINT64_C(0x00061D64B9E535C8), UINT64_C(0x00026B36E1180C79), UINT64_C(0x00037DC2FB4BBDCE), UINT64_C(0x0003E50BD67DF773)}}, {{UINT64_C(0x0009A8E363B551FC), UINT64_C(0x0003C8F4B97600B8), UINT64_C(0x0002AC4D3F80805A), UINT64_C(0x0007F634F89272C9), UINT64_C(0x0005018AAD3C2F10), UINT64_C(0x000839F5851BC891), UINT64_C(0x00051EB91313038C), UINT64_C(0x00008705A06CCCC9), UINT64_C(0x00055961D9C37E66), UINT64_C(0x00065992B370FB1A)}, {UINT64_C(0x000033C42B482130), UINT64_C(0x00001ED0534D30B9), UINT64_C(0x0003CCB1B89FEFCA), UINT64_C(0x00027E1B2B1E8762), UINT64_C(0x0001B4D9C8C9A94E), UINT64_C(0x000B112BA6074641), UINT64_C(0x0001600271D8DC7A), UINT64_C(0x0003D379BCAB026B), UINT64_C(0x000023990289F9BD), UINT64_C(0x00034CB0141402B9)}, {UINT64_C(0x000FC8B21E970F5A), UINT64_C(0x000645D4DAFEA6BA), UINT64_C(0x0004AB31A4584708), UINT64_C(0x00042A82D72C4005), UINT64_C(0x00018A07C94BFF8F), UINT64_C(0x000B940457D4526F), UINT64_C(0x0002B84EF0E2C65C), UINT64_C(0x00015EDE587F066A), UINT64_C(0x0007B339EA0568AD), UINT64_C(0x0000C15683B4ED21)}}, {{UINT64_C(0x000C2A3BC5E45C10), UINT64_C(0x00019DD27F647208), UINT64_C(0x0001CC4D0E9788D9), UINT64_C(0x000239D5295ABFF1), UINT64_C(0x00006A78F80338D3), UINT64_C(0x000D38F708F1447E), UINT64_C(0x0005402FECD5F832), UINT64_C(0x00003152B770F7D0), UINT64_C(0x000727F40CC0FE28), UINT64_C(0x000201310EEDAB24)}, {UINT64_C(0x0003A811FB4DE1FA), UINT64_C(0x0003F2DC5B4E9FC4), UINT64_C(0x00071A6F274F0FCE), UINT64_C(0x000767549B19F783), UINT64_C(0x00025B2A9BF40B8C), UINT64_C(0x000419CB0D40B471), UINT64_C(0x000160FCD458E327), UINT64_C(0x0001AED850052B97), UINT64_C(0x000655AB35DEDE29), UINT64_C(0x000502A05E2F8319)}, {UINT64_C(0x000338A047D08030), UINT64_C(0x00050A7982BB722B), UINT64_C(0x000383E0216F4B3F), UINT64_C(0x0004C7A4ED9B9E89), UINT64_C(0x0004E87685DC7649), UINT64_C(0x0006D484C7EBB3E3), UINT64_C(0x0006DE1BC9FDC618), UINT64_C(0x0005BD6D2BB413A0), UINT64_C(0x000049BD7BE1BE65), UINT64_C(0x00016C04FAA43BB8)}}, {{UINT64_C(0x00004480CB2786D2), UINT64_C(0x00016A7099089F43), UINT64_C(0x0004937243CD80DB), UINT64_C(0x00012750E73A6278), UINT64_C(0x000626538BE283B6), UINT64_C(0x00040FA0E5894E03), UINT64_C(0x0006BF9036149B73), UINT64_C(0x000340A6643F7198), UINT64_C(0x0000FDF9E90AE71F), UINT64_C(0x0002026C7AB86EA7)}, {UINT64_C(0x000D16EFFDC6C167), UINT64_C(0x00079987485ACAFE), UINT64_C(0x00044ECAA2B81CB1), UINT64_C(0x00012E547660B8E8), UINT64_C(0x0007B1BE4F5084D6), UINT64_C(0x00035ECD495C1561), UINT64_C(0x00019428F31961AD), UINT64_C(0x0003A909AF294BAC), UINT64_C(0x0002EBAA89C6DB55), UINT64_C(0x00074D7085DEC609)}, {UINT64_C(0x00012AC41AD9E34A), UINT64_C(0x0002CD879D1C83F1), UINT64_C(0x0001DB74B741FC14), UINT64_C(0x00066DA29E07A4EC), UINT64_C(0x00000D7E37FEFC54), UINT64_C(0x000A26B97A5598EA), UINT64_C(0x000615C93236E843), UINT64_C(0x000382BC16FB3B6F), UINT64_C(0x00025E0626E0106E), UINT64_C(0x0005854D6D92CC47)}}, {{UINT64_C(0x000B6DA23DC37DD7), UINT64_C(0x000627D60888F4D0), UINT64_C(0x000182E4C16CC439), UINT64_C(0x000190A2AEAAD64F), UINT64_C(0x00058A080ED83FEF), UINT64_C(0x000C475B09289638), UINT64_C(0x00000A2B7CF8481F), UINT64_C(0x00002B5319E8BC29), UINT64_C(0x00007FF5582B8B07), UINT64_C(0x00071CFF2B7D8A99)}, {UINT64_C(0x000799B83F3B4462), UINT64_C(0x00074ABE8CF43DF5), UINT64_C(0x00021C8FA0636722), UINT64_C(0x00057366BE84D1CC), UINT64_C(0x00004CD7BD66A8D7), UINT64_C(0x00071899B3473BA8), UINT64_C(0x0000747B62595049), UINT64_C(0x00006097B2D1993A), UINT64_C(0x0004CC30EDA24173), UINT64_C(0x00027116E4563311)}, {UINT64_C(0x0004C7419A1E733D), UINT64_C(0x0000541AD1C0EEBF), UINT64_C(0x0001BAB59CF44E81), UINT64_C(0x00056EA6AA62AA42), UINT64_C(0x000088CBEBB0E2E1), UINT64_C(0x0004D93FA0BF3D38), UINT64_C(0x0001F22C909EE410), UINT64_C(0x00006B1E6CAC473B), UINT64_C(0x00019E125E7B6046), UINT64_C(0x0001CFB3D7B37E4E)}}, {{UINT64_C(0x00048754583A8735), UINT64_C(0x0007C03868E916A6), UINT64_C(0x0007B4DCB70752B4), UINT64_C(0x0004EC5FBA952102), UINT64_C(0x00030F2C4A828172), UINT64_C(0x00023232F926F234), UINT64_C(0x0007257074636C00), UINT64_C(0x0007BBA1745B61D3), UINT64_C(0x0004606E90A58313), UINT64_C(0x0007E22E07DE154B)}, {UINT64_C(0x0006C2E97C0DBC05), UINT64_C(0x00054DEBDD212630), UINT64_C(0x0002C65F92437420), UINT64_C(0x00024DA821327EDC), UINT64_C(0x000580B8B7AD4E87), UINT64_C(0x0001CF81FE5285E9), UINT64_C(0x0006DD81D32634A6), UINT64_C(0x0003338A292D42A1), UINT64_C(0x000025E961008BC1), UINT64_C(0x00036D9C01BA5AB9)}, {UINT64_C(0x000DC6D75F088499), UINT64_C(0x0000A65C50F7E24F), UINT64_C(0x00045F9DC37DEEF4), UINT64_C(0x0007A85A69654899), UINT64_C(0x0004F6026DDF5B58), UINT64_C(0x00013EF829317A2A), UINT64_C(0x00021C7A10A33027), UINT64_C(0x000556BF6AB7F742), UINT64_C(0x0001388625C5DA4A), UINT64_C(0x000515466D6ABA32)}}, }, { {{UINT64_C(0x0006AEDBD4096564), UINT64_C(0x0004FA8B9BD472A8), UINT64_C(0x000518E920FABD7C), UINT64_C(0x00035641C8964A33), UINT64_C(0x0003B7F827A7DEB4), UINT64_C(0x00087747322CE9B7), UINT64_C(0x0000065AF64E2636), UINT64_C(0x0007E118D796640B), UINT64_C(0x00022A725F5CDAF8), UINT64_C(0x0006482AF75091E7)}, {UINT64_C(0x0004D5F5FBAF23D8), UINT64_C(0x00018961AF8EF02D), UINT64_C(0x0004410974A5C748), UINT64_C(0x0003671CA4C34023), UINT64_C(0x000198D894EF5FDF), UINT64_C(0x00045C045A1A5DA1), UINT64_C(0x00006A2E629F4DBD), UINT64_C(0x0005EF0CF4FEC9BD), UINT64_C(0x0002E56472C2285E), UINT64_C(0x000081F06DCB9DCB)}, {UINT64_C(0x000E80FFCADCC17A), UINT64_C(0x00005936ED4B05E0), UINT64_C(0x0005E5192BD5AE9E), UINT64_C(0x0004DAF3465C58CF), UINT64_C(0x0006378BB4FAF5A0), UINT64_C(0x000CD0DB0E0B2AB7), UINT64_C(0x00059295D7556578), UINT64_C(0x00017B233F34BAA3), UINT64_C(0x0002571548CAFBE4), UINT64_C(0x0005236D086B5D11)}}, {{UINT64_C(0x000C6C8A8FEAF23E), UINT64_C(0x00015B3EACB47609), UINT64_C(0x0001C051945F47AE), UINT64_C(0x0003BB72E86D1518), UINT64_C(0x0002F0317989531D), UINT64_C(0x000734207AD0F517), UINT64_C(0x000363F8254FFC55), UINT64_C(0x00016DC567D3F213), UINT64_C(0x0004C688524FC6D3), UINT64_C(0x000156E27F2C4E00)}, {UINT64_C(0x00094738AD2D4E84), UINT64_C(0x000308AECD530FE4), UINT64_C(0x0003502EB6F601CA), UINT64_C(0x0000A8DF04C92C06), UINT64_C(0x00050EB08481C052), UINT64_C(0x000AA7EB925117D8), UINT64_C(0x00049599E1644BCD), UINT64_C(0x0005C13296C44839), UINT64_C(0x000500DE14878BFC), UINT64_C(0x00071AD4469CF9E7)}, {UINT64_C(0x000E2FB921857436), UINT64_C(0x00043A88AF65DD1C), UINT64_C(0x0007AE448925AD60), UINT64_C(0x000665712480CF54), UINT64_C(0x0002182C680974A7), UINT64_C(0x000A0E7328765D70), UINT64_C(0x000268DF8BD38233), UINT64_C(0x0006919944C2A877), UINT64_C(0x0007783F5CA85F2D), UINT64_C(0x000739F3727C396A)}}, {{UINT64_C(0x000E191F38D6E32D), UINT64_C(0x0003D053DFEFE14D), UINT64_C(0x0006103BF922921F), UINT64_C(0x0002781AB0853980), UINT64_C(0x0004D1652DB90908), UINT64_C(0x0005E1F759009BDD), UINT64_C(0x00019A45C89003A3), UINT64_C(0x0006A14C19DCA07A), UINT64_C(0x0005D837A9C8F3A6), UINT64_C(0x0000DE43E792E061)}, {UINT64_C(0x000058271D24FD29), UINT64_C(0x00068BAB21F6CEE4), UINT64_C(0x0004478711E724E4), UINT64_C(0x0006CEF29CE967CC), UINT64_C(0x0004B50277D6D492), UINT64_C(0x0004164FBC658CA4), UINT64_C(0x0005AF1234A44C70), UINT64_C(0x0003BD47313B580F), UINT64_C(0x0006BC5D3649D3EC), UINT64_C(0x0007638ACC404B36)}, {UINT64_C(0x00025CAF5D092528), UINT64_C(0x00015409EDAAF2E8), UINT64_C(0x00058CB7B8A5B798), UINT64_C(0x0007CA6671CF0F3C), UINT64_C(0x00052C52122B9340), UINT64_C(0x000DB0C96E176FB1), UINT64_C(0x00055085B46D6018), UINT64_C(0x0002FDD65EB673C5), UINT64_C(0x0000B19A0B489654), UINT64_C(0x0002A275A7E071D2)}}, {{UINT64_C(0x0001A067462A7A3F), UINT64_C(0x0007CAA8EAE4E2D4), UINT64_C(0x0004DFDFC8AE5719), UINT64_C(0x0007F8F8369F764C), UINT64_C(0x0002A33657D7196B), UINT64_C(0x000ACE1F520DCA38), UINT64_C(0x00015FA3A1F57752), UINT64_C(0x00001065EF98FA0B), UINT64_C(0x0004F22D7351AD00), UINT64_C(0x0000B4988C661B8F)}, {UINT64_C(0x000C5FDC9DF374E1), UINT64_C(0x00033D547A4D226B), UINT64_C(0x0002DA94FE5AD02C), UINT64_C(0x0005207148BDD3C7), UINT64_C(0x0001521F51FF31A6), UINT64_C(0x00048B1F8084AD9F), UINT64_C(0x000169D55C98C3B6), UINT64_C(0x00016716681D2998), UINT64_C(0x00076D65C8585D2D), UINT64_C(0x000503C6F5CC1008)}, {UINT64_C(0x000CE3789E67601E), UINT64_C(0x0000F38B3450DF49), UINT64_C(0x0003E6488733B404), UINT64_C(0x000128DC95E3F8DB), UINT64_C(0x0003405A39A11293), UINT64_C(0x000E8E6112B3A418), UINT64_C(0x00046B9A7FFCE45B), UINT64_C(0x0005D9582699F55F), UINT64_C(0x000509DE86896EE8), UINT64_C(0x000253344BD2D25A)}}, {{UINT64_C(0x000A74347CE9D01B), UINT64_C(0x00044CA58D3D8F8A), UINT64_C(0x00050F0D0D68B95B), UINT64_C(0x00066CFA1182777D), UINT64_C(0x0000B0C791214C7B), UINT64_C(0x0002416F6ECE0445), UINT64_C(0x00049F613047A77F), UINT64_C(0x00070690C94185C7), UINT64_C(0x0006E6203DEAD6C4), UINT64_C(0x00030B26F58B9536)}, {UINT64_C(0x000A58FA609D2E01), UINT64_C(0x000678958763572F), UINT64_C(0x000767549D4EB411), UINT64_C(0x0007809D91FE5A98), UINT64_C(0x00013335B8563F17), UINT64_C(0x0009523C3394E0DA), UINT64_C(0x00048A10A1B96912), UINT64_C(0x000742BA8C558752), UINT64_C(0x00009B3582D1EFD9), UINT64_C(0x00016EAF2C3E1BD3)}, {UINT64_C(0x000E2DC67D5E5A88), UINT64_C(0x000598CF6F4EF704), UINT64_C(0x00011C238E331841), UINT64_C(0x0002E1CA17ED944C), UINT64_C(0x0007FEA87E3DB53D), UINT64_C(0x0000B99FCC76BB95), UINT64_C(0x0000BBF95F7E3AB4), UINT64_C(0x000445911CBCE6F1), UINT64_C(0x00062C0AEE9E79DF), UINT64_C(0x0001ABB8605E684D)}}, {{UINT64_C(0x0003871499B1866E), UINT64_C(0x00026E19448C89A9), UINT64_C(0x00007B6CB1356919), UINT64_C(0x0007B5EFC7773779), UINT64_C(0x00071541CD774F9C), UINT64_C(0x0000D81B8DC56F51), UINT64_C(0x000590BBF413B605), UINT64_C(0x000312F6FCC71713), UINT64_C(0x00040195ACA7265C), UINT64_C(0x00026C0F46908F3B)}, {UINT64_C(0x000C3CFC3518AB54), UINT64_C(0x0002C5FF27FA6953), UINT64_C(0x00009C03C91FECE0), UINT64_C(0x00063E758C4A409F), UINT64_C(0x00047ED48DD883AF), UINT64_C(0x000D3B409A02DCB3), UINT64_C(0x000710E2A1D5CBE9), UINT64_C(0x0007DC251BA3E052), UINT64_C(0x00045E9A29900763), UINT64_C(0x0000A7C951A4128D)}, {UINT64_C(0x000B48959A040E34), UINT64_C(0x000641FBFBA37FEE), UINT64_C(0x0006D6D531398A6F), UINT64_C(0x0005F4725764937E), UINT64_C(0x0000FB5E7D595AF7), UINT64_C(0x0002A0E33F31CD55), UINT64_C(0x000171D3C6F621A1), UINT64_C(0x00030886FC60A83C), UINT64_C(0x0002375FEAAB3B40), UINT64_C(0x000656142FE41FD8)}}, {{UINT64_C(0x00088D813F345513), UINT64_C(0x0006B33BA57A93E0), UINT64_C(0x0004C7985F7EFB17), UINT64_C(0x0000AD075424ADBA), UINT64_C(0x0004E8F7946DF6B2), UINT64_C(0x000C112D1F980523), UINT64_C(0x00049E755D0280A1), UINT64_C(0x0002D0BE2A1F153A), UINT64_C(0x0003488C3095B641), UINT64_C(0x0004DB1E9A0CD854)}, {UINT64_C(0x000827E184A33715), UINT64_C(0x00026FFF534D1DE2), UINT64_C(0x0005B116ED309D3B), UINT64_C(0x00040C8D9923F968), UINT64_C(0x000254D6262F127D), UINT64_C(0x000EB4C401A02B57), UINT64_C(0x0007C1A5CD19481B), UINT64_C(0x0004E994D22CB148), UINT64_C(0x0002FD14D8E9A6FF), UINT64_C(0x0003F3B0B506E8EF)}, {UINT64_C(0x0000ACBB2192D0D4), UINT64_C(0x0005AD437C1137DA), UINT64_C(0x000194DF8F4978FE), UINT64_C(0x000569F428FCD681), UINT64_C(0x000440AB84EBDA2E), UINT64_C(0x0000071ACB2B9B94), UINT64_C(0x00036495A727E109), UINT64_C(0x0002C7BBFBC4670C), UINT64_C(0x00070DF23A25F661), UINT64_C(0x00028B24AE967AD8)}}, {{UINT64_C(0x000A0F56D26C19CD), UINT64_C(0x0002199EFE6C17CF), UINT64_C(0x000234D29F1CA747), UINT64_C(0x00074E7EDAC788C6), UINT64_C(0x00056DEF769EC613), UINT64_C(0x0006DA5F9111D368), UINT64_C(0x00075019DED7070F), UINT64_C(0x000668904B9CC686), UINT64_C(0x0007BD2278E98141), UINT64_C(0x00074D7CE18B9D06)}, {UINT64_C(0x0001691EF1DB7743), UINT64_C(0x0005BDCB52513251), UINT64_C(0x0000880DFD58552F), UINT64_C(0x0001D6B3EE69BD0A), UINT64_C(0x0000DF5A88773C38), UINT64_C(0x000C094929962F60), UINT64_C(0x0001978F58542D2F), UINT64_C(0x0002477127820A19), UINT64_C(0x0004F630DFE1AD37), UINT64_C(0x000283387FC2588D)}, {UINT64_C(0x00073E4B175342B1), UINT64_C(0x0001E2EA2F8817F8), UINT64_C(0x0000E36E592D89B9), UINT64_C(0x000556985C76F3D1), UINT64_C(0x00017586947F1B9F), UINT64_C(0x00083894538720F0), UINT64_C(0x00049C8320EB6627), UINT64_C(0x00057FCF4E730A78), UINT64_C(0x0002A4BEEFAA0B93), UINT64_C(0x000294ECE9A722E1)}}, {{UINT64_C(0x000672F6D1495031), UINT64_C(0x0001BD8FDDE53EF6), UINT64_C(0x0002B91C714A2C13), UINT64_C(0x0003042764C1BE7A), UINT64_C(0x000215C56A0EDE6E), UINT64_C(0x000F01712E36F0AB), UINT64_C(0x000525EB2C91F5D9), UINT64_C(0x0004A7BAC5E8B947), UINT64_C(0x0005183B56926CBA), UINT64_C(0x0007D3EDAAAC8E27)}, {UINT64_C(0x000282A6939E11C3), UINT64_C(0x00066C4CBC6F5DBE), UINT64_C(0x0005123C70144F68), UINT64_C(0x0000354705754070), UINT64_C(0x0005BE6B2B681A76), UINT64_C(0x00054B5DD04806FF), UINT64_C(0x0004CE73D1EA7C82), UINT64_C(0x000692CC1053AB63), UINT64_C(0x000535AE1B4F5F42), UINT64_C(0x00060A6C280503D9)}, {UINT64_C(0x0005CCDAD02C3E6B), UINT64_C(0x000236AAF0C2208D), UINT64_C(0x0002A1B3DC123AD5), UINT64_C(0x0004808D9A85C7CB), UINT64_C(0x000620B632D048DE), UINT64_C(0x000DE4795B182DAC), UINT64_C(0x0006F740B4DDEBB6), UINT64_C(0x000527F4E1B71053), UINT64_C(0x0003711DE510B0C6), UINT64_C(0x0004C2397BB75FD4)}}, {{UINT64_C(0x0004234DA61A7380), UINT64_C(0x0007CFE09C0E115B), UINT64_C(0x000146042D1F85BF), UINT64_C(0x00076BA304771D0E), UINT64_C(0x000382E92D2CA568), UINT64_C(0x000F852C7DE31639), UINT64_C(0x0002B6DA101F3608), UINT64_C(0x0002354CDEB32A3D), UINT64_C(0x0006D1C3FABA408E), UINT64_C(0x00046A322AB41F71)}, {UINT64_C(0x000835486D6965D2), UINT64_C(0x0005DDC060C09641), UINT64_C(0x0006FE8F914611BF), UINT64_C(0x00056CBACCEE1D60), UINT64_C(0x00029652751B4958), UINT64_C(0x00030B1681FB22FD), UINT64_C(0x0004C26183389F35), UINT64_C(0x00064C5D6F3E855B), UINT64_C(0x00048CC11FAA68A2), UINT64_C(0x000303DF8C197245)}, {UINT64_C(0x000A93445489DD55), UINT64_C(0x00032C10E5A00644), UINT64_C(0x00010133787B6B48), UINT64_C(0x000294AF3FFBB10E), UINT64_C(0x00067150840A8E54), UINT64_C(0x00048B07F53AECD5), UINT64_C(0x0002BDABD1E806B9), UINT64_C(0x00077916BD0D716C), UINT64_C(0x0007251EACE82A30), UINT64_C(0x0005BD06E6166102)}}, {{UINT64_C(0x000198DAB8E7D26B), UINT64_C(0x0004B8CD7B0F6214), UINT64_C(0x0006F94FEBA66594), UINT64_C(0x0006D655AAE8E434), UINT64_C(0x00033CBDDA515A1D), UINT64_C(0x000FD360D05067E0), UINT64_C(0x0007D4B6026E8F95), UINT64_C(0x0006FA60F441F382), UINT64_C(0x000671F70F6E2FD4), UINT64_C(0x00058B341C31C7CD)}, {UINT64_C(0x0003B6DAB18C1F78), UINT64_C(0x000360A07E0CE4B7), UINT64_C(0x00037BA4F69CC30E), UINT64_C(0x00014F6DD6939E3B), UINT64_C(0x00071E66AFEA8A58), UINT64_C(0x000F5276CCE6483E), UINT64_C(0x0003F604318A4007), UINT64_C(0x0001FF31567FCF56), UINT64_C(0x0007687CFE2E27EA), UINT64_C(0x00043AF6AD6807D2)}, {UINT64_C(0x000152CC8C204025), UINT64_C(0x00032037F0153CD1), UINT64_C(0x0001E8B1E05EC419), UINT64_C(0x0001B7B6CEF81375), UINT64_C(0x00017E8291BDC455), UINT64_C(0x0002E282133836F4), UINT64_C(0x0001D9A6210E2D16), UINT64_C(0x000799CEE0857BEA), UINT64_C(0x00035D41A84A5412), UINT64_C(0x0006FFBCA27C28A6)}}, {{UINT64_C(0x0000430814E96BE9), UINT64_C(0x00057E73FB140B73), UINT64_C(0x00060128FAB5ADA4), UINT64_C(0x0007C05121085A5A), UINT64_C(0x000767DC265FE0E8), UINT64_C(0x00025029FD3C2D6F), UINT64_C(0x0004EF454786B123), UINT64_C(0x000208D275E826AD), UINT64_C(0x0006C327FB0C7286), UINT64_C(0x000424E515341DF4)}, {UINT64_C(0x0009BDDC8231AB6B), UINT64_C(0x0005CA9241F8E72F), UINT64_C(0x000773A7E6FE081D), UINT64_C(0x00024CAA53134E52), UINT64_C(0x0005AC81DCD4E91A), UINT64_C(0x00062F6FB283E86A), UINT64_C(0x00020E0D3D1EA811), UINT64_C(0x0000179B49545C71), UINT64_C(0x00051EA7921EDD08), UINT64_C(0x0001106F03625EEA)}, {UINT64_C(0x000F609CEB81873F), UINT64_C(0x00019BFC53A07BB7), UINT64_C(0x0002151A37FD339F), UINT64_C(0x0000247FAB99463B), UINT64_C(0x00028EB12503B657), UINT64_C(0x00000740156BCA3C), UINT64_C(0x0003050E54A17FC4), UINT64_C(0x00006A21FE8BE254), UINT64_C(0x000783205CEE4961), UINT64_C(0x0005DDAC46630BD0)}}, {{UINT64_C(0x000D0214026C8378), UINT64_C(0x00049B9512E7C6AB), UINT64_C(0x00052CAB42C95449), UINT64_C(0x0001712C0B2D3437), UINT64_C(0x000028712113EE6E), UINT64_C(0x0003C231B02FBAA4), UINT64_C(0x00034002A05D7466), UINT64_C(0x00047244849D6C0F), UINT64_C(0x00007A777E770EED), UINT64_C(0x0002FB5FBC1A501D)}, {UINT64_C(0x0007DD3F594FA92E), UINT64_C(0x00011F65F7B4DC87), UINT64_C(0x0006C8D5BC2A5CD3), UINT64_C(0x00045434BCA486D6), UINT64_C(0x0000916C2F835346), UINT64_C(0x000284317FF11104), UINT64_C(0x0000FED4B690D85B), UINT64_C(0x0004F7CD3C5275F4), UINT64_C(0x00072FCBE2A0E31E), UINT64_C(0x0006DCE382A2D3FC)}, {UINT64_C(0x00010A836271A17B), UINT64_C(0x000731E97701D7E1), UINT64_C(0x00074424AD4971CE), UINT64_C(0x0007F483B4D3226B), UINT64_C(0x0000B8D73CF87486), UINT64_C(0x0003747546D2B06B), UINT64_C(0x0006D6E9758543E8), UINT64_C(0x0002311DE6C16B96), UINT64_C(0x0000CBAF9CBD69A4), UINT64_C(0x000095BAD5DFF17A)}}, {{UINT64_C(0x000774E982F03894), UINT64_C(0x00068F7BA9BD2B4C), UINT64_C(0x0001BF739059F5EE), UINT64_C(0x00047AB5F6CF04EE), UINT64_C(0x00003AC811A5FFEF), UINT64_C(0x0005C95473A71B06), UINT64_C(0x00059B02D1C89D3A), UINT64_C(0x00011350FAAC38CB), UINT64_C(0x0002513847A831C2), UINT64_C(0x0007FA7D3DC337C4)}, {UINT64_C(0x000E029A8789C756), UINT64_C(0x0006C80112AA281C), UINT64_C(0x00008852BEC02592), UINT64_C(0x0003FBF12B155C1A), UINT64_C(0x0005E093259AD772), UINT64_C(0x0009A44E24E7366E), UINT64_C(0x0003BF1CA8CB8F83), UINT64_C(0x0006E16F8C3A71FD), UINT64_C(0x0001DBC1D6FDDDC1), UINT64_C(0x0005A28406D8B874)}, {UINT64_C(0x00052274D60C7FE9), UINT64_C(0x00009ADA801895BF), UINT64_C(0x000022D4D6202774), UINT64_C(0x00072D947EE0B5BD), UINT64_C(0x00051A0FEB7FDA2C), UINT64_C(0x000709284A66373B), UINT64_C(0x00013FB44E784E2E), UINT64_C(0x00043800043BC45B), UINT64_C(0x0006DEBFA915C8FE), UINT64_C(0x000184A44DB57776)}}, {{UINT64_C(0x000C6E45435B0D8B), UINT64_C(0x0007A4D96FC4C926), UINT64_C(0x0004DD4FFB13A623), UINT64_C(0x0002B97573D59BA4), UINT64_C(0x00064D5DAD519C4F), UINT64_C(0x000C54E3E0322075), UINT64_C(0x00025D680006D4FD), UINT64_C(0x000026C6C103CE9E), UINT64_C(0x0006A3C770AD980F), UINT64_C(0x00000AFFA7978989)}, {UINT64_C(0x0001BBC06890396F), UINT64_C(0x00059B7508BE77A3), UINT64_C(0x0002C2F34E1E88EF), UINT64_C(0x0000BA76CC4B6DC3), UINT64_C(0x00040CB93F2DB890), UINT64_C(0x00038DB1EAF02BA4), UINT64_C(0x00051A968FE1C009), UINT64_C(0x00079E490FDF2F6E), UINT64_C(0x00038810CC4881B6), UINT64_C(0x0002F52348865870)}, {UINT64_C(0x000FBCBADF123F77), UINT64_C(0x0005C24E5CE6F8C7), UINT64_C(0x00057CBE94145D7B), UINT64_C(0x0003D7A5F191DC9F), UINT64_C(0x000580576DE72DB2), UINT64_C(0x0003E11D99876CB6), UINT64_C(0x00071D9921E18FA4), UINT64_C(0x0002A74C8C214DE9), UINT64_C(0x000290E367E8106A), UINT64_C(0x0000A45E602E2A06)}}, {{UINT64_C(0x000C81708300B3A2), UINT64_C(0x00002EB6DD40141C), UINT64_C(0x00008EBFBAD275A0), UINT64_C(0x00009EB98ABECC72), UINT64_C(0x0001EA0CBBD24C18), UINT64_C(0x0005C085867DB19C), UINT64_C(0x00078A2DB60D1751), UINT64_C(0x00032A43EBAC70A1), UINT64_C(0x0002C402B12DA313), UINT64_C(0x0004F4B89ACDD13A)}, {UINT64_C(0x0004AC90A370FD35), UINT64_C(0x00027D715223E22B), UINT64_C(0x000564833F08968D), UINT64_C(0x0006A965DB0C2238), UINT64_C(0x0004C25626C5CCE9), UINT64_C(0x000E894C118288F1), UINT64_C(0x00004FDD61C59DF2), UINT64_C(0x0004F91479C26D34), UINT64_C(0x00022FDED1EDE6BC), UINT64_C(0x00053CC6F351DBD1)}, {UINT64_C(0x00041C1E5BF143DB), UINT64_C(0x00078318A8FC82ED), UINT64_C(0x00073CB01F7A1760), UINT64_C(0x0002BB276EE12092), UINT64_C(0x00062B5D062F3983), UINT64_C(0x0006C0699785ED64), UINT64_C(0x000705C5B8750987), UINT64_C(0x000734C5A5EBF1CC), UINT64_C(0x0006B535CD5FCA58), UINT64_C(0x000173A96CF5E5C2)}}, }, { {{UINT64_C(0x00013C7D530A0840), UINT64_C(0x00037CA09024BA99), UINT64_C(0x00000F02A724D26D), UINT64_C(0x0007486168F78DF3), UINT64_C(0x00057B6FBAF96B6F), UINT64_C(0x00020E874D64E405), UINT64_C(0x0001C5456BEE2684), UINT64_C(0x000700947727AE36), UINT64_C(0x0000AF081E60DF35), UINT64_C(0x00049F6D248190F3)}, {UINT64_C(0x000FACBF6A273B2E), UINT64_C(0x0000B50B6F61BB7F), UINT64_C(0x00016ED02D72CCBD), UINT64_C(0x000009999E37103A), UINT64_C(0x0006DEE9B338E1D0), UINT64_C(0x00076C4153F5F8EB), UINT64_C(0x0004FB473E4876B9), UINT64_C(0x00035CB573505218), UINT64_C(0x00040E4E17B314F1), UINT64_C(0x00064FADD17FB3C8)}, {UINT64_C(0x00090B27A6A17533), UINT64_C(0x00010DB043FC3678), UINT64_C(0x0005F8AAB7DA8EDB), UINT64_C(0x0005008B83D17311), UINT64_C(0x00075BB4482F1426), UINT64_C(0x000B1BCB5765DFFA), UINT64_C(0x000242DCC05593AD), UINT64_C(0x00045C4BE141A4D5), UINT64_C(0x0006EBC978B8CA73), UINT64_C(0x0004580E5DA2151A)}}, {{UINT64_C(0x000B09415B635B74), UINT64_C(0x000483E55C20EA00), UINT64_C(0x00070DEE5B80A6E0), UINT64_C(0x00072FD4450BC01C), UINT64_C(0x0007B300C6DCC536), UINT64_C(0x000754D2BB66E63F), UINT64_C(0x0001BF3C286F6A01), UINT64_C(0x00025F645BB8410D), UINT64_C(0x000298DF23B3BFD7), UINT64_C(0x0001774CB501031D)}, {UINT64_C(0x000271CB350C6048), UINT64_C(0x0007DCA7FD3BF959), UINT64_C(0x0000C41185459A7F), UINT64_C(0x0004BB079006A71E), UINT64_C(0x0001C3DA681DC428), UINT64_C(0x000E32A22D0BED67), UINT64_C(0x0001CF9C74CC48D7), UINT64_C(0x000754ED2FD148AF), UINT64_C(0x0006A6BF79732C29), UINT64_C(0x0000637BA0DEB58F)}, {UINT64_C(0x000AEEE5E5D5BF89), UINT64_C(0x0001BA9622F598CD), UINT64_C(0x00017E6C0ECF6116), UINT64_C(0x0001B6169A7A5686), UINT64_C(0x0000C74F9DCA999E), UINT64_C(0x000BAE9A5784B34D), UINT64_C(0x0003F1DCC80821EF), UINT64_C(0x0006A6297209394D), UINT64_C(0x000027BAECCEB3DB), UINT64_C(0x0006FBF5A0739FF7)}}, {{UINT64_C(0x000ADF4D9C8BE4C7), UINT64_C(0x0001F7C3F9B2DF52), UINT64_C(0x000054205B348462), UINT64_C(0x00058A2B0587B556), UINT64_C(0x0001031A5A79DB2E), UINT64_C(0x000CB7B60FC99B95), UINT64_C(0x00025FC96A4BB5A5), UINT64_C(0x0006C62B62F597A6), UINT64_C(0x00009CBDCB2DF127), UINT64_C(0x0002ACC07E9CED89)}, {UINT64_C(0x0000ED235FAE524A), UINT64_C(0x0003E231B9C1C59C), UINT64_C(0x0005FACE3761829C), UINT64_C(0x000417E0131C4B06), UINT64_C(0x000703508BE7FC97), UINT64_C(0x00047BA8D9CC12E6), UINT64_C(0x00040B532D99E9A0), UINT64_C(0x00013850B64F1991), UINT64_C(0x0005CDF168C10B39), UINT64_C(0x000358ABDF8E6B44)}, {UINT64_C(0x00042687C30120DE), UINT64_C(0x0006F4E854B5AC1D), UINT64_C(0x000060D24D07C886), UINT64_C(0x0006662BC5B4226E), UINT64_C(0x0000DD5E40422C53), UINT64_C(0x00066BA1A186AEA2), UINT64_C(0x0003D5A9977141C7), UINT64_C(0x0007210CB94D5A31), UINT64_C(0x0000575395147170), UINT64_C(0x0003EEF35D2347C4)}}, {{UINT64_C(0x00005FA6D194F912), UINT64_C(0x000656A4617A17B0), UINT64_C(0x0002B82DEF48F596), UINT64_C(0x000483AE1ABD8952), UINT64_C(0x0004FEA93C4AA27F), UINT64_C(0x000A79830ABCFA6B), UINT64_C(0x00030C8EA10D6328), UINT64_C(0x000150C9AB136C88), UINT64_C(0x00009F66838D7EB3), UINT64_C(0x000599AAECD736AC)}, {UINT64_C(0x000101FF4997777E), UINT64_C(0x0006FE6DA39F9EF7), UINT64_C(0x0005DD2FD55D5B90), UINT64_C(0x00001EBA3BFFA43E), UINT64_C(0x0003937F9AEAE09F), UINT64_C(0x000B6E4EB341745B), UINT64_C(0x0006A541793FEB35), UINT64_C(0x0004C99BA0510109), UINT64_C(0x0003ECAA464451F9), UINT64_C(0x000627CC2A28E33F)}, {UINT64_C(0x0006F5CF9EEF8083), UINT64_C(0x0003689B7AF03C8C), UINT64_C(0x00041C9C530F26AE), UINT64_C(0x0006F1B087DFAE9E), UINT64_C(0x0005ABB0337D1374), UINT64_C(0x000F05AA9CE380B8), UINT64_C(0x00039D858198471E), UINT64_C(0x0005CB4A29D7FAB0), UINT64_C(0x000794534C8BBACE), UINT64_C(0x00039CEB7D5953E0)}}, {{UINT64_C(0x000614976BAF39A3), UINT64_C(0x000325765D4DAD1B), UINT64_C(0x0006EC2EF5A9DFA1), UINT64_C(0x0004F0B8F0301A47), UINT64_C(0x000031D97E564E18), UINT64_C(0x0001C40ECB1A0617), UINT64_C(0x0000DEA316CA6102), UINT64_C(0x000232439090EE60), UINT64_C(0x0002901913C8FB0F), UINT64_C(0x000412FF556E2402)}, {UINT64_C(0x00064CE9BB2FE15E), UINT64_C(0x0005E645C62B940A), UINT64_C(0x0003113E7905C6AE), UINT64_C(0x0002BBDF7FB2C955), UINT64_C(0x0000CCF48175A91B), UINT64_C(0x00038BC3E1E69073), UINT64_C(0x00004538F90A325F), UINT64_C(0x00046BF9A7D85906), UINT64_C(0x0005D8AAA52E49AC), UINT64_C(0x0006F70CEB9DE4F0)}, {UINT64_C(0x000635FDDEEE55B1), UINT64_C(0x0002B647305EC4D0), UINT64_C(0x000785A1C6C0CC5B), UINT64_C(0x0000C28EEEF42FDF), UINT64_C(0x00070B6DF3CE31F0), UINT64_C(0x00075BB72FEDB524), UINT64_C(0x00044424339CD683), UINT64_C(0x000724049E9861DF), UINT64_C(0x000606B0D0C1B71C), UINT64_C(0x00072720DEDAF767)}}, {{UINT64_C(0x000AB553D62ECFB6), UINT64_C(0x00078C8B49E2EE27), UINT64_C(0x000712AB7130F07C), UINT64_C(0x0007517AB87454C5), UINT64_C(0x0007A2F222BFE5AF), UINT64_C(0x0009DF9AC8EF8D1E), UINT64_C(0x00070A0B9486719E), UINT64_C(0x0005FE0A5CBB6815), UINT64_C(0x0005A777CFBB6EAC), UINT64_C(0x00026AA3DEB05ED1)}, {UINT64_C(0x000178E658CAB163), UINT64_C(0x0006218B72D4439D), UINT64_C(0x0003E0E7508F98B6), UINT64_C(0x00053A2E9C0FE780), UINT64_C(0x0000862C90F4AB94), UINT64_C(0x0007D2A76495265C), UINT64_C(0x00007D6CA0B086A9), UINT64_C(0x00037E0CE123AE70), UINT64_C(0x0005E35005198C60), UINT64_C(0x00014DB9BE0C9BD4)}, {UINT64_C(0x00022AE27AE69A25), UINT64_C(0x0006BC61B880B6B7), UINT64_C(0x0002B9A770ACB37C), UINT64_C(0x0006A57A8181E7DE), UINT64_C(0x000515156749D33A), UINT64_C(0x000089265C87573A), UINT64_C(0x0002AAB0BA4334FD), UINT64_C(0x00036BFA753F183D), UINT64_C(0x0007D94CDD21BBEA), UINT64_C(0x00073D056E77BAD1)}}, {{UINT64_C(0x00054034D049A849), UINT64_C(0x0007A61F3DCAD52B), UINT64_C(0x0006AE0359F441AC), UINT64_C(0x0004FA71A2DB1D12), UINT64_C(0x0004A3AD2195FB05), UINT64_C(0x000DA575D0991F08), UINT64_C(0x0004483A3F583D4A), UINT64_C(0x00019E22FF97F896), UINT64_C(0x00045CE17079EB6F), UINT64_C(0x0003D843DC26F0B3)}, {UINT64_C(0x0005BB7830081F4A), UINT64_C(0x000535B970A5DEEC), UINT64_C(0x0006920157058AB1), UINT64_C(0x0005ABB6799CD9B0), UINT64_C(0x0004E722E0BE3E24), UINT64_C(0x00034B265793F314), UINT64_C(0x000721330570DC23), UINT64_C(0x0004426EF0F5B164), UINT64_C(0x0007D6F3A6CB44E7), UINT64_C(0x00056E34A5B334A3)}, {UINT64_C(0x0003F8C7FDA5799A), UINT64_C(0x000633A1AB544629), UINT64_C(0x00036C698257C6E1), UINT64_C(0x000671CB37471C6E), UINT64_C(0x0006309190EBE26A), UINT64_C(0x000073E0D3C3C947), UINT64_C(0x00075458F071D648), UINT64_C(0x0000304D50E4E6E2), UINT64_C(0x00025B9FCE5481C7), UINT64_C(0x000560854658E1E6)}}, {{UINT64_C(0x000AF006973EAE1E), UINT64_C(0x0003BA1CB36833ED), UINT64_C(0x000440038B6244FE), UINT64_C(0x0001ED4D4B28E0BB), UINT64_C(0x0004946559A45B7C), UINT64_C(0x000D7AC175A120AF), UINT64_C(0x0000C782441BE688), UINT64_C(0x0003FBE4F6759494), UINT64_C(0x0003227FCD0861C6), UINT64_C(0x000693E8E569DF61)}, {UINT64_C(0x000EF3D4D70D6006), UINT64_C(0x0003622B91C969F3), UINT64_C(0x00059E57B022C126), UINT64_C(0x0004E567BE39909D), UINT64_C(0x00025826F5172EBE), UINT64_C(0x000978FE696EB07D), UINT64_C(0x0007E55EC2C54F03), UINT64_C(0x0001F198F1EA9886), UINT64_C(0x00061284786511BB), UINT64_C(0x00054EBEEA2E481C)}, {UINT64_C(0x000F0108988CDC8A), UINT64_C(0x0006320933C6DB8E), UINT64_C(0x00069930CEF56158), UINT64_C(0x0003A35FC98F89A6), UINT64_C(0x00027BD07B67AAA5), UINT64_C(0x000A2124168772A7), UINT64_C(0x000108CBFCB7F765), UINT64_C(0x000190EA54B1EC2B), UINT64_C(0x000427DAAD72BFD4), UINT64_C(0x00073EB2D65C41BA)}}, {{UINT64_C(0x000A06A739424A7F), UINT64_C(0x0000F82BABC20278), UINT64_C(0x0005E0013C80B8BA), UINT64_C(0x00009213E9C746A9), UINT64_C(0x00077CCF7EE8DCA2), UINT64_C(0x00048553CE359952), UINT64_C(0x00068D83C7BB1BFC), UINT64_C(0x00023585472C1288), UINT64_C(0x000683CF0D405E14), UINT64_C(0x0004B248941E148A)}, {UINT64_C(0x000A7C88931485A3), UINT64_C(0x00030D7D59F36392), UINT64_C(0x0003096B037E2FE5), UINT64_C(0x00072B76E5C87A57), UINT64_C(0x000412333ADDB88D), UINT64_C(0x00075009989C68F4), UINT64_C(0x0005EE189974076A), UINT64_C(0x000060FFAFD8A128), UINT64_C(0x000120ACF08DA33F), UINT64_C(0x000571F558025BFD)}, {UINT64_C(0x000DA9D04CD700E8), UINT64_C(0x00057458C41B633D), UINT64_C(0x00014B6489FA7B39), UINT64_C(0x0003BD5C957593DD), UINT64_C(0x0001304CB1D79CF1), UINT64_C(0x0005E9BAF878A8A2), UINT64_C(0x000194C540C98A95), UINT64_C(0x0003B7B2BACEC32A), UINT64_C(0x0004F344F8DD4CDE), UINT64_C(0x000078EF34BD78A1)}}, {{UINT64_C(0x000FC67E2383EF8F), UINT64_C(0x000382B810E6F7BF), UINT64_C(0x00006C9F24B27C13), UINT64_C(0x000057D888D81661), UINT64_C(0x00054A699A1B1D6B), UINT64_C(0x0008FF73BB9232B4), UINT64_C(0x0003804878333A2B), UINT64_C(0x00044F051B58790E), UINT64_C(0x0000271D3AA9BD38), UINT64_C(0x00044CDE0EB6CF43)}, {UINT64_C(0x0000D62B3C3A5A19), UINT64_C(0x000141707504E91E), UINT64_C(0x0006515C33000546), UINT64_C(0x00017546C6B9FF00), UINT64_C(0x00045D82E76E1B8B), UINT64_C(0x000AE172E2EB811B), UINT64_C(0x000413704723E59F), UINT64_C(0x00070B4CE13230E2), UINT64_C(0x0000054BF697CE5A), UINT64_C(0x00063ECC547A49B9)}, {UINT64_C(0x000602372F14D11C), UINT64_C(0x000378921B1097ED), UINT64_C(0x00067C4238D607FA), UINT64_C(0x00021D2C859309EE), UINT64_C(0x0005847490A29E8E), UINT64_C(0x0002D093948C4994), UINT64_C(0x0000E23389BFC4DD), UINT64_C(0x0007DE892CA061E2), UINT64_C(0x0004BCEA3495B247), UINT64_C(0x00062F7532D3859D)}}, {{UINT64_C(0x00086B22DF769D24), UINT64_C(0x000247653B1384A5), UINT64_C(0x0007CA7B0BA8B67B), UINT64_C(0x00003DE749E6F9B6), UINT64_C(0x00060288E35E6723), UINT64_C(0x000132375704332A), UINT64_C(0x000090B7E04CAAD9), UINT64_C(0x000618FE2CC615F8), UINT64_C(0x00071C3FA82E1054), UINT64_C(0x0005ACCA0095992F)}, {UINT64_C(0x0008070A5524110A), UINT64_C(0x0002F514E36570A5), UINT64_C(0x0007FA5FFDAD9B18), UINT64_C(0x00040716460997F2), UINT64_C(0x0004A84076418D9B), UINT64_C(0x000191D0E25444E5), UINT64_C(0x0003F007A978D4FD), UINT64_C(0x00010583B27CE828), UINT64_C(0x00076188CFB16D13), UINT64_C(0x0004AB4850C52869)}, {UINT64_C(0x000CB5BB8406E9FB), UINT64_C(0x0006229079FE11A8), UINT64_C(0x00069D10E2374F64), UINT64_C(0x0003E0965719E097), UINT64_C(0x0003D8E4F1D6E86E), UINT64_C(0x000FEA5863BEBA3D), UINT64_C(0x0007D0430EF56C07), UINT64_C(0x000181949DFD703D), UINT64_C(0x0001339A965B35C2), UINT64_C(0x0003B56220F5C7F3)}}, {{UINT64_C(0x00066DEE74B6C3E6), UINT64_C(0x000383135AE75C98), UINT64_C(0x0004505F98DC1ACE), UINT64_C(0x00032C4BBDDAC89F), UINT64_C(0x00052AA09F53D136), UINT64_C(0x0004F3A390196005), UINT64_C(0x0004A5FCAC34F0E0), UINT64_C(0x0001EDC68C692D8B), UINT64_C(0x0002FD9E6D8EE76F), UINT64_C(0x00029FC1CCA2C8F6)}, {UINT64_C(0x00065029BC02DCE4), UINT64_C(0x00072FD6589B1B83), UINT64_C(0x00004147281085E5), UINT64_C(0x0003B32D6A3356B3), UINT64_C(0x00073F9780B33257), UINT64_C(0x0003D884CD344161), UINT64_C(0x00032F7D4EA15736), UINT64_C(0x0000F5FB646C3211), UINT64_C(0x000710946F78EE11), UINT64_C(0x00041450BEBEAFA8)}, {UINT64_C(0x0004B10D60B8A44B), UINT64_C(0x00074DF316AD0515), UINT64_C(0x00000BD0DA3A0140), UINT64_C(0x0002FA9736D69155), UINT64_C(0x0004AE7CB062A37A), UINT64_C(0x0003B28579544A9B), UINT64_C(0x00030DEF5D17E4D9), UINT64_C(0x0004FC0A27B77D73), UINT64_C(0x000103D226B1E92E), UINT64_C(0x0005050AA53E3D45)}}, {{UINT64_C(0x0004C96EE0523578), UINT64_C(0x0002657E40AE1BEA), UINT64_C(0x00032F4A192D817A), UINT64_C(0x0002963B113F0E7E), UINT64_C(0x0005E7C716A6D2E3), UINT64_C(0x00027EE6D4437F4B), UINT64_C(0x0001151EA99B216A), UINT64_C(0x0001183200C3345A), UINT64_C(0x0004620822162719), UINT64_C(0x0006FF98AC189C7F)}, {UINT64_C(0x0007835A38637315), UINT64_C(0x00021DCF392DA107), UINT64_C(0x00032E572F2009A7), UINT64_C(0x000551A3874139CB), UINT64_C(0x00054BA83808EC95), UINT64_C(0x000E3B367E07B1AA), UINT64_C(0x0001C425C58AF001), UINT64_C(0x0007FEBED49D81AD), UINT64_C(0x0005614216D95FD6), UINT64_C(0x0007059956FB58D9)}, {UINT64_C(0x0009A088527332D8), UINT64_C(0x0004EBFF217D2F53), UINT64_C(0x00068A2C41E7A6F9), UINT64_C(0x0007203B80A56ADA), UINT64_C(0x0003CCF4A503F5B5), UINT64_C(0x0009DE73564AAC98), UINT64_C(0x0007C64A2D2D5B63), UINT64_C(0x00066A514607F4F4), UINT64_C(0x0004F7B23A1883CE), UINT64_C(0x000478DBA2254062)}}, {{UINT64_C(0x000891C63EC17278), UINT64_C(0x0003A469EA7941A1), UINT64_C(0x0006CC724614C2A6), UINT64_C(0x00047368EAC894D3), UINT64_C(0x000332725D63A7FD), UINT64_C(0x000E1B3A2B255A5D), UINT64_C(0x0007DE48A07B22AC), UINT64_C(0x0001320FE5C7DF2A), UINT64_C(0x0007981EA9B5299F), UINT64_C(0x00064E3A11075FBC)}, {UINT64_C(0x000F356D82B65E1D), UINT64_C(0x000333902B0C3E91), UINT64_C(0x000236EE56D2F8F6), UINT64_C(0x00052D781547A66B), UINT64_C(0x00071ECC2B2D45FD), UINT64_C(0x00021D01072A8CFE), UINT64_C(0x00014250E888F3A4), UINT64_C(0x00041F6CCF6D58E7), UINT64_C(0x00012F704916CD11), UINT64_C(0x0001C16A5BA5DEB5)}, {UINT64_C(0x0007176D4A4BE8ED), UINT64_C(0x0003AC14FE6CB1C7), UINT64_C(0x0005BF2A9F3FDCA4), UINT64_C(0x000100A77E943894), UINT64_C(0x0001A1B89F7EB96B), UINT64_C(0x000AC24527F9F6BC), UINT64_C(0x0002AFDC6A5CC161), UINT64_C(0x0006C7233297DD8D), UINT64_C(0x0001EF7E4B64538A), UINT64_C(0x00064C28116F6D3D)}}, {{UINT64_C(0x000C28582D0EAF98), UINT64_C(0x000760A4D8C62392), UINT64_C(0x0002E99A28753318), UINT64_C(0x00036B4DD38D7C84), UINT64_C(0x0005CE1103FE9B19), UINT64_C(0x000A5E7E678EC657), UINT64_C(0x00001027FC495CC3), UINT64_C(0x000053D5EFE3F79A), UINT64_C(0x00078707798B4856), UINT64_C(0x0002BCB996DBB870)}, {UINT64_C(0x000DE9BE7A3B7D2F), UINT64_C(0x000326F8D8093FCF), UINT64_C(0x0006F4CA9EA85C42), UINT64_C(0x0002DA90D1D5EFAE), UINT64_C(0x000453D210C50A00), UINT64_C(0x000ED30D7AE954A3), UINT64_C(0x000667D3AF1FF3BD), UINT64_C(0x000610D4A9935FFA), UINT64_C(0x0007996E35B2EEE4), UINT64_C(0x0005851FBF41B9D7)}, {UINT64_C(0x0001CCB597D775B8), UINT64_C(0x0002E2D7080ACA82), UINT64_C(0x00026A27679CA594), UINT64_C(0x000767CAC5608B07), UINT64_C(0x0007D3E1C929A8EE), UINT64_C(0x0001C08248026B08), UINT64_C(0x00066E49F4282B91), UINT64_C(0x00043EC983912C70), UINT64_C(0x00047BE45E4D1D00), UINT64_C(0x0005D6619498C3D3)}}, {{UINT64_C(0x000D75F87926E2CA), UINT64_C(0x0004BCE95D143C30), UINT64_C(0x0007F9B22AB8D12A), UINT64_C(0x0005764F5D0427EC), UINT64_C(0x00053FC4AEC382EC), UINT64_C(0x000BEFAD0696C924), UINT64_C(0x0005C1A42613E0F9), UINT64_C(0x0006C63EA68E2641), UINT64_C(0x0005AE918E206EE4), UINT64_C(0x000201EB6276D205)}, {UINT64_C(0x00080526DEB4F23A), UINT64_C(0x0004A3E016C3560A), UINT64_C(0x00048954F4DFE4E5), UINT64_C(0x00033FAEECA38CED), UINT64_C(0x0001AABCF5F5B04D), UINT64_C(0x000624845CAC218D), UINT64_C(0x000727D5924F0D61), UINT64_C(0x00039A25A9A902B9), UINT64_C(0x00025354B1923A74), UINT64_C(0x00042D904B1EE6E2)}, {UINT64_C(0x0005EE12683D6873), UINT64_C(0x00020C302FB23D53), UINT64_C(0x00041183598E5E20), UINT64_C(0x000660C4A3602D69), UINT64_C(0x000428E3D7F7DA6B), UINT64_C(0x000FFDAB157CCECE), UINT64_C(0x0003ABD7DACF40F1), UINT64_C(0x0001F758B2026116), UINT64_C(0x00059CA09F80A28E), UINT64_C(0x00058050997A84C9)}}, }, { {{UINT64_C(0x00012BC79DE3583C), UINT64_C(0x00021865086663FD), UINT64_C(0x00004E4ABB33032F), UINT64_C(0x00079C1995D5F6AE), UINT64_C(0x0006843DC92E6F2C), UINT64_C(0x000E5AAB95A25A94), UINT64_C(0x000297E894CB3E2E), UINT64_C(0x0002F3E8D3C6A333), UINT64_C(0x0001389E783B3338), UINT64_C(0x0004D35F4985F35A)}, {UINT64_C(0x000924729178D442), UINT64_C(0x00072FEF9AC231D7), UINT64_C(0x0003255217E983F8), UINT64_C(0x00078D1ADD8547ED), UINT64_C(0x0007DD800A0126E4), UINT64_C(0x00040F7454BB5636), UINT64_C(0x00070028ED5FE73D), UINT64_C(0x0002FE6922362D32), UINT64_C(0x000517F433247DD5), UINT64_C(0x0003131BDB6DBD80)}, {UINT64_C(0x0009B880561B3C2F), UINT64_C(0x000528E3FF8E6EB8), UINT64_C(0x0002B3F6E8A064AA), UINT64_C(0x000306F6878089C4), UINT64_C(0x0007DC267AF352EA), UINT64_C(0x000EB92414BD9E20), UINT64_C(0x0003B288AD2E08DE), UINT64_C(0x000226D516C76AEC), UINT64_C(0x00040D85E3E81384), UINT64_C(0x0000D2240FB63716)}}, {{UINT64_C(0x000587DEFF3E2CA8), UINT64_C(0x0000ADE75F1C108A), UINT64_C(0x000077C7746D2B81), UINT64_C(0x0007F15AEEE1A36C), UINT64_C(0x000147D7174597BE), UINT64_C(0x000ADF5550885ADA), UINT64_C(0x0005AC4D1E2642DC), UINT64_C(0x00011B21A28D0DDD), UINT64_C(0x00041407BD6EAB82), UINT64_C(0x00048A1C814EF854)}, {UINT64_C(0x000EE63D584955CA), UINT64_C(0x0000DB6FC1D35A63), UINT64_C(0x0007990E3E93CF7D), UINT64_C(0x0006896872475C47), UINT64_C(0x0002FE85FB8B4F95), UINT64_C(0x0009A4386F393657), UINT64_C(0x0006D05838FAE08A), UINT64_C(0x0003B7E6453E11C6), UINT64_C(0x0004A2C032C2CE97), UINT64_C(0x0003289CB5A153DD)}, {UINT64_C(0x0002BD6E9F70C80A), UINT64_C(0x000231E61F2C2C8A), UINT64_C(0x0002A043498E6B5B), UINT64_C(0x00027EF36D2BD2C9), UINT64_C(0x000792B9E0D4EFFA), UINT64_C(0x000D609539828287), UINT64_C(0x0002DD2C1EC6C7BB), UINT64_C(0x00022B3BF91980DE), UINT64_C(0x0003C03DA1E5A7D9), UINT64_C(0x000084F0BEE586B4)}}, {{UINT64_C(0x000712E11D32F6C1), UINT64_C(0x0007699A1E2965D4), UINT64_C(0x0006F53B52261F62), UINT64_C(0x00010D991E106C19), UINT64_C(0x0005E1F7A164C33C), UINT64_C(0x0002D0C5F074BEB5), UINT64_C(0x000460F51489D3D8), UINT64_C(0x0002E479EAC4245A), UINT64_C(0x0002053DB40CA26B), UINT64_C(0x00007428215ABE9C)}, {UINT64_C(0x000B9A8A9F89A37F), UINT64_C(0x00043FEE2728E6A8), UINT64_C(0x0003BAD546C31F76), UINT64_C(0x0002F4CA0D786241), UINT64_C(0x0007291B2D3383A2), UINT64_C(0x0006C364B58F7471), UINT64_C(0x0000E1166DD243CD), UINT64_C(0x0003571ADDB675C5), UINT64_C(0x0005CEB2284920A6), UINT64_C(0x0003CE87A34C0993)}, {UINT64_C(0x000D7AC4BC491E76), UINT64_C(0x0006933E79C065C0), UINT64_C(0x0003962BB73B910D), UINT64_C(0x00025407D7F52984), UINT64_C(0x000587DBC6C6A8A0), UINT64_C(0x00003AE437D302CF), UINT64_C(0x0004A456DC9A70DC), UINT64_C(0x0003580FD7730DB6), UINT64_C(0x00006BDB32465E50), UINT64_C(0x000303101EF56592)}}, {{UINT64_C(0x000E210468EBF556), UINT64_C(0x0001E3325C2E6FFC), UINT64_C(0x0003EB88667F698C), UINT64_C(0x0004C7309F19C344), UINT64_C(0x00007B954D985C68), UINT64_C(0x000112B5D338E899), UINT64_C(0x000103AD36665F4C), UINT64_C(0x0005C48C27F780B9), UINT64_C(0x0006DFCD7AC7E7C2), UINT64_C(0x0005FBAB29982614)}, {UINT64_C(0x000050C0CB5724E2), UINT64_C(0x0003F7AB514CAA0F), UINT64_C(0x0004F45065DA591B), UINT64_C(0x000629B4E99E7B9F), UINT64_C(0x0007FF99B8004A8B), UINT64_C(0x00013A7E073C783C), UINT64_C(0x0005096EE21EAD2D), UINT64_C(0x00035AC55D5BC48A), UINT64_C(0x00052D7CCDDB8458), UINT64_C(0x00026359B210DDC3)}, {UINT64_C(0x00010EB7F4F37055), UINT64_C(0x00022C5837D27DF8), UINT64_C(0x00014DD44F017128), UINT64_C(0x0000762B8A81A083), UINT64_C(0x0006343F4E6B1730), UINT64_C(0x0006A070B31B593A), UINT64_C(0x00035A4CB671B136), UINT64_C(0x00034AA79F2E1C0D), UINT64_C(0x0002B801D09AF476), UINT64_C(0x0004D55933C87AC6)}}, {{UINT64_C(0x0000F5AF20BFA216), UINT64_C(0x00070CA3CC7423EA), UINT64_C(0x0003BDCF09AF2CF8), UINT64_C(0x00070852C08E07C8), UINT64_C(0x0002B67C67B7DC0D), UINT64_C(0x0004747A18E7911A), UINT64_C(0x0002AE9D138BEC06), UINT64_C(0x00029A908D7441B5), UINT64_C(0x0001CA2C87AB2C68), UINT64_C(0x0005D57E612AC9CA)}, {UINT64_C(0x000CB61AD6C38D3B), UINT64_C(0x000098910BDAA430), UINT64_C(0x0005A8F1058B45F9), UINT64_C(0x0001378B35FE5270), UINT64_C(0x0003B096F4B6729B), UINT64_C(0x000B715D3132EC7F), UINT64_C(0x0000BF368D7A6E35), UINT64_C(0x0003532D4AAC8584), UINT64_C(0x0007C03968D90FAB), UINT64_C(0x0003DD8235C48DCD)}, {UINT64_C(0x000865375C84BF5B), UINT64_C(0x0006F89F501226EA), UINT64_C(0x0003A9BA52948170), UINT64_C(0x0005125268D062C9), UINT64_C(0x000080351C14559D), UINT64_C(0x0002D7F2832CC046), UINT64_C(0x00072CD1CCBF4A78), UINT64_C(0x0006C2A3FAE0EA13), UINT64_C(0x00066FCF5DB7E22E), UINT64_C(0x00007019E17361A4)}}, {{UINT64_C(0x000E48E34B29F673), UINT64_C(0x000189AA11C7064C), UINT64_C(0x0000980567389DB8), UINT64_C(0x000140D89A2CB56F), UINT64_C(0x00066BB6C0F4791D), UINT64_C(0x00097F8E780B26F8), UINT64_C(0x00069029D6B5B3AB), UINT64_C(0x0001807A1948E6BC), UINT64_C(0x00026E19F742FADE), UINT64_C(0x000085F04C0FC570)}, {UINT64_C(0x0008A43FBB459AFB), UINT64_C(0x000080263E72058C), UINT64_C(0x00077C836CC06EA1), UINT64_C(0x0001B50F235F0EA1), UINT64_C(0x00022280D3BF0256), UINT64_C(0x000B12F3375A9340), UINT64_C(0x00056068C08F4DCC), UINT64_C(0x000188B7FEE30E53), UINT64_C(0x00034956976A7E2B), UINT64_C(0x0006F32B80C1218B)}, {UINT64_C(0x0002995C7D4906BD), UINT64_C(0x0004C47098446E5D), UINT64_C(0x000770566A516A0B), UINT64_C(0x0001E7E3FBA19859), UINT64_C(0x0005F7F7EEE25E7C), UINT64_C(0x00056AB023B1E34B), UINT64_C(0x00065C13925054D0), UINT64_C(0x0003F1A384F6EB8D), UINT64_C(0x0000C7DE81E37B03), UINT64_C(0x0007AB8E723005D9)}}, {{UINT64_C(0x000D9677AC1784B4), UINT64_C(0x0003B608C12C6E54), UINT64_C(0x00003773DBAACF6B), UINT64_C(0x000335230A701D3D), UINT64_C(0x000164DD69069B24), UINT64_C(0x000529717B200FBF), UINT64_C(0x00020FA9213B9796), UINT64_C(0x00057DB2FAFA5561), UINT64_C(0x0002139FA8922FB6), UINT64_C(0x00067569B0196555)}, {UINT64_C(0x0009839D81326E12), UINT64_C(0x0007F6B8CD121226), UINT64_C(0x00011EF52FEB2E87), UINT64_C(0x000499E40D596C14), UINT64_C(0x0001E15D66FB1681), UINT64_C(0x000CB2E1A771676B), UINT64_C(0x0005B8802822C88B), UINT64_C(0x0004AC4C2A3D2CE6), UINT64_C(0x000736AEEE38077F), UINT64_C(0x00048E797F51A1F0)}, {UINT64_C(0x000F3FFC1B7E0E25), UINT64_C(0x000741ECED05D3C2), UINT64_C(0x0002F761F2EE2FC5), UINT64_C(0x00001899845146F7), UINT64_C(0x0001F791E6351AD2), UINT64_C(0x000D38697A0353D4), UINT64_C(0x0005D13800614CC5), UINT64_C(0x00072BF23AE1C7DE), UINT64_C(0x0002F2F0CE9EEEC6), UINT64_C(0x0004BCAB345E5507)}}, {{UINT64_C(0x000447671491497E), UINT64_C(0x0000C80E0499549D), UINT64_C(0x0007383B83AE8A43), UINT64_C(0x00018D8798A60AE8), UINT64_C(0x0005A7634049A61D), UINT64_C(0x000CF3BA71A877FA), UINT64_C(0x00038992C781814F), UINT64_C(0x0004FA4F3F875472), UINT64_C(0x0006B3BE16D87909), UINT64_C(0x0007FBF24B86F9CF)}, {UINT64_C(0x0005D7ED1152D458), UINT64_C(0x0006A737D3EC8814), UINT64_C(0x0003336316E14A78), UINT64_C(0x0007540CA254140D), UINT64_C(0x000110B2DC2C19D2), UINT64_C(0x0003541AEE4CD459), UINT64_C(0x0006D62DA4142812), UINT64_C(0x00004D24768B69EF), UINT64_C(0x00017FEAA0883076), UINT64_C(0x00028A34309D30B8)}, {UINT64_C(0x00082AEA5AAA7679), UINT64_C(0x00069F5FFC2299F9), UINT64_C(0x00075584B5CBBAE3), UINT64_C(0x0007EB4016FF7E27), UINT64_C(0x00077F9D62577D9F), UINT64_C(0x0006DC60EBCA06A0), UINT64_C(0x0003C85F387E563B), UINT64_C(0x00015F9C0C733FB2), UINT64_C(0x00055561ADBDC642), UINT64_C(0x00014B6056050D92)}}, {{UINT64_C(0x000D1DDCB3D8676E), UINT64_C(0x00029A0A308DDECF), UINT64_C(0x0006A381EC144616), UINT64_C(0x0001160CA0BFEC27), UINT64_C(0x00061482EF8B50E3), UINT64_C(0x000EF6F13CBB5FD6), UINT64_C(0x00047895BA6C9BBE), UINT64_C(0x00025EC3CC939CD7), UINT64_C(0x0000C55182568086), UINT64_C(0x00028782AA420F85)}, {UINT64_C(0x0008812D8865EB1A), UINT64_C(0x0000A23A343939AB), UINT64_C(0x0007911CB6565C2A), UINT64_C(0x000542477B4639B9), UINT64_C(0x0004025D314B3748), UINT64_C(0x000F0FC98FF524B1), UINT64_C(0x0006AA3ED50EC301), UINT64_C(0x00067BEA284CE141), UINT64_C(0x00035FBE193BAF03), UINT64_C(0x000283F0131BFA47)}, {UINT64_C(0x0003691D5B656339), UINT64_C(0x00010FA865CCF6EB), UINT64_C(0x000039AFC5408E69), UINT64_C(0x000716574C1285D7), UINT64_C(0x000229C93E34D31C), UINT64_C(0x0009DCB9E5D6F976), UINT64_C(0x00035DEBA296DC50), UINT64_C(0x0000AE005B921892), UINT64_C(0x0002C8A31CBE1965), UINT64_C(0x0000ED87D30FCA21)}}, {{UINT64_C(0x0009C6090B0DB1A4), UINT64_C(0x00034B5A129C41C7), UINT64_C(0x00059562792D152D), UINT64_C(0x0000A11D7CE1D2F8), UINT64_C(0x00066B6939748922), UINT64_C(0x0002AD03A62C9001), UINT64_C(0x0007BBAEC39432F3), UINT64_C(0x0000F8A4915FF527), UINT64_C(0x0007DBE1A2997F40), UINT64_C(0x000439D5F39E64A8)}, {UINT64_C(0x0005C0D182E1AF93), UINT64_C(0x000153BBC2722775), UINT64_C(0x000211B8B306BA69), UINT64_C(0x0007D3A33C211B46), UINT64_C(0x0005650D03F0188D), UINT64_C(0x0003805179159F66), UINT64_C(0x0005B80FDEBBC150), UINT64_C(0x00023B752B2CCA19), UINT64_C(0x00056569DDD4BB09), UINT64_C(0x000630A1D0FE1331)}, {UINT64_C(0x000CC57A9BD01FD0), UINT64_C(0x00001A61B9AF718F), UINT64_C(0x0003E7AEFE584488), UINT64_C(0x00002846B6BF5441), UINT64_C(0x000032F196D04DD3), UINT64_C(0x0005855F89A5B1E2), UINT64_C(0x00034031211C8DC5), UINT64_C(0x00014993DFD465A0), UINT64_C(0x0001B4AFBB37974E), UINT64_C(0x00010725BF8ACC79)}}, {{UINT64_C(0x0008533407FDA6AE), UINT64_C(0x000192F807908397), UINT64_C(0x0006D0300B59435D), UINT64_C(0x0003D01EB7B22034), UINT64_C(0x0006AFEEF3F9CD09), UINT64_C(0x000E5025B96AF595), UINT64_C(0x0006A4A6BE18817B), UINT64_C(0x00011D766D6D736B), UINT64_C(0x000798906CAD57F4), UINT64_C(0x0005ABB11A884308)}, {UINT64_C(0x0005141D4E3FF7B2), UINT64_C(0x0007785D03C4C1D1), UINT64_C(0x0002E4309AA4BEDF), UINT64_C(0x0000D594EF832B4B), UINT64_C(0x00079F60B7615E57), UINT64_C(0x000AF439572259C7), UINT64_C(0x00039E6726C1C742), UINT64_C(0x00033EFCC7442133), UINT64_C(0x0001B48C7F680882), UINT64_C(0x0002FBAE97FB8296)}, {UINT64_C(0x0002D2C880F58DFD), UINT64_C(0x00002E893D015F3D), UINT64_C(0x000402A9AE8025AB), UINT64_C(0x0000616166212B68), UINT64_C(0x0005D8A9EFC3CCA1), UINT64_C(0x0007EC85775C4CD6), UINT64_C(0x00048D0978840129), UINT64_C(0x0002C54DE6A58362), UINT64_C(0x0006B650181206C2), UINT64_C(0x000781263825C8B9)}}, {{UINT64_C(0x00037F4695FB8F38), UINT64_C(0x00064899737EA849), UINT64_C(0x00005CA9511A1C0C), UINT64_C(0x0005B2332E230D2F), UINT64_C(0x0005BEFB537AF5C5), UINT64_C(0x000E66EDC4CC05A1), UINT64_C(0x0001F243387EED8D), UINT64_C(0x00060531AF1B8294), UINT64_C(0x00048207AF7FB47E), UINT64_C(0x0006467F4F208BC1)}, {UINT64_C(0x000ED253E56AD0B4), UINT64_C(0x0006FD900D9B4494), UINT64_C(0x000771FDB0B28644), UINT64_C(0x0006608E858B8864), UINT64_C(0x0002410ACFA4ECFD), UINT64_C(0x0006BCBCB4C454F1), UINT64_C(0x0004C982596786AF), UINT64_C(0x0007C7D414F13D62), UINT64_C(0x000400A18A4312B8), UINT64_C(0x0001C8AE8AAC6E97)}, {UINT64_C(0x00039A273DA14F76), UINT64_C(0x00007A039FC51A14), UINT64_C(0x00075AE649E4978D), UINT64_C(0x00068BBF1108ED62), UINT64_C(0x0001AC7CBC84A882), UINT64_C(0x000F007CBF2633B8), UINT64_C(0x0001A252213D53A3), UINT64_C(0x00060026357E6823), UINT64_C(0x0005559C92CD3AA6), UINT64_C(0x000363AFB26A540D)}}, {{UINT64_C(0x000C6D7AC27539AC), UINT64_C(0x0004CAF0243C7093), UINT64_C(0x0006E0AFE6D51B44), UINT64_C(0x0002FD11233BA456), UINT64_C(0x0002CF8D4FBEC26A), UINT64_C(0x000335E8B284BD21), UINT64_C(0x0004E3B0C6669531), UINT64_C(0x000268080A9578C0), UINT64_C(0x00001A56306692EA), UINT64_C(0x0001DC271C3ACEF7)}, {UINT64_C(0x0005D867CCE652DC), UINT64_C(0x000413FF399550DD), UINT64_C(0x0004AE5EB4FD02DD), UINT64_C(0x00052874EA4A9C83), UINT64_C(0x0004E30A566CC4F0), UINT64_C(0x0009ED469CD2FA26), UINT64_C(0x00079EED35A8B65B), UINT64_C(0x000064FF6AF426D8), UINT64_C(0x00013C73FCA107AB), UINT64_C(0x0006BCC1F527AE0B)}, {UINT64_C(0x000E8622B341115B), UINT64_C(0x0005F8B755945B8A), UINT64_C(0x000642734EB49580), UINT64_C(0x00002466340FFFFA), UINT64_C(0x0003E1295E9DB2EF), UINT64_C(0x000914081A805FD4), UINT64_C(0x0004A81CD7486D11), UINT64_C(0x0005D93E4C17C491), UINT64_C(0x0006919BA5ECC6B0), UINT64_C(0x000448FF91161C16)}}, {{UINT64_C(0x0003D9DFABF694F0), UINT64_C(0x00002EE322AB5B23), UINT64_C(0x0007E35695039192), UINT64_C(0x00016EB2F5322F0B), UINT64_C(0x0007FCF7BA70F363), UINT64_C(0x0007FBE02B2A3F5E), UINT64_C(0x00016937E666BFE0), UINT64_C(0x00063B8FCA96F14A), UINT64_C(0x000540136F4D10D5), UINT64_C(0x00039D97115CAD4A)}, {UINT64_C(0x000A782DAEA02C81), UINT64_C(0x0002FD925EE99F06), UINT64_C(0x00060F793F8913A6), UINT64_C(0x0001E83A9CDE3761), UINT64_C(0x0001467FC5C751CA), UINT64_C(0x000264902CF947E3), UINT64_C(0x00006FAA77E5A8BE), UINT64_C(0x00067F05EF979834), UINT64_C(0x0005311603B55490), UINT64_C(0x000074D079F64A01)}, {UINT64_C(0x0006D0D6BDA6A83D), UINT64_C(0x00002DDDDEE12D29), UINT64_C(0x0005927C12A4B6B7), UINT64_C(0x00071C3961F108DF), UINT64_C(0x00077B7833C53611), UINT64_C(0x0002FDE12520D971), UINT64_C(0x0007CB6A7953E587), UINT64_C(0x0004139054626FC8), UINT64_C(0x00079EAC5F05CF63), UINT64_C(0x00001D021BA677A6)}}, {{UINT64_C(0x000CAC0E21E72D01), UINT64_C(0x0002AAC8A7589E07), UINT64_C(0x0007A7F89C925218), UINT64_C(0x0005C69DE570605B), UINT64_C(0x0007C603800C1CEC), UINT64_C(0x0005CD221F6861F6), UINT64_C(0x000225A7F4668D5E), UINT64_C(0x00027C1F6FFB5628), UINT64_C(0x0007A72B7EAEB5A8), UINT64_C(0x0000B10838B451B8)}, {UINT64_C(0x000CE1FEA6AE6F93), UINT64_C(0x00019A7F14080E06), UINT64_C(0x0002CF09EEA75595), UINT64_C(0x0006DB5A156F82EC), UINT64_C(0x0002FBA8A7857009), UINT64_C(0x00013F8B71B7B21D), UINT64_C(0x00036BCBD874C4CE), UINT64_C(0x0003A12D4D39A34D), UINT64_C(0x00027EBC6E708CC4), UINT64_C(0x00046B288961C679)}, {UINT64_C(0x00084942A3FFE4F7), UINT64_C(0x00039331DB0EFDD2), UINT64_C(0x0003BC5E8D64D32A), UINT64_C(0x0002F14504F246A2), UINT64_C(0x0005D0B970850BFE), UINT64_C(0x000DDBFD50853040), UINT64_C(0x00053F2BB46E95D8), UINT64_C(0x0006217469553610), UINT64_C(0x0001AA60880F4C92), UINT64_C(0x0001BB031C7CDCAD)}}, {{UINT64_C(0x00043577337ED415), UINT64_C(0x0001168CF60C5FCC), UINT64_C(0x0004F7F95837B2D6), UINT64_C(0x00056BA25D4F23A3), UINT64_C(0x0005C14460B0F4E0), UINT64_C(0x0002B00069045903), UINT64_C(0x00004B0C5A39B1AA), UINT64_C(0x0003FBB985D77FA8), UINT64_C(0x00049239EE5946D9), UINT64_C(0x00057387CD1049E9)}, {UINT64_C(0x000B952D15EE6357), UINT64_C(0x0002DB9A48C1B600), UINT64_C(0x0002D0190D4ADBBA), UINT64_C(0x00047F14E4566F50), UINT64_C(0x0001F163D4E86E1D), UINT64_C(0x000C92AF729F469E), UINT64_C(0x00007BD599CC0C16), UINT64_C(0x0006BC2F08CAE272), UINT64_C(0x00047553865EB8CC), UINT64_C(0x0001CE9F42F10932)}, {UINT64_C(0x000BCE2DA7F5610F), UINT64_C(0x0003B36D325EE2A8), UINT64_C(0x000726B58068AB44), UINT64_C(0x0004A0F44270ED1F), UINT64_C(0x00071571152CE6BE), UINT64_C(0x000565993B17157C), UINT64_C(0x00039843697248A3), UINT64_C(0x00051EDAD623656A), UINT64_C(0x0004E89907281D95), UINT64_C(0x0003514F571877C2)}}, }, { {{UINT64_C(0x000D2A3121F83A1D), UINT64_C(0x0002DA330B022D82), UINT64_C(0x00003B3EAB80FFD8), UINT64_C(0x00015D727FF11EA8), UINT64_C(0x000645E52899FB8C), UINT64_C(0x000C944BAFE40831), UINT64_C(0x0006EFC60BCB700D), UINT64_C(0x00049C8983D2F665), UINT64_C(0x00001D4D70FCC0D3), UINT64_C(0x0004D6ED234BFC0D)}, {UINT64_C(0x000B1C9F041D3F61), UINT64_C(0x0005D2FDE93EC1F5), UINT64_C(0x00076737DC0F744C), UINT64_C(0x00042230534666BE), UINT64_C(0x0003404E863515DA), UINT64_C(0x000C7436CCE8B116), UINT64_C(0x00005EA392999318), UINT64_C(0x0007905E98068490), UINT64_C(0x00010A805AD32FCC), UINT64_C(0x000023B7CE895D07)}, {UINT64_C(0x0003EFFB814E2197), UINT64_C(0x0000852A305BE11B), UINT64_C(0x00048396DD06C432), UINT64_C(0x000540D5C5935D99), UINT64_C(0x00035AEAD67940BE), UINT64_C(0x0008CA943925F507), UINT64_C(0x0006F245BE658554), UINT64_C(0x0000B5E763A6E0C5), UINT64_C(0x0002E795E93C44D8), UINT64_C(0x0006CC4B88C475C6)}}, {{UINT64_C(0x000C200B8B331922), UINT64_C(0x00004683E419F734), UINT64_C(0x0002C7E001FCD0C0), UINT64_C(0x0001479FD1FC8DF1), UINT64_C(0x000577647BF78E53), UINT64_C(0x0003AC981A6CC35C), UINT64_C(0x0002966643DF7AFF), UINT64_C(0x000673621471EFDC), UINT64_C(0x0007BF256881F54F), UINT64_C(0x000487F29B6DB344)}, {UINT64_C(0x00085CDB9629C5F6), UINT64_C(0x000604C1DBE92B8A), UINT64_C(0x0003BBE72A278D3D), UINT64_C(0x000767DE37996D84), UINT64_C(0x0000DFE0B1187EE4), UINT64_C(0x0004DE0ADC2458BC), UINT64_C(0x00003CCCC4C709E4), UINT64_C(0x00045A74FFEA1E3D), UINT64_C(0x00015B4EE2B662A6), UINT64_C(0x000181EFB7AE8968)}, {UINT64_C(0x0009F028A704590F), UINT64_C(0x0005F2BA1A40E68C), UINT64_C(0x0001F65FEC8D20C2), UINT64_C(0x00020C79DAFC49DD), UINT64_C(0x0007EEFCC164D9D7), UINT64_C(0x000D456B93390094), UINT64_C(0x000185EADF32B9D0), UINT64_C(0x0004ED0525883825), UINT64_C(0x0007B8A0AEB853AE), UINT64_C(0x0000D9511CB1B787)}}, {{UINT64_C(0x000CDF0DB3694899), UINT64_C(0x00023B940D7CF533), UINT64_C(0x0006B84827681417), UINT64_C(0x0006F9B4F46F0E96), UINT64_C(0x000515DA23E8AC6B), UINT64_C(0x00095847795BB758), UINT64_C(0x0003F4CCA41B8228), UINT64_C(0x0006186E4E9093AC), UINT64_C(0x00077309478974B1), UINT64_C(0x0005B4F6C6F8FEFA)}, {UINT64_C(0x0001443F74773B5C), UINT64_C(0x00063FFF59FDE6B6), UINT64_C(0x0001F16F0B9EEC52), UINT64_C(0x000051FCDC5A3486), UINT64_C(0x0003DB748AF8F2E5), UINT64_C(0x000B5783C6DC2D30), UINT64_C(0x0002DAB21D8CC130), UINT64_C(0x0005F25B88234552), UINT64_C(0x0004FF796B7D456D), UINT64_C(0x0006080EB1FC5C27)}, {UINT64_C(0x000A9AA635E4EF7D), UINT64_C(0x000108EC067C691F), UINT64_C(0x00004D22357BAE6A), UINT64_C(0x000337A3327BC99C), UINT64_C(0x0000A68F7BADF67C), UINT64_C(0x000AC18F7DFA19B2), UINT64_C(0x0005C678FBE8EB52), UINT64_C(0x0001D8F2C4E8BB6E), UINT64_C(0x0000DA44F24F2716), UINT64_C(0x00030A3DE2A3A421)}}, {{UINT64_C(0x000F5BCB25CF4FB5), UINT64_C(0x00037F879FD958AF), UINT64_C(0x0001AD917C6DE29F), UINT64_C(0x000162FF07F36826), UINT64_C(0x00067919212F631A), UINT64_C(0x000BFD3793A355FB), UINT64_C(0x0005755B1ABED696), UINT64_C(0x000144F83C26744A), UINT64_C(0x0004BCAD8857D421), UINT64_C(0x00016302D4EADAE5)}, {UINT64_C(0x0007E6C00E672C8D), UINT64_C(0x00038DE62F3282ED), UINT64_C(0x0004B4D7588B4274), UINT64_C(0x0000DE769DFD42DE), UINT64_C(0x00031736034810B0), UINT64_C(0x00042D1D02CFDE19), UINT64_C(0x0003D5001378BC45), UINT64_C(0x00063303C6FB6962), UINT64_C(0x00033FF632B306CC), UINT64_C(0x0007FCD2720CF3DD)}, {UINT64_C(0x0000D3E05FE45941), UINT64_C(0x0001EE7BCFC54EA8), UINT64_C(0x00073BF8104FCCCD), UINT64_C(0x0006E128F079E6C4), UINT64_C(0x0006FE2C64E04ED7), UINT64_C(0x0007C13D9F8F4E55), UINT64_C(0x00073AA7BE299340), UINT64_C(0x00065D2152375AFE), UINT64_C(0x000389EB4ABE5495), UINT64_C(0x00044A45040B455F)}}, {{UINT64_C(0x000A15B31548EDEF), UINT64_C(0x0004BE66E39BFE46), UINT64_C(0x0000A4F48F221DE4), UINT64_C(0x0003D1DB970835AB), UINT64_C(0x00031933E3DE57CB), UINT64_C(0x000978578FEEE453), UINT64_C(0x0002C30F392DC6A7), UINT64_C(0x0000C948C85AE181), UINT64_C(0x000200560FFD6366), UINT64_C(0x0001230F26094A57)}, {UINT64_C(0x00071F959A90337C), UINT64_C(0x000208552F478DC7), UINT64_C(0x0005788AC4EBB26B), UINT64_C(0x0002B9FBF27C3470), UINT64_C(0x00004FF4C8B12365), UINT64_C(0x0006D2BCE6204D47), UINT64_C(0x0001E8AAA0A8023E), UINT64_C(0x000797C24FED76B7), UINT64_C(0x00026173EF326E46), UINT64_C(0x0006133FB5B5B999)}, {UINT64_C(0x00012BC7A048AF37), UINT64_C(0x0000FD0301EC2E53), UINT64_C(0x0002C070DD9CD038), UINT64_C(0x0007F2EFAC327986), UINT64_C(0x00026CE631FC9FEF), UINT64_C(0x000277F1E2BB1725), UINT64_C(0x00010E40E88E18E3), UINT64_C(0x00039310E1B26218), UINT64_C(0x0003985E2F2FBFEB), UINT64_C(0x000268DC44A02ADF)}}, {{UINT64_C(0x000DEA78EADAEEC1), UINT64_C(0x0003DB0BE77C03ED), UINT64_C(0x0003EDF67A38D25B), UINT64_C(0x0005019B365A8A38), UINT64_C(0x0005197BFB9FF59C), UINT64_C(0x00083D36F0A5A16A), UINT64_C(0x0005152E257CA37F), UINT64_C(0x0006A2BEE626DAA6), UINT64_C(0x00033AE983C20B72), UINT64_C(0x0004D9B705EAAD1C)}, {UINT64_C(0x000874E06D7B5C24), UINT64_C(0x00064390163770B6), UINT64_C(0x0005698AF98FF650), UINT64_C(0x0005B8EBB355D77A), UINT64_C(0x0000AE7C70732C73), UINT64_C(0x000E19D3D98FABDD), UINT64_C(0x00079DEDA37DA75D), UINT64_C(0x00004B710B1674C5), UINT64_C(0x00040619A55A5DEF), UINT64_C(0x000779DCC6F44704)}, {UINT64_C(0x000504F35721DEFB), UINT64_C(0x0004A3C0C7E7284A), UINT64_C(0x0002EB38ABD01FCB), UINT64_C(0x0004CE3322295DF1), UINT64_C(0x00031DB27F499399), UINT64_C(0x00018AABC6E0C983), UINT64_C(0x0000AF5EF9B55762), UINT64_C(0x0005322B53AAAACA), UINT64_C(0x0007762A5164BC03), UINT64_C(0x0007F960E2AF4304)}}, {{UINT64_C(0x0004FE2209D880A9), UINT64_C(0x0003B71CEB098483), UINT64_C(0x0006F0A21F537C16), UINT64_C(0x0002CF6EB8FF1658), UINT64_C(0x0005494E50B58CA1), UINT64_C(0x0004438EA9A0A3E8), UINT64_C(0x0003E7417D2F3188), UINT64_C(0x0006C48A60BD0440), UINT64_C(0x0006AD71A29DB30C), UINT64_C(0x0001AC8E5A50D6AA)}, {UINT64_C(0x000C73B8887E050B), UINT64_C(0x0003885D576CDAD0), UINT64_C(0x0004A689C810C4FB), UINT64_C(0x000694592DB886B1), UINT64_C(0x00063944B776872E), UINT64_C(0x000AA2F2A130E0FC), UINT64_C(0x00008DD2C544EA7E), UINT64_C(0x000210E4D0FC740D), UINT64_C(0x0001E222C1CAA921), UINT64_C(0x00071E84DB222363)}, {UINT64_C(0x0006F9367DF1009D), UINT64_C(0x0006CBC0A10D4FD2), UINT64_C(0x000610447BE01C43), UINT64_C(0x0000F58331DDCDD9), UINT64_C(0x00041CDDB6D56BDD), UINT64_C(0x00011776CAFBC4AC), UINT64_C(0x000374788FA28EB8), UINT64_C(0x0000E99592B60098), UINT64_C(0x0001448FF0C15C26), UINT64_C(0x0006667044FC0ECF)}}, {{UINT64_C(0x0009F8C30043EA50), UINT64_C(0x000112BE297E6871), UINT64_C(0x0002F61BC12D1B08), UINT64_C(0x00022B45B0DF4504), UINT64_C(0x0004A8355FC774A3), UINT64_C(0x0009F24537D203A0), UINT64_C(0x0000F00050E3A31C), UINT64_C(0x00060D19D82588C3), UINT64_C(0x00035A326B654F92), UINT64_C(0x00069365E53B389A)}, {UINT64_C(0x00050A34F9BCA230), UINT64_C(0x000768F7A199C03D), UINT64_C(0x000204C0AADFC49C), UINT64_C(0x00025CAC2599062C), UINT64_C(0x00077F593DCC6037), UINT64_C(0x000D311959EB3E67), UINT64_C(0x000092B89479AFDF), UINT64_C(0x0005B67AD89C4F22), UINT64_C(0x0003626EAED6B185), UINT64_C(0x00067832EC55B3C6)}, {UINT64_C(0x000C1593CEFCECC1), UINT64_C(0x0000A4A2957784F8), UINT64_C(0x00026ABBB5309788), UINT64_C(0x00074F0F59146003), UINT64_C(0x000387E735C3C669), UINT64_C(0x000593E8E4DEBA0C), UINT64_C(0x0002E24A801D3568), UINT64_C(0x0005256747685BDB), UINT64_C(0x000013566542C53E), UINT64_C(0x00048E7E32CD1AD3)}}, {{UINT64_C(0x0007D4DBA5C3CC2A), UINT64_C(0x0005759B789AA3A3), UINT64_C(0x0006F22E17510467), UINT64_C(0x00040F3252F7511B), UINT64_C(0x000528AEF4908B9A), UINT64_C(0x000B8EAE9E5BCEE1), UINT64_C(0x0006942B0FECB4DD), UINT64_C(0x00033E6A3D8BD112), UINT64_C(0x0004CC49DD25E389), UINT64_C(0x000445C577D06042)}, {UINT64_C(0x0007C40A37BEFD01), UINT64_C(0x000730CA5186A539), UINT64_C(0x0005C36B6EDBB6B6), UINT64_C(0x0004CE95B4DA9CD6), UINT64_C(0x0002E2AD0BAECB4F), UINT64_C(0x0009E94D245C6F84), UINT64_C(0x00073894E220EBEA), UINT64_C(0x0001E10C1571B9C0), UINT64_C(0x0002A750557B17A9), UINT64_C(0x0002F468854DE098)}, {UINT64_C(0x0006D012DA4D1F3B), UINT64_C(0x000065FA17AAA85D), UINT64_C(0x000126D6EC4C4597), UINT64_C(0x00062F36E6EDE0C7), UINT64_C(0x0000B9419F244E94), UINT64_C(0x00089B6AA6EA58BD), UINT64_C(0x00067307208BE7E2), UINT64_C(0x00065FD90ED40D58), UINT64_C(0x0002493AE4798B62), UINT64_C(0x0005C947F9A199F6)}}, {{UINT64_C(0x000C9CA5529BDF08), UINT64_C(0x0006474FD3A96C71), UINT64_C(0x00032737E53C8C69), UINT64_C(0x0007F1A1D1EDAE8C), UINT64_C(0x0007E44ED2C4B89C), UINT64_C(0x00039AC19F0C716A), UINT64_C(0x00041F9F39F47EBF), UINT64_C(0x0007591E503A89BC), UINT64_C(0x0007E4B3B038BA83), UINT64_C(0x0002D77047632306)}, {UINT64_C(0x000E44217D6E3B7F), UINT64_C(0x00025C90B5976AEE), UINT64_C(0x0001F4EF248E8C6D), UINT64_C(0x0006AF1D1868F663), UINT64_C(0x000038AC35E161DE), UINT64_C(0x0006647522C34933), UINT64_C(0x0005FBBBB3C26A48), UINT64_C(0x000226EA1BC6B125), UINT64_C(0x000061EA27678E69), UINT64_C(0x0007204A98E37606)}, {UINT64_C(0x000782E217103AF0), UINT64_C(0x0005F858671BD8FE), UINT64_C(0x0004929B9196468A), UINT64_C(0x0004EA71EE645DFD), UINT64_C(0x00044AAB314B679F), UINT64_C(0x0000B22073C603B6), UINT64_C(0x0004B1C1D90F53B3), UINT64_C(0x0000F1B4FA3F48F3), UINT64_C(0x000128359405A8D0), UINT64_C(0x00007D5F6710B1AF)}}, {{UINT64_C(0x000306DD32F8B559), UINT64_C(0x0007C415E4D67E45), UINT64_C(0x00056A49257A4333), UINT64_C(0x00018F1224742086), UINT64_C(0x000542B30DD86DDC), UINT64_C(0x0001645F932983EF), UINT64_C(0x0007213FC2770A7F), UINT64_C(0x0005126F605B77F9), UINT64_C(0x00041CEEB5B0DE9E), UINT64_C(0x0003C305D884EC37)}, {UINT64_C(0x000769826ECC1E95), UINT64_C(0x00058DF57466B622), UINT64_C(0x0002788C60F1A684), UINT64_C(0x00010C568F251DA8), UINT64_C(0x00075B0E37E05118), UINT64_C(0x000165CB8643BF09), UINT64_C(0x0006155F1C1AEE2D), UINT64_C(0x0006CF1B4EF316A8), UINT64_C(0x000061E8F6B5FB5F), UINT64_C(0x0000893F44E63C16)}, {UINT64_C(0x000CDF32871DF406), UINT64_C(0x00078311BD087EFE), UINT64_C(0x00067873B3557364), UINT64_C(0x000636BE32D35E5A), UINT64_C(0x0006195801D0D6BB), UINT64_C(0x0002735B3B4EB70E), UINT64_C(0x000363C1BD256DF7), UINT64_C(0x0004C37F9069C166), UINT64_C(0x000706B70FC69919), UINT64_C(0x0005402BC0A1784B)}}, {{UINT64_C(0x000C3C3A75895A83), UINT64_C(0x0002AF5E20173369), UINT64_C(0x00016058BB908BA2), UINT64_C(0x00006422CFBDCBA5), UINT64_C(0x0003532C8DAA68D7), UINT64_C(0x0001718B0498E976), UINT64_C(0x0001037F828D1CB5), UINT64_C(0x0004ADFBAC138E46), UINT64_C(0x000264F5D9AA2DBF), UINT64_C(0x000661862DCF83A4)}, {UINT64_C(0x000B4401A412DE9C), UINT64_C(0x0004C413E9A0630F), UINT64_C(0x0001E24FC9E6E3F3), UINT64_C(0x00077A8E0FD8D9C4), UINT64_C(0x0001BC33A8CA2E97), UINT64_C(0x0008030A67A41045), UINT64_C(0x00039F744B6ECFD1), UINT64_C(0x00072432DDCFFE36), UINT64_C(0x0007DD91D0BBE6D8), UINT64_C(0x000078AB20170916)}, {UINT64_C(0x000498F6F8BD5A53), UINT64_C(0x0000D1C46916C0CF), UINT64_C(0x0005F54960938342), UINT64_C(0x000447AA84AB04D2), UINT64_C(0x000724A5EB675B6E), UINT64_C(0x000EA0E318325878), UINT64_C(0x00066B113C4AA80B), UINT64_C(0x000253461B0BF6BE), UINT64_C(0x0004DB77BC24C66A), UINT64_C(0x0001AC7EDE0A50F4)}}, {{UINT64_C(0x00044A5984167BC5), UINT64_C(0x0003C2E2EF77D4C4), UINT64_C(0x0000B0E5F803C46E), UINT64_C(0x00036C49B84AF0A1), UINT64_C(0x0000C05A8C33C661), UINT64_C(0x00096D04429DE51D), UINT64_C(0x0001CD77226DEF8B), UINT64_C(0x0005AF209A481396), UINT64_C(0x0004DD604CDFFC41), UINT64_C(0x0000DE719B2B2635)}, {UINT64_C(0x00038429D5339495), UINT64_C(0x00059B744E7203F8), UINT64_C(0x00054083470E63F2), UINT64_C(0x00020168D78F5F9F), UINT64_C(0x00060B7BBD5EEA39), UINT64_C(0x0006C9580366396A), UINT64_C(0x00047B4DABFD7116), UINT64_C(0x00007CB92CE4EB12), UINT64_C(0x000171CBBFFF880B), UINT64_C(0x00032AEA49629D50)}, {UINT64_C(0x0002327365257623), UINT64_C(0x0002901F27D0F318), UINT64_C(0x0007EEC27D093A11), UINT64_C(0x0000C431CC4582E3), UINT64_C(0x00032FC5091EC7C3), UINT64_C(0x0009F1205282C2B4), UINT64_C(0x0006A99198CE7309), UINT64_C(0x000181D401A1E0EB), UINT64_C(0x00000BFBAE47E38F), UINT64_C(0x0001B85974A394FD)}}, {{UINT64_C(0x00003D98BB92DE0A), UINT64_C(0x00012FC6BEE98813), UINT64_C(0x0003C727A73BB1DB), UINT64_C(0x000594A927D8CBF4), UINT64_C(0x0002F609AA953DBA), UINT64_C(0x000BFB4CF73D47D7), UINT64_C(0x0006F4AC381AE6B8), UINT64_C(0x0000D2B0C81B4EFB), UINT64_C(0x0005455F0C358D6D), UINT64_C(0x0000F023E512DEEE)}, {UINT64_C(0x00069BD7FC6E5CF7), UINT64_C(0x0002D72F5A73331E), UINT64_C(0x00030CAB8A2D6416), UINT64_C(0x0001594D14FA77F2), UINT64_C(0x000631869D3D020D), UINT64_C(0x00002E08CCBFD994), UINT64_C(0x00046F03B754307B), UINT64_C(0x00067146A1F6ED5B), UINT64_C(0x0000B02B94197421), UINT64_C(0x000751016B4BD0BC)}, {UINT64_C(0x000E6EFCC4EDE7FE), UINT64_C(0x0004ADD3198030A1), UINT64_C(0x00047734A17278D8), UINT64_C(0x0000F92F45E7CE85), UINT64_C(0x0003F6D367D00160), UINT64_C(0x000E13DFE99432BE), UINT64_C(0x000187A2AF6E1412), UINT64_C(0x0006A191CEED3ACE), UINT64_C(0x00058147D849A2BA), UINT64_C(0x0001BC9A9B916364)}}, {{UINT64_C(0x00000199D348C776), UINT64_C(0x00027B8B4CFED803), UINT64_C(0x0005BF0AB8D43407), UINT64_C(0x0007B10CAF37EC50), UINT64_C(0x00033B53F6C30777), UINT64_C(0x000E87F6475537F5), UINT64_C(0x00001D4A155ABBCB), UINT64_C(0x0003CB17A764EA6A), UINT64_C(0x00013523EE4327E1), UINT64_C(0x000753B39ECFEACE)}, {UINT64_C(0x00042F46C4C2845F), UINT64_C(0x000664A9551B6369), UINT64_C(0x0000C9CC8349A824), UINT64_C(0x000574459D0ED534), UINT64_C(0x0001A18730E01DA7), UINT64_C(0x00082CA89B83E7F8), UINT64_C(0x0006AEE1395800DC), UINT64_C(0x00020195766F2D74), UINT64_C(0x00027864BA955A16), UINT64_C(0x00056478A31843AB)}, {UINT64_C(0x0003D3FE4F04AC87), UINT64_C(0x0002E5E52E60EFDD), UINT64_C(0x00060730A36559C5), UINT64_C(0x0006A427612AD123), UINT64_C(0x0003A36F820D7FE6), UINT64_C(0x00089AD1F5C273D7), UINT64_C(0x0002D21C3309431D), UINT64_C(0x00079250B4AEAD6F), UINT64_C(0x0003F475A1168016), UINT64_C(0x000092AD39E48D5D)}}, {{UINT64_C(0x000C1CB7EACBBE5F), UINT64_C(0x0004783A6E7DF912), UINT64_C(0x0005830AE2E3AE77), UINT64_C(0x00020AEE82D43F9A), UINT64_C(0x0001F837EDBC8314), UINT64_C(0x000A1D23C74DA695), UINT64_C(0x0005E6AEAC19A780), UINT64_C(0x0007852725690C30), UINT64_C(0x0006807B0774F532), UINT64_C(0x00004DB69C9F9C33)}, {UINT64_C(0x000F824529D58522), UINT64_C(0x000241E1A2206190), UINT64_C(0x0007C5225BAD2B57), UINT64_C(0x00067F90115B53BF), UINT64_C(0x00066BD04E108B4E), UINT64_C(0x00033F9F0CC81B9C), UINT64_C(0x0003C0A7A3FFBC22), UINT64_C(0x0002670D5CC34121), UINT64_C(0x0002CF6BBD4DBD78), UINT64_C(0x000644ED07DFB2C5)}, {UINT64_C(0x0002A7ACB34B8F5D), UINT64_C(0x00048474BD048B62), UINT64_C(0x0004D4C75CE04805), UINT64_C(0x0001DB57B655BA7F), UINT64_C(0x0007755297FAB4DC), UINT64_C(0x000CBABD48415893), UINT64_C(0x0006810FE1CA637E), UINT64_C(0x0000F699DDD6AC1F), UINT64_C(0x000451C6EABA4EA0), UINT64_C(0x0007E1DB71EC0558)}}, }}; /*- * Q := 2P, both projective, Q and P same pointers OK * Autogenerated: op3/dbl_proj_ed_eone.op3 * https://www.hyperelliptic.org/EFD/g1p/auto-code/twisted/extended-1/doubling/dbl-2008-hwcd.op3 * ASSERT: e = 1 */ static void point_double(pt_prj_t *Q, const pt_prj_t *P) { /* temporary variables */ fe_t t0, t1, t2, t3; /* constants */ /* set pointers for Edwards curve arith */ const limb_t *X = P->X; const limb_t *Y = P->Y; const limb_t *Z = P->Z; limb_t *X3 = Q->X; limb_t *Y3 = Q->Y; limb_t *T3 = Q->T; limb_t *Z3 = Q->Z; /* the curve arith formula */ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t0, X); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t1, Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t2, Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, t2, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X, Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(Y3, X3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, Y3, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, T3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, t0, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t2, Y3, t3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t3, t0, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, Z3, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, Z3, t3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, t2, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y3, t3); } /*- * R := Q + P where R and Q are projective, P affine. * R and Q same pointers OK * R and P same pointers not OK * Autogenerated: op3/add_mixed_ed_eone.op3 * https://hyperelliptic.org/EFD/g1p/auto-code/twisted/extended/addition/madd-2008-hwcd.op3 * ASSERT: e = 1 */ static void point_add_mixed(pt_prj_t *R, const pt_prj_t *Q, const pt_aff_t *P) { /* temporary variables */ fe_t t0, t1, t2, t3; /* constants */ const limb_t *d = const_d; /* set pointers for Edwards curve arith */ const limb_t *X1 = Q->X; const limb_t *Y1 = Q->Y; const limb_t *T1 = Q->T; const limb_t *Z1 = Q->Z; const limb_t *X2 = P->X; const limb_t *Y2 = P->Y; const limb_t *T2 = P->T; limb_t *X3 = R->X; limb_t *Y3 = R->Y; limb_t *T3 = R->T; limb_t *Z3 = R->Z; /* the curve arith formula */ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t0, X1, X2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, Y1, Y2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, d, T2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, T1, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X1, Y1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, X2, Y2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t3, T3, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, t3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, Z1, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, Z1, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, t1, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Z3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, t3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, T3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Z3, t3); } /*- * R := Q + P all projective. * R and Q same pointers OK * R and P same pointers not OK * Autogenerated: op3/add_proj_ed_eone.op3 * https://hyperelliptic.org/EFD/g1p/auto-code/twisted/extended/addition/add-2008-hwcd.op3 * ASSERT: e = 1 */ static void point_add_proj(pt_prj_t *R, const pt_prj_t *Q, const pt_prj_t *P) { /* temporary variables */ fe_t t0, t1, t2, t3; /* constants */ const limb_t *d = const_d; /* set pointers for Edwards curve arith */ const limb_t *X1 = Q->X; const limb_t *Y1 = Q->Y; const limb_t *T1 = Q->T; const limb_t *Z1 = Q->Z; const limb_t *X2 = P->X; const limb_t *Y2 = P->Y; const limb_t *T2 = P->T; const limb_t *Z2 = P->Z; limb_t *X3 = R->X; limb_t *Y3 = R->Y; limb_t *T3 = R->T; limb_t *Z3 = R->Z; /* the curve arith formula */ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t0, X1, X2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, Y1, Y2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, d, T2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, T1, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t3, Z1, Z2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X1, Y1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, X2, Y2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, T3, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, Z3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, t3, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, t3, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, t1, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Z3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, t3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, T3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Z3, t3); } /*- * from P projective Edwards to Q projective legacy: Q=P OK * Autogenerated: op3/edwards2legacy_gost.op3 * https://tools.ietf.org/html/rfc7836#section-5.2 */ static void point_edwards2legacy(pt_prj_t *Q, const pt_prj_t *P) { /* temporary variables */ fe_t t0; /* constants */ const limb_t *T = const_T; const limb_t *S = const_S; const limb_t *X1 = P->X; const limb_t *Y1 = P->Y; const limb_t *Z1 = P->Z; limb_t *X3 = Q->X; limb_t *Y3 = Q->Y; limb_t *T3 = Q->T; limb_t *Z3 = Q->Z; /* the curve arith formula */ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(T3, Z1, Y1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t0, Z1, Y1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, S, T3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Z1, T3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, X1, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t0, t0, T); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t0, T3, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, X1, t0); } /*- * from P affine legacy to Q projective Edwards: Q=P not OK * Autogenerated: op3/legacy2edwards_gost.op3 * https://tools.ietf.org/html/rfc7836#section-5.2 */ static void point_legacy2edwards(pt_prj_t *Q, const pt_aff_t *P) { /* constants */ const limb_t *T = const_T; const limb_t *S = const_S; const limb_t *X1 = P->X; const limb_t *Y1 = P->Y; limb_t *X3 = Q->X; limb_t *Y3 = Q->Y; limb_t *T3 = Q->T; limb_t *Z3 = Q->Z; /* the curve arith formula */ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, X1, T); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, T3, S); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Y1, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, T3, S); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y1, T3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, X3, Z3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y3, Z3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(Z3, Z3); } /* constants */ #define RADIX 5 #define DRADIX (1 << RADIX) #define DRADIX_WNAF ((DRADIX) << 1) /*- * precomp for wnaf scalar multiplication: * precomp[0] = 1P * precomp[1] = 3P * precomp[2] = 5P * precomp[3] = 7P * precomp[4] = 9P * ... */ static void precomp_wnaf(pt_prj_t precomp[DRADIX / 2], const pt_aff_t *P) { int i; /* move from legacy affine to Edwards projective */ point_legacy2edwards(&precomp[0], P); point_double(&precomp[DRADIX / 2 - 1], &precomp[0]); for (i = 1; i < DRADIX / 2; i++) point_add_proj(&precomp[i], &precomp[DRADIX / 2 - 1], &precomp[i - 1]); } /* fetch a scalar bit */ static int scalar_get_bit(const unsigned char in[64], int idx) { int widx, rshift; widx = idx >> 3; rshift = idx & 0x7; if (idx < 0 || widx >= 64) return 0; return (in[widx] >> rshift) & 0x1; } /*- * Compute "regular" wnaf representation of a scalar. * See "Exponent Recoding and Regular Exponentiation Algorithms", * Tunstall et al., AfricaCrypt 2009, Alg 6. * It forces an odd scalar and outputs digits in * {\pm 1, \pm 3, \pm 5, \pm 7, \pm 9, ...} * i.e. signed odd digits with _no zeroes_ -- that makes it "regular". */ static void scalar_rwnaf(int8_t out[103], const unsigned char in[64]) { int i; int8_t window, d; window = (in[0] & (DRADIX_WNAF - 1)) | 1; for (i = 0; i < 102; i++) { d = (window & (DRADIX_WNAF - 1)) - DRADIX; out[i] = d; window = (window - d) >> RADIX; window += scalar_get_bit(in, (i + 1) * RADIX + 1) << 1; window += scalar_get_bit(in, (i + 1) * RADIX + 2) << 2; window += scalar_get_bit(in, (i + 1) * RADIX + 3) << 3; window += scalar_get_bit(in, (i + 1) * RADIX + 4) << 4; window += scalar_get_bit(in, (i + 1) * RADIX + 5) << 5; } out[i] = window; } /*- * Compute "textbook" wnaf representation of a scalar. * NB: not constant time */ static void scalar_wnaf(int8_t out[513], const unsigned char in[64]) { int i; int8_t window, d; window = in[0] & (DRADIX_WNAF - 1); for (i = 0; i < 513; i++) { d = 0; if ((window & 1) && ((d = window & (DRADIX_WNAF - 1)) & DRADIX)) d -= DRADIX_WNAF; out[i] = d; window = (window - d) >> 1; window += scalar_get_bit(in, i + 1 + RADIX) << RADIX; } } /*- * Simultaneous scalar multiplication: interleaved "textbook" wnaf. * NB: not constant time */ static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[64], const unsigned char b[64], const pt_aff_t *P) { int i, d, is_neg, is_inf = 1, flipped = 0; int8_t anaf[513] = {0}; int8_t bnaf[513] = {0}; pt_prj_t Q = {0}; pt_prj_t precomp[DRADIX / 2]; precomp_wnaf(precomp, P); scalar_wnaf(anaf, a); scalar_wnaf(bnaf, b); for (i = 512; i >= 0; i--) { if (!is_inf) point_double(&Q, &Q); if ((d = bnaf[i])) { if ((is_neg = d < 0) != flipped) { fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); flipped ^= 1; } d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1; if (is_inf) { /* initialize accumulator */ fe_copy(Q.X, &precomp[d].X); fe_copy(Q.Y, &precomp[d].Y); fe_copy(Q.T, &precomp[d].T); fe_copy(Q.Z, &precomp[d].Z); is_inf = 0; } else point_add_proj(&Q, &Q, &precomp[d]); } if ((d = anaf[i])) { if ((is_neg = d < 0) != flipped) { fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); flipped ^= 1; } d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1; if (is_inf) { /* initialize accumulator */ fe_copy(Q.X, &lut_cmb[0][d].X); fe_copy(Q.Y, &lut_cmb[0][d].Y); fe_copy(Q.T, &lut_cmb[0][d].T); fe_copy(Q.Z, const_one); is_inf = 0; } else point_add_mixed(&Q, &Q, &lut_cmb[0][d]); } } if (is_inf) { /* initialize accumulator to inf: all-zero scalars */ fe_set_zero(Q.X); fe_copy(Q.Y, const_one); fe_set_zero(Q.T); fe_copy(Q.Z, const_one); } if (flipped) { /* correct sign */ fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); } /* move from Edwards projective to legacy projective */ point_edwards2legacy(&Q, &Q); /* convert to affine -- NB depends on coordinate system */ fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); } /*- * Variable point scalar multiplication with "regular" wnaf. */ static void var_smul_rwnaf(pt_aff_t *out, const unsigned char scalar[64], const pt_aff_t *P) { int i, j, d, diff, is_neg; int8_t rnaf[103] = {0}; pt_prj_t Q = {0}, lut = {0}; pt_prj_t precomp[DRADIX / 2]; precomp_wnaf(precomp, P); scalar_rwnaf(rnaf, scalar); #if defined(_MSC_VER) /* result still unsigned: yes we know */ #pragma warning(push) #pragma warning(disable : 4146) #endif /* initialize accumulator to high digit */ d = (rnaf[102] - 1) >> 1; for (j = 0; j < DRADIX / 2; j++) { diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, diff, Q.X, precomp[j].X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, diff, Q.Y, precomp[j].Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, diff, Q.T, precomp[j].T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, diff, Q.Z, precomp[j].Z); } for (i = 101; i >= 0; i--) { for (j = 0; j < RADIX; j++) point_double(&Q, &Q); d = rnaf[i]; /* is_neg = (d < 0) ? 1 : 0 */ is_neg = (d >> (8 * sizeof(int) - 1)) & 1; /* d = abs(d) */ d = (d ^ -is_neg) + is_neg; d = (d - 1) >> 1; for (j = 0; j < DRADIX / 2; j++) { diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.X, diff, lut.X, precomp[j].X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.Y, diff, lut.Y, precomp[j].Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.T, diff, lut.T, precomp[j].T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.Z, diff, lut.Z, precomp[j].Z); } /* negate lut point if digit is negative */ fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->X, lut.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->T, lut.T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.X, is_neg, lut.X, out->X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.T, is_neg, lut.T, out->T); point_add_proj(&Q, &Q, &lut); } #if defined(_MSC_VER) #pragma warning(pop) #endif /* conditionally subtract P if the scalar was even */ fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.X, precomp[0].X); fe_copy(lut.Y, precomp[0].Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.T, precomp[0].T); fe_copy(lut.Z, precomp[0].Z); point_add_proj(&lut, &lut, &Q); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, scalar[0] & 1, lut.X, Q.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, scalar[0] & 1, lut.Y, Q.Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, scalar[0] & 1, lut.T, Q.T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, scalar[0] & 1, lut.Z, Q.Z); point_double(&Q, &Q); point_double(&Q, &Q); /* move from Edwards projective to legacy projective */ point_edwards2legacy(&Q, &Q); /* convert to affine -- NB depends on coordinate system */ fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); } /*- * Fixed scalar multiplication: comb with interleaving. */ static void fixed_smul_cmb(pt_aff_t *out, const unsigned char scalar[64]) { int i, j, k, d, diff, is_neg = 0; int8_t rnaf[103] = {0}; pt_prj_t Q = {0}, R = {0}; pt_aff_t lut = {0}; scalar_rwnaf(rnaf, scalar); /* initalize accumulator to inf */ fe_set_zero(Q.X); fe_copy(Q.Y, const_one); fe_set_zero(Q.T); fe_copy(Q.Z, const_one); #if defined(_MSC_VER) /* result still unsigned: yes we know */ #pragma warning(push) #pragma warning(disable : 4146) #endif for (i = 14; i >= 0; i--) { for (j = 0; i != 14 && j < RADIX; j++) point_double(&Q, &Q); for (j = 0; j < 8; j++) { if (j * 15 + i > 102) continue; d = rnaf[j * 15 + i]; /* is_neg = (d < 0) ? 1 : 0 */ is_neg = (d >> (8 * sizeof(int) - 1)) & 1; /* d = abs(d) */ d = (d ^ -is_neg) + is_neg; d = (d - 1) >> 1; for (k = 0; k < DRADIX / 2; k++) { diff = (1 - (-(d ^ k) >> (8 * sizeof(int) - 1))) & 1; fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.X, diff, lut.X, lut_cmb[j][k].X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.Y, diff, lut.Y, lut_cmb[j][k].Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.T, diff, lut.T, lut_cmb[j][k].T); } /* negate lut point if digit is negative */ fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->X, lut.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->T, lut.T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.X, is_neg, lut.X, out->X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.T, is_neg, lut.T, out->T); point_add_mixed(&Q, &Q, &lut); } } #if defined(_MSC_VER) #pragma warning(pop) #endif /* conditionally subtract P if the scalar was even */ fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.X, lut_cmb[0][0].X); fe_copy(lut.Y, lut_cmb[0][0].Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.T, lut_cmb[0][0].T); point_add_mixed(&R, &Q, &lut); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, scalar[0] & 1, R.X, Q.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, scalar[0] & 1, R.Y, Q.Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, scalar[0] & 1, R.T, Q.T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, scalar[0] & 1, R.Z, Q.Z); /* move from Edwards projective to legacy projective */ point_edwards2legacy(&Q, &Q); /* convert to affine -- NB depends on coordinate system */ fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); } /*- * Wrapper: simultaneous scalar mutiplication. * outx, outy := a * G + b * P * where P = (inx, iny). * Everything is LE byte ordering. */ static void point_mul_two(unsigned char outx[64], unsigned char outy[64], const unsigned char a[64], const unsigned char b[64], const unsigned char inx[64], const unsigned char iny[64]) { pt_aff_t P; fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.X, inx); fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.Y, iny); /* simultaneous scalar multiplication */ var_smul_wnaf_two(&P, a, b, &P); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); } /*- * Wrapper: fixed scalar mutiplication. * outx, outy := scalar * G * Everything is LE byte ordering. */ static void point_mul_g(unsigned char outx[64], unsigned char outy[64], const unsigned char scalar[64]) { pt_aff_t P; /* fixed scmul function */ fixed_smul_cmb(&P, scalar); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); } /*- * Wrapper: variable point scalar mutiplication. * outx, outy := scalar * P * where P = (inx, iny). * Everything is LE byte ordering. */ static void point_mul(unsigned char outx[64], unsigned char outy[64], const unsigned char scalar[64], const unsigned char inx[64], const unsigned char iny[64]) { pt_aff_t P; fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.X, inx); fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.Y, iny); /* var scmul function */ var_smul_rwnaf(&P, scalar, &P); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); } #include /* the zero field element */ static const unsigned char const_zb[64] = {0}; /*- * An OpenSSL wrapper for simultaneous scalar multiplication. * r := n * G + m * q */ int point_mul_two_id_tc26_gost_3410_2012_512_paramSetC( const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx) { int ret = 0; unsigned char b_x[64]; unsigned char b_y[64]; unsigned char b_n[64]; unsigned char b_m[64]; BIGNUM *x = NULL, *y = NULL; BN_CTX_start(ctx); x = BN_CTX_get(ctx); if ((y = BN_CTX_get(ctx)) == NULL /* pull out coords as bytes */ || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) || BN_bn2lebinpad(x, b_x, 64) != 64 || BN_bn2lebinpad(y, b_y, 64) != 64 || BN_bn2lebinpad(n, b_n, 64) != 64 || BN_bn2lebinpad(m, b_m, 64) != 64) goto err; /* do the simultaneous scalar multiplication */ point_mul_two(b_x, b_y, b_n, b_m, b_x, b_y); /* check for infinity */ if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && CRYPTO_memcmp(const_zb, b_y, 64) == 0) { if (!EC_POINT_set_to_infinity(group, r)) goto err; } else { /* otherwise, pack the bytes into the result */ if (BN_lebin2bn(b_x, 64, x) == NULL || BN_lebin2bn(b_y, 64, y) == NULL || !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) goto err; } ret = 1; err: BN_CTX_end(ctx); return ret; } /*- * An OpenSSL wrapper for variable point scalar multiplication. * r := m * q */ int point_mul_id_tc26_gost_3410_2012_512_paramSetC(const EC_GROUP *group, EC_POINT *r, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx) { int ret = 0; unsigned char b_x[64]; unsigned char b_y[64]; unsigned char b_m[64]; BIGNUM *x = NULL, *y = NULL; BN_CTX_start(ctx); x = BN_CTX_get(ctx); if ((y = BN_CTX_get(ctx)) == NULL /* pull out coords as bytes */ || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) || BN_bn2lebinpad(x, b_x, 64) != 64 || BN_bn2lebinpad(y, b_y, 64) != 64 || BN_bn2lebinpad(m, b_m, 64) != 64) goto err; /* do the variable scalar multiplication */ point_mul(b_x, b_y, b_m, b_x, b_y); /* check for infinity */ if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && CRYPTO_memcmp(const_zb, b_y, 64) == 0) { if (!EC_POINT_set_to_infinity(group, r)) goto err; } else { /* otherwise, pack the bytes into the result */ if (BN_lebin2bn(b_x, 64, x) == NULL || BN_lebin2bn(b_y, 64, y) == NULL || !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) goto err; } ret = 1; err: BN_CTX_end(ctx); return ret; } /*- * An OpenSSL wrapper for fixed scalar multiplication. * r := n * G */ int point_mul_g_id_tc26_gost_3410_2012_512_paramSetC(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, BN_CTX *ctx) { int ret = 0; unsigned char b_x[64]; unsigned char b_y[64]; unsigned char b_n[64]; BIGNUM *x = NULL, *y = NULL; BN_CTX_start(ctx); x = BN_CTX_get(ctx); if ((y = BN_CTX_get(ctx)) == NULL || BN_bn2lebinpad(n, b_n, 64) != 64) goto err; /* do the fixed scalar multiplication */ point_mul_g(b_x, b_y, b_n); /* check for infinity */ if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && CRYPTO_memcmp(const_zb, b_y, 64) == 0) { if (!EC_POINT_set_to_infinity(group, r)) goto err; } else { /* otherwise, pack the bytes into the result */ if (BN_lebin2bn(b_x, 64, x) == NULL || BN_lebin2bn(b_y, 64, y) == NULL || !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) goto err; } ret = 1; err: BN_CTX_end(ctx); return ret; } #else /* __SIZEOF_INT128__ */ #include #include #define LIMB_BITS 32 #define LIMB_CNT 23 /* Field elements */ typedef uint32_t fe_t[LIMB_CNT]; typedef uint32_t limb_t; #ifdef OPENSSL_NO_ASM #define FIAT_ID_TC26_GOST_3410_2012_512_PARAMSETC_NO_ASM #endif #define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) #define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) #define fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(c, a, b) \ fiat_id_tc26_gost_3410_2012_512_paramSetC_add(c, a, b); \ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry(c, c) #define fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(c, a, b) \ fiat_id_tc26_gost_3410_2012_512_paramSetC_sub(c, a, b); \ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry(c, c) /* Projective points */ typedef struct { fe_t X; fe_t Y; fe_t T; fe_t Z; } pt_prj_t; /* Affine points */ typedef struct { fe_t X; fe_t Y; fe_t T; } pt_aff_t; /* BEGIN verbatim fiat code https://github.com/mit-plv/fiat-crypto */ /*- * MIT License * * Copyright (c) 2020 the fiat-crypto authors (see the AUTHORS file) * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal * in the Software without restriction, including without limitation the rights * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * copies of the Software, and to permit persons to whom the Software is * furnished to do so, subject to the following conditions: * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ /* Autogenerated: unsaturated_solinas --static --use-value-barrier id_tc26_gost_3410_2012_512_paramSetC 32 '(auto)' '2^512 - 569' */ /* curve description: id_tc26_gost_3410_2012_512_paramSetC */ /* machine_wordsize = 32 (from "32") */ /* requested operations: (all) */ /* n = 23 (from "(auto)") */ /* s-c = 2^512 - [(1, 569)] (from "2^512 - 569") */ /* tight_bounds_multiplier = 1 (from "") */ /* */ /* Computed values: */ /* carry_chain = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 0, 1] */ /* eval z = z[0] + (z[1] << 23) + (z[2] << 45) + (z[3] << 67) + (z[4] << 90) + (z[5] << 112) + (z[6] << 134) + (z[7] << 156) + (z[8] << 179) + (z[9] << 201) + (z[10] << 223) + (z[11] << 245) + (z[12] << 0x10c) + (z[13] << 0x122) + (z[14] << 0x138) + (z[15] << 0x14e) + (z[16] << 0x165) + (z[17] << 0x17b) + (z[18] << 0x191) + (z[19] << 0x1a7) + (z[20] << 0x1be) + (z[21] << 0x1d4) + (z[22] << 0x1ea) */ /* bytes_eval z = z[0] + (z[1] << 8) + (z[2] << 16) + (z[3] << 24) + (z[4] << 32) + (z[5] << 40) + (z[6] << 48) + (z[7] << 56) + (z[8] << 64) + (z[9] << 72) + (z[10] << 80) + (z[11] << 88) + (z[12] << 96) + (z[13] << 104) + (z[14] << 112) + (z[15] << 120) + (z[16] << 128) + (z[17] << 136) + (z[18] << 144) + (z[19] << 152) + (z[20] << 160) + (z[21] << 168) + (z[22] << 176) + (z[23] << 184) + (z[24] << 192) + (z[25] << 200) + (z[26] << 208) + (z[27] << 216) + (z[28] << 224) + (z[29] << 232) + (z[30] << 240) + (z[31] << 248) + (z[32] << 256) + (z[33] << 0x108) + (z[34] << 0x110) + (z[35] << 0x118) + (z[36] << 0x120) + (z[37] << 0x128) + (z[38] << 0x130) + (z[39] << 0x138) + (z[40] << 0x140) + (z[41] << 0x148) + (z[42] << 0x150) + (z[43] << 0x158) + (z[44] << 0x160) + (z[45] << 0x168) + (z[46] << 0x170) + (z[47] << 0x178) + (z[48] << 0x180) + (z[49] << 0x188) + (z[50] << 0x190) + (z[51] << 0x198) + (z[52] << 0x1a0) + (z[53] << 0x1a8) + (z[54] << 0x1b0) + (z[55] << 0x1b8) + (z[56] << 0x1c0) + (z[57] << 0x1c8) + (z[58] << 0x1d0) + (z[59] << 0x1d8) + (z[60] << 0x1e0) + (z[61] << 0x1e8) + (z[62] << 0x1f0) + (z[63] << 0x1f8) */ /* balance = [0xfffb8e, 0x7ffffe, 0x7ffffe, 0xfffffe, 0x7ffffe, 0x7ffffe, 0x7ffffe, 0xfffffe, 0x7ffffe, 0x7ffffe, 0x7ffffe, 0xfffffe, 0x7ffffe, 0x7ffffe, 0x7ffffe, 0xfffffe, 0x7ffffe, 0x7ffffe, 0x7ffffe, 0xfffffe, 0x7ffffe, 0x7ffffe, 0x7ffffe] */ #include typedef unsigned char fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1; typedef signed char fiat_id_tc26_gost_3410_2012_512_paramSetC_int1; #if (-1 & 3) != 3 #error "This code only works on a two's complement system" #endif #if !defined(FIAT_ID_TC26_GOST_3410_2012_512_PARAMSETC_NO_ASM) && \ (defined(__GNUC__) || defined(__clang__)) static __inline__ uint32_t fiat_id_tc26_gost_3410_2012_512_paramSetC_value_barrier_u32(uint32_t a) { __asm__("" : "+r"(a) : /* no inputs */); return a; } #else #define fiat_id_tc26_gost_3410_2012_512_paramSetC_value_barrier_u32(x) (x) #endif /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22 is an addition with carry. * Postconditions: * out1 = (arg1 + arg2 + arg3) mod 2^22 * out2 = ⌊(arg1 + arg2 + arg3) / 2^22⌋ * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [0x0 ~> 0x3fffff] * arg3: [0x0 ~> 0x3fffff] * Output Bounds: * out1: [0x0 ~> 0x3fffff] * out2: [0x0 ~> 0x1] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint32_t arg2, uint32_t arg3) { uint32_t x1; uint32_t x2; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x3; x1 = ((arg1 + arg2) + arg3); x2 = (x1 & UINT32_C(0x3fffff)); x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x1 >> 22); *out1 = x2; *out2 = x3; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22 is a subtraction with borrow. * Postconditions: * out1 = (-arg1 + arg2 + -arg3) mod 2^22 * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^22⌋ * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [0x0 ~> 0x3fffff] * arg3: [0x0 ~> 0x3fffff] * Output Bounds: * out1: [0x0 ~> 0x3fffff] * out2: [0x0 ~> 0x1] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint32_t arg2, uint32_t arg3) { int32_t x1; fiat_id_tc26_gost_3410_2012_512_paramSetC_int1 x2; uint32_t x3; x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(x1 >> 22); x3 = (x1 & UINT32_C(0x3fffff)); *out1 = x3; *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(0x0 - x2); } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23 is an addition with carry. * Postconditions: * out1 = (arg1 + arg2 + arg3) mod 2^23 * out2 = ⌊(arg1 + arg2 + arg3) / 2^23⌋ * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [0x0 ~> 0x7fffff] * arg3: [0x0 ~> 0x7fffff] * Output Bounds: * out1: [0x0 ~> 0x7fffff] * out2: [0x0 ~> 0x1] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint32_t arg2, uint32_t arg3) { uint32_t x1; uint32_t x2; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x3; x1 = ((arg1 + arg2) + arg3); x2 = (x1 & UINT32_C(0x7fffff)); x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x1 >> 23); *out1 = x2; *out2 = x3; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23 is a subtraction with borrow. * Postconditions: * out1 = (-arg1 + arg2 + -arg3) mod 2^23 * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^23⌋ * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [0x0 ~> 0x7fffff] * arg3: [0x0 ~> 0x7fffff] * Output Bounds: * out1: [0x0 ~> 0x7fffff] * out2: [0x0 ~> 0x1] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 *out2, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint32_t arg2, uint32_t arg3) { int32_t x1; fiat_id_tc26_gost_3410_2012_512_paramSetC_int1 x2; uint32_t x3; x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(x1 >> 23); x3 = (x1 & UINT32_C(0x7fffff)); *out1 = x3; *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(0x0 - x2); } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32 is a single-word conditional move. * Postconditions: * out1 = (if arg1 = 0 then arg2 else arg3) * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [0x0 ~> 0xffffffff] * arg3: [0x0 ~> 0xffffffff] * Output Bounds: * out1: [0x0 ~> 0xffffffff] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, uint32_t arg2, uint32_t arg3) { fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x1; uint32_t x2; uint32_t x3; x1 = (!(!arg1)); x2 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_int1)(0x0 - x1) & UINT32_C(0xffffffff)); x3 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_value_barrier_u32(x2) & arg3) | (fiat_id_tc26_gost_3410_2012_512_paramSetC_value_barrier_u32((~x2)) & arg2)); *out1 = x3; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul multiplies two field elements and reduces the result. * Postconditions: * eval out1 mod m = (eval arg1 * eval arg2) mod m * * Input Bounds: * arg1: [[0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000]] * arg2: [[0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000]] * Output Bounds: * out1: [[0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul( uint32_t out1[23], const uint32_t arg1[23], const uint32_t arg2[23]) { uint64_t x1; uint64_t x2; uint64_t x3; uint64_t x4; uint64_t x5; uint64_t x6; uint64_t x7; uint64_t x8; uint64_t x9; uint64_t x10; uint64_t x11; uint64_t x12; uint64_t x13; uint64_t x14; uint64_t x15; uint64_t x16; uint64_t x17; uint64_t x18; uint64_t x19; uint64_t x20; uint64_t x21; uint64_t x22; uint64_t x23; uint64_t x24; uint64_t x25; uint64_t x26; uint64_t x27; uint64_t x28; uint64_t x29; uint64_t x30; uint64_t x31; uint64_t x32; uint64_t x33; uint64_t x34; uint64_t x35; uint64_t x36; uint64_t x37; uint64_t x38; uint64_t x39; uint64_t x40; uint64_t x41; uint64_t x42; uint64_t x43; uint64_t x44; uint64_t x45; uint64_t x46; uint64_t x47; uint64_t x48; uint64_t x49; uint64_t x50; uint64_t x51; uint64_t x52; uint64_t x53; uint64_t x54; uint64_t x55; uint64_t x56; uint64_t x57; uint64_t x58; uint64_t x59; uint64_t x60; uint64_t x61; uint64_t x62; uint64_t x63; uint64_t x64; uint64_t x65; uint64_t x66; uint64_t x67; uint64_t x68; uint64_t x69; uint64_t x70; uint64_t x71; uint64_t x72; uint64_t x73; uint64_t x74; uint64_t x75; uint64_t x76; uint64_t x77; uint64_t x78; uint64_t x79; uint64_t x80; uint64_t x81; uint64_t x82; uint64_t x83; uint64_t x84; uint64_t x85; uint64_t x86; uint64_t x87; uint64_t x88; uint64_t x89; uint64_t x90; uint64_t x91; uint64_t x92; uint64_t x93; uint64_t x94; uint64_t x95; uint64_t x96; uint64_t x97; uint64_t x98; uint64_t x99; uint64_t x100; uint64_t x101; uint64_t x102; uint64_t x103; uint64_t x104; uint64_t x105; uint64_t x106; uint64_t x107; uint64_t x108; uint64_t x109; uint64_t x110; uint64_t x111; uint64_t x112; uint64_t x113; uint64_t x114; uint64_t x115; uint64_t x116; uint64_t x117; uint64_t x118; uint64_t x119; uint64_t x120; uint64_t x121; uint64_t x122; uint64_t x123; uint64_t x124; uint64_t x125; uint64_t x126; uint64_t x127; uint64_t x128; uint64_t x129; uint64_t x130; uint64_t x131; uint64_t x132; uint64_t x133; uint64_t x134; uint64_t x135; uint64_t x136; uint64_t x137; uint64_t x138; uint64_t x139; uint64_t x140; uint64_t x141; uint64_t x142; uint64_t x143; uint64_t x144; uint64_t x145; uint64_t x146; uint64_t x147; uint64_t x148; uint64_t x149; uint64_t x150; uint64_t x151; uint64_t x152; uint64_t x153; uint64_t x154; uint64_t x155; uint64_t x156; uint64_t x157; uint64_t x158; uint64_t x159; uint64_t x160; uint64_t x161; uint64_t x162; uint64_t x163; uint64_t x164; uint64_t x165; uint64_t x166; uint64_t x167; uint64_t x168; uint64_t x169; uint64_t x170; uint64_t x171; uint64_t x172; uint64_t x173; uint64_t x174; uint64_t x175; uint64_t x176; uint64_t x177; uint64_t x178; uint64_t x179; uint64_t x180; uint64_t x181; uint64_t x182; uint64_t x183; uint64_t x184; uint64_t x185; uint64_t x186; uint64_t x187; uint64_t x188; uint64_t x189; uint64_t x190; uint64_t x191; uint64_t x192; uint64_t x193; uint64_t x194; uint64_t x195; uint64_t x196; uint64_t x197; uint64_t x198; uint64_t x199; uint64_t x200; uint64_t x201; uint64_t x202; uint64_t x203; uint64_t x204; uint64_t x205; uint64_t x206; uint64_t x207; uint64_t x208; uint64_t x209; uint64_t x210; uint64_t x211; uint64_t x212; uint64_t x213; uint64_t x214; uint64_t x215; uint64_t x216; uint64_t x217; uint64_t x218; uint64_t x219; uint64_t x220; uint64_t x221; uint64_t x222; uint64_t x223; uint64_t x224; uint64_t x225; uint64_t x226; uint64_t x227; uint64_t x228; uint64_t x229; uint64_t x230; uint64_t x231; uint64_t x232; uint64_t x233; uint64_t x234; uint64_t x235; uint64_t x236; uint64_t x237; uint64_t x238; uint64_t x239; uint64_t x240; uint64_t x241; uint64_t x242; uint64_t x243; uint64_t x244; uint64_t x245; uint64_t x246; uint64_t x247; uint64_t x248; uint64_t x249; uint64_t x250; uint64_t x251; uint64_t x252; uint64_t x253; uint64_t x254; uint64_t x255; uint64_t x256; uint64_t x257; uint64_t x258; uint64_t x259; uint64_t x260; uint64_t x261; uint64_t x262; uint64_t x263; uint64_t x264; uint64_t x265; uint64_t x266; uint64_t x267; uint64_t x268; uint64_t x269; uint64_t x270; uint64_t x271; uint64_t x272; uint64_t x273; uint64_t x274; uint64_t x275; uint64_t x276; uint64_t x277; uint64_t x278; uint64_t x279; uint64_t x280; uint64_t x281; uint64_t x282; uint64_t x283; uint64_t x284; uint64_t x285; uint64_t x286; uint64_t x287; uint64_t x288; uint64_t x289; uint64_t x290; uint64_t x291; uint64_t x292; uint64_t x293; uint64_t x294; uint64_t x295; uint64_t x296; uint64_t x297; uint64_t x298; uint64_t x299; uint64_t x300; uint64_t x301; uint64_t x302; uint64_t x303; uint64_t x304; uint64_t x305; uint64_t x306; uint64_t x307; uint64_t x308; uint64_t x309; uint64_t x310; uint64_t x311; uint64_t x312; uint64_t x313; uint64_t x314; uint64_t x315; uint64_t x316; uint64_t x317; uint64_t x318; uint64_t x319; uint64_t x320; uint64_t x321; uint64_t x322; uint64_t x323; uint64_t x324; uint64_t x325; uint64_t x326; uint64_t x327; uint64_t x328; uint64_t x329; uint64_t x330; uint64_t x331; uint64_t x332; uint64_t x333; uint64_t x334; uint64_t x335; uint64_t x336; uint64_t x337; uint64_t x338; uint64_t x339; uint64_t x340; uint64_t x341; uint64_t x342; uint64_t x343; uint64_t x344; uint64_t x345; uint64_t x346; uint64_t x347; uint64_t x348; uint64_t x349; uint64_t x350; uint64_t x351; uint64_t x352; uint64_t x353; uint64_t x354; uint64_t x355; uint64_t x356; uint64_t x357; uint64_t x358; uint64_t x359; uint64_t x360; uint64_t x361; uint64_t x362; uint64_t x363; uint64_t x364; uint64_t x365; uint64_t x366; uint64_t x367; uint64_t x368; uint64_t x369; uint64_t x370; uint64_t x371; uint64_t x372; uint64_t x373; uint64_t x374; uint64_t x375; uint64_t x376; uint64_t x377; uint64_t x378; uint64_t x379; uint64_t x380; uint64_t x381; uint64_t x382; uint64_t x383; uint64_t x384; uint64_t x385; uint64_t x386; uint64_t x387; uint64_t x388; uint64_t x389; uint64_t x390; uint64_t x391; uint64_t x392; uint64_t x393; uint64_t x394; uint64_t x395; uint64_t x396; uint64_t x397; uint64_t x398; uint64_t x399; uint64_t x400; uint64_t x401; uint64_t x402; uint64_t x403; uint64_t x404; uint64_t x405; uint64_t x406; uint64_t x407; uint64_t x408; uint64_t x409; uint64_t x410; uint64_t x411; uint64_t x412; uint64_t x413; uint64_t x414; uint64_t x415; uint64_t x416; uint64_t x417; uint64_t x418; uint64_t x419; uint64_t x420; uint64_t x421; uint64_t x422; uint64_t x423; uint64_t x424; uint64_t x425; uint64_t x426; uint64_t x427; uint64_t x428; uint64_t x429; uint64_t x430; uint64_t x431; uint64_t x432; uint64_t x433; uint64_t x434; uint64_t x435; uint64_t x436; uint64_t x437; uint64_t x438; uint64_t x439; uint64_t x440; uint64_t x441; uint64_t x442; uint64_t x443; uint64_t x444; uint64_t x445; uint64_t x446; uint64_t x447; uint64_t x448; uint64_t x449; uint64_t x450; uint64_t x451; uint64_t x452; uint64_t x453; uint64_t x454; uint64_t x455; uint64_t x456; uint64_t x457; uint64_t x458; uint64_t x459; uint64_t x460; uint64_t x461; uint64_t x462; uint64_t x463; uint64_t x464; uint64_t x465; uint64_t x466; uint64_t x467; uint64_t x468; uint64_t x469; uint64_t x470; uint64_t x471; uint64_t x472; uint64_t x473; uint64_t x474; uint64_t x475; uint64_t x476; uint64_t x477; uint64_t x478; uint64_t x479; uint64_t x480; uint64_t x481; uint64_t x482; uint64_t x483; uint64_t x484; uint64_t x485; uint64_t x486; uint64_t x487; uint64_t x488; uint64_t x489; uint64_t x490; uint64_t x491; uint64_t x492; uint64_t x493; uint64_t x494; uint64_t x495; uint64_t x496; uint64_t x497; uint64_t x498; uint64_t x499; uint64_t x500; uint64_t x501; uint64_t x502; uint64_t x503; uint64_t x504; uint64_t x505; uint64_t x506; uint64_t x507; uint64_t x508; uint64_t x509; uint64_t x510; uint64_t x511; uint64_t x512; uint64_t x513; uint64_t x514; uint64_t x515; uint64_t x516; uint64_t x517; uint64_t x518; uint64_t x519; uint64_t x520; uint64_t x521; uint64_t x522; uint64_t x523; uint64_t x524; uint64_t x525; uint64_t x526; uint64_t x527; uint64_t x528; uint64_t x529; uint64_t x530; uint64_t x531; uint32_t x532; uint64_t x533; uint64_t x534; uint64_t x535; uint64_t x536; uint64_t x537; uint64_t x538; uint64_t x539; uint64_t x540; uint64_t x541; uint64_t x542; uint64_t x543; uint64_t x544; uint64_t x545; uint64_t x546; uint64_t x547; uint64_t x548; uint64_t x549; uint64_t x550; uint64_t x551; uint64_t x552; uint64_t x553; uint64_t x554; uint64_t x555; uint64_t x556; uint32_t x557; uint64_t x558; uint64_t x559; uint32_t x560; uint64_t x561; uint64_t x562; uint32_t x563; uint64_t x564; uint64_t x565; uint32_t x566; uint64_t x567; uint64_t x568; uint32_t x569; uint64_t x570; uint64_t x571; uint32_t x572; uint64_t x573; uint64_t x574; uint32_t x575; uint64_t x576; uint64_t x577; uint32_t x578; uint64_t x579; uint64_t x580; uint32_t x581; uint64_t x582; uint64_t x583; uint32_t x584; uint64_t x585; uint64_t x586; uint32_t x587; uint64_t x588; uint64_t x589; uint32_t x590; uint64_t x591; uint64_t x592; uint32_t x593; uint64_t x594; uint64_t x595; uint32_t x596; uint64_t x597; uint64_t x598; uint32_t x599; uint64_t x600; uint64_t x601; uint32_t x602; uint64_t x603; uint64_t x604; uint32_t x605; uint64_t x606; uint64_t x607; uint32_t x608; uint64_t x609; uint64_t x610; uint32_t x611; uint64_t x612; uint64_t x613; uint32_t x614; uint64_t x615; uint64_t x616; uint32_t x617; uint64_t x618; uint32_t x619; uint32_t x620; uint64_t x621; uint64_t x622; uint32_t x623; uint32_t x624; uint32_t x625; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x626; uint32_t x627; uint32_t x628; x1 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[22]))); x2 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[21]))); x3 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[20])) * 0x2)); x4 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[19]))); x5 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[18]))); x6 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[17]))); x7 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[16])) * 0x2)); x8 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[15]))); x9 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[14]))); x10 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[13]))); x11 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[12])) * 0x2)); x12 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[11]))); x13 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[10]))); x14 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[9]))); x15 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[8])) * 0x2)); x16 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[7]))); x17 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[6]))); x18 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[5]))); x19 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[4])) * 0x2)); x20 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[3]))); x21 = (UINT16_C(0x239) * ((uint64_t)(arg1[22]) * (arg2[2]))); x22 = (UINT16_C(0x239) * (((uint64_t)(arg1[22]) * (arg2[1])) * 0x2)); x23 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[22]))); x24 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[21])) * 0x2)); x25 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[20])) * 0x2)); x26 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[19]))); x27 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[18]))); x28 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[17])) * 0x2)); x29 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[16])) * 0x2)); x30 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[15]))); x31 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[14]))); x32 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[13])) * 0x2)); x33 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[12])) * 0x2)); x34 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[11]))); x35 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[10]))); x36 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[9])) * 0x2)); x37 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[8])) * 0x2)); x38 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[7]))); x39 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[6]))); x40 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[5])) * 0x2)); x41 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[4])) * 0x2)); x42 = (UINT16_C(0x239) * ((uint64_t)(arg1[21]) * (arg2[3]))); x43 = (UINT16_C(0x239) * (((uint64_t)(arg1[21]) * (arg2[2])) * 0x2)); x44 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[22])) * 0x2)); x45 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[21])) * 0x2)); x46 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[20])) * 0x2)); x47 = (UINT16_C(0x239) * ((uint64_t)(arg1[20]) * (arg2[19]))); x48 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[18])) * 0x2)); x49 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[17])) * 0x2)); x50 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[16])) * 0x2)); x51 = (UINT16_C(0x239) * ((uint64_t)(arg1[20]) * (arg2[15]))); x52 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[14])) * 0x2)); x53 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[13])) * 0x2)); x54 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[12])) * 0x2)); x55 = (UINT16_C(0x239) * ((uint64_t)(arg1[20]) * (arg2[11]))); x56 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[10])) * 0x2)); x57 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[9])) * 0x2)); x58 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[8])) * 0x2)); x59 = (UINT16_C(0x239) * ((uint64_t)(arg1[20]) * (arg2[7]))); x60 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[6])) * 0x2)); x61 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[5])) * 0x2)); x62 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[4])) * 0x2)); x63 = (UINT16_C(0x239) * (((uint64_t)(arg1[20]) * (arg2[3])) * 0x2)); x64 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[22]))); x65 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[21]))); x66 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[20]))); x67 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[19]))); x68 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[18]))); x69 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[17]))); x70 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[16]))); x71 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[15]))); x72 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[14]))); x73 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[13]))); x74 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[12]))); x75 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[11]))); x76 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[10]))); x77 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[9]))); x78 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[8]))); x79 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[7]))); x80 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[6]))); x81 = (UINT16_C(0x239) * ((uint64_t)(arg1[19]) * (arg2[5]))); x82 = (UINT16_C(0x239) * (((uint64_t)(arg1[19]) * (arg2[4])) * 0x2)); x83 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[22]))); x84 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[21]))); x85 = (UINT16_C(0x239) * (((uint64_t)(arg1[18]) * (arg2[20])) * 0x2)); x86 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[19]))); x87 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[18]))); x88 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[17]))); x89 = (UINT16_C(0x239) * (((uint64_t)(arg1[18]) * (arg2[16])) * 0x2)); x90 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[15]))); x91 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[14]))); x92 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[13]))); x93 = (UINT16_C(0x239) * (((uint64_t)(arg1[18]) * (arg2[12])) * 0x2)); x94 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[11]))); x95 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[10]))); x96 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[9]))); x97 = (UINT16_C(0x239) * (((uint64_t)(arg1[18]) * (arg2[8])) * 0x2)); x98 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[7]))); x99 = (UINT16_C(0x239) * ((uint64_t)(arg1[18]) * (arg2[6]))); x100 = (UINT16_C(0x239) * (((uint64_t)(arg1[18]) * (arg2[5])) * 0x2)); x101 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[22]))); x102 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[21])) * 0x2)); x103 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[20])) * 0x2)); x104 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[19]))); x105 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[18]))); x106 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[17])) * 0x2)); x107 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[16])) * 0x2)); x108 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[15]))); x109 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[14]))); x110 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[13])) * 0x2)); x111 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[12])) * 0x2)); x112 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[11]))); x113 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[10]))); x114 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[9])) * 0x2)); x115 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[8])) * 0x2)); x116 = (UINT16_C(0x239) * ((uint64_t)(arg1[17]) * (arg2[7]))); x117 = (UINT16_C(0x239) * (((uint64_t)(arg1[17]) * (arg2[6])) * 0x2)); x118 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[22])) * 0x2)); x119 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[21])) * 0x2)); x120 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[20])) * 0x2)); x121 = (UINT16_C(0x239) * ((uint64_t)(arg1[16]) * (arg2[19]))); x122 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[18])) * 0x2)); x123 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[17])) * 0x2)); x124 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[16])) * 0x2)); x125 = (UINT16_C(0x239) * ((uint64_t)(arg1[16]) * (arg2[15]))); x126 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[14])) * 0x2)); x127 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[13])) * 0x2)); x128 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[12])) * 0x2)); x129 = (UINT16_C(0x239) * ((uint64_t)(arg1[16]) * (arg2[11]))); x130 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[10])) * 0x2)); x131 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[9])) * 0x2)); x132 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[8])) * 0x2)); x133 = (UINT16_C(0x239) * (((uint64_t)(arg1[16]) * (arg2[7])) * 0x2)); x134 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[22]))); x135 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[21]))); x136 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[20]))); x137 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[19]))); x138 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[18]))); x139 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[17]))); x140 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[16]))); x141 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[15]))); x142 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[14]))); x143 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[13]))); x144 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[12]))); x145 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[11]))); x146 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[10]))); x147 = (UINT16_C(0x239) * ((uint64_t)(arg1[15]) * (arg2[9]))); x148 = (UINT16_C(0x239) * (((uint64_t)(arg1[15]) * (arg2[8])) * 0x2)); x149 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[22]))); x150 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[21]))); x151 = (UINT16_C(0x239) * (((uint64_t)(arg1[14]) * (arg2[20])) * 0x2)); x152 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[19]))); x153 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[18]))); x154 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[17]))); x155 = (UINT16_C(0x239) * (((uint64_t)(arg1[14]) * (arg2[16])) * 0x2)); x156 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[15]))); x157 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[14]))); x158 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[13]))); x159 = (UINT16_C(0x239) * (((uint64_t)(arg1[14]) * (arg2[12])) * 0x2)); x160 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[11]))); x161 = (UINT16_C(0x239) * ((uint64_t)(arg1[14]) * (arg2[10]))); x162 = (UINT16_C(0x239) * (((uint64_t)(arg1[14]) * (arg2[9])) * 0x2)); x163 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[22]))); x164 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[21])) * 0x2)); x165 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[20])) * 0x2)); x166 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[19]))); x167 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[18]))); x168 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[17])) * 0x2)); x169 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[16])) * 0x2)); x170 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[15]))); x171 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[14]))); x172 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[13])) * 0x2)); x173 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[12])) * 0x2)); x174 = (UINT16_C(0x239) * ((uint64_t)(arg1[13]) * (arg2[11]))); x175 = (UINT16_C(0x239) * (((uint64_t)(arg1[13]) * (arg2[10])) * 0x2)); x176 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[22])) * 0x2)); x177 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[21])) * 0x2)); x178 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[20])) * 0x2)); x179 = (UINT16_C(0x239) * ((uint64_t)(arg1[12]) * (arg2[19]))); x180 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[18])) * 0x2)); x181 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[17])) * 0x2)); x182 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[16])) * 0x2)); x183 = (UINT16_C(0x239) * ((uint64_t)(arg1[12]) * (arg2[15]))); x184 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[14])) * 0x2)); x185 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[13])) * 0x2)); x186 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[12])) * 0x2)); x187 = (UINT16_C(0x239) * (((uint64_t)(arg1[12]) * (arg2[11])) * 0x2)); x188 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[22]))); x189 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[21]))); x190 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[20]))); x191 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[19]))); x192 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[18]))); x193 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[17]))); x194 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[16]))); x195 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[15]))); x196 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[14]))); x197 = (UINT16_C(0x239) * ((uint64_t)(arg1[11]) * (arg2[13]))); x198 = (UINT16_C(0x239) * (((uint64_t)(arg1[11]) * (arg2[12])) * 0x2)); x199 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[22]))); x200 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[21]))); x201 = (UINT16_C(0x239) * (((uint64_t)(arg1[10]) * (arg2[20])) * 0x2)); x202 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[19]))); x203 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[18]))); x204 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[17]))); x205 = (UINT16_C(0x239) * (((uint64_t)(arg1[10]) * (arg2[16])) * 0x2)); x206 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[15]))); x207 = (UINT16_C(0x239) * ((uint64_t)(arg1[10]) * (arg2[14]))); x208 = (UINT16_C(0x239) * (((uint64_t)(arg1[10]) * (arg2[13])) * 0x2)); x209 = (UINT16_C(0x239) * ((uint64_t)(arg1[9]) * (arg2[22]))); x210 = (UINT16_C(0x239) * (((uint64_t)(arg1[9]) * (arg2[21])) * 0x2)); x211 = (UINT16_C(0x239) * (((uint64_t)(arg1[9]) * (arg2[20])) * 0x2)); x212 = (UINT16_C(0x239) * ((uint64_t)(arg1[9]) * (arg2[19]))); x213 = (UINT16_C(0x239) * ((uint64_t)(arg1[9]) * (arg2[18]))); x214 = (UINT16_C(0x239) * (((uint64_t)(arg1[9]) * (arg2[17])) * 0x2)); x215 = (UINT16_C(0x239) * (((uint64_t)(arg1[9]) * (arg2[16])) * 0x2)); x216 = (UINT16_C(0x239) * ((uint64_t)(arg1[9]) * (arg2[15]))); x217 = (UINT16_C(0x239) * (((uint64_t)(arg1[9]) * (arg2[14])) * 0x2)); x218 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[22])) * 0x2)); x219 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[21])) * 0x2)); x220 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[20])) * 0x2)); x221 = (UINT16_C(0x239) * ((uint64_t)(arg1[8]) * (arg2[19]))); x222 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[18])) * 0x2)); x223 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[17])) * 0x2)); x224 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[16])) * 0x2)); x225 = (UINT16_C(0x239) * (((uint64_t)(arg1[8]) * (arg2[15])) * 0x2)); x226 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[22]))); x227 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[21]))); x228 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[20]))); x229 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[19]))); x230 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[18]))); x231 = (UINT16_C(0x239) * ((uint64_t)(arg1[7]) * (arg2[17]))); x232 = (UINT16_C(0x239) * (((uint64_t)(arg1[7]) * (arg2[16])) * 0x2)); x233 = (UINT16_C(0x239) * ((uint64_t)(arg1[6]) * (arg2[22]))); x234 = (UINT16_C(0x239) * ((uint64_t)(arg1[6]) * (arg2[21]))); x235 = (UINT16_C(0x239) * (((uint64_t)(arg1[6]) * (arg2[20])) * 0x2)); x236 = (UINT16_C(0x239) * ((uint64_t)(arg1[6]) * (arg2[19]))); x237 = (UINT16_C(0x239) * ((uint64_t)(arg1[6]) * (arg2[18]))); x238 = (UINT16_C(0x239) * (((uint64_t)(arg1[6]) * (arg2[17])) * 0x2)); x239 = (UINT16_C(0x239) * ((uint64_t)(arg1[5]) * (arg2[22]))); x240 = (UINT16_C(0x239) * (((uint64_t)(arg1[5]) * (arg2[21])) * 0x2)); x241 = (UINT16_C(0x239) * (((uint64_t)(arg1[5]) * (arg2[20])) * 0x2)); x242 = (UINT16_C(0x239) * ((uint64_t)(arg1[5]) * (arg2[19]))); x243 = (UINT16_C(0x239) * (((uint64_t)(arg1[5]) * (arg2[18])) * 0x2)); x244 = (UINT16_C(0x239) * (((uint64_t)(arg1[4]) * (arg2[22])) * 0x2)); x245 = (UINT16_C(0x239) * (((uint64_t)(arg1[4]) * (arg2[21])) * 0x2)); x246 = (UINT16_C(0x239) * (((uint64_t)(arg1[4]) * (arg2[20])) * 0x2)); x247 = (UINT16_C(0x239) * (((uint64_t)(arg1[4]) * (arg2[19])) * 0x2)); x248 = (UINT16_C(0x239) * ((uint64_t)(arg1[3]) * (arg2[22]))); x249 = (UINT16_C(0x239) * ((uint64_t)(arg1[3]) * (arg2[21]))); x250 = (UINT16_C(0x239) * (((uint64_t)(arg1[3]) * (arg2[20])) * 0x2)); x251 = (UINT16_C(0x239) * ((uint64_t)(arg1[2]) * (arg2[22]))); x252 = (UINT16_C(0x239) * (((uint64_t)(arg1[2]) * (arg2[21])) * 0x2)); x253 = (UINT16_C(0x239) * (((uint64_t)(arg1[1]) * (arg2[22])) * 0x2)); x254 = ((uint64_t)(arg1[22]) * (arg2[0])); x255 = ((uint64_t)(arg1[21]) * ((arg2[1]) * 0x2)); x256 = ((uint64_t)(arg1[21]) * (arg2[0])); x257 = ((uint64_t)(arg1[20]) * ((arg2[2]) * 0x2)); x258 = ((uint64_t)(arg1[20]) * ((arg2[1]) * 0x2)); x259 = ((uint64_t)(arg1[20]) * (arg2[0])); x260 = ((uint64_t)(arg1[19]) * (arg2[3])); x261 = ((uint64_t)(arg1[19]) * (arg2[2])); x262 = ((uint64_t)(arg1[19]) * (arg2[1])); x263 = ((uint64_t)(arg1[19]) * (arg2[0])); x264 = ((uint64_t)(arg1[18]) * ((arg2[4]) * 0x2)); x265 = ((uint64_t)(arg1[18]) * (arg2[3])); x266 = ((uint64_t)(arg1[18]) * (arg2[2])); x267 = ((uint64_t)(arg1[18]) * ((arg2[1]) * 0x2)); x268 = ((uint64_t)(arg1[18]) * (arg2[0])); x269 = ((uint64_t)(arg1[17]) * ((arg2[5]) * 0x2)); x270 = ((uint64_t)(arg1[17]) * ((arg2[4]) * 0x2)); x271 = ((uint64_t)(arg1[17]) * (arg2[3])); x272 = ((uint64_t)(arg1[17]) * ((arg2[2]) * 0x2)); x273 = ((uint64_t)(arg1[17]) * ((arg2[1]) * 0x2)); x274 = ((uint64_t)(arg1[17]) * (arg2[0])); x275 = ((uint64_t)(arg1[16]) * ((arg2[6]) * 0x2)); x276 = ((uint64_t)(arg1[16]) * ((arg2[5]) * 0x2)); x277 = ((uint64_t)(arg1[16]) * ((arg2[4]) * 0x2)); x278 = ((uint64_t)(arg1[16]) * ((arg2[3]) * 0x2)); x279 = ((uint64_t)(arg1[16]) * ((arg2[2]) * 0x2)); x280 = ((uint64_t)(arg1[16]) * ((arg2[1]) * 0x2)); x281 = ((uint64_t)(arg1[16]) * (arg2[0])); x282 = ((uint64_t)(arg1[15]) * (arg2[7])); x283 = ((uint64_t)(arg1[15]) * (arg2[6])); x284 = ((uint64_t)(arg1[15]) * (arg2[5])); x285 = ((uint64_t)(arg1[15]) * ((arg2[4]) * 0x2)); x286 = ((uint64_t)(arg1[15]) * (arg2[3])); x287 = ((uint64_t)(arg1[15]) * (arg2[2])); x288 = ((uint64_t)(arg1[15]) * (arg2[1])); x289 = ((uint64_t)(arg1[15]) * (arg2[0])); x290 = ((uint64_t)(arg1[14]) * ((arg2[8]) * 0x2)); x291 = ((uint64_t)(arg1[14]) * (arg2[7])); x292 = ((uint64_t)(arg1[14]) * (arg2[6])); x293 = ((uint64_t)(arg1[14]) * ((arg2[5]) * 0x2)); x294 = ((uint64_t)(arg1[14]) * ((arg2[4]) * 0x2)); x295 = ((uint64_t)(arg1[14]) * (arg2[3])); x296 = ((uint64_t)(arg1[14]) * (arg2[2])); x297 = ((uint64_t)(arg1[14]) * ((arg2[1]) * 0x2)); x298 = ((uint64_t)(arg1[14]) * (arg2[0])); x299 = ((uint64_t)(arg1[13]) * ((arg2[9]) * 0x2)); x300 = ((uint64_t)(arg1[13]) * ((arg2[8]) * 0x2)); x301 = ((uint64_t)(arg1[13]) * (arg2[7])); x302 = ((uint64_t)(arg1[13]) * ((arg2[6]) * 0x2)); x303 = ((uint64_t)(arg1[13]) * ((arg2[5]) * 0x2)); x304 = ((uint64_t)(arg1[13]) * ((arg2[4]) * 0x2)); x305 = ((uint64_t)(arg1[13]) * (arg2[3])); x306 = ((uint64_t)(arg1[13]) * ((arg2[2]) * 0x2)); x307 = ((uint64_t)(arg1[13]) * ((arg2[1]) * 0x2)); x308 = ((uint64_t)(arg1[13]) * (arg2[0])); x309 = ((uint64_t)(arg1[12]) * ((arg2[10]) * 0x2)); x310 = ((uint64_t)(arg1[12]) * ((arg2[9]) * 0x2)); x311 = ((uint64_t)(arg1[12]) * ((arg2[8]) * 0x2)); x312 = ((uint64_t)(arg1[12]) * ((arg2[7]) * 0x2)); x313 = ((uint64_t)(arg1[12]) * ((arg2[6]) * 0x2)); x314 = ((uint64_t)(arg1[12]) * ((arg2[5]) * 0x2)); x315 = ((uint64_t)(arg1[12]) * ((arg2[4]) * 0x2)); x316 = ((uint64_t)(arg1[12]) * ((arg2[3]) * 0x2)); x317 = ((uint64_t)(arg1[12]) * ((arg2[2]) * 0x2)); x318 = ((uint64_t)(arg1[12]) * ((arg2[1]) * 0x2)); x319 = ((uint64_t)(arg1[12]) * (arg2[0])); x320 = ((uint64_t)(arg1[11]) * (arg2[11])); x321 = ((uint64_t)(arg1[11]) * (arg2[10])); x322 = ((uint64_t)(arg1[11]) * (arg2[9])); x323 = ((uint64_t)(arg1[11]) * ((arg2[8]) * 0x2)); x324 = ((uint64_t)(arg1[11]) * (arg2[7])); x325 = ((uint64_t)(arg1[11]) * (arg2[6])); x326 = ((uint64_t)(arg1[11]) * (arg2[5])); x327 = ((uint64_t)(arg1[11]) * ((arg2[4]) * 0x2)); x328 = ((uint64_t)(arg1[11]) * (arg2[3])); x329 = ((uint64_t)(arg1[11]) * (arg2[2])); x330 = ((uint64_t)(arg1[11]) * (arg2[1])); x331 = ((uint64_t)(arg1[11]) * (arg2[0])); x332 = ((uint64_t)(arg1[10]) * ((arg2[12]) * 0x2)); x333 = ((uint64_t)(arg1[10]) * (arg2[11])); x334 = ((uint64_t)(arg1[10]) * (arg2[10])); x335 = ((uint64_t)(arg1[10]) * ((arg2[9]) * 0x2)); x336 = ((uint64_t)(arg1[10]) * ((arg2[8]) * 0x2)); x337 = ((uint64_t)(arg1[10]) * (arg2[7])); x338 = ((uint64_t)(arg1[10]) * (arg2[6])); x339 = ((uint64_t)(arg1[10]) * ((arg2[5]) * 0x2)); x340 = ((uint64_t)(arg1[10]) * ((arg2[4]) * 0x2)); x341 = ((uint64_t)(arg1[10]) * (arg2[3])); x342 = ((uint64_t)(arg1[10]) * (arg2[2])); x343 = ((uint64_t)(arg1[10]) * ((arg2[1]) * 0x2)); x344 = ((uint64_t)(arg1[10]) * (arg2[0])); x345 = ((uint64_t)(arg1[9]) * ((arg2[13]) * 0x2)); x346 = ((uint64_t)(arg1[9]) * ((arg2[12]) * 0x2)); x347 = ((uint64_t)(arg1[9]) * (arg2[11])); x348 = ((uint64_t)(arg1[9]) * ((arg2[10]) * 0x2)); x349 = ((uint64_t)(arg1[9]) * ((arg2[9]) * 0x2)); x350 = ((uint64_t)(arg1[9]) * ((arg2[8]) * 0x2)); x351 = ((uint64_t)(arg1[9]) * (arg2[7])); x352 = ((uint64_t)(arg1[9]) * ((arg2[6]) * 0x2)); x353 = ((uint64_t)(arg1[9]) * ((arg2[5]) * 0x2)); x354 = ((uint64_t)(arg1[9]) * ((arg2[4]) * 0x2)); x355 = ((uint64_t)(arg1[9]) * (arg2[3])); x356 = ((uint64_t)(arg1[9]) * ((arg2[2]) * 0x2)); x357 = ((uint64_t)(arg1[9]) * ((arg2[1]) * 0x2)); x358 = ((uint64_t)(arg1[9]) * (arg2[0])); x359 = ((uint64_t)(arg1[8]) * ((arg2[14]) * 0x2)); x360 = ((uint64_t)(arg1[8]) * ((arg2[13]) * 0x2)); x361 = ((uint64_t)(arg1[8]) * ((arg2[12]) * 0x2)); x362 = ((uint64_t)(arg1[8]) * ((arg2[11]) * 0x2)); x363 = ((uint64_t)(arg1[8]) * ((arg2[10]) * 0x2)); x364 = ((uint64_t)(arg1[8]) * ((arg2[9]) * 0x2)); x365 = ((uint64_t)(arg1[8]) * ((arg2[8]) * 0x2)); x366 = ((uint64_t)(arg1[8]) * ((arg2[7]) * 0x2)); x367 = ((uint64_t)(arg1[8]) * ((arg2[6]) * 0x2)); x368 = ((uint64_t)(arg1[8]) * ((arg2[5]) * 0x2)); x369 = ((uint64_t)(arg1[8]) * ((arg2[4]) * 0x2)); x370 = ((uint64_t)(arg1[8]) * ((arg2[3]) * 0x2)); x371 = ((uint64_t)(arg1[8]) * ((arg2[2]) * 0x2)); x372 = ((uint64_t)(arg1[8]) * ((arg2[1]) * 0x2)); x373 = ((uint64_t)(arg1[8]) * (arg2[0])); x374 = ((uint64_t)(arg1[7]) * (arg2[15])); x375 = ((uint64_t)(arg1[7]) * (arg2[14])); x376 = ((uint64_t)(arg1[7]) * (arg2[13])); x377 = ((uint64_t)(arg1[7]) * ((arg2[12]) * 0x2)); x378 = ((uint64_t)(arg1[7]) * (arg2[11])); x379 = ((uint64_t)(arg1[7]) * (arg2[10])); x380 = ((uint64_t)(arg1[7]) * (arg2[9])); x381 = ((uint64_t)(arg1[7]) * ((arg2[8]) * 0x2)); x382 = ((uint64_t)(arg1[7]) * (arg2[7])); x383 = ((uint64_t)(arg1[7]) * (arg2[6])); x384 = ((uint64_t)(arg1[7]) * (arg2[5])); x385 = ((uint64_t)(arg1[7]) * ((arg2[4]) * 0x2)); x386 = ((uint64_t)(arg1[7]) * (arg2[3])); x387 = ((uint64_t)(arg1[7]) * (arg2[2])); x388 = ((uint64_t)(arg1[7]) * (arg2[1])); x389 = ((uint64_t)(arg1[7]) * (arg2[0])); x390 = ((uint64_t)(arg1[6]) * ((arg2[16]) * 0x2)); x391 = ((uint64_t)(arg1[6]) * (arg2[15])); x392 = ((uint64_t)(arg1[6]) * (arg2[14])); x393 = ((uint64_t)(arg1[6]) * ((arg2[13]) * 0x2)); x394 = ((uint64_t)(arg1[6]) * ((arg2[12]) * 0x2)); x395 = ((uint64_t)(arg1[6]) * (arg2[11])); x396 = ((uint64_t)(arg1[6]) * (arg2[10])); x397 = ((uint64_t)(arg1[6]) * ((arg2[9]) * 0x2)); x398 = ((uint64_t)(arg1[6]) * ((arg2[8]) * 0x2)); x399 = ((uint64_t)(arg1[6]) * (arg2[7])); x400 = ((uint64_t)(arg1[6]) * (arg2[6])); x401 = ((uint64_t)(arg1[6]) * ((arg2[5]) * 0x2)); x402 = ((uint64_t)(arg1[6]) * ((arg2[4]) * 0x2)); x403 = ((uint64_t)(arg1[6]) * (arg2[3])); x404 = ((uint64_t)(arg1[6]) * (arg2[2])); x405 = ((uint64_t)(arg1[6]) * ((arg2[1]) * 0x2)); x406 = ((uint64_t)(arg1[6]) * (arg2[0])); x407 = ((uint64_t)(arg1[5]) * ((arg2[17]) * 0x2)); x408 = ((uint64_t)(arg1[5]) * ((arg2[16]) * 0x2)); x409 = ((uint64_t)(arg1[5]) * (arg2[15])); x410 = ((uint64_t)(arg1[5]) * ((arg2[14]) * 0x2)); x411 = ((uint64_t)(arg1[5]) * ((arg2[13]) * 0x2)); x412 = ((uint64_t)(arg1[5]) * ((arg2[12]) * 0x2)); x413 = ((uint64_t)(arg1[5]) * (arg2[11])); x414 = ((uint64_t)(arg1[5]) * ((arg2[10]) * 0x2)); x415 = ((uint64_t)(arg1[5]) * ((arg2[9]) * 0x2)); x416 = ((uint64_t)(arg1[5]) * ((arg2[8]) * 0x2)); x417 = ((uint64_t)(arg1[5]) * (arg2[7])); x418 = ((uint64_t)(arg1[5]) * ((arg2[6]) * 0x2)); x419 = ((uint64_t)(arg1[5]) * ((arg2[5]) * 0x2)); x420 = ((uint64_t)(arg1[5]) * ((arg2[4]) * 0x2)); x421 = ((uint64_t)(arg1[5]) * (arg2[3])); x422 = ((uint64_t)(arg1[5]) * ((arg2[2]) * 0x2)); x423 = ((uint64_t)(arg1[5]) * ((arg2[1]) * 0x2)); x424 = ((uint64_t)(arg1[5]) * (arg2[0])); x425 = ((uint64_t)(arg1[4]) * ((arg2[18]) * 0x2)); x426 = ((uint64_t)(arg1[4]) * ((arg2[17]) * 0x2)); x427 = ((uint64_t)(arg1[4]) * ((arg2[16]) * 0x2)); x428 = ((uint64_t)(arg1[4]) * ((arg2[15]) * 0x2)); x429 = ((uint64_t)(arg1[4]) * ((arg2[14]) * 0x2)); x430 = ((uint64_t)(arg1[4]) * ((arg2[13]) * 0x2)); x431 = ((uint64_t)(arg1[4]) * ((arg2[12]) * 0x2)); x432 = ((uint64_t)(arg1[4]) * ((arg2[11]) * 0x2)); x433 = ((uint64_t)(arg1[4]) * ((arg2[10]) * 0x2)); x434 = ((uint64_t)(arg1[4]) * ((arg2[9]) * 0x2)); x435 = ((uint64_t)(arg1[4]) * ((arg2[8]) * 0x2)); x436 = ((uint64_t)(arg1[4]) * ((arg2[7]) * 0x2)); x437 = ((uint64_t)(arg1[4]) * ((arg2[6]) * 0x2)); x438 = ((uint64_t)(arg1[4]) * ((arg2[5]) * 0x2)); x439 = ((uint64_t)(arg1[4]) * ((arg2[4]) * 0x2)); x440 = ((uint64_t)(arg1[4]) * ((arg2[3]) * 0x2)); x441 = ((uint64_t)(arg1[4]) * ((arg2[2]) * 0x2)); x442 = ((uint64_t)(arg1[4]) * ((arg2[1]) * 0x2)); x443 = ((uint64_t)(arg1[4]) * (arg2[0])); x444 = ((uint64_t)(arg1[3]) * (arg2[19])); x445 = ((uint64_t)(arg1[3]) * (arg2[18])); x446 = ((uint64_t)(arg1[3]) * (arg2[17])); x447 = ((uint64_t)(arg1[3]) * ((arg2[16]) * 0x2)); x448 = ((uint64_t)(arg1[3]) * (arg2[15])); x449 = ((uint64_t)(arg1[3]) * (arg2[14])); x450 = ((uint64_t)(arg1[3]) * (arg2[13])); x451 = ((uint64_t)(arg1[3]) * ((arg2[12]) * 0x2)); x452 = ((uint64_t)(arg1[3]) * (arg2[11])); x453 = ((uint64_t)(arg1[3]) * (arg2[10])); x454 = ((uint64_t)(arg1[3]) * (arg2[9])); x455 = ((uint64_t)(arg1[3]) * ((arg2[8]) * 0x2)); x456 = ((uint64_t)(arg1[3]) * (arg2[7])); x457 = ((uint64_t)(arg1[3]) * (arg2[6])); x458 = ((uint64_t)(arg1[3]) * (arg2[5])); x459 = ((uint64_t)(arg1[3]) * ((arg2[4]) * 0x2)); x460 = ((uint64_t)(arg1[3]) * (arg2[3])); x461 = ((uint64_t)(arg1[3]) * (arg2[2])); x462 = ((uint64_t)(arg1[3]) * (arg2[1])); x463 = ((uint64_t)(arg1[3]) * (arg2[0])); x464 = ((uint64_t)(arg1[2]) * ((arg2[20]) * 0x2)); x465 = ((uint64_t)(arg1[2]) * (arg2[19])); x466 = ((uint64_t)(arg1[2]) * (arg2[18])); x467 = ((uint64_t)(arg1[2]) * ((arg2[17]) * 0x2)); x468 = ((uint64_t)(arg1[2]) * ((arg2[16]) * 0x2)); x469 = ((uint64_t)(arg1[2]) * (arg2[15])); x470 = ((uint64_t)(arg1[2]) * (arg2[14])); x471 = ((uint64_t)(arg1[2]) * ((arg2[13]) * 0x2)); x472 = ((uint64_t)(arg1[2]) * ((arg2[12]) * 0x2)); x473 = ((uint64_t)(arg1[2]) * (arg2[11])); x474 = ((uint64_t)(arg1[2]) * (arg2[10])); x475 = ((uint64_t)(arg1[2]) * ((arg2[9]) * 0x2)); x476 = ((uint64_t)(arg1[2]) * ((arg2[8]) * 0x2)); x477 = ((uint64_t)(arg1[2]) * (arg2[7])); x478 = ((uint64_t)(arg1[2]) * (arg2[6])); x479 = ((uint64_t)(arg1[2]) * ((arg2[5]) * 0x2)); x480 = ((uint64_t)(arg1[2]) * ((arg2[4]) * 0x2)); x481 = ((uint64_t)(arg1[2]) * (arg2[3])); x482 = ((uint64_t)(arg1[2]) * (arg2[2])); x483 = ((uint64_t)(arg1[2]) * ((arg2[1]) * 0x2)); x484 = ((uint64_t)(arg1[2]) * (arg2[0])); x485 = ((uint64_t)(arg1[1]) * ((arg2[21]) * 0x2)); x486 = ((uint64_t)(arg1[1]) * ((arg2[20]) * 0x2)); x487 = ((uint64_t)(arg1[1]) * (arg2[19])); x488 = ((uint64_t)(arg1[1]) * ((arg2[18]) * 0x2)); x489 = ((uint64_t)(arg1[1]) * ((arg2[17]) * 0x2)); x490 = ((uint64_t)(arg1[1]) * ((arg2[16]) * 0x2)); x491 = ((uint64_t)(arg1[1]) * (arg2[15])); x492 = ((uint64_t)(arg1[1]) * ((arg2[14]) * 0x2)); x493 = ((uint64_t)(arg1[1]) * ((arg2[13]) * 0x2)); x494 = ((uint64_t)(arg1[1]) * ((arg2[12]) * 0x2)); x495 = ((uint64_t)(arg1[1]) * (arg2[11])); x496 = ((uint64_t)(arg1[1]) * ((arg2[10]) * 0x2)); x497 = ((uint64_t)(arg1[1]) * ((arg2[9]) * 0x2)); x498 = ((uint64_t)(arg1[1]) * ((arg2[8]) * 0x2)); x499 = ((uint64_t)(arg1[1]) * (arg2[7])); x500 = ((uint64_t)(arg1[1]) * ((arg2[6]) * 0x2)); x501 = ((uint64_t)(arg1[1]) * ((arg2[5]) * 0x2)); x502 = ((uint64_t)(arg1[1]) * ((arg2[4]) * 0x2)); x503 = ((uint64_t)(arg1[1]) * (arg2[3])); x504 = ((uint64_t)(arg1[1]) * ((arg2[2]) * 0x2)); x505 = ((uint64_t)(arg1[1]) * ((arg2[1]) * 0x2)); x506 = ((uint64_t)(arg1[1]) * (arg2[0])); x507 = ((uint64_t)(arg1[0]) * (arg2[22])); x508 = ((uint64_t)(arg1[0]) * (arg2[21])); x509 = ((uint64_t)(arg1[0]) * (arg2[20])); x510 = ((uint64_t)(arg1[0]) * (arg2[19])); x511 = ((uint64_t)(arg1[0]) * (arg2[18])); x512 = ((uint64_t)(arg1[0]) * (arg2[17])); x513 = ((uint64_t)(arg1[0]) * (arg2[16])); x514 = ((uint64_t)(arg1[0]) * (arg2[15])); x515 = ((uint64_t)(arg1[0]) * (arg2[14])); x516 = ((uint64_t)(arg1[0]) * (arg2[13])); x517 = ((uint64_t)(arg1[0]) * (arg2[12])); x518 = ((uint64_t)(arg1[0]) * (arg2[11])); x519 = ((uint64_t)(arg1[0]) * (arg2[10])); x520 = ((uint64_t)(arg1[0]) * (arg2[9])); x521 = ((uint64_t)(arg1[0]) * (arg2[8])); x522 = ((uint64_t)(arg1[0]) * (arg2[7])); x523 = ((uint64_t)(arg1[0]) * (arg2[6])); x524 = ((uint64_t)(arg1[0]) * (arg2[5])); x525 = ((uint64_t)(arg1[0]) * (arg2[4])); x526 = ((uint64_t)(arg1[0]) * (arg2[3])); x527 = ((uint64_t)(arg1[0]) * (arg2[2])); x528 = ((uint64_t)(arg1[0]) * (arg2[1])); x529 = ((uint64_t)(arg1[0]) * (arg2[0])); x530 = (x529 + (x253 + (x252 + (x250 + (x247 + (x243 + (x238 + (x232 + (x225 + (x217 + (x208 + (x198 + (x187 + (x175 + (x162 + (x148 + (x133 + (x117 + (x100 + (x82 + (x63 + (x43 + x22)))))))))))))))))))))); x531 = (x530 >> 23); x532 = (uint32_t)(x530 & UINT32_C(0x7fffff)); x533 = (x507 + (x485 + (x464 + (x444 + (x425 + (x407 + (x390 + (x374 + (x359 + (x345 + (x332 + (x320 + (x309 + (x299 + (x290 + (x282 + (x275 + (x269 + (x264 + (x260 + (x257 + (x255 + x254)))))))))))))))))))))); x534 = (x508 + (x486 + (x465 + (x445 + (x426 + (x408 + (x391 + (x375 + (x360 + (x346 + (x333 + (x321 + (x310 + (x300 + (x291 + (x283 + (x276 + (x270 + (x265 + (x261 + (x258 + (x256 + x1)))))))))))))))))))))); x535 = (x509 + (x487 + (x466 + (x446 + (x427 + (x409 + (x392 + (x376 + (x361 + (x347 + (x334 + (x322 + (x311 + (x301 + (x292 + (x284 + (x277 + (x271 + (x266 + (x262 + (x259 + (x23 + x2)))))))))))))))))))))); x536 = (x510 + (x488 + (x467 + (x447 + (x428 + (x410 + (x393 + (x377 + (x362 + (x348 + (x335 + (x323 + (x312 + (x302 + (x293 + (x285 + (x278 + (x272 + (x267 + (x263 + (x44 + (x24 + x3)))))))))))))))))))))); x537 = (x511 + (x489 + (x468 + (x448 + (x429 + (x411 + (x394 + (x378 + (x363 + (x349 + (x336 + (x324 + (x313 + (x303 + (x294 + (x286 + (x279 + (x273 + (x268 + (x64 + (x45 + (x25 + x4)))))))))))))))))))))); x538 = (x512 + (x490 + (x469 + (x449 + (x430 + (x412 + (x395 + (x379 + (x364 + (x350 + (x337 + (x325 + (x314 + (x304 + (x295 + (x287 + (x280 + (x274 + (x83 + (x65 + (x46 + (x26 + x5)))))))))))))))))))))); x539 = (x513 + (x491 + (x470 + (x450 + (x431 + (x413 + (x396 + (x380 + (x365 + (x351 + (x338 + (x326 + (x315 + (x305 + (x296 + (x288 + (x281 + (x101 + (x84 + (x66 + (x47 + (x27 + x6)))))))))))))))))))))); x540 = (x514 + (x492 + (x471 + (x451 + (x432 + (x414 + (x397 + (x381 + (x366 + (x352 + (x339 + (x327 + (x316 + (x306 + (x297 + (x289 + (x118 + (x102 + (x85 + (x67 + (x48 + (x28 + x7)))))))))))))))))))))); x541 = (x515 + (x493 + (x472 + (x452 + (x433 + (x415 + (x398 + (x382 + (x367 + (x353 + (x340 + (x328 + (x317 + (x307 + (x298 + (x134 + (x119 + (x103 + (x86 + (x68 + (x49 + (x29 + x8)))))))))))))))))))))); x542 = (x516 + (x494 + (x473 + (x453 + (x434 + (x416 + (x399 + (x383 + (x368 + (x354 + (x341 + (x329 + (x318 + (x308 + (x149 + (x135 + (x120 + (x104 + (x87 + (x69 + (x50 + (x30 + x9)))))))))))))))))))))); x543 = (x517 + (x495 + (x474 + (x454 + (x435 + (x417 + (x400 + (x384 + (x369 + (x355 + (x342 + (x330 + (x319 + (x163 + (x150 + (x136 + (x121 + (x105 + (x88 + (x70 + (x51 + (x31 + x10)))))))))))))))))))))); x544 = (x518 + (x496 + (x475 + (x455 + (x436 + (x418 + (x401 + (x385 + (x370 + (x356 + (x343 + (x331 + (x176 + (x164 + (x151 + (x137 + (x122 + (x106 + (x89 + (x71 + (x52 + (x32 + x11)))))))))))))))))))))); x545 = (x519 + (x497 + (x476 + (x456 + (x437 + (x419 + (x402 + (x386 + (x371 + (x357 + (x344 + (x188 + (x177 + (x165 + (x152 + (x138 + (x123 + (x107 + (x90 + (x72 + (x53 + (x33 + x12)))))))))))))))))))))); x546 = (x520 + (x498 + (x477 + (x457 + (x438 + (x420 + (x403 + (x387 + (x372 + (x358 + (x199 + (x189 + (x178 + (x166 + (x153 + (x139 + (x124 + (x108 + (x91 + (x73 + (x54 + (x34 + x13)))))))))))))))))))))); x547 = (x521 + (x499 + (x478 + (x458 + (x439 + (x421 + (x404 + (x388 + (x373 + (x209 + (x200 + (x190 + (x179 + (x167 + (x154 + (x140 + (x125 + (x109 + (x92 + (x74 + (x55 + (x35 + x14)))))))))))))))))))))); x548 = (x522 + (x500 + (x479 + (x459 + (x440 + (x422 + (x405 + (x389 + (x218 + (x210 + (x201 + (x191 + (x180 + (x168 + (x155 + (x141 + (x126 + (x110 + (x93 + (x75 + (x56 + (x36 + x15)))))))))))))))))))))); x549 = (x523 + (x501 + (x480 + (x460 + (x441 + (x423 + (x406 + (x226 + (x219 + (x211 + (x202 + (x192 + (x181 + (x169 + (x156 + (x142 + (x127 + (x111 + (x94 + (x76 + (x57 + (x37 + x16)))))))))))))))))))))); x550 = (x524 + (x502 + (x481 + (x461 + (x442 + (x424 + (x233 + (x227 + (x220 + (x212 + (x203 + (x193 + (x182 + (x170 + (x157 + (x143 + (x128 + (x112 + (x95 + (x77 + (x58 + (x38 + x17)))))))))))))))))))))); x551 = (x525 + (x503 + (x482 + (x462 + (x443 + (x239 + (x234 + (x228 + (x221 + (x213 + (x204 + (x194 + (x183 + (x171 + (x158 + (x144 + (x129 + (x113 + (x96 + (x78 + (x59 + (x39 + x18)))))))))))))))))))))); x552 = (x526 + (x504 + (x483 + (x463 + (x244 + (x240 + (x235 + (x229 + (x222 + (x214 + (x205 + (x195 + (x184 + (x172 + (x159 + (x145 + (x130 + (x114 + (x97 + (x79 + (x60 + (x40 + x19)))))))))))))))))))))); x553 = (x527 + (x505 + (x484 + (x248 + (x245 + (x241 + (x236 + (x230 + (x223 + (x215 + (x206 + (x196 + (x185 + (x173 + (x160 + (x146 + (x131 + (x115 + (x98 + (x80 + (x61 + (x41 + x20)))))))))))))))))))))); x554 = (x528 + (x506 + (x251 + (x249 + (x246 + (x242 + (x237 + (x231 + (x224 + (x216 + (x207 + (x197 + (x186 + (x174 + (x161 + (x147 + (x132 + (x116 + (x99 + (x81 + (x62 + (x42 + x21)))))))))))))))))))))); x555 = (x531 + x554); x556 = (x555 >> 22); x557 = (uint32_t)(x555 & UINT32_C(0x3fffff)); x558 = (x556 + x553); x559 = (x558 >> 22); x560 = (uint32_t)(x558 & UINT32_C(0x3fffff)); x561 = (x559 + x552); x562 = (x561 >> 23); x563 = (uint32_t)(x561 & UINT32_C(0x7fffff)); x564 = (x562 + x551); x565 = (x564 >> 22); x566 = (uint32_t)(x564 & UINT32_C(0x3fffff)); x567 = (x565 + x550); x568 = (x567 >> 22); x569 = (uint32_t)(x567 & UINT32_C(0x3fffff)); x570 = (x568 + x549); x571 = (x570 >> 22); x572 = (uint32_t)(x570 & UINT32_C(0x3fffff)); x573 = (x571 + x548); x574 = (x573 >> 23); x575 = (uint32_t)(x573 & UINT32_C(0x7fffff)); x576 = (x574 + x547); x577 = (x576 >> 22); x578 = (uint32_t)(x576 & UINT32_C(0x3fffff)); x579 = (x577 + x546); x580 = (x579 >> 22); x581 = (uint32_t)(x579 & UINT32_C(0x3fffff)); x582 = (x580 + x545); x583 = (x582 >> 22); x584 = (uint32_t)(x582 & UINT32_C(0x3fffff)); x585 = (x583 + x544); x586 = (x585 >> 23); x587 = (uint32_t)(x585 & UINT32_C(0x7fffff)); x588 = (x586 + x543); x589 = (x588 >> 22); x590 = (uint32_t)(x588 & UINT32_C(0x3fffff)); x591 = (x589 + x542); x592 = (x591 >> 22); x593 = (uint32_t)(x591 & UINT32_C(0x3fffff)); x594 = (x592 + x541); x595 = (x594 >> 22); x596 = (uint32_t)(x594 & UINT32_C(0x3fffff)); x597 = (x595 + x540); x598 = (x597 >> 23); x599 = (uint32_t)(x597 & UINT32_C(0x7fffff)); x600 = (x598 + x539); x601 = (x600 >> 22); x602 = (uint32_t)(x600 & UINT32_C(0x3fffff)); x603 = (x601 + x538); x604 = (x603 >> 22); x605 = (uint32_t)(x603 & UINT32_C(0x3fffff)); x606 = (x604 + x537); x607 = (x606 >> 22); x608 = (uint32_t)(x606 & UINT32_C(0x3fffff)); x609 = (x607 + x536); x610 = (x609 >> 23); x611 = (uint32_t)(x609 & UINT32_C(0x7fffff)); x612 = (x610 + x535); x613 = (x612 >> 22); x614 = (uint32_t)(x612 & UINT32_C(0x3fffff)); x615 = (x613 + x534); x616 = (x615 >> 22); x617 = (uint32_t)(x615 & UINT32_C(0x3fffff)); x618 = (x616 + x533); x619 = (uint32_t)(x618 >> 22); x620 = (uint32_t)(x618 & UINT32_C(0x3fffff)); x621 = ((uint64_t)UINT16_C(0x239) * x619); x622 = (x532 + x621); x623 = (uint32_t)(x622 >> 23); x624 = (uint32_t)(x622 & UINT32_C(0x7fffff)); x625 = (x623 + x557); x626 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x625 >> 22); x627 = (x625 & UINT32_C(0x3fffff)); x628 = (x626 + x560); out1[0] = x624; out1[1] = x627; out1[2] = x628; out1[3] = x563; out1[4] = x566; out1[5] = x569; out1[6] = x572; out1[7] = x575; out1[8] = x578; out1[9] = x581; out1[10] = x584; out1[11] = x587; out1[12] = x590; out1[13] = x593; out1[14] = x596; out1[15] = x599; out1[16] = x602; out1[17] = x605; out1[18] = x608; out1[19] = x611; out1[20] = x614; out1[21] = x617; out1[22] = x620; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square squares a field element and reduces the result. * Postconditions: * eval out1 mod m = (eval arg1 * eval arg1) mod m * * Input Bounds: * arg1: [[0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000]] * Output Bounds: * out1: [[0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square( uint32_t out1[23], const uint32_t arg1[23]) { uint64_t x1; uint64_t x2; uint32_t x3; uint64_t x4; uint64_t x5; uint32_t x6; uint64_t x7; uint64_t x8; uint32_t x9; uint64_t x10; uint64_t x11; uint32_t x12; uint64_t x13; uint64_t x14; uint32_t x15; uint64_t x16; uint64_t x17; uint32_t x18; uint64_t x19; uint64_t x20; uint32_t x21; uint64_t x22; uint64_t x23; uint32_t x24; uint64_t x25; uint64_t x26; uint32_t x27; uint64_t x28; uint64_t x29; uint32_t x30; uint64_t x31; uint64_t x32; uint32_t x33; uint32_t x34; uint32_t x35; uint32_t x36; uint32_t x37; uint32_t x38; uint32_t x39; uint32_t x40; uint32_t x41; uint32_t x42; uint32_t x43; uint32_t x44; uint64_t x45; uint64_t x46; uint64_t x47; uint64_t x48; uint64_t x49; uint64_t x50; uint64_t x51; uint64_t x52; uint64_t x53; uint64_t x54; uint64_t x55; uint64_t x56; uint64_t x57; uint64_t x58; uint64_t x59; uint64_t x60; uint64_t x61; uint64_t x62; uint64_t x63; uint64_t x64; uint64_t x65; uint64_t x66; uint64_t x67; uint64_t x68; uint64_t x69; uint64_t x70; uint64_t x71; uint64_t x72; uint64_t x73; uint64_t x74; uint64_t x75; uint64_t x76; uint64_t x77; uint64_t x78; uint64_t x79; uint64_t x80; uint64_t x81; uint64_t x82; uint64_t x83; uint64_t x84; uint64_t x85; uint64_t x86; uint64_t x87; uint64_t x88; uint64_t x89; uint64_t x90; uint64_t x91; uint64_t x92; uint64_t x93; uint64_t x94; uint64_t x95; uint64_t x96; uint64_t x97; uint64_t x98; uint64_t x99; uint64_t x100; uint64_t x101; uint64_t x102; uint64_t x103; uint64_t x104; uint64_t x105; uint64_t x106; uint64_t x107; uint64_t x108; uint64_t x109; uint64_t x110; uint64_t x111; uint64_t x112; uint64_t x113; uint64_t x114; uint64_t x115; uint64_t x116; uint64_t x117; uint64_t x118; uint64_t x119; uint64_t x120; uint64_t x121; uint64_t x122; uint64_t x123; uint64_t x124; uint64_t x125; uint64_t x126; uint64_t x127; uint64_t x128; uint64_t x129; uint64_t x130; uint64_t x131; uint64_t x132; uint64_t x133; uint64_t x134; uint64_t x135; uint64_t x136; uint64_t x137; uint64_t x138; uint64_t x139; uint64_t x140; uint64_t x141; uint64_t x142; uint64_t x143; uint64_t x144; uint64_t x145; uint64_t x146; uint64_t x147; uint64_t x148; uint64_t x149; uint64_t x150; uint64_t x151; uint64_t x152; uint64_t x153; uint64_t x154; uint64_t x155; uint64_t x156; uint64_t x157; uint64_t x158; uint64_t x159; uint64_t x160; uint64_t x161; uint64_t x162; uint64_t x163; uint64_t x164; uint64_t x165; uint64_t x166; uint64_t x167; uint64_t x168; uint64_t x169; uint64_t x170; uint64_t x171; uint64_t x172; uint64_t x173; uint64_t x174; uint64_t x175; uint64_t x176; uint64_t x177; uint64_t x178; uint64_t x179; uint64_t x180; uint64_t x181; uint64_t x182; uint64_t x183; uint64_t x184; uint64_t x185; uint64_t x186; uint64_t x187; uint64_t x188; uint64_t x189; uint64_t x190; uint64_t x191; uint64_t x192; uint64_t x193; uint64_t x194; uint64_t x195; uint64_t x196; uint64_t x197; uint64_t x198; uint64_t x199; uint64_t x200; uint64_t x201; uint64_t x202; uint64_t x203; uint64_t x204; uint64_t x205; uint64_t x206; uint64_t x207; uint64_t x208; uint64_t x209; uint64_t x210; uint64_t x211; uint64_t x212; uint64_t x213; uint64_t x214; uint64_t x215; uint64_t x216; uint64_t x217; uint64_t x218; uint64_t x219; uint64_t x220; uint64_t x221; uint64_t x222; uint64_t x223; uint64_t x224; uint64_t x225; uint64_t x226; uint64_t x227; uint64_t x228; uint64_t x229; uint64_t x230; uint64_t x231; uint64_t x232; uint64_t x233; uint64_t x234; uint64_t x235; uint64_t x236; uint64_t x237; uint64_t x238; uint64_t x239; uint64_t x240; uint64_t x241; uint64_t x242; uint64_t x243; uint64_t x244; uint64_t x245; uint64_t x246; uint64_t x247; uint64_t x248; uint64_t x249; uint64_t x250; uint64_t x251; uint64_t x252; uint64_t x253; uint64_t x254; uint64_t x255; uint64_t x256; uint64_t x257; uint64_t x258; uint64_t x259; uint64_t x260; uint64_t x261; uint64_t x262; uint64_t x263; uint64_t x264; uint64_t x265; uint64_t x266; uint64_t x267; uint64_t x268; uint64_t x269; uint64_t x270; uint64_t x271; uint64_t x272; uint64_t x273; uint64_t x274; uint64_t x275; uint64_t x276; uint64_t x277; uint64_t x278; uint64_t x279; uint64_t x280; uint64_t x281; uint64_t x282; uint64_t x283; uint64_t x284; uint64_t x285; uint64_t x286; uint64_t x287; uint64_t x288; uint64_t x289; uint64_t x290; uint64_t x291; uint64_t x292; uint64_t x293; uint64_t x294; uint64_t x295; uint64_t x296; uint64_t x297; uint64_t x298; uint64_t x299; uint64_t x300; uint64_t x301; uint64_t x302; uint64_t x303; uint64_t x304; uint64_t x305; uint64_t x306; uint64_t x307; uint64_t x308; uint64_t x309; uint64_t x310; uint64_t x311; uint64_t x312; uint64_t x313; uint64_t x314; uint64_t x315; uint64_t x316; uint64_t x317; uint64_t x318; uint64_t x319; uint64_t x320; uint64_t x321; uint64_t x322; uint32_t x323; uint64_t x324; uint64_t x325; uint64_t x326; uint64_t x327; uint64_t x328; uint64_t x329; uint64_t x330; uint64_t x331; uint64_t x332; uint64_t x333; uint64_t x334; uint64_t x335; uint64_t x336; uint64_t x337; uint64_t x338; uint64_t x339; uint64_t x340; uint64_t x341; uint64_t x342; uint64_t x343; uint64_t x344; uint64_t x345; uint64_t x346; uint64_t x347; uint32_t x348; uint64_t x349; uint64_t x350; uint32_t x351; uint64_t x352; uint64_t x353; uint32_t x354; uint64_t x355; uint64_t x356; uint32_t x357; uint64_t x358; uint64_t x359; uint32_t x360; uint64_t x361; uint64_t x362; uint32_t x363; uint64_t x364; uint64_t x365; uint32_t x366; uint64_t x367; uint64_t x368; uint32_t x369; uint64_t x370; uint64_t x371; uint32_t x372; uint64_t x373; uint64_t x374; uint32_t x375; uint64_t x376; uint64_t x377; uint32_t x378; uint64_t x379; uint64_t x380; uint32_t x381; uint64_t x382; uint64_t x383; uint32_t x384; uint64_t x385; uint64_t x386; uint32_t x387; uint64_t x388; uint64_t x389; uint32_t x390; uint64_t x391; uint64_t x392; uint32_t x393; uint64_t x394; uint64_t x395; uint32_t x396; uint64_t x397; uint64_t x398; uint32_t x399; uint64_t x400; uint64_t x401; uint32_t x402; uint64_t x403; uint64_t x404; uint32_t x405; uint64_t x406; uint64_t x407; uint32_t x408; uint64_t x409; uint32_t x410; uint32_t x411; uint64_t x412; uint64_t x413; uint32_t x414; uint32_t x415; uint32_t x416; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x417; uint32_t x418; uint32_t x419; x1 = ((uint64_t)(arg1[22]) * UINT16_C(0x239)); x2 = (x1 * 0x2); x3 = ((arg1[22]) * 0x2); x4 = ((uint64_t)(arg1[21]) * UINT16_C(0x239)); x5 = (x4 * 0x2); x6 = ((arg1[21]) * 0x2); x7 = ((uint64_t)(arg1[20]) * UINT16_C(0x239)); x8 = (x7 * 0x2); x9 = ((arg1[20]) * 0x2); x10 = ((uint64_t)(arg1[19]) * UINT16_C(0x239)); x11 = (x10 * 0x2); x12 = ((arg1[19]) * 0x2); x13 = ((uint64_t)(arg1[18]) * UINT16_C(0x239)); x14 = (x13 * 0x2); x15 = ((arg1[18]) * 0x2); x16 = ((uint64_t)(arg1[17]) * UINT16_C(0x239)); x17 = (x16 * 0x2); x18 = ((arg1[17]) * 0x2); x19 = ((uint64_t)(arg1[16]) * UINT16_C(0x239)); x20 = (x19 * 0x2); x21 = ((arg1[16]) * 0x2); x22 = ((uint64_t)(arg1[15]) * UINT16_C(0x239)); x23 = (x22 * 0x2); x24 = ((arg1[15]) * 0x2); x25 = ((uint64_t)(arg1[14]) * UINT16_C(0x239)); x26 = (x25 * 0x2); x27 = ((arg1[14]) * 0x2); x28 = ((uint64_t)(arg1[13]) * UINT16_C(0x239)); x29 = (x28 * 0x2); x30 = ((arg1[13]) * 0x2); x31 = ((uint64_t)(arg1[12]) * UINT16_C(0x239)); x32 = (x31 * 0x2); x33 = ((arg1[12]) * 0x2); x34 = ((arg1[11]) * 0x2); x35 = ((arg1[10]) * 0x2); x36 = ((arg1[9]) * 0x2); x37 = ((arg1[8]) * 0x2); x38 = ((arg1[7]) * 0x2); x39 = ((arg1[6]) * 0x2); x40 = ((arg1[5]) * 0x2); x41 = ((arg1[4]) * 0x2); x42 = ((arg1[3]) * 0x2); x43 = ((arg1[2]) * 0x2); x44 = ((arg1[1]) * 0x2); x45 = ((arg1[22]) * x1); x46 = ((arg1[21]) * x2); x47 = ((arg1[21]) * (x4 * 0x2)); x48 = ((arg1[20]) * (x2 * 0x2)); x49 = ((arg1[20]) * (x5 * 0x2)); x50 = ((arg1[20]) * (x7 * 0x2)); x51 = ((arg1[19]) * x2); x52 = ((arg1[19]) * x5); x53 = ((arg1[19]) * x8); x54 = ((arg1[19]) * x10); x55 = ((arg1[18]) * x2); x56 = ((arg1[18]) * x5); x57 = ((arg1[18]) * (x8 * 0x2)); x58 = ((arg1[18]) * x11); x59 = ((arg1[18]) * x13); x60 = ((arg1[17]) * x2); x61 = ((arg1[17]) * (x5 * 0x2)); x62 = ((arg1[17]) * (x8 * 0x2)); x63 = ((arg1[17]) * x11); x64 = ((arg1[17]) * x14); x65 = ((arg1[17]) * (x16 * 0x2)); x66 = ((arg1[16]) * (x2 * 0x2)); x67 = ((arg1[16]) * (x5 * 0x2)); x68 = ((arg1[16]) * (x8 * 0x2)); x69 = ((arg1[16]) * x11); x70 = ((arg1[16]) * (x14 * 0x2)); x71 = ((arg1[16]) * (x17 * 0x2)); x72 = ((arg1[16]) * (x19 * 0x2)); x73 = ((arg1[15]) * x2); x74 = ((arg1[15]) * x5); x75 = ((arg1[15]) * x8); x76 = ((arg1[15]) * x11); x77 = ((arg1[15]) * x14); x78 = ((arg1[15]) * x17); x79 = ((arg1[15]) * x20); x80 = ((arg1[15]) * x22); x81 = ((arg1[14]) * x2); x82 = ((arg1[14]) * x5); x83 = ((arg1[14]) * (x8 * 0x2)); x84 = ((arg1[14]) * x11); x85 = ((arg1[14]) * x14); x86 = ((arg1[14]) * x17); x87 = ((arg1[14]) * (x20 * 0x2)); x88 = ((arg1[14]) * x23); x89 = ((arg1[14]) * x25); x90 = ((arg1[13]) * x2); x91 = ((arg1[13]) * (x5 * 0x2)); x92 = ((arg1[13]) * (x8 * 0x2)); x93 = ((arg1[13]) * x11); x94 = ((arg1[13]) * x14); x95 = ((arg1[13]) * (x17 * 0x2)); x96 = ((arg1[13]) * (x20 * 0x2)); x97 = ((arg1[13]) * x23); x98 = ((arg1[13]) * x26); x99 = ((arg1[13]) * (x28 * 0x2)); x100 = ((arg1[12]) * (x2 * 0x2)); x101 = ((arg1[12]) * (x5 * 0x2)); x102 = ((arg1[12]) * (x8 * 0x2)); x103 = ((arg1[12]) * x11); x104 = ((arg1[12]) * (x14 * 0x2)); x105 = ((arg1[12]) * (x17 * 0x2)); x106 = ((arg1[12]) * (x20 * 0x2)); x107 = ((arg1[12]) * x23); x108 = ((arg1[12]) * (x26 * 0x2)); x109 = ((arg1[12]) * (x29 * 0x2)); x110 = ((arg1[12]) * (x31 * 0x2)); x111 = ((arg1[11]) * x2); x112 = ((arg1[11]) * x5); x113 = ((arg1[11]) * x8); x114 = ((arg1[11]) * x11); x115 = ((arg1[11]) * x14); x116 = ((arg1[11]) * x17); x117 = ((arg1[11]) * x20); x118 = ((arg1[11]) * x23); x119 = ((arg1[11]) * x26); x120 = ((arg1[11]) * x29); x121 = ((arg1[11]) * (x32 * 0x2)); x122 = ((uint64_t)(arg1[11]) * (arg1[11])); x123 = ((arg1[10]) * x2); x124 = ((arg1[10]) * x5); x125 = ((arg1[10]) * (x8 * 0x2)); x126 = ((arg1[10]) * x11); x127 = ((arg1[10]) * x14); x128 = ((arg1[10]) * x17); x129 = ((arg1[10]) * (x20 * 0x2)); x130 = ((arg1[10]) * x23); x131 = ((arg1[10]) * x26); x132 = ((arg1[10]) * (x29 * 0x2)); x133 = ((uint64_t)(arg1[10]) * (x33 * 0x2)); x134 = ((uint64_t)(arg1[10]) * x34); x135 = ((uint64_t)(arg1[10]) * (arg1[10])); x136 = ((arg1[9]) * x2); x137 = ((arg1[9]) * (x5 * 0x2)); x138 = ((arg1[9]) * (x8 * 0x2)); x139 = ((arg1[9]) * x11); x140 = ((arg1[9]) * x14); x141 = ((arg1[9]) * (x17 * 0x2)); x142 = ((arg1[9]) * (x20 * 0x2)); x143 = ((arg1[9]) * x23); x144 = ((arg1[9]) * (x26 * 0x2)); x145 = ((uint64_t)(arg1[9]) * (x30 * 0x2)); x146 = ((uint64_t)(arg1[9]) * (x33 * 0x2)); x147 = ((uint64_t)(arg1[9]) * x34); x148 = ((uint64_t)(arg1[9]) * (x35 * 0x2)); x149 = ((uint64_t)(arg1[9]) * ((arg1[9]) * 0x2)); x150 = ((arg1[8]) * (x2 * 0x2)); x151 = ((arg1[8]) * (x5 * 0x2)); x152 = ((arg1[8]) * (x8 * 0x2)); x153 = ((arg1[8]) * x11); x154 = ((arg1[8]) * (x14 * 0x2)); x155 = ((arg1[8]) * (x17 * 0x2)); x156 = ((arg1[8]) * (x20 * 0x2)); x157 = ((arg1[8]) * (x23 * 0x2)); x158 = ((uint64_t)(arg1[8]) * (x27 * 0x2)); x159 = ((uint64_t)(arg1[8]) * (x30 * 0x2)); x160 = ((uint64_t)(arg1[8]) * (x33 * 0x2)); x161 = ((uint64_t)(arg1[8]) * (x34 * 0x2)); x162 = ((uint64_t)(arg1[8]) * (x35 * 0x2)); x163 = ((uint64_t)(arg1[8]) * (x36 * 0x2)); x164 = ((uint64_t)(arg1[8]) * ((arg1[8]) * 0x2)); x165 = ((arg1[7]) * x2); x166 = ((arg1[7]) * x5); x167 = ((arg1[7]) * x8); x168 = ((arg1[7]) * x11); x169 = ((arg1[7]) * x14); x170 = ((arg1[7]) * x17); x171 = ((arg1[7]) * (x20 * 0x2)); x172 = ((uint64_t)(arg1[7]) * x24); x173 = ((uint64_t)(arg1[7]) * x27); x174 = ((uint64_t)(arg1[7]) * x30); x175 = ((uint64_t)(arg1[7]) * (x33 * 0x2)); x176 = ((uint64_t)(arg1[7]) * x34); x177 = ((uint64_t)(arg1[7]) * x35); x178 = ((uint64_t)(arg1[7]) * x36); x179 = ((uint64_t)(arg1[7]) * (x37 * 0x2)); x180 = ((uint64_t)(arg1[7]) * (arg1[7])); x181 = ((arg1[6]) * x2); x182 = ((arg1[6]) * x5); x183 = ((arg1[6]) * (x8 * 0x2)); x184 = ((arg1[6]) * x11); x185 = ((arg1[6]) * x14); x186 = ((arg1[6]) * (x17 * 0x2)); x187 = ((uint64_t)(arg1[6]) * (x21 * 0x2)); x188 = ((uint64_t)(arg1[6]) * x24); x189 = ((uint64_t)(arg1[6]) * x27); x190 = ((uint64_t)(arg1[6]) * (x30 * 0x2)); x191 = ((uint64_t)(arg1[6]) * (x33 * 0x2)); x192 = ((uint64_t)(arg1[6]) * x34); x193 = ((uint64_t)(arg1[6]) * x35); x194 = ((uint64_t)(arg1[6]) * (x36 * 0x2)); x195 = ((uint64_t)(arg1[6]) * (x37 * 0x2)); x196 = ((uint64_t)(arg1[6]) * x38); x197 = ((uint64_t)(arg1[6]) * (arg1[6])); x198 = ((arg1[5]) * x2); x199 = ((arg1[5]) * (x5 * 0x2)); x200 = ((arg1[5]) * (x8 * 0x2)); x201 = ((arg1[5]) * x11); x202 = ((arg1[5]) * (x14 * 0x2)); x203 = ((uint64_t)(arg1[5]) * (x18 * 0x2)); x204 = ((uint64_t)(arg1[5]) * (x21 * 0x2)); x205 = ((uint64_t)(arg1[5]) * x24); x206 = ((uint64_t)(arg1[5]) * (x27 * 0x2)); x207 = ((uint64_t)(arg1[5]) * (x30 * 0x2)); x208 = ((uint64_t)(arg1[5]) * (x33 * 0x2)); x209 = ((uint64_t)(arg1[5]) * x34); x210 = ((uint64_t)(arg1[5]) * (x35 * 0x2)); x211 = ((uint64_t)(arg1[5]) * (x36 * 0x2)); x212 = ((uint64_t)(arg1[5]) * (x37 * 0x2)); x213 = ((uint64_t)(arg1[5]) * x38); x214 = ((uint64_t)(arg1[5]) * (x39 * 0x2)); x215 = ((uint64_t)(arg1[5]) * ((arg1[5]) * 0x2)); x216 = ((arg1[4]) * (x2 * 0x2)); x217 = ((arg1[4]) * (x5 * 0x2)); x218 = ((arg1[4]) * (x8 * 0x2)); x219 = ((arg1[4]) * (x11 * 0x2)); x220 = ((uint64_t)(arg1[4]) * (x15 * 0x2)); x221 = ((uint64_t)(arg1[4]) * (x18 * 0x2)); x222 = ((uint64_t)(arg1[4]) * (x21 * 0x2)); x223 = ((uint64_t)(arg1[4]) * (x24 * 0x2)); x224 = ((uint64_t)(arg1[4]) * (x27 * 0x2)); x225 = ((uint64_t)(arg1[4]) * (x30 * 0x2)); x226 = ((uint64_t)(arg1[4]) * (x33 * 0x2)); x227 = ((uint64_t)(arg1[4]) * (x34 * 0x2)); x228 = ((uint64_t)(arg1[4]) * (x35 * 0x2)); x229 = ((uint64_t)(arg1[4]) * (x36 * 0x2)); x230 = ((uint64_t)(arg1[4]) * (x37 * 0x2)); x231 = ((uint64_t)(arg1[4]) * (x38 * 0x2)); x232 = ((uint64_t)(arg1[4]) * (x39 * 0x2)); x233 = ((uint64_t)(arg1[4]) * (x40 * 0x2)); x234 = ((uint64_t)(arg1[4]) * ((arg1[4]) * 0x2)); x235 = ((arg1[3]) * x2); x236 = ((arg1[3]) * x5); x237 = ((arg1[3]) * (x8 * 0x2)); x238 = ((uint64_t)(arg1[3]) * x12); x239 = ((uint64_t)(arg1[3]) * x15); x240 = ((uint64_t)(arg1[3]) * x18); x241 = ((uint64_t)(arg1[3]) * (x21 * 0x2)); x242 = ((uint64_t)(arg1[3]) * x24); x243 = ((uint64_t)(arg1[3]) * x27); x244 = ((uint64_t)(arg1[3]) * x30); x245 = ((uint64_t)(arg1[3]) * (x33 * 0x2)); x246 = ((uint64_t)(arg1[3]) * x34); x247 = ((uint64_t)(arg1[3]) * x35); x248 = ((uint64_t)(arg1[3]) * x36); x249 = ((uint64_t)(arg1[3]) * (x37 * 0x2)); x250 = ((uint64_t)(arg1[3]) * x38); x251 = ((uint64_t)(arg1[3]) * x39); x252 = ((uint64_t)(arg1[3]) * x40); x253 = ((uint64_t)(arg1[3]) * (x41 * 0x2)); x254 = ((uint64_t)(arg1[3]) * (arg1[3])); x255 = ((arg1[2]) * x2); x256 = ((arg1[2]) * (x5 * 0x2)); x257 = ((uint64_t)(arg1[2]) * (x9 * 0x2)); x258 = ((uint64_t)(arg1[2]) * x12); x259 = ((uint64_t)(arg1[2]) * x15); x260 = ((uint64_t)(arg1[2]) * (x18 * 0x2)); x261 = ((uint64_t)(arg1[2]) * (x21 * 0x2)); x262 = ((uint64_t)(arg1[2]) * x24); x263 = ((uint64_t)(arg1[2]) * x27); x264 = ((uint64_t)(arg1[2]) * (x30 * 0x2)); x265 = ((uint64_t)(arg1[2]) * (x33 * 0x2)); x266 = ((uint64_t)(arg1[2]) * x34); x267 = ((uint64_t)(arg1[2]) * x35); x268 = ((uint64_t)(arg1[2]) * (x36 * 0x2)); x269 = ((uint64_t)(arg1[2]) * (x37 * 0x2)); x270 = ((uint64_t)(arg1[2]) * x38); x271 = ((uint64_t)(arg1[2]) * x39); x272 = ((uint64_t)(arg1[2]) * (x40 * 0x2)); x273 = ((uint64_t)(arg1[2]) * (x41 * 0x2)); x274 = ((uint64_t)(arg1[2]) * x42); x275 = ((uint64_t)(arg1[2]) * (arg1[2])); x276 = ((arg1[1]) * (x2 * 0x2)); x277 = ((uint64_t)(arg1[1]) * (x6 * 0x2)); x278 = ((uint64_t)(arg1[1]) * (x9 * 0x2)); x279 = ((uint64_t)(arg1[1]) * x12); x280 = ((uint64_t)(arg1[1]) * (x15 * 0x2)); x281 = ((uint64_t)(arg1[1]) * (x18 * 0x2)); x282 = ((uint64_t)(arg1[1]) * (x21 * 0x2)); x283 = ((uint64_t)(arg1[1]) * x24); x284 = ((uint64_t)(arg1[1]) * (x27 * 0x2)); x285 = ((uint64_t)(arg1[1]) * (x30 * 0x2)); x286 = ((uint64_t)(arg1[1]) * (x33 * 0x2)); x287 = ((uint64_t)(arg1[1]) * x34); x288 = ((uint64_t)(arg1[1]) * (x35 * 0x2)); x289 = ((uint64_t)(arg1[1]) * (x36 * 0x2)); x290 = ((uint64_t)(arg1[1]) * (x37 * 0x2)); x291 = ((uint64_t)(arg1[1]) * x38); x292 = ((uint64_t)(arg1[1]) * (x39 * 0x2)); x293 = ((uint64_t)(arg1[1]) * (x40 * 0x2)); x294 = ((uint64_t)(arg1[1]) * (x41 * 0x2)); x295 = ((uint64_t)(arg1[1]) * x42); x296 = ((uint64_t)(arg1[1]) * (x43 * 0x2)); x297 = ((uint64_t)(arg1[1]) * ((arg1[1]) * 0x2)); x298 = ((uint64_t)(arg1[0]) * x3); x299 = ((uint64_t)(arg1[0]) * x6); x300 = ((uint64_t)(arg1[0]) * x9); x301 = ((uint64_t)(arg1[0]) * x12); x302 = ((uint64_t)(arg1[0]) * x15); x303 = ((uint64_t)(arg1[0]) * x18); x304 = ((uint64_t)(arg1[0]) * x21); x305 = ((uint64_t)(arg1[0]) * x24); x306 = ((uint64_t)(arg1[0]) * x27); x307 = ((uint64_t)(arg1[0]) * x30); x308 = ((uint64_t)(arg1[0]) * x33); x309 = ((uint64_t)(arg1[0]) * x34); x310 = ((uint64_t)(arg1[0]) * x35); x311 = ((uint64_t)(arg1[0]) * x36); x312 = ((uint64_t)(arg1[0]) * x37); x313 = ((uint64_t)(arg1[0]) * x38); x314 = ((uint64_t)(arg1[0]) * x39); x315 = ((uint64_t)(arg1[0]) * x40); x316 = ((uint64_t)(arg1[0]) * x41); x317 = ((uint64_t)(arg1[0]) * x42); x318 = ((uint64_t)(arg1[0]) * x43); x319 = ((uint64_t)(arg1[0]) * x44); x320 = ((uint64_t)(arg1[0]) * (arg1[0])); x321 = (x320 + (x276 + (x256 + (x237 + (x219 + (x202 + (x186 + (x171 + (x157 + (x144 + (x132 + x121))))))))))); x322 = (x321 >> 23); x323 = (uint32_t)(x321 & UINT32_C(0x7fffff)); x324 = (x298 + (x277 + (x257 + (x238 + (x220 + (x203 + (x187 + (x172 + (x158 + (x145 + (x133 + x122))))))))))); x325 = (x299 + (x278 + (x258 + (x239 + (x221 + (x204 + (x188 + (x173 + (x159 + (x146 + (x134 + x45))))))))))); x326 = (x300 + (x279 + (x259 + (x240 + (x222 + (x205 + (x189 + (x174 + (x160 + (x147 + (x135 + x46))))))))))); x327 = (x301 + (x280 + (x260 + (x241 + (x223 + (x206 + (x190 + (x175 + (x161 + (x148 + (x48 + x47))))))))))); x328 = (x302 + (x281 + (x261 + (x242 + (x224 + (x207 + (x191 + (x176 + (x162 + (x149 + (x51 + x49))))))))))); x329 = (x303 + (x282 + (x262 + (x243 + (x225 + (x208 + (x192 + (x177 + (x163 + (x55 + (x52 + x50))))))))))); x330 = (x304 + (x283 + (x263 + (x244 + (x226 + (x209 + (x193 + (x178 + (x164 + (x60 + (x56 + x53))))))))))); x331 = (x305 + (x284 + (x264 + (x245 + (x227 + (x210 + (x194 + (x179 + (x66 + (x61 + (x57 + x54))))))))))); x332 = (x306 + (x285 + (x265 + (x246 + (x228 + (x211 + (x195 + (x180 + (x73 + (x67 + (x62 + x58))))))))))); x333 = (x307 + (x286 + (x266 + (x247 + (x229 + (x212 + (x196 + (x81 + (x74 + (x68 + (x63 + x59))))))))))); x334 = (x308 + (x287 + (x267 + (x248 + (x230 + (x213 + (x197 + (x90 + (x82 + (x75 + (x69 + x64))))))))))); x335 = (x309 + (x288 + (x268 + (x249 + (x231 + (x214 + (x100 + (x91 + (x83 + (x76 + (x70 + x65))))))))))); x336 = (x310 + (x289 + (x269 + (x250 + (x232 + (x215 + (x111 + (x101 + (x92 + (x84 + (x77 + x71))))))))))); x337 = (x311 + (x290 + (x270 + (x251 + (x233 + (x123 + (x112 + (x102 + (x93 + (x85 + (x78 + x72))))))))))); x338 = (x312 + (x291 + (x271 + (x252 + (x234 + (x136 + (x124 + (x113 + (x103 + (x94 + (x86 + x79))))))))))); x339 = (x313 + (x292 + (x272 + (x253 + (x150 + (x137 + (x125 + (x114 + (x104 + (x95 + (x87 + x80))))))))))); x340 = (x314 + (x293 + (x273 + (x254 + (x165 + (x151 + (x138 + (x126 + (x115 + (x105 + (x96 + x88))))))))))); x341 = (x315 + (x294 + (x274 + (x181 + (x166 + (x152 + (x139 + (x127 + (x116 + (x106 + (x97 + x89))))))))))); x342 = (x316 + (x295 + (x275 + (x198 + (x182 + (x167 + (x153 + (x140 + (x128 + (x117 + (x107 + x98))))))))))); x343 = (x317 + (x296 + (x216 + (x199 + (x183 + (x168 + (x154 + (x141 + (x129 + (x118 + (x108 + x99))))))))))); x344 = (x318 + (x297 + (x235 + (x217 + (x200 + (x184 + (x169 + (x155 + (x142 + (x130 + (x119 + x109))))))))))); x345 = (x319 + (x255 + (x236 + (x218 + (x201 + (x185 + (x170 + (x156 + (x143 + (x131 + (x120 + x110))))))))))); x346 = (x322 + x345); x347 = (x346 >> 22); x348 = (uint32_t)(x346 & UINT32_C(0x3fffff)); x349 = (x347 + x344); x350 = (x349 >> 22); x351 = (uint32_t)(x349 & UINT32_C(0x3fffff)); x352 = (x350 + x343); x353 = (x352 >> 23); x354 = (uint32_t)(x352 & UINT32_C(0x7fffff)); x355 = (x353 + x342); x356 = (x355 >> 22); x357 = (uint32_t)(x355 & UINT32_C(0x3fffff)); x358 = (x356 + x341); x359 = (x358 >> 22); x360 = (uint32_t)(x358 & UINT32_C(0x3fffff)); x361 = (x359 + x340); x362 = (x361 >> 22); x363 = (uint32_t)(x361 & UINT32_C(0x3fffff)); x364 = (x362 + x339); x365 = (x364 >> 23); x366 = (uint32_t)(x364 & UINT32_C(0x7fffff)); x367 = (x365 + x338); x368 = (x367 >> 22); x369 = (uint32_t)(x367 & UINT32_C(0x3fffff)); x370 = (x368 + x337); x371 = (x370 >> 22); x372 = (uint32_t)(x370 & UINT32_C(0x3fffff)); x373 = (x371 + x336); x374 = (x373 >> 22); x375 = (uint32_t)(x373 & UINT32_C(0x3fffff)); x376 = (x374 + x335); x377 = (x376 >> 23); x378 = (uint32_t)(x376 & UINT32_C(0x7fffff)); x379 = (x377 + x334); x380 = (x379 >> 22); x381 = (uint32_t)(x379 & UINT32_C(0x3fffff)); x382 = (x380 + x333); x383 = (x382 >> 22); x384 = (uint32_t)(x382 & UINT32_C(0x3fffff)); x385 = (x383 + x332); x386 = (x385 >> 22); x387 = (uint32_t)(x385 & UINT32_C(0x3fffff)); x388 = (x386 + x331); x389 = (x388 >> 23); x390 = (uint32_t)(x388 & UINT32_C(0x7fffff)); x391 = (x389 + x330); x392 = (x391 >> 22); x393 = (uint32_t)(x391 & UINT32_C(0x3fffff)); x394 = (x392 + x329); x395 = (x394 >> 22); x396 = (uint32_t)(x394 & UINT32_C(0x3fffff)); x397 = (x395 + x328); x398 = (x397 >> 22); x399 = (uint32_t)(x397 & UINT32_C(0x3fffff)); x400 = (x398 + x327); x401 = (x400 >> 23); x402 = (uint32_t)(x400 & UINT32_C(0x7fffff)); x403 = (x401 + x326); x404 = (x403 >> 22); x405 = (uint32_t)(x403 & UINT32_C(0x3fffff)); x406 = (x404 + x325); x407 = (x406 >> 22); x408 = (uint32_t)(x406 & UINT32_C(0x3fffff)); x409 = (x407 + x324); x410 = (uint32_t)(x409 >> 22); x411 = (uint32_t)(x409 & UINT32_C(0x3fffff)); x412 = ((uint64_t)UINT16_C(0x239) * x410); x413 = (x323 + x412); x414 = (uint32_t)(x413 >> 23); x415 = (uint32_t)(x413 & UINT32_C(0x7fffff)); x416 = (x414 + x348); x417 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x416 >> 22); x418 = (x416 & UINT32_C(0x3fffff)); x419 = (x417 + x351); out1[0] = x415; out1[1] = x418; out1[2] = x419; out1[3] = x354; out1[4] = x357; out1[5] = x360; out1[6] = x363; out1[7] = x366; out1[8] = x369; out1[9] = x372; out1[10] = x375; out1[11] = x378; out1[12] = x381; out1[13] = x384; out1[14] = x387; out1[15] = x390; out1[16] = x393; out1[17] = x396; out1[18] = x399; out1[19] = x402; out1[20] = x405; out1[21] = x408; out1[22] = x411; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_carry reduces a field element. * Postconditions: * eval out1 mod m = eval arg1 mod m * * Input Bounds: * arg1: [[0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000]] * Output Bounds: * out1: [[0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_carry( uint32_t out1[23], const uint32_t arg1[23]) { uint32_t x1; uint32_t x2; uint32_t x3; uint32_t x4; uint32_t x5; uint32_t x6; uint32_t x7; uint32_t x8; uint32_t x9; uint32_t x10; uint32_t x11; uint32_t x12; uint32_t x13; uint32_t x14; uint32_t x15; uint32_t x16; uint32_t x17; uint32_t x18; uint32_t x19; uint32_t x20; uint32_t x21; uint32_t x22; uint32_t x23; uint32_t x24; uint32_t x25; uint32_t x26; uint32_t x27; uint32_t x28; uint32_t x29; uint32_t x30; uint32_t x31; uint32_t x32; uint32_t x33; uint32_t x34; uint32_t x35; uint32_t x36; uint32_t x37; uint32_t x38; uint32_t x39; uint32_t x40; uint32_t x41; uint32_t x42; uint32_t x43; uint32_t x44; uint32_t x45; uint32_t x46; uint32_t x47; uint32_t x48; x1 = (arg1[0]); x2 = ((x1 >> 23) + (arg1[1])); x3 = ((x2 >> 22) + (arg1[2])); x4 = ((x3 >> 22) + (arg1[3])); x5 = ((x4 >> 23) + (arg1[4])); x6 = ((x5 >> 22) + (arg1[5])); x7 = ((x6 >> 22) + (arg1[6])); x8 = ((x7 >> 22) + (arg1[7])); x9 = ((x8 >> 23) + (arg1[8])); x10 = ((x9 >> 22) + (arg1[9])); x11 = ((x10 >> 22) + (arg1[10])); x12 = ((x11 >> 22) + (arg1[11])); x13 = ((x12 >> 23) + (arg1[12])); x14 = ((x13 >> 22) + (arg1[13])); x15 = ((x14 >> 22) + (arg1[14])); x16 = ((x15 >> 22) + (arg1[15])); x17 = ((x16 >> 23) + (arg1[16])); x18 = ((x17 >> 22) + (arg1[17])); x19 = ((x18 >> 22) + (arg1[18])); x20 = ((x19 >> 22) + (arg1[19])); x21 = ((x20 >> 23) + (arg1[20])); x22 = ((x21 >> 22) + (arg1[21])); x23 = ((x22 >> 22) + (arg1[22])); x24 = ((x1 & UINT32_C(0x7fffff)) + (UINT16_C(0x239) * (x23 >> 22))); x25 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x24 >> 23) + (x2 & UINT32_C(0x3fffff))); x26 = (x24 & UINT32_C(0x7fffff)); x27 = (x25 & UINT32_C(0x3fffff)); x28 = ((fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x25 >> 22) + (x3 & UINT32_C(0x3fffff))); x29 = (x4 & UINT32_C(0x7fffff)); x30 = (x5 & UINT32_C(0x3fffff)); x31 = (x6 & UINT32_C(0x3fffff)); x32 = (x7 & UINT32_C(0x3fffff)); x33 = (x8 & UINT32_C(0x7fffff)); x34 = (x9 & UINT32_C(0x3fffff)); x35 = (x10 & UINT32_C(0x3fffff)); x36 = (x11 & UINT32_C(0x3fffff)); x37 = (x12 & UINT32_C(0x7fffff)); x38 = (x13 & UINT32_C(0x3fffff)); x39 = (x14 & UINT32_C(0x3fffff)); x40 = (x15 & UINT32_C(0x3fffff)); x41 = (x16 & UINT32_C(0x7fffff)); x42 = (x17 & UINT32_C(0x3fffff)); x43 = (x18 & UINT32_C(0x3fffff)); x44 = (x19 & UINT32_C(0x3fffff)); x45 = (x20 & UINT32_C(0x7fffff)); x46 = (x21 & UINT32_C(0x3fffff)); x47 = (x22 & UINT32_C(0x3fffff)); x48 = (x23 & UINT32_C(0x3fffff)); out1[0] = x26; out1[1] = x27; out1[2] = x28; out1[3] = x29; out1[4] = x30; out1[5] = x31; out1[6] = x32; out1[7] = x33; out1[8] = x34; out1[9] = x35; out1[10] = x36; out1[11] = x37; out1[12] = x38; out1[13] = x39; out1[14] = x40; out1[15] = x41; out1[16] = x42; out1[17] = x43; out1[18] = x44; out1[19] = x45; out1[20] = x46; out1[21] = x47; out1[22] = x48; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_add adds two field elements. * Postconditions: * eval out1 mod m = (eval arg1 + eval arg2) mod m * * Input Bounds: * arg1: [[0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000]] * arg2: [[0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000]] * Output Bounds: * out1: [[0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_add( uint32_t out1[23], const uint32_t arg1[23], const uint32_t arg2[23]) { uint32_t x1; uint32_t x2; uint32_t x3; uint32_t x4; uint32_t x5; uint32_t x6; uint32_t x7; uint32_t x8; uint32_t x9; uint32_t x10; uint32_t x11; uint32_t x12; uint32_t x13; uint32_t x14; uint32_t x15; uint32_t x16; uint32_t x17; uint32_t x18; uint32_t x19; uint32_t x20; uint32_t x21; uint32_t x22; uint32_t x23; x1 = ((arg1[0]) + (arg2[0])); x2 = ((arg1[1]) + (arg2[1])); x3 = ((arg1[2]) + (arg2[2])); x4 = ((arg1[3]) + (arg2[3])); x5 = ((arg1[4]) + (arg2[4])); x6 = ((arg1[5]) + (arg2[5])); x7 = ((arg1[6]) + (arg2[6])); x8 = ((arg1[7]) + (arg2[7])); x9 = ((arg1[8]) + (arg2[8])); x10 = ((arg1[9]) + (arg2[9])); x11 = ((arg1[10]) + (arg2[10])); x12 = ((arg1[11]) + (arg2[11])); x13 = ((arg1[12]) + (arg2[12])); x14 = ((arg1[13]) + (arg2[13])); x15 = ((arg1[14]) + (arg2[14])); x16 = ((arg1[15]) + (arg2[15])); x17 = ((arg1[16]) + (arg2[16])); x18 = ((arg1[17]) + (arg2[17])); x19 = ((arg1[18]) + (arg2[18])); x20 = ((arg1[19]) + (arg2[19])); x21 = ((arg1[20]) + (arg2[20])); x22 = ((arg1[21]) + (arg2[21])); x23 = ((arg1[22]) + (arg2[22])); out1[0] = x1; out1[1] = x2; out1[2] = x3; out1[3] = x4; out1[4] = x5; out1[5] = x6; out1[6] = x7; out1[7] = x8; out1[8] = x9; out1[9] = x10; out1[10] = x11; out1[11] = x12; out1[12] = x13; out1[13] = x14; out1[14] = x15; out1[15] = x16; out1[16] = x17; out1[17] = x18; out1[18] = x19; out1[19] = x20; out1[20] = x21; out1[21] = x22; out1[22] = x23; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_sub subtracts two field elements. * Postconditions: * eval out1 mod m = (eval arg1 - eval arg2) mod m * * Input Bounds: * arg1: [[0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000]] * arg2: [[0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000]] * Output Bounds: * out1: [[0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_sub( uint32_t out1[23], const uint32_t arg1[23], const uint32_t arg2[23]) { uint32_t x1; uint32_t x2; uint32_t x3; uint32_t x4; uint32_t x5; uint32_t x6; uint32_t x7; uint32_t x8; uint32_t x9; uint32_t x10; uint32_t x11; uint32_t x12; uint32_t x13; uint32_t x14; uint32_t x15; uint32_t x16; uint32_t x17; uint32_t x18; uint32_t x19; uint32_t x20; uint32_t x21; uint32_t x22; uint32_t x23; x1 = ((UINT32_C(0xfffb8e) + (arg1[0])) - (arg2[0])); x2 = ((UINT32_C(0x7ffffe) + (arg1[1])) - (arg2[1])); x3 = ((UINT32_C(0x7ffffe) + (arg1[2])) - (arg2[2])); x4 = ((UINT32_C(0xfffffe) + (arg1[3])) - (arg2[3])); x5 = ((UINT32_C(0x7ffffe) + (arg1[4])) - (arg2[4])); x6 = ((UINT32_C(0x7ffffe) + (arg1[5])) - (arg2[5])); x7 = ((UINT32_C(0x7ffffe) + (arg1[6])) - (arg2[6])); x8 = ((UINT32_C(0xfffffe) + (arg1[7])) - (arg2[7])); x9 = ((UINT32_C(0x7ffffe) + (arg1[8])) - (arg2[8])); x10 = ((UINT32_C(0x7ffffe) + (arg1[9])) - (arg2[9])); x11 = ((UINT32_C(0x7ffffe) + (arg1[10])) - (arg2[10])); x12 = ((UINT32_C(0xfffffe) + (arg1[11])) - (arg2[11])); x13 = ((UINT32_C(0x7ffffe) + (arg1[12])) - (arg2[12])); x14 = ((UINT32_C(0x7ffffe) + (arg1[13])) - (arg2[13])); x15 = ((UINT32_C(0x7ffffe) + (arg1[14])) - (arg2[14])); x16 = ((UINT32_C(0xfffffe) + (arg1[15])) - (arg2[15])); x17 = ((UINT32_C(0x7ffffe) + (arg1[16])) - (arg2[16])); x18 = ((UINT32_C(0x7ffffe) + (arg1[17])) - (arg2[17])); x19 = ((UINT32_C(0x7ffffe) + (arg1[18])) - (arg2[18])); x20 = ((UINT32_C(0xfffffe) + (arg1[19])) - (arg2[19])); x21 = ((UINT32_C(0x7ffffe) + (arg1[20])) - (arg2[20])); x22 = ((UINT32_C(0x7ffffe) + (arg1[21])) - (arg2[21])); x23 = ((UINT32_C(0x7ffffe) + (arg1[22])) - (arg2[22])); out1[0] = x1; out1[1] = x2; out1[2] = x3; out1[3] = x4; out1[4] = x5; out1[5] = x6; out1[6] = x7; out1[7] = x8; out1[8] = x9; out1[9] = x10; out1[10] = x11; out1[11] = x12; out1[12] = x13; out1[13] = x14; out1[14] = x15; out1[15] = x16; out1[16] = x17; out1[17] = x18; out1[18] = x19; out1[19] = x20; out1[20] = x21; out1[21] = x22; out1[22] = x23; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_opp negates a field element. * Postconditions: * eval out1 mod m = -eval arg1 mod m * * Input Bounds: * arg1: [[0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000]] * Output Bounds: * out1: [[0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0x1800000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000], [0x0 ~> 0xc00000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_opp( uint32_t out1[23], const uint32_t arg1[23]) { uint32_t x1; uint32_t x2; uint32_t x3; uint32_t x4; uint32_t x5; uint32_t x6; uint32_t x7; uint32_t x8; uint32_t x9; uint32_t x10; uint32_t x11; uint32_t x12; uint32_t x13; uint32_t x14; uint32_t x15; uint32_t x16; uint32_t x17; uint32_t x18; uint32_t x19; uint32_t x20; uint32_t x21; uint32_t x22; uint32_t x23; x1 = (UINT32_C(0xfffb8e) - (arg1[0])); x2 = (UINT32_C(0x7ffffe) - (arg1[1])); x3 = (UINT32_C(0x7ffffe) - (arg1[2])); x4 = (UINT32_C(0xfffffe) - (arg1[3])); x5 = (UINT32_C(0x7ffffe) - (arg1[4])); x6 = (UINT32_C(0x7ffffe) - (arg1[5])); x7 = (UINT32_C(0x7ffffe) - (arg1[6])); x8 = (UINT32_C(0xfffffe) - (arg1[7])); x9 = (UINT32_C(0x7ffffe) - (arg1[8])); x10 = (UINT32_C(0x7ffffe) - (arg1[9])); x11 = (UINT32_C(0x7ffffe) - (arg1[10])); x12 = (UINT32_C(0xfffffe) - (arg1[11])); x13 = (UINT32_C(0x7ffffe) - (arg1[12])); x14 = (UINT32_C(0x7ffffe) - (arg1[13])); x15 = (UINT32_C(0x7ffffe) - (arg1[14])); x16 = (UINT32_C(0xfffffe) - (arg1[15])); x17 = (UINT32_C(0x7ffffe) - (arg1[16])); x18 = (UINT32_C(0x7ffffe) - (arg1[17])); x19 = (UINT32_C(0x7ffffe) - (arg1[18])); x20 = (UINT32_C(0xfffffe) - (arg1[19])); x21 = (UINT32_C(0x7ffffe) - (arg1[20])); x22 = (UINT32_C(0x7ffffe) - (arg1[21])); x23 = (UINT32_C(0x7ffffe) - (arg1[22])); out1[0] = x1; out1[1] = x2; out1[2] = x3; out1[3] = x4; out1[4] = x5; out1[5] = x6; out1[6] = x7; out1[7] = x8; out1[8] = x9; out1[9] = x10; out1[10] = x11; out1[11] = x12; out1[12] = x13; out1[13] = x14; out1[14] = x15; out1[15] = x16; out1[16] = x17; out1[17] = x18; out1[18] = x19; out1[19] = x20; out1[20] = x21; out1[21] = x22; out1[22] = x23; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz is a multi-limb conditional select. * Postconditions: * eval out1 = (if arg1 = 0 then eval arg2 else eval arg3) * * Input Bounds: * arg1: [0x0 ~> 0x1] * arg2: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] * arg3: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] * Output Bounds: * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( uint32_t out1[23], fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 arg1, const uint32_t arg2[23], const uint32_t arg3[23]) { uint32_t x1; uint32_t x2; uint32_t x3; uint32_t x4; uint32_t x5; uint32_t x6; uint32_t x7; uint32_t x8; uint32_t x9; uint32_t x10; uint32_t x11; uint32_t x12; uint32_t x13; uint32_t x14; uint32_t x15; uint32_t x16; uint32_t x17; uint32_t x18; uint32_t x19; uint32_t x20; uint32_t x21; uint32_t x22; uint32_t x23; fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x1, arg1, (arg2[0]), (arg3[0])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x2, arg1, (arg2[1]), (arg3[1])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x3, arg1, (arg2[2]), (arg3[2])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x4, arg1, (arg2[3]), (arg3[3])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x5, arg1, (arg2[4]), (arg3[4])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x6, arg1, (arg2[5]), (arg3[5])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x7, arg1, (arg2[6]), (arg3[6])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x8, arg1, (arg2[7]), (arg3[7])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x9, arg1, (arg2[8]), (arg3[8])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x10, arg1, (arg2[9]), (arg3[9])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x11, arg1, (arg2[10]), (arg3[10])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x12, arg1, (arg2[11]), (arg3[11])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x13, arg1, (arg2[12]), (arg3[12])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x14, arg1, (arg2[13]), (arg3[13])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x15, arg1, (arg2[14]), (arg3[14])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x16, arg1, (arg2[15]), (arg3[15])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x17, arg1, (arg2[16]), (arg3[16])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x18, arg1, (arg2[17]), (arg3[17])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x19, arg1, (arg2[18]), (arg3[18])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x20, arg1, (arg2[19]), (arg3[19])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x21, arg1, (arg2[20]), (arg3[20])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x22, arg1, (arg2[21]), (arg3[21])); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32( &x23, arg1, (arg2[22]), (arg3[22])); out1[0] = x1; out1[1] = x2; out1[2] = x3; out1[3] = x4; out1[4] = x5; out1[5] = x6; out1[6] = x7; out1[7] = x8; out1[8] = x9; out1[9] = x10; out1[10] = x11; out1[11] = x12; out1[12] = x13; out1[13] = x14; out1[14] = x15; out1[15] = x16; out1[16] = x17; out1[17] = x18; out1[18] = x19; out1[19] = x20; out1[20] = x21; out1[21] = x22; out1[22] = x23; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes serializes a field element to bytes in little-endian order. * Postconditions: * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..63] * * Input Bounds: * arg1: [[0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000]] * Output Bounds: * out1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes( uint8_t out1[64], const uint32_t arg1[23]) { uint32_t x1; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x2; uint32_t x3; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x4; uint32_t x5; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x6; uint32_t x7; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x8; uint32_t x9; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x10; uint32_t x11; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x12; uint32_t x13; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x14; uint32_t x15; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x16; uint32_t x17; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x18; uint32_t x19; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x20; uint32_t x21; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x22; uint32_t x23; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x24; uint32_t x25; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x26; uint32_t x27; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x28; uint32_t x29; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x30; uint32_t x31; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x32; uint32_t x33; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x34; uint32_t x35; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x36; uint32_t x37; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x38; uint32_t x39; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x40; uint32_t x41; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x42; uint32_t x43; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x44; uint32_t x45; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x46; uint32_t x47; uint32_t x48; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x49; uint32_t x50; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x51; uint32_t x52; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x53; uint32_t x54; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x55; uint32_t x56; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x57; uint32_t x58; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x59; uint32_t x60; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x61; uint32_t x62; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x63; uint32_t x64; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x65; uint32_t x66; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x67; uint32_t x68; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x69; uint32_t x70; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x71; uint32_t x72; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x73; uint32_t x74; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x75; uint32_t x76; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x77; uint32_t x78; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x79; uint32_t x80; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x81; uint32_t x82; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x83; uint32_t x84; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x85; uint32_t x86; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x87; uint32_t x88; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x89; uint32_t x90; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x91; uint32_t x92; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x93; uint32_t x94; uint32_t x95; uint32_t x96; uint32_t x97; uint32_t x98; uint32_t x99; uint32_t x100; uint32_t x101; uint32_t x102; uint32_t x103; uint32_t x104; uint32_t x105; uint32_t x106; uint32_t x107; uint32_t x108; uint32_t x109; uint32_t x110; uint32_t x111; uint32_t x112; uint32_t x113; uint8_t x114; uint32_t x115; uint8_t x116; uint8_t x117; uint32_t x118; uint8_t x119; uint32_t x120; uint8_t x121; uint32_t x122; uint8_t x123; uint8_t x124; uint32_t x125; uint8_t x126; uint32_t x127; uint8_t x128; uint32_t x129; uint8_t x130; uint8_t x131; uint32_t x132; uint8_t x133; uint32_t x134; uint8_t x135; uint32_t x136; uint8_t x137; uint8_t x138; uint32_t x139; uint8_t x140; uint32_t x141; uint8_t x142; uint8_t x143; uint8_t x144; uint32_t x145; uint8_t x146; uint8_t x147; uint32_t x148; uint8_t x149; uint32_t x150; uint8_t x151; uint32_t x152; uint8_t x153; uint8_t x154; uint32_t x155; uint8_t x156; uint32_t x157; uint8_t x158; uint32_t x159; uint8_t x160; uint8_t x161; uint32_t x162; uint8_t x163; uint32_t x164; uint8_t x165; uint32_t x166; uint8_t x167; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x168; uint32_t x169; uint8_t x170; uint32_t x171; uint8_t x172; uint8_t x173; uint32_t x174; uint8_t x175; uint32_t x176; uint8_t x177; uint32_t x178; uint8_t x179; uint8_t x180; uint32_t x181; uint8_t x182; uint32_t x183; uint8_t x184; uint32_t x185; uint8_t x186; uint8_t x187; uint32_t x188; uint8_t x189; uint32_t x190; uint8_t x191; uint32_t x192; uint8_t x193; uint8_t x194; uint32_t x195; uint8_t x196; uint32_t x197; uint8_t x198; uint8_t x199; uint8_t x200; uint32_t x201; uint8_t x202; uint8_t x203; uint32_t x204; uint8_t x205; uint32_t x206; uint8_t x207; uint32_t x208; uint8_t x209; uint8_t x210; uint32_t x211; uint8_t x212; uint32_t x213; uint8_t x214; uint32_t x215; uint8_t x216; uint8_t x217; uint32_t x218; uint8_t x219; uint32_t x220; uint8_t x221; uint32_t x222; uint8_t x223; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x224; uint32_t x225; uint8_t x226; uint32_t x227; uint8_t x228; uint8_t x229; uint32_t x230; uint8_t x231; uint32_t x232; uint8_t x233; uint32_t x234; uint8_t x235; uint8_t x236; uint32_t x237; uint8_t x238; uint32_t x239; uint8_t x240; uint32_t x241; uint8_t x242; uint8_t x243; uint32_t x244; uint8_t x245; uint32_t x246; uint8_t x247; uint32_t x248; uint8_t x249; uint8_t x250; uint32_t x251; uint8_t x252; uint32_t x253; uint8_t x254; uint8_t x255; fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( &x1, &x2, 0x0, (arg1[0]), UINT32_C(0x7ffdc7)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x3, &x4, x2, (arg1[1]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x5, &x6, x4, (arg1[2]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( &x7, &x8, x6, (arg1[3]), UINT32_C(0x7fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x9, &x10, x8, (arg1[4]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x11, &x12, x10, (arg1[5]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x13, &x14, x12, (arg1[6]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( &x15, &x16, x14, (arg1[7]), UINT32_C(0x7fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x17, &x18, x16, (arg1[8]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x19, &x20, x18, (arg1[9]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x21, &x22, x20, (arg1[10]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( &x23, &x24, x22, (arg1[11]), UINT32_C(0x7fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x25, &x26, x24, (arg1[12]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x27, &x28, x26, (arg1[13]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x29, &x30, x28, (arg1[14]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( &x31, &x32, x30, (arg1[15]), UINT32_C(0x7fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x33, &x34, x32, (arg1[16]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x35, &x36, x34, (arg1[17]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x37, &x38, x36, (arg1[18]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u23( &x39, &x40, x38, (arg1[19]), UINT32_C(0x7fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x41, &x42, x40, (arg1[20]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x43, &x44, x42, (arg1[21]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_subborrowx_u22( &x45, &x46, x44, (arg1[22]), UINT32_C(0x3fffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_cmovznz_u32(&x47, x46, 0x0, UINT32_C(0xffffffff)); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( &x48, &x49, 0x0, x1, (x47 & UINT32_C(0x7ffdc7))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x50, &x51, x49, x3, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x52, &x53, x51, x5, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( &x54, &x55, x53, x7, (x47 & UINT32_C(0x7fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x56, &x57, x55, x9, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x58, &x59, x57, x11, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x60, &x61, x59, x13, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( &x62, &x63, x61, x15, (x47 & UINT32_C(0x7fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x64, &x65, x63, x17, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x66, &x67, x65, x19, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x68, &x69, x67, x21, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( &x70, &x71, x69, x23, (x47 & UINT32_C(0x7fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x72, &x73, x71, x25, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x74, &x75, x73, x27, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x76, &x77, x75, x29, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( &x78, &x79, x77, x31, (x47 & UINT32_C(0x7fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x80, &x81, x79, x33, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x82, &x83, x81, x35, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x84, &x85, x83, x37, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u23( &x86, &x87, x85, x39, (x47 & UINT32_C(0x7fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x88, &x89, x87, x41, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x90, &x91, x89, x43, (x47 & UINT32_C(0x3fffff))); fiat_id_tc26_gost_3410_2012_512_paramSetC_addcarryx_u22( &x92, &x93, x91, x45, (x47 & UINT32_C(0x3fffff))); x94 = (x92 << 2); x95 = (x90 << 4); x96 = (x88 << 6); x97 = (x86 << 7); x98 = (x84 * (uint32_t)0x2); x99 = (x82 << 3); x100 = (x80 << 5); x101 = (x78 << 6); x102 = (x74 << 2); x103 = (x72 << 4); x104 = (x70 << 5); x105 = (x68 << 7); x106 = (x66 * (uint32_t)0x2); x107 = (x64 << 3); x108 = (x62 << 4); x109 = (x60 << 6); x110 = (x56 << 2); x111 = (x54 << 3); x112 = (x52 << 5); x113 = (x50 << 7); x114 = (uint8_t)(x48 & UINT8_C(0xff)); x115 = (x48 >> 8); x116 = (uint8_t)(x115 & UINT8_C(0xff)); x117 = (uint8_t)(x115 >> 8); x118 = (x113 + (uint32_t)x117); x119 = (uint8_t)(x118 & UINT8_C(0xff)); x120 = (x118 >> 8); x121 = (uint8_t)(x120 & UINT8_C(0xff)); x122 = (x120 >> 8); x123 = (uint8_t)(x122 & UINT8_C(0xff)); x124 = (uint8_t)(x122 >> 8); x125 = (x112 + (uint32_t)x124); x126 = (uint8_t)(x125 & UINT8_C(0xff)); x127 = (x125 >> 8); x128 = (uint8_t)(x127 & UINT8_C(0xff)); x129 = (x127 >> 8); x130 = (uint8_t)(x129 & UINT8_C(0xff)); x131 = (uint8_t)(x129 >> 8); x132 = (x111 + (uint32_t)x131); x133 = (uint8_t)(x132 & UINT8_C(0xff)); x134 = (x132 >> 8); x135 = (uint8_t)(x134 & UINT8_C(0xff)); x136 = (x134 >> 8); x137 = (uint8_t)(x136 & UINT8_C(0xff)); x138 = (uint8_t)(x136 >> 8); x139 = (x110 + (uint32_t)x138); x140 = (uint8_t)(x139 & UINT8_C(0xff)); x141 = (x139 >> 8); x142 = (uint8_t)(x141 & UINT8_C(0xff)); x143 = (uint8_t)(x141 >> 8); x144 = (uint8_t)(x58 & UINT8_C(0xff)); x145 = (x58 >> 8); x146 = (uint8_t)(x145 & UINT8_C(0xff)); x147 = (uint8_t)(x145 >> 8); x148 = (x109 + (uint32_t)x147); x149 = (uint8_t)(x148 & UINT8_C(0xff)); x150 = (x148 >> 8); x151 = (uint8_t)(x150 & UINT8_C(0xff)); x152 = (x150 >> 8); x153 = (uint8_t)(x152 & UINT8_C(0xff)); x154 = (uint8_t)(x152 >> 8); x155 = (x108 + (uint32_t)x154); x156 = (uint8_t)(x155 & UINT8_C(0xff)); x157 = (x155 >> 8); x158 = (uint8_t)(x157 & UINT8_C(0xff)); x159 = (x157 >> 8); x160 = (uint8_t)(x159 & UINT8_C(0xff)); x161 = (uint8_t)(x159 >> 8); x162 = (x107 + (uint32_t)x161); x163 = (uint8_t)(x162 & UINT8_C(0xff)); x164 = (x162 >> 8); x165 = (uint8_t)(x164 & UINT8_C(0xff)); x166 = (x164 >> 8); x167 = (uint8_t)(x166 & UINT8_C(0xff)); x168 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x166 >> 8); x169 = (x106 + (uint32_t)x168); x170 = (uint8_t)(x169 & UINT8_C(0xff)); x171 = (x169 >> 8); x172 = (uint8_t)(x171 & UINT8_C(0xff)); x173 = (uint8_t)(x171 >> 8); x174 = (x105 + (uint32_t)x173); x175 = (uint8_t)(x174 & UINT8_C(0xff)); x176 = (x174 >> 8); x177 = (uint8_t)(x176 & UINT8_C(0xff)); x178 = (x176 >> 8); x179 = (uint8_t)(x178 & UINT8_C(0xff)); x180 = (uint8_t)(x178 >> 8); x181 = (x104 + (uint32_t)x180); x182 = (uint8_t)(x181 & UINT8_C(0xff)); x183 = (x181 >> 8); x184 = (uint8_t)(x183 & UINT8_C(0xff)); x185 = (x183 >> 8); x186 = (uint8_t)(x185 & UINT8_C(0xff)); x187 = (uint8_t)(x185 >> 8); x188 = (x103 + (uint32_t)x187); x189 = (uint8_t)(x188 & UINT8_C(0xff)); x190 = (x188 >> 8); x191 = (uint8_t)(x190 & UINT8_C(0xff)); x192 = (x190 >> 8); x193 = (uint8_t)(x192 & UINT8_C(0xff)); x194 = (uint8_t)(x192 >> 8); x195 = (x102 + (uint32_t)x194); x196 = (uint8_t)(x195 & UINT8_C(0xff)); x197 = (x195 >> 8); x198 = (uint8_t)(x197 & UINT8_C(0xff)); x199 = (uint8_t)(x197 >> 8); x200 = (uint8_t)(x76 & UINT8_C(0xff)); x201 = (x76 >> 8); x202 = (uint8_t)(x201 & UINT8_C(0xff)); x203 = (uint8_t)(x201 >> 8); x204 = (x101 + (uint32_t)x203); x205 = (uint8_t)(x204 & UINT8_C(0xff)); x206 = (x204 >> 8); x207 = (uint8_t)(x206 & UINT8_C(0xff)); x208 = (x206 >> 8); x209 = (uint8_t)(x208 & UINT8_C(0xff)); x210 = (uint8_t)(x208 >> 8); x211 = (x100 + (uint32_t)x210); x212 = (uint8_t)(x211 & UINT8_C(0xff)); x213 = (x211 >> 8); x214 = (uint8_t)(x213 & UINT8_C(0xff)); x215 = (x213 >> 8); x216 = (uint8_t)(x215 & UINT8_C(0xff)); x217 = (uint8_t)(x215 >> 8); x218 = (x99 + (uint32_t)x217); x219 = (uint8_t)(x218 & UINT8_C(0xff)); x220 = (x218 >> 8); x221 = (uint8_t)(x220 & UINT8_C(0xff)); x222 = (x220 >> 8); x223 = (uint8_t)(x222 & UINT8_C(0xff)); x224 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x222 >> 8); x225 = (x98 + (uint32_t)x224); x226 = (uint8_t)(x225 & UINT8_C(0xff)); x227 = (x225 >> 8); x228 = (uint8_t)(x227 & UINT8_C(0xff)); x229 = (uint8_t)(x227 >> 8); x230 = (x97 + (uint32_t)x229); x231 = (uint8_t)(x230 & UINT8_C(0xff)); x232 = (x230 >> 8); x233 = (uint8_t)(x232 & UINT8_C(0xff)); x234 = (x232 >> 8); x235 = (uint8_t)(x234 & UINT8_C(0xff)); x236 = (uint8_t)(x234 >> 8); x237 = (x96 + (uint32_t)x236); x238 = (uint8_t)(x237 & UINT8_C(0xff)); x239 = (x237 >> 8); x240 = (uint8_t)(x239 & UINT8_C(0xff)); x241 = (x239 >> 8); x242 = (uint8_t)(x241 & UINT8_C(0xff)); x243 = (uint8_t)(x241 >> 8); x244 = (x95 + (uint32_t)x243); x245 = (uint8_t)(x244 & UINT8_C(0xff)); x246 = (x244 >> 8); x247 = (uint8_t)(x246 & UINT8_C(0xff)); x248 = (x246 >> 8); x249 = (uint8_t)(x248 & UINT8_C(0xff)); x250 = (uint8_t)(x248 >> 8); x251 = (x94 + (uint32_t)x250); x252 = (uint8_t)(x251 & UINT8_C(0xff)); x253 = (x251 >> 8); x254 = (uint8_t)(x253 & UINT8_C(0xff)); x255 = (uint8_t)(x253 >> 8); out1[0] = x114; out1[1] = x116; out1[2] = x119; out1[3] = x121; out1[4] = x123; out1[5] = x126; out1[6] = x128; out1[7] = x130; out1[8] = x133; out1[9] = x135; out1[10] = x137; out1[11] = x140; out1[12] = x142; out1[13] = x143; out1[14] = x144; out1[15] = x146; out1[16] = x149; out1[17] = x151; out1[18] = x153; out1[19] = x156; out1[20] = x158; out1[21] = x160; out1[22] = x163; out1[23] = x165; out1[24] = x167; out1[25] = x170; out1[26] = x172; out1[27] = x175; out1[28] = x177; out1[29] = x179; out1[30] = x182; out1[31] = x184; out1[32] = x186; out1[33] = x189; out1[34] = x191; out1[35] = x193; out1[36] = x196; out1[37] = x198; out1[38] = x199; out1[39] = x200; out1[40] = x202; out1[41] = x205; out1[42] = x207; out1[43] = x209; out1[44] = x212; out1[45] = x214; out1[46] = x216; out1[47] = x219; out1[48] = x221; out1[49] = x223; out1[50] = x226; out1[51] = x228; out1[52] = x231; out1[53] = x233; out1[54] = x235; out1[55] = x238; out1[56] = x240; out1[57] = x242; out1[58] = x245; out1[59] = x247; out1[60] = x249; out1[61] = x252; out1[62] = x254; out1[63] = x255; } /* * The function fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes deserializes a field element from bytes in little-endian order. * Postconditions: * eval out1 mod m = bytes_eval arg1 mod m * * Input Bounds: * arg1: [[0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff], [0x0 ~> 0xff]] * Output Bounds: * out1: [[0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x800000], [0x0 ~> 0x400000], [0x0 ~> 0x400000], [0x0 ~> 0x400000]] */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes( uint32_t out1[23], const uint8_t arg1[64]) { uint32_t x1; uint32_t x2; uint32_t x3; uint32_t x4; uint32_t x5; uint32_t x6; uint32_t x7; uint32_t x8; uint32_t x9; uint32_t x10; uint32_t x11; uint32_t x12; uint32_t x13; uint32_t x14; uint32_t x15; uint32_t x16; uint32_t x17; uint32_t x18; uint32_t x19; uint32_t x20; uint32_t x21; uint32_t x22; uint32_t x23; uint32_t x24; uint8_t x25; uint32_t x26; uint32_t x27; uint32_t x28; uint32_t x29; uint32_t x30; uint32_t x31; uint32_t x32; uint32_t x33; uint32_t x34; uint32_t x35; uint32_t x36; uint32_t x37; uint32_t x38; uint32_t x39; uint32_t x40; uint32_t x41; uint32_t x42; uint32_t x43; uint32_t x44; uint32_t x45; uint32_t x46; uint32_t x47; uint32_t x48; uint32_t x49; uint8_t x50; uint32_t x51; uint32_t x52; uint32_t x53; uint32_t x54; uint32_t x55; uint32_t x56; uint32_t x57; uint32_t x58; uint32_t x59; uint32_t x60; uint32_t x61; uint32_t x62; uint32_t x63; uint8_t x64; uint32_t x65; uint32_t x66; uint32_t x67; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x68; uint32_t x69; uint32_t x70; uint32_t x71; uint32_t x72; uint8_t x73; uint32_t x74; uint32_t x75; uint32_t x76; uint32_t x77; uint8_t x78; uint32_t x79; uint32_t x80; uint32_t x81; uint32_t x82; uint8_t x83; uint32_t x84; uint32_t x85; uint32_t x86; uint32_t x87; uint32_t x88; uint8_t x89; uint32_t x90; uint32_t x91; uint32_t x92; uint32_t x93; uint8_t x94; uint32_t x95; uint32_t x96; uint32_t x97; uint32_t x98; uint8_t x99; uint32_t x100; uint32_t x101; uint32_t x102; uint32_t x103; uint8_t x104; uint32_t x105; uint32_t x106; uint32_t x107; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x108; uint32_t x109; uint32_t x110; uint32_t x111; uint32_t x112; uint8_t x113; uint32_t x114; uint32_t x115; uint32_t x116; uint32_t x117; uint8_t x118; uint32_t x119; uint32_t x120; uint32_t x121; uint32_t x122; uint8_t x123; uint32_t x124; uint32_t x125; uint32_t x126; uint32_t x127; uint32_t x128; uint8_t x129; uint32_t x130; uint32_t x131; uint32_t x132; uint32_t x133; uint8_t x134; uint32_t x135; uint32_t x136; uint32_t x137; uint32_t x138; uint8_t x139; uint32_t x140; uint32_t x141; uint32_t x142; uint32_t x143; uint8_t x144; uint32_t x145; uint32_t x146; uint32_t x147; fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x148; uint32_t x149; uint32_t x150; uint32_t x151; uint32_t x152; uint8_t x153; uint32_t x154; uint32_t x155; uint32_t x156; uint32_t x157; uint8_t x158; uint32_t x159; uint32_t x160; uint32_t x161; uint32_t x162; uint8_t x163; uint32_t x164; uint32_t x165; x1 = ((uint32_t)(arg1[63]) << 14); x2 = ((uint32_t)(arg1[62]) << 6); x3 = ((uint32_t)(arg1[61]) << 20); x4 = ((uint32_t)(arg1[60]) << 12); x5 = ((uint32_t)(arg1[59]) << 4); x6 = ((uint32_t)(arg1[58]) << 18); x7 = ((uint32_t)(arg1[57]) << 10); x8 = ((uint32_t)(arg1[56]) << 2); x9 = ((uint32_t)(arg1[55]) << 17); x10 = ((uint32_t)(arg1[54]) << 9); x11 = ((uint32_t)(arg1[53]) * 0x2); x12 = ((uint32_t)(arg1[52]) << 15); x13 = ((uint32_t)(arg1[51]) << 7); x14 = ((uint32_t)(arg1[50]) << 21); x15 = ((uint32_t)(arg1[49]) << 13); x16 = ((uint32_t)(arg1[48]) << 5); x17 = ((uint32_t)(arg1[47]) << 19); x18 = ((uint32_t)(arg1[46]) << 11); x19 = ((uint32_t)(arg1[45]) << 3); x20 = ((uint32_t)(arg1[44]) << 18); x21 = ((uint32_t)(arg1[43]) << 10); x22 = ((uint32_t)(arg1[42]) << 2); x23 = ((uint32_t)(arg1[41]) << 16); x24 = ((uint32_t)(arg1[40]) << 8); x25 = (arg1[39]); x26 = ((uint32_t)(arg1[38]) << 14); x27 = ((uint32_t)(arg1[37]) << 6); x28 = ((uint32_t)(arg1[36]) << 20); x29 = ((uint32_t)(arg1[35]) << 12); x30 = ((uint32_t)(arg1[34]) << 4); x31 = ((uint32_t)(arg1[33]) << 19); x32 = ((uint32_t)(arg1[32]) << 11); x33 = ((uint32_t)(arg1[31]) << 3); x34 = ((uint32_t)(arg1[30]) << 17); x35 = ((uint32_t)(arg1[29]) << 9); x36 = ((uint32_t)(arg1[28]) * 0x2); x37 = ((uint32_t)(arg1[27]) << 15); x38 = ((uint32_t)(arg1[26]) << 7); x39 = ((uint32_t)(arg1[25]) << 21); x40 = ((uint32_t)(arg1[24]) << 13); x41 = ((uint32_t)(arg1[23]) << 5); x42 = ((uint32_t)(arg1[22]) << 20); x43 = ((uint32_t)(arg1[21]) << 12); x44 = ((uint32_t)(arg1[20]) << 4); x45 = ((uint32_t)(arg1[19]) << 18); x46 = ((uint32_t)(arg1[18]) << 10); x47 = ((uint32_t)(arg1[17]) << 2); x48 = ((uint32_t)(arg1[16]) << 16); x49 = ((uint32_t)(arg1[15]) << 8); x50 = (arg1[14]); x51 = ((uint32_t)(arg1[13]) << 14); x52 = ((uint32_t)(arg1[12]) << 6); x53 = ((uint32_t)(arg1[11]) << 21); x54 = ((uint32_t)(arg1[10]) << 13); x55 = ((uint32_t)(arg1[9]) << 5); x56 = ((uint32_t)(arg1[8]) << 19); x57 = ((uint32_t)(arg1[7]) << 11); x58 = ((uint32_t)(arg1[6]) << 3); x59 = ((uint32_t)(arg1[5]) << 17); x60 = ((uint32_t)(arg1[4]) << 9); x61 = ((uint32_t)(arg1[3]) * 0x2); x62 = ((uint32_t)(arg1[2]) << 16); x63 = ((uint32_t)(arg1[1]) << 8); x64 = (arg1[0]); x65 = (x63 + (uint32_t)x64); x66 = (x62 + x65); x67 = (x66 & UINT32_C(0x7fffff)); x68 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x66 >> 23); x69 = (x61 + (uint32_t)x68); x70 = (x60 + x69); x71 = (x59 + x70); x72 = (x71 & UINT32_C(0x3fffff)); x73 = (uint8_t)(x71 >> 22); x74 = (x58 + (uint32_t)x73); x75 = (x57 + x74); x76 = (x56 + x75); x77 = (x76 & UINT32_C(0x3fffff)); x78 = (uint8_t)(x76 >> 22); x79 = (x55 + (uint32_t)x78); x80 = (x54 + x79); x81 = (x53 + x80); x82 = (x81 & UINT32_C(0x7fffff)); x83 = (uint8_t)(x81 >> 23); x84 = (x52 + (uint32_t)x83); x85 = (x51 + x84); x86 = (x49 + (uint32_t)x50); x87 = (x48 + x86); x88 = (x87 & UINT32_C(0x3fffff)); x89 = (uint8_t)(x87 >> 22); x90 = (x47 + (uint32_t)x89); x91 = (x46 + x90); x92 = (x45 + x91); x93 = (x92 & UINT32_C(0x3fffff)); x94 = (uint8_t)(x92 >> 22); x95 = (x44 + (uint32_t)x94); x96 = (x43 + x95); x97 = (x42 + x96); x98 = (x97 & UINT32_C(0x7fffff)); x99 = (uint8_t)(x97 >> 23); x100 = (x41 + (uint32_t)x99); x101 = (x40 + x100); x102 = (x39 + x101); x103 = (x102 & UINT32_C(0x3fffff)); x104 = (uint8_t)(x102 >> 22); x105 = (x38 + (uint32_t)x104); x106 = (x37 + x105); x107 = (x106 & UINT32_C(0x3fffff)); x108 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x106 >> 22); x109 = (x36 + (uint32_t)x108); x110 = (x35 + x109); x111 = (x34 + x110); x112 = (x111 & UINT32_C(0x3fffff)); x113 = (uint8_t)(x111 >> 22); x114 = (x33 + (uint32_t)x113); x115 = (x32 + x114); x116 = (x31 + x115); x117 = (x116 & UINT32_C(0x7fffff)); x118 = (uint8_t)(x116 >> 23); x119 = (x30 + (uint32_t)x118); x120 = (x29 + x119); x121 = (x28 + x120); x122 = (x121 & UINT32_C(0x3fffff)); x123 = (uint8_t)(x121 >> 22); x124 = (x27 + (uint32_t)x123); x125 = (x26 + x124); x126 = (x24 + (uint32_t)x25); x127 = (x23 + x126); x128 = (x127 & UINT32_C(0x3fffff)); x129 = (uint8_t)(x127 >> 22); x130 = (x22 + (uint32_t)x129); x131 = (x21 + x130); x132 = (x20 + x131); x133 = (x132 & UINT32_C(0x7fffff)); x134 = (uint8_t)(x132 >> 23); x135 = (x19 + (uint32_t)x134); x136 = (x18 + x135); x137 = (x17 + x136); x138 = (x137 & UINT32_C(0x3fffff)); x139 = (uint8_t)(x137 >> 22); x140 = (x16 + (uint32_t)x139); x141 = (x15 + x140); x142 = (x14 + x141); x143 = (x142 & UINT32_C(0x3fffff)); x144 = (uint8_t)(x142 >> 22); x145 = (x13 + (uint32_t)x144); x146 = (x12 + x145); x147 = (x146 & UINT32_C(0x3fffff)); x148 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x146 >> 22); x149 = (x11 + (uint32_t)x148); x150 = (x10 + x149); x151 = (x9 + x150); x152 = (x151 & UINT32_C(0x7fffff)); x153 = (uint8_t)(x151 >> 23); x154 = (x8 + (uint32_t)x153); x155 = (x7 + x154); x156 = (x6 + x155); x157 = (x156 & UINT32_C(0x3fffff)); x158 = (uint8_t)(x156 >> 22); x159 = (x5 + (uint32_t)x158); x160 = (x4 + x159); x161 = (x3 + x160); x162 = (x161 & UINT32_C(0x3fffff)); x163 = (uint8_t)(x161 >> 22); x164 = (x2 + (uint32_t)x163); x165 = (x1 + x164); out1[0] = x67; out1[1] = x72; out1[2] = x77; out1[3] = x82; out1[4] = x85; out1[5] = x88; out1[6] = x93; out1[7] = x98; out1[8] = x103; out1[9] = x107; out1[10] = x112; out1[11] = x117; out1[12] = x122; out1[13] = x125; out1[14] = x128; out1[15] = x133; out1[16] = x138; out1[17] = x143; out1[18] = x147; out1[19] = x152; out1[20] = x157; out1[21] = x162; out1[22] = x165; } /* END verbatim fiat code */ /*- * Finite field inversion via FLT. * NB: this is not a real Fiat function, just named that way for consistency. * Autogenerated: ecp/id_tc26_gost_3410_2012_512_paramSetC/fe_inv.op3 * custom repunit addition chain */ static void fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(fe_t output, const fe_t t1) { int i; /* temporary variables */ fe_t acc, t102, t12, t198, t2, t200, t24, t3, t400, t48, t502, t6, t96; fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, acc, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t3, acc, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t3); for (i = 0; i < 2; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t6, acc, t3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t6); for (i = 0; i < 5; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t12, acc, t6); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t12); for (i = 0; i < 11; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t24, acc, t12); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t24); for (i = 0; i < 23; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t48, acc, t24); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t48); for (i = 0; i < 47; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t96, acc, t48); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t96); for (i = 0; i < 5; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t102, acc, t6); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t102); for (i = 0; i < 95; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t198, acc, t96); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t198); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t200, acc, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t200); for (i = 0; i < 199; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t400, acc, t200); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t400); for (i = 0; i < 101; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t502, acc, t102); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, t502); for (i = 0; i < 3; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(acc, acc, t3); for (i = 0; i < 4; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(acc, acc, t1); for (i = 0; i < 2; i++) fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(acc, acc); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(output, acc, t1); } /* curve coefficient constants */ static const limb_t const_one[23] = { UINT32_C(0x00000001), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000)}; static const limb_t const_d[23] = { UINT32_C(0x006E7550), UINT32_C(0x001B7667), UINT32_C(0x00265181), UINT32_C(0x00054456), UINT32_C(0x0033F0AF), UINT32_C(0x001E91A0), UINT32_C(0x001E78DA), UINT32_C(0x002CE43E), UINT32_C(0x0016609C), UINT32_C(0x0028AE03), UINT32_C(0x00273C14), UINT32_C(0x001CE535), UINT32_C(0x00210504), UINT32_C(0x000A2818), UINT32_C(0x0031EBDE), UINT32_C(0x00506638), UINT32_C(0x001A016A), UINT32_C(0x003FC9B5), UINT32_C(0x001E6FAD), UINT32_C(0x00274B9E), UINT32_C(0x0036367C), UINT32_C(0x0018C017), UINT32_C(0x002793D7)}; static const limb_t const_S[23] = { UINT32_C(0x0004621E), UINT32_C(0x00292266), UINT32_C(0x00166B9F), UINT32_C(0x001EAEEA), UINT32_C(0x003303D4), UINT32_C(0x00185B97), UINT32_C(0x001861C9), UINT32_C(0x0074C6F0), UINT32_C(0x000A67D8), UINT32_C(0x0035D47F), UINT32_C(0x002630FA), UINT32_C(0x0078C6B2), UINT32_C(0x0037BEBE), UINT32_C(0x001D75F9), UINT32_C(0x00338508), UINT32_C(0x002BE671), UINT32_C(0x00297FA5), UINT32_C(0x00200D92), UINT32_C(0x00186414), UINT32_C(0x00762D18), UINT32_C(0x00027260), UINT32_C(0x0009CFFA), UINT32_C(0x00061B0A)}; static const limb_t const_T[23] = { UINT32_C(0x007D1271), UINT32_C(0x002493BB), UINT32_C(0x00310D95), UINT32_C(0x006B8B63), UINT32_C(0x003352C7), UINT32_C(0x001A6D9A), UINT32_C(0x00051424), UINT32_C(0x005CD0B5), UINT32_C(0x0023BAC4), UINT32_C(0x001C1D00), UINT32_C(0x00268A03), UINT32_C(0x005A2633), UINT32_C(0x00302B80), UINT32_C(0x001706AE), UINT32_C(0x000851FA), UINT32_C(0x0062BBB4), UINT32_C(0x00245591), UINT32_C(0x003FF6F3), UINT32_C(0x0005129C), UINT32_C(0x00313745), UINT32_C(0x0013B3BF), UINT32_C(0x00397559), UINT32_C(0x002698A3)}; /* LUT for scalar multiplication by comb interleaving */ static const pt_aff_t lut_cmb[7][16] = { { {{UINT32_C(0x00000012), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000), UINT32_C(0x00000000)}, {UINT32_C(0x00001A3D), UINT32_C(0x0007DCE6), UINT32_C(0x003B0018), UINT32_C(0x0065755C), UINT32_C(0x0008B012), UINT32_C(0x00309056), UINT32_C(0x000E5CCB), UINT32_C(0x0068C5D1), UINT32_C(0x003DD7E0), UINT32_C(0x00067BC4), UINT32_C(0x003A96CA), UINT32_C(0x0034A916), UINT32_C(0x0037B386), UINT32_C(0x0015845F), UINT32_C(0x00368D9A), UINT32_C(0x00405E50), UINT32_C(0x003EFD86), UINT32_C(0x0003C541), UINT32_C(0x0015BBD0), UINT32_C(0x005732B2), UINT32_C(0x0007D785), UINT32_C(0x0039D1FB), UINT32_C(0x0011A6BD)}, {UINT32_C(0x0001E12E), UINT32_C(0x000D882C), UINT32_C(0x002601B2), UINT32_C(0x00224088), UINT32_C(0x001C6152), UINT32_C(0x002A260E), UINT32_C(0x00028653), UINT32_C(0x005DE8B6), UINT32_C(0x00192DCE), UINT32_C(0x0034B3D9), UINT32_C(0x001E9A35), UINT32_C(0x0033E39C), UINT32_C(0x002A9F73), UINT32_C(0x00034EBD), UINT32_C(0x0015F4DA), UINT32_C(0x0006A1AF), UINT32_C(0x002DD375), UINT32_C(0x0003DEA3), UINT32_C(0x000734A1), UINT32_C(0x0021908A), UINT32_C(0x000D2766), UINT32_C(0x0010C3A8), UINT32_C(0x003DB95A)}}, {{UINT32_C(0x00714838), UINT32_C(0x003864C7), UINT32_C(0x0015E5EE), UINT32_C(0x0023E2F6), UINT32_C(0x0001272F), UINT32_C(0x00115410), UINT32_C(0x003575F4), UINT32_C(0x00599E80), UINT32_C(0x001911C3), UINT32_C(0x0016A65A), UINT32_C(0x001D472E), UINT32_C(0x006F3D5B), UINT32_C(0x0010340F), UINT32_C(0x000E837F), UINT32_C(0x0027C450), UINT32_C(0x007123EC), UINT32_C(0x0028CF66), UINT32_C(0x000CD738), UINT32_C(0x00028A9A), UINT32_C(0x000CAEE3), UINT32_C(0x00261B2D), UINT32_C(0x001B65D5), UINT32_C(0x0003754B)}, {UINT32_C(0x0062FF0C), UINT32_C(0x0039AC13), UINT32_C(0x003468DD), UINT32_C(0x005CFC63), UINT32_C(0x0003F7D2), UINT32_C(0x00370AE6), UINT32_C(0x0036C17A), UINT32_C(0x001D053E), UINT32_C(0x0004E79D), UINT32_C(0x00268C78), UINT32_C(0x0038AB40), UINT32_C(0x007DDB1E), UINT32_C(0x003B4D93), UINT32_C(0x003572D3), UINT32_C(0x00124D45), UINT32_C(0x0072B7DA), UINT32_C(0x0018E151), UINT32_C(0x001874E3), UINT32_C(0x00372E71), UINT32_C(0x00505781), UINT32_C(0x0019B7EF), UINT32_C(0x00225C53), UINT32_C(0x00008A46)}, {UINT32_C(0x00224325), UINT32_C(0x001B6A98), UINT32_C(0x003712F0), UINT32_C(0x0029896C), UINT32_C(0x00276411), UINT32_C(0x00312C3D), UINT32_C(0x003C91A0), UINT32_C(0x005E5815), UINT32_C(0x00297712), UINT32_C(0x003DE7C7), UINT32_C(0x002D1F5F), UINT32_C(0x002BD84B), UINT32_C(0x0031E9D5), UINT32_C(0x00049136), UINT32_C(0x001802F2), UINT32_C(0x002F8CF5), UINT32_C(0x002DB47F), UINT32_C(0x00132C57), UINT32_C(0x000A8508), UINT32_C(0x003D2B4C), UINT32_C(0x0028BD48), UINT32_C(0x001D60C1), UINT32_C(0x003E0AA0)}}, {{UINT32_C(0x0030B9C8), UINT32_C(0x002685FC), UINT32_C(0x001B92BC), UINT32_C(0x0018DFEF), UINT32_C(0x0022306A), UINT32_C(0x0011C069), UINT32_C(0x003EB95C), UINT32_C(0x003F5EF0), UINT32_C(0x0007C592), UINT32_C(0x00381817), UINT32_C(0x0010861D), UINT32_C(0x0004D484), UINT32_C(0x0023D575), UINT32_C(0x003F10B5), UINT32_C(0x000A70AA), UINT32_C(0x004D7662), UINT32_C(0x000DD1AA), UINT32_C(0x003FD38C), UINT32_C(0x000A6668), UINT32_C(0x0025165D), UINT32_C(0x00181E91), UINT32_C(0x000E23E5), UINT32_C(0x00269040)}, {UINT32_C(0x00341E21), UINT32_C(0x00257531), UINT32_C(0x000967CF), UINT32_C(0x0019BA94), UINT32_C(0x00151857), UINT32_C(0x0019AA1E), UINT32_C(0x0007DC17), UINT32_C(0x0011DB85), UINT32_C(0x002D3151), UINT32_C(0x002CEDD2), UINT32_C(0x0024E69B), UINT32_C(0x001A161C), UINT32_C(0x001A4C0C), UINT32_C(0x000AF920), UINT32_C(0x00070D8C), UINT32_C(0x006577B1), UINT32_C(0x0020BA5B), UINT32_C(0x003E2CB7), UINT32_C(0x002FDC2A), UINT32_C(0x0035FBC6), UINT32_C(0x0022FA7D), UINT32_C(0x0033F920), UINT32_C(0x00271D0D)}, {UINT32_C(0x005E541E), UINT32_C(0x001D52C8), UINT32_C(0x001062DD), UINT32_C(0x0024B0B7), UINT32_C(0x0038AB52), UINT32_C(0x00390136), UINT32_C(0x000229FC), UINT32_C(0x00083904), UINT32_C(0x001D494F), UINT32_C(0x003390EA), UINT32_C(0x002173E5), UINT32_C(0x003C560E), UINT32_C(0x002DBD84), UINT32_C(0x0005F4E6), UINT32_C(0x0027C060), UINT32_C(0x00018F19), UINT32_C(0x00021C09), UINT32_C(0x002C4427), UINT32_C(0x002AF1D0), UINT32_C(0x00137D94), UINT32_C(0x00398A24), UINT32_C(0x0015C3EE), UINT32_C(0x002465FE)}}, {{UINT32_C(0x00323C86), UINT32_C(0x00177FDA), UINT32_C(0x0039B750), UINT32_C(0x00273D46), UINT32_C(0x0017FBDD), UINT32_C(0x002CF518), UINT32_C(0x000BBF36), UINT32_C(0x005C0328), UINT32_C(0x002CE181), UINT32_C(0x00006A3B), UINT32_C(0x000E6E58), UINT32_C(0x000239AB), UINT32_C(0x0034C2CE), UINT32_C(0x00074E3E), UINT32_C(0x003363F2), UINT32_C(0x00095FCE), UINT32_C(0x0011CAA2), UINT32_C(0x0020BAF6), UINT32_C(0x0033EA63), UINT32_C(0x0066A91E), UINT32_C(0x002CC83A), UINT32_C(0x000D84AE), UINT32_C(0x001B7D65)}, {UINT32_C(0x004CD0FD), UINT32_C(0x002320B8), UINT32_C(0x001CB711), UINT32_C(0x00404C3F), UINT32_C(0x003A65B2), UINT32_C(0x00256419), UINT32_C(0x00163A1D), UINT32_C(0x007E15F5), UINT32_C(0x00302B21), UINT32_C(0x000C47D7), UINT32_C(0x003C9CBF), UINT32_C(0x002DA840), UINT32_C(0x00354B2A), UINT32_C(0x00019F94), UINT32_C(0x0005E8B1), UINT32_C(0x002B8F3D), UINT32_C(0x0026C85C), UINT32_C(0x001F3DD4), UINT32_C(0x00251D66), UINT32_C(0x0048EC35), UINT32_C(0x00206268), UINT32_C(0x002913A7), UINT32_C(0x001F1F83)}, {UINT32_C(0x0077F340), UINT32_C(0x0008D7FB), UINT32_C(0x0029E763), UINT32_C(0x00797AAF), UINT32_C(0x00060644), UINT32_C(0x00035A5C), UINT32_C(0x00009727), UINT32_C(0x00626D74), UINT32_C(0x00249825), UINT32_C(0x00181FBF), UINT32_C(0x00083B0B), UINT32_C(0x0006F875), UINT32_C(0x00331E5F), UINT32_C(0x00343541), UINT32_C(0x0037AD03), UINT32_C(0x0004A743), UINT32_C(0x0018465B), UINT32_C(0x00203D5A), UINT32_C(0x002CA6BE), UINT32_C(0x0008AAB6), UINT32_C(0x00181A90), UINT32_C(0x002D8F7B), UINT32_C(0x00153EB7)}}, {{UINT32_C(0x0018A411), UINT32_C(0x003A0221), UINT32_C(0x003C31B0), UINT32_C(0x00798D8F), UINT32_C(0x002E6982), UINT32_C(0x003E68C9), UINT32_C(0x0011C222), UINT32_C(0x004A377B), UINT32_C(0x001B47F3), UINT32_C(0x003998D9), UINT32_C(0x0014AB3E), UINT32_C(0x0058D2AA), UINT32_C(0x0004E849), UINT32_C(0x001856B6), UINT32_C(0x0009B3EA), UINT32_C(0x0032F37E), UINT32_C(0x0021A719), UINT32_C(0x002BD295), UINT32_C(0x0014959E), UINT32_C(0x0025E386), UINT32_C(0x003F0C52), UINT32_C(0x003FCEAA), UINT32_C(0x00263172)}, {UINT32_C(0x001A14E2), UINT32_C(0x001F7D87), UINT32_C(0x0030183E), UINT32_C(0x006D32ED), UINT32_C(0x002DF898), UINT32_C(0x002CEF71), UINT32_C(0x002646CB), UINT32_C(0x001B0DAD), UINT32_C(0x001A7601), UINT32_C(0x0020A57E), UINT32_C(0x0008D5E8), UINT32_C(0x003FAF5F), UINT32_C(0x00128ED4), UINT32_C(0x0025B18D), UINT32_C(0x002F0FA9), UINT32_C(0x003A6179), UINT32_C(0x00078264), UINT32_C(0x00351FE0), UINT32_C(0x00074564), UINT32_C(0x001FB814), UINT32_C(0x003C2C48), UINT32_C(0x00164834), UINT32_C(0x00270D18)}, {UINT32_C(0x0033F8B7), UINT32_C(0x002F3A9D), UINT32_C(0x000E251A), UINT32_C(0x0030DA6B), UINT32_C(0x0026849C), UINT32_C(0x002D0B0C), UINT32_C(0x002C4BF7), UINT32_C(0x00515301), UINT32_C(0x00036F37), UINT32_C(0x000A9DBF), UINT32_C(0x00298CD0), UINT32_C(0x0024A32B), UINT32_C(0x0026D945), UINT32_C(0x002C3300), UINT32_C(0x00268566), UINT32_C(0x001E4819), UINT32_C(0x00102918), UINT32_C(0x00235296), UINT32_C(0x001B311B), UINT32_C(0x007F2404), UINT32_C(0x0038D33D), UINT32_C(0x001E3550), UINT32_C(0x00090157)}}, {{UINT32_C(0x00320711), UINT32_C(0x00340698), UINT32_C(0x001F056A), UINT32_C(0x003BD939), UINT32_C(0x003171B5), UINT32_C(0x0038A716), UINT32_C(0x0015FA28), UINT32_C(0x0064ADE0), UINT32_C(0x000F0671), UINT32_C(0x001DCC6E), UINT32_C(0x0021080E), UINT32_C(0x004176EE), UINT32_C(0x003EEFBE), UINT32_C(0x0014ABF9), UINT32_C(0x0011CE49), UINT32_C(0x005C1B2A), UINT32_C(0x001DCCBC), UINT32_C(0x000F5858), UINT32_C(0x0014B76C), UINT32_C(0x002FEF68), UINT32_C(0x0013BBA8), UINT32_C(0x00271302), UINT32_C(0x002A675D)}, {UINT32_C(0x0022D5DC), UINT32_C(0x00189878), UINT32_C(0x003957D3), UINT32_C(0x00124011), UINT32_C(0x000C0FF4), UINT32_C(0x0021C5F0), UINT32_C(0x001CF183), UINT32_C(0x005C75FB), UINT32_C(0x000A4A72), UINT32_C(0x001621E5), UINT32_C(0x002D902F), UINT32_C(0x000A5E79), UINT32_C(0x0007D979), UINT32_C(0x002FA252), UINT32_C(0x001A032C), UINT32_C(0x006E4700), UINT32_C(0x001CDDED), UINT32_C(0x0015AFC0), UINT32_C(0x001B495C), UINT32_C(0x0025BC0A), UINT32_C(0x003D6AB6), UINT32_C(0x001C2483), UINT32_C(0x002F3B9A)}, {UINT32_C(0x0057AFE2), UINT32_C(0x003853AA), UINT32_C(0x00381675), UINT32_C(0x0053C924), UINT32_C(0x0004A57A), UINT32_C(0x003A659F), UINT32_C(0x0007371F), UINT32_C(0x006B5A26), UINT32_C(0x0029ED43), UINT32_C(0x000F437B), UINT32_C(0x0003DA56), UINT32_C(0x0043A9B2), UINT32_C(0x001ED072), UINT32_C(0x002BF85E), UINT32_C(0x000106D8), UINT32_C(0x004A67F0), UINT32_C(0x00249FD9), UINT32_C(0x002B8C98), UINT32_C(0x0011FD8E), UINT32_C(0x006EF5A5), UINT32_C(0x00274425), UINT32_C(0x002A63C4), UINT32_C(0x0010FE70)}}, {{UINT32_C(0x003BFFEF), UINT32_C(0x0028BC0F), UINT32_C(0x000C1E3B), UINT32_C(0x00332346), UINT32_C(0x00097C49), UINT32_C(0x000642A0), UINT32_C(0x001511EB), UINT32_C(0x00662119), UINT32_C(0x0038700F), UINT32_C(0x0010075B), UINT32_C(0x000217A9), UINT32_C(0x00515D8A), UINT32_C(0x003768A5), UINT32_C(0x00001AAD), UINT32_C(0x00033785), UINT32_C(0x000EAFDA), UINT32_C(0x0028D7EE), UINT32_C(0x00386C98), UINT32_C(0x002309D6), UINT32_C(0x00217545), UINT32_C(0x0036E128), UINT32_C(0x0036F567), UINT32_C(0x00084D45)}, {UINT32_C(0x006DDAC3), UINT32_C(0x00211A34), UINT32_C(0x00334127), UINT32_C(0x0068417F), UINT32_C(0x002536CA), UINT32_C(0x00392B50), UINT32_C(0x00121BF5), UINT32_C(0x006FAE39), UINT32_C(0x001B66D6), UINT32_C(0x0001A543), UINT32_C(0x00047D4A), UINT32_C(0x00320EF6), UINT32_C(0x0032B862), UINT32_C(0x000E86D1), UINT32_C(0x0003B670), UINT32_C(0x004D6880), UINT32_C(0x0017DCED), UINT32_C(0x002D4CAD), UINT32_C(0x002F1822), UINT32_C(0x0061F872), UINT32_C(0x00117A0E), UINT32_C(0x00227CBF), UINT32_C(0x00118A0F)}, {UINT32_C(0x00597549), UINT32_C(0x00311975), UINT32_C(0x0012ADA8), UINT32_C(0x000BF81E), UINT32_C(0x000447DB), UINT32_C(0x0036564B), UINT32_C(0x0036D4A4), UINT32_C(0x005A12B6), UINT32_C(0x001D943E), UINT32_C(0x001FA011), UINT32_C(0x0022FC7D), UINT32_C(0x001B96F2), UINT32_C(0x00197333), UINT32_C(0x000F5F62), UINT32_C(0x0026D265), UINT32_C(0x000DBBE2), UINT32_C(0x002B31B9), UINT32_C(0x002BF98D), UINT32_C(0x0025C030), UINT32_C(0x001A95A2), UINT32_C(0x003B2FA4), UINT32_C(0x000B0C82), UINT32_C(0x0021FEE2)}}, {{UINT32_C(0x0015EE0D), UINT32_C(0x00026FEB), UINT32_C(0x003AD4F5), UINT32_C(0x003274AE), UINT32_C(0x001265E7), UINT32_C(0x0017040F), UINT32_C(0x0013C06E), UINT32_C(0x00448F30), UINT32_C(0x00134ED6), UINT32_C(0x002635D7), UINT32_C(0x000B19B7), UINT32_C(0x0044CA5A), UINT32_C(0x002D51CD), UINT32_C(0x003CBBA9), UINT32_C(0x000BA676), UINT32_C(0x0044E2E0), UINT32_C(0x002D3C1D), UINT32_C(0x001B2C78), UINT32_C(0x0018CB04), UINT32_C(0x000F06A8), UINT32_C(0x0029FAAE), UINT32_C(0x003BD16D), UINT32_C(0x002947AD)}, {UINT32_C(0x000B19BD), UINT32_C(0x002858FE), UINT32_C(0x0001456B), UINT32_C(0x00651923), UINT32_C(0x00153B6F), UINT32_C(0x00192326), UINT32_C(0x001EDFC6), UINT32_C(0x003AF276), UINT32_C(0x00039EE2), UINT32_C(0x00085A43), UINT32_C(0x0005BE71), UINT32_C(0x00091140), UINT32_C(0x002D46EB), UINT32_C(0x0017E252), UINT32_C(0x0005EB99), UINT32_C(0x002B8AE0), UINT32_C(0x001B76CF), UINT32_C(0x0006AF84), UINT32_C(0x00353A13), UINT32_C(0x00310D97), UINT32_C(0x0023CC43), UINT32_C(0x00112265), UINT32_C(0x000E4E08)}, {UINT32_C(0x00172BA5), UINT32_C(0x00224E8D), UINT32_C(0x0008E83D), UINT32_C(0x006E0FD7), UINT32_C(0x000CA435), UINT32_C(0x003F7B82), UINT32_C(0x002AE24B), UINT32_C(0x00203AE6), UINT32_C(0x001109AA), UINT32_C(0x002D29BE), UINT32_C(0x00209120), UINT32_C(0x00435C39), UINT32_C(0x0010375A), UINT32_C(0x003466D6), UINT32_C(0x003A4483), UINT32_C(0x004C88D7), UINT32_C(0x002B8FCF), UINT32_C(0x000D4C74), UINT32_C(0x0000EAD7), UINT32_C(0x004E1D11), UINT32_C(0x0008F6A2), UINT32_C(0x0036C2A6), UINT32_C(0x000F1EC2)}}, {{UINT32_C(0x007F3A5F), UINT32_C(0x001992D7), UINT32_C(0x0033F7AE), UINT32_C(0x00399159), UINT32_C(0x000EA75B), UINT32_C(0x0024BE3F), UINT32_C(0x00137150), UINT32_C(0x0009C6C8), UINT32_C(0x00224779), UINT32_C(0x0024DA62), UINT32_C(0x0039D8C0), UINT32_C(0x00274469), UINT32_C(0x00059EDB), UINT32_C(0x00230792), UINT32_C(0x0011EA0B), UINT32_C(0x000ACCB4), UINT32_C(0x001A5DB9), UINT32_C(0x0033F671), UINT32_C(0x0008F9E0), UINT32_C(0x00171663), UINT32_C(0x0034D6E6), UINT32_C(0x000FD1E8), UINT32_C(0x00305366)}, {UINT32_C(0x005EDF20), UINT32_C(0x003A4158), UINT32_C(0x003152D2), UINT32_C(0x0039738C), UINT32_C(0x00219AF4), UINT32_C(0x000AD69F), UINT32_C(0x0000A7ED), UINT32_C(0x0006EB20), UINT32_C(0x001DB459), UINT32_C(0x00249C37), UINT32_C(0x0008C20F), UINT32_C(0x004E26FA), UINT32_C(0x0018A7F4), UINT32_C(0x002A583D), UINT32_C(0x00026534), UINT32_C(0x004D37CC), UINT32_C(0x002BF41A), UINT32_C(0x0004D4E5), UINT32_C(0x002B73A3), UINT32_C(0x003F1C84), UINT32_C(0x002883C4), UINT32_C(0x003BC222), UINT32_C(0x00089D6C)}, {UINT32_C(0x007B6E7F), UINT32_C(0x0022175E), UINT32_C(0x00285356), UINT32_C(0x0025E3A3), UINT32_C(0x001037EF), UINT32_C(0x003AD3A2), UINT32_C(0x001C9C57), UINT32_C(0x00504AAE), UINT32_C(0x00064EF6), UINT32_C(0x00017470), UINT32_C(0x001DB4A2), UINT32_C(0x005776DF), UINT32_C(0x001E96EF), UINT32_C(0x0017DA2B), UINT32_C(0x002DD3D9), UINT32_C(0x0073CBB8), UINT32_C(0x00140A2F), UINT32_C(0x00109B2E), UINT32_C(0x000B5EA4), UINT32_C(0x00064397), UINT32_C(0x0000884C), UINT32_C(0x00089DD2), UINT32_C(0x002AF788)}}, {{UINT32_C(0x00735FB2), UINT32_C(0x002F19A0), UINT32_C(0x00030F84), UINT32_C(0x0069D875), UINT32_C(0x0030428E), UINT32_C(0x001C7831), UINT32_C(0x00348247), UINT32_C(0x001553C9), UINT32_C(0x00363ED5), UINT32_C(0x0012E6AE), UINT32_C(0x00297863), UINT32_C(0x005231B6), UINT32_C(0x00076EF8), UINT32_C(0x002A51F3), UINT32_C(0x00053479), UINT32_C(0x00728729), UINT32_C(0x000565E8), UINT32_C(0x00253185), UINT32_C(0x00373E1C), UINT32_C(0x00173952), UINT32_C(0x00378596), UINT32_C(0x0035C7D9), UINT32_C(0x001AFA68)}, {UINT32_C(0x007813F3), UINT32_C(0x0032A16A), UINT32_C(0x002DCCB1), UINT32_C(0x0020A412), UINT32_C(0x0032EE55), UINT32_C(0x00060B7C), UINT32_C(0x0001221A), UINT32_C(0x00746789), UINT32_C(0x002B0E40), UINT32_C(0x001D2DCC), UINT32_C(0x000CB8AC), UINT32_C(0x001FC5BD), UINT32_C(0x003BCC70), UINT32_C(0x0002C6F3), UINT32_C(0x0006C465), UINT32_C(0x00105D9D), UINT32_C(0x000CB0AE), UINT32_C(0x002CF08C), UINT32_C(0x0022B897), UINT32_C(0x004F105D), UINT32_C(0x002334A0), UINT32_C(0x000C0A22), UINT32_C(0x002CF1F5)}, {UINT32_C(0x00505E0F), UINT32_C(0x0012ED31), UINT32_C(0x002474AB), UINT32_C(0x0024227C), UINT32_C(0x000514EC), UINT32_C(0x001D9F97), UINT32_C(0x000799FA), UINT32_C(0x006748EE), UINT32_C(0x001B12FA), UINT32_C(0x00297127), UINT32_C(0x001AB293), UINT32_C(0x00592DE3), UINT32_C(0x00202A4E), UINT32_C(0x0028F351), UINT32_C(0x00267888), UINT32_C(0x007C29E7), UINT32_C(0x00191344), UINT32_C(0x003BB856), UINT32_C(0x003D0068), UINT32_C(0x006A2ECD), UINT32_C(0x000FFBC8), UINT32_C(0x001ACF89), UINT32_C(0x0012063A)}}, {{UINT32_C(0x0069FBFB), UINT32_C(0x00156959), UINT32_C(0x000608FA), UINT32_C(0x00785C89), UINT32_C(0x003AC4C8), UINT32_C(0x0027AB75), UINT32_C(0x001FCC4F), UINT32_C(0x001F7944), UINT32_C(0x0017EB65), UINT32_C(0x003C2011), UINT32_C(0x00325CA4), UINT32_C(0x001506DC), UINT32_C(0x000E2144), UINT32_C(0x002D1626), UINT32_C(0x0016961D), UINT32_C(0x00363598), UINT32_C(0x003C4B42), UINT32_C(0x000025DF), UINT32_C(0x0029E048), UINT32_C(0x0036C933), UINT32_C(0x0006A748), UINT32_C(0x003B1A3D), UINT32_C(0x00072BBF)}, {UINT32_C(0x00347FD3), UINT32_C(0x0023FEC8), UINT32_C(0x00365C46), UINT32_C(0x00206227), UINT32_C(0x002642D5), UINT32_C(0x000F856C), UINT32_C(0x000D409C), UINT32_C(0x0022DD47), UINT32_C(0x0037EDB3), UINT32_C(0x00295E9B), UINT32_C(0x00168C23), UINT32_C(0x006707A7), UINT32_C(0x00191E7D), UINT32_C(0x001B783E), UINT32_C(0x003FB2D4), UINT32_C(0x006B0C90), UINT32_C(0x00233284), UINT32_C(0x000CD25A), UINT32_C(0x001F61F1), UINT32_C(0x004E3362), UINT32_C(0x002620F3), UINT32_C(0x00036CD2), UINT32_C(0x00187790)}, {UINT32_C(0x00415547), UINT32_C(0x00056478), UINT32_C(0x003F9AE8), UINT32_C(0x002A78C9), UINT32_C(0x000B1617), UINT32_C(0x002994FB), UINT32_C(0x0017A9C0), UINT32_C(0x002443FA), UINT32_C(0x0033C2A2), UINT32_C(0x00314877), UINT32_C(0x003E8C07), UINT32_C(0x001D6145), UINT32_C(0x0009E22B), UINT32_C(0x001E135D), UINT32_C(0x0026E0F2), UINT32_C(0x0076C01C), UINT32_C(0x0009F80A), UINT32_C(0x0038B123), UINT32_C(0x00061F27), UINT32_C(0x0037D737), UINT32_C(0x001266FA), UINT32_C(0x00194F60), UINT32_C(0x000A4432)}}, {{UINT32_C(0x0031C22E), UINT32_C(0x001B7130), UINT32_C(0x001E8939), UINT32_C(0x006F4F1F), UINT32_C(0x001B084A), UINT32_C(0x000AE27B), UINT32_C(0x00243D6B), UINT32_C(0x00341897), UINT32_C(0x00185C0C), UINT32_C(0x00283264), UINT32_C(0x0033AFEF), UINT32_C(0x00273C32), UINT32_C(0x0037390A), UINT32_C(0x00216908), UINT32_C(0x0000E39D), UINT32_C(0x0022F13E), UINT32_C(0x00023196), UINT32_C(0x00266EDA), UINT32_C(0x002E74B0), UINT32_C(0x0068D67D), UINT32_C(0x0019B003), UINT32_C(0x002462D8), UINT32_C(0x001D92FD)}, {UINT32_C(0x003AE17C), UINT32_C(0x00213D60), UINT32_C(0x00246509), UINT32_C(0x00243E35), UINT32_C(0x000C9ADF), UINT32_C(0x0016B366), UINT32_C(0x00061E45), UINT32_C(0x0022A2B9), UINT32_C(0x0006570F), UINT32_C(0x00302A1D), UINT32_C(0x002E384B), UINT32_C(0x00083836), UINT32_C(0x00231790), UINT32_C(0x000946A6), UINT32_C(0x001C75BC), UINT32_C(0x002F1936), UINT32_C(0x001F19E1), UINT32_C(0x0020A5E8), UINT32_C(0x002CCC4B), UINT32_C(0x003C73D2), UINT32_C(0x0013DA6B), UINT32_C(0x000150AC), UINT32_C(0x003D6E3C)}, {UINT32_C(0x0048F7FB), UINT32_C(0x00078414), UINT32_C(0x0025AA31), UINT32_C(0x0024F2EA), UINT32_C(0x00251A2F), UINT32_C(0x00350186), UINT32_C(0x00242828), UINT32_C(0x001AF8F7), UINT32_C(0x001E7A82), UINT32_C(0x00180FD1), UINT32_C(0x002C709A), UINT32_C(0x00009FF0), UINT32_C(0x00243CBB), UINT32_C(0x002BA544), UINT32_C(0x000A79D6), UINT32_C(0x007FB7BA), UINT32_C(0x002E4F31), UINT32_C(0x000D9BA1), UINT32_C(0x000488DF), UINT32_C(0x002BD096), UINT32_C(0x002360FA), UINT32_C(0x003C511A), UINT32_C(0x001A1012)}}, {{UINT32_C(0x000D6219), UINT32_C(0x001EB7CA), UINT32_C(0x00290FB0), UINT32_C(0x004BE668), UINT32_C(0x001673D0), UINT32_C(0x002187C6), UINT32_C(0x002109E9), UINT32_C(0x002142AD), UINT32_C(0x002B9655), UINT32_C(0x0016BB18), UINT32_C(0x000505A1), UINT32_C(0x003CF749), UINT32_C(0x000508B1), UINT32_C(0x0007750E), UINT32_C(0x0011E906), UINT32_C(0x006BC76B), UINT32_C(0x0010180A), UINT32_C(0x003F71C4), UINT32_C(0x0025BBCB), UINT32_C(0x0019E43E), UINT32_C(0x000C640C), UINT32_C(0x00023109), UINT32_C(0x0036776C)}, {UINT32_C(0x007854C6), UINT32_C(0x0036123B), UINT32_C(0x000FD077), UINT32_C(0x003A6383), UINT32_C(0x00016A28), UINT32_C(0x00023347), UINT32_C(0x00355348), UINT32_C(0x00309EB3), UINT32_C(0x0013FC16), UINT32_C(0x00127D7E), UINT32_C(0x000A0B31), UINT32_C(0x00619126), UINT32_C(0x0032CE4A), UINT32_C(0x001C53EA), UINT32_C(0x00009B36), UINT32_C(0x007EBF13), UINT32_C(0x00153CEC), UINT32_C(0x002F0B2B), UINT32_C(0x001FEA94), UINT32_C(0x0018DD53), UINT32_C(0x002DFE81), UINT32_C(0x00250282), UINT32_C(0x0028BBC9)}, {UINT32_C(0x006BDFE8), UINT32_C(0x003D7D6C), UINT32_C(0x003081DE), UINT32_C(0x003D3D16), UINT32_C(0x003CAB31), UINT32_C(0x001C9412), UINT32_C(0x001096D6), UINT32_C(0x0020B298), UINT32_C(0x0022CDB0), UINT32_C(0x00023945), UINT32_C(0x00319AEF), UINT32_C(0x00316D40), UINT32_C(0x001EFBBC), UINT32_C(0x0030E49F), UINT32_C(0x002D6387), UINT32_C(0x007C9B05), UINT32_C(0x000FF238), UINT32_C(0x002AB556), UINT32_C(0x001D7A21), UINT32_C(0x00746313), UINT32_C(0x002064F3), UINT32_C(0x00159471), UINT32_C(0x0006420E)}}, {{UINT32_C(0x000F873E), UINT32_C(0x000A10CD), UINT32_C(0x002BE785), UINT32_C(0x0038B227), UINT32_C(0x0034217F), UINT32_C(0x001DEE7A), UINT32_C(0x000EF9FF), UINT32_C(0x00642E35), UINT32_C(0x003BBD91), UINT32_C(0x00394167), UINT32_C(0x0011C45D), UINT32_C(0x00248D59), UINT32_C(0x0006CAF4), UINT32_C(0x00356B6A), UINT32_C(0x000C93E3), UINT32_C(0x007DF1C5), UINT32_C(0x0015175F), UINT32_C(0x0006774E), UINT32_C(0x002C2F46), UINT32_C(0x0012A0B5), UINT32_C(0x0026AC43), UINT32_C(0x00316265), UINT32_C(0x0017578E)}, {UINT32_C(0x00637692), UINT32_C(0x0017AA0F), UINT32_C(0x000349D7), UINT32_C(0x0042BD56), UINT32_C(0x0020AC26), UINT32_C(0x00153D2E), UINT32_C(0x003BFE98), UINT32_C(0x0045B29F), UINT32_C(0x000C665A), UINT32_C(0x0015F634), UINT32_C(0x0031F264), UINT32_C(0x0005C891), UINT32_C(0x003F619E), UINT32_C(0x0028131C), UINT32_C(0x0018D792), UINT32_C(0x006219EF), UINT32_C(0x0039BD88), UINT32_C(0x001F8951), UINT32_C(0x000E21DF), UINT32_C(0x00495EAD), UINT32_C(0x00342FCA), UINT32_C(0x00196C92), UINT32_C(0x001EF0FA)}, {UINT32_C(0x0047865A), UINT32_C(0x00318D12), UINT32_C(0x003C903E), UINT32_C(0x000BD15E), UINT32_C(0x003D2D6E), UINT32_C(0x0002AA3A), UINT32_C(0x00227179), UINT32_C(0x0073CF23), UINT32_C(0x002DC1A1), UINT32_C(0x000D9B0C), UINT32_C(0x0011B186), UINT32_C(0x0068972C), UINT32_C(0x000C6DF0), UINT32_C(0x00077408), UINT32_C(0x0028FAEE), UINT32_C(0x001C3C02), UINT32_C(0x0037190A), UINT32_C(0x002F00E2), UINT32_C(0x001EC176), UINT32_C(0x00072B55), UINT32_C(0x0024E393), UINT32_C(0x0032CF55), UINT32_C(0x001437CD)}}, {{UINT32_C(0x006D31AF), UINT32_C(0x00321E4E), UINT32_C(0x000CA7EE), UINT32_C(0x005ABB74), UINT32_C(0x0000C3A9), UINT32_C(0x0019A488), UINT32_C(0x001861A0), UINT32_C(0x00582F9D), UINT32_C(0x003CFD06), UINT32_C(0x002EA1AF), UINT32_C(0x0018A543), UINT32_C(0x0010F4B5), UINT32_C(0x0010715D), UINT32_C(0x001F9AF3), UINT32_C(0x0023023F), UINT32_C(0x001643E3), UINT32_C(0x00215F28), UINT32_C(0x0019FD03), UINT32_C(0x0022E874), UINT32_C(0x003DA8F6), UINT32_C(0x0039620A), UINT32_C(0x0022056A), UINT32_C(0x000EA069)}, {UINT32_C(0x000518C5), UINT32_C(0x001AE0BF), UINT32_C(0x00094299), UINT32_C(0x001E2DED), UINT32_C(0x003500DA), UINT32_C(0x0009630E), UINT32_C(0x00063632), UINT32_C(0x003387CC), UINT32_C(0x00031191), UINT32_C(0x00108CFD), UINT32_C(0x00182E5F), UINT32_C(0x00683906), UINT32_C(0x000540A6), UINT32_C(0x0028D759), UINT32_C(0x001EE5BE), UINT32_C(0x00066621), UINT32_C(0x001C501A), UINT32_C(0x0013C28F), UINT32_C(0x000A2AA3), UINT32_C(0x003F6A17), UINT32_C(0x0007898A), UINT32_C(0x002E1235), UINT32_C(0x000019A8)}, {UINT32_C(0x006FEED8), UINT32_C(0x001D5B2A), UINT32_C(0x003F2A5F), UINT32_C(0x00097336), UINT32_C(0x0037FB45), UINT32_C(0x002DB6D6), UINT32_C(0x002CC41F), UINT32_C(0x003D7B28), UINT32_C(0x002F8AD4), UINT32_C(0x003151FC), UINT32_C(0x001C064A), UINT32_C(0x003C6241), UINT32_C(0x00365F52), UINT32_C(0x001581A2), UINT32_C(0x000C7BF2), UINT32_C(0x002AD32B), UINT32_C(0x0009C743), UINT32_C(0x0000608A), UINT32_C(0x00282F9A), UINT32_C(0x00263A9C), UINT32_C(0x003D2500), UINT32_C(0x003476D7), UINT32_C(0x0039390A)}}, {{UINT32_C(0x004F5AD3), UINT32_C(0x001444FE), UINT32_C(0x0006BAFD), UINT32_C(0x0061624F), UINT32_C(0x00011230), UINT32_C(0x00078216), UINT32_C(0x00298470), UINT32_C(0x0015013E), UINT32_C(0x003A1285), UINT32_C(0x0016EA4D), UINT32_C(0x001DD727), UINT32_C(0x001A40E5), UINT32_C(0x002D2579), UINT32_C(0x001F10D3), UINT32_C(0x00220C0B), UINT32_C(0x000EC9E4), UINT32_C(0x0026BC42), UINT32_C(0x0003AB97), UINT32_C(0x00393447), UINT32_C(0x0045B418), UINT32_C(0x0006D93B), UINT32_C(0x0010FC88), UINT32_C(0x00064A8E)}, {UINT32_C(0x006BE9EA), UINT32_C(0x000CA597), UINT32_C(0x002253CF), UINT32_C(0x00638639), UINT32_C(0x002B0B51), UINT32_C(0x00030BC7), UINT32_C(0x00323019), UINT32_C(0x000CCA80), UINT32_C(0x0010E5F7), UINT32_C(0x002EC009), UINT32_C(0x0015B4CB), UINT32_C(0x00663CF0), UINT32_C(0x0035A148), UINT32_C(0x002FA75B), UINT32_C(0x00311933), UINT32_C(0x0063C853), UINT32_C(0x0011D6D9), UINT32_C(0x0037F8DF), UINT32_C(0x001CF5AA), UINT32_C(0x00151B7A), UINT32_C(0x000C96E3), UINT32_C(0x002C8326), UINT32_C(0x00016832)}, {UINT32_C(0x006A5978), UINT32_C(0x001A7F02), UINT32_C(0x000354FE), UINT32_C(0x003933E3), UINT32_C(0x00071810), UINT32_C(0x000077D8), UINT32_C(0x0033A7B3), UINT32_C(0x0026F851), UINT32_C(0x0034FEF5), UINT32_C(0x0010B6DF), UINT32_C(0x003399BA), UINT32_C(0x000DFB2B), UINT32_C(0x0034476F), UINT32_C(0x00346D99), UINT32_C(0x002F557E), UINT32_C(0x0047897F), UINT32_C(0x00348DBE), UINT32_C(0x001CDE03), UINT32_C(0x002A740A), UINT32_C(0x0066E864), UINT32_C(0x0003C78B), UINT32_C(0x00028392), UINT32_C(0x0025F5DB)}}, }, { {{UINT32_C(0x0017286E), UINT32_C(0x000F5A5C), UINT32_C(0x0039B3CA), UINT32_C(0x001F9077), UINT32_C(0x001B296D), UINT32_C(0x0005DC87), UINT32_C(0x001D0F98), UINT32_C(0x0064781E), UINT32_C(0x00093D05), UINT32_C(0x00126B0F), UINT32_C(0x000BBA75), UINT32_C(0x0044F9E6), UINT32_C(0x0028E04B), UINT32_C(0x0020A55E), UINT32_C(0x0012F73B), UINT32_C(0x002CF153), UINT32_C(0x0021678C), UINT32_C(0x002F8222), UINT32_C(0x0015DD38), UINT32_C(0x00687C5D), UINT32_C(0x0027B303), UINT32_C(0x003155B8), UINT32_C(0x002B5FB6)}, {UINT32_C(0x0041E5E6), UINT32_C(0x0006CE3F), UINT32_C(0x000699C4), UINT32_C(0x001B1A07), UINT32_C(0x0008BE9D), UINT32_C(0x000A3A3E), UINT32_C(0x00229979), UINT32_C(0x005014A4), UINT32_C(0x0002F0CB), UINT32_C(0x003B52A9), UINT32_C(0x00083FDD), UINT32_C(0x0047E479), UINT32_C(0x0009DD35), UINT32_C(0x00391B43), UINT32_C(0x0021E9C2), UINT32_C(0x004D6C1F), UINT32_C(0x000D8AB1), UINT32_C(0x002AC33D), UINT32_C(0x003F840F), UINT32_C(0x00713093), UINT32_C(0x001F7D6C), UINT32_C(0x0000637C), UINT32_C(0x002A1B17)}, {UINT32_C(0x002A0728), UINT32_C(0x0022B9B0), UINT32_C(0x00120094), UINT32_C(0x006AF4E8), UINT32_C(0x003A01D1), UINT32_C(0x002767DB), UINT32_C(0x00238927), UINT32_C(0x0068635D), UINT32_C(0x0003EA0A), UINT32_C(0x000FE41F), UINT32_C(0x003CB1CE), UINT32_C(0x00133FA4), UINT32_C(0x002B3010), UINT32_C(0x000D5D89), UINT32_C(0x000F339F), UINT32_C(0x005D46A1), UINT32_C(0x00290D2D), UINT32_C(0x001FC5BE), UINT32_C(0x0003A00F), UINT32_C(0x0062DC95), UINT32_C(0x0037CAB9), UINT32_C(0x002A05E9), UINT32_C(0x002BBC6F)}}, {{UINT32_C(0x00706744), UINT32_C(0x0019DB10), UINT32_C(0x003F9B5C), UINT32_C(0x000F3E76), UINT32_C(0x001B2506), UINT32_C(0x00127BDF), UINT32_C(0x000EB38D), UINT32_C(0x00042E3C), UINT32_C(0x0003DF4C), UINT32_C(0x003B146C), UINT32_C(0x00395196), UINT32_C(0x0018E1D3), UINT32_C(0x000F2464), UINT32_C(0x00307EFB), UINT32_C(0x002A190A), UINT32_C(0x0058D3B4), UINT32_C(0x0012C74A), UINT32_C(0x00195650), UINT32_C(0x000C0BF0), UINT32_C(0x001892B5), UINT32_C(0x0006770F), UINT32_C(0x001A228B), UINT32_C(0x003113A8)}, {UINT32_C(0x007384A0), UINT32_C(0x00041291), UINT32_C(0x00123686), UINT32_C(0x001AD842), UINT32_C(0x001E3157), UINT32_C(0x0007A754), UINT32_C(0x000905E0), UINT32_C(0x003BC7D8), UINT32_C(0x00116FE2), UINT32_C(0x002D132F), UINT32_C(0x000E6646), UINT32_C(0x0064D804), UINT32_C(0x001BA830), UINT32_C(0x003695CB), UINT32_C(0x00173E41), UINT32_C(0x005CFDBC), UINT32_C(0x002188CF), UINT32_C(0x001C1011), UINT32_C(0x0019A6D6), UINT32_C(0x004789C9), UINT32_C(0x0032435A), UINT32_C(0x002B1970), UINT32_C(0x003D40A8)}, {UINT32_C(0x00334E7F), UINT32_C(0x000C23F4), UINT32_C(0x00160B20), UINT32_C(0x003BF3EA), UINT32_C(0x003B5299), UINT32_C(0x001D3EC2), UINT32_C(0x0036DAE9), UINT32_C(0x0058023B), UINT32_C(0x000B5EAF), UINT32_C(0x00371744), UINT32_C(0x000EF4D7), UINT32_C(0x0008817F), UINT32_C(0x0002BE7F), UINT32_C(0x001EB13E), UINT32_C(0x002D1A5F), UINT32_C(0x0069630F), UINT32_C(0x00093D58), UINT32_C(0x0036D385), UINT32_C(0x002A3045), UINT32_C(0x0025C26B), UINT32_C(0x00111E19), UINT32_C(0x001756BF), UINT32_C(0x0035B39D)}}, {{UINT32_C(0x00545C3C), UINT32_C(0x00137D2C), UINT32_C(0x000E7FAB), UINT32_C(0x000EB9AF), UINT32_C(0x002789FC), UINT32_C(0x001EF592), UINT32_C(0x0034210A), UINT32_C(0x002A5180), UINT32_C(0x0023EDAE), UINT32_C(0x000307F6), UINT32_C(0x0023CFAC), UINT32_C(0x001BF315), UINT32_C(0x0020B287), UINT32_C(0x000A3DE8), UINT32_C(0x00189938), UINT32_C(0x00378524), UINT32_C(0x002DEDDF), UINT32_C(0x00215405), UINT32_C(0x001398B5), UINT32_C(0x004827A1), UINT32_C(0x0018A82A), UINT32_C(0x000AB6B7), UINT32_C(0x00214B8A)}, {UINT32_C(0x001B6EE1), UINT32_C(0x00134930), UINT32_C(0x002CB43D), UINT32_C(0x004DC974), UINT32_C(0x0031EAF7), UINT32_C(0x003BDA7E), UINT32_C(0x0033618E), UINT32_C(0x004A982D), UINT32_C(0x001B6E94), UINT32_C(0x000D4749), UINT32_C(0x0007D19B), UINT32_C(0x005FAAB5), UINT32_C(0x003F714A), UINT32_C(0x000E57A9), UINT32_C(0x0028FDD3), UINT32_C(0x0075BD17), UINT32_C(0x003D774F), UINT32_C(0x000E4D55), UINT32_C(0x003CA227), UINT32_C(0x000DF34F), UINT32_C(0x0028970F), UINT32_C(0x0036F5EA), UINT32_C(0x0022BC1B)}, {UINT32_C(0x00475039), UINT32_C(0x00230014), UINT32_C(0x001FEA38), UINT32_C(0x005CCC55), UINT32_C(0x003C6941), UINT32_C(0x0022517F), UINT32_C(0x002D30E5), UINT32_C(0x00309B25), UINT32_C(0x00034CC8), UINT32_C(0x00356ED5), UINT32_C(0x0014FCA5), UINT32_C(0x0036104B), UINT32_C(0x001D0F11), UINT32_C(0x00273D12), UINT32_C(0x00170F1B), UINT32_C(0x0076D103), UINT32_C(0x001F613D), UINT32_C(0x001C9D53), UINT32_C(0x001F1400), UINT32_C(0x0076A382), UINT32_C(0x0025000D), UINT32_C(0x003B5419), UINT32_C(0x0015987C)}}, {{UINT32_C(0x007F4AC5), UINT32_C(0x0008E500), UINT32_C(0x00016BA4), UINT32_C(0x007474E5), UINT32_C(0x0009CFB4), UINT32_C(0x001D6BB8), UINT32_C(0x003B23DD), UINT32_C(0x005DB100), UINT32_C(0x0008843B), UINT32_C(0x0012DA0A), UINT32_C(0x0024794D), UINT32_C(0x0026577B), UINT32_C(0x00240E5E), UINT32_C(0x00346C8E), UINT32_C(0x0027DC8C), UINT32_C(0x00634650), UINT32_C(0x00195F50), UINT32_C(0x00071E58), UINT32_C(0x000A83CF), UINT32_C(0x001B8E3D), UINT32_C(0x001D4281), UINT32_C(0x0014D35D), UINT32_C(0x002C222C)}, {UINT32_C(0x0020B3A0), UINT32_C(0x0006028D), UINT32_C(0x002EB45A), UINT32_C(0x003DF458), UINT32_C(0x001D376C), UINT32_C(0x0018C400), UINT32_C(0x002C3A24), UINT32_C(0x00319F9A), UINT32_C(0x00022C40), UINT32_C(0x0002F8C6), UINT32_C(0x0022E290), UINT32_C(0x0026FD32), UINT32_C(0x00035216), UINT32_C(0x001D9C11), UINT32_C(0x001789F2), UINT32_C(0x000B1E8A), UINT32_C(0x000A64CD), UINT32_C(0x002909D1), UINT32_C(0x003F99FB), UINT32_C(0x0053ECE7), UINT32_C(0x00067860), UINT32_C(0x002534B2), UINT32_C(0x003F2F3F)}, {UINT32_C(0x00231268), UINT32_C(0x000ED62F), UINT32_C(0x0031D715), UINT32_C(0x00518514), UINT32_C(0x003D37EF), UINT32_C(0x00083CBE), UINT32_C(0x001E2CE4), UINT32_C(0x007EC3F7), UINT32_C(0x0038FE97), UINT32_C(0x0018E538), UINT32_C(0x0014EF47), UINT32_C(0x007E9282), UINT32_C(0x002D63F2), UINT32_C(0x003161B4), UINT32_C(0x0039ADC6), UINT32_C(0x0007BA2A), UINT32_C(0x001FF255), UINT32_C(0x001874F8), UINT32_C(0x000AF0FD), UINT32_C(0x002AAAB7), UINT32_C(0x00298743), UINT32_C(0x00333D31), UINT32_C(0x000E50E3)}}, {{UINT32_C(0x000F76FA), UINT32_C(0x001833CD), UINT32_C(0x0016A2D3), UINT32_C(0x006A2D69), UINT32_C(0x0002F385), UINT32_C(0x001F8454), UINT32_C(0x003FE32A), UINT32_C(0x004BABD6), UINT32_C(0x0003FDDB), UINT32_C(0x0012096E), UINT32_C(0x0024DC23), UINT32_C(0x00636CE5), UINT32_C(0x00055CB4), UINT32_C(0x0004F203), UINT32_C(0x0022C2DF), UINT32_C(0x00599D77), UINT32_C(0x0038B010), UINT32_C(0x003624FA), UINT32_C(0x002121D8), UINT32_C(0x006EB595), UINT32_C(0x000EB1AE), UINT32_C(0x0033B6F0), UINT32_C(0x001072A8)}, {UINT32_C(0x00660A55), UINT32_C(0x000C0424), UINT32_C(0x0013326F), UINT32_C(0x00530EFA), UINT32_C(0x00038052), UINT32_C(0x003A7413), UINT32_C(0x0000B6CF), UINT32_C(0x0025BA64), UINT32_C(0x0006A2BE), UINT32_C(0x0039B086), UINT32_C(0x0007574E), UINT32_C(0x0018FDBB), UINT32_C(0x000714B1), UINT32_C(0x0026708B), UINT32_C(0x000515A5), UINT32_C(0x0043DEFC), UINT32_C(0x002CE885), UINT32_C(0x00171175), UINT32_C(0x002570F1), UINT32_C(0x004EE75A), UINT32_C(0x001930E0), UINT32_C(0x00155BBD), UINT32_C(0x000C64C5)}, {UINT32_C(0x0034919D), UINT32_C(0x001443DB), UINT32_C(0x003E9123), UINT32_C(0x000E1842), UINT32_C(0x003545C9), UINT32_C(0x00098DB4), UINT32_C(0x00184A4D), UINT32_C(0x005DAFC4), UINT32_C(0x00098F85), UINT32_C(0x001EA9C6), UINT32_C(0x0023826A), UINT32_C(0x0069B06D), UINT32_C(0x001DFBA9), UINT32_C(0x000798BE), UINT32_C(0x000AE8AF), UINT32_C(0x00236B65), UINT32_C(0x001846C8), UINT32_C(0x003AB8DD), UINT32_C(0x002C7DB0), UINT32_C(0x00074EA7), UINT32_C(0x002DF25B), UINT32_C(0x001C28C7), UINT32_C(0x0025B6DE)}}, {{UINT32_C(0x0063C056), UINT32_C(0x000F0F64), UINT32_C(0x0003AF88), UINT32_C(0x0026EF3F), UINT32_C(0x000ACF8A), UINT32_C(0x003B178B), UINT32_C(0x001A1B3F), UINT32_C(0x002802BE), UINT32_C(0x00141F1B), UINT32_C(0x001188F2), UINT32_C(0x003B7121), UINT32_C(0x0004B6A3), UINT32_C(0x0017E723), UINT32_C(0x0015DF00), UINT32_C(0x00395BAE), UINT32_C(0x0012A3E3), UINT32_C(0x000D5B27), UINT32_C(0x000EF7A7), UINT32_C(0x00108148), UINT32_C(0x0027EAAD), UINT32_C(0x000BC9DC), UINT32_C(0x00229BC0), UINT32_C(0x003E724E)}, {UINT32_C(0x0065E7F8), UINT32_C(0x001505D9), UINT32_C(0x002AC40C), UINT32_C(0x003163A4), UINT32_C(0x003EDF4D), UINT32_C(0x0004F661), UINT32_C(0x003262E7), UINT32_C(0x003B5607), UINT32_C(0x002D19B3), UINT32_C(0x00107A09), UINT32_C(0x000F13CC), UINT32_C(0x004C7800), UINT32_C(0x0035B8E6), UINT32_C(0x00254CD7), UINT32_C(0x0006103F), UINT32_C(0x0041F4F8), UINT32_C(0x00122E7D), UINT32_C(0x00201C99), UINT32_C(0x003F9160), UINT32_C(0x0056128E), UINT32_C(0x0032FA32), UINT32_C(0x0019A4A9), UINT32_C(0x002E0115)}, {UINT32_C(0x0012D79A), UINT32_C(0x000A6E34), UINT32_C(0x0008D368), UINT32_C(0x001977F5), UINT32_C(0x0011E966), UINT32_C(0x00123FE5), UINT32_C(0x00343FAC), UINT32_C(0x0012E1C9), UINT32_C(0x001AFF6C), UINT32_C(0x0023C0EC), UINT32_C(0x003A2A35), UINT32_C(0x005016A3), UINT32_C(0x002CF3B6), UINT32_C(0x00078BE6), UINT32_C(0x0008BE88), UINT32_C(0x005FC4FE), UINT32_C(0x00002694), UINT32_C(0x00258B13), UINT32_C(0x000ABDAE), UINT32_C(0x004B9DF4), UINT32_C(0x00187A2F), UINT32_C(0x0036EC5B), UINT32_C(0x002B7DF6)}}, {{UINT32_C(0x006DAE2C), UINT32_C(0x00032CF3), UINT32_C(0x002D7562), UINT32_C(0x0032FF5D), UINT32_C(0x00070816), UINT32_C(0x000D011D), UINT32_C(0x000E17B7), UINT32_C(0x0038556C), UINT32_C(0x003DA262), UINT32_C(0x000AC037), UINT32_C(0x00112AE7), UINT32_C(0x001EB223), UINT32_C(0x002587C3), UINT32_C(0x001A3F55), UINT32_C(0x0022E756), UINT32_C(0x007D6544), UINT32_C(0x0035E36C), UINT32_C(0x00298741), UINT32_C(0x001945D2), UINT32_C(0x007E68FA), UINT32_C(0x003F5793), UINT32_C(0x0013306C), UINT32_C(0x00021451)}, {UINT32_C(0x007CB839), UINT32_C(0x001964D3), UINT32_C(0x0007ED8E), UINT32_C(0x003AEF58), UINT32_C(0x002BC177), UINT32_C(0x000F6696), UINT32_C(0x0001CAEB), UINT32_C(0x00509C2B), UINT32_C(0x003F5DBB), UINT32_C(0x001131ED), UINT32_C(0x00151301), UINT32_C(0x0031F44F), UINT32_C(0x001D60F9), UINT32_C(0x001A36A3), UINT32_C(0x002696D3), UINT32_C(0x00713749), UINT32_C(0x000415F4), UINT32_C(0x000C2E1E), UINT32_C(0x0018E7EE), UINT32_C(0x006737C5), UINT32_C(0x00071BB7), UINT32_C(0x0008C358), UINT32_C(0x001F1407)}, {UINT32_C(0x0042C734), UINT32_C(0x00009034), UINT32_C(0x001689FC), UINT32_C(0x00066E68), UINT32_C(0x0018F756), UINT32_C(0x001DCFDF), UINT32_C(0x00083DCC), UINT32_C(0x003841C9), UINT32_C(0x000DD192), UINT32_C(0x00122593), UINT32_C(0x0031A8DD), UINT32_C(0x00341616), UINT32_C(0x00196D74), UINT32_C(0x000B8D12), UINT32_C(0x000B5714), UINT32_C(0x006030FC), UINT32_C(0x00390678), UINT32_C(0x003AB96C), UINT32_C(0x00053F6E), UINT32_C(0x002C04AB), UINT32_C(0x001D12C3), UINT32_C(0x0035009E), UINT32_C(0x003DC316)}}, {{UINT32_C(0x003D2EE8), UINT32_C(0x000EDDF2), UINT32_C(0x0016BD70), UINT32_C(0x00320C0C), UINT32_C(0x00052F43), UINT32_C(0x002FA0A8), UINT32_C(0x00065472), UINT32_C(0x00029362), UINT32_C(0x002C27A2), UINT32_C(0x0005E1BB), UINT32_C(0x0019992C), UINT32_C(0x00030905), UINT32_C(0x000BF0F4), UINT32_C(0x00209691), UINT32_C(0x00350247), UINT32_C(0x0057E044), UINT32_C(0x000E41CD), UINT32_C(0x0017F9EE), UINT32_C(0x00078967), UINT32_C(0x006ACE99), UINT32_C(0x0007C820), UINT32_C(0x00113D5C), UINT32_C(0x0038DA0A)}, {UINT32_C(0x00083FE6), UINT32_C(0x001C1BC1), UINT32_C(0x000EB8D8), UINT32_C(0x0007692B), UINT32_C(0x00281516), UINT32_C(0x00155672), UINT32_C(0x000D8B29), UINT32_C(0x003E13E4), UINT32_C(0x003138BC), UINT32_C(0x003CACE6), UINT32_C(0x0035FA0F), UINT32_C(0x0023164A), UINT32_C(0x000EC9E6), UINT32_C(0x0023B1C7), UINT32_C(0x00225BFF), UINT32_C(0x007740C9), UINT32_C(0x0030F788), UINT32_C(0x00006D8C), UINT32_C(0x0002D6BD), UINT32_C(0x002603CE), UINT32_C(0x0005485E), UINT32_C(0x000E66C9), UINT32_C(0x00019E3E)}, {UINT32_C(0x001300D5), UINT32_C(0x002C1C24), UINT32_C(0x0032064C), UINT32_C(0x0043F0E6), UINT32_C(0x000860BC), UINT32_C(0x0014A553), UINT32_C(0x0036075B), UINT32_C(0x001987D7), UINT32_C(0x002754F6), UINT32_C(0x00385EEF), UINT32_C(0x0013D858), UINT32_C(0x002C23BB), UINT32_C(0x0032C81D), UINT32_C(0x000E6F7D), UINT32_C(0x003C8EB3), UINT32_C(0x003644D0), UINT32_C(0x0013D21A), UINT32_C(0x0031FB11), UINT32_C(0x0028B7B0), UINT32_C(0x000E500E), UINT32_C(0x001DA66D), UINT32_C(0x0020B336), UINT32_C(0x00364559)}}, {{UINT32_C(0x0008F24B), UINT32_C(0x003022F1), UINT32_C(0x00292D14), UINT32_C(0x00009DB0), UINT32_C(0x0012884B), UINT32_C(0x002CB622), UINT32_C(0x0009D61F), UINT32_C(0x0010FF0B), UINT32_C(0x0005C248), UINT32_C(0x00128DF1), UINT32_C(0x0014DD06), UINT32_C(0x0006C833), UINT32_C(0x00177E25), UINT32_C(0x00037C0E), UINT32_C(0x0029C2CD), UINT32_C(0x00072DE1), UINT32_C(0x001F0312), UINT32_C(0x0013FA86), UINT32_C(0x002E1D55), UINT32_C(0x000102DE), UINT32_C(0x00326586), UINT32_C(0x00089C95), UINT32_C(0x000D11CA)}, {UINT32_C(0x001E5A41), UINT32_C(0x0014B02F), UINT32_C(0x002AFDA8), UINT32_C(0x003C8A99), UINT32_C(0x00304A64), UINT32_C(0x00254B15), UINT32_C(0x0001DEB3), UINT32_C(0x00481E27), UINT32_C(0x0032A61C), UINT32_C(0x000D6970), UINT32_C(0x00182CAA), UINT32_C(0x0034EC0A), UINT32_C(0x0019A25D), UINT32_C(0x001C8588), UINT32_C(0x003F689B), UINT32_C(0x00233BD8), UINT32_C(0x003ABCAA), UINT32_C(0x0033E7AF), UINT32_C(0x00375FA3), UINT32_C(0x001C8D11), UINT32_C(0x0021737A), UINT32_C(0x00102C76), UINT32_C(0x000C7526)}, {UINT32_C(0x00352E1E), UINT32_C(0x002092B9), UINT32_C(0x0008105C), UINT32_C(0x007FB15D), UINT32_C(0x00255DD0), UINT32_C(0x000F061B), UINT32_C(0x0016C72F), UINT32_C(0x006E33F5), UINT32_C(0x003A9DD5), UINT32_C(0x0039695D), UINT32_C(0x003502FE), UINT32_C(0x003A705F), UINT32_C(0x00370221), UINT32_C(0x0030642F), UINT32_C(0x00163D04), UINT32_C(0x007BF9AC), UINT32_C(0x000A4C37), UINT32_C(0x001E0389), UINT32_C(0x001214FF), UINT32_C(0x001FF3D6), UINT32_C(0x003D5C3D), UINT32_C(0x0028CF11), UINT32_C(0x001AAA6A)}}, {{UINT32_C(0x005BF790), UINT32_C(0x0007D0F3), UINT32_C(0x0001C51D), UINT32_C(0x0020772C), UINT32_C(0x00200268), UINT32_C(0x0001B52F), UINT32_C(0x00279ABE), UINT32_C(0x001F71CF), UINT32_C(0x00375D44), UINT32_C(0x000F0F65), UINT32_C(0x0027410E), UINT32_C(0x003D9BE0), UINT32_C(0x002C960C), UINT32_C(0x00003C9C), UINT32_C(0x003A7A25), UINT32_C(0x004F1756), UINT32_C(0x002CBE23), UINT32_C(0x0004069A), UINT32_C(0x00182C17), UINT32_C(0x005CFAF2), UINT32_C(0x00026993), UINT32_C(0x0009DA3A), UINT32_C(0x0039F360)}, {UINT32_C(0x00364E82), UINT32_C(0x000346D3), UINT32_C(0x003D3445), UINT32_C(0x0000A6B7), UINT32_C(0x00037BD7), UINT32_C(0x001658EC), UINT32_C(0x0000B914), UINT32_C(0x006FA605), UINT32_C(0x001454EB), UINT32_C(0x002CE3C8), UINT32_C(0x003D9ACC), UINT32_C(0x007AF12D), UINT32_C(0x0021D6DC), UINT32_C(0x002CC083), UINT32_C(0x001879BA), UINT32_C(0x0051EE63), UINT32_C(0x0019F677), UINT32_C(0x0010AD1F), UINT32_C(0x002A0F9B), UINT32_C(0x0041EA60), UINT32_C(0x00277936), UINT32_C(0x00380AD2), UINT32_C(0x001D4704)}, {UINT32_C(0x004BFEC6), UINT32_C(0x0001B656), UINT32_C(0x002537A7), UINT32_C(0x0074F164), UINT32_C(0x003DAAEE), UINT32_C(0x0030B1B3), UINT32_C(0x0028EFD7), UINT32_C(0x0063000E), UINT32_C(0x002E7006), UINT32_C(0x0006D43F), UINT32_C(0x003A92B0), UINT32_C(0x005CBF0D), UINT32_C(0x001B3D1C), UINT32_C(0x00155A03), UINT32_C(0x0013BCFB), UINT32_C(0x0022E3EA), UINT32_C(0x0009A093), UINT32_C(0x00372B6D), UINT32_C(0x003B3D4A), UINT32_C(0x0022BBAE), UINT32_C(0x002C8021), UINT32_C(0x002F7ACB), UINT32_C(0x002885FE)}}, {{UINT32_C(0x003234EF), UINT32_C(0x0029B8C5), UINT32_C(0x001AE10C), UINT32_C(0x0016CD11), UINT32_C(0x003ACD42), UINT32_C(0x0009111E), UINT32_C(0x002E5197), UINT32_C(0x000CF7DD), UINT32_C(0x0002A45E), UINT32_C(0x0013DCB9), UINT32_C(0x0011DF8A), UINT32_C(0x0041E6A2), UINT32_C(0x003D6BEC), UINT32_C(0x0019831C), UINT32_C(0x0026F1BD), UINT32_C(0x001F02BE), UINT32_C(0x00291AD9), UINT32_C(0x000AEAD3), UINT32_C(0x000655DB), UINT32_C(0x004C8DC1), UINT32_C(0x0027BF77), UINT32_C(0x0017E4AD), UINT32_C(0x00376E83)}, {UINT32_C(0x006C4C88), UINT32_C(0x003238DA), UINT32_C(0x000D5920), UINT32_C(0x002DB750), UINT32_C(0x0035FA90), UINT32_C(0x000C2BC9), UINT32_C(0x002DB3D0), UINT32_C(0x00373A80), UINT32_C(0x002E0271), UINT32_C(0x003818B5), UINT32_C(0x003209D6), UINT32_C(0x003D0A96), UINT32_C(0x0007BE66), UINT32_C(0x00306A1A), UINT32_C(0x001E42D6), UINT32_C(0x0021C5C7), UINT32_C(0x00255B61), UINT32_C(0x002E2400), UINT32_C(0x000B30C1), UINT32_C(0x0012F49E), UINT32_C(0x000E248A), UINT32_C(0x003BBE77), UINT32_C(0x0008EEED)}, {UINT32_C(0x0014067A), UINT32_C(0x002CF299), UINT32_C(0x00082BEF), UINT32_C(0x00130694), UINT32_C(0x0018C073), UINT32_C(0x000CA3AA), UINT32_C(0x00128835), UINT32_C(0x0023457E), UINT32_C(0x000FF51F), UINT32_C(0x003F8C44), UINT32_C(0x003FA288), UINT32_C(0x00269665), UINT32_C(0x00080B90), UINT32_C(0x000CFEE1), UINT32_C(0x003F3285), UINT32_C(0x000DF6EE), UINT32_C(0x000B1087), UINT32_C(0x00107D3D), UINT32_C(0x00311E7D), UINT32_C(0x007CA53C), UINT32_C(0x0033FCA6), UINT32_C(0x00263A19), UINT32_C(0x00363624)}}, {{UINT32_C(0x001DDC6C), UINT32_C(0x003A0EDE), UINT32_C(0x001408D0), UINT32_C(0x001EEE7B), UINT32_C(0x001405FC), UINT32_C(0x00128750), UINT32_C(0x002CA34C), UINT32_C(0x0000FBEA), UINT32_C(0x0006137A), UINT32_C(0x00370D1A), UINT32_C(0x003B6A04), UINT32_C(0x00057D79), UINT32_C(0x0028B50F), UINT32_C(0x0013A132), UINT32_C(0x0007EB68), UINT32_C(0x007A7017), UINT32_C(0x002517C9), UINT32_C(0x00219256), UINT32_C(0x003E617C), UINT32_C(0x00456ECE), UINT32_C(0x0011278F), UINT32_C(0x001624F1), UINT32_C(0x0003C0F7)}, {UINT32_C(0x000AF6C0), UINT32_C(0x003DA705), UINT32_C(0x000CC5A4), UINT32_C(0x00045A7B), UINT32_C(0x0030E620), UINT32_C(0x0005489D), UINT32_C(0x00350783), UINT32_C(0x00053DBD), UINT32_C(0x0016C68B), UINT32_C(0x002D182B), UINT32_C(0x00294A05), UINT32_C(0x00749DE2), UINT32_C(0x000DDD4D), UINT32_C(0x003B31A2), UINT32_C(0x00197D97), UINT32_C(0x006BBE3E), UINT32_C(0x003FF605), UINT32_C(0x00049D4F), UINT32_C(0x00312E4D), UINT32_C(0x003F5019), UINT32_C(0x003E1C7F), UINT32_C(0x003D1C1D), UINT32_C(0x003D261E)}, {UINT32_C(0x0026418D), UINT32_C(0x00292458), UINT32_C(0x001A1FC4), UINT32_C(0x00617DF6), UINT32_C(0x0024EEF7), UINT32_C(0x000F2BD5), UINT32_C(0x0034E0B9), UINT32_C(0x006C6D66), UINT32_C(0x00074BA2), UINT32_C(0x001A4D76), UINT32_C(0x00306BE0), UINT32_C(0x0002376E), UINT32_C(0x0005EF92), UINT32_C(0x003EBB91), UINT32_C(0x0024BA60), UINT32_C(0x001BA73C), UINT32_C(0x00222A6B), UINT32_C(0x0018DAEF), UINT32_C(0x00141DE7), UINT32_C(0x00390908), UINT32_C(0x0035530C), UINT32_C(0x0002CD8D), UINT32_C(0x00077882)}}, {{UINT32_C(0x00440DE3), UINT32_C(0x002D9BF2), UINT32_C(0x000C1E19), UINT32_C(0x0013C1C8), UINT32_C(0x00318020), UINT32_C(0x001DCAEC), UINT32_C(0x00064315), UINT32_C(0x00335FB3), UINT32_C(0x00146401), UINT32_C(0x0035671E), UINT32_C(0x0008E31D), UINT32_C(0x0069E0DB), UINT32_C(0x00071FA1), UINT32_C(0x0039CF3B), UINT32_C(0x0018E811), UINT32_C(0x002DB19F), UINT32_C(0x001279C0), UINT32_C(0x0029FDEB), UINT32_C(0x002EF592), UINT32_C(0x005F5F4A), UINT32_C(0x000A323A), UINT32_C(0x002C8BBB), UINT32_C(0x00326780)}, {UINT32_C(0x000CB270), UINT32_C(0x00086BD0), UINT32_C(0x0036C911), UINT32_C(0x0005F16E), UINT32_C(0x00359A7C), UINT32_C(0x0033FFDF), UINT32_C(0x002FE3CF), UINT32_C(0x00286EBC), UINT32_C(0x00282C12), UINT32_C(0x0032282A), UINT32_C(0x002231DA), UINT32_C(0x00000319), UINT32_C(0x003D8930), UINT32_C(0x002056B8), UINT32_C(0x003104E7), UINT32_C(0x0006E83C), UINT32_C(0x0003636A), UINT32_C(0x0024CB95), UINT32_C(0x002DE038), UINT32_C(0x00081E87), UINT32_C(0x0034B889), UINT32_C(0x000F9915), UINT32_C(0x00310022)}, {UINT32_C(0x0040A26D), UINT32_C(0x002410E6), UINT32_C(0x0033665C), UINT32_C(0x005EB45D), UINT32_C(0x0001C554), UINT32_C(0x00031D73), UINT32_C(0x000EA84F), UINT32_C(0x006564D6), UINT32_C(0x001F3357), UINT32_C(0x0020481A), UINT32_C(0x00180940), UINT32_C(0x003BF11D), UINT32_C(0x002AF372), UINT32_C(0x002559BC), UINT32_C(0x00178008), UINT32_C(0x000A361C), UINT32_C(0x0037281D), UINT32_C(0x000742C0), UINT32_C(0x003B03D2), UINT32_C(0x005EBA80), UINT32_C(0x003348EE), UINT32_C(0x00332C9E), UINT32_C(0x00131D23)}}, {{UINT32_C(0x004F558D), UINT32_C(0x00110D2E), UINT32_C(0x0010B290), UINT32_C(0x00298F39), UINT32_C(0x001A9DD0), UINT32_C(0x00045042), UINT32_C(0x00074453), UINT32_C(0x0031D6D7), UINT32_C(0x0007787F), UINT32_C(0x002DAAA8), UINT32_C(0x003148F0), UINT32_C(0x00014722), UINT32_C(0x001A5F6A), UINT32_C(0x00101BC3), UINT32_C(0x00127243), UINT32_C(0x007D18A1), UINT32_C(0x002A51D2), UINT32_C(0x0025ED49), UINT32_C(0x003D93AC), UINT32_C(0x0000A172), UINT32_C(0x002D4427), UINT32_C(0x0035288C), UINT32_C(0x000733E5)}, {UINT32_C(0x004F5F03), UINT32_C(0x003E1845), UINT32_C(0x0006AEB2), UINT32_C(0x0072B386), UINT32_C(0x00309DB4), UINT32_C(0x002E4AE4), UINT32_C(0x001C33C4), UINT32_C(0x0064AA28), UINT32_C(0x003A80E7), UINT32_C(0x0018D735), UINT32_C(0x0035E7AB), UINT32_C(0x0049C50A), UINT32_C(0x0011BF7D), UINT32_C(0x001CF85A), UINT32_C(0x00310DD1), UINT32_C(0x00755DE3), UINT32_C(0x001EF133), UINT32_C(0x0019EC22), UINT32_C(0x00093BF1), UINT32_C(0x0079C3FF), UINT32_C(0x0035788E), UINT32_C(0x003BCE6D), UINT32_C(0x00319941)}, {UINT32_C(0x00320489), UINT32_C(0x0013DD6F), UINT32_C(0x0030C812), UINT32_C(0x0058EFB4), UINT32_C(0x00199A57), UINT32_C(0x0001DCC5), UINT32_C(0x00397377), UINT32_C(0x006262B8), UINT32_C(0x002B88C5), UINT32_C(0x0009A7A2), UINT32_C(0x000243A8), UINT32_C(0x000FE111), UINT32_C(0x00388C89), UINT32_C(0x0011A2E9), UINT32_C(0x00227DAE), UINT32_C(0x004E02B8), UINT32_C(0x0004E7BC), UINT32_C(0x0003B33F), UINT32_C(0x0003C0C6), UINT32_C(0x0025DF7E), UINT32_C(0x003A82E0), UINT32_C(0x003930EE), UINT32_C(0x0013C142)}}, {{UINT32_C(0x0066CDFE), UINT32_C(0x000F2EAC), UINT32_C(0x00131171), UINT32_C(0x000D830C), UINT32_C(0x00073ABF), UINT32_C(0x0006D5DB), UINT32_C(0x0019F2ED), UINT32_C(0x007D8846), UINT32_C(0x002CDE7E), UINT32_C(0x001F8420), UINT32_C(0x00248809), UINT32_C(0x0070E344), UINT32_C(0x00068413), UINT32_C(0x000706E0), UINT32_C(0x002454A6), UINT32_C(0x003C1F38), UINT32_C(0x0020840E), UINT32_C(0x00308F2A), UINT32_C(0x003B026E), UINT32_C(0x0055D941), UINT32_C(0x0026CD7D), UINT32_C(0x00041FFB), UINT32_C(0x0016E182)}, {UINT32_C(0x00498EA7), UINT32_C(0x0028466B), UINT32_C(0x002EE6E4), UINT32_C(0x005ADB8E), UINT32_C(0x0034DF94), UINT32_C(0x0016E8FA), UINT32_C(0x000DD486), UINT32_C(0x0022172A), UINT32_C(0x0026F797), UINT32_C(0x003EA2F7), UINT32_C(0x003F32FE), UINT32_C(0x00761C80), UINT32_C(0x00141A4B), UINT32_C(0x003A2DC0), UINT32_C(0x003F2489), UINT32_C(0x00284EBF), UINT32_C(0x00324946), UINT32_C(0x00098DC6), UINT32_C(0x00140160), UINT32_C(0x001637DD), UINT32_C(0x0032460F), UINT32_C(0x001DCD38), UINT32_C(0x0024F529)}, {UINT32_C(0x0033F90C), UINT32_C(0x000B2B06), UINT32_C(0x0010AC6C), UINT32_C(0x000D4C79), UINT32_C(0x0028ACCF), UINT32_C(0x003882B8), UINT32_C(0x003627FD), UINT32_C(0x0077768C), UINT32_C(0x00060B8A), UINT32_C(0x00175AB9), UINT32_C(0x0020A7D7), UINT32_C(0x0036E54C), UINT32_C(0x0026B20A), UINT32_C(0x000E710C), UINT32_C(0x0024597D), UINT32_C(0x0019E845), UINT32_C(0x0028672C), UINT32_C(0x0021B0CC), UINT32_C(0x0023D9E3), UINT32_C(0x001692C6), UINT32_C(0x0001D045), UINT32_C(0x00097657), UINT32_C(0x000370F6)}}, {{UINT32_C(0x007B9005), UINT32_C(0x0027B1D5), UINT32_C(0x0030BCA5), UINT32_C(0x0033E7A3), UINT32_C(0x00260D50), UINT32_C(0x000425F4), UINT32_C(0x002BF81B), UINT32_C(0x0056DC12), UINT32_C(0x001C3248), UINT32_C(0x0023BE6A), UINT32_C(0x0031838D), UINT32_C(0x006C6DD9), UINT32_C(0x002FD065), UINT32_C(0x003EC34D), UINT32_C(0x001B79C8), UINT32_C(0x0061CFCC), UINT32_C(0x002C377E), UINT32_C(0x0005C2A1), UINT32_C(0x00142560), UINT32_C(0x0007DCCB), UINT32_C(0x00238949), UINT32_C(0x0011710D), UINT32_C(0x0036AE4C)}, {UINT32_C(0x002C3F57), UINT32_C(0x0007550E), UINT32_C(0x00145D0D), UINT32_C(0x00172C44), UINT32_C(0x00166B15), UINT32_C(0x003F673A), UINT32_C(0x001F41B9), UINT32_C(0x0038E3E7), UINT32_C(0x000ED8FE), UINT32_C(0x0026F447), UINT32_C(0x00141659), UINT32_C(0x004024EA), UINT32_C(0x0014C9B2), UINT32_C(0x0021B32A), UINT32_C(0x00362710), UINT32_C(0x00791C00), UINT32_C(0x0012A6F2), UINT32_C(0x003E23AE), UINT32_C(0x00359C46), UINT32_C(0x0056019B), UINT32_C(0x0024CD68), UINT32_C(0x0018639D), UINT32_C(0x000AA1E5)}, {UINT32_C(0x003EB03A), UINT32_C(0x0005BD4E), UINT32_C(0x0026A08D), UINT32_C(0x00767FC9), UINT32_C(0x000AE7A8), UINT32_C(0x00302EFF), UINT32_C(0x000E751E), UINT32_C(0x000221EB), UINT32_C(0x0013D036), UINT32_C(0x000B5F88), UINT32_C(0x00195DE4), UINT32_C(0x007C1167), UINT32_C(0x000F8BFB), UINT32_C(0x002A2BF5), UINT32_C(0x001374E2), UINT32_C(0x005BAA0D), UINT32_C(0x0034A333), UINT32_C(0x002DB57E), UINT32_C(0x002A02CC), UINT32_C(0x00497D58), UINT32_C(0x000647E9), UINT32_C(0x00212584), UINT32_C(0x0028AE2E)}}, }, { {{UINT32_C(0x0056CAA9), UINT32_C(0x002ED942), UINT32_C(0x00066832), UINT32_C(0x000E005C), UINT32_C(0x000212C9), UINT32_C(0x000A5796), UINT32_C(0x0039920F), UINT32_C(0x00085F1D), UINT32_C(0x00361285), UINT32_C(0x00307080), UINT32_C(0x00062627), UINT32_C(0x007D6AAA), UINT32_C(0x002FAD3A), UINT32_C(0x001F916B), UINT32_C(0x0019CDED), UINT32_C(0x0060F8EF), UINT32_C(0x00006CD6), UINT32_C(0x0009A576), UINT32_C(0x0004244C), UINT32_C(0x0056B6F1), UINT32_C(0x0027D5EC), UINT32_C(0x001C22FE), UINT32_C(0x0020CA2B)}, {UINT32_C(0x00638473), UINT32_C(0x0028A459), UINT32_C(0x0008F882), UINT32_C(0x00300359), UINT32_C(0x001A0569), UINT32_C(0x000733C8), UINT32_C(0x000AA690), UINT32_C(0x002854FD), UINT32_C(0x003A42AB), UINT32_C(0x00005D85), UINT32_C(0x003EC955), UINT32_C(0x00276DAB), UINT32_C(0x002C69D6), UINT32_C(0x0028E861), UINT32_C(0x003C6252), UINT32_C(0x001693C6), UINT32_C(0x00067C90), UINT32_C(0x00135D5A), UINT32_C(0x0019BAA5), UINT32_C(0x00638A4D), UINT32_C(0x001C54F3), UINT32_C(0x0036958E), UINT32_C(0x00229409)}, {UINT32_C(0x003694AD), UINT32_C(0x003CDD1D), UINT32_C(0x002BB2CB), UINT32_C(0x000F907F), UINT32_C(0x00217793), UINT32_C(0x001C10F3), UINT32_C(0x0007C509), UINT32_C(0x0055ED5B), UINT32_C(0x003FC009), UINT32_C(0x0013833E), UINT32_C(0x000AFDAF), UINT32_C(0x0003DFB2), UINT32_C(0x002EBC1F), UINT32_C(0x00268005), UINT32_C(0x0028835F), UINT32_C(0x002FE0AF), UINT32_C(0x002E65E7), UINT32_C(0x002D7AC4), UINT32_C(0x0016B704), UINT32_C(0x0034371A), UINT32_C(0x00333D73), UINT32_C(0x00117F49), UINT32_C(0x003508FB)}}, {{UINT32_C(0x0024288F), UINT32_C(0x00003DD4), UINT32_C(0x00121C5C), UINT32_C(0x00771CBC), UINT32_C(0x003BF063), UINT32_C(0x0002294B), UINT32_C(0x0031319F), UINT32_C(0x00643727), UINT32_C(0x00319F6F), UINT32_C(0x0008B82B), UINT32_C(0x00101D49), UINT32_C(0x00546EE5), UINT32_C(0x00238C40), UINT32_C(0x00030CAC), UINT32_C(0x00190408), UINT32_C(0x007C0F5A), UINT32_C(0x0015EAFD), UINT32_C(0x00024A8F), UINT32_C(0x00365016), UINT32_C(0x002D2DBA), UINT32_C(0x001F751C), UINT32_C(0x0003964A), UINT32_C(0x002F92CB)}, {UINT32_C(0x00561A15), UINT32_C(0x003B4C37), UINT32_C(0x001C36B5), UINT32_C(0x002ED2E4), UINT32_C(0x0002231B), UINT32_C(0x001ADAF5), UINT32_C(0x00270194), UINT32_C(0x0009DBF0), UINT32_C(0x00287239), UINT32_C(0x00080B2D), UINT32_C(0x002EB25E), UINT32_C(0x0032ED93), UINT32_C(0x00164DC0), UINT32_C(0x002F327A), UINT32_C(0x00130078), UINT32_C(0x001841D3), UINT32_C(0x00049BC2), UINT32_C(0x00048E93), UINT32_C(0x001B59E7), UINT32_C(0x006243C6), UINT32_C(0x00394260), UINT32_C(0x0017BC8D), UINT32_C(0x00176B2A)}, {UINT32_C(0x00041022), UINT32_C(0x0006B154), UINT32_C(0x0027CADC), UINT32_C(0x00627B5A), UINT32_C(0x001965DA), UINT32_C(0x002D1BDB), UINT32_C(0x001B16FE), UINT32_C(0x0016A869), UINT32_C(0x002540EA), UINT32_C(0x003B4B72), UINT32_C(0x0013ECCC), UINT32_C(0x00581A5A), UINT32_C(0x002C2192), UINT32_C(0x002588BF), UINT32_C(0x001CC31E), UINT32_C(0x0053D1B3), UINT32_C(0x003845C2), UINT32_C(0x00234BBE), UINT32_C(0x0007ABDF), UINT32_C(0x00567DC1), UINT32_C(0x00204D8E), UINT32_C(0x00161734), UINT32_C(0x00062C35)}}, {{UINT32_C(0x000DD434), UINT32_C(0x0027577F), UINT32_C(0x00224BAB), UINT32_C(0x001F24C1), UINT32_C(0x00225696), UINT32_C(0x00241E15), UINT32_C(0x001CEBF5), UINT32_C(0x005549C7), UINT32_C(0x003C9373), UINT32_C(0x002DCBA3), UINT32_C(0x002A3CBA), UINT32_C(0x001EE227), UINT32_C(0x0020FD58), UINT32_C(0x0007BFF7), UINT32_C(0x00341B3D), UINT32_C(0x0047E8D4), UINT32_C(0x0011C543), UINT32_C(0x00386E9E), UINT32_C(0x00232B8F), UINT32_C(0x0043836A), UINT32_C(0x0001E14C), UINT32_C(0x00136E35), UINT32_C(0x002D423A)}, {UINT32_C(0x005DA3DC), UINT32_C(0x003E4B5E), UINT32_C(0x00182E1B), UINT32_C(0x004D3F17), UINT32_C(0x00358964), UINT32_C(0x002F6CDB), UINT32_C(0x000FA963), UINT32_C(0x00530F85), UINT32_C(0x003FCE01), UINT32_C(0x0027B181), UINT32_C(0x0016C4E2), UINT32_C(0x001A24B7), UINT32_C(0x003A2690), UINT32_C(0x002BAD95), UINT32_C(0x000A878E), UINT32_C(0x0049FA0F), UINT32_C(0x00200790), UINT32_C(0x0007745A), UINT32_C(0x001A19FB), UINT32_C(0x00524E6F), UINT32_C(0x00167AEF), UINT32_C(0x00318813), UINT32_C(0x000BF477)}, {UINT32_C(0x00446FFB), UINT32_C(0x000E720D), UINT32_C(0x0013A7AD), UINT32_C(0x002F3160), UINT32_C(0x0020ACA2), UINT32_C(0x0031E19F), UINT32_C(0x002C99C7), UINT32_C(0x0053FC61), UINT32_C(0x000B444B), UINT32_C(0x000432E3), UINT32_C(0x0020DFE5), UINT32_C(0x0000DCBD), UINT32_C(0x002A6660), UINT32_C(0x0035A737), UINT32_C(0x0016191B), UINT32_C(0x006DFEF3), UINT32_C(0x0007D074), UINT32_C(0x0015B6DA), UINT32_C(0x000E1D85), UINT32_C(0x0040898C), UINT32_C(0x000F18DD), UINT32_C(0x0016A189), UINT32_C(0x00259E34)}}, {{UINT32_C(0x004D2036), UINT32_C(0x00198B36), UINT32_C(0x0006CEDC), UINT32_C(0x0028C725), UINT32_C(0x003381EA), UINT32_C(0x0037C857), UINT32_C(0x00239AE3), UINT32_C(0x000B8343), UINT32_C(0x0013B8A1), UINT32_C(0x0004CA9C), UINT32_C(0x00341F6F), UINT32_C(0x002C9D36), UINT32_C(0x0002B4CE), UINT32_C(0x000F979A), UINT32_C(0x00005E1A), UINT32_C(0x0003C162), UINT32_C(0x000C805D), UINT32_C(0x00171240), UINT32_C(0x00200E07), UINT32_C(0x005B5010), UINT32_C(0x0019D606), UINT32_C(0x00226023), UINT32_C(0x0023D266)}, {UINT32_C(0x00240CF2), UINT32_C(0x002268F3), UINT32_C(0x0025D159), UINT32_C(0x003C1B6F), UINT32_C(0x00214C16), UINT32_C(0x0022D5EA), UINT32_C(0x001D06D1), UINT32_C(0x007104A8), UINT32_C(0x002198F4), UINT32_C(0x002EAE4A), UINT32_C(0x001A0374), UINT32_C(0x00128B26), UINT32_C(0x00156B81), UINT32_C(0x00380AB8), UINT32_C(0x00000B34), UINT32_C(0x0032FD36), UINT32_C(0x0035997F), UINT32_C(0x001DDD23), UINT32_C(0x000F9701), UINT32_C(0x003D11DD), UINT32_C(0x00219A73), UINT32_C(0x0009572E), UINT32_C(0x0007E79A)}, {UINT32_C(0x004E4AD4), UINT32_C(0x0038839D), UINT32_C(0x0031F346), UINT32_C(0x00188C54), UINT32_C(0x000CE5E2), UINT32_C(0x000BCB59), UINT32_C(0x0036662E), UINT32_C(0x007DF8FB), UINT32_C(0x000E4805), UINT32_C(0x0038EDC7), UINT32_C(0x00209BB0), UINT32_C(0x006A5B00), UINT32_C(0x0005DC69), UINT32_C(0x001AE66C), UINT32_C(0x00175257), UINT32_C(0x006D0BBF), UINT32_C(0x00158611), UINT32_C(0x003EFEA8), UINT32_C(0x000E0C1D), UINT32_C(0x0050DC3B), UINT32_C(0x00008337), UINT32_C(0x001869C2), UINT32_C(0x003FD81D)}}, {{UINT32_C(0x0050CB64), UINT32_C(0x002429A6), UINT32_C(0x00382136), UINT32_C(0x0054F357), UINT32_C(0x003794A8), UINT32_C(0x001F187A), UINT32_C(0x000F2E75), UINT32_C(0x001AC75C), UINT32_C(0x002C3E90), UINT32_C(0x002E6B5E), UINT32_C(0x0039AC0E), UINT32_C(0x004F180B), UINT32_C(0x0020C545), UINT32_C(0x003FD3EB), UINT32_C(0x000C1453), UINT32_C(0x0017FAB0), UINT32_C(0x002E55DE), UINT32_C(0x0031C1C1), UINT32_C(0x002659CA), UINT32_C(0x0053E22F), UINT32_C(0x00377EA4), UINT32_C(0x0011C7AF), UINT32_C(0x0005E66B)}, {UINT32_C(0x005F2793), UINT32_C(0x000FABF6), UINT32_C(0x00138DB2), UINT32_C(0x0003EF56), UINT32_C(0x003C44CD), UINT32_C(0x002D1772), UINT32_C(0x00296103), UINT32_C(0x0010A045), UINT32_C(0x003F081B), UINT32_C(0x0003CA53), UINT32_C(0x00319331), UINT32_C(0x001F65B4), UINT32_C(0x002E09B1), UINT32_C(0x003544F7), UINT32_C(0x002E0977), UINT32_C(0x007A91C1), UINT32_C(0x000E98E1), UINT32_C(0x003C2830), UINT32_C(0x001F751E), UINT32_C(0x000FE9DE), UINT32_C(0x00104CA6), UINT32_C(0x00084E9F), UINT32_C(0x002EDF68)}, {UINT32_C(0x001753AE), UINT32_C(0x0015176B), UINT32_C(0x001D49C2), UINT32_C(0x005271F0), UINT32_C(0x000E3B9D), UINT32_C(0x002A9E63), UINT32_C(0x00147498), UINT32_C(0x0028C096), UINT32_C(0x0038F62A), UINT32_C(0x001E8789), UINT32_C(0x001E1D5C), UINT32_C(0x003504A2), UINT32_C(0x0026FE76), UINT32_C(0x001C16A5), UINT32_C(0x001B3F89), UINT32_C(0x0043DB5A), UINT32_C(0x00106CD7), UINT32_C(0x00317E3F), UINT32_C(0x00332597), UINT32_C(0x003737FB), UINT32_C(0x003F7130), UINT32_C(0x002A1EA9), UINT32_C(0x003BE9DE)}}, {{UINT32_C(0x003FC808), UINT32_C(0x002F762E), UINT32_C(0x003004D3), UINT32_C(0x00384DB9), UINT32_C(0x002349A4), UINT32_C(0x0032B0E8), UINT32_C(0x00152A07), UINT32_C(0x00361460), UINT32_C(0x0039BDD3), UINT32_C(0x0017D898), UINT32_C(0x00228C11), UINT32_C(0x0061443C), UINT32_C(0x0033C414), UINT32_C(0x001922E8), UINT32_C(0x0033EB75), UINT32_C(0x006856CB), UINT32_C(0x000D4491), UINT32_C(0x00089ED9), UINT32_C(0x001713B8), UINT32_C(0x000737CA), UINT32_C(0x0037B4BB), UINT32_C(0x00137C25), UINT32_C(0x00157928)}, {UINT32_C(0x005C5870), UINT32_C(0x0013A25A), UINT32_C(0x001376B2), UINT32_C(0x007F3687), UINT32_C(0x000DD1CA), UINT32_C(0x00144BD1), UINT32_C(0x00205B88), UINT32_C(0x0030B67A), UINT32_C(0x002F2ED7), UINT32_C(0x002BBB97), UINT32_C(0x0006DE0E), UINT32_C(0x0042D5EF), UINT32_C(0x0020BC9E), UINT32_C(0x001DFACA), UINT32_C(0x00176018), UINT32_C(0x00557358), UINT32_C(0x000A2A03), UINT32_C(0x0017F6AA), UINT32_C(0x001A348A), UINT32_C(0x0063CCCE), UINT32_C(0x0019E3CD), UINT32_C(0x001CAF72), UINT32_C(0x0008A7AC)}, {UINT32_C(0x00073284), UINT32_C(0x0016A772), UINT32_C(0x001B02B4), UINT32_C(0x003DCC2C), UINT32_C(0x001275AC), UINT32_C(0x0013EC26), UINT32_C(0x0039548F), UINT32_C(0x0032AC62), UINT32_C(0x002E6D0F), UINT32_C(0x0020A687), UINT32_C(0x0034013D), UINT32_C(0x002FBD07), UINT32_C(0x0027B2FE), UINT32_C(0x000AB0F8), UINT32_C(0x000DFCFE), UINT32_C(0x004B5DB3), UINT32_C(0x0031570E), UINT32_C(0x002A4886), UINT32_C(0x000AA957), UINT32_C(0x005D7580), UINT32_C(0x001EBED6), UINT32_C(0x00253717), UINT32_C(0x001A649B)}}, {{UINT32_C(0x006C4CB2), UINT32_C(0x001FB3E4), UINT32_C(0x0015B9F8), UINT32_C(0x00361781), UINT32_C(0x002C10D3), UINT32_C(0x001D9D87), UINT32_C(0x0034274C), UINT32_C(0x0021EBF4), UINT32_C(0x0033DC87), UINT32_C(0x000ADD4D), UINT32_C(0x003051CC), UINT32_C(0x0069D7F2), UINT32_C(0x002CFFFE), UINT32_C(0x0014E44A), UINT32_C(0x00049CA0), UINT32_C(0x003CBED6), UINT32_C(0x001BF1E2), UINT32_C(0x0014C23E), UINT32_C(0x000B6EB5), UINT32_C(0x002DB65D), UINT32_C(0x0005CB32), UINT32_C(0x00038B9C), UINT32_C(0x0007883B)}, {UINT32_C(0x003EF9A6), UINT32_C(0x001E1E72), UINT32_C(0x00118E1F), UINT32_C(0x000DD4EE), UINT32_C(0x001621A6), UINT32_C(0x003726A5), UINT32_C(0x0005CB81), UINT32_C(0x0066CE7A), UINT32_C(0x000248A4), UINT32_C(0x002D7AFD), UINT32_C(0x0014ACD8), UINT32_C(0x0025639C), UINT32_C(0x0009A8A5), UINT32_C(0x003318F4), UINT32_C(0x000F0BF7), UINT32_C(0x005062DE), UINT32_C(0x000024A9), UINT32_C(0x000E22D2), UINT32_C(0x001E48E9), UINT32_C(0x0021E288), UINT32_C(0x0036DB79), UINT32_C(0x002F277C), UINT32_C(0x002B4193)}, {UINT32_C(0x001EA6FE), UINT32_C(0x0031EE3B), UINT32_C(0x00045D18), UINT32_C(0x007B886D), UINT32_C(0x003AB025), UINT32_C(0x003CB9DC), UINT32_C(0x001E395D), UINT32_C(0x003B02BB), UINT32_C(0x00117981), UINT32_C(0x0019571F), UINT32_C(0x0012104C), UINT32_C(0x0015B662), UINT32_C(0x002C613A), UINT32_C(0x00070FFA), UINT32_C(0x000F20BB), UINT32_C(0x0070246F), UINT32_C(0x003AE4D8), UINT32_C(0x002C3692), UINT32_C(0x002BA766), UINT32_C(0x006979EC), UINT32_C(0x001EE4FA), UINT32_C(0x003FC3AE), UINT32_C(0x00097753)}}, {{UINT32_C(0x004F1DE3), UINT32_C(0x000C6911), UINT32_C(0x000A47C8), UINT32_C(0x001D1BD1), UINT32_C(0x002F9D0E), UINT32_C(0x00028B6C), UINT32_C(0x0030B56D), UINT32_C(0x007338C9), UINT32_C(0x000444B1), UINT32_C(0x0039A863), UINT32_C(0x0014FD9B), UINT32_C(0x0029BA71), UINT32_C(0x002F8E1D), UINT32_C(0x0012C499), UINT32_C(0x00073FFA), UINT32_C(0x000C56D4), UINT32_C(0x0014A736), UINT32_C(0x003A7177), UINT32_C(0x001CE30C), UINT32_C(0x003AAF39), UINT32_C(0x0022B563), UINT32_C(0x0036E7CC), UINT32_C(0x0037AFCD)}, {UINT32_C(0x0058F41D), UINT32_C(0x00140257), UINT32_C(0x00211567), UINT32_C(0x007DDA65), UINT32_C(0x0022C062), UINT32_C(0x001ED494), UINT32_C(0x0018952B), UINT32_C(0x00649D74), UINT32_C(0x0029BEC2), UINT32_C(0x0020C9DA), UINT32_C(0x0017B4BC), UINT32_C(0x0068E1EE), UINT32_C(0x0008D396), UINT32_C(0x00101E55), UINT32_C(0x00179EF9), UINT32_C(0x00704D7B), UINT32_C(0x00225FE0), UINT32_C(0x0033AD09), UINT32_C(0x000D6F51), UINT32_C(0x00617587), UINT32_C(0x00014347), UINT32_C(0x0006D488), UINT32_C(0x000A58EA)}, {UINT32_C(0x0062169E), UINT32_C(0x003EC8CD), UINT32_C(0x00241534), UINT32_C(0x006F5F65), UINT32_C(0x002B9962), UINT32_C(0x00142663), UINT32_C(0x00088E95), UINT32_C(0x00730FE3), UINT32_C(0x00331A06), UINT32_C(0x0027E7BD), UINT32_C(0x00364306), UINT32_C(0x003E391E), UINT32_C(0x00313667), UINT32_C(0x00198427), UINT32_C(0x00226ADA), UINT32_C(0x00566F4B), UINT32_C(0x0021A27C), UINT32_C(0x0017BBD7), UINT32_C(0x003D41DB), UINT32_C(0x0028BB58), UINT32_C(0x003278B2), UINT32_C(0x0006E057), UINT32_C(0x0003C841)}}, {{UINT32_C(0x00687D5D), UINT32_C(0x003309EF), UINT32_C(0x00346CE5), UINT32_C(0x001FF1AB), UINT32_C(0x003D2116), UINT32_C(0x0018305D), UINT32_C(0x00049468), UINT32_C(0x0061BCEB), UINT32_C(0x00157FA5), UINT32_C(0x00036CFD), UINT32_C(0x0017B473), UINT32_C(0x00536514), UINT32_C(0x0035BE53), UINT32_C(0x0031FBF4), UINT32_C(0x00138689), UINT32_C(0x00459FC3), UINT32_C(0x00382E53), UINT32_C(0x0009DCE1), UINT32_C(0x001E636A), UINT32_C(0x002622FE), UINT32_C(0x0014A044), UINT32_C(0x00145177), UINT32_C(0x002C68B2)}, {UINT32_C(0x0007CDE9), UINT32_C(0x0005E108), UINT32_C(0x000D8163), UINT32_C(0x003F9A62), UINT32_C(0x001C6BBE), UINT32_C(0x00202790), UINT32_C(0x000B515C), UINT32_C(0x0006A300), UINT32_C(0x0015F9A6), UINT32_C(0x002A1527), UINT32_C(0x003A73EB), UINT32_C(0x006F181C), UINT32_C(0x00175B8C), UINT32_C(0x002A4DA4), UINT32_C(0x000768F8), UINT32_C(0x000E56E3), UINT32_C(0x0029B426), UINT32_C(0x0011186F), UINT32_C(0x003175D0), UINT32_C(0x0029B106), UINT32_C(0x001EF0B9), UINT32_C(0x001139E2), UINT32_C(0x0035ACA5)}, {UINT32_C(0x004B2AE1), UINT32_C(0x001424F0), UINT32_C(0x00110341), UINT32_C(0x000C7518), UINT32_C(0x001685E7), UINT32_C(0x0016192F), UINT32_C(0x0028CF4C), UINT32_C(0x00637208), UINT32_C(0x003FCBD2), UINT32_C(0x00348A0E), UINT32_C(0x0034BDB7), UINT32_C(0x000E99F6), UINT32_C(0x001472CD), UINT32_C(0x000F1FAA), UINT32_C(0x00102EA2), UINT32_C(0x00579D10), UINT32_C(0x00229C04), UINT32_C(0x000DA721), UINT32_C(0x000C0D5E), UINT32_C(0x004201F5), UINT32_C(0x00013FC8), UINT32_C(0x000DFA6E), UINT32_C(0x00260016)}}, {{UINT32_C(0x0071785F), UINT32_C(0x002A6790), UINT32_C(0x00374B9A), UINT32_C(0x005C47E4), UINT32_C(0x00295CBC), UINT32_C(0x0017C2F6), UINT32_C(0x002DD473), UINT32_C(0x0003079A), UINT32_C(0x001B4CD6), UINT32_C(0x0024C5E5), UINT32_C(0x00319F1C), UINT32_C(0x00436F1D), UINT32_C(0x001A1EF6), UINT32_C(0x0003D299), UINT32_C(0x00382BA2), UINT32_C(0x0060E409), UINT32_C(0x00023098), UINT32_C(0x00171EBD), UINT32_C(0x0020240F), UINT32_C(0x00330D1E), UINT32_C(0x0017E024), UINT32_C(0x0009AC85), UINT32_C(0x001B14B7)}, {UINT32_C(0x003C69F8), UINT32_C(0x00119EF1), UINT32_C(0x002E2839), UINT32_C(0x00778F4B), UINT32_C(0x00039F0C), UINT32_C(0x0023A6C4), UINT32_C(0x003F874D), UINT32_C(0x005E260A), UINT32_C(0x003D33F7), UINT32_C(0x002C9846), UINT32_C(0x00187047), UINT32_C(0x007B8C63), UINT32_C(0x00273788), UINT32_C(0x000A168B), UINT32_C(0x003C94CF), UINT32_C(0x0058BB90), UINT32_C(0x000B16B8), UINT32_C(0x003E3A1E), UINT32_C(0x0018E21B), UINT32_C(0x007A9202), UINT32_C(0x00302517), UINT32_C(0x00154F91), UINT32_C(0x000846A0)}, {UINT32_C(0x001A0FDE), UINT32_C(0x00153D67), UINT32_C(0x00336333), UINT32_C(0x003C90A4), UINT32_C(0x00094797), UINT32_C(0x00312D2A), UINT32_C(0x001003F0), UINT32_C(0x007FBC25), UINT32_C(0x0003DF24), UINT32_C(0x00237AC4), UINT32_C(0x00194267), UINT32_C(0x002396ED), UINT32_C(0x00024617), UINT32_C(0x0016C8CB), UINT32_C(0x00152D85), UINT32_C(0x0016D3DE), UINT32_C(0x00262957), UINT32_C(0x00311596), UINT32_C(0x003EC838), UINT32_C(0x001975C2), UINT32_C(0x0034FE59), UINT32_C(0x00113D00), UINT32_C(0x002243AC)}}, {{UINT32_C(0x0068A405), UINT32_C(0x0034C98B), UINT32_C(0x0007E397), UINT32_C(0x00558483), UINT32_C(0x000956CE), UINT32_C(0x002E1CCA), UINT32_C(0x0005043D), UINT32_C(0x00476A5E), UINT32_C(0x0028457F), UINT32_C(0x003988DF), UINT32_C(0x0037A1BC), UINT32_C(0x0047942D), UINT32_C(0x00124D2E), UINT32_C(0x003AE5E0), UINT32_C(0x000B4291), UINT32_C(0x004D22EB), UINT32_C(0x0014B7CF), UINT32_C(0x0028B3D4), UINT32_C(0x003CCB59), UINT32_C(0x00190521), UINT32_C(0x000A108D), UINT32_C(0x003A6057), UINT32_C(0x00172D60)}, {UINT32_C(0x002B251D), UINT32_C(0x0013D428), UINT32_C(0x000AE878), UINT32_C(0x005FA00D), UINT32_C(0x00260531), UINT32_C(0x00329563), UINT32_C(0x000216C5), UINT32_C(0x000D16BE), UINT32_C(0x0009E37E), UINT32_C(0x003F37E0), UINT32_C(0x001AEF12), UINT32_C(0x0064E859), UINT32_C(0x0019915B), UINT32_C(0x0005BFF9), UINT32_C(0x003958ED), UINT32_C(0x000C4E03), UINT32_C(0x0008B99A), UINT32_C(0x001C38F2), UINT32_C(0x003D7DC0), UINT32_C(0x002F8014), UINT32_C(0x001CEC59), UINT32_C(0x0034AB43), UINT32_C(0x0013D729)}, {UINT32_C(0x006F3BD9), UINT32_C(0x00150F71), UINT32_C(0x002A3F95), UINT32_C(0x0068E792), UINT32_C(0x0016CF11), UINT32_C(0x001B8A33), UINT32_C(0x002E5920), UINT32_C(0x0038F685), UINT32_C(0x002CDF4A), UINT32_C(0x0027CB65), UINT32_C(0x002DF482), UINT32_C(0x000A0B78), UINT32_C(0x00309C5F), UINT32_C(0x003B06D3), UINT32_C(0x0013DAE0), UINT32_C(0x00554BDE), UINT32_C(0x0017EC53), UINT32_C(0x000F50F5), UINT32_C(0x00101EF0), UINT32_C(0x005F28DB), UINT32_C(0x0015CC1A), UINT32_C(0x001980C3), UINT32_C(0x00249DA3)}}, {{UINT32_C(0x004C93F1), UINT32_C(0x00388A39), UINT32_C(0x0030EEC8), UINT32_C(0x0052FC35), UINT32_C(0x000B0CAE), UINT32_C(0x002F3E40), UINT32_C(0x003A2ACD), UINT32_C(0x0028C4D5), UINT32_C(0x001DA5F9), UINT32_C(0x000586CA), UINT32_C(0x00119027), UINT32_C(0x0016CDC0), UINT32_C(0x0025236C), UINT32_C(0x0018A357), UINT32_C(0x0000B64B), UINT32_C(0x0076882B), UINT32_C(0x003182B1), UINT32_C(0x0037246C), UINT32_C(0x0003FB39), UINT32_C(0x002C988C), UINT32_C(0x00231B0B), UINT32_C(0x003E5BBF), UINT32_C(0x0000F374)}, {UINT32_C(0x00010D9D), UINT32_C(0x001FF389), UINT32_C(0x001538D1), UINT32_C(0x0041BD6C), UINT32_C(0x001301B2), UINT32_C(0x001DCB4A), UINT32_C(0x0008FABC), UINT32_C(0x00611765), UINT32_C(0x001A717F), UINT32_C(0x00182FF9), UINT32_C(0x0029A9C1), UINT32_C(0x002B99C3), UINT32_C(0x00017CA7), UINT32_C(0x00032AA1), UINT32_C(0x002EA89D), UINT32_C(0x00088D80), UINT32_C(0x0011EC29), UINT32_C(0x003A56BE), UINT32_C(0x000032B8), UINT32_C(0x001406E5), UINT32_C(0x0038401C), UINT32_C(0x001ACB38), UINT32_C(0x000CB5E9)}, {UINT32_C(0x0066E5AB), UINT32_C(0x00161A19), UINT32_C(0x00057829), UINT32_C(0x005F11AE), UINT32_C(0x0022507E), UINT32_C(0x00113755), UINT32_C(0x00218956), UINT32_C(0x007E85BC), UINT32_C(0x003A29F5), UINT32_C(0x001A56EA), UINT32_C(0x002F8A9F), UINT32_C(0x0030B6F2), UINT32_C(0x001F6A48), UINT32_C(0x003C6B9C), UINT32_C(0x00331944), UINT32_C(0x0012724E), UINT32_C(0x000154FE), UINT32_C(0x001A08F6), UINT32_C(0x00053CE3), UINT32_C(0x000110DA), UINT32_C(0x00189838), UINT32_C(0x000C6556), UINT32_C(0x0026E926)}}, {{UINT32_C(0x0056B198), UINT32_C(0x002E9D6F), UINT32_C(0x00384104), UINT32_C(0x002CB192), UINT32_C(0x0011E1D2), UINT32_C(0x000C3007), UINT32_C(0x00331D92), UINT32_C(0x0072B899), UINT32_C(0x002DFE85), UINT32_C(0x0019F7AE), UINT32_C(0x00228032), UINT32_C(0x001A709B), UINT32_C(0x00394A71), UINT32_C(0x00011DCB), UINT32_C(0x0025119C), UINT32_C(0x00673C0F), UINT32_C(0x000703EE), UINT32_C(0x003905C2), UINT32_C(0x0004CBE0), UINT32_C(0x003038F7), UINT32_C(0x00218611), UINT32_C(0x00344F8B), UINT32_C(0x0006EF8F)}, {UINT32_C(0x0008B7AB), UINT32_C(0x001C7936), UINT32_C(0x000AF677), UINT32_C(0x0038D1C4), UINT32_C(0x000D1982), UINT32_C(0x00008DE6), UINT32_C(0x001D8CD8), UINT32_C(0x002DAF00), UINT32_C(0x002139DC), UINT32_C(0x000C0A4C), UINT32_C(0x00103BF4), UINT32_C(0x00132620), UINT32_C(0x001E360F), UINT32_C(0x0020BE7E), UINT32_C(0x002F6F7B), UINT32_C(0x00045610), UINT32_C(0x003B63BF), UINT32_C(0x00065305), UINT32_C(0x0030A74A), UINT32_C(0x0072846A), UINT32_C(0x0009D52F), UINT32_C(0x00360AFC), UINT32_C(0x0015C630)}, {UINT32_C(0x001BB7E7), UINT32_C(0x0038CFC8), UINT32_C(0x00105C2D), UINT32_C(0x004F800D), UINT32_C(0x002813AF), UINT32_C(0x003D95F7), UINT32_C(0x000B5E3E), UINT32_C(0x0065C148), UINT32_C(0x0017B5EB), UINT32_C(0x000B59AB), UINT32_C(0x000D6920), UINT32_C(0x001459AF), UINT32_C(0x002201A2), UINT32_C(0x00066541), UINT32_C(0x001D0BA3), UINT32_C(0x00337E0F), UINT32_C(0x003BE92F), UINT32_C(0x000375C3), UINT32_C(0x0035FBBD), UINT32_C(0x005F0B0F), UINT32_C(0x000E891B), UINT32_C(0x00131D3F), UINT32_C(0x0014ED75)}}, {{UINT32_C(0x0050D8D5), UINT32_C(0x002E5561), UINT32_C(0x0031562B), UINT32_C(0x00395B3A), UINT32_C(0x002D062A), UINT32_C(0x00329C94), UINT32_C(0x001BED6E), UINT32_C(0x0064208E), UINT32_C(0x00302BDB), UINT32_C(0x0038A686), UINT32_C(0x001E41F5), UINT32_C(0x001078F7), UINT32_C(0x003A3FCC), UINT32_C(0x00061B38), UINT32_C(0x003A908E), UINT32_C(0x005A12D7), UINT32_C(0x0002303D), UINT32_C(0x00141E31), UINT32_C(0x0009E463), UINT32_C(0x0073510F), UINT32_C(0x003C92B0), UINT32_C(0x00083485), UINT32_C(0x00037A81)}, {UINT32_C(0x0019B1B8), UINT32_C(0x0038CD53), UINT32_C(0x000E197C), UINT32_C(0x0009FF2F), UINT32_C(0x003BCD33), UINT32_C(0x00302C2A), UINT32_C(0x00054200), UINT32_C(0x0079B52B), UINT32_C(0x0039D05F), UINT32_C(0x001F9C10), UINT32_C(0x0029B440), UINT32_C(0x003D8482), UINT32_C(0x001C2BD2), UINT32_C(0x0019BD77), UINT32_C(0x0010755E), UINT32_C(0x006CAE47), UINT32_C(0x0001B82A), UINT32_C(0x003DF53B), UINT32_C(0x00018A7F), UINT32_C(0x005FC8AB), UINT32_C(0x000BFFCF), UINT32_C(0x00169679), UINT32_C(0x00067097)}, {UINT32_C(0x000935D3), UINT32_C(0x0010F268), UINT32_C(0x00288B71), UINT32_C(0x00303DEB), UINT32_C(0x002E4A85), UINT32_C(0x0001813E), UINT32_C(0x003CDD05), UINT32_C(0x0001AD0A), UINT32_C(0x0014AA02), UINT32_C(0x0019FD4A), UINT32_C(0x00200BBD), UINT32_C(0x00331B4F), UINT32_C(0x000FCCBE), UINT32_C(0x001F30DB), UINT32_C(0x000BDF6F), UINT32_C(0x007AB775), UINT32_C(0x0021BE2D), UINT32_C(0x000ED4B7), UINT32_C(0x00384794), UINT32_C(0x00784F1A), UINT32_C(0x003F3A79), UINT32_C(0x0003D50F), UINT32_C(0x00064F82)}}, {{UINT32_C(0x0055E16A), UINT32_C(0x0009CBF4), UINT32_C(0x0007F387), UINT32_C(0x0008D055), UINT32_C(0x001DE49D), UINT32_C(0x003DF914), UINT32_C(0x003ED04E), UINT32_C(0x006CA4BC), UINT32_C(0x0028FCE3), UINT32_C(0x003273A4), UINT32_C(0x002DF89A), UINT32_C(0x00230A46), UINT32_C(0x0018E30C), UINT32_C(0x002CE6F1), UINT32_C(0x0002DB57), UINT32_C(0x007890F7), UINT32_C(0x0022D4F9), UINT32_C(0x0038DC8F), UINT32_C(0x00376FF1), UINT32_C(0x0012231A), UINT32_C(0x00074880), UINT32_C(0x0012A080), UINT32_C(0x00056DC5)}, {UINT32_C(0x003DBBF8), UINT32_C(0x00196819), UINT32_C(0x0024DB6E), UINT32_C(0x007A739A), UINT32_C(0x002C4BD5), UINT32_C(0x00241E7E), UINT32_C(0x0038C332), UINT32_C(0x000E069B), UINT32_C(0x0011A877), UINT32_C(0x000BB5F3), UINT32_C(0x0000613F), UINT32_C(0x001D700E), UINT32_C(0x00154F4E), UINT32_C(0x00232AA4), UINT32_C(0x00159C2A), UINT32_C(0x00203C23), UINT32_C(0x002AC285), UINT32_C(0x002F4ED7), UINT32_C(0x003914CE), UINT32_C(0x001B8C64), UINT32_C(0x000C5894), UINT32_C(0x003A7D72), UINT32_C(0x0021EFB5)}, {UINT32_C(0x0034EA4D), UINT32_C(0x001BA7B1), UINT32_C(0x003C1624), UINT32_C(0x00332852), UINT32_C(0x003E94DA), UINT32_C(0x00000887), UINT32_C(0x000BFE68), UINT32_C(0x004AD4CA), UINT32_C(0x000B742B), UINT32_C(0x00158248), UINT32_C(0x00285B88), UINT32_C(0x006EDD6B), UINT32_C(0x00200BAB), UINT32_C(0x00248DD5), UINT32_C(0x001035A8), UINT32_C(0x001F2081), UINT32_C(0x0007B194), UINT32_C(0x0011B74D), UINT32_C(0x00152BCC), UINT32_C(0x005F5821), UINT32_C(0x001FE674), UINT32_C(0x000239A6), UINT32_C(0x0034BB24)}}, {{UINT32_C(0x0072B20F), UINT32_C(0x000BF7F4), UINT32_C(0x00178C52), UINT32_C(0x00776657), UINT32_C(0x0004BFE5), UINT32_C(0x000AA36B), UINT32_C(0x003719B7), UINT32_C(0x004C2095), UINT32_C(0x00355126), UINT32_C(0x001B6111), UINT32_C(0x00172806), UINT32_C(0x0052CE54), UINT32_C(0x0008F0A0), UINT32_C(0x002B3884), UINT32_C(0x002B7196), UINT32_C(0x003A0409), UINT32_C(0x00124BAA), UINT32_C(0x001E7741), UINT32_C(0x00128DC5), UINT32_C(0x00301368), UINT32_C(0x0002A859), UINT32_C(0x00145DD3), UINT32_C(0x001A5AE5)}, {UINT32_C(0x004943B1), UINT32_C(0x0036FA8C), UINT32_C(0x002BCCB8), UINT32_C(0x00702644), UINT32_C(0x00253FD2), UINT32_C(0x00185CBE), UINT32_C(0x00047A35), UINT32_C(0x002AF03C), UINT32_C(0x001AE6F9), UINT32_C(0x001FBB03), UINT32_C(0x0024ABE9), UINT32_C(0x0023A32D), UINT32_C(0x002165FE), UINT32_C(0x0025287B), UINT32_C(0x0013905E), UINT32_C(0x005CFE02), UINT32_C(0x0007F1F9), UINT32_C(0x003E1E1E), UINT32_C(0x0007A483), UINT32_C(0x001BF89E), UINT32_C(0x0010168F), UINT32_C(0x00062F67), UINT32_C(0x00133007)}, {UINT32_C(0x007D5697), UINT32_C(0x00312189), UINT32_C(0x0015FC12), UINT32_C(0x003C037B), UINT32_C(0x00175465), UINT32_C(0x000F4B83), UINT32_C(0x0021DF66), UINT32_C(0x002A624D), UINT32_C(0x0034D443), UINT32_C(0x001E79DD), UINT32_C(0x00321A3F), UINT32_C(0x0018DC79), UINT32_C(0x001A5D56), UINT32_C(0x003541AF), UINT32_C(0x00070013), UINT32_C(0x0024CB38), UINT32_C(0x00065D92), UINT32_C(0x0020B271), UINT32_C(0x001EC105), UINT32_C(0x001E7C11), UINT32_C(0x00122C84), UINT32_C(0x0007B7C1), UINT32_C(0x002FDB93)}}, }, { {{UINT32_C(0x0044839B), UINT32_C(0x003198F6), UINT32_C(0x003BD372), UINT32_C(0x007ED128), UINT32_C(0x00206115), UINT32_C(0x003FDD6A), UINT32_C(0x0022F00A), UINT32_C(0x00117144), UINT32_C(0x001588A8), UINT32_C(0x001FF57F), UINT32_C(0x00289324), UINT32_C(0x00690294), UINT32_C(0x002D2809), UINT32_C(0x001DC9A7), UINT32_C(0x000B6923), UINT32_C(0x004B99EF), UINT32_C(0x003488AB), UINT32_C(0x001F4972), UINT32_C(0x000FFB73), UINT32_C(0x0059A57D), UINT32_C(0x000F6194), UINT32_C(0x000B6F28), UINT32_C(0x0025388B)}, {UINT32_C(0x0064E5A1), UINT32_C(0x0013FE4F), UINT32_C(0x0008ECCD), UINT32_C(0x00005C77), UINT32_C(0x0001B9C8), UINT32_C(0x00162316), UINT32_C(0x0020528F), UINT32_C(0x002DEDD0), UINT32_C(0x00191713), UINT32_C(0x0030317D), UINT32_C(0x0039A24F), UINT32_C(0x002EB466), UINT32_C(0x000EA8D0), UINT32_C(0x000E5D27), UINT32_C(0x003FED4F), UINT32_C(0x0040531E), UINT32_C(0x000FBA2C), UINT32_C(0x00234E5D), UINT32_C(0x0003D16D), UINT32_C(0x007F1872), UINT32_C(0x00256C50), UINT32_C(0x00316CFD), UINT32_C(0x002401F9)}, {UINT32_C(0x000275D5), UINT32_C(0x001F7882), UINT32_C(0x0025E59C), UINT32_C(0x0001B773), UINT32_C(0x0024FF1D), UINT32_C(0x000D98CD), UINT32_C(0x000B7E40), UINT32_C(0x006E438E), UINT32_C(0x00355F20), UINT32_C(0x0019A7AE), UINT32_C(0x00290722), UINT32_C(0x00174B19), UINT32_C(0x00318264), UINT32_C(0x00049CAA), UINT32_C(0x003F743B), UINT32_C(0x004FA60E), UINT32_C(0x0021E560), UINT32_C(0x002DDBD1), UINT32_C(0x00279C3F), UINT32_C(0x002A0542), UINT32_C(0x001C4F6E), UINT32_C(0x003F3D08), UINT32_C(0x001A9CB4)}}, {{UINT32_C(0x0044D3B6), UINT32_C(0x0011A0B0), UINT32_C(0x00223464), UINT32_C(0x00616311), UINT32_C(0x00045B71), UINT32_C(0x00221B75), UINT32_C(0x000DDB07), UINT32_C(0x0036CCED), UINT32_C(0x00310543), UINT32_C(0x001C0449), UINT32_C(0x001A5298), UINT32_C(0x007F7212), UINT32_C(0x0027112E), UINT32_C(0x003341D5), UINT32_C(0x001BB277), UINT32_C(0x0047B3A6), UINT32_C(0x002631FE), UINT32_C(0x000EC73F), UINT32_C(0x003BEA8E), UINT32_C(0x0011ACAD), UINT32_C(0x00056AB4), UINT32_C(0x00332F4E), UINT32_C(0x0020F040)}, {UINT32_C(0x00729FF7), UINT32_C(0x00084FDB), UINT32_C(0x000AF943), UINT32_C(0x0069EFD1), UINT32_C(0x000F6B0C), UINT32_C(0x002C5DA9), UINT32_C(0x003FE069), UINT32_C(0x0072A537), UINT32_C(0x000A3F33), UINT32_C(0x001C0A53), UINT32_C(0x002F3282), UINT32_C(0x006C96EB), UINT32_C(0x0039033F), UINT32_C(0x0004147A), UINT32_C(0x002F27E0), UINT32_C(0x000752BF), UINT32_C(0x00061145), UINT32_C(0x002CD663), UINT32_C(0x0031DFD9), UINT32_C(0x007E357F), UINT32_C(0x001E8721), UINT32_C(0x00265FEF), UINT32_C(0x00077889)}, {UINT32_C(0x0033FAD5), UINT32_C(0x0016E6ED), UINT32_C(0x0016F2EF), UINT32_C(0x001B964B), UINT32_C(0x001A2ECA), UINT32_C(0x003E0C81), UINT32_C(0x003FE7D9), UINT32_C(0x0069AB34), UINT32_C(0x002B4E22), UINT32_C(0x003B9125), UINT32_C(0x003129C9), UINT32_C(0x006B5E95), UINT32_C(0x003E450D), UINT32_C(0x003C0221), UINT32_C(0x00246870), UINT32_C(0x0012331E), UINT32_C(0x00368335), UINT32_C(0x003842E7), UINT32_C(0x001CD463), UINT32_C(0x00375065), UINT32_C(0x001AFC4F), UINT32_C(0x0018C552), UINT32_C(0x003DF99D)}}, {{UINT32_C(0x0076C909), UINT32_C(0x002ECC28), UINT32_C(0x003E534C), UINT32_C(0x006E5B56), UINT32_C(0x003472BC), UINT32_C(0x002ED648), UINT32_C(0x001800E5), UINT32_C(0x0062EB01), UINT32_C(0x00388368), UINT32_C(0x0017E589), UINT32_C(0x000EE455), UINT32_C(0x00752271), UINT32_C(0x0007DB0E), UINT32_C(0x0004CE3B), UINT32_C(0x001BC93D), UINT32_C(0x00266E9B), UINT32_C(0x001A633F), UINT32_C(0x00080153), UINT32_C(0x00100613), UINT32_C(0x001B334A), UINT32_C(0x001081C5), UINT32_C(0x003CEACA), UINT32_C(0x0028BC5F)}, {UINT32_C(0x004FB1B3), UINT32_C(0x001F97A9), UINT32_C(0x00159D7E), UINT32_C(0x00459CF9), UINT32_C(0x000CBC43), UINT32_C(0x00132E42), UINT32_C(0x003F3662), UINT32_C(0x0032762F), UINT32_C(0x003F6792), UINT32_C(0x00147465), UINT32_C(0x00064E92), UINT32_C(0x007B5ED9), UINT32_C(0x002CDCB9), UINT32_C(0x003B3F08), UINT32_C(0x00307A15), UINT32_C(0x00760D9B), UINT32_C(0x00145A0B), UINT32_C(0x00101514), UINT32_C(0x0036AC7F), UINT32_C(0x0046C8CA), UINT32_C(0x0009D1F6), UINT32_C(0x00065054), UINT32_C(0x000DEBF1)}, {UINT32_C(0x004F598C), UINT32_C(0x002DEC24), UINT32_C(0x000EFF2A), UINT32_C(0x001F3645), UINT32_C(0x0027F317), UINT32_C(0x003DAF78), UINT32_C(0x002BC2DB), UINT32_C(0x0004EA69), UINT32_C(0x00279343), UINT32_C(0x00337BF6), UINT32_C(0x00117316), UINT32_C(0x00616D27), UINT32_C(0x00378EC8), UINT32_C(0x0025D729), UINT32_C(0x00265316), UINT32_C(0x003D0829), UINT32_C(0x00396E01), UINT32_C(0x002AE96D), UINT32_C(0x003445E4), UINT32_C(0x001E9F9A), UINT32_C(0x0030EDDC), UINT32_C(0x002E073A), UINT32_C(0x0021B311)}}, {{UINT32_C(0x002CC32D), UINT32_C(0x000D826A), UINT32_C(0x0026E228), UINT32_C(0x000D6206), UINT32_C(0x00227832), UINT32_C(0x002140D7), UINT32_C(0x002068C2), UINT32_C(0x005C5008), UINT32_C(0x0025521D), UINT32_C(0x00281FA5), UINT32_C(0x00051E83), UINT32_C(0x00105A03), UINT32_C(0x003232E0), UINT32_C(0x003D0E47), UINT32_C(0x003BD547), UINT32_C(0x0065100C), UINT32_C(0x00113B09), UINT32_C(0x0024F1FA), UINT32_C(0x0030CDA7), UINT32_C(0x0053D618), UINT32_C(0x000A2A17), UINT32_C(0x000BD8B1), UINT32_C(0x0020FB2C)}, {UINT32_C(0x005A2225), UINT32_C(0x00391B43), UINT32_C(0x000B1CFF), UINT32_C(0x007DCE4C), UINT32_C(0x00193C2C), UINT32_C(0x003BFBCF), UINT32_C(0x001040C3), UINT32_C(0x001E82A9), UINT32_C(0x003D9486), UINT32_C(0x003AF831), UINT32_C(0x00217A7A), UINT32_C(0x006F3F26), UINT32_C(0x002E52C2), UINT32_C(0x0038837E), UINT32_C(0x00256BB5), UINT32_C(0x001D310D), UINT32_C(0x000D911E), UINT32_C(0x0012DD9B), UINT32_C(0x001D3C60), UINT32_C(0x0042AE12), UINT32_C(0x001AA290), UINT32_C(0x0011D773), UINT32_C(0x0008A556)}, {UINT32_C(0x003DB239), UINT32_C(0x003C331E), UINT32_C(0x002C1ABE), UINT32_C(0x0054F6FD), UINT32_C(0x0029390C), UINT32_C(0x002F6790), UINT32_C(0x002CD02B), UINT32_C(0x007AFE3F), UINT32_C(0x0012B2C3), UINT32_C(0x002287BB), UINT32_C(0x00114FE8), UINT32_C(0x002CC8AC), UINT32_C(0x002CADBB), UINT32_C(0x001A33BE), UINT32_C(0x0037BE86), UINT32_C(0x000AA64F), UINT32_C(0x000CDB97), UINT32_C(0x003CF948), UINT32_C(0x001BB280), UINT32_C(0x000BD3AD), UINT32_C(0x001C0A26), UINT32_C(0x001857F5), UINT32_C(0x002270FB)}}, {{UINT32_C(0x00588772), UINT32_C(0x0034A3BF), UINT32_C(0x002B2057), UINT32_C(0x000D6822), UINT32_C(0x000ED9FF), UINT32_C(0x00385C48), UINT32_C(0x003A74B9), UINT32_C(0x005A12D2), UINT32_C(0x00079DD4), UINT32_C(0x002B2E76), UINT32_C(0x00000E28), UINT32_C(0x000E1C30), UINT32_C(0x003339AE), UINT32_C(0x00248CCE), UINT32_C(0x003445A9), UINT32_C(0x0028093C), UINT32_C(0x00256A7E), UINT32_C(0x0018F19E), UINT32_C(0x00385218), UINT32_C(0x0057D410), UINT32_C(0x002DBF86), UINT32_C(0x001F5ECA), UINT32_C(0x001CACDD)}, {UINT32_C(0x00265C7D), UINT32_C(0x0028705E), UINT32_C(0x00384F7D), UINT32_C(0x0018D471), UINT32_C(0x001527DF), UINT32_C(0x003DA983), UINT32_C(0x001DDE7F), UINT32_C(0x002A71F4), UINT32_C(0x001B4521), UINT32_C(0x0003DCB4), UINT32_C(0x00328F6D), UINT32_C(0x00195CDD), UINT32_C(0x0016F6B4), UINT32_C(0x0002550C), UINT32_C(0x00181F0F), UINT32_C(0x00279602), UINT32_C(0x0000592B), UINT32_C(0x000A8FC2), UINT32_C(0x00173822), UINT32_C(0x00528D2F), UINT32_C(0x003BB20B), UINT32_C(0x001CB21C), UINT32_C(0x002E0800)}, {UINT32_C(0x0067C867), UINT32_C(0x0024B417), UINT32_C(0x000D83F0), UINT32_C(0x00584B7B), UINT32_C(0x002C2DCD), UINT32_C(0x003925C8), UINT32_C(0x0035374E), UINT32_C(0x00273444), UINT32_C(0x001ED50E), UINT32_C(0x0019DC39), UINT32_C(0x00012047), UINT32_C(0x004B56F7), UINT32_C(0x001F477D), UINT32_C(0x000C0B39), UINT32_C(0x00103A52), UINT32_C(0x003B6571), UINT32_C(0x000F7CB4), UINT32_C(0x003F0E6A), UINT32_C(0x003100B6), UINT32_C(0x0077750C), UINT32_C(0x002A6650), UINT32_C(0x001B8E63), UINT32_C(0x00356E38)}}, {{UINT32_C(0x00294CC0), UINT32_C(0x001ABF5C), UINT32_C(0x0022AB9B), UINT32_C(0x00575222), UINT32_C(0x00251493), UINT32_C(0x002E554C), UINT32_C(0x0027F012), UINT32_C(0x0071924E), UINT32_C(0x0023D76D), UINT32_C(0x00230B9E), UINT32_C(0x00295210), UINT32_C(0x00783EB9), UINT32_C(0x003D2EB1), UINT32_C(0x0034E19B), UINT32_C(0x0021E2D1), UINT32_C(0x0050A8CA), UINT32_C(0x0018C513), UINT32_C(0x00167437), UINT32_C(0x002F383C), UINT32_C(0x0071AE6B), UINT32_C(0x0005632B), UINT32_C(0x00097273), UINT32_C(0x0039C267)}, {UINT32_C(0x0056E019), UINT32_C(0x00310B20), UINT32_C(0x00308BD2), UINT32_C(0x00786653), UINT32_C(0x00396A2E), UINT32_C(0x0007FF67), UINT32_C(0x003BFBA0), UINT32_C(0x00328BB8), UINT32_C(0x0024DDEC), UINT32_C(0x002F538D), UINT32_C(0x003BCCD8), UINT32_C(0x006635E3), UINT32_C(0x0023177E), UINT32_C(0x00045322), UINT32_C(0x002E32D2), UINT32_C(0x004EC3F8), UINT32_C(0x001E2DE3), UINT32_C(0x00245612), UINT32_C(0x003C6038), UINT32_C(0x004D683D), UINT32_C(0x0012B6CB), UINT32_C(0x00027583), UINT32_C(0x002B048C)}, {UINT32_C(0x0078D023), UINT32_C(0x002E23CC), UINT32_C(0x000772AC), UINT32_C(0x003B5B53), UINT32_C(0x0029ED11), UINT32_C(0x003ED08F), UINT32_C(0x00071E5C), UINT32_C(0x00428132), UINT32_C(0x00315335), UINT32_C(0x0000402B), UINT32_C(0x000822D3), UINT32_C(0x007B1B14), UINT32_C(0x0035A437), UINT32_C(0x00206234), UINT32_C(0x0032B6E0), UINT32_C(0x0055555C), UINT32_C(0x0027CFBE), UINT32_C(0x0004A5EA), UINT32_C(0x000556CE), UINT32_C(0x0031DFEB), UINT32_C(0x001DB053), UINT32_C(0x000E8BAC), UINT32_C(0x000C0D49)}}, {{UINT32_C(0x004AA9D1), UINT32_C(0x002779EA), UINT32_C(0x001B86F9), UINT32_C(0x0072282A), UINT32_C(0x001EBBE9), UINT32_C(0x0018B46D), UINT32_C(0x0026FF2C), UINT32_C(0x003F0CC7), UINT32_C(0x00212453), UINT32_C(0x0034244B), UINT32_C(0x0009799C), UINT32_C(0x004F49C4), UINT32_C(0x000C1DEA), UINT32_C(0x0035B3DF), UINT32_C(0x000BDBDF), UINT32_C(0x001F15A7), UINT32_C(0x0037371D), UINT32_C(0x0020EBE1), UINT32_C(0x0002EA33), UINT32_C(0x0009840B), UINT32_C(0x001DD721), UINT32_C(0x002EA8B9), UINT32_C(0x000B48AD)}, {UINT32_C(0x00234472), UINT32_C(0x0005EFDD), UINT32_C(0x0021B297), UINT32_C(0x002E57AF), UINT32_C(0x00131F56), UINT32_C(0x003DE1F4), UINT32_C(0x003D96B7), UINT32_C(0x003AA17F), UINT32_C(0x0017742D), UINT32_C(0x00026100), UINT32_C(0x00337A96), UINT32_C(0x004EA9E0), UINT32_C(0x0027EA1C), UINT32_C(0x001F7FA1), UINT32_C(0x0032FFCB), UINT32_C(0x007DD72A), UINT32_C(0x0035BB87), UINT32_C(0x00318CC2), UINT32_C(0x003F5009), UINT32_C(0x00766DE0), UINT32_C(0x00391596), UINT32_C(0x000DFBB0), UINT32_C(0x002A498F)}, {UINT32_C(0x0068F40A), UINT32_C(0x0034745D), UINT32_C(0x003B263F), UINT32_C(0x00370D88), UINT32_C(0x000B7E85), UINT32_C(0x00165B40), UINT32_C(0x000F819E), UINT32_C(0x005987AB), UINT32_C(0x00108717), UINT32_C(0x002A8421), UINT32_C(0x000B286F), UINT32_C(0x004B94FD), UINT32_C(0x001DCD66), UINT32_C(0x0004CFEC), UINT32_C(0x0021944B), UINT32_C(0x00187F0D), UINT32_C(0x000E4A62), UINT32_C(0x00307E74), UINT32_C(0x0006FCD6), UINT32_C(0x004495F4), UINT32_C(0x0031D0FE), UINT32_C(0x002D69FC), UINT32_C(0x000B5770)}}, {{UINT32_C(0x0042173B), UINT32_C(0x002F2767), UINT32_C(0x003D5FCF), UINT32_C(0x0049931C), UINT32_C(0x0009BCA8), UINT32_C(0x001886FD), UINT32_C(0x00110F6D), UINT32_C(0x003C1F29), UINT32_C(0x002C545A), UINT32_C(0x0033EF6F), UINT32_C(0x0018E372), UINT32_C(0x0075FA4C), UINT32_C(0x0018BB09), UINT32_C(0x0026F270), UINT32_C(0x00346DE4), UINT32_C(0x0028FAC0), UINT32_C(0x0023E410), UINT32_C(0x0027B61C), UINT32_C(0x0014EA05), UINT32_C(0x00438310), UINT32_C(0x002CAD7B), UINT32_C(0x001FD7F3), UINT32_C(0x000B3F41)}, {UINT32_C(0x0010995C), UINT32_C(0x00168EA0), UINT32_C(0x0013CA45), UINT32_C(0x002F2095), UINT32_C(0x0031AB84), UINT32_C(0x0032FB0A), UINT32_C(0x00042BB8), UINT32_C(0x0008933C), UINT32_C(0x00097983), UINT32_C(0x00065857), UINT32_C(0x00150488), UINT32_C(0x001F3B0B), UINT32_C(0x0029F9DE), UINT32_C(0x00298C42), UINT32_C(0x00291103), UINT32_C(0x007B8240), UINT32_C(0x00185C19), UINT32_C(0x000A0A6A), UINT32_C(0x000D566B), UINT32_C(0x000742CE), UINT32_C(0x001D215F), UINT32_C(0x003F50AC), UINT32_C(0x0022911C)}, {UINT32_C(0x0045E864), UINT32_C(0x00015742), UINT32_C(0x00161854), UINT32_C(0x007B3D4F), UINT32_C(0x0021EEAE), UINT32_C(0x00296CE2), UINT32_C(0x003346C6), UINT32_C(0x00734650), UINT32_C(0x001106CC), UINT32_C(0x001BF45E), UINT32_C(0x001F7D96), UINT32_C(0x0045F811), UINT32_C(0x003B405E), UINT32_C(0x000DE8B5), UINT32_C(0x00178A69), UINT32_C(0x006CFE39), UINT32_C(0x003F339A), UINT32_C(0x00262A13), UINT32_C(0x0002FB7C), UINT32_C(0x00669A06), UINT32_C(0x002CB49B), UINT32_C(0x000DD528), UINT32_C(0x0026C657)}}, {{UINT32_C(0x005A4314), UINT32_C(0x0033DCDD), UINT32_C(0x003024FC), UINT32_C(0x003FA63F), UINT32_C(0x00296FCE), UINT32_C(0x001613FF), UINT32_C(0x001601C8), UINT32_C(0x0018EC14), UINT32_C(0x00176101), UINT32_C(0x0016707A), UINT32_C(0x00323522), UINT32_C(0x006451EF), UINT32_C(0x0038E06E), UINT32_C(0x000BBED9), UINT32_C(0x00325EF6), UINT32_C(0x005506AE), UINT32_C(0x00173417), UINT32_C(0x0030CE7F), UINT32_C(0x000E2A20), UINT32_C(0x0065E329), UINT32_C(0x00052AB8), UINT32_C(0x001DC041), UINT32_C(0x000C6341)}, {UINT32_C(0x0044DD3D), UINT32_C(0x002AF1BC), UINT32_C(0x0009FA4B), UINT32_C(0x00334B00), UINT32_C(0x003F42E3), UINT32_C(0x0002593C), UINT32_C(0x00229E96), UINT32_C(0x006D61D4), UINT32_C(0x002B2FD7), UINT32_C(0x0022C1A9), UINT32_C(0x00290FC9), UINT32_C(0x00728BC5), UINT32_C(0x003CC825), UINT32_C(0x002F498D), UINT32_C(0x00343407), UINT32_C(0x00205470), UINT32_C(0x000675EC), UINT32_C(0x002ED6F5), UINT32_C(0x00063C9F), UINT32_C(0x005D0188), UINT32_C(0x0026F6B5), UINT32_C(0x00063702), UINT32_C(0x0003A29D)}, {UINT32_C(0x0035F788), UINT32_C(0x0024E672), UINT32_C(0x0028C708), UINT32_C(0x003BBCE6), UINT32_C(0x00138643), UINT32_C(0x000A192E), UINT32_C(0x000582FA), UINT32_C(0x00192093), UINT32_C(0x0029B4D3), UINT32_C(0x002443E6), UINT32_C(0x003FB121), UINT32_C(0x00581657), UINT32_C(0x002CD1A9), UINT32_C(0x00110FB0), UINT32_C(0x00299AA9), UINT32_C(0x001FD531), UINT32_C(0x0002E546), UINT32_C(0x001E08DB), UINT32_C(0x001D678E), UINT32_C(0x0043BD67), UINT32_C(0x001A8272), UINT32_C(0x0022C90A), UINT32_C(0x0007CC59)}}, {{UINT32_C(0x003C1C05), UINT32_C(0x00371D27), UINT32_C(0x001EE674), UINT32_C(0x006687DD), UINT32_C(0x001B5B64), UINT32_C(0x0037B7A6), UINT32_C(0x00110B63), UINT32_C(0x004D3034), UINT32_C(0x00034E37), UINT32_C(0x003361C7), UINT32_C(0x0029A6D0), UINT32_C(0x005A8F45), UINT32_C(0x0002097C), UINT32_C(0x000EA46A), UINT32_C(0x001C9C63), UINT32_C(0x00510D99), UINT32_C(0x000FB932), UINT32_C(0x000D6720), UINT32_C(0x000487B1), UINT32_C(0x003D00ED), UINT32_C(0x000851E4), UINT32_C(0x000997F2), UINT32_C(0x00320424)}, {UINT32_C(0x0061B9A6), UINT32_C(0x001B989A), UINT32_C(0x0038839A), UINT32_C(0x0038318C), UINT32_C(0x000A4E7A), UINT32_C(0x00316981), UINT32_C(0x00262D85), UINT32_C(0x00404D09), UINT32_C(0x00382ABE), UINT32_C(0x000DCD89), UINT32_C(0x001791BB), UINT32_C(0x002076BF), UINT32_C(0x00097C30), UINT32_C(0x0038D1B5), UINT32_C(0x0030A092), UINT32_C(0x00563AEB), UINT32_C(0x0027026C), UINT32_C(0x000E6AF4), UINT32_C(0x0037D8D5), UINT32_C(0x006D9346), UINT32_C(0x001E7C0C), UINT32_C(0x001B5D43), UINT32_C(0x0035B6ED)}, {UINT32_C(0x007FF888), UINT32_C(0x00222708), UINT32_C(0x001FA371), UINT32_C(0x000DCC52), UINT32_C(0x0005815A), UINT32_C(0x001F9620), UINT32_C(0x000061B0), UINT32_C(0x00078FA0), UINT32_C(0x0024CC30), UINT32_C(0x0015B96E), UINT32_C(0x0021510C), UINT32_C(0x00382242), UINT32_C(0x0030063A), UINT32_C(0x0036F011), UINT32_C(0x0037B5D5), UINT32_C(0x0002EB1A), UINT32_C(0x0026488B), UINT32_C(0x003568B8), UINT32_C(0x0003E1F1), UINT32_C(0x00517C59), UINT32_C(0x0030A3A0), UINT32_C(0x0025590A), UINT32_C(0x001142DE)}}, {{UINT32_C(0x005982A8), UINT32_C(0x00370C8F), UINT32_C(0x000AF64E), UINT32_C(0x0002E275), UINT32_C(0x001EEE4F), UINT32_C(0x00246CAD), UINT32_C(0x002AC24B), UINT32_C(0x00334875), UINT32_C(0x00174AA6), UINT32_C(0x002C27C8), UINT32_C(0x000EA109), UINT32_C(0x002BB331), UINT32_C(0x002AE934), UINT32_C(0x00254289), UINT32_C(0x003CA630), UINT32_C(0x003660D8), UINT32_C(0x0002C93F), UINT32_C(0x0018A01E), UINT32_C(0x0031D7A9), UINT32_C(0x002BD9F0), UINT32_C(0x002B8049), UINT32_C(0x00350D91), UINT32_C(0x00294E97)}, {UINT32_C(0x00129088), UINT32_C(0x0028094D), UINT32_C(0x00357F4D), UINT32_C(0x006B6FFF), UINT32_C(0x001B77FC), UINT32_C(0x00021A12), UINT32_C(0x00214A39), UINT32_C(0x007DAD9D), UINT32_C(0x0003BCA3), UINT32_C(0x0032A844), UINT32_C(0x002DC466), UINT32_C(0x005640CE), UINT32_C(0x003A5766), UINT32_C(0x00209AE0), UINT32_C(0x00388583), UINT32_C(0x005AA61F), UINT32_C(0x003917FE), UINT32_C(0x0020DB8C), UINT32_C(0x002576DC), UINT32_C(0x0046380E), UINT32_C(0x002B7CE8), UINT32_C(0x000B5A77), UINT32_C(0x00136232)}, {UINT32_C(0x00059DD5), UINT32_C(0x00298A36), UINT32_C(0x002A6FC3), UINT32_C(0x0030E5AA), UINT32_C(0x00308A3F), UINT32_C(0x002D40E1), UINT32_C(0x002E7DE9), UINT32_C(0x000807B9), UINT32_C(0x000E3F2E), UINT32_C(0x00227438), UINT32_C(0x00210CE9), UINT32_C(0x002EFE56), UINT32_C(0x00252E80), UINT32_C(0x0038C0F1), UINT32_C(0x00175105), UINT32_C(0x000E6782), UINT32_C(0x000B3A10), UINT32_C(0x0011D347), UINT32_C(0x0006498F), UINT32_C(0x001484B8), UINT32_C(0x00092D66), UINT32_C(0x001CAD6A), UINT32_C(0x003E1628)}}, {{UINT32_C(0x001FA2D3), UINT32_C(0x001AD4F5), UINT32_C(0x001BA2BF), UINT32_C(0x00584C68), UINT32_C(0x003C80CD), UINT32_C(0x002A3CE1), UINT32_C(0x000E01C2), UINT32_C(0x002DD8BE), UINT32_C(0x0017C543), UINT32_C(0x002C4E30), UINT32_C(0x0034AECE), UINT32_C(0x00437F0A), UINT32_C(0x000104C7), UINT32_C(0x002AA667), UINT32_C(0x003C16D7), UINT32_C(0x001848BB), UINT32_C(0x001D7152), UINT32_C(0x002A413C), UINT32_C(0x003C17CC), UINT32_C(0x00412579), UINT32_C(0x0018306D), UINT32_C(0x00032A9E), UINT32_C(0x0008EDED)}, {UINT32_C(0x0068A027), UINT32_C(0x00272D65), UINT32_C(0x0035ED0F), UINT32_C(0x006BD7E7), UINT32_C(0x003673DF), UINT32_C(0x002FA6B9), UINT32_C(0x002B9424), UINT32_C(0x0016DE59), UINT32_C(0x0024F12D), UINT32_C(0x0030F5A6), UINT32_C(0x0016B74C), UINT32_C(0x002CCEE0), UINT32_C(0x00316F68), UINT32_C(0x0028D420), UINT32_C(0x002A7F25), UINT32_C(0x001FA3FC), UINT32_C(0x0036B1F5), UINT32_C(0x003ABC71), UINT32_C(0x002E10FE), UINT32_C(0x005F45AF), UINT32_C(0x0030575C), UINT32_C(0x003847B7), UINT32_C(0x000DD252)}, {UINT32_C(0x002FA0BD), UINT32_C(0x003EB306), UINT32_C(0x00096877), UINT32_C(0x00521BA1), UINT32_C(0x001C63BC), UINT32_C(0x0032E251), UINT32_C(0x0003FA86), UINT32_C(0x006BC4D8), UINT32_C(0x000F02D8), UINT32_C(0x002FF844), UINT32_C(0x00242017), UINT32_C(0x0073E523), UINT32_C(0x00080EB0), UINT32_C(0x0022B8DE), UINT32_C(0x003BB4D3), UINT32_C(0x0013C01E), UINT32_C(0x0033830B), UINT32_C(0x003CFD23), UINT32_C(0x00294978), UINT32_C(0x00102D1C), UINT32_C(0x000E4A57), UINT32_C(0x001089DC), UINT32_C(0x003D1440)}}, {{UINT32_C(0x00166AD2), UINT32_C(0x001851E7), UINT32_C(0x003A69AC), UINT32_C(0x00138038), UINT32_C(0x002CBBE9), UINT32_C(0x000E1B01), UINT32_C(0x002D813B), UINT32_C(0x0055062F), UINT32_C(0x0011E135), UINT32_C(0x001B55A0), UINT32_C(0x0038C972), UINT32_C(0x006FFEDB), UINT32_C(0x002EFC51), UINT32_C(0x0037167E), UINT32_C(0x000651CA), UINT32_C(0x002FAAD0), UINT32_C(0x00319A64), UINT32_C(0x001AB9E5), UINT32_C(0x0019EA91), UINT32_C(0x00571C6A), UINT32_C(0x001B9B34), UINT32_C(0x0032C40D), UINT32_C(0x00120211)}, {UINT32_C(0x003FCA5A), UINT32_C(0x002E874F), UINT32_C(0x0016F8D3), UINT32_C(0x005ED189), UINT32_C(0x00322122), UINT32_C(0x000EC018), UINT32_C(0x000CE754), UINT32_C(0x00487A23), UINT32_C(0x000D1100), UINT32_C(0x002AC3BB), UINT32_C(0x002B538F), UINT32_C(0x004F45D1), UINT32_C(0x001EB758), UINT32_C(0x003B112B), UINT32_C(0x003E180B), UINT32_C(0x005A4B85), UINT32_C(0x001D03F0), UINT32_C(0x002069E1), UINT32_C(0x0011A16E), UINT32_C(0x004F3D33), UINT32_C(0x000381CC), UINT32_C(0x00094BB5), UINT32_C(0x00250B30)}, {UINT32_C(0x001C2C25), UINT32_C(0x002E0B68), UINT32_C(0x0025AC97), UINT32_C(0x0004E260), UINT32_C(0x002EB2AB), UINT32_C(0x00309F16), UINT32_C(0x002ECEDF), UINT32_C(0x0062F833), UINT32_C(0x001E0F90), UINT32_C(0x00294A6E), UINT32_C(0x00253BC6), UINT32_C(0x00341FBD), UINT32_C(0x001FB3C9), UINT32_C(0x0038047A), UINT32_C(0x003CD92B), UINT32_C(0x002F682E), UINT32_C(0x000553EA), UINT32_C(0x00160B6F), UINT32_C(0x00346039), UINT32_C(0x003E514D), UINT32_C(0x0024F021), UINT32_C(0x003E913F), UINT32_C(0x00129CFE)}}, {{UINT32_C(0x001EFBD4), UINT32_C(0x003B8B42), UINT32_C(0x000EF579), UINT32_C(0x005902FB), UINT32_C(0x003522F1), UINT32_C(0x0005610C), UINT32_C(0x00170E18), UINT32_C(0x001AFDFC), UINT32_C(0x00204D62), UINT32_C(0x00391959), UINT32_C(0x00179E48), UINT32_C(0x002FF462), UINT32_C(0x00063CE3), UINT32_C(0x00111EA8), UINT32_C(0x001AADCF), UINT32_C(0x000BD1D2), UINT32_C(0x00367F3C), UINT32_C(0x0011E570), UINT32_C(0x000BA7B7), UINT32_C(0x0026D561), UINT32_C(0x0015CF3E), UINT32_C(0x0016E814), UINT32_C(0x003FEC7E)}, {UINT32_C(0x00410519), UINT32_C(0x0034D54F), UINT32_C(0x003C2FFF), UINT32_C(0x004F910F), UINT32_C(0x0011C414), UINT32_C(0x0015AF5E), UINT32_C(0x003D949C), UINT32_C(0x003F1B53), UINT32_C(0x000091AD), UINT32_C(0x00264BB8), UINT32_C(0x00189713), UINT32_C(0x00338935), UINT32_C(0x001CFC31), UINT32_C(0x003530FD), UINT32_C(0x003D8864), UINT32_C(0x00571F5C), UINT32_C(0x00066F17), UINT32_C(0x000C820B), UINT32_C(0x000A514A), UINT32_C(0x0053ED14), UINT32_C(0x0008908D), UINT32_C(0x002A9AA4), UINT32_C(0x003723D1)}, {UINT32_C(0x00530A55), UINT32_C(0x0023CCA3), UINT32_C(0x00382430), UINT32_C(0x006AF068), UINT32_C(0x0035651E), UINT32_C(0x0014F6EC), UINT32_C(0x002AEAAB), UINT32_C(0x00487304), UINT32_C(0x00156CAA), UINT32_C(0x000C009A), UINT32_C(0x0010EF4B), UINT32_C(0x0026FC2D), UINT32_C(0x0010F060), UINT32_C(0x00095637), UINT32_C(0x00288A9C), UINT32_C(0x007E1314), UINT32_C(0x000A00CE), UINT32_C(0x0002F2C3), UINT32_C(0x000BE1F6), UINT32_C(0x0054175B), UINT32_C(0x000AFAA6), UINT32_C(0x00232E71), UINT32_C(0x002B55E0)}}, {{UINT32_C(0x0001E7A5), UINT32_C(0x0004FD57), UINT32_C(0x0022F6FF), UINT32_C(0x004CC21B), UINT32_C(0x000D5FC7), UINT32_C(0x001FD78E), UINT32_C(0x003A2EBE), UINT32_C(0x00183905), UINT32_C(0x000C129E), UINT32_C(0x003765A9), UINT32_C(0x000A6E98), UINT32_C(0x00797796), UINT32_C(0x0024F429), UINT32_C(0x0036F1E4), UINT32_C(0x003DE415), UINT32_C(0x0060A080), UINT32_C(0x003D9A0F), UINT32_C(0x00348EE1), UINT32_C(0x003B8D4C), UINT32_C(0x003B94F9), UINT32_C(0x000A52CE), UINT32_C(0x0036391F), UINT32_C(0x00219DCA)}, {UINT32_C(0x0000155E), UINT32_C(0x00001CFD), UINT32_C(0x001A8F93), UINT32_C(0x00743A5A), UINT32_C(0x0013DF56), UINT32_C(0x0035856C), UINT32_C(0x001E2621), UINT32_C(0x001DF2FD), UINT32_C(0x0017FC31), UINT32_C(0x0007F36B), UINT32_C(0x002516F7), UINT32_C(0x006F4EDA), UINT32_C(0x0004D8DA), UINT32_C(0x003BB017), UINT32_C(0x0017812B), UINT32_C(0x002E8803), UINT32_C(0x00331E37), UINT32_C(0x001476EC), UINT32_C(0x003B6795), UINT32_C(0x001D82CF), UINT32_C(0x00055A4D), UINT32_C(0x001E2E87), UINT32_C(0x0023FEA8)}, {UINT32_C(0x002DEA12), UINT32_C(0x00158ECD), UINT32_C(0x001FC69F), UINT32_C(0x00672AE8), UINT32_C(0x001E897D), UINT32_C(0x001F295F), UINT32_C(0x0027C7CF), UINT32_C(0x002F1854), UINT32_C(0x002DD29A), UINT32_C(0x00224DFF), UINT32_C(0x00228DE0), UINT32_C(0x0009A2B0), UINT32_C(0x00113CF4), UINT32_C(0x0030BD96), UINT32_C(0x0029A4AB), UINT32_C(0x006DD2C6), UINT32_C(0x000E0F85), UINT32_C(0x001BA973), UINT32_C(0x003AEEC2), UINT32_C(0x00440748), UINT32_C(0x003C3422), UINT32_C(0x0004A832), UINT32_C(0x003A30EB)}}, {{UINT32_C(0x001F1DE4), UINT32_C(0x0018B067), UINT32_C(0x002FFBA1), UINT32_C(0x007C943A), UINT32_C(0x003A18D1), UINT32_C(0x001108E9), UINT32_C(0x00284491), UINT32_C(0x00156A7B), UINT32_C(0x00148D8E), UINT32_C(0x00125467), UINT32_C(0x001947CE), UINT32_C(0x0048136E), UINT32_C(0x0014138D), UINT32_C(0x00303877), UINT32_C(0x00013932), UINT32_C(0x00055FE2), UINT32_C(0x00202719), UINT32_C(0x001586AE), UINT32_C(0x002D4502), UINT32_C(0x0071913C), UINT32_C(0x001B1B1C), UINT32_C(0x00056028), UINT32_C(0x00151696)}, {UINT32_C(0x0076C4DF), UINT32_C(0x001348D7), UINT32_C(0x00276BB5), UINT32_C(0x001D589A), UINT32_C(0x00390F8D), UINT32_C(0x0029442B), UINT32_C(0x0000B75D), UINT32_C(0x00036E35), UINT32_C(0x003201CC), UINT32_C(0x002A33F2), UINT32_C(0x001F44DA), UINT32_C(0x000F6817), UINT32_C(0x0009DD39), UINT32_C(0x00291EE0), UINT32_C(0x003B94B2), UINT32_C(0x00628085), UINT32_C(0x003DA89E), UINT32_C(0x001935A1), UINT32_C(0x001682E4), UINT32_C(0x003D96A4), UINT32_C(0x00266B1C), UINT32_C(0x000B66B4), UINT32_C(0x000892A2)}, {UINT32_C(0x003AFE25), UINT32_C(0x00055237), UINT32_C(0x00193631), UINT32_C(0x000ADE15), UINT32_C(0x00176B32), UINT32_C(0x0008E9B8), UINT32_C(0x0010652A), UINT32_C(0x001C79FD), UINT32_C(0x0012262B), UINT32_C(0x000811E4), UINT32_C(0x00371D92), UINT32_C(0x00000BE1), UINT32_C(0x000F024E), UINT32_C(0x003270AF), UINT32_C(0x003A0AEA), UINT32_C(0x005156EE), UINT32_C(0x003A8504), UINT32_C(0x00159140), UINT32_C(0x000A6703), UINT32_C(0x00125BF7), UINT32_C(0x003B1A1B), UINT32_C(0x0014C0D0), UINT32_C(0x0029EE7F)}}, }, { {{UINT32_C(0x000CEE3A), UINT32_C(0x003D7321), UINT32_C(0x00023142), UINT32_C(0x003544C4), UINT32_C(0x003F91BD), UINT32_C(0x0010A3EC), UINT32_C(0x00082B20), UINT32_C(0x0078FFE7), UINT32_C(0x003864F1), UINT32_C(0x003B8041), UINT32_C(0x001D9DC2), UINT32_C(0x0007B678), UINT32_C(0x0031A85D), UINT32_C(0x0026740B), UINT32_C(0x003B73EA), UINT32_C(0x00554F39), UINT32_C(0x0024C5A9), UINT32_C(0x001017C6), UINT32_C(0x0015253B), UINT32_C(0x0078B21A), UINT32_C(0x001046AA), UINT32_C(0x00345729), UINT32_C(0x0019F681)}, {UINT32_C(0x00181CB6), UINT32_C(0x001C63A7), UINT32_C(0x003CC749), UINT32_C(0x00688EB7), UINT32_C(0x003206DC), UINT32_C(0x002E4E99), UINT32_C(0x0004E7E3), UINT32_C(0x005C52DA), UINT32_C(0x00206DFE), UINT32_C(0x001645C1), UINT32_C(0x003C7BEB), UINT32_C(0x000204B2), UINT32_C(0x00012DAF), UINT32_C(0x00349503), UINT32_C(0x0034618E), UINT32_C(0x00231A9D), UINT32_C(0x0029B7B6), UINT32_C(0x002A40B2), UINT32_C(0x003C911A), UINT32_C(0x0014E5CA), UINT32_C(0x00168D52), UINT32_C(0x0005511B), UINT32_C(0x002F1520)}, {UINT32_C(0x007821FA), UINT32_C(0x0036926C), UINT32_C(0x000D7AF9), UINT32_C(0x006EC97B), UINT32_C(0x00045F92), UINT32_C(0x002447D1), UINT32_C(0x0026C242), UINT32_C(0x00319411), UINT32_C(0x003B8DAD), UINT32_C(0x001E3305), UINT32_C(0x0017AA9C), UINT32_C(0x001725D0), UINT32_C(0x00244567), UINT32_C(0x0005476C), UINT32_C(0x0001EFF9), UINT32_C(0x006A1091), UINT32_C(0x0024FA36), UINT32_C(0x00039DCF), UINT32_C(0x00208642), UINT32_C(0x003C7246), UINT32_C(0x003FA637), UINT32_C(0x002BB676), UINT32_C(0x00259D44)}}, {{UINT32_C(0x001143E0), UINT32_C(0x000BE934), UINT32_C(0x00092033), UINT32_C(0x0022ACE8), UINT32_C(0x0007276F), UINT32_C(0x000F73BC), UINT32_C(0x00201D0F), UINT32_C(0x00226977), UINT32_C(0x00012645), UINT32_C(0x00275465), UINT32_C(0x0028E554), UINT32_C(0x005CBE2C), UINT32_C(0x0021F1F6), UINT32_C(0x003D5FE6), UINT32_C(0x001DC930), UINT32_C(0x0077C3DA), UINT32_C(0x00097BE2), UINT32_C(0x000D819D), UINT32_C(0x0001C8A3), UINT32_C(0x0019CED0), UINT32_C(0x00134484), UINT32_C(0x000F4F11), UINT32_C(0x001DF685)}, {UINT32_C(0x000009BC), UINT32_C(0x0011EDA2), UINT32_C(0x000D29DF), UINT32_C(0x003DD661), UINT32_C(0x002C252E), UINT32_C(0x00113EDA), UINT32_C(0x003DF35D), UINT32_C(0x002DED2E), UINT32_C(0x002B0755), UINT32_C(0x00333F8A), UINT32_C(0x0013C151), UINT32_C(0x0057FEA3), UINT32_C(0x0015DAC1), UINT32_C(0x003EB220), UINT32_C(0x0003B1EA), UINT32_C(0x007C1A9B), UINT32_C(0x003CE6E5), UINT32_C(0x003CAD4F), UINT32_C(0x0012B472), UINT32_C(0x00652857), UINT32_C(0x0007E9D3), UINT32_C(0x0024534D), UINT32_C(0x00213675)}, {UINT32_C(0x0048F0D3), UINT32_C(0x0022CD16), UINT32_C(0x000AD0B2), UINT32_C(0x00354F10), UINT32_C(0x00349FB2), UINT32_C(0x00305A14), UINT32_C(0x001BDA8F), UINT32_C(0x007E0240), UINT32_C(0x001C187D), UINT32_C(0x003E456C), UINT32_C(0x00228C2A), UINT32_C(0x00518D87), UINT32_C(0x0031FEE5), UINT32_C(0x0018BEB8), UINT32_C(0x001E38EB), UINT32_C(0x003553A2), UINT32_C(0x003C0940), UINT32_C(0x003DE9BA), UINT32_C(0x00120769), UINT32_C(0x0076BFBD), UINT32_C(0x003CEEF0), UINT32_C(0x001B431A), UINT32_C(0x001E3982)}}, {{UINT32_C(0x00516136), UINT32_C(0x0029DF1B), UINT32_C(0x002D8BBF), UINT32_C(0x00309D5F), UINT32_C(0x00259D4B), UINT32_C(0x00038377), UINT32_C(0x003833E1), UINT32_C(0x004338BB), UINT32_C(0x001D9308), UINT32_C(0x0006D82F), UINT32_C(0x000B6B51), UINT32_C(0x005BA357), UINT32_C(0x00320D4C), UINT32_C(0x00259A92), UINT32_C(0x001D9241), UINT32_C(0x0078B989), UINT32_C(0x00045C59), UINT32_C(0x00037E70), UINT32_C(0x002B41F8), UINT32_C(0x0040B045), UINT32_C(0x003CC5AB), UINT32_C(0x003A6093), UINT32_C(0x002EB114)}, {UINT32_C(0x002FD13F), UINT32_C(0x0031B6B2), UINT32_C(0x0038071A), UINT32_C(0x00008F7E), UINT32_C(0x002227F0), UINT32_C(0x002C8CB9), UINT32_C(0x0002C017), UINT32_C(0x00452659), UINT32_C(0x000CCF76), UINT32_C(0x000F095B), UINT32_C(0x003A4DFD), UINT32_C(0x0072E9C3), UINT32_C(0x0010B61E), UINT32_C(0x000C0898), UINT32_C(0x0024C173), UINT32_C(0x000A2663), UINT32_C(0x00060CDB), UINT32_C(0x00096AE3), UINT32_C(0x0013F6F3), UINT32_C(0x004B3363), UINT32_C(0x001F342B), UINT32_C(0x000C8DE7), UINT32_C(0x00251CCD)}, {UINT32_C(0x00291E81), UINT32_C(0x00087E94), UINT32_C(0x00397163), UINT32_C(0x0041EE95), UINT32_C(0x00174BBE), UINT32_C(0x00116EA7), UINT32_C(0x003F0F93), UINT32_C(0x004C9F35), UINT32_C(0x0028B7F6), UINT32_C(0x0005ADCA), UINT32_C(0x00148DEC), UINT32_C(0x00599D15), UINT32_C(0x0024B8E7), UINT32_C(0x003FB84F), UINT32_C(0x003DA2F2), UINT32_C(0x003BCD26), UINT32_C(0x003A6E5E), UINT32_C(0x00198E0F), UINT32_C(0x002481B2), UINT32_C(0x0052634A), UINT32_C(0x0022D3F8), UINT32_C(0x00291EF1), UINT32_C(0x0007CC09)}}, {{UINT32_C(0x00103033), UINT32_C(0x002ADD30), UINT32_C(0x001859A0), UINT32_C(0x0015A086), UINT32_C(0x00061C02), UINT32_C(0x0010E7A8), UINT32_C(0x003EAFF4), UINT32_C(0x00767D34), UINT32_C(0x0010AB16), UINT32_C(0x001F8467), UINT32_C(0x0026AFAB), UINT32_C(0x000D90E0), UINT32_C(0x0026D163), UINT32_C(0x001708CF), UINT32_C(0x00041DBD), UINT32_C(0x0016BB95), UINT32_C(0x00375E2C), UINT32_C(0x0003BCA5), UINT32_C(0x0004AAE7), UINT32_C(0x003072CC), UINT32_C(0x0005E256), UINT32_C(0x0015AC55), UINT32_C(0x003BABC8)}, {UINT32_C(0x004B5126), UINT32_C(0x00221DBC), UINT32_C(0x00061E51), UINT32_C(0x001A65B2), UINT32_C(0x00144A5D), UINT32_C(0x00053B47), UINT32_C(0x0035282A), UINT32_C(0x00361203), UINT32_C(0x0034A24A), UINT32_C(0x00265DCD), UINT32_C(0x0011E3E4), UINT32_C(0x0071F53C), UINT32_C(0x001617A7), UINT32_C(0x001B3CFC), UINT32_C(0x0037ACD5), UINT32_C(0x003D79A9), UINT32_C(0x002F6062), UINT32_C(0x000E6254), UINT32_C(0x0013609B), UINT32_C(0x006B6554), UINT32_C(0x0035F594), UINT32_C(0x000ABD87), UINT32_C(0x002EDABF)}, {UINT32_C(0x00261ED9), UINT32_C(0x002DA8C6), UINT32_C(0x001E0A7A), UINT32_C(0x00169981), UINT32_C(0x001CF370), UINT32_C(0x003E78E4), UINT32_C(0x001DC822), UINT32_C(0x005C5907), UINT32_C(0x000C84AA), UINT32_C(0x001B3D8D), UINT32_C(0x00235FF6), UINT32_C(0x003183F8), UINT32_C(0x001DC3F5), UINT32_C(0x003CD3E8), UINT32_C(0x0038AA8A), UINT32_C(0x00298326), UINT32_C(0x0023EE8A), UINT32_C(0x00219AC4), UINT32_C(0x002FFA3E), UINT32_C(0x006FB3B6), UINT32_C(0x0026C478), UINT32_C(0x0001E8FD), UINT32_C(0x0028FC8A)}}, {{UINT32_C(0x0074BF78), UINT32_C(0x0021A4A0), UINT32_C(0x0007F0AA), UINT32_C(0x004357AC), UINT32_C(0x001FE0E7), UINT32_C(0x0028EE47), UINT32_C(0x0028C433), UINT32_C(0x002DC428), UINT32_C(0x001801EA), UINT32_C(0x001C3DCA), UINT32_C(0x0036E321), UINT32_C(0x0076CD18), UINT32_C(0x000FE126), UINT32_C(0x001F3CFA), UINT32_C(0x003B1976), UINT32_C(0x007FB0F7), UINT32_C(0x0022F2C9), UINT32_C(0x00197985), UINT32_C(0x0007146F), UINT32_C(0x007D7DCB), UINT32_C(0x000400AF), UINT32_C(0x00344938), UINT32_C(0x002E00BD)}, {UINT32_C(0x0033B420), UINT32_C(0x002CBFC9), UINT32_C(0x001EBE71), UINT32_C(0x000E5302), UINT32_C(0x00074DB3), UINT32_C(0x00130287), UINT32_C(0x000026B2), UINT32_C(0x00514208), UINT32_C(0x002E49CD), UINT32_C(0x000B2A5B), UINT32_C(0x003C750F), UINT32_C(0x003ED5AC), UINT32_C(0x0039B88B), UINT32_C(0x002B90DA), UINT32_C(0x0005740F), UINT32_C(0x00279855), UINT32_C(0x00083537), UINT32_C(0x000AECE4), UINT32_C(0x00284E3D), UINT32_C(0x007EBF4B), UINT32_C(0x000753F0), UINT32_C(0x00361832), UINT32_C(0x001F793F)}, {UINT32_C(0x003A939A), UINT32_C(0x00052334), UINT32_C(0x00356449), UINT32_C(0x0024BFBB), UINT32_C(0x0036BE0F), UINT32_C(0x00367B2C), UINT32_C(0x0004E8D1), UINT32_C(0x0067E56C), UINT32_C(0x00279DE5), UINT32_C(0x00090171), UINT32_C(0x0015DDDE), UINT32_C(0x002A246D), UINT32_C(0x00062B11), UINT32_C(0x00036BDB), UINT32_C(0x001714B6), UINT32_C(0x007CBB2A), UINT32_C(0x001969BA), UINT32_C(0x0027CA13), UINT32_C(0x0028B9DE), UINT32_C(0x005E3B1A), UINT32_C(0x00078AE7), UINT32_C(0x001351F5), UINT32_C(0x0000DA62)}}, {{UINT32_C(0x00053172), UINT32_C(0x002A2BFC), UINT32_C(0x0033E860), UINT32_C(0x00638ADF), UINT32_C(0x0022FDA9), UINT32_C(0x00161786), UINT32_C(0x002313FD), UINT32_C(0x00502AB2), UINT32_C(0x001C6DA3), UINT32_C(0x00235635), UINT32_C(0x0008ED5B), UINT32_C(0x001E342B), UINT32_C(0x0013C148), UINT32_C(0x002E6A9C), UINT32_C(0x003897F3), UINT32_C(0x005843F7), UINT32_C(0x00123DFD), UINT32_C(0x003C9807), UINT32_C(0x0005F065), UINT32_C(0x000D45E4), UINT32_C(0x002690E3), UINT32_C(0x00341A20), UINT32_C(0x000927BF)}, {UINT32_C(0x0015F913), UINT32_C(0x0030564F), UINT32_C(0x002F86A0), UINT32_C(0x000C54CB), UINT32_C(0x0017E098), UINT32_C(0x001C24F2), UINT32_C(0x0017111F), UINT32_C(0x00021C5D), UINT32_C(0x001BE2D3), UINT32_C(0x000FD2C4), UINT32_C(0x001E935E), UINT32_C(0x003CE41D), UINT32_C(0x00086058), UINT32_C(0x001B00C8), UINT32_C(0x00285196), UINT32_C(0x00011DA1), UINT32_C(0x002F1A16), UINT32_C(0x00126ABE), UINT32_C(0x00042FD8), UINT32_C(0x002EDBF1), UINT32_C(0x003A75C6), UINT32_C(0x000D1C7C), UINT32_C(0x00367832)}, {UINT32_C(0x00293AEE), UINT32_C(0x00021495), UINT32_C(0x001BB0F5), UINT32_C(0x00566C32), UINT32_C(0x00196DDA), UINT32_C(0x000D10CE), UINT32_C(0x000C6555), UINT32_C(0x001E8E54), UINT32_C(0x0014FA41), UINT32_C(0x003CA61A), UINT32_C(0x0008C270), UINT32_C(0x0041A922), UINT32_C(0x0010DDE3), UINT32_C(0x003C22D8), UINT32_C(0x00143053), UINT32_C(0x000C9DAC), UINT32_C(0x00117939), UINT32_C(0x0016BA60), UINT32_C(0x0028B353), UINT32_C(0x003C642B), UINT32_C(0x0020C6F4), UINT32_C(0x0003F370), UINT32_C(0x00196768)}}, {{UINT32_C(0x0065E8F6), UINT32_C(0x0009C4A7), UINT32_C(0x000A1D99), UINT32_C(0x007D4B7B), UINT32_C(0x0015F315), UINT32_C(0x003FC1AA), UINT32_C(0x002468FA), UINT32_C(0x005C1056), UINT32_C(0x000F4362), UINT32_C(0x002C7799), UINT32_C(0x0022A7D7), UINT32_C(0x0071EC9D), UINT32_C(0x001ACB59), UINT32_C(0x001E9B82), UINT32_C(0x000369EA), UINT32_C(0x0052D8AB), UINT32_C(0x002884D6), UINT32_C(0x000AA6B5), UINT32_C(0x00110D92), UINT32_C(0x005882B4), UINT32_C(0x0018CB6D), UINT32_C(0x002F7663), UINT32_C(0x001B502E)}, {UINT32_C(0x006415D4), UINT32_C(0x0036A62C), UINT32_C(0x002F8E5C), UINT32_C(0x00310D30), UINT32_C(0x0011EE1E), UINT32_C(0x00271CB7), UINT32_C(0x0022D267), UINT32_C(0x00094EFA), UINT32_C(0x00398684), UINT32_C(0x003F1B86), UINT32_C(0x00165A66), UINT32_C(0x005BB638), UINT32_C(0x0034D02F), UINT32_C(0x003E6EBE), UINT32_C(0x000DE3C6), UINT32_C(0x004138E0), UINT32_C(0x002EECEC), UINT32_C(0x0024EE9D), UINT32_C(0x001E8C7F), UINT32_C(0x005CEBE9), UINT32_C(0x000A4E0F), UINT32_C(0x001BC6CD), UINT32_C(0x0036B315)}, {UINT32_C(0x004FDAB7), UINT32_C(0x003E5AE6), UINT32_C(0x000C6A3B), UINT32_C(0x002C4AA9), UINT32_C(0x00269D75), UINT32_C(0x000D8807), UINT32_C(0x000B5F32), UINT32_C(0x006B8D06), UINT32_C(0x0031AE80), UINT32_C(0x0025B3E0), UINT32_C(0x0039541F), UINT32_C(0x0000F3ED), UINT32_C(0x003A4AF4), UINT32_C(0x001A6C5B), UINT32_C(0x000C602B), UINT32_C(0x0011FF53), UINT32_C(0x002F09C9), UINT32_C(0x00054583), UINT32_C(0x00214187), UINT32_C(0x0036D12F), UINT32_C(0x003950DC), UINT32_C(0x000AED90), UINT32_C(0x003F5A51)}}, {{UINT32_C(0x00056FA9), UINT32_C(0x002A8CF1), UINT32_C(0x0001DDAD), UINT32_C(0x0046E6FF), UINT32_C(0x003B910B), UINT32_C(0x002CADE7), UINT32_C(0x000D73A3), UINT32_C(0x00338292), UINT32_C(0x000BBF55), UINT32_C(0x0033F714), UINT32_C(0x0004D83C), UINT32_C(0x007DF50D), UINT32_C(0x0037ABD1), UINT32_C(0x00103E5A), UINT32_C(0x00042BB5), UINT32_C(0x00663AFA), UINT32_C(0x00197069), UINT32_C(0x002B5674), UINT32_C(0x003B0D57), UINT32_C(0x0045359A), UINT32_C(0x0010B12C), UINT32_C(0x000F3CA0), UINT32_C(0x0025512A)}, {UINT32_C(0x002BD66C), UINT32_C(0x002285D6), UINT32_C(0x001D66BD), UINT32_C(0x006BD87F), UINT32_C(0x002DC0F9), UINT32_C(0x003AE7AB), UINT32_C(0x00361A39), UINT32_C(0x0011B741), UINT32_C(0x00206C9F), UINT32_C(0x0025662E), UINT32_C(0x000C70F7), UINT32_C(0x003F36E4), UINT32_C(0x002ACA51), UINT32_C(0x000C34AF), UINT32_C(0x0024625C), UINT32_C(0x006500C7), UINT32_C(0x00198FCB), UINT32_C(0x0012CFCA), UINT32_C(0x0009EE1C), UINT32_C(0x00277608), UINT32_C(0x00213658), UINT32_C(0x0030604D), UINT32_C(0x002EF50F)}, {UINT32_C(0x00092ABD), UINT32_C(0x001446D1), UINT32_C(0x003F6A06), UINT32_C(0x0046565B), UINT32_C(0x0003E584), UINT32_C(0x00159E89), UINT32_C(0x003DEBC5), UINT32_C(0x00735F29), UINT32_C(0x0031EB5E), UINT32_C(0x000434A9), UINT32_C(0x002797DF), UINT32_C(0x006DEA2C), UINT32_C(0x002A9686), UINT32_C(0x00118EFA), UINT32_C(0x00050279), UINT32_C(0x003045AD), UINT32_C(0x0034874B), UINT32_C(0x003D78ED), UINT32_C(0x0018FEC5), UINT32_C(0x003D2A5A), UINT32_C(0x0030D04B), UINT32_C(0x003A21F3), UINT32_C(0x0031E2CC)}}, {{UINT32_C(0x000F8BDB), UINT32_C(0x0033A04E), UINT32_C(0x0014B261), UINT32_C(0x003ABAE0), UINT32_C(0x0003F54D), UINT32_C(0x00168473), UINT32_C(0x001C33A5), UINT32_C(0x001CB69A), UINT32_C(0x000FEEE3), UINT32_C(0x0031C38B), UINT32_C(0x00219E20), UINT32_C(0x004DE49D), UINT32_C(0x003DCBEE), UINT32_C(0x00052411), UINT32_C(0x003D8935), UINT32_C(0x000D0029), UINT32_C(0x00227D70), UINT32_C(0x002A8E3F), UINT32_C(0x000204A8), UINT32_C(0x00320844), UINT32_C(0x000DD3B6), UINT32_C(0x003D0841), UINT32_C(0x002C6C6C)}, {UINT32_C(0x005C03EC), UINT32_C(0x002B2C46), UINT32_C(0x00293F5B), UINT32_C(0x007F7BDE), UINT32_C(0x003ADCB5), UINT32_C(0x0017241D), UINT32_C(0x001FD746), UINT32_C(0x003529B7), UINT32_C(0x003332DC), UINT32_C(0x002763A5), UINT32_C(0x001E887A), UINT32_C(0x00130EB1), UINT32_C(0x002394CE), UINT32_C(0x000B8EF4), UINT32_C(0x000E932D), UINT32_C(0x00527CBE), UINT32_C(0x003F139A), UINT32_C(0x003BFA19), UINT32_C(0x00336A1D), UINT32_C(0x0066E2AC), UINT32_C(0x00098186), UINT32_C(0x00047A1A), UINT32_C(0x0004788C)}, {UINT32_C(0x0009A196), UINT32_C(0x0035EBC2), UINT32_C(0x00265402), UINT32_C(0x007A08A2), UINT32_C(0x002CDBA0), UINT32_C(0x0023627E), UINT32_C(0x0002433D), UINT32_C(0x0046191A), UINT32_C(0x003DCF82), UINT32_C(0x00034EE3), UINT32_C(0x002B144C), UINT32_C(0x000FC454), UINT32_C(0x00149146), UINT32_C(0x0002C1B7), UINT32_C(0x000707A7), UINT32_C(0x0029E68D), UINT32_C(0x000F78F8), UINT32_C(0x0024EB1B), UINT32_C(0x00116A27), UINT32_C(0x00722F40), UINT32_C(0x000C507F), UINT32_C(0x000737D8), UINT32_C(0x001FABC6)}}, {{UINT32_C(0x002E0A9F), UINT32_C(0x00047AD4), UINT32_C(0x00395FF2), UINT32_C(0x0070C4CD), UINT32_C(0x001FB3C7), UINT32_C(0x0001E8F1), UINT32_C(0x00025684), UINT32_C(0x0046A16B), UINT32_C(0x000BE275), UINT32_C(0x001CA806), UINT32_C(0x00017814), UINT32_C(0x00255A20), UINT32_C(0x001A997F), UINT32_C(0x001AD072), UINT32_C(0x003CFEB6), UINT32_C(0x003C6C9C), UINT32_C(0x001F796B), UINT32_C(0x003CEE03), UINT32_C(0x0003882E), UINT32_C(0x006A3D22), UINT32_C(0x0039A895), UINT32_C(0x003BEFAB), UINT32_C(0x001E8B14)}, {UINT32_C(0x002481A8), UINT32_C(0x000FD69E), UINT32_C(0x001BB1B7), UINT32_C(0x006E58A2), UINT32_C(0x001FF0FF), UINT32_C(0x000786C3), UINT32_C(0x0016526A), UINT32_C(0x00617928), UINT32_C(0x0010511F), UINT32_C(0x00088530), UINT32_C(0x00397BC8), UINT32_C(0x0034BA73), UINT32_C(0x0004BEE5), UINT32_C(0x00274402), UINT32_C(0x0004DCC0), UINT32_C(0x00246DC1), UINT32_C(0x00001408), UINT32_C(0x002DC300), UINT32_C(0x0028EE1F), UINT32_C(0x00609A3C), UINT32_C(0x0009B999), UINT32_C(0x00203ECD), UINT32_C(0x0022AA2D)}, {UINT32_C(0x003580E7), UINT32_C(0x00155DCD), UINT32_C(0x0013457A), UINT32_C(0x002C90EB), UINT32_C(0x0026470A), UINT32_C(0x00122727), UINT32_C(0x0037BD5C), UINT32_C(0x005D220D), UINT32_C(0x00152493), UINT32_C(0x0018A293), UINT32_C(0x00392995), UINT32_C(0x00151E64), UINT32_C(0x002E37DC), UINT32_C(0x002E9EC6), UINT32_C(0x001A205E), UINT32_C(0x000701D8), UINT32_C(0x001CB000), UINT32_C(0x00120BE4), UINT32_C(0x0031B0D9), UINT32_C(0x005B9235), UINT32_C(0x00005267), UINT32_C(0x000B7C49), UINT32_C(0x00155B65)}}, {{UINT32_C(0x003005AF), UINT32_C(0x00222462), UINT32_C(0x0034D58A), UINT32_C(0x002AEF89), UINT32_C(0x002BA06B), UINT32_C(0x001C9A9E), UINT32_C(0x001E894B), UINT32_C(0x00406001), UINT32_C(0x0010BF30), UINT32_C(0x002867EA), UINT32_C(0x003F0EC9), UINT32_C(0x0032D6F1), UINT32_C(0x002C15E9), UINT32_C(0x0012CFC5), UINT32_C(0x00191373), UINT32_C(0x0024A43B), UINT32_C(0x002C8AB3), UINT32_C(0x0025E47F), UINT32_C(0x003A9B91), UINT32_C(0x002DC4AC), UINT32_C(0x001821EA), UINT32_C(0x0019E718), UINT32_C(0x003570EC)}, {UINT32_C(0x00049A08), UINT32_C(0x0029C93F), UINT32_C(0x00311736), UINT32_C(0x004A3E8D), UINT32_C(0x00076459), UINT32_C(0x0024E089), UINT32_C(0x000D1295), UINT32_C(0x0065B4DA), UINT32_C(0x00199D52), UINT32_C(0x0007CE98), UINT32_C(0x00284B76), UINT32_C(0x00797A7F), UINT32_C(0x00219D91), UINT32_C(0x00288E07), UINT32_C(0x000BA4F1), UINT32_C(0x001089DA), UINT32_C(0x0003C7B7), UINT32_C(0x0037C99E), UINT32_C(0x00376B77), UINT32_C(0x0028C9E0), UINT32_C(0x003AF66B), UINT32_C(0x0015F094), UINT32_C(0x000887F7)}, {UINT32_C(0x004D57FB), UINT32_C(0x00142BB6), UINT32_C(0x000680E9), UINT32_C(0x0019ED70), UINT32_C(0x0031F674), UINT32_C(0x003D4AD2), UINT32_C(0x00023E39), UINT32_C(0x006D62CE), UINT32_C(0x001F2AF6), UINT32_C(0x0018DCD2), UINT32_C(0x00087694), UINT32_C(0x0004D412), UINT32_C(0x0022EF3A), UINT32_C(0x00024D6F), UINT32_C(0x0016C5BC), UINT32_C(0x00499A4A), UINT32_C(0x003C726B), UINT32_C(0x0021F3CF), UINT32_C(0x0023BB7D), UINT32_C(0x0060BA2C), UINT32_C(0x003B5906), UINT32_C(0x0019F5B1), UINT32_C(0x0022E2B1)}}, {{UINT32_C(0x001A18D3), UINT32_C(0x0002DF53), UINT32_C(0x003C65F2), UINT32_C(0x00252D1F), UINT32_C(0x0005D4E4), UINT32_C(0x0037F7AD), UINT32_C(0x002B96C8), UINT32_C(0x004A99EF), UINT32_C(0x0034622E), UINT32_C(0x003DC7C3), UINT32_C(0x0025C9EA), UINT32_C(0x002950F3), UINT32_C(0x002D17D0), UINT32_C(0x002BA2B1), UINT32_C(0x0016FD3F), UINT32_C(0x002D1E9B), UINT32_C(0x003D33A4), UINT32_C(0x0020B37E), UINT32_C(0x001F2455), UINT32_C(0x0039CB42), UINT32_C(0x00074719), UINT32_C(0x0006C7E3), UINT32_C(0x000B524B)}, {UINT32_C(0x003E735C), UINT32_C(0x001CD19B), UINT32_C(0x000A2B03), UINT32_C(0x0004DADA), UINT32_C(0x001D7F00), UINT32_C(0x001BB1CD), UINT32_C(0x0031EC2D), UINT32_C(0x0060CB29), UINT32_C(0x00305DAD), UINT32_C(0x002A2E31), UINT32_C(0x002A51BD), UINT32_C(0x0064BA52), UINT32_C(0x000A34DE), UINT32_C(0x000C8DBD), UINT32_C(0x00335FA7), UINT32_C(0x00335FE1), UINT32_C(0x0033C874), UINT32_C(0x0003E276), UINT32_C(0x002026D5), UINT32_C(0x00096E2B), UINT32_C(0x000276E3), UINT32_C(0x0038EF96), UINT32_C(0x003FBD7E)}, {UINT32_C(0x0079E37A), UINT32_C(0x001890D4), UINT32_C(0x00250177), UINT32_C(0x0047BB39), UINT32_C(0x0029268C), UINT32_C(0x002479AB), UINT32_C(0x00244958), UINT32_C(0x00270A4B), UINT32_C(0x001A146F), UINT32_C(0x000E6E93), UINT32_C(0x001688FB), UINT32_C(0x00728526), UINT32_C(0x001CECAB), UINT32_C(0x0026F68E), UINT32_C(0x001480E6), UINT32_C(0x0078FACC), UINT32_C(0x00234FE3), UINT32_C(0x001CB3A6), UINT32_C(0x0003F46F), UINT32_C(0x0031231A), UINT32_C(0x001C154C), UINT32_C(0x003F8810), UINT32_C(0x001DA5AD)}}, {{UINT32_C(0x003DDB7A), UINT32_C(0x0002E3D3), UINT32_C(0x002553BF), UINT32_C(0x004415BB), UINT32_C(0x00329C70), UINT32_C(0x0022CB5A), UINT32_C(0x0019FC2C), UINT32_C(0x000F789E), UINT32_C(0x0025AD01), UINT32_C(0x0023FC89), UINT32_C(0x00297284), UINT32_C(0x0052CFEE), UINT32_C(0x0023B149), UINT32_C(0x000D9DC2), UINT32_C(0x002F141C), UINT32_C(0x000144A6), UINT32_C(0x0034AA72), UINT32_C(0x00071093), UINT32_C(0x003304EB), UINT32_C(0x0072FE7F), UINT32_C(0x00098781), UINT32_C(0x001FC2EE), UINT32_C(0x001AA3B0)}, {UINT32_C(0x00784FC3), UINT32_C(0x00109969), UINT32_C(0x0027287E), UINT32_C(0x006DB5D4), UINT32_C(0x000ACF5E), UINT32_C(0x00032B46), UINT32_C(0x0037A8DC), UINT32_C(0x004CE91B), UINT32_C(0x0036E3B8), UINT32_C(0x002D9C83), UINT32_C(0x0004C6A9), UINT32_C(0x002A278F), UINT32_C(0x003E2154), UINT32_C(0x001E5587), UINT32_C(0x0026D619), UINT32_C(0x00749796), UINT32_C(0x002DE56E), UINT32_C(0x001CA040), UINT32_C(0x000F01A0), UINT32_C(0x000A33E5), UINT32_C(0x00398839), UINT32_C(0x0025A737), UINT32_C(0x00342BA0)}, {UINT32_C(0x000DD5DB), UINT32_C(0x0035AF7C), UINT32_C(0x000ADFC4), UINT32_C(0x002D82EC), UINT32_C(0x001F65FA), UINT32_C(0x000E30C7), UINT32_C(0x0003A776), UINT32_C(0x0011585E), UINT32_C(0x002736DB), UINT32_C(0x003AF607), UINT32_C(0x000EC2A5), UINT32_C(0x003DB029), UINT32_C(0x003B1ACF), UINT32_C(0x0025DB0F), UINT32_C(0x0001FC2D), UINT32_C(0x0009BB8A), UINT32_C(0x000C442B), UINT32_C(0x000B14D4), UINT32_C(0x000B2FA5), UINT32_C(0x002930AA), UINT32_C(0x001A33E5), UINT32_C(0x0007711E), UINT32_C(0x0014AAEA)}}, {{UINT32_C(0x004E9DDC), UINT32_C(0x00249BD7), UINT32_C(0x00399ACA), UINT32_C(0x00001C89), UINT32_C(0x00399AD6), UINT32_C(0x001CA0C4), UINT32_C(0x0033F687), UINT32_C(0x00167529), UINT32_C(0x003E6664), UINT32_C(0x00247D4A), UINT32_C(0x003E497D), UINT32_C(0x006BEC07), UINT32_C(0x00321482), UINT32_C(0x00261DC6), UINT32_C(0x001AFB91), UINT32_C(0x000CCE08), UINT32_C(0x00154873), UINT32_C(0x001FA9C6), UINT32_C(0x0031D6B7), UINT32_C(0x001DB078), UINT32_C(0x0007F410), UINT32_C(0x002B5D77), UINT32_C(0x001CEFE7)}, {UINT32_C(0x0078A938), UINT32_C(0x00079CA6), UINT32_C(0x0004A11B), UINT32_C(0x0000BBD2), UINT32_C(0x0014D1B9), UINT32_C(0x0032E71F), UINT32_C(0x00228788), UINT32_C(0x0043BDCB), UINT32_C(0x00052FE3), UINT32_C(0x0032E261), UINT32_C(0x003EA511), UINT32_C(0x006940B9), UINT32_C(0x000DD8A7), UINT32_C(0x0035310F), UINT32_C(0x0016AD6A), UINT32_C(0x0051AD87), UINT32_C(0x0034DB37), UINT32_C(0x0039F114), UINT32_C(0x000435BA), UINT32_C(0x0075A182), UINT32_C(0x00319B60), UINT32_C(0x0007D2C9), UINT32_C(0x003B06E6)}, {UINT32_C(0x004768E1), UINT32_C(0x001CC336), UINT32_C(0x003299A7), UINT32_C(0x005DFF8F), UINT32_C(0x00004B15), UINT32_C(0x00222007), UINT32_C(0x0035CA8E), UINT32_C(0x001DA643), UINT32_C(0x00267E34), UINT32_C(0x001EC2B8), UINT32_C(0x000189F4), UINT32_C(0x00721823), UINT32_C(0x000225C4), UINT32_C(0x001F0249), UINT32_C(0x003A75ED), UINT32_C(0x0043CA56), UINT32_C(0x0025AC50), UINT32_C(0x0000E327), UINT32_C(0x003352D9), UINT32_C(0x004B96F8), UINT32_C(0x0027419D), UINT32_C(0x0023A16C), UINT32_C(0x0031DA1B)}}, {{UINT32_C(0x00487D70), UINT32_C(0x003AAA4A), UINT32_C(0x0026A8EB), UINT32_C(0x005FBEDD), UINT32_C(0x002A0595), UINT32_C(0x0022F25C), UINT32_C(0x003A6FD8), UINT32_C(0x00451396), UINT32_C(0x00306E44), UINT32_C(0x000F3B8F), UINT32_C(0x002912A8), UINT32_C(0x0050F308), UINT32_C(0x0007E373), UINT32_C(0x0007762D), UINT32_C(0x001A5294), UINT32_C(0x00331113), UINT32_C(0x0026941A), UINT32_C(0x0025F44E), UINT32_C(0x003862FA), UINT32_C(0x0010D40E), UINT32_C(0x00289A47), UINT32_C(0x00099A16), UINT32_C(0x00207317)}, {UINT32_C(0x001B1BDB), UINT32_C(0x00304B63), UINT32_C(0x000E1EED), UINT32_C(0x0053C2DF), UINT32_C(0x003F16DC), UINT32_C(0x00063BAB), UINT32_C(0x0021F5CC), UINT32_C(0x0003D7B7), UINT32_C(0x000B4008), UINT32_C(0x00174E48), UINT32_C(0x00341AE6), UINT32_C(0x0023DF07), UINT32_C(0x002FF147), UINT32_C(0x0007214D), UINT32_C(0x0011768A), UINT32_C(0x00756B3F), UINT32_C(0x000DB5D9), UINT32_C(0x003F42F9), UINT32_C(0x00062571), UINT32_C(0x007558EC), UINT32_C(0x002AEDF3), UINT32_C(0x001F12E2), UINT32_C(0x002C1D2E)}, {UINT32_C(0x00424EEA), UINT32_C(0x0008E4E0), UINT32_C(0x00276315), UINT32_C(0x0010C7CE), UINT32_C(0x0010FB31), UINT32_C(0x0005DB4C), UINT32_C(0x002E33CE), UINT32_C(0x0029F3F7), UINT32_C(0x001931C4), UINT32_C(0x0006A41D), UINT32_C(0x002E7D33), UINT32_C(0x0031344C), UINT32_C(0x00148E02), UINT32_C(0x00387E14), UINT32_C(0x000EA259), UINT32_C(0x00485845), UINT32_C(0x0018ECF9), UINT32_C(0x001365B8), UINT32_C(0x0009B445), UINT32_C(0x00008051), UINT32_C(0x00327427), UINT32_C(0x001F7091), UINT32_C(0x0018B432)}}, {{UINT32_C(0x005F7787), UINT32_C(0x00170455), UINT32_C(0x00340DE5), UINT32_C(0x0062A794), UINT32_C(0x002C24C5), UINT32_C(0x0010BDA3), UINT32_C(0x002BFBBE), UINT32_C(0x0031B953), UINT32_C(0x002717CF), UINT32_C(0x0009262E), UINT32_C(0x002A4512), UINT32_C(0x00072DE4), UINT32_C(0x0025410B), UINT32_C(0x002BB34C), UINT32_C(0x000633A9), UINT32_C(0x007482DB), UINT32_C(0x002D93B4), UINT32_C(0x003DD3EC), UINT32_C(0x000C66CF), UINT32_C(0x00203EB1), UINT32_C(0x0024ED0D), UINT32_C(0x003397CD), UINT32_C(0x000F7881)}, {UINT32_C(0x00127E99), UINT32_C(0x003FDC31), UINT32_C(0x000D6B1B), UINT32_C(0x0067DD99), UINT32_C(0x0020B17C), UINT32_C(0x0019B464), UINT32_C(0x001B54BD), UINT32_C(0x0079ADB3), UINT32_C(0x001DF680), UINT32_C(0x00244323), UINT32_C(0x0011F742), UINT32_C(0x00305CDB), UINT32_C(0x00078D7A), UINT32_C(0x0000769B), UINT32_C(0x001CAE8B), UINT32_C(0x002F49E1), UINT32_C(0x002C7F9F), UINT32_C(0x0038FE3A), UINT32_C(0x0039CF05), UINT32_C(0x0079BF1E), UINT32_C(0x00308D34), UINT32_C(0x003DEE92), UINT32_C(0x0011514A)}, {UINT32_C(0x00382385), UINT32_C(0x0013BD1F), UINT32_C(0x003811CF), UINT32_C(0x00292587), UINT32_C(0x00322E94), UINT32_C(0x0026DD80), UINT32_C(0x002E2F48), UINT32_C(0x00230F38), UINT32_C(0x0017BA53), UINT32_C(0x000E1B94), UINT32_C(0x001E3431), UINT32_C(0x0012A183), UINT32_C(0x003003E9), UINT32_C(0x0039A0BD), UINT32_C(0x001C4811), UINT32_C(0x001E6DB1), UINT32_C(0x0001D16F), UINT32_C(0x002EF639), UINT32_C(0x003595BC), UINT32_C(0x00635C14), UINT32_C(0x000F1141), UINT32_C(0x00276EF2), UINT32_C(0x0026F1AB)}}, }, { {{UINT32_C(0x0063583C), UINT32_C(0x00178F3B), UINT32_C(0x0031FE89), UINT32_C(0x004A10CC), UINT32_C(0x0025E861), UINT32_C(0x001D9981), UINT32_C(0x00209C95), UINT32_C(0x00757DAB), UINT32_C(0x000E0CCA), UINT32_C(0x0026F2CF), UINT32_C(0x000F724B), UINT32_C(0x0054A684), UINT32_C(0x00395A25), UINT32_C(0x003B96AA), UINT32_C(0x000CB3E2), UINT32_C(0x0025FA25), UINT32_C(0x001A8CCD), UINT32_C(0x003E8D3C), UINT32_C(0x002670BC), UINT32_C(0x0073C1D9), UINT32_C(0x002D1389), UINT32_C(0x00130BE6), UINT32_C(0x00269AFA)}, {UINT32_C(0x0078D442), UINT32_C(0x0008E522), UINT32_C(0x0018EBC9), UINT32_C(0x005F3584), UINT32_C(0x003F1CBF), UINT32_C(0x000BF4C1), UINT32_C(0x00164AA4), UINT32_C(0x006151FB), UINT32_C(0x00068D6E), UINT32_C(0x00126E4F), UINT32_C(0x00200280), UINT32_C(0x0031B7DD), UINT32_C(0x00054BB5), UINT32_C(0x003503DD), UINT32_C(0x0015FE73), UINT32_C(0x00400A3B), UINT32_C(0x0018B4CB), UINT32_C(0x00269223), UINT32_C(0x003BAABF), UINT32_C(0x00219923), UINT32_C(0x0000517F), UINT32_C(0x0036DB7B), UINT32_C(0x001898DE)}, {UINT32_C(0x001B3C2F), UINT32_C(0x003100AC), UINT32_C(0x00375C4D), UINT32_C(0x0047FF1C), UINT32_C(0x001554A3), UINT32_C(0x00345032), UINT32_C(0x000567ED), UINT32_C(0x00602271), UINT32_C(0x00037B43), UINT32_C(0x00352EA6), UINT32_C(0x00099EBC), UINT32_C(0x007107DC), UINT32_C(0x00014BD9), UINT32_C(0x003BAE49), UINT32_C(0x0012E08D), UINT32_C(0x006CA22B), UINT32_C(0x001DABB1), UINT32_C(0x002D516C), UINT32_C(0x00270889), UINT32_C(0x002F1F40), UINT32_C(0x000B40D8), UINT32_C(0x001F6C6E), UINT32_C(0x00069120)}}, {{UINT32_C(0x003E2CA8), UINT32_C(0x000FBDFE), UINT32_C(0x0008452C), UINT32_C(0x004EBE38), UINT32_C(0x003022B7), UINT32_C(0x003A3695), UINT32_C(0x0000EF8E), UINT32_C(0x003868DB), UINT32_C(0x0038AD77), UINT32_C(0x00197BEF), UINT32_C(0x0035C5D1), UINT32_C(0x0056D147), UINT32_C(0x00150885), UINT32_C(0x0032B7D5), UINT32_C(0x0022642D), UINT32_C(0x006B1347), UINT32_C(0x00343776), UINT32_C(0x00321A28), UINT32_C(0x00170446), UINT32_C(0x003DEB75), UINT32_C(0x002A4140), UINT32_C(0x00029DF0), UINT32_C(0x002450E4)}, {UINT32_C(0x004955CA), UINT32_C(0x000C7AB0), UINT32_C(0x002D31F7), UINT32_C(0x005F83A6), UINT32_C(0x002FA36D), UINT32_C(0x001F49E7), UINT32_C(0x003F321C), UINT32_C(0x0011D711), UINT32_C(0x0004B439), UINT32_C(0x0034F95D), UINT32_C(0x00217EE2), UINT32_C(0x0032BAFE), UINT32_C(0x0006F393), UINT32_C(0x002A690E), UINT32_C(0x000FAE08), UINT32_C(0x0034160E), UINT32_C(0x0038471B), UINT32_C(0x003E6453), UINT32_C(0x001D2EED), UINT32_C(0x00019616), UINT32_C(0x002ECA2C), UINT32_C(0x002B42A7), UINT32_C(0x001944E5)}, {UINT32_C(0x0070C80A), UINT32_C(0x003ADD3E), UINT32_C(0x00164515), UINT32_C(0x004C3E58), UINT32_C(0x002B68C7), UINT32_C(0x0024C735), UINT32_C(0x00154086), UINT32_C(0x004AF4B2), UINT32_C(0x003F79B6), UINT32_C(0x000EFFA4), UINT32_C(0x002E7835), UINT32_C(0x00143F92), UINT32_C(0x00139828), UINT32_C(0x002F5825), UINT32_C(0x002C6C7B), UINT32_C(0x00374B07), UINT32_C(0x00260379), UINT32_C(0x0033BF91), UINT32_C(0x000FB28A), UINT32_C(0x006D0F2D), UINT32_C(0x001A3C03), UINT32_C(0x003DCB0D), UINT32_C(0x00042785)}}, {{UINT32_C(0x0032F6C1), UINT32_C(0x0025C23A), UINT32_C(0x0032EA38), UINT32_C(0x00343C52), UINT32_C(0x002C5DA6), UINT32_C(0x0029130F), UINT32_C(0x001DEA76), UINT32_C(0x00041B06), UINT32_C(0x0006CC8F), UINT32_C(0x000C33C2), UINT32_C(0x003DE859), UINT32_C(0x0075ADE1), UINT32_C(0x001F074B), UINT32_C(0x0020B431), UINT32_C(0x00089D3D), UINT32_C(0x00183D45), UINT32_C(0x0010916A), UINT32_C(0x00079EAC), UINT32_C(0x0004D6B9), UINT32_C(0x006DA065), UINT32_C(0x000E2053), UINT32_C(0x0002B57D), UINT32_C(0x0003A141)}, {UINT32_C(0x0009A37F), UINT32_C(0x0035153F), UINT32_C(0x0033545C), UINT32_C(0x005C4E51), UINT32_C(0x002ED0FF), UINT32_C(0x0023618F), UINT32_C(0x001775AA), UINT32_C(0x005E1890), UINT32_C(0x003A6506), UINT32_C(0x00383A25), UINT32_C(0x0006CB4C), UINT32_C(0x00238F29), UINT32_C(0x000B58F7), UINT32_C(0x0035B0D9), UINT32_C(0x001D243C), UINT32_C(0x0038459B), UINT32_C(0x0019D714), UINT32_C(0x0031ADDB), UINT32_C(0x00014CD5), UINT32_C(0x00114249), UINT32_C(0x0009DCEB), UINT32_C(0x00069813), UINT32_C(0x001E743D)}, {UINT32_C(0x00491E76), UINT32_C(0x00358978), UINT32_C(0x0032E06B), UINT32_C(0x007CF380), UINT32_C(0x0021BA4C), UINT32_C(0x001B9DC8), UINT32_C(0x00072C57), UINT32_C(0x007D4A61), UINT32_C(0x002A03EB), UINT32_C(0x002A8A04), UINT32_C(0x0036F1B1), UINT32_C(0x00167D87), UINT32_C(0x00037D30), UINT32_C(0x00300EB9), UINT32_C(0x0009A70D), UINT32_C(0x002915B7), UINT32_C(0x000C36DA), UINT32_C(0x0000FD77), UINT32_C(0x003CA0D6), UINT32_C(0x00599232), UINT32_C(0x000906BD), UINT32_C(0x003DEACB), UINT32_C(0x00181880)}}, {{UINT32_C(0x006BF556), UINT32_C(0x000208D1), UINT32_C(0x0037FE71), UINT32_C(0x0064B85C), UINT32_C(0x0031878C), UINT32_C(0x00333FB4), UINT32_C(0x0007D710), UINT32_C(0x004670D1), UINT32_C(0x0023984F), UINT32_C(0x0005C689), UINT32_C(0x00255366), UINT32_C(0x0044C87B), UINT32_C(0x001D338E), UINT32_C(0x003044AD), UINT32_C(0x002665F4), UINT32_C(0x0040EB4D), UINT32_C(0x001E02E4), UINT32_C(0x0008C27F), UINT32_C(0x000F8571), UINT32_C(0x006BD63F), UINT32_C(0x000A6DFC), UINT32_C(0x0013304C), UINT32_C(0x002FDD59)}, {UINT32_C(0x005724E2), UINT32_C(0x00218196), UINT32_C(0x00150782), UINT32_C(0x0056A299), UINT32_C(0x00236FDE), UINT32_C(0x0032ED2C), UINT32_C(0x0039E8A0), UINT32_C(0x00679EE7), UINT32_C(0x0014DA74), UINT32_C(0x0004A8BC), UINT32_C(0x00266E00), UINT32_C(0x0041E7FF), UINT32_C(0x002073C7), UINT32_C(0x00344E9F), UINT32_C(0x0021EAD2), UINT32_C(0x00425BB8), UINT32_C(0x002F122A), UINT32_C(0x002C55D5), UINT32_C(0x0008B0D6), UINT32_C(0x00666EDC), UINT32_C(0x0021D2D7), UINT32_C(0x002421BB), UINT32_C(0x00131ACD)}, {UINT32_C(0x00737055), UINT32_C(0x001D6FE9), UINT32_C(0x003EFC08), UINT32_C(0x00306FA4), UINT32_C(0x002508B1), UINT32_C(0x002780B8), UINT32_C(0x00329BA8), UINT32_C(0x00206820), UINT32_C(0x003B15C5), UINT32_C(0x00317300), UINT32_C(0x000FD39A), UINT32_C(0x0049D634), UINT32_C(0x000B31B5), UINT32_C(0x0019A81C), UINT32_C(0x00271B13), UINT32_C(0x0056932D), UINT32_C(0x00387035), UINT32_C(0x002A79F2), UINT32_C(0x0028ECD2), UINT32_C(0x000E84D7), UINT32_C(0x00232B80), UINT32_C(0x002790F5), UINT32_C(0x0026AAC9)}}, {{UINT32_C(0x003FA216), UINT32_C(0x002B5E41), UINT32_C(0x0011F507), UINT32_C(0x004798E8), UINT32_C(0x001F1C32), UINT32_C(0x0004D796), UINT32_C(0x00077B9E), UINT32_C(0x002381F2), UINT32_C(0x00042960), UINT32_C(0x003DC0DE), UINT32_C(0x001F19ED), UINT32_C(0x0008D2B6), UINT32_C(0x00218E79), UINT32_C(0x00191D1E), UINT32_C(0x0038BEC0), UINT32_C(0x002BA744), UINT32_C(0x001106D5), UINT32_C(0x002908D7), UINT32_C(0x0018D0A6), UINT32_C(0x00643D59), UINT32_C(0x00251CA2), UINT32_C(0x00025593), UINT32_C(0x002EABF3)}, {UINT32_C(0x00438D3B), UINT32_C(0x002C35AD), UINT32_C(0x00121865), UINT32_C(0x002217B5), UINT32_C(0x003F2262), UINT32_C(0x0002C5A2), UINT32_C(0x000B51E2), UINT32_C(0x007F949C), UINT32_C(0x001BC59A), UINT32_C(0x002729B2), UINT32_C(0x0025BD2D), UINT32_C(0x0063FBB0), UINT32_C(0x0013132E), UINT32_C(0x0016DC57), UINT32_C(0x0017A6E3), UINT32_C(0x002FCDA3), UINT32_C(0x00321610), UINT32_C(0x0032D4AA), UINT32_C(0x001F56D4), UINT32_C(0x004B46C8), UINT32_C(0x0026FC03), UINT32_C(0x002B891B), UINT32_C(0x001EEC11)}, {UINT32_C(0x0004BF5B), UINT32_C(0x000A6EB9), UINT32_C(0x00137543), UINT32_C(0x003EA024), UINT32_C(0x002E1BE2), UINT32_C(0x00294A40), UINT32_C(0x00175374), UINT32_C(0x003418B2), UINT32_C(0x00092934), UINT32_C(0x000559DA), UINT32_C(0x000D4705), UINT32_C(0x00023080), UINT32_C(0x002832CC), UINT32_C(0x0020B5FC), UINT32_C(0x000BF4A7), UINT32_C(0x004B3473), UINT32_C(0x0003A84F), UINT32_C(0x002A3FAE), UINT32_C(0x00045DB0), UINT32_C(0x007AEDBF), UINT32_C(0x001266FC), UINT32_C(0x0002E6C3), UINT32_C(0x000380CF)}}, {{UINT32_C(0x0029F673), UINT32_C(0x0011C696), UINT32_C(0x00032672), UINT32_C(0x0054238E), UINT32_C(0x00370626), UINT32_C(0x00339C4E), UINT32_C(0x0031300A), UINT32_C(0x000B2D5B), UINT32_C(0x00206C4D), UINT32_C(0x000791D2), UINT32_C(0x002DB03D), UINT32_C(0x0037C66B), UINT32_C(0x002780B2), UINT32_C(0x002E5FE3), UINT32_C(0x002B5B3A), UINT32_C(0x00240A75), UINT32_C(0x00239AF3), UINT32_C(0x0007A194), UINT32_C(0x0035BC60), UINT32_C(0x004FBA17), UINT32_C(0x003826E1), UINT32_C(0x00181F8A), UINT32_C(0x00042F82)}, {UINT32_C(0x00459AFB), UINT32_C(0x00087F76), UINT32_C(0x0002C645), UINT32_C(0x004C7CE4), UINT32_C(0x00142200), UINT32_C(0x00366037), UINT32_C(0x001EF906), UINT32_C(0x0057C3A8), UINT32_C(0x001A8791), UINT32_C(0x00302563), UINT32_C(0x002034EF), UINT32_C(0x001A0222), UINT32_C(0x003375A9), UINT32_C(0x0032C4BC), UINT32_C(0x0008F4DC), UINT32_C(0x00581A30), UINT32_C(0x000C394E), UINT32_C(0x000B7FEE), UINT32_C(0x003C5662), UINT32_C(0x0034BB53), UINT32_C(0x0005B495), UINT32_C(0x00018243), UINT32_C(0x0037995C)}, {UINT32_C(0x004906BD), UINT32_C(0x0032B8FA), UINT32_C(0x00372E94), UINT32_C(0x00613088), UINT32_C(0x00017311), UINT32_C(0x003528B5), UINT32_C(0x001EE0AC), UINT32_C(0x00686616), UINT32_C(0x0033F1FD), UINT32_C(0x0025E7C3), UINT32_C(0x003DFBB8), UINT32_C(0x001A5DF7), UINT32_C(0x00023B1E), UINT32_C(0x00015AAC), UINT32_C(0x0025054D), UINT32_C(0x001704E4), UINT32_C(0x001BAE37), UINT32_C(0x001A384F), UINT32_C(0x003606FC), UINT32_C(0x00740F1B), UINT32_C(0x002C8C7D), UINT32_C(0x0024600B), UINT32_C(0x003D5C73)}}, {{UINT32_C(0x001784B4), UINT32_C(0x002CEF58), UINT32_C(0x00372A6C), UINT32_C(0x00118258), UINT32_C(0x002D6ED8), UINT32_C(0x002DD567), UINT32_C(0x00106EE7), UINT32_C(0x001C074F), UINT32_C(0x001A9185), UINT32_C(0x0029B246), UINT32_C(0x00375A41), UINT32_C(0x007DF964), UINT32_C(0x0017B200), UINT32_C(0x00194A5C), UINT32_C(0x0013B979), UINT32_C(0x0003EA48), UINT32_C(0x00295585), UINT32_C(0x001B2FAF), UINT32_C(0x001F6D5F), UINT32_C(0x007D4491), UINT32_C(0x002AA139), UINT32_C(0x002032CA), UINT32_C(0x0033AB4D)}, {UINT32_C(0x00326E12), UINT32_C(0x00073B02), UINT32_C(0x0009134C), UINT32_C(0x00719A24), UINT32_C(0x0010FFDA), UINT32_C(0x0017F597), UINT32_C(0x00023DEA), UINT32_C(0x00565B05), UINT32_C(0x000CF206), UINT32_C(0x00316819), UINT32_C(0x001759BE), UINT32_C(0x003B59E1), UINT32_C(0x001A7716), UINT32_C(0x002F2CB8), UINT32_C(0x00022C88), UINT32_C(0x006E200A), UINT32_C(0x0034B39A), UINT32_C(0x0004C2A3), UINT32_C(0x000EFF2B), UINT32_C(0x007771C0), UINT32_C(0x0038736A), UINT32_C(0x003EA343), UINT32_C(0x002473CB)}, {UINT32_C(0x007E0E25), UINT32_C(0x003FF836), UINT32_C(0x0029E179), UINT32_C(0x0059DA0B), UINT32_C(0x0038BD07), UINT32_C(0x00397717), UINT32_C(0x0035EEC3), UINT32_C(0x001451BD), UINT32_C(0x000C4CC2), UINT32_C(0x0011AD20), UINT32_C(0x0024798D), UINT32_C(0x001EA1F7), UINT32_C(0x0017A035), UINT32_C(0x00174E1A), UINT32_C(0x000614CC), UINT32_C(0x00744E00), UINT32_C(0x00071F7A), UINT32_C(0x003F23AE), UINT32_C(0x001D8DCA), UINT32_C(0x000674F7), UINT32_C(0x0003AF2F), UINT32_C(0x0028BCAA), UINT32_C(0x0025E559)}}, {{UINT32_C(0x0011497E), UINT32_C(0x000ECE29), UINT32_C(0x002A4EA2), UINT32_C(0x001C0932), UINT32_C(0x00086320), UINT32_C(0x0001D745), UINT32_C(0x000E7077), UINT32_C(0x002982BA), UINT32_C(0x0006C3CC), UINT32_C(0x001A61D3), UINT32_C(0x0018D012), UINT32_C(0x003FD5A7), UINT32_C(0x00271A87), UINT32_C(0x003F3CEE), UINT32_C(0x00381814), UINT32_C(0x006264B1), UINT32_C(0x001D51C9), UINT32_C(0x0024F3F8), UINT32_C(0x0032133E), UINT32_C(0x0070B6C3), UINT32_C(0x0027EB3B), UINT32_C(0x00170DF3), UINT32_C(0x003FDF92)}, {UINT32_C(0x0052D458), UINT32_C(0x002FDA22), UINT32_C(0x00040A2E), UINT32_C(0x006FA7D9), UINT32_C(0x000F1A9C), UINT32_C(0x000B70A5), UINT32_C(0x001666C6), UINT32_C(0x00150503), UINT32_C(0x002A0651), UINT32_C(0x00019D2E), UINT32_C(0x002CB70B), UINT32_C(0x0022C910), UINT32_C(0x002EE4CD), UINT32_C(0x0008D506), UINT32_C(0x00014281), UINT32_C(0x00358B69), UINT32_C(0x002DA7BF), UINT32_C(0x00124768), UINT32_C(0x0020EC13), UINT32_C(0x00550441), UINT32_C(0x001C17FE), UINT32_C(0x00213A61), UINT32_C(0x001451A1)}, {UINT32_C(0x002A7679), UINT32_C(0x0015D4B5), UINT32_C(0x000CFCC1), UINT32_C(0x003FF845), UINT32_C(0x001C7A7D), UINT32_C(0x001AE5DD), UINT32_C(0x003EAB09), UINT32_C(0x003FDF89), UINT32_C(0x0035A00B), UINT32_C(0x0037D9FF), UINT32_C(0x00275895), UINT32_C(0x0035077F), UINT32_C(0x000EBCA0), UINT32_C(0x002DB718), UINT32_C(0x0007E563), UINT32_C(0x007217CE), UINT32_C(0x000CFEC9), UINT32_C(0x0039C0C7), UINT32_C(0x000C8457), UINT32_C(0x000D6DEE), UINT32_C(0x00095556), UINT32_C(0x002C0A1B), UINT32_C(0x000A5B02)}}, {{UINT32_C(0x0058676E), UINT32_C(0x003BB967), UINT32_C(0x002F67E8), UINT32_C(0x0014611B), UINT32_C(0x0002CA68), UINT32_C(0x00360A23), UINT32_C(0x003D4703), UINT32_C(0x002FFB09), UINT32_C(0x000B0650), UINT32_C(0x00350E32), UINT32_C(0x0020BBE2), UINT32_C(0x007EB614), UINT32_C(0x0013CBB5), UINT32_C(0x003BBDBC), UINT32_C(0x0026C9BB), UINT32_C(0x001E256E), UINT32_C(0x000E735E), UINT32_C(0x002C3CC9), UINT32_C(0x00010C97), UINT32_C(0x000C12B4), UINT32_C(0x00028C55), UINT32_C(0x0014841F), UINT32_C(0x00143C15)}, {UINT32_C(0x0065EB1A), UINT32_C(0x00025B10), UINT32_C(0x001CD5C4), UINT32_C(0x00746872), UINT32_C(0x00054288), UINT32_C(0x001B2B2E), UINT32_C(0x001F2239), UINT32_C(0x00518E6E), UINT32_C(0x002123BD), UINT32_C(0x0033748A), UINT32_C(0x00174C52), UINT32_C(0x00258C02), UINT32_C(0x0018FF52), UINT32_C(0x0007C3F2), UINT32_C(0x0010EC30), UINT32_C(0x002A8FB5), UINT32_C(0x00338507), UINT32_C(0x003EA284), UINT32_C(0x001E079E), UINT32_C(0x0070C9DD), UINT32_C(0x0023B5FB), UINT32_C(0x002637F4), UINT32_C(0x00141F80)}, {UINT32_C(0x00656339), UINT32_C(0x00123AB6), UINT32_C(0x003B759B), UINT32_C(0x0050CB99), UINT32_C(0x000D243E), UINT32_C(0x0022A047), UINT32_C(0x0030735F), UINT32_C(0x0004A175), UINT32_C(0x000B2BA6), UINT32_C(0x000D31CE), UINT32_C(0x00324F8D), UINT32_C(0x004BB229), UINT32_C(0x001E5D6F), UINT32_C(0x0002772E), UINT32_C(0x00296DC5), UINT32_C(0x00577AE8), UINT32_C(0x00086249), UINT32_C(0x002005B9), UINT32_C(0x0032CA2B), UINT32_C(0x0018E5F0), UINT32_C(0x0010AC8A), UINT32_C(0x00261F94), UINT32_C(0x00076C3E)}}, {{UINT32_C(0x000DB1A4), UINT32_C(0x000C1216), UINT32_C(0x0020E3CE), UINT32_C(0x00342538), UINT32_C(0x0025AD2D), UINT32_C(0x003C968A), UINT32_C(0x000B2AC4), UINT32_C(0x003874BE), UINT32_C(0x00108EBE), UINT32_C(0x00089221), UINT32_C(0x001A4E5D), UINT32_C(0x00000E6B), UINT32_C(0x003A62C9), UINT32_C(0x000CAB40), UINT32_C(0x0039432F), UINT32_C(0x006EEBB0), UINT32_C(0x003FD49F), UINT32_C(0x000A4915), UINT32_C(0x003E803E), UINT32_C(0x000D14CB), UINT32_C(0x00147DBE), UINT32_C(0x00273CC9), UINT32_C(0x0021CEAF)}, {UINT32_C(0x0061AF93), UINT32_C(0x0001A305), UINT32_C(0x0013BAAE), UINT32_C(0x007784E4), UINT32_C(0x000D254E), UINT32_C(0x0019835D), UINT32_C(0x00242371), UINT32_C(0x000846D1), UINT32_C(0x0029D19E), UINT32_C(0x000188DF), UINT32_C(0x000340FC), UINT32_C(0x007B3565), UINT32_C(0x00179159), UINT32_C(0x0000E014), UINT32_C(0x002BBC15), UINT32_C(0x006E03F7), UINT32_C(0x00332866), UINT32_C(0x003752B2), UINT32_C(0x0036128E), UINT32_C(0x004EEEA5), UINT32_C(0x0018D656), UINT32_C(0x0021FC26), UINT32_C(0x0031850E)}, {UINT32_C(0x00501FD0), UINT32_C(0x000AF537), UINT32_C(0x0038C7E6), UINT32_C(0x0043735E), UINT32_C(0x00110069), UINT32_C(0x003F2C22), UINT32_C(0x0017CF5D), UINT32_C(0x002FD510), UINT32_C(0x0014235B), UINT32_C(0x0004DD30), UINT32_C(0x003C65B4), UINT32_C(0x000F1032), UINT32_C(0x00389A5B), UINT32_C(0x00156157), UINT32_C(0x0011C8DC), UINT32_C(0x00500C48), UINT32_C(0x00119681), UINT32_C(0x00193DFD), UINT32_C(0x002E9C52), UINT32_C(0x007DD9BC), UINT32_C(0x003C9B4A), UINT32_C(0x003F1598), UINT32_C(0x0008392D)}}, {{UINT32_C(0x007DA6AE), UINT32_C(0x0026680F), UINT32_C(0x0001CBC2), UINT32_C(0x00700F21), UINT32_C(0x002BA64B), UINT32_C(0x0005ACA1), UINT32_C(0x000DA060), UINT32_C(0x006C880D), UINT32_C(0x00280F5B), UINT32_C(0x001CD097), UINT32_C(0x003BBCFE), UINT32_C(0x002CAEAF), UINT32_C(0x001B96AF), UINT32_C(0x002F9409), UINT32_C(0x00218817), UINT32_C(0x002929AF), UINT32_C(0x0035CDAF), UINT32_C(0x001766D6), UINT32_C(0x002FE847), UINT32_C(0x0003656A), UINT32_C(0x00047989), UINT32_C(0x00351086), UINT32_C(0x002D5D88)}, {UINT32_C(0x003FF7B2), UINT32_C(0x00283A9C), UINT32_C(0x0020E8A8), UINT32_C(0x003A0789), UINT32_C(0x001BFDE1), UINT32_C(0x000D525F), UINT32_C(0x0035C861), UINT32_C(0x0060CAD2), UINT32_C(0x002ACA77), UINT32_C(0x0015E571), UINT32_C(0x00182DD8), UINT32_C(0x004E3F9F), UINT32_C(0x00157225), UINT32_C(0x000ABD0E), UINT32_C(0x002C1C74), UINT32_C(0x006799C9), UINT32_C(0x001084CD), UINT32_C(0x002FCC74), UINT32_C(0x001104CF), UINT32_C(0x0063FB40), UINT32_C(0x000B1B48), UINT32_C(0x002FF705), UINT32_C(0x0017DD74)}, {UINT32_C(0x00758DFD), UINT32_C(0x00259101), UINT32_C(0x002F9E96), UINT32_C(0x00127A02), UINT32_C(0x003560BA), UINT32_C(0x00174012), UINT32_C(0x00080553), UINT32_C(0x00084ADA), UINT32_C(0x0030B0B3), UINT32_C(0x003CCA10), UINT32_C(0x002A7BF0), UINT32_C(0x0066B5D8), UINT32_C(0x001775C4), UINT32_C(0x0025FB21), UINT32_C(0x00084012), UINT32_C(0x0023425E), UINT32_C(0x00160D8A), UINT32_C(0x0014DE6A), UINT32_C(0x000D84B1), UINT32_C(0x0000C090), UINT32_C(0x001CEB65), UINT32_C(0x00304B91), UINT32_C(0x003C0931)}}, {{UINT32_C(0x007B8F38), UINT32_C(0x003E8D2B), UINT32_C(0x0014249B), UINT32_C(0x0032E6FD), UINT32_C(0x00019922), UINT32_C(0x00288D0E), UINT32_C(0x0030B952), UINT32_C(0x0008C34B), UINT32_C(0x00191997), UINT32_C(0x002F5C5B), UINT32_C(0x003ED4DE), UINT32_C(0x002D0DBE), UINT32_C(0x001C4CC0), UINT32_C(0x003799BB), UINT32_C(0x0007EED8), UINT32_C(0x007C90CE), UINT32_C(0x002E0A50), UINT32_C(0x00131AF1), UINT32_C(0x0028FD81), UINT32_C(0x003D7BFD), UINT32_C(0x0020C820), UINT32_C(0x001E4117), UINT32_C(0x003233FA)}, {UINT32_C(0x006AD0B4), UINT32_C(0x0024A7CA), UINT32_C(0x00224A76), UINT32_C(0x00201B36), UINT32_C(0x00089BF6), UINT32_C(0x00185943), UINT32_C(0x000EE3FB), UINT32_C(0x0062E219), UINT32_C(0x00304742), UINT32_C(0x000ECFDC), UINT32_C(0x0002B3E9), UINT32_C(0x00278A41), UINT32_C(0x000B4C45), UINT32_C(0x003DAF2F), UINT32_C(0x0016786A), UINT32_C(0x00326096), UINT32_C(0x0004F58A), UINT32_C(0x003D414F), UINT32_C(0x002571F1), UINT32_C(0x000C5218), UINT32_C(0x000BC00A), UINT32_C(0x001558DD), UINT32_C(0x000E4574)}, {UINT32_C(0x00214F76), UINT32_C(0x00344E7B), UINT32_C(0x000D0A1C), UINT32_C(0x00073F8A), UINT32_C(0x0031A1E8), UINT32_C(0x0024F24B), UINT32_C(0x002EB5CC), UINT32_C(0x00423B58), UINT32_C(0x0005DF88), UINT32_C(0x000A882D), UINT32_C(0x001F2F21), UINT32_C(0x001DC1AC), UINT32_C(0x000BF263), UINT32_C(0x000FC01F), UINT32_C(0x0013D53A), UINT32_C(0x00689488), UINT32_C(0x0039A08C), UINT32_C(0x00026357), UINT32_C(0x00354D80), UINT32_C(0x00649669), UINT32_C(0x0006D559), UINT32_C(0x0024D4A8), UINT32_C(0x001B1D7D)}}, {{UINT32_C(0x007539AC), UINT32_C(0x001AF584), UINT32_C(0x003849E3), UINT32_C(0x00604878), UINT32_C(0x0028932B), UINT32_C(0x00336A8D), UINT32_C(0x002DC15F), UINT32_C(0x004EE915), UINT32_C(0x003E8891), UINT32_C(0x002C26A5), UINT32_C(0x002353EF), UINT32_C(0x00690ACF), UINT32_C(0x000B284B), UINT32_C(0x0004CD7A), UINT32_C(0x00266953), UINT32_C(0x0038EC31), UINT32_C(0x0015E302), UINT32_C(0x000080A9), UINT32_C(0x0025D49A), UINT32_C(0x00318334), UINT32_C(0x003B81A5), UINT32_C(0x0038759D), UINT32_C(0x000EE138)}, {UINT32_C(0x006652DC), UINT32_C(0x0030CF99), UINT32_C(0x00286EAE), UINT32_C(0x007E732A), UINT32_C(0x001BB04F), UINT32_C(0x001A7E81), UINT32_C(0x00395CBD), UINT32_C(0x0012A720), UINT32_C(0x00143A75), UINT32_C(0x000C4F0A), UINT32_C(0x0002959B), UINT32_C(0x005134E3), UINT32_C(0x0029CD2F), UINT32_C(0x002E7B51), UINT32_C(0x001A8B65), UINT32_C(0x0067BB4D), UINT32_C(0x00109B63), UINT32_C(0x000FF6AF), UINT32_C(0x000F5619), UINT32_C(0x001FE508), UINT32_C(0x000593C7), UINT32_C(0x002A4F5C), UINT32_C(0x0035E60F)}, {UINT32_C(0x0041115B), UINT32_C(0x000C4566), UINT32_C(0x002DC574), UINT32_C(0x006EAB28), UINT32_C(0x003017E2), UINT32_C(0x00275A4A), UINT32_C(0x002C84E6), UINT32_C(0x0003FFFE), UINT32_C(0x0012331A), UINT32_C(0x001B2EF0), UINT32_C(0x000A57A7), UINT32_C(0x007EA3E1), UINT32_C(0x0001A805), UINT32_C(0x00064502), UINT32_C(0x003486D1), UINT32_C(0x002A0735), UINT32_C(0x001F1246), UINT32_C(0x0013E4C1), UINT32_C(0x000D6176), UINT32_C(0x005D2F66), UINT32_C(0x000B6919), UINT32_C(0x00222C38), UINT32_C(0x002247FC)}}, {{UINT32_C(0x007694F0), UINT32_C(0x0033BF57), UINT32_C(0x002D919E), UINT32_C(0x00464556), UINT32_C(0x003240BB), UINT32_C(0x000A81C8), UINT32_C(0x003FC6AD), UINT32_C(0x004C8BC2), UINT32_C(0x0037597A), UINT32_C(0x000F3632), UINT32_C(0x003DEE9C), UINT32_C(0x007AF7FC), UINT32_C(0x0002B2A3), UINT32_C(0x0001FEF8), UINT32_C(0x00266BFE), UINT32_C(0x005A4DF9), UINT32_C(0x001BC528), UINT32_C(0x0038FCA9), UINT32_C(0x0021AB8E), UINT32_C(0x001B7A68), UINT32_C(0x00255401), UINT32_C(0x0022B95A), UINT32_C(0x001CECB8)}, {UINT32_C(0x00202C81), UINT32_C(0x00305B5D), UINT32_C(0x000F8353), UINT32_C(0x0024BDD3), UINT32_C(0x0034CBF6), UINT32_C(0x001FC489), UINT32_C(0x001C1EF2), UINT32_C(0x00378DD8), UINT32_C(0x00341D4E), UINT32_C(0x00351CA3), UINT32_C(0x001FF171), UINT32_C(0x003F1946), UINT32_C(0x0002CF94), UINT32_C(0x00389924), UINT32_C(0x003E5A8B), UINT32_C(0x001BEA9D), UINT32_C(0x001E60D0), UINT32_C(0x00305EF9), UINT32_C(0x0029219F), UINT32_C(0x00301DAA), UINT32_C(0x0000D311), UINT32_C(0x0033EC94), UINT32_C(0x0003A683)}, {UINT32_C(0x0026A83D), UINT32_C(0x0021AD7B), UINT32_C(0x001694B6), UINT32_C(0x003BBDC2), UINT32_C(0x0016E0B7), UINT32_C(0x0009525B), UINT32_C(0x003B24F8), UINT32_C(0x007C4237), UINT32_C(0x000E1CB0), UINT32_C(0x0013611E), UINT32_C(0x001E0CF1), UINT32_C(0x004B8F7B), UINT32_C(0x0012520D), UINT32_C(0x001CBF78), UINT32_C(0x00153E58), UINT32_C(0x0072DA9E), UINT32_C(0x0009BF23), UINT32_C(0x00390546), UINT32_C(0x001EC704), UINT32_C(0x0062F82E), UINT32_C(0x001379EA), UINT32_C(0x00374CEF), UINT32_C(0x0000E810)}}, {{UINT32_C(0x00672D01), UINT32_C(0x00181C43), UINT32_C(0x000F03E5), UINT32_C(0x00114EB1), UINT32_C(0x00030AAB), UINT32_C(0x000E4929), UINT32_C(0x003F4FF1), UINT32_C(0x005C1816), UINT32_C(0x00234EF2), UINT32_C(0x0001CECB), UINT32_C(0x0000E003), UINT32_C(0x000FB7C6), UINT32_C(0x0021F686), UINT32_C(0x00397348), UINT32_C(0x000668D5), UINT32_C(0x000969FD), UINT32_C(0x002D58A1), UINT32_C(0x0001F6FF), UINT32_C(0x002B509F), UINT32_C(0x005BF575), UINT32_C(0x001C7A72), UINT32_C(0x003168A3), UINT32_C(0x00058841)}, {UINT32_C(0x002E6F93), UINT32_C(0x0003FD4D), UINT32_C(0x00070367), UINT32_C(0x007E2810), UINT32_C(0x0032A669), UINT32_C(0x003753AA), UINT32_C(0x00059E13), UINT32_C(0x005BE0BB), UINT32_C(0x002DAD0A), UINT32_C(0x0017009D), UINT32_C(0x002A29E1), UINT32_C(0x0010EAFB), UINT32_C(0x00371B7B), UINT32_C(0x00384FE2), UINT32_C(0x00074C4C), UINT32_C(0x005AF2F6), UINT32_C(0x00268D35), UINT32_C(0x0012D4D3), UINT32_C(0x001988E8), UINT32_C(0x00637384), UINT32_C(0x003CA7EB), UINT32_C(0x0012C38C), UINT32_C(0x00235944)}, {UINT32_C(0x007FE4F7), UINT32_C(0x00128547), UINT32_C(0x003EE942), UINT32_C(0x0063B61D), UINT32_C(0x00254E4C), UINT32_C(0x0006B269), UINT32_C(0x002778BD), UINT32_C(0x003C91A8), UINT32_C(0x0038A282), UINT32_C(0x0010BFE5), UINT32_C(0x002E5C21), UINT32_C(0x000205D0), UINT32_C(0x00150853), UINT32_C(0x002376FF), UINT32_C(0x0006E95D), UINT32_C(0x004FCAED), UINT32_C(0x0014D842), UINT32_C(0x00174695), UINT32_C(0x00192588), UINT32_C(0x0004407A), UINT32_C(0x00169AA6), UINT32_C(0x0038F9B9), UINT32_C(0x000DD818)}}, {{UINT32_C(0x007ED415), UINT32_C(0x002AEE66), UINT32_C(0x002FE621), UINT32_C(0x0019EC18), UINT32_C(0x001AC45A), UINT32_C(0x002C1BD9), UINT32_C(0x0039EFF2), UINT32_C(0x0053C8E8), UINT32_C(0x0035D12E), UINT32_C(0x000F4E0A), UINT32_C(0x0011182C), UINT32_C(0x00481DC1), UINT32_C(0x00069045), UINT32_C(0x0028AC00), UINT32_C(0x00239B1A), UINT32_C(0x0012C316), UINT32_C(0x001DFEA0), UINT32_C(0x003B985D), UINT32_C(0x000DB2FE), UINT32_C(0x004F72CA), UINT32_C(0x0034C923), UINT32_C(0x001A2093), UINT32_C(0x002B9C3E)}, {UINT32_C(0x006E6357), UINT32_C(0x002A5A2B), UINT32_C(0x001B005C), UINT32_C(0x00349183), UINT32_C(0x00374B6E), UINT32_C(0x0006A56D), UINT32_C(0x0005A032), UINT32_C(0x00159BD4), UINT32_C(0x003F8A72), UINT32_C(0x0006E1D8), UINT32_C(0x0018F53A), UINT32_C(0x0034F1F1), UINT32_C(0x003729F4), UINT32_C(0x001B24AB), UINT32_C(0x001CC0C1), UINT32_C(0x001EF566), UINT32_C(0x002B89C8), UINT32_C(0x0002F08C), UINT32_C(0x003199AF), UINT32_C(0x001C32F5), UINT32_C(0x00194755), UINT32_C(0x0005E212), UINT32_C(0x000E74FA)}, {UINT32_C(0x0075610F), UINT32_C(0x001C5B4F), UINT32_C(0x0031545E), UINT32_C(0x005A64BD), UINT32_C(0x00288ECD), UINT32_C(0x00003455), UINT32_C(0x003E4D6B), UINT32_C(0x001C3B47), UINT32_C(0x00107A21), UINT32_C(0x000E6BE9), UINT32_C(0x001C454B), UINT32_C(0x002BE715), UINT32_C(0x0013B171), UINT32_C(0x000D5966), UINT32_C(0x0017248A), UINT32_C(0x006610DA), UINT32_C(0x000D95A9), UINT32_C(0x002DAD62), UINT32_C(0x003B2B47), UINT32_C(0x00483940), UINT32_C(0x00214E89), UINT32_C(0x002E30EF), UINT32_C(0x001A8A7A)}}, }, { {{UINT32_C(0x005710C2), UINT32_C(0x001C5AC3), UINT32_C(0x0032A560), UINT32_C(0x0008892C), UINT32_C(0x002827E3), UINT32_C(0x0034491A), UINT32_C(0x000CBDDB), UINT32_C(0x001226BC), UINT32_C(0x003DC095), UINT32_C(0x003DBF5D), UINT32_C(0x00207C8F), UINT32_C(0x0003AEE4), UINT32_C(0x00241676), UINT32_C(0x0019F64F), UINT32_C(0x0003A54C), UINT32_C(0x007CCE36), UINT32_C(0x00229653), UINT32_C(0x001AD488), UINT32_C(0x002FF51A), UINT32_C(0x003BAD16), UINT32_C(0x00269362), UINT32_C(0x0005CFD4), UINT32_C(0x002B0036)}, {UINT32_C(0x001D5B16), UINT32_C(0x0037F93D), UINT32_C(0x0011BE70), UINT32_C(0x00010F69), UINT32_C(0x000FD6A2), UINT32_C(0x00198F6D), UINT32_C(0x00306746), UINT32_C(0x00019354), UINT32_C(0x0005D19C), UINT32_C(0x002A4081), UINT32_C(0x002187BF), UINT32_C(0x0037CD1C), UINT32_C(0x000F42FE), UINT32_C(0x00384FBB), UINT32_C(0x003F74B7), UINT32_C(0x002CB87D), UINT32_C(0x002FA3D2), UINT32_C(0x003B9CBD), UINT32_C(0x0011ACE0), UINT32_C(0x004F2A0F), UINT32_C(0x0010CDFE), UINT32_C(0x0037DC56), UINT32_C(0x001CA343)}, {UINT32_C(0x002E9F4B), UINT32_C(0x0017B4E0), UINT32_C(0x00311C99), UINT32_C(0x0042E4B2), UINT32_C(0x00253B3C), UINT32_C(0x00056B7F), UINT32_C(0x00338DE4), UINT32_C(0x002BD82C), UINT32_C(0x00321B8D), UINT32_C(0x0038A72F), UINT32_C(0x0008F3D8), UINT32_C(0x001567CC), UINT32_C(0x0026AD64), UINT32_C(0x0020C5AF), UINT32_C(0x000CCD37), UINT32_C(0x00590CBB), UINT32_C(0x00313270), UINT32_C(0x003C5BA6), UINT32_C(0x00368F2D), UINT32_C(0x003060DD), UINT32_C(0x0036F8BC), UINT32_C(0x000F2893), UINT32_C(0x00334A0C)}}, {{UINT32_C(0x000DE443), UINT32_C(0x0032A8C8), UINT32_C(0x003EE1EE), UINT32_C(0x002FB8DA), UINT32_C(0x0001EC25), UINT32_C(0x001F2379), UINT32_C(0x002C120C), UINT32_C(0x00422DB7), UINT32_C(0x003AA20D), UINT32_C(0x00036834), UINT32_C(0x000B6FAB), UINT32_C(0x00579A73), UINT32_C(0x002C546A), UINT32_C(0x003CFCBB), UINT32_C(0x0015CCE3), UINT32_C(0x001DA981), UINT32_C(0x001D2DEC), UINT32_C(0x00155C8F), UINT32_C(0x0032C6DE), UINT32_C(0x001BBCC6), UINT32_C(0x00332AB7), UINT32_C(0x00221975), UINT32_C(0x0015380A)}, {UINT32_C(0x0079F763), UINT32_C(0x00086F41), UINT32_C(0x0027B078), UINT32_C(0x0072AE3A), UINT32_C(0x003377BB), UINT32_C(0x003C40F7), UINT32_C(0x0018F8C7), UINT32_C(0x00559BA1), UINT32_C(0x00387EE1), UINT32_C(0x000395F9), UINT32_C(0x0026C76D), UINT32_C(0x00438509), UINT32_C(0x00258967), UINT32_C(0x00102218), UINT32_C(0x0021EF58), UINT32_C(0x00187594), UINT32_C(0x00070C07), UINT32_C(0x001150ED), UINT32_C(0x001A248F), UINT32_C(0x0017CA07), UINT32_C(0x00305C05), UINT32_C(0x003B435D), UINT32_C(0x0003AB05)}, {UINT32_C(0x00269D6F), UINT32_C(0x0014041F), UINT32_C(0x001C654B), UINT32_C(0x001E5899), UINT32_C(0x000B839F), UINT32_C(0x000068FF), UINT32_C(0x001345C1), UINT32_C(0x0062C16D), UINT32_C(0x00095303), UINT32_C(0x00336B6B), UINT32_C(0x001F5076), UINT32_C(0x006B8DE7), UINT32_C(0x003033A5), UINT32_C(0x0031B05D), UINT32_C(0x000AAEBB), UINT32_C(0x00580DC0), UINT32_C(0x00216E2A), UINT32_C(0x000B00E8), UINT32_C(0x002FED70), UINT32_C(0x0067F7E7), UINT32_C(0x000E3F39), UINT32_C(0x0026A5C9), UINT32_C(0x001321C9)}}, {{UINT32_C(0x0075F516), UINT32_C(0x0019707B), UINT32_C(0x00284D76), UINT32_C(0x00135FD0), UINT32_C(0x003E3862), UINT32_C(0x00146ACB), UINT32_C(0x001C934B), UINT32_C(0x007030A4), UINT32_C(0x000CF8E7), UINT32_C(0x002CA64F), UINT32_C(0x003FDC6E), UINT32_C(0x0065C11E), UINT32_C(0x0016B6BB), UINT32_C(0x0018C069), UINT32_C(0x00171DC5), UINT32_C(0x005B5697), UINT32_C(0x001E8900), UINT32_C(0x001B6DAF), UINT32_C(0x00310BBC), UINT32_C(0x006BCF1D), UINT32_C(0x002F143F), UINT32_C(0x001905CA), UINT32_C(0x00017744)}, {UINT32_C(0x003D88D5), UINT32_C(0x000F9E5C), UINT32_C(0x003604CF), UINT32_C(0x000C36D2), UINT32_C(0x002CF504), UINT32_C(0x0039A798), UINT32_C(0x000BDED1), UINT32_C(0x001B8DC3), UINT32_C(0x0008E589), UINT32_C(0x003A11F2), UINT32_C(0x00200D8C), UINT32_C(0x00625D48), UINT32_C(0x000A9310), UINT32_C(0x003CD6F6), UINT32_C(0x00023EB4), UINT32_C(0x001CDCCF), UINT32_C(0x00126F0D), UINT32_C(0x0022C59F), UINT32_C(0x002ACC01), UINT32_C(0x005306AD), UINT32_C(0x002E74F2), UINT32_C(0x0005DF6D), UINT32_C(0x00285847)}, {UINT32_C(0x0065F342), UINT32_C(0x001EE28A), UINT32_C(0x00222BEB), UINT32_C(0x006CA69D), UINT32_C(0x000BB7F9), UINT32_C(0x0021BF78), UINT32_C(0x0003EC62), UINT32_C(0x0054A057), UINT32_C(0x00316B24), UINT32_C(0x000FF725), UINT32_C(0x00262490), UINT32_C(0x003AE835), UINT32_C(0x000DA133), UINT32_C(0x00120D05), UINT32_C(0x000F8110), UINT32_C(0x00347C18), UINT32_C(0x0014B405), UINT32_C(0x000E57EA), UINT32_C(0x001D3804), UINT32_C(0x001FB3A3), UINT32_C(0x0036FC24), UINT32_C(0x003107FA), UINT32_C(0x0002D52F)}}, {{UINT32_C(0x00730C26), UINT32_C(0x00033129), UINT32_C(0x00099E61), UINT32_C(0x00274495), UINT32_C(0x00067D5F), UINT32_C(0x0030E0F3), UINT32_C(0x00133EE6), UINT32_C(0x001CA496), UINT32_C(0x000D9AF5), UINT32_C(0x000E2809), UINT32_C(0x0039B916), UINT32_C(0x006CE2B0), UINT32_C(0x00022B22), UINT32_C(0x003C1D03), UINT32_C(0x00134443), UINT32_C(0x006C83E6), UINT32_C(0x0022E5D1), UINT32_C(0x00355465), UINT32_C(0x001393DE), UINT32_C(0x00297B8C), UINT32_C(0x000CCC36), UINT32_C(0x00384BA8), UINT32_C(0x0003C2A7)}, {UINT32_C(0x001F3E32), UINT32_C(0x003E6A39), UINT32_C(0x00274F66), UINT32_C(0x0065F067), UINT32_C(0x003DEE02), UINT32_C(0x001ADBA0), UINT32_C(0x003DD0D0), UINT32_C(0x00067633), UINT32_C(0x003371E3), UINT32_C(0x0018B039), UINT32_C(0x000FBD3F), UINT32_C(0x003FEF60), UINT32_C(0x000C13E7), UINT32_C(0x0035AFF4), UINT32_C(0x00248F86), UINT32_C(0x0075C8AC), UINT32_C(0x00010FB8), UINT32_C(0x0009A933), UINT32_C(0x00155411), UINT32_C(0x004DD6EA), UINT32_C(0x0018B242), UINT32_C(0x003F42B9), UINT32_C(0x00307AFB)}, {UINT32_C(0x0043D9DA), UINT32_C(0x002F1FAC), UINT32_C(0x002BEBF2), UINT32_C(0x001674C8), UINT32_C(0x002F5627), UINT32_C(0x000982A2), UINT32_C(0x001DD189), UINT32_C(0x0023CFE8), UINT32_C(0x001435E4), UINT32_C(0x002E3968), UINT32_C(0x00212138), UINT32_C(0x0037DAED), UINT32_C(0x001AF391), UINT32_C(0x00149EAC), UINT32_C(0x003F6739), UINT32_C(0x005A1D0B), UINT32_C(0x0003DA69), UINT32_C(0x002C06DC), UINT32_C(0x003A4339), UINT32_C(0x00603E6E), UINT32_C(0x00144A9B), UINT32_C(0x002E832B), UINT32_C(0x002DEC99)}}, {{UINT32_C(0x00262A7A), UINT32_C(0x0006D662), UINT32_C(0x00070E7F), UINT32_C(0x007D4FD4), UINT32_C(0x000363F2), UINT32_C(0x002DCD0B), UINT32_C(0x003F4BD3), UINT32_C(0x004B46BE), UINT32_C(0x0018690B), UINT32_C(0x000D990E), UINT32_C(0x000FAB11), UINT32_C(0x000F371C), UINT32_C(0x003CC586), UINT32_C(0x0027FA77), UINT32_C(0x00064076), UINT32_C(0x002B6788), UINT32_C(0x003FBD23), UINT32_C(0x0003E156), UINT32_C(0x000B4246), UINT32_C(0x0011F74C), UINT32_C(0x001580E7), UINT32_C(0x001AB7D6), UINT32_C(0x002FD3D2)}, {UINT32_C(0x0073791E), UINT32_C(0x0028FB9D), UINT32_C(0x002F8DA3), UINT32_C(0x00149495), UINT32_C(0x001EDDC0), UINT32_C(0x0022DA14), UINT32_C(0x000D1BE0), UINT32_C(0x000602F3), UINT32_C(0x00166D08), UINT32_C(0x001F0437), UINT32_C(0x0001CD0D), UINT32_C(0x002624C1), UINT32_C(0x002A961B), UINT32_C(0x00094F8B), UINT32_C(0x00315EBC), UINT32_C(0x00021B46), UINT32_C(0x001DB347), UINT32_C(0x00240821), UINT32_C(0x002271B3), UINT32_C(0x00475580), UINT32_C(0x00022765), UINT32_C(0x0030DDFA), UINT32_C(0x002DD431)}, {UINT32_C(0x0073CD42), UINT32_C(0x000AA556), UINT32_C(0x0012283B), UINT32_C(0x007C1AE9), UINT32_C(0x000379D4), UINT32_C(0x0022CBD1), UINT32_C(0x003AB652), UINT32_C(0x00694262), UINT32_C(0x003DAD8F), UINT32_C(0x003C497A), UINT32_C(0x001A32CF), UINT32_C(0x003C85F6), UINT32_C(0x0005431E), UINT32_C(0x002156D8), UINT32_C(0x002AF6B5), UINT32_C(0x00038046), UINT32_C(0x002E42CB), UINT32_C(0x00254F18), UINT32_C(0x0020D00F), UINT32_C(0x0030D955), UINT32_C(0x00071955), UINT32_C(0x000B6D41), UINT32_C(0x00285989)}}, {{UINT32_C(0x007E08FB), UINT32_C(0x00263A00), UINT32_C(0x000CADFC), UINT32_C(0x001DC808), UINT32_C(0x002FA272), UINT32_C(0x001FB53D), UINT32_C(0x0011F9BF), UINT32_C(0x003390F4), UINT32_C(0x0034E6F0), UINT32_C(0x0004D46C), UINT32_C(0x00054043), UINT32_C(0x001A0B56), UINT32_C(0x003D1A17), UINT32_C(0x001B584C), UINT32_C(0x0011ED5C), UINT32_C(0x007B2CBC), UINT32_C(0x000C420C), UINT32_C(0x002C7F8D), UINT32_C(0x001B1449), UINT32_C(0x006D4B4B), UINT32_C(0x00284BD2), UINT32_C(0x00097414), UINT32_C(0x001056CF)}, {UINT32_C(0x0073D3D1), UINT32_C(0x00088230), UINT32_C(0x000075FE), UINT32_C(0x003B85B2), UINT32_C(0x00172ED7), UINT32_C(0x000E1CD6), UINT32_C(0x002D09FB), UINT32_C(0x0073D157), UINT32_C(0x0009AE50), UINT32_C(0x0011E0DC), UINT32_C(0x000EE967), UINT32_C(0x002CFFF1), UINT32_C(0x0010B62C), UINT32_C(0x001BBB7A), UINT32_C(0x001A028C), UINT32_C(0x004CD9AF), UINT32_C(0x0011BCF9), UINT32_C(0x0027E62F), UINT32_C(0x000579BB), UINT32_C(0x007DC76F), UINT32_C(0x00332A43), UINT32_C(0x0023C822), UINT32_C(0x000141A7)}, {UINT32_C(0x00696277), UINT32_C(0x001B3A68), UINT32_C(0x002BB919), UINT32_C(0x00483ED8), UINT32_C(0x000E8365), UINT32_C(0x00099C62), UINT32_C(0x003C029F), UINT32_C(0x005155DA), UINT32_C(0x001F3BFC), UINT32_C(0x003F93BC), UINT32_C(0x0019B689), UINT32_C(0x00763BA9), UINT32_C(0x003D2F7A), UINT32_C(0x00398C78), UINT32_C(0x0038B6BF), UINT32_C(0x006C7737), UINT32_C(0x002EE2B2), UINT32_C(0x003AADE4), UINT32_C(0x002A6200), UINT32_C(0x0061FD04), UINT32_C(0x001F7254), UINT32_C(0x000C8C41), UINT32_C(0x0033394F)}}, {{UINT32_C(0x005E9802), UINT32_C(0x00264758), UINT32_C(0x001AB2B5), UINT32_C(0x002E4F89), UINT32_C(0x002C4ADC), UINT32_C(0x000094EF), UINT32_C(0x002689AD), UINT32_C(0x0046FA1A), UINT32_C(0x0030AFC9), UINT32_C(0x001796B4), UINT32_C(0x0007E5D9), UINT32_C(0x0042C248), UINT32_C(0x000F1E94), UINT32_C(0x0021F53B), UINT32_C(0x00261686), UINT32_C(0x003F1DDB), UINT32_C(0x0038C53A), UINT32_C(0x00085F45), UINT32_C(0x002D5719), UINT32_C(0x000E126B), UINT32_C(0x0008A053), UINT32_C(0x0001D8A2), UINT32_C(0x000CA742)}, {UINT32_C(0x0024D905), UINT32_C(0x000E9B9F), UINT32_C(0x0001793C), UINT32_C(0x0038DEEF), UINT32_C(0x00281C2C), UINT32_C(0x002A3E68), UINT32_C(0x002C3A89), UINT32_C(0x00474938), UINT32_C(0x00191AE2), UINT32_C(0x00059F41), UINT32_C(0x003170A5), UINT32_C(0x007B0894), UINT32_C(0x003188B8), UINT32_C(0x0004A286), UINT32_C(0x001330A6), UINT32_C(0x000F7B22), UINT32_C(0x000CCE16), UINT32_C(0x002F2EE2), UINT32_C(0x00195174), UINT32_C(0x005D1601), UINT32_C(0x001F40E0), UINT32_C(0x00291362), UINT32_C(0x0035C7DC)}, {UINT32_C(0x000B4C31), UINT32_C(0x003B561D), UINT32_C(0x000F3B3B), UINT32_C(0x0070FA44), UINT32_C(0x0007486A), UINT32_C(0x001DF356), UINT32_C(0x001935F2), UINT32_C(0x004FB6D9), UINT32_C(0x0027D7FD), UINT32_C(0x00350DC9), UINT32_C(0x000A3F69), UINT32_C(0x00449466), UINT32_C(0x00239BA4), UINT32_C(0x0028E2F3), UINT32_C(0x0026CBC7), UINT32_C(0x00036018), UINT32_C(0x003A9DCF), UINT32_C(0x0037B528), UINT32_C(0x001E2C6E), UINT32_C(0x003F6EC0), UINT32_C(0x003FD88F), UINT32_C(0x00068ADE), UINT32_C(0x0037FCE0)}}, {{UINT32_C(0x0050000E), UINT32_C(0x001E77A7), UINT32_C(0x0024B63E), UINT32_C(0x0048CCFE), UINT32_C(0x0038B910), UINT32_C(0x0019209B), UINT32_C(0x00253B08), UINT32_C(0x005B37AF), UINT32_C(0x0004506B), UINT32_C(0x001A4B14), UINT32_C(0x000FF3BF), UINT32_C(0x00085950), UINT32_C(0x002D6373), UINT32_C(0x000CDBBD), UINT32_C(0x00090934), UINT32_C(0x004CF09F), UINT32_C(0x0027CD34), UINT32_C(0x00371F39), UINT32_C(0x001C72B6), UINT32_C(0x006D2050), UINT32_C(0x002AC578), UINT32_C(0x000FB697), UINT32_C(0x0005FF6A)}, {UINT32_C(0x00599665), UINT32_C(0x002DDA7B), UINT32_C(0x00268815), UINT32_C(0x002942AC), UINT32_C(0x001DEC68), UINT32_C(0x002DBB5F), UINT32_C(0x000C7D78), UINT32_C(0x0057F19C), UINT32_C(0x0021DFB6), UINT32_C(0x000753FB), UINT32_C(0x001EB75C), UINT32_C(0x006BB8BB), UINT32_C(0x000F62D8), UINT32_C(0x00276AD4), UINT32_C(0x0018EBC3), UINT32_C(0x00214208), UINT32_C(0x001152DD), UINT32_C(0x001897CD), UINT32_C(0x002857D4), UINT32_C(0x0042470E), UINT32_C(0x0021C7EA), UINT32_C(0x000270FA), UINT32_C(0x002E73F0)}, {UINT32_C(0x0071D30B), UINT32_C(0x002E7B13), UINT32_C(0x0033F7E5), UINT32_C(0x00026176), UINT32_C(0x0024C588), UINT32_C(0x001EA175), UINT32_C(0x003B6645), UINT32_C(0x00291861), UINT32_C(0x000ED3A0), UINT32_C(0x0002A696), UINT32_C(0x0016C658), UINT32_C(0x003C9DCA), UINT32_C(0x001224F2), UINT32_C(0x0005AAC4), UINT32_C(0x001A509B), UINT32_C(0x002E50AA), UINT32_C(0x001912EC), UINT32_C(0x0039A83F), UINT32_C(0x002EEAC7), UINT32_C(0x0039F245), UINT32_C(0x0004ABA0), UINT32_C(0x0038D048), UINT32_C(0x00088CA8)}}, {{UINT32_C(0x00381541), UINT32_C(0x00204236), UINT32_C(0x000F7F85), UINT32_C(0x006ABC1B), UINT32_C(0x00309BD4), UINT32_C(0x001A5B8A), UINT32_C(0x003193B0), UINT32_C(0x007C3DBC), UINT32_C(0x0021AA72), UINT32_C(0x0025AB66), UINT32_C(0x0027C829), UINT32_C(0x0000DCB0), UINT32_C(0x001E5740), UINT32_C(0x0027A69E), UINT32_C(0x002A0916), UINT32_C(0x003558C0), UINT32_C(0x0008DEFA), UINT32_C(0x00001D63), UINT32_C(0x00302547), UINT32_C(0x0077415F), UINT32_C(0x0017C197), UINT32_C(0x0022627F), UINT32_C(0x000599E2)}, {UINT32_C(0x004DD359), UINT32_C(0x00246A2C), UINT32_C(0x0027E508), UINT32_C(0x006A3CA3), UINT32_C(0x00378EB4), UINT32_C(0x0026BEB6), UINT32_C(0x000844C3), UINT32_C(0x0055D1C5), UINT32_C(0x000BD3A3), UINT32_C(0x00337C41), UINT32_C(0x003DE17E), UINT32_C(0x004DF9BA), UINT32_C(0x0029B7C8), UINT32_C(0x00371C33), UINT32_C(0x001BC3B2), UINT32_C(0x0052B93E), UINT32_C(0x003F84C4), UINT32_C(0x00046C2D), UINT32_C(0x00381921), UINT32_C(0x00329932), UINT32_C(0x00029014), UINT32_C(0x00195E90), UINT32_C(0x00165863)}, {UINT32_C(0x003D4CE8), UINT32_C(0x0009AEA0), UINT32_C(0x000A6139), UINT32_C(0x00626AB6), UINT32_C(0x001921AD), UINT32_C(0x001DDCC3), UINT32_C(0x0010A346), UINT32_C(0x001C0DF5), UINT32_C(0x0022458F), UINT32_C(0x0029A8D6), UINT32_C(0x0023055B), UINT32_C(0x007FBC20), UINT32_C(0x0012BD87), UINT32_C(0x00105456), UINT32_C(0x0009B655), UINT32_C(0x0061C3AD), UINT32_C(0x00029CBB), UINT32_C(0x0037EC3D), UINT32_C(0x003A6374), UINT32_C(0x00604726), UINT32_C(0x0036C983), UINT32_C(0x002FB577), UINT32_C(0x0034D612)}}, {{UINT32_C(0x002E7DCC), UINT32_C(0x000D16B4), UINT32_C(0x0024096A), UINT32_C(0x0025C077), UINT32_C(0x00092685), UINT32_C(0x0031BC93), UINT32_C(0x002F71E3), UINT32_C(0x0006DB6D), UINT32_C(0x00314D92), UINT32_C(0x0031DCE1), UINT32_C(0x0021F441), UINT32_C(0x005C93B1), UINT32_C(0x000A56D1), UINT32_C(0x0007C7F7), UINT32_C(0x003AC8AA), UINT32_C(0x004FB13F), UINT32_C(0x00382F3C), UINT32_C(0x00346287), UINT32_C(0x0010C1C3), UINT32_C(0x003EB5C9), UINT32_C(0x00287A6F), UINT32_C(0x0018779D), UINT32_C(0x00239EAB)}, {UINT32_C(0x0041FD8F), UINT32_C(0x001E6522), UINT32_C(0x0022B56D), UINT32_C(0x0025ABCD), UINT32_C(0x00306D98), UINT32_C(0x00300F6B), UINT32_C(0x001655DA), UINT32_C(0x00272687), UINT32_C(0x0006B08D), UINT32_C(0x0023B809), UINT32_C(0x00138AAF), UINT32_C(0x001DF48C), UINT32_C(0x0011F659), UINT32_C(0x0009E92A), UINT32_C(0x003B30CC), UINT32_C(0x001DAEE5), UINT32_C(0x003A3F41), UINT32_C(0x0009DF14), UINT32_C(0x00214E4F), UINT32_C(0x001A4EE1), UINT32_C(0x000AF3F8), UINT32_C(0x003B84FD), UINT32_C(0x0027CB30)}, {UINT32_C(0x003FB85E), UINT32_C(0x002A5B7E), UINT32_C(0x000B3D6C), UINT32_C(0x0010AAED), UINT32_C(0x001DCC4D), UINT32_C(0x002372C6), UINT32_C(0x002990B7), UINT32_C(0x0029FD67), UINT32_C(0x00184F9D), UINT32_C(0x00213292), UINT32_C(0x0006D4F4), UINT32_C(0x004C67DD), UINT32_C(0x00170CE7), UINT32_C(0x00279FEF), UINT32_C(0x002AF75F), UINT32_C(0x002865F8), UINT32_C(0x003DF044), UINT32_C(0x003246C4), UINT32_C(0x000BBBCD), UINT32_C(0x0070D0BC), UINT32_C(0x0016FDF4), UINT32_C(0x002E1724), UINT32_C(0x0034D526)}}, {{UINT32_C(0x0068145B), UINT32_C(0x0010E47B), UINT32_C(0x0016AFBB), UINT32_C(0x006D5CA7), UINT32_C(0x001CBDAA), UINT32_C(0x003773D2), UINT32_C(0x00376C07), UINT32_C(0x00798761), UINT32_C(0x00122C25), UINT32_C(0x0000941E), UINT32_C(0x000B8B0C), UINT32_C(0x006E3CF0), UINT32_C(0x0037C29F), UINT32_C(0x003FCFE2), UINT32_C(0x00355C91), UINT32_C(0x006B5739), UINT32_C(0x000039E2), UINT32_C(0x000A6FB6), UINT32_C(0x00368629), UINT32_C(0x00439D33), UINT32_C(0x00051B6B), UINT32_C(0x003CCB53), UINT32_C(0x0021E090)}, {UINT32_C(0x0072B0D9), UINT32_C(0x00260FBA), UINT32_C(0x000A91DA), UINT32_C(0x000248F7), UINT32_C(0x003E3B08), UINT32_C(0x00233510), UINT32_C(0x000F7A4C), UINT32_C(0x00023CD1), UINT32_C(0x003BF83E), UINT32_C(0x003F97FF), UINT32_C(0x00387ABE), UINT32_C(0x006B4171), UINT32_C(0x000D77D6), UINT32_C(0x0028D310), UINT32_C(0x001FAD93), UINT32_C(0x006D40A9), UINT32_C(0x00109960), UINT32_C(0x001C700E), UINT32_C(0x0010A5D3), UINT32_C(0x00638AE3), UINT32_C(0x002B09EB), UINT32_C(0x0005F26C), UINT32_C(0x0001E411)}, {UINT32_C(0x000E2A67), UINT32_C(0x0016A28F), UINT32_C(0x00289716), UINT32_C(0x0078F0B2), UINT32_C(0x003797DA), UINT32_C(0x00268485), UINT32_C(0x00262E41), UINT32_C(0x00241F04), UINT32_C(0x00074EC0), UINT32_C(0x000D6EAC), UINT32_C(0x001E559F), UINT32_C(0x00153E46), UINT32_C(0x002FB890), UINT32_C(0x000CA628), UINT32_C(0x002A4016), UINT32_C(0x007D6524), UINT32_C(0x001EC8D1), UINT32_C(0x00286DC0), UINT32_C(0x00157657), UINT32_C(0x0079E5B8), UINT32_C(0x0039F963), UINT32_C(0x000CE35C), UINT32_C(0x003F1219)}}, {{UINT32_C(0x0000F57B), UINT32_C(0x0009DF26), UINT32_C(0x00222FE3), UINT32_C(0x002A30BE), UINT32_C(0x00379E2F), UINT32_C(0x000AAB5F), UINT32_C(0x002DEDC7), UINT32_C(0x00530A70), UINT32_C(0x001B01FA), UINT32_C(0x003D1B31), UINT32_C(0x002AD753), UINT32_C(0x0029A2AA), UINT32_C(0x0034373F), UINT32_C(0x002D9918), UINT32_C(0x002C76D1), UINT32_C(0x002F937A), UINT32_C(0x000EB50A), UINT32_C(0x003F8781), UINT32_C(0x002C7F91), UINT32_C(0x0004D41F), UINT32_C(0x003AEC45), UINT32_C(0x00369FC0), UINT32_C(0x00013605)}, {UINT32_C(0x0054C5BA), UINT32_C(0x00376F0D), UINT32_C(0x000F2327), UINT32_C(0x00202DD7), UINT32_C(0x0022B2CE), UINT32_C(0x003D8E25), UINT32_C(0x0030ED93), UINT32_C(0x005E7D9A), UINT32_C(0x00359051), UINT32_C(0x00330484), UINT32_C(0x001F4DA9), UINT32_C(0x000D5A03), UINT32_C(0x003772EE), UINT32_C(0x001FDD99), UINT32_C(0x00190D1C), UINT32_C(0x0064DE66), UINT32_C(0x00112698), UINT32_C(0x003D9DDF), UINT32_C(0x003B8E10), UINT32_C(0x000670E8), UINT32_C(0x001E9A00), UINT32_C(0x000D2726), UINT32_C(0x00344016)}, {UINT32_C(0x001EAEC6), UINT32_C(0x000A257F), UINT32_C(0x00368552), UINT32_C(0x00569140), UINT32_C(0x00240DF0), UINT32_C(0x002BE21B), UINT32_C(0x000AC85E), UINT32_C(0x0035C3D1), UINT32_C(0x0016FBDE), UINT32_C(0x0024ACF2), UINT32_C(0x003AA3F7), UINT32_C(0x006A54CF), UINT32_C(0x002AAD78), UINT32_C(0x003BE77F), UINT32_C(0x000CA38B), UINT32_C(0x0053D6D6), UINT32_C(0x00238462), UINT32_C(0x001E2258), UINT32_C(0x002E8075), UINT32_C(0x005C588D), UINT32_C(0x001BE563), UINT32_C(0x00362AF4), UINT32_C(0x000E1465)}}, {{UINT32_C(0x00544BA0), UINT32_C(0x00103EEE), UINT32_C(0x0012ACCC), UINT32_C(0x0004634F), UINT32_C(0x00326BCC), UINT32_C(0x00186BD9), UINT32_C(0x0001D886), UINT32_C(0x0006E9CD), UINT32_C(0x0028A635), UINT32_C(0x0018E4A4), UINT32_C(0x002FA643), UINT32_C(0x000C1175), UINT32_C(0x0039E179), UINT32_C(0x00255905), UINT32_C(0x000E38AE), UINT32_C(0x00075E7F), UINT32_C(0x003F2DF2), UINT32_C(0x000BF618), UINT32_C(0x0038EDDB), UINT32_C(0x003D531B), UINT32_C(0x00343EB7), UINT32_C(0x001D10D6), UINT32_C(0x0003039D)}, {UINT32_C(0x007286CB), UINT32_C(0x00262870), UINT32_C(0x00087C21), UINT32_C(0x0015F41E), UINT32_C(0x002D96DA), UINT32_C(0x0004A9E5), UINT32_C(0x00010055), UINT32_C(0x0063A621), UINT32_C(0x000E9F00), UINT32_C(0x000EE347), UINT32_C(0x0026AF40), UINT32_C(0x003E094E), UINT32_C(0x003B2228), UINT32_C(0x001A3CC1), UINT32_C(0x0030A53B), UINT32_C(0x00011EE4), UINT32_C(0x00218ED0), UINT32_C(0x0007142C), UINT32_C(0x00391F95), UINT32_C(0x002BB1FF), UINT32_C(0x001AA23A), UINT32_C(0x003C5218), UINT32_C(0x002F08BB)}, {UINT32_C(0x001EB5AC), UINT32_C(0x003F1C36), UINT32_C(0x001FD7A7), UINT32_C(0x00755608), UINT32_C(0x003353AE), UINT32_C(0x003D6966), UINT32_C(0x0017FDC3), UINT32_C(0x0000F856), UINT32_C(0x0009B134), UINT32_C(0x000C3D1A), UINT32_C(0x001E06FC), UINT32_C(0x00745D11), UINT32_C(0x003761CD), UINT32_C(0x0021FF5D), UINT32_C(0x0037240E), UINT32_C(0x003022F6), UINT32_C(0x0013DC00), UINT32_C(0x00308386), UINT32_C(0x00071C5F), UINT32_C(0x0010C125), UINT32_C(0x000192B4), UINT32_C(0x0019FF02), UINT32_C(0x003B2385)}}, {{UINT32_C(0x00417D4C), UINT32_C(0x003AECD5), UINT32_C(0x002E5B54), UINT32_C(0x00243DAE), UINT32_C(0x0003B5C3), UINT32_C(0x00242612), UINT32_C(0x001E0962), UINT32_C(0x004AC9D7), UINT32_C(0x0033B66D), UINT32_C(0x0013DC44), UINT32_C(0x0017552D), UINT32_C(0x006C3A48), UINT32_C(0x0036914E), UINT32_C(0x001C9CFD), UINT32_C(0x000862A1), UINT32_C(0x00260590), UINT32_C(0x002BEC73), UINT32_C(0x00263AA5), UINT32_C(0x0013BDC2), UINT32_C(0x007EAFCE), UINT32_C(0x001A9EA3), UINT32_C(0x000A9066), UINT32_C(0x00024A7F)}, {UINT32_C(0x007D40F1), UINT32_C(0x002268CC), UINT32_C(0x002A7B4D), UINT32_C(0x0017B592), UINT32_C(0x001B785F), UINT32_C(0x002CEBBB), UINT32_C(0x003FD10A), UINT32_C(0x0033D10F), UINT32_C(0x0005FF3D), UINT32_C(0x0002C3D3), UINT32_C(0x00171A74), UINT32_C(0x005E8507), UINT32_C(0x002D6928), UINT32_C(0x0007621E), UINT32_C(0x003F547B), UINT32_C(0x005E087B), UINT32_C(0x000FFDD4), UINT32_C(0x0036FEE1), UINT32_C(0x0028A970), UINT32_C(0x0049A969), UINT32_C(0x0008D33F), UINT32_C(0x0020BACA), UINT32_C(0x000F9E55)}, {UINT32_C(0x0001E00F), UINT32_C(0x003DC07C), UINT32_C(0x001BA800), UINT32_C(0x004AEE42), UINT32_C(0x0013E66A), UINT32_C(0x001C61D4), UINT32_C(0x00365B36), UINT32_C(0x000D2885), UINT32_C(0x00046EFC), UINT32_C(0x00088FB6), UINT32_C(0x0007F83B), UINT32_C(0x003E8670), UINT32_C(0x001539ED), UINT32_C(0x0039945D), UINT32_C(0x00052181), UINT32_C(0x00150E04), UINT32_C(0x003F8361), UINT32_C(0x0033D590), UINT32_C(0x002A7678), UINT32_C(0x001A0E6A), UINT32_C(0x0017FB3A), UINT32_C(0x0001B263), UINT32_C(0x003FB8CC)}}, {{UINT32_C(0x00441491), UINT32_C(0x000F0A65), UINT32_C(0x001689D6), UINT32_C(0x001482F7), UINT32_C(0x00147BF7), UINT32_C(0x003D0042), UINT32_C(0x002844D1), UINT32_C(0x005FD1B5), UINT32_C(0x00200A97), UINT32_C(0x00117C63), UINT32_C(0x003D90B5), UINT32_C(0x001D123E), UINT32_C(0x00044FA4), UINT32_C(0x003F2318), UINT32_C(0x0036FA13), UINT32_C(0x005A1AE5), UINT32_C(0x000811CA), UINT32_C(0x001E59EF), UINT32_C(0x0034D752), UINT32_C(0x00564B68), UINT32_C(0x001118FF), UINT32_C(0x0039B3EA), UINT32_C(0x0014D131)}, {UINT32_C(0x0013C497), UINT32_C(0x003C1203), UINT32_C(0x0017B8C9), UINT32_C(0x005F5C63), UINT32_C(0x001C40D9), UINT32_C(0x00337A68), UINT32_C(0x00200255), UINT32_C(0x007B6F12), UINT32_C(0x001F0C0A), UINT32_C(0x000D6663), UINT32_C(0x001F59C2), UINT32_C(0x00154C68), UINT32_C(0x00345E93), UINT32_C(0x003D89D5), UINT32_C(0x00342AEC), UINT32_C(0x006FD7F9), UINT32_C(0x0015325A), UINT32_C(0x001C82FE), UINT32_C(0x0032F5E8), UINT32_C(0x00078F1F), UINT32_C(0x0025FC9A), UINT32_C(0x003196C7), UINT32_C(0x0039E007)}, {UINT32_C(0x0039A6FC), UINT32_C(0x0011CEAB), UINT32_C(0x0012DC99), UINT32_C(0x005819B9), UINT32_C(0x0018EB3D), UINT32_C(0x00219D0B), UINT32_C(0x001627FA), UINT32_C(0x003FFC71), UINT32_C(0x000E2B28), UINT32_C(0x000516D9), UINT32_C(0x003B039D), UINT32_C(0x001E1B28), UINT32_C(0x00179D77), UINT32_C(0x002E37D9), UINT32_C(0x0003A1C1), UINT32_C(0x000D735B), UINT32_C(0x00360858), UINT32_C(0x0008AFC3), UINT32_C(0x0016FD4C), UINT32_C(0x000289D6), UINT32_C(0x001E9558), UINT32_C(0x000AF3EA), UINT32_C(0x003D50FE)}}, {{UINT32_C(0x0053D15A), UINT32_C(0x002C2F83), UINT32_C(0x00170ABE), UINT32_C(0x00712A78), UINT32_C(0x00103D0A), UINT32_C(0x0005BC7E), UINT32_C(0x002462B7), UINT32_C(0x00116FB3), UINT32_C(0x0032D4A0), UINT32_C(0x003CCDA0), UINT32_C(0x00088A2E), UINT32_C(0x00510F79), UINT32_C(0x00293310), UINT32_C(0x001D649F), UINT32_C(0x00315518), UINT32_C(0x002689D7), UINT32_C(0x00324D85), UINT32_C(0x00200963), UINT32_C(0x00086C95), UINT32_C(0x000B31F5), UINT32_C(0x0013C26E), UINT32_C(0x0003A95F), UINT32_C(0x0036130B)}, {UINT32_C(0x0011ED3F), UINT32_C(0x0022E8CD), UINT32_C(0x000AF23D), UINT32_C(0x000A28B1), UINT32_C(0x001C1B53), UINT32_C(0x0004BD1F), UINT32_C(0x000B0909), UINT32_C(0x006FD7AA), UINT32_C(0x001BA416), UINT32_C(0x0003F26B), UINT32_C(0x00305459), UINT32_C(0x0074C3EC), UINT32_C(0x00287773), UINT32_C(0x0034CC74), UINT32_C(0x002D85ED), UINT32_C(0x005C853F), UINT32_C(0x00049BB2), UINT32_C(0x000DF4CA), UINT32_C(0x0016E02A), UINT32_C(0x004D746D), UINT32_C(0x000B5669), UINT32_C(0x0011DAD1), UINT32_C(0x0016A410)}, {UINT32_C(0x00112679), UINT32_C(0x002ADF1B), UINT32_C(0x0008BDEA), UINT32_C(0x007D441A), UINT32_C(0x0037A3DB), UINT32_C(0x0008035D), UINT32_C(0x001D18DE), UINT32_C(0x00432D9E), UINT32_C(0x00217C8D), UINT32_C(0x0034B1CC), UINT32_C(0x00347E03), UINT32_C(0x007CEF1A), UINT32_C(0x003CA8B5), UINT32_C(0x000B5855), UINT32_C(0x0034A8BC), UINT32_C(0x003867CB), UINT32_C(0x00169433), UINT32_C(0x00134C66), UINT32_C(0x0011D943), UINT32_C(0x0061B8E4), UINT32_C(0x00383EDC), UINT32_C(0x00274AAD), UINT32_C(0x000AE283)}}, }}; /*- * Q := 2P, both projective, Q and P same pointers OK * Autogenerated: op3/dbl_proj_ed_eone.op3 * https://www.hyperelliptic.org/EFD/g1p/auto-code/twisted/extended-1/doubling/dbl-2008-hwcd.op3 * ASSERT: e = 1 */ static void point_double(pt_prj_t *Q, const pt_prj_t *P) { /* temporary variables */ fe_t t0, t1, t2, t3; /* constants */ /* set pointers for Edwards curve arith */ const limb_t *X = P->X; const limb_t *Y = P->Y; const limb_t *Z = P->Z; limb_t *X3 = Q->X; limb_t *Y3 = Q->Y; limb_t *T3 = Q->T; limb_t *Z3 = Q->Z; /* the curve arith formula */ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t0, X); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t1, Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(t2, Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, t2, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X, Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(Y3, X3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, Y3, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, T3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, t0, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t2, Y3, t3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t3, t0, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, Z3, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, Z3, t3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, t2, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y3, t3); } /*- * R := Q + P where R and Q are projective, P affine. * R and Q same pointers OK * R and P same pointers not OK * Autogenerated: op3/add_mixed_ed_eone.op3 * https://hyperelliptic.org/EFD/g1p/auto-code/twisted/extended/addition/madd-2008-hwcd.op3 * ASSERT: e = 1 */ static void point_add_mixed(pt_prj_t *R, const pt_prj_t *Q, const pt_aff_t *P) { /* temporary variables */ fe_t t0, t1, t2, t3; /* constants */ const limb_t *d = const_d; /* set pointers for Edwards curve arith */ const limb_t *X1 = Q->X; const limb_t *Y1 = Q->Y; const limb_t *T1 = Q->T; const limb_t *Z1 = Q->Z; const limb_t *X2 = P->X; const limb_t *Y2 = P->Y; const limb_t *T2 = P->T; limb_t *X3 = R->X; limb_t *Y3 = R->Y; limb_t *T3 = R->T; limb_t *Z3 = R->Z; /* the curve arith formula */ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t0, X1, X2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, Y1, Y2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, d, T2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, T1, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X1, Y1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, X2, Y2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t3, T3, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, t3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, Z1, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, Z1, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, t1, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Z3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, t3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, T3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Z3, t3); } /*- * R := Q + P all projective. * R and Q same pointers OK * R and P same pointers not OK * Autogenerated: op3/add_proj_ed_eone.op3 * https://hyperelliptic.org/EFD/g1p/auto-code/twisted/extended/addition/add-2008-hwcd.op3 * ASSERT: e = 1 */ static void point_add_proj(pt_prj_t *R, const pt_prj_t *Q, const pt_prj_t *P) { /* temporary variables */ fe_t t0, t1, t2, t3; /* constants */ const limb_t *d = const_d; /* set pointers for Edwards curve arith */ const limb_t *X1 = Q->X; const limb_t *Y1 = Q->Y; const limb_t *T1 = Q->T; const limb_t *Z1 = Q->Z; const limb_t *X2 = P->X; const limb_t *Y2 = P->Y; const limb_t *T2 = P->T; const limb_t *Z2 = P->Z; limb_t *X3 = R->X; limb_t *Y3 = R->Y; limb_t *T3 = R->T; limb_t *Z3 = R->Z; /* the curve arith formula */ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t0, X1, X2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, Y1, Y2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, d, T2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t2, T1, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t3, Z1, Z2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(X3, X1, Y1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, X2, Y2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, T3, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, Z3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(Z3, t3, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t3, t3, t2); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, t1, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Z3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, t3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, T3, t1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Z3, t3); } /*- * from P projective Edwards to Q projective legacy: Q=P OK * Autogenerated: op3/edwards2legacy_gost.op3 * https://tools.ietf.org/html/rfc7836#section-5.2 */ static void point_edwards2legacy(pt_prj_t *Q, const pt_prj_t *P) { /* temporary variables */ fe_t t0; /* constants */ const limb_t *S = const_S; const limb_t *T = const_T; const limb_t *X1 = P->X; const limb_t *Y1 = P->Y; const limb_t *Z1 = P->Z; limb_t *X3 = Q->X; limb_t *Y3 = Q->Y; limb_t *T3 = Q->T; limb_t *Z3 = Q->Z; /* the curve arith formula */ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(T3, Z1, Y1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t0, Z1, Y1); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, S, T3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Z1, T3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, X1, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t0, t0, T); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t0, T3, t0); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, X1, t0); } /*- * from P affine legacy to Q projective Edwards: Q=P not OK * Autogenerated: op3/legacy2edwards_gost.op3 * https://tools.ietf.org/html/rfc7836#section-5.2 */ static void point_legacy2edwards(pt_prj_t *Q, const pt_aff_t *P) { /* constants */ const limb_t *S = const_S; const limb_t *T = const_T; const limb_t *X1 = P->X; const limb_t *Y1 = P->Y; limb_t *X3 = Q->X; limb_t *Y3 = Q->Y; limb_t *T3 = Q->T; limb_t *Z3 = Q->Z; /* the curve arith formula */ fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, X1, T); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(Y3, T3, S); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, T3, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, Y1, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(T3, T3, S); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y1, T3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, X3, Y3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(X3, X3, Z3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Y3, Z3); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_square(Z3, Z3); } /* constants */ #define RADIX 5 #define DRADIX (1 << RADIX) #define DRADIX_WNAF ((DRADIX) << 1) /*- * precomp for wnaf scalar multiplication: * precomp[0] = 1P * precomp[1] = 3P * precomp[2] = 5P * precomp[3] = 7P * precomp[4] = 9P * ... */ static void precomp_wnaf(pt_prj_t precomp[DRADIX / 2], const pt_aff_t *P) { int i; /* move from legacy affine to Edwards projective */ point_legacy2edwards(&precomp[0], P); point_double(&precomp[DRADIX / 2 - 1], &precomp[0]); for (i = 1; i < DRADIX / 2; i++) point_add_proj(&precomp[i], &precomp[DRADIX / 2 - 1], &precomp[i - 1]); } /* fetch a scalar bit */ static int scalar_get_bit(const unsigned char in[64], int idx) { int widx, rshift; widx = idx >> 3; rshift = idx & 0x7; if (idx < 0 || widx >= 64) return 0; return (in[widx] >> rshift) & 0x1; } /*- * Compute "regular" wnaf representation of a scalar. * See "Exponent Recoding and Regular Exponentiation Algorithms", * Tunstall et al., AfricaCrypt 2009, Alg 6. * It forces an odd scalar and outputs digits in * {\pm 1, \pm 3, \pm 5, \pm 7, \pm 9, ...} * i.e. signed odd digits with _no zeroes_ -- that makes it "regular". */ static void scalar_rwnaf(int8_t out[103], const unsigned char in[64]) { int i; int8_t window, d; window = (in[0] & (DRADIX_WNAF - 1)) | 1; for (i = 0; i < 102; i++) { d = (window & (DRADIX_WNAF - 1)) - DRADIX; out[i] = d; window = (window - d) >> RADIX; window += scalar_get_bit(in, (i + 1) * RADIX + 1) << 1; window += scalar_get_bit(in, (i + 1) * RADIX + 2) << 2; window += scalar_get_bit(in, (i + 1) * RADIX + 3) << 3; window += scalar_get_bit(in, (i + 1) * RADIX + 4) << 4; window += scalar_get_bit(in, (i + 1) * RADIX + 5) << 5; } out[i] = window; } /*- * Compute "textbook" wnaf representation of a scalar. * NB: not constant time */ static void scalar_wnaf(int8_t out[513], const unsigned char in[64]) { int i; int8_t window, d; window = in[0] & (DRADIX_WNAF - 1); for (i = 0; i < 513; i++) { d = 0; if ((window & 1) && ((d = window & (DRADIX_WNAF - 1)) & DRADIX)) d -= DRADIX_WNAF; out[i] = d; window = (window - d) >> 1; window += scalar_get_bit(in, i + 1 + RADIX) << RADIX; } } /*- * Simultaneous scalar multiplication: interleaved "textbook" wnaf. * NB: not constant time */ static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[64], const unsigned char b[64], const pt_aff_t *P) { int i, d, is_neg, is_inf = 1, flipped = 0; int8_t anaf[513] = {0}; int8_t bnaf[513] = {0}; pt_prj_t Q = {0}; pt_prj_t precomp[DRADIX / 2]; precomp_wnaf(precomp, P); scalar_wnaf(anaf, a); scalar_wnaf(bnaf, b); for (i = 512; i >= 0; i--) { if (!is_inf) point_double(&Q, &Q); if ((d = bnaf[i])) { if ((is_neg = d < 0) != flipped) { fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); flipped ^= 1; } d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1; if (is_inf) { /* initialize accumulator */ fe_copy(Q.X, &precomp[d].X); fe_copy(Q.Y, &precomp[d].Y); fe_copy(Q.T, &precomp[d].T); fe_copy(Q.Z, &precomp[d].Z); is_inf = 0; } else point_add_proj(&Q, &Q, &precomp[d]); } if ((d = anaf[i])) { if ((is_neg = d < 0) != flipped) { fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); flipped ^= 1; } d = (is_neg) ? (-d - 1) >> 1 : (d - 1) >> 1; if (is_inf) { /* initialize accumulator */ fe_copy(Q.X, &lut_cmb[0][d].X); fe_copy(Q.Y, &lut_cmb[0][d].Y); fe_copy(Q.T, &lut_cmb[0][d].T); fe_copy(Q.Z, const_one); is_inf = 0; } else point_add_mixed(&Q, &Q, &lut_cmb[0][d]); } } if (is_inf) { /* initialize accumulator to inf: all-zero scalars */ fe_set_zero(Q.X); fe_copy(Q.Y, const_one); fe_set_zero(Q.T); fe_copy(Q.Z, const_one); } if (flipped) { /* correct sign */ fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.X, Q.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(Q.T, Q.T); } /* move from Edwards projective to legacy projective */ point_edwards2legacy(&Q, &Q); /* convert to affine -- NB depends on coordinate system */ fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); } /*- * Variable point scalar multiplication with "regular" wnaf. */ static void var_smul_rwnaf(pt_aff_t *out, const unsigned char scalar[64], const pt_aff_t *P) { int i, j, d, diff, is_neg; int8_t rnaf[103] = {0}; pt_prj_t Q = {0}, lut = {0}; pt_prj_t precomp[DRADIX / 2]; precomp_wnaf(precomp, P); scalar_rwnaf(rnaf, scalar); #if defined(_MSC_VER) /* result still unsigned: yes we know */ #pragma warning(push) #pragma warning(disable : 4146) #endif /* initialize accumulator to high digit */ d = (rnaf[102] - 1) >> 1; for (j = 0; j < DRADIX / 2; j++) { diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, diff, Q.X, precomp[j].X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, diff, Q.Y, precomp[j].Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, diff, Q.T, precomp[j].T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, diff, Q.Z, precomp[j].Z); } for (i = 101; i >= 0; i--) { for (j = 0; j < RADIX; j++) point_double(&Q, &Q); d = rnaf[i]; /* is_neg = (d < 0) ? 1 : 0 */ is_neg = (d >> (8 * sizeof(int) - 1)) & 1; /* d = abs(d) */ d = (d ^ -is_neg) + is_neg; d = (d - 1) >> 1; for (j = 0; j < DRADIX / 2; j++) { diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.X, diff, lut.X, precomp[j].X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.Y, diff, lut.Y, precomp[j].Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.T, diff, lut.T, precomp[j].T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.Z, diff, lut.Z, precomp[j].Z); } /* negate lut point if digit is negative */ fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->X, lut.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->T, lut.T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.X, is_neg, lut.X, out->X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.T, is_neg, lut.T, out->T); point_add_proj(&Q, &Q, &lut); } #if defined(_MSC_VER) #pragma warning(pop) #endif /* conditionally subtract P if the scalar was even */ fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.X, precomp[0].X); fe_copy(lut.Y, precomp[0].Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.T, precomp[0].T); fe_copy(lut.Z, precomp[0].Z); point_add_proj(&lut, &lut, &Q); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, scalar[0] & 1, lut.X, Q.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, scalar[0] & 1, lut.Y, Q.Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, scalar[0] & 1, lut.T, Q.T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, scalar[0] & 1, lut.Z, Q.Z); point_double(&Q, &Q); point_double(&Q, &Q); /* move from Edwards projective to legacy projective */ point_edwards2legacy(&Q, &Q); /* convert to affine -- NB depends on coordinate system */ fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); } /*- * Fixed scalar multiplication: comb with interleaving. */ static void fixed_smul_cmb(pt_aff_t *out, const unsigned char scalar[64]) { int i, j, k, d, diff, is_neg = 0; int8_t rnaf[103] = {0}; pt_prj_t Q = {0}, R = {0}; pt_aff_t lut = {0}; scalar_rwnaf(rnaf, scalar); /* initalize accumulator to inf */ fe_set_zero(Q.X); fe_copy(Q.Y, const_one); fe_set_zero(Q.T); fe_copy(Q.Z, const_one); #if defined(_MSC_VER) /* result still unsigned: yes we know */ #pragma warning(push) #pragma warning(disable : 4146) #endif for (i = 17; i >= 0; i--) { for (j = 0; i != 17 && j < RADIX; j++) point_double(&Q, &Q); for (j = 0; j < 7; j++) { if (j * 18 + i > 102) continue; d = rnaf[j * 18 + i]; /* is_neg = (d < 0) ? 1 : 0 */ is_neg = (d >> (8 * sizeof(int) - 1)) & 1; /* d = abs(d) */ d = (d ^ -is_neg) + is_neg; d = (d - 1) >> 1; for (k = 0; k < DRADIX / 2; k++) { diff = (1 - (-(d ^ k) >> (8 * sizeof(int) - 1))) & 1; fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.X, diff, lut.X, lut_cmb[j][k].X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.Y, diff, lut.Y, lut_cmb[j][k].Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz( lut.T, diff, lut.T, lut_cmb[j][k].T); } /* negate lut point if digit is negative */ fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->X, lut.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(out->T, lut.T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.X, is_neg, lut.X, out->X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(lut.T, is_neg, lut.T, out->T); point_add_mixed(&Q, &Q, &lut); } } #if defined(_MSC_VER) #pragma warning(pop) #endif /* conditionally subtract P if the scalar was even */ fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.X, lut_cmb[0][0].X); fe_copy(lut.Y, lut_cmb[0][0].Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_opp(lut.T, lut_cmb[0][0].T); point_add_mixed(&R, &Q, &lut); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.X, scalar[0] & 1, R.X, Q.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Y, scalar[0] & 1, R.Y, Q.Y); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.T, scalar[0] & 1, R.T, Q.T); fiat_id_tc26_gost_3410_2012_512_paramSetC_selectznz(Q.Z, scalar[0] & 1, R.Z, Q.Z); /* move from Edwards projective to legacy projective */ point_edwards2legacy(&Q, &Q); /* convert to affine -- NB depends on coordinate system */ fiat_id_tc26_gost_3410_2012_512_paramSetC_inv(Q.Z, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->X, Q.X, Q.Z); fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(out->Y, Q.Y, Q.Z); } /*- * Wrapper: simultaneous scalar mutiplication. * outx, outy := a * G + b * P * where P = (inx, iny). * Everything is LE byte ordering. */ static void point_mul_two(unsigned char outx[64], unsigned char outy[64], const unsigned char a[64], const unsigned char b[64], const unsigned char inx[64], const unsigned char iny[64]) { pt_aff_t P; fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.X, inx); fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.Y, iny); /* simultaneous scalar multiplication */ var_smul_wnaf_two(&P, a, b, &P); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); } /*- * Wrapper: fixed scalar mutiplication. * outx, outy := scalar * G * Everything is LE byte ordering. */ static void point_mul_g(unsigned char outx[64], unsigned char outy[64], const unsigned char scalar[64]) { pt_aff_t P; /* fixed scmul function */ fixed_smul_cmb(&P, scalar); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); } /*- * Wrapper: variable point scalar mutiplication. * outx, outy := scalar * P * where P = (inx, iny). * Everything is LE byte ordering. */ static void point_mul(unsigned char outx[64], unsigned char outy[64], const unsigned char scalar[64], const unsigned char inx[64], const unsigned char iny[64]) { pt_aff_t P; fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.X, inx); fiat_id_tc26_gost_3410_2012_512_paramSetC_from_bytes(P.Y, iny); /* var scmul function */ var_smul_rwnaf(&P, scalar, &P); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outx, P.X); fiat_id_tc26_gost_3410_2012_512_paramSetC_to_bytes(outy, P.Y); } #include /* the zero field element */ static const unsigned char const_zb[64] = {0}; /*- * An OpenSSL wrapper for simultaneous scalar multiplication. * r := n * G + m * q */ int point_mul_two_id_tc26_gost_3410_2012_512_paramSetC( const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx) { int ret = 0; unsigned char b_x[64]; unsigned char b_y[64]; unsigned char b_n[64]; unsigned char b_m[64]; BIGNUM *x = NULL, *y = NULL; BN_CTX_start(ctx); x = BN_CTX_get(ctx); if ((y = BN_CTX_get(ctx)) == NULL /* pull out coords as bytes */ || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) || BN_bn2lebinpad(x, b_x, 64) != 64 || BN_bn2lebinpad(y, b_y, 64) != 64 || BN_bn2lebinpad(n, b_n, 64) != 64 || BN_bn2lebinpad(m, b_m, 64) != 64) goto err; /* do the simultaneous scalar multiplication */ point_mul_two(b_x, b_y, b_n, b_m, b_x, b_y); /* check for infinity */ if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && CRYPTO_memcmp(const_zb, b_y, 64) == 0) { if (!EC_POINT_set_to_infinity(group, r)) goto err; } else { /* otherwise, pack the bytes into the result */ if (BN_lebin2bn(b_x, 64, x) == NULL || BN_lebin2bn(b_y, 64, y) == NULL || !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) goto err; } ret = 1; err: BN_CTX_end(ctx); return ret; } /*- * An OpenSSL wrapper for variable point scalar multiplication. * r := m * q */ int point_mul_id_tc26_gost_3410_2012_512_paramSetC(const EC_GROUP *group, EC_POINT *r, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx) { int ret = 0; unsigned char b_x[64]; unsigned char b_y[64]; unsigned char b_m[64]; BIGNUM *x = NULL, *y = NULL; BN_CTX_start(ctx); x = BN_CTX_get(ctx); if ((y = BN_CTX_get(ctx)) == NULL /* pull out coords as bytes */ || !EC_POINT_get_affine_coordinates(group, q, x, y, ctx) || BN_bn2lebinpad(x, b_x, 64) != 64 || BN_bn2lebinpad(y, b_y, 64) != 64 || BN_bn2lebinpad(m, b_m, 64) != 64) goto err; /* do the variable scalar multiplication */ point_mul(b_x, b_y, b_m, b_x, b_y); /* check for infinity */ if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && CRYPTO_memcmp(const_zb, b_y, 64) == 0) { if (!EC_POINT_set_to_infinity(group, r)) goto err; } else { /* otherwise, pack the bytes into the result */ if (BN_lebin2bn(b_x, 64, x) == NULL || BN_lebin2bn(b_y, 64, y) == NULL || !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) goto err; } ret = 1; err: BN_CTX_end(ctx); return ret; } /*- * An OpenSSL wrapper for fixed scalar multiplication. * r := n * G */ int point_mul_g_id_tc26_gost_3410_2012_512_paramSetC(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, BN_CTX *ctx) { int ret = 0; unsigned char b_x[64]; unsigned char b_y[64]; unsigned char b_n[64]; BIGNUM *x = NULL, *y = NULL; BN_CTX_start(ctx); x = BN_CTX_get(ctx); if ((y = BN_CTX_get(ctx)) == NULL || BN_bn2lebinpad(n, b_n, 64) != 64) goto err; /* do the fixed scalar multiplication */ point_mul_g(b_x, b_y, b_n); /* check for infinity */ if (CRYPTO_memcmp(const_zb, b_x, 64) == 0 && CRYPTO_memcmp(const_zb, b_y, 64) == 0) { if (!EC_POINT_set_to_infinity(group, r)) goto err; } else { /* otherwise, pack the bytes into the result */ if (BN_lebin2bn(b_x, 64, x) == NULL || BN_lebin2bn(b_y, 64, y) == NULL || !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) goto err; } ret = 1; err: BN_CTX_end(ctx); return ret; } #endif /* __SIZEOF_INT128__ */