From: Billy Brumley Date: Fri, 3 Jul 2020 15:27:23 +0000 (+0300) Subject: GOST ECC optimizations (#263) X-Git-Tag: v3.0.0~87 X-Git-Url: http://wagner.pp.ru/gitweb/?a=commitdiff_plain;h=bc346202fbb3bc838a19af8c3b0e449926589c7b;p=openssl-gost%2Fengine.git GOST ECC optimizations (#263) Standalone EC implementations from ECCKiila. https://gitlab.com/nisec/ecckiila --- diff --git a/CMakeLists.txt b/CMakeLists.txt index cee4535..1dd02c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -136,6 +136,14 @@ set(GOST_CORE_SOURCE_FILES set(GOST_EC_SOURCE_FILES gost_ec_keyx.c gost_ec_sign.c + ecp_id_GostR3410_2001_CryptoPro_A_ParamSet.c + ecp_id_GostR3410_2001_CryptoPro_B_ParamSet.c + ecp_id_GostR3410_2001_CryptoPro_C_ParamSet.c + ecp_id_GostR3410_2001_TestParamSet.c + ecp_id_tc26_gost_3410_2012_256_paramSetA.c + ecp_id_tc26_gost_3410_2012_512_paramSetA.c + ecp_id_tc26_gost_3410_2012_512_paramSetB.c + ecp_id_tc26_gost_3410_2012_512_paramSetC.c ) set (GOST_OMAC_SOURCE_FILES diff --git a/ecp_id_GostR3410_2001_CryptoPro_A_ParamSet.c b/ecp_id_GostR3410_2001_CryptoPro_A_ParamSet.c new file mode 100644 index 0000000..e9389e6 --- /dev/null +++ b/ecp_id_GostR3410_2001_CryptoPro_A_ParamSet.c @@ -0,0 +1,8532 @@ +/* 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 5 +/* Field elements */ +typedef uint64_t fe_t[LIMB_CNT]; +typedef uint64_t limb_t; + +#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_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(c, a, b) \ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_add(c, a, b); \ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry(c, c) +#define fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(c, a, b) \ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_sub(c, a, b); \ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry(c, c) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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 id_GostR3410_2001_CryptoPro_A_ParamSet 64 5 '2^256 - 617' */ +/* curve description: id_GostR3410_2001_CryptoPro_A_ParamSet */ +/* machine_wordsize = 64 (from "64") */ +/* requested operations: (all) */ +/* n = 5 (from "5") */ +/* s-c = 2^256 - [(1, 617)] (from "2^256 - 617") */ +/* tight_bounds_multiplier = 1.1 (from "") */ +/* */ +/* Computed values: */ +/* carry_chain = [0, 1, 2, 3, 4, 0, 1] */ +/* eval z = z[0] + (z[1] << 52) + (z[2] << 103) + (z[3] << 154) + (z[4] << 205) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1; +typedef signed char fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1; +typedef signed __int128 fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int128; +typedef unsigned __int128 fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u52( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + uint64_t x1; + uint64_t x2; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT64_C(0xfffffffffffff)); + x3 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x1 >> 52); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u52( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + int64_t x1; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1 x2; + uint64_t x3; + x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); + x2 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1)(x1 >> 52); + x3 = (x1 & UINT64_C(0xfffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u51( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + uint64_t x1; + uint64_t x2; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT64_C(0x7ffffffffffff)); + x3 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x1 >> 51); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u51( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + int64_t x1; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1 x2; + uint64_t x3; + x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); + x2 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1)(x1 >> 51); + x3 = (x1 & UINT64_C(0x7ffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u64( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, + uint64_t arg2, uint64_t arg3) { + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x1; + uint64_t x2; + uint64_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1)(0x0 - x1) & + UINT64_C(0xffffffffffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * arg2: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul( + uint64_t out1[5], const uint64_t arg1[5], const uint64_t arg2[5]) { + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x1; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x2; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x3; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x4; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x5; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x6; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x7; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x8; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x9; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x10; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x11; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x12; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x13; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x14; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x15; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x16; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x17; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x18; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x19; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x20; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x21; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x22; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x23; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x24; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x25; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x26; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x27; + uint64_t x28; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x29; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x30; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x31; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x32; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x33; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x34; + uint64_t x35; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x36; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x37; + uint64_t x38; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x39; + uint64_t x40; + uint64_t x41; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x42; + uint64_t x43; + uint64_t x44; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x45; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x46; + uint64_t x47; + uint64_t x48; + uint64_t x49; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x50; + uint64_t x51; + uint64_t x52; + x1 = (UINT16_C(0x269) * + ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[4]) * + (arg2[4]))); + x2 = (UINT16_C(0x269) * + ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[4]) * + (arg2[3]))); + x3 = (UINT16_C(0x269) * + ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[4]) * + (arg2[2]))); + x4 = (UINT16_C(0x269) * + (((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[4]) * + (arg2[1])) * + 0x2)); + x5 = (UINT16_C(0x269) * + ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[3]) * + (arg2[4]))); + x6 = (UINT16_C(0x269) * + ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[3]) * + (arg2[3]))); + x7 = (UINT16_C(0x269) * + (((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[3]) * + (arg2[2])) * + 0x2)); + x8 = (UINT16_C(0x269) * + ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[2]) * + (arg2[4]))); + x9 = (UINT16_C(0x269) * + (((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[2]) * + (arg2[3])) * + 0x2)); + x10 = (UINT16_C(0x269) * + (((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[1]) * + (arg2[4])) * + 0x2)); + x11 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[4]) * + (arg2[0])); + x12 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[3]) * + ((arg2[1]) * 0x2)); + x13 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[3]) * + (arg2[0])); + x14 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[2]) * + ((arg2[2]) * 0x2)); + x15 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[2]) * + ((arg2[1]) * 0x2)); + x16 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[2]) * + (arg2[0])); + x17 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[1]) * + ((arg2[3]) * 0x2)); + x18 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[1]) * + ((arg2[2]) * 0x2)); + x19 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[1]) * + ((arg2[1]) * 0x2)); + x20 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[1]) * + (arg2[0])); + x21 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[0]) * + (arg2[4])); + x22 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[0]) * + (arg2[3])); + x23 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[0]) * + (arg2[2])); + x24 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[0]) * + (arg2[1])); + x25 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[0]) * + (arg2[0])); + x26 = (x25 + (x10 + (x9 + (x7 + x4)))); + x27 = (x26 >> 52); + x28 = (uint64_t)(x26 & UINT64_C(0xfffffffffffff)); + x29 = (x21 + (x17 + (x14 + (x12 + x11)))); + x30 = (x22 + (x18 + (x15 + (x13 + x1)))); + x31 = (x23 + (x19 + (x16 + (x5 + x2)))); + x32 = (x24 + (x20 + (x8 + (x6 + x3)))); + x33 = (x27 + x32); + x34 = (x33 >> 51); + x35 = (uint64_t)(x33 & UINT64_C(0x7ffffffffffff)); + x36 = (x34 + x31); + x37 = (x36 >> 51); + x38 = (uint64_t)(x36 & UINT64_C(0x7ffffffffffff)); + x39 = (x37 + x30); + x40 = (uint64_t)(x39 >> 51); + x41 = (uint64_t)(x39 & UINT64_C(0x7ffffffffffff)); + x42 = (x40 + x29); + x43 = (uint64_t)(x42 >> 51); + x44 = (uint64_t)(x42 & UINT64_C(0x7ffffffffffff)); + x45 = + ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)UINT16_C(0x269) * + x43); + x46 = (x28 + x45); + x47 = (uint64_t)(x46 >> 52); + x48 = (uint64_t)(x46 & UINT64_C(0xfffffffffffff)); + x49 = (x47 + x35); + x50 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x49 >> 51); + x51 = (x49 & UINT64_C(0x7ffffffffffff)); + x52 = (x50 + x38); + out1[0] = x48; + out1[1] = x51; + out1[2] = x52; + out1[3] = x41; + out1[4] = x44; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square( + uint64_t out1[5], const uint64_t arg1[5]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x9; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x10; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x11; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x12; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x13; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x14; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x15; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x16; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x17; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x18; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x19; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x20; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x21; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x22; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x23; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x24; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x25; + uint64_t x26; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x27; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x28; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x29; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x30; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x31; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x32; + uint64_t x33; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x34; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x35; + uint64_t x36; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x37; + uint64_t x38; + uint64_t x39; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x40; + uint64_t x41; + uint64_t x42; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x43; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128 x44; + uint64_t x45; + uint64_t x46; + uint64_t x47; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x48; + uint64_t x49; + uint64_t x50; + x1 = ((arg1[4]) * UINT16_C(0x269)); + x2 = (x1 * 0x2); + x3 = ((arg1[4]) * 0x2); + x4 = ((arg1[3]) * UINT16_C(0x269)); + x5 = (x4 * 0x2); + x6 = ((arg1[3]) * 0x2); + x7 = ((arg1[2]) * 0x2); + x8 = ((arg1[1]) * 0x2); + x9 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[4]) * x1); + x10 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[3]) * x2); + x11 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[3]) * x4); + x12 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[2]) * x2); + x13 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[2]) * + (x5 * 0x2)); + x14 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[2]) * + ((arg1[2]) * 0x2)); + x15 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[1]) * + (x2 * 0x2)); + x16 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[1]) * + (x6 * 0x2)); + x17 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[1]) * + (x7 * 0x2)); + x18 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[1]) * + ((arg1[1]) * 0x2)); + x19 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[0]) * x3); + x20 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[0]) * x6); + x21 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[0]) * x7); + x22 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[0]) * x8); + x23 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)(arg1[0]) * + (arg1[0])); + x24 = (x23 + (x15 + x13)); + x25 = (x24 >> 52); + x26 = (uint64_t)(x24 & UINT64_C(0xfffffffffffff)); + x27 = (x19 + (x16 + x14)); + x28 = (x20 + (x17 + x9)); + x29 = (x21 + (x18 + x10)); + x30 = (x22 + (x12 + x11)); + x31 = (x25 + x30); + x32 = (x31 >> 51); + x33 = (uint64_t)(x31 & UINT64_C(0x7ffffffffffff)); + x34 = (x32 + x29); + x35 = (x34 >> 51); + x36 = (uint64_t)(x34 & UINT64_C(0x7ffffffffffff)); + x37 = (x35 + x28); + x38 = (uint64_t)(x37 >> 51); + x39 = (uint64_t)(x37 & UINT64_C(0x7ffffffffffff)); + x40 = (x38 + x27); + x41 = (uint64_t)(x40 >> 51); + x42 = (uint64_t)(x40 & UINT64_C(0x7ffffffffffff)); + x43 = + ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint128)UINT16_C(0x269) * + x41); + x44 = (x26 + x43); + x45 = (uint64_t)(x44 >> 52); + x46 = (uint64_t)(x44 & UINT64_C(0xfffffffffffff)); + x47 = (x45 + x33); + x48 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x47 >> 51); + x49 = (x47 & UINT64_C(0x7ffffffffffff)); + x50 = (x48 + x36); + out1[0] = x46; + out1[1] = x49; + out1[2] = x50; + out1[3] = x39; + out1[4] = x42; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry reduces a field element. + * Postconditions: + * eval out1 mod m = eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry( + uint64_t out1[5], const uint64_t arg1[5]) { + 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; + x1 = (arg1[0]); + x2 = ((x1 >> 52) + (arg1[1])); + x3 = ((x2 >> 51) + (arg1[2])); + x4 = ((x3 >> 51) + (arg1[3])); + x5 = ((x4 >> 51) + (arg1[4])); + x6 = ((x1 & UINT64_C(0xfffffffffffff)) + (UINT16_C(0x269) * (x5 >> 51))); + x7 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x6 >> 52) + + (x2 & UINT64_C(0x7ffffffffffff))); + x8 = (x6 & UINT64_C(0xfffffffffffff)); + x9 = (x7 & UINT64_C(0x7ffffffffffff)); + x10 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x7 >> 51) + + (x3 & UINT64_C(0x7ffffffffffff))); + x11 = (x4 & UINT64_C(0x7ffffffffffff)); + x12 = (x5 & UINT64_C(0x7ffffffffffff)); + out1[0] = x8; + out1[1] = x9; + out1[2] = x10; + out1[3] = x11; + out1[4] = x12; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_add adds two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 + eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * arg2: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_add( + uint64_t out1[5], const uint64_t arg1[5], const uint64_t arg2[5]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + 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])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_sub subtracts two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 - eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * arg2: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_sub( + uint64_t out1[5], const uint64_t arg1[5], const uint64_t arg2[5]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + x1 = ((UINT64_C(0x1ffffffffffb2e) + (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])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp negates a field element. + * Postconditions: + * eval out1 mod m = -eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp( + uint64_t out1[5], const uint64_t arg1[5]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + x1 = (UINT64_C(0x1ffffffffffb2e) - (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])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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]] + * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + uint64_t out1[5], fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, + const uint64_t arg2[5], const uint64_t arg3[5]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u64( + &x1, arg1, (arg2[0]), (arg3[0])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u64( + &x2, arg1, (arg2[1]), (arg3[1])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u64( + &x3, arg1, (arg2[2]), (arg3[2])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u64( + &x4, arg1, (arg2[3]), (arg3[3])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u64( + &x5, arg1, (arg2[4]), (arg3[4])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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..31] + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * 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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes( + uint8_t out1[32], const uint64_t arg1[5]) { + uint64_t x1; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x2; + uint64_t x3; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x4; + uint64_t x5; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x6; + uint64_t x7; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x8; + uint64_t x9; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x10; + uint64_t x11; + uint64_t x12; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x13; + uint64_t x14; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x15; + uint64_t x16; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x17; + uint64_t x18; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x19; + uint64_t x20; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x21; + uint64_t x22; + uint64_t x23; + uint64_t x24; + uint64_t x25; + uint64_t x26; + uint8_t x27; + uint64_t x28; + uint8_t x29; + uint64_t x30; + uint8_t x31; + uint64_t x32; + uint8_t x33; + uint64_t x34; + uint8_t x35; + uint8_t x36; + uint8_t x37; + uint64_t x38; + uint64_t x39; + uint8_t x40; + uint64_t x41; + uint8_t x42; + uint64_t x43; + uint8_t x44; + uint64_t x45; + uint8_t x46; + uint64_t x47; + uint8_t x48; + uint8_t x49; + uint8_t x50; + uint64_t x51; + uint64_t x52; + uint8_t x53; + uint64_t x54; + uint8_t x55; + uint64_t x56; + uint8_t x57; + uint64_t x58; + uint8_t x59; + uint64_t x60; + uint8_t x61; + uint64_t x62; + uint8_t x63; + uint8_t x64; + uint8_t x65; + uint64_t x66; + uint64_t x67; + uint8_t x68; + uint64_t x69; + uint8_t x70; + uint64_t x71; + uint8_t x72; + uint64_t x73; + uint8_t x74; + uint64_t x75; + uint8_t x76; + uint8_t x77; + uint8_t x78; + uint64_t x79; + uint64_t x80; + uint8_t x81; + uint64_t x82; + uint8_t x83; + uint64_t x84; + uint8_t x85; + uint64_t x86; + uint8_t x87; + uint64_t x88; + uint8_t x89; + uint8_t x90; + uint8_t x91; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u52( + &x1, &x2, 0x0, (arg1[0]), UINT64_C(0xffffffffffd97)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u51( + &x3, &x4, x2, (arg1[1]), UINT64_C(0x7ffffffffffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u51( + &x5, &x6, x4, (arg1[2]), UINT64_C(0x7ffffffffffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u51( + &x7, &x8, x6, (arg1[3]), UINT64_C(0x7ffffffffffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u51( + &x9, &x10, x8, (arg1[4]), UINT64_C(0x7ffffffffffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u64( + &x11, x10, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u52( + &x12, &x13, 0x0, x1, (x11 & UINT64_C(0xffffffffffd97))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u51( + &x14, &x15, x13, x3, (x11 & UINT64_C(0x7ffffffffffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u51( + &x16, &x17, x15, x5, (x11 & UINT64_C(0x7ffffffffffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u51( + &x18, &x19, x17, x7, (x11 & UINT64_C(0x7ffffffffffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u51( + &x20, &x21, x19, x9, (x11 & UINT64_C(0x7ffffffffffff))); + x22 = (x20 << 5); + x23 = (x18 << 2); + x24 = (x16 << 7); + x25 = (x14 << 4); + x26 = (x12 >> 8); + x27 = (uint8_t)(x12 & UINT8_C(0xff)); + x28 = (x26 >> 8); + x29 = (uint8_t)(x26 & UINT8_C(0xff)); + x30 = (x28 >> 8); + x31 = (uint8_t)(x28 & UINT8_C(0xff)); + x32 = (x30 >> 8); + x33 = (uint8_t)(x30 & UINT8_C(0xff)); + x34 = (x32 >> 8); + x35 = (uint8_t)(x32 & UINT8_C(0xff)); + x36 = (uint8_t)(x34 >> 8); + x37 = (uint8_t)(x34 & UINT8_C(0xff)); + x38 = (x36 + x25); + x39 = (x38 >> 8); + x40 = (uint8_t)(x38 & UINT8_C(0xff)); + x41 = (x39 >> 8); + x42 = (uint8_t)(x39 & UINT8_C(0xff)); + x43 = (x41 >> 8); + x44 = (uint8_t)(x41 & UINT8_C(0xff)); + x45 = (x43 >> 8); + x46 = (uint8_t)(x43 & UINT8_C(0xff)); + x47 = (x45 >> 8); + x48 = (uint8_t)(x45 & UINT8_C(0xff)); + x49 = (uint8_t)(x47 >> 8); + x50 = (uint8_t)(x47 & UINT8_C(0xff)); + x51 = (x49 + x24); + x52 = (x51 >> 8); + x53 = (uint8_t)(x51 & UINT8_C(0xff)); + x54 = (x52 >> 8); + x55 = (uint8_t)(x52 & UINT8_C(0xff)); + x56 = (x54 >> 8); + x57 = (uint8_t)(x54 & UINT8_C(0xff)); + x58 = (x56 >> 8); + x59 = (uint8_t)(x56 & UINT8_C(0xff)); + x60 = (x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + x64 = (uint8_t)(x62 >> 8); + x65 = (uint8_t)(x62 & UINT8_C(0xff)); + x66 = (x64 + x23); + x67 = (x66 >> 8); + x68 = (uint8_t)(x66 & UINT8_C(0xff)); + x69 = (x67 >> 8); + x70 = (uint8_t)(x67 & UINT8_C(0xff)); + x71 = (x69 >> 8); + x72 = (uint8_t)(x69 & UINT8_C(0xff)); + x73 = (x71 >> 8); + x74 = (uint8_t)(x71 & UINT8_C(0xff)); + x75 = (x73 >> 8); + x76 = (uint8_t)(x73 & UINT8_C(0xff)); + x77 = (uint8_t)(x75 >> 8); + x78 = (uint8_t)(x75 & UINT8_C(0xff)); + x79 = (x77 + x22); + x80 = (x79 >> 8); + x81 = (uint8_t)(x79 & UINT8_C(0xff)); + x82 = (x80 >> 8); + x83 = (uint8_t)(x80 & UINT8_C(0xff)); + x84 = (x82 >> 8); + x85 = (uint8_t)(x82 & UINT8_C(0xff)); + x86 = (x84 >> 8); + x87 = (uint8_t)(x84 & UINT8_C(0xff)); + x88 = (x86 >> 8); + x89 = (uint8_t)(x86 & UINT8_C(0xff)); + x90 = (uint8_t)(x88 >> 8); + x91 = (uint8_t)(x88 & UINT8_C(0xff)); + out1[0] = x27; + out1[1] = x29; + out1[2] = x31; + out1[3] = x33; + out1[4] = x35; + out1[5] = x37; + out1[6] = x40; + out1[7] = x42; + out1[8] = x44; + out1[9] = x46; + out1[10] = x48; + out1[11] = x50; + out1[12] = x53; + out1[13] = x55; + out1[14] = x57; + out1[15] = x59; + out1[16] = x61; + out1[17] = x63; + out1[18] = x65; + out1[19] = x68; + out1[20] = x70; + out1[21] = x72; + out1[22] = x74; + out1[23] = x76; + out1[24] = x78; + out1[25] = x81; + out1[26] = x83; + out1[27] = x85; + out1[28] = x87; + out1[29] = x89; + out1[30] = x91; + out1[31] = x90; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_from_bytes( + uint64_t out1[5], const uint8_t arg1[32]) { + 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; + uint8_t x34; + uint64_t x35; + uint64_t x36; + uint64_t x37; + uint64_t x38; + uint64_t x39; + uint64_t x40; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x41; + uint64_t x42; + uint64_t x43; + uint8_t x44; + uint64_t x45; + uint64_t x46; + uint8_t x47; + uint64_t x48; + uint64_t x49; + x1 = ((uint64_t)(arg1[31]) << 43); + x2 = ((uint64_t)(arg1[30]) << 35); + x3 = ((uint64_t)(arg1[29]) << 27); + x4 = ((uint64_t)(arg1[28]) << 19); + x5 = ((uint64_t)(arg1[27]) << 11); + x6 = ((uint64_t)(arg1[26]) << 3); + x7 = ((uint64_t)(arg1[25]) << 46); + x8 = ((uint64_t)(arg1[24]) << 38); + x9 = ((uint64_t)(arg1[23]) << 30); + x10 = ((uint64_t)(arg1[22]) << 22); + x11 = ((uint64_t)(arg1[21]) << 14); + x12 = ((uint64_t)(arg1[20]) << 6); + x13 = ((uint64_t)(arg1[19]) << 49); + x14 = ((uint64_t)(arg1[18]) << 41); + x15 = ((uint64_t)(arg1[17]) << 33); + x16 = ((uint64_t)(arg1[16]) << 25); + x17 = ((uint64_t)(arg1[15]) << 17); + x18 = ((uint64_t)(arg1[14]) << 9); + x19 = ((uint64_t)(arg1[13]) * 0x2); + x20 = ((uint64_t)(arg1[12]) << 44); + x21 = ((uint64_t)(arg1[11]) << 36); + x22 = ((uint64_t)(arg1[10]) << 28); + x23 = ((uint64_t)(arg1[9]) << 20); + x24 = ((uint64_t)(arg1[8]) << 12); + x25 = ((uint64_t)(arg1[7]) << 4); + x26 = ((uint64_t)(arg1[6]) << 48); + x27 = ((uint64_t)(arg1[5]) << 40); + x28 = ((uint64_t)(arg1[4]) << 32); + x29 = ((uint64_t)(arg1[3]) << 24); + x30 = ((uint64_t)(arg1[2]) << 16); + x31 = ((uint64_t)(arg1[1]) << 8); + x32 = (arg1[0]); + x33 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + x26)))))); + x34 = (uint8_t)(x33 >> 52); + x35 = (x33 & UINT64_C(0xfffffffffffff)); + x36 = (x6 + (x5 + (x4 + (x3 + (x2 + x1))))); + x37 = (x12 + (x11 + (x10 + (x9 + (x8 + x7))))); + x38 = (x19 + (x18 + (x17 + (x16 + (x15 + (x14 + x13)))))); + x39 = (x25 + (x24 + (x23 + (x22 + (x21 + x20))))); + x40 = (x34 + x39); + x41 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x40 >> 51); + x42 = (x40 & UINT64_C(0x7ffffffffffff)); + x43 = (x41 + x38); + x44 = (uint8_t)(x43 >> 51); + x45 = (x43 & UINT64_C(0x7ffffffffffff)); + x46 = (x44 + x37); + x47 = (uint8_t)(x46 >> 51); + x48 = (x46 & UINT64_C(0x7ffffffffffff)); + x49 = (x47 + x36); + out1[0] = x35; + out1[1] = x42; + out1[2] = x45; + out1[3] = x48; + out1[4] = x49; +} + +/* 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_GostR3410_2001_CryptoPro_A_ParamSet/fe_inv.op3 + * custom repunit addition chain + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t16, t164, t2, t246, t32, t4, t64, t8, t80, t82; + + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t2, acc, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t4, acc, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t4); + for (i = 0; i < 3; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t8, acc, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t8); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t16, acc, t8); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t16); + for (i = 0; i < 15; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t32, acc, t16); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t32); + for (i = 0; i < 31; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t64, acc, t32); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t64); + for (i = 0; i < 15; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t80, acc, t16); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t80); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t82, acc, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t82); + for (i = 0; i < 81; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t164, acc, t82); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t164); + for (i = 0; i < 81; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t246, acc, t82); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t246); + for (i = 0; i < 2; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(acc, acc, t2); + for (i = 0; i < 3; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(output, acc, t1); +} + +/* curve coefficient constants */ + +static const limb_t const_one[5] = { + UINT64_C(0x0000000000000001), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000)}; + +static const limb_t const_b[5] = { + UINT64_C(0x00000000000000A6), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[19][16] = { + { + {{UINT64_C(0x0000000000000001), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000)}, + {UINT64_C(0x000CC99C9E9F1E14), UINT64_C(0x0002DDF23E3B122A), + UINT64_C(0x00027E56EC6A529E), UINT64_C(0x00073689F7D41691), + UINT64_C(0x00046C8F238F04C4)}}, + {{UINT64_C(0x0008E38E38E38D2C), UINT64_C(0x00038E38E38E38E3), + UINT64_C(0x000471C71C71C71C), UINT64_C(0x00038E38E38E38E3), + UINT64_C(0x000471C71C71C71C)}, + {UINT64_C(0x000117796B788A51), UINT64_C(0x0004C838768E8486), + UINT64_C(0x00074D9B0424CF52), UINT64_C(0x00041075366EBD41), + UINT64_C(0x0003B5E68E54D11D)}}, + {{UINT64_C(0x00001C387172C029), UINT64_C(0x0004279B488F6F02), + UINT64_C(0x0004F05E34B15AD6), UINT64_C(0x000258F0DA65A32D), + UINT64_C(0x000483B001F0C3C7)}, + {UINT64_C(0x0004823B068D7CC0), UINT64_C(0x0000C7FD37B58763), + UINT64_C(0x00067ED904B1D771), UINT64_C(0x0001D38686A8A56B), + UINT64_C(0x000484B93D728EA1)}}, + {{UINT64_C(0x0008EA01E4196EE1), UINT64_C(0x00034905BF5B297A), + UINT64_C(0x0007447C611BEF5E), UINT64_C(0x00001829AE7D7ADB), + UINT64_C(0x00017EEC8CA66B06)}, + {UINT64_C(0x0000C10C4D0125FB), UINT64_C(0x000020A9F3F3A624), + UINT64_C(0x00027103CEF472D6), UINT64_C(0x0000B8216E293D29), + UINT64_C(0x0000E3FA5A98C242)}}, + {{UINT64_C(0x0007A462275ECDA3), UINT64_C(0x00018C170DFCB702), + UINT64_C(0x000241E756E56216), UINT64_C(0x000771F4F24A295D), + UINT64_C(0x0005B7CB06F71A0F)}, + {UINT64_C(0x000328AD395ED26A), UINT64_C(0x0001CAF70A8E7168), + UINT64_C(0x0000FF8BE664695F), UINT64_C(0x0007E4184137AE67), + UINT64_C(0x00069DFB4A32D69E)}}, + {{UINT64_C(0x00022F3D1A834086), UINT64_C(0x00041ECA3623B485), + UINT64_C(0x000674297E63115C), UINT64_C(0x000406C9C5D3F28F), + UINT64_C(0x00031EE39C279CEE)}, + {UINT64_C(0x00053F08BBC2FF84), UINT64_C(0x000468767960B588), + UINT64_C(0x000495E5AD5F0D51), UINT64_C(0x0007102439DB689C), + UINT64_C(0x00064070B2980D03)}}, + {{UINT64_C(0x00062E8F3CBBCCCD), UINT64_C(0x0004BFF4EEFAA5B5), + UINT64_C(0x0006C21A84538998), UINT64_C(0x0007A46150B4D83D), + UINT64_C(0x00028C30C35CB4DC)}, + {UINT64_C(0x0009EBBD29C26CB2), UINT64_C(0x0007BAF9C97927A1), + UINT64_C(0x0000F1391B4F0F65), UINT64_C(0x0001A44160EE4057), + UINT64_C(0x0001EADEA8B087CC)}}, + {{UINT64_C(0x000BD2800F7C58E2), UINT64_C(0x0006AA0FC8C17CF8), + UINT64_C(0x00012B72E124E103), UINT64_C(0x0007A22A20C37ACD), + UINT64_C(0x00051583FBF07955)}, + {UINT64_C(0x000A705E55B12811), UINT64_C(0x00077F24806A4501), + UINT64_C(0x00016CDB1FF83072), UINT64_C(0x0001FE2D523F7B40), + UINT64_C(0x00002B561CD86E47)}}, + {{UINT64_C(0x000DD0548C39A634), UINT64_C(0x0007E5C8D222E7F3), + UINT64_C(0x00077AFB529FB66D), UINT64_C(0x0007FE6BB0F0E041), + UINT64_C(0x0001D44AD8E8E1BB)}, + {UINT64_C(0x000800FACA51071C), UINT64_C(0x0001B75CB6825594), + UINT64_C(0x000524055248074A), UINT64_C(0x0001FEC05998A037), + UINT64_C(0x000418509ED45EDE)}}, + {{UINT64_C(0x0004116786EF5595), UINT64_C(0x0002FDC9F0A70AF6), + UINT64_C(0x0001393C9E2010EB), UINT64_C(0x000159CE63616097), + UINT64_C(0x0002C31D8791CB8B)}, + {UINT64_C(0x0008485469328440), UINT64_C(0x00010DBB94FF5733), + UINT64_C(0x000187E16B5054CE), UINT64_C(0x0007A1C20E552236), + UINT64_C(0x00074B00D96EDD39)}}, + {{UINT64_C(0x00021E11C9041497), UINT64_C(0x000484A9E464D228), + UINT64_C(0x00038D73E99FC3A5), UINT64_C(0x00037B99E592B813), + UINT64_C(0x0005F3E5DF4C9D8E)}, + {UINT64_C(0x000369BDE19C53EC), UINT64_C(0x0006C90BB44FF031), + UINT64_C(0x0002730C7A423157), UINT64_C(0x0004733CD7C2CEF1), + UINT64_C(0x00001779F421C860)}}, + {{UINT64_C(0x0006444B2FC84A66), UINT64_C(0x00045CDBBBD00846), + UINT64_C(0x0003B7859658B40F), UINT64_C(0x0006F9C075FA8F30), + UINT64_C(0x0004C55A76F5ABEE)}, + {UINT64_C(0x0009AE065EC53CD0), UINT64_C(0x00026684080415BE), + UINT64_C(0x0005AA8D964E4BA5), UINT64_C(0x000230B8100D807C), + UINT64_C(0x000415674003896E)}}, + {{UINT64_C(0x000F7D10028B07C5), UINT64_C(0x0001CCB108309571), + UINT64_C(0x00058D8CE498E384), UINT64_C(0x00054AA65A376DB0), + UINT64_C(0x00007F4C660D79DC)}, + {UINT64_C(0x000FF278A9B6438D), UINT64_C(0x0004E340FE2BB231), + UINT64_C(0x000699E71D615994), UINT64_C(0x000655479DBE2221), + UINT64_C(0x0005C130AB3BD570)}}, + {{UINT64_C(0x000C6388B4B53E9C), UINT64_C(0x0000402286282147), + UINT64_C(0x0002516CD8798759), UINT64_C(0x0007B179435AC419), + UINT64_C(0x00018CEE31A89C76)}, + {UINT64_C(0x0000AB9AD0EC3379), UINT64_C(0x00065281151DE966), + UINT64_C(0x00071CA903B27001), UINT64_C(0x0000E28FBCB94233), + UINT64_C(0x00060976D76A3184)}}, + {{UINT64_C(0x0006D77EB1685C39), UINT64_C(0x0003CF8EE0115505), + UINT64_C(0x00078D2B24AB1841), UINT64_C(0x00061B46CB0C6A81), + UINT64_C(0x0002AF8490D4D499)}, + {UINT64_C(0x00056E3A3305760A), UINT64_C(0x00043B60E22B14EE), + UINT64_C(0x000020C4845CFE0F), UINT64_C(0x0003D68AC0F06CA8), + UINT64_C(0x000722A37E92E49C)}}, + {{UINT64_C(0x000A5F6FECDB7020), UINT64_C(0x00042B43E7540E44), + UINT64_C(0x0002BD2B2059E2FE), UINT64_C(0x000631E18BEC8A26), + UINT64_C(0x000580E22EFE7168)}, + {UINT64_C(0x0003035DF13C5516), UINT64_C(0x000682989776C95E), + UINT64_C(0x000049780CDE914A), UINT64_C(0x000182478A356286), + UINT64_C(0x0002945A3EE07E65)}}, + }, + { + {{UINT64_C(0x0005A339F915A14B), UINT64_C(0x000715D733BA9825), + UINT64_C(0x00023A52A2A78CA6), UINT64_C(0x0005B164EB92A51B), + UINT64_C(0x00045D9A30B0E65F)}, + {UINT64_C(0x000ADD23F0E6BE0F), UINT64_C(0x0004271FA00AECFF), + UINT64_C(0x0006F2881FB40864), UINT64_C(0x00034A01B35FC99B), + UINT64_C(0x00058D1D8F643FFF)}}, + {{UINT64_C(0x000A0A4C877DD1B7), UINT64_C(0x00002B58C866A837), + UINT64_C(0x0004B11FDE6972BD), UINT64_C(0x000525D5FEF644F2), + UINT64_C(0x00028801D60D33EB)}, + {UINT64_C(0x000B74AA40171DE8), UINT64_C(0x0001482D80E7BB1C), + UINT64_C(0x0006C7B54BF123BD), UINT64_C(0x00044EE83E8AAB32), + UINT64_C(0x0001F0E12809FA9D)}}, + {{UINT64_C(0x00066A9CFB2131C9), UINT64_C(0x0001579B4E7D1E27), + UINT64_C(0x0004032CBC5CCC2F), UINT64_C(0x000212394FCE5D79), + UINT64_C(0x0002B5D4452CFFBB)}, + {UINT64_C(0x0006A4C542C01BA9), UINT64_C(0x00025184A46BB2DA), + UINT64_C(0x00005344AC81105B), UINT64_C(0x0000FA6310182DB0), + UINT64_C(0x00005AC302692942)}}, + {{UINT64_C(0x00019D20E0248E22), UINT64_C(0x0005CA354C3BCB85), + UINT64_C(0x0002894DADACB4EC), UINT64_C(0x000276F52507A08E), + UINT64_C(0x00061243F4DB4E50)}, + {UINT64_C(0x000FDF4AF08FAB34), UINT64_C(0x0004350560FCCBAC), + UINT64_C(0x0005B2D27BD7791E), UINT64_C(0x00038BE1B282CEDF), + UINT64_C(0x000645850A8CE169)}}, + {{UINT64_C(0x000568A7C178486C), UINT64_C(0x0001F2D08012728C), + UINT64_C(0x0000402DE36CAB91), UINT64_C(0x000709B6DD2BAFBB), + UINT64_C(0x00068F1171227D8D)}, + {UINT64_C(0x00068279A889EA5B), UINT64_C(0x0006E2F73FBCFF46), + UINT64_C(0x0006DA5825DC94E7), UINT64_C(0x000250F1787A7A74), + UINT64_C(0x0000104623421C27)}}, + {{UINT64_C(0x000B4A1DF4B52308), UINT64_C(0x00037F70383BCE58), + UINT64_C(0x0005B4B440F91C99), UINT64_C(0x0004DFE0E63344A6), + UINT64_C(0x0003F78ADB1149D0)}, + {UINT64_C(0x0005EE5A5CF1B775), UINT64_C(0x0006E82328650CFE), + UINT64_C(0x00053DBD7CEC0ECD), UINT64_C(0x0006AD64013C83E3), + UINT64_C(0x0003BAECE58084AC)}}, + {{UINT64_C(0x0003535E55FD3BB1), UINT64_C(0x00021AA38BD04D1A), + UINT64_C(0x00030BBC74A0B7B2), UINT64_C(0x0000D651469A30EA), + UINT64_C(0x0002BEEBF0135D98)}, + {UINT64_C(0x000BE47EA63780DD), UINT64_C(0x0007996630E63D8F), + UINT64_C(0x0003D71B02D21DFE), UINT64_C(0x00072EE70BB7F048), + UINT64_C(0x00003A0C52A51F7B)}}, + {{UINT64_C(0x000E522DB194B350), UINT64_C(0x0001362A59882C6C), + UINT64_C(0x0005B09E052C570C), UINT64_C(0x0002D26AB280800D), + UINT64_C(0x0001E221931BDDDC)}, + {UINT64_C(0x0004772E6A06F259), UINT64_C(0x0007D07B179D230C), + UINT64_C(0x00071E03FC15549C), UINT64_C(0x0004F77A7EDB5E65), + UINT64_C(0x000510C0C34DF5E2)}}, + {{UINT64_C(0x0004F224FF48904F), UINT64_C(0x00048434D5472DD5), + UINT64_C(0x0004EDEE682D26D3), UINT64_C(0x000209BB373C40AF), + UINT64_C(0x00024DAA1D2897A9)}, + {UINT64_C(0x00021D4977542F7C), UINT64_C(0x00074599CAF0ABB5), + UINT64_C(0x00058BE88021C3ED), UINT64_C(0x0004208DC3B55B12), + UINT64_C(0x00052C47E8541E68)}}, + {{UINT64_C(0x00040C5256AA4EC9), UINT64_C(0x000415F8F060E908), + UINT64_C(0x0002805A8B76EBE6), UINT64_C(0x0001873A8DE991C3), + UINT64_C(0x000386C4A0579BDC)}, + {UINT64_C(0x00017774AE596D94), UINT64_C(0x00076ED22CE59EC5), + UINT64_C(0x00035ED29CE7AADA), UINT64_C(0x0006B0362F90D780), + UINT64_C(0x0002F704527505EC)}}, + {{UINT64_C(0x000FCF13CEEA0CB5), UINT64_C(0x00018312ABDF7C32), + UINT64_C(0x0000757802E622B3), UINT64_C(0x000490DC4FAFA5E7), + UINT64_C(0x0002F574211FD5E9)}, + {UINT64_C(0x000FE0FD3DB8102B), UINT64_C(0x000250E79DF56839), + UINT64_C(0x000279E546ADD6E1), UINT64_C(0x000145A2755E6C50), + UINT64_C(0x0001190CE5089C0D)}}, + {{UINT64_C(0x000E3D775DED50BF), UINT64_C(0x0002D12CB77299E9), + UINT64_C(0x0000BB582E43FB17), UINT64_C(0x00000C592B860CC1), + UINT64_C(0x0006580719B67251)}, + {UINT64_C(0x0000FAE99B30AE7B), UINT64_C(0x00040F36F14B66A3), + UINT64_C(0x0001B1A66B1DFF10), UINT64_C(0x0007E66D7F84E375), + UINT64_C(0x000247DD6C1DBF6D)}}, + {{UINT64_C(0x000DE16D4416BAED), UINT64_C(0x0007F25B557A5F90), + UINT64_C(0x000174197A990092), UINT64_C(0x00064E76B1B0E5AD), + UINT64_C(0x0007C3B0A8276891)}, + {UINT64_C(0x000FF3F0D753BB34), UINT64_C(0x0004BC7095E070BA), + UINT64_C(0x0005AE24B0B13E9D), UINT64_C(0x00033D3593791BC1), + UINT64_C(0x0004A5C64A628512)}}, + {{UINT64_C(0x000679BA1D37863B), UINT64_C(0x0007E88BAD3CE7BA), + UINT64_C(0x0007E856BFB2DCD0), UINT64_C(0x0001298B3D7E0A07), + UINT64_C(0x000648DA87B47E6C)}, + {UINT64_C(0x0004116614706E8B), UINT64_C(0x00038083A1633124), + UINT64_C(0x00040275662A5821), UINT64_C(0x0005AF932DE19F46), + UINT64_C(0x000325815252F969)}}, + {{UINT64_C(0x0007431F85A6A2F2), UINT64_C(0x0003E366F4DF51AC), + UINT64_C(0x000007E3FCF91EED), UINT64_C(0x00019A60A1F6A15A), + UINT64_C(0x0005D281D485553A)}, + {UINT64_C(0x000AEE657D07C121), UINT64_C(0x0005B6E017CC1FF3), + UINT64_C(0x000087D40E6AE64B), UINT64_C(0x000110B3E1403845), + UINT64_C(0x0007B4C48BE20679)}}, + {{UINT64_C(0x0002EDBF68793170), UINT64_C(0x000433C366D3E8F9), + UINT64_C(0x0005954AEAA0ACE5), UINT64_C(0x00017404AB74C945), + UINT64_C(0x0005D492DD30DC05)}, + {UINT64_C(0x000664322925053F), UINT64_C(0x000443FCBBEB949A), + UINT64_C(0x0004BC23B86D7ADE), UINT64_C(0x0002B04916F727D6), + UINT64_C(0x000762FF85E51567)}}, + }, + { + {{UINT64_C(0x000956A68246367E), UINT64_C(0x00021897DE9A1875), + UINT64_C(0x0005C9CCFFBCB16F), UINT64_C(0x00070E4257F8B255), + UINT64_C(0x00000C9A877C9B00)}, + {UINT64_C(0x000CE0B185E2541C), UINT64_C(0x0006D5D853109264), + UINT64_C(0x00056CC68AD4E64D), UINT64_C(0x0002AF2B66927356), + UINT64_C(0x00037EE9E95C855D)}}, + {{UINT64_C(0x000053A329418B8A), UINT64_C(0x0006646D7C973FB6), + UINT64_C(0x0005395E69EEA7AB), UINT64_C(0x00010000B1282007), + UINT64_C(0x00068CC15F88CFED)}, + {UINT64_C(0x000E8B128FBFD773), UINT64_C(0x0007FB20DB05AF31), + UINT64_C(0x0007739B3F5C4BDE), UINT64_C(0x0004039AAFD5F2DC), + UINT64_C(0x000721C85E9A29EA)}}, + {{UINT64_C(0x000B0D23A656BC62), UINT64_C(0x0005AC669CF7C7F3), + UINT64_C(0x000209617182C48D), UINT64_C(0x000218B4CB496794), + UINT64_C(0x0007180815D1B6B7)}, + {UINT64_C(0x000EEC1FDDEF69D9), UINT64_C(0x0003AEF0ADEF2D2B), + UINT64_C(0x00030326BF4476DB), UINT64_C(0x000047E91D24E181), + UINT64_C(0x000598190A0CFD77)}}, + {{UINT64_C(0x0006D10C22EF9F96), UINT64_C(0x000080EC0F94F2F7), + UINT64_C(0x0007AA4F0AEDAE30), UINT64_C(0x0002516F4D4FE6D7), + UINT64_C(0x00049EFAA3C8BD00)}, + {UINT64_C(0x000098EA4E6E0992), UINT64_C(0x0005BF3F949C023B), + UINT64_C(0x000380A5EEBA5CD8), UINT64_C(0x00026413305ED75F), + UINT64_C(0x0000F418433F8A27)}}, + {{UINT64_C(0x00089ECDDD1EBCA4), UINT64_C(0x000359E16F504E76), + UINT64_C(0x0004CF9626CD6FBA), UINT64_C(0x0001174C74344098), + UINT64_C(0x00057564D0F17F65)}, + {UINT64_C(0x0001195CBB8FB356), UINT64_C(0x0005A8577B21D169), + UINT64_C(0x0006489F105E543F), UINT64_C(0x0007B3A20275D3E2), + UINT64_C(0x0007AAB2BB22DFB3)}}, + {{UINT64_C(0x0002CA70745AE235), UINT64_C(0x00023A96DDE369C5), + UINT64_C(0x0005012A48800C95), UINT64_C(0x00066B4F8BF4154D), + UINT64_C(0x0006B8F21F53603C)}, + {UINT64_C(0x000F5462CCFC9D22), UINT64_C(0x00030A858C108F13), + UINT64_C(0x000689819655D129), UINT64_C(0x0000E720A0FCEA3E), + UINT64_C(0x00011F9DC5101E53)}}, + {{UINT64_C(0x0001DE0F018982F2), UINT64_C(0x0000EADE77ECC8D4), + UINT64_C(0x0003B956FFEE4A79), UINT64_C(0x0004B8BBFBD7479E), + UINT64_C(0x00005F99662FE03E)}, + {UINT64_C(0x0004D7EA312F393C), UINT64_C(0x0000BD83AE160FCB), + UINT64_C(0x0001EC8D3FC68C3B), UINT64_C(0x000437ABD0A447B9), + UINT64_C(0x000735FC8AD2BB1C)}}, + {{UINT64_C(0x000B9EE6D50FF37D), UINT64_C(0x00004D648636CDB2), + UINT64_C(0x00039C45B71D2EBA), UINT64_C(0x00000F0D22EDF891), + UINT64_C(0x00014C417247C2C5)}, + {UINT64_C(0x0006CAB42B8C5660), UINT64_C(0x00018D3158E77BC4), + UINT64_C(0x00039A7DAB63293E), UINT64_C(0x0004410B20B68C38), + UINT64_C(0x0005143C90B7948D)}}, + {{UINT64_C(0x0004B03CF603CB83), UINT64_C(0x0000D1179A1254F5), + UINT64_C(0x0000FC1EF688A885), UINT64_C(0x0002CDCC95C8E925), + UINT64_C(0x0002791D839354A1)}, + {UINT64_C(0x000642016F8D0BF2), UINT64_C(0x00066E650A9B34E8), + UINT64_C(0x00041DBF68CBB4A7), UINT64_C(0x000512CF961BC16F), + UINT64_C(0x0003B3E68158737A)}}, + {{UINT64_C(0x0008CF645460D714), UINT64_C(0x0007670AA8B430E8), + UINT64_C(0x000574F16D3AC934), UINT64_C(0x00051A943821A714), + UINT64_C(0x0006DE69E5DF9951)}, + {UINT64_C(0x0007DE4AADCCB9AA), UINT64_C(0x000135145C55A55A), + UINT64_C(0x000238B53DDFBA15), UINT64_C(0x00068D2109040438), + UINT64_C(0x000063397853B65B)}}, + {{UINT64_C(0x00078630F0E679A9), UINT64_C(0x000648A3915EA099), + UINT64_C(0x0001B46B606FA986), UINT64_C(0x0005DE57BB1E25B5), + UINT64_C(0x0004F4E27D03AF36)}, + {UINT64_C(0x000CE066A9452CC5), UINT64_C(0x00045772A10AC378), + UINT64_C(0x000305FFC4931F9C), UINT64_C(0x0006B3AE4651216A), + UINT64_C(0x0001EBD44A8A3E39)}}, + {{UINT64_C(0x0004B0B22DFA4A07), UINT64_C(0x00035F7907812083), + UINT64_C(0x0006F74B674F2672), UINT64_C(0x000388F7301DAC59), + UINT64_C(0x000159AD55DA44EC)}, + {UINT64_C(0x000DE4AFBA89C1F3), UINT64_C(0x0007E80CAB614F22), + UINT64_C(0x00059A999E84955B), UINT64_C(0x0000FA70D936DB5E), + UINT64_C(0x00026F2DA8417650)}}, + {{UINT64_C(0x000E186902C85447), UINT64_C(0x000464F8386F8A64), + UINT64_C(0x00053B0F937B7CD3), UINT64_C(0x00003B7187584567), + UINT64_C(0x000308946F3D80A4)}, + {UINT64_C(0x000D1B1C9720BFE2), UINT64_C(0x0002400C63A10347), + UINT64_C(0x00052C5C71281FD2), UINT64_C(0x00064118DAD42634), + UINT64_C(0x0002FB1EB2D89702)}}, + {{UINT64_C(0x00080BE5600FDDD3), UINT64_C(0x0002732F61BAFB7A), + UINT64_C(0x0002E5DE598D6FBC), UINT64_C(0x000041E2FDE427CD), + UINT64_C(0x000506CBA13B20AF)}, + {UINT64_C(0x000FD470BC53488D), UINT64_C(0x0005F2E4B029AB6D), + UINT64_C(0x0000096963502BB6), UINT64_C(0x0005FD18C530903B), + UINT64_C(0x0005F0ED95E0A6DB)}}, + {{UINT64_C(0x000A16408A941AAB), UINT64_C(0x00021F45EB4DC5BD), + UINT64_C(0x0000F60F2631C101), UINT64_C(0x0005AE7748F7EDC4), + UINT64_C(0x0002D03801D3B95D)}, + {UINT64_C(0x0000E8545F3E14DB), UINT64_C(0x0001650799114990), + UINT64_C(0x000686592FD11BE6), UINT64_C(0x000434D0445B2D2A), + UINT64_C(0x00000759D194E76A)}}, + {{UINT64_C(0x0008B92FABB27EE6), UINT64_C(0x0007CF7A4E4368A8), + UINT64_C(0x00005ACFDBBB69ED), UINT64_C(0x0006891A54C2CC5E), + UINT64_C(0x0007007C79A1E753)}, + {UINT64_C(0x000FB2099EDFE6F7), UINT64_C(0x0004967D75BF94F0), + UINT64_C(0x0007F61375A45D1E), UINT64_C(0x0003B22D99BD3A83), + UINT64_C(0x000240E6DA8B843D)}}, + }, + { + {{UINT64_C(0x0002B047D234E1E6), UINT64_C(0x000051F630DB7224), + UINT64_C(0x000101E259F37AB2), UINT64_C(0x0007C1F58C65113B), + UINT64_C(0x000263DCEE305FFC)}, + {UINT64_C(0x000D1B3A99462779), UINT64_C(0x0005034BF259BEDD), + UINT64_C(0x0006E55CD8E9F25D), UINT64_C(0x00000FF1B23C08C9), + UINT64_C(0x000193E0F15E9D84)}}, + {{UINT64_C(0x0005E42789FDE1B6), UINT64_C(0x0001894F4E480D11), + UINT64_C(0x0002FA3C0071679A), UINT64_C(0x0005A18A5FED0EDD), + UINT64_C(0x00032E050C320BCA)}, + {UINT64_C(0x000129644B586CC6), UINT64_C(0x00046490AB54EE67), + UINT64_C(0x00014EDFB7E99D26), UINT64_C(0x0005F72BBB17A488), + UINT64_C(0x00016D460CA476AE)}}, + {{UINT64_C(0x000ED9FF353B3EBD), UINT64_C(0x0000607194AF236F), + UINT64_C(0x0004B55C55B42B97), UINT64_C(0x00007DF4B19150C4), + UINT64_C(0x000071DD14E1914E)}, + {UINT64_C(0x0006D2391EE57097), UINT64_C(0x0006B5C7EAFAC50A), + UINT64_C(0x000743B60C540A6E), UINT64_C(0x0002052C67ED83B9), + UINT64_C(0x0007218AF829BCD2)}}, + {{UINT64_C(0x000B925893F33C1F), UINT64_C(0x00067B1285BA7F1E), + UINT64_C(0x000653712C1B3339), UINT64_C(0x0005676C8172A410), + UINT64_C(0x00070EFC597208AE)}, + {UINT64_C(0x000960B5F604A33D), UINT64_C(0x0007921F9338E496), + UINT64_C(0x000049FA1FFAFC93), UINT64_C(0x000161F6DCEE43A1), + UINT64_C(0x000066EEA7D1AFAB)}}, + {{UINT64_C(0x000AF49590893929), UINT64_C(0x000070D65CE0014B), + UINT64_C(0x000140DF3289D3DC), UINT64_C(0x000345791D5EA109), + UINT64_C(0x00005255A323DD85)}, + {UINT64_C(0x000401F6DCF0F1DA), UINT64_C(0x000074049990B1B6), + UINT64_C(0x000618D750975313), UINT64_C(0x000287BCB87A0714), + UINT64_C(0x0001F72793687C35)}}, + {{UINT64_C(0x000168DAE873F26A), UINT64_C(0x0001E0AAFF1790B1), + UINT64_C(0x000459C70C5F4D75), UINT64_C(0x0002A897AEB60F5E), + UINT64_C(0x0004FE8D9CCEFE84)}, + {UINT64_C(0x000C5FA352BD1939), UINT64_C(0x0000D8AE757A71AF), + UINT64_C(0x00049805C7DBD1B7), UINT64_C(0x00052A2EB32E9871), + UINT64_C(0x0002C5844141B0C6)}}, + {{UINT64_C(0x00005696DA8028D2), UINT64_C(0x00071FFFC7289A23), + UINT64_C(0x0006341DC5E55F0B), UINT64_C(0x00033AE49FFDF4DC), + UINT64_C(0x00015F09ED39A715)}, + {UINT64_C(0x000674750BC4C3AD), UINT64_C(0x00041954C18CE813), + UINT64_C(0x000694204D31CC9C), UINT64_C(0x0007E21A93A0C726), + UINT64_C(0x000300024CEC65AE)}}, + {{UINT64_C(0x000EBD07C0D77453), UINT64_C(0x0007BF58C754CC24), + UINT64_C(0x0000F87F9B37B295), UINT64_C(0x00024B9A92A35036), + UINT64_C(0x000289648E3611DD)}, + {UINT64_C(0x00040BB7D1FD0ECE), UINT64_C(0x0001A131BEAD6492), + UINT64_C(0x00069423BE245B95), UINT64_C(0x0000669C14214A82), + UINT64_C(0x000379EBC399963B)}}, + {{UINT64_C(0x0007DDA0CDD635C8), UINT64_C(0x00035E41D7F8650E), + UINT64_C(0x0003F70DD4244C32), UINT64_C(0x00067C3E0F50B486), + UINT64_C(0x000247B2A722631B)}, + {UINT64_C(0x000BFFD05202D9FB), UINT64_C(0x00060A9C44DD611B), + UINT64_C(0x00036DCF6E5FD0D6), UINT64_C(0x000054F5818F5DF8), + UINT64_C(0x0004E905149BD33D)}}, + {{UINT64_C(0x0001A02B8DDADBAE), UINT64_C(0x0004B904A0731902), + UINT64_C(0x0002BCFC886A4F5E), UINT64_C(0x00050E5A1340E58E), + UINT64_C(0x000538853D4322BB)}, + {UINT64_C(0x0004FA19E1071C4B), UINT64_C(0x00020DFF018FE134), + UINT64_C(0x000747F9F7B44E41), UINT64_C(0x0001A6855EE03199), + UINT64_C(0x00023B78B0C2DA8E)}}, + {{UINT64_C(0x000A78F96C2693D0), UINT64_C(0x0004E852C54AB8B2), + UINT64_C(0x00050BD1203E05C7), UINT64_C(0x0007EBCB440E392A), + UINT64_C(0x0002902087BF3096)}, + {UINT64_C(0x0003CE5F90574625), UINT64_C(0x0003386306A925F7), + UINT64_C(0x0006406D4F228721), UINT64_C(0x00077FA1131F3503), + UINT64_C(0x0004E5E2E878636F)}}, + {{UINT64_C(0x000931F13967D25A), UINT64_C(0x00039563F11ADEC1), + UINT64_C(0x000148DC8BDD5189), UINT64_C(0x000143E419A5E6C0), + UINT64_C(0x0005DAD68377E37C)}, + {UINT64_C(0x00068A723527F5D0), UINT64_C(0x0000F1F89C72A873), + UINT64_C(0x0000CB4FD5169F8D), UINT64_C(0x0001C570DC05123D), + UINT64_C(0x0007DE29900ACC22)}}, + {{UINT64_C(0x0009281B46548202), UINT64_C(0x00014A3F78CE6431), + UINT64_C(0x00075ADDA3C012A7), UINT64_C(0x0000EA845B0B8C70), + UINT64_C(0x00079B908BEB53C6)}, + {UINT64_C(0x00019FE799C7C809), UINT64_C(0x0007B93B993A157B), + UINT64_C(0x00077F3826FC8939), UINT64_C(0x00023CE645BC7C8A), + UINT64_C(0x00007E8659F8E036)}}, + {{UINT64_C(0x00033DC53F98B574), UINT64_C(0x0007432F5C3CCD27), + UINT64_C(0x0001E8355E71A3DC), UINT64_C(0x000536F3A5B8A0D5), + UINT64_C(0x00066FBA2484854C)}, + {UINT64_C(0x000BC9ABA085FC08), UINT64_C(0x0006CD471084166A), + UINT64_C(0x00077299B5B548AE), UINT64_C(0x0000A08F4C0976C0), + UINT64_C(0x0007ED9BF62B1BFA)}}, + {{UINT64_C(0x000940ECF52AFA23), UINT64_C(0x000448C9B9325795), + UINT64_C(0x0006DAFB14422BE9), UINT64_C(0x000331906DED74E7), + UINT64_C(0x00034AA18796A795)}, + {UINT64_C(0x00017A1089CF42AB), UINT64_C(0x0004BBA8E1B7CC68), + UINT64_C(0x00072F74CCB808A3), UINT64_C(0x00018BD75A6C68E2), + UINT64_C(0x00001B9BDB7DACA2)}}, + {{UINT64_C(0x000018F0E8761113), UINT64_C(0x00014856FBD5FE7E), + UINT64_C(0x00052B8E5AA39575), UINT64_C(0x00061A72375DBF30), + UINT64_C(0x0002A1B12B4FD1A0)}, + {UINT64_C(0x000CCCFE4B5CE5E2), UINT64_C(0x00013D03A9E9851C), + UINT64_C(0x000547736DB57F8B), UINT64_C(0x0002C281B74401A1), + UINT64_C(0x0006AD41C9A8F14A)}}, + }, + { + {{UINT64_C(0x000FAA572EB89E8E), UINT64_C(0x000167953742D9F0), + UINT64_C(0x00019869F9FB4B12), UINT64_C(0x0007CBE7B69E4D6D), + UINT64_C(0x000555F44F93253E)}, + {UINT64_C(0x000652D610CFD61D), UINT64_C(0x000450DD0FD70202), + UINT64_C(0x0000FA8099F542AA), UINT64_C(0x00028CDD184A6382), + UINT64_C(0x0005C334A78F9954)}}, + {{UINT64_C(0x00089F7423E24828), UINT64_C(0x0006ECC59417EC04), + UINT64_C(0x0005923FCD743CE4), UINT64_C(0x00058E47C67B3854), + UINT64_C(0x0001FEDFDB0EED94)}, + {UINT64_C(0x0007EEE7E104E1B6), UINT64_C(0x0002BAC9B4C39633), + UINT64_C(0x000719482E22B7DB), UINT64_C(0x000289C779B2B427), + UINT64_C(0x0005A26A1E0E5EC6)}}, + {{UINT64_C(0x000239DE0DF21E4A), UINT64_C(0x0003990AE0816058), + UINT64_C(0x0007B031A49D9306), UINT64_C(0x0003AA82A7C3C63B), + UINT64_C(0x00024190E64F1DA4)}, + {UINT64_C(0x00044CF3369C86A2), UINT64_C(0x00003ECD2B5B335C), + UINT64_C(0x0000C07180F70933), UINT64_C(0x00065C0B6A34AA71), + UINT64_C(0x0002462A8EC2EB00)}}, + {{UINT64_C(0x0005C2BDA6A8C3D3), UINT64_C(0x0004167C033B9C4C), + UINT64_C(0x0001CB7DF36DB648), UINT64_C(0x000694122F8ABCB3), + UINT64_C(0x00025F3E2C20B169)}, + {UINT64_C(0x0007E143BB0C3DB3), UINT64_C(0x00001781BBE98778), + UINT64_C(0x00037A2A4A306DA9), UINT64_C(0x0005470297B20C04), + UINT64_C(0x000141CF4B717BAF)}}, + {{UINT64_C(0x00070EB500B9F037), UINT64_C(0x0005727999C118FA), + UINT64_C(0x0006027735DBD10A), UINT64_C(0x0007F78C3C18F3DD), + UINT64_C(0x0004111344448D53)}, + {UINT64_C(0x000B19D3D6D2A8D9), UINT64_C(0x000516FF15756C60), + UINT64_C(0x0002EE628F2DE048), UINT64_C(0x00048114031C65C1), + UINT64_C(0x000585C81048736A)}}, + {{UINT64_C(0x000AB501B01B067A), UINT64_C(0x00067899A4477FAE), + UINT64_C(0x000274F338EBAB9E), UINT64_C(0x00047234930DA1EF), + UINT64_C(0x0007A996A9C60A6D)}, + {UINT64_C(0x0007B7E042371080), UINT64_C(0x00076E9E7CA96E5C), + UINT64_C(0x00014EDEE2498639), UINT64_C(0x00020537E3A2932F), + UINT64_C(0x0006743F9AFE0CF6)}}, + {{UINT64_C(0x0000BB8FB7939BAE), UINT64_C(0x000595F428F1564B), + UINT64_C(0x00073AA57A8B8892), UINT64_C(0x000443C7156AD97C), + UINT64_C(0x000394DCDE01C803)}, + {UINT64_C(0x00010277303A2295), UINT64_C(0x00036E65529E463B), + UINT64_C(0x00002050CC0BBF19), UINT64_C(0x0007AF642321CFD0), + UINT64_C(0x0007A578DB9DCA09)}}, + {{UINT64_C(0x000ECA0FD78BBA28), UINT64_C(0x000140DC5DBBD618), + UINT64_C(0x0002BEF02AD1BB50), UINT64_C(0x00031A4817C3357E), + UINT64_C(0x0000A1117B528B02)}, + {UINT64_C(0x000A242C41E7EE0C), UINT64_C(0x00024C715E851E5F), + UINT64_C(0x000711A22BB49D60), UINT64_C(0x0002824BD92ABEC0), + UINT64_C(0x00043A69559D6B3C)}}, + {{UINT64_C(0x000E68D7A078C305), UINT64_C(0x000734955FCFC798), + UINT64_C(0x0000E1E3F52E8AA5), UINT64_C(0x0004E9D3FA7AD926), + UINT64_C(0x000712628E743D52)}, + {UINT64_C(0x00073814D797A50E), UINT64_C(0x000153715FFCA99D), + UINT64_C(0x000558A8FDE19C66), UINT64_C(0x0002204AA778B5D7), + UINT64_C(0x0007BAA676A5FF03)}}, + {{UINT64_C(0x000DF4BDB34B5256), UINT64_C(0x0001D965B241D3BD), + UINT64_C(0x0001271A0805AF80), UINT64_C(0x0000B84BD41CE836), + UINT64_C(0x0007F967C3AC88CE)}, + {UINT64_C(0x000FDB1299F7351C), UINT64_C(0x00003C874EE7BCAC), + UINT64_C(0x00039993680976FC), UINT64_C(0x00047FE73F6F2145), + UINT64_C(0x000625098EDAEF41)}}, + {{UINT64_C(0x000D83AF4F7F1E6E), UINT64_C(0x0000FDC16634A3DE), + UINT64_C(0x00015FB28A735369), UINT64_C(0x0007AF0B085A2FF6), + UINT64_C(0x0001B48F17A9E049)}, + {UINT64_C(0x0003C8EA301DD7E4), UINT64_C(0x00040B69DE358F2C), + UINT64_C(0x00050BA0AC83C141), UINT64_C(0x0000E0D532814AB2), + UINT64_C(0x00065E5F74F8CAB4)}}, + {{UINT64_C(0x0000F47568339162), UINT64_C(0x000606AFE5A96F3B), + UINT64_C(0x0002BA3A04C6A76C), UINT64_C(0x0002488944DE85DD), + UINT64_C(0x000374DF90B6C521)}, + {UINT64_C(0x000382B073CF14E5), UINT64_C(0x0007C67C95A17E79), + UINT64_C(0x00015C33E721463B), UINT64_C(0x00073EF909CF6359), + UINT64_C(0x00050141FF3ED74B)}}, + {{UINT64_C(0x000EEEEA5F5DDB32), UINT64_C(0x0003ACDE25B0D36D), + UINT64_C(0x0002CF889155A989), UINT64_C(0x00021FD9C628076E), + UINT64_C(0x00056A5EB7356DC8)}, + {UINT64_C(0x0006C202D420A6E2), UINT64_C(0x00031BABD32E4E48), + UINT64_C(0x00044C3D05F2D30C), UINT64_C(0x0007670E334C2F98), + UINT64_C(0x0004F79A1917FFEC)}}, + {{UINT64_C(0x00051F5BDD58277B), UINT64_C(0x000003D523F21BB6), + UINT64_C(0x00021806DD8F5937), UINT64_C(0x0000FD12EFB4623F), + UINT64_C(0x0007A4AF6F3F8526)}, + {UINT64_C(0x0004669EB76FE0E1), UINT64_C(0x00043FDD719D5F7A), + UINT64_C(0x00003CA28B366FB6), UINT64_C(0x000248847E6F73B9), + UINT64_C(0x00065DA146D053AB)}}, + {{UINT64_C(0x000AC0CBD84326A2), UINT64_C(0x0004C03CAD532948), + UINT64_C(0x0005E030FE480B61), UINT64_C(0x0003DB7F18BA70C2), + UINT64_C(0x00035CE1592DE363)}, + {UINT64_C(0x000203476A5CD536), UINT64_C(0x00079198612CA2C7), + UINT64_C(0x0005BB48D8AC89B9), UINT64_C(0x000295999FBC011E), + UINT64_C(0x0003AAA59B60FE8A)}}, + {{UINT64_C(0x000DD31F74351DCE), UINT64_C(0x0005B15757FF87F4), + UINT64_C(0x0002E2B1C4F1048F), UINT64_C(0x00069BB62674CD0F), + UINT64_C(0x0001544612843FE9)}, + {UINT64_C(0x00039BD2752EE3C1), UINT64_C(0x00017A2616FD02E5), + UINT64_C(0x000447AD0B0A32FC), UINT64_C(0x0005CE5C96F64A93), + UINT64_C(0x00029642594BA9AA)}}, + }, + { + {{UINT64_C(0x000DEE95CA3BB6FE), UINT64_C(0x00056F0ACB87E096), + UINT64_C(0x00036182366ABC67), UINT64_C(0x0005217F2CD26751), + UINT64_C(0x00021E6D524F4A17)}, + {UINT64_C(0x0000BCE9C99BB07D), UINT64_C(0x0000C27581F2BA83), + UINT64_C(0x00020CF33CBD1603), UINT64_C(0x00010678FB67FFF1), + UINT64_C(0x0005C6CD7703A25E)}}, + {{UINT64_C(0x0005BBA8048392C8), UINT64_C(0x0002542A96821BD7), + UINT64_C(0x00075648B3E12141), UINT64_C(0x0006D7FBCF181560), + UINT64_C(0x0002C576A6815E41)}, + {UINT64_C(0x000518AAF86E6DE1), UINT64_C(0x0001C518693DD84F), + UINT64_C(0x0006675DCF58B296), UINT64_C(0x000644D5F602501F), + UINT64_C(0x00077A80CA4E57C8)}}, + {{UINT64_C(0x000159EE8D243A23), UINT64_C(0x0006E29DBC72D5E0), + UINT64_C(0x0000DA0A1E2F2981), UINT64_C(0x000651B05EAE7237), + UINT64_C(0x000582761CC33610)}, + {UINT64_C(0x0004C0AF035DD89C), UINT64_C(0x0004D1937B5F3230), + UINT64_C(0x00068AF1E665190F), UINT64_C(0x00076067020738A8), + UINT64_C(0x0003815147C9AEE7)}}, + {{UINT64_C(0x000115871847A6CB), UINT64_C(0x00020F85C36D0499), + UINT64_C(0x0004733334C55205), UINT64_C(0x0004D650B5CCA6A3), + UINT64_C(0x0002C404C377C0C1)}, + {UINT64_C(0x000A12DF826A93D6), UINT64_C(0x0007B4188D135AA7), + UINT64_C(0x0002D01F76CA5FE4), UINT64_C(0x000155326D392240), + UINT64_C(0x0000E516B40BA9FD)}}, + {{UINT64_C(0x000F5546A732C66D), UINT64_C(0x00018E15DB635DC6), + UINT64_C(0x00074C7913432090), UINT64_C(0x0005F678885345A4), + UINT64_C(0x00061829FB56D48A)}, + {UINT64_C(0x000677B5BB743208), UINT64_C(0x000238E1E35F0380), + UINT64_C(0x00024F21B26421F5), UINT64_C(0x000405586E33386B), + UINT64_C(0x0000200A7DCD0CE5)}}, + {{UINT64_C(0x000E70BA7605C9B6), UINT64_C(0x00057F5CC0B99049), + UINT64_C(0x00042F0C89079EE3), UINT64_C(0x0000AF253B6AB483), + UINT64_C(0x00004DBD3447DEE4)}, + {UINT64_C(0x0005CDCCDF6731CF), UINT64_C(0x0003ACA58F2B6389), + UINT64_C(0x0002874A4632D9E3), UINT64_C(0x0006EAB51A6C6508), + UINT64_C(0x0004974444B06711)}}, + {{UINT64_C(0x000083E23DACB58A), UINT64_C(0x0003D224DBA9AFFC), + UINT64_C(0x0000AD693FF2352E), UINT64_C(0x0000EE821C843787), + UINT64_C(0x0006599DDD43FF17)}, + {UINT64_C(0x0001129BD5E19FA2), UINT64_C(0x0001DDF5DE008359), + UINT64_C(0x0004F3504C03BF84), UINT64_C(0x000064EFD7D15539), + UINT64_C(0x000427DB9DD33F27)}}, + {{UINT64_C(0x000B147505184DFD), UINT64_C(0x0005A25B9C7E076D), + UINT64_C(0x00075CFCA22E44B6), UINT64_C(0x0002A4BF3C7632E7), + UINT64_C(0x00032E9918544496)}, + {UINT64_C(0x000455D9704D3074), UINT64_C(0x00037C549C367FB6), + UINT64_C(0x0004A270B27EFBB8), UINT64_C(0x0001428CFA018772), + UINT64_C(0x0007A9637BAE976C)}}, + {{UINT64_C(0x000311ADC83DB0DD), UINT64_C(0x0000B4BCB0670913), + UINT64_C(0x0005D30A2C0F96FC), UINT64_C(0x0001F1A1FF4D0BB0), + UINT64_C(0x0007D2975772506E)}, + {UINT64_C(0x000EFF5E207D306E), UINT64_C(0x00068BE603FE3D2A), + UINT64_C(0x0005C11F5D2A4998), UINT64_C(0x00006F76D4F8557F), + UINT64_C(0x0006F3CFD87A769F)}}, + {{UINT64_C(0x00065185A90EC696), UINT64_C(0x0005E67E616805F1), + UINT64_C(0x0000BBF738A1A711), UINT64_C(0x0005428B0D45A57C), + UINT64_C(0x0004C8EE45621C1C)}, + {UINT64_C(0x000FAA46B5E985B8), UINT64_C(0x00029F0A5A957DDD), + UINT64_C(0x000236B91A401AEE), UINT64_C(0x00064166423D44F1), + UINT64_C(0x0000A4FE9BC04A82)}}, + {{UINT64_C(0x000F394FC786A4E4), UINT64_C(0x0005D5C301931568), + UINT64_C(0x00016E5A4E0F86A1), UINT64_C(0x0003E462D1C459B7), + UINT64_C(0x0005C99260A907B9)}, + {UINT64_C(0x00094616BF27C9BA), UINT64_C(0x0003838C1FBFC98B), + UINT64_C(0x0001AEFD5463CE2C), UINT64_C(0x0002298F2DAA2DC1), + UINT64_C(0x00002F8398AA1EC1)}}, + {{UINT64_C(0x000B0B54E83EB3CB), UINT64_C(0x00046C11CF2C5D85), + UINT64_C(0x000562C687A5BD26), UINT64_C(0x00008CB654C9579D), + UINT64_C(0x00032A6EC6175F00)}, + {UINT64_C(0x0003D94A727B903F), UINT64_C(0x00033404D23AB3CE), + UINT64_C(0x00047CFD855EC24D), UINT64_C(0x000499392AD55820), + UINT64_C(0x000184705D6FA8F5)}}, + {{UINT64_C(0x000FC2C43A582997), UINT64_C(0x00009B163600D952), + UINT64_C(0x0007D1FD9FDFC13A), UINT64_C(0x0006DDB423ABD0A7), + UINT64_C(0x0006DA6449C5CF57)}, + {UINT64_C(0x000FFEB9DF5F3E5D), UINT64_C(0x000104479DCFA27F), + UINT64_C(0x00021D3A7738DB2D), UINT64_C(0x0004045B51B58564), + UINT64_C(0x0002B174ED65C2FD)}}, + {{UINT64_C(0x000BD918AF2D1DE7), UINT64_C(0x000797FE89E388BD), + UINT64_C(0x000354F756AF6F61), UINT64_C(0x0002658B66C8F102), + UINT64_C(0x000481C3A259A692)}, + {UINT64_C(0x00028B2886FDA782), UINT64_C(0x0001ACB2E8319AE1), + UINT64_C(0x0005E65B509E18EA), UINT64_C(0x0000602680E0D288), + UINT64_C(0x0001F8B6C2704BE0)}}, + {{UINT64_C(0x0004DE9DC251E4F5), UINT64_C(0x000398DC76312C40), + UINT64_C(0x00060221101717D7), UINT64_C(0x00036E5F8512F680), + UINT64_C(0x0006AECBBC4FAED1)}, + {UINT64_C(0x0006BCF81AD0F404), UINT64_C(0x00056B0D20017CFA), + UINT64_C(0x000051B33CAE4F06), UINT64_C(0x00079BA25FD11B60), + UINT64_C(0x0006C66B1B94906E)}}, + {{UINT64_C(0x000F2EB0A212B2F8), UINT64_C(0x0001291549D895DF), + UINT64_C(0x0007EA3FDC6E23D8), UINT64_C(0x0003A5FB22527356), + UINT64_C(0x00044827B3CCBCB7)}, + {UINT64_C(0x000569B9A0749338), UINT64_C(0x00017A1416DD273B), + UINT64_C(0x0001E3D333FDA47A), UINT64_C(0x0000F6320D57AF46), + UINT64_C(0x0001618E7F9E3803)}}, + }, + { + {{UINT64_C(0x0006E8A84D02A6B0), UINT64_C(0x0002A5CE4DBC212A), + UINT64_C(0x00009BCAB85DD325), UINT64_C(0x00033808F9E31F44), + UINT64_C(0x0000711ABE8635FB)}, + {UINT64_C(0x00073EA3098D5496), UINT64_C(0x000696F79EEC27AE), + UINT64_C(0x0007B6463961BEF1), UINT64_C(0x00021DAC69DE5F30), + UINT64_C(0x00033F193BEA04AC)}}, + {{UINT64_C(0x0004886B6B478D87), UINT64_C(0x00026385B4323759), + UINT64_C(0x00013A2BB416CDED), UINT64_C(0x000717B3988CF8DE), + UINT64_C(0x000414C09B6B85C5)}, + {UINT64_C(0x0003390639FE52FF), UINT64_C(0x00006CA38DEF7FD7), + UINT64_C(0x000431C5BCF60FD8), UINT64_C(0x000027BCB334EEFB), + UINT64_C(0x00028319296C6513)}}, + {{UINT64_C(0x0004CB3C06E1AB70), UINT64_C(0x00057948510101D5), + UINT64_C(0x0001C38A22A0693D), UINT64_C(0x00002914500B3EA3), + UINT64_C(0x000578C8D8DD9DD3)}, + {UINT64_C(0x00016C80C1DBD2FF), UINT64_C(0x00033044253FB30D), + UINT64_C(0x0007941DD6AECD7D), UINT64_C(0x0004F200061FECF3), + UINT64_C(0x000546D982BEE1F4)}}, + {{UINT64_C(0x000EDBC39AE757A2), UINT64_C(0x00034FE0BAD67FE3), + UINT64_C(0x0001971E008F362D), UINT64_C(0x0006C12B96F5D1A1), + UINT64_C(0x0001FF6E4EB688F7)}, + {UINT64_C(0x00070C4B4E036FA0), UINT64_C(0x0000611BA94D0E52), + UINT64_C(0x0007BFC428F0E251), UINT64_C(0x00042A78CA211CAC), + UINT64_C(0x00078AAB5035F959)}}, + {{UINT64_C(0x00039F022DA3A297), UINT64_C(0x0001DA11C9EE4589), + UINT64_C(0x000007BC8D152059), UINT64_C(0x0005CA88E041209D), + UINT64_C(0x000396B7E030B90E)}, + {UINT64_C(0x0006A3AFDE54F823), UINT64_C(0x0002A38ABA40380D), + UINT64_C(0x000394F10EC351B1), UINT64_C(0x0007BFA890FF374E), + UINT64_C(0x0003ED6D3C141924)}}, + {{UINT64_C(0x0007B3B2AB41AFA6), UINT64_C(0x0005EDB0895870A2), + UINT64_C(0x0004AE56B08A37D7), UINT64_C(0x0002E4BCFE71C4CA), + UINT64_C(0x0002D43D757D8A3B)}, + {UINT64_C(0x00061C756483A39E), UINT64_C(0x0003AC62981046BD), + UINT64_C(0x0001AFB8EAD77A64), UINT64_C(0x0002EA1E8FD302B3), + UINT64_C(0x0004DB0FB226BB28)}}, + {{UINT64_C(0x000E7B1BDB64BA6C), UINT64_C(0x00054E041D4FE699), + UINT64_C(0x0004AC1DEB24137D), UINT64_C(0x00074A0697964817), + UINT64_C(0x000312BDC2D7A256)}, + {UINT64_C(0x000D14A56072B4CC), UINT64_C(0x0001382886183F9C), + UINT64_C(0x000690EC6A92CA38), UINT64_C(0x0003B6BD7E019DD0), + UINT64_C(0x00069DAC1921760B)}}, + {{UINT64_C(0x000CEDF14C9EEC7F), UINT64_C(0x0001AD446C451FAB), + UINT64_C(0x0000A7B94D1D1824), UINT64_C(0x0003D360209777BD), + UINT64_C(0x0003312FC6A60827)}, + {UINT64_C(0x0006925365A89852), UINT64_C(0x000532B69C2AC275), + UINT64_C(0x00008D2BFA9C57DF), UINT64_C(0x0006B372357986F8), + UINT64_C(0x0000BC6738808C01)}}, + {{UINT64_C(0x000BA8848894762E), UINT64_C(0x0007C52B109B74BA), + UINT64_C(0x00055F874E82108D), UINT64_C(0x0006BC4B1AB5D607), + UINT64_C(0x0004F79A87A0F4BC)}, + {UINT64_C(0x00000F22EC08DE0D), UINT64_C(0x00019BBD488532BC), + UINT64_C(0x0001F7CC6A46142B), UINT64_C(0x00047951401B8854), + UINT64_C(0x0000EEFD5F254172)}}, + {{UINT64_C(0x00085C1F80C878D8), UINT64_C(0x0006E57903F7CB79), + UINT64_C(0x0007C43EE3AD7648), UINT64_C(0x000397051C967FD8), + UINT64_C(0x000117C19679F176)}, + {UINT64_C(0x00002C5D30697DD3), UINT64_C(0x0000D3ECE67318BD), + UINT64_C(0x0001F44996A833CC), UINT64_C(0x00015C569BF7DFFB), + UINT64_C(0x0001E2F38CD9EB4E)}}, + {{UINT64_C(0x0001E36DB36EC447), UINT64_C(0x00014967CF4A822B), + UINT64_C(0x00000401B78E38EB), UINT64_C(0x0005DAB9A907F31E), + UINT64_C(0x0002DACF3F0F0C42)}, + {UINT64_C(0x000D33C908C6C4F7), UINT64_C(0x00066AA9CCCC7F70), + UINT64_C(0x000060C3FCBC4FD7), UINT64_C(0x0001581BF7C89F6C), + UINT64_C(0x000611050B8C54AC)}}, + {{UINT64_C(0x000D068F3D4C0908), UINT64_C(0x0001A02E029F619E), + UINT64_C(0x0002B45FEC96D2D8), UINT64_C(0x0005A2871779F131), + UINT64_C(0x00023F7AD0C44BA1)}, + {UINT64_C(0x0004D3B86980DEAF), UINT64_C(0x000711D8166CA500), + UINT64_C(0x00030B3ED70C5899), UINT64_C(0x0001D50F687549AF), + UINT64_C(0x00008B4B9B39707D)}}, + {{UINT64_C(0x000466DD9C839775), UINT64_C(0x00027B5FC46C6C6B), + UINT64_C(0x000212095C5E5D6E), UINT64_C(0x0000A30F03686D71), + UINT64_C(0x0006E778BB41401B)}, + {UINT64_C(0x000A1B7784E9C0BD), UINT64_C(0x00028B25CB77EDC9), + UINT64_C(0x00075141ABC6098A), UINT64_C(0x00051285E7389DBD), + UINT64_C(0x000786BB0ADC137B)}}, + {{UINT64_C(0x0002B5755D306294), UINT64_C(0x00025D99F2BAD0F6), + UINT64_C(0x0006E9490307FE67), UINT64_C(0x00020FBAA40EBE93), + UINT64_C(0x000621CE633E61AE)}, + {UINT64_C(0x000063301845BDB1), UINT64_C(0x000488A25D032E0B), + UINT64_C(0x000245B64B6BCF17), UINT64_C(0x0005288C9BE6908E), + UINT64_C(0x00039074BE491684)}}, + {{UINT64_C(0x0009D726AEAA4BC7), UINT64_C(0x00006D9CA435F290), + UINT64_C(0x000399BB955171B4), UINT64_C(0x000707C3166A8265), + UINT64_C(0x0002EB12AACC834B)}, + {UINT64_C(0x0002B20ADA6782ED), UINT64_C(0x0002F055CE8BB68D), + UINT64_C(0x0007C0EB8CC8170C), UINT64_C(0x000082AD8CCDBB94), + UINT64_C(0x00069541FF4BC978)}}, + {{UINT64_C(0x00065D167D224872), UINT64_C(0x0002581C711887F8), + UINT64_C(0x00074BAF45B86A47), UINT64_C(0x00005E9E6ABE67A2), + UINT64_C(0x0007213BD0895F3B)}, + {UINT64_C(0x00072AFCA61A0254), UINT64_C(0x00011742392A0ED5), + UINT64_C(0x000010832281B6C9), UINT64_C(0x0005A0949297A0F6), + UINT64_C(0x0000F164D77E14A3)}}, + }, + { + {{UINT64_C(0x000ED5760B459019), UINT64_C(0x0002228AEA32C7DB), + UINT64_C(0x000728A39BB925A7), UINT64_C(0x000203FA2F13E567), + UINT64_C(0x00038462A9F1BA7C)}, + {UINT64_C(0x0004BD4EC1ABD7B1), UINT64_C(0x0000B5AE953DC16B), + UINT64_C(0x00033E07D29EA8C5), UINT64_C(0x00054599995A7CB0), + UINT64_C(0x000156E38D3AC76E)}}, + {{UINT64_C(0x00020D2F2D61CF6A), UINT64_C(0x000773029C680360), + UINT64_C(0x0005052970E628E8), UINT64_C(0x0001743A89EE6C31), + UINT64_C(0x000086CD11F0DC5D)}, + {UINT64_C(0x0005C5977FD6C080), UINT64_C(0x00027FE3AE450F63), + UINT64_C(0x00021F4ED6717373), UINT64_C(0x00022A3B606C8A66), + UINT64_C(0x00052EAC1F03F5E2)}}, + {{UINT64_C(0x000F339A2B5CE371), UINT64_C(0x00065E19D41D0666), + UINT64_C(0x0007287E48FAD9EA), UINT64_C(0x000471066E33BE31), + UINT64_C(0x000679F03495F090)}, + {UINT64_C(0x00074B03158B9D31), UINT64_C(0x0005EA499F4A04EB), + UINT64_C(0x0005FEEB553C1808), UINT64_C(0x000397D697ED49B1), + UINT64_C(0x0000B67F077DD63D)}}, + {{UINT64_C(0x0003C03AE2687F73), UINT64_C(0x00079CC5B29E02D3), + UINT64_C(0x00072367F9DA54CC), UINT64_C(0x0007DF9A3AD9529A), + UINT64_C(0x0001CFAFB9504592)}, + {UINT64_C(0x00068ACC89A8EE8B), UINT64_C(0x0004AFC769D61DA5), + UINT64_C(0x0006F0E9603608BC), UINT64_C(0x0006792F936B1E02), + UINT64_C(0x0000F1398ED3BF93)}}, + {{UINT64_C(0x000671CA92F0E827), UINT64_C(0x0006525CA7C69927), + UINT64_C(0x000171200FBFEAFC), UINT64_C(0x0007372EE50A7A5F), + UINT64_C(0x0006B675F2E394EC)}, + {UINT64_C(0x00007DAA7D3D0D62), UINT64_C(0x00016FD73FAB54B1), + UINT64_C(0x00067F158C5CC197), UINT64_C(0x000283CEF99745BD), + UINT64_C(0x0003348A74E2E770)}}, + {{UINT64_C(0x00066F8CDCF522E3), UINT64_C(0x0006982F90C04FE6), + UINT64_C(0x0007F81A0CED981E), UINT64_C(0x00043551059F8155), + UINT64_C(0x0001AFA647940834)}, + {UINT64_C(0x0007CED8C2304313), UINT64_C(0x0005AE6CE56CC0C8), + UINT64_C(0x000137FF230DA040), UINT64_C(0x000568D65C179394), + UINT64_C(0x000283CD25568788)}}, + {{UINT64_C(0x0002AAC2440B7F74), UINT64_C(0x0001F509834690FE), + UINT64_C(0x00045D2233CE00BE), UINT64_C(0x000222595A3D079C), + UINT64_C(0x00027C0FF58F688E)}, + {UINT64_C(0x0001D4B3F39E60B3), UINT64_C(0x0004CC3A253B5201), + UINT64_C(0x0002333A105146C0), UINT64_C(0x00069062190DB8DD), + UINT64_C(0x0005D0790291AD5A)}}, + {{UINT64_C(0x000F2D0FB16FC7F9), UINT64_C(0x000619F0C8B78C4A), + UINT64_C(0x0005A8CCA7C6916F), UINT64_C(0x0001916D4D36752A), + UINT64_C(0x0001023EF9FD86D6)}, + {UINT64_C(0x000168AAB3670612), UINT64_C(0x0005D8B15486E18B), + UINT64_C(0x00063DD0999E8E18), UINT64_C(0x0006162366202858), + UINT64_C(0x0001A4A2C4870979)}}, + {{UINT64_C(0x000CEFE4409994EE), UINT64_C(0x00055DA9B44A7A13), + UINT64_C(0x000106DF8096A1CD), UINT64_C(0x00032D3E8584E2B6), + UINT64_C(0x0005DD046ADEB104)}, + {UINT64_C(0x000B9B4FF6F4202A), UINT64_C(0x0004ACB4DBC87A7B), + UINT64_C(0x0004A78645C47D53), UINT64_C(0x0007903BE0C0CBED), + UINT64_C(0x0006FAA43697CCE6)}}, + {{UINT64_C(0x0005A494E4501DAE), UINT64_C(0x0000463C338F2697), + UINT64_C(0x000412F90982A2D3), UINT64_C(0x0004A9D3F24715D7), + UINT64_C(0x00072482CA04194D)}, + {UINT64_C(0x00035900B4AF93E8), UINT64_C(0x000492FB85261015), + UINT64_C(0x0002523C6C2876BB), UINT64_C(0x0000406C75A05701), + UINT64_C(0x0000BA73DF37C857)}}, + {{UINT64_C(0x000ACB525BB4074B), UINT64_C(0x00044377012C6937), + UINT64_C(0x0000AC6E54E5EE1E), UINT64_C(0x00075073183EEEE0), + UINT64_C(0x0000ED70C9270A43)}, + {UINT64_C(0x0001C2882CD5040F), UINT64_C(0x0006F51F4C4C0E11), + UINT64_C(0x0005792A7C9CEA96), UINT64_C(0x0005AE0379BAEF75), + UINT64_C(0x0003DEBB57FC40B0)}}, + {{UINT64_C(0x00014FFB15BBCF14), UINT64_C(0x00039E25E41EAB98), + UINT64_C(0x0007FF955A848443), UINT64_C(0x00020BC48CD89492), + UINT64_C(0x0007196CDE655F9B)}, + {UINT64_C(0x0007849F69377955), UINT64_C(0x0003C18A2D36539D), + UINT64_C(0x00027E1E94033F9C), UINT64_C(0x0000DE30941EF01B), + UINT64_C(0x00008B8E3FC11EC7)}}, + {{UINT64_C(0x000B06E3EEF0F157), UINT64_C(0x0004007F2ABB1B66), + UINT64_C(0x0007DFEC2C450329), UINT64_C(0x00064D8A2197B0C0), + UINT64_C(0x000190C79FC2CD88)}, + {UINT64_C(0x0006B06B6D6D97E1), UINT64_C(0x0001CA489187DECE), + UINT64_C(0x0002C0A5779B1894), UINT64_C(0x0004B2CA6FE0E365), + UINT64_C(0x00043EC85DD748E5)}}, + {{UINT64_C(0x00066D07404CC6B4), UINT64_C(0x0000A577C566F3FB), + UINT64_C(0x0007AB67D3AD570A), UINT64_C(0x0001F1E9C9856550), + UINT64_C(0x00003FA767C56FD6)}, + {UINT64_C(0x0002CA0442245C81), UINT64_C(0x0005F36D42201ED8), + UINT64_C(0x000002F30D51F27E), UINT64_C(0x0004E5D7DA6C00D3), + UINT64_C(0x000114C4C91AB28A)}}, + {{UINT64_C(0x000CEE008612CF1A), UINT64_C(0x0002CF14346EA4C4), + UINT64_C(0x0006F8B9D96AE467), UINT64_C(0x0003F33F3E39A186), + UINT64_C(0x0004B642581414E2)}, + {UINT64_C(0x000A079B869D7477), UINT64_C(0x00030DA90A235CA3), + UINT64_C(0x0006AD614FDCB2C3), UINT64_C(0x0004852A604A706D), + UINT64_C(0x0000157A3839DED1)}}, + {{UINT64_C(0x000B59E444C4EB0D), UINT64_C(0x00011676B4ECD851), + UINT64_C(0x0003D31CB1B12DF9), UINT64_C(0x00027C08F496EEA1), + UINT64_C(0x0000BE08415158FA)}, + {UINT64_C(0x000A04AEF0929EB4), UINT64_C(0x0002CE3EB2563B82), + UINT64_C(0x00020C0E6F08D318), UINT64_C(0x0006285C2F629C66), + UINT64_C(0x00021EDBA60C1ABB)}}, + }, + { + {{UINT64_C(0x000FBF96E6D13256), UINT64_C(0x0000B68470D1AAB9), + UINT64_C(0x0000BC465046AA9B), UINT64_C(0x0003D5203520917C), + UINT64_C(0x0004B417116FA14F)}, + {UINT64_C(0x0009A3647E0FAC1A), UINT64_C(0x00071A016007859E), + UINT64_C(0x0000A7B31060BC87), UINT64_C(0x000128F617FE1085), + UINT64_C(0x00006EB4B51971C6)}}, + {{UINT64_C(0x00056FA126BE097D), UINT64_C(0x0000CA15EBCCDD85), + UINT64_C(0x00049ED9E3DC0A72), UINT64_C(0x0000534A6F2D34FF), + UINT64_C(0x000727D2633CD1B3)}, + {UINT64_C(0x000077AEFB30F457), UINT64_C(0x00024BD5A728DA2D), + UINT64_C(0x0002C9AF355CE67C), UINT64_C(0x00073999222C6A81), + UINT64_C(0x0005ABF888781842)}}, + {{UINT64_C(0x0007E2B53855E82E), UINT64_C(0x00036F75F5B38D7D), + UINT64_C(0x0001FC3826F69222), UINT64_C(0x000551148FF627FA), + UINT64_C(0x0000E21BFC642276)}, + {UINT64_C(0x000CD49503E4AE88), UINT64_C(0x00047C1EF9736822), + UINT64_C(0x0002AEC417D9DE9E), UINT64_C(0x000564FF1CD1C7C3), + UINT64_C(0x000102F631F03439)}}, + {{UINT64_C(0x000A9896A4813696), UINT64_C(0x0003523D6EEBE38D), + UINT64_C(0x0001F9CAD687DDF8), UINT64_C(0x00071E17B9265FA2), + UINT64_C(0x0003DC4E4A6526C5)}, + {UINT64_C(0x000380987DFF3364), UINT64_C(0x00031775ED80285C), + UINT64_C(0x0003F94142B2664D), UINT64_C(0x00019B13FD7656C1), + UINT64_C(0x0003839548BAC133)}}, + {{UINT64_C(0x0009059C15C5F8C7), UINT64_C(0x0005DCE55CE2EB32), + UINT64_C(0x00064F44509419F0), UINT64_C(0x0005813AAEBDF343), + UINT64_C(0x00066F8F9B0F508F)}, + {UINT64_C(0x0004D3AC3084DCF0), UINT64_C(0x00046DB6042359EF), + UINT64_C(0x0000707D3EFD6F04), UINT64_C(0x00039BE123FBD3E7), + UINT64_C(0x000374429C7AA556)}}, + {{UINT64_C(0x0009049F51AC9B9F), UINT64_C(0x00069F045B69DBA5), + UINT64_C(0x0003599C0A66FE14), UINT64_C(0x0007E37C062CF77A), + UINT64_C(0x0004EE7A09B3E7EA)}, + {UINT64_C(0x000BBEBF02917C14), UINT64_C(0x00000A62E0342107), + UINT64_C(0x00018B2A672798B2), UINT64_C(0x0005D31A994A35E2), + UINT64_C(0x00025FE7CA47E56C)}}, + {{UINT64_C(0x000C0FA78FD24FB4), UINT64_C(0x00014B8508F3AF59), + UINT64_C(0x0001D75539AA97B4), UINT64_C(0x00030FD522CD0AED), + UINT64_C(0x0001AEF85FCB95C2)}, + {UINT64_C(0x000CE2C59DBEBDCB), UINT64_C(0x0002F12AEBAFF60C), + UINT64_C(0x0004DE71444F1374), UINT64_C(0x00053A44DD8A0024), + UINT64_C(0x000043DEE537DC07)}}, + {{UINT64_C(0x000F9CB8CD409462), UINT64_C(0x00007A5EA9DCFC77), + UINT64_C(0x00015B9C5672DDAC), UINT64_C(0x0002DEC06E0CD7B9), + UINT64_C(0x0003829D7DBD8C4B)}, + {UINT64_C(0x000148A317174A3E), UINT64_C(0x0006C135D451348E), + UINT64_C(0x000614DB1EF72449), UINT64_C(0x0005EA3039A699C9), + UINT64_C(0x0005F393C9921CFD)}}, + {{UINT64_C(0x000BD8E78399A837), UINT64_C(0x000326AC044CB6BE), + UINT64_C(0x000421B7FF19FDFB), UINT64_C(0x0004F2CE100BD03E), + UINT64_C(0x00064D848DAF30F8)}, + {UINT64_C(0x0009B499ED1FE2E3), UINT64_C(0x0006841BA92C3FA2), + UINT64_C(0x00061A84C7C8363B), UINT64_C(0x00014616602672A2), + UINT64_C(0x00056FFF0F1EB104)}}, + {{UINT64_C(0x0006C40BEAC31BB5), UINT64_C(0x00018E17F67F79D1), + UINT64_C(0x000226CDC803E440), UINT64_C(0x0001B07C6F9AA066), + UINT64_C(0x0000F7F08F44D7E2)}, + {UINT64_C(0x000A2B8B71A878F2), UINT64_C(0x00005451E156E406), + UINT64_C(0x0003F11116E5324A), UINT64_C(0x0007F48FABEB6CE3), + UINT64_C(0x00041EA4652B5893)}}, + {{UINT64_C(0x00080127877EB48E), UINT64_C(0x0004F352E0372300), + UINT64_C(0x0004B4EA89740CB2), UINT64_C(0x0002DA8620AA1FD0), + UINT64_C(0x0003DD845928A4A7)}, + {UINT64_C(0x0003B8912897B9CF), UINT64_C(0x00024BFED91B1D58), + UINT64_C(0x0002574ECC3E424D), UINT64_C(0x00037D04B7723902), + UINT64_C(0x00006D7693B13AD1)}}, + {{UINT64_C(0x00059E9FDEA9C944), UINT64_C(0x000428DEC2AC2842), + UINT64_C(0x000497AAFFA03EFC), UINT64_C(0x0005FB9332E47452), + UINT64_C(0x00056C69D8A0C638)}, + {UINT64_C(0x0009A23A2C6E31BC), UINT64_C(0x00003ED95E52136D), + UINT64_C(0x00034F2DF9A2277A), UINT64_C(0x0006E2B8948FCBBB), + UINT64_C(0x0002E56F673B687E)}}, + {{UINT64_C(0x00011F6068178EE8), UINT64_C(0x000571D59E914ACF), + UINT64_C(0x00053B116D7B9565), UINT64_C(0x0000819A7CA2F5C6), + UINT64_C(0x00005D54B6D9C418)}, + {UINT64_C(0x000117E6E5F4423F), UINT64_C(0x0007BB7D377A5DF8), + UINT64_C(0x00046F1DCCE6741F), UINT64_C(0x000624C8A21373BD), + UINT64_C(0x00023E4D22A016DF)}}, + {{UINT64_C(0x0003C0EAC69D0DE5), UINT64_C(0x0006CF31DC831402), + UINT64_C(0x00002BAD0A426ACA), UINT64_C(0x00007864FD5F0E1A), + UINT64_C(0x00013C70B1A51E7D)}, + {UINT64_C(0x000E7A74CF7DE7B7), UINT64_C(0x00059198080C0E1F), + UINT64_C(0x0002341CEA45F848), UINT64_C(0x000640334A0B0BD2), + UINT64_C(0x00073CF34A927A18)}}, + {{UINT64_C(0x00078BB4A9FDF621), UINT64_C(0x000042F21FD366CA), + UINT64_C(0x00039E15CF3E8543), UINT64_C(0x000371C9BC5AD61E), + UINT64_C(0x0004B624E18568CB)}, + {UINT64_C(0x00078D62B4ADE692), UINT64_C(0x0004A079DD8E7902), + UINT64_C(0x00029FA46937F35F), UINT64_C(0x0001C7744CC75169), + UINT64_C(0x0007C882CBF3BBAA)}}, + {{UINT64_C(0x0005C23B09112390), UINT64_C(0x0001091F52EA9318), + UINT64_C(0x00047D031BDBD618), UINT64_C(0x00042176E850AF62), + UINT64_C(0x000255756EBA373D)}, + {UINT64_C(0x0008E197B7FDF0D5), UINT64_C(0x0001277E4F639650), + UINT64_C(0x00002E5B807E9012), UINT64_C(0x0005C7BCAB505A9F), + UINT64_C(0x0001A25FDD4D5CF9)}}, + }, + { + {{UINT64_C(0x0005828E38661C25), UINT64_C(0x00014BC3733F569B), + UINT64_C(0x0003412CB1C71958), UINT64_C(0x00004DC731462284), + UINT64_C(0x0001245D94326762)}, + {UINT64_C(0x000EBD2384BE5F68), UINT64_C(0x000697E3904C2BC5), + UINT64_C(0x0005D783FCBC6030), UINT64_C(0x0004CB401C37BE4C), + UINT64_C(0x00011FFCCA4123CC)}}, + {{UINT64_C(0x00010495DBB211E9), UINT64_C(0x00025442F7CC4E5C), + UINT64_C(0x000561DB7856A6B7), UINT64_C(0x00052325F162CCFC), + UINT64_C(0x00054EF209D81AB5)}, + {UINT64_C(0x000C391A115200C4), UINT64_C(0x000138919D37F23E), + UINT64_C(0x00038909464B887E), UINT64_C(0x0005167B307E5774), + UINT64_C(0x00032242323F9935)}}, + {{UINT64_C(0x0007ED46EC46A583), UINT64_C(0x000392288DCC4F7A), + UINT64_C(0x0007FD2EB94B33B0), UINT64_C(0x000432CF9FE955B4), + UINT64_C(0x0002450E4D8A038A)}, + {UINT64_C(0x0007AFF478477329), UINT64_C(0x0004D48903D3CD08), + UINT64_C(0x000708276A425531), UINT64_C(0x000606FD71DB1D37), + UINT64_C(0x000142BEBD75DEB9)}}, + {{UINT64_C(0x000B1FA45676391E), UINT64_C(0x00069692EEDD270E), + UINT64_C(0x000498670EBF7399), UINT64_C(0x00045C7632B7CFC2), + UINT64_C(0x00019A09AE2A79FB)}, + {UINT64_C(0x0002CA58A8153BB1), UINT64_C(0x00031337FF678477), + UINT64_C(0x000418997426A417), UINT64_C(0x000655A7996C5020), + UINT64_C(0x0001936EB94D8E93)}}, + {{UINT64_C(0x0009A2630289A595), UINT64_C(0x0000CA8CFCDBA537), + UINT64_C(0x00056FF9F6E6FE48), UINT64_C(0x0005B53BE7E2FC07), + UINT64_C(0x0000C8AA9E431C96)}, + {UINT64_C(0x0008F62B7EC7F8B4), UINT64_C(0x000759CD5D73D9A2), + UINT64_C(0x00015AB8E3A25009), UINT64_C(0x0004CC8936067C91), + UINT64_C(0x00054FC0E3CFD648)}}, + {{UINT64_C(0x0006FA9F5E920FA0), UINT64_C(0x0000B770A49D3EEC), + UINT64_C(0x000582B079BCD64F), UINT64_C(0x0001C35560408E28), + UINT64_C(0x000044A7950A6FFB)}, + {UINT64_C(0x000B3A87FED1B513), UINT64_C(0x00067CE537DA0A6A), + UINT64_C(0x000707594DB6F3AF), UINT64_C(0x00057EC75ED66C23), + UINT64_C(0x00069E23F2649E30)}}, + {{UINT64_C(0x000AA072D6126519), UINT64_C(0x0001BE00610679A4), + UINT64_C(0x0006C412907F1A7D), UINT64_C(0x000163773E6AAA30), + UINT64_C(0x0003BC5F3E291E74)}, + {UINT64_C(0x000809166205E3BB), UINT64_C(0x000785499CE64078), + UINT64_C(0x0000E3D8FC7F29B8), UINT64_C(0x0007E0EF22E29934), + UINT64_C(0x00030E9A8D252A88)}}, + {{UINT64_C(0x0003A829DCC73EE8), UINT64_C(0x000699D7B9BF4EAD), + UINT64_C(0x0007D4B17CC3C7C2), UINT64_C(0x0002905BEE0EE901), + UINT64_C(0x000547FF8275C891)}, + {UINT64_C(0x00052B2910F7F25A), UINT64_C(0x00068F778D2E5A27), + UINT64_C(0x0001B85563815942), UINT64_C(0x00013DF08225311A), + UINT64_C(0x0007609FDFF08594)}}, + {{UINT64_C(0x000B2E2EC305F2D5), UINT64_C(0x0000996BBC6E4FA9), + UINT64_C(0x00030B4CB4168F67), UINT64_C(0x0007426FB602045D), + UINT64_C(0x0000943C5ADFF99F)}, + {UINT64_C(0x000E48A53EA42C24), UINT64_C(0x00057678B9589CBD), + UINT64_C(0x00052006DCF8D83F), UINT64_C(0x00053D7E245AD4FD), + UINT64_C(0x00077A9E12D48B9D)}}, + {{UINT64_C(0x0007CAC10865F9CF), UINT64_C(0x000578B7D35B3A19), + UINT64_C(0x000708EEEBB1E6E7), UINT64_C(0x0002ABFEA46C5555), + UINT64_C(0x0004CA5DC5AE086E)}, + {UINT64_C(0x000A36376B7A93D2), UINT64_C(0x000188095575D2D0), + UINT64_C(0x0000393EF6F8634C), UINT64_C(0x0007C039388938C2), + UINT64_C(0x00031010E90AC0B1)}}, + {{UINT64_C(0x0007DF172B9EB768), UINT64_C(0x000178D003BB4489), + UINT64_C(0x000783A956E76079), UINT64_C(0x00025ACCD6C14EC3), + UINT64_C(0x00046178A9DC6279)}, + {UINT64_C(0x00015D4ECB7BD0F4), UINT64_C(0x0006C0DC296E2C56), + UINT64_C(0x00053C51B36422FB), UINT64_C(0x000549E0F4E67DE5), + UINT64_C(0x000389CCC23186D0)}}, + {{UINT64_C(0x000C532F03C27F78), UINT64_C(0x00014A6C28ABF4C3), + UINT64_C(0x0003F90A141B9A5B), UINT64_C(0x00069B2DDF5CD3B9), + UINT64_C(0x0002CA851CF01E00)}, + {UINT64_C(0x00059440324910F2), UINT64_C(0x000729FD333620F7), + UINT64_C(0x00003CD70BDC8C7B), UINT64_C(0x00040C73BD640FDD), + UINT64_C(0x0004332FAA2FFBA1)}}, + {{UINT64_C(0x0006664ABFD5681D), UINT64_C(0x000074E8C029237E), + UINT64_C(0x0006201249B2B7BD), UINT64_C(0x000529E03D66B256), + UINT64_C(0x000107D890CE2D92)}, + {UINT64_C(0x000F2B9FEE1231EC), UINT64_C(0x00037A3DA4060374), + UINT64_C(0x0000D270F3481DAF), UINT64_C(0x000748DD10EC51C1), + UINT64_C(0x000313AA5B16B013)}}, + {{UINT64_C(0x000DF0E13A34CBFC), UINT64_C(0x0003631767D8B18E), + UINT64_C(0x00006B84D66D0E80), UINT64_C(0x0003C82463233CE9), + UINT64_C(0x00000EC0876ED459)}, + {UINT64_C(0x000BFA9BFE16F36E), UINT64_C(0x0002B16C346CBE77), + UINT64_C(0x0001F03779578316), UINT64_C(0x0005B6D0ECC3F5EA), + UINT64_C(0x000392C5DC949B1E)}}, + {{UINT64_C(0x0003CA709674F552), UINT64_C(0x0004286A064869F6), + UINT64_C(0x0000E2BB1ED6DF2A), UINT64_C(0x0004B163E6232515), + UINT64_C(0x0007FC5BBC23EE21)}, + {UINT64_C(0x00048D96D1562488), UINT64_C(0x0004D9D561FE91F5), + UINT64_C(0x0005807F49D14F0C), UINT64_C(0x0000A483741FDC4B), + UINT64_C(0x0002562EC3A9714B)}}, + {{UINT64_C(0x00077D2D04C4F8B3), UINT64_C(0x0003A4D092998582), + UINT64_C(0x00036F34A3156092), UINT64_C(0x00036043316B80D2), + UINT64_C(0x000387899C0D0389)}, + {UINT64_C(0x0001D232B890C1FF), UINT64_C(0x0002BB8E2A3A7B1E), + UINT64_C(0x000674044C311F30), UINT64_C(0x00042AABC2D14B2F), + UINT64_C(0x0005FA4E41857301)}}, + }, + { + {{UINT64_C(0x000B8C87FBE21CA1), UINT64_C(0x0004654DD4516E9E), + UINT64_C(0x0004D4C04111E84C), UINT64_C(0x00052F54D6883A97), + UINT64_C(0x00058FBFACC04077)}, + {UINT64_C(0x0008B1B2BD6C47E6), UINT64_C(0x000406C2B52FDDD1), + UINT64_C(0x0005CD0AC07AFC39), UINT64_C(0x00025702B023D878), + UINT64_C(0x0000457D9E01D39B)}}, + {{UINT64_C(0x000357AC0E5357E1), UINT64_C(0x000603BB8F446D94), + UINT64_C(0x000526C39B423BF6), UINT64_C(0x000652EC95741E38), + UINT64_C(0x0003AE110F98F0B7)}, + {UINT64_C(0x00062637EE945699), UINT64_C(0x00049EF673613CC9), + UINT64_C(0x00016CE0E4F9387C), UINT64_C(0x000651CEC355D9BE), + UINT64_C(0x000268F9AB67FA18)}}, + {{UINT64_C(0x00093F3302F7A85C), UINT64_C(0x00045C7103A537C2), + UINT64_C(0x000019C168EFCF12), UINT64_C(0x0000FCE8AC30255C), + UINT64_C(0x00007B9C2CD636AF)}, + {UINT64_C(0x000C7C15BA124E6A), UINT64_C(0x0006096943B520B1), + UINT64_C(0x00062EFD361E552A), UINT64_C(0x0001B396CD943BA3), + UINT64_C(0x000246C5ECE49CB6)}}, + {{UINT64_C(0x000C8B07844D0432), UINT64_C(0x000193AA51F64178), + UINT64_C(0x000652032368D613), UINT64_C(0x0000584636777EBD), + UINT64_C(0x00076EBD45AE24F8)}, + {UINT64_C(0x00083A8832371D4D), UINT64_C(0x00031C19F58C6C5D), + UINT64_C(0x0006B31CAFC81A4C), UINT64_C(0x0000F4FB72B9C793), + UINT64_C(0x00051077AABFF976)}}, + {{UINT64_C(0x000AFF8E199C7745), UINT64_C(0x00000B6C8E8C41D7), + UINT64_C(0x0000E037DBA37A3B), UINT64_C(0x0005BFBB2E8C259E), + UINT64_C(0x0003066835FD1B75)}, + {UINT64_C(0x000612167989FFA4), UINT64_C(0x0007902FB713C890), + UINT64_C(0x0000A6D25B2214DB), UINT64_C(0x00060B1391B6BBD8), + UINT64_C(0x0004E350B3BCA4E4)}}, + {{UINT64_C(0x000F3F02AF47CC2D), UINT64_C(0x00060388DA43D42C), + UINT64_C(0x000632F6353FB249), UINT64_C(0x0005F31E07849F64), + UINT64_C(0x0005CE122608D9A5)}, + {UINT64_C(0x0006007E5350D389), UINT64_C(0x0007742ACF4259FE), + UINT64_C(0x000701EBC914081D), UINT64_C(0x000531138485C0D1), + UINT64_C(0x00076919B7CB5969)}}, + {{UINT64_C(0x000EC0DD3F0BB75C), UINT64_C(0x000517421A5944B2), + UINT64_C(0x00064E3D5BDAF79C), UINT64_C(0x00077DAC3841BA0D), + UINT64_C(0x000274CFC101EC2D)}, + {UINT64_C(0x0008CD42DD1C1CFE), UINT64_C(0x0000572F81FDFD0F), + UINT64_C(0x0007BBC498B713BC), UINT64_C(0x00034B4691EB371D), + UINT64_C(0x00064FF50BFB9339)}}, + {{UINT64_C(0x000A74289BD66C07), UINT64_C(0x00041AE49E4EF440), + UINT64_C(0x00016BD641D76BFB), UINT64_C(0x0006217734484D42), + UINT64_C(0x0007801CB15FA7FF)}, + {UINT64_C(0x0006A7999951B22E), UINT64_C(0x00073B7132140BC1), + UINT64_C(0x0001CB156A92521C), UINT64_C(0x00047DAE07D429C2), + UINT64_C(0x00034176AE2F6DD1)}}, + {{UINT64_C(0x000F38AE8B585B7C), UINT64_C(0x0007D0F5E5336093), + UINT64_C(0x000634B7780008CA), UINT64_C(0x0006CBB99339E01D), + UINT64_C(0x000048FD2054F121)}, + {UINT64_C(0x000DA75057482FC7), UINT64_C(0x000659E2C0AC4ADB), + UINT64_C(0x0002839CEE7F858A), UINT64_C(0x0005F0AC5233F317), + UINT64_C(0x0007DB0CE3A922D5)}}, + {{UINT64_C(0x00026BED2D1D7FC7), UINT64_C(0x000040FD51645942), + UINT64_C(0x0001C6893567FE50), UINT64_C(0x0007BEAA7D726BFC), + UINT64_C(0x0004207CB6F8125B)}, + {UINT64_C(0x000C744046E92E4A), UINT64_C(0x0004889DCCE9C25F), + UINT64_C(0x000298D4EBD978FD), UINT64_C(0x000538378F3B449E), + UINT64_C(0x000103ECF3526132)}}, + {{UINT64_C(0x00070E6E240ACD3F), UINT64_C(0x0002D0E910C2C5C5), + UINT64_C(0x00047C4B7A150503), UINT64_C(0x0007E03610CFC713), + UINT64_C(0x000012B1D48802DF)}, + {UINT64_C(0x0005F52F4DB5F186), UINT64_C(0x000214FE444DAC5B), + UINT64_C(0x00040B88A70B4E77), UINT64_C(0x00028DB30B535336), + UINT64_C(0x000269074FCBDB43)}}, + {{UINT64_C(0x0007D8A7FAA53FDE), UINT64_C(0x00073B94B3141959), + UINT64_C(0x000479FD2A22E7BB), UINT64_C(0x00023433E0E79ABC), + UINT64_C(0x0007443BEA34A6F6)}, + {UINT64_C(0x000FEF139C8576CC), UINT64_C(0x00050FBF061F5893), + UINT64_C(0x0004558E31BB1220), UINT64_C(0x000315C237E0227E), + UINT64_C(0x0000B5335F077DD7)}}, + {{UINT64_C(0x00045CB3299CB9CB), UINT64_C(0x0006C0467C3B394D), + UINT64_C(0x0004E14A26B6171B), UINT64_C(0x00038CC5A50E5AA7), + UINT64_C(0x00005EDE90305A8E)}, + {UINT64_C(0x0007D811A19C3957), UINT64_C(0x0004D84D2FDD61E8), + UINT64_C(0x0003F360AB0C2427), UINT64_C(0x0006D66D2AB4A909), + UINT64_C(0x0007376DB64F64BE)}}, + {{UINT64_C(0x00051348CBF420A8), UINT64_C(0x0003D930ED834A4F), + UINT64_C(0x000189403BF27676), UINT64_C(0x000181B04E39E3D0), + UINT64_C(0x00005C72602F7C87)}, + {UINT64_C(0x000FF27D92F3F8A6), UINT64_C(0x00057F1C3BE718B0), + UINT64_C(0x0007DB5FE00D8AC2), UINT64_C(0x0006508234B8F600), + UINT64_C(0x00068F5AC550C57D)}}, + {{UINT64_C(0x000B437344372511), UINT64_C(0x0002CC307D9DF3CA), + UINT64_C(0x000065755E585F5C), UINT64_C(0x0004484FE311448A), + UINT64_C(0x00045D0A928F957F)}, + {UINT64_C(0x0009DC33DF29CABF), UINT64_C(0x00058AABC130136B), + UINT64_C(0x0006DD896642EBED), UINT64_C(0x0003DD5E6A93CDB6), + UINT64_C(0x00058BBD544A9587)}}, + {{UINT64_C(0x00023F2F46B77A44), UINT64_C(0x00022E0E5444326D), + UINT64_C(0x0000C682DDCB6C24), UINT64_C(0x000174710E87D9FD), + UINT64_C(0x00062440C79CB254)}, + {UINT64_C(0x000C0B15406C928C), UINT64_C(0x0004D56FB1459CB2), + UINT64_C(0x00012D1E88446D8A), UINT64_C(0x0000D1CDDEF21AA8), + UINT64_C(0x0002C8A130076C5D)}}, + }, + { + {{UINT64_C(0x000A20A5A11AEE99), UINT64_C(0x000658F7C4C596BF), + UINT64_C(0x00031596DD0E0F0C), UINT64_C(0x0007FC75CBADE15C), + UINT64_C(0x00024BB69877DB99)}, + {UINT64_C(0x000F47EE95A31E2E), UINT64_C(0x0006090BCAD2326F), + UINT64_C(0x0003F84B5AAC8FE6), UINT64_C(0x00028823088CE92F), + UINT64_C(0x0002532BF86570CF)}}, + {{UINT64_C(0x0005E2861D5F12F9), UINT64_C(0x000537E8118D77D5), + UINT64_C(0x000631B8799698AE), UINT64_C(0x0003CC1412721F76), + UINT64_C(0x000624DB7CBC35F6)}, + {UINT64_C(0x0007E4CF1383E30F), UINT64_C(0x0000ACF29C3392AB), + UINT64_C(0x00027424E45CBECE), UINT64_C(0x000531D9F8ABB684), + UINT64_C(0x00076C6093C294A1)}}, + {{UINT64_C(0x000536AC6395662A), UINT64_C(0x000239188AAD2807), + UINT64_C(0x00031EADFE0E7BEB), UINT64_C(0x00036455A85285DD), + UINT64_C(0x0000DFA70C45530F)}, + {UINT64_C(0x000AA7B94BEC12BF), UINT64_C(0x000127AF29368714), + UINT64_C(0x0005B0B1FF2913B2), UINT64_C(0x0005B474E2A2BCDF), + UINT64_C(0x0005B2B977212BD9)}}, + {{UINT64_C(0x000FFD50E811BC89), UINT64_C(0x0003FA8AA1288DF8), + UINT64_C(0x0004CE42359D496A), UINT64_C(0x0005AD22EC8B66B0), + UINT64_C(0x00035AD636E886A1)}, + {UINT64_C(0x00036AEC1F03E773), UINT64_C(0x0004DB5A8BCA9BB7), + UINT64_C(0x000378BD3B9E00D0), UINT64_C(0x0002F9A1B2588A18), + UINT64_C(0x00059374C4B84DCE)}}, + {{UINT64_C(0x000A5C78C0A09501), UINT64_C(0x000438418122FEF3), + UINT64_C(0x00036F391A493F51), UINT64_C(0x0001C1581DA10D11), + UINT64_C(0x0004D380EFB19759)}, + {UINT64_C(0x0007AE14448E2F04), UINT64_C(0x0003E5E01CA7FD7A), + UINT64_C(0x00014C4162795998), UINT64_C(0x0007BBA0161739BC), + UINT64_C(0x0001CC54400F1EC4)}}, + {{UINT64_C(0x000B4104835823A8), UINT64_C(0x000049050C8FF31A), + UINT64_C(0x00078137F3671127), UINT64_C(0x000291A0D2FD7BCD), + UINT64_C(0x0000C5045563A528)}, + {UINT64_C(0x000216E06610C3FE), UINT64_C(0x0006D4EB6BA949C6), + UINT64_C(0x0005980545DD7A0A), UINT64_C(0x0003C47D2617FCCA), + UINT64_C(0x0004E4B15E594DAD)}}, + {{UINT64_C(0x000F8BABBDF00F70), UINT64_C(0x00063DF37D0B03B9), + UINT64_C(0x0003D691146AF8DE), UINT64_C(0x00002891C5C93DC5), + UINT64_C(0x0001CD90615B01A9)}, + {UINT64_C(0x000D5D595EBCBD12), UINT64_C(0x000179C70C411F6B), + UINT64_C(0x000470395C25F3BB), UINT64_C(0x00005F2DBD08ADC8), + UINT64_C(0x000177CA728981CA)}}, + {{UINT64_C(0x0000E456B1F71055), UINT64_C(0x0007362E63D73807), + UINT64_C(0x00040975D13C6956), UINT64_C(0x00077C8546A0DDEC), + UINT64_C(0x000255C05FCBFFB8)}, + {UINT64_C(0x0009D08BF388FA6C), UINT64_C(0x0005479123177C4E), + UINT64_C(0x0006EF2CA17DD9CC), UINT64_C(0x0000A28B766E8543), + UINT64_C(0x000725EF11C998DB)}}, + {{UINT64_C(0x000AFD776D46AE2B), UINT64_C(0x0003A2987F39DE71), + UINT64_C(0x00004318A4AD86B8), UINT64_C(0x00029CB17C4E8BA2), + UINT64_C(0x00068C1611368562)}, + {UINT64_C(0x00072BB4043C69E3), UINT64_C(0x000355B0D908C97C), + UINT64_C(0x0001D84483454BEA), UINT64_C(0x0001086B129DA054), + UINT64_C(0x00077E8521E8B03C)}}, + {{UINT64_C(0x000483BAE3E96C40), UINT64_C(0x0001033C465DCD03), + UINT64_C(0x000144124D4C7602), UINT64_C(0x0000F90A0A3F2373), + UINT64_C(0x00021D2DDA9344D1)}, + {UINT64_C(0x000BCC16AC03E55C), UINT64_C(0x0007907B7596D0A7), + UINT64_C(0x0001FA7957776F16), UINT64_C(0x000330182BCE6E91), + UINT64_C(0x00044B0FCEC99956)}}, + {{UINT64_C(0x00057F6C0E0F3BFB), UINT64_C(0x000162B3C9264F2C), + UINT64_C(0x00041C4E863CD2BE), UINT64_C(0x00044D72FE16345A), + UINT64_C(0x000666FAA55BBB69)}, + {UINT64_C(0x000E5AD6ED951F40), UINT64_C(0x000420A55FD6D09E), + UINT64_C(0x00045DEBB67E01E4), UINT64_C(0x00057700CDA6B2E2), + UINT64_C(0x0002385BC90BA9CD)}}, + {{UINT64_C(0x000D7FBDBC6992BF), UINT64_C(0x000326A5E14A7861), + UINT64_C(0x000542159B191B29), UINT64_C(0x00078DF87B779043), + UINT64_C(0x0007D91072D769FC)}, + {UINT64_C(0x000F81B25D9A6F04), UINT64_C(0x0004F3DE069B4E88), + UINT64_C(0x0003D1D943A8CBC1), UINT64_C(0x00003F1FE40D629B), + UINT64_C(0x0003EC7B27C110AE)}}, + {{UINT64_C(0x000A3FB03B6CC730), UINT64_C(0x00023C7A1AE1D095), + UINT64_C(0x0004D884FC7D66EE), UINT64_C(0x0006892EDA82276A), + UINT64_C(0x0007E14DAC6F262A)}, + {UINT64_C(0x000078183982428A), UINT64_C(0x0000F555B51769F7), + UINT64_C(0x0002C306A05F265D), UINT64_C(0x0007359935B2E81E), + UINT64_C(0x00017E43ECD283C0)}}, + {{UINT64_C(0x00003A82E91E17BF), UINT64_C(0x0002819AB5CB8AC3), + UINT64_C(0x0004CCB84250F825), UINT64_C(0x0005B7B331D46BB5), + UINT64_C(0x0001D3BA6D0D999A)}, + {UINT64_C(0x000FED56D79EE4F6), UINT64_C(0x000159B4CD69EF9F), + UINT64_C(0x0001BFFE18B5C9B0), UINT64_C(0x0004736AD2A4D805), + UINT64_C(0x00034F5F044BA570)}}, + {{UINT64_C(0x0001343287CDEBA0), UINT64_C(0x00013D882BADAB71), + UINT64_C(0x0005CAD7B607FCC4), UINT64_C(0x00023E01BF809A99), + UINT64_C(0x0003312CA1620AC9)}, + {UINT64_C(0x000282755193459D), UINT64_C(0x0004995E4E82E3E5), + UINT64_C(0x0000CBCB85F02225), UINT64_C(0x0000D409BC19F795), + UINT64_C(0x00002E6EDB143CE9)}}, + {{UINT64_C(0x0004F31CB2D9BCCB), UINT64_C(0x000628A63902A713), + UINT64_C(0x0004F007BD385C5E), UINT64_C(0x0001F74B1F93394D), + UINT64_C(0x0003086A647FCB5C)}, + {UINT64_C(0x000398B0975F65D4), UINT64_C(0x0004AA9FDC040688), + UINT64_C(0x000332D91719B6C9), UINT64_C(0x00040BC443E8E4C7), + UINT64_C(0x00020AA4BACC6B0F)}}, + }, + { + {{UINT64_C(0x00082C1376036494), UINT64_C(0x000381809A5DC13F), + UINT64_C(0x0007A768F09F3FDD), UINT64_C(0x000024F9AD059DDF), + UINT64_C(0x000434FAA3001A00)}, + {UINT64_C(0x000F6C7E5397CE18), UINT64_C(0x000473965DA5203F), + UINT64_C(0x000022D664316484), UINT64_C(0x00017D08DDE3B42A), + UINT64_C(0x000032E15813D1D4)}}, + {{UINT64_C(0x000A24C7658BA0CB), UINT64_C(0x0004DAFAE0752E4D), + UINT64_C(0x00057FEE62416FAC), UINT64_C(0x0007CE89A50A1C66), + UINT64_C(0x0005B3A87DDA42C5)}, + {UINT64_C(0x00015A6DCD0D9750), UINT64_C(0x0000DC64FF4D1D60), + UINT64_C(0x00062BE62D48588D), UINT64_C(0x00044CED6F7DC105), + UINT64_C(0x00051FD1713A7272)}}, + {{UINT64_C(0x00031C0A4FBA8CD3), UINT64_C(0x00004D85D27BFFBD), + UINT64_C(0x00073687DDD1897B), UINT64_C(0x0003C18CABEB4462), + UINT64_C(0x000252009593038E)}, + {UINT64_C(0x0006A4B0F43B1F03), UINT64_C(0x0003596CEF096CE4), + UINT64_C(0x000370A6BA70C9EC), UINT64_C(0x000504FA8F22F8D9), + UINT64_C(0x00042EF23D58A32E)}}, + {{UINT64_C(0x00018C743658227A), UINT64_C(0x00059EB06D4851E7), + UINT64_C(0x000765C0B448C135), UINT64_C(0x0002B1CDBE044E7F), + UINT64_C(0x0003BDF03C33FC4C)}, + {UINT64_C(0x0000B8DD5FB4A505), UINT64_C(0x00042CD448FC94EE), + UINT64_C(0x00041528FB2A0C40), UINT64_C(0x0006016CCFD12E3D), + UINT64_C(0x00050D6616BCB42A)}}, + {{UINT64_C(0x00040B651D6D68FC), UINT64_C(0x0004F96B3665F295), + UINT64_C(0x00032453022450B6), UINT64_C(0x00062498B1682588), + UINT64_C(0x0000FAB72B2FCCDF)}, + {UINT64_C(0x000274624DFAF9A7), UINT64_C(0x0004DA952FBAD71D), + UINT64_C(0x0000C06372160275), UINT64_C(0x00065F4951C1680C), + UINT64_C(0x00020B63127A4A88)}}, + {{UINT64_C(0x000050A3603E9997), UINT64_C(0x0003A6ADCDF25D68), + UINT64_C(0x0001ADDCEB37FF27), UINT64_C(0x0004AE1B473A39F1), + UINT64_C(0x00008E1D46706170)}, + {UINT64_C(0x000BDEA888583D12), UINT64_C(0x00058B06E62135F6), + UINT64_C(0x0006B07EE1CF9CF1), UINT64_C(0x0007166BD7374570), + UINT64_C(0x0001B932B291A438)}}, + {{UINT64_C(0x0005AF929B2B37C3), UINT64_C(0x0007549202796660), + UINT64_C(0x000513E2660DE7FC), UINT64_C(0x00006B6381885392), + UINT64_C(0x000331EBF4C330BC)}, + {UINT64_C(0x0005604DFD132A81), UINT64_C(0x00018FFB2CF41F7A), + UINT64_C(0x0005BE1FFDB10454), UINT64_C(0x000789C57A8EB47D), + UINT64_C(0x0003C7003C3CC193)}}, + {{UINT64_C(0x000FF74CFBD82392), UINT64_C(0x000381F44F448A49), + UINT64_C(0x00037DADAB5742D4), UINT64_C(0x0003385CD8013C8C), + UINT64_C(0x00077C42B4529B16)}, + {UINT64_C(0x0009C56F0944379A), UINT64_C(0x000383BFA2B1C2B2), + UINT64_C(0x0003E4ADF6856612), UINT64_C(0x0004D8EDC69A18AE), + UINT64_C(0x000782A2F6102155)}}, + {{UINT64_C(0x000C8496202AE6A8), UINT64_C(0x000433B75E48A25B), + UINT64_C(0x0005141D4B503E98), UINT64_C(0x0005226A88155633), + UINT64_C(0x000022CA7649B49E)}, + {UINT64_C(0x000DDE29F41E7545), UINT64_C(0x00051980467DCE98), + UINT64_C(0x0005452CD2F2E90B), UINT64_C(0x00044681E5A6B9BC), + UINT64_C(0x0000B18699C70658)}}, + {{UINT64_C(0x000454DCDC35F98E), UINT64_C(0x0004D3A9A9B829BD), + UINT64_C(0x0005C82A6F53D23D), UINT64_C(0x00054F2336A35986), + UINT64_C(0x0004F050EAA88BC5)}, + {UINT64_C(0x00091AE73A0DC4CB), UINT64_C(0x0006739166A25EC5), + UINT64_C(0x0000F8DCFD062057), UINT64_C(0x000680C6E9553F2E), + UINT64_C(0x00016C70FF5900AB)}}, + {{UINT64_C(0x000C54EBAD62EAB1), UINT64_C(0x0006A7C01E68F92A), + UINT64_C(0x0004C8F6FC7D7E91), UINT64_C(0x00071F7B41EA0338), + UINT64_C(0x000441A714BEC729)}, + {UINT64_C(0x0004B4DAD4F8A724), UINT64_C(0x00033ED22AE26116), + UINT64_C(0x00079F365BF781AB), UINT64_C(0x00002CA67E4CAEC5), + UINT64_C(0x00055A4A1A0081CE)}}, + {{UINT64_C(0x000856B7CDEDE34B), UINT64_C(0x00046FA048E577A5), + UINT64_C(0x00038378B91B299E), UINT64_C(0x0004C31EAC28396A), + UINT64_C(0x0001440CEEBF654F)}, + {UINT64_C(0x000DE3FD4ACED2B3), UINT64_C(0x0007A22FF45E43F3), + UINT64_C(0x00007CC601E3B097), UINT64_C(0x0002A04F943FBC69), + UINT64_C(0x0005C5F64D0D7533)}}, + {{UINT64_C(0x000DBE80786B794B), UINT64_C(0x00034C0F990B92EF), + UINT64_C(0x000330FBBBF05942), UINT64_C(0x00027E782DC51868), + UINT64_C(0x000287A147D07324)}, + {UINT64_C(0x000213F588BDAF78), UINT64_C(0x0000435D0191F486), + UINT64_C(0x0006F097D291A15C), UINT64_C(0x000339AFB6E98B50), + UINT64_C(0x00055B5A4EA63E71)}}, + {{UINT64_C(0x00012AEEC81A34E7), UINT64_C(0x0003DBAAF67991EA), + UINT64_C(0x000737806F56C38C), UINT64_C(0x00043D356C504230), + UINT64_C(0x000311DCD3F757D5)}, + {UINT64_C(0x00073E6854BEEAE4), UINT64_C(0x0005FB95F72D5723), + UINT64_C(0x000411187F7CE78E), UINT64_C(0x00077E7ED750A498), + UINT64_C(0x0005993AA33720F3)}}, + {{UINT64_C(0x00028A5A432F3F67), UINT64_C(0x00075D0A5CAB6768), + UINT64_C(0x0006396B9CAB93D8), UINT64_C(0x000546258D80855A), + UINT64_C(0x0003C09404670F46)}, + {UINT64_C(0x00000D1A71F0C8DC), UINT64_C(0x0001CA62AD6C1C14), + UINT64_C(0x000494E0150B4553), UINT64_C(0x0000B039392E5564), + UINT64_C(0x0002EF65688DCB46)}}, + {{UINT64_C(0x00082CA0145F254D), UINT64_C(0x0001317C70253A1C), + UINT64_C(0x0006973D40E8D54D), UINT64_C(0x00010E78CCE403C7), + UINT64_C(0x000265A013FD1B69)}, + {UINT64_C(0x00000339C480223D), UINT64_C(0x00055E9E7BB6DB26), + UINT64_C(0x00058F178B4BACE4), UINT64_C(0x00071F32575FDCD2), + UINT64_C(0x0001C71C69B2119D)}}, + }, + { + {{UINT64_C(0x000AF8DFD07525D6), UINT64_C(0x0005ABDDBE90D603), + UINT64_C(0x0004A248FDF2D0CF), UINT64_C(0x0005172B1CA46E8D), + UINT64_C(0x0007BC8CE3E6B3DD)}, + {UINT64_C(0x000F6A2BEB2B44FC), UINT64_C(0x00000D349B42C8CF), + UINT64_C(0x0004B7CD7C88C973), UINT64_C(0x0005ECA8F4485D17), + UINT64_C(0x0007D62C28C79894)}}, + {{UINT64_C(0x000B55207F725350), UINT64_C(0x000155DFEC40CDAB), + UINT64_C(0x00027B783F369EDB), UINT64_C(0x00011A983C2841D6), + UINT64_C(0x00012B6224AE4C25)}, + {UINT64_C(0x0009BF92AE68CF96), UINT64_C(0x0001147BF976A441), + UINT64_C(0x0002CCF3203AAF22), UINT64_C(0x000069BD39DE1693), + UINT64_C(0x00032BC9448C60DE)}}, + {{UINT64_C(0x0006D373DED15DFB), UINT64_C(0x0006BAD3E5311A3A), + UINT64_C(0x00012CCBC4FCB6F2), UINT64_C(0x0002A5A3B3908623), + UINT64_C(0x000542CFC756FE18)}, + {UINT64_C(0x000657D935ECDC3F), UINT64_C(0x0000A8A6A301FE80), + UINT64_C(0x000394A934538AE2), UINT64_C(0x0001DB171CCFA8F2), + UINT64_C(0x000490705EEEAB8C)}}, + {{UINT64_C(0x0008239926A0236C), UINT64_C(0x0004072433544306), + UINT64_C(0x0007BB7A8ED39FBB), UINT64_C(0x0001F54925C1C4E3), + UINT64_C(0x000664E83A948559)}, + {UINT64_C(0x000F11625DBAE781), UINT64_C(0x000692D219D5FF95), + UINT64_C(0x00073D91B99DD9EA), UINT64_C(0x00050FBE7DF80371), + UINT64_C(0x00057654A7F31CC1)}}, + {{UINT64_C(0x000AEE343C7C9D05), UINT64_C(0x000090117343650E), + UINT64_C(0x0006CC575AEDA322), UINT64_C(0x0004F1E2F2B51775), + UINT64_C(0x00076F6DB85D5F21)}, + {UINT64_C(0x000B8CF913A709D2), UINT64_C(0x0007FB116D7DC97E), + UINT64_C(0x0001529FD6EEF6A5), UINT64_C(0x00056A6B91E47DF0), + UINT64_C(0x0002E9B775561208)}}, + {{UINT64_C(0x000575D0571791A0), UINT64_C(0x000578E1DBFBEA77), + UINT64_C(0x0003A703A52790E7), UINT64_C(0x0000C97F49B37153), + UINT64_C(0x0004278132554EB7)}, + {UINT64_C(0x000157EE9EA2F134), UINT64_C(0x0003BB0E79C3342D), + UINT64_C(0x0002C36A38226E01), UINT64_C(0x0007C88322ACB85B), + UINT64_C(0x0004FB186883785F)}}, + {{UINT64_C(0x0002044FEB9F9253), UINT64_C(0x00022FA260775335), + UINT64_C(0x000039F6E84F28A2), UINT64_C(0x0001836DD1BAB756), + UINT64_C(0x00008E7A67948E3E)}, + {UINT64_C(0x00054204D45393E2), UINT64_C(0x0003CECF402108D1), + UINT64_C(0x0000C701A3210E7D), UINT64_C(0x0000BEADB8DF7D41), + UINT64_C(0x00017AC9DF9C5498)}}, + {{UINT64_C(0x0002F2E0A3E75974), UINT64_C(0x0002A9F168A74A87), + UINT64_C(0x00029F4A8513C289), UINT64_C(0x00018E556097BC48), + UINT64_C(0x000200FEB5BAD923)}, + {UINT64_C(0x0001B9CE667358CA), UINT64_C(0x00055AE551A801F4), + UINT64_C(0x00042DE696A62306), UINT64_C(0x0002C75B9C6C564B), + UINT64_C(0x0000164A218F9F79)}}, + {{UINT64_C(0x000F29F428A74C0C), UINT64_C(0x00063F194651B933), + UINT64_C(0x000528FA6E64E1E3), UINT64_C(0x00068143117910EA), + UINT64_C(0x0001B40977C6BA02)}, + {UINT64_C(0x0007F5D2BC286354), UINT64_C(0x000402F53D46EBF9), + UINT64_C(0x00003B2C2080B52C), UINT64_C(0x00063D348A76083A), + UINT64_C(0x0000FD0D6C7223FA)}}, + {{UINT64_C(0x000147D6E66EFE04), UINT64_C(0x0005E90EE23C1075), + UINT64_C(0x0006E84476D5B541), UINT64_C(0x00052A8100787130), + UINT64_C(0x0002D2188343EDC6)}, + {UINT64_C(0x0001F9FAD89722F0), UINT64_C(0x0004A9F2401F68AE), + UINT64_C(0x000293427A23D1F0), UINT64_C(0x0001D52B70F2E2E3), + UINT64_C(0x0003C937077DA4B5)}}, + {{UINT64_C(0x000874B69E730AAD), UINT64_C(0x000646B3E1A4C500), + UINT64_C(0x0007077863F9D016), UINT64_C(0x00060558644A040D), + UINT64_C(0x00036900BEB6A2F1)}, + {UINT64_C(0x0005C370223FB20A), UINT64_C(0x000447FB93D1E921), + UINT64_C(0x00064D502A1F13B6), UINT64_C(0x0004251BECD4B787), + UINT64_C(0x0007D125955B235D)}}, + {{UINT64_C(0x000FF3E0247628C3), UINT64_C(0x0005612C7EF51C2A), + UINT64_C(0x0002EF572E567422), UINT64_C(0x0003F06B0469AB7B), + UINT64_C(0x000209BA13287307)}, + {UINT64_C(0x0008994050632779), UINT64_C(0x00009A3E92F3709F), + UINT64_C(0x00016204EE7B6320), UINT64_C(0x0002F94D7B3DCAF7), + UINT64_C(0x0000B4460F41EE3D)}}, + {{UINT64_C(0x000C5F26F312D2C5), UINT64_C(0x00071E7C34CDFED2), + UINT64_C(0x0002A8304ADF0D4F), UINT64_C(0x0005133E4EAA736F), + UINT64_C(0x0004ABE07C40CFA9)}, + {UINT64_C(0x000A08F9029290FF), UINT64_C(0x0003EAF403C6D98B), + UINT64_C(0x00060DBC0EDB37B6), UINT64_C(0x00007CEC6635832C), + UINT64_C(0x0000C81F88E255BC)}}, + {{UINT64_C(0x000C0F4508FE693D), UINT64_C(0x00057782552C17E7), + UINT64_C(0x000167570039C207), UINT64_C(0x0006114C8419F3C0), + UINT64_C(0x0001712CE2C1CBEA)}, + {UINT64_C(0x0006787A0AA1DBED), UINT64_C(0x0002B18B64E45E6A), + UINT64_C(0x0005FCE592027594), UINT64_C(0x0002E88EBA3ECFFD), + UINT64_C(0x000476FD0C587C15)}}, + {{UINT64_C(0x000CBD80AAB36FBF), UINT64_C(0x0006ABA6598D0A0A), + UINT64_C(0x0000D1C530FCAC66), UINT64_C(0x0002286C6B68E8F6), + UINT64_C(0x0006AAF0D091C807)}, + {UINT64_C(0x00005BDF3CD0E8D0), UINT64_C(0x0006960A3E5D2C66), + UINT64_C(0x000638B2EBDA0973), UINT64_C(0x0004EE54544D3339), + UINT64_C(0x00040BDB62E2C15A)}}, + {{UINT64_C(0x000BECCC002BCD28), UINT64_C(0x0007346E8C2A60E7), + UINT64_C(0x0003B9F742D1704B), UINT64_C(0x0001370F879A06B2), + UINT64_C(0x0005A0A68F92C852)}, + {UINT64_C(0x000BD4FD9CD7C516), UINT64_C(0x00004D3D2354F933), + UINT64_C(0x0003175E3418C5B6), UINT64_C(0x000415E970F01D4A), + UINT64_C(0x0000277440ED12C8)}}, + }, + { + {{UINT64_C(0x0004F80B29259121), UINT64_C(0x0004C7AD79241CBB), + UINT64_C(0x00031A2024B0C285), UINT64_C(0x0002905F7DC32728), + UINT64_C(0x00018F4173185CE8)}, + {UINT64_C(0x0008D35E043B3193), UINT64_C(0x000294DB8F82806B), + UINT64_C(0x0006E11FA9EFB7F8), UINT64_C(0x0007EC8CC6030101), + UINT64_C(0x0007CE956AED6CFE)}}, + {{UINT64_C(0x000CE55CC1171587), UINT64_C(0x00054B3932A64433), + UINT64_C(0x0005BA7C98FD8209), UINT64_C(0x00056CCE0ED96A42), + UINT64_C(0x00079534ED8A0FAF)}, + {UINT64_C(0x000AB036181F5C5D), UINT64_C(0x0002C036C8A43EDE), + UINT64_C(0x0001D4508E4C7ED0), UINT64_C(0x0000E128F1A3971F), + UINT64_C(0x000417208F6464E5)}}, + {{UINT64_C(0x000633C1FF9DFEFF), UINT64_C(0x0005208BBFBDE89E), + UINT64_C(0x000256F7BBEE3FF4), UINT64_C(0x000577F9D2D9026B), + UINT64_C(0x000745C594B0BDC9)}, + {UINT64_C(0x000021489A9DCD65), UINT64_C(0x00077418195C0224), + UINT64_C(0x00043817466CDB80), UINT64_C(0x0001F3BC7125C1D7), + UINT64_C(0x00022C79F6BB84F9)}}, + {{UINT64_C(0x000175240458C6F2), UINT64_C(0x0003FF9B00DB6449), + UINT64_C(0x0001764BB4C86102), UINT64_C(0x0004BCC4DB3AF4F4), + UINT64_C(0x0007EF78D9E386BB)}, + {UINT64_C(0x0002DFBA149190F7), UINT64_C(0x0003DA9B88D643CF), + UINT64_C(0x0001C3155190EEEC), UINT64_C(0x0005D430C2250A24), + UINT64_C(0x0002593ACE56A866)}}, + {{UINT64_C(0x000A92165B59C268), UINT64_C(0x0007B4FD61C8ACFF), + UINT64_C(0x00025086FD2DA482), UINT64_C(0x000694EDA01406D5), + UINT64_C(0x0005DDE8F63674A6)}, + {UINT64_C(0x00070F2A7161678D), UINT64_C(0x0005D1DAA454FEEB), + UINT64_C(0x0003E403685BEC15), UINT64_C(0x0003DA80C68EC0D1), + UINT64_C(0x000190B8FD47B2F4)}}, + {{UINT64_C(0x000D2F2403EECAB3), UINT64_C(0x0006EA952EBF1B65), + UINT64_C(0x0007D581FECF7ECC), UINT64_C(0x000306921DE856F0), + UINT64_C(0x0000F2F865D32B26)}, + {UINT64_C(0x0006463217B9D5F6), UINT64_C(0x0005BC460EE03A7D), + UINT64_C(0x0002C7357E245644), UINT64_C(0x000336E4E5BEB241), + UINT64_C(0x0004EAA60FB21263)}}, + {{UINT64_C(0x00031B08269F9703), UINT64_C(0x00005209A523B7D2), + UINT64_C(0x000039942D5F26A4), UINT64_C(0x0002779B510C5171), + UINT64_C(0x000554D0A38E2ED7)}, + {UINT64_C(0x0009D61A3EB63C62), UINT64_C(0x0006B3C74DDABF3E), + UINT64_C(0x000180175FCCD722), UINT64_C(0x0005DDF5EF9271A6), + UINT64_C(0x0005D1B2EB83F58D)}}, + {{UINT64_C(0x000269380CF53650), UINT64_C(0x000478CBA29C961B), + UINT64_C(0x0003DCE7E460A8AF), UINT64_C(0x0005DC0399EB13A3), + UINT64_C(0x00078777353BF27D)}, + {UINT64_C(0x000ED3B71CB3DDF7), UINT64_C(0x0004937FD2AC37C7), + UINT64_C(0x0007A97F8A99835C), UINT64_C(0x0007E9175E349529), + UINT64_C(0x00049AD7788A8375)}}, + {{UINT64_C(0x000AFB12685F6754), UINT64_C(0x0001CC137990650F), + UINT64_C(0x0006EC6C0DB127EC), UINT64_C(0x000002F3F9C92B06), + UINT64_C(0x00068ED61BED7B48)}, + {UINT64_C(0x00048477FEC95FCE), UINT64_C(0x000516ED0BB6C079), + UINT64_C(0x00058AC37081FA80), UINT64_C(0x00052743D6E32AAF), + UINT64_C(0x000135B867D60FA5)}}, + {{UINT64_C(0x000017A14A66889B), UINT64_C(0x0005B0AEEAE56F98), + UINT64_C(0x0002236BACAE8AF2), UINT64_C(0x0003C2257520A874), + UINT64_C(0x000436DD2F42BB1A)}, + {UINT64_C(0x000E73DEE8E27B51), UINT64_C(0x00026156FABFD33E), + UINT64_C(0x0002E3A732B167EF), UINT64_C(0x000593856E3BA35D), + UINT64_C(0x000572BAFD316337)}}, + {{UINT64_C(0x0004CCCD1BFE2F09), UINT64_C(0x0001EB388A46DB63), + UINT64_C(0x00052EC6A89BDB63), UINT64_C(0x0003F464068D9320), + UINT64_C(0x00066681DD5542FC)}, + {UINT64_C(0x000ADA67B76DEDEE), UINT64_C(0x00020BC1E48F374E), + UINT64_C(0x00010A381907FB3D), UINT64_C(0x0002A188EFB7D771), + UINT64_C(0x000204A6CB902379)}}, + {{UINT64_C(0x00017228A8F41270), UINT64_C(0x0003861FA7811FF1), + UINT64_C(0x0005C24BAA43480B), UINT64_C(0x0000D91805B4EAEF), + UINT64_C(0x000161DF51FF7C92)}, + {UINT64_C(0x0002E8C34073031B), UINT64_C(0x0004FC9FC002E034), + UINT64_C(0x0000C517474BD432), UINT64_C(0x0005B028CC00B4FC), + UINT64_C(0x00032CEE00379E56)}}, + {{UINT64_C(0x0004483DBEADB2E0), UINT64_C(0x0006513EDE13135B), + UINT64_C(0x00016DAD5C521A87), UINT64_C(0x0005A3E8526657FC), + UINT64_C(0x00071D76B3E6D02E)}, + {UINT64_C(0x0006473D1426BAF9), UINT64_C(0x0004AA50405810D9), + UINT64_C(0x000775BF4EA667B2), UINT64_C(0x00028F630F480B2A), + UINT64_C(0x000541E49B3C2921)}}, + {{UINT64_C(0x0000C2316D694346), UINT64_C(0x0006BB5D8DD7AC20), + UINT64_C(0x000544BA02C52F67), UINT64_C(0x0001A8380E0C329B), + UINT64_C(0x00006254291B6D56)}, + {UINT64_C(0x00023469E53DE6A0), UINT64_C(0x00067B362FC9815B), + UINT64_C(0x00078587A6ABE2A0), UINT64_C(0x0001E2DDC24C52FB), + UINT64_C(0x0002969D891424B8)}}, + {{UINT64_C(0x000DD3BE38C271BD), UINT64_C(0x00008AADD395B9D4), + UINT64_C(0x00041097DCD173B3), UINT64_C(0x000377212B3119E9), + UINT64_C(0x0000E67BF82272D5)}, + {UINT64_C(0x0006E0BB94CF58AC), UINT64_C(0x000408F1A38E35FD), + UINT64_C(0x00029EF91D563A40), UINT64_C(0x00056766929B4B6C), + UINT64_C(0x0005C011DCB741EA)}}, + {{UINT64_C(0x0004D1781BD13FD0), UINT64_C(0x00004CE399554755), + UINT64_C(0x0003A691DA00B124), UINT64_C(0x0007283232CCD5CF), + UINT64_C(0x00052A1AF5A0D851)}, + {UINT64_C(0x0007BEE24A3684D7), UINT64_C(0x0005652266B2A4B5), + UINT64_C(0x0000289E5435AFE4), UINT64_C(0x00015FEFBEE25260), + UINT64_C(0x0007347EAFAF74A5)}}, + }, + { + {{UINT64_C(0x000C05E66D978880), UINT64_C(0x00025A3CB58DEACC), + UINT64_C(0x000220AB73235F4C), UINT64_C(0x000490D8F0DF59E2), + UINT64_C(0x0007C69489BD76E1)}, + {UINT64_C(0x000DBD924D1922F1), UINT64_C(0x0005833BE28C2F2F), + UINT64_C(0x00035B00E5DE675F), UINT64_C(0x0002F1B35D5A7675), + UINT64_C(0x0004858F6235F10C)}}, + {{UINT64_C(0x0002A925A417EA11), UINT64_C(0x00056E31BC4D175E), + UINT64_C(0x00038E61D9A3B411), UINT64_C(0x0003812AC6AEFFE2), + UINT64_C(0x000228B12A98C126)}, + {UINT64_C(0x000A7B3E73B423B7), UINT64_C(0x00066CCB2668379B), + UINT64_C(0x00065B91202BD9C8), UINT64_C(0x00029ED3BE98ABF3), + UINT64_C(0x000273C6405F5146)}}, + {{UINT64_C(0x0005C609D0B22D03), UINT64_C(0x0000E2D4E998729A), + UINT64_C(0x0004FCCD77C349D1), UINT64_C(0x00061B1D24B06088), + UINT64_C(0x0004891488BBB2D2)}, + {UINT64_C(0x000D2AE5BCA0967E), UINT64_C(0x00050335CABFCB67), + UINT64_C(0x0000DDE04AEEADB4), UINT64_C(0x00028AEBB9AD957F), + UINT64_C(0x0004D067C74CCBC3)}}, + {{UINT64_C(0x000DA73F6F1AECD9), UINT64_C(0x00079BFF45612FC1), + UINT64_C(0x00051867E472C99F), UINT64_C(0x0001A560565247F0), + UINT64_C(0x0005BED5F4CEB10A)}, + {UINT64_C(0x000C2D41FFEE613B), UINT64_C(0x00048CDF00CF0891), + UINT64_C(0x0005E4502AA3852C), UINT64_C(0x000656DF596B0089), + UINT64_C(0x000058D53AE7B7AC)}}, + {{UINT64_C(0x0005633B9B0B6527), UINT64_C(0x0002F32BC7DCAE54), + UINT64_C(0x00050DF012CC4A7F), UINT64_C(0x0001DC2DC80CAF77), + UINT64_C(0x0001CC28BCE8B4B0)}, + {UINT64_C(0x000352FCCCD0A46D), UINT64_C(0x00020A7D1A52DB7F), + UINT64_C(0x0003E924D7CB5F73), UINT64_C(0x0005E0F520791FAC), + UINT64_C(0x0006FBACACFAA219)}}, + {{UINT64_C(0x0007DD39E4996ED6), UINT64_C(0x000285231A44D102), + UINT64_C(0x0002FEC0C9BAA76E), UINT64_C(0x0001D126BB5F5562), + UINT64_C(0x000720EC42A4351F)}, + {UINT64_C(0x0002C4D634B2D745), UINT64_C(0x0007FFF3E43B229C), + UINT64_C(0x0003A4E652046B82), UINT64_C(0x00007FDDB53AF519), + UINT64_C(0x0003FD6A967B2866)}}, + {{UINT64_C(0x000DF55AD8667E0F), UINT64_C(0x000473081C72AAFB), + UINT64_C(0x0002E3E9DD231D51), UINT64_C(0x0000638B70AA3F97), + UINT64_C(0x00019AE4400E8136)}, + {UINT64_C(0x000E28055BC46447), UINT64_C(0x0000760478B05575), + UINT64_C(0x0005AA7505F4850B), UINT64_C(0x0005BA7632BE614C), + UINT64_C(0x0004C7DEAF3BFA9E)}}, + {{UINT64_C(0x000F0AA2A3AA87C8), UINT64_C(0x000019FBB01D0DFF), + UINT64_C(0x0006DE474AD0CB2C), UINT64_C(0x0001B2D3AFEE81F5), + UINT64_C(0x0004B057E9DF9F8F)}, + {UINT64_C(0x0008A62F51812859), UINT64_C(0x000096944166A90E), + UINT64_C(0x0006E95AB6851BA6), UINT64_C(0x00055E80DE3635DA), + UINT64_C(0x0007F910349B50D7)}}, + {{UINT64_C(0x000024BD4E9A47A8), UINT64_C(0x00044E53AC4823A9), + UINT64_C(0x00060A0B2A2844E1), UINT64_C(0x0006CA7FA0EC1AB9), + UINT64_C(0x00079DBC726A893E)}, + {UINT64_C(0x0002ECBD617D4BFD), UINT64_C(0x0000ED06A79CD79B), + UINT64_C(0x0001128125B8C751), UINT64_C(0x0001A3CDAF24D9F6), + UINT64_C(0x00076D2644374FB2)}}, + {{UINT64_C(0x000BB495334D6735), UINT64_C(0x00048E4E318D35A5), + UINT64_C(0x00065CCC9FD612CE), UINT64_C(0x00048647BF9AD225), + UINT64_C(0x0001F308CFFC4D92)}, + {UINT64_C(0x000993066FB5CA15), UINT64_C(0x0001024A9DBAAA76), + UINT64_C(0x0001D8206F56BB3E), UINT64_C(0x000791789CB797FC), + UINT64_C(0x00028DAF3708084C)}}, + {{UINT64_C(0x0005F4D6A2BB2865), UINT64_C(0x000411783ABFEAA9), + UINT64_C(0x000285FE4D07FDEA), UINT64_C(0x00012C2888BBAB91), + UINT64_C(0x0002F0D1613CBFEA)}, + {UINT64_C(0x000761DD1F118DE4), UINT64_C(0x00077D77CAB21417), + UINT64_C(0x000104DF213824A8), UINT64_C(0x00019BDCA8BF3BBE), + UINT64_C(0x000228E1468298F4)}}, + {{UINT64_C(0x000AD4D25721FB0D), UINT64_C(0x0005BBEC9D9B8FCB), + UINT64_C(0x00006F18917A24A9), UINT64_C(0x0001AF194E249824), + UINT64_C(0x0001C1D002C78C5F)}, + {UINT64_C(0x0005FCEA6541A6D3), UINT64_C(0x00012B0A3891C25A), + UINT64_C(0x0001CA915EF579A4), UINT64_C(0x0006A1530D0CA296), + UINT64_C(0x000405353E349C62)}}, + {{UINT64_C(0x0007DD87797327CF), UINT64_C(0x00049A24A1519C3D), + UINT64_C(0x0007E2D3194C7738), UINT64_C(0x0004ADE201A4F2B4), + UINT64_C(0x0005F03F2024D796)}, + {UINT64_C(0x0003A8A2BF24065F), UINT64_C(0x00028B98E4E34848), + UINT64_C(0x0006CCE4BE857549), UINT64_C(0x0001BFEA602C4AB8), + UINT64_C(0x00057C821F831EFA)}}, + {{UINT64_C(0x0000117A2CF6FB17), UINT64_C(0x0003D763A3738149), + UINT64_C(0x00074936049CAC1E), UINT64_C(0x0007F5A417605453), + UINT64_C(0x0003C597E1AF5EA2)}, + {UINT64_C(0x0003FBDD76DC1695), UINT64_C(0x0003C1FDAC636FA3), + UINT64_C(0x0002045F1403CA79), UINT64_C(0x00034AEC03F7A823), + UINT64_C(0x0000862068283073)}}, + {{UINT64_C(0x00078F961971E1BB), UINT64_C(0x0007027C711936C2), + UINT64_C(0x00069D7EBBB0EDBC), UINT64_C(0x0002680D032F1C61), + UINT64_C(0x000615B3503A9F8A)}, + {UINT64_C(0x000BC2A332182D40), UINT64_C(0x000706CF8E7CBE3C), + UINT64_C(0x0004537D7373214F), UINT64_C(0x0002F1C7690B885E), + UINT64_C(0x00022B7364CF32E1)}}, + {{UINT64_C(0x00062087435B3F31), UINT64_C(0x0007EA9C3772E730), + UINT64_C(0x0006CBD6A025839C), UINT64_C(0x0002E4060C1FA411), + UINT64_C(0x00013A216F147ECC)}, + {UINT64_C(0x0008E787A8F7310F), UINT64_C(0x0007C9628A16653F), + UINT64_C(0x0004B18B674CF1D2), UINT64_C(0x00042C9C4340922B), + UINT64_C(0x00012DD24A757E97)}}, + }, + { + {{UINT64_C(0x000D0DAB38BAC990), UINT64_C(0x00014AB1DE778BDD), + UINT64_C(0x00044AAC030B8EE5), UINT64_C(0x00035662B41D1CA8), + UINT64_C(0x0003E1B41627AA05)}, + {UINT64_C(0x00093D56AB528772), UINT64_C(0x00056A1F801B8BDD), + UINT64_C(0x00002395FB846157), UINT64_C(0x00055F0166143AAB), + UINT64_C(0x000138392048CE38)}}, + {{UINT64_C(0x000629076955EF18), UINT64_C(0x0001F5903EDC6036), + UINT64_C(0x0003B60DF38E1955), UINT64_C(0x0007D3533D1A0956), + UINT64_C(0x000616E9E879B346)}, + {UINT64_C(0x000CC4D2E5A62590), UINT64_C(0x00008DF009361C78), + UINT64_C(0x00060924BE5F5C3F), UINT64_C(0x0005698777D3EB64), + UINT64_C(0x0000BD31C925896B)}}, + {{UINT64_C(0x000CAF98364436A6), UINT64_C(0x0001984F8F41D0B8), + UINT64_C(0x0006839D748040E7), UINT64_C(0x000003647A88D1C1), + UINT64_C(0x0004C9A82C439698)}, + {UINT64_C(0x0009F1BB2D35D65D), UINT64_C(0x000656D1E3913D0B), + UINT64_C(0x00025D8A8DB01F82), UINT64_C(0x000716C168BA26FC), + UINT64_C(0x0005F7EAE6DA00DF)}}, + {{UINT64_C(0x0006900AF557123B), UINT64_C(0x00048AD482A31C95), + UINT64_C(0x000224E02FA0D5A3), UINT64_C(0x00049F121BC5BB9C), + UINT64_C(0x0002819539DBCC91)}, + {UINT64_C(0x00052AA36806E6D3), UINT64_C(0x00075D00DA560416), + UINT64_C(0x00020C8D5835B70C), UINT64_C(0x00042F7FCE2FDE3F), + UINT64_C(0x00018D1671FEA942)}}, + {{UINT64_C(0x000126788DAF932F), UINT64_C(0x0001A2486598E1EB), + UINT64_C(0x0001FA9390F89087), UINT64_C(0x000465B8FBA99789), + UINT64_C(0x0001391087EBF066)}, + {UINT64_C(0x000D560B9EBE0A12), UINT64_C(0x00045DF4FD156260), + UINT64_C(0x0004C0F5BB97F89C), UINT64_C(0x00000C02D902AD41), + UINT64_C(0x0006D6ABD8B710CB)}}, + {{UINT64_C(0x000240C819BE997B), UINT64_C(0x00079702659A3FCC), + UINT64_C(0x00038FF0842940FF), UINT64_C(0x0003BE2FC37F5DD7), + UINT64_C(0x00055903D1BF4D50)}, + {UINT64_C(0x000F7788BBCF7C69), UINT64_C(0x000314F86B17508B), + UINT64_C(0x000759BA40AAA5DE), UINT64_C(0x00008F55D89B53DA), + UINT64_C(0x000040CD6FEF17AC)}}, + {{UINT64_C(0x000BCF2803B34AFC), UINT64_C(0x00015BCEC54183DB), + UINT64_C(0x0000E63B583C38D3), UINT64_C(0x000543CEC0DD9AC8), + UINT64_C(0x0006DCA0EDABDF99)}, + {UINT64_C(0x0006AD8FCA4B7A84), UINT64_C(0x00000ECF4C9B4756), + UINT64_C(0x0002EA049D3C90F8), UINT64_C(0x000434F3AFA9C904), + UINT64_C(0x0005BB44FDA046A9)}}, + {{UINT64_C(0x000456FFF38CE9AA), UINT64_C(0x0007628838C3FB34), + UINT64_C(0x00047DEFE5F449AB), UINT64_C(0x0002EBE6BAC977B1), + UINT64_C(0x00002629151FD158)}, + {UINT64_C(0x00056D1807A2F107), UINT64_C(0x00037D8DA4EE56AD), + UINT64_C(0x00064130E6C56675), UINT64_C(0x000059823CCD4BAE), + UINT64_C(0x000351D4561A3074)}}, + {{UINT64_C(0x000D0D5151460DBA), UINT64_C(0x00041AAD3DC6D3F7), + UINT64_C(0x00030392B1D25432), UINT64_C(0x0000EC685A8F63C0), + UINT64_C(0x00041E76ED18C1CB)}, + {UINT64_C(0x000DC86815DBE186), UINT64_C(0x0001744C18B22C78), + UINT64_C(0x0007FFF9EFE95AD9), UINT64_C(0x0005EE221F3A7F26), + UINT64_C(0x0002ED76DDD0673C)}}, + {{UINT64_C(0x000BE8E0AEDD873D), UINT64_C(0x0005C21AD1208B00), + UINT64_C(0x00000C2B71802C36), UINT64_C(0x0003CEE802954BF7), + UINT64_C(0x000212A13C9706C1)}, + {UINT64_C(0x000C1F2261D59FF3), UINT64_C(0x0005FE776BC7F5CB), + UINT64_C(0x00052FBD0C5EC34E), UINT64_C(0x000431CC02ACD223), + UINT64_C(0x00024D9DB51E1E1F)}}, + {{UINT64_C(0x0002C7CAE989C78A), UINT64_C(0x00053B83FF5723A2), + UINT64_C(0x00008A8E6302E842), UINT64_C(0x00028299A28F9921), + UINT64_C(0x0004216EE9364122)}, + {UINT64_C(0x000C023A772C47B9), UINT64_C(0x000773C2D287BB4D), + UINT64_C(0x0006DA1F1AA10221), UINT64_C(0x0003A3241B2B09FC), + UINT64_C(0x00008CDE7A649B22)}}, + {{UINT64_C(0x0007450C29EBCF74), UINT64_C(0x0004439DBEEB77A6), + UINT64_C(0x000343C10D713C0F), UINT64_C(0x00059B68D7FEB70F), + UINT64_C(0x00034672B08F9529)}, + {UINT64_C(0x000EB776F7FE244B), UINT64_C(0x0000A1574415007C), + UINT64_C(0x0002E545671DDCC2), UINT64_C(0x0000C8F00787B92C), + UINT64_C(0x0004CCFCC6C1C843)}}, + {{UINT64_C(0x000752C74FA6089E), UINT64_C(0x00043769AF9D8146), + UINT64_C(0x00076A2097C10ACD), UINT64_C(0x00021E5FD7934DFC), + UINT64_C(0x00044CD453C591F0)}, + {UINT64_C(0x0005D742FEFE529A), UINT64_C(0x00052812A2132236), + UINT64_C(0x00063A0FF82BAAA3), UINT64_C(0x0003821492FA5799), + UINT64_C(0x0006C3D3D91E5995)}}, + {{UINT64_C(0x0007F5965BB5061A), UINT64_C(0x00033DD3B61A3ACD), + UINT64_C(0x0000ED9A94EAF477), UINT64_C(0x00005E2154735C2D), + UINT64_C(0x000310C8E2DC1FA9)}, + {UINT64_C(0x0009C12CA0FAB3FE), UINT64_C(0x000645039E999A55), + UINT64_C(0x00027E092D9877A3), UINT64_C(0x000234C26B632A1C), + UINT64_C(0x0001112B3978BBB5)}}, + {{UINT64_C(0x000643EF08EEDFDA), UINT64_C(0x00041557FC7F909E), + UINT64_C(0x0007D194BE89C579), UINT64_C(0x00013E7D0EB4169D), + UINT64_C(0x00068C97C0B130AB)}, + {UINT64_C(0x0005670E75F30FC3), UINT64_C(0x00012ABE1F6F59DB), + UINT64_C(0x00031C4929892E23), UINT64_C(0x00067C5926EE61D5), + UINT64_C(0x0005EA09499EB737)}}, + {{UINT64_C(0x00068E5711D3CC63), UINT64_C(0x000355284FF4EE0B), + UINT64_C(0x0002ED6C094527F4), UINT64_C(0x00018FD4F583BBBD), + UINT64_C(0x0007E732542EB790)}, + {UINT64_C(0x000FBD7D6A2B1252), UINT64_C(0x0000D8B42A24E7BC), + UINT64_C(0x00064FE14876840C), UINT64_C(0x000128C33F1AE9C6), + UINT64_C(0x00047654D530ABA4)}}, + }, + { + {{UINT64_C(0x0003BD937849F59D), UINT64_C(0x000063606C7698D1), + UINT64_C(0x00054B2A0FD2FD04), UINT64_C(0x00029E53F79F11A6), + UINT64_C(0x000555BAED07F9C6)}, + {UINT64_C(0x0002D0A2306D73CE), UINT64_C(0x00029DFF85DCB561), + UINT64_C(0x0000C1C9000DBCD2), UINT64_C(0x00021A0F680519E0), + UINT64_C(0x00001BC10E993DB9)}}, + {{UINT64_C(0x00010A2BB8D581B9), UINT64_C(0x00043123D8B4D328), + UINT64_C(0x0003D3F6518C92CF), UINT64_C(0x0005EF4037756EF4), + UINT64_C(0x00023620C43DD673)}, + {UINT64_C(0x000758B33A3A641C), UINT64_C(0x000201801C92394E), + UINT64_C(0x0007381BD7F0EF26), UINT64_C(0x0007C1BDA98CF272), + UINT64_C(0x000446E3CF2318B9)}}, + {{UINT64_C(0x000CAA4017FCF7B6), UINT64_C(0x0005167AEA33B820), + UINT64_C(0x000455C15B6B0603), UINT64_C(0x0003795DAA8317AF), + UINT64_C(0x0000A7CFFBD6A356)}, + {UINT64_C(0x000CDF21A7146CD4), UINT64_C(0x0005D9C22C0B9910), + UINT64_C(0x00021D488F79ACFF), UINT64_C(0x0005857D2A8817A3), + UINT64_C(0x000418B1F899B332)}}, + {{UINT64_C(0x000F3021477826E7), UINT64_C(0x0001E04BD00E11CF), + UINT64_C(0x0006EA82EE2CF354), UINT64_C(0x000576E72ADFAF95), + UINT64_C(0x0001D0D5496B0BCA)}, + {UINT64_C(0x000D490F0DD8482A), UINT64_C(0x00049D8CFF1AC3F4), + UINT64_C(0x0003460BFA5563D1), UINT64_C(0x00055034532A88B0), + UINT64_C(0x0006A47213652104)}}, + {{UINT64_C(0x00011F911810E70C), UINT64_C(0x0002D6B48D33D172), + UINT64_C(0x00034AB16D9AF3D1), UINT64_C(0x000561679C3033DD), + UINT64_C(0x000357CCE137A82D)}, + {UINT64_C(0x000B31F0EF17F79E), UINT64_C(0x0006EA6CD3094B9C), + UINT64_C(0x0000B35F3599DBB1), UINT64_C(0x0007F52CCB68649E), + UINT64_C(0x0005046AE5A46633)}}, + {{UINT64_C(0x0006B212836316B9), UINT64_C(0x00055299B1C49A9A), + UINT64_C(0x000705EEFD2620E8), UINT64_C(0x00046DC053B6EE87), + UINT64_C(0x0007030884C7FF32)}, + {UINT64_C(0x0006B7B8E9DC79C4), UINT64_C(0x00013A8B2116229F), + UINT64_C(0x0004292D01383268), UINT64_C(0x000265411FE1DFD7), + UINT64_C(0x00051B40396F7F2D)}}, + {{UINT64_C(0x00046D30B8D0B765), UINT64_C(0x000447051A08754C), + UINT64_C(0x00002C393E136A77), UINT64_C(0x000092C51BEF8B5B), + UINT64_C(0x00072A82D90D0C54)}, + {UINT64_C(0x000E14BC9577FA35), UINT64_C(0x0002613D84E90001), + UINT64_C(0x0007DCD817FC6B73), UINT64_C(0x0004CCB07A61114E), + UINT64_C(0x000128DDAE580395)}}, + {{UINT64_C(0x0000A65F62B5B469), UINT64_C(0x0001449CDF3BA068), + UINT64_C(0x0002B322E44F8B5C), UINT64_C(0x000637CD9DAA7CD9), + UINT64_C(0x0002826D20F6B6E0)}, + {UINT64_C(0x000935F7AE7CE72C), UINT64_C(0x000427C2F3C89114), + UINT64_C(0x0002BC82197EEC1E), UINT64_C(0x0001D3AD81C2BB09), + UINT64_C(0x000113864CB480E5)}}, + {{UINT64_C(0x000DF31256D0FA32), UINT64_C(0x000658162F4C433B), + UINT64_C(0x000357078BBD48E7), UINT64_C(0x0005D6C0B50101C9), + UINT64_C(0x0007F2F4FDFD19FA)}, + {UINT64_C(0x0008F60FFAC3108A), UINT64_C(0x000301C7448AFA71), + UINT64_C(0x00015EB2F2A78BEF), UINT64_C(0x00017F839739C650), + UINT64_C(0x0000C63A5C9B4465)}}, + {{UINT64_C(0x000D2864DE66EFDB), UINT64_C(0x00019367AA93908D), + UINT64_C(0x00042D4DF0EA2C9B), UINT64_C(0x00063DABB09387B7), + UINT64_C(0x00041D7E1B815D0C)}, + {UINT64_C(0x00094DF2A88CE7E3), UINT64_C(0x0003E4681539CE25), + UINT64_C(0x00065386E54F328E), UINT64_C(0x00045204F7EB68FF), + UINT64_C(0x000152316128558C)}}, + {{UINT64_C(0x00085DD706DFBF1A), UINT64_C(0x0001CD3A8A2F3283), + UINT64_C(0x000389177C3B129F), UINT64_C(0x000266A3AF43485D), + UINT64_C(0x0004343000537F1E)}, + {UINT64_C(0x0004EDE550CB3A82), UINT64_C(0x0007920ADCB60EE2), + UINT64_C(0x000508D86EC186E3), UINT64_C(0x000459BB98AE049A), + UINT64_C(0x0003C8621E0C7957)}}, + {{UINT64_C(0x0003F7B355181E78), UINT64_C(0x00034B66A3DA0C48), + UINT64_C(0x000075B38F80B96F), UINT64_C(0x0001E51DE76B5138), + UINT64_C(0x00024C9C3D9E4494)}, + {UINT64_C(0x0003623DEB850A90), UINT64_C(0x0004C35B7E8127CD), + UINT64_C(0x000657A5BF58646C), UINT64_C(0x0005C440DB594283), + UINT64_C(0x00049678D88DAA4E)}}, + {{UINT64_C(0x000F586E6CF04B0C), UINT64_C(0x000056B294784ED4), + UINT64_C(0x0006ACFA4C41FBCA), UINT64_C(0x0000F85BA1E98BC9), + UINT64_C(0x0007BE95FD49B8CB)}, + {UINT64_C(0x000C7F0AEF19999C), UINT64_C(0x000710B40227E43B), + UINT64_C(0x0005D2D5948B666C), UINT64_C(0x0007C2DEF57822E5), + UINT64_C(0x0005E9DD0BCA2B4C)}}, + {{UINT64_C(0x0004CD7C5A1F0474), UINT64_C(0x000703184E03D953), + UINT64_C(0x00008847256A3A0A), UINT64_C(0x00023256A8F362CE), + UINT64_C(0x0006FA0A053C19F6)}, + {UINT64_C(0x0004FDA4EC4F6E5A), UINT64_C(0x0000EAAF716D7474), + UINT64_C(0x00031B1D9BEEA00A), UINT64_C(0x0006E77CC7B43BEA), + UINT64_C(0x00068B7FE52A5418)}}, + {{UINT64_C(0x000182C3893C913F), UINT64_C(0x0005BD035564DDCE), + UINT64_C(0x0000EFB789EEEA1D), UINT64_C(0x0002FD7231BCE945), + UINT64_C(0x0001E172F821BFD8)}, + {UINT64_C(0x000B79C4B183EE97), UINT64_C(0x0005AA4E66EB8680), + UINT64_C(0x0003F0999EA39964), UINT64_C(0x0004CCC4C10842F5), + UINT64_C(0x0001D9639116EB1B)}}, + {{UINT64_C(0x0001F4CFF4A6524D), UINT64_C(0x00077A87CA5D36AB), + UINT64_C(0x00079C9CFA901FD4), UINT64_C(0x0007141692444638), + UINT64_C(0x00050A52B8F11178)}, + {UINT64_C(0x000606812D21A754), UINT64_C(0x000006CCE87ECEFD), + UINT64_C(0x00070CF16EA53DB0), UINT64_C(0x00064231A76B8461), + UINT64_C(0x0001CE749122C65F)}}, + }, + { + {{UINT64_C(0x0007BB82D3C5B684), UINT64_C(0x000665B3553FDD82), + UINT64_C(0x000622B712414BE5), UINT64_C(0x00068A66023FD004), + UINT64_C(0x0002C4F1C507E8E9)}, + {UINT64_C(0x00067B5C49251A27), UINT64_C(0x000767A5FEFDECEA), + UINT64_C(0x0006D5127E924F9E), UINT64_C(0x0001FAEF3DFFBBB1), + UINT64_C(0x00043D69E32FAD1C)}}, + {{UINT64_C(0x00034E704BF54825), UINT64_C(0x00049BDB19E6DC0E), + UINT64_C(0x0007F28264FB6501), UINT64_C(0x00038880B959C688), + UINT64_C(0x0004F0A3D37E757E)}, + {UINT64_C(0x0003CAC81F94C40C), UINT64_C(0x00058393688FFF80), + UINT64_C(0x000347B9E5A5C961), UINT64_C(0x0007E8D8D772B424), + UINT64_C(0x0006C42A57B3ABF7)}}, + {{UINT64_C(0x00097FC2E68C8CCF), UINT64_C(0x000475CEE29F1E8F), + UINT64_C(0x000298E28356667E), UINT64_C(0x0000949DE8DE0D9F), + UINT64_C(0x00011BD78F109CE1)}, + {UINT64_C(0x0009593D9CE46006), UINT64_C(0x00057E6F9033002A), + UINT64_C(0x0005DEF40003F782), UINT64_C(0x00018A1E90F301F2), + UINT64_C(0x0001C9DF45910326)}}, + {{UINT64_C(0x000C11204B142486), UINT64_C(0x0001DE83CFF6A309), + UINT64_C(0x00028E98BD4FBE39), UINT64_C(0x0007FF81C2722301), + UINT64_C(0x0004E8EC07E39C5C)}, + {UINT64_C(0x0001EACFEACEA3A2), UINT64_C(0x000121B16B6B2243), + UINT64_C(0x00028A37B9BD6CDB), UINT64_C(0x00021A158458C7AE), + UINT64_C(0x000633B208185C49)}}, + {{UINT64_C(0x0000EFDE020DF8D9), UINT64_C(0x0003D774591FDE3B), + UINT64_C(0x0007A513E2E25CA3), UINT64_C(0x0005E307A27F1A86), + UINT64_C(0x000526839795FF69)}, + {UINT64_C(0x0005D1C8482D8549), UINT64_C(0x0006DFD24C6F2ED5), + UINT64_C(0x0003185AD6610EDB), UINT64_C(0x00011600733CB20B), + UINT64_C(0x0000561D0593758D)}}, + {{UINT64_C(0x000E7303812E9251), UINT64_C(0x00060FAA9640AC68), + UINT64_C(0x0006990E9E84EAAB), UINT64_C(0x00013205597A21E0), + UINT64_C(0x0001B36994783E3B)}, + {UINT64_C(0x0005F117AC96FFD5), UINT64_C(0x000726340518125B), + UINT64_C(0x0000B4C646458726), UINT64_C(0x00030611FCE4A03F), + UINT64_C(0x00024DA1C03F5846)}}, + {{UINT64_C(0x000A7E110A8A2315), UINT64_C(0x0007B5EFABE2F3DF), + UINT64_C(0x0006DCE7CEBCDB02), UINT64_C(0x00058F4E8DC9C7E1), + UINT64_C(0x0007EF25DE94461B)}, + {UINT64_C(0x000A9AD49C0F6E54), UINT64_C(0x0003CBF884AA9599), + UINT64_C(0x0006A88C60115D4E), UINT64_C(0x0002C8D6CB6A4B63), + UINT64_C(0x0005526619B4F14F)}}, + {{UINT64_C(0x000A7E10BA3F6E66), UINT64_C(0x0004F52AE281A0EC), + UINT64_C(0x0003476B97096769), UINT64_C(0x00011AD428A9FA42), + UINT64_C(0x0002B4544F28575F)}, + {UINT64_C(0x0006446F85BE14E9), UINT64_C(0x0001E6FBEEDFAD52), + UINT64_C(0x000581F0641BDAA7), UINT64_C(0x0006637991AE7F02), + UINT64_C(0x00027E73BCC450A7)}}, + {{UINT64_C(0x0004837DF05B910E), UINT64_C(0x0002779AC207231D), + UINT64_C(0x0005394BB62F9685), UINT64_C(0x0006AC7DB912D183), + UINT64_C(0x0006DB2D56A1A285)}, + {UINT64_C(0x00050EB1AA8E171C), UINT64_C(0x0006CB734D7871D7), + UINT64_C(0x0003489E3A49926A), UINT64_C(0x0007A7AF3C7269B9), + UINT64_C(0x000506FB61E5D9D0)}}, + {{UINT64_C(0x000D3E9FBCB8E76E), UINT64_C(0x0006BC0CE3973127), + UINT64_C(0x0003FEA5962A9166), UINT64_C(0x00010E5CB8B98D3B), + UINT64_C(0x0003D71F40DFE3FD)}, + {UINT64_C(0x00066B6980E59640), UINT64_C(0x0004772E1BF69616), + UINT64_C(0x000382F325F1D096), UINT64_C(0x0000E79B55D3B181), + UINT64_C(0x0000E77D96C328F4)}}, + {{UINT64_C(0x000349B94216387D), UINT64_C(0x0004B7A80220D9FD), + UINT64_C(0x0006912F408CE0C6), UINT64_C(0x000539E83F596047), + UINT64_C(0x0004834100723280)}, + {UINT64_C(0x000C9832C2F9A7EC), UINT64_C(0x00048534033E2CC1), + UINT64_C(0x00052157F1129FA5), UINT64_C(0x00032B2C4930BA32), + UINT64_C(0x0007D34399534663)}}, + {{UINT64_C(0x000C589FC644CABA), UINT64_C(0x0003362B2512BAEF), + UINT64_C(0x0000746159FCE3F0), UINT64_C(0x00040AAF0341039E), + UINT64_C(0x0006BAFD459922FC)}, + {UINT64_C(0x000A089C7902EF38), UINT64_C(0x0007C692F2F9CE42), + UINT64_C(0x00026F314BA444B4), UINT64_C(0x00070534A8C26791), + UINT64_C(0x0006A5CF6D52A467)}}, + {{UINT64_C(0x00015CB92041529B), UINT64_C(0x00049F22868AF3D0), + UINT64_C(0x0005F3105D324FC9), UINT64_C(0x0001AB468A5313F8), + UINT64_C(0x00073BCEBFF704D3)}, + {UINT64_C(0x000CFCBCD02F5CBC), UINT64_C(0x000766C24804981A), + UINT64_C(0x000181E80B278C77), UINT64_C(0x0006CB8FBE114DA9), + UINT64_C(0x00057C201DD17423)}}, + {{UINT64_C(0x00047BCA3EF2D278), UINT64_C(0x00009EAE1A7C039D), + UINT64_C(0x0001EEDA0A098A7E), UINT64_C(0x0003B5B1C05F89EE), + UINT64_C(0x0005D3332A3A6013)}, + {UINT64_C(0x0006490FECA06CF9), UINT64_C(0x0003EE7D19213955), + UINT64_C(0x0000A5B59824F8E4), UINT64_C(0x0004F3FDCFB627E2), + UINT64_C(0x00056F87225E3ED3)}}, + {{UINT64_C(0x00001B52B2B0F1BD), UINT64_C(0x0001AAD95A0BF6D7), + UINT64_C(0x000529216F79E19E), UINT64_C(0x00014CF4A2BF207B), + UINT64_C(0x000236F709D78288)}, + {UINT64_C(0x000EED40ABFA1D8C), UINT64_C(0x0006115A9FA586E3), + UINT64_C(0x0005AE4248864CF2), UINT64_C(0x000343CBDCFD5D69), + UINT64_C(0x000055F0CDAC28BE)}}, + {{UINT64_C(0x000094B3C9C54CAB), UINT64_C(0x00034BE83CF2DCAA), + UINT64_C(0x000798965804267E), UINT64_C(0x0001968C2A055D56), + UINT64_C(0x000729AD776CB05C)}, + {UINT64_C(0x0008022B51AE8A66), UINT64_C(0x0004CB32422B0432), + UINT64_C(0x00069790787ABB62), UINT64_C(0x0002F124051391FC), + UINT64_C(0x0003C38C28CBE53C)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 6 + * ASSERT: a = -3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(t0, X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(t1, Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(t2, Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t3, X, Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, t3, t3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t4, Y, Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, X, Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(X3, X3, t3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t2, t2, t3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, b, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Z3, Z3, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Z3, Z3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, t3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t0, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t0, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t0, t4, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, Z3); +} + +/*- + * out1 = (arg1 == 0) ? 0 : nz + * NB: this is not a "mod p equiv" 0, but literal 0 + * NB: this is not a real Fiat function, just named that way for consistency. + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_nonzero( + limb_t *out1, const fe_t arg1) { + limb_t x1 = 0; + int i; + + for (i = 0; i < LIMB_CNT; i++) x1 |= arg1[i]; + *out1 = x1; +} + +/*- + * 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.op3 + * https://eprint.iacr.org/2015/1060 Alg 5 + * ASSERT: a = -3 + */ +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, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t4, Y2, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, t4, Y1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, X2, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, Y3, X1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, b, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, Z1, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t2, t1, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, t1); + + /* if P is inf, throw all that away and take Q */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(R->X, nz, Q->X, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 4 + * ASSERT: a = -3 + */ +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, t4, t5; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t2, Z1, Z2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, Y1, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t5, Y2, Z2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t5, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, X1, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, X2, Z2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(X3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t2, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, t1); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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[32], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 32) 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(char out[52], const unsigned char in[32]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 51; 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(char out[257], const unsigned char in[32]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 257; 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; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32], + const unsigned char b[32], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[257] = {0}; + char bnaf[257] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 256; i >= 0; i--) { + if (!is_inf) point_double(&Q, &Q); + if ((d = bnaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(Q.Y, Q.Y); + 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.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_GostR3410_2001_CryptoPro_A_ParamSet_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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[32], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[52] = {0}; + pt_prj_t Q, lut; + 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[51] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 50; 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_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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[32]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[52] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 2; i >= 0; i--) { + for (j = 0; i != 2 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 19; j++) { + if (j * 3 + i > 51) continue; + d = rnaf[j * 3 + 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_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.Y, is_neg, lut.Y, out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.X, scalar[0] & 1, + R.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Y, scalar[0] & 1, + R.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Z, scalar[0] & 1, + R.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[32], unsigned char outy[32], + const unsigned char a[32], const unsigned char b[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_from_bytes(P.Y, iny); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_from_bytes(P.Y, iny); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[32] = {0}; + + int + point_mul_two_id_GostR3410_2001_CryptoPro_A_ParamSet( + 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[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_GostR3410_2001_CryptoPro_A_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const EC_POINT *q, + const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_GostR3410_2001_CryptoPro_A_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + 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, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, 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 11 +/* Field elements */ +typedef uint32_t fe_t[LIMB_CNT]; +typedef uint32_t limb_t; + +#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_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(c, a, b) \ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_add(c, a, b); \ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry(c, c) +#define fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(c, a, b) \ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_sub(c, a, b); \ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry(c, c) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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 id_GostR3410_2001_CryptoPro_A_ParamSet 32 '(auto)' '2^256 - 617' */ +/* curve description: id_GostR3410_2001_CryptoPro_A_ParamSet */ +/* machine_wordsize = 32 (from "32") */ +/* requested operations: (all) */ +/* n = 11 (from "(auto)") */ +/* s-c = 2^256 - [(1, 617)] (from "2^256 - 617") */ +/* tight_bounds_multiplier = 1.1 (from "") */ +/* */ +/* Computed values: */ +/* carry_chain = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1] */ +/* eval z = z[0] + (z[1] << 24) + (z[2] << 47) + (z[3] << 70) + (z[4] << 94) + (z[5] << 117) + (z[6] << 140) + (z[7] << 163) + (z[8] << 187) + (z[9] << 210) + (z[10] << 233) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1; +typedef signed char fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u24 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^24 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^24⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffff] + * arg3: [0x0 ~> 0xffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u24( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint32_t x1; + uint32_t x2; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT32_C(0xffffff)); + x3 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x1 >> 24); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u24 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^24 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^24⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffff] + * arg3: [0x0 ~> 0xffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u24( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int32_t x1; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1 x2; + uint32_t x3; + x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); + x2 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1)(x1 >> 24); + x3 = (x1 & UINT32_C(0xffffff)); + *out1 = x3; + *out2 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u23( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint32_t x1; + uint32_t x2; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT32_C(0x7fffff)); + x3 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x1 >> 23); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u23( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int32_t x1; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1 x2; + uint32_t x3; + x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); + x2 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1)(x1 >> 23); + x3 = (x1 & UINT32_C(0x7fffff)); + *out1 = x3; + *out2 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, + uint32_t arg2, uint32_t arg3) { + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x1; + uint32_t x2; + uint32_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_int1)(0x0 - x1) & + UINT32_C(0xffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + * arg2: [[0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + * Output Bounds: + * out1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul( + uint32_t out1[11], const uint32_t arg1[11], const uint32_t arg2[11]) { + 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; + uint32_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; + uint32_t x137; + uint64_t x138; + uint64_t x139; + uint32_t x140; + uint64_t x141; + uint64_t x142; + uint32_t x143; + uint64_t x144; + uint64_t x145; + uint32_t x146; + uint64_t x147; + uint64_t x148; + uint32_t x149; + uint64_t x150; + uint64_t x151; + uint32_t x152; + uint64_t x153; + uint64_t x154; + uint32_t x155; + uint64_t x156; + uint64_t x157; + uint32_t x158; + uint64_t x159; + uint64_t x160; + uint32_t x161; + uint64_t x162; + uint32_t x163; + uint32_t x164; + uint64_t x165; + uint64_t x166; + uint32_t x167; + uint32_t x168; + uint32_t x169; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x170; + uint32_t x171; + uint32_t x172; + x1 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[10]))); + x2 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[9]))); + x3 = (UINT16_C(0x269) * (((uint64_t)(arg1[10]) * (arg2[8])) * 0x2)); + x4 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[7]))); + x5 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[6]))); + x6 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[5]))); + x7 = (UINT16_C(0x269) * (((uint64_t)(arg1[10]) * (arg2[4])) * 0x2)); + x8 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[3]))); + x9 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[2]))); + x10 = (UINT16_C(0x269) * (((uint64_t)(arg1[10]) * (arg2[1])) * 0x2)); + x11 = (UINT16_C(0x269) * ((uint64_t)(arg1[9]) * (arg2[10]))); + x12 = (UINT16_C(0x269) * (((uint64_t)(arg1[9]) * (arg2[9])) * 0x2)); + x13 = (UINT16_C(0x269) * (((uint64_t)(arg1[9]) * (arg2[8])) * 0x2)); + x14 = (UINT16_C(0x269) * ((uint64_t)(arg1[9]) * (arg2[7]))); + x15 = (UINT16_C(0x269) * ((uint64_t)(arg1[9]) * (arg2[6]))); + x16 = (UINT16_C(0x269) * (((uint64_t)(arg1[9]) * (arg2[5])) * 0x2)); + x17 = (UINT16_C(0x269) * (((uint64_t)(arg1[9]) * (arg2[4])) * 0x2)); + x18 = (UINT16_C(0x269) * ((uint64_t)(arg1[9]) * (arg2[3]))); + x19 = (UINT16_C(0x269) * (((uint64_t)(arg1[9]) * (arg2[2])) * 0x2)); + x20 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[10])) * 0x2)); + x21 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[9])) * 0x2)); + x22 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[8])) * 0x2)); + x23 = (UINT16_C(0x269) * ((uint64_t)(arg1[8]) * (arg2[7]))); + x24 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[6])) * 0x2)); + x25 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[5])) * 0x2)); + x26 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[4])) * 0x2)); + x27 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[3])) * 0x2)); + x28 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[10]))); + x29 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[9]))); + x30 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[8]))); + x31 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[7]))); + x32 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[6]))); + x33 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[5]))); + x34 = (UINT16_C(0x269) * (((uint64_t)(arg1[7]) * (arg2[4])) * 0x2)); + x35 = (UINT16_C(0x269) * ((uint64_t)(arg1[6]) * (arg2[10]))); + x36 = (UINT16_C(0x269) * ((uint64_t)(arg1[6]) * (arg2[9]))); + x37 = (UINT16_C(0x269) * (((uint64_t)(arg1[6]) * (arg2[8])) * 0x2)); + x38 = (UINT16_C(0x269) * ((uint64_t)(arg1[6]) * (arg2[7]))); + x39 = (UINT16_C(0x269) * ((uint64_t)(arg1[6]) * (arg2[6]))); + x40 = (UINT16_C(0x269) * (((uint64_t)(arg1[6]) * (arg2[5])) * 0x2)); + x41 = (UINT16_C(0x269) * ((uint64_t)(arg1[5]) * (arg2[10]))); + x42 = (UINT16_C(0x269) * (((uint64_t)(arg1[5]) * (arg2[9])) * 0x2)); + x43 = (UINT16_C(0x269) * (((uint64_t)(arg1[5]) * (arg2[8])) * 0x2)); + x44 = (UINT16_C(0x269) * ((uint64_t)(arg1[5]) * (arg2[7]))); + x45 = (UINT16_C(0x269) * (((uint64_t)(arg1[5]) * (arg2[6])) * 0x2)); + x46 = (UINT16_C(0x269) * (((uint64_t)(arg1[4]) * (arg2[10])) * 0x2)); + x47 = (UINT16_C(0x269) * (((uint64_t)(arg1[4]) * (arg2[9])) * 0x2)); + x48 = (UINT16_C(0x269) * (((uint64_t)(arg1[4]) * (arg2[8])) * 0x2)); + x49 = (UINT16_C(0x269) * (((uint64_t)(arg1[4]) * (arg2[7])) * 0x2)); + x50 = (UINT16_C(0x269) * ((uint64_t)(arg1[3]) * (arg2[10]))); + x51 = (UINT16_C(0x269) * ((uint64_t)(arg1[3]) * (arg2[9]))); + x52 = (UINT16_C(0x269) * (((uint64_t)(arg1[3]) * (arg2[8])) * 0x2)); + x53 = (UINT16_C(0x269) * ((uint64_t)(arg1[2]) * (arg2[10]))); + x54 = (UINT16_C(0x269) * (((uint64_t)(arg1[2]) * (arg2[9])) * 0x2)); + x55 = (UINT16_C(0x269) * (((uint64_t)(arg1[1]) * (arg2[10])) * 0x2)); + x56 = ((uint64_t)(arg1[10]) * (arg2[0])); + x57 = ((uint64_t)(arg1[9]) * ((arg2[1]) * 0x2)); + x58 = ((uint64_t)(arg1[9]) * (arg2[0])); + x59 = ((uint64_t)(arg1[8]) * ((arg2[2]) * 0x2)); + x60 = ((uint64_t)(arg1[8]) * ((arg2[1]) * 0x2)); + x61 = ((uint64_t)(arg1[8]) * (arg2[0])); + x62 = ((uint64_t)(arg1[7]) * (arg2[3])); + x63 = ((uint64_t)(arg1[7]) * (arg2[2])); + x64 = ((uint64_t)(arg1[7]) * (arg2[1])); + x65 = ((uint64_t)(arg1[7]) * (arg2[0])); + x66 = ((uint64_t)(arg1[6]) * ((arg2[4]) * 0x2)); + x67 = ((uint64_t)(arg1[6]) * (arg2[3])); + x68 = ((uint64_t)(arg1[6]) * (arg2[2])); + x69 = ((uint64_t)(arg1[6]) * ((arg2[1]) * 0x2)); + x70 = ((uint64_t)(arg1[6]) * (arg2[0])); + x71 = ((uint64_t)(arg1[5]) * ((arg2[5]) * 0x2)); + x72 = ((uint64_t)(arg1[5]) * ((arg2[4]) * 0x2)); + x73 = ((uint64_t)(arg1[5]) * (arg2[3])); + x74 = ((uint64_t)(arg1[5]) * ((arg2[2]) * 0x2)); + x75 = ((uint64_t)(arg1[5]) * ((arg2[1]) * 0x2)); + x76 = ((uint64_t)(arg1[5]) * (arg2[0])); + x77 = ((uint64_t)(arg1[4]) * ((arg2[6]) * 0x2)); + x78 = ((uint64_t)(arg1[4]) * ((arg2[5]) * 0x2)); + x79 = ((uint64_t)(arg1[4]) * ((arg2[4]) * 0x2)); + x80 = ((uint64_t)(arg1[4]) * ((arg2[3]) * 0x2)); + x81 = ((uint64_t)(arg1[4]) * ((arg2[2]) * 0x2)); + x82 = ((uint64_t)(arg1[4]) * ((arg2[1]) * 0x2)); + x83 = ((uint64_t)(arg1[4]) * (arg2[0])); + x84 = ((uint64_t)(arg1[3]) * (arg2[7])); + x85 = ((uint64_t)(arg1[3]) * (arg2[6])); + x86 = ((uint64_t)(arg1[3]) * (arg2[5])); + x87 = ((uint64_t)(arg1[3]) * ((arg2[4]) * 0x2)); + x88 = ((uint64_t)(arg1[3]) * (arg2[3])); + x89 = ((uint64_t)(arg1[3]) * (arg2[2])); + x90 = ((uint64_t)(arg1[3]) * (arg2[1])); + x91 = ((uint64_t)(arg1[3]) * (arg2[0])); + x92 = ((uint64_t)(arg1[2]) * ((arg2[8]) * 0x2)); + x93 = ((uint64_t)(arg1[2]) * (arg2[7])); + x94 = ((uint64_t)(arg1[2]) * (arg2[6])); + x95 = ((uint64_t)(arg1[2]) * ((arg2[5]) * 0x2)); + x96 = ((uint64_t)(arg1[2]) * ((arg2[4]) * 0x2)); + x97 = ((uint64_t)(arg1[2]) * (arg2[3])); + x98 = ((uint64_t)(arg1[2]) * (arg2[2])); + x99 = ((uint64_t)(arg1[2]) * ((arg2[1]) * 0x2)); + x100 = ((uint64_t)(arg1[2]) * (arg2[0])); + x101 = ((uint64_t)(arg1[1]) * ((arg2[9]) * 0x2)); + x102 = ((uint64_t)(arg1[1]) * ((arg2[8]) * 0x2)); + x103 = ((uint64_t)(arg1[1]) * (arg2[7])); + x104 = ((uint64_t)(arg1[1]) * ((arg2[6]) * 0x2)); + x105 = ((uint64_t)(arg1[1]) * ((arg2[5]) * 0x2)); + x106 = ((uint64_t)(arg1[1]) * ((arg2[4]) * 0x2)); + x107 = ((uint64_t)(arg1[1]) * (arg2[3])); + x108 = ((uint64_t)(arg1[1]) * ((arg2[2]) * 0x2)); + x109 = ((uint64_t)(arg1[1]) * ((arg2[1]) * 0x2)); + x110 = ((uint64_t)(arg1[1]) * (arg2[0])); + x111 = ((uint64_t)(arg1[0]) * (arg2[10])); + x112 = ((uint64_t)(arg1[0]) * (arg2[9])); + x113 = ((uint64_t)(arg1[0]) * (arg2[8])); + x114 = ((uint64_t)(arg1[0]) * (arg2[7])); + x115 = ((uint64_t)(arg1[0]) * (arg2[6])); + x116 = ((uint64_t)(arg1[0]) * (arg2[5])); + x117 = ((uint64_t)(arg1[0]) * (arg2[4])); + x118 = ((uint64_t)(arg1[0]) * (arg2[3])); + x119 = ((uint64_t)(arg1[0]) * (arg2[2])); + x120 = ((uint64_t)(arg1[0]) * (arg2[1])); + x121 = ((uint64_t)(arg1[0]) * (arg2[0])); + x122 = + (x121 + + (x55 + + (x54 + (x52 + (x49 + (x45 + (x40 + (x34 + (x27 + (x19 + x10)))))))))); + x123 = (x122 >> 24); + x124 = (uint32_t)(x122 & UINT32_C(0xffffff)); + x125 = + (x111 + + (x101 + + (x92 + (x84 + (x77 + (x71 + (x66 + (x62 + (x59 + (x57 + x56)))))))))); + x126 = + (x112 + + (x102 + + (x93 + (x85 + (x78 + (x72 + (x67 + (x63 + (x60 + (x58 + x1)))))))))); + x127 = + (x113 + + (x103 + + (x94 + (x86 + (x79 + (x73 + (x68 + (x64 + (x61 + (x11 + x2)))))))))); + x128 = + (x114 + + (x104 + + (x95 + (x87 + (x80 + (x74 + (x69 + (x65 + (x20 + (x12 + x3)))))))))); + x129 = + (x115 + + (x105 + + (x96 + (x88 + (x81 + (x75 + (x70 + (x28 + (x21 + (x13 + x4)))))))))); + x130 = + (x116 + + (x106 + + (x97 + (x89 + (x82 + (x76 + (x35 + (x29 + (x22 + (x14 + x5)))))))))); + x131 = + (x117 + + (x107 + + (x98 + (x90 + (x83 + (x41 + (x36 + (x30 + (x23 + (x15 + x6)))))))))); + x132 = + (x118 + + (x108 + + (x99 + (x91 + (x46 + (x42 + (x37 + (x31 + (x24 + (x16 + x7)))))))))); + x133 = + (x119 + + (x109 + + (x100 + (x50 + (x47 + (x43 + (x38 + (x32 + (x25 + (x17 + x8)))))))))); + x134 = + (x120 + + (x110 + + (x53 + (x51 + (x48 + (x44 + (x39 + (x33 + (x26 + (x18 + x9)))))))))); + x135 = (x123 + x134); + x136 = (x135 >> 23); + x137 = (uint32_t)(x135 & UINT32_C(0x7fffff)); + x138 = (x136 + x133); + x139 = (x138 >> 23); + x140 = (uint32_t)(x138 & UINT32_C(0x7fffff)); + x141 = (x139 + x132); + x142 = (x141 >> 24); + x143 = (uint32_t)(x141 & UINT32_C(0xffffff)); + x144 = (x142 + x131); + x145 = (x144 >> 23); + x146 = (uint32_t)(x144 & UINT32_C(0x7fffff)); + x147 = (x145 + x130); + x148 = (x147 >> 23); + x149 = (uint32_t)(x147 & UINT32_C(0x7fffff)); + x150 = (x148 + x129); + x151 = (x150 >> 23); + x152 = (uint32_t)(x150 & UINT32_C(0x7fffff)); + x153 = (x151 + x128); + x154 = (x153 >> 24); + x155 = (uint32_t)(x153 & UINT32_C(0xffffff)); + x156 = (x154 + x127); + x157 = (x156 >> 23); + x158 = (uint32_t)(x156 & UINT32_C(0x7fffff)); + x159 = (x157 + x126); + x160 = (x159 >> 23); + x161 = (uint32_t)(x159 & UINT32_C(0x7fffff)); + x162 = (x160 + x125); + x163 = (uint32_t)(x162 >> 23); + x164 = (uint32_t)(x162 & UINT32_C(0x7fffff)); + x165 = ((uint64_t)UINT16_C(0x269) * x163); + x166 = (x124 + x165); + x167 = (uint32_t)(x166 >> 24); + x168 = (uint32_t)(x166 & UINT32_C(0xffffff)); + x169 = (x167 + x137); + x170 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x169 >> 23); + x171 = (x169 & UINT32_C(0x7fffff)); + x172 = (x170 + x140); + out1[0] = x168; + out1[1] = x171; + out1[2] = x172; + out1[3] = x143; + out1[4] = x146; + out1[5] = x149; + out1[6] = x152; + out1[7] = x155; + out1[8] = x158; + out1[9] = x161; + out1[10] = x164; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + * Output Bounds: + * out1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square( + uint32_t out1[11], const uint32_t arg1[11]) { + 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; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_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; + uint32_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; + uint32_t x102; + uint64_t x103; + uint64_t x104; + uint32_t x105; + uint64_t x106; + uint64_t x107; + uint32_t x108; + uint64_t x109; + uint64_t x110; + uint32_t x111; + uint64_t x112; + uint64_t x113; + uint32_t x114; + uint64_t x115; + uint64_t x116; + uint32_t x117; + uint64_t x118; + uint64_t x119; + uint32_t x120; + uint64_t x121; + uint64_t x122; + uint32_t x123; + uint64_t x124; + uint64_t x125; + uint32_t x126; + uint64_t x127; + uint32_t x128; + uint32_t x129; + uint64_t x130; + uint64_t x131; + uint32_t x132; + uint32_t x133; + uint32_t x134; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x135; + uint32_t x136; + uint32_t x137; + x1 = ((uint64_t)(arg1[10]) * UINT16_C(0x269)); + x2 = (x1 * 0x2); + x3 = ((arg1[10]) * 0x2); + x4 = ((uint64_t)(arg1[9]) * UINT16_C(0x269)); + x5 = (x4 * 0x2); + x6 = ((arg1[9]) * 0x2); + x7 = ((uint64_t)(arg1[8]) * UINT16_C(0x269)); + x8 = (x7 * 0x2); + x9 = ((arg1[8]) * 0x2); + x10 = ((uint64_t)(arg1[7]) * UINT16_C(0x269)); + x11 = (x10 * 0x2); + x12 = ((arg1[7]) * 0x2); + x13 = ((uint64_t)(arg1[6]) * UINT16_C(0x269)); + x14 = (x13 * 0x2); + x15 = ((arg1[6]) * 0x2); + x16 = ((arg1[5]) * 0x2); + x17 = ((arg1[4]) * 0x2); + x18 = ((arg1[3]) * 0x2); + x19 = ((arg1[2]) * 0x2); + x20 = ((arg1[1]) * 0x2); + x21 = ((arg1[10]) * x1); + x22 = ((arg1[9]) * x2); + x23 = ((arg1[9]) * (x4 * 0x2)); + x24 = ((arg1[8]) * (x2 * 0x2)); + x25 = ((arg1[8]) * (x5 * 0x2)); + x26 = ((arg1[8]) * (x7 * 0x2)); + x27 = ((arg1[7]) * x2); + x28 = ((arg1[7]) * x5); + x29 = ((arg1[7]) * x8); + x30 = ((arg1[7]) * x10); + x31 = ((arg1[6]) * x2); + x32 = ((arg1[6]) * x5); + x33 = ((arg1[6]) * (x8 * 0x2)); + x34 = ((arg1[6]) * x11); + x35 = ((arg1[6]) * x13); + x36 = ((arg1[5]) * x2); + x37 = ((arg1[5]) * (x5 * 0x2)); + x38 = ((arg1[5]) * (x8 * 0x2)); + x39 = ((arg1[5]) * x11); + x40 = ((arg1[5]) * (x14 * 0x2)); + x41 = ((uint64_t)(arg1[5]) * ((arg1[5]) * 0x2)); + x42 = ((arg1[4]) * (x2 * 0x2)); + x43 = ((arg1[4]) * (x5 * 0x2)); + x44 = ((arg1[4]) * (x8 * 0x2)); + x45 = ((arg1[4]) * (x11 * 0x2)); + x46 = ((uint64_t)(arg1[4]) * (x15 * 0x2)); + x47 = ((uint64_t)(arg1[4]) * (x16 * 0x2)); + x48 = ((uint64_t)(arg1[4]) * ((arg1[4]) * 0x2)); + x49 = ((arg1[3]) * x2); + x50 = ((arg1[3]) * x5); + x51 = ((arg1[3]) * (x8 * 0x2)); + x52 = ((uint64_t)(arg1[3]) * x12); + x53 = ((uint64_t)(arg1[3]) * x15); + x54 = ((uint64_t)(arg1[3]) * x16); + x55 = ((uint64_t)(arg1[3]) * (x17 * 0x2)); + x56 = ((uint64_t)(arg1[3]) * (arg1[3])); + x57 = ((arg1[2]) * x2); + x58 = ((arg1[2]) * (x5 * 0x2)); + x59 = ((uint64_t)(arg1[2]) * (x9 * 0x2)); + x60 = ((uint64_t)(arg1[2]) * x12); + x61 = ((uint64_t)(arg1[2]) * x15); + x62 = ((uint64_t)(arg1[2]) * (x16 * 0x2)); + x63 = ((uint64_t)(arg1[2]) * (x17 * 0x2)); + x64 = ((uint64_t)(arg1[2]) * x18); + x65 = ((uint64_t)(arg1[2]) * (arg1[2])); + x66 = ((arg1[1]) * (x2 * 0x2)); + x67 = ((uint64_t)(arg1[1]) * (x6 * 0x2)); + x68 = ((uint64_t)(arg1[1]) * (x9 * 0x2)); + x69 = ((uint64_t)(arg1[1]) * x12); + x70 = ((uint64_t)(arg1[1]) * (x15 * 0x2)); + x71 = ((uint64_t)(arg1[1]) * (x16 * 0x2)); + x72 = ((uint64_t)(arg1[1]) * (x17 * 0x2)); + x73 = ((uint64_t)(arg1[1]) * x18); + x74 = ((uint64_t)(arg1[1]) * (x19 * 0x2)); + x75 = ((uint64_t)(arg1[1]) * ((arg1[1]) * 0x2)); + x76 = ((uint64_t)(arg1[0]) * x3); + x77 = ((uint64_t)(arg1[0]) * x6); + x78 = ((uint64_t)(arg1[0]) * x9); + x79 = ((uint64_t)(arg1[0]) * x12); + x80 = ((uint64_t)(arg1[0]) * x15); + x81 = ((uint64_t)(arg1[0]) * x16); + x82 = ((uint64_t)(arg1[0]) * x17); + x83 = ((uint64_t)(arg1[0]) * x18); + x84 = ((uint64_t)(arg1[0]) * x19); + x85 = ((uint64_t)(arg1[0]) * x20); + x86 = ((uint64_t)(arg1[0]) * (arg1[0])); + x87 = (x86 + (x66 + (x58 + (x51 + (x45 + x40))))); + x88 = (x87 >> 24); + x89 = (uint32_t)(x87 & UINT32_C(0xffffff)); + x90 = (x76 + (x67 + (x59 + (x52 + (x46 + x41))))); + x91 = (x77 + (x68 + (x60 + (x53 + (x47 + x21))))); + x92 = (x78 + (x69 + (x61 + (x54 + (x48 + x22))))); + x93 = (x79 + (x70 + (x62 + (x55 + (x24 + x23))))); + x94 = (x80 + (x71 + (x63 + (x56 + (x27 + x25))))); + x95 = (x81 + (x72 + (x64 + (x31 + (x28 + x26))))); + x96 = (x82 + (x73 + (x65 + (x36 + (x32 + x29))))); + x97 = (x83 + (x74 + (x42 + (x37 + (x33 + x30))))); + x98 = (x84 + (x75 + (x49 + (x43 + (x38 + x34))))); + x99 = (x85 + (x57 + (x50 + (x44 + (x39 + x35))))); + x100 = (x88 + x99); + x101 = (x100 >> 23); + x102 = (uint32_t)(x100 & UINT32_C(0x7fffff)); + x103 = (x101 + x98); + x104 = (x103 >> 23); + x105 = (uint32_t)(x103 & UINT32_C(0x7fffff)); + x106 = (x104 + x97); + x107 = (x106 >> 24); + x108 = (uint32_t)(x106 & UINT32_C(0xffffff)); + x109 = (x107 + x96); + x110 = (x109 >> 23); + x111 = (uint32_t)(x109 & UINT32_C(0x7fffff)); + x112 = (x110 + x95); + x113 = (x112 >> 23); + x114 = (uint32_t)(x112 & UINT32_C(0x7fffff)); + x115 = (x113 + x94); + x116 = (x115 >> 23); + x117 = (uint32_t)(x115 & UINT32_C(0x7fffff)); + x118 = (x116 + x93); + x119 = (x118 >> 24); + x120 = (uint32_t)(x118 & UINT32_C(0xffffff)); + x121 = (x119 + x92); + x122 = (x121 >> 23); + x123 = (uint32_t)(x121 & UINT32_C(0x7fffff)); + x124 = (x122 + x91); + x125 = (x124 >> 23); + x126 = (uint32_t)(x124 & UINT32_C(0x7fffff)); + x127 = (x125 + x90); + x128 = (uint32_t)(x127 >> 23); + x129 = (uint32_t)(x127 & UINT32_C(0x7fffff)); + x130 = ((uint64_t)UINT16_C(0x269) * x128); + x131 = (x89 + x130); + x132 = (uint32_t)(x131 >> 24); + x133 = (uint32_t)(x131 & UINT32_C(0xffffff)); + x134 = (x132 + x102); + x135 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x134 >> 23); + x136 = (x134 & UINT32_C(0x7fffff)); + x137 = (x135 + x105); + out1[0] = x133; + out1[1] = x136; + out1[2] = x137; + out1[3] = x108; + out1[4] = x111; + out1[5] = x114; + out1[6] = x117; + out1[7] = x120; + out1[8] = x123; + out1[9] = x126; + out1[10] = x129; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry reduces a field element. + * Postconditions: + * eval out1 mod m = eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + * Output Bounds: + * out1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry( + uint32_t out1[11], const uint32_t arg1[11]) { + 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; + x1 = (arg1[0]); + x2 = ((x1 >> 24) + (arg1[1])); + x3 = ((x2 >> 23) + (arg1[2])); + x4 = ((x3 >> 23) + (arg1[3])); + x5 = ((x4 >> 24) + (arg1[4])); + x6 = ((x5 >> 23) + (arg1[5])); + x7 = ((x6 >> 23) + (arg1[6])); + x8 = ((x7 >> 23) + (arg1[7])); + x9 = ((x8 >> 24) + (arg1[8])); + x10 = ((x9 >> 23) + (arg1[9])); + x11 = ((x10 >> 23) + (arg1[10])); + x12 = ((x1 & UINT32_C(0xffffff)) + (UINT16_C(0x269) * (x11 >> 23))); + x13 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x12 >> 24) + + (x2 & UINT32_C(0x7fffff))); + x14 = (x12 & UINT32_C(0xffffff)); + x15 = (x13 & UINT32_C(0x7fffff)); + x16 = ((fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x13 >> 23) + + (x3 & UINT32_C(0x7fffff))); + x17 = (x4 & UINT32_C(0xffffff)); + x18 = (x5 & UINT32_C(0x7fffff)); + x19 = (x6 & UINT32_C(0x7fffff)); + x20 = (x7 & UINT32_C(0x7fffff)); + x21 = (x8 & UINT32_C(0xffffff)); + x22 = (x9 & UINT32_C(0x7fffff)); + x23 = (x10 & UINT32_C(0x7fffff)); + x24 = (x11 & UINT32_C(0x7fffff)); + out1[0] = x14; + out1[1] = x15; + out1[2] = x16; + out1[3] = x17; + out1[4] = x18; + out1[5] = x19; + out1[6] = x20; + out1[7] = x21; + out1[8] = x22; + out1[9] = x23; + out1[10] = x24; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_add adds two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 + eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * arg2: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_add( + uint32_t out1[11], const uint32_t arg1[11], const uint32_t arg2[11]) { + 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; + 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])); + 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; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_sub subtracts two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 - eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * arg2: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_sub( + uint32_t out1[11], const uint32_t arg1[11], const uint32_t arg2[11]) { + 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; + x1 = ((UINT32_C(0x1fffb2e) + (arg1[0])) - (arg2[0])); + x2 = ((UINT32_C(0xfffffe) + (arg1[1])) - (arg2[1])); + x3 = ((UINT32_C(0xfffffe) + (arg1[2])) - (arg2[2])); + x4 = ((UINT32_C(0x1fffffe) + (arg1[3])) - (arg2[3])); + x5 = ((UINT32_C(0xfffffe) + (arg1[4])) - (arg2[4])); + x6 = ((UINT32_C(0xfffffe) + (arg1[5])) - (arg2[5])); + x7 = ((UINT32_C(0xfffffe) + (arg1[6])) - (arg2[6])); + x8 = ((UINT32_C(0x1fffffe) + (arg1[7])) - (arg2[7])); + x9 = ((UINT32_C(0xfffffe) + (arg1[8])) - (arg2[8])); + x10 = ((UINT32_C(0xfffffe) + (arg1[9])) - (arg2[9])); + x11 = ((UINT32_C(0xfffffe) + (arg1[10])) - (arg2[10])); + 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; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp negates a field element. + * Postconditions: + * eval out1 mod m = -eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp( + uint32_t out1[11], const uint32_t arg1[11]) { + 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; + x1 = (UINT32_C(0x1fffb2e) - (arg1[0])); + x2 = (UINT32_C(0xfffffe) - (arg1[1])); + x3 = (UINT32_C(0xfffffe) - (arg1[2])); + x4 = (UINT32_C(0x1fffffe) - (arg1[3])); + x5 = (UINT32_C(0xfffffe) - (arg1[4])); + x6 = (UINT32_C(0xfffffe) - (arg1[5])); + x7 = (UINT32_C(0xfffffe) - (arg1[6])); + x8 = (UINT32_C(0x1fffffe) - (arg1[7])); + x9 = (UINT32_C(0xfffffe) - (arg1[8])); + x10 = (UINT32_C(0xfffffe) - (arg1[9])); + x11 = (UINT32_C(0xfffffe) - (arg1[10])); + 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; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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]] + * arg3: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + uint32_t out1[11], fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 arg1, + const uint32_t arg2[11], const uint32_t arg3[11]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x1, arg1, (arg2[0]), (arg3[0])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x2, arg1, (arg2[1]), (arg3[1])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x3, arg1, (arg2[2]), (arg3[2])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x4, arg1, (arg2[3]), (arg3[3])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x5, arg1, (arg2[4]), (arg3[4])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x6, arg1, (arg2[5]), (arg3[5])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x7, arg1, (arg2[6]), (arg3[6])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x8, arg1, (arg2[7]), (arg3[7])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x9, arg1, (arg2[8]), (arg3[8])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x10, arg1, (arg2[9]), (arg3[9])); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x11, arg1, (arg2[10]), (arg3[10])); + 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; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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..31] + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * 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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes( + uint8_t out1[32], const uint32_t arg1[11]) { + uint32_t x1; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x2; + uint32_t x3; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x4; + uint32_t x5; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x6; + uint32_t x7; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x8; + uint32_t x9; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x10; + uint32_t x11; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x14; + uint32_t x15; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x16; + uint32_t x17; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x18; + uint32_t x19; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x20; + uint32_t x21; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x22; + uint32_t x23; + uint32_t x24; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x25; + uint32_t x26; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x27; + uint32_t x28; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x29; + uint32_t x30; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x31; + uint32_t x32; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x33; + uint32_t x34; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x35; + uint32_t x36; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x37; + uint32_t x38; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x39; + uint32_t x40; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x41; + uint32_t x42; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x43; + uint32_t x44; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x45; + uint32_t x46; + uint32_t x47; + uint32_t x48; + uint32_t x49; + uint32_t x50; + uint32_t x51; + uint32_t x52; + uint32_t x53; + uint32_t x54; + uint32_t x55; + uint8_t x56; + uint8_t x57; + uint8_t x58; + uint8_t x59; + uint32_t x60; + uint8_t x61; + uint8_t x62; + uint8_t x63; + uint32_t x64; + uint32_t x65; + uint8_t x66; + uint32_t x67; + uint8_t x68; + uint8_t x69; + uint8_t x70; + uint32_t x71; + uint32_t x72; + uint8_t x73; + uint32_t x74; + uint8_t x75; + uint8_t x76; + uint8_t x77; + uint32_t x78; + uint32_t x79; + uint8_t x80; + uint32_t x81; + uint8_t x82; + uint8_t x83; + uint8_t x84; + uint32_t x85; + uint32_t x86; + uint8_t x87; + uint32_t x88; + uint8_t x89; + uint8_t x90; + uint8_t x91; + uint32_t x92; + uint32_t x93; + uint8_t x94; + uint32_t x95; + uint8_t x96; + uint8_t x97; + uint8_t x98; + uint32_t x99; + uint32_t x100; + uint8_t x101; + uint32_t x102; + uint8_t x103; + uint8_t x104; + uint8_t x105; + uint32_t x106; + uint32_t x107; + uint8_t x108; + uint32_t x109; + uint8_t x110; + uint8_t x111; + uint8_t x112; + uint32_t x113; + uint32_t x114; + uint8_t x115; + uint32_t x116; + uint8_t x117; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x118; + uint8_t x119; + uint32_t x120; + uint32_t x121; + uint8_t x122; + uint8_t x123; + uint8_t x124; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u24( + &x1, &x2, 0x0, (arg1[0]), UINT32_C(0xfffd97)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u23( + &x3, &x4, x2, (arg1[1]), UINT32_C(0x7fffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u23( + &x5, &x6, x4, (arg1[2]), UINT32_C(0x7fffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u24( + &x7, &x8, x6, (arg1[3]), UINT32_C(0xffffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u23( + &x9, &x10, x8, (arg1[4]), UINT32_C(0x7fffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u23( + &x11, &x12, x10, (arg1[5]), UINT32_C(0x7fffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u23( + &x13, &x14, x12, (arg1[6]), UINT32_C(0x7fffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u24( + &x15, &x16, x14, (arg1[7]), UINT32_C(0xffffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u23( + &x17, &x18, x16, (arg1[8]), UINT32_C(0x7fffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u23( + &x19, &x20, x18, (arg1[9]), UINT32_C(0x7fffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_subborrowx_u23( + &x21, &x22, x20, (arg1[10]), UINT32_C(0x7fffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_cmovznz_u32( + &x23, x22, 0x0, UINT32_C(0xffffffff)); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u24( + &x24, &x25, 0x0, x1, (x23 & UINT32_C(0xfffd97))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u23( + &x26, &x27, x25, x3, (x23 & UINT32_C(0x7fffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u23( + &x28, &x29, x27, x5, (x23 & UINT32_C(0x7fffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u24( + &x30, &x31, x29, x7, (x23 & UINT32_C(0xffffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u23( + &x32, &x33, x31, x9, (x23 & UINT32_C(0x7fffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u23( + &x34, &x35, x33, x11, (x23 & UINT32_C(0x7fffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u23( + &x36, &x37, x35, x13, (x23 & UINT32_C(0x7fffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u24( + &x38, &x39, x37, x15, (x23 & UINT32_C(0xffffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u23( + &x40, &x41, x39, x17, (x23 & UINT32_C(0x7fffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u23( + &x42, &x43, x41, x19, (x23 & UINT32_C(0x7fffff))); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_addcarryx_u23( + &x44, &x45, x43, x21, (x23 & UINT32_C(0x7fffff))); + x46 = (x44 * (uint32_t)0x2); + x47 = (x42 << 2); + x48 = (x40 << 3); + x49 = (x38 << 3); + x50 = (x36 << 4); + x51 = (x34 << 5); + x52 = (x32 << 6); + x53 = (x30 << 6); + x54 = (x28 << 7); + x55 = (x24 >> 8); + x56 = (uint8_t)(x24 & UINT8_C(0xff)); + x57 = (uint8_t)(x55 >> 8); + x58 = (uint8_t)(x55 & UINT8_C(0xff)); + x59 = (uint8_t)(x57 & UINT8_C(0xff)); + x60 = (x26 >> 8); + x61 = (uint8_t)(x26 & UINT8_C(0xff)); + x62 = (uint8_t)(x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + x64 = (x62 + x54); + x65 = (x64 >> 8); + x66 = (uint8_t)(x64 & UINT8_C(0xff)); + x67 = (x65 >> 8); + x68 = (uint8_t)(x65 & UINT8_C(0xff)); + x69 = (uint8_t)(x67 >> 8); + x70 = (uint8_t)(x67 & UINT8_C(0xff)); + x71 = (x69 + x53); + x72 = (x71 >> 8); + x73 = (uint8_t)(x71 & UINT8_C(0xff)); + x74 = (x72 >> 8); + x75 = (uint8_t)(x72 & UINT8_C(0xff)); + x76 = (uint8_t)(x74 >> 8); + x77 = (uint8_t)(x74 & UINT8_C(0xff)); + x78 = (x76 + x52); + x79 = (x78 >> 8); + x80 = (uint8_t)(x78 & UINT8_C(0xff)); + x81 = (x79 >> 8); + x82 = (uint8_t)(x79 & UINT8_C(0xff)); + x83 = (uint8_t)(x81 >> 8); + x84 = (uint8_t)(x81 & UINT8_C(0xff)); + x85 = (x83 + x51); + x86 = (x85 >> 8); + x87 = (uint8_t)(x85 & UINT8_C(0xff)); + x88 = (x86 >> 8); + x89 = (uint8_t)(x86 & UINT8_C(0xff)); + x90 = (uint8_t)(x88 >> 8); + x91 = (uint8_t)(x88 & UINT8_C(0xff)); + x92 = (x90 + x50); + x93 = (x92 >> 8); + x94 = (uint8_t)(x92 & UINT8_C(0xff)); + x95 = (x93 >> 8); + x96 = (uint8_t)(x93 & UINT8_C(0xff)); + x97 = (uint8_t)(x95 >> 8); + x98 = (uint8_t)(x95 & UINT8_C(0xff)); + x99 = (x97 + x49); + x100 = (x99 >> 8); + x101 = (uint8_t)(x99 & UINT8_C(0xff)); + x102 = (x100 >> 8); + x103 = (uint8_t)(x100 & UINT8_C(0xff)); + x104 = (uint8_t)(x102 >> 8); + x105 = (uint8_t)(x102 & UINT8_C(0xff)); + x106 = (x104 + x48); + x107 = (x106 >> 8); + x108 = (uint8_t)(x106 & UINT8_C(0xff)); + x109 = (x107 >> 8); + x110 = (uint8_t)(x107 & UINT8_C(0xff)); + x111 = (uint8_t)(x109 >> 8); + x112 = (uint8_t)(x109 & UINT8_C(0xff)); + x113 = (x111 + x47); + x114 = (x113 >> 8); + x115 = (uint8_t)(x113 & UINT8_C(0xff)); + x116 = (x114 >> 8); + x117 = (uint8_t)(x114 & UINT8_C(0xff)); + x118 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x116 >> 8); + x119 = (uint8_t)(x116 & UINT8_C(0xff)); + x120 = (x118 + x46); + x121 = (x120 >> 8); + x122 = (uint8_t)(x120 & UINT8_C(0xff)); + x123 = (uint8_t)(x121 >> 8); + x124 = (uint8_t)(x121 & UINT8_C(0xff)); + out1[0] = x56; + out1[1] = x58; + out1[2] = x59; + out1[3] = x61; + out1[4] = x63; + out1[5] = x66; + out1[6] = x68; + out1[7] = x70; + out1[8] = x73; + out1[9] = x75; + out1[10] = x77; + out1[11] = x80; + out1[12] = x82; + out1[13] = x84; + out1[14] = x87; + out1[15] = x89; + out1[16] = x91; + out1[17] = x94; + out1[18] = x96; + out1[19] = x98; + out1[20] = x101; + out1[21] = x103; + out1[22] = x105; + out1[23] = x108; + out1[24] = x110; + out1[25] = x112; + out1[26] = x115; + out1[27] = x117; + out1[28] = x119; + out1[29] = x122; + out1[30] = x124; + out1[31] = x123; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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]] + * Output Bounds: + * out1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_from_bytes( + uint32_t out1[11], const uint8_t arg1[32]) { + 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; + uint8_t x29; + uint32_t x30; + uint32_t x31; + uint8_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; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1 x45; + uint32_t x46; + uint32_t x47; + uint8_t x48; + uint32_t x49; + uint32_t x50; + uint8_t x51; + uint32_t x52; + uint32_t x53; + uint8_t x54; + uint32_t x55; + uint32_t x56; + uint8_t x57; + uint32_t x58; + uint32_t x59; + uint8_t x60; + uint32_t x61; + uint32_t x62; + uint8_t x63; + uint32_t x64; + uint32_t x65; + uint8_t x66; + uint32_t x67; + uint32_t x68; + uint8_t x69; + uint32_t x70; + uint32_t x71; + x1 = ((uint32_t)(arg1[31]) << 15); + x2 = ((uint32_t)(arg1[30]) << 7); + x3 = ((uint32_t)(arg1[29]) << 22); + x4 = ((uint32_t)(arg1[28]) << 14); + x5 = ((uint32_t)(arg1[27]) << 6); + x6 = ((uint32_t)(arg1[26]) << 21); + x7 = ((uint32_t)(arg1[25]) << 13); + x8 = ((uint32_t)(arg1[24]) << 5); + x9 = ((uint32_t)(arg1[23]) << 21); + x10 = ((uint32_t)(arg1[22]) << 13); + x11 = ((uint32_t)(arg1[21]) << 5); + x12 = ((uint32_t)(arg1[20]) << 20); + x13 = ((uint32_t)(arg1[19]) << 12); + x14 = ((uint32_t)(arg1[18]) << 4); + x15 = ((uint32_t)(arg1[17]) << 19); + x16 = ((uint32_t)(arg1[16]) << 11); + x17 = ((uint32_t)(arg1[15]) << 3); + x18 = ((uint32_t)(arg1[14]) << 18); + x19 = ((uint32_t)(arg1[13]) << 10); + x20 = ((uint32_t)(arg1[12]) << 2); + x21 = ((uint32_t)(arg1[11]) << 18); + x22 = ((uint32_t)(arg1[10]) << 10); + x23 = ((uint32_t)(arg1[9]) << 2); + x24 = ((uint32_t)(arg1[8]) << 17); + x25 = ((uint32_t)(arg1[7]) << 9); + x26 = ((uint32_t)(arg1[6]) * 0x2); + x27 = ((uint32_t)(arg1[5]) << 16); + x28 = ((uint32_t)(arg1[4]) << 8); + x29 = (arg1[3]); + x30 = ((uint32_t)(arg1[2]) << 16); + x31 = ((uint32_t)(arg1[1]) << 8); + x32 = (arg1[0]); + x33 = (x32 + (x31 + x30)); + x34 = (x33 & UINT32_C(0xffffff)); + x35 = (x2 + x1); + x36 = (x5 + (x4 + x3)); + x37 = (x8 + (x7 + x6)); + x38 = (x11 + (x10 + x9)); + x39 = (x14 + (x13 + x12)); + x40 = (x17 + (x16 + x15)); + x41 = (x20 + (x19 + x18)); + x42 = (x23 + (x22 + x21)); + x43 = (x26 + (x25 + x24)); + x44 = (x29 + (x28 + x27)); + x45 = (fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_uint1)(x44 >> 23); + x46 = (x44 & UINT32_C(0x7fffff)); + x47 = (x45 + x43); + x48 = (uint8_t)(x47 >> 23); + x49 = (x47 & UINT32_C(0x7fffff)); + x50 = (x48 + x42); + x51 = (uint8_t)(x50 >> 24); + x52 = (x50 & UINT32_C(0xffffff)); + x53 = (x51 + x41); + x54 = (uint8_t)(x53 >> 23); + x55 = (x53 & UINT32_C(0x7fffff)); + x56 = (x54 + x40); + x57 = (uint8_t)(x56 >> 23); + x58 = (x56 & UINT32_C(0x7fffff)); + x59 = (x57 + x39); + x60 = (uint8_t)(x59 >> 23); + x61 = (x59 & UINT32_C(0x7fffff)); + x62 = (x60 + x38); + x63 = (uint8_t)(x62 >> 24); + x64 = (x62 & UINT32_C(0xffffff)); + x65 = (x63 + x37); + x66 = (uint8_t)(x65 >> 23); + x67 = (x65 & UINT32_C(0x7fffff)); + x68 = (x66 + x36); + x69 = (uint8_t)(x68 >> 23); + x70 = (x68 & UINT32_C(0x7fffff)); + x71 = (x69 + x35); + out1[0] = x34; + out1[1] = x46; + out1[2] = x49; + out1[3] = x52; + out1[4] = x55; + out1[5] = x58; + out1[6] = x61; + out1[7] = x64; + out1[8] = x67; + out1[9] = x70; + out1[10] = x71; +} + +/* 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_GostR3410_2001_CryptoPro_A_ParamSet/fe_inv.op3 + * custom repunit addition chain + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t16, t164, t2, t246, t32, t4, t64, t8, t80, t82; + + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t2, acc, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t4, acc, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t4); + for (i = 0; i < 3; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t8, acc, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t8); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t16, acc, t8); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t16); + for (i = 0; i < 15; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t32, acc, t16); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t32); + for (i = 0; i < 31; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t64, acc, t32); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t64); + for (i = 0; i < 15; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t80, acc, t16); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t80); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t82, acc, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t82); + for (i = 0; i < 81; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t164, acc, t82); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t164); + for (i = 0; i < 81; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t246, acc, t82); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, t246); + for (i = 0; i < 2; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(acc, acc, t2); + for (i = 0; i < 3; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(output, acc, t1); +} + +/* curve coefficient constants */ + +static const limb_t const_one[11] = { + 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)}; + +static const limb_t const_b[11] = { + UINT32_C(0x000000A6), 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)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[19][16] = { + { + {{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(0x009F1E14), UINT32_C(0x00499C9E), UINT32_C(0x00624559), + UINT32_C(0x007C8F8E), UINT32_C(0x00253CB7), UINT32_C(0x005BB1A9), + UINT32_C(0x002453F2), UINT32_C(0x00FBEA0B), UINT32_C(0x00139B44), + UINT32_C(0x001C7826), UINT32_C(0x0046C8F2)}}, + {{UINT32_C(0x00E38D2C), UINT32_C(0x00638E38), UINT32_C(0x00471C71), + UINT32_C(0x008E38E3), UINT32_C(0x000E38E3), UINT32_C(0x001C71C7), + UINT32_C(0x0038E38E), UINT32_C(0x0071C71C), UINT32_C(0x0071C71C), + UINT32_C(0x00638E38), UINT32_C(0x00471C71)}, + {UINT32_C(0x00788A51), UINT32_C(0x0017796B), UINT32_C(0x005090C2), + UINT32_C(0x000E1DA3), UINT32_C(0x001EA532), UINT32_C(0x006C1093), + UINT32_C(0x00507A6C), UINT32_C(0x009B375E), UINT32_C(0x0076083A), + UINT32_C(0x0072A688), UINT32_C(0x003B5E68)}}, + {{UINT32_C(0x0072C029), UINT32_C(0x001C3871), UINT32_C(0x006DE040), + UINT32_C(0x00E6D223), UINT32_C(0x0035AD09), UINT32_C(0x0078D2C5), + UINT32_C(0x004B6782), UINT32_C(0x006D32D1), UINT32_C(0x001D2C78), + UINT32_C(0x000F861E), UINT32_C(0x00483B00)}, + {UINT32_C(0x008D7CC0), UINT32_C(0x00023B06), UINT32_C(0x0030EC69), + UINT32_C(0x00FF4DED), UINT32_C(0x002EE231), UINT32_C(0x006412C7), + UINT32_C(0x005AF3F6), UINT32_C(0x00435452), UINT32_C(0x0004E9C3), + UINT32_C(0x006B9475), UINT32_C(0x00484B93)}}, + {{UINT32_C(0x00196EE1), UINT32_C(0x006A01E4), UINT32_C(0x00652F51), + UINT32_C(0x00416FD6), UINT32_C(0x005EBCD2), UINT32_C(0x0071846F), + UINT32_C(0x0036FA23), UINT32_C(0x00D73EBD), UINT32_C(0x00180C14), + UINT32_C(0x00653358), UINT32_C(0x0017EEC8)}, + {UINT32_C(0x000125FB), UINT32_C(0x00410C4D), UINT32_C(0x0074C481), + UINT32_C(0x002A7CFC), UINT32_C(0x0065AC08), UINT32_C(0x000F3BD1), + UINT32_C(0x004A5388), UINT32_C(0x00B7149E), UINT32_C(0x00085C10), + UINT32_C(0x0054C612), UINT32_C(0x000E3FA5)}}, + {{UINT32_C(0x005ECDA3), UINT32_C(0x00246227), UINT32_C(0x0016E04F), + UINT32_C(0x0005C37F), UINT32_C(0x00442C63), UINT32_C(0x001D5B95), + UINT32_C(0x0057520F), UINT32_C(0x00792514), UINT32_C(0x003FB8FA), + UINT32_C(0x0037B8D0), UINT32_C(0x005B7CB0)}, + {UINT32_C(0x005ED26A), UINT32_C(0x0028AD39), UINT32_C(0x004E2D06), + UINT32_C(0x00BDC2A3), UINT32_C(0x0052BE72), UINT32_C(0x002F9991), + UINT32_C(0x0019C7FC), UINT32_C(0x00209BD7), UINT32_C(0x007BF20C), + UINT32_C(0x005196B4), UINT32_C(0x0069DFB4)}}, + {{UINT32_C(0x00834086), UINT32_C(0x002F3D1A), UINT32_C(0x007690A4), + UINT32_C(0x00B28D88), UINT32_C(0x0022B907), UINT32_C(0x0025F98C), + UINT32_C(0x0023F3A1), UINT32_C(0x00E2E9F9), UINT32_C(0x003A0364), + UINT32_C(0x00613CE7), UINT32_C(0x0031EE39)}, + {UINT32_C(0x00C2FF84), UINT32_C(0x003F08BB), UINT32_C(0x0016B10A), + UINT32_C(0x001D9E58), UINT32_C(0x001AA31A), UINT32_C(0x0016B57C), + UINT32_C(0x002724AF), UINT32_C(0x001CEDB4), UINT32_C(0x000F8812), + UINT32_C(0x0014C068), UINT32_C(0x0064070B)}}, + {{UINT32_C(0x00BBCCCD), UINT32_C(0x002E8F3C), UINT32_C(0x0054B6AC), + UINT32_C(0x00FD3BBE), UINT32_C(0x0013312F), UINT32_C(0x006A114E), + UINT32_C(0x000F7610), UINT32_C(0x00A85A6C), UINT32_C(0x0073D230), + UINT32_C(0x001AE5A6), UINT32_C(0x0028C30C)}, + {UINT32_C(0x00C26CB2), UINT32_C(0x006BBD29), UINT32_C(0x0024F433), + UINT32_C(0x00BE725E), UINT32_C(0x001ECBEE), UINT32_C(0x00646D3C), + UINT32_C(0x0015C789), UINT32_C(0x00B07720), UINT32_C(0x0030D220), + UINT32_C(0x0045843E), UINT32_C(0x001EADEA)}}, + {{UINT32_C(0x007C58E2), UINT32_C(0x0052800F), UINT32_C(0x002F9F17), + UINT32_C(0x0083F230), UINT32_C(0x004207AA), UINT32_C(0x004B8493), + UINT32_C(0x0033495B), UINT32_C(0x001061BD), UINT32_C(0x0057D115), + UINT32_C(0x005F83CA), UINT32_C(0x0051583F)}, + {UINT32_C(0x00B12811), UINT32_C(0x00705E55), UINT32_C(0x0048A034), + UINT32_C(0x00C9201A), UINT32_C(0x0060E5DF), UINT32_C(0x006C7FE0), + UINT32_C(0x00500B66), UINT32_C(0x00A91FBD), UINT32_C(0x001CFF16), + UINT32_C(0x0066C372), UINT32_C(0x0002B561)}}, + {{UINT32_C(0x0039A634), UINT32_C(0x0050548C), UINT32_C(0x005CFE7B), + UINT32_C(0x00723488), UINT32_C(0x006CDBF9), UINT32_C(0x006D4A7E), + UINT32_C(0x00107BD7), UINT32_C(0x00D87870), UINT32_C(0x006FFF35), + UINT32_C(0x0047470D), UINT32_C(0x001D44AD)}, + {UINT32_C(0x0051071C), UINT32_C(0x0000FACA), UINT32_C(0x004AB290), + UINT32_C(0x00D72DA0), UINT32_C(0x000E946D), UINT32_C(0x00154920), + UINT32_C(0x000DE920), UINT32_C(0x002CCC50), UINT32_C(0x0078FF60), + UINT32_C(0x0076A2F6), UINT32_C(0x00418509)}}, + {{UINT32_C(0x00EF5595), UINT32_C(0x00116786), UINT32_C(0x00615EC8), + UINT32_C(0x00727C29), UINT32_C(0x0021D6BF), UINT32_C(0x00727880), + UINT32_C(0x0025C9C9), UINT32_C(0x0031B0B0), UINT32_C(0x002CACE7), + UINT32_C(0x003C8E5C), UINT32_C(0x002C31D8)}, + {UINT32_C(0x00328440), UINT32_C(0x00485469), UINT32_C(0x006AE670), + UINT32_C(0x006EE53F), UINT32_C(0x00299C43), UINT32_C(0x0005AD41), + UINT32_C(0x000D8C3F), UINT32_C(0x00072A91), UINT32_C(0x0067D0E1), + UINT32_C(0x004B76E9), UINT32_C(0x0074B00D)}}, + {{UINT32_C(0x00041497), UINT32_C(0x001E11C9), UINT32_C(0x001A4504), + UINT32_C(0x002A7919), UINT32_C(0x00074B21), UINT32_C(0x004FA67F), + UINT32_C(0x0004DC6B), UINT32_C(0x00F2C95C), UINT32_C(0x0039BDCC), + UINT32_C(0x007A64EC), UINT32_C(0x005F3E5D)}, + {UINT32_C(0x009C53EC), UINT32_C(0x0069BDE1), UINT32_C(0x007E0626), + UINT32_C(0x0042ED13), UINT32_C(0x0062AFB2), UINT32_C(0x0031E908), + UINT32_C(0x003C5398), UINT32_C(0x006BE167), UINT32_C(0x0002399E), + UINT32_C(0x00210E43), UINT32_C(0x0001779F)}}, + {{UINT32_C(0x00C84A66), UINT32_C(0x00444B2F), UINT32_C(0x000108CC), + UINT32_C(0x0036EEF4), UINT32_C(0x00681F17), UINT32_C(0x00165962), + UINT32_C(0x004C1DBC), UINT32_C(0x003AFD47), UINT32_C(0x003B7CE0), + UINT32_C(0x0037AD5F), UINT32_C(0x004C55A7)}, + {UINT32_C(0x00C53CD0), UINT32_C(0x002E065E), UINT32_C(0x0002B7D3), + UINT32_C(0x00A10201), UINT32_C(0x00174A99), UINT32_C(0x00365939), + UINT32_C(0x001F2D54), UINT32_C(0x000806C0), UINT32_C(0x0039185C), + UINT32_C(0x00001C4B), UINT32_C(0x00415674)}}, + {{UINT32_C(0x008B07C5), UINT32_C(0x007D1002), UINT32_C(0x0012AE3E), + UINT32_C(0x002C420C), UINT32_C(0x00470873), UINT32_C(0x00339263), + UINT32_C(0x006C2C6C), UINT32_C(0x002D1BB6), UINT32_C(0x0072A553), + UINT32_C(0x00306BCE), UINT32_C(0x0007F4C6)}, + {UINT32_C(0x00B6438D), UINT32_C(0x007278A9), UINT32_C(0x0076463F), + UINT32_C(0x00D03F8A), UINT32_C(0x00332938), UINT32_C(0x001C7585), + UINT32_C(0x000874CF), UINT32_C(0x00CEDF11), UINT32_C(0x00432AA3), + UINT32_C(0x0059DEAB), UINT32_C(0x005C130A)}}, + {{UINT32_C(0x00B53E9C), UINT32_C(0x006388B4), UINT32_C(0x000428F8), + UINT32_C(0x0008A18A), UINT32_C(0x000EB210), UINT32_C(0x003361E6), + UINT32_C(0x0006528B), UINT32_C(0x00A1AD62), UINT32_C(0x005BD8BC), + UINT32_C(0x000D44E3), UINT32_C(0x0018CEE3)}, + {UINT32_C(0x00EC3379), UINT32_C(0x002B9AD0), UINT32_C(0x003D2CC1), + UINT32_C(0x00A04547), UINT32_C(0x00600394), UINT32_C(0x00240EC9), + UINT32_C(0x000CF8E5), UINT32_C(0x00DE5CA1), UINT32_C(0x00107147), + UINT32_C(0x003B518C), UINT32_C(0x0060976D)}}, + {{UINT32_C(0x00685C39), UINT32_C(0x00577EB1), UINT32_C(0x002AA0AD), + UINT32_C(0x00E3B804), UINT32_C(0x003082F3), UINT32_C(0x002C92AC), + UINT32_C(0x00207C69), UINT32_C(0x00658635), UINT32_C(0x00670DA3), + UINT32_C(0x0006A6A4), UINT32_C(0x002AF849)}, + {UINT32_C(0x0005760A), UINT32_C(0x006E3A33), UINT32_C(0x00629DCA), + UINT32_C(0x00D8388A), UINT32_C(0x007C1F0E), UINT32_C(0x00121173), + UINT32_C(0x002A0106), UINT32_C(0x00607836), UINT32_C(0x0071EB45), + UINT32_C(0x00749724), UINT32_C(0x00722A37)}}, + {{UINT32_C(0x00DB7020), UINT32_C(0x005F6FEC), UINT32_C(0x0001C894), + UINT32_C(0x00D0F9D5), UINT32_C(0x0045FD0A), UINT32_C(0x002C8167), + UINT32_C(0x000995E9), UINT32_C(0x00C5F645), UINT32_C(0x002318F0), + UINT32_C(0x0077F38B), UINT32_C(0x00580E22)}, + {UINT32_C(0x003C5516), UINT32_C(0x00035DF1), UINT32_C(0x00592BC6), + UINT32_C(0x00A625DD), UINT32_C(0x002295A0), UINT32_C(0x0060337A), + UINT32_C(0x0021824B), UINT32_C(0x00C51AB1), UINT32_C(0x0014C123), + UINT32_C(0x007703F3), UINT32_C(0x002945A3)}}, + }, + { + {{UINT32_C(0x0015A14B), UINT32_C(0x002339F9), UINT32_C(0x005304AB), + UINT32_C(0x0075CCEE), UINT32_C(0x00194DC5), UINT32_C(0x004A8A9E), + UINT32_C(0x0046D1D2), UINT32_C(0x0075C952), UINT32_C(0x007ED8B2), + UINT32_C(0x00058732), UINT32_C(0x0045D9A3)}, + {UINT32_C(0x00E6BE0F), UINT32_C(0x005D23F0), UINT32_C(0x005D9FF5), + UINT32_C(0x00C7E802), UINT32_C(0x0010C909), UINT32_C(0x00207ED0), + UINT32_C(0x0066F794), UINT32_C(0x00D9AFE4), UINT32_C(0x007DA500), + UINT32_C(0x007B21FF), UINT32_C(0x0058D1D8)}}, + {{UINT32_C(0x007DD1B7), UINT32_C(0x000A4C87), UINT32_C(0x005506F4), + UINT32_C(0x00D63219), UINT32_C(0x00657A0A), UINT32_C(0x007F79A5), + UINT32_C(0x003CA588), UINT32_C(0x00FF7B22), UINT32_C(0x002E92EA), + UINT32_C(0x0030699F), UINT32_C(0x0028801D)}, + {UINT32_C(0x00171DE8), UINT32_C(0x0074AA40), UINT32_C(0x00776396), + UINT32_C(0x000B6039), UINT32_C(0x00477A52), UINT32_C(0x00552FC4), + UINT32_C(0x004CB63D), UINT32_C(0x001F4555), UINT32_C(0x00762774), + UINT32_C(0x00404FD4), UINT32_C(0x001F0E12)}}, + {{UINT32_C(0x002131C9), UINT32_C(0x006A9CFB), UINT32_C(0x0023C4EC), + UINT32_C(0x00E6D39F), UINT32_C(0x00185E55), UINT32_C(0x0032F173), + UINT32_C(0x005E6019), UINT32_C(0x00A7E72E), UINT32_C(0x006D091C), + UINT32_C(0x002967FD), UINT32_C(0x002B5D44)}, + {UINT32_C(0x00C01BA9), UINT32_C(0x0024C542), UINT32_C(0x00765B4D), + UINT32_C(0x0061291A), UINT32_C(0x0020B694), UINT32_C(0x0012B204), + UINT32_C(0x006C029A), UINT32_C(0x00880C16), UINT32_C(0x00087D31), + UINT32_C(0x0013494A), UINT32_C(0x0005AC30)}}, + {{UINT32_C(0x00248E22), UINT32_C(0x001D20E0), UINT32_C(0x007970A3), + UINT32_C(0x008D530E), UINT32_C(0x0069D972), UINT32_C(0x0036B6B2), + UINT32_C(0x0023944A), UINT32_C(0x009283D0), UINT32_C(0x00413B7A), + UINT32_C(0x0026DA72), UINT32_C(0x0061243F)}, + {UINT32_C(0x008FAB34), UINT32_C(0x005F4AF0), UINT32_C(0x0019759F), + UINT32_C(0x0041583F), UINT32_C(0x00723D0D), UINT32_C(0x0049EF5D), + UINT32_C(0x0037ED96), UINT32_C(0x00D94167), UINT32_C(0x0025C5F0), + UINT32_C(0x0054670B), UINT32_C(0x00645850)}}, + {{UINT32_C(0x0078486C), UINT32_C(0x0068A7C1), UINT32_C(0x004E518A), + UINT32_C(0x00B42004), UINT32_C(0x0057227C), UINT32_C(0x00378DB2), + UINT32_C(0x006EC201), UINT32_C(0x006E95D7), UINT32_C(0x003784DB), + UINT32_C(0x000913EC), UINT32_C(0x0068F117)}, + {UINT32_C(0x0089EA5B), UINT32_C(0x000279A8), UINT32_C(0x001FE8CD), + UINT32_C(0x00BDCFEF), UINT32_C(0x0029CFB8), UINT32_C(0x00609772), + UINT32_C(0x001D36D2), UINT32_C(0x00BC3D3D), UINT32_C(0x001D2878), + UINT32_C(0x001A10E1), UINT32_C(0x00010462)}}, + {{UINT32_C(0x00B52308), UINT32_C(0x004A1DF4), UINT32_C(0x0079CB16), + UINT32_C(0x00DC0E0E), UINT32_C(0x003932DF), UINT32_C(0x005103E4), + UINT32_C(0x0029ADA5), UINT32_C(0x007319A2), UINT32_C(0x00426FF0), + UINT32_C(0x00588A4E), UINT32_C(0x003F78AD)}, + {UINT32_C(0x00F1B775), UINT32_C(0x006E5A5C), UINT32_C(0x00219FCB), + UINT32_C(0x0008CA19), UINT32_C(0x001D9BBA), UINT32_C(0x0075F3B0), + UINT32_C(0x0078E9ED), UINT32_C(0x00009E41), UINT32_C(0x003356B2), + UINT32_C(0x002C0425), UINT32_C(0x003BAECE)}}, + {{UINT32_C(0x00FD3BB1), UINT32_C(0x00535E55), UINT32_C(0x0009A346), + UINT32_C(0x00A8E2F4), UINT32_C(0x006F6486), UINT32_C(0x0071D282), + UINT32_C(0x003A985D), UINT32_C(0x00A34D18), UINT32_C(0x00606B28), + UINT32_C(0x00009AEC), UINT32_C(0x002BEEBF)}, + {UINT32_C(0x003780DD), UINT32_C(0x00647EA6), UINT32_C(0x0047B1F7), + UINT32_C(0x00598C39), UINT32_C(0x003BFDE6), UINT32_C(0x006C0B48), + UINT32_C(0x00121EB8), UINT32_C(0x0085DBF8), UINT32_C(0x006F9773), + UINT32_C(0x001528FB), UINT32_C(0x0003A0C5)}}, + {{UINT32_C(0x0094B350), UINT32_C(0x00522DB1), UINT32_C(0x00058D9C), + UINT32_C(0x008A9662), UINT32_C(0x002E184D), UINT32_C(0x007814B1), + UINT32_C(0x00036D84), UINT32_C(0x00594040), UINT32_C(0x00716935), + UINT32_C(0x0018DEEE), UINT32_C(0x001E2219)}, + {UINT32_C(0x0006F259), UINT32_C(0x00772E6A), UINT32_C(0x00246188), + UINT32_C(0x001EC5E7), UINT32_C(0x002939F4), UINT32_C(0x000FF055), + UINT32_C(0x001978F0), UINT32_C(0x003F6DAF), UINT32_C(0x000A7BBD), + UINT32_C(0x001A6FAF), UINT32_C(0x00510C0C)}}, + {{UINT32_C(0x0048904F), UINT32_C(0x007224FF), UINT32_C(0x0065BAA9), + UINT32_C(0x000D3551), UINT32_C(0x004DA721), UINT32_C(0x0039A0B4), + UINT32_C(0x002BE76F), UINT32_C(0x009B9E20), UINT32_C(0x002504DD), + UINT32_C(0x006944BD), UINT32_C(0x0024DAA1)}, + {UINT32_C(0x00542F7C), UINT32_C(0x001D4977), UINT32_C(0x001576A4), + UINT32_C(0x006672BC), UINT32_C(0x0007DBD1), UINT32_C(0x00220087), + UINT32_C(0x0044AC5F), UINT32_C(0x00E1DAAD), UINT32_C(0x00221046), + UINT32_C(0x0042A0F3), UINT32_C(0x0052C47E)}}, + {{UINT32_C(0x00AA4EC9), UINT32_C(0x000C5256), UINT32_C(0x001D2108), + UINT32_C(0x007E3C18), UINT32_C(0x0057CD05), UINT32_C(0x006A2DDB), + UINT32_C(0x0070D402), UINT32_C(0x0046F4C8), UINT32_C(0x0070C39D), + UINT32_C(0x0002BCDE), UINT32_C(0x00386C4A)}, + {UINT32_C(0x00596D94), UINT32_C(0x007774AE), UINT32_C(0x0033D8A2), + UINT32_C(0x00B48B39), UINT32_C(0x0055B5DB), UINT32_C(0x004A739E), + UINT32_C(0x00601AF6), UINT32_C(0x0017C86B), UINT32_C(0x0033581B), + UINT32_C(0x0013A82F), UINT32_C(0x002F7045)}}, + {{UINT32_C(0x00EA0CB5), UINT32_C(0x004F13CE), UINT32_C(0x006F865F), + UINT32_C(0x00C4AAF7), UINT32_C(0x00456660), UINT32_C(0x00600B98), + UINT32_C(0x0079C3AB), UINT32_C(0x0027D7D2), UINT32_C(0x0026486E), + UINT32_C(0x0008FEAF), UINT32_C(0x002F5742)}, + {UINT32_C(0x00B8102B), UINT32_C(0x0060FD3D), UINT32_C(0x002D073F), + UINT32_C(0x0039E77D), UINT32_C(0x002DC294), UINT32_C(0x00151AB7), + UINT32_C(0x001413CF), UINT32_C(0x003AAF36), UINT32_C(0x0034A2D1), + UINT32_C(0x002844E0), UINT32_C(0x001190CE)}}, + {{UINT32_C(0x00ED50BF), UINT32_C(0x003D775D), UINT32_C(0x00533D3C), + UINT32_C(0x004B2DDC), UINT32_C(0x00762EB4), UINT32_C(0x0060B90F), + UINT32_C(0x003045DA), UINT32_C(0x0095C306), UINT32_C(0x0044062C), + UINT32_C(0x004DB392), UINT32_C(0x00658071)}, + {UINT32_C(0x0030AE7B), UINT32_C(0x007AE99B), UINT32_C(0x006CD461), + UINT32_C(0x00CDBC52), UINT32_C(0x007E2103), UINT32_C(0x0019AC77), + UINT32_C(0x005D4D8D), UINT32_C(0x00BFC271), UINT32_C(0x0037F336), + UINT32_C(0x0060EDFB), UINT32_C(0x00247DD6)}}, + {{UINT32_C(0x0016BAED), UINT32_C(0x00616D44), UINT32_C(0x004BF21B), + UINT32_C(0x0096D55E), UINT32_C(0x000125FC), UINT32_C(0x0065EA64), + UINT32_C(0x006B4BA0), UINT32_C(0x0058D872), UINT32_C(0x0047273B), + UINT32_C(0x00413B44), UINT32_C(0x007C3B0A)}, + {UINT32_C(0x0053BB34), UINT32_C(0x0073F0D7), UINT32_C(0x000E175F), + UINT32_C(0x001C2578), UINT32_C(0x007D3B2F), UINT32_C(0x0012C2C4), + UINT32_C(0x00706D71), UINT32_C(0x00C9BC8D), UINT32_C(0x00499E9A), + UINT32_C(0x00531428), UINT32_C(0x004A5C64)}}, + {{UINT32_C(0x0037863B), UINT32_C(0x0079BA1D), UINT32_C(0x001CF74C), + UINT32_C(0x0022EB4F), UINT32_C(0x0039A1FA), UINT32_C(0x005AFECB), + UINT32_C(0x0001FF42), UINT32_C(0x009EBF05), UINT32_C(0x003094C5), + UINT32_C(0x003DA3F3), UINT32_C(0x00648DA8)}, + {UINT32_C(0x00706E8B), UINT32_C(0x00116614), UINT32_C(0x00662488), + UINT32_C(0x0020E858), UINT32_C(0x003042E0), UINT32_C(0x005598A9), + UINT32_C(0x0051A013), UINT32_C(0x0096F0CF), UINT32_C(0x0026D7C9), + UINT32_C(0x001297CB), UINT32_C(0x00325815)}}, + {{UINT32_C(0x00A6A2F2), UINT32_C(0x00431F85), UINT32_C(0x006A358E), + UINT32_C(0x00D9BD37), UINT32_C(0x003DDAF8), UINT32_C(0x000FF3E4), + UINT32_C(0x0056803F), UINT32_C(0x0050FB50), UINT32_C(0x0068CD30), + UINT32_C(0x00242AA9), UINT32_C(0x005D281D)}, + {UINT32_C(0x0007C121), UINT32_C(0x006E657D), UINT32_C(0x0003FE75), + UINT32_C(0x00B805F3), UINT32_C(0x004C976D), UINT32_C(0x005039AB), + UINT32_C(0x0011443E), UINT32_C(0x00F0A01C), UINT32_C(0x00648859), + UINT32_C(0x005F1033), UINT32_C(0x007B4C48)}}, + {{UINT32_C(0x00793170), UINT32_C(0x006DBF68), UINT32_C(0x007D1F25), + UINT32_C(0x00F0D9B4), UINT32_C(0x0059CB0C), UINT32_C(0x002BAA82), + UINT32_C(0x00516CAA), UINT32_C(0x0055BA64), UINT32_C(0x0014BA02), + UINT32_C(0x006986E0), UINT32_C(0x005D492D)}, + {UINT32_C(0x0025053F), UINT32_C(0x00643229), UINT32_C(0x0072934C), + UINT32_C(0x00FF2EFA), UINT32_C(0x0075BD10), UINT32_C(0x000EE1B5), + UINT32_C(0x0075A5E1), UINT32_C(0x008B7B93), UINT32_C(0x001D5824), + UINT32_C(0x002F28AB), UINT32_C(0x00762FF8)}}, + }, + { + {{UINT32_C(0x0046367E), UINT32_C(0x0056A682), UINT32_C(0x00430EB2), + UINT32_C(0x0025F7A6), UINT32_C(0x0062DE86), UINT32_C(0x0033FEF2), + UINT32_C(0x00156E4E), UINT32_C(0x002BFC59), UINT32_C(0x00038721), + UINT32_C(0x003BE4D8), UINT32_C(0x0000C9A8)}, + {UINT32_C(0x00E2541C), UINT32_C(0x0060B185), UINT32_C(0x00124C99), + UINT32_C(0x007614C4), UINT32_C(0x004C9BB5), UINT32_C(0x001A2B53), + UINT32_C(0x0055AB66), UINT32_C(0x00B34939), UINT32_C(0x00755795), + UINT32_C(0x004AE42A), UINT32_C(0x0037EE9E)}}, + {{UINT32_C(0x00418B8A), UINT32_C(0x0053A329), UINT32_C(0x0067F6C0), + UINT32_C(0x001B5F25), UINT32_C(0x004F5799), UINT32_C(0x0079A7BA), + UINT32_C(0x0001E9CA), UINT32_C(0x00589410), UINT32_C(0x00348000), + UINT32_C(0x007C467F), UINT32_C(0x0068CC15)}, + {UINT32_C(0x00BFD773), UINT32_C(0x000B128F), UINT32_C(0x0035E63D), + UINT32_C(0x00C836C1), UINT32_C(0x0017BDFE), UINT32_C(0x006CFD71), + UINT32_C(0x00373B9C), UINT32_C(0x0057EAF9), UINT32_C(0x002A01CD), + UINT32_C(0x0074D14F), UINT32_C(0x00721C85)}}, + {{UINT32_C(0x0056BC62), UINT32_C(0x000D23A6), UINT32_C(0x0078FE76), + UINT32_C(0x0019A73D), UINT32_C(0x00091B6B), UINT32_C(0x0005C60B), + UINT32_C(0x0065104B), UINT32_C(0x0065A4B3), UINT32_C(0x005D0C5A), + UINT32_C(0x002E8DB5), UINT32_C(0x00718081)}, + {UINT32_C(0x00EF69D9), UINT32_C(0x006C1FDD), UINT32_C(0x0065A57D), + UINT32_C(0x00BC2B7B), UINT32_C(0x006DB6EB), UINT32_C(0x001AFD11), + UINT32_C(0x00605819), UINT32_C(0x008E9270), UINT32_C(0x005C23F4), + UINT32_C(0x005067EB), UINT32_C(0x00598190)}}, + {{UINT32_C(0x00EF9F96), UINT32_C(0x00510C22), UINT32_C(0x001E5EED), + UINT32_C(0x003B03E5), UINT32_C(0x005C6020), UINT32_C(0x003C2BB6), + UINT32_C(0x0035FD52), UINT32_C(0x00A6A7F3), UINT32_C(0x000128B7), + UINT32_C(0x001E45E8), UINT32_C(0x0049EFAA)}, + {UINT32_C(0x006E0992), UINT32_C(0x0018EA4E), UINT32_C(0x00004761), + UINT32_C(0x00CFE527), UINT32_C(0x0039B16F), UINT32_C(0x0017BAE9), + UINT32_C(0x0057DC05), UINT32_C(0x00982F6B), UINT32_C(0x001D3209), + UINT32_C(0x0019FC51), UINT32_C(0x000F4184)}}, + {{UINT32_C(0x001EBCA4), UINT32_C(0x001ECDDD), UINT32_C(0x0009CED1), + UINT32_C(0x00785BD4), UINT32_C(0x005F74D6), UINT32_C(0x00589B35), + UINT32_C(0x0026267C), UINT32_C(0x003A1A20), UINT32_C(0x00148BA6), + UINT32_C(0x00078BFB), UINT32_C(0x0057564D)}, + {UINT32_C(0x008FB356), UINT32_C(0x00195CBB), UINT32_C(0x003A2D22), + UINT32_C(0x0015DEC8), UINT32_C(0x00287F6A), UINT32_C(0x007C4179), + UINT32_C(0x0078B244), UINT32_C(0x00013AE9), UINT32_C(0x004FD9D1), + UINT32_C(0x005916FD), UINT32_C(0x007AAB2B)}}, + {{UINT32_C(0x005AE235), UINT32_C(0x004A7074), UINT32_C(0x006D38A5), + UINT32_C(0x00A5B778), UINT32_C(0x00192A8E), UINT32_C(0x00292200), + UINT32_C(0x00536809), UINT32_C(0x00C5FA0A), UINT32_C(0x007335A7), + UINT32_C(0x007A9B01), UINT32_C(0x006B8F21)}, + {UINT32_C(0x00FC9D22), UINT32_C(0x005462CC), UINT32_C(0x0011E27E), + UINT32_C(0x00A16304), UINT32_C(0x002252C2), UINT32_C(0x00065957), + UINT32_C(0x000FB44C), UINT32_C(0x00507E75), UINT32_C(0x004C7390), + UINT32_C(0x002880F2), UINT32_C(0x0011F9DC)}}, + {{UINT32_C(0x008982F2), UINT32_C(0x005E0F01), UINT32_C(0x00191A83), + UINT32_C(0x00B79DFB), UINT32_C(0x0014F23A), UINT32_C(0x005BFFB9), + UINT32_C(0x00679DCA), UINT32_C(0x00FDEBA3), UINT32_C(0x007A5C5D), + UINT32_C(0x00317F01), UINT32_C(0x0005F996)}, + {UINT32_C(0x002F393C), UINT32_C(0x0057EA31), UINT32_C(0x0041F969), + UINT32_C(0x0060EB85), UINT32_C(0x0018762F), UINT32_C(0x0034FF1A), + UINT32_C(0x006E4F64), UINT32_C(0x00E85223), UINT32_C(0x00721BD5), + UINT32_C(0x005695D8), UINT32_C(0x00735FC8)}}, + {{UINT32_C(0x000FF37D), UINT32_C(0x001EE6D5), UINT32_C(0x0059B657), + UINT32_C(0x0059218D), UINT32_C(0x005D7413), UINT32_C(0x0016DC74), + UINT32_C(0x00245CE2), UINT32_C(0x009176FC), UINT32_C(0x00140786), + UINT32_C(0x00123E16), UINT32_C(0x0014C417)}, + {UINT32_C(0x008C5660), UINT32_C(0x004AB42B), UINT32_C(0x006F788D), + UINT32_C(0x004C5639), UINT32_C(0x00527C63), UINT32_C(0x0076AD8C), + UINT32_C(0x000E1CD3), UINT32_C(0x00905B46), UINT32_C(0x00362085), + UINT32_C(0x0005BCA4), UINT32_C(0x005143C9)}}, + {{UINT32_C(0x0003CB83), UINT32_C(0x00303CF6), UINT32_C(0x004A9EA9), + UINT32_C(0x0045E684), UINT32_C(0x00510A34), UINT32_C(0x007BDA22), + UINT32_C(0x004947E0), UINT32_C(0x004AE474), UINT32_C(0x000566E6), + UINT32_C(0x001C9AA5), UINT32_C(0x002791D8)}, + {UINT32_C(0x008D0BF2), UINT32_C(0x0042016F), UINT32_C(0x00669D0C), + UINT32_C(0x009942A6), UINT32_C(0x00694F9B), UINT32_C(0x007DA32E), + UINT32_C(0x005BE0ED), UINT32_C(0x00CB0DE0), UINT32_C(0x006A8967), + UINT32_C(0x000AC39B), UINT32_C(0x003B3E68)}}, + {{UINT32_C(0x0060D714), UINT32_C(0x004F6454), UINT32_C(0x00061D11), + UINT32_C(0x00C2AA2D), UINT32_C(0x001269D9), UINT32_C(0x0045B4EB), + UINT32_C(0x00452BA7), UINT32_C(0x001C10D3), UINT32_C(0x00468D4A), + UINT32_C(0x002EFCCA), UINT32_C(0x006DE69E)}, + {UINT32_C(0x00CCB9AA), UINT32_C(0x005E4AAD), UINT32_C(0x0034AB4F), + UINT32_C(0x00451715), UINT32_C(0x00742A4D), UINT32_C(0x0054F77E), + UINT32_C(0x000E11C5), UINT32_C(0x00848202), UINT32_C(0x006F4690), + UINT32_C(0x00429DB2), UINT32_C(0x00063397)}}, + {{UINT32_C(0x00E679A9), UINT32_C(0x000630F0), UINT32_C(0x0054132F), + UINT32_C(0x0028E457), UINT32_C(0x00530D92), UINT32_C(0x002D81BE), + UINT32_C(0x006D4DA3), UINT32_C(0x00DD8F12), UINT32_C(0x005AEF2B), + UINT32_C(0x00681D79), UINT32_C(0x004F4E27)}, + {UINT32_C(0x00452CC5), UINT32_C(0x006066A9), UINT32_C(0x00586F19), + UINT32_C(0x00DCA842), UINT32_C(0x003F3915), UINT32_C(0x007F124C), + UINT32_C(0x005A982F), UINT32_C(0x00232890), UINT32_C(0x006759D7), + UINT32_C(0x005451F1), UINT32_C(0x001EBD44)}}, + {{UINT32_C(0x00FA4A07), UINT32_C(0x0030B22D), UINT32_C(0x00241069), + UINT32_C(0x00DE41E0), UINT32_C(0x004CE4D7), UINT32_C(0x002D9D3C), + UINT32_C(0x001677BA), UINT32_C(0x00980ED6), UINT32_C(0x0031C47B), + UINT32_C(0x002ED227), UINT32_C(0x00159AD5)}, + {UINT32_C(0x0089C1F3), UINT32_C(0x0064AFBA), UINT32_C(0x0029E45B), + UINT32_C(0x00032AD8), UINT32_C(0x002AB7FA), UINT32_C(0x00667A12), + UINT32_C(0x0057ACD4), UINT32_C(0x006C9B6D), UINT32_C(0x00407D38), + UINT32_C(0x00420BB2), UINT32_C(0x0026F2DA)}}, + {{UINT32_C(0x00C85447), UINT32_C(0x00186902), UINT32_C(0x00714C9C), + UINT32_C(0x003E0E1B), UINT32_C(0x0079A719), UINT32_C(0x003E4DED), + UINT32_C(0x0059E9D8), UINT32_C(0x00C3AC22), UINT32_C(0x00101DB8), + UINT32_C(0x0079EC05), UINT32_C(0x00308946)}, + {UINT32_C(0x0020BFE2), UINT32_C(0x001B1C97), UINT32_C(0x002068FA), + UINT32_C(0x000318E8), UINT32_C(0x003FA490), UINT32_C(0x0071C4A0), + UINT32_C(0x000D2962), UINT32_C(0x006D6A13), UINT32_C(0x000B208C), + UINT32_C(0x0016C4B8), UINT32_C(0x002FB1EB)}}, + {{UINT32_C(0x000FDDD3), UINT32_C(0x000BE560), UINT32_C(0x005F6F50), + UINT32_C(0x00CBD86E), UINT32_C(0x005F789C), UINT32_C(0x00796635), + UINT32_C(0x0073572E), UINT32_C(0x007EF213), UINT32_C(0x003C20F1), + UINT32_C(0x0009D905), UINT32_C(0x00506CBA)}, + {UINT32_C(0x0053488D), UINT32_C(0x005470BC), UINT32_C(0x00356DBF), + UINT32_C(0x00B92C0A), UINT32_C(0x00576D7C), UINT32_C(0x00258D40), + UINT32_C(0x000EC04B), UINT32_C(0x00629848), UINT32_C(0x006EFE8C), + UINT32_C(0x002F0536), UINT32_C(0x005F0ED9)}}, + {{UINT32_C(0x00941AAB), UINT32_C(0x0016408A), UINT32_C(0x0038B7B4), + UINT32_C(0x00D17AD3), UINT32_C(0x00020287), UINT32_C(0x003C98C7), + UINT32_C(0x007107B0), UINT32_C(0x00A47BF6), UINT32_C(0x0076D73B), + UINT32_C(0x000E9DCA), UINT32_C(0x002D0380)}, + {UINT32_C(0x003E14DB), UINT32_C(0x0068545F), UINT32_C(0x00293201), + UINT32_C(0x0041E644), UINT32_C(0x0037CC59), UINT32_C(0x0064BF44), + UINT32_C(0x004AB432), UINT32_C(0x00222D96), UINT32_C(0x002A1A68), + UINT32_C(0x000CA73B), UINT32_C(0x0000759D)}}, + {{UINT32_C(0x00B27EE6), UINT32_C(0x00392FAB), UINT32_C(0x006D1511), + UINT32_C(0x00DE9390), UINT32_C(0x0053DBF3), UINT32_C(0x003F6EED), + UINT32_C(0x001782D6), UINT32_C(0x002A6166), UINT32_C(0x004F448D), + UINT32_C(0x004D0F3A), UINT32_C(0x007007C7)}, + {UINT32_C(0x00DFE6F7), UINT32_C(0x0032099E), UINT32_C(0x00729E1F), + UINT32_C(0x009F5D6F), UINT32_C(0x003A3D25), UINT32_C(0x004DD691), + UINT32_C(0x0020FFB0), UINT32_C(0x00CCDE9D), UINT32_C(0x0075D916), + UINT32_C(0x00545C21), UINT32_C(0x00240E6D)}}, + }, + { + {{UINT32_C(0x0034E1E6), UINT32_C(0x003047D2), UINT32_C(0x006E4485), + UINT32_C(0x007D8C36), UINT32_C(0x00756414), UINT32_C(0x000967CD), + UINT32_C(0x004EC80F), UINT32_C(0x00C63288), UINT32_C(0x0073E0FA), + UINT32_C(0x007182FF), UINT32_C(0x00263DCE)}, + {UINT32_C(0x00462779), UINT32_C(0x001B3A99), UINT32_C(0x0037DBBA), + UINT32_C(0x00D2FC96), UINT32_C(0x0064BB40), UINT32_C(0x007363A7), + UINT32_C(0x0032772A), UINT32_C(0x00D91E04), UINT32_C(0x001007F8), + UINT32_C(0x000AF4EC), UINT32_C(0x00193E0F)}}, + {{UINT32_C(0x00FDE1B6), UINT32_C(0x00642789), UINT32_C(0x0001A22B), + UINT32_C(0x0053D392), UINT32_C(0x004F3462), UINT32_C(0x007001C5), + UINT32_C(0x003757D1), UINT32_C(0x002FF687), UINT32_C(0x002AD0C5), + UINT32_C(0x0061905E), UINT32_C(0x0032E050)}, + {UINT32_C(0x00586CC6), UINT32_C(0x0029644B), UINT32_C(0x001DCCE2), + UINT32_C(0x00242AD5), UINT32_C(0x003A4D19), UINT32_C(0x007EDFA6), + UINT32_C(0x00220A76), UINT32_C(0x00DD8BD2), UINT32_C(0x003AFB95), + UINT32_C(0x006523B5), UINT32_C(0x0016D460)}}, + {{UINT32_C(0x003B3EBD), UINT32_C(0x0059FF35), UINT32_C(0x00646DFD), + UINT32_C(0x001C652B), UINT32_C(0x00572E18), UINT32_C(0x007156D0), + UINT32_C(0x003125AA), UINT32_C(0x0058C8A8), UINT32_C(0x00383EFA), + UINT32_C(0x00270C8A), UINT32_C(0x00071DD1)}, + {UINT32_C(0x00E57097), UINT32_C(0x0052391E), UINT32_C(0x0058A14D), + UINT32_C(0x0071FABE), UINT32_C(0x0014DDAD), UINT32_C(0x00583150), + UINT32_C(0x006E7A1D), UINT32_C(0x0033F6C1), UINT32_C(0x00490296), + UINT32_C(0x00414DE6), UINT32_C(0x007218AF)}}, + {{UINT32_C(0x00F33C1F), UINT32_C(0x00125893), UINT32_C(0x004FE3D7), + UINT32_C(0x00C4A16E), UINT32_C(0x0066739E), UINT32_C(0x0044B06C), + UINT32_C(0x0004329B), UINT32_C(0x0040B952), UINT32_C(0x003AB3B6), + UINT32_C(0x004B9045), UINT32_C(0x0070EFC5)}, + {UINT32_C(0x0004A33D), UINT32_C(0x0060B5F6), UINT32_C(0x001C92D2), + UINT32_C(0x0087E4CE), UINT32_C(0x007927E4), UINT32_C(0x00687FEB), + UINT32_C(0x0068424F), UINT32_C(0x006E7721), UINT32_C(0x002CB0FB), + UINT32_C(0x003E8D7D), UINT32_C(0x00066EEA)}}, + {{UINT32_C(0x00893929), UINT32_C(0x00749590), UINT32_C(0x00002975), + UINT32_C(0x00359738), UINT32_C(0x0027B81C), UINT32_C(0x007CCA27), + UINT32_C(0x00424A06), UINT32_C(0x008EAF50), UINT32_C(0x0015A2BC), + UINT32_C(0x00191EEC), UINT32_C(0x0005255A)}, + {UINT32_C(0x00F0F1DA), UINT32_C(0x0001F6DC), UINT32_C(0x001636C8), + UINT32_C(0x00012664), UINT32_C(0x0026261D), UINT32_C(0x005D425D), + UINT32_C(0x004530C6), UINT32_C(0x005C3D03), UINT32_C(0x005543DE), + UINT32_C(0x001B43E1), UINT32_C(0x001F7279)}}, + {{UINT32_C(0x0073F26A), UINT32_C(0x0068DAE8), UINT32_C(0x00721622), + UINT32_C(0x002ABFC5), UINT32_C(0x001AEA78), UINT32_C(0x001C317D), + UINT32_C(0x0057A2CE), UINT32_C(0x00D75B07), UINT32_C(0x0011544B), + UINT32_C(0x006677F4), UINT32_C(0x004FE8D9)}, + {UINT32_C(0x00BD1939), UINT32_C(0x005FA352), UINT32_C(0x004E35F8), + UINT32_C(0x002B9D5E), UINT32_C(0x00236E36), UINT32_C(0x00171F6F), + UINT32_C(0x001C64C0), UINT32_C(0x0059974C), UINT32_C(0x001A9517), + UINT32_C(0x000A0D86), UINT32_C(0x002C5844)}}, + {{UINT32_C(0x008028D2), UINT32_C(0x005696DA), UINT32_C(0x00134460), + UINT32_C(0x00FFF1CA), UINT32_C(0x003E17C7), UINT32_C(0x00771795), + UINT32_C(0x003731A0), UINT32_C(0x004FFEFA), UINT32_C(0x00559D72), + UINT32_C(0x0069CD38), UINT32_C(0x0015F09E)}, + {UINT32_C(0x00C4C3AD), UINT32_C(0x0074750B), UINT32_C(0x001D026C), + UINT32_C(0x00553063), UINT32_C(0x00193906), UINT32_C(0x000134C7), + UINT32_C(0x0049B4A1), UINT32_C(0x0049D063), UINT32_C(0x003BF10D), + UINT32_C(0x0067632D), UINT32_C(0x00300024)}}, + {{UINT32_C(0x00D77453), UINT32_C(0x003D07C0), UINT32_C(0x0019849D), + UINT32_C(0x00D631D5), UINT32_C(0x00652BEF), UINT32_C(0x007E6CDE), + UINT32_C(0x000D87C3), UINT32_C(0x004951A8), UINT32_C(0x007525CD), + UINT32_C(0x0071B08E), UINT32_C(0x00289648)}, + {UINT32_C(0x00FD0ECE), UINT32_C(0x000BB7D1), UINT32_C(0x002C9248), + UINT32_C(0x004C6FAB), UINT32_C(0x00372A68), UINT32_C(0x000EF891), + UINT32_C(0x0020B4A1), UINT32_C(0x000A10A5), UINT32_C(0x006C334E), + UINT32_C(0x001CCCB1), UINT32_C(0x00379EBC)}}, + {{UINT32_C(0x00D635C8), UINT32_C(0x005DA0CD), UINT32_C(0x000CA1CF), + UINT32_C(0x009075FE), UINT32_C(0x001864D7), UINT32_C(0x00375091), + UINT32_C(0x00219FB8), UINT32_C(0x0007A85A), UINT32_C(0x006F3E1F), + UINT32_C(0x00391318), UINT32_C(0x00247B2A)}, + {UINT32_C(0x0002D9FB), UINT32_C(0x007FD052), UINT32_C(0x002C2377), + UINT32_C(0x00A71137), UINT32_C(0x0021AD82), UINT32_C(0x003DB97F), + UINT32_C(0x007E1B6E), UINT32_C(0x00C0C7AE), UINT32_C(0x00742A7A), + UINT32_C(0x0024DE99), UINT32_C(0x004E9051)}}, + {{UINT32_C(0x00DADBAE), UINT32_C(0x00202B8D), UINT32_C(0x00632043), + UINT32_C(0x0041281C), UINT32_C(0x001EBD2E), UINT32_C(0x007221A9), + UINT32_C(0x006395E7), UINT32_C(0x0009A072), UINT32_C(0x006E872D), + UINT32_C(0x006A1915), UINT32_C(0x00538853)}, + {UINT32_C(0x00071C4B), UINT32_C(0x007A19E1), UINT32_C(0x007C2689), + UINT32_C(0x007FC063), UINT32_C(0x001C8283), UINT32_C(0x0067DED1), + UINT32_C(0x00667A3F), UINT32_C(0x00AF7018), UINT32_C(0x0038D342), + UINT32_C(0x000616D4), UINT32_C(0x0023B78B)}}, + {{UINT32_C(0x002693D0), UINT32_C(0x0078F96C), UINT32_C(0x00571654), + UINT32_C(0x0014B152), UINT32_C(0x000B8F3A), UINT32_C(0x004480F8), + UINT32_C(0x004AA85E), UINT32_C(0x00A2071C), UINT32_C(0x005BF5E5), + UINT32_C(0x003DF984), UINT32_C(0x00290208)}, + {UINT32_C(0x00574625), UINT32_C(0x004E5F90), UINT32_C(0x0024BEE7), + UINT32_C(0x0018C1AA), UINT32_C(0x000E42CE), UINT32_C(0x00353C8A), + UINT32_C(0x0040F203), UINT32_C(0x00898F9A), UINT32_C(0x003FBFD0), + UINT32_C(0x0043C31B), UINT32_C(0x004E5E2E)}}, + {{UINT32_C(0x0067D25A), UINT32_C(0x0031F139), UINT32_C(0x005BD832), + UINT32_C(0x0058FC46), UINT32_C(0x002312E5), UINT32_C(0x00722F75), + UINT32_C(0x00300A46), UINT32_C(0x000CD2F3), UINT32_C(0x0070A1F2), + UINT32_C(0x001BBF1B), UINT32_C(0x005DAD68)}, + {UINT32_C(0x0027F5D0), UINT32_C(0x000A7235), UINT32_C(0x00550E6D), + UINT32_C(0x007E271C), UINT32_C(0x003F1A3C), UINT32_C(0x003F545A), + UINT32_C(0x000F465A), UINT32_C(0x006E0289), UINT32_C(0x0008E2B8), + UINT32_C(0x00005661), UINT32_C(0x007DE299)}}, + {{UINT32_C(0x00548202), UINT32_C(0x00281B46), UINT32_C(0x004C8632), + UINT32_C(0x008FDE33), UINT32_C(0x00254E52), UINT32_C(0x00768F00), + UINT32_C(0x001C3AD6), UINT32_C(0x002D85C6), UINT32_C(0x00187542), + UINT32_C(0x005F5A9E), UINT32_C(0x0079B908)}, + {UINT32_C(0x00C7C809), UINT32_C(0x001FE799), UINT32_C(0x0042AF63), + UINT32_C(0x004EE64E), UINT32_C(0x001273EE), UINT32_C(0x00609BF2), + UINT32_C(0x0022BBF9), UINT32_C(0x0022DE3E), UINT32_C(0x00591E73), + UINT32_C(0x004FC701), UINT32_C(0x0007E865)}}, + {{UINT32_C(0x0098B574), UINT32_C(0x003DC53F), UINT32_C(0x0019A4E6), + UINT32_C(0x00CBD70F), UINT32_C(0x0047B9D0), UINT32_C(0x005579C6), + UINT32_C(0x00354F41), UINT32_C(0x00D2DC50), UINT32_C(0x00329B79), + UINT32_C(0x0024242A), UINT32_C(0x0066FBA2)}, + {UINT32_C(0x0085FC08), UINT32_C(0x0049ABA0), UINT32_C(0x0002CD57), + UINT32_C(0x0051C421), UINT32_C(0x00115DB3), UINT32_C(0x0066D6D5), + UINT32_C(0x00303B94), UINT32_C(0x00A604BB), UINT32_C(0x00685047), + UINT32_C(0x003158DF), UINT32_C(0x007ED9BF)}}, + {{UINT32_C(0x002AFA23), UINT32_C(0x0040ECF5), UINT32_C(0x004AF2B2), + UINT32_C(0x00326E4C), UINT32_C(0x0057D312), UINT32_C(0x006C5108), + UINT32_C(0x0039F6D7), UINT32_C(0x0036F6BA), UINT32_C(0x005598C8), + UINT32_C(0x003CB53C), UINT32_C(0x0034AA18)}, + {UINT32_C(0x00CF42AB), UINT32_C(0x007A1089), UINT32_C(0x00798D02), + UINT32_C(0x00EA386D), UINT32_C(0x0011472E), UINT32_C(0x005332E0), + UINT32_C(0x0038B97B), UINT32_C(0x00AD3634), UINT32_C(0x0008C5EB), + UINT32_C(0x005BED65), UINT32_C(0x0001B9BD)}}, + {{UINT32_C(0x00761113), UINT32_C(0x0018F0E8), UINT32_C(0x003FCFC0), + UINT32_C(0x0015BEF5), UINT32_C(0x002AEA52), UINT32_C(0x00396A8E), + UINT32_C(0x004C295C), UINT32_C(0x001BAEDF), UINT32_C(0x00030D39), + UINT32_C(0x005A7E8D), UINT32_C(0x002A1B12)}, + {UINT32_C(0x005CE5E2), UINT32_C(0x004CFE4B), UINT32_C(0x0030A399), + UINT32_C(0x0040EA7A), UINT32_C(0x007F164F), UINT32_C(0x004DB6D5), + UINT32_C(0x00686A3B), UINT32_C(0x00DBA200), UINT32_C(0x00296140), + UINT32_C(0x004D478A), UINT32_C(0x006AD41C)}}, + }, + { + {{UINT32_C(0x00B89E8E), UINT32_C(0x002A572E), UINT32_C(0x005B3E1F), + UINT32_C(0x00E54DD0), UINT32_C(0x00162459), UINT32_C(0x0027E7ED), + UINT32_C(0x005B4CC3), UINT32_C(0x00DB4F26), UINT32_C(0x007BE5F3), + UINT32_C(0x007C9929), UINT32_C(0x00555F44)}, + {UINT32_C(0x00CFD61D), UINT32_C(0x0052D610), UINT32_C(0x0060404C), + UINT32_C(0x003743F5), UINT32_C(0x00055514), UINT32_C(0x000267D5), + UINT32_C(0x006087D4), UINT32_C(0x008C2531), UINT32_C(0x0051466E), + UINT32_C(0x003C7CCA), UINT32_C(0x005C334A)}}, + {{UINT32_C(0x00E24828), UINT32_C(0x001F7423), UINT32_C(0x007D8091), + UINT32_C(0x00316505), UINT32_C(0x0079C9BB), UINT32_C(0x007F35D0), + UINT32_C(0x00152C91), UINT32_C(0x00E33D9C), UINT32_C(0x0052C723), + UINT32_C(0x0058776C), UINT32_C(0x001FEDFD)}, + {UINT32_C(0x0004E1B6), UINT32_C(0x006EE7E1), UINT32_C(0x0072C66F), + UINT32_C(0x00B26D30), UINT32_C(0x006FB6AE), UINT32_C(0x0020B88A), + UINT32_C(0x0009F8CA), UINT32_C(0x00BCD95A), UINT32_C(0x001944E3), + UINT32_C(0x007072F6), UINT32_C(0x005A26A1)}}, + {{UINT32_C(0x00F21E4A), UINT32_C(0x0039DE0D), UINT32_C(0x002C0B04), + UINT32_C(0x0042B820), UINT32_C(0x00260CE6), UINT32_C(0x00469276), + UINT32_C(0x000EFD81), UINT32_C(0x0053E1E3), UINT32_C(0x0011D541), + UINT32_C(0x003278ED), UINT32_C(0x0024190E)}, + {UINT32_C(0x009C86A2), UINT32_C(0x004CF336), UINT32_C(0x00666B88), + UINT32_C(0x00B34AD6), UINT32_C(0x0012660F), UINT32_C(0x004603DC), + UINT32_C(0x001C4603), UINT32_C(0x00B51A55), UINT32_C(0x00032E05), + UINT32_C(0x00761758), UINT32_C(0x002462A8)}}, + {{UINT32_C(0x00A8C3D3), UINT32_C(0x0042BDA6), UINT32_C(0x0073898B), + UINT32_C(0x009F00CE), UINT32_C(0x006C9105), UINT32_C(0x0077CDB6), + UINT32_C(0x002CCE5B), UINT32_C(0x0017C55E), UINT32_C(0x00274A09), + UINT32_C(0x0061058B), UINT32_C(0x0025F3E2)}, + {UINT32_C(0x000C3DB3), UINT32_C(0x006143BB), UINT32_C(0x0030EF0F), + UINT32_C(0x00E06EFA), UINT32_C(0x005B5205), UINT32_C(0x002928C1), + UINT32_C(0x00011BD1), UINT32_C(0x004BD906), UINT32_C(0x003EA381), + UINT32_C(0x005B8BDD), UINT32_C(0x00141CF4)}}, + {{UINT32_C(0x00B9F037), UINT32_C(0x000EB500), UINT32_C(0x00231F4E), + UINT32_C(0x009E6670), UINT32_C(0x0022155C), UINT32_C(0x005CD76F), + UINT32_C(0x00777013), UINT32_C(0x001E0C79), UINT32_C(0x004FFBC6), + UINT32_C(0x0022246A), UINT32_C(0x00411134)}, + {UINT32_C(0x00D2A8D9), UINT32_C(0x0019D3D6), UINT32_C(0x002D8C16), + UINT32_C(0x00BFC55D), UINT32_C(0x00409145), UINT32_C(0x000A3CB7), + UINT32_C(0x00705773), UINT32_C(0x00018E32), UINT32_C(0x002A408A), + UINT32_C(0x0002439B), UINT32_C(0x00585C81)}}, + {{UINT32_C(0x001B067A), UINT32_C(0x003501B0), UINT32_C(0x006FF5D5), + UINT32_C(0x00266911), UINT32_C(0x00573D9E), UINT32_C(0x004CE3AE), + UINT32_C(0x007BD3A7), UINT32_C(0x004986D0), UINT32_C(0x0036391A), + UINT32_C(0x004E3053), UINT32_C(0x007A996A)}, + {UINT32_C(0x00371080), UINT32_C(0x0037E042), UINT32_C(0x002DCB8F), + UINT32_C(0x00A79F2A), UINT32_C(0x000C73DB), UINT32_C(0x007B8926), + UINT32_C(0x004BCA76), UINT32_C(0x00F1D149), UINT32_C(0x0059029B), + UINT32_C(0x0057F067), UINT32_C(0x006743F9)}}, + {{UINT32_C(0x00939BAE), UINT32_C(0x003B8FB7), UINT32_C(0x002AC961), + UINT32_C(0x007D0A3C), UINT32_C(0x00112565), UINT32_C(0x0015EA2E), + UINT32_C(0x005F39D5), UINT32_C(0x008AB56C), UINT32_C(0x000E21E3), + UINT32_C(0x00700E40), UINT32_C(0x00394DCD)}, + {UINT32_C(0x003A2295), UINT32_C(0x00027730), UINT32_C(0x0048C762), + UINT32_C(0x009954A7), UINT32_C(0x007E32DB), UINT32_C(0x0043302E), + UINT32_C(0x00740102), UINT32_C(0x001190E7), UINT32_C(0x0027D7B2), + UINT32_C(0x005CEE50), UINT32_C(0x007A578D)}}, + {{UINT32_C(0x008BBA28), UINT32_C(0x004A0FD7), UINT32_C(0x007AC31D), + UINT32_C(0x0037176E), UINT32_C(0x0076A050), UINT32_C(0x0040AB46), + UINT32_C(0x005F95F7), UINT32_C(0x000BE19A), UINT32_C(0x00098D24), + UINT32_C(0x005A9458), UINT32_C(0x000A1117)}, + {UINT32_C(0x00E7EE0C), UINT32_C(0x00242C41), UINT32_C(0x0023CBF4), + UINT32_C(0x001C57A1), UINT32_C(0x003AC093), UINT32_C(0x0008AED2), + UINT32_C(0x0030388D), UINT32_C(0x00EC955F), UINT32_C(0x00714125), + UINT32_C(0x002CEB59), UINT32_C(0x0043A695)}}, + {{UINT32_C(0x0078C305), UINT32_C(0x0068D7A0), UINT32_C(0x0078F31C), + UINT32_C(0x002557F3), UINT32_C(0x00154BCD), UINT32_C(0x000FD4BA), + UINT32_C(0x0049870F), UINT32_C(0x00FD3D6C), UINT32_C(0x004A74E9), + UINT32_C(0x0073A1EA), UINT32_C(0x00712628)}, + {UINT32_C(0x0097A50E), UINT32_C(0x003814D7), UINT32_C(0x001533AE), + UINT32_C(0x00DC57FF), UINT32_C(0x0038CC54), UINT32_C(0x0023F786), + UINT32_C(0x0075EAC5), UINT32_C(0x0053BC5A), UINT32_C(0x000D1025), + UINT32_C(0x00352FF8), UINT32_C(0x007BAA67)}}, + {{UINT32_C(0x004B5256), UINT32_C(0x0074BDB3), UINT32_C(0x003A77BB), + UINT32_C(0x00596C90), UINT32_C(0x005F0076), UINT32_C(0x00682016), + UINT32_C(0x000D8938), UINT32_C(0x00EA0E74), UINT32_C(0x00385C25), + UINT32_C(0x001D6446), UINT32_C(0x007F967C)}, + {UINT32_C(0x00F7351C), UINT32_C(0x005B1299), UINT32_C(0x0077959F), + UINT32_C(0x0021D3B9), UINT32_C(0x006DF80F), UINT32_C(0x004DA025), + UINT32_C(0x00515CCC), UINT32_C(0x009FB790), UINT32_C(0x00063FF3), + UINT32_C(0x0076D77A), UINT32_C(0x00625098)}}, + {{UINT32_C(0x007F1E6E), UINT32_C(0x0003AF4F), UINT32_C(0x00147BDB), + UINT32_C(0x0070598D), UINT32_C(0x0026D23F), UINT32_C(0x004A29CD), + UINT32_C(0x007D8AFD), UINT32_C(0x00842D17), UINT32_C(0x0027D785), + UINT32_C(0x003D4F02), UINT32_C(0x001B48F1)}, + {UINT32_C(0x001DD7E4), UINT32_C(0x0048EA30), UINT32_C(0x0031E587), + UINT32_C(0x00DA778D), UINT32_C(0x00028302), UINT32_C(0x0002B20F), + UINT32_C(0x002CA85D), UINT32_C(0x009940A5), UINT32_C(0x0050706A), + UINT32_C(0x0027C655), UINT32_C(0x0065E5F7)}}, + {{UINT32_C(0x00339162), UINT32_C(0x00747568), UINT32_C(0x002DE761), + UINT32_C(0x00ABF96A), UINT32_C(0x004ED981), UINT32_C(0x0068131A), + UINT32_C(0x007755D1), UINT32_C(0x00A26F42), UINT32_C(0x00052444), + UINT32_C(0x0005B629), UINT32_C(0x00374DF9)}, + {UINT32_C(0x00CF14E5), UINT32_C(0x0002B073), UINT32_C(0x002FCF27), + UINT32_C(0x009F2568), UINT32_C(0x000C77F1), UINT32_C(0x004F9C85), + UINT32_C(0x00564AE1), UINT32_C(0x0084E7B1), UINT32_C(0x002F9F7C), + UINT32_C(0x0079F6BA), UINT32_C(0x0050141F)}}, + {{UINT32_C(0x005DDB32), UINT32_C(0x006EEA5F), UINT32_C(0x001A6DBD), + UINT32_C(0x0037896C), UINT32_C(0x005312EB), UINT32_C(0x00224556), + UINT32_C(0x005B967C), UINT32_C(0x00E31403), UINT32_C(0x00210FEC), + UINT32_C(0x0039AB6E), UINT32_C(0x0056A5EB)}, + {UINT32_C(0x0020A6E2), UINT32_C(0x004202D4), UINT32_C(0x0049C90D), + UINT32_C(0x00EAF4CB), UINT32_C(0x002618C6), UINT32_C(0x007417CB), + UINT32_C(0x00662261), UINT32_C(0x0019A617), UINT32_C(0x0033B387), + UINT32_C(0x0048BFFF), UINT32_C(0x004F79A1)}}, + {{UINT32_C(0x0058277B), UINT32_C(0x001F5BDD), UINT32_C(0x004376CA), + UINT32_C(0x00F548FC), UINT32_C(0x00326E00), UINT32_C(0x001B763D), + UINT32_C(0x000FD0C0), UINT32_C(0x0077DA31), UINT32_C(0x00187E89), + UINT32_C(0x0079FC29), UINT32_C(0x007A4AF6)}, + {UINT32_C(0x006FE0E1), UINT32_C(0x00669EB7), UINT32_C(0x002BEF48), + UINT32_C(0x00F75C67), UINT32_C(0x005F6D0F), UINT32_C(0x000A2CD9), + UINT32_C(0x006E41E5), UINT32_C(0x003F37B9), UINT32_C(0x002D2442), + UINT32_C(0x0036829D), UINT32_C(0x0065DA14)}}, + {{UINT32_C(0x004326A2), UINT32_C(0x0040CBD8), UINT32_C(0x00652915), + UINT32_C(0x000F2B54), UINT32_C(0x0016C330), UINT32_C(0x0043F920), + UINT32_C(0x0030AF01), UINT32_C(0x008C5D38), UINT32_C(0x000DEDBF), + UINT32_C(0x00496F1B), UINT32_C(0x0035CE15)}, + {UINT32_C(0x005CD536), UINT32_C(0x0003476A), UINT32_C(0x001458E4), + UINT32_C(0x0066184B), UINT32_C(0x001373E4), UINT32_C(0x002362B2), + UINT32_C(0x0047ADDA), UINT32_C(0x00CFDE00), UINT32_C(0x00294ACC), + UINT32_C(0x005B07F4), UINT32_C(0x003AAA59)}}, + {{UINT32_C(0x00351DCE), UINT32_C(0x00531F74), UINT32_C(0x0070FE9B), + UINT32_C(0x0055D5FF), UINT32_C(0x00091F6C), UINT32_C(0x004713C4), + UINT32_C(0x0043D715), UINT32_C(0x00133A66), UINT32_C(0x00274DDB), + UINT32_C(0x001421FF), UINT32_C(0x00154461)}, + {UINT32_C(0x002EE3C1), UINT32_C(0x001BD275), UINT32_C(0x00205CA7), + UINT32_C(0x008985BF), UINT32_C(0x0065F85E), UINT32_C(0x00342C28), + UINT32_C(0x0024E23D), UINT32_C(0x004B7B25), UINT32_C(0x002AE72E), + UINT32_C(0x004A5D4D), UINT32_C(0x00296425)}}, + }, + { + {{UINT32_C(0x003BB6FE), UINT32_C(0x006E95CA), UINT32_C(0x007C12DB), + UINT32_C(0x00C2B2E1), UINT32_C(0x0078CF5B), UINT32_C(0x0008D9AA), + UINT32_C(0x00545B0C), UINT32_C(0x00966933), UINT32_C(0x005E90BF), + UINT32_C(0x00127A50), UINT32_C(0x0021E6D5)}, + {UINT32_C(0x009BB07D), UINT32_C(0x003CE9C9), UINT32_C(0x00575061), + UINT32_C(0x009D607C), UINT32_C(0x002C0630), UINT32_C(0x004CF2F4), + UINT32_C(0x007C5067), UINT32_C(0x007DB3FF), UINT32_C(0x0078833C), + UINT32_C(0x00381D12), UINT32_C(0x005C6CD7)}}, + {{UINT32_C(0x008392C8), UINT32_C(0x003BA804), UINT32_C(0x00437AEB), + UINT32_C(0x000AA5A0), UINT32_C(0x00428295), UINT32_C(0x0022CF84), + UINT32_C(0x00583AB2), UINT32_C(0x00E78C0A), UINT32_C(0x00076BFD), + UINT32_C(0x00340AF2), UINT32_C(0x002C576A)}, + {UINT32_C(0x006E6DE1), UINT32_C(0x0018AAF8), UINT32_C(0x003B09EA), + UINT32_C(0x00461A4F), UINT32_C(0x00652C71), UINT32_C(0x00773D62), + UINT32_C(0x0007F33A), UINT32_C(0x00FB0128), UINT32_C(0x0023226A), + UINT32_C(0x005272BE), UINT32_C(0x0077A80C)}}, + {{UINT32_C(0x00243A23), UINT32_C(0x0059EE8D), UINT32_C(0x005ABC02), + UINT32_C(0x00A76F1C), UINT32_C(0x005303B8), UINT32_C(0x002878BC), + UINT32_C(0x000DC6D0), UINT32_C(0x002F5739), UINT32_C(0x004328D8), + UINT32_C(0x006619B0), UINT32_C(0x00582761)}, + {UINT32_C(0x005DD89C), UINT32_C(0x0040AF03), UINT32_C(0x00664609), + UINT32_C(0x0064DED7), UINT32_C(0x00321F34), UINT32_C(0x00479994), + UINT32_C(0x002A3457), UINT32_C(0x0081039C), UINT32_C(0x001FB033), + UINT32_C(0x003E4D77), UINT32_C(0x00381514)}}, + {{UINT32_C(0x0047A6CB), UINT32_C(0x00158718), UINT32_C(0x00209322), + UINT32_C(0x00E170DB), UINT32_C(0x00240A83), UINT32_C(0x004CD315), + UINT32_C(0x0028E399), UINT32_C(0x005AE653), UINT32_C(0x00066B28), + UINT32_C(0x001BBE06), UINT32_C(0x002C404C)}, + {UINT32_C(0x006A93D6), UINT32_C(0x0012DF82), UINT32_C(0x006B54F4), + UINT32_C(0x00062344), UINT32_C(0x003FC9ED), UINT32_C(0x007DDB29), + UINT32_C(0x00101680), UINT32_C(0x00369C91), UINT32_C(0x0074AA99), + UINT32_C(0x00205D4F), UINT32_C(0x000E516B)}}, + {{UINT32_C(0x0032C66D), UINT32_C(0x005546A7), UINT32_C(0x006BB8DE), + UINT32_C(0x008576D8), UINT32_C(0x00412063), UINT32_C(0x00644D0C), + UINT32_C(0x00693A63), UINT32_C(0x004429A2), UINT32_C(0x002AFB3C), + UINT32_C(0x005AB6A4), UINT32_C(0x0061829F)}, + {UINT32_C(0x00743208), UINT32_C(0x0077B5BB), UINT32_C(0x0060700C), + UINT32_C(0x003878D7), UINT32_C(0x0043EA8E), UINT32_C(0x0006C990), + UINT32_C(0x001AD279), UINT32_C(0x0037199C), UINT32_C(0x001602AC), + UINT32_C(0x006E6867), UINT32_C(0x000200A7)}}, + {{UINT32_C(0x0005C9B6), UINT32_C(0x0070BA76), UINT32_C(0x0032093C), + UINT32_C(0x00D7302E), UINT32_C(0x003DC75F), UINT32_C(0x0032241E), + UINT32_C(0x0020E178), UINT32_C(0x009DB55A), UINT32_C(0x00105792), + UINT32_C(0x00223EF7), UINT32_C(0x0004DBD3)}, + {UINT32_C(0x006731CF), UINT32_C(0x004DCCDF), UINT32_C(0x006C712B), + UINT32_C(0x002963CA), UINT32_C(0x0033C6EB), UINT32_C(0x002918CB), + UINT32_C(0x0042143A), UINT32_C(0x008D3632), UINT32_C(0x0047755A), + UINT32_C(0x00258338), UINT32_C(0x00497444)}}, + {{UINT32_C(0x00ACB58A), UINT32_C(0x0003E23D), UINT32_C(0x0035FF81), + UINT32_C(0x008936EA), UINT32_C(0x006A5CF4), UINT32_C(0x0024FFC8), + UINT32_C(0x0061C56B), UINT32_C(0x000E421B), UINT32_C(0x005C7741), + UINT32_C(0x006A1FF8), UINT32_C(0x006599DD)}, + {UINT32_C(0x00E19FA2), UINT32_C(0x00129BD5), UINT32_C(0x00106B22), + UINT32_C(0x007D7780), UINT32_C(0x007F0877), UINT32_C(0x0041300E), + UINT32_C(0x004E679A), UINT32_C(0x00EBE8AA), UINT32_C(0x001C3277), + UINT32_C(0x006E99F9), UINT32_C(0x00427DB9)}}, + {{UINT32_C(0x00184DFD), UINT32_C(0x00147505), UINT32_C(0x0040EDB6), + UINT32_C(0x0096E71F), UINT32_C(0x00096D68), UINT32_C(0x007288B9), + UINT32_C(0x0039FAE7), UINT32_C(0x009E3B19), UINT32_C(0x0059525F), + UINT32_C(0x0042A224), UINT32_C(0x0032E991)}, + {UINT32_C(0x004D3074), UINT32_C(0x0055D970), UINT32_C(0x004FF6C8), + UINT32_C(0x0015270D), UINT32_C(0x007770DF), UINT32_C(0x0042C9FB), + UINT32_C(0x005CA513), UINT32_C(0x007D00C3), UINT32_C(0x0030A146), + UINT32_C(0x005D74BB), UINT32_C(0x007A9637)}}, + {{UINT32_C(0x003DB0DD), UINT32_C(0x0011ADC8), UINT32_C(0x00612266), + UINT32_C(0x002F2C19), UINT32_C(0x002DF82D), UINT32_C(0x0028B03E), + UINT32_C(0x006C2E98), UINT32_C(0x00FFA685), UINT32_C(0x0038F8D0), + UINT32_C(0x003B9283), UINT32_C(0x007D2975)}, + {UINT32_C(0x007D306E), UINT32_C(0x007F5E20), UINT32_C(0x0047A55D), + UINT32_C(0x00F980FF), UINT32_C(0x001331A2), UINT32_C(0x007D74A9), + UINT32_C(0x005FEE08), UINT32_C(0x006A7C2A), UINT32_C(0x007C37BB), + UINT32_C(0x0043D3B4), UINT32_C(0x006F3CFD)}}, + {{UINT32_C(0x000EC696), UINT32_C(0x005185A9), UINT32_C(0x0000BE2C), + UINT32_C(0x009F985A), UINT32_C(0x004E2379), UINT32_C(0x005CE286), + UINT32_C(0x005F05DF), UINT32_C(0x0086A2D2), UINT32_C(0x0072A145), + UINT32_C(0x002B10E0), UINT32_C(0x004C8EE4)}, + {UINT32_C(0x00E985B8), UINT32_C(0x002A46B5), UINT32_C(0x002FBBBF), + UINT32_C(0x00C296A5), UINT32_C(0x0035DCA7), UINT32_C(0x00646900), + UINT32_C(0x003C51B5), UINT32_C(0x00211EA2), UINT32_C(0x000B20B3), + UINT32_C(0x005E0254), UINT32_C(0x000A4FE9)}}, + {{UINT32_C(0x0086A4E4), UINT32_C(0x00394FC7), UINT32_C(0x0062AD1E), + UINT32_C(0x0070C064), UINT32_C(0x000D4375), UINT32_C(0x0069383E), + UINT32_C(0x006DCB72), UINT32_C(0x0068E22C), UINT32_C(0x0065F231), + UINT32_C(0x0005483D), UINT32_C(0x005C9926)}, + {UINT32_C(0x0027C9BA), UINT32_C(0x004616BF), UINT32_C(0x00793172), + UINT32_C(0x00E307EF), UINT32_C(0x001C58E0), UINT32_C(0x0075518F), + UINT32_C(0x00704D77), UINT32_C(0x0096D516), UINT32_C(0x000514C7), + UINT32_C(0x004550F6), UINT32_C(0x0002F839)}}, + {{UINT32_C(0x003EB3CB), UINT32_C(0x000B54E8), UINT32_C(0x000BB0B6), + UINT32_C(0x000473CB), UINT32_C(0x007A4D1B), UINT32_C(0x001A1E96), + UINT32_C(0x00676B16), UINT32_C(0x002A64AB), UINT32_C(0x0000465B), + UINT32_C(0x0030BAF8), UINT32_C(0x0032A6EC)}, + {UINT32_C(0x007B903F), UINT32_C(0x00594A72), UINT32_C(0x005679C7), + UINT32_C(0x0001348E), UINT32_C(0x00049ACD), UINT32_C(0x0076157B), + UINT32_C(0x000823E7), UINT32_C(0x00956AAC), UINT32_C(0x00564C9C), + UINT32_C(0x006B7D47), UINT32_C(0x00184705)}}, + {{UINT32_C(0x00582997), UINT32_C(0x0042C43A), UINT32_C(0x001B2A5F), + UINT32_C(0x00C58D80), UINT32_C(0x00027426), UINT32_C(0x00767F7F), + UINT32_C(0x0029FE8F), UINT32_C(0x0011D5E8), UINT32_C(0x005F6EDA), + UINT32_C(0x004E2E7A), UINT32_C(0x006DA644)}, + {UINT32_C(0x005F3E5D), UINT32_C(0x007EB9DF), UINT32_C(0x00744FFF), + UINT32_C(0x0011E773), UINT32_C(0x00365A41), UINT32_C(0x0069DCE3), + UINT32_C(0x005910E9), UINT32_C(0x00A8DAC2), UINT32_C(0x0076022D), + UINT32_C(0x006B2E17), UINT32_C(0x002B174E)}}, + {{UINT32_C(0x002D1DE7), UINT32_C(0x005918AF), UINT32_C(0x007117B7), + UINT32_C(0x00FFA278), UINT32_C(0x005EC3E5), UINT32_C(0x005D5ABD), + UINT32_C(0x00409AA7), UINT32_C(0x00B36478), UINT32_C(0x004932C5), + UINT32_C(0x0012CD34), UINT32_C(0x00481C3A)}, + {UINT32_C(0x00FDA782), UINT32_C(0x000B2886), UINT32_C(0x00335C25), + UINT32_C(0x002CBA0C), UINT32_C(0x0031D46B), UINT32_C(0x006D4278), + UINT32_C(0x00222F32), UINT32_C(0x00407069), UINT32_C(0x00003013), + UINT32_C(0x0013825F), UINT32_C(0x001F8B6C)}}, + {{UINT32_C(0x0051E4F5), UINT32_C(0x005E9DC2), UINT32_C(0x00258809), + UINT32_C(0x00371D8C), UINT32_C(0x002FAEE6), UINT32_C(0x0004405C), + UINT32_C(0x00203011), UINT32_C(0x00C2897B), UINT32_C(0x0045B72F), + UINT32_C(0x00627D76), UINT32_C(0x006AECBB)}, + {UINT32_C(0x00D0F404), UINT32_C(0x003CF81A), UINT32_C(0x002F9F4D), + UINT32_C(0x00C34800), UINT32_C(0x001E0D5A), UINT32_C(0x004CF2B9), + UINT32_C(0x0058028D), UINT32_C(0x002FE88D), UINT32_C(0x003BCDD1), + UINT32_C(0x005CA483), UINT32_C(0x006C66B1)}}, + {{UINT32_C(0x0012B2F8), UINT32_C(0x002EB0A2), UINT32_C(0x0012BBFE), + UINT32_C(0x00455276), UINT32_C(0x0047B04A), UINT32_C(0x007F71B8), + UINT32_C(0x0055BF51), UINT32_C(0x00912939), UINT32_C(0x005DD2FD), + UINT32_C(0x001E65E5), UINT32_C(0x0044827B)}, + {UINT32_C(0x00749338), UINT32_C(0x0069B9A0), UINT32_C(0x0024E76A), + UINT32_C(0x008505B7), UINT32_C(0x0048F45E), UINT32_C(0x004CCFF6), + UINT32_C(0x00518F1E), UINT32_C(0x0006ABD7), UINT32_C(0x000C7B19), + UINT32_C(0x007CF1C0), UINT32_C(0x001618E7)}}, + }, + { + {{UINT32_C(0x0002A6B0), UINT32_C(0x0068A84D), UINT32_C(0x0004254D), + UINT32_C(0x0073936F), UINT32_C(0x00264AA9), UINT32_C(0x002AE177), + UINT32_C(0x005104DE), UINT32_C(0x007CF18F), UINT32_C(0x006D9C04), + UINT32_C(0x007431AF), UINT32_C(0x000711AB)}, + {UINT32_C(0x008D5496), UINT32_C(0x003EA309), UINT32_C(0x0004F5CE), + UINT32_C(0x00BDE7BB), UINT32_C(0x007DE3A5), UINT32_C(0x0018E586), + UINT32_C(0x004C3DB2), UINT32_C(0x0034EF2F), UINT32_C(0x00310ED6), + UINT32_C(0x005F5025), UINT32_C(0x0033F193)}}, + {{UINT32_C(0x00478D87), UINT32_C(0x00086B6B), UINT32_C(0x0046EB29), + UINT32_C(0x00E16D0C), UINT32_C(0x001BDA98), UINT32_C(0x002ED05B), + UINT32_C(0x003789D1), UINT32_C(0x00CC467C), UINT32_C(0x00178BD9), + UINT32_C(0x005B5C2E), UINT32_C(0x00414C09)}, + {UINT32_C(0x00FE52FF), UINT32_C(0x00390639), UINT32_C(0x006FFAE6), + UINT32_C(0x0028E37B), UINT32_C(0x001FB01B), UINT32_C(0x0016F3D8), + UINT32_C(0x003EE18E), UINT32_C(0x00599A77), UINT32_C(0x004C13DE), + UINT32_C(0x004B6328), UINT32_C(0x00283192)}}, + {{UINT32_C(0x00E1AB70), UINT32_C(0x004B3C06), UINT32_C(0x00203AA9), + UINT32_C(0x00521440), UINT32_C(0x00527B5E), UINT32_C(0x00288A81), + UINT32_C(0x0028CE1C), UINT32_C(0x0028059F), UINT32_C(0x004C148A), + UINT32_C(0x0046ECEE), UINT32_C(0x00578C8D)}, + {UINT32_C(0x00DBD2FF), UINT32_C(0x006C80C1), UINT32_C(0x007661A2), + UINT32_C(0x0011094F), UINT32_C(0x001AFACC), UINT32_C(0x00775ABB), + UINT32_C(0x003CFCA0), UINT32_C(0x00030FF6), UINT32_C(0x00527900), + UINT32_C(0x0015F70F), UINT32_C(0x00546D98)}}, + {{UINT32_C(0x00E757A2), UINT32_C(0x005BC39A), UINT32_C(0x004FFC7D), + UINT32_C(0x00F82EB5), UINT32_C(0x006C5AD3), UINT32_C(0x0078023C), + UINT32_C(0x00684CB8), UINT32_C(0x00CB7AE8), UINT32_C(0x005F6095), + UINT32_C(0x0075B447), UINT32_C(0x001FF6E4)}, + {UINT32_C(0x00036FA0), UINT32_C(0x000C4B4E), UINT32_C(0x0021CA4E), + UINT32_C(0x0046EA53), UINT32_C(0x0044A218), UINT32_C(0x0010A3C3), + UINT32_C(0x002B3DFE), UINT32_C(0x0065108E), UINT32_C(0x0066153C), + UINT32_C(0x0001AFCA), UINT32_C(0x0078AAB5)}}, + {{UINT32_C(0x00A3A297), UINT32_C(0x001F022D), UINT32_C(0x0048B127), + UINT32_C(0x0084727B), UINT32_C(0x0040B276), UINT32_C(0x00723454), + UINT32_C(0x0027403D), UINT32_C(0x00702090), UINT32_C(0x003AE544), + UINT32_C(0x000185C8), UINT32_C(0x00396B7E)}, + {UINT32_C(0x0054F823), UINT32_C(0x0023AFDE), UINT32_C(0x000701AD), + UINT32_C(0x00E2AE90), UINT32_C(0x002362A8), UINT32_C(0x00443B0D), + UINT32_C(0x00539CA7), UINT32_C(0x00487F9B), UINT32_C(0x0013DFD4), + UINT32_C(0x0060A0C9), UINT32_C(0x003ED6D3)}}, + {{UINT32_C(0x0041AFA6), UINT32_C(0x0033B2AB), UINT32_C(0x000E144F), + UINT32_C(0x006C2256), UINT32_C(0x006FAF7B), UINT32_C(0x005AC228), + UINT32_C(0x0032A572), UINT32_C(0x007F38E2), UINT32_C(0x006D725E), + UINT32_C(0x002BEC51), UINT32_C(0x002D43D7)}, + {UINT32_C(0x0083A39E), UINT32_C(0x001C7564), UINT32_C(0x0008D7AC), + UINT32_C(0x0018A604), UINT32_C(0x0074C8EB), UINT32_C(0x0063AB5D), + UINT32_C(0x002CCD7D), UINT32_C(0x0047E981), UINT32_C(0x0021750F), + UINT32_C(0x001135D9), UINT32_C(0x004DB0FB)}}, + {{UINT32_C(0x0064BA6C), UINT32_C(0x007B1BDB), UINT32_C(0x007CD33C), + UINT32_C(0x00810753), UINT32_C(0x0026FB53), UINT32_C(0x0077AC90), + UINT32_C(0x0005E560), UINT32_C(0x004BCB24), UINT32_C(0x005BA503), + UINT32_C(0x0016BD12), UINT32_C(0x00312BDC)}, + {UINT32_C(0x0072B4CC), UINT32_C(0x0014A560), UINT32_C(0x0007F39A), + UINT32_C(0x000A2186), UINT32_C(0x0014704E), UINT32_C(0x0031AA4B), + UINT32_C(0x00743487), UINT32_C(0x00BF00CE), UINT32_C(0x002DDB5E), + UINT32_C(0x00490BB0), UINT32_C(0x0069DAC1)}}, + {{UINT32_C(0x009EEC7F), UINT32_C(0x006DF14C), UINT32_C(0x0023F579), + UINT32_C(0x00511B11), UINT32_C(0x0030486B), UINT32_C(0x00653474), + UINT32_C(0x006F453D), UINT32_C(0x00104BBB), UINT32_C(0x001DE9B0), + UINT32_C(0x00353041), UINT32_C(0x003312FC)}, + {UINT32_C(0x00A89852), UINT32_C(0x00125365), UINT32_C(0x00584EAD), + UINT32_C(0x00ADA70A), UINT32_C(0x002FBF4C), UINT32_C(0x002FEA71), + UINT32_C(0x003E0469), UINT32_C(0x001ABCC3), UINT32_C(0x000759B9), + UINT32_C(0x00440460), UINT32_C(0x000BC673)}}, + {{UINT32_C(0x0094762E), UINT32_C(0x00288488), UINT32_C(0x006E9757), + UINT32_C(0x004AC426), UINT32_C(0x00211BF1), UINT32_C(0x001D3A08), + UINT32_C(0x0001EAFC), UINT32_C(0x008D5AEB), UINT32_C(0x00735E25), + UINT32_C(0x003D07A5), UINT32_C(0x004F79A8)}, + {UINT32_C(0x0008DE0D), UINT32_C(0x000F22EC), UINT32_C(0x00265780), + UINT32_C(0x00EF5221), UINT32_C(0x00285666), UINT32_C(0x0031A918), + UINT32_C(0x00150FBE), UINT32_C(0x00A00DC4), UINT32_C(0x004A3CA8), + UINT32_C(0x00792A0B), UINT32_C(0x000EEFD5)}}, + {{UINT32_C(0x00C878D8), UINT32_C(0x005C1F80), UINT32_C(0x00796F30), + UINT32_C(0x005E40FD), UINT32_C(0x006C91B9), UINT32_C(0x007B8EB5), + UINT32_C(0x00763E21), UINT32_C(0x008E4B3F), UINT32_C(0x0059CB82), + UINT32_C(0x0033CF8B), UINT32_C(0x00117C19)}, + {UINT32_C(0x00697DD3), UINT32_C(0x002C5D30), UINT32_C(0x006317A0), + UINT32_C(0x00FB399C), UINT32_C(0x00679834), UINT32_C(0x00265AA0), + UINT32_C(0x007ECFA2), UINT32_C(0x004DFBEF), UINT32_C(0x0038AE2B), + UINT32_C(0x0066CF5A), UINT32_C(0x001E2F38)}}, + {{UINT32_C(0x006EC447), UINT32_C(0x00636DB3), UINT32_C(0x00504563), + UINT32_C(0x0059F3D2), UINT32_C(0x0071D652), UINT32_C(0x0006DE38), + UINT32_C(0x00478020), UINT32_C(0x00D483F9), UINT32_C(0x000AED5C), + UINT32_C(0x00787862), UINT32_C(0x002DACF3)}, + {UINT32_C(0x00C6C4F7), UINT32_C(0x0033C908), UINT32_C(0x000FEE1A), + UINT32_C(0x00AA7333), UINT32_C(0x001FAF9A), UINT32_C(0x000FF2F1), + UINT32_C(0x005B0306), UINT32_C(0x00FBE44F), UINT32_C(0x0030AC0D), + UINT32_C(0x005C62A5), UINT32_C(0x00611050)}}, + {{UINT32_C(0x004C0908), UINT32_C(0x00068F3D), UINT32_C(0x006C33DA), + UINT32_C(0x000B80A7), UINT32_C(0x0025B068), UINT32_C(0x007FB25B), + UINT32_C(0x004C55A2), UINT32_C(0x008BBCF8), UINT32_C(0x0006D143), + UINT32_C(0x0006225D), UINT32_C(0x0023F7AD)}, + {UINT32_C(0x0080DEAF), UINT32_C(0x0053B869), UINT32_C(0x0014A009), + UINT32_C(0x0076059B), UINT32_C(0x003133C4), UINT32_C(0x007B5C31), + UINT32_C(0x006BD859), UINT32_C(0x00B43AA4), UINT32_C(0x0074EA87), + UINT32_C(0x0059CB83), UINT32_C(0x0008B4B9)}}, + {{UINT32_C(0x00839775), UINT32_C(0x0066DD9C), UINT32_C(0x000D8D68), + UINT32_C(0x00D7F11B), UINT32_C(0x003ADC9E), UINT32_C(0x00257179), + UINT32_C(0x005C5090), UINT32_C(0x0081B436), UINT32_C(0x006C5187), + UINT32_C(0x005A0A00), UINT32_C(0x006E778B)}, + {UINT32_C(0x00E9C0BD), UINT32_C(0x001B7784), UINT32_C(0x007DB934), + UINT32_C(0x00C972DD), UINT32_C(0x001314A2), UINT32_C(0x0006AF18), + UINT32_C(0x006F7A8A), UINT32_C(0x00F39C4E), UINT32_C(0x006E8942), + UINT32_C(0x0056E09B), UINT32_C(0x00786BB0)}}, + {{UINT32_C(0x00306294), UINT32_C(0x0035755D), UINT32_C(0x005A1EC5), + UINT32_C(0x00667CAE), UINT32_C(0x007CCE97), UINT32_C(0x00240C1F), + UINT32_C(0x0024F74A), UINT32_C(0x0052075F), UINT32_C(0x003907DD), + UINT32_C(0x0019F30D), UINT32_C(0x00621CE6)}, + {UINT32_C(0x0045BDB1), UINT32_C(0x00633018), UINT32_C(0x0065C160), + UINT32_C(0x00289740), UINT32_C(0x001E2F22), UINT32_C(0x00592DAF), + UINT32_C(0x0023922D), UINT32_C(0x004DF348), UINT32_C(0x00129446), + UINT32_C(0x007248B4), UINT32_C(0x0039074B)}}, + {{UINT32_C(0x00AA4BC7), UINT32_C(0x005726AE), UINT32_C(0x003E5213), + UINT32_C(0x0067290D), UINT32_C(0x0063681B), UINT32_C(0x006E5545), + UINT32_C(0x00195CCD), UINT32_C(0x008B3541), UINT32_C(0x002F83E1), + UINT32_C(0x0056641A), UINT32_C(0x002EB12A)}, + {UINT32_C(0x006782ED), UINT32_C(0x00320ADA), UINT32_C(0x0076D1A5), + UINT32_C(0x001573A2), UINT32_C(0x002E18BC), UINT32_C(0x002E3320), + UINT32_C(0x00653E07), UINT32_C(0x00C666DD), UINT32_C(0x00604156), + UINT32_C(0x007A5E4B), UINT32_C(0x0069541F)}}, + {{UINT32_C(0x00224872), UINT32_C(0x005D167D), UINT32_C(0x0010FF0C), + UINT32_C(0x00071C46), UINT32_C(0x00548E96), UINT32_C(0x003D16E1), + UINT32_C(0x0068BA5D), UINT32_C(0x00355F33), UINT32_C(0x006C2F4F), + UINT32_C(0x00044AF9), UINT32_C(0x007213BD)}, + {UINT32_C(0x001A0254), UINT32_C(0x002AFCA6), UINT32_C(0x0041DAAE), + UINT32_C(0x00D08E4A), UINT32_C(0x006D9245), UINT32_C(0x000C8A06), + UINT32_C(0x003D8084), UINT32_C(0x00494BD0), UINT32_C(0x000ED04A), + UINT32_C(0x003BF0A5), UINT32_C(0x000F164D)}}, + }, + { + {{UINT32_C(0x00459019), UINT32_C(0x0055760B), UINT32_C(0x0058FB7D), + UINT32_C(0x00A2BA8C), UINT32_C(0x004B4E88), UINT32_C(0x000E6EE4), + UINT32_C(0x0059F945), UINT32_C(0x001789F2), UINT32_C(0x007101FD), + UINT32_C(0x004F8DD3), UINT32_C(0x0038462A)}, + {UINT32_C(0x00ABD7B1), UINT32_C(0x003D4EC1), UINT32_C(0x00382D69), + UINT32_C(0x006BA54F), UINT32_C(0x00518A2D), UINT32_C(0x001F4A7A), + UINT32_C(0x002C19F0), UINT32_C(0x00CCAD3E), UINT32_C(0x003AA2CC), + UINT32_C(0x0069D63B), UINT32_C(0x00156E38)}}, + {{UINT32_C(0x0061CF6A), UINT32_C(0x000D2F2D), UINT32_C(0x00006C04), + UINT32_C(0x00C0A71A), UINT32_C(0x0051D1DC), UINT32_C(0x0025C398), + UINT32_C(0x000C6829), UINT32_C(0x0044F736), UINT32_C(0x0074BA1D), + UINT32_C(0x000F86E2), UINT32_C(0x00086CD1)}, + {UINT32_C(0x00D6C080), UINT32_C(0x0045977F), UINT32_C(0x0021EC6B), + UINT32_C(0x00F8EB91), UINT32_C(0x0066E69F), UINT32_C(0x003B59C5), + UINT32_C(0x001990FA), UINT32_C(0x00B03645), UINT32_C(0x0009151D), + UINT32_C(0x00781FAF), UINT32_C(0x0052EAC1)}}, + {{UINT32_C(0x005CE371), UINT32_C(0x00339A2B), UINT32_C(0x0020CCDE), + UINT32_C(0x00867507), UINT32_C(0x0033D597), UINT32_C(0x007923EB), + UINT32_C(0x000C7943), UINT32_C(0x003719DF), UINT32_C(0x00423883), + UINT32_C(0x0024AF84), UINT32_C(0x00679F03)}, + {UINT32_C(0x008B9D31), UINT32_C(0x004B0315), UINT32_C(0x00409D6E), + UINT32_C(0x009267D2), UINT32_C(0x0030117A), UINT32_C(0x002D54F0), + UINT32_C(0x006C6FF7), UINT32_C(0x004BF6A4), UINT32_C(0x0075CBEB), + UINT32_C(0x003BEEB1), UINT32_C(0x000B67F0)}}, + {{UINT32_C(0x00687F73), UINT32_C(0x00403AE2), UINT32_C(0x00405A67), + UINT32_C(0x00316CA7), UINT32_C(0x002999E7), UINT32_C(0x001FE769), + UINT32_C(0x0026B91B), UINT32_C(0x001D6CA9), UINT32_C(0x004BEFCD), + UINT32_C(0x004A822C), UINT32_C(0x001CFAFB)}, + {UINT32_C(0x00A8EE8B), UINT32_C(0x000ACC89), UINT32_C(0x0043B4AD), + UINT32_C(0x00F1DA75), UINT32_C(0x0011792B), UINT32_C(0x002580D8), + UINT32_C(0x0000B787), UINT32_C(0x00C9B58F), UINT32_C(0x004F3C97), + UINT32_C(0x00769DFC), UINT32_C(0x000F1398)}}, + {{UINT32_C(0x00F0E827), UINT32_C(0x0071CA92), UINT32_C(0x005324EC), + UINT32_C(0x009729F1), UINT32_C(0x0055F994), UINT32_C(0x00003EFF), + UINT32_C(0x0017CB89), UINT32_C(0x0072853D), UINT32_C(0x00339B97), + UINT32_C(0x00171CA7), UINT32_C(0x006B675F)}, + {UINT32_C(0x003D0D62), UINT32_C(0x007DAA7D), UINT32_C(0x006A9620), + UINT32_C(0x00F5CFEA), UINT32_C(0x00032E5B), UINT32_C(0x00563173), + UINT32_C(0x006F73F8), UINT32_C(0x007CCBA2), UINT32_C(0x004141E7), + UINT32_C(0x0027173B), UINT32_C(0x003348A7)}}, + {{UINT32_C(0x00F522E3), UINT32_C(0x006F8CDC), UINT32_C(0x0009FCCC), + UINT32_C(0x000BE430), UINT32_C(0x00303DA6), UINT32_C(0x006833B6), + UINT32_C(0x00557FC0), UINT32_C(0x0082CFC0), UINT32_C(0x00521AA8), + UINT32_C(0x003CA041), UINT32_C(0x001AFA64)}, + {UINT32_C(0x00304313), UINT32_C(0x004ED8C2), UINT32_C(0x0018190F), + UINT32_C(0x009B395B), UINT32_C(0x0040816B), UINT32_C(0x007C8C36), + UINT32_C(0x006509BF), UINT32_C(0x002E0BC9), UINT32_C(0x0022B46B), + UINT32_C(0x002AB43C), UINT32_C(0x00283CD2)}}, + {{UINT32_C(0x000B7F74), UINT32_C(0x002AC244), UINT32_C(0x00521FC5), + UINT32_C(0x004260D1), UINT32_C(0x00017C7D), UINT32_C(0x0008CF38), + UINT32_C(0x006722E9), UINT32_C(0x00AD1E83), UINT32_C(0x0039112C), + UINT32_C(0x002C7B44), UINT32_C(0x0027C0FF)}, + {UINT32_C(0x009E60B3), UINT32_C(0x0054B3F3), UINT32_C(0x006A4023), + UINT32_C(0x000E894E), UINT32_C(0x000D8133), UINT32_C(0x00684145), + UINT32_C(0x00375199), UINT32_C(0x000C86DC), UINT32_C(0x006B4831), + UINT32_C(0x00148D6A), UINT32_C(0x005D0790)}}, + {{UINT32_C(0x006FC7F9), UINT32_C(0x002D0FB1), UINT32_C(0x0071895E), + UINT32_C(0x007C322D), UINT32_C(0x0022DF86), UINT32_C(0x00329F1A), + UINT32_C(0x004AAD46), UINT32_C(0x00A69B3A), UINT32_C(0x0058C8B6), + UINT32_C(0x004FEC36), UINT32_C(0x001023EF)}, + {UINT32_C(0x00670612), UINT32_C(0x0068AAB3), UINT32_C(0x005C3162), + UINT32_C(0x002C5521), UINT32_C(0x001C3176), UINT32_C(0x0042667A), + UINT32_C(0x001631EE), UINT32_C(0x00B31014), UINT32_C(0x00670B11), + UINT32_C(0x0024384B), UINT32_C(0x001A4A2C)}}, + {{UINT32_C(0x009994EE), UINT32_C(0x006FE440), UINT32_C(0x004F4279), + UINT32_C(0x006A6D12), UINT32_C(0x00439B57), UINT32_C(0x007E025A), + UINT32_C(0x002D8836), UINT32_C(0x0042C271), UINT32_C(0x0011969F), + UINT32_C(0x0056F588), UINT32_C(0x005DD046)}, + {UINT32_C(0x00F4202A), UINT32_C(0x001B4FF6), UINT32_C(0x000F4F77), + UINT32_C(0x002D36F2), UINT32_C(0x007AA72B), UINT32_C(0x00191711), + UINT32_C(0x007B653C), UINT32_C(0x00F06065), UINT32_C(0x001BC81D), + UINT32_C(0x0034BE67), UINT32_C(0x006FAA43)}}, + {{UINT32_C(0x00501DAE), UINT32_C(0x002494E4), UINT32_C(0x0064D2EB), + UINT32_C(0x008F0CE3), UINT32_C(0x0045A611), UINT32_C(0x0064260A), + UINT32_C(0x0075E097), UINT32_C(0x00F9238A), UINT32_C(0x003654E9), + UINT32_C(0x005020CA), UINT32_C(0x0072482C)}, + {UINT32_C(0x00AF93E8), UINT32_C(0x005900B4), UINT32_C(0x004202A6), + UINT32_C(0x00BEE149), UINT32_C(0x006D7724), UINT32_C(0x0071B0A1), + UINT32_C(0x00405291), UINT32_C(0x003AD02B), UINT32_C(0x005C2036), + UINT32_C(0x0079BE42), UINT32_C(0x000BA73D)}}, + {{UINT32_C(0x00B4074B), UINT32_C(0x004B525B), UINT32_C(0x000D26F5), + UINT32_C(0x00DDC04B), UINT32_C(0x005C3D10), UINT32_C(0x00395397), + UINT32_C(0x00380563), UINT32_C(0x008C1F77), UINT32_C(0x000FA839), + UINT32_C(0x00493852), UINT32_C(0x000ED70C)}, + {UINT32_C(0x00D5040F), UINT32_C(0x0042882C), UINT32_C(0x0001C223), + UINT32_C(0x0047D313), UINT32_C(0x00552DBD), UINT32_C(0x0029F273), + UINT32_C(0x005D6BC9), UINT32_C(0x00BCDD77), UINT32_C(0x0042D701), + UINT32_C(0x003FE205), UINT32_C(0x003DEBB5)}}, + {{UINT32_C(0x00BBCF14), UINT32_C(0x004FFB15), UINT32_C(0x00557302), + UINT32_C(0x00897907), UINT32_C(0x000886E7), UINT32_C(0x00556A12), + UINT32_C(0x0024BFFC), UINT32_C(0x00466C4A), UINT32_C(0x006D05E2), + UINT32_C(0x00732AFC), UINT32_C(0x007196CD)}, + {UINT32_C(0x00377955), UINT32_C(0x00049F69), UINT32_C(0x004A73AF), + UINT32_C(0x00628B4D), UINT32_C(0x007F38F0), UINT32_C(0x007A500C), + UINT32_C(0x0006D3F0), UINT32_C(0x004A0F78), UINT32_C(0x001C6F18), + UINT32_C(0x007E08F6), UINT32_C(0x0008B8E3)}}, + {{UINT32_C(0x00F0F157), UINT32_C(0x0006E3EE), UINT32_C(0x00636CD6), + UINT32_C(0x001FCAAE), UINT32_C(0x00065300), UINT32_C(0x0030B114), + UINT32_C(0x00303EFF), UINT32_C(0x0010CBD8), UINT32_C(0x002326C5), + UINT32_C(0x007E166C), UINT32_C(0x00190C79)}, + {UINT32_C(0x006D97E1), UINT32_C(0x00306B6D), UINT32_C(0x007BD9CD), + UINT32_C(0x00922461), UINT32_C(0x00312872), UINT32_C(0x0015DE6C), + UINT32_C(0x00595605), UINT32_C(0x0037F071), UINT32_C(0x00165965), + UINT32_C(0x006EBA47), UINT32_C(0x0043EC85)}}, + {{UINT32_C(0x004CC6B4), UINT32_C(0x006D0740), UINT32_C(0x005E7F6C), + UINT32_C(0x005DF159), UINT32_C(0x002E1429), UINT32_C(0x001F4EB5), + UINT32_C(0x00543D5B), UINT32_C(0x00E4C2B2), UINT32_C(0x0058F8F4), + UINT32_C(0x003E2B7E), UINT32_C(0x0003FA76)}, + {UINT32_C(0x00245C81), UINT32_C(0x004A0442), UINT32_C(0x0003DB05), + UINT32_C(0x00DB5088), UINT32_C(0x0064FD7C), UINT32_C(0x004C3547), + UINT32_C(0x0034C017), UINT32_C(0x00ED3600), UINT32_C(0x002A72EB), + UINT32_C(0x0048D594), UINT32_C(0x00114C4C)}}, + {{UINT32_C(0x0012CF1A), UINT32_C(0x006E0086), UINT32_C(0x00549899), + UINT32_C(0x00C50D1B), UINT32_C(0x0048CEB3), UINT32_C(0x006765AB), + UINT32_C(0x0061B7C5), UINT32_C(0x009F1CD0), UINT32_C(0x0009F99F), + UINT32_C(0x0040A0A7), UINT32_C(0x004B6425)}, + {UINT32_C(0x009D7477), UINT32_C(0x00079B86), UINT32_C(0x006B9474), + UINT32_C(0x006A4288), UINT32_C(0x006586C3), UINT32_C(0x00053F72), + UINT32_C(0x001B756B), UINT32_C(0x00302538), UINT32_C(0x00464295), + UINT32_C(0x0041CEF6), UINT32_C(0x000157A3)}}, + {{UINT32_C(0x00C4EB0D), UINT32_C(0x0059E444), UINT32_C(0x001B0A36), + UINT32_C(0x009DAD3B), UINT32_C(0x005BF245), UINT32_C(0x0072C6C4), + UINT32_C(0x00285E98), UINT32_C(0x007A4B77), UINT32_C(0x00693E04), + UINT32_C(0x000A8AC7), UINT32_C(0x000BE084)}, + {UINT32_C(0x00929EB4), UINT32_C(0x0004AEF0), UINT32_C(0x00477054), + UINT32_C(0x008FAC95), UINT32_C(0x002630B3), UINT32_C(0x0039BC23), + UINT32_C(0x00199060), UINT32_C(0x0017B14E), UINT32_C(0x006F142E), + UINT32_C(0x003060D5), UINT32_C(0x0021EDBA)}}, + }, + { + {{UINT32_C(0x00D13256), UINT32_C(0x003F96E6), UINT32_C(0x0035573F), + UINT32_C(0x00A11C34), UINT32_C(0x0055362D), UINT32_C(0x0019411A), + UINT32_C(0x005F05E2), UINT32_C(0x001A9048), UINT32_C(0x003DEA90), + UINT32_C(0x000B7D0A), UINT32_C(0x004B4171)}, + {UINT32_C(0x000FAC1A), UINT32_C(0x0023647E), UINT32_C(0x0070B3D3), + UINT32_C(0x00805801), UINT32_C(0x00790FC6), UINT32_C(0x004C4182), + UINT32_C(0x0021453D), UINT32_C(0x000BFF08), UINT32_C(0x0018947B), + UINT32_C(0x0028CB8E), UINT32_C(0x0006EB4B)}}, + {{UINT32_C(0x00BE097D), UINT32_C(0x006FA126), UINT32_C(0x001BB0AA), + UINT32_C(0x00857AF3), UINT32_C(0x0014E432), UINT32_C(0x00678F70), + UINT32_C(0x003FE4F6), UINT32_C(0x0037969A), UINT32_C(0x004C29A5), + UINT32_C(0x0019E68D), UINT32_C(0x00727D26)}, + {UINT32_C(0x0030F457), UINT32_C(0x0077AEFB), UINT32_C(0x001B45A0), + UINT32_C(0x00F569CA), UINT32_C(0x004CF892), UINT32_C(0x003CD573), + UINT32_C(0x0020564D), UINT32_C(0x00911635), UINT32_C(0x000B9CCC), + UINT32_C(0x0043C0C2), UINT32_C(0x005ABF88)}}, + {{UINT32_C(0x0055E82E), UINT32_C(0x0062B538), UINT32_C(0x0071AFAF), + UINT32_C(0x00DD7D6C), UINT32_C(0x002444DB), UINT32_C(0x00609BDA), + UINT32_C(0x007E8FE1), UINT32_C(0x0047FB13), UINT32_C(0x005AA88A), + UINT32_C(0x00632113), UINT32_C(0x000E21BF)}, + {UINT32_C(0x00E4AE88), UINT32_C(0x00549503), UINT32_C(0x006D0459), + UINT32_C(0x0007BE5C), UINT32_C(0x003D3D1F), UINT32_C(0x00105F67), + UINT32_C(0x0070D576), UINT32_C(0x008E68E3), UINT32_C(0x0066B27F), + UINT32_C(0x000F81A1), UINT32_C(0x00102F63)}}, + {{UINT32_C(0x00813696), UINT32_C(0x001896A4), UINT32_C(0x007C71B5), + UINT32_C(0x008F5BBA), UINT32_C(0x003BF0D4), UINT32_C(0x002B5A1F), + UINT32_C(0x00688FCE), UINT32_C(0x00DC932F), UINT32_C(0x00178F0B), + UINT32_C(0x00532936), UINT32_C(0x003DC4E4)}, + {UINT32_C(0x00FF3364), UINT32_C(0x0000987D), UINT32_C(0x00050B87), + UINT32_C(0x00DD7B60), UINT32_C(0x004C9AC5), UINT32_C(0x00050AC9), + UINT32_C(0x00305FCA), UINT32_C(0x00FEBB2B), UINT32_C(0x004CCD89), + UINT32_C(0x0045D609), UINT32_C(0x00383954)}}, + {{UINT32_C(0x00C5F8C7), UINT32_C(0x00059C15), UINT32_C(0x005D6652), + UINT32_C(0x00395738), UINT32_C(0x0033E177), UINT32_C(0x00114250), + UINT32_C(0x0050F27A), UINT32_C(0x00575EF9), UINT32_C(0x003EC09D), + UINT32_C(0x00587A84), UINT32_C(0x0066F8F9)}, + {UINT32_C(0x0084DCF0), UINT32_C(0x0053AC30), UINT32_C(0x006B3DE9), + UINT32_C(0x006D8108), UINT32_C(0x005E091B), UINT32_C(0x0074FBF5), + UINT32_C(0x0079C383), UINT32_C(0x0091FDE9), UINT32_C(0x0059CDF0), + UINT32_C(0x0063D52A), UINT32_C(0x00374429)}}, + {{UINT32_C(0x00AC9B9F), UINT32_C(0x00049F51), UINT32_C(0x003B74B2), + UINT32_C(0x00C116DA), UINT32_C(0x007C29A7), UINT32_C(0x0070299B), + UINT32_C(0x005E9ACC), UINT32_C(0x0003167B), UINT32_C(0x002BF1BE), + UINT32_C(0x004D9F3F), UINT32_C(0x004EE7A0)}, + {UINT32_C(0x00917C14), UINT32_C(0x003EBF02), UINT32_C(0x000420F7), + UINT32_C(0x0098B80D), UINT32_C(0x00316402), UINT32_C(0x00299C9E), + UINT32_C(0x00788C59), UINT32_C(0x004CA51A), UINT32_C(0x0032E98D), + UINT32_C(0x00523F2B), UINT32_C(0x0025FE7C)}}, + {{UINT32_C(0x00D24FB4), UINT32_C(0x000FA78F), UINT32_C(0x0075EB38), + UINT32_C(0x00E1423C), UINT32_C(0x002F6852), UINT32_C(0x0054E6AA), + UINT32_C(0x003B4EBA), UINT32_C(0x00916685), UINT32_C(0x000987EA), + UINT32_C(0x007E5CAE), UINT32_C(0x001AEF85)}, + {UINT32_C(0x00BEBDCB), UINT32_C(0x0062C59D), UINT32_C(0x007EC199), + UINT32_C(0x004ABAEB), UINT32_C(0x0026E8BC), UINT32_C(0x0045113C), + UINT32_C(0x000926F3), UINT32_C(0x006EC500), UINT32_C(0x001E9D22), + UINT32_C(0x0029BEE0), UINT32_C(0x00043DEE)}}, + {{UINT32_C(0x00409462), UINT32_C(0x001CB8CD), UINT32_C(0x001F8EFF), + UINT32_C(0x0097AA77), UINT32_C(0x003B581E), UINT32_C(0x007159CB), + UINT32_C(0x006E4ADC), UINT32_C(0x0037066B), UINT32_C(0x002D6F60), + UINT32_C(0x006DEC62), UINT32_C(0x003829D7)}, + {UINT32_C(0x00174A3E), UINT32_C(0x0048A317), UINT32_C(0x002691C2), + UINT32_C(0x004D7514), UINT32_C(0x004893B0), UINT32_C(0x006C7BDC), + UINT32_C(0x007270A6), UINT32_C(0x001CD34C), UINT32_C(0x0076F518), + UINT32_C(0x004C90E7), UINT32_C(0x005F393C)}}, + {{UINT32_C(0x0099A837), UINT32_C(0x0058E783), UINT32_C(0x0016D7D7), + UINT32_C(0x00AB0113), UINT32_C(0x007BF6C9), UINT32_C(0x005FFC67), + UINT32_C(0x000FA10D), UINT32_C(0x000805E8), UINT32_C(0x00627967), + UINT32_C(0x006D7987), UINT32_C(0x0064D848)}, + {UINT32_C(0x001FE2E3), UINT32_C(0x003499ED), UINT32_C(0x0007F453), + UINT32_C(0x0006EA4B), UINT32_C(0x006C77A1), UINT32_C(0x00131F20), + UINT32_C(0x0028B0D4), UINT32_C(0x00301339), UINT32_C(0x0010A30B), + UINT32_C(0x0078F588), UINT32_C(0x0056FFF0)}}, + {{UINT32_C(0x00C31BB5), UINT32_C(0x00440BEA), UINT32_C(0x006F3A2D), + UINT32_C(0x0085FD9F), UINT32_C(0x00488063), UINT32_C(0x0037200F), + UINT32_C(0x00199136), UINT32_C(0x0037CD50), UINT32_C(0x0008D83E), + UINT32_C(0x007A26BF), UINT32_C(0x000F7F08)}, + {UINT32_C(0x00A878F2), UINT32_C(0x002B8B71), UINT32_C(0x005C80D4), + UINT32_C(0x00147855), UINT32_C(0x00649415), UINT32_C(0x00445B94), + UINT32_C(0x0038DF88), UINT32_C(0x00D5F5B6), UINT32_C(0x004FFA47), + UINT32_C(0x00295AC4), UINT32_C(0x0041EA46)}}, + {{UINT32_C(0x007EB48E), UINT32_C(0x00012787), UINT32_C(0x00646010), + UINT32_C(0x00D4B80D), UINT32_C(0x0019653C), UINT32_C(0x002A25D0), + UINT32_C(0x007425A7), UINT32_C(0x0010550F), UINT32_C(0x001D6D43), + UINT32_C(0x00494525), UINT32_C(0x003DD845)}, + {UINT32_C(0x0097B9CF), UINT32_C(0x00389128), UINT32_C(0x0063AB07), + UINT32_C(0x00FFB646), UINT32_C(0x00049A92), UINT32_C(0x003B30F9), + UINT32_C(0x004092BA), UINT32_C(0x005BB91C), UINT32_C(0x0045BE82), + UINT32_C(0x001D89D6), UINT32_C(0x0006D769)}}, + {{UINT32_C(0x00A9C944), UINT32_C(0x001E9FDE), UINT32_C(0x0005084B), + UINT32_C(0x0037B0AB), UINT32_C(0x007DF90A), UINT32_C(0x002BFE80), + UINT32_C(0x0014A4BD), UINT32_C(0x0099723A), UINT32_C(0x0062FDC9), + UINT32_C(0x00450631), UINT32_C(0x0056C69D)}, + {UINT32_C(0x006E31BC), UINT32_C(0x00223A2C), UINT32_C(0x00426DB3), + UINT32_C(0x00B65794), UINT32_C(0x004EF40F), UINT32_C(0x0037E688), + UINT32_C(0x006EDA79), UINT32_C(0x004A47E5), UINT32_C(0x007B715C), + UINT32_C(0x0039DB43), UINT32_C(0x002E56F6)}}, + {{UINT32_C(0x00178EE8), UINT32_C(0x001F6068), UINT32_C(0x002959E2), + UINT32_C(0x007567A4), UINT32_C(0x002ACB5C), UINT32_C(0x0045B5EE), + UINT32_C(0x0071A9D8), UINT32_C(0x003E517A), UINT32_C(0x006040CD), + UINT32_C(0x0036CE20), UINT32_C(0x0005D54B)}, + {UINT32_C(0x00F4423F), UINT32_C(0x0017E6E5), UINT32_C(0x004BBF02), + UINT32_C(0x00DF4DDE), UINT32_C(0x00683FEE), UINT32_C(0x00773399), + UINT32_C(0x006F6378), UINT32_C(0x005109B9), UINT32_C(0x007F1264), + UINT32_C(0x001500B6), UINT32_C(0x0023E4D2)}}, + {{UINT32_C(0x009D0DE5), UINT32_C(0x0040EAC6), UINT32_C(0x00628047), + UINT32_C(0x00CC7720), UINT32_C(0x005595B3), UINT32_C(0x00342909), + UINT32_C(0x0006815D), UINT32_C(0x007EAF87), UINT32_C(0x00743C32), + UINT32_C(0x000D28F3), UINT32_C(0x0013C70B)}, + {UINT32_C(0x007DE7B7), UINT32_C(0x007A74CF), UINT32_C(0x0001C3FC), + UINT32_C(0x00660203), UINT32_C(0x00709164), UINT32_C(0x0073A917), + UINT32_C(0x007491A0), UINT32_C(0x00A50585), UINT32_C(0x00632019), + UINT32_C(0x005493D0), UINT32_C(0x0073CF34)}}, + {{UINT32_C(0x00FDF621), UINT32_C(0x000BB4A9), UINT32_C(0x006CD94F), + UINT32_C(0x00BC87F4), UINT32_C(0x000A8610), UINT32_C(0x00573CFA), + UINT32_C(0x00079CF0), UINT32_C(0x00DE2D6B), UINT32_C(0x002DB8E4), + UINT32_C(0x000C2B46), UINT32_C(0x004B624E)}, + {UINT32_C(0x00ADE692), UINT32_C(0x000D62B4), UINT32_C(0x004F204F), + UINT32_C(0x001E7763), UINT32_C(0x0066BF28), UINT32_C(0x0011A4DF), + UINT32_C(0x005A54FD), UINT32_C(0x002663A8), UINT32_C(0x0028E3BA), + UINT32_C(0x005F9DDD), UINT32_C(0x007C882C)}}, + {{UINT32_C(0x00112390), UINT32_C(0x00423B09), UINT32_C(0x0052630B), + UINT32_C(0x0047D4BA), UINT32_C(0x002C3042), UINT32_C(0x000C6F6F), + UINT32_C(0x0058A3E8), UINT32_C(0x00742857), UINT32_C(0x007610BB), + UINT32_C(0x0075D1B9), UINT32_C(0x00255756)}, + {UINT32_C(0x00FDF0D5), UINT32_C(0x006197B7), UINT32_C(0x0072CA11), + UINT32_C(0x00DF93D8), UINT32_C(0x00202449), UINT32_C(0x006E01FA), + UINT32_C(0x0027C172), UINT32_C(0x0055A82D), UINT32_C(0x0066E3DE), + UINT32_C(0x006A6AE7), UINT32_C(0x001A25FD)}}, + }, + { + {{UINT32_C(0x00661C25), UINT32_C(0x00028E38), UINT32_C(0x006AD36B), + UINT32_C(0x00F0DCCF), UINT32_C(0x0032B052), UINT32_C(0x0032C71C), + UINT32_C(0x00211A09), UINT32_C(0x0098A311), UINT32_C(0x000826E3), + UINT32_C(0x0021933B), UINT32_C(0x001245D9)}, + {UINT32_C(0x00BE5F68), UINT32_C(0x003D2384), UINT32_C(0x000578BD), + UINT32_C(0x00F8E413), UINT32_C(0x004061A5), UINT32_C(0x000FF2F1), + UINT32_C(0x00132EBC), UINT32_C(0x000E1BDF), UINT32_C(0x003265A0), + UINT32_C(0x0052091E), UINT32_C(0x0011FFCC)}}, + {{UINT32_C(0x00B211E9), UINT32_C(0x000495DB), UINT32_C(0x0009CB82), + UINT32_C(0x0010BDF3), UINT32_C(0x004D6E95), UINT32_C(0x006DE15A), + UINT32_C(0x003F2B0E), UINT32_C(0x00F8B166), UINT32_C(0x00569192), + UINT32_C(0x004EC0D5), UINT32_C(0x0054EF20)}, + {UINT32_C(0x005200C4), UINT32_C(0x00391A11), UINT32_C(0x007E47D8), + UINT32_C(0x0024674D), UINT32_C(0x0010FC4E), UINT32_C(0x0025192E), + UINT32_C(0x005D1C48), UINT32_C(0x00983F2B), UINT32_C(0x00568B3D), + UINT32_C(0x0011FCC9), UINT32_C(0x00322423)}}, + {{UINT32_C(0x0046A583), UINT32_C(0x006D46EC), UINT32_C(0x0009EF4F), + UINT32_C(0x008A2373), UINT32_C(0x006760E4), UINT32_C(0x003AE52C), + UINT32_C(0x006D3FE9), UINT32_C(0x00CFF4AA), UINT32_C(0x002A1967), + UINT32_C(0x006C501C), UINT32_C(0x002450E4)}, + {UINT32_C(0x00477329), UINT32_C(0x002FF478), UINT32_C(0x0079A10F), + UINT32_C(0x002240F4), UINT32_C(0x002A6335), UINT32_C(0x001DA909), + UINT32_C(0x004DF841), UINT32_C(0x00B8ED8E), UINT32_C(0x0067037E), + UINT32_C(0x006BAEF5), UINT32_C(0x00142BEB)}}, + {{UINT32_C(0x0076391E), UINT32_C(0x001FA456), UINT32_C(0x0024E1D6), + UINT32_C(0x00A4BBB7), UINT32_C(0x006733A5), UINT32_C(0x001C3AFD), + UINT32_C(0x0070A4C3), UINT32_C(0x00195BE7), UINT32_C(0x006E2E3B), + UINT32_C(0x007153CF), UINT32_C(0x0019A09A)}, + {UINT32_C(0x00153BB1), UINT32_C(0x004A58A8), UINT32_C(0x00708EE5), + UINT32_C(0x00CDFFD9), UINT32_C(0x00482EC4), UINT32_C(0x0065D09A), + UINT32_C(0x000820C4), UINT32_C(0x00CCB628), UINT32_C(0x004F2AD3), + UINT32_C(0x004A6C74), UINT32_C(0x001936EB)}}, + {{UINT32_C(0x0089A595), UINT32_C(0x00226302), UINT32_C(0x0074A6F3), + UINT32_C(0x00A33F36), UINT32_C(0x007C9032), UINT32_C(0x0067DB9B), + UINT32_C(0x0001EB7F), UINT32_C(0x00F3F17E), UINT32_C(0x005ADA9D), + UINT32_C(0x007218E4), UINT32_C(0x000C8AA9)}, + {UINT32_C(0x00C7F8B4), UINT32_C(0x00762B7E), UINT32_C(0x007B3451), + UINT32_C(0x0073575C), UINT32_C(0x002013D6), UINT32_C(0x00638E89), + UINT32_C(0x00244AD5), UINT32_C(0x009B033E), UINT32_C(0x00226644), + UINT32_C(0x001E7EB2), UINT32_C(0x0054FC0E)}}, + {{UINT32_C(0x00920FA0), UINT32_C(0x007A9F5E), UINT32_C(0x0027DD8D), + UINT32_C(0x00DC2927), UINT32_C(0x002C9E2D), UINT32_C(0x0041E6F3), + UINT32_C(0x000A2C15), UINT32_C(0x00B02047), UINT32_C(0x006CE1AA), + UINT32_C(0x0028537F), UINT32_C(0x00044A79)}, + {UINT32_C(0x00D1B513), UINT32_C(0x003A87FE), UINT32_C(0x00414D56), + UINT32_C(0x00394DF6), UINT32_C(0x00675F9F), UINT32_C(0x006536DB), + UINT32_C(0x0008F83A), UINT32_C(0x00AF6B36), UINT32_C(0x0042BF63), + UINT32_C(0x001324F1), UINT32_C(0x0069E23F)}}, + {{UINT32_C(0x00126519), UINT32_C(0x002072D6), UINT32_C(0x004F3495), + UINT32_C(0x00801841), UINT32_C(0x0034FA6F), UINT32_C(0x004A41FC), + UINT32_C(0x000C3620), UINT32_C(0x009F3555), UINT32_C(0x0050B1BB), + UINT32_C(0x007148F3), UINT32_C(0x003BC5F3)}, + {UINT32_C(0x0005E3BB), UINT32_C(0x00091662), UINT32_C(0x00480F10), + UINT32_C(0x00526739), UINT32_C(0x005371E1), UINT32_C(0x0063F1FC), + UINT32_C(0x004D071E), UINT32_C(0x0091714C), UINT32_C(0x0023F077), + UINT32_C(0x00692954), UINT32_C(0x0030E9A8)}}, + {{UINT32_C(0x00C73EE8), UINT32_C(0x002829DC), UINT32_C(0x0069D5A7), + UINT32_C(0x0075EE6F), UINT32_C(0x000F85A6), UINT32_C(0x0045F30F), + UINT32_C(0x00407EA5), UINT32_C(0x00F70774), UINT32_C(0x0045482D), + UINT32_C(0x0013AE44), UINT32_C(0x00547FF8)}, + {UINT32_C(0x00F7F25A), UINT32_C(0x002B2910), UINT32_C(0x004B44EA), + UINT32_C(0x00DDE34B), UINT32_C(0x003285A3), UINT32_C(0x00558E05), + UINT32_C(0x00468DC2), UINT32_C(0x00411298), UINT32_C(0x00509EF8), + UINT32_C(0x007F842C), UINT32_C(0x007609FD)}}, + {{UINT32_C(0x0005F2D5), UINT32_C(0x002E2EC3), UINT32_C(0x0049F536), + UINT32_C(0x005AEF1B), UINT32_C(0x001ECE26), UINT32_C(0x0032D05A), + UINT32_C(0x0017585A), UINT32_C(0x00DB0102), UINT32_C(0x007FA137), + UINT32_C(0x0056FFCC), UINT32_C(0x000943C5)}, + {UINT32_C(0x00A42C24), UINT32_C(0x0048A53E), UINT32_C(0x001397BC), + UINT32_C(0x009E2E56), UINT32_C(0x00307F5D), UINT32_C(0x001B73E3), + UINT32_C(0x003F6900), UINT32_C(0x00122D6A), UINT32_C(0x00769EBF), + UINT32_C(0x0016A45C), UINT32_C(0x0077A9E1)}}, + {{UINT32_C(0x0065F9CF), UINT32_C(0x004AC108), UINT32_C(0x0067432F), + UINT32_C(0x002DF4D6), UINT32_C(0x004DCF5E), UINT32_C(0x003BAEC7), + UINT32_C(0x00557847), UINT32_C(0x0052362A), UINT32_C(0x003955FF), + UINT32_C(0x002D7043), UINT32_C(0x004CA5DC)}, + {UINT32_C(0x007A93D2), UINT32_C(0x0036376B), UINT32_C(0x003A5A14), + UINT32_C(0x0002555D), UINT32_C(0x00469862), UINT32_C(0x007BDBE1), + UINT32_C(0x003081C9), UINT32_C(0x009C449C), UINT32_C(0x0047E01C), + UINT32_C(0x00485605), UINT32_C(0x0031010E)}}, + {{UINT32_C(0x009EB768), UINT32_C(0x005F172B), UINT32_C(0x0068912F), + UINT32_C(0x003400EE), UINT32_C(0x0040F25E), UINT32_C(0x00255B9D), + UINT32_C(0x0030FC1D), UINT32_C(0x006B60A7), UINT32_C(0x00652D66), + UINT32_C(0x004EE313), UINT32_C(0x0046178A)}, + {UINT32_C(0x007BD0F4), UINT32_C(0x005D4ECB), UINT32_C(0x00458AC2), + UINT32_C(0x00370A5B), UINT32_C(0x0045F7B0), UINT32_C(0x0046CD90), + UINT32_C(0x007969E2), UINT32_C(0x007A733E), UINT32_C(0x0042A4F0), + UINT32_C(0x00118C36), UINT32_C(0x00389CCC)}}, + {{UINT32_C(0x00C27F78), UINT32_C(0x00532F03), UINT32_C(0x007E9878), + UINT32_C(0x009B0A2A), UINT32_C(0x0034B652), UINT32_C(0x0028506E), + UINT32_C(0x006E5FC8), UINT32_C(0x00EFAE69), UINT32_C(0x00034D96), + UINT32_C(0x006780F0), UINT32_C(0x002CA851)}, + {UINT32_C(0x004910F2), UINT32_C(0x00144032), UINT32_C(0x00441EEB), + UINT32_C(0x007F4CCD), UINT32_C(0x0018F7CA), UINT32_C(0x005C2F72), + UINT32_C(0x007741E6), UINT32_C(0x00DEB207), UINT32_C(0x00060639), + UINT32_C(0x00517FDD), UINT32_C(0x004332FA)}}, + {{UINT32_C(0x00D5681D), UINT32_C(0x00664ABF), UINT32_C(0x00246FCC), + UINT32_C(0x003A300A), UINT32_C(0x006F7A1D), UINT32_C(0x004926CA), + UINT32_C(0x0015B100), UINT32_C(0x001EB359), UINT32_C(0x004A94F0), + UINT32_C(0x0006716C), UINT32_C(0x00107D89)}, + {UINT32_C(0x001231EC), UINT32_C(0x002B9FEE), UINT32_C(0x00406E9E), + UINT32_C(0x008F6901), UINT32_C(0x003B5EDE), UINT32_C(0x0043CD20), + UINT32_C(0x00704693), UINT32_C(0x00887628), UINT32_C(0x004FA46E), + UINT32_C(0x0058B580), UINT32_C(0x00313AA5)}}, + {{UINT32_C(0x0034CBFC), UINT32_C(0x0070E13A), UINT32_C(0x001631DB), + UINT32_C(0x00C5D9F6), UINT32_C(0x001D00D8), UINT32_C(0x001359B4), + UINT32_C(0x003A435C), UINT32_C(0x0031919E), UINT32_C(0x0065E412), + UINT32_C(0x003B76A2), UINT32_C(0x0000EC08)}, + {UINT32_C(0x0016F36E), UINT32_C(0x007A9BFE), UINT32_C(0x0017CEF7), + UINT32_C(0x005B0D1B), UINT32_C(0x00062CAC), UINT32_C(0x005DE55E), + UINT32_C(0x007A8F81), UINT32_C(0x007661FA), UINT32_C(0x007ADB68), + UINT32_C(0x0064A4D8), UINT32_C(0x00392C5D)}}, + {{UINT32_C(0x0074F552), UINT32_C(0x004A7096), UINT32_C(0x000D3EC7), + UINT32_C(0x001A8192), UINT32_C(0x003E550A), UINT32_C(0x006C7B5B), + UINT32_C(0x00454715), UINT32_C(0x00F31192), UINT32_C(0x000658B1), + UINT32_C(0x00611F71), UINT32_C(0x007FC5BB)}, + {UINT32_C(0x00562488), UINT32_C(0x000D96D1), UINT32_C(0x00523EA9), + UINT32_C(0x0075587F), UINT32_C(0x001E1936), UINT32_C(0x007D2745), + UINT32_C(0x0012EC03), UINT32_C(0x00BA0FEE), UINT32_C(0x002C5241), + UINT32_C(0x001D4B8A), UINT32_C(0x002562EC)}}, + {{UINT32_C(0x00C4F8B3), UINT32_C(0x007D2D04), UINT32_C(0x0030B04E), + UINT32_C(0x003424A6), UINT32_C(0x004124E9), UINT32_C(0x00528C55), + UINT32_C(0x00349B79), UINT32_C(0x0098B5C0), UINT32_C(0x0025B021), + UINT32_C(0x0060681C), UINT32_C(0x00387899)}, + {UINT32_C(0x0090C1FF), UINT32_C(0x005232B8), UINT32_C(0x004F63C3), + UINT32_C(0x00E38A8E), UINT32_C(0x003E60AE), UINT32_C(0x001130C4), + UINT32_C(0x004BF3A0), UINT32_C(0x00E168A5), UINT32_C(0x00061555), + UINT32_C(0x000C2B98), UINT32_C(0x005FA4E4)}}, + }, + { + {{UINT32_C(0x00E21CA1), UINT32_C(0x000C87FB), UINT32_C(0x002DD3D7), + UINT32_C(0x00537514), UINT32_C(0x00509919), UINT32_C(0x00010447), + UINT32_C(0x0025E6A6), UINT32_C(0x006B441D), UINT32_C(0x005E97AA), + UINT32_C(0x00660203), UINT32_C(0x0058FBFA)}, + {UINT32_C(0x006C47E6), UINT32_C(0x0031B2BD), UINT32_C(0x007BBA31), + UINT32_C(0x00B0AD4B), UINT32_C(0x00787301), UINT32_C(0x002B01EB), + UINT32_C(0x001E2E68), UINT32_C(0x005811EC), UINT32_C(0x006D2B81), + UINT32_C(0x00700E9C), UINT32_C(0x000457D9)}}, + {{UINT32_C(0x005357E1), UINT32_C(0x0057AC0E), UINT32_C(0x000DB286), + UINT32_C(0x00EEE3D1), UINT32_C(0x0077ED80), UINT32_C(0x000E6D08), + UINT32_C(0x000E2936), UINT32_C(0x004ABA0F), UINT32_C(0x005F2976), + UINT32_C(0x007CC785), UINT32_C(0x003AE110)}, + {UINT32_C(0x00945699), UINT32_C(0x002637EE), UINT32_C(0x0027992C), + UINT32_C(0x00BD9CD8), UINT32_C(0x0070F927), UINT32_C(0x000393E4), + UINT32_C(0x006F8B67), UINT32_C(0x0061AAEC), UINT32_C(0x006328E7), + UINT32_C(0x005B3FD0), UINT32_C(0x00268F9A)}}, + {{UINT32_C(0x00F7A85C), UINT32_C(0x003F3302), UINT32_C(0x0026F852), + UINT32_C(0x001C40E9), UINT32_C(0x001E2517), UINT32_C(0x0005A3BF), + UINT32_C(0x005700CE), UINT32_C(0x00561812), UINT32_C(0x003C7E74), + UINT32_C(0x0066B1B5), UINT32_C(0x0007B9C2)}, + {UINT32_C(0x00124E6A), UINT32_C(0x007C15BA), UINT32_C(0x00241638), + UINT32_C(0x005A50ED), UINT32_C(0x002A5582), UINT32_C(0x0074D879), + UINT32_C(0x0068F177), UINT32_C(0x0066CA1D), UINT32_C(0x0058D9CB), + UINT32_C(0x006724E5), UINT32_C(0x00246C5E)}}, + {{UINT32_C(0x004D0432), UINT32_C(0x000B0784), UINT32_C(0x00482F19), + UINT32_C(0x00EA947D), UINT32_C(0x002C2664), UINT32_C(0x000C8DA3), + UINT32_C(0x002F7290), UINT32_C(0x001B3BBF), UINT32_C(0x00602C23), + UINT32_C(0x002D7127), UINT32_C(0x0076EBD4)}, + {UINT32_C(0x00371D4D), UINT32_C(0x003A8832), UINT32_C(0x000D8BB0), + UINT32_C(0x00067D63), UINT32_C(0x003498C7), UINT32_C(0x0072BF20), + UINT32_C(0x0064F598), UINT32_C(0x00B95CE3), UINT32_C(0x00587A7D), + UINT32_C(0x0055FFCB), UINT32_C(0x0051077A)}}, + {{UINT32_C(0x009C7745), UINT32_C(0x007F8E19), UINT32_C(0x00083AF5), + UINT32_C(0x00DB23A3), UINT32_C(0x00747602), UINT32_C(0x005F6E8D), + UINT32_C(0x00678701), UINT32_C(0x00974612), UINT32_C(0x0056DFDD), + UINT32_C(0x002FE8DB), UINT32_C(0x00306683)}, + {UINT32_C(0x0089FFA4), UINT32_C(0x00121679), UINT32_C(0x0079120C), + UINT32_C(0x000BEDC4), UINT32_C(0x0029B7E4), UINT32_C(0x00496C88), + UINT32_C(0x00760536), UINT32_C(0x00C8DB5D), UINT32_C(0x00130589), + UINT32_C(0x001DE527), UINT32_C(0x004E350B)}}, + {{UINT32_C(0x0047CC2D), UINT32_C(0x003F02AF), UINT32_C(0x007A859E), + UINT32_C(0x00E23690), UINT32_C(0x00649380), UINT32_C(0x0058D4FE), + UINT32_C(0x00593197), UINT32_C(0x0003C24F), UINT32_C(0x0016F98F), + UINT32_C(0x003046CD), UINT32_C(0x005CE122)}, + {UINT32_C(0x0050D389), UINT32_C(0x00007E53), UINT32_C(0x004B3FCC), + UINT32_C(0x000AB3D0), UINT32_C(0x00103BDD), UINT32_C(0x002F2450), + UINT32_C(0x0034780F), UINT32_C(0x00C242E0), UINT32_C(0x00269889), + UINT32_C(0x003E5ACB), UINT32_C(0x0076919B)}}, + {{UINT32_C(0x000BB75C), UINT32_C(0x0040DD3F), UINT32_C(0x0028965D), + UINT32_C(0x00D08696), UINT32_C(0x006F3945), UINT32_C(0x00756F6B), + UINT32_C(0x00037271), UINT32_C(0x001C20DD), UINT32_C(0x0037BED6), + UINT32_C(0x00080F61), UINT32_C(0x00274CFC)}, + {UINT32_C(0x001C1CFE), UINT32_C(0x004D42DD), UINT32_C(0x003FA1F1), + UINT32_C(0x00CBE07F), UINT32_C(0x00277815), UINT32_C(0x001262DC), + UINT32_C(0x00477DDE), UINT32_C(0x0048F59B), UINT32_C(0x0065A5A3), + UINT32_C(0x005FDC99), UINT32_C(0x0064FF50)}}, + {{UINT32_C(0x00D66C07), UINT32_C(0x0074289B), UINT32_C(0x005E8814), + UINT32_C(0x00B92793), UINT32_C(0x0057F706), UINT32_C(0x0059075D), + UINT32_C(0x00508B5E), UINT32_C(0x009A2426), UINT32_C(0x007F10BB), + UINT32_C(0x000AFD3F), UINT32_C(0x007801CB)}, + {UINT32_C(0x0051B22E), UINT32_C(0x00279999), UINT32_C(0x0001782D), + UINT32_C(0x00DC4C85), UINT32_C(0x002439CE), UINT32_C(0x0055AA49), + UINT32_C(0x00708E58), UINT32_C(0x0003EA14), UINT32_C(0x00463ED7), + UINT32_C(0x00717B6E), UINT32_C(0x0034176A)}}, + {{UINT32_C(0x00585B7C), UINT32_C(0x0038AE8B), UINT32_C(0x006C127E), + UINT32_C(0x003D794C), UINT32_C(0x001195F4), UINT32_C(0x005DE000), + UINT32_C(0x000771A5), UINT32_C(0x00C99CF0), UINT32_C(0x000765DC), + UINT32_C(0x0002A789), UINT32_C(0x00048FD2)}, + {UINT32_C(0x00482FC7), UINT32_C(0x00275057), UINT32_C(0x00095B7B), + UINT32_C(0x0078B02B), UINT32_C(0x000B1596), UINT32_C(0x0073B9FE), + UINT32_C(0x0045D41C), UINT32_C(0x002919F9), UINT32_C(0x0056F856), + UINT32_C(0x001D4916), UINT32_C(0x007DB0CE)}}, + {{UINT32_C(0x001D7FC7), UINT32_C(0x006BED2D), UINT32_C(0x000B2844), + UINT32_C(0x003F5459), UINT32_C(0x007CA010), UINT32_C(0x0024D59F), + UINT32_C(0x007F0E34), UINT32_C(0x003EB935), UINT32_C(0x006FDF55), + UINT32_C(0x0037C092), UINT32_C(0x004207CB)}, + {UINT32_C(0x00E92E4A), UINT32_C(0x00744046), UINT32_C(0x00384BF8), + UINT32_C(0x0027733A), UINT32_C(0x0071FB22), UINT32_C(0x0053AF65), + UINT32_C(0x002794C6), UINT32_C(0x00C79DA2), UINT32_C(0x004A9C1B), + UINT32_C(0x001A9309), UINT32_C(0x00103ECF)}}, + {{UINT32_C(0x000ACD3F), UINT32_C(0x000E6E24), UINT32_C(0x0058B8AE), + UINT32_C(0x003A4430), UINT32_C(0x000A06B4), UINT32_C(0x002DE854), + UINT32_C(0x0044E3E2), UINT32_C(0x000867E3), UINT32_C(0x007FF01B), + UINT32_C(0x00244016), UINT32_C(0x00012B1D)}, + {UINT32_C(0x00B5F186), UINT32_C(0x00752F4D), UINT32_C(0x00358B6B), + UINT32_C(0x003F9113), UINT32_C(0x001CEE85), UINT32_C(0x00229C2D), + UINT32_C(0x004DA05C), UINT32_C(0x0085A9A9), UINT32_C(0x000D46D9), + UINT32_C(0x007E5EDA), UINT32_C(0x00269074)}}, + {{UINT32_C(0x00A53FDE), UINT32_C(0x0058A7FA), UINT32_C(0x00032B2F), + UINT32_C(0x00E52CC5), UINT32_C(0x004F77CE), UINT32_C(0x0074A88B), + UINT32_C(0x002F23CF), UINT32_C(0x00F073CD), UINT32_C(0x00591A19), + UINT32_C(0x0051A537), UINT32_C(0x007443BE)}, + {UINT32_C(0x008576CC), UINT32_C(0x006F139C), UINT32_C(0x006B127F), + UINT32_C(0x00EFC187), UINT32_C(0x00244143), UINT32_C(0x0038C6EC), + UINT32_C(0x001FA2AC), UINT32_C(0x001BF011), UINT32_C(0x005D8AE1), + UINT32_C(0x00783BEE), UINT32_C(0x000B5335)}}, + {{UINT32_C(0x009CB9CB), UINT32_C(0x005CB329), UINT32_C(0x006729A8), + UINT32_C(0x00119F0E), UINT32_C(0x002E37B0), UINT32_C(0x00289AD8), + UINT32_C(0x0029E70A), UINT32_C(0x00D2872D), UINT32_C(0x0039C662), + UINT32_C(0x000182D4), UINT32_C(0x0005EDE9)}, + {UINT32_C(0x009C3957), UINT32_C(0x005811A1), UINT32_C(0x002C3D0F), + UINT32_C(0x00134BF7), UINT32_C(0x00484F36), UINT32_C(0x0002AC30), + UINT32_C(0x00425F9B), UINT32_C(0x00955A54), UINT32_C(0x007B6B36), + UINT32_C(0x00327B25), UINT32_C(0x007376DB)}}, + {{UINT32_C(0x00F420A8), UINT32_C(0x001348CB), UINT32_C(0x006949EA), + UINT32_C(0x004C3B60), UINT32_C(0x006CECF6), UINT32_C(0x0000EFC9), + UINT32_C(0x00740C4A), UINT32_C(0x00271CF1), UINT32_C(0x001CC0D8), + UINT32_C(0x00017BE4), UINT32_C(0x0005C726)}, + {UINT32_C(0x00F3F8A6), UINT32_C(0x00727D92), UINT32_C(0x0063161F), + UINT32_C(0x00C70EF9), UINT32_C(0x0015855F), UINT32_C(0x007F8036), + UINT32_C(0x00003EDA), UINT32_C(0x001A5C7B), UINT32_C(0x00772841), + UINT32_C(0x002A862B), UINT32_C(0x0068F5AC)}}, + {{UINT32_C(0x00372511), UINT32_C(0x00437344), UINT32_C(0x003E7956), + UINT32_C(0x000C1F67), UINT32_C(0x003EB8B3), UINT32_C(0x00557961), + UINT32_C(0x0022832B), UINT32_C(0x00F188A2), UINT32_C(0x007E2427), + UINT32_C(0x00147CAB), UINT32_C(0x0045D0A9)}, + {UINT32_C(0x0029CABF), UINT32_C(0x005C33DF), UINT32_C(0x00026D73), + UINT32_C(0x00AAF04C), UINT32_C(0x0057DB62), UINT32_C(0x0025990B), + UINT32_C(0x006DB6EC), UINT32_C(0x003549E6), UINT32_C(0x001DEEAF), + UINT32_C(0x002254AC), UINT32_C(0x0058BBD5)}}, + {{UINT32_C(0x00B77A44), UINT32_C(0x003F2F46), UINT32_C(0x00064DA4), + UINT32_C(0x00839511), UINT32_C(0x0058488B), UINT32_C(0x000B772D), + UINT32_C(0x007F4634), UINT32_C(0x008743EC), UINT32_C(0x0050BA38), + UINT32_C(0x003CE592), UINT32_C(0x0062440C)}, + {UINT32_C(0x006C928C), UINT32_C(0x000B1540), UINT32_C(0x00339658), + UINT32_C(0x005BEC51), UINT32_C(0x005B1535), UINT32_C(0x007A2111), + UINT32_C(0x002A0968), UINT32_C(0x00EF790D), UINT32_C(0x007468E6), + UINT32_C(0x00003B62), UINT32_C(0x002C8A13)}}, + }, + { + {{UINT32_C(0x001AEE99), UINT32_C(0x0020A5A1), UINT32_C(0x0032D7F4), + UINT32_C(0x003DF131), UINT32_C(0x001E1996), UINT32_C(0x005B7438), + UINT32_C(0x005718AC), UINT32_C(0x00E5D6F0), UINT32_C(0x0067FE3A), + UINT32_C(0x0043BEDC), UINT32_C(0x0024BB69)}, + {UINT32_C(0x00A31E2E), UINT32_C(0x0047EE95), UINT32_C(0x00464DFE), + UINT32_C(0x0042F2B4), UINT32_C(0x001FCD82), UINT32_C(0x002D6AB2), + UINT32_C(0x004BDFC2), UINT32_C(0x00844674), UINT32_C(0x003D4411), + UINT32_C(0x00432B86), UINT32_C(0x002532BF)}}, + {{UINT32_C(0x005F12F9), UINT32_C(0x0062861D), UINT32_C(0x002EFAAB), + UINT32_C(0x00FA0463), UINT32_C(0x00315D4D), UINT32_C(0x0061E65A), + UINT32_C(0x005DB18D), UINT32_C(0x0009390F), UINT32_C(0x0059E60A), + UINT32_C(0x0065E1AF), UINT32_C(0x00624DB7)}, + {UINT32_C(0x0083E30F), UINT32_C(0x0064CF13), UINT32_C(0x0072556F), + UINT32_C(0x003CA70C), UINT32_C(0x007D9C2B), UINT32_C(0x00139172), + UINT32_C(0x002113A1), UINT32_C(0x00FC55DB), UINT32_C(0x000698EC), + UINT32_C(0x001E14A5), UINT32_C(0x0076C609)}}, + {{UINT32_C(0x0095662A), UINT32_C(0x0036AC63), UINT32_C(0x002500EA), + UINT32_C(0x004622AB), UINT32_C(0x0077D68E), UINT32_C(0x0037F839), + UINT32_C(0x007758F5), UINT32_C(0x00D42942), UINT32_C(0x003DB22A), + UINT32_C(0x00622A98), UINT32_C(0x000DFA70)}, + {UINT32_C(0x00EC12BF), UINT32_C(0x0027B94B), UINT32_C(0x0050E295), + UINT32_C(0x00EBCA4D), UINT32_C(0x00276449), UINT32_C(0x0047FCA4), + UINT32_C(0x0037ED85), UINT32_C(0x0071515E), UINT32_C(0x0066DA3A), + UINT32_C(0x0039095E), UINT32_C(0x005B2B97)}}, + {{UINT32_C(0x0011BC89), UINT32_C(0x007D50E8), UINT32_C(0x0011BF1F), + UINT32_C(0x00A2A84A), UINT32_C(0x0012D4FE), UINT32_C(0x0008D675), + UINT32_C(0x002C2672), UINT32_C(0x007645B3), UINT32_C(0x0006D691), + UINT32_C(0x00374435), UINT32_C(0x0035AD63)}, + {UINT32_C(0x0003E773), UINT32_C(0x006AEC1F), UINT32_C(0x005376E6), + UINT32_C(0x00D6A2F2), UINT32_C(0x0001A136), UINT32_C(0x0074EE78), + UINT32_C(0x00061BC5), UINT32_C(0x00D92C45), UINT32_C(0x00397CD0), + UINT32_C(0x0025C26E), UINT32_C(0x0059374C)}}, + {{UINT32_C(0x00A09501), UINT32_C(0x005C78C0), UINT32_C(0x005FDE74), + UINT32_C(0x00106048), UINT32_C(0x007EA30E), UINT32_C(0x00646924), + UINT32_C(0x00445B79), UINT32_C(0x000ED086), UINT32_C(0x0064E0AC), + UINT32_C(0x007D8CBA), UINT32_C(0x004D380E)}, + {UINT32_C(0x008E2F04), UINT32_C(0x002E1444), UINT32_C(0x007FAF4F), + UINT32_C(0x00780729), UINT32_C(0x003330F9), UINT32_C(0x000589E5), + UINT32_C(0x006F0A62), UINT32_C(0x000B0B9C), UINT32_C(0x0013DDD0), + UINT32_C(0x000078F6), UINT32_C(0x001CC544)}}, + {{UINT32_C(0x005823A8), UINT32_C(0x00410483), UINT32_C(0x007E6356), + UINT32_C(0x00414323), UINT32_C(0x00224E12), UINT32_C(0x005FCD9C), + UINT32_C(0x00737C09), UINT32_C(0x00697EBD), UINT32_C(0x002148D0), + UINT32_C(0x002B1D29), UINT32_C(0x000C5045)}, + {UINT32_C(0x0010C3FE), UINT32_C(0x0016E066), UINT32_C(0x002938C4), + UINT32_C(0x003ADAEA), UINT32_C(0x007415B5), UINT32_C(0x00151775), + UINT32_C(0x0032ACC0), UINT32_C(0x00930BFE), UINT32_C(0x0035E23E), + UINT32_C(0x0072CA6D), UINT32_C(0x004E4B15)}}, + {{UINT32_C(0x00F00F70), UINT32_C(0x000BABBD), UINT32_C(0x0060773F), + UINT32_C(0x007CDF42), UINT32_C(0x0071BD8F), UINT32_C(0x004451AB), + UINT32_C(0x00715EB4), UINT32_C(0x00E2E49E), UINT32_C(0x00241448), + UINT32_C(0x000AD80D), UINT32_C(0x001CD906)}, + {UINT32_C(0x00BCBD12), UINT32_C(0x005D595E), UINT32_C(0x0023ED7A), + UINT32_C(0x0071C310), UINT32_C(0x0067765E), UINT32_C(0x00657097), + UINT32_C(0x00722381), UINT32_C(0x00DE8456), UINT32_C(0x00282F96), + UINT32_C(0x00144C0E), UINT32_C(0x00177CA7)}}, + {{UINT32_C(0x00F71055), UINT32_C(0x006456B1), UINT32_C(0x006700E1), + UINT32_C(0x008B98F5), UINT32_C(0x0052ADCD), UINT32_C(0x005744F1), + UINT32_C(0x007B204B), UINT32_C(0x00A3506E), UINT32_C(0x0063BE42), + UINT32_C(0x007E5FFD), UINT32_C(0x00255C05)}, + {UINT32_C(0x0088FA6C), UINT32_C(0x00508BF3), UINT32_C(0x006F89D3), + UINT32_C(0x00E448C5), UINT32_C(0x00339951), UINT32_C(0x003285F7), + UINT32_C(0x0050F779), UINT32_C(0x00BB3742), UINT32_C(0x006C5145), + UINT32_C(0x000E4CC6), UINT32_C(0x00725EF1)}}, + {{UINT32_C(0x0046AE2B), UINT32_C(0x007D776D), UINT32_C(0x003BCE35), + UINT32_C(0x00A61FCE), UINT32_C(0x000D70E8), UINT32_C(0x006292B6), + UINT32_C(0x00688218), UINT32_C(0x00BE2745), UINT32_C(0x00094E58), + UINT32_C(0x0009B42B), UINT32_C(0x0068C161)}, + {UINT32_C(0x003C69E3), UINT32_C(0x002BB404), UINT32_C(0x00192F8E), + UINT32_C(0x006C3642), UINT32_C(0x0017D4D5), UINT32_C(0x00120D15), + UINT32_C(0x00150EC2), UINT32_C(0x00894ED0), UINT32_C(0x00708435), + UINT32_C(0x000F4581), UINT32_C(0x0077E852)}}, + {{UINT32_C(0x00E96C40), UINT32_C(0x0003BAE3), UINT32_C(0x0039A069), + UINT32_C(0x00CF1197), UINT32_C(0x006C0440), UINT32_C(0x00493531), + UINT32_C(0x005CCA20), UINT32_C(0x00051F91), UINT32_C(0x00447C85), + UINT32_C(0x00549A26), UINT32_C(0x0021D2DD)}, + {UINT32_C(0x0003E55C), UINT32_C(0x004C16AC), UINT32_C(0x005A14F7), + UINT32_C(0x001EDD65), UINT32_C(0x005E2DE4), UINT32_C(0x00655DDD), + UINT32_C(0x00244FD3), UINT32_C(0x0015E737), UINT32_C(0x0059980C), + UINT32_C(0x00764CCA), UINT32_C(0x0044B0FC)}}, + {{UINT32_C(0x000F3BFB), UINT32_C(0x007F6C0E), UINT32_C(0x0049E58A), + UINT32_C(0x00ACF249), UINT32_C(0x00257C58), UINT32_C(0x003A18F3), + UINT32_C(0x0016A0E2), UINT32_C(0x007F0B1A), UINT32_C(0x002626B9), + UINT32_C(0x002ADDDB), UINT32_C(0x00666FAA)}, + {UINT32_C(0x00951F40), UINT32_C(0x005AD6ED), UINT32_C(0x005A13DC), + UINT32_C(0x002957F5), UINT32_C(0x0003C908), UINT32_C(0x002ED9F8), + UINT32_C(0x0038A2EF), UINT32_C(0x0066D359), UINT32_C(0x0036BB80), + UINT32_C(0x00485D4E), UINT32_C(0x002385BC)}}, + {{UINT32_C(0x006992BF), UINT32_C(0x007FBDBC), UINT32_C(0x004F0C3A), + UINT32_C(0x00A97852), UINT32_C(0x003652C9), UINT32_C(0x00566C64), + UINT32_C(0x0010EA10), UINT32_C(0x003DBBC8), UINT32_C(0x0073C6FC), + UINT32_C(0x0016BB4F), UINT32_C(0x007D9107)}, + {UINT32_C(0x009A6F04), UINT32_C(0x0001B25D), UINT32_C(0x0069D11F), + UINT32_C(0x00F781A6), UINT32_C(0x0017833C), UINT32_C(0x00650EA3), + UINT32_C(0x0026DE8E), UINT32_C(0x00F206B1), UINT32_C(0x00381F8F), + UINT32_C(0x003E0885), UINT32_C(0x003EC7B2)}}, + {{UINT32_C(0x006CC730), UINT32_C(0x003FB03B), UINT32_C(0x003A12B4), + UINT32_C(0x001E86B8), UINT32_C(0x004DDC8F), UINT32_C(0x0013F1F5), + UINT32_C(0x005AA6C4), UINT32_C(0x006D4113), UINT32_C(0x002B4497), + UINT32_C(0x00637931), UINT32_C(0x007E14DA)}, + {UINT32_C(0x0082428A), UINT32_C(0x00781839), UINT32_C(0x006D3EE0), + UINT32_C(0x00556D45), UINT32_C(0x004CBA3D), UINT32_C(0x001A817C), + UINT32_C(0x00079618), UINT32_C(0x009AD974), UINT32_C(0x00039ACC), + UINT32_C(0x0066941E), UINT32_C(0x0017E43E)}}, + {{UINT32_C(0x001E17BF), UINT32_C(0x003A82E9), UINT32_C(0x00715860), + UINT32_C(0x0066AD72), UINT32_C(0x00704AA0), UINT32_C(0x00610943), + UINT32_C(0x006D6665), UINT32_C(0x0098EA35), UINT32_C(0x006ADBD9), + UINT32_C(0x00686CCC), UINT32_C(0x001D3BA6)}, + {UINT32_C(0x009EE4F6), UINT32_C(0x006D56D7), UINT32_C(0x003DF3FF), + UINT32_C(0x006D335A), UINT32_C(0x00136056), UINT32_C(0x007862D7), + UINT32_C(0x00014DFF), UINT32_C(0x0069526C), UINT32_C(0x004239B5), + UINT32_C(0x00225D2B), UINT32_C(0x0034F5F0)}}, + {{UINT32_C(0x00CDEBA0), UINT32_C(0x00343287), UINT32_C(0x00356E22), + UINT32_C(0x00620AEB), UINT32_C(0x0079884F), UINT32_C(0x005ED81F), + UINT32_C(0x00266E56), UINT32_C(0x00DFC04D), UINT32_C(0x00251F00), + UINT32_C(0x000B1056), UINT32_C(0x003312CA)}, + {UINT32_C(0x0093459D), UINT32_C(0x00027551), UINT32_C(0x005C7CA5), + UINT32_C(0x005793A0), UINT32_C(0x00444B26), UINT32_C(0x002E17C0), + UINT32_C(0x0065465E), UINT32_C(0x00DE0CFB), UINT32_C(0x00246A04), + UINT32_C(0x0058A1E7), UINT32_C(0x0002E6ED)}}, + {{UINT32_C(0x00D9BCCB), UINT32_C(0x00731CB2), UINT32_C(0x0054E269), + UINT32_C(0x00298E40), UINT32_C(0x0038BD8A), UINT32_C(0x001EF4E1), + UINT32_C(0x00536780), UINT32_C(0x008FC99C), UINT32_C(0x0070FBA5), + UINT32_C(0x0023FE5A), UINT32_C(0x003086A6)}, + {UINT32_C(0x005F65D4), UINT32_C(0x0018B097), UINT32_C(0x0000D107), + UINT32_C(0x00A7F701), UINT32_C(0x006D932A), UINT32_C(0x00645C66), + UINT32_C(0x0031D996), UINT32_C(0x0021F472), UINT32_C(0x003E05E2), + UINT32_C(0x00566358), UINT32_C(0x0020AA4B)}}, + }, + { + {{UINT32_C(0x00036494), UINT32_C(0x002C1376), UINT32_C(0x003827F0), + UINT32_C(0x00602697), UINT32_C(0x007FBAE0), UINT32_C(0x0023C27C), + UINT32_C(0x0077FD3B), UINT32_C(0x00D682CE), UINT32_C(0x0000127C), + UINT32_C(0x001800D0), UINT32_C(0x00434FAA)}, + {UINT32_C(0x0097CE18), UINT32_C(0x006C7E53), UINT32_C(0x002407FE), + UINT32_C(0x00E59769), UINT32_C(0x0049091C), UINT32_C(0x005990C5), + UINT32_C(0x000A8116), UINT32_C(0x006EF1DA), UINT32_C(0x0050BE84), + UINT32_C(0x00409E8E), UINT32_C(0x00032E15)}}, + {{UINT32_C(0x008BA0CB), UINT32_C(0x0024C765), UINT32_C(0x0025C9B4), + UINT32_C(0x00BEB81D), UINT32_C(0x005F5936), UINT32_C(0x00398905), + UINT32_C(0x0019ABFF), UINT32_C(0x00D2850E), UINT32_C(0x0017E744), + UINT32_C(0x006ED216), UINT32_C(0x005B3A87)}, + {UINT32_C(0x000D9750), UINT32_C(0x005A6DCD), UINT32_C(0x0023AC02), + UINT32_C(0x00193FD3), UINT32_C(0x00311A37), UINT32_C(0x0018B521), + UINT32_C(0x0041715F), UINT32_C(0x00B7BEE0), UINT32_C(0x004A2676), + UINT32_C(0x0009D393), UINT32_C(0x0051FD17)}}, + {{UINT32_C(0x00BA8CD3), UINT32_C(0x001C0A4F), UINT32_C(0x007FF7A6), + UINT32_C(0x0061749E), UINT32_C(0x0012F613), UINT32_C(0x001F7746), + UINT32_C(0x0018B9B4), UINT32_C(0x0055F5A2), UINT32_C(0x0039E0C6), + UINT32_C(0x002C981C), UINT32_C(0x00252009)}, + {UINT32_C(0x003B1F03), UINT32_C(0x0024B0F4), UINT32_C(0x002D9C8D), + UINT32_C(0x005B3BC2), UINT32_C(0x0013D8D6), UINT32_C(0x001AE9C3), + UINT32_C(0x00365B85), UINT32_C(0x0047917C), UINT32_C(0x003A827D), + UINT32_C(0x006AC519), UINT32_C(0x0042EF23)}}, + {{UINT32_C(0x0058227A), UINT32_C(0x000C7436), UINT32_C(0x000A3CE3), + UINT32_C(0x00AC1B52), UINT32_C(0x00026B67), UINT32_C(0x0002D123), + UINT32_C(0x001FFB2E), UINT32_C(0x00DF0227), UINT32_C(0x003158E6), + UINT32_C(0x00619FE2), UINT32_C(0x003BDF03)}, + {UINT32_C(0x00B4A505), UINT32_C(0x0038DD5F), UINT32_C(0x00129DC1), + UINT32_C(0x0035123F), UINT32_C(0x0018810B), UINT32_C(0x0023ECA8), + UINT32_C(0x000F60A9), UINT32_C(0x0067E897), UINT32_C(0x002B00B6), + UINT32_C(0x0035E5A1), UINT32_C(0x0050D661)}}, + {{UINT32_C(0x006D68FC), UINT32_C(0x000B651D), UINT32_C(0x003E52A8), + UINT32_C(0x005ACD99), UINT32_C(0x00216D3E), UINT32_C(0x004C0891), + UINT32_C(0x00621922), UINT32_C(0x0058B412), UINT32_C(0x007F124C), + UINT32_C(0x00597E66), UINT32_C(0x000FAB72)}, + {UINT32_C(0x00FAF9A7), UINT32_C(0x0074624D), UINT32_C(0x005AE3A4), + UINT32_C(0x00A54BEE), UINT32_C(0x0004EB36), UINT32_C(0x000DC858), + UINT32_C(0x00030603), UINT32_C(0x00A8E0B4), UINT32_C(0x00232FA4), + UINT32_C(0x0013D254), UINT32_C(0x0020B631)}}, + {{UINT32_C(0x003E9997), UINT32_C(0x0050A360), UINT32_C(0x004BAD00), + UINT32_C(0x00AB737C), UINT32_C(0x007E4EE9), UINT32_C(0x0073ACDF), + UINT32_C(0x007C4D6E), UINT32_C(0x00A39D1C), UINT32_C(0x0042570D), + UINT32_C(0x0033830B), UINT32_C(0x0008E1D4)}, + {UINT32_C(0x00583D12), UINT32_C(0x005EA888), UINT32_C(0x0026BED7), + UINT32_C(0x00C1B988), UINT32_C(0x0039E362), UINT32_C(0x007B873E), + UINT32_C(0x005C3583), UINT32_C(0x00EB9BA2), UINT32_C(0x00638B35), + UINT32_C(0x00148D21), UINT32_C(0x001B932B)}}, + {{UINT32_C(0x002B37C3), UINT32_C(0x002F929B), UINT32_C(0x002CCC0B), + UINT32_C(0x0024809E), UINT32_C(0x004FF9D5), UINT32_C(0x00099837), + UINT32_C(0x0064A89F), UINT32_C(0x00C0C429), UINT32_C(0x007035B1), + UINT32_C(0x00261985), UINT32_C(0x00331EBF)}, + {UINT32_C(0x00132A81), UINT32_C(0x00604DFD), UINT32_C(0x0003EF4A), + UINT32_C(0x00FECB3D), UINT32_C(0x0008A863), UINT32_C(0x007FF6C4), + UINT32_C(0x001F6DF0), UINT32_C(0x00BD475A), UINT32_C(0x004FC4E2), + UINT32_C(0x0061E60C), UINT32_C(0x003C7003)}}, + {{UINT32_C(0x00D82392), UINT32_C(0x00774CFB), UINT32_C(0x0011493F), + UINT32_C(0x007D13D1), UINT32_C(0x0005A8E0), UINT32_C(0x0036AD5D), + UINT32_C(0x00231BED), UINT32_C(0x006C009E), UINT32_C(0x00599C2E), + UINT32_C(0x002294D8), UINT32_C(0x0077C42B)}, + {UINT32_C(0x0044379A), UINT32_C(0x00456F09), UINT32_C(0x00385653), + UINT32_C(0x00EFE8AC), UINT32_C(0x004C24E0), UINT32_C(0x0037DA15), + UINT32_C(0x002B9F25), UINT32_C(0x00E34D0C), UINT32_C(0x00566C76), + UINT32_C(0x0030810A), UINT32_C(0x00782A2F)}}, + {{UINT32_C(0x002AE6A8), UINT32_C(0x00049620), UINT32_C(0x00144B79), + UINT32_C(0x00EDD792), UINT32_C(0x007D310C), UINT32_C(0x00752D40), + UINT32_C(0x000CE8A0), UINT32_C(0x00440AAB), UINT32_C(0x007A9135), + UINT32_C(0x00324DA4), UINT32_C(0x00022CA7)}, + {UINT32_C(0x001E7545), UINT32_C(0x005E29F4), UINT32_C(0x0039D31B), + UINT32_C(0x0060119F), UINT32_C(0x00521746), UINT32_C(0x00334BCB), + UINT32_C(0x006F2A29), UINT32_C(0x00F2D35C), UINT32_C(0x00622340), + UINT32_C(0x004E3832), UINT32_C(0x000B1869)}}, + {{UINT32_C(0x0035F98E), UINT32_C(0x0054DCDC), UINT32_C(0x000537A8), + UINT32_C(0x00EA6A6E), UINT32_C(0x00247B34), UINT32_C(0x0029BD4F), + UINT32_C(0x0061AE41), UINT32_C(0x009B51AC), UINT32_C(0x0016A791), + UINT32_C(0x0055445E), UINT32_C(0x004F050E)}, + {UINT32_C(0x000DC4CB), UINT32_C(0x001AE73A), UINT32_C(0x004BD8B2), + UINT32_C(0x00E459A8), UINT32_C(0x0040AF9C), UINT32_C(0x0073F418), + UINT32_C(0x004B87C6), UINT32_C(0x0074AA9F), UINT32_C(0x002F4063), + UINT32_C(0x007AC805), UINT32_C(0x0016C70F)}}, + {{UINT32_C(0x0062EAB1), UINT32_C(0x0054EBAD), UINT32_C(0x001F2558), + UINT32_C(0x00F0079A), UINT32_C(0x007D23A9), UINT32_C(0x005BF1F5), + UINT32_C(0x004E2647), UINT32_C(0x00A0F501), UINT32_C(0x00278FBD), + UINT32_C(0x0025F639), UINT32_C(0x00441A71)}, + {UINT32_C(0x00F8A724), UINT32_C(0x0034DAD4), UINT32_C(0x004C22C9), + UINT32_C(0x00B48AB8), UINT32_C(0x000356CF), UINT32_C(0x00596FDE), + UINT32_C(0x00317CF9), UINT32_C(0x003F2657), UINT32_C(0x00381653), + UINT32_C(0x0050040E), UINT32_C(0x0055A4A1)}}, + {{UINT32_C(0x00EDE34B), UINT32_C(0x0056B7CD), UINT32_C(0x002EF4B0), + UINT32_C(0x00E81239), UINT32_C(0x00533D1B), UINT32_C(0x0062E46C), + UINT32_C(0x005A9C1B), UINT32_C(0x0056141C), UINT32_C(0x003E618F), + UINT32_C(0x0075FB2A), UINT32_C(0x001440CE)}, + {UINT32_C(0x00CED2B3), UINT32_C(0x0063FD4A), UINT32_C(0x00487E7B), + UINT32_C(0x008BFD17), UINT32_C(0x00612FE8), UINT32_C(0x0018078E), + UINT32_C(0x001A43E6), UINT32_C(0x00CA1FDE), UINT32_C(0x004D5027), + UINT32_C(0x00686BA9), UINT32_C(0x005C5F64)}}, + {{UINT32_C(0x006B794B), UINT32_C(0x003E8078), UINT32_C(0x00725DFB), + UINT32_C(0x0003E642), UINT32_C(0x003284D3), UINT32_C(0x006EEFC1), + UINT32_C(0x001A1987), UINT32_C(0x0016E28C), UINT32_C(0x00113F3C), + UINT32_C(0x003E8399), UINT32_C(0x00287A14)}, + {UINT32_C(0x00BDAF78), UINT32_C(0x0013F588), UINT32_C(0x003E90C4), + UINT32_C(0x00D74064), UINT32_C(0x0042B810), UINT32_C(0x005F4A46), + UINT32_C(0x00543784), UINT32_C(0x00DB74C5), UINT32_C(0x00459CD7), + UINT32_C(0x007531F3), UINT32_C(0x0055B5A4)}}, + {{UINT32_C(0x001A34E7), UINT32_C(0x002AEEC8), UINT32_C(0x00323D42), + UINT32_C(0x00EABD9E), UINT32_C(0x000718F6), UINT32_C(0x0001BD5B), + UINT32_C(0x000C39BC), UINT32_C(0x00B62821), UINT32_C(0x00561E9A), + UINT32_C(0x001FBABE), UINT32_C(0x00311DCD)}, + {UINT32_C(0x00BEEAE4), UINT32_C(0x003E6854), UINT32_C(0x002AE46E), + UINT32_C(0x00E57DCB), UINT32_C(0x004F1D7E), UINT32_C(0x0061FDF3), + UINT32_C(0x00262088), UINT32_C(0x006BA852), UINT32_C(0x004FBF3F), + UINT32_C(0x0019B907), UINT32_C(0x005993AA)}}, + {{UINT32_C(0x002F3F67), UINT32_C(0x000A5A43), UINT32_C(0x006CED05), + UINT32_C(0x0042972A), UINT32_C(0x0027B1D7), UINT32_C(0x002E72AE), + UINT32_C(0x0056B1CB), UINT32_C(0x00C6C042), UINT32_C(0x001AA312), + UINT32_C(0x0023387A), UINT32_C(0x003C0940)}, + {UINT32_C(0x00F0C8DC), UINT32_C(0x000D1A71), UINT32_C(0x00038280), + UINT32_C(0x0098AB5B), UINT32_C(0x000AA672), UINT32_C(0x0000542D), + UINT32_C(0x005924A7), UINT32_C(0x009C972A), UINT32_C(0x0018581C), + UINT32_C(0x00446E5A), UINT32_C(0x002EF656)}}, + {{UINT32_C(0x005F254D), UINT32_C(0x002CA014), UINT32_C(0x00274390), + UINT32_C(0x005F1C09), UINT32_C(0x002A9A4C), UINT32_C(0x007503A3), + UINT32_C(0x0071F4B9), UINT32_C(0x00667201), UINT32_C(0x0024873C), + UINT32_C(0x001FE8DB), UINT32_C(0x00265A01)}, + {UINT32_C(0x0080223D), UINT32_C(0x000339C4), UINT32_C(0x005B64C0), + UINT32_C(0x00A79EED), UINT32_C(0x0059C957), UINT32_C(0x005E2D2E), + UINT32_C(0x0034AC78), UINT32_C(0x002BAFEE), UINT32_C(0x00778F99), + UINT32_C(0x004D908C), UINT32_C(0x001C71C6)}}, + }, + { + {{UINT32_C(0x007525D6), UINT32_C(0x0078DFD0), UINT32_C(0x001AC075), + UINT32_C(0x00F76FA4), UINT32_C(0x00219F6A), UINT32_C(0x0023F7CB), + UINT32_C(0x00236512), UINT32_C(0x008E5237), UINT32_C(0x00768B95), + UINT32_C(0x001F359E), UINT32_C(0x007BC8CE)}, + {UINT32_C(0x002B44FC), UINT32_C(0x006A2BEB), UINT32_C(0x005919FE), + UINT32_C(0x004D26D0), UINT32_C(0x0012E603), UINT32_C(0x0035F223), + UINT32_C(0x0045E5BE), UINT32_C(0x007A242E), UINT32_C(0x0052F654), + UINT32_C(0x00463CC4), UINT32_C(0x007D62C2)}}, + {{UINT32_C(0x00725350), UINT32_C(0x0055207F), UINT32_C(0x0019B576), + UINT32_C(0x0077FB10), UINT32_C(0x003DB655), UINT32_C(0x0060FCDA), + UINT32_C(0x007593DB), UINT32_C(0x001E1420), UINT32_C(0x00148D4C), + UINT32_C(0x00257261), UINT32_C(0x0012B622)}, + {UINT32_C(0x0068CF96), UINT32_C(0x003F92AE), UINT32_C(0x00548833), + UINT32_C(0x001EFE5D), UINT32_C(0x005E4445), UINT32_C(0x004C80EA), + UINT32_C(0x0024D667), UINT32_C(0x009CEF0B), UINT32_C(0x007834DE), + UINT32_C(0x00246306), UINT32_C(0x0032BC94)}}, + {{UINT32_C(0x00D15DFB), UINT32_C(0x005373DE), UINT32_C(0x0023474D), + UINT32_C(0x00B4F94C), UINT32_C(0x006DE5AE), UINT32_C(0x002F13F2), + UINT32_C(0x0008C966), UINT32_C(0x00D9C843), UINT32_C(0x006152D1), + UINT32_C(0x003AB7F0), UINT32_C(0x00542CFC)}, + {UINT32_C(0x00ECDC3F), UINT32_C(0x0057D935), UINT32_C(0x003FD00C), + UINT32_C(0x0029A8C0), UINT32_C(0x0015C42A), UINT32_C(0x0024D14E), + UINT32_C(0x003C9CA5), UINT32_C(0x008E67D4), UINT32_C(0x0030ED8B), + UINT32_C(0x0077755C), UINT32_C(0x00490705)}}, + {{UINT32_C(0x00A0236C), UINT32_C(0x00239926), UINT32_C(0x000860D0), + UINT32_C(0x00C90CD5), UINT32_C(0x003F7701), UINT32_C(0x006A3B4E), + UINT32_C(0x0038FDDB), UINT32_C(0x0092E0E2), UINT32_C(0x0064FAA4), + UINT32_C(0x0054A42A), UINT32_C(0x00664E83)}, + {UINT32_C(0x00BAE781), UINT32_C(0x0011625D), UINT32_C(0x003FF2BE), + UINT32_C(0x00B48675), UINT32_C(0x0033D5A4), UINT32_C(0x0046E677), + UINT32_C(0x005C79EC), UINT32_C(0x003EFC01), UINT32_C(0x000687DF), + UINT32_C(0x003F98E6), UINT32_C(0x0057654A)}}, + {{UINT32_C(0x007C9D05), UINT32_C(0x006E343C), UINT32_C(0x006CA1D5), + UINT32_C(0x00045CD0), UINT32_C(0x00464424), UINT32_C(0x005D6BB6), + UINT32_C(0x005D7662), UINT32_C(0x00795A8B), UINT32_C(0x000678F1), + UINT32_C(0x0042EAF9), UINT32_C(0x0076F6DB)}, + {UINT32_C(0x00A709D2), UINT32_C(0x000CF913), UINT32_C(0x00392FD7), + UINT32_C(0x00C45B5F), UINT32_C(0x006D4BFE), UINT32_C(0x007F5BBB), + UINT32_C(0x007C0A94), UINT32_C(0x00C8F23E), UINT32_C(0x0022B535), + UINT32_C(0x002AB090), UINT32_C(0x002E9B77)}}, + {{UINT32_C(0x001791A0), UINT32_C(0x0075D057), UINT32_C(0x007D4EEA), + UINT32_C(0x003876FE), UINT32_C(0x0021CF5E), UINT32_C(0x000E949E), + UINT32_C(0x0054DD38), UINT32_C(0x00A4D9B8), UINT32_C(0x005C64BF), + UINT32_C(0x0012AA75), UINT32_C(0x00427813)}, + {UINT32_C(0x00A2F134), UINT32_C(0x0057EE9E), UINT32_C(0x006685A2), + UINT32_C(0x00C39E70), UINT32_C(0x005C02EE), UINT32_C(0x0028E089), + UINT32_C(0x0016D61B), UINT32_C(0x0091565C), UINT32_C(0x007FE441), + UINT32_C(0x00441BC2), UINT32_C(0x004FB186)}}, + {{UINT32_C(0x009F9253), UINT32_C(0x00044FEB), UINT32_C(0x006A66A4), + UINT32_C(0x00E8981D), UINT32_C(0x0051448B), UINT32_C(0x005BA13C), + UINT32_C(0x005581CF), UINT32_C(0x00E8DD5B), UINT32_C(0x0078C1B6), + UINT32_C(0x003CA471), UINT32_C(0x0008E7A6)}, + {UINT32_C(0x005393E2), UINT32_C(0x004204D4), UINT32_C(0x00211A2A), + UINT32_C(0x00B3D008), UINT32_C(0x001CFAF3), UINT32_C(0x00068C84), + UINT32_C(0x00504638), UINT32_C(0x00DC6FBE), UINT32_C(0x00605F56), + UINT32_C(0x007CE2A4), UINT32_C(0x0017AC9D)}}, + {{UINT32_C(0x00E75974), UINT32_C(0x0072E0A3), UINT32_C(0x006950E5), + UINT32_C(0x007C5A29), UINT32_C(0x000512AA), UINT32_C(0x002A144F), + UINT32_C(0x001214FA), UINT32_C(0x00B04BDE), UINT32_C(0x000CC72A), + UINT32_C(0x002DD6C9), UINT32_C(0x00200FEB)}, + {UINT32_C(0x007358CA), UINT32_C(0x0039CE66), UINT32_C(0x00003E83), + UINT32_C(0x00B9546A), UINT32_C(0x00460D56), UINT32_C(0x001A5A98), + UINT32_C(0x0012E16F), UINT32_C(0x00CE362B), UINT32_C(0x006563AD), + UINT32_C(0x000C7CFB), UINT32_C(0x000164A2)}}, + {{UINT32_C(0x00A74C0C), UINT32_C(0x0029F428), UINT32_C(0x0037267E), + UINT32_C(0x00C65194), UINT32_C(0x0043C78F), UINT32_C(0x0069B993), + UINT32_C(0x003AA947), UINT32_C(0x0088BC88), UINT32_C(0x000B40A1), + UINT32_C(0x003E35D0), UINT32_C(0x001B4097)}, + {UINT32_C(0x00286354), UINT32_C(0x0075D2BC), UINT32_C(0x005D7F2F), + UINT32_C(0x00BD4F51), UINT32_C(0x006A5900), UINT32_C(0x00308202), + UINT32_C(0x000E81D9), UINT32_C(0x00453B04), UINT32_C(0x006B1E9A), + UINT32_C(0x0063911F), UINT32_C(0x000FD0D6)}}, + {{UINT32_C(0x006EFE04), UINT32_C(0x0047D6E6), UINT32_C(0x00020EA2), + UINT32_C(0x0043B88F), UINT32_C(0x006A837A), UINT32_C(0x0011DB56), + UINT32_C(0x004C3742), UINT32_C(0x00803C38), UINT32_C(0x001A9540), + UINT32_C(0x001A1F6E), UINT32_C(0x002D2188)}, + {UINT32_C(0x009722F0), UINT32_C(0x0079FAD8), UINT32_C(0x006D15C3), + UINT32_C(0x007C9007), UINT32_C(0x0023E12A), UINT32_C(0x0009E88F), + UINT32_C(0x0038D49A), UINT32_C(0x00B87971), UINT32_C(0x0054EA95), + UINT32_C(0x003BED25), UINT32_C(0x003C9370)}}, + {{UINT32_C(0x00730AAD), UINT32_C(0x0074B69E), UINT32_C(0x0018A010), + UINT32_C(0x00ACF869), UINT32_C(0x00202D91), UINT32_C(0x00618FE7), + UINT32_C(0x0003783B), UINT32_C(0x00322502), UINT32_C(0x004702AC), + UINT32_C(0x0075B517), UINT32_C(0x0036900B)}, + {UINT32_C(0x003FB20A), UINT32_C(0x00437022), UINT32_C(0x003D242B), + UINT32_C(0x00FEE4F4), UINT32_C(0x00276D11), UINT32_C(0x0040A87C), + UINT32_C(0x0061F26A), UINT32_C(0x00F66A5B), UINT32_C(0x0076128D), + UINT32_C(0x002AD91A), UINT32_C(0x007D1259)}}, + {{UINT32_C(0x007628C3), UINT32_C(0x0073E024), UINT32_C(0x0023855F), + UINT32_C(0x004B1FBD), UINT32_C(0x00684558), UINT32_C(0x005CB959), + UINT32_C(0x005ED77A), UINT32_C(0x008234D5), UINT32_C(0x001DF835), + UINT32_C(0x00194398), UINT32_C(0x00209BA1)}, + {UINT32_C(0x00632779), UINT32_C(0x00194050), UINT32_C(0x006E13F1), + UINT32_C(0x008FA4BC), UINT32_C(0x00464026), UINT32_C(0x0013B9ED), + UINT32_C(0x003DCB10), UINT32_C(0x00BD9EE5), UINT32_C(0x00757CA6), + UINT32_C(0x007A0F71), UINT32_C(0x000B4460)}}, + {{UINT32_C(0x0012D2C5), UINT32_C(0x005F26F3), UINT32_C(0x003FDA58), + UINT32_C(0x009F0D33), UINT32_C(0x001A9FC7), UINT32_C(0x00412B7C), + UINT32_C(0x005BD541), UINT32_C(0x00275539), UINT32_C(0x0026899F), + UINT32_C(0x0062067D), UINT32_C(0x004ABE07)}, + {UINT32_C(0x009290FF), UINT32_C(0x0008F902), UINT32_C(0x005B3174), + UINT32_C(0x00BD00F1), UINT32_C(0x006F6CFA), UINT32_C(0x00703B6C), + UINT32_C(0x004B306D), UINT32_C(0x00331AC1), UINT32_C(0x00703E76), + UINT32_C(0x004712AD), UINT32_C(0x000C81F8)}}, + {{UINT32_C(0x00FE693D), UINT32_C(0x000F4508), UINT32_C(0x0002FCF8), + UINT32_C(0x00E0954B), UINT32_C(0x00040F5D), UINT32_C(0x005C00E7), + UINT32_C(0x00700B3A), UINT32_C(0x00420CF9), UINT32_C(0x002B08A6), + UINT32_C(0x00160E5F), UINT32_C(0x001712CE)}, + {UINT32_C(0x00A1DBED), UINT32_C(0x00787A0A), UINT32_C(0x000BCD4C), + UINT32_C(0x0062D939), UINT32_C(0x006B28AC), UINT32_C(0x00164809), + UINT32_C(0x007F6FE7), UINT32_C(0x005D1F67), UINT32_C(0x00557447), + UINT32_C(0x0062C3E0), UINT32_C(0x00476FD0)}}, + {{UINT32_C(0x00B36FBF), UINT32_C(0x003D80AA), UINT32_C(0x00214159), + UINT32_C(0x00E99663), UINT32_C(0x0058CDAA), UINT32_C(0x0014C3F2), + UINT32_C(0x003D868E), UINT32_C(0x0035B474), UINT32_C(0x001D1436), + UINT32_C(0x00048E40), UINT32_C(0x006AAF0D)}, + {UINT32_C(0x00D0E8D0), UINT32_C(0x005BDF3C), UINT32_C(0x00258CC0), + UINT32_C(0x00828F97), UINT32_C(0x0012E7A5), UINT32_C(0x004BAF68), + UINT32_C(0x004E71C5), UINT32_C(0x002A2699), UINT32_C(0x006A772A), + UINT32_C(0x0017160A), UINT32_C(0x0040BDB6)}}, + {{UINT32_C(0x002BCD28), UINT32_C(0x006CCC00), UINT32_C(0x004C1CF7), + UINT32_C(0x001BA30A), UINT32_C(0x006097CD), UINT32_C(0x005D0B45), + UINT32_C(0x002C9DCF), UINT32_C(0x00C3CD03), UINT32_C(0x00489B87), + UINT32_C(0x007C9642), UINT32_C(0x005A0A68)}, + {UINT32_C(0x00D7C516), UINT32_C(0x0054FD9C), UINT32_C(0x001F2677), + UINT32_C(0x004F48D5), UINT32_C(0x000B6C13), UINT32_C(0x0078D063), + UINT32_C(0x005298BA), UINT32_C(0x00B8780E), UINT32_C(0x00220AF4), + UINT32_C(0x00076896), UINT32_C(0x00027744)}}, + }, + { + {{UINT32_C(0x00259121), UINT32_C(0x00780B29), UINT32_C(0x00039769), + UINT32_C(0x00EB5E49), UINT32_C(0x00050B31), UINT32_C(0x000092C3), + UINT32_C(0x004A18D1), UINT32_C(0x00BEE193), UINT32_C(0x0021482F), + UINT32_C(0x0018C2E7), UINT32_C(0x0018F417)}, + {UINT32_C(0x003B3193), UINT32_C(0x00535E04), UINT32_C(0x00500D71), + UINT32_C(0x0036E3E0), UINT32_C(0x006FF0A5), UINT32_C(0x007EA7BE), + UINT32_C(0x00407708), UINT32_C(0x00630180), UINT32_C(0x007BF646), + UINT32_C(0x00576B67), UINT32_C(0x007CE956)}}, + {{UINT32_C(0x00171587), UINT32_C(0x00655CC1), UINT32_C(0x00488679), + UINT32_C(0x00CE4CA9), UINT32_C(0x00041352), UINT32_C(0x007263F6), + UINT32_C(0x0010ADD3), UINT32_C(0x00076CB5), UINT32_C(0x003EB667), + UINT32_C(0x006C507D), UINT32_C(0x0079534E)}, + {UINT32_C(0x001F5C5D), UINT32_C(0x00303618), UINT32_C(0x0007DBD5), + UINT32_C(0x000DB229), UINT32_C(0x007DA0B0), UINT32_C(0x00423931), + UINT32_C(0x0047CEA2), UINT32_C(0x0078D1CB), UINT32_C(0x00147094), + UINT32_C(0x007B2327), UINT32_C(0x00417208)}}, + {{UINT32_C(0x009DFEFF), UINT32_C(0x0033C1FF), UINT32_C(0x003D13CC), + UINT32_C(0x0022EFEF), UINT32_C(0x007FE948), UINT32_C(0x005EEFB8), + UINT32_C(0x001AD2B7), UINT32_C(0x00E96C81), UINT32_C(0x0026BBFC), + UINT32_C(0x002585EE), UINT32_C(0x00745C59)}, + {UINT32_C(0x009DCD65), UINT32_C(0x0021489A), UINT32_C(0x00004480), + UINT32_C(0x00060657), UINT32_C(0x003701DD), UINT32_C(0x005D19B3), + UINT32_C(0x0075E1C0), UINT32_C(0x003892E0), UINT32_C(0x0064F9DE), + UINT32_C(0x0035DC27), UINT32_C(0x0022C79F)}}, + {{UINT32_C(0x0058C6F2), UINT32_C(0x00752404), UINT32_C(0x006C8922), + UINT32_C(0x00E6C036), UINT32_C(0x004204FF), UINT32_C(0x002ED321), + UINT32_C(0x003D0BB2), UINT32_C(0x006D9D7A), UINT32_C(0x006E5E62), + UINT32_C(0x004F1C35), UINT32_C(0x007EF78D)}, + {UINT32_C(0x009190F7), UINT32_C(0x005FBA14), UINT32_C(0x004879E5), + UINT32_C(0x00A6E235), UINT32_C(0x005DD8F6), UINT32_C(0x00554643), + UINT32_C(0x00090E18), UINT32_C(0x00611285), UINT32_C(0x001AEA18), + UINT32_C(0x0072B543), UINT32_C(0x002593AC)}}, + {{UINT32_C(0x0059C268), UINT32_C(0x0012165B), UINT32_C(0x00159FF5), + UINT32_C(0x003F5872), UINT32_C(0x004905ED), UINT32_C(0x001BF4B6), + UINT32_C(0x00355284), UINT32_C(0x00D00A03), UINT32_C(0x001B4A76), + UINT32_C(0x0031B3A5), UINT32_C(0x005DDE8F)}, + {UINT32_C(0x0061678D), UINT32_C(0x000F2A71), UINT32_C(0x001FDD6E), + UINT32_C(0x0076A915), UINT32_C(0x00582B74), UINT32_C(0x000DA16F), + UINT32_C(0x00345F20), UINT32_C(0x00634760), UINT32_C(0x0051ED40), + UINT32_C(0x006A3D97), UINT32_C(0x00190B8F)}}, + {{UINT32_C(0x00EECAB3), UINT32_C(0x002F2403), UINT32_C(0x00636CBA), + UINT32_C(0x00A54BAF), UINT32_C(0x007D99BA), UINT32_C(0x0007FB3D), + UINT32_C(0x003C3EAC), UINT32_C(0x000EF42B), UINT32_C(0x00198349), + UINT32_C(0x002E9959), UINT32_C(0x000F2F86)}, + {UINT32_C(0x00B9D5F6), UINT32_C(0x00463217), UINT32_C(0x00074FAC), + UINT32_C(0x001183B8), UINT32_C(0x002C896F), UINT32_C(0x0055F891), + UINT32_C(0x00105639), UINT32_C(0x0072DF59), UINT32_C(0x000D9B72), + UINT32_C(0x007D9093), UINT32_C(0x004EAA60)}}, + {{UINT32_C(0x009F9703), UINT32_C(0x001B0826), UINT32_C(0x0076FA46), + UINT32_C(0x00826948), UINT32_C(0x004D4814), UINT32_C(0x0050B57C), + UINT32_C(0x005C41CC), UINT32_C(0x00A88628), UINT32_C(0x005D3BCD), + UINT32_C(0x001C7176), UINT32_C(0x00554D0A)}, + {UINT32_C(0x00B63C62), UINT32_C(0x00561A3E), UINT32_C(0x0057E7D3), + UINT32_C(0x00F1D376), UINT32_C(0x002E45AC), UINT32_C(0x005D7F33), + UINT32_C(0x00698C00), UINT32_C(0x00F7C938), UINT32_C(0x0036EEFA), + UINT32_C(0x005C1FAC), UINT32_C(0x005D1B2E)}}, + {{UINT32_C(0x00F53650), UINT32_C(0x0069380C), UINT32_C(0x0012C364), + UINT32_C(0x0032E8A7), UINT32_C(0x00515F1E), UINT32_C(0x001F9182), + UINT32_C(0x0068DEE7), UINT32_C(0x00CCF589), UINT32_C(0x0076EE01), + UINT32_C(0x0029DF93), UINT32_C(0x00787773)}, + {UINT32_C(0x00B3DDF7), UINT32_C(0x0053B71C), UINT32_C(0x0006F8FD), + UINT32_C(0x00DFF4AB), UINT32_C(0x0006B924), UINT32_C(0x007E2A66), + UINT32_C(0x004A7D4B), UINT32_C(0x00AF1A4A), UINT32_C(0x0057F48B), + UINT32_C(0x0044541B), UINT32_C(0x0049AD77)}}, + {{UINT32_C(0x005F6754), UINT32_C(0x007B1268), UINT32_C(0x000CA1F5), + UINT32_C(0x0004DE64), UINT32_C(0x004FD873), UINT32_C(0x003036C4), + UINT32_C(0x0041B763), UINT32_C(0x00FCE495), UINT32_C(0x00200179), + UINT32_C(0x005F6BDA), UINT32_C(0x0068ED61)}, + {UINT32_C(0x00C95FCE), UINT32_C(0x000477FE), UINT32_C(0x00580F29), + UINT32_C(0x00BB42ED), UINT32_C(0x00750145), UINT32_C(0x000DC207), + UINT32_C(0x002BEC56), UINT32_C(0x00EB7195), UINT32_C(0x001693A1), + UINT32_C(0x003EB07D), UINT32_C(0x00135B86)}}, + {{UINT32_C(0x0066889B), UINT32_C(0x0017A14A), UINT32_C(0x002DF300), + UINT32_C(0x002BBAB9), UINT32_C(0x0015E56C), UINT32_C(0x002EB2BA), + UINT32_C(0x001D111B), UINT32_C(0x00BA9054), UINT32_C(0x0069E112), + UINT32_C(0x007A15D8), UINT32_C(0x00436DD2)}, + {UINT32_C(0x00E27B51), UINT32_C(0x0073DEE8), UINT32_C(0x007A67DC), + UINT32_C(0x0055BEAF), UINT32_C(0x004FDE98), UINT32_C(0x001CCAC5), + UINT32_C(0x0057571D), UINT32_C(0x00B71DD1), UINT32_C(0x005EC9C2), + UINT32_C(0x00698B19), UINT32_C(0x00572BAF)}}, + {{UINT32_C(0x00FE2F09), UINT32_C(0x004CCD1B), UINT32_C(0x005B6C69), + UINT32_C(0x00CE2291), UINT32_C(0x0036C67A), UINT32_C(0x001AA26F), + UINT32_C(0x00482976), UINT32_C(0x000346C9), UINT32_C(0x0071FA32), + UINT32_C(0x006AAA17), UINT32_C(0x0066681D)}, + {UINT32_C(0x006DEDEE), UINT32_C(0x005A67B7), UINT32_C(0x0066E9D5), + UINT32_C(0x00F07923), UINT32_C(0x00767A82), UINT32_C(0x0060641F), + UINT32_C(0x005C4851), UINT32_C(0x0077DBEB), UINT32_C(0x006550C4), + UINT32_C(0x005C811B), UINT32_C(0x00204A6C)}}, + {{UINT32_C(0x00F41270), UINT32_C(0x007228A8), UINT32_C(0x0023FE22), + UINT32_C(0x0087E9E0), UINT32_C(0x001016E1), UINT32_C(0x002EA90D), + UINT32_C(0x003BEE12), UINT32_C(0x0002DA75), UINT32_C(0x00486C8C), + UINT32_C(0x000FFBE4), UINT32_C(0x00161DF5)}, + {UINT32_C(0x0073031B), UINT32_C(0x0068C340), UINT32_C(0x005C0685), + UINT32_C(0x0027F000), UINT32_C(0x0028653F), UINT32_C(0x005D1D2F), + UINT32_C(0x003F0628), UINT32_C(0x0066005A), UINT32_C(0x005AD814), + UINT32_C(0x0001BCF2), UINT32_C(0x0032CEE0)}}, + {{UINT32_C(0x00ADB2E0), UINT32_C(0x00483DBE), UINT32_C(0x00626B68), + UINT32_C(0x004FB784), UINT32_C(0x00350F94), UINT32_C(0x00357148), + UINT32_C(0x007F0B6D), UINT32_C(0x0029332B), UINT32_C(0x003AD1F4), + UINT32_C(0x001F3681), UINT32_C(0x0071D76B)}, + {UINT32_C(0x0026BAF9), UINT32_C(0x00473D14), UINT32_C(0x00021B2C), + UINT32_C(0x00941016), UINT32_C(0x004F652A), UINT32_C(0x007D3A99), + UINT32_C(0x004ABBAD), UINT32_C(0x0087A405), UINT32_C(0x000547B1), + UINT32_C(0x0059E149), UINT32_C(0x00541E49)}}, + {{UINT32_C(0x00694346), UINT32_C(0x0042316D), UINT32_C(0x00758401), + UINT32_C(0x00D76375), UINT32_C(0x005ECFAE), UINT32_C(0x00680B14), + UINT32_C(0x0026EA25), UINT32_C(0x00070619), UINT32_C(0x0058D41C), + UINT32_C(0x0048DB6A), UINT32_C(0x00062542)}, + {UINT32_C(0x003DE6A0), UINT32_C(0x003469E5), UINT32_C(0x00302B64), + UINT32_C(0x00CD8BF2), UINT32_C(0x0045419E), UINT32_C(0x001E9AAF), + UINT32_C(0x003EFC2C), UINT32_C(0x00E12629), UINT32_C(0x0060F16E), + UINT32_C(0x0048A125), UINT32_C(0x002969D8)}}, + {{UINT32_C(0x00C271BD), UINT32_C(0x0053BE38), UINT32_C(0x00373A9B), + UINT32_C(0x00AB74E5), UINT32_C(0x00676622), UINT32_C(0x005F7345), + UINT32_C(0x007A6084), UINT32_C(0x0095988C), UINT32_C(0x0055BB90), + UINT32_C(0x00411396), UINT32_C(0x000E67BF)}, + {UINT32_C(0x00CF58AC), UINT32_C(0x0060BB94), UINT32_C(0x0046BFAD), + UINT32_C(0x003C68E3), UINT32_C(0x00748102), UINT32_C(0x00647558), + UINT32_C(0x005B14F7), UINT32_C(0x00494DA5), UINT32_C(0x002AB3B3), + UINT32_C(0x0065BA0F), UINT32_C(0x005C011D)}}, + {{UINT32_C(0x00D13FD0), UINT32_C(0x0051781B), UINT32_C(0x0028EAA9), + UINT32_C(0x0038E655), UINT32_C(0x00624813), UINT32_C(0x00476802), + UINT32_C(0x0073DD34), UINT32_C(0x0019666A), UINT32_C(0x00479419), + UINT32_C(0x002D06C2), UINT32_C(0x0052A1AF)}, + {UINT32_C(0x003684D7), UINT32_C(0x003EE24A), UINT32_C(0x005496AF), + UINT32_C(0x004899AC), UINT32_C(0x005FC959), UINT32_C(0x007950D6), + UINT32_C(0x00180144), UINT32_C(0x00DF7129), UINT32_C(0x0014AFF7), + UINT32_C(0x007D7BA5), UINT32_C(0x007347EA)}}, + }, + { + {{UINT32_C(0x00978880), UINT32_C(0x0005E66D), UINT32_C(0x003D5998), + UINT32_C(0x008F2D63), UINT32_C(0x003E9896), UINT32_C(0x002DCC8D), + UINT32_C(0x00789105), UINT32_C(0x00786FAC), UINT32_C(0x0006486C), + UINT32_C(0x004DEBB7), UINT32_C(0x007C6948)}, + {UINT32_C(0x001922F1), UINT32_C(0x003D924D), UINT32_C(0x0005E5FB), + UINT32_C(0x00CEF8A3), UINT32_C(0x004EBF60), UINT32_C(0x00039779), + UINT32_C(0x001D5AD8), UINT32_C(0x00AEAD3B), UINT32_C(0x003178D9), + UINT32_C(0x0011AF88), UINT32_C(0x004858F6)}}, + {{UINT32_C(0x0017EA11), UINT32_C(0x002925A4), UINT32_C(0x0022EBC5), + UINT32_C(0x008C6F13), UINT32_C(0x0068235B), UINT32_C(0x0007668E), + UINT32_C(0x00789C73), UINT32_C(0x0063577F), UINT32_C(0x0019C095), + UINT32_C(0x0054C609), UINT32_C(0x00228B12)}, + {UINT32_C(0x00B423B7), UINT32_C(0x007B3E73), UINT32_C(0x0006F374), + UINT32_C(0x0032C99A), UINT32_C(0x0033919B), UINT32_C(0x004480AF), + UINT32_C(0x007CF2DC), UINT32_C(0x00DF4C55), UINT32_C(0x00194F69), + UINT32_C(0x0002FA8A), UINT32_C(0x00273C64)}}, + {{UINT32_C(0x00B22D03), UINT32_C(0x004609D0), UINT32_C(0x000E534B), + UINT32_C(0x00B53A66), UINT32_C(0x0013A238), UINT32_C(0x0035DF0D), + UINT32_C(0x002227E6), UINT32_C(0x00925830), UINT32_C(0x004B0D8E), + UINT32_C(0x0045DD96), UINT32_C(0x00489148)}, + {UINT32_C(0x00A0967E), UINT32_C(0x002AE5BC), UINT32_C(0x00796CFA), + UINT32_C(0x00CD72AF), UINT32_C(0x005B6940), UINT32_C(0x00012BBA), + UINT32_C(0x005FC6EF), UINT32_C(0x00DCD6CA), UINT32_C(0x000D4575), + UINT32_C(0x003A665E), UINT32_C(0x004D067C)}}, + {{UINT32_C(0x001AECD9), UINT32_C(0x00273F6F), UINT32_C(0x0025F83B), + UINT32_C(0x00FFD158), UINT32_C(0x00133FE6), UINT32_C(0x001F91CB), + UINT32_C(0x007C28C3), UINT32_C(0x002B2923), UINT32_C(0x0028D2B0), + UINT32_C(0x00267588), UINT32_C(0x005BED5F)}, + {UINT32_C(0x00EE613B), UINT32_C(0x002D41FF), UINT32_C(0x00611238), + UINT32_C(0x0037C033), UINT32_C(0x000A5923), UINT32_C(0x0040AA8E), + UINT32_C(0x00226F22), UINT32_C(0x00ACB580), UINT32_C(0x00332B6F), + UINT32_C(0x00573DBD), UINT32_C(0x00058D53)}}, + {{UINT32_C(0x000B6527), UINT32_C(0x00633B9B), UINT32_C(0x0015CA8A), + UINT32_C(0x00CAF1F7), UINT32_C(0x0014FEBC), UINT32_C(0x00404B31), + UINT32_C(0x005DE86F), UINT32_C(0x00E40657), UINT32_C(0x0040EE16), + UINT32_C(0x006745A5), UINT32_C(0x001CC28B)}, + {UINT32_C(0x00D0A46D), UINT32_C(0x0052FCCC), UINT32_C(0x005B6FE6), + UINT32_C(0x009F4694), UINT32_C(0x003EE682), UINT32_C(0x00135F2D), + UINT32_C(0x006B1F49), UINT32_C(0x00903C8F), UINT32_C(0x0066F07A), + UINT32_C(0x0067D510), UINT32_C(0x006FBACA)}}, + {{UINT32_C(0x00996ED6), UINT32_C(0x005D39E4), UINT32_C(0x001A204F), + UINT32_C(0x0048C691), UINT32_C(0x004EDCA1), UINT32_C(0x000326EA), + UINT32_C(0x005897F6), UINT32_C(0x005DAFAA), UINT32_C(0x007CE893), + UINT32_C(0x001521A8), UINT32_C(0x00720EC4)}, + {UINT32_C(0x00B2D745), UINT32_C(0x0044D634), UINT32_C(0x00645385), + UINT32_C(0x00FCF90E), UINT32_C(0x005705FF), UINT32_C(0x00194811), + UINT32_C(0x00465D27), UINT32_C(0x00DA9D7A), UINT32_C(0x00183FEE), + UINT32_C(0x0033D943), UINT32_C(0x003FD6A9)}}, + {{UINT32_C(0x00667E0F), UINT32_C(0x00755AD8), UINT32_C(0x00555F7B), + UINT32_C(0x00C2071C), UINT32_C(0x003AA31C), UINT32_C(0x0027748C), + UINT32_C(0x0065D71F), UINT32_C(0x00B8551F), UINT32_C(0x005831C5), + UINT32_C(0x00007409), UINT32_C(0x0019AE44)}, + {UINT32_C(0x00C46447), UINT32_C(0x0028055B), UINT32_C(0x000AAEBC), + UINT32_C(0x00811E2C), UINT32_C(0x000A161D), UINT32_C(0x005417D2), + UINT32_C(0x00532D53), UINT32_C(0x00195F30), UINT32_C(0x007ADD3B), + UINT32_C(0x0079DFD4), UINT32_C(0x004C7DEA)}}, + {{UINT32_C(0x00AA87C8), UINT32_C(0x000AA2A3), UINT32_C(0x0021BFFE), + UINT32_C(0x007EEC07), UINT32_C(0x00165806), UINT32_C(0x001D2B43), + UINT32_C(0x007D76F2), UINT32_C(0x00D7F740), UINT32_C(0x003CD969), + UINT32_C(0x004EFCFC), UINT32_C(0x004B057E)}, + {UINT32_C(0x00812859), UINT32_C(0x00262F51), UINT32_C(0x005521D1), + UINT32_C(0x00A51059), UINT32_C(0x00374C25), UINT32_C(0x006ADA14), + UINT32_C(0x0076B74A), UINT32_C(0x006F1B1A), UINT32_C(0x005EAF40), + UINT32_C(0x0024DA86), UINT32_C(0x007F9103)}}, + {{UINT32_C(0x009A47A8), UINT32_C(0x0024BD4E), UINT32_C(0x00047520), + UINT32_C(0x0094EB12), UINT32_C(0x0009C313), UINT32_C(0x002CA8A1), + UINT32_C(0x002E7050), UINT32_C(0x00D0760D), UINT32_C(0x007B653F), + UINT32_C(0x00135449), UINT32_C(0x0079DBC7)}, + {UINT32_C(0x007D4BFD), UINT32_C(0x006CBD61), UINT32_C(0x001AF365), + UINT32_C(0x0041A9E7), UINT32_C(0x000EA23B), UINT32_C(0x000496E3), + UINT32_C(0x007D8894), UINT32_C(0x00D7926C), UINT32_C(0x0048D1E6), + UINT32_C(0x0021BA7D), UINT32_C(0x0076D264)}}, + {{UINT32_C(0x004D6735), UINT32_C(0x00349533), UINT32_C(0x0026B4B7), + UINT32_C(0x00938C63), UINT32_C(0x00259D23), UINT32_C(0x00327F58), + UINT32_C(0x000972E6), UINT32_C(0x00DFCD69), UINT32_C(0x004A4323), + UINT32_C(0x007FE26C), UINT32_C(0x001F308C)}, + {UINT32_C(0x00B5CA15), UINT32_C(0x0013066F), UINT32_C(0x00554ED3), + UINT32_C(0x0092A76E), UINT32_C(0x00767C40), UINT32_C(0x0001BD5A), + UINT32_C(0x007F0EC1), UINT32_C(0x004E5BCB), UINT32_C(0x0033C8BC), + UINT32_C(0x00384042), UINT32_C(0x0028DAF3)}}, + {{UINT32_C(0x00BB2865), UINT32_C(0x0074D6A2), UINT32_C(0x007D552B), + UINT32_C(0x005E0EAF), UINT32_C(0x007BD504), UINT32_C(0x0079341F), + UINT32_C(0x0064542F), UINT32_C(0x00445DD5), UINT32_C(0x00289614), + UINT32_C(0x0009E5FF), UINT32_C(0x002F0D16)}, + {UINT32_C(0x00118DE4), UINT32_C(0x0061DD1F), UINT32_C(0x004282EE), + UINT32_C(0x005DF2AC), UINT32_C(0x004951DF), UINT32_C(0x007C84E0), + UINT32_C(0x006F8826), UINT32_C(0x00545F9D), UINT32_C(0x0050CDEE), + UINT32_C(0x003414C7), UINT32_C(0x00228E14)}}, + {{UINT32_C(0x0021FB0D), UINT32_C(0x0054D257), UINT32_C(0x0071F975), + UINT32_C(0x00FB2766), UINT32_C(0x0049536E), UINT32_C(0x006245E8), + UINT32_C(0x00090378), UINT32_C(0x00A7124C), UINT32_C(0x007CD78C), + UINT32_C(0x00163C62), UINT32_C(0x001C1D00)}, + {UINT32_C(0x0041A6D3), UINT32_C(0x007CEA65), UINT32_C(0x00384B4B), + UINT32_C(0x00C28E24), UINT32_C(0x0073484A), UINT32_C(0x00457BD5), + UINT32_C(0x00258E54), UINT32_C(0x00868651), UINT32_C(0x000B50A9), + UINT32_C(0x0071A4E3), UINT32_C(0x00405353)}}, + {{UINT32_C(0x007327CF), UINT32_C(0x005D8779), UINT32_C(0x003387AF), + UINT32_C(0x00892854), UINT32_C(0x006E7126), UINT32_C(0x004C6531), + UINT32_C(0x002D3F16), UINT32_C(0x0000D279), UINT32_C(0x005A56F1), + UINT32_C(0x000126BC), UINT32_C(0x005F03F2)}, + {UINT32_C(0x0024065F), UINT32_C(0x0028A2BF), UINT32_C(0x00690907), + UINT32_C(0x00E63938), UINT32_C(0x006A92A2), UINT32_C(0x0012FA15), + UINT32_C(0x002E3667), UINT32_C(0x00301625), UINT32_C(0x0068DFF5), + UINT32_C(0x007C18F7), UINT32_C(0x0057C821)}}, + {{UINT32_C(0x00F6FB17), UINT32_C(0x00117A2C), UINT32_C(0x00702920), + UINT32_C(0x00D8E8DC), UINT32_C(0x00583CF5), UINT32_C(0x00581272), + UINT32_C(0x0014FA49), UINT32_C(0x000BB02A), UINT32_C(0x000BFAD2), + UINT32_C(0x000D7AF5), UINT32_C(0x003C597E)}, + {UINT32_C(0x00DC1695), UINT32_C(0x007BDD76), UINT32_C(0x006DF467), + UINT32_C(0x007F6B18), UINT32_C(0x0014F2F0), UINT32_C(0x007C500F), + UINT32_C(0x0008D022), UINT32_C(0x0001FBD4), UINT32_C(0x004DA576), + UINT32_C(0x00414183), UINT32_C(0x00086206)}}, + {{UINT32_C(0x0071E1BB), UINT32_C(0x000F9619), UINT32_C(0x0026D84F), + UINT32_C(0x009F1C46), UINT32_C(0x005B79C0), UINT32_C(0x007AEEC3), + UINT32_C(0x001874EB), UINT32_C(0x0081978E), UINT32_C(0x00293406), + UINT32_C(0x0001D4FC), UINT32_C(0x00615B35)}, + {UINT32_C(0x00182D40), UINT32_C(0x0042A332), UINT32_C(0x0017C797), + UINT32_C(0x00B3E39F), UINT32_C(0x00429FC1), UINT32_C(0x0075CDCC), + UINT32_C(0x0017A29B), UINT32_C(0x00B485C4), UINT32_C(0x000578E3), + UINT32_C(0x00267997), UINT32_C(0x0022B736)}}, + {{UINT32_C(0x005B3F31), UINT32_C(0x00208743), UINT32_C(0x005CE60C), + UINT32_C(0x00A70DDC), UINT32_C(0x000739FA), UINT32_C(0x005A8096), + UINT32_C(0x0004765E), UINT32_C(0x00060FD2), UINT32_C(0x00317203), + UINT32_C(0x0078A3F6), UINT32_C(0x0013A216)}, + {UINT32_C(0x00F7310F), UINT32_C(0x006787A8), UINT32_C(0x004CA7F1), + UINT32_C(0x0058A285), UINT32_C(0x0063A5F2), UINT32_C(0x002D9D33), + UINT32_C(0x000AE58C), UINT32_C(0x0021A049), UINT32_C(0x005E164E), + UINT32_C(0x0053ABF4), UINT32_C(0x0012DD24)}}, + }, + { + {{UINT32_C(0x00BAC990), UINT32_C(0x000DAB38), UINT32_C(0x00717BBA), + UINT32_C(0x00AC779D), UINT32_C(0x001DCA52), UINT32_C(0x00300C2E), + UINT32_C(0x002A2255), UINT32_C(0x005A0E8E), UINT32_C(0x0015AB31), + UINT32_C(0x00313D50), UINT32_C(0x003E1B41)}, + {UINT32_C(0x00528772), UINT32_C(0x003D56AB), UINT32_C(0x00717BB2), + UINT32_C(0x0087E006), UINT32_C(0x0042AF5A), UINT32_C(0x0057EE11), + UINT32_C(0x002AC11C), UINT32_C(0x00B30A1D), UINT32_C(0x0062AF80), + UINT32_C(0x00024671), UINT32_C(0x00138392)}}, + {{UINT32_C(0x0055EF18), UINT32_C(0x00290769), UINT32_C(0x000C06CC), + UINT32_C(0x00640FB7), UINT32_C(0x0032AA7D), UINT32_C(0x0037CE38), + UINT32_C(0x00559DB0), UINT32_C(0x009E8D04), UINT32_C(0x001BE9A9), + UINT32_C(0x0043CD9A), UINT32_C(0x00616E9E)}, + {UINT32_C(0x00A62590), UINT32_C(0x0044D2E5), UINT32_C(0x00438F19), + UINT32_C(0x007C024D), UINT32_C(0x00387E23), UINT32_C(0x0012F97D), + UINT32_C(0x00593049), UINT32_C(0x00BBE9F5), UINT32_C(0x002EB4C3), + UINT32_C(0x00492C4B), UINT32_C(0x000BD31C)}}, + {{UINT32_C(0x004436A6), UINT32_C(0x002F9836), UINT32_C(0x003A1719), + UINT32_C(0x0013E3D0), UINT32_C(0x0001CE66), UINT32_C(0x0075D201), + UINT32_C(0x0070741C), UINT32_C(0x003D4468), UINT32_C(0x006001B2), + UINT32_C(0x00621CB4), UINT32_C(0x004C9A82)}, + {UINT32_C(0x0035D65D), UINT32_C(0x0071BB2D), UINT32_C(0x0027A173), + UINT32_C(0x00B478E4), UINT32_C(0x003F0595), UINT32_C(0x002A36C0), + UINT32_C(0x003F12EC), UINT32_C(0x00B45D13), UINT32_C(0x007F8B60), + UINT32_C(0x0036D006), UINT32_C(0x005F7EAE)}}, + {{UINT32_C(0x0057123B), UINT32_C(0x00100AF5), UINT32_C(0x006392AD), + UINT32_C(0x00B520A8), UINT32_C(0x002B4722), UINT32_C(0x0000BE83), + UINT32_C(0x00671127), UINT32_C(0x000DE2DD), UINT32_C(0x00464F89), + UINT32_C(0x004EDE64), UINT32_C(0x00281953)}, + {UINT32_C(0x0006E6D3), UINT32_C(0x002AA368), UINT32_C(0x004082CA), + UINT32_C(0x00403695), UINT32_C(0x006E19D7), UINT32_C(0x003560D6), + UINT32_C(0x000FD064), UINT32_C(0x00E717EF), UINT32_C(0x000A17BF), + UINT32_C(0x000FF54A), UINT32_C(0x0018D167)}}, + {{UINT32_C(0x00AF932F), UINT32_C(0x0026788D), UINT32_C(0x001C3D62), + UINT32_C(0x00921966), UINT32_C(0x00210E68), UINT32_C(0x004E43E2), + UINT32_C(0x00624FD4), UINT32_C(0x007DD4CB), UINT32_C(0x001A32DC), + UINT32_C(0x003F5F83), UINT32_C(0x00139108)}, + {UINT32_C(0x00BE0A12), UINT32_C(0x00560B9E), UINT32_C(0x002C4C1A), + UINT32_C(0x007D3F45), UINT32_C(0x00713917), UINT32_C(0x0056EE5F), + UINT32_C(0x00506607), UINT32_C(0x006C8156), UINT32_C(0x002C0601), + UINT32_C(0x0045B886), UINT32_C(0x006D6ABD)}}, + {{UINT32_C(0x00BE997B), UINT32_C(0x0040C819), UINT32_C(0x0047F984), + UINT32_C(0x00C09966), UINT32_C(0x0001FFE5), UINT32_C(0x004210A5), + UINT32_C(0x0075DC7F), UINT32_C(0x00E1BFAE), UINT32_C(0x0041DF17), + UINT32_C(0x000DFA6A), UINT32_C(0x0055903D)}, + {UINT32_C(0x00CF7C69), UINT32_C(0x007788BB), UINT32_C(0x006A117E), + UINT32_C(0x003E1AC5), UINT32_C(0x004BBCC5), UINT32_C(0x006902AA), + UINT32_C(0x0076BACD), UINT32_C(0x00EC4DA9), UINT32_C(0x003047AA), + UINT32_C(0x007F78BD), UINT32_C(0x00040CD6)}}, + {{UINT32_C(0x00B34AFC), UINT32_C(0x004F2803), UINT32_C(0x00307B77), + UINT32_C(0x00F3B150), UINT32_C(0x0071A656), UINT32_C(0x006D60F0), + UINT32_C(0x00320731), UINT32_C(0x00606ECD), UINT32_C(0x0066A1E7), + UINT32_C(0x006D5EFC), UINT32_C(0x006DCA0E)}, + {UINT32_C(0x004B7A84), UINT32_C(0x002D8FCA), UINT32_C(0x0068EACD), + UINT32_C(0x00B3D326), UINT32_C(0x0021F003), UINT32_C(0x001274F2), + UINT32_C(0x00411750), UINT32_C(0x00D7D4E4), UINT32_C(0x00261A79), + UINT32_C(0x006D0235), UINT32_C(0x005BB44F)}}, + {{UINT32_C(0x008CE9AA), UINT32_C(0x0056FFF3), UINT32_C(0x007F6688), + UINT32_C(0x00A20E30), UINT32_C(0x001357D8), UINT32_C(0x003F97D1), + UINT32_C(0x006C63EF), UINT32_C(0x005D64BB), UINT32_C(0x006175F3), + UINT32_C(0x0028FE8A), UINT32_C(0x00026291)}, + {UINT32_C(0x00A2F107), UINT32_C(0x006D1807), UINT32_C(0x004AD5AA), + UINT32_C(0x0063693B), UINT32_C(0x004CEADF), UINT32_C(0x00439B15), + UINT32_C(0x006BB209), UINT32_C(0x001E66A5), UINT32_C(0x00502CC1), + UINT32_C(0x0030D183), UINT32_C(0x00351D45)}}, + {{UINT32_C(0x00460DBA), UINT32_C(0x000D5151), UINT32_C(0x005A7EFA), + UINT32_C(0x00AB4F71), UINT32_C(0x00286506), UINT32_C(0x004AC749), + UINT32_C(0x0070181C), UINT32_C(0x002D47B1), UINT32_C(0x002C7634), + UINT32_C(0x0068C60E), UINT32_C(0x0041E76E)}, + {UINT32_C(0x00DBE186), UINT32_C(0x00486815), UINT32_C(0x00458F1B), + UINT32_C(0x0013062C), UINT32_C(0x0035B25D), UINT32_C(0x0067BFA5), + UINT32_C(0x0049BFFF), UINT32_C(0x000F9D3F), UINT32_C(0x0072F711), + UINT32_C(0x006E8339), UINT32_C(0x002ED76D)}}, + {{UINT32_C(0x00DD873D), UINT32_C(0x0068E0AE), UINT32_C(0x00116017), + UINT32_C(0x0086B448), UINT32_C(0x00586D70), UINT32_C(0x002DC600), + UINT32_C(0x007DC061), UINT32_C(0x00014AA5), UINT32_C(0x0005E774), + UINT32_C(0x0064B836), UINT32_C(0x00212A13)}, + {UINT32_C(0x00D59FF3), UINT32_C(0x001F2261), UINT32_C(0x007EB978), + UINT32_C(0x009DDAF1), UINT32_C(0x00069D7F), UINT32_C(0x0074317B), + UINT32_C(0x0008E97D), UINT32_C(0x00015669), UINT32_C(0x007E18E6), + UINT32_C(0x0028F0F0), UINT32_C(0x0024D9DB)}}, + {{UINT32_C(0x0089C78A), UINT32_C(0x0047CAE9), UINT32_C(0x00647445), + UINT32_C(0x00E0FFD5), UINT32_C(0x0050854E), UINT32_C(0x00398C0B), + UINT32_C(0x00484454), UINT32_C(0x00D147CC), UINT32_C(0x0009414C), + UINT32_C(0x0049B209), UINT32_C(0x004216EE)}, + {UINT32_C(0x002C47B9), UINT32_C(0x00023A77), UINT32_C(0x007769B8), + UINT32_C(0x00F0B4A1), UINT32_C(0x000443DC), UINT32_C(0x007C6A84), + UINT32_C(0x007F36D0), UINT32_C(0x000D9584), UINT32_C(0x0009D192), + UINT32_C(0x005324D9), UINT32_C(0x0008CDE7)}}, + {{UINT32_C(0x00EBCF74), UINT32_C(0x00450C29), UINT32_C(0x006EF4CE), + UINT32_C(0x00E76FBA), UINT32_C(0x00781F10), UINT32_C(0x000435C4), + UINT32_C(0x0043DA1E), UINT32_C(0x006BFF5B), UINT32_C(0x0026CDB4), + UINT32_C(0x00047CA9), UINT32_C(0x0034672B)}, + {UINT32_C(0x00FE244B), UINT32_C(0x003776F7), UINT32_C(0x00200F9D), + UINT32_C(0x0055D105), UINT32_C(0x00398428), UINT32_C(0x00159C77), + UINT32_C(0x004B172A), UINT32_C(0x0003C3DC), UINT32_C(0x000C6478), + UINT32_C(0x00360E42), UINT32_C(0x004CCFCC)}}, + {{UINT32_C(0x00A6089E), UINT32_C(0x0052C74F), UINT32_C(0x003028CE), + UINT32_C(0x00DA6BE7), UINT32_C(0x00159B0D), UINT32_C(0x00025F04), + UINT32_C(0x007F3B51), UINT32_C(0x00EBC9A6), UINT32_C(0x00410F2F), + UINT32_C(0x001E2C8F), UINT32_C(0x0044CD45)}, + {UINT32_C(0x00FE529A), UINT32_C(0x005742FE), UINT32_C(0x006446CB), + UINT32_C(0x0004A884), UINT32_C(0x0055474A), UINT32_C(0x003FE0AE), + UINT32_C(0x006671D0), UINT32_C(0x00497D2B), UINT32_C(0x0055C10A), + UINT32_C(0x0048F2CC), UINT32_C(0x006C3D3D)}}, + {{UINT32_C(0x00B5061A), UINT32_C(0x0075965B), UINT32_C(0x004759AF), + UINT32_C(0x0074ED86), UINT32_C(0x0068EECF), UINT32_C(0x006A53AB), + UINT32_C(0x000B476C), UINT32_C(0x00AA39AE), UINT32_C(0x00242F10), + UINT32_C(0x0016E0FD), UINT32_C(0x00310C8E)}, + {UINT32_C(0x00FAB3FE), UINT32_C(0x00412CA0), UINT32_C(0x00334AB3), + UINT32_C(0x0040E7A6), UINT32_C(0x006F4791), UINT32_C(0x0024B661), + UINT32_C(0x000713F0), UINT32_C(0x0035B195), UINT32_C(0x00551A61), + UINT32_C(0x004BC5DD), UINT32_C(0x001112B3)}}, + {{UINT32_C(0x00EEDFDA), UINT32_C(0x0043EF08), UINT32_C(0x007213CC), + UINT32_C(0x0055FF1F), UINT32_C(0x000AF305), UINT32_C(0x0052FA27), + UINT32_C(0x00277E8C), UINT32_C(0x00875A0B), UINT32_C(0x002C9F3E), + UINT32_C(0x00058985), UINT32_C(0x0068C97C)}, + {UINT32_C(0x00F30FC3), UINT32_C(0x00670E75), UINT32_C(0x006B3B6A), + UINT32_C(0x00AF87DB), UINT32_C(0x005C464A), UINT32_C(0x0024A624), + UINT32_C(0x007558E2), UINT32_C(0x00937730), UINT32_C(0x005F3E2C), + UINT32_C(0x004CF5B9), UINT32_C(0x005EA094)}}, + {{UINT32_C(0x00D3CC63), UINT32_C(0x000E5711), UINT32_C(0x001DC16D), + UINT32_C(0x004A13FD), UINT32_C(0x004FE8D5), UINT32_C(0x00302514), + UINT32_C(0x006F576B), UINT32_C(0x007AC1DD), UINT32_C(0x0040C7EA), + UINT32_C(0x002175BC), UINT32_C(0x007E7325)}, + {UINT32_C(0x002B1252), UINT32_C(0x003D7D6A), UINT32_C(0x001CF79F), + UINT32_C(0x002D0A89), UINT32_C(0x00081836), UINT32_C(0x000521DA), + UINT32_C(0x0071B27F), UINT32_C(0x009F8D74), UINT32_C(0x00109461), + UINT32_C(0x0029855D), UINT32_C(0x0047654D)}}, + }, + { + {{UINT32_C(0x0049F59D), UINT32_C(0x003D9378), UINT32_C(0x00531A27), + UINT32_C(0x00D81B1D), UINT32_C(0x007A0818), UINT32_C(0x00283F4B), + UINT32_C(0x0069AA59), UINT32_C(0x00FBCF88), UINT32_C(0x00194F29), + UINT32_C(0x00683FCE), UINT32_C(0x00555BAE)}, + {UINT32_C(0x006D73CE), UINT32_C(0x0050A230), UINT32_C(0x0016AC25), + UINT32_C(0x007FE177), UINT32_C(0x0079A4A7), UINT32_C(0x00240036), + UINT32_C(0x0078060E), UINT32_C(0x00B4028C), UINT32_C(0x00650D07), + UINT32_C(0x0074C9ED), UINT32_C(0x0001BC10)}}, + {{UINT32_C(0x00D581B9), UINT32_C(0x000A2BB8), UINT32_C(0x001A6502), + UINT32_C(0x0048F62D), UINT32_C(0x00259F0C), UINT32_C(0x00594632), + UINT32_C(0x003D1E9F), UINT32_C(0x001BBAB7), UINT32_C(0x004EF7A0), + UINT32_C(0x0021EEB3), UINT32_C(0x0023620C)}, + {UINT32_C(0x003A641C), UINT32_C(0x0058B33A), UINT32_C(0x004729CE), + UINT32_C(0x00600724), UINT32_C(0x005E4C80), UINT32_C(0x006F5FC3), + UINT32_C(0x001CB9C0), UINT32_C(0x00D4C679), UINT32_C(0x0067E0DE), + UINT32_C(0x007918C5), UINT32_C(0x00446E3C)}}, + {{UINT32_C(0x00FCF7B6), UINT32_C(0x002A4017), UINT32_C(0x00770419), + UINT32_C(0x009EBA8C), UINT32_C(0x000C0745), UINT32_C(0x00056DAC), + UINT32_C(0x006BE2AE), UINT32_C(0x00D5418B), UINT32_C(0x0059BCAE), + UINT32_C(0x005EB51A), UINT32_C(0x000A7CFF)}, + {UINT32_C(0x00146CD4), UINT32_C(0x005F21A7), UINT32_C(0x00732219), + UINT32_C(0x00708B02), UINT32_C(0x0059FF76), UINT32_C(0x00223DE6), + UINT32_C(0x0068D0EA), UINT32_C(0x0095440B), UINT32_C(0x004AC2BE), + UINT32_C(0x0044CD99), UINT32_C(0x00418B1F)}}, + {{UINT32_C(0x007826E7), UINT32_C(0x00302147), UINT32_C(0x004239FE), + UINT32_C(0x0012F403), UINT32_C(0x0066A878), UINT32_C(0x000BB8B3), + UINT32_C(0x00657754), UINT32_C(0x00956FD7), UINT32_C(0x002ABB73), + UINT32_C(0x004B585E), UINT32_C(0x001D0D54)}, + {UINT32_C(0x00D8482A), UINT32_C(0x00490F0D), UINT32_C(0x00587E9A), + UINT32_C(0x00633FC6), UINT32_C(0x0047A327), UINT32_C(0x002FE955), + UINT32_C(0x002C1A30), UINT32_C(0x00299544), UINT32_C(0x0012A81A), + UINT32_C(0x001B2908), UINT32_C(0x006A4721)}}, + {{UINT32_C(0x0010E70C), UINT32_C(0x001F9118), UINT32_C(0x007A2E42), + UINT32_C(0x00AD234C), UINT32_C(0x0067A2B5), UINT32_C(0x0045B66B), + UINT32_C(0x00775A55), UINT32_C(0x00CE1819), UINT32_C(0x0036B0B3), + UINT32_C(0x0009BD41), UINT32_C(0x00357CCE)}, + {UINT32_C(0x0017F79E), UINT32_C(0x0031F0EF), UINT32_C(0x00297396), + UINT32_C(0x009B34C2), UINT32_C(0x003763BA), UINT32_C(0x007CD667), + UINT32_C(0x0027859A), UINT32_C(0x0065B432), UINT32_C(0x004FFA96), + UINT32_C(0x002D2331), UINT32_C(0x005046AE)}}, + {{UINT32_C(0x006316B9), UINT32_C(0x00321283), UINT32_C(0x0013534D), + UINT32_C(0x00A66C71), UINT32_C(0x0041D154), UINT32_C(0x003BF498), + UINT32_C(0x0021F82F), UINT32_C(0x0029DB77), UINT32_C(0x004A36E0), + UINT32_C(0x00263FF9), UINT32_C(0x00703088)}, + {UINT32_C(0x00DC79C4), UINT32_C(0x0037B8E9), UINT32_C(0x004453ED), + UINT32_C(0x00A2C845), UINT32_C(0x0064D04E), UINT32_C(0x003404E0), + UINT32_C(0x0075E149), UINT32_C(0x008FF0EF), UINT32_C(0x003532A0), + UINT32_C(0x004B7BF9), UINT32_C(0x0051B403)}}, + {{UINT32_C(0x00D0B765), UINT32_C(0x006D30B8), UINT32_C(0x000EA988), + UINT32_C(0x00C14682), UINT32_C(0x0054EF11), UINT32_C(0x0064F84D), + UINT32_C(0x0056C161), UINT32_C(0x008DF7C5), UINT32_C(0x00504962), + UINT32_C(0x00486862), UINT32_C(0x0072A82D)}, + {UINT32_C(0x0077FA35), UINT32_C(0x0014BC95), UINT32_C(0x0020003C), + UINT32_C(0x004F613A), UINT32_C(0x0056E698), UINT32_C(0x00605FF1), + UINT32_C(0x0053BEE6), UINT32_C(0x003D3088), UINT32_C(0x00566658), + UINT32_C(0x0072C01C), UINT32_C(0x00128DDA)}}, + {{UINT32_C(0x00B5B469), UINT32_C(0x00265F62), UINT32_C(0x00740D01), + UINT32_C(0x002737CE), UINT32_C(0x0016B851), UINT32_C(0x000B913E), + UINT32_C(0x00365599), UINT32_C(0x00CED53E), UINT32_C(0x00031BE6), + UINT32_C(0x0007B5B7), UINT32_C(0x002826D2)}, + {UINT32_C(0x007CE72C), UINT32_C(0x0035F7AE), UINT32_C(0x00122292), + UINT32_C(0x00F0BCF2), UINT32_C(0x00583D09), UINT32_C(0x000865FB), + UINT32_C(0x004255E4), UINT32_C(0x00C0E15D), UINT32_C(0x0014E9D6), + UINT32_C(0x0065A407), UINT32_C(0x00113864)}}, + {{UINT32_C(0x00D0FA32), UINT32_C(0x00731256), UINT32_C(0x0008677B), + UINT32_C(0x00058BD3), UINT32_C(0x0011CF96), UINT32_C(0x001E2EF5), + UINT32_C(0x00725AB8), UINT32_C(0x005A8080), UINT32_C(0x006AEB60), + UINT32_C(0x006FE8CF), UINT32_C(0x007F2F4F)}, + {UINT32_C(0x00C3108A), UINT32_C(0x00760FFA), UINT32_C(0x005F4E31), + UINT32_C(0x0071D122), UINT32_C(0x0017DEC0), UINT32_C(0x004BCA9E), + UINT32_C(0x00140AF5), UINT32_C(0x00CB9CE3), UINT32_C(0x0014BFC1), + UINT32_C(0x0064DA23), UINT32_C(0x000C63A5)}}, + {{UINT32_C(0x0066EFDB), UINT32_C(0x002864DE), UINT32_C(0x007211BA), + UINT32_C(0x00D9EAA4), UINT32_C(0x00593664), UINT32_C(0x0037C3A8), + UINT32_C(0x006DE16A), UINT32_C(0x00D849C3), UINT32_C(0x00331ED5), + UINT32_C(0x005C0AE8), UINT32_C(0x0041D7E1)}, + {UINT32_C(0x008CE7E3), UINT32_C(0x004DF2A8), UINT32_C(0x0039C4B2), + UINT32_C(0x001A054E), UINT32_C(0x00651CF9), UINT32_C(0x001B953C), + UINT32_C(0x003FF29C), UINT32_C(0x007BF5B4), UINT32_C(0x00322902), + UINT32_C(0x000942AC), UINT32_C(0x00152316)}}, + {{UINT32_C(0x00DFBF1A), UINT32_C(0x005DD706), UINT32_C(0x00665070), + UINT32_C(0x004EA28B), UINT32_C(0x00253E73), UINT32_C(0x005DF0EC), + UINT32_C(0x00175C48), UINT32_C(0x00D7A1A4), UINT32_C(0x00793351), + UINT32_C(0x00029BF8), UINT32_C(0x00434300)}, + {UINT32_C(0x00CB3A82), UINT32_C(0x006DE550), UINT32_C(0x0041DC49), + UINT32_C(0x0082B72D), UINT32_C(0x000DC7E4), UINT32_C(0x0061BB06), + UINT32_C(0x0026A846), UINT32_C(0x00CC5702), UINT32_C(0x005E2CDD), + UINT32_C(0x007063CA), UINT32_C(0x003C8621)}}, + {{UINT32_C(0x00181E78), UINT32_C(0x0077B355), UINT32_C(0x00418907), + UINT32_C(0x00D9A8F6), UINT32_C(0x0072DED2), UINT32_C(0x004E3E02), + UINT32_C(0x004E03AD), UINT32_C(0x00F3B5A8), UINT32_C(0x0050F28E), + UINT32_C(0x006CF224), UINT32_C(0x0024C9C3)}, + {UINT32_C(0x00850A90), UINT32_C(0x00623DEB), UINT32_C(0x0024F9A6), + UINT32_C(0x00D6DFA0), UINT32_C(0x0048D930), UINT32_C(0x0016FD61), + UINT32_C(0x0020F2BD), UINT32_C(0x006DACA1), UINT32_C(0x003AE220), + UINT32_C(0x00446D52), UINT32_C(0x0049678D)}}, + {{UINT32_C(0x00F04B0C), UINT32_C(0x00586E6C), UINT32_C(0x0009DA9E), + UINT32_C(0x00ACA51E), UINT32_C(0x00779415), UINT32_C(0x00693107), + UINT32_C(0x00727567), UINT32_C(0x00D0F4C5), UINT32_C(0x002C7C2D), + UINT32_C(0x006A4DC6), UINT32_C(0x007BE95F)}, + {UINT32_C(0x0019999C), UINT32_C(0x007F0AEF), UINT32_C(0x007C8778), + UINT32_C(0x002D0089), UINT32_C(0x004CD9C4), UINT32_C(0x0056522D), + UINT32_C(0x00396E96), UINT32_C(0x007ABC11), UINT32_C(0x0033E16F), + UINT32_C(0x005E515A), UINT32_C(0x005E9DD0)}}, + {{UINT32_C(0x001F0474), UINT32_C(0x004D7C5A), UINT32_C(0x007B2A69), + UINT32_C(0x00C61380), UINT32_C(0x007415C0), UINT32_C(0x001C95A8), + UINT32_C(0x00338442), UINT32_C(0x005479B1), UINT32_C(0x0059192B), + UINT32_C(0x0029E0CF), UINT32_C(0x006FA0A0)}, + {UINT32_C(0x004F6E5A), UINT32_C(0x007DA4EC), UINT32_C(0x002E8E89), + UINT32_C(0x00ABDC5B), UINT32_C(0x0040143A), UINT32_C(0x00766FBA), + UINT32_C(0x007A98D8), UINT32_C(0x0063DA1D), UINT32_C(0x006373BE), + UINT32_C(0x002952A0), UINT32_C(0x0068B7FE)}}, + {{UINT32_C(0x003C913F), UINT32_C(0x0002C389), UINT32_C(0x001BB9C3), + UINT32_C(0x0040D559), UINT32_C(0x00543B6F), UINT32_C(0x005E27BB), + UINT32_C(0x0051477D), UINT32_C(0x0018DE74), UINT32_C(0x00617EB9), + UINT32_C(0x00410DFE), UINT32_C(0x001E172F)}, + {UINT32_C(0x0083EE97), UINT32_C(0x0079C4B1), UINT32_C(0x0070D016), + UINT32_C(0x009399BA), UINT32_C(0x0032C96A), UINT32_C(0x00667A8E), + UINT32_C(0x003D5F84), UINT32_C(0x00608421), UINT32_C(0x006E6662), + UINT32_C(0x0008B758), UINT32_C(0x001D9639)}}, + {{UINT32_C(0x00A6524D), UINT32_C(0x0074CFF4), UINT32_C(0x0026D563), + UINT32_C(0x00A1F297), UINT32_C(0x003FA9DE), UINT32_C(0x0073EA40), + UINT32_C(0x000E3CE4), UINT32_C(0x00492223), UINT32_C(0x00638A0B), + UINT32_C(0x0047888B), UINT32_C(0x0050A52B)}, + {UINT32_C(0x0021A754), UINT32_C(0x0006812D), UINT32_C(0x0059DFAC), + UINT32_C(0x00B33A1F), UINT32_C(0x007B6001), UINT32_C(0x0045BA94), + UINT32_C(0x00187867), UINT32_C(0x00D3B5C2), UINT32_C(0x007F2118), + UINT32_C(0x00091632), UINT32_C(0x001CE749)}}, + }, + { + {{UINT32_C(0x00C5B684), UINT32_C(0x003B82D3), UINT32_C(0x007BB04F), + UINT32_C(0x006CD54F), UINT32_C(0x0017CB99), UINT32_C(0x005C4905), + UINT32_C(0x00013115), UINT32_C(0x00011FE8), UINT32_C(0x00274533), + UINT32_C(0x00283F47), UINT32_C(0x002C4F1C)}, + {UINT32_C(0x00251A27), UINT32_C(0x007B5C49), UINT32_C(0x003D9D4C), + UINT32_C(0x00E97FBF), UINT32_C(0x001F3DD9), UINT32_C(0x0049FA49), + UINT32_C(0x006C76A8), UINT32_C(0x009EFFDD), UINT32_C(0x0070FD77), + UINT32_C(0x00197D68), UINT32_C(0x0043D69E)}}, + {{UINT32_C(0x00F54825), UINT32_C(0x004E704B), UINT32_C(0x005B81C6), + UINT32_C(0x00F6C679), UINT32_C(0x004A0326), UINT32_C(0x000993ED), + UINT32_C(0x00223F94), UINT32_C(0x005CACE3), UINT32_C(0x0079C440), + UINT32_C(0x001BF3AB), UINT32_C(0x004F0A3D)}, + {UINT32_C(0x0094C40C), UINT32_C(0x004AC81F), UINT32_C(0x007FF007), + UINT32_C(0x00E4DA23), UINT32_C(0x0012C360), UINT32_C(0x00679697), + UINT32_C(0x00091A3D), UINT32_C(0x006BB95A), UINT32_C(0x005FF46C), + UINT32_C(0x003D9D5F), UINT32_C(0x006C42A5)}}, + {{UINT32_C(0x008C8CCF), UINT32_C(0x007FC2E6), UINT32_C(0x0063D1F2), + UINT32_C(0x0073B8A7), UINT32_C(0x004CFD1D), UINT32_C(0x000A0D59), + UINT32_C(0x0067D4C7), UINT32_C(0x00F46F06), UINT32_C(0x00044A4E), + UINT32_C(0x007884E7), UINT32_C(0x0011BD78)}, + {UINT32_C(0x00E46006), UINT32_C(0x00593D9C), UINT32_C(0x00600552), + UINT32_C(0x009BE40C), UINT32_C(0x006F055F), UINT32_C(0x0050000F), + UINT32_C(0x007CAEF7), UINT32_C(0x00487980), UINT32_C(0x0018C50F), + UINT32_C(0x002C8819), UINT32_C(0x001C9DF4)}}, + {{UINT32_C(0x00142486), UINT32_C(0x0011204B), UINT32_C(0x00546138), + UINT32_C(0x00A0F3FD), UINT32_C(0x007C7277), UINT32_C(0x0062F53E), + UINT32_C(0x00405474), UINT32_C(0x00E13911), UINT32_C(0x0073FFC0), + UINT32_C(0x003F1CE2), UINT32_C(0x004E8EC0)}, + {UINT32_C(0x00CEA3A2), UINT32_C(0x006ACFEA), UINT32_C(0x00644863), + UINT32_C(0x006C5ADA), UINT32_C(0x0059B648), UINT32_C(0x005EE6F5), + UINT32_C(0x006B9451), UINT32_C(0x00C22C63), UINT32_C(0x00250D0A), + UINT32_C(0x0040C2E2), UINT32_C(0x00633B20)}}, + {{UINT32_C(0x000DF8D9), UINT32_C(0x006FDE02), UINT32_C(0x007BC761), + UINT32_C(0x00DD1647), UINT32_C(0x003946F5), UINT32_C(0x004F8B89), + UINT32_C(0x0021BD28), UINT32_C(0x00D13F8D), UINT32_C(0x0026F183), + UINT32_C(0x003CAFFB), UINT32_C(0x00526839)}, + {UINT32_C(0x002D8549), UINT32_C(0x0051C848), UINT32_C(0x0065DAAB), + UINT32_C(0x00F4931B), UINT32_C(0x001DB7B7), UINT32_C(0x006B5984), + UINT32_C(0x0002D8C2), UINT32_C(0x00399E59), UINT32_C(0x00348B00), + UINT32_C(0x002C9BAC), UINT32_C(0x000561D0)}}, + {{UINT32_C(0x002E9251), UINT32_C(0x00730381), UINT32_C(0x00158D1C), + UINT32_C(0x00EAA590), UINT32_C(0x00555783), UINT32_C(0x003A7A13), + UINT32_C(0x007834C8), UINT32_C(0x00ACBD10), UINT32_C(0x006C9902), + UINT32_C(0x0023C1F1), UINT32_C(0x001B3699)}, + {UINT32_C(0x0096FFD5), UINT32_C(0x007117AC), UINT32_C(0x00024B6B), + UINT32_C(0x008D0146), UINT32_C(0x000E4DC9), UINT32_C(0x00191916), + UINT32_C(0x000FC5A6), UINT32_C(0x00FE7250), UINT32_C(0x00198308), + UINT32_C(0x0001FAC2), UINT32_C(0x0024DA1C)}}, + {{UINT32_C(0x008A2315), UINT32_C(0x007E110A), UINT32_C(0x005E7BF4), + UINT32_C(0x007BEAF8), UINT32_C(0x003605ED), UINT32_C(0x001F3AF3), + UINT32_C(0x007876E7), UINT32_C(0x0046E4E3), UINT32_C(0x006EC7A7), + UINT32_C(0x0074A230), UINT32_C(0x007EF25D)}, + {UINT32_C(0x000F6E54), UINT32_C(0x001AD49C), UINT32_C(0x0052B335), + UINT32_C(0x00FE212A), UINT32_C(0x003A9CF2), UINT32_C(0x00318045), + UINT32_C(0x0058F544), UINT32_C(0x0065B525), UINT32_C(0x003D646B), + UINT32_C(0x004DA78A), UINT32_C(0x00552661)}}, + {{UINT32_C(0x003F6E66), UINT32_C(0x007E10BA), UINT32_C(0x00341D94), + UINT32_C(0x004AB8A0), UINT32_C(0x004ED33D), UINT32_C(0x002E5C25), + UINT32_C(0x00109A3B), UINT32_C(0x001454FD), UINT32_C(0x007C8D6A), + UINT32_C(0x007942BA), UINT32_C(0x002B4544)}, + {UINT32_C(0x00BE14E9), UINT32_C(0x00446F85), UINT32_C(0x0075AA4C), + UINT32_C(0x00BEFBB7), UINT32_C(0x00354E79), UINT32_C(0x0041906F), + UINT32_C(0x0040AC0F), UINT32_C(0x00C8D73F), UINT32_C(0x001F31BC), + UINT32_C(0x00662285), UINT32_C(0x0027E73B)}}, + {{UINT32_C(0x005B910E), UINT32_C(0x00037DF0), UINT32_C(0x006463A9), + UINT32_C(0x00E6B081), UINT32_C(0x002D0A9D), UINT32_C(0x002ED8BE), + UINT32_C(0x0060E9CA), UINT32_C(0x00DC8968), UINT32_C(0x0017563E), + UINT32_C(0x00350D14), UINT32_C(0x006DB2D5)}, + {UINT32_C(0x008E171C), UINT32_C(0x000EB1AA), UINT32_C(0x000E3AEA), + UINT32_C(0x00DCD35E), UINT32_C(0x0024D5B2), UINT32_C(0x0078E926), + UINT32_C(0x006E5A44), UINT32_C(0x009E3934), UINT32_C(0x0043D3D7), + UINT32_C(0x000F2ECE), UINT32_C(0x00506FB6)}}, + {{UINT32_C(0x00B8E76E), UINT32_C(0x003E9FBC), UINT32_C(0x006624FA), + UINT32_C(0x000338E5), UINT32_C(0x0022CDAF), UINT32_C(0x001658AA), + UINT32_C(0x004EDFF5), UINT32_C(0x005C5CC6), UINT32_C(0x0074872E), + UINT32_C(0x0006FF1F), UINT32_C(0x003D71F4)}, + {UINT32_C(0x00E59640), UINT32_C(0x006B6980), UINT32_C(0x0052C2CC), + UINT32_C(0x00CB86FD), UINT32_C(0x00212D1D), UINT32_C(0x004C97C7), + UINT32_C(0x00605C17), UINT32_C(0x00AAE9D8), UINT32_C(0x005073CD), + UINT32_C(0x00361947), UINT32_C(0x000E77D9)}}, + {{UINT32_C(0x0016387D), UINT32_C(0x0049B942), UINT32_C(0x001B3FA6), + UINT32_C(0x00EA0088), UINT32_C(0x00418D2D), UINT32_C(0x003D0233), + UINT32_C(0x0011F489), UINT32_C(0x001FACB0), UINT32_C(0x00029CF4), + UINT32_C(0x00039194), UINT32_C(0x00483410)}, + {UINT32_C(0x00F9A7EC), UINT32_C(0x001832C2), UINT32_C(0x00459839), + UINT32_C(0x004D00CF), UINT32_C(0x003F4B21), UINT32_C(0x005FC44A), + UINT32_C(0x000CA90A), UINT32_C(0x0024985D), UINT32_C(0x000D9596), + UINT32_C(0x004A9A33), UINT32_C(0x007D3439)}}, + {{UINT32_C(0x0044CABA), UINT32_C(0x00589FC6), UINT32_C(0x00575DF8), + UINT32_C(0x008AC944), UINT32_C(0x0047E0CD), UINT32_C(0x000567F3), + UINT32_C(0x006783A3), UINT32_C(0x0081A081), UINT32_C(0x00720557), + UINT32_C(0x002CC917), UINT32_C(0x006BAFD4)}, + {UINT32_C(0x0002EF38), UINT32_C(0x00089C79), UINT32_C(0x0039C854), + UINT32_C(0x00A4BCBE), UINT32_C(0x000969F1), UINT32_C(0x00452E91), + UINT32_C(0x00645379), UINT32_C(0x00546133), UINT32_C(0x001F829A), + UINT32_C(0x006A9523), UINT32_C(0x006A5CF6)}}, + {{UINT32_C(0x0041529B), UINT32_C(0x005CB920), UINT32_C(0x005E7A02), + UINT32_C(0x00C8A1A2), UINT32_C(0x001F9327), UINT32_C(0x004174C9), + UINT32_C(0x007E2F98), UINT32_C(0x00452989), UINT32_C(0x004CD5A3), + UINT32_C(0x007FB826), UINT32_C(0x0073BCEB)}, + {UINT32_C(0x002F5CBC), UINT32_C(0x007CBCD0), UINT32_C(0x00130359), + UINT32_C(0x00B09201), UINT32_C(0x0018EFD9), UINT32_C(0x00202C9E), + UINT32_C(0x006A4C0F), UINT32_C(0x00DF08A6), UINT32_C(0x000F65C7), + UINT32_C(0x006E8BA1), UINT32_C(0x0057C201)}}, + {{UINT32_C(0x00F2D278), UINT32_C(0x007BCA3E), UINT32_C(0x000073A8), + UINT32_C(0x00AB869F), UINT32_C(0x0014FC27), UINT32_C(0x00682826), + UINT32_C(0x007B8F76), UINT32_C(0x00E02FC4), UINT32_C(0x004DDAD8), + UINT32_C(0x0051D300), UINT32_C(0x005D3332)}, + {UINT32_C(0x00A06CF9), UINT32_C(0x00490FEC), UINT32_C(0x00272AAC), + UINT32_C(0x009F4648), UINT32_C(0x0071C8FB), UINT32_C(0x00566093), + UINT32_C(0x0078852D), UINT32_C(0x00E7DB13), UINT32_C(0x004E79FE), + UINT32_C(0x0012F1F6), UINT32_C(0x0056F872)}}, + {{UINT32_C(0x00B0F1BD), UINT32_C(0x001B52B2), UINT32_C(0x007EDAE0), + UINT32_C(0x00B65682), UINT32_C(0x00433C6A), UINT32_C(0x0005BDE7), + UINT32_C(0x001EE949), UINT32_C(0x00515F90), UINT32_C(0x0020A67A), + UINT32_C(0x004EBC14), UINT32_C(0x00236F70)}, + {UINT32_C(0x00FA1D8C), UINT32_C(0x006D40AB), UINT32_C(0x0030DC7D), + UINT32_C(0x0056A7E9), UINT32_C(0x0019E584), UINT32_C(0x00092219), + UINT32_C(0x005A6D72), UINT32_C(0x00EE7EAE), UINT32_C(0x0079A1E5), + UINT32_C(0x006D6145), UINT32_C(0x00055F0C)}}, + {{UINT32_C(0x00C54CAB), UINT32_C(0x0014B3C9), UINT32_C(0x005B9541), + UINT32_C(0x00FA0F3C), UINT32_C(0x004CFCD2), UINT32_C(0x00596010), + UINT32_C(0x0055BCC4), UINT32_C(0x001502AE), UINT32_C(0x0070CB46), + UINT32_C(0x003B6582), UINT32_C(0x00729AD7)}, + {UINT32_C(0x00AE8A66), UINT32_C(0x00022B51), UINT32_C(0x00608650), + UINT32_C(0x00CC908A), UINT32_C(0x0076C532), UINT32_C(0x0041E1EA), + UINT32_C(0x007F34BC), UINT32_C(0x000289C8), UINT32_C(0x00717892), + UINT32_C(0x00465F29), UINT32_C(0x003C38C2)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 6 + * ASSERT: a = -3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(t0, X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(t1, Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_square(t2, Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t3, X, Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, t3, t3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t4, Y, Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, X, Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(X3, X3, t3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t2, t2, t3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, b, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Z3, Z3, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Z3, Z3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, t3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t0, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t0, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t0, t4, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, Z3); +} + +/*- + * out1 = (arg1 == 0) ? 0 : nz + * NB: this is not a "mod p equiv" 0, but literal 0 + * NB: this is not a real Fiat function, just named that way for consistency. + */ +static void fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_nonzero( + limb_t *out1, const fe_t arg1) { + limb_t x1 = 0; + int i; + + for (i = 0; i < LIMB_CNT; i++) x1 |= arg1[i]; + *out1 = x1; +} + +/*- + * 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.op3 + * https://eprint.iacr.org/2015/1060 Alg 5 + * ASSERT: a = -3 + */ +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, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t4, Y2, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, t4, Y1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, X2, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, Y3, X1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, b, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, Z1, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t2, t1, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, t1); + + /* if P is inf, throw all that away and take Q */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(R->X, nz, Q->X, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 4 + * ASSERT: a = -3 + */ +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, t4, t5; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t2, Z1, Z2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t3, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t4, Y1, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t5, Y2, Z2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t5, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, X1, Z1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, X2, Z2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(X3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t2, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_add(Z3, Z3, t1); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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[32], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 32) 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(char out[52], const unsigned char in[32]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 51; 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(char out[257], const unsigned char in[32]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 257; 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; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32], + const unsigned char b[32], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[257] = {0}; + char bnaf[257] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 256; i >= 0; i--) { + if (!is_inf) point_double(&Q, &Q); + if ((d = bnaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(Q.Y, Q.Y); + 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.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_GostR3410_2001_CryptoPro_A_ParamSet_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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[32], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[52] = {0}; + pt_prj_t Q, lut; + 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[51] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 50; 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_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_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[32]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[52] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 2; i >= 0; i--) { + for (j = 0; i != 2 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 19; j++) { + if (j * 3 + i > 51) continue; + d = rnaf[j * 3 + 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_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz( + lut.Y, is_neg, lut.Y, out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.X, scalar[0] & 1, + R.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Y, scalar[0] & 1, + R.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_selectznz(Q.Z, scalar[0] & 1, + R.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_carry_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[32], unsigned char outy[32], + const unsigned char a[32], const unsigned char b[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_from_bytes(P.Y, iny); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_from_bytes(P.Y, iny); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_A_ParamSet_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[32] = {0}; + + int + point_mul_two_id_GostR3410_2001_CryptoPro_A_ParamSet( + 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[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_GostR3410_2001_CryptoPro_A_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const EC_POINT *q, + const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_GostR3410_2001_CryptoPro_A_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + 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, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, 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__ */ diff --git a/ecp_id_GostR3410_2001_CryptoPro_B_ParamSet.c b/ecp_id_GostR3410_2001_CryptoPro_B_ParamSet.c new file mode 100644 index 0000000..39bed88 --- /dev/null +++ b/ecp_id_GostR3410_2001_CryptoPro_B_ParamSet.c @@ -0,0 +1,11781 @@ +/* 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 4 +/* Field elements */ +typedef uint64_t fe_t[LIMB_CNT]; +typedef uint64_t limb_t; + +#define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) +#define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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: word_by_word_montgomery --static id_GostR3410_2001_CryptoPro_B_ParamSet 64 '2^255 + 3225' */ +/* curve description: id_GostR3410_2001_CryptoPro_B_ParamSet */ +/* machine_wordsize = 64 (from "64") */ +/* requested operations: (all) */ +/* m = 0x8000000000000000000000000000000000000000000000000000000000000c99 (from "2^255 + 3225") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (m), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ +/* */ +/* Computed values: */ +/* eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1; +typedef signed char fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1; +typedef signed __int128 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int128; +typedef unsigned __int128 fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint128; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^64 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint128 x1; + uint64_t x2; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x3; + x1 = ((arg1 + (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint128)arg2) + + arg3); + x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + x3 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^64 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int128 x1; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1 x2; + uint64_t x3; + x1 = ((arg2 - (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int128)arg1) - + arg3); + x2 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1)(x1 >> 64); + x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64 is a multiplication, returning the full double-width result. + * Postconditions: + * out1 = (arg1 * arg2) mod 2^64 + * out2 = ⌊arg1 * arg2 / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0xffffffffffffffff] + * arg2: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + uint64_t *out1, uint64_t *out2, uint64_t arg1, uint64_t arg2) { + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint128 x1; + uint64_t x2; + uint64_t x3; + x1 = ((fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint128)arg1 * arg2); + x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + x3 = (uint64_t)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_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_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, + uint64_t arg2, uint64_t arg3) { + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x1; + uint64_t x2; + uint64_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1)(0x0 - x1) & + UINT64_C(0xffffffffffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul multiplies two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul( + uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14; + uint64_t x15; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16; + uint64_t x17; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x27; + uint64_t x28; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x29; + uint64_t x30; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x31; + uint64_t x32; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x33; + uint64_t x34; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x45; + uint64_t x46; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47; + uint64_t x48; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x49; + uint64_t x50; + uint64_t x51; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x52; + uint64_t x53; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x54; + uint64_t x55; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x56; + uint64_t x57; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x58; + uint64_t x59; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x60; + uint64_t x61; + uint64_t x62; + uint64_t x63; + uint64_t x64; + uint64_t x65; + uint64_t x66; + uint64_t x67; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x68; + uint64_t x69; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x70; + uint64_t x71; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x72; + uint64_t x73; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x74; + uint64_t x75; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x87; + uint64_t x88; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x89; + uint64_t x90; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x91; + uint64_t x92; + uint64_t x93; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x94; + uint64_t x95; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x96; + uint64_t x97; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x98; + uint64_t x99; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x100; + uint64_t x101; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x102; + uint64_t x103; + uint64_t x104; + uint64_t x105; + uint64_t x106; + uint64_t x107; + uint64_t x108; + uint64_t x109; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x110; + uint64_t x111; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x112; + uint64_t x113; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x114; + uint64_t x115; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x116; + uint64_t x117; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x129; + uint64_t x130; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x131; + uint64_t x132; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x133; + uint64_t x134; + uint64_t x135; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x136; + uint64_t x137; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x138; + uint64_t x139; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x140; + uint64_t x141; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x142; + uint64_t x143; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x144; + uint64_t x145; + uint64_t x146; + uint64_t x147; + uint64_t x148; + uint64_t x149; + uint64_t x150; + uint64_t x151; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x152; + uint64_t x153; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x154; + uint64_t x155; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x156; + uint64_t x157; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x158; + uint64_t x159; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x160; + uint64_t x161; + uint64_t x162; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x163; + uint64_t x164; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x165; + uint64_t x166; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x167; + uint64_t x168; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x169; + uint64_t x170; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x171; + uint64_t x172; + uint64_t x173; + uint64_t x174; + uint64_t x175; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x5, &x6, x4, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x7, &x8, x4, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x9, &x10, x4, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x11, &x12, x4, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x13, &x14, 0x0, + x12, x9); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x15, &x16, x14, + x10, x7); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x17, &x18, x16, + x8, x5); + x19 = (x18 + x6); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x20, &x21, x11, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x22, &x23, x20, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x24, &x25, x20, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x26, &x27, 0x0, + x11, x24); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x28, &x29, x27, + x13, x25); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x30, &x31, x29, + x15, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x32, &x33, x31, + x17, x22); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x34, &x35, x33, + x19, x23); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x36, &x37, x1, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x38, &x39, x1, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x40, &x41, x1, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x42, &x43, x1, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x44, &x45, 0x0, + x43, x40); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x46, &x47, x45, + x41, x38); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x48, &x49, x47, + x39, x36); + x50 = (x49 + x37); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x51, &x52, 0x0, + x28, x42); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x53, &x54, x52, + x30, x44); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x55, &x56, x54, + x32, x46); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x57, &x58, x56, + x34, x48); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x59, &x60, x58, + x35, x50); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x61, &x62, x51, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x63, &x64, x61, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x65, &x66, x61, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x67, &x68, 0x0, + x51, x65); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x69, &x70, x68, + x53, x66); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x71, &x72, x70, + x55, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x73, &x74, x72, + x57, x63); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x75, &x76, x74, + x59, x64); + x77 = ((uint64_t)x76 + x60); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x78, &x79, x2, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x80, &x81, x2, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x82, &x83, x2, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x84, &x85, x2, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x86, &x87, 0x0, + x85, x82); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x88, &x89, x87, + x83, x80); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x90, &x91, x89, + x81, x78); + x92 = (x91 + x79); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x93, &x94, 0x0, + x69, x84); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x95, &x96, x94, + x71, x86); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x97, &x98, x96, + x73, x88); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x99, &x100, x98, + x75, x90); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x101, &x102, + x100, x77, x92); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x103, &x104, x93, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x105, &x106, x103, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x107, &x108, x103, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x109, &x110, 0x0, + x93, x107); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x111, &x112, + x110, x95, x108); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x113, &x114, + x112, x97, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x115, &x116, + x114, x99, x105); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x117, &x118, + x116, x101, x106); + x119 = ((uint64_t)x118 + x102); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x120, &x121, x3, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x122, &x123, x3, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x124, &x125, x3, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x126, &x127, x3, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x128, &x129, 0x0, + x127, x124); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x130, &x131, + x129, x125, x122); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x132, &x133, + x131, x123, x120); + x134 = (x133 + x121); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x135, &x136, 0x0, + x111, x126); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x137, &x138, + x136, x113, x128); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x139, &x140, + x138, x115, x130); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x141, &x142, + x140, x117, x132); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x143, &x144, + x142, x119, x134); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x145, &x146, x135, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x147, &x148, x145, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x149, &x150, x145, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x151, &x152, 0x0, + x135, x149); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x153, &x154, + x152, x137, x150); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x155, &x156, + x154, x139, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x157, &x158, + x156, x141, x147); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x159, &x160, + x158, x143, x148); + x161 = ((uint64_t)x160 + x144); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x162, &x163, 0x0, x153, UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x164, &x165, + x163, x155, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x166, &x167, + x165, x157, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x168, &x169, x167, x159, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x170, &x171, + x169, x161, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x172, x171, x162, + x153); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x173, x171, x164, + x155); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x174, x171, x166, + x157); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x175, x171, x168, + x159); + out1[0] = x172; + out1[1] = x173; + out1[2] = x174; + out1[3] = x175; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square squares a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square( + uint64_t out1[4], const uint64_t arg1[4]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14; + uint64_t x15; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16; + uint64_t x17; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x27; + uint64_t x28; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x29; + uint64_t x30; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x31; + uint64_t x32; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x33; + uint64_t x34; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x45; + uint64_t x46; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47; + uint64_t x48; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x49; + uint64_t x50; + uint64_t x51; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x52; + uint64_t x53; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x54; + uint64_t x55; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x56; + uint64_t x57; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x58; + uint64_t x59; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x60; + uint64_t x61; + uint64_t x62; + uint64_t x63; + uint64_t x64; + uint64_t x65; + uint64_t x66; + uint64_t x67; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x68; + uint64_t x69; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x70; + uint64_t x71; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x72; + uint64_t x73; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x74; + uint64_t x75; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x87; + uint64_t x88; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x89; + uint64_t x90; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x91; + uint64_t x92; + uint64_t x93; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x94; + uint64_t x95; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x96; + uint64_t x97; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x98; + uint64_t x99; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x100; + uint64_t x101; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x102; + uint64_t x103; + uint64_t x104; + uint64_t x105; + uint64_t x106; + uint64_t x107; + uint64_t x108; + uint64_t x109; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x110; + uint64_t x111; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x112; + uint64_t x113; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x114; + uint64_t x115; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x116; + uint64_t x117; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x129; + uint64_t x130; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x131; + uint64_t x132; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x133; + uint64_t x134; + uint64_t x135; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x136; + uint64_t x137; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x138; + uint64_t x139; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x140; + uint64_t x141; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x142; + uint64_t x143; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x144; + uint64_t x145; + uint64_t x146; + uint64_t x147; + uint64_t x148; + uint64_t x149; + uint64_t x150; + uint64_t x151; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x152; + uint64_t x153; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x154; + uint64_t x155; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x156; + uint64_t x157; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x158; + uint64_t x159; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x160; + uint64_t x161; + uint64_t x162; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x163; + uint64_t x164; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x165; + uint64_t x166; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x167; + uint64_t x168; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x169; + uint64_t x170; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x171; + uint64_t x172; + uint64_t x173; + uint64_t x174; + uint64_t x175; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x5, &x6, x4, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x7, &x8, x4, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x9, &x10, x4, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x11, &x12, x4, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x13, &x14, 0x0, + x12, x9); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x15, &x16, x14, + x10, x7); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x17, &x18, x16, + x8, x5); + x19 = (x18 + x6); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x20, &x21, x11, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x22, &x23, x20, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x24, &x25, x20, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x26, &x27, 0x0, + x11, x24); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x28, &x29, x27, + x13, x25); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x30, &x31, x29, + x15, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x32, &x33, x31, + x17, x22); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x34, &x35, x33, + x19, x23); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x36, &x37, x1, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x38, &x39, x1, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x40, &x41, x1, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x42, &x43, x1, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x44, &x45, 0x0, + x43, x40); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x46, &x47, x45, + x41, x38); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x48, &x49, x47, + x39, x36); + x50 = (x49 + x37); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x51, &x52, 0x0, + x28, x42); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x53, &x54, x52, + x30, x44); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x55, &x56, x54, + x32, x46); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x57, &x58, x56, + x34, x48); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x59, &x60, x58, + x35, x50); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x61, &x62, x51, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x63, &x64, x61, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x65, &x66, x61, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x67, &x68, 0x0, + x51, x65); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x69, &x70, x68, + x53, x66); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x71, &x72, x70, + x55, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x73, &x74, x72, + x57, x63); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x75, &x76, x74, + x59, x64); + x77 = ((uint64_t)x76 + x60); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x78, &x79, x2, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x80, &x81, x2, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x82, &x83, x2, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x84, &x85, x2, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x86, &x87, 0x0, + x85, x82); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x88, &x89, x87, + x83, x80); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x90, &x91, x89, + x81, x78); + x92 = (x91 + x79); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x93, &x94, 0x0, + x69, x84); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x95, &x96, x94, + x71, x86); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x97, &x98, x96, + x73, x88); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x99, &x100, x98, + x75, x90); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x101, &x102, + x100, x77, x92); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x103, &x104, x93, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x105, &x106, x103, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x107, &x108, x103, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x109, &x110, 0x0, + x93, x107); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x111, &x112, + x110, x95, x108); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x113, &x114, + x112, x97, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x115, &x116, + x114, x99, x105); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x117, &x118, + x116, x101, x106); + x119 = ((uint64_t)x118 + x102); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x120, &x121, x3, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x122, &x123, x3, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x124, &x125, x3, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x126, &x127, x3, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x128, &x129, 0x0, + x127, x124); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x130, &x131, + x129, x125, x122); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x132, &x133, + x131, x123, x120); + x134 = (x133 + x121); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x135, &x136, 0x0, + x111, x126); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x137, &x138, + x136, x113, x128); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x139, &x140, + x138, x115, x130); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x141, &x142, + x140, x117, x132); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x143, &x144, + x142, x119, x134); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x145, &x146, x135, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x147, &x148, x145, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x149, &x150, x145, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x151, &x152, 0x0, + x135, x149); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x153, &x154, + x152, x137, x150); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x155, &x156, + x154, x139, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x157, &x158, + x156, x141, x147); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x159, &x160, + x158, x143, x148); + x161 = ((uint64_t)x160 + x144); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x162, &x163, 0x0, x153, UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x164, &x165, + x163, x155, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x166, &x167, + x165, x157, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x168, &x169, x167, x159, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x170, &x171, + x169, x161, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x172, x171, x162, + x153); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x173, x171, x164, + x155); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x174, x171, x166, + x157); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x175, x171, x168, + x159); + out1[0] = x172; + out1[1] = x173; + out1[2] = x174; + out1[3] = x175; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add adds two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add( + uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + uint64_t x1; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2; + uint64_t x3; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4; + uint64_t x5; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6; + uint64_t x7; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8; + uint64_t x9; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x10; + uint64_t x11; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12; + uint64_t x13; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14; + uint64_t x15; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16; + uint64_t x17; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x9, &x10, 0x0, x1, UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x11, &x12, x10, + x3, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x13, &x14, x12, + x5, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x15, &x16, x14, x7, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x17, &x18, x16, + x8, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x19, x18, x9, x1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x20, x18, x11, x3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x21, x18, x13, x5); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x22, x18, x15, x7); + out1[0] = x19; + out1[1] = x20; + out1[2] = x21; + out1[3] = x22; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub subtracts two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub( + uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + uint64_t x1; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2; + uint64_t x3; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4; + uint64_t x5; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6; + uint64_t x7; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8; + uint64_t x9; + uint64_t x10; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x11; + uint64_t x12; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x13; + uint64_t x14; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x15; + uint64_t x16; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x17; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64( + &x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x10, &x11, 0x0, x1, (x9 & UINT16_C(0xc99))); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x12, &x13, x11, + x3, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x14, &x15, x13, + x5, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x16, &x17, x15, x7, (x9 & UINT64_C(0x8000000000000000))); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp negates a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp( + uint64_t out1[4], const uint64_t arg1[4]) { + uint64_t x1; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2; + uint64_t x3; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4; + uint64_t x5; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6; + uint64_t x7; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8; + uint64_t x9; + uint64_t x10; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x11; + uint64_t x12; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x13; + uint64_t x14; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x15; + uint64_t x16; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x17; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x1, &x2, 0x0, + 0x0, (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x3, &x4, x2, + 0x0, (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x5, &x6, x4, + 0x0, (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x7, &x8, x6, + 0x0, (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64( + &x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x10, &x11, 0x0, x1, (x9 & UINT16_C(0xc99))); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x12, &x13, x11, + x3, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x14, &x15, x13, + x5, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x16, &x17, x15, x7, (x9 & UINT64_C(0x8000000000000000))); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery translates a field element out of the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^4) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery( + uint64_t out1[4], const uint64_t arg1[4]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x9; + uint64_t x10; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint64_t x16; + uint64_t x17; + uint64_t x18; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x19; + uint64_t x20; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x21; + uint64_t x22; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x23; + uint64_t x24; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x25; + uint64_t x26; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x27; + uint64_t x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x35; + uint64_t x36; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x37; + uint64_t x38; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x39; + uint64_t x40; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x41; + uint64_t x42; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x43; + uint64_t x44; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x45; + uint64_t x46; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47; + uint64_t x48; + uint64_t x49; + uint64_t x50; + uint64_t x51; + uint64_t x52; + uint64_t x53; + uint64_t x54; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x55; + uint64_t x56; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x57; + uint64_t x58; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x59; + uint64_t x60; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x61; + uint64_t x62; + uint64_t x63; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x64; + uint64_t x65; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x66; + uint64_t x67; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x68; + uint64_t x69; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x70; + uint64_t x71; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x72; + uint64_t x73; + uint64_t x74; + uint64_t x75; + uint64_t x76; + x1 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x2, &x3, x1, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x4, &x5, x2, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x6, &x7, x2, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x8, &x9, 0x0, x1, + x6); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x10, &x11, 0x0, (x9 + x7), (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x12, &x13, x10, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x14, &x15, x12, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x16, &x17, x12, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x18, &x19, 0x0, + x5, x14); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x20, &x21, 0x0, + x10, x16); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x22, &x23, 0x0, (((uint64_t)x21 + x11) + x17), (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x24, &x25, x23, + x4, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x26, &x27, x25, + x18, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x28, &x29, x22, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x30, &x31, x28, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x32, &x33, x28, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x34, &x35, 0x0, + x22, x32); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x36, &x37, x35, + x24, x33); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x38, &x39, x37, + x26, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x40, &x41, x39, (x27 + (x19 + x15)), x30); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x42, &x43, 0x0, + x36, (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x44, &x45, x43, + x38, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x46, &x47, x45, + x40, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x48, &x49, x42, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x50, &x51, x48, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x52, &x53, x48, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x54, &x55, 0x0, + x42, x52); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x56, &x57, x55, + x44, x53); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x58, &x59, x57, + x46, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x60, &x61, x59, (x47 + (x41 + x31)), x50); + x62 = (x61 + x51); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x63, &x64, 0x0, x56, UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x65, &x66, x64, + x58, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x67, &x68, x66, + x60, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x69, &x70, x68, x62, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x71, &x72, x70, + 0x0, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x73, x72, x63, + x56); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x74, x72, x65, + x58); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x75, x72, x67, + x60); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x76, x72, x69, + x62); + out1[0] = x73; + out1[1] = x74; + out1[2] = x75; + out1[3] = x76; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery translates a field element into the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = eval arg1 mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery( + uint64_t out1[4], const uint64_t arg1[4]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12; + uint64_t x13; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14; + uint64_t x15; + uint64_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x22; + uint64_t x23; + uint64_t x24; + uint64_t x25; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x26; + uint64_t x27; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x28; + uint64_t x29; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x30; + uint64_t x31; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t x36; + uint64_t x37; + uint64_t x38; + uint64_t x39; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x40; + uint64_t x41; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x42; + uint64_t x43; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x44; + uint64_t x45; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x46; + uint64_t x47; + uint64_t x48; + uint64_t x49; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x50; + uint64_t x51; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x52; + uint64_t x53; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x54; + uint64_t x55; + uint64_t x56; + uint64_t x57; + uint64_t x58; + uint64_t x59; + uint64_t x60; + uint64_t x61; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x62; + uint64_t x63; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x64; + uint64_t x65; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x66; + uint64_t x67; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x68; + uint64_t x69; + uint64_t x70; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x71; + uint64_t x72; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x73; + uint64_t x74; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x75; + uint64_t x76; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x77; + uint64_t x78; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x79; + uint64_t x80; + uint64_t x81; + uint64_t x82; + uint64_t x83; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x1, &x2, (arg1[0]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x3, &x4, x1, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x5, &x6, x3, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x7, &x8, x3, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x9, &x10, (arg1[1]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x11, &x12, 0x0, + x1, x7); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x13, &x14, 0x0, ((x12 + x2) + x8), x9); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x15, &x16, x13, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x17, &x18, x15, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x19, &x20, x15, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x21, &x22, 0x0, + x6, x17); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x23, &x24, (arg1[2]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x25, &x26, 0x0, + x13, x19); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x27, &x28, 0x0, ((x26 + (x14 + x10)) + x20), x23); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x29, &x30, x28, + x5, x24); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x31, &x32, x30, + x21, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x33, &x34, x27, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x35, &x36, x33, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x37, &x38, x33, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x39, &x40, 0x0, + x27, x37); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x41, &x42, x40, + x29, x38); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x43, &x44, x42, + x31, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x45, &x46, x44, (x32 + (x22 + x18)), x35); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x47, &x48, (arg1[3]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x49, &x50, 0x0, + x41, x47); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x51, &x52, x50, + x43, x48); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x53, &x54, x52, + x45, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x55, &x56, x49, UINT64_C(0xbd667ab8a3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64( + &x57, &x58, x55, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u64(&x59, &x60, x55, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x61, &x62, 0x0, + x49, x59); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x63, &x64, x62, + x51, x60); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64(&x65, &x66, x64, + x53, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u64( + &x67, &x68, x66, (x54 + (x46 + x36)), x57); + x69 = (x68 + x58); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x70, &x71, 0x0, x63, UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x72, &x73, x71, + x65, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x74, &x75, x73, + x67, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64( + &x76, &x77, x75, x69, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u64(&x78, &x79, x77, + 0x0, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x80, x79, x70, + x63); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x81, x79, x72, + x65); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x82, x79, x74, + x67); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64(&x83, x79, x76, + x69); + out1[0] = x80; + out1[1] = x81; + out1[2] = x82; + out1[3] = x83; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero( + uint64_t *out1, const uint64_t arg1[4]) { + uint64_t x1; + x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | (uint64_t)0x0)))); + *out1 = x1; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_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]] + * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + uint64_t out1[4], fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, + const uint64_t arg2[4], const uint64_t arg3[4]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64( + &x1, arg1, (arg2[0]), (arg3[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64( + &x2, arg1, (arg2[1]), (arg3[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64( + &x3, arg1, (arg2[2]), (arg3[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u64( + &x4, arg1, (arg2[3]), (arg3[3])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31] + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * 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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes( + uint8_t out1[32], const uint64_t arg1[4]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint8_t x6; + uint64_t x7; + uint8_t x8; + uint64_t x9; + uint8_t x10; + uint64_t x11; + uint8_t x12; + uint64_t x13; + uint8_t x14; + uint64_t x15; + uint8_t x16; + uint8_t x17; + uint8_t x18; + uint8_t x19; + uint64_t x20; + uint8_t x21; + uint64_t x22; + uint8_t x23; + uint64_t x24; + uint8_t x25; + uint64_t x26; + uint8_t x27; + uint64_t x28; + uint8_t x29; + uint64_t x30; + uint8_t x31; + uint8_t x32; + uint8_t x33; + uint8_t x34; + uint64_t x35; + uint8_t x36; + uint64_t x37; + uint8_t x38; + uint64_t x39; + uint8_t x40; + uint64_t x41; + uint8_t x42; + uint64_t x43; + uint8_t x44; + uint64_t x45; + uint8_t x46; + uint8_t x47; + uint8_t x48; + uint8_t x49; + uint64_t x50; + uint8_t x51; + uint64_t x52; + uint8_t x53; + uint64_t x54; + uint8_t x55; + uint64_t x56; + uint8_t x57; + uint64_t x58; + uint8_t x59; + uint64_t x60; + uint8_t x61; + uint8_t x62; + uint8_t x63; + x1 = (arg1[3]); + x2 = (arg1[2]); + x3 = (arg1[1]); + x4 = (arg1[0]); + x5 = (x4 >> 8); + x6 = (uint8_t)(x4 & UINT8_C(0xff)); + x7 = (x5 >> 8); + x8 = (uint8_t)(x5 & UINT8_C(0xff)); + x9 = (x7 >> 8); + x10 = (uint8_t)(x7 & UINT8_C(0xff)); + x11 = (x9 >> 8); + x12 = (uint8_t)(x9 & UINT8_C(0xff)); + x13 = (x11 >> 8); + x14 = (uint8_t)(x11 & UINT8_C(0xff)); + x15 = (x13 >> 8); + x16 = (uint8_t)(x13 & UINT8_C(0xff)); + x17 = (uint8_t)(x15 >> 8); + x18 = (uint8_t)(x15 & UINT8_C(0xff)); + x19 = (uint8_t)(x17 & UINT8_C(0xff)); + x20 = (x3 >> 8); + x21 = (uint8_t)(x3 & UINT8_C(0xff)); + x22 = (x20 >> 8); + x23 = (uint8_t)(x20 & UINT8_C(0xff)); + x24 = (x22 >> 8); + x25 = (uint8_t)(x22 & UINT8_C(0xff)); + x26 = (x24 >> 8); + x27 = (uint8_t)(x24 & UINT8_C(0xff)); + x28 = (x26 >> 8); + x29 = (uint8_t)(x26 & UINT8_C(0xff)); + x30 = (x28 >> 8); + x31 = (uint8_t)(x28 & UINT8_C(0xff)); + x32 = (uint8_t)(x30 >> 8); + x33 = (uint8_t)(x30 & UINT8_C(0xff)); + x34 = (uint8_t)(x32 & UINT8_C(0xff)); + x35 = (x2 >> 8); + x36 = (uint8_t)(x2 & UINT8_C(0xff)); + x37 = (x35 >> 8); + x38 = (uint8_t)(x35 & UINT8_C(0xff)); + x39 = (x37 >> 8); + x40 = (uint8_t)(x37 & UINT8_C(0xff)); + x41 = (x39 >> 8); + x42 = (uint8_t)(x39 & UINT8_C(0xff)); + x43 = (x41 >> 8); + x44 = (uint8_t)(x41 & UINT8_C(0xff)); + x45 = (x43 >> 8); + x46 = (uint8_t)(x43 & UINT8_C(0xff)); + x47 = (uint8_t)(x45 >> 8); + x48 = (uint8_t)(x45 & UINT8_C(0xff)); + x49 = (uint8_t)(x47 & UINT8_C(0xff)); + x50 = (x1 >> 8); + x51 = (uint8_t)(x1 & UINT8_C(0xff)); + x52 = (x50 >> 8); + x53 = (uint8_t)(x50 & UINT8_C(0xff)); + x54 = (x52 >> 8); + x55 = (uint8_t)(x52 & UINT8_C(0xff)); + x56 = (x54 >> 8); + x57 = (uint8_t)(x54 & UINT8_C(0xff)); + x58 = (x56 >> 8); + x59 = (uint8_t)(x56 & UINT8_C(0xff)); + x60 = (x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (uint8_t)(x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + out1[0] = x6; + out1[1] = x8; + out1[2] = x10; + out1[3] = x12; + out1[4] = x14; + out1[5] = x16; + out1[6] = x18; + out1[7] = x19; + out1[8] = x21; + out1[9] = x23; + out1[10] = x25; + out1[11] = x27; + out1[12] = x29; + out1[13] = x31; + out1[14] = x33; + out1[15] = x34; + out1[16] = x36; + out1[17] = x38; + out1[18] = x40; + out1[19] = x42; + out1[20] = x44; + out1[21] = x46; + out1[22] = x48; + out1[23] = x49; + out1[24] = x51; + out1[25] = x53; + out1[26] = x55; + out1[27] = x57; + out1[28] = x59; + out1[29] = x61; + out1[30] = x63; + out1[31] = x62; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order. + * Preconditions: + * 0 ≤ bytes_eval arg1 < m + * Postconditions: + * eval out1 mod m = bytes_eval arg1 mod m + * 0 ≤ eval out1 < 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]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes( + uint64_t out1[4], const uint8_t arg1[32]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint8_t x8; + uint64_t x9; + uint64_t x10; + uint64_t x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint8_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + uint64_t x23; + uint8_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; + x1 = ((uint64_t)(arg1[31]) << 56); + x2 = ((uint64_t)(arg1[30]) << 48); + x3 = ((uint64_t)(arg1[29]) << 40); + x4 = ((uint64_t)(arg1[28]) << 32); + x5 = ((uint64_t)(arg1[27]) << 24); + x6 = ((uint64_t)(arg1[26]) << 16); + x7 = ((uint64_t)(arg1[25]) << 8); + x8 = (arg1[24]); + x9 = ((uint64_t)(arg1[23]) << 56); + x10 = ((uint64_t)(arg1[22]) << 48); + x11 = ((uint64_t)(arg1[21]) << 40); + x12 = ((uint64_t)(arg1[20]) << 32); + x13 = ((uint64_t)(arg1[19]) << 24); + x14 = ((uint64_t)(arg1[18]) << 16); + x15 = ((uint64_t)(arg1[17]) << 8); + x16 = (arg1[16]); + x17 = ((uint64_t)(arg1[15]) << 56); + x18 = ((uint64_t)(arg1[14]) << 48); + x19 = ((uint64_t)(arg1[13]) << 40); + x20 = ((uint64_t)(arg1[12]) << 32); + x21 = ((uint64_t)(arg1[11]) << 24); + x22 = ((uint64_t)(arg1[10]) << 16); + x23 = ((uint64_t)(arg1[9]) << 8); + x24 = (arg1[8]); + x25 = ((uint64_t)(arg1[7]) << 56); + x26 = ((uint64_t)(arg1[6]) << 48); + x27 = ((uint64_t)(arg1[5]) << 40); + x28 = ((uint64_t)(arg1[4]) << 32); + x29 = ((uint64_t)(arg1[3]) << 24); + x30 = ((uint64_t)(arg1[2]) << 16); + x31 = ((uint64_t)(arg1[1]) << 8); + x32 = (arg1[0]); + x33 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + (x26 + x25))))))); + x34 = (x33 & UINT64_C(0xffffffffffffffff)); + x35 = (x8 + (x7 + (x6 + (x5 + (x4 + (x3 + (x2 + x1))))))); + x36 = (x16 + (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9))))))); + x37 = (x24 + (x23 + (x22 + (x21 + (x20 + (x19 + (x18 + x17))))))); + x38 = (x37 & UINT64_C(0xffffffffffffffff)); + x39 = (x36 & UINT64_C(0xffffffffffffffff)); + out1[0] = x34; + out1[1] = x38; + out1[2] = x39; + out1[3] = x35; +} + +/* 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_GostR3410_2001_CryptoPro_B_ParamSet/fe_inv.op3 + * sliding window w=5 + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t23, t25; + + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t1, acc); + for (i = 0; i < 9; i++) + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t25, acc); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t23, t25, acc); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t23, acc); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, t1); + for (i = 0; i < 247; i++) + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(acc, acc, t25); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(output, acc, t23); +} + +/* curve coefficient constants */ + +static const limb_t const_one[4] = { + UINT64_C(0xFFFFFFFFFFFFF367), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)}; + +static const limb_t const_b[4] = { + UINT64_C(0x8DCC455AA9C5A084), UINT64_C(0x91AB42DF6CF438A8), + UINT64_C(0x8F8AA907EEAC7D11), UINT64_C(0x3CE5D221F6285375)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[27][16] = { + { + {{UINT64_C(0xFFFFFFFFFFFFF367), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)}, + {UINT64_C(0xDDDC64B3570C7410), UINT64_C(0xA7B0992513172887), + UINT64_C(0x0C4E5C4C4B6382DB), UINT64_C(0x2763DB0F124768DE)}}, + {{UINT64_C(0xCD3E57B68457D15D), UINT64_C(0xEB688F7FBEA56E83), + UINT64_C(0x235A123C6A13C5CE), UINT64_C(0x0CD7EB9D50F57A6D)}, + {UINT64_C(0xC0124E91544C1965), UINT64_C(0x4D9C172962AFA35E), + UINT64_C(0x0F92F2C30037C554), UINT64_C(0x1D8998680A3F2665)}}, + {{UINT64_C(0x9DE4B21355F43EFF), UINT64_C(0x2E110A425C9E63F5), + UINT64_C(0x9350A9C31CE5A6DF), UINT64_C(0x377CBF0BA332315E)}, + {UINT64_C(0x2805DD4820F0D1B5), UINT64_C(0x3B1975660F9723E5), + UINT64_C(0xA1CCA78C84B79937), UINT64_C(0x4F87BB1B94D5E03D)}}, + {{UINT64_C(0xE428FBFB5652C96F), UINT64_C(0x2E9A14D2D261BDD1), + UINT64_C(0x082D82967453B76A), UINT64_C(0x61EA580E7AC87B02)}, + {UINT64_C(0xA0F8C2BACF368FDB), UINT64_C(0xDF093380D73B2A28), + UINT64_C(0xFA0928B2EA8FE5D2), UINT64_C(0x77A674925F86D38A)}}, + {{UINT64_C(0xDFFAB41027670451), UINT64_C(0xEBC3D0171200AD3A), + UINT64_C(0xF68324F325F4F6C4), UINT64_C(0x4A24CD5F7D0EAFD0)}, + {UINT64_C(0xF8FBD489D3F6BD1C), UINT64_C(0x0F6B56D567B473DE), + UINT64_C(0x6FB063DECACF0D6B), UINT64_C(0x27F2E7E996DC574B)}}, + {{UINT64_C(0xA6A1064593937228), UINT64_C(0xAB7550B4A9165BBB), + UINT64_C(0xD682D4F1CB0EDBE8), UINT64_C(0x2261FCEC40E5AD8D)}, + {UINT64_C(0x9F2119C6CCBD4E18), UINT64_C(0x2FD094E9AAB09697), + UINT64_C(0x00331713E700929E), UINT64_C(0x6C5F2EFE54338FE1)}}, + {{UINT64_C(0xD631401742FFF78A), UINT64_C(0x38F23A912087E055), + UINT64_C(0xE30E809C10EF1CAC), UINT64_C(0x3BCB0A542432FF74)}, + {UINT64_C(0x2B4B5B97B31509E6), UINT64_C(0x117FE9D73E54AF47), + UINT64_C(0xE513C0BE52F63ACA), UINT64_C(0x41ED8ADAB1C80A6B)}}, + {{UINT64_C(0x61A31837E0A79FCD), UINT64_C(0x8F742B5751D3DE38), + UINT64_C(0x10635FCD41354B55), UINT64_C(0x61F30C61946510BE)}, + {UINT64_C(0x9183D6776C416DAC), UINT64_C(0x391B7B42345431CB), + UINT64_C(0xE3D6F0847C254A8D), UINT64_C(0x777E1F6219D320D8)}}, + {{UINT64_C(0x090E633FF05BD85D), UINT64_C(0x546C41A0240392ED), + UINT64_C(0x6BBCF15D9F4139CA), UINT64_C(0x73F5B6577FFDA5DA)}, + {UINT64_C(0xBC04E353E0622A57), UINT64_C(0xCBD8F01E6E6414F4), + UINT64_C(0x53377C0B8C3C0CC5), UINT64_C(0x6D302331E0A14548)}}, + {{UINT64_C(0x235487F83D6D456E), UINT64_C(0xBD92203DB3FDCDCF), + UINT64_C(0x15B13D60CFFDA977), UINT64_C(0x22DCB48731A1C4B5)}, + {UINT64_C(0xA367FB4EC76ED9A2), UINT64_C(0x1E4F7956C0C86AF4), + UINT64_C(0x6F087C495B012AD7), UINT64_C(0x33437E4A4949B444)}}, + {{UINT64_C(0x261B44FEB7CDDB38), UINT64_C(0xDCE2FE47419216AD), + UINT64_C(0xA4CE17FF9428657B), UINT64_C(0x7CE64F48F8329049)}, + {UINT64_C(0x4CE742117289C114), UINT64_C(0x0E6224098C212A23), + UINT64_C(0xCF75BF452096719D), UINT64_C(0x6F5535817BDC1600)}}, + {{UINT64_C(0xE776AA0CB941CBC9), UINT64_C(0x16D670E0951AAED3), + UINT64_C(0x79C019DF4B1EC097), UINT64_C(0x635A66BB12266D30)}, + {UINT64_C(0x030D843E023AAFD2), UINT64_C(0x10FB61576466108F), + UINT64_C(0x93774BEC08D568D5), UINT64_C(0x29D2796204C1EE73)}}, + {{UINT64_C(0x6F0F4C2EE00BBC21), UINT64_C(0x9EB34C58A30AB92F), + UINT64_C(0x2153D901AE34908B), UINT64_C(0x136A7E1F4EDC188F)}, + {UINT64_C(0xF709BF5D8BC45EE4), UINT64_C(0xEA6984E44FAD9A54), + UINT64_C(0xFC8E6F8AAF5140EB), UINT64_C(0x25EBF0DE87756E47)}}, + {{UINT64_C(0x5C2A97265B1D4B9F), UINT64_C(0xBE235DFD68E93FC7), + UINT64_C(0x7766BDB9471A4EA0), UINT64_C(0x476D17CCD9909CD9)}, + {UINT64_C(0x4960E5B47B398BC4), UINT64_C(0x909D0F170F58F328), + UINT64_C(0x1ABF7E02230EF508), UINT64_C(0x6DE6B3E1D29239C9)}}, + {{UINT64_C(0xCCF0AA2885A6DBE3), UINT64_C(0xA5E4B325823C606C), + UINT64_C(0xADE98B2A15505FC6), UINT64_C(0x4D4E770302E20C3B)}, + {UINT64_C(0x241964174730DF64), UINT64_C(0x3DD47817A914A59D), + UINT64_C(0x4D7A317EC4FDFD97), UINT64_C(0x3767E545BE12AA72)}}, + {{UINT64_C(0xA0C2A028165C7BF4), UINT64_C(0xCD4DA6EA36A0B483), + UINT64_C(0x1E1E63323AF53195), UINT64_C(0x7A025E238D77188F)}, + {UINT64_C(0xB3CF03B908D2CEF2), UINT64_C(0x8FEE9BB825A0AFA6), + UINT64_C(0x855340E088111895), UINT64_C(0x32E3EF014FB8F8A3)}}, + }, + { + {{UINT64_C(0x33EBE39DEBF87807), UINT64_C(0xB048F96CDBDEFF76), + UINT64_C(0xA0496C3C342A3087), UINT64_C(0x7623E19250953679)}, + {UINT64_C(0x12F767114B932390), UINT64_C(0xF80851EAACECE2F7), + UINT64_C(0xE447465BE5B280EA), UINT64_C(0x0412ADE811115958)}}, + {{UINT64_C(0x982F1AC8B5EB0DC2), UINT64_C(0x8464E052BBBCC880), + UINT64_C(0xC927B59601335D53), UINT64_C(0x4B0C6F5A4DA4D80B)}, + {UINT64_C(0x101E1878E04783AF), UINT64_C(0x50458FFC41D8A690), + UINT64_C(0x11499D881B77DFBF), UINT64_C(0x46DC7D221F77A937)}}, + {{UINT64_C(0xE9AD22CE620E52C0), UINT64_C(0x0990D6AA4140F356), + UINT64_C(0x0F6B2EF70CBBEEE5), UINT64_C(0x2C67DC80EAD414C6)}, + {UINT64_C(0xE17182BC23D4CD20), UINT64_C(0xFC8FE3CBC13DDEA9), + UINT64_C(0xD1E4A7B83BABC06D), UINT64_C(0x52EA05CC71C06DB7)}}, + {{UINT64_C(0xF8ABB7700D022B5B), UINT64_C(0x362B8059199DC689), + UINT64_C(0x5D887A4D26BBDEC8), UINT64_C(0x7835F183F7FC2A01)}, + {UINT64_C(0xEEDE12F5DE99DF34), UINT64_C(0xBE952638A3082301), + UINT64_C(0x829FDF804C35A162), UINT64_C(0x205A2252C2B9645E)}}, + {{UINT64_C(0xDE284DA91356E14C), UINT64_C(0xE40CEFE0C37415FE), + UINT64_C(0x62BE93E947F6016E), UINT64_C(0x2DD989045DBFE2F6)}, + {UINT64_C(0x195B0E982EBC70F9), UINT64_C(0x7E52840DF01F4D43), + UINT64_C(0x1AFB1FDF4B1F6AB4), UINT64_C(0x050AABB820B3E491)}}, + {{UINT64_C(0xC59E1EDBC645DAD4), UINT64_C(0x5AF6B2DC565A286D), + UINT64_C(0xC399A48A13076366), UINT64_C(0x19F4881F4AC0E5B9)}, + {UINT64_C(0xC07D02A1CD5AC339), UINT64_C(0x18FBD088ED628A55), + UINT64_C(0x2D33C6F4FFA4788E), UINT64_C(0x52E9AE42CCB832E7)}}, + {{UINT64_C(0xA47091AE4E5E934E), UINT64_C(0x2542CE1391CED3C6), + UINT64_C(0xDDE01FD58FC47857), UINT64_C(0x6BA6E5694304EAA9)}, + {UINT64_C(0x2FF0278BE24091A9), UINT64_C(0xB895F0AB782BBCE0), + UINT64_C(0xA80CCC97AB8B8828), UINT64_C(0x6A54B96168A7D8FE)}}, + {{UINT64_C(0x15E1F5ADBAC4581A), UINT64_C(0x91620EF0D4BAA751), + UINT64_C(0x4E65731FC7273C4D), UINT64_C(0x14B166CB7EEE33B5)}, + {UINT64_C(0x7B0EFFA53CD06080), UINT64_C(0x4491156A8CF95FF9), + UINT64_C(0xC8C64C39E2258574), UINT64_C(0x3D48DA9D13315CE9)}}, + {{UINT64_C(0x97A098A399866CE5), UINT64_C(0xF4CCDB40023A1167), + UINT64_C(0x4BB32981F8094782), UINT64_C(0x7342CC98C7D5FD13)}, + {UINT64_C(0x3C1C5B1878B99D4E), UINT64_C(0x1277668FF4762AC9), + UINT64_C(0x612431D76AE50E4F), UINT64_C(0x36C174E036F9071C)}}, + {{UINT64_C(0x39194E879327BA7F), UINT64_C(0xC4D251FF7237FA1A), + UINT64_C(0x55ED3CD42BA5EB8D), UINT64_C(0x0263AF07BA590188)}, + {UINT64_C(0xB4853127EFA82CF3), UINT64_C(0x2CC2D2202B8E761D), + UINT64_C(0x4582B81E2722B490), UINT64_C(0x1DA7680A610AA621)}}, + {{UINT64_C(0x06A669EE30D297D4), UINT64_C(0xC336B048E133D393), + UINT64_C(0xB733A2C493B7B41B), UINT64_C(0x427CC233C7A8E721)}, + {UINT64_C(0x727C14F12867BB00), UINT64_C(0x756F4C7AA736035E), + UINT64_C(0xB72A3EDE26327A22), UINT64_C(0x4AEDE2BB77F73F28)}}, + {{UINT64_C(0xC8A3612FA7282ED0), UINT64_C(0xE4AD8B40B0150579), + UINT64_C(0xAB1DE11D0C3FEE4B), UINT64_C(0x613AAD4833B31F23)}, + {UINT64_C(0xE74AB8565C91BD21), UINT64_C(0x499177357953D695), + UINT64_C(0x3831EB601A53D74F), UINT64_C(0x245977A054DEB1A6)}}, + {{UINT64_C(0x15972E4DFFFC1468), UINT64_C(0xA758D9CB141DC24C), + UINT64_C(0x5E76FCDFED8694C5), UINT64_C(0x5F9DAF35069B7A5E)}, + {UINT64_C(0xFE50FCE4501B5415), UINT64_C(0x6442CF6758CFDE50), + UINT64_C(0xA89C6DB438E5F4D0), UINT64_C(0x21F012DBF5D4FEFC)}}, + {{UINT64_C(0x2A1170AD98CB9A81), UINT64_C(0x934BD9D5036C5E45), + UINT64_C(0x27DF152ECA5095B1), UINT64_C(0x682698DBCCEEE508)}, + {UINT64_C(0x1F4FE3A2B973FB5F), UINT64_C(0xD33CBEBE792C7D4D), + UINT64_C(0x99D37961E7B33A8F), UINT64_C(0x46B8993B7B6D015D)}}, + {{UINT64_C(0x93A3809B6FBAC8F7), UINT64_C(0x84861BF097C55DC4), + UINT64_C(0xA6F89EEA15BB65E3), UINT64_C(0x66AE1C5DA6E531D1)}, + {UINT64_C(0x643A14FCFD83DAEA), UINT64_C(0xA7A46D0DC585947B), + UINT64_C(0xFA20CF074FBA1274), UINT64_C(0x5999ED7B93578A7D)}}, + {{UINT64_C(0x36C8B6ED78E7C6CE), UINT64_C(0x6D400CA55E325F44), + UINT64_C(0xC6AE09B320B7AA5C), UINT64_C(0x1AF261C189EABC17)}, + {UINT64_C(0x64D6FFBBB9E778E4), UINT64_C(0x1C9E223E7FC64BEB), + UINT64_C(0x4D68B5205D75E6C0), UINT64_C(0x5A72B1D976677A06)}}, + }, + { + {{UINT64_C(0x62DB66406F08BB17), UINT64_C(0xC34F29DFAE75BB73), + UINT64_C(0xD501293D7DBD4851), UINT64_C(0x5EAA94CAAD1F604B)}, + {UINT64_C(0x39CFE9D1094408A8), UINT64_C(0xC0F6544CE8A476F2), + UINT64_C(0x9F6308B6A42D7607), UINT64_C(0x17F82949D727018F)}}, + {{UINT64_C(0xC44453CD9C4C4BD2), UINT64_C(0xA895E247EBD0B947), + UINT64_C(0x0AEB7AFCAEBC27F4), UINT64_C(0x2472FD08F04ABFAC)}, + {UINT64_C(0x319EC67D73E6E994), UINT64_C(0xD6533E4C798C5FC0), + UINT64_C(0xF4C3B24D3FB9AA89), UINT64_C(0x3EC580820A3B376B)}}, + {{UINT64_C(0x79732D6F144ACF7A), UINT64_C(0xFDD630C3911342DD), + UINT64_C(0xC577C4B34A630649), UINT64_C(0x14956A17BBA999D6)}, + {UINT64_C(0x523D3CC8A435A559), UINT64_C(0x488DC690ACDA8861), + UINT64_C(0x4CF70928F051C69A), UINT64_C(0x2D98D573955394CB)}}, + {{UINT64_C(0xEDB7BA2A23A4B840), UINT64_C(0x725EC496F6C2D93B), + UINT64_C(0x0C94818B8833BB3F), UINT64_C(0x51281A31B142B12A)}, + {UINT64_C(0x2A8A5706659EDA83), UINT64_C(0x3098F7507F9D6877), + UINT64_C(0x87AD0FDF2171F69F), UINT64_C(0x6B7067C31A6F2F28)}}, + {{UINT64_C(0x3B52107412B1E36F), UINT64_C(0x727A2432F81E4733), + UINT64_C(0xB75A2F3553F2CBBD), UINT64_C(0x46DE933854960EB0)}, + {UINT64_C(0xAC5344F8E561D908), UINT64_C(0x4BD40ECB12C67430), + UINT64_C(0x1698FD62EF499F97), UINT64_C(0x29EBD7AE6AE9FBD1)}}, + {{UINT64_C(0x9DEC249B1EC8110D), UINT64_C(0x2D19053AFD2F5C39), + UINT64_C(0xB1189807E01522DF), UINT64_C(0x24A04C16C1424C77)}, + {UINT64_C(0xA4FC7C7D24F72226), UINT64_C(0x763405FBA8322501), + UINT64_C(0xC5443C9A18F015E0), UINT64_C(0x6DEDA19BC55D6CEA)}}, + {{UINT64_C(0x4EF309769EAE2FF9), UINT64_C(0x2549B7F25741B21B), + UINT64_C(0x859ACD103BC23F01), UINT64_C(0x05C0358FBF5FB0D7)}, + {UINT64_C(0x85E53AA8FB6AB34C), UINT64_C(0x8DAAAA698FD2FD20), + UINT64_C(0xBE6D4D3416096FC9), UINT64_C(0x27572C88F8B8B831)}}, + {{UINT64_C(0xADB98DC547D56A25), UINT64_C(0x0CC764328B8E1DC6), + UINT64_C(0x032C738EBE48C4A1), UINT64_C(0x31372DAD94FC9CF0)}, + {UINT64_C(0x8E646A0C78A7DCB2), UINT64_C(0xA32F3E9C6ECD9885), + UINT64_C(0x280BB4AD6A3AD963), UINT64_C(0x7DEE1BC4817D4327)}}, + {{UINT64_C(0x1AE6A27BF8A7C1E1), UINT64_C(0x558C652FCBC527C7), + UINT64_C(0x4084B56EA65056F6), UINT64_C(0x3FD454596D4C838B)}, + {UINT64_C(0xF5C15AFD56DE792A), UINT64_C(0xF656FAA488959282), + UINT64_C(0x7F0D8EF41C07D63F), UINT64_C(0x44EFFF7DCD841ACC)}}, + {{UINT64_C(0xAC28F2A68D3695D8), UINT64_C(0x94959EB83F91E781), + UINT64_C(0x7693FFF7FEDD6E1F), UINT64_C(0x2512E6E1A9A699EF)}, + {UINT64_C(0x823400EB7955FAB7), UINT64_C(0xCF109EF994924C08), + UINT64_C(0x12E087793A709F32), UINT64_C(0x187D04139CC6484C)}}, + {{UINT64_C(0xD3932AFBEBDE477F), UINT64_C(0x9D5A542244538D8A), + UINT64_C(0x40B0B159166A87AF), UINT64_C(0x31294B3D41D5E078)}, + {UINT64_C(0x6C49C853E8C48222), UINT64_C(0x8FBE6620DCD0D611), + UINT64_C(0x9DDC7EE2F611007B), UINT64_C(0x12289A60E6652172)}}, + {{UINT64_C(0x8B85475BDACF80F7), UINT64_C(0xADBAB3539B5CAEF2), + UINT64_C(0x7C4090A38D2A7707), UINT64_C(0x271FA4F1DAB97830)}, + {UINT64_C(0x141B725253173E04), UINT64_C(0x4B483D6406D0B127), + UINT64_C(0x8FD15BCF063A7AF8), UINT64_C(0x59B19EAFE580F34C)}}, + {{UINT64_C(0xA7EEA8C49C0D79B6), UINT64_C(0x766FA113B9185109), + UINT64_C(0xB42D74F34642CC64), UINT64_C(0x51D0127BBB817476)}, + {UINT64_C(0x6DA097F58AB71448), UINT64_C(0x145872E5F95AD0C7), + UINT64_C(0xB7E934F3F1759436), UINT64_C(0x4EA883F93160ED1F)}}, + {{UINT64_C(0x30DC39B70CEABAE1), UINT64_C(0x49EC5EE8A606D766), + UINT64_C(0x230E276297FC46AF), UINT64_C(0x079A531F5BE79B8D)}, + {UINT64_C(0x48253BC2EF08C93F), UINT64_C(0x2D32AF02F124D043), + UINT64_C(0x85796D0DAF34D231), UINT64_C(0x06A6205C15F8CECD)}}, + {{UINT64_C(0x1FA77AFD47B00D1A), UINT64_C(0x429717B0E48CE97A), + UINT64_C(0x38FEF11D57433697), UINT64_C(0x3E91BED67D426687)}, + {UINT64_C(0x95919BF72AB4BFE9), UINT64_C(0x7A3F33FC97096B3A), + UINT64_C(0x0E0BBAC33DD8C82E), UINT64_C(0x2CE9EFCBF8EDB675)}}, + {{UINT64_C(0x2D44E99843D8B81D), UINT64_C(0x8ABFF4196D68A95C), + UINT64_C(0x639000A03B2A18DD), UINT64_C(0x7CD15413871E3ED3)}, + {UINT64_C(0xC059855B148F0378), UINT64_C(0x50147459616B62BF), + UINT64_C(0x53B699AF4D461110), UINT64_C(0x6A0D0EC7EC29E48D)}}, + }, + { + {{UINT64_C(0x5173322115797F35), UINT64_C(0x2F2982144BBE6644), + UINT64_C(0x7BC8FEC64A5EF621), UINT64_C(0x3D2BE7857F472F05)}, + {UINT64_C(0xA1C3A1C92765C427), UINT64_C(0xBACF08FE24155ACF), + UINT64_C(0xA9CC1A179D229948), UINT64_C(0x1918C97F27039FD8)}}, + {{UINT64_C(0x2CF393387843FF7B), UINT64_C(0x5FCBDE65258997F2), + UINT64_C(0x3980BF90165A98A3), UINT64_C(0x2E80607DBF9458E5)}, + {UINT64_C(0x5F646EB67019165C), UINT64_C(0xFA091FBEDDE34205), + UINT64_C(0x695348B669267AE3), UINT64_C(0x385B0B6AABC22051)}}, + {{UINT64_C(0x3CAE0756B537F78C), UINT64_C(0x3012A9588BE30367), + UINT64_C(0x32D26C06981A22C3), UINT64_C(0x7D091FAB2950E833)}, + {UINT64_C(0xD8E1B638797ACAAF), UINT64_C(0xE7021C8549F2EA10), + UINT64_C(0xCA382BC117A7AF3B), UINT64_C(0x08A5A81DBB809976)}}, + {{UINT64_C(0x00F499FD4287BB97), UINT64_C(0xFB6791CADAA9DAF2), + UINT64_C(0x9A19E4F3057B2B98), UINT64_C(0x6968D2FFC53C0223)}, + {UINT64_C(0xDC741EF5CE88509C), UINT64_C(0x38AE355D306A0570), + UINT64_C(0xFECF6589C23AF46B), UINT64_C(0x6C0E6ED16AD48836)}}, + {{UINT64_C(0x22B68698E363495D), UINT64_C(0x120005D039AF2BE3), + UINT64_C(0xE37B19650BF4BA69), UINT64_C(0x3B416E9326E64AE7)}, + {UINT64_C(0xFAED5088DEAC5C59), UINT64_C(0x67436ACCEB2518A5), + UINT64_C(0x636B52F891FA788D), UINT64_C(0x10B2A57A655153D1)}}, + {{UINT64_C(0xB18060A7833A984C), UINT64_C(0x7EF8374674833BAD), + UINT64_C(0xCBFAF742C5B3BC88), UINT64_C(0x7981DC36A1A7F135)}, + {UINT64_C(0xE70CCAFA5D076280), UINT64_C(0xEBA80EB707009D85), + UINT64_C(0x7D99D24C73778DE2), UINT64_C(0x1EFEE1BBA7262D50)}}, + {{UINT64_C(0xBC47F4A26A7CAB32), UINT64_C(0x53F290A7DD6E48A3), + UINT64_C(0x82257A1B92F35F9E), UINT64_C(0x73D17B318BB0AAB0)}, + {UINT64_C(0xBBD4522AC2DFFE96), UINT64_C(0x9C37DAA1E6EB0501), + UINT64_C(0xF4D4D568453DB6BE), UINT64_C(0x2868CBF5642AD2E4)}}, + {{UINT64_C(0x40A988E6ABE30C59), UINT64_C(0x5ADED92993057DEC), + UINT64_C(0x18FD7E04DACD37B0), UINT64_C(0x6E3FB81E8228ACA5)}, + {UINT64_C(0xFF3EEFE64104B0C9), UINT64_C(0xD7DD05E731CA120A), + UINT64_C(0xAFD3CF1CD01C1CF8), UINT64_C(0x4D0CD264831BC4E9)}}, + {{UINT64_C(0x2641B32182CAC14A), UINT64_C(0x34EB149570990E6C), + UINT64_C(0x3E5AF58FA1C74CA6), UINT64_C(0x11B50821616B7A2D)}, + {UINT64_C(0x891636E3C4FA9719), UINT64_C(0xAEE84C27107DD719), + UINT64_C(0xA2B0D83EC1872E75), UINT64_C(0x7DD62CBC7383069E)}}, + {{UINT64_C(0xEBA4A024C81B7E15), UINT64_C(0x1CC37E0804516070), + UINT64_C(0xEF1F0401F90CE59D), UINT64_C(0x3B4259D5E062E133)}, + {UINT64_C(0x87A1DBFACF2CA1DD), UINT64_C(0xCFBFB15F61FD1AFB), + UINT64_C(0xFBFD9899ECF4C7BA), UINT64_C(0x57C84CEE2725FA50)}}, + {{UINT64_C(0x8B0B7414EFA6E3D0), UINT64_C(0xD9725C5EB3D04224), + UINT64_C(0x670E6C508A91371E), UINT64_C(0x4D1304679B25BD3B)}, + {UINT64_C(0x18D77D155CF18D4F), UINT64_C(0xEF80DC411CA09677), + UINT64_C(0x6F3A961BB9A05CF9), UINT64_C(0x0BB8A5187C1433A4)}}, + {{UINT64_C(0xAC0CF52AB33FCF05), UINT64_C(0xAD03692F1CDC7782), + UINT64_C(0xB345BAE6AA02B77E), UINT64_C(0x05096694456FCFA9)}, + {UINT64_C(0xA898444825D4CF32), UINT64_C(0xD76393E315184188), + UINT64_C(0x7D4A8C0CEA069BED), UINT64_C(0x4D22268D11E18347)}}, + {{UINT64_C(0xC2A0BB753CB3C0F1), UINT64_C(0x61F4EC4C8EBA58C6), + UINT64_C(0x5D3F0D44DFC4A903), UINT64_C(0x0B6CE81BF9B6F79A)}, + {UINT64_C(0xF694A44A94E49623), UINT64_C(0xCFCBB7E11BDF75E0), + UINT64_C(0x20CEE1BDE0337E13), UINT64_C(0x694EA40BDFF02E18)}}, + {{UINT64_C(0xC21BE0FA78D1DC2E), UINT64_C(0x08B4D9A5ED0E49E0), + UINT64_C(0x676731AB827F0B4C), UINT64_C(0x674ECC79EBAB5894)}, + {UINT64_C(0xB29BD0D439ABB148), UINT64_C(0x8207A8F82378A63A), + UINT64_C(0xE36A549D1E4C29C2), UINT64_C(0x380D48DE3F1C255B)}}, + {{UINT64_C(0x6AB6F887E5F2C87E), UINT64_C(0xE92C7345A01AEC86), + UINT64_C(0x697F45208660C26F), UINT64_C(0x4F2488E09B58015B)}, + {UINT64_C(0xB2410B3EBB41900C), UINT64_C(0x31267500BE1A8A39), + UINT64_C(0xA7C9997CB9140554), UINT64_C(0x335B18061CD41524)}}, + {{UINT64_C(0xB836FD9F14873270), UINT64_C(0x1AE0F512E3243EC5), + UINT64_C(0xA743E30483B9AB74), UINT64_C(0x1569C30D3A5758C7)}, + {UINT64_C(0x003CEF9A9E8F9E52), UINT64_C(0x557AFB4A8C22119E), + UINT64_C(0x66F2487EF223A966), UINT64_C(0x7FA00273A519378F)}}, + }, + { + {{UINT64_C(0x812C024F7B08C1C4), UINT64_C(0xC6017986ADBA8AD9), + UINT64_C(0x59C7B16C0601BD82), UINT64_C(0x41B6A45C0CFA5622)}, + {UINT64_C(0x353A67D583C1E3E8), UINT64_C(0x9A83438EC65F5059), + UINT64_C(0x9995037786EEA346), UINT64_C(0x74E2F4BD330D2570)}}, + {{UINT64_C(0xDB8E53C1B4A8BDA8), UINT64_C(0xA850047E2C003C77), + UINT64_C(0xFFD48A731B018831), UINT64_C(0x24F96CB68B325062)}, + {UINT64_C(0x3779CA4DCD2B821B), UINT64_C(0xC2AFBF6EC3159CE7), + UINT64_C(0x8A580B1A10F18DE9), UINT64_C(0x37043D0D8CF75334)}}, + {{UINT64_C(0x0451DCDAECCCF2E8), UINT64_C(0xCF7A3AD9752A134F), + UINT64_C(0xD5754596FBDAE56C), UINT64_C(0x15237D73F4CDCF6A)}, + {UINT64_C(0x1DF5912CECA37967), UINT64_C(0x60934339336CD97E), + UINT64_C(0xA4E523FE434DDC01), UINT64_C(0x24E81DC679DBE24C)}}, + {{UINT64_C(0x28F0D73BC83B2B7C), UINT64_C(0x45BE220F7B5DE1AA), + UINT64_C(0x1B785230B136A877), UINT64_C(0x5A94122AAEFF115B)}, + {UINT64_C(0xEF895F0C8E598998), UINT64_C(0xCEE32B3EF4C622C3), + UINT64_C(0x2D080B1DB256CFD0), UINT64_C(0x672686D621075E15)}}, + {{UINT64_C(0xE85FB5759F9F26FE), UINT64_C(0x1DE57B8393A7966E), + UINT64_C(0xA9948DE8DD8CB696), UINT64_C(0x226C95A6758E685D)}, + {UINT64_C(0x38B0753B3729C663), UINT64_C(0xD46CA4D9410E4884), + UINT64_C(0x1D6FA5F977516FA4), UINT64_C(0x09A0FDB8696CFAFC)}}, + {{UINT64_C(0xD1DAD8E9CC7F6FD8), UINT64_C(0x7BB9F606022195A2), + UINT64_C(0x1B997396223A9346), UINT64_C(0x6ACD6F7C88DCFB04)}, + {UINT64_C(0x9029E5EB3AC52F65), UINT64_C(0xED1D7A0F935A39DE), + UINT64_C(0xF1D58C3A538D8914), UINT64_C(0x19153569B36B8342)}}, + {{UINT64_C(0xFF600354E2502156), UINT64_C(0xE386A20F733DA5EC), + UINT64_C(0xD6FBCBBB9D24D11D), UINT64_C(0x0B57498C0B06C843)}, + {UINT64_C(0x98F1FFF87A834667), UINT64_C(0x4AEB8788C7DF05F5), + UINT64_C(0x8CFA3B01C2681DA4), UINT64_C(0x1AECC0E82FA2FAEA)}}, + {{UINT64_C(0x3827886594C5CBC5), UINT64_C(0x9ADA7CAB041A755A), + UINT64_C(0xB38F762A8D891640), UINT64_C(0x28F6FBB200AD88F0)}, + {UINT64_C(0x3F9629E33709CD6D), UINT64_C(0xD2435A554912F483), + UINT64_C(0x305BEA64DFF5AB69), UINT64_C(0x4D29041A663BB0D9)}}, + {{UINT64_C(0xDC4BC9D4E2FD9338), UINT64_C(0x5389390DBA7938FC), + UINT64_C(0xC42B812DF329B218), UINT64_C(0x5E809B5EFA9F1956)}, + {UINT64_C(0xE2A89BAA523D74C3), UINT64_C(0x97CD9FFB78CBA7B5), + UINT64_C(0x25F953015B07BCD2), UINT64_C(0x4042C7052064BB3A)}}, + {{UINT64_C(0xD8B6ADA428D53BF9), UINT64_C(0x5E922CA5A4210F2D), + UINT64_C(0x9501F46AF05A1629), UINT64_C(0x28094E54C6CD71CD)}, + {UINT64_C(0x8D5484D5811285AD), UINT64_C(0xFB2168F41593EE86), + UINT64_C(0x693D3B32AC54A41D), UINT64_C(0x3DAFEC0728A5425C)}}, + {{UINT64_C(0x0E4CF0D0D12837A8), UINT64_C(0x19FA2CC9CF5273BB), + UINT64_C(0x56346BAE116A20C4), UINT64_C(0x4F3597FE0E436A36)}, + {UINT64_C(0x459D3FFBE8EB1B85), UINT64_C(0x7C7186725AE04130), + UINT64_C(0xA37C258660302740), UINT64_C(0x2871AF37913072D8)}}, + {{UINT64_C(0xD77249B78590319D), UINT64_C(0x73F7A684EB06B813), + UINT64_C(0x4C9DC5B971D1D580), UINT64_C(0x7C91A9F55A50A95B)}, + {UINT64_C(0x4F8F2E890475F161), UINT64_C(0xF34EC1DD538B7F94), + UINT64_C(0xB8FF6C65D46F2575), UINT64_C(0x79A2CE2C64433C80)}}, + {{UINT64_C(0x38448A531AEB7039), UINT64_C(0xF5EC03F7417189EC), + UINT64_C(0xFA095CA1EB92FF2B), UINT64_C(0x4612F720E4FCAEDB)}, + {UINT64_C(0xC945E966F30AAE0E), UINT64_C(0xF61CFE85340A7A1D), + UINT64_C(0xA2560BC6E42D7920), UINT64_C(0x07D7B321A692E9C7)}}, + {{UINT64_C(0xB9C26307592C60C5), UINT64_C(0xCECBC6C30F59D966), + UINT64_C(0x8BA31FD65459D89E), UINT64_C(0x1A4AF6B147C7FAE8)}, + {UINT64_C(0x66487766B431D720), UINT64_C(0x5D5973095108B845), + UINT64_C(0xA3B94FD7CA8E6E0D), UINT64_C(0x639519E355C6A48D)}}, + {{UINT64_C(0xAD3EE167052DC195), UINT64_C(0x4DF2BFC70947816B), + UINT64_C(0x5D463469ABADBB3C), UINT64_C(0x6F7AA885C33D4F96)}, + {UINT64_C(0x3DD27536FE06133C), UINT64_C(0x27A557B22796E7ED), + UINT64_C(0x1117CCB73D314A4F), UINT64_C(0x6F0C0AE023968946)}}, + {{UINT64_C(0x0A3D4DAEE2110C00), UINT64_C(0x0389D3A54C633A23), + UINT64_C(0xE167BDFA83AEC172), UINT64_C(0x067070CEFB38E8F1)}, + {UINT64_C(0x411373674DF220C5), UINT64_C(0xB255E5D359C39F05), + UINT64_C(0xE437984E043C75B3), UINT64_C(0x01DCD7716A22994A)}}, + }, + { + {{UINT64_C(0xD2880DF24C6FDDCF), UINT64_C(0x76A28FF28A00D80F), + UINT64_C(0x257CB1F80792F82C), UINT64_C(0x07938ABC605703EA)}, + {UINT64_C(0xD99F0AC95F61B0FE), UINT64_C(0x440DC63C8EC15433), + UINT64_C(0xD9BDDFF186AB5DDB), UINT64_C(0x3B8875DC744755EA)}}, + {{UINT64_C(0x01D904404938C9FB), UINT64_C(0x900657FD8DB6A890), + UINT64_C(0xDCC5068AF60A173A), UINT64_C(0x5F3EB242857C7B2A)}, + {UINT64_C(0x634240BDA4F0EB9E), UINT64_C(0xACDDA6C444E85C70), + UINT64_C(0x753F02AB0AABE4C5), UINT64_C(0x33D89D21C1D034E1)}}, + {{UINT64_C(0x4596B52D1279B25B), UINT64_C(0x494669D9A48014AE), + UINT64_C(0x9A26B6FC4FD22150), UINT64_C(0x394DE0BBF07D5A3F)}, + {UINT64_C(0x12DFE5A6634C1733), UINT64_C(0x33EC21D21EBC5177), + UINT64_C(0x454B4930527514CC), UINT64_C(0x7F23BD0F41405532)}}, + {{UINT64_C(0xB2879E7FBAC9DD30), UINT64_C(0x259BB1CB06CE7672), + UINT64_C(0x201DB42EBB97BE10), UINT64_C(0x112D60792EA35A8E)}, + {UINT64_C(0x7CC756D46B3B9933), UINT64_C(0x4BD24810781CE4DD), + UINT64_C(0x53CB4E388733247E), UINT64_C(0x47BD6A309DA66787)}}, + {{UINT64_C(0x8A700953BA600C8E), UINT64_C(0xD466F11DCF388C0D), + UINT64_C(0xD485F341E4A17A8E), UINT64_C(0x63278918234FC16D)}, + {UINT64_C(0xF4DDA875BB82046D), UINT64_C(0xD61E4E582945470A), + UINT64_C(0xCDB6C5BD6D0F8976), UINT64_C(0x44CD9E4D10A004A2)}}, + {{UINT64_C(0x595CD94249C4AA6E), UINT64_C(0xE5A901363DE400C8), + UINT64_C(0x4BCED3BD9DD12D9E), UINT64_C(0x3700CF9278E3D5E4)}, + {UINT64_C(0xECFFF49875A32D1A), UINT64_C(0xC28DDE373C4A54B2), + UINT64_C(0x8DC22352993CAE6D), UINT64_C(0x46CB540852ED7019)}}, + {{UINT64_C(0x71FFAED0EA94E7BF), UINT64_C(0xC0817D2CD5AE6185), + UINT64_C(0x7B72B8B95CF23687), UINT64_C(0x61DDE59960A450E1)}, + {UINT64_C(0x17CF0B10D13870E6), UINT64_C(0x7D08E1FB5F2930BB), + UINT64_C(0x8D0F4F5583807C14), UINT64_C(0x61EBFC1A6E6DB701)}}, + {{UINT64_C(0x247A3F650FCAFE68), UINT64_C(0x575480357AC2A25E), + UINT64_C(0xB7466CA53CD0FE06), UINT64_C(0x7B0D8B36BCC31AB3)}, + {UINT64_C(0x2FAAF49CA6D4358C), UINT64_C(0xD9E5E2FE3E9B4E31), + UINT64_C(0xA6A859A0F6086336), UINT64_C(0x0C2A442AA9C19F84)}}, + {{UINT64_C(0x66FEA8413BC0AD7D), UINT64_C(0xCD3A546C32C9158E), + UINT64_C(0xACD2EE7F8FE1DF7F), UINT64_C(0x10F58C0AEBE9621E)}, + {UINT64_C(0x80047C54478B667D), UINT64_C(0x9EAE5FAA89870DCE), + UINT64_C(0xC05BEB330520A005), UINT64_C(0x2CFBC921352AC891)}}, + {{UINT64_C(0x6842E6B8632F6D73), UINT64_C(0x6F2B57242B9FFAEA), + UINT64_C(0x7ACCC9829341D2FA), UINT64_C(0x6DAD9A1188809B65)}, + {UINT64_C(0x3411850CB6CC2240), UINT64_C(0x8547BCAFB64937E1), + UINT64_C(0x49AEDD5F6978F636), UINT64_C(0x38F5975285A53D2A)}}, + {{UINT64_C(0x5C38EB49F5F5A2D0), UINT64_C(0xE028121BE3BF779C), + UINT64_C(0x649997C8A783D5E3), UINT64_C(0x04DE984A2C06CC0F)}, + {UINT64_C(0x52C834B0A49D6239), UINT64_C(0x070A1B09628413AC), + UINT64_C(0x2FBE0CA5A8624A1E), UINT64_C(0x687D93C3268D930A)}}, + {{UINT64_C(0xC7CD6805314C47A4), UINT64_C(0x8BD0C630CE7A9A6D), + UINT64_C(0xCDB2DAD534F727BA), UINT64_C(0x7814C41425DB0189)}, + {UINT64_C(0xD7F9C5DC7DD9CAEE), UINT64_C(0xDA6EACC8798690E4), + UINT64_C(0x705794E36B675E01), UINT64_C(0x4A31D71475C5EC38)}}, + {{UINT64_C(0xC162A3EA0519D5F2), UINT64_C(0x92146A782958FABF), + UINT64_C(0x1E63CBE46CB31EB0), UINT64_C(0x77CE5AADFBC5AD0F)}, + {UINT64_C(0x3631E47032605DC6), UINT64_C(0xC7D1C72F43413DD3), + UINT64_C(0x171A37940DF6B7C9), UINT64_C(0x6D7117432B5A08BC)}}, + {{UINT64_C(0xDDC8057D509EF0F2), UINT64_C(0x05C0B92B6CABB486), + UINT64_C(0xD49692B64244D919), UINT64_C(0x4E181744D297F56E)}, + {UINT64_C(0x902F6E73F8CBB897), UINT64_C(0xC3B21FE156D01382), + UINT64_C(0xA858ABE146890F6D), UINT64_C(0x46B5E2C9506858AF)}}, + {{UINT64_C(0x30441281F4DEDE56), UINT64_C(0x13F06FBBA195AEDE), + UINT64_C(0xAD5F575B2FDD3BFF), UINT64_C(0x680F656D32ACB590)}, + {UINT64_C(0xFB60A8E1E3FAABA7), UINT64_C(0xC8FBC1E489A14827), + UINT64_C(0x5835453FA8616136), UINT64_C(0x02826A47E6F4926F)}}, + {{UINT64_C(0xAF4319A174F32180), UINT64_C(0x4C9FDD166C2C1712), + UINT64_C(0x59CA4FD4AC7E14A7), UINT64_C(0x07AA6E2FABBD4EA4)}, + {UINT64_C(0xB4BD441CFE9F121F), UINT64_C(0xDEBB4356CDA452C5), + UINT64_C(0xC29F1CFA51C9F451), UINT64_C(0x7E1EEF4C83F598D8)}}, + }, + { + {{UINT64_C(0xFC41A3215014135F), UINT64_C(0xBE95F9BA3EEADF3F), + UINT64_C(0x054B12123203A540), UINT64_C(0x6DD2FD173721C745)}, + {UINT64_C(0xF86B85785A682B59), UINT64_C(0x872AA481BE801F7D), + UINT64_C(0x64C1600C14F865F2), UINT64_C(0x4BDD47AA25365449)}}, + {{UINT64_C(0xC96A964CF3A3469F), UINT64_C(0x273C5C859F7DA0E3), + UINT64_C(0x88EDC4AC4C1A9DCD), UINT64_C(0x77623444B48E4CAA)}, + {UINT64_C(0x7AF34A9C31581FF7), UINT64_C(0x23328C37BB57F7CC), + UINT64_C(0xE920D8E98B7C86AB), UINT64_C(0x1C7A7A409DE6D64C)}}, + {{UINT64_C(0x0BCDCD2279B9451C), UINT64_C(0x2920B43558F5241B), + UINT64_C(0xC24DF7159B33EF3D), UINT64_C(0x15252C5BF2600224)}, + {UINT64_C(0xF9C8D8A69A9160B6), UINT64_C(0x3186F2F9A6B9A6B8), + UINT64_C(0xC37267DCA377E98A), UINT64_C(0x71319A0A37957189)}}, + {{UINT64_C(0x48E5033F6BAF6AE5), UINT64_C(0x72379B2EA460FCE9), + UINT64_C(0xFC753D47F3D2FA46), UINT64_C(0x3B67685AED9EDF72)}, + {UINT64_C(0x1608E304F712500F), UINT64_C(0xDFA358A49EE1B42A), + UINT64_C(0xE7A4B37634B8345C), UINT64_C(0x7D0E0BF306753C17)}}, + {{UINT64_C(0xA88526A68FA62042), UINT64_C(0xD6F32BB5393006BD), + UINT64_C(0x14804978A5DD5045), UINT64_C(0x34C02662BF0C5E13)}, + {UINT64_C(0xF9BEEBF9376E3E3D), UINT64_C(0xFD7740415923DC61), + UINT64_C(0xFE77BDFAF9735CF5), UINT64_C(0x2E476E224077CFCC)}}, + {{UINT64_C(0xAB8E52EB9BA457EF), UINT64_C(0x95F6C5FE0ABED212), + UINT64_C(0x7204B1A6386620FF), UINT64_C(0x463B7474DD180719)}, + {UINT64_C(0x7F7D27AAF991D8EE), UINT64_C(0xA7EB10858F67722D), + UINT64_C(0x78D7095BE331480A), UINT64_C(0x1DCC8C1266A1C8FA)}}, + {{UINT64_C(0xD4C39C183E6A04C1), UINT64_C(0x73DB1C4DB598ABEE), + UINT64_C(0x381F9780DF4A7D42), UINT64_C(0x3C19A23152F860CD)}, + {UINT64_C(0x7EC899343EF00740), UINT64_C(0x50867788F37FE0D5), + UINT64_C(0x502D870B43E84D4A), UINT64_C(0x5F8A84138F744749)}}, + {{UINT64_C(0x1C41AAADFAECCFE4), UINT64_C(0xC324F3B921461F41), + UINT64_C(0x165ABA3F4E90C0AB), UINT64_C(0x2F96CED55F88E7D3)}, + {UINT64_C(0x8CA366FCC0E52768), UINT64_C(0x6CCA017CA55249A7), + UINT64_C(0x41ED002F0F7EBCA2), UINT64_C(0x0C33B371A2BAF655)}}, + {{UINT64_C(0x3B94CD9C62B928CE), UINT64_C(0x5BC43A6A39729345), + UINT64_C(0x044D0C0FC47D223C), UINT64_C(0x3B64B38DB0493367)}, + {UINT64_C(0x82AFB645EB74A6C2), UINT64_C(0x0CB01E22D876D71C), + UINT64_C(0xCE2A7DCC29C6BCD0), UINT64_C(0x4753DE1CDFD644EC)}}, + {{UINT64_C(0xE69FC90362188792), UINT64_C(0xD91DB9BC4914328B), + UINT64_C(0x44953F4D3B68F8D0), UINT64_C(0x2950435D0654B283)}, + {UINT64_C(0xE599A4AEBE88F609), UINT64_C(0xF801CD9090F5D10E), + UINT64_C(0x0AB78DB1D4F1D3D9), UINT64_C(0x3ED9666AC0F71ECB)}}, + {{UINT64_C(0x6046A505E1E73E59), UINT64_C(0x8723A3ECF3B5C2E0), + UINT64_C(0x4BD95BF6E22C1555), UINT64_C(0x50DC33DB6DA421E9)}, + {UINT64_C(0xCFB51E95F1B01327), UINT64_C(0xE7013F2A199A8765), + UINT64_C(0xF486FEA777504B0B), UINT64_C(0x2AF0F7E9F9BA61C6)}}, + {{UINT64_C(0x9DBA1A02BE00B841), UINT64_C(0x488BA4558BED5F08), + UINT64_C(0xF6814A6467F1040E), UINT64_C(0x23AC4762DC252336)}, + {UINT64_C(0x25040F02F0ED0577), UINT64_C(0x65209B22C6FFAE9C), + UINT64_C(0xCC441A8C485AA0AC), UINT64_C(0x10DFACB659D63A8A)}}, + {{UINT64_C(0xBF4A0569C7D86B28), UINT64_C(0x5CDA94C4DBDA9DA4), + UINT64_C(0x2235C4CE69058335), UINT64_C(0x68FA5E7CD30C89E2)}, + {UINT64_C(0xBB286D3959097B5B), UINT64_C(0x87DA80BB9A20BA7E), + UINT64_C(0x85EF865E56F47E54), UINT64_C(0x5BB8786774ABFA5B)}}, + {{UINT64_C(0x5DB14FABDE2FA36E), UINT64_C(0x84E3B54677775F09), + UINT64_C(0xDA734523DA951D99), UINT64_C(0x04A890973975026E)}, + {UINT64_C(0xB5753599C0D12BE1), UINT64_C(0x05670CE9FB864D61), + UINT64_C(0xB7153502305BF3CF), UINT64_C(0x7A9BB3572E60AF62)}}, + {{UINT64_C(0xF43CDA07C7566DA5), UINT64_C(0x7FC4C7FC53FA4196), + UINT64_C(0x1E20E0ED88DCC9F3), UINT64_C(0x7317C7E5FEE23DDA)}, + {UINT64_C(0x0305E13F43017070), UINT64_C(0x5568410C6B1CA7C0), + UINT64_C(0x0E5D55BA104BA029), UINT64_C(0x118B284E90FD49F8)}}, + {{UINT64_C(0xCA0F7B5B8F3C6D8A), UINT64_C(0xAF72DEE0AF7ECBF6), + UINT64_C(0x21C86D85BB0EC4F1), UINT64_C(0x0303BC47F0525D17)}, + {UINT64_C(0x6ADCAB9F896FFCC0), UINT64_C(0x65764C4524E970CA), + UINT64_C(0x0000F14C1C3CA718), UINT64_C(0x01CF1DDBD0292587)}}, + }, + { + {{UINT64_C(0xEC4FABCC86111EBA), UINT64_C(0x599C20B6BBBB793F), + UINT64_C(0xF74AE7475657668F), UINT64_C(0x24AF29B277BAE892)}, + {UINT64_C(0x47D6876BCFAC9D5E), UINT64_C(0xCACF9F5024369E14), + UINT64_C(0x8A231D746F9CAFEF), UINT64_C(0x57645A4EB69AAE58)}}, + {{UINT64_C(0x440A3B15489900F6), UINT64_C(0x4B642FD3961AC3C2), + UINT64_C(0x3D668599C265B973), UINT64_C(0x5FA0E65D1139CE78)}, + {UINT64_C(0x3FF15AF41FAA710E), UINT64_C(0xE45D35CEA9422FC0), + UINT64_C(0x56904C06BD7BB349), UINT64_C(0x40C5BEE0E529989D)}}, + {{UINT64_C(0x8FA4686170B20298), UINT64_C(0xEC6295384838A136), + UINT64_C(0x23ADE0F6137F66D6), UINT64_C(0x1A92E05C8EA53E76)}, + {UINT64_C(0x51728E279D51EB7A), UINT64_C(0xA6B0B758C4352E35), + UINT64_C(0x84C5933137A11B35), UINT64_C(0x3933EFC1F66B75C7)}}, + {{UINT64_C(0x7FB68D6266916D0A), UINT64_C(0x3325D42EF28A9B14), + UINT64_C(0x75E83A658592B544), UINT64_C(0x524D1CE02718628F)}, + {UINT64_C(0x88A110EA3C584D76), UINT64_C(0x6B034AC44AC09AAC), + UINT64_C(0x0648863584FD3A36), UINT64_C(0x516F0EB087D944E1)}}, + {{UINT64_C(0xE2016DA0DF11D0BB), UINT64_C(0xB34EB471B01F6540), + UINT64_C(0x13E3D330165CBB24), UINT64_C(0x3E755D117CF7F676)}, + {UINT64_C(0xD70CF4F84FEA9A69), UINT64_C(0x98F59E0AD18F4337), + UINT64_C(0x7CCE7CE6826344BA), UINT64_C(0x30D129D7F4004BBE)}}, + {{UINT64_C(0x016EF317BA9CB975), UINT64_C(0x8EEBED19E4B3AB4D), + UINT64_C(0x8C597DF0170A2570), UINT64_C(0x451538D85BE6DE70)}, + {UINT64_C(0x6C711DAC7A64792F), UINT64_C(0x8F1896EB217EC8FB), + UINT64_C(0x82E9C20B7FE18DED), UINT64_C(0x6CEBF4A7B0C5F622)}}, + {{UINT64_C(0xD9403EB549CCC64F), UINT64_C(0x807EBD5628B8A3FD), + UINT64_C(0xF08BB6590F291E12), UINT64_C(0x020D13E39C3F4432)}, + {UINT64_C(0xDA247896752BB92E), UINT64_C(0x9954179486EAFA7A), + UINT64_C(0x213E94BA274E36AD), UINT64_C(0x4CC0F1FB61A71333)}}, + {{UINT64_C(0x19CC11BD06478801), UINT64_C(0x1251562A6D18216A), + UINT64_C(0x7A5F06BBCDD307FC), UINT64_C(0x4285F6ABFAA9CA2A)}, + {UINT64_C(0x5A92283181258996), UINT64_C(0x8F7CF8EE27B8B018), + UINT64_C(0xF030BEF37F81A62D), UINT64_C(0x417ACBC1CD4FD4E7)}}, + {{UINT64_C(0xCFB0EA58EC64412F), UINT64_C(0x9547B64A6091E621), + UINT64_C(0x5EA49C7EFD0C9815), UINT64_C(0x6789055AE78B355C)}, + {UINT64_C(0x8D743E9877E9A73A), UINT64_C(0xB032EA6A2EA3FA49), + UINT64_C(0x52EA3801CEAAA33A), UINT64_C(0x73B3BB8DF2C3E22B)}}, + {{UINT64_C(0xAA2A12917DB9E301), UINT64_C(0x7F29770FA1293DD7), + UINT64_C(0x3135BB2159683DEC), UINT64_C(0x070F8DF77785B505)}, + {UINT64_C(0x8F2158EA37F53677), UINT64_C(0x96CC7B9DABE1AF1C), + UINT64_C(0x7F9779156D6477D6), UINT64_C(0x55DB3922DF370EAF)}}, + {{UINT64_C(0x3028C03AA9DAC7AE), UINT64_C(0x16F7DF0DBAE06BE0), + UINT64_C(0x09548398410D57D9), UINT64_C(0x5E9C7F431510D51F)}, + {UINT64_C(0x033B9BE2D07717B3), UINT64_C(0x0D5D8116EF08AB91), + UINT64_C(0xD5A172B1EEEFE88F), UINT64_C(0x72B1D29F0996294E)}}, + {{UINT64_C(0x9E2B79FBE4D0965C), UINT64_C(0x01F403EEF49D8B8E), + UINT64_C(0xBD4D2D48CEB12D6A), UINT64_C(0x4D04DD9A11FB24FB)}, + {UINT64_C(0x7E613EC5E5C8D24C), UINT64_C(0x568BEFE8B918E543), + UINT64_C(0xD6456D1EE966DF28), UINT64_C(0x2DDEAD63BAFC71E2)}}, + {{UINT64_C(0x1D794F92448D72E9), UINT64_C(0x3978052EE7E62BF2), + UINT64_C(0xF6C7A72EE2B92538), UINT64_C(0x43879A886EF321F0)}, + {UINT64_C(0x2A82314034F6FFBC), UINT64_C(0x26F84E5135F4C485), + UINT64_C(0xDEE65540028BFA7E), UINT64_C(0x56216E9D5F033058)}}, + {{UINT64_C(0x31CA5470CBC772EE), UINT64_C(0xD3621E11811BB5D0), + UINT64_C(0x501C4C4770863D71), UINT64_C(0x0564518ED28D6BDD)}, + {UINT64_C(0x60E3B89BD35B64B9), UINT64_C(0xB4F2599A6621A688), + UINT64_C(0x1A8C45083B5E116D), UINT64_C(0x633EF5CCFABF3125)}}, + {{UINT64_C(0x0DB1D2515D4FF62A), UINT64_C(0x6CBD00EB4B17D658), + UINT64_C(0x2FA38212FA1DB737), UINT64_C(0x07B18CB893A7FA03)}, + {UINT64_C(0x531E47EF548E5F82), UINT64_C(0xAE7B94FD8276963C), + UINT64_C(0x8055D82A6181A13A), UINT64_C(0x5725B51223B6E361)}}, + {{UINT64_C(0xD84C70416D8B1FFE), UINT64_C(0xF68ACA0B5D994200), + UINT64_C(0x32BF99446BB908E2), UINT64_C(0x1240A3E61AD88DB1)}, + {UINT64_C(0xB0BE96AAA92B6472), UINT64_C(0xEF88A155A1B7726C), + UINT64_C(0x000FD9ED9349F496), UINT64_C(0x377DCBAD454A05D9)}}, + }, + { + {{UINT64_C(0xD0A092CDC04111D2), UINT64_C(0x5C43A94C338F06D6), + UINT64_C(0x697B4C2625E964F3), UINT64_C(0x2CD5A0597572CCFD)}, + {UINT64_C(0xA09FC4D4B5B523E4), UINT64_C(0x7D8141E84E1E9042), + UINT64_C(0x2462512BD637409E), UINT64_C(0x503F032F7CB2CE75)}}, + {{UINT64_C(0xC56F38E3BCBF1450), UINT64_C(0x09F4FC77CF2E5594), + UINT64_C(0xF449C3E60FCB653A), UINT64_C(0x6A1FE75264A53C65)}, + {UINT64_C(0xFF366FED7C039488), UINT64_C(0x23F58BA58C99A6CB), + UINT64_C(0x4B5546C68D67F6D6), UINT64_C(0x03405C85178B1668)}}, + {{UINT64_C(0x969F1B33C0C86696), UINT64_C(0x9346D06C13746468), + UINT64_C(0x68AED3C8AE0C6D62), UINT64_C(0x7B3D536174FE63D5)}, + {UINT64_C(0xFEE8416BC4F4B65D), UINT64_C(0xC79BF488554C6D0A), + UINT64_C(0x191D5D27DC402BB0), UINT64_C(0x31B00167E087EB9F)}}, + {{UINT64_C(0xD5FE0979E05D281F), UINT64_C(0x8373AB503485446B), + UINT64_C(0xCE5258BA9223681F), UINT64_C(0x5F82843EA37BF244)}, + {UINT64_C(0x94ED780BCFC16536), UINT64_C(0x6A9739B3BD477733), + UINT64_C(0x137D68F2A04A4195), UINT64_C(0x3A0F27E80032BFCE)}}, + {{UINT64_C(0x7EADE421358382F9), UINT64_C(0x490B9CA692E3D912), + UINT64_C(0x040CE73EF1AFBC2A), UINT64_C(0x5745D47311AE91BA)}, + {UINT64_C(0x625BED61CE303B77), UINT64_C(0x85B2A1EB85B03A1D), + UINT64_C(0x764F62E43D7C02E0), UINT64_C(0x22C2D16FA7AF6DDE)}}, + {{UINT64_C(0x5B985DE6D19377BE), UINT64_C(0x0AF85A06D8E43A10), + UINT64_C(0x1465E5040519F4C6), UINT64_C(0x5DA01665E3E20BA3)}, + {UINT64_C(0xCD9B8E9B675D9E2A), UINT64_C(0x4C77E1AD6448A2CD), + UINT64_C(0xD6094BAD1E5D4465), UINT64_C(0x4C352951C50DB788)}}, + {{UINT64_C(0x42581152EE5AB903), UINT64_C(0xDAD2DBC963311418), + UINT64_C(0xBCA4F70BB885E56A), UINT64_C(0x1F5DD363B94E0876)}, + {UINT64_C(0xF9AD5D043FFF479E), UINT64_C(0xEF1176E5FE06AD2B), + UINT64_C(0x46ACB00A216F77AF), UINT64_C(0x709CF4EB857C4F78)}}, + {{UINT64_C(0x70CD666ED0D2FF1C), UINT64_C(0x4BAD4A6AE7EFE4AD), + UINT64_C(0xB43F6C2D0FA72024), UINT64_C(0x0D78F8E2E90C0617)}, + {UINT64_C(0x543B9662F80DCAA7), UINT64_C(0xB02FB3BCF28ADFAF), + UINT64_C(0x26C17651C51C54C3), UINT64_C(0x0815F6373D648D88)}}, + {{UINT64_C(0xAC4F43C1AEA98FA6), UINT64_C(0x2D223416AC4398C6), + UINT64_C(0x48B2EEADDA5C5070), UINT64_C(0x632B65F1BE666F70)}, + {UINT64_C(0x971D3BC0952021BE), UINT64_C(0x9FDCB7E023B2C578), + UINT64_C(0x476D47153CC21796), UINT64_C(0x4015565F95832A94)}}, + {{UINT64_C(0x8913AFAC13CA725C), UINT64_C(0xA56DC461DC18F0D9), + UINT64_C(0xAC3AC72010F3AAFE), UINT64_C(0x5D75567EC628D69C)}, + {UINT64_C(0xC11BE9DCEEEA4BF7), UINT64_C(0xAD97FBCA1C193BD5), + UINT64_C(0xD1EC5BCEC58123E8), UINT64_C(0x0F6DF9309C73D4E5)}}, + {{UINT64_C(0xE80A0ADAFD759FFD), UINT64_C(0xE52DF94B239CAFC0), + UINT64_C(0x59640161FE7A43E9), UINT64_C(0x7A96995CDB1A38F0)}, + {UINT64_C(0xA46A15037CD5011B), UINT64_C(0x75CFB637AC0E9689), + UINT64_C(0x27B740CA97AAD2BA), UINT64_C(0x64A0748BEAD2F776)}}, + {{UINT64_C(0xB67E5BB50625B3B1), UINT64_C(0x2FE19FFBC66D2832), + UINT64_C(0x47815666F70C07CF), UINT64_C(0x5A1AA24AA43E52AB)}, + {UINT64_C(0x04EE11F84CAC0E66), UINT64_C(0x51E515833A3A4836), + UINT64_C(0x46755F49B44F6DEC), UINT64_C(0x6388408BC1E9B282)}}, + {{UINT64_C(0xD47AA9A69DE7A6A7), UINT64_C(0xEC94AD9B189BC9D2), + UINT64_C(0xFA89099D8EC0E950), UINT64_C(0x1B9FC2069F64D27F)}, + {UINT64_C(0x765724840B729DE1), UINT64_C(0xFE9E8E714BE22EB8), + UINT64_C(0x910F0456F9DB5942), UINT64_C(0x4D018459C617D82B)}}, + {{UINT64_C(0xB082B58AF5516C6F), UINT64_C(0xFFBA0E73567A8CF5), + UINT64_C(0x08FF64CE8A6DD4A0), UINT64_C(0x6CF3C89C69A9F66A)}, + {UINT64_C(0x356782BA62FEB0A7), UINT64_C(0x1A18720D3E2907F9), + UINT64_C(0xF840FFA30BBD9D92), UINT64_C(0x41D9EECA20926421)}}, + {{UINT64_C(0xCF2E8AACB6B08321), UINT64_C(0xC76FBE12010D91C0), + UINT64_C(0x5492475068E35E02), UINT64_C(0x74DBA2E19AEE00F8)}, + {UINT64_C(0x94C70D6DC5504E82), UINT64_C(0x0BDF415FEA1770F7), + UINT64_C(0xDA45B7003CA6DB0A), UINT64_C(0x473C6A04E133A980)}}, + {{UINT64_C(0xD1FF6C1E1E188071), UINT64_C(0x621A7D3CEA3F16F8), + UINT64_C(0x604673076A160F47), UINT64_C(0x37CA7D3D32DC84EE)}, + {UINT64_C(0x54F5F7F667DDFDB5), UINT64_C(0x3A8482F9921BA04B), + UINT64_C(0x842F49501A28E238), UINT64_C(0x3A4DC9177214FAFD)}}, + }, + { + {{UINT64_C(0xEDD8360CEEA25E82), UINT64_C(0x3DB6D933FB7B7ED0), + UINT64_C(0x882F3C0BABF15199), UINT64_C(0x228664A2516E349D)}, + {UINT64_C(0x96E6DCF7E88173DF), UINT64_C(0x382C8D3BD7EC0BC3), + UINT64_C(0xFBFF6D216FA5FA58), UINT64_C(0x780039802F41C959)}}, + {{UINT64_C(0x713BA43B9D9ACF9C), UINT64_C(0xF59A252D94876559), + UINT64_C(0x8B310954437B8ED5), UINT64_C(0x76A83790E474E98E)}, + {UINT64_C(0x84C1386AF6040B05), UINT64_C(0x69FA9F43BF3D8189), + UINT64_C(0x5584164CA98D4866), UINT64_C(0x6C89CE1D3B9045D0)}}, + {{UINT64_C(0xD6EF7540B522FB28), UINT64_C(0xDB561B56BB28D745), + UINT64_C(0xC9F7543EEFA58B87), UINT64_C(0x5F02A23BE9062979)}, + {UINT64_C(0xFD3C0C196809D624), UINT64_C(0x94481554A92EB229), + UINT64_C(0x72D8EC53F5147EFB), UINT64_C(0x143026610D1BA626)}}, + {{UINT64_C(0x0B35BD5989020800), UINT64_C(0x3C6F1527430D7DEB), + UINT64_C(0x9BEB3C8E2FFFA0E0), UINT64_C(0x7E181B78AFD09A19)}, + {UINT64_C(0xE82FD9573B2F0B49), UINT64_C(0x4C9461B10BC0F9DA), + UINT64_C(0x87D78C412B1C8B85), UINT64_C(0x775BED20C1F5BDA1)}}, + {{UINT64_C(0x883AE89B16350593), UINT64_C(0x85D429CB0C19FEC8), + UINT64_C(0x5938BDEC5742C36D), UINT64_C(0x2DDBC7EBDA8A21B7)}, + {UINT64_C(0xA249BDE407A2E700), UINT64_C(0x42A3897CE8BD6215), + UINT64_C(0x87F30BA7732FF181), UINT64_C(0x5385D7091B912C57)}}, + {{UINT64_C(0x2B5C555B288041F5), UINT64_C(0xD3D900401F425866), + UINT64_C(0x37E40CD202E0FA71), UINT64_C(0x08B37F263A386038)}, + {UINT64_C(0x165BD7FB5DE1ED78), UINT64_C(0x22949E810829ECC9), + UINT64_C(0xBB8705CCBCE3D01F), UINT64_C(0x7961BE851D233CDF)}}, + {{UINT64_C(0x5D3DBC6B7659B477), UINT64_C(0xFD86577950EF08EB), + UINT64_C(0x502729E8F34EA1A5), UINT64_C(0x1548526ED2B64602)}, + {UINT64_C(0xB13632FDB91D2675), UINT64_C(0x09A42003F7B37397), + UINT64_C(0x37D18F37CCFC4532), UINT64_C(0x3FAEF63B73C7082C)}}, + {{UINT64_C(0x3365445FE666DB6D), UINT64_C(0x9051FFF5339A0076), + UINT64_C(0x6167FB769BD6D01D), UINT64_C(0x09737137CA087B41)}, + {UINT64_C(0xCA2193AEB3270BA7), UINT64_C(0xEF0744C28F2217B3), + UINT64_C(0x3E030D58F0DD10D8), UINT64_C(0x667246DBCCB4F2F9)}}, + {{UINT64_C(0x31F3030E3773EC8C), UINT64_C(0xAF2B31235AD56010), + UINT64_C(0xFC118587B37E9062), UINT64_C(0x52840C2C9C2D5406)}, + {UINT64_C(0xA96D3DFF6670ACBB), UINT64_C(0xF469982F772EC6D3), + UINT64_C(0x5BE20628A9DF4C88), UINT64_C(0x59D01479673633BC)}}, + {{UINT64_C(0xC9223750AFB5083B), UINT64_C(0xF1EB451E191C2160), + UINT64_C(0x0D913794A38EC005), UINT64_C(0x31062E9E83FD1D18)}, + {UINT64_C(0x070538F55F4816AD), UINT64_C(0x90D4855D925F5DA1), + UINT64_C(0xC0BBA87B22F455B6), UINT64_C(0x517B5F80F48D2AE5)}}, + {{UINT64_C(0x0D8B670A3F4FA7CA), UINT64_C(0xE29C88493D114EB2), + UINT64_C(0x1823780D916A187E), UINT64_C(0x6961C48365EE66A0)}, + {UINT64_C(0x2F6FB20A62FDC12C), UINT64_C(0x51414E5F0CFDDE0C), + UINT64_C(0x16BD56A7DCA39073), UINT64_C(0x0CFE6DAF648FFD43)}}, + {{UINT64_C(0x3789F4CAAEBA9241), UINT64_C(0xE8056BC6107777C6), + UINT64_C(0x6EE564C33CB20826), UINT64_C(0x5DF3634745448C69)}, + {UINT64_C(0xFD0FA84BB22CE624), UINT64_C(0x2AA19672AC753D50), + UINT64_C(0x29A1464F677CC0D0), UINT64_C(0x7C2237B13CEF5493)}}, + {{UINT64_C(0x87C2587C24255918), UINT64_C(0x9AA89A0B90B35A37), + UINT64_C(0x9932EB7810E7CAEF), UINT64_C(0x49278F16CDE31568)}, + {UINT64_C(0xA4D33C6141188ED9), UINT64_C(0xC587BDE005AC3A1D), + UINT64_C(0x2A5C5ACC7248B5E0), UINT64_C(0x60026A1D8510D2CB)}}, + {{UINT64_C(0xE57CB0C96BAF603C), UINT64_C(0x527F28A6AB770AF0), + UINT64_C(0x2850D8E6016F2BC1), UINT64_C(0x0EC2A46C936DC2EC)}, + {UINT64_C(0xA0BC5306D4F23FC2), UINT64_C(0x6DBEDA2653A0130F), + UINT64_C(0xB1D52F87EE3314B7), UINT64_C(0x17168B126C234CF5)}}, + {{UINT64_C(0x8B8BC181DADF17D5), UINT64_C(0x31EC3CADFAFFA918), + UINT64_C(0x4611A482274E4658), UINT64_C(0x5A9E365273D35EAD)}, + {UINT64_C(0xBA68825BF4028FC7), UINT64_C(0x142859D562E203F5), + UINT64_C(0xCE516AC41C817A9E), UINT64_C(0x4201468257223F8D)}}, + {{UINT64_C(0x51FBFB2EB4B66798), UINT64_C(0x3A3F15910EA9C4EF), + UINT64_C(0x3FD3D026E8814805), UINT64_C(0x3CA531E4B0C8DFD0)}, + {UINT64_C(0x69A6B3F8E585A960), UINT64_C(0x1627CC77BD3F567D), + UINT64_C(0x6F4EF4305DB9CFD0), UINT64_C(0x05B567078D02278A)}}, + }, + { + {{UINT64_C(0x6663F2F310B96338), UINT64_C(0x69373D1FCE8CA31C), + UINT64_C(0x3D31C5CFD67AEC10), UINT64_C(0x2FAF554516F2547E)}, + {UINT64_C(0xF6E397D51EA2EA64), UINT64_C(0x2281A0DFEEAEBE7A), + UINT64_C(0x72E53254FA2527EC), UINT64_C(0x660D059A76432155)}}, + {{UINT64_C(0xD3CA8B132C66D937), UINT64_C(0xC6F34B08CD2DF849), + UINT64_C(0x9AF2C9E3A23A9F73), UINT64_C(0x24D44BD9702388E9)}, + {UINT64_C(0x8DA4D6A4D1B3DA10), UINT64_C(0xB9FAFBF440B93B10), + UINT64_C(0xBBE51BB3EFCFD2A3), UINT64_C(0x68BE03951844581D)}}, + {{UINT64_C(0xDECABD8C0EA1FAE1), UINT64_C(0xA7499225FDFED7C2), + UINT64_C(0x08489E35FB468B83), UINT64_C(0x5B68934443D95F9C)}, + {UINT64_C(0x9FC8364A9D2F522E), UINT64_C(0x114DB31A3A5D27A4), + UINT64_C(0xC6A35992E33A9EC8), UINT64_C(0x6FE9EC3BDC9ACAF6)}}, + {{UINT64_C(0x98AE2D66DEAFC64C), UINT64_C(0x95AAC8EFABE706B7), + UINT64_C(0xB15A6604223DFA3B), UINT64_C(0x77DBC24AE24B43CB)}, + {UINT64_C(0x65D6F8718542FA2A), UINT64_C(0x1093B2735D326A1A), + UINT64_C(0xBA82D607F137AFEF), UINT64_C(0x502B32E3B9DEA6A7)}}, + {{UINT64_C(0x88906BD6885CA6CE), UINT64_C(0x136ADF9A1D36BFEE), + UINT64_C(0xF844088C09AA61E3), UINT64_C(0x4E508EA351BAC299)}, + {UINT64_C(0x251ACD26EB821936), UINT64_C(0xDF6AD7D543D90E10), + UINT64_C(0xEBCD7046DE7F14B9), UINT64_C(0x1DB258B1AB503259)}}, + {{UINT64_C(0x348E301890AD5D55), UINT64_C(0x0EF6BE737067806A), + UINT64_C(0x072C113441627FCC), UINT64_C(0x48EE7606E904F823)}, + {UINT64_C(0xEE6AB582D9FD5EF3), UINT64_C(0x57765D0317AB50BC), + UINT64_C(0x1CCFB407FB7DEC68), UINT64_C(0x2E1771C7141DF51D)}}, + {{UINT64_C(0xCBDD6235A013284B), UINT64_C(0x4D93FD8720D07125), + UINT64_C(0xB3D055B3D485418E), UINT64_C(0x4EFB8763C67ADD2D)}, + {UINT64_C(0xEC3693821B2DF427), UINT64_C(0x2500979164D0DDF4), + UINT64_C(0x9BD42FFC163056C8), UINT64_C(0x605277925B88BEBA)}}, + {{UINT64_C(0x6D5D6A869D82DADF), UINT64_C(0xC3BA9A167C24A1CA), + UINT64_C(0x838167EC2E6981CC), UINT64_C(0x7FB5D8577E1E4237)}, + {UINT64_C(0x83B2C2FC86A40BC7), UINT64_C(0x679D2DFC6F9AC4FB), + UINT64_C(0x0B3714CDE45455EF), UINT64_C(0x1C8D833D394A7797)}}, + {{UINT64_C(0x1FBF89614E641C9D), UINT64_C(0x3330DAB0D951DFC8), + UINT64_C(0x9D4EBA4D051D96DB), UINT64_C(0x27C6DBF023066924)}, + {UINT64_C(0xB950C648DA5D1D79), UINT64_C(0x544D46BA5E9CD783), + UINT64_C(0xFA77226FE69BA3EF), UINT64_C(0x0A93D219E4DA8423)}}, + {{UINT64_C(0x7C377CC65BDCA76B), UINT64_C(0x7DF505D7DC58D194), + UINT64_C(0x18A24C0B13E389E1), UINT64_C(0x5E0782DD6C3972FD)}, + {UINT64_C(0x97AD477E6680FCE1), UINT64_C(0x6B07BF223CBAB792), + UINT64_C(0xB8DF3C73DC68C9E2), UINT64_C(0x33AB5A4CC04B2749)}}, + {{UINT64_C(0xD151C7627E79B5A7), UINT64_C(0xA4356B79C82C7B8A), + UINT64_C(0x931DDDE896E0A2E2), UINT64_C(0x40378EB252C54FDC)}, + {UINT64_C(0xA6BBD5E340C24003), UINT64_C(0xB4F3246E65C34FEA), + UINT64_C(0x780B21ED9C767A23), UINT64_C(0x5F1E95FE52BD7E83)}}, + {{UINT64_C(0x4F3453DFCF39F9C4), UINT64_C(0xA3E1CFD1B8CC2CA6), + UINT64_C(0xE49BC49C4B898859), UINT64_C(0x4FFD7BD66C0BF055)}, + {UINT64_C(0x7DE7604CD139AD1B), UINT64_C(0x6973F5EB2A3CE8FE), + UINT64_C(0xAC66FF97F9501ECC), UINT64_C(0x3D96F1E2A97D46CD)}}, + {{UINT64_C(0x70D5A0D06106EB96), UINT64_C(0x938E038F398C1FD9), + UINT64_C(0xE66B70071F3A1AA9), UINT64_C(0x42BDB264F5BD9308)}, + {UINT64_C(0x4B3FD7545AF84957), UINT64_C(0x9E3E17FA4E27DC6B), + UINT64_C(0x384FCACD51D8560B), UINT64_C(0x42F00D11F8068C09)}}, + {{UINT64_C(0x794C1E6A7D5897D5), UINT64_C(0x4901097FDF72DCA0), + UINT64_C(0xDED5B1920B01E4C4), UINT64_C(0x364FF58226DD41E9)}, + {UINT64_C(0xA3F92DCC32FCA925), UINT64_C(0x8A1FB329207AA09A), + UINT64_C(0xA9274BD3F512AE3A), UINT64_C(0x161C82BCC47B9007)}}, + {{UINT64_C(0x482ECE3B7AE1175F), UINT64_C(0x97CAC7E8BDD5DC6C), + UINT64_C(0x562253099FDA910D), UINT64_C(0x52A9893B9FC206B9)}, + {UINT64_C(0xAD9F2A9205BB5ACA), UINT64_C(0xB9EEFB5BA3B65716), + UINT64_C(0xE7BC173B8DB5A8D4), UINT64_C(0x6715EC64399DAE9E)}}, + {{UINT64_C(0x780796D15E41AC75), UINT64_C(0x3E165C784FB3A0B4), + UINT64_C(0x198599BA237103E9), UINT64_C(0x2C04C3F5FA7ED86B)}, + {UINT64_C(0x29547DA8AC9356F0), UINT64_C(0xCB345AB479EADA37), + UINT64_C(0x1D15D377A295BF2D), UINT64_C(0x10292C9D2FDC8131)}}, + }, + { + {{UINT64_C(0xADF3B54740E1DC7E), UINT64_C(0x420CE2DD1C345D14), + UINT64_C(0xC08E3CBE21DC5C2D), UINT64_C(0x79FDC0006F8FCE80)}, + {UINT64_C(0x23EBDF7FCB105CE7), UINT64_C(0x793FC99D7C6794A8), + UINT64_C(0x4CA3FB21293E3575), UINT64_C(0x7FB2ACB97BF73CC8)}}, + {{UINT64_C(0x67DB6C900FC8FCD4), UINT64_C(0x22A3DF5F7EE3B705), + UINT64_C(0xD50EBF8BC7B2EDFF), UINT64_C(0x0C70104599522FB7)}, + {UINT64_C(0x1420CF02AD4F9044), UINT64_C(0xD78DBA23E5B59451), + UINT64_C(0xDFDC1C7F6AEFD853), UINT64_C(0x560DEE94DEA1DAAB)}}, + {{UINT64_C(0x0F2355132167A78B), UINT64_C(0xCF4637029F441927), + UINT64_C(0xD0AE2723A3D1505C), UINT64_C(0x3149D858CD9FBFF4)}, + {UINT64_C(0x2A73913AF79240FA), UINT64_C(0xC904A575252A958B), + UINT64_C(0x10D1819078473D97), UINT64_C(0x42CE7A38203BC8C4)}}, + {{UINT64_C(0x1D2AD4F2FA59BB8B), UINT64_C(0x8234964C79F137DD), + UINT64_C(0x00B63A305D02679E), UINT64_C(0x506C45BE5DD7543D)}, + {UINT64_C(0x4378F900776BF80C), UINT64_C(0x179558B2B312F2BB), + UINT64_C(0x5B15368CEA37C183), UINT64_C(0x7593B19FB198E42D)}}, + {{UINT64_C(0xED723535DEFA1F48), UINT64_C(0x0DAFC48B87F96EE5), + UINT64_C(0x0AEFA3BA91B1B52C), UINT64_C(0x56BA1B33A1ADBEA4)}, + {UINT64_C(0x8A0B617030A6C905), UINT64_C(0xC5BA3518B272D12E), + UINT64_C(0x782100CF4B6643A9), UINT64_C(0x12DEE80385C5BD2B)}}, + {{UINT64_C(0xDD07D2D578FCADD6), UINT64_C(0x8CB8E8A83B25C523), + UINT64_C(0x25063508530919CF), UINT64_C(0x45D3DD541E24F7A1)}, + {UINT64_C(0x296AE89349DDAF96), UINT64_C(0x7EF3CDE0ACE559F5), + UINT64_C(0x9CDF22E40D36F87B), UINT64_C(0x196847654AC9A845)}}, + {{UINT64_C(0x3955B5ABC597B7AE), UINT64_C(0x59F3BA053AB49731), + UINT64_C(0xBCA5B117F525C6C8), UINT64_C(0x4969C13432050B8D)}, + {UINT64_C(0x353183D9970E8E49), UINT64_C(0x3D005213E95300CF), + UINT64_C(0x595F9C8E09022378), UINT64_C(0x70FA8B471A445C28)}}, + {{UINT64_C(0xECC88EE3BADB79EA), UINT64_C(0x5BDAF68CFBD8464E), + UINT64_C(0x24AF6A4CB4280334), UINT64_C(0x17A5DE8B398E5BBE)}, + {UINT64_C(0x300B6DEB92999E18), UINT64_C(0xA076691867DEFC2F), + UINT64_C(0x4E904450B19F87FF), UINT64_C(0x3010AD94C2871056)}}, + {{UINT64_C(0x72E747A1461EFCC3), UINT64_C(0x329EDF18562F923E), + UINT64_C(0x65E021D4D081A4E7), UINT64_C(0x4B2DBFFFB727B6F4)}, + {UINT64_C(0x5A597A809C8505AC), UINT64_C(0x13486480562B82D2), + UINT64_C(0x477FD480CC8234C3), UINT64_C(0x6045ABA404800C00)}}, + {{UINT64_C(0x3E0874399C541035), UINT64_C(0x389AA76C6D9D8B6A), + UINT64_C(0x68FE5E8336A21299), UINT64_C(0x67AC313D402A32CF)}, + {UINT64_C(0x996131D225501A53), UINT64_C(0x5C1B89DEA77A85F4), + UINT64_C(0xA9822C84ED6702AD), UINT64_C(0x50F014A456609EA0)}}, + {{UINT64_C(0xF0F8B4E6E5A8E91E), UINT64_C(0x734CFF081A2FFEFD), + UINT64_C(0x9724EE0B27BCB163), UINT64_C(0x6AF3808B30B8EF68)}, + {UINT64_C(0xE5B3829F126E88FC), UINT64_C(0x0F441EE34EE5FD4B), + UINT64_C(0x534D2F8CBFEC4D34), UINT64_C(0x3E1F16DE076E6737)}}, + {{UINT64_C(0x4DB53E8A4ED36E6A), UINT64_C(0x49A9EFE94352B22F), + UINT64_C(0x7829605C39CF005C), UINT64_C(0x190A8E16D85DB959)}, + {UINT64_C(0x699810699B073AB3), UINT64_C(0x8C264B878C141AA1), + UINT64_C(0x7F614282603ED47C), UINT64_C(0x21FD2E7A9F9B0940)}}, + {{UINT64_C(0xC5CA10A01EC6BB3D), UINT64_C(0x9403E3F527A9B02B), + UINT64_C(0x9D3D186DFB43F790), UINT64_C(0x7855276E67DC0C00)}, + {UINT64_C(0x053DBB2AFFFFB14C), UINT64_C(0x2674666343ACC0A6), + UINT64_C(0x1EE7A9467FFC1C68), UINT64_C(0x14BFAF0156DBB0DE)}}, + {{UINT64_C(0x11C89A47849EA674), UINT64_C(0x194FAAF094A540E6), + UINT64_C(0xE61163F86050E4C0), UINT64_C(0x6939A166B1A07B76)}, + {UINT64_C(0x8166CA8E2EF18325), UINT64_C(0x96112E6530C042E2), + UINT64_C(0xA805CAE05A394C25), UINT64_C(0x45A0DE010392E6BB)}}, + {{UINT64_C(0xB89CEE96B4FAAA56), UINT64_C(0x7A7DC8AE529736DE), + UINT64_C(0x9158AA49A727FCF7), UINT64_C(0x621B8B311896B9DA)}, + {UINT64_C(0x875930D603BEC74B), UINT64_C(0x1056DB45A7A50309), + UINT64_C(0xEE713E04B5657B0E), UINT64_C(0x2D68155E6FCAD967)}}, + {{UINT64_C(0x3BB1E9E365B1E2B3), UINT64_C(0x2A61567088425BAB), + UINT64_C(0x22F4F32F62F1BA4A), UINT64_C(0x7B5EC25088A59642)}, + {UINT64_C(0x7B5BA12A42D30049), UINT64_C(0x4E6AC05586995BE6), + UINT64_C(0x04431A0445EC87AC), UINT64_C(0x28974ED7ED94823D)}}, + }, + { + {{UINT64_C(0x5925805712BB5555), UINT64_C(0x03141CD8BB7608EE), + UINT64_C(0x84EBDC49EF77714B), UINT64_C(0x6A45FC3AB5DC1A5F)}, + {UINT64_C(0x1F6DC2052FBEEC76), UINT64_C(0x17EB733BA920C554), + UINT64_C(0xDB022C217A28ACDF), UINT64_C(0x6AF16156A9B62BF1)}}, + {{UINT64_C(0x9379D6A880B472CC), UINT64_C(0x6CB08CB07BD92F27), + UINT64_C(0x19B3C353147E6E12), UINT64_C(0x3C26CB2F26827839)}, + {UINT64_C(0x98AAC9A70CC571E4), UINT64_C(0x075D05F2C3C8FC04), + UINT64_C(0x718B55A0D79621AC), UINT64_C(0x149FEECF5B94B41B)}}, + {{UINT64_C(0x6A150A64783F9C81), UINT64_C(0x5950C2DF0FB18827), + UINT64_C(0xF5D75504F15E3A89), UINT64_C(0x5F92F2F7FCB4406B)}, + {UINT64_C(0x665F31E76123E858), UINT64_C(0x4E568EA9A95184A3), + UINT64_C(0x851EEADC505FF0AD), UINT64_C(0x62AD5BA6542C3EF8)}}, + {{UINT64_C(0x1103859DC55C23FD), UINT64_C(0x06AB0BD6695E4E9B), + UINT64_C(0x2CD00D76DD734990), UINT64_C(0x5D59C693B06460E4)}, + {UINT64_C(0x3BA8F2F01F9C76DA), UINT64_C(0x08E4A7EC960F5C0E), + UINT64_C(0x79C82AD9E4AAB060), UINT64_C(0x093D322C0DF95C43)}}, + {{UINT64_C(0x88AF12580C627547), UINT64_C(0x81E5F197889A5E12), + UINT64_C(0x99E0E1917CBD84FD), UINT64_C(0x3024BCE8DB0B9711)}, + {UINT64_C(0x04075C80DB93B1A2), UINT64_C(0x12F30AF8628B0E63), + UINT64_C(0xA3514F26EB25A4ED), UINT64_C(0x3D42E4897BCD0873)}}, + {{UINT64_C(0x0F1C16C6754B236F), UINT64_C(0x717CE487594F5D3D), + UINT64_C(0x7679C7DAAFAD77B1), UINT64_C(0x51AFD0146F3E724C)}, + {UINT64_C(0xAFC9745C3AF6938F), UINT64_C(0xCA12BFA9C4E61CB4), + UINT64_C(0x943B56969425CCA7), UINT64_C(0x5BD3E65EB6E48A69)}}, + {{UINT64_C(0x2D23CF78DEAE74B1), UINT64_C(0xA686767E043BF2F1), + UINT64_C(0x3AFED34DE464ADE9), UINT64_C(0x1E4620735A6AE80B)}, + {UINT64_C(0xA86AA408737F7B66), UINT64_C(0xD67A0B49EAB3B6CE), + UINT64_C(0x6FF3CA4F275355F3), UINT64_C(0x6F385576688F99AB)}}, + {{UINT64_C(0xC9B63343FD2F9A72), UINT64_C(0xBD0A126DAC267E8A), + UINT64_C(0x818BD5D85D2839B5), UINT64_C(0x1BBAB4CE0BF5AFCE)}, + {UINT64_C(0x2827B24A4D8B67DE), UINT64_C(0x841F6BD3C34E6642), + UINT64_C(0xE9F5C1C25E4A34D4), UINT64_C(0x4E98795CFDA4177C)}}, + {{UINT64_C(0x3C9FF1C20763AB04), UINT64_C(0x4FC1BE619832FCFD), + UINT64_C(0x5FA50C388BD0363A), UINT64_C(0x14C9BB2FF26206BE)}, + {UINT64_C(0xAD1A96EB1D31880C), UINT64_C(0xF0A37BC465DFCF8A), + UINT64_C(0x389627293D048FE4), UINT64_C(0x017125C06480B254)}}, + {{UINT64_C(0x01E819F598D4BAC6), UINT64_C(0xD3686E0436B99D30), + UINT64_C(0x0C2876FB200A4A9D), UINT64_C(0x45D50C2FE65782D5)}, + {UINT64_C(0xB8316ECE865B7A21), UINT64_C(0xA3ADB90FCC875503), + UINT64_C(0xD72E864E98468FB4), UINT64_C(0x13BB23FDDED21F40)}}, + {{UINT64_C(0x653C3C15C6B96368), UINT64_C(0x9A42FC2C2B9C381F), + UINT64_C(0xF06B41B969534D92), UINT64_C(0x46F7292E3FB7BED2)}, + {UINT64_C(0x14A2C42097D1875E), UINT64_C(0x45DFA824D3B2DF55), + UINT64_C(0x59CB7E593F2BA72D), UINT64_C(0x2EEC65C9D7D96C98)}}, + {{UINT64_C(0x907CD4C849650405), UINT64_C(0xFC29320A37E05E06), + UINT64_C(0x99B4C1DF09E29619), UINT64_C(0x74E69BF834DE993F)}, + {UINT64_C(0x62C0F296509D9797), UINT64_C(0x2E6BD4E65F1EF554), + UINT64_C(0xE30506410D0B71B8), UINT64_C(0x29DA0C9D235DDE6C)}}, + {{UINT64_C(0x3CFBCA4B689398C1), UINT64_C(0x11E5880440C9DF13), + UINT64_C(0x3923A39BBCDF2489), UINT64_C(0x3805CCC7387C8089)}, + {UINT64_C(0xC1B4EB4870319AFA), UINT64_C(0x0A6A5FA4CA089604), + UINT64_C(0x16ABDE5473139A20), UINT64_C(0x7C0055E094BD61B5)}}, + {{UINT64_C(0xA5AB5CEFCB05A02A), UINT64_C(0xC0B4E1B40BFE903B), + UINT64_C(0xBA528329EAC9E7E8), UINT64_C(0x0266C5A70A2456B6)}, + {UINT64_C(0x507E9A415E216EEC), UINT64_C(0xFCC06B0AD0F1E440), + UINT64_C(0x6FAEFC8EE5C7B26F), UINT64_C(0x4744CF2EB02F85C1)}}, + {{UINT64_C(0xF5E2B8121C291BFC), UINT64_C(0xC18E791D2CDCBF7A), + UINT64_C(0xC386B96246554345), UINT64_C(0x373E00FB067518CD)}, + {UINT64_C(0xC9BA9DF9E950051B), UINT64_C(0x182CB132DD6133EE), + UINT64_C(0xD6D7F81570A3C71C), UINT64_C(0x44C5AEBC7FAFE307)}}, + {{UINT64_C(0x6C7CE359A9D16080), UINT64_C(0xA874386D1E8B643E), + UINT64_C(0xA064812907F48E10), UINT64_C(0x2A40220193E4D619)}, + {UINT64_C(0x8B429545BD383EA6), UINT64_C(0xC096D593F2880536), + UINT64_C(0xB4057D6C20E299B9), UINT64_C(0x303962CE38A825FA)}}, + }, + { + {{UINT64_C(0x9E426EBF1E1D70D0), UINT64_C(0x6AEA4DDCB83529CA), + UINT64_C(0xF3ECD4627CC9A07C), UINT64_C(0x7F255C86C364772E)}, + {UINT64_C(0x0DF212CF5613BEF0), UINT64_C(0x771F02A91309F9D0), + UINT64_C(0xE97BEE39805FE1F5), UINT64_C(0x54A43430D93522B9)}}, + {{UINT64_C(0xC01553BDCDE4EBBE), UINT64_C(0xB1928DDCA02E56C1), + UINT64_C(0xB91004BA94A1A417), UINT64_C(0x44F74BE656CB9C88)}, + {UINT64_C(0x6A7E3E9B921B62E5), UINT64_C(0xF2BF553B5FBF13C4), + UINT64_C(0x51CB776D86D55641), UINT64_C(0x71826BC56425A3AD)}}, + {{UINT64_C(0xD6D49F90C6D70EF9), UINT64_C(0x5BD0DA6929EBA0DD), + UINT64_C(0x0BBA7571803233EF), UINT64_C(0x0EB0959E679A17D5)}, + {UINT64_C(0x97818DC2B8A3D6EC), UINT64_C(0x09497FB0C687EAA2), + UINT64_C(0x2E2707EAA65FA4C0), UINT64_C(0x6A74D4C67542F472)}}, + {{UINT64_C(0x0D1930061EE0BC40), UINT64_C(0x7D7BEE196DC98BA8), + UINT64_C(0x1AD37C98447C38D2), UINT64_C(0x3E163AE1B6B4550A)}, + {UINT64_C(0x734E36C95BC93243), UINT64_C(0x54E217FD986C35A8), + UINT64_C(0xF0576FF09E3285E3), UINT64_C(0x65C950C8186EE7EB)}}, + {{UINT64_C(0x1AB12C042012D277), UINT64_C(0x97CAB84B83872384), + UINT64_C(0x479C9CF51C66FCFD), UINT64_C(0x70ABC8B4F276933E)}, + {UINT64_C(0xE6B15BF7BA4D14F0), UINT64_C(0xF4060ED322E2F5D5), + UINT64_C(0xA53F3CA0CDC5462C), UINT64_C(0x593219D4C6FC3854)}}, + {{UINT64_C(0x9DE6993472B6F8A1), UINT64_C(0xECABAEEE19E16B3F), + UINT64_C(0x0B537CA5EDA68D7B), UINT64_C(0x744628BDD3CE55B7)}, + {UINT64_C(0x3A5B2D8E98A95308), UINT64_C(0x74D0CEF16758C6C8), + UINT64_C(0x7538198ADA204834), UINT64_C(0x1E166AAAA644E880)}}, + {{UINT64_C(0xE76EE7124674ACF0), UINT64_C(0x40A6F6DEDF9DFB4C), + UINT64_C(0x91B0034C40C65721), UINT64_C(0x54FE8B8BF8E0F5E5)}, + {UINT64_C(0x6322CA0F75891895), UINT64_C(0x3D1C821E7D20C522), + UINT64_C(0x1691407F08043786), UINT64_C(0x02C3083814847D58)}}, + {{UINT64_C(0x57DEF069B8F0C372), UINT64_C(0x50375DC30D5ABF2C), + UINT64_C(0x2290381475EDFBC9), UINT64_C(0x56E39BD7AE37695A)}, + {UINT64_C(0xAB74B187463D13F2), UINT64_C(0xC50CB8A23CDE8886), + UINT64_C(0x1EFBD1CFB35F7D59), UINT64_C(0x1296C4821057AE42)}}, + {{UINT64_C(0xA350B57BC347E3FB), UINT64_C(0x4312EB75ADF65129), + UINT64_C(0xD9A7E2F47F9A6C9E), UINT64_C(0x5493AF7B9BFDCB4D)}, + {UINT64_C(0x90A443DD9AC0E58E), UINT64_C(0x9777D58AC6F3BEEF), + UINT64_C(0x12F00913965EC900), UINT64_C(0x2F6C5B59480126DA)}}, + {{UINT64_C(0x70B907FCBAD8C051), UINT64_C(0x54492D6AD3B4F608), + UINT64_C(0xE3B46F1B2E096D9F), UINT64_C(0x522AD6D1747D472A)}, + {UINT64_C(0x8FCD161602DAB5E5), UINT64_C(0xD3BA292F357B1C85), + UINT64_C(0xA6DB50CD2704F072), UINT64_C(0x63488DDF8341AA73)}}, + {{UINT64_C(0x99100A3D0FE2AAAB), UINT64_C(0x7D30C4E98EA44560), + UINT64_C(0xBA458C672B4C776D), UINT64_C(0x2EC11420BBA4D85E)}, + {UINT64_C(0xB1D9FBA27A7AEC55), UINT64_C(0x432AB2AA7665AAE5), + UINT64_C(0xD2755948F3BC7043), UINT64_C(0x2FC331BB82510EAD)}}, + {{UINT64_C(0xAAF11CF946253DB1), UINT64_C(0xEB025AEDB0DF307C), + UINT64_C(0xCB7C22A57A82ADEE), UINT64_C(0x7316C3909C5FA97B)}, + {UINT64_C(0x91620554F518067C), UINT64_C(0x20A438AE3C96A804), + UINT64_C(0xC4F9DCDF5B0C090C), UINT64_C(0x77C512DB6E5C1B45)}}, + {{UINT64_C(0xC981E682FDD09EDE), UINT64_C(0xC3EB36B7BBB3F57D), + UINT64_C(0xA07369C6D12BF450), UINT64_C(0x16627566CE017845)}, + {UINT64_C(0xFD8DEC909494AF62), UINT64_C(0x7E79309653FD4B22), + UINT64_C(0x21B8E665C8AAEAE9), UINT64_C(0x526FA31818BC33C0)}}, + {{UINT64_C(0xF55D32BF853A2647), UINT64_C(0xD873ED6CCDAEE8FE), + UINT64_C(0xA3579E2B80E52622), UINT64_C(0x03871ABA33D16FE8)}, + {UINT64_C(0x714804AC69925EDF), UINT64_C(0x0340755FF2B964FF), + UINT64_C(0x93830F98DA0D1A07), UINT64_C(0x2CAB201EF7FB1E16)}}, + {{UINT64_C(0x26DE3A3A22A8AF77), UINT64_C(0x0E77C3DCB45BA630), + UINT64_C(0x34F00017FC86E7D1), UINT64_C(0x796ABE2F1B62F7F2)}, + {UINT64_C(0x9FA092771663B5B1), UINT64_C(0xFFFDC93F9B2FB9AC), + UINT64_C(0x03AECD1A6B340D75), UINT64_C(0x5D55A168314DCCEA)}}, + {{UINT64_C(0x678AEF02747DBD0C), UINT64_C(0xF0D47C1CD47A6C09), + UINT64_C(0x6C2AC72F3FDD1681), UINT64_C(0x750E70646D789D3A)}, + {UINT64_C(0x3F970AFEAEBEDD58), UINT64_C(0x6BBA7956E3540951), + UINT64_C(0x7CC461B23E71F6AF), UINT64_C(0x7E51E548C45FED28)}}, + }, + { + {{UINT64_C(0x4A598EFB2CE2CBE5), UINT64_C(0x774CDE0A89C9A51B), + UINT64_C(0x2D003680CA907F34), UINT64_C(0x62C32DCA9D3C7D97)}, + {UINT64_C(0x37B3A90FB3054D17), UINT64_C(0x1423574C67E58A5A), + UINT64_C(0xF1D3BB1A4859FA49), UINT64_C(0x25F0AF1C3F5AFA63)}}, + {{UINT64_C(0xD3BF7F621FE53AC9), UINT64_C(0xCE2B67C3CBCE6164), + UINT64_C(0xE081C57695341024), UINT64_C(0x32B0EF5D9A70ECAB)}, + {UINT64_C(0x3EC93C853BE1E5CE), UINT64_C(0xE25F54EDA0CB7DCD), + UINT64_C(0x9D6B57D7517965B2), UINT64_C(0x159F7AB0129B0B27)}}, + {{UINT64_C(0xAEF88E95EEFB67F3), UINT64_C(0xEAEB2889E0316AB2), + UINT64_C(0x1491881FC2CB6753), UINT64_C(0x67DCDF28702789D0)}, + {UINT64_C(0x8282E0A711C0F3FD), UINT64_C(0x9CDCFDB801BA273D), + UINT64_C(0x6BF1E04326279B95), UINT64_C(0x0D42AAC685852777)}}, + {{UINT64_C(0xC4CE393E608981AB), UINT64_C(0x210E20F852141CB0), + UINT64_C(0x22C2586D6B9234B5), UINT64_C(0x52F1B3664366750E)}, + {UINT64_C(0xE38ED0D9760AFA55), UINT64_C(0xA43FF25AB5D61A08), + UINT64_C(0x0BE3A406B5E21691), UINT64_C(0x37B47A28FD4E17B0)}}, + {{UINT64_C(0xC46DC6D44C2C65C2), UINT64_C(0x2A0B452CC54BE778), + UINT64_C(0xAF113693F727070E), UINT64_C(0x7B229CD8C68D13A3)}, + {UINT64_C(0x0F63097E02D43E4B), UINT64_C(0x912F8D3355627FD8), + UINT64_C(0x1EBF39612A0DD9AE), UINT64_C(0x7FD33FDEF0294B2D)}}, + {{UINT64_C(0xC72411F5D0CC6D9F), UINT64_C(0x66E04C909B92FF84), + UINT64_C(0x0678B4F8E1C033B6), UINT64_C(0x5A99F270E49A972A)}, + {UINT64_C(0x3743BCD8D265A4DF), UINT64_C(0x7BD6DDF4CE0404C3), + UINT64_C(0x4043767F131750A5), UINT64_C(0x4A7D89839DD65652)}}, + {{UINT64_C(0x535BC78412B7822D), UINT64_C(0xDD32DD67F1F9B703), + UINT64_C(0xFFDBF0EB2EAA2A1C), UINT64_C(0x497C09FAF64E9822)}, + {UINT64_C(0x18E717E932EE2A36), UINT64_C(0xF01CC4F5583949B1), + UINT64_C(0x222EE9740A168755), UINT64_C(0x0CD14CD500C81EC9)}}, + {{UINT64_C(0x7AE0BD1114C79CDC), UINT64_C(0x67323D1A6DC08C80), + UINT64_C(0x2FD1ABC70EF32432), UINT64_C(0x65923246B0E08EBF)}, + {UINT64_C(0x0A9FD3D7C0754ECE), UINT64_C(0xE76B26245F8644FA), + UINT64_C(0xF1F0BEBA0F8BB385), UINT64_C(0x73251F03FC96778F)}}, + {{UINT64_C(0x197150DED08795A9), UINT64_C(0xAD6935AEFBB8B9CF), + UINT64_C(0x721186823B2B9EFB), UINT64_C(0x265B288DBC2B7240)}, + {UINT64_C(0x7BF2EB362F78C431), UINT64_C(0xF03B83CAF2A6E469), + UINT64_C(0x211592564740E74B), UINT64_C(0x35BE57350490F0B9)}}, + {{UINT64_C(0x207F33B2806C1CAE), UINT64_C(0x04249127DAC5ADE0), + UINT64_C(0xC4CCF33E1CC59DE7), UINT64_C(0x2A17B520272BD6D7)}, + {UINT64_C(0xC36F6B3CB48F6585), UINT64_C(0xD32A73790861ACF5), + UINT64_C(0x28A12ECB2C3291C6), UINT64_C(0x0E945F95F02A88D0)}}, + {{UINT64_C(0x4836EC01D3B3117B), UINT64_C(0x4C197454A4C2FD72), + UINT64_C(0x96FCED51F9897721), UINT64_C(0x142028585828C97D)}, + {UINT64_C(0xCA7ACED8774755B9), UINT64_C(0x460FF58297252559), + UINT64_C(0xAAE457765796DD63), UINT64_C(0x711C916E346DDBF5)}}, + {{UINT64_C(0xA60E2E7B5E203692), UINT64_C(0xCFC72FEAF3BF2A45), + UINT64_C(0x78729D2872AC0436), UINT64_C(0x3E16DD8B29ABF199)}, + {UINT64_C(0xB1705AA615A41F3D), UINT64_C(0x8C7512FE308AB87C), + UINT64_C(0xA27411C503995381), UINT64_C(0x3142403CA780CED3)}}, + {{UINT64_C(0xE4473E94F1718C7F), UINT64_C(0x601BC194A3CAB6CB), + UINT64_C(0x8F3540F8581D491D), UINT64_C(0x456A9B7C43C15321)}, + {UINT64_C(0x6F335A2D593BB7ED), UINT64_C(0xB6D5A23F7D791514), + UINT64_C(0x976D2F8379235EAD), UINT64_C(0x7D02EA0F44775C97)}}, + {{UINT64_C(0x322DBC8CE5EC268E), UINT64_C(0x1F2F6050BE14BF5C), + UINT64_C(0x58AC6397EACF6A50), UINT64_C(0x4167CBD5A5401081)}, + {UINT64_C(0x8E6F06A1EE5B4BF5), UINT64_C(0x1A6073D56B2F790F), + UINT64_C(0x1C09FF3D4F901250), UINT64_C(0x286AF8D7E6B40DF4)}}, + {{UINT64_C(0xF74C805706BD53FF), UINT64_C(0x4FCE7281E5788F0D), + UINT64_C(0xD6A867AC3D015E6B), UINT64_C(0x04AEC38D6E185A42)}, + {UINT64_C(0x8DC12B74083D65CB), UINT64_C(0xDB1AA8AC82966668), + UINT64_C(0xBD2233BF28AF1B90), UINT64_C(0x544569A7172CCA11)}}, + {{UINT64_C(0x9C56FCA8149BD0BD), UINT64_C(0x2B4EC788A05F8E44), + UINT64_C(0x1569CF6D92478943), UINT64_C(0x67E373E857380986)}, + {UINT64_C(0xF5CC8232ED3C14DB), UINT64_C(0xE3D184B0F52EAF83), + UINT64_C(0x195D41370BC64038), UINT64_C(0x77994388778C3C20)}}, + }, + { + {{UINT64_C(0x3DAA0C47A0CC77AA), UINT64_C(0xB9794E747C69CDF0), + UINT64_C(0x3610E50B4549F5D4), UINT64_C(0x262CA564B8A112CA)}, + {UINT64_C(0xD5EC795E554E8714), UINT64_C(0x73EE5502717EBEF3), + UINT64_C(0xE36E8A1A1947A478), UINT64_C(0x3FBE43A342ADC59D)}}, + {{UINT64_C(0x4DE78909021FBCBE), UINT64_C(0xA76A5EE20BBBB324), + UINT64_C(0x5B86519ACD67810B), UINT64_C(0x4CCA44A23710A4EE)}, + {UINT64_C(0xD79A121DCD1F8BEC), UINT64_C(0x2E12A772DC9CA10E), + UINT64_C(0xE301CA3B8C9E9640), UINT64_C(0x4B25FE18B731A957)}}, + {{UINT64_C(0xA05DA2CDF4AD7264), UINT64_C(0x31336489076977A5), + UINT64_C(0xC1D269BEF2E576A8), UINT64_C(0x1E877ADC7532203F)}, + {UINT64_C(0x9C9961BC8B92972C), UINT64_C(0x7BA072726A14D810), + UINT64_C(0xE51095A906913136), UINT64_C(0x4674896930E0EA8C)}}, + {{UINT64_C(0xDB8EF3463C73BA49), UINT64_C(0xBF2213123720570D), + UINT64_C(0xC07B3639605DB0D6), UINT64_C(0x44FCEFA6300336A3)}, + {UINT64_C(0x121FAC5C2D234592), UINT64_C(0x901DEE8844E367D7), + UINT64_C(0x5B5F3DD61CAA6A3A), UINT64_C(0x72E474ECAC2F6E64)}}, + {{UINT64_C(0x15690BEEF55BE61C), UINT64_C(0xE42B945EDF2678A2), + UINT64_C(0x60A5C8AA3B7B1776), UINT64_C(0x16103FBCEB9AB938)}, + {UINT64_C(0x79722A1E87AD06AB), UINT64_C(0xD7B509F6D6B632A2), + UINT64_C(0x8C4E8B2E3B69EB40), UINT64_C(0x6A50958314DB2225)}}, + {{UINT64_C(0x169F35D893B78659), UINT64_C(0x989B04D28EFF83AD), + UINT64_C(0x72CF7338A6AE4806), UINT64_C(0x6E156C84F4AAA524)}, + {UINT64_C(0x33A608EDA1ED5CB2), UINT64_C(0xCE274A64C3D28716), + UINT64_C(0xFCF1B17045F0435F), UINT64_C(0x101D1BDB1653D6F6)}}, + {{UINT64_C(0x45BC931D2E5A67D9), UINT64_C(0xAFF02C11697DA479), + UINT64_C(0x7C7972A32EA3E6E1), UINT64_C(0x71A17D505E97BB90)}, + {UINT64_C(0x962E84F219AD4C5E), UINT64_C(0xBB8C9FC7692020BE), + UINT64_C(0xA78FDF2CE7B36665), UINT64_C(0x7AC84ED426F92E33)}}, + {{UINT64_C(0xBD85A9EEC3C9E5C1), UINT64_C(0x72030BAA6ED2FD6A), + UINT64_C(0xB67185AB39CFFB89), UINT64_C(0x3E2E51A4833BF770)}, + {UINT64_C(0x248FA3485E27D5BB), UINT64_C(0xF8D435962E6D3DCF), + UINT64_C(0x07F5B93C0C8DAF81), UINT64_C(0x6A7FFA1DAD2FC97D)}}, + {{UINT64_C(0xFF308FAEFAEA33F1), UINT64_C(0x5F29DFFB3CC4C7CF), + UINT64_C(0xB9AD4527ECC5A2B9), UINT64_C(0x08B95AF6048D4B38)}, + {UINT64_C(0x56BC43A8DEC152BB), UINT64_C(0xD1147B9A3849D869), + UINT64_C(0xFE5020C2D02AF3B7), UINT64_C(0x54C02B44B918496E)}}, + {{UINT64_C(0x1611ECFD0B27468D), UINT64_C(0x4AFCE3290513A562), + UINT64_C(0x982782FD2FE74EED), UINT64_C(0x66AC58BF17ADD2EA)}, + {UINT64_C(0x8277BC2D613581D4), UINT64_C(0x0BF5BF0C988D1498), + UINT64_C(0x8A37134D55C984CB), UINT64_C(0x409A79CC92211390)}}, + {{UINT64_C(0x8C0081AE816F0462), UINT64_C(0xB431DC245A68BFC2), + UINT64_C(0x25C769C65F78C8A1), UINT64_C(0x3BE0458DB382AF14)}, + {UINT64_C(0x10583083A171ADF2), UINT64_C(0xBA5D532537F7C39F), + UINT64_C(0x76B03B945EAC7585), UINT64_C(0x76159AAC9C2DF2C6)}}, + {{UINT64_C(0x886C73BA918E0332), UINT64_C(0xF6FEC62AD24B5B52), + UINT64_C(0xB98759B436B4D23A), UINT64_C(0x5EC5B3FE5480ACF3)}, + {UINT64_C(0x30FF297D6DD175BF), UINT64_C(0x501DE74475F2B9C3), + UINT64_C(0xDEBE47CAF19230C5), UINT64_C(0x7401F20932BBBB62)}}, + {{UINT64_C(0x80712E4722496D1E), UINT64_C(0x36A0EF37DA80AF1D), + UINT64_C(0xAF6CA51C940E5E9F), UINT64_C(0x74E17B6F722D9D22)}, + {UINT64_C(0xCB70B878B8B3AE1B), UINT64_C(0xBF8B9A0B07DF974C), + UINT64_C(0x89FCC996F68A4BF4), UINT64_C(0x46F581E86EB0FB2E)}}, + {{UINT64_C(0xBCE0BD6C67137153), UINT64_C(0xAD3E92B375F64B78), + UINT64_C(0x6454CD1DFD047DD9), UINT64_C(0x181C93EB612AE472)}, + {UINT64_C(0xE575307E23A529C3), UINT64_C(0xB9C43A0B59C09EB5), + UINT64_C(0xFD233A68AA805840), UINT64_C(0x067C442EA122FFB9)}}, + {{UINT64_C(0xE1F3F76F2CD6762E), UINT64_C(0xFB68650F9764B53A), + UINT64_C(0x4E90AC72F1224580), UINT64_C(0x2BF68F01127EED48)}, + {UINT64_C(0xE6B4B40994D389A0), UINT64_C(0xD7BC8108D44593D6), + UINT64_C(0xDCF0399148A86677), UINT64_C(0x4A52D961CEBCE3C7)}}, + {{UINT64_C(0x55734AB5BAA873EA), UINT64_C(0x506DE4CF7871F323), + UINT64_C(0x7C3F8B00578612C0), UINT64_C(0x730D4B8A9243C9E8)}, + {UINT64_C(0xA3290689D385F6BD), UINT64_C(0xAF688C6A913596F5), + UINT64_C(0x0A2D89B5B646BE23), UINT64_C(0x31891165F63A6029)}}, + }, + { + {{UINT64_C(0x331F9E57579583C0), UINT64_C(0xE92ABADF69C65DA2), + UINT64_C(0xC796FBECA5B8B057), UINT64_C(0x52E6F9C9312D1E89)}, + {UINT64_C(0x0318B1DFDA68DFD3), UINT64_C(0x8BAA2EB3A1CAC4F1), + UINT64_C(0x0CDC89A2BEE7D6E1), UINT64_C(0x6102DE7A22AB50F4)}}, + {{UINT64_C(0x02003D83E20C707A), UINT64_C(0xD819249C28289D89), + UINT64_C(0x3FBC00B172053FF8), UINT64_C(0x0249C43CDF40D261)}, + {UINT64_C(0x8794EEACD8F064AF), UINT64_C(0xE2359E70DC9F0631), + UINT64_C(0xD1603647ADA310D0), UINT64_C(0x6A9E3785EDC888EC)}}, + {{UINT64_C(0xF332B384EC41908E), UINT64_C(0xF3274472BDE4760B), + UINT64_C(0x96185E89140D0EF4), UINT64_C(0x5646208990E698E7)}, + {UINT64_C(0x841A31C5F2E64396), UINT64_C(0x8F494CA503C4118F), + UINT64_C(0x0C98A4C31A188305), UINT64_C(0x1C4B5F6298AAB1AB)}}, + {{UINT64_C(0xDDEEEBF85D0D8381), UINT64_C(0xD1616F4889044363), + UINT64_C(0x2EE41D4721616A13), UINT64_C(0x2DCE61104BC769FC)}, + {UINT64_C(0xE3707A0116C1C468), UINT64_C(0x3B674187969AF612), + UINT64_C(0xB64BD4D71E0671CC), UINT64_C(0x7EF01DBAB98C297C)}}, + {{UINT64_C(0x91DCBF99815381AC), UINT64_C(0x8D711F5838B67B97), + UINT64_C(0x9C11F5959C6E322C), UINT64_C(0x4A688D0BE31A782F)}, + {UINT64_C(0x1297D9F3DCE93F5B), UINT64_C(0xA79561947C1DC62A), + UINT64_C(0x340F217A5F718F63), UINT64_C(0x71F84529FCC0EF6A)}}, + {{UINT64_C(0x0D968E503DD00963), UINT64_C(0x5E696D79D7FF66C3), + UINT64_C(0xAA52D60D499A9BE2), UINT64_C(0x72482C45CDC289DE)}, + {UINT64_C(0xC84968F57FFAAD3A), UINT64_C(0xEE91304CF7CD5BED), + UINT64_C(0x684936760A7CC7C0), UINT64_C(0x3411AFA780023968)}}, + {{UINT64_C(0xA0AEBC706E3294C0), UINT64_C(0x93263942DC385E50), + UINT64_C(0x7B90C0028467FB06), UINT64_C(0x29477CA438CFD0FF)}, + {UINT64_C(0xADC04D8192A748D5), UINT64_C(0xAE4F309D76CF3AE5), + UINT64_C(0xBDA34BF04BB2C2FF), UINT64_C(0x65138897368536E4)}}, + {{UINT64_C(0x9CB8F7D66FE6D4D6), UINT64_C(0x6C2FFBF5AF246792), + UINT64_C(0xD5A4F34981524707), UINT64_C(0x3AFE45CE36766D5E)}, + {UINT64_C(0x41991B49513BA267), UINT64_C(0x06EF1EEA6C18AA5E), + UINT64_C(0x0A51763588EA2099), UINT64_C(0x32D2B5E2D245B88B)}}, + {{UINT64_C(0xAE38CDD53F517C5B), UINT64_C(0x1C94FDC5D878FEEE), + UINT64_C(0xABF7A41DBEFCE107), UINT64_C(0x33BF3FE9D408DFE8)}, + {UINT64_C(0x4F2E6FF0947CB8C4), UINT64_C(0x3A8E86ABF998C5A0), + UINT64_C(0x3ADC6ABAE359209F), UINT64_C(0x37A2DE1BD9A50051)}}, + {{UINT64_C(0x424F4E34E718F6B9), UINT64_C(0x50B1A03B75C58EB6), + UINT64_C(0xB949531491390E27), UINT64_C(0x4AE0CC3A880E78D8)}, + {UINT64_C(0x10331AFAF1E4413C), UINT64_C(0xE7A3E554DDFCD2F0), + UINT64_C(0x44F6DE850EBF484B), UINT64_C(0x6A762A7E895D0F54)}}, + {{UINT64_C(0x8E606B0A8D0558F6), UINT64_C(0xAADA76045C4DD930), + UINT64_C(0x5B2FC7ADEF4ACAD0), UINT64_C(0x0D969AD087F5B6E2)}, + {UINT64_C(0xF9A182B25974E67B), UINT64_C(0xCD8232E723B4009A), + UINT64_C(0x3D8F5DDD285BCC3F), UINT64_C(0x114AC56FEEE1B9BF)}}, + {{UINT64_C(0xD3EA1B56AA45085A), UINT64_C(0x5DE7BB70D314CEDF), + UINT64_C(0x8A74384C7BCCDCFD), UINT64_C(0x64B80F8A8E0E0367)}, + {UINT64_C(0xA9EA432B48884ED1), UINT64_C(0x51957A8F8C0BA810), + UINT64_C(0x9E88340039E810E3), UINT64_C(0x0A73ED5A28B2051C)}}, + {{UINT64_C(0x655212A313C30826), UINT64_C(0xAE53668EB73E8660), + UINT64_C(0x6C33B649FF108CCE), UINT64_C(0x39E0B11821D49681)}, + {UINT64_C(0xFE4D215270525312), UINT64_C(0x2EDCE32BFFD18749), + UINT64_C(0xFED19B1CB04D3FB8), UINT64_C(0x4DFE216B2B225A9D)}}, + {{UINT64_C(0x583E8A6C4C70F8A8), UINT64_C(0xC8206231954A9AE1), + UINT64_C(0x9360B592B76517B1), UINT64_C(0x362C5C5CEED10CCA)}, + {UINT64_C(0x3DBA95953D607921), UINT64_C(0x0188A5D65A6ECC40), + UINT64_C(0x0EAB43C16CFF4ADE), UINT64_C(0x1F3673AEDE3347E0)}}, + {{UINT64_C(0x7300C4B3796593EE), UINT64_C(0x607E7E76D8D926C3), + UINT64_C(0x1762CE2677F9FD06), UINT64_C(0x0D0478B3CEA891EB)}, + {UINT64_C(0xB11297912618B09E), UINT64_C(0x5F9D290D33F928C9), + UINT64_C(0xE3192631E6178DB0), UINT64_C(0x21260AC808576D3F)}}, + {{UINT64_C(0x899DAF2A76968E1C), UINT64_C(0x0519DEA9F9C2B3E7), + UINT64_C(0x5FDADC3893D0BD4E), UINT64_C(0x0467BFF743B4D98F)}, + {UINT64_C(0x651C316C6F3936C9), UINT64_C(0xE757689AAF27DF8B), + UINT64_C(0x3AB037EAA0FA9188), UINT64_C(0x2F8B039BD927B60A)}}, + }, + { + {{UINT64_C(0x72211BF5DE876A70), UINT64_C(0xA836163173D121CE), + UINT64_C(0x2385272123D419E4), UINT64_C(0x3F56D47EDBD03345)}, + {UINT64_C(0xFB0E91A5D6F05BAC), UINT64_C(0xA0E02BF6AC9D0F46), + UINT64_C(0x5ED9EA2C97F1812F), UINT64_C(0x172F564FEBD5DB5A)}}, + {{UINT64_C(0xC790E91281F11E58), UINT64_C(0x14A1763099A5DFF7), + UINT64_C(0xF6F30F2F1627516D), UINT64_C(0x522CAD8FEFCF43B7)}, + {UINT64_C(0xFFADD45E6EA01128), UINT64_C(0x5D23234CD61D1964), + UINT64_C(0xE9212C852802DF86), UINT64_C(0x0A3D237B92AA8DA3)}}, + {{UINT64_C(0x2CED05F4E50ED356), UINT64_C(0x1CBC7FB1BFFEEF3A), + UINT64_C(0x885991B1BE19F0F0), UINT64_C(0x6DED0794DE44A492)}, + {UINT64_C(0x9967E83444CBECFC), UINT64_C(0xB0674A8D6A792ED1), + UINT64_C(0x360E2DE4B7DDD557), UINT64_C(0x26852A7470E95D26)}}, + {{UINT64_C(0x8CBC15203A6E2116), UINT64_C(0xF09327DFBF285BBE), + UINT64_C(0x8C7D9AD54A54D3C5), UINT64_C(0x778F54E66BD2768F)}, + {UINT64_C(0x09B489F88FF3DBC0), UINT64_C(0x0A0FA7FBD2871932), + UINT64_C(0xABB9DC38E0A8CEC4), UINT64_C(0x2EE092D821E37A50)}}, + {{UINT64_C(0xBB9256E7AF6D88D8), UINT64_C(0x3CDCB1CB0A218927), + UINT64_C(0x8E5B744AF216D6E6), UINT64_C(0x6F0617F2BC885AFD)}, + {UINT64_C(0xFBA9CDA7268397D5), UINT64_C(0xC61547165D4C75D8), + UINT64_C(0x9ED8D17B43FB2CD2), UINT64_C(0x4D0CE3FBBE45BC5C)}}, + {{UINT64_C(0x4259BB02A38472F5), UINT64_C(0xFAFAAE0315107D0E), + UINT64_C(0x2B8E450ECF0CF2B6), UINT64_C(0x788674C3ED887C3A)}, + {UINT64_C(0x1F3EBD594B3D2EAC), UINT64_C(0x82CB568475E41B55), + UINT64_C(0x005AB76BC02BE49A), UINT64_C(0x6F13ADD2F5F90FEE)}}, + {{UINT64_C(0x0116374A7AFA7161), UINT64_C(0x8A1AE4482DB7F824), + UINT64_C(0xD3C0DA12DB656A22), UINT64_C(0x7B095B95B989204D)}, + {UINT64_C(0x24C35202EF8F21CA), UINT64_C(0x91088DA72DA5A5A1), + UINT64_C(0xAAF1944BE3F97D68), UINT64_C(0x245D28487C884134)}}, + {{UINT64_C(0xD80C65D668F5C702), UINT64_C(0xE2FE245F021A2974), + UINT64_C(0xFB8520E03A11899C), UINT64_C(0x4806D1FA2BE6BF88)}, + {UINT64_C(0xF6F8C11A20ED235F), UINT64_C(0x52AC14247F0D651E), + UINT64_C(0x44C3C89FDB9CF6D6), UINT64_C(0x6762516DB2E2E41F)}}, + {{UINT64_C(0x2743D874FDE91600), UINT64_C(0x60975FD5CDF00100), + UINT64_C(0x78ACC8642D2954F4), UINT64_C(0x46B9E60256373454)}, + {UINT64_C(0x7586A9706F0FB867), UINT64_C(0x888E3677242DF35A), + UINT64_C(0x5A639E79F1460F62), UINT64_C(0x1256517E55297DBC)}}, + {{UINT64_C(0x3F78339B7B9294C3), UINT64_C(0x5BA765D1BCE77012), + UINT64_C(0xA88E0CD8512E39E2), UINT64_C(0x2D63E14BF6BA6A6A)}, + {UINT64_C(0xF849A163EA29071B), UINT64_C(0xF32519B74C0A2E22), + UINT64_C(0xEA5D1315561C35F5), UINT64_C(0x7041F515D9267DCA)}}, + {{UINT64_C(0xE01E839F1FE56E6B), UINT64_C(0x3E473D8C4A93CE88), + UINT64_C(0xC4846ECF89AAFDAE), UINT64_C(0x4111D97A07D946EA)}, + {UINT64_C(0xC20881F651A45F02), UINT64_C(0x14C2AC95B9CD841A), + UINT64_C(0x2FBE8329F2CBD929), UINT64_C(0x1E8B7469C812608B)}}, + {{UINT64_C(0xB36A5D03007F0A5D), UINT64_C(0xA7E7A1A85DCF7AF4), + UINT64_C(0x7227F4C5BEB12AFB), UINT64_C(0x462277924D276783)}, + {UINT64_C(0x9EA64D4C48403B93), UINT64_C(0x58EA31BC0B333ED5), + UINT64_C(0x2D6DD219C5C93119), UINT64_C(0x385023A745069280)}}, + {{UINT64_C(0x8AB9B9EAF60C46AF), UINT64_C(0xFA1D3F08E8B827C2), + UINT64_C(0x78C6BFBC1BAD41DB), UINT64_C(0x527A0BED23BE0C1E)}, + {UINT64_C(0x66212FD26ACCE641), UINT64_C(0x86125B0DEE6F78E7), + UINT64_C(0xA2A0271858552A8C), UINT64_C(0x594F2B777E9605C5)}}, + {{UINT64_C(0x3FB1F6CF88A27989), UINT64_C(0xBC4962F7D96268B8), + UINT64_C(0xBD8761E9B95E2A36), UINT64_C(0x64AB934A046DEC63)}, + {UINT64_C(0xC64D1C592E53CF1A), UINT64_C(0xC9865A9B578C5E8C), + UINT64_C(0x5ECA62327A0359DE), UINT64_C(0x127DD136FB4685E5)}}, + {{UINT64_C(0xB0F7B0711AE320C9), UINT64_C(0x09BF89BB52525203), + UINT64_C(0x97B20027709C5692), UINT64_C(0x16A62485EDBF6175)}, + {UINT64_C(0x32C18836394C50F9), UINT64_C(0x7D99468FD3B98C19), + UINT64_C(0x8EBE50962E8D2729), UINT64_C(0x4E75B3CCE655F093)}}, + {{UINT64_C(0xCBEFD1A29EAE827E), UINT64_C(0xDE2D1234FBF4630D), + UINT64_C(0x1B3ADCF896086CDA), UINT64_C(0x43D3960E2EA6CBA7)}, + {UINT64_C(0x18321D1D1CB5A0F7), UINT64_C(0xDC94C6F947BEABB4), + UINT64_C(0xFBACC6D575AF6AB7), UINT64_C(0x0EE5D35789B98E86)}}, + }, + { + {{UINT64_C(0x3F01B4AA062E0994), UINT64_C(0x994B28B05C952259), + UINT64_C(0x2678F8B80CDEEC70), UINT64_C(0x4D06AF84212436F3)}, + {UINT64_C(0xE9DF52FD1CF27A98), UINT64_C(0xD56B9FD10B7718F7), + UINT64_C(0x728BE624D9AEDA0D), UINT64_C(0x098710881A646888)}}, + {{UINT64_C(0xB1BC922D9B586B13), UINT64_C(0x6C084C543CA3B1BA), + UINT64_C(0x54D196C7CF322698), UINT64_C(0x06EC3A5585D527E1)}, + {UINT64_C(0x069187102A57CAA1), UINT64_C(0x6AEAC07D65FD0F6B), + UINT64_C(0xB66A34D70F512F84), UINT64_C(0x3860C002A44E6452)}}, + {{UINT64_C(0x17263B260881608A), UINT64_C(0x78D556AA56C18A7A), + UINT64_C(0xA0826A1CAC3A47AB), UINT64_C(0x61686A58B6933FF5)}, + {UINT64_C(0xEA9D8771DBCF2C4F), UINT64_C(0x1C66EB026AB00426), + UINT64_C(0xF8DAED2B401C466A), UINT64_C(0x1ED0A99ADAAE8040)}}, + {{UINT64_C(0x31EFFC4B7208E58A), UINT64_C(0x28868456B4E4319E), + UINT64_C(0x1059C249D46AC4DA), UINT64_C(0x3589D2122279B362)}, + {UINT64_C(0xB28B8FAD45552E92), UINT64_C(0xC9E32541C3AB8098), + UINT64_C(0x82604904F14B35A1), UINT64_C(0x1E64A89FDB68C214)}}, + {{UINT64_C(0xDF0E223DAB6947AF), UINT64_C(0xE74EF1D6771670D0), + UINT64_C(0x70A9AD21F429F03B), UINT64_C(0x7CB1FA1F1385B8DC)}, + {UINT64_C(0x25ABC0A769053D24), UINT64_C(0x207FE30A6369D02E), + UINT64_C(0x57B76E3CC6E4EC2C), UINT64_C(0x2E03D2E3B927CAB2)}}, + {{UINT64_C(0xEFA377FF622D57AE), UINT64_C(0x41532F56A885951A), + UINT64_C(0x5ED89AA7CC69B9A8), UINT64_C(0x60BFF2EC295F5E84)}, + {UINT64_C(0x411D65C31E5C3041), UINT64_C(0xDB533F8B4B7772F8), + UINT64_C(0x72CADEB63BDD4AEA), UINT64_C(0x0EC79DF27C49E454)}}, + {{UINT64_C(0x0C39332C81D0B84B), UINT64_C(0xA76A9A3A95FF472B), + UINT64_C(0xD12FEB9931DB2BA6), UINT64_C(0x4AAB92223683E53A)}, + {UINT64_C(0x56CB18AF24FC6271), UINT64_C(0x671581D62544C72D), + UINT64_C(0xCD136492FBD6F4D1), UINT64_C(0x6C2023183579EE09)}}, + {{UINT64_C(0xEDC5AF02C103C348), UINT64_C(0xDA32344E155A103D), + UINT64_C(0xFF3A7679B0D1377E), UINT64_C(0x1609197268F02750)}, + {UINT64_C(0xD4C6360DD9E9C143), UINT64_C(0xE0ABA0EF968EE990), + UINT64_C(0x5781687897E4C9AE), UINT64_C(0x5A4D167B9D63E32D)}}, + {{UINT64_C(0xB04BA52550E25802), UINT64_C(0x011DA36E66912F15), + UINT64_C(0x08D8B68019E0A182), UINT64_C(0x66AA4AE82E462B0F)}, + {UINT64_C(0x3227C3A6E0B9D283), UINT64_C(0x9BF8C4D0F2B2B096), + UINT64_C(0x1E51416CBA809EB7), UINT64_C(0x68411B752A67D346)}}, + {{UINT64_C(0xE55B134837A67F3B), UINT64_C(0x5E32D73C96484391), + UINT64_C(0xC3F804D56256B91E), UINT64_C(0x67F17A4703B0783B)}, + {UINT64_C(0x2010EFEBDD2334AD), UINT64_C(0xBD9965B5B10FF052), + UINT64_C(0x519CDA6DF58ACA52), UINT64_C(0x045BEEBE2FD3D394)}}, + {{UINT64_C(0x81722E2CEA271BCD), UINT64_C(0x393C082E0A4F1342), + UINT64_C(0x573F7CD553B345CE), UINT64_C(0x7AD71FE23D7B4292)}, + {UINT64_C(0xDA406D0ADA8BECB8), UINT64_C(0x14FD41CA82FE66BC), + UINT64_C(0x80A410620A91DFFC), UINT64_C(0x33E38E10F4F0CDEB)}}, + {{UINT64_C(0x0234BF382529532C), UINT64_C(0x9F5D6342A76CAE3B), + UINT64_C(0xC9944CB3B3C50442), UINT64_C(0x51752DF08ABFAF17)}, + {UINT64_C(0x2BFA58C4A37B13FB), UINT64_C(0x19F80FDEDDB14951), + UINT64_C(0xDC7026AA7DCB927B), UINT64_C(0x57907272AAB9FCBA)}}, + {{UINT64_C(0xCE38712DF3C046C2), UINT64_C(0x21D1FDB047B29D0E), + UINT64_C(0x7F746E0ECD96D414), UINT64_C(0x72F07B52636CFEA4)}, + {UINT64_C(0x0D8FE94FECE6382D), UINT64_C(0x9BFB4CBA24229CA4), + UINT64_C(0xFAE55B77E54388B0), UINT64_C(0x074EBC32A188299F)}}, + {{UINT64_C(0x8AF2EBCDE21DCCA2), UINT64_C(0x9916A6B6377487F2), + UINT64_C(0x607DC19AD8051D40), UINT64_C(0x7DFD53F4419DDE12)}, + {UINT64_C(0xD17D0D619AD07924), UINT64_C(0x14F7CE0F173E266B), + UINT64_C(0x687FB8530281C9EB), UINT64_C(0x6B35CC1A3361B273)}}, + {{UINT64_C(0x7CD6369E16E02DE3), UINT64_C(0x118EE0B11F35DFBC), + UINT64_C(0x7D8C8DBD98B3EE60), UINT64_C(0x039806FC8D29EA17)}, + {UINT64_C(0x3C473872EC2C2597), UINT64_C(0x81294AF45E4EF521), + UINT64_C(0x5ED048DBC22A9D7C), UINT64_C(0x3879E95B0A08C4D4)}}, + {{UINT64_C(0x0206E47F96A864FE), UINT64_C(0xC94F137AA55D0631), + UINT64_C(0x9C1B3D298E8408F8), UINT64_C(0x150A4046B9193A5E)}, + {UINT64_C(0x4E8F9345CB1ADF21), UINT64_C(0x6ED14D8A7BD5E1F9), + UINT64_C(0x7082532960809F68), UINT64_C(0x0D2F1C3BFA85A06C)}}, + }, + { + {{UINT64_C(0x3C5ABE75B5C810C3), UINT64_C(0xEA2C3EF9E28F1E26), + UINT64_C(0xEEB1C5688BF68280), UINT64_C(0x5A165CEB7AE69110)}, + {UINT64_C(0xE36C646044550DF1), UINT64_C(0x6FB4B108DB909258), + UINT64_C(0xBFA1427717D4D8C5), UINT64_C(0x744CAF23927976D8)}}, + {{UINT64_C(0xCBE70DF947EA55C7), UINT64_C(0x8F8119AE535457AE), + UINT64_C(0x1E3C69EC7DAFD732), UINT64_C(0x1A2E162D39D409A2)}, + {UINT64_C(0xBD7576A15F81C227), UINT64_C(0xA040AF9EC86AC2C3), + UINT64_C(0x5690C059C10FC749), UINT64_C(0x20B26E8849CFAEC6)}}, + {{UINT64_C(0x87AEBD1EE3EF781E), UINT64_C(0xBC794A621609A1F0), + UINT64_C(0x96D8314226E7F61B), UINT64_C(0x5198577FFC51D17D)}, + {UINT64_C(0xBFB5FAE28E6D0124), UINT64_C(0x91A7172BFFD5BD72), + UINT64_C(0x474B015402832847), UINT64_C(0x4BAF0B4C59827FEB)}}, + {{UINT64_C(0x5EADAA8EBA090294), UINT64_C(0x51401BC911A6E9FA), + UINT64_C(0x78F117581D2594CD), UINT64_C(0x1811AD3082D203C2)}, + {UINT64_C(0x554CC39A53FD07CC), UINT64_C(0x055FC983C7A05601), + UINT64_C(0xB3B34E95D5A80B4B), UINT64_C(0x72B4CF941819BC16)}}, + {{UINT64_C(0x0750E4F0514FAFD0), UINT64_C(0x297D27E6AD61C7B1), + UINT64_C(0x701D743FA2D5D410), UINT64_C(0x535DD97BC83B55C9)}, + {UINT64_C(0x2EE96DDE1CB11BB0), UINT64_C(0xECEA32EA0914450F), + UINT64_C(0x4FB812364CDBDA6A), UINT64_C(0x5B75B6B2233C8063)}}, + {{UINT64_C(0xF0A934A6D69D6C6A), UINT64_C(0x313E89773CC80AC9), + UINT64_C(0x74692B171E428B71), UINT64_C(0x0474FEFCE1BE662D)}, + {UINT64_C(0xAA2FF6DBAFFBF61B), UINT64_C(0xCE1594E1776983AF), + UINT64_C(0xF00C665B4D5A2596), UINT64_C(0x30DD24497D414B9A)}}, + {{UINT64_C(0xEF862DA2ACC44AB3), UINT64_C(0xBAD6857F6EE7A44A), + UINT64_C(0x57674BF9D2F9027E), UINT64_C(0x4D771CC32ABF816E)}, + {UINT64_C(0x27BEFC18AC0F1348), UINT64_C(0xD83112EF5E4F1202), + UINT64_C(0x3571BDE38E9AAAE5), UINT64_C(0x07284830C1379B13)}}, + {{UINT64_C(0xA4C2F36F72A8890C), UINT64_C(0x22DF0E815824B392), + UINT64_C(0x50FAD77F5E720240), UINT64_C(0x1D152A6903278F96)}, + {UINT64_C(0x25A3E92EA7D80F17), UINT64_C(0xBBF85B327EF32666), + UINT64_C(0xBBB5568727222E52), UINT64_C(0x756D22A67582FE42)}}, + {{UINT64_C(0x0AE7493A9BC9EAED), UINT64_C(0x9185F53F0DDBB275), + UINT64_C(0x1585D068C3DFDBA7), UINT64_C(0x543208A1562E2455)}, + {UINT64_C(0x4C417D81CBCF9535), UINT64_C(0xD2DC38D3E35DD6ED), + UINT64_C(0x9DF1E014346F03A4), UINT64_C(0x65736E3FF0E772A6)}}, + {{UINT64_C(0x58684A7BCFB7FF06), UINT64_C(0x72CC4AFEC58E6316), + UINT64_C(0x2CA9BF30A8BB508A), UINT64_C(0x61576519E2044C8C)}, + {UINT64_C(0xE78FAD3D8FF6D2B5), UINT64_C(0x6E5B839FA934C7B2), + UINT64_C(0xC1F3D367FAFA9F9B), UINT64_C(0x637CC398F8B2AFA4)}}, + {{UINT64_C(0xD6FC1806FE2B2639), UINT64_C(0x1DB199B49E98A7F2), + UINT64_C(0x0508763DC794F900), UINT64_C(0x363F1F7D3232E5AC)}, + {UINT64_C(0xDCF2AD74BBDBB351), UINT64_C(0x91F2EAF15A506BC6), + UINT64_C(0xBDE8459EB850088B), UINT64_C(0x52DF883B3E1135AF)}}, + {{UINT64_C(0x12FD053AF93779DC), UINT64_C(0x3E3D87289E319E46), + UINT64_C(0x4D631005E5E360AE), UINT64_C(0x4A8B5683B1B29A30)}, + {UINT64_C(0x305E5E53A8CA45EF), UINT64_C(0x59EACB45C2914843), + UINT64_C(0x83677B7A1988ECEA), UINT64_C(0x63D9CD36D6FD53E8)}}, + {{UINT64_C(0xDF2DACF2B77EB45F), UINT64_C(0x3C1303E355BBA70E), + UINT64_C(0x5AB8EB424526A06C), UINT64_C(0x4D4FD2167FE06BBC)}, + {UINT64_C(0x98C5ADCFE1486ABC), UINT64_C(0x9A503BFF07F86F3A), + UINT64_C(0x7CEBAECB56282E44), UINT64_C(0x4FB090371F230DA0)}}, + {{UINT64_C(0xD1A3738427210752), UINT64_C(0xD10794D602CF1C74), + UINT64_C(0x48A2095A820CC08C), UINT64_C(0x6DCDDE2EE3284B9D)}, + {UINT64_C(0xB8C7203E5D40510D), UINT64_C(0x957E89825385E3A7), + UINT64_C(0xD220BE2FE27D7C13), UINT64_C(0x2D104AC57B471B5B)}}, + {{UINT64_C(0x3B31D52BBA0AFA8D), UINT64_C(0xFA9639F5DCC85F88), + UINT64_C(0x150146378861DDD7), UINT64_C(0x31C222DB7B5443B0)}, + {UINT64_C(0xE2618546C3CDD689), UINT64_C(0x7F3FB754D528A130), + UINT64_C(0xA0915810AC5FAF99), UINT64_C(0x3863B890E9899CE5)}}, + {{UINT64_C(0xBDD42CA3579C4353), UINT64_C(0xAD30567D4D65CB5B), + UINT64_C(0x0E343F216D91810B), UINT64_C(0x65E0092D42E19816)}, + {UINT64_C(0x76154DCCF84E8C8E), UINT64_C(0xBA147CA80BA4AE59), + UINT64_C(0xCA8085E756A1A71E), UINT64_C(0x1D90B4B01A158536)}}, + }, + { + {{UINT64_C(0x5C4B7438F8B6C26A), UINT64_C(0x0C17A41B645BBE80), + UINT64_C(0xA386062D40CF3D85), UINT64_C(0x563E42D2E78F776D)}, + {UINT64_C(0x4BB8E3561F07459B), UINT64_C(0xF01A24B775D222CD), + UINT64_C(0xBE3D032B24CF3F61), UINT64_C(0x759B01670AD5F3A3)}}, + {{UINT64_C(0x2F5AEBD17D201AAB), UINT64_C(0x7B14CBEEC0AE02AD), + UINT64_C(0xB9B54430EDC6388B), UINT64_C(0x69E713FBB622E01F)}, + {UINT64_C(0x4630EE8EC5361565), UINT64_C(0x6705961E5C8FB479), + UINT64_C(0x125CC97E07C2AA45), UINT64_C(0x4BC459F425AE3B12)}}, + {{UINT64_C(0xEF02549628CF94E4), UINT64_C(0x04CFAB259DB24DE6), + UINT64_C(0x52B8C734C62254EF), UINT64_C(0x0F2FE922568AB164)}, + {UINT64_C(0x48551A05E3F39B40), UINT64_C(0x4A36865F31A7C7F6), + UINT64_C(0x4486512C840441AE), UINT64_C(0x559C6CAF8C7C4B4D)}}, + {{UINT64_C(0xFCC0D1DA0F103030), UINT64_C(0x7A9F1D5539CD584E), + UINT64_C(0x3EFB9B94681D0D37), UINT64_C(0x3AE97CCD4D842332)}, + {UINT64_C(0x85A8ECE13C03676B), UINT64_C(0x030F87753AD435A1), + UINT64_C(0xF6019B4D7F2D73B5), UINT64_C(0x6B77E31A2F14F911)}}, + {{UINT64_C(0x65C8161B9186C671), UINT64_C(0x412C3CC7CDFF2F8C), + UINT64_C(0xBFFC17192C2FEA33), UINT64_C(0x75DCF68BC3675845)}, + {UINT64_C(0x0476AFBF3B23D576), UINT64_C(0xB20CAEE219315F79), + UINT64_C(0x1BC2A8590885471A), UINT64_C(0x410FF6CFC328279C)}}, + {{UINT64_C(0x327394D960569D94), UINT64_C(0xFF2AEB6A6EA39D95), + UINT64_C(0x1BED71E8EA0CA3AE), UINT64_C(0x1000A81E21072A94)}, + {UINT64_C(0x368EA22973C02416), UINT64_C(0xDF5B2A420A4941BC), + UINT64_C(0x4FFDC7B8D0D40B3A), UINT64_C(0x7B2C73F148ABAB4E)}}, + {{UINT64_C(0x90FE34E481EE1072), UINT64_C(0xAE7A2FF4310E13D8), + UINT64_C(0x6213D3B1CAB3927C), UINT64_C(0x44936FBD7DC7E9EF)}, + {UINT64_C(0x3B898EF323A1BDBE), UINT64_C(0x3FA6C6A054CC7B1D), + UINT64_C(0x41BCC3B5C6AC54F2), UINT64_C(0x1AB5D168DC10AE39)}}, + {{UINT64_C(0x1AED113CFEAF67A6), UINT64_C(0x04E3C7A1342AC459), + UINT64_C(0x65A392787A99DFBC), UINT64_C(0x03ECBC6B642329FF)}, + {UINT64_C(0x799F4EC5A6A4421A), UINT64_C(0x44522C26BEE18B3C), + UINT64_C(0x1C7BFF151975C4BB), UINT64_C(0x0FAA03BEE6A27857)}}, + {{UINT64_C(0x173AB9E00743FF7B), UINT64_C(0xB11187AE2CFC95AE), + UINT64_C(0xCA81BB2E9C112049), UINT64_C(0x6B811DB6C03555D5)}, + {UINT64_C(0x76C1FC144FE32256), UINT64_C(0xDA8C5A96D0E47C4E), + UINT64_C(0xB645D41329FDB01C), UINT64_C(0x78898447AC39502A)}}, + {{UINT64_C(0x4285FF329BF44B35), UINT64_C(0x207F9029E3358C7F), + UINT64_C(0x0FE8F03263BAF4CE), UINT64_C(0x698A0398FF15E1F7)}, + {UINT64_C(0x548748437E572DF6), UINT64_C(0x746835199F43C07B), + UINT64_C(0x47BAB49E0A433D6A), UINT64_C(0x09ED8740FAB5C858)}}, + {{UINT64_C(0x8AA5E5C91F6CA820), UINT64_C(0xAD290A94D3C25BEC), + UINT64_C(0xDC4C67BF3BA255F0), UINT64_C(0x0D7EF7D91DEDD8A9)}, + {UINT64_C(0x0831A26F5EEFD1C3), UINT64_C(0x78CA66F504483E0C), + UINT64_C(0x9D5A56122FAAC15A), UINT64_C(0x43B0C7E75D6FACDB)}}, + {{UINT64_C(0x34BA537C4503899D), UINT64_C(0x9DEBC8F52AF8ED3B), + UINT64_C(0x396995E984F416E6), UINT64_C(0x77F10FEDC7BCE392)}, + {UINT64_C(0x065CCB721F8AF262), UINT64_C(0xE220ED60D2F00FC4), + UINT64_C(0x41A5FB065EE25B46), UINT64_C(0x22505574DD9070B1)}}, + {{UINT64_C(0x571FF15144BFC5C0), UINT64_C(0xBE2558B83138363C), + UINT64_C(0xB2211ABD605E356C), UINT64_C(0x0B6435DA176C5F53)}, + {UINT64_C(0xF18C917C8DCF484E), UINT64_C(0x45D4120CCD93D65F), + UINT64_C(0xEBB0BF9C190AE7F8), UINT64_C(0x3D403DE28D8C8D5A)}}, + {{UINT64_C(0xCDE760B4BE656644), UINT64_C(0x99DC5E6D2D21DBC5), + UINT64_C(0x644FCAF3B6232D08), UINT64_C(0x52955488859341E3)}, + {UINT64_C(0x3AB4580D25763919), UINT64_C(0x82AB0C534EF66999), + UINT64_C(0xBD395C740180663E), UINT64_C(0x07974F1AB4756474)}}, + {{UINT64_C(0x8C15CFE731588EA6), UINT64_C(0x9629060EF36C882D), + UINT64_C(0xDF8E8E9E862B080D), UINT64_C(0x0BD36B48D7A0C5BE)}, + {UINT64_C(0xEBD0C6C976DA047B), UINT64_C(0x4F0F08ABBB94FD5A), + UINT64_C(0x33D41A4E74910D9F), UINT64_C(0x3D6F8D0BA9583754)}}, + {{UINT64_C(0xEC4C896E4E4FC72E), UINT64_C(0xB111210C002ECE31), + UINT64_C(0x7204D9372AF11E21), UINT64_C(0x59B9C1EC5D0509E9)}, + {UINT64_C(0xBC97644CF9D5BBC0), UINT64_C(0x25B123AF31B4E869), + UINT64_C(0x091D7AEC5A6CAAB0), UINT64_C(0x340B9E80ECC911C4)}}, + }, + { + {{UINT64_C(0xE8036B20EC208406), UINT64_C(0xAF46A05A214CEB5A), + UINT64_C(0x8672084A46CC8379), UINT64_C(0x7DE0A42F04BA7885)}, + {UINT64_C(0xB772BEDCC9D3F32A), UINT64_C(0x7DAE3680534B1520), + UINT64_C(0x04CD6203EC7120CC), UINT64_C(0x032F88E3B4E99780)}}, + {{UINT64_C(0xB34BDA5CE4A0897E), UINT64_C(0xF7748B26379B2480), + UINT64_C(0xF47F6646B2D97522), UINT64_C(0x66AD8DE1F9641DB9)}, + {UINT64_C(0x0F8EB919D1BF09C0), UINT64_C(0x7853BB4EB95DC052), + UINT64_C(0xBE7EE13D62B1FD4A), UINT64_C(0x2FF7EDC5DC7CE53E)}}, + {{UINT64_C(0xE1009AA0EE81DF35), UINT64_C(0x14972F0261D0798B), + UINT64_C(0x5A6831A0F1EA1A6A), UINT64_C(0x1DBABA3D0CAB301A)}, + {UINT64_C(0x421270E2157D5213), UINT64_C(0xA37BEA956407B790), + UINT64_C(0xEAD56B1F103A6073), UINT64_C(0x27534624BAD909F1)}}, + {{UINT64_C(0xC92D2209C2621EF1), UINT64_C(0x450710C31D3AD3F3), + UINT64_C(0x8CFB8D6C19E481AD), UINT64_C(0x35CACDAEE6DB01BD)}, + {UINT64_C(0x2DA4A1D87CDD5B01), UINT64_C(0x3E40C7510F55BA11), + UINT64_C(0xA91D9EE7B15C162D), UINT64_C(0x13AD3BE511DBA157)}}, + {{UINT64_C(0xAE417DB0E72F64F5), UINT64_C(0x40822279F13352BA), + UINT64_C(0xEC43AFD91F2B75B9), UINT64_C(0x14D4BB2BC9CF2972)}, + {UINT64_C(0x4A55718A0761B2F1), UINT64_C(0xDAFBF756D81A9307), + UINT64_C(0x2DCDFC1C5D3E5A07), UINT64_C(0x696E42ED2EBBDF28)}}, + {{UINT64_C(0xF473939968705410), UINT64_C(0xFD581005AF5FFC88), + UINT64_C(0x5490A69490A9F517), UINT64_C(0x4A5C8C2E8CF8327E)}, + {UINT64_C(0xC203CD35F7D83DA6), UINT64_C(0xECAA6B907282368D), + UINT64_C(0x365BB5712AF7EC42), UINT64_C(0x112E7ACDD4099316)}}, + {{UINT64_C(0x9ABDE0603AE3C25C), UINT64_C(0xE4C03DADEB9925B2), + UINT64_C(0x3C28DCB19E03388B), UINT64_C(0x2337A7CF52B63C06)}, + {UINT64_C(0x74DC0F134E1AF2EA), UINT64_C(0xA010E4E3CD0D59AA), + UINT64_C(0x6E4DB7BA9FA14C96), UINT64_C(0x5B2C3862557F7CDE)}}, + {{UINT64_C(0xC826E567C8C79CA9), UINT64_C(0xE7D110CAE851BE0C), + UINT64_C(0xFFD57057A3606499), UINT64_C(0x2E9DBC40C6482504)}, + {UINT64_C(0xC9F0C3C2F784D9AF), UINT64_C(0xDD982A05B755172E), + UINT64_C(0x6BC6C19DA023997F), UINT64_C(0x4AC177BEE34493C6)}}, + {{UINT64_C(0x21C3E0874FA4F134), UINT64_C(0x66E10C3486F9722F), + UINT64_C(0xD2927B017398579A), UINT64_C(0x7135B6380352C3D3)}, + {UINT64_C(0x2DA620073BB5EE11), UINT64_C(0x8B64F13C3A946236), + UINT64_C(0x3A83C85430EAE6DF), UINT64_C(0x31114E2A0EB6F749)}}, + {{UINT64_C(0x2C7B52E735BFC72B), UINT64_C(0x6DD29EBD2B0D4C2C), + UINT64_C(0xE90D39886C92E82D), UINT64_C(0x0A9249013864D94D)}, + {UINT64_C(0x630508249BEE9E78), UINT64_C(0x7929FD62003DD5CF), + UINT64_C(0xD04F832CE57507D1), UINT64_C(0x61078BDC37D2C32E)}}, + {{UINT64_C(0xB118AFDD2E75264A), UINT64_C(0x3AB692EAEFD65114), + UINT64_C(0x58D2CE248B0A2128), UINT64_C(0x4316E6C282ED6D5F)}, + {UINT64_C(0x97766FFF46345BE4), UINT64_C(0xD7FF30140A7451AA), + UINT64_C(0x078A423FAACE2E37), UINT64_C(0x7F1F90C2A6A78919)}}, + {{UINT64_C(0x988FCCB08E9E3D4D), UINT64_C(0xBD003FC0B95C9731), + UINT64_C(0x74E40076B0A84E58), UINT64_C(0x5FD1DBE61DF7FDD0)}, + {UINT64_C(0xD2C700C74E6CE2FA), UINT64_C(0xA6E042E2903C5AE7), + UINT64_C(0x561CC25F3C73822E), UINT64_C(0x651A79392A6A0C0C)}}, + {{UINT64_C(0x103E9EC688CD7642), UINT64_C(0x65ED52183C3C86CE), + UINT64_C(0x16BAB00282785C8B), UINT64_C(0x0B5C18BBF34723C5)}, + {UINT64_C(0x528B0546E724D144), UINT64_C(0x5E582A6B780EEF9E), + UINT64_C(0xC08283B8122F17AD), UINT64_C(0x0300EDCD1C22F32D)}}, + {{UINT64_C(0x03AC716A38DCFD39), UINT64_C(0xCD88474C94F12C74), + UINT64_C(0xB5E8641EE9042CA8), UINT64_C(0x1D5746CC40D10558)}, + {UINT64_C(0x7869F45ECB4BB408), UINT64_C(0x28FB091D569489C3), + UINT64_C(0xEA371EEC50A46306), UINT64_C(0x2802579675AA224C)}}, + {{UINT64_C(0x4EAFA44EF7A5923A), UINT64_C(0xD2427C306B69FD8B), + UINT64_C(0x4C4E884A393D83F9), UINT64_C(0x2D34890A6236AB65)}, + {UINT64_C(0x80038D4035CC97F5), UINT64_C(0x4FE43C8497897472), + UINT64_C(0xE5F56243BEF161AF), UINT64_C(0x3E1BDD6F9372E631)}}, + {{UINT64_C(0x06A2B2875732669F), UINT64_C(0x92D00397CDF4D2C0), + UINT64_C(0xCD9A25F0454A57F5), UINT64_C(0x23ADB7242F0CDB0B)}, + {UINT64_C(0x504DA603FF0F8CB0), UINT64_C(0x14EF9D30D3E24181), + UINT64_C(0xB1B1328E47FC1E66), UINT64_C(0x319B2A846C60354D)}}, + }, + { + {{UINT64_C(0xBBF5542EF1D56038), UINT64_C(0xEDE3E637DD71CFC3), + UINT64_C(0xFAA81D212E9F6C8B), UINT64_C(0x4DD2D44B69FBD060)}, + {UINT64_C(0x71FB623314366A20), UINT64_C(0x155E486F9575451D), + UINT64_C(0x001106F0EC7807D9), UINT64_C(0x1C80E5ABC617034C)}}, + {{UINT64_C(0xD3E478DB8619F5F4), UINT64_C(0x1DF5C367F68170C2), + UINT64_C(0xEAB095243430DE1D), UINT64_C(0x48F09361C3CD4C24)}, + {UINT64_C(0xE49DEA4B60644FED), UINT64_C(0x47170F1C758C3679), + UINT64_C(0x4CC1E6E8B0382A84), UINT64_C(0x2DBDB9DA10A4465E)}}, + {{UINT64_C(0x67BAA79AC8400A4C), UINT64_C(0xFA30675301D28ECE), + UINT64_C(0x29DB5B1C6F33289C), UINT64_C(0x4475757326A8FCB4)}, + {UINT64_C(0x59616219E1B0A795), UINT64_C(0x3032D939C5B32FA0), + UINT64_C(0x3010C9177C3CEA2C), UINT64_C(0x5CF83EF19892BDF4)}}, + {{UINT64_C(0x55DE11413C7E83E6), UINT64_C(0x9D03929C74EA0366), + UINT64_C(0x5CA60C5083BAF3FE), UINT64_C(0x3D9BCA587F70E905)}, + {UINT64_C(0xDB79DF5AFCC5AB59), UINT64_C(0x03CFCF0653F68D30), + UINT64_C(0xBE101A784FCFA5F1), UINT64_C(0x115D7078B49E493C)}}, + {{UINT64_C(0xF14023AA76A0CCBD), UINT64_C(0x4287F0BC086F2E50), + UINT64_C(0xC5EAA559F79A37E7), UINT64_C(0x5D527C0904E4F2A2)}, + {UINT64_C(0xEC91461651DAA504), UINT64_C(0x250D90C6EEF1DC95), + UINT64_C(0x1B0AA868A50330B2), UINT64_C(0x7B45A78354189BBE)}}, + {{UINT64_C(0x0D602E05F019D6FF), UINT64_C(0x563E3893DD1800BA), + UINT64_C(0x7146727EF3C7F7E5), UINT64_C(0x59641D984B026635)}, + {UINT64_C(0x50BCF90FE91DDBB8), UINT64_C(0x5D43E78E7F8397A6), + UINT64_C(0x8734A261EB15896E), UINT64_C(0x4AD1E8649FF6B361)}}, + {{UINT64_C(0x1A9B601F320322F1), UINT64_C(0x606D40B391F611C4), + UINT64_C(0xB984958BA19C918F), UINT64_C(0x67BFB045776F834E)}, + {UINT64_C(0xC59E556968DD85F0), UINT64_C(0xB5642834D4067875), + UINT64_C(0x247E7D65CB138DF3), UINT64_C(0x73640A035CB9281D)}}, + {{UINT64_C(0xC7C34CCC88639889), UINT64_C(0xD9E44E07A785C707), + UINT64_C(0x1BE68EFE32F83073), UINT64_C(0x249902DAAE5317CE)}, + {UINT64_C(0xF1F0B86A76CA92FF), UINT64_C(0xA7F502CFC01CB06B), + UINT64_C(0x0A8B4766595AA185), UINT64_C(0x614135AAB792DE49)}}, + {{UINT64_C(0x5392CAA7564F2BC8), UINT64_C(0x1CDDA684CC894FCD), + UINT64_C(0x10AC2378A4EBF82F), UINT64_C(0x6211EA465051BFF9)}, + {UINT64_C(0xE53B017430E8E210), UINT64_C(0x2374FEC302C0E381), + UINT64_C(0xF8B1506B4DA07224), UINT64_C(0x4E451E0154DA7A08)}}, + {{UINT64_C(0xA8404D9C241FC7FB), UINT64_C(0x1D6DBF6EC4406332), + UINT64_C(0xFE14231930162118), UINT64_C(0x69DE75CCA7EF5EF5)}, + {UINT64_C(0x008D4D09856E26A5), UINT64_C(0x2BC64B65C588ECF6), + UINT64_C(0x7A523D0BAA01EE19), UINT64_C(0x213EF390932F0B95)}}, + {{UINT64_C(0xA42FE5131CD716FA), UINT64_C(0xFB13B3C60E8001B6), + UINT64_C(0xBFDC7998D8F530CB), UINT64_C(0x04F9C05BF1C61761)}, + {UINT64_C(0xFB57396FAFED9D64), UINT64_C(0x28CCEE3A421AC123), + UINT64_C(0x32590C9BF6C21ACC), UINT64_C(0x503B97CBBCA75AE3)}}, + {{UINT64_C(0x745208BC366946ED), UINT64_C(0xA75D88E94C906596), + UINT64_C(0x03A30C7EEE043530), UINT64_C(0x5C67C151D11BF4D5)}, + {UINT64_C(0x04F75DFAE7AE4BB3), UINT64_C(0xA08136067F8D7404), + UINT64_C(0x8B9F921019D68F64), UINT64_C(0x5AB6797106F73B55)}}, + {{UINT64_C(0x08064C4AB0687095), UINT64_C(0x27E30DDDB0106DF4), + UINT64_C(0x31D29C708482524A), UINT64_C(0x65DD5896D86FDACD)}, + {UINT64_C(0x081C013DC647197E), UINT64_C(0x51C10B9ED7A53A45), + UINT64_C(0xACB9A4DE0DD7FC53), UINT64_C(0x639997A2F646220B)}}, + {{UINT64_C(0x97CCF8251FB93B43), UINT64_C(0xB7D7713DE488D786), + UINT64_C(0x4F7595663E4DBB33), UINT64_C(0x13B5D8A1E0F09964)}, + {UINT64_C(0xFFDDAD74316CDD97), UINT64_C(0x67C5578252C92EE9), + UINT64_C(0x03B50F940AC5D6FD), UINT64_C(0x56C5C0091484DF88)}}, + {{UINT64_C(0xDCE199E31778D303), UINT64_C(0x53A2A4C60F1DD4EC), + UINT64_C(0x7CC5EE9E370A7B99), UINT64_C(0x4403202B2598744E)}, + {UINT64_C(0xCCFAA978228247B6), UINT64_C(0xF50D14BD4A1D0E27), + UINT64_C(0x6669506180723ABC), UINT64_C(0x750CCB6A742C0015)}}, + {{UINT64_C(0x7B04693681A109F1), UINT64_C(0x6414D9A3D4C1AFE5), + UINT64_C(0x35070548DD14AC1F), UINT64_C(0x27172F39DEC0D3F0)}, + {UINT64_C(0x4EE0A7BFF2E273F0), UINT64_C(0x028C7813EC82B8E6), + UINT64_C(0x907BF09F2081EAE2), UINT64_C(0x72E4C3D3414D6421)}}, + }, + { + {{UINT64_C(0x2064097EA073711C), UINT64_C(0x980D830A5A65EC25), + UINT64_C(0x7906A87CF0877567), UINT64_C(0x3E5EAE10F1980A3A)}, + {UINT64_C(0x5F51023A9272CE32), UINT64_C(0x71D69E68A437C974), + UINT64_C(0x32006EA1D0B579FF), UINT64_C(0x191935FFA436E129)}}, + {{UINT64_C(0xE5FE290991C1474C), UINT64_C(0x7350B9FA1F0B10F5), + UINT64_C(0x2006F41D6B4AB128), UINT64_C(0x4EBDA6CFCD95FA42)}, + {UINT64_C(0x450289385DA9A7F4), UINT64_C(0xD8129DE457FB462B), + UINT64_C(0x4F2BF2C9E592EF90), UINT64_C(0x14A1A16BD6751DCC)}}, + {{UINT64_C(0x7460BB84DE0CD47A), UINT64_C(0x261F24D6468CBA3D), + UINT64_C(0x229D31811E3C2D8A), UINT64_C(0x4AE520C91D19E059)}, + {UINT64_C(0x5AC3AEE7DF8DC66E), UINT64_C(0xCB417060299697EE), + UINT64_C(0x227C1497CE97514F), UINT64_C(0x2589B8032E991FDE)}}, + {{UINT64_C(0x7FE9D585A97A5D03), UINT64_C(0x7333A1EF10D58157), + UINT64_C(0x54C1CCD2C94C3DF6), UINT64_C(0x25C1B25228073B4E)}, + {UINT64_C(0xEEB29AF90635AD79), UINT64_C(0x880019C19AA38848), + UINT64_C(0x1A85994230A9A497), UINT64_C(0x57EDCC2D92B25ABA)}}, + {{UINT64_C(0xA98DAE7D65E19DE6), UINT64_C(0x8007DD1746AD8696), + UINT64_C(0x61F2E2CFA7F3BBAD), UINT64_C(0x1EFCD38754193858)}, + {UINT64_C(0xFB54FD6011666ECF), UINT64_C(0xD97EA5DF36E7D371), + UINT64_C(0x944CA1703B9371FF), UINT64_C(0x32A52CAC05DE7FB0)}}, + {{UINT64_C(0xB960FFF619ED8B5E), UINT64_C(0xFD6B4C3E660354BB), + UINT64_C(0xF8ECAADA1C9E95F0), UINT64_C(0x687A6D29A8E08CC7)}, + {UINT64_C(0xD38B7670C6A83D12), UINT64_C(0x1646064C1265BF30), + UINT64_C(0x7DE19FFE2464892D), UINT64_C(0x05B57E081BDBB729)}}, + {{UINT64_C(0xF3586B04FFB7A98A), UINT64_C(0xF1850CDCCB072826), + UINT64_C(0xFA3E66A4CF53BFB0), UINT64_C(0x7C78E56706E07221)}, + {UINT64_C(0x21E6F2453B4E72AE), UINT64_C(0x10A0D78BC6A3DBE8), + UINT64_C(0xB9FC6D77D618DDAB), UINT64_C(0x33092D1376951DE5)}}, + {{UINT64_C(0xCAA1BF9D5A0257CB), UINT64_C(0x1044E224866C505F), + UINT64_C(0x9B51410781482E7D), UINT64_C(0x538CB86788940BFB)}, + {UINT64_C(0xACE68B78AC21DCC1), UINT64_C(0x57942F3C1609BF8C), + UINT64_C(0x30A47F3266E48C7A), UINT64_C(0x170D301DB0DA341F)}}, + {{UINT64_C(0x19643EB218ED9863), UINT64_C(0xBBE55BCCD9104F33), + UINT64_C(0x77008B6CA15B283C), UINT64_C(0x2A6E0B41873A6A02)}, + {UINT64_C(0x517410DF3CB9A225), UINT64_C(0x20D76E38F538730A), + UINT64_C(0x76C9CAD69F8724F0), UINT64_C(0x588BA1066BE9A035)}}, + {{UINT64_C(0xA059DBECF842F66C), UINT64_C(0x59CA186DB3ED0481), + UINT64_C(0xA5B2ABCBD454490F), UINT64_C(0x4A0F600402624902)}, + {UINT64_C(0x45AF7B514D2F605F), UINT64_C(0x57E8FE0FC368030F), + UINT64_C(0x23B745570C0727AE), UINT64_C(0x7E91EC772B603EC4)}}, + {{UINT64_C(0xEDD284CFFD582BE8), UINT64_C(0x3077CB2381093CDA), + UINT64_C(0xB1934840FDEA4FCE), UINT64_C(0x00F9B9D1D7F01C9A)}, + {UINT64_C(0xA55E5C5B0A1C707B), UINT64_C(0x05CD73CB2F8618A5), + UINT64_C(0x7327CECB512EEA05), UINT64_C(0x5130A0998BF2A4D5)}}, + {{UINT64_C(0x34D18880FA7A1C7B), UINT64_C(0x5E0D6C53FD4E043F), + UINT64_C(0xB4DD80101B4442AE), UINT64_C(0x59D9183E78ED7563)}, + {UINT64_C(0x624DDAFCF1FAE158), UINT64_C(0xC08C36535C4C1E92), + UINT64_C(0x452FD71FCE3E42EF), UINT64_C(0x175B490820B902EC)}}, + {{UINT64_C(0x5F0FDF2418F4CE34), UINT64_C(0xA64A30119B7E61B8), + UINT64_C(0x8109ACD5663362E2), UINT64_C(0x4D02F82497F3DF44)}, + {UINT64_C(0x2CE27CCE3A4F916A), UINT64_C(0x4A4E6CBB3B85B146), + UINT64_C(0xFE7A6199DB8C9E5E), UINT64_C(0x53F5D620D94B8D23)}}, + {{UINT64_C(0x37FEBEC3E77610A9), UINT64_C(0xE82D8EAC92245CB0), + UINT64_C(0x3FD2CEEAF79A31BC), UINT64_C(0x277ACF32B446850C)}, + {UINT64_C(0xD89FF4C7CE1A2786), UINT64_C(0x441781E5FFD3A23C), + UINT64_C(0x7876EFC507E85496), UINT64_C(0x0F306C7BE6F41B30)}}, + {{UINT64_C(0x3BF2BFD15AB1B92B), UINT64_C(0xDCC3F5A6F373FCF2), + UINT64_C(0x27CFC4A6DA53C229), UINT64_C(0x5885737C508E677F)}, + {UINT64_C(0x1275D0F17B829F24), UINT64_C(0xBD3C0B024991B75B), + UINT64_C(0x3F82ACDFE581C569), UINT64_C(0x123294353F28904E)}}, + {{UINT64_C(0xCF7BDCCC99C3A09B), UINT64_C(0x191911075F7D601A), + UINT64_C(0xA82F746039FBAA22), UINT64_C(0x3105A6FCD75B5786)}, + {UINT64_C(0x9673DAC4932F69A6), UINT64_C(0xF5664B25B57D6EE6), + UINT64_C(0x1EDAC1120A3CDD3E), UINT64_C(0x3CF84F8C42778563)}}, + }, + { + {{UINT64_C(0xE36FD1B765DE3040), UINT64_C(0x240EADEA8AA0D3FE), + UINT64_C(0x769714317F77F804), UINT64_C(0x6FCC933E591E9694)}, + {UINT64_C(0x3218D92B18F48742), UINT64_C(0x215F13E95E1B4001), + UINT64_C(0xCDF333CD7A8D69B9), UINT64_C(0x14F159B1D2FD134F)}}, + {{UINT64_C(0x2D1228D607A50C16), UINT64_C(0x0DFD80F629AE42FD), + UINT64_C(0x6C18B122BB8F3512), UINT64_C(0x0FE61243303F3DCA)}, + {UINT64_C(0x43A29F4DDA50709B), UINT64_C(0x3FF58C084B92BF7B), + UINT64_C(0x62DC6B41DFCEF797), UINT64_C(0x43F9525AC7B83F32)}}, + {{UINT64_C(0x17EBBC9A15F08F5B), UINT64_C(0xBCD3B6408BB3E932), + UINT64_C(0xD46FBB9F510BBD36), UINT64_C(0x389ABBA8CF65442B)}, + {UINT64_C(0x3A3DAFE4B575545C), UINT64_C(0x6AB985ECE1D0994D), + UINT64_C(0xCC2A697B69E1DB27), UINT64_C(0x0D483E18271581DC)}}, + {{UINT64_C(0x380D4095C046D968), UINT64_C(0x5303975555D3318B), + UINT64_C(0x57FA762991CE6FFC), UINT64_C(0x0A0F2885A4ADB641)}, + {UINT64_C(0x8B99AF1B6E5C2909), UINT64_C(0xBDFE7FFDB8794175), + UINT64_C(0x2CFB948A795ED786), UINT64_C(0x11FE74650FD0DF66)}}, + {{UINT64_C(0xFC2CC2BD22E152E2), UINT64_C(0xCF6AB96BE30BCEB3), + UINT64_C(0xAE89C041BC89B689), UINT64_C(0x6813430CE7523AB6)}, + {UINT64_C(0x3F49E72840A4FA33), UINT64_C(0x025DE1B7857CB0C9), + UINT64_C(0x6D71465A11EA5EA5), UINT64_C(0x6651F7B946C8D7CB)}}, + {{UINT64_C(0xD05F1DCE5268098F), UINT64_C(0x891DBB680DC75030), + UINT64_C(0xD939E428EA916291), UINT64_C(0x5F8EECCCEA37D060)}, + {UINT64_C(0x885F1EA88DC5D544), UINT64_C(0xFD3B3D1757E7448F), + UINT64_C(0x5FC791A879531DE0), UINT64_C(0x780C1AAF42E66DAA)}}, + {{UINT64_C(0x19697778397BB28F), UINT64_C(0x5EC31D44AAA9069D), + UINT64_C(0xDC2DFEAA3CA24A6F), UINT64_C(0x3F66CFCA80BED770)}, + {UINT64_C(0x2B6B82151A102662), UINT64_C(0x44B4D7A4C5D34CEB), + UINT64_C(0x17E0FDE688AFECF2), UINT64_C(0x0DEFA14BCFF8D214)}}, + {{UINT64_C(0x14035AA48365CA84), UINT64_C(0x309CEEF0197CE2B7), + UINT64_C(0x21305426ED39AF37), UINT64_C(0x10D01D11D2EA583A)}, + {UINT64_C(0x3F2E97499FA5C766), UINT64_C(0x98357584D70549D4), + UINT64_C(0x8FF80803D279946D), UINT64_C(0x53DBC43399DF1253)}}, + {{UINT64_C(0x1D0D9EFA5329F12F), UINT64_C(0xBC9F74CFBE1F007F), + UINT64_C(0xD7F2AA9A18EE4DBC), UINT64_C(0x634BF4CF3A792753)}, + {UINT64_C(0xD5DC72AD2FA6255A), UINT64_C(0xEE69EA43F3BC00C5), + UINT64_C(0xEA930F61D8147A1A), UINT64_C(0x25E1368DF4E9AD37)}}, + {{UINT64_C(0x9422AAF7B7C955EC), UINT64_C(0x7C7107616A74D634), + UINT64_C(0x4ED89932305EE420), UINT64_C(0x07E422122E937289)}, + {UINT64_C(0x7EBB231328566C88), UINT64_C(0xC7ED9C7AC27ED656), + UINT64_C(0xF77F3873BF14FB3B), UINT64_C(0x447AA1E5EB957520)}}, + {{UINT64_C(0x3E3CEC7EB5C5E016), UINT64_C(0xB33DDFF7BDE44D26), + UINT64_C(0x2056E9C766E820DD), UINT64_C(0x21A9E5D4F8196FE2)}, + {UINT64_C(0x86CB0A1788040C97), UINT64_C(0x18AD8AE7FF515D49), + UINT64_C(0xCB8A564A226A400A), UINT64_C(0x6DB489798B72A0D2)}}, + {{UINT64_C(0x4365074B6324DED2), UINT64_C(0x9EFB5CC6AEDAF0F8), + UINT64_C(0xCF952C3CC0792B14), UINT64_C(0x70B82AB997ED965E)}, + {UINT64_C(0x931B98863ACEBCE7), UINT64_C(0xDA85049118C2425A), + UINT64_C(0xD88E1E27E499F7FB), UINT64_C(0x61D3F246960981DE)}}, + {{UINT64_C(0x1D8EA2278393EB0A), UINT64_C(0x9DCC23D27863FB53), + UINT64_C(0x961B2337D5EBD297), UINT64_C(0x0A96F8B25BFED1E9)}, + {UINT64_C(0x39EA1803FE7DD2B7), UINT64_C(0x7E4817BBE5F7772A), + UINT64_C(0x3668C5FFD44A41EF), UINT64_C(0x78227653E11F8E11)}}, + {{UINT64_C(0x272D6933D024880B), UINT64_C(0x733C029FF236FD8A), + UINT64_C(0xBA5C20BD604868F0), UINT64_C(0x33F211AE321175C2)}, + {UINT64_C(0xE40010FB9FD79FE3), UINT64_C(0x9C6EA1DCA685A59F), + UINT64_C(0x79963FFC8EB9889D), UINT64_C(0x15434E7D5F67108D)}}, + {{UINT64_C(0x42C14BBFD68B670F), UINT64_C(0x2021AC9D23F1AA69), + UINT64_C(0xBF4C6D74AEA04636), UINT64_C(0x1E4D2F8EBD1FB11D)}, + {UINT64_C(0x4B0CF0E337911AA6), UINT64_C(0x7542D9282C484507), + UINT64_C(0x68836751889542DC), UINT64_C(0x05F229F7FE2282A0)}}, + {{UINT64_C(0xAF269E8B409B2067), UINT64_C(0x6C749952A860F075), + UINT64_C(0xCB7492DA5DF7C7F6), UINT64_C(0x2B010A7FE8E591E1)}, + {UINT64_C(0xF744657704D9E871), UINT64_C(0xC2E0A2A35E68408E), + UINT64_C(0xD512E9A6D0F0BAAD), UINT64_C(0x3E2F73E1C6BE34A3)}}, + }, + { + {{UINT64_C(0x6C466C8E2EC65BB4), UINT64_C(0x912FFAE5B1FC8F92), + UINT64_C(0x7587BE5DB50A522D), UINT64_C(0x15939FF7649847CF)}, + {UINT64_C(0x69E81D63F464794E), UINT64_C(0x7BB6EEE36D3F858E), + UINT64_C(0x24FE5C0110813BBB), UINT64_C(0x0C491F976D80756C)}}, + {{UINT64_C(0xBAD1C256A5FF3510), UINT64_C(0xF06F38A299C1B7B2), + UINT64_C(0xF7C0F164049312D6), UINT64_C(0x073C53745749B3E4)}, + {UINT64_C(0xD676148055211A81), UINT64_C(0xF34CB5DBDFA98F45), + UINT64_C(0xAF59FA47B4AA4967), UINT64_C(0x116935B98214BE48)}}, + {{UINT64_C(0x1D86FA009FE10E46), UINT64_C(0x73B8099C0B5B8494), + UINT64_C(0x9A6EA98DA1102BE7), UINT64_C(0x3DE1948B5514CA21)}, + {UINT64_C(0x5D18ED69D0AAAA53), UINT64_C(0x17BF7DFF3C952B98), + UINT64_C(0xC60143FE7DDBD937), UINT64_C(0x214F2F556F2F10C4)}}, + {{UINT64_C(0xB2F2869502F047D0), UINT64_C(0x80952DFE923F52BF), + UINT64_C(0x56F3306BA5017C3E), UINT64_C(0x5DD62F07052DADFB)}, + {UINT64_C(0xDD11592DD5274F90), UINT64_C(0x40632FF3E471965B), + UINT64_C(0xAD1939A87E618430), UINT64_C(0x5DD9CAD233F19556)}}, + {{UINT64_C(0x7B0AA88CC1094747), UINT64_C(0xCFA6B95DF6753A0C), + UINT64_C(0xE81AFADA2A252A4D), UINT64_C(0x364CAB7CD3770570)}, + {UINT64_C(0xE99D8252B4610A19), UINT64_C(0xB22B2FEC55ED9AD3), + UINT64_C(0x328ACBDDBEBE7FED), UINT64_C(0x1D379D61FBEDFE84)}}, + {{UINT64_C(0xD9EFFFFA5EDF8C9C), UINT64_C(0x9BAA71810CE548EC), + UINT64_C(0xEB458AEB5FA8FEEB), UINT64_C(0x18C5E6910904D841)}, + {UINT64_C(0xFCEFAE288F33D2E5), UINT64_C(0xB3CF853E6FAFDA18), + UINT64_C(0x05DE94BA427D6218), UINT64_C(0x021D8AED3731D3E9)}}, + {{UINT64_C(0x06C8C318E92719DA), UINT64_C(0x1F7CDE121A65DFDB), + UINT64_C(0x9B4D531E4B672A2D), UINT64_C(0x3E39CC63115FAF11)}, + {UINT64_C(0xC9C3F3390037AF60), UINT64_C(0xC1C6758702B43D27), + UINT64_C(0x46B77CDDC42DF26B), UINT64_C(0x7235F2B0EBFA97A7)}}, + {{UINT64_C(0xAF7FFC9AE898094E), UINT64_C(0x8D18AB93146A27E3), + UINT64_C(0x1376B7978AEC0416), UINT64_C(0x746A1B1C8D91C25E)}, + {UINT64_C(0x16DCCCC10EBDE2E3), UINT64_C(0xFE4ABD418CE7D61E), + UINT64_C(0xB9830395E25F1551), UINT64_C(0x543493D7B885A943)}}, + {{UINT64_C(0x52C659E624EBCFC0), UINT64_C(0x72E3CA91D38367A4), + UINT64_C(0xA3086AAC4D168F4F), UINT64_C(0x656ACFEE5D64207B)}, + {UINT64_C(0xBE697CBABA196A9E), UINT64_C(0x6A737ACC97DFFEC2), + UINT64_C(0x393E266154F04DBD), UINT64_C(0x4FFF7C244B0E92BD)}}, + {{UINT64_C(0xC709CC59828EC659), UINT64_C(0xB275AC8CCBDEACB3), + UINT64_C(0xA8D08921F7922523), UINT64_C(0x68B92F96400A6459)}, + {UINT64_C(0x45803EC2DFBECB97), UINT64_C(0x49464E057515D696), + UINT64_C(0xF39CA9618F03E969), UINT64_C(0x605065A11CD7C79F)}}, + {{UINT64_C(0xB91C03DC97F1A97A), UINT64_C(0x2F6D50BB201FFB53), + UINT64_C(0x39D67D4046241856), UINT64_C(0x0A2C025674D04805)}, + {UINT64_C(0xD289B94C28374A6D), UINT64_C(0x1176C73A10EDD6FC), + UINT64_C(0x890E9C3956AE631E), UINT64_C(0x30451CF16027F549)}}, + {{UINT64_C(0x0CB33FDCDF8F4DDB), UINT64_C(0xD9C540DE87FF6E63), + UINT64_C(0xD844573255A1D8E4), UINT64_C(0x1497403D8AC403A6)}, + {UINT64_C(0xA2591C406A4BAAC6), UINT64_C(0xF493CF1F48DD3E5D), + UINT64_C(0x7B9AE39FB69AF047), UINT64_C(0x293123C03782B110)}}, + {{UINT64_C(0x14921836B7A36B62), UINT64_C(0x5AC824304CA3AA39), + UINT64_C(0x01303AA652F601CA), UINT64_C(0x7EE1E6C72B43BB72)}, + {UINT64_C(0x7F82B37B64D44957), UINT64_C(0x840D0654DA4A6FEC), + UINT64_C(0xFC806FA10290F75D), UINT64_C(0x3027FE4A4C62F0E8)}}, + {{UINT64_C(0x34E68AB5CD0D3AC0), UINT64_C(0xE6B0B8C1E9BC85BD), + UINT64_C(0xE00F505299533831), UINT64_C(0x11327DA7CDC83750)}, + {UINT64_C(0x6D991DF04656A428), UINT64_C(0x6A7BE34986228F26), + UINT64_C(0x6BF85E3D3019CDC5), UINT64_C(0x42200D2F576913A4)}}, + {{UINT64_C(0x420D9259707B940F), UINT64_C(0x1BB1FFE13C5E39BB), + UINT64_C(0x83D6BA36E40D018E), UINT64_C(0x139BD842044EC576)}, + {UINT64_C(0x3C79F8D2C6DE63E8), UINT64_C(0x49150B1D96F1FB0B), + UINT64_C(0x666160531358A13B), UINT64_C(0x187CA3CFD5DDFD9F)}}, + {{UINT64_C(0x0675370F8D5AEE84), UINT64_C(0x30AA7D65DC269114), + UINT64_C(0x295F7FE85AFC6DC1), UINT64_C(0x4945202955674339)}, + {UINT64_C(0x7EB1926BA6F209EC), UINT64_C(0x5232B9D1DC72C3E3), + UINT64_C(0xCD788D79AB52141B), UINT64_C(0x3EB561BEFDD9611F)}}, + }, + { + {{UINT64_C(0x09DB342CE22241AD), UINT64_C(0x2EAB852F2A566653), + UINT64_C(0x970843EDCA6E59F3), UINT64_C(0x6490013EA18C2D89)}, + {UINT64_C(0x52293350C7A691CC), UINT64_C(0x6544B49DB2079F14), + UINT64_C(0xC49C559852DCF090), UINT64_C(0x4069B6FC8817A2C7)}}, + {{UINT64_C(0x0E4A4B0CC86B40F4), UINT64_C(0x2B5350E151F6F853), + UINT64_C(0xDE26FDE21033BEC4), UINT64_C(0x4DE9D2E7C0E9B971)}, + {UINT64_C(0x716605FDD315AD57), UINT64_C(0x5627D732392B101A), + UINT64_C(0x628EDFC681A9F40A), UINT64_C(0x4BD2A96C5AB9C99D)}}, + {{UINT64_C(0x2C8DF2A1BFBD288A), UINT64_C(0x260C4F1EF4CF7C09), + UINT64_C(0x88A2618690E796CB), UINT64_C(0x105ACC3A323E0702)}, + {UINT64_C(0xA8ADA467667664CF), UINT64_C(0x41144C1B3B518622), + UINT64_C(0x4A532B87D8B99FE1), UINT64_C(0x4A51C2892289C308)}}, + {{UINT64_C(0x201DDA611D6F6880), UINT64_C(0x47A964D462029898), + UINT64_C(0xE44E2EEE426C8CA5), UINT64_C(0x02A5182109625DBA)}, + {UINT64_C(0x170C626EB45B3DFB), UINT64_C(0xFC7F1F715C8343A9), + UINT64_C(0xE6CF246FE549F040), UINT64_C(0x4ACF60AE2F903ACE)}}, + {{UINT64_C(0x9171535281C807EC), UINT64_C(0x72AC60C347174A58), + UINT64_C(0xAD62D06FA0F12F61), UINT64_C(0x325C2792AA899C0D)}, + {UINT64_C(0x53A1E3929D8BA267), UINT64_C(0x5DC088A5CDACCB05), + UINT64_C(0x5BB9127F5025CB69), UINT64_C(0x25D2B42E69214616)}}, + {{UINT64_C(0x4DE5D58ADDB55121), UINT64_C(0x688AA2F584DE0677), + UINT64_C(0xF7925A3963AA25E0), UINT64_C(0x4FB42FC785D4DEA5)}, + {UINT64_C(0x957B933B8F134390), UINT64_C(0xB360DD2C4B9BF8C2), + UINT64_C(0x45E6767FFFFF96CD), UINT64_C(0x26D0A6A91E01D5C3)}}, + {{UINT64_C(0xC7FC57145A0A98EA), UINT64_C(0xDBB06F30E7535AF6), + UINT64_C(0x555B22E3DF4ACD0D), UINT64_C(0x3A011AAF2EFD2FBE)}, + {UINT64_C(0x341C7733E9166B20), UINT64_C(0x84619E8EFB19590A), + UINT64_C(0x8EF989FD10574C96), UINT64_C(0x61ACFAAE0F55F9A2)}}, + {{UINT64_C(0x8C8A33F26DEAB094), UINT64_C(0x4A8E5D9F96022EBC), + UINT64_C(0xA10DF82C7DDA92E8), UINT64_C(0x33A19462D1CF3815)}, + {UINT64_C(0xE3FF8E43A489D67F), UINT64_C(0xD4B6136F225064AA), + UINT64_C(0xE1721D2A92F5E662), UINT64_C(0x4C4F03D7A90A33C6)}}, + {{UINT64_C(0x70885B35A3463B4A), UINT64_C(0x974BC40EDF9D0194), + UINT64_C(0x1AF71E18273957F4), UINT64_C(0x58EF684B9900CB0D)}, + {UINT64_C(0xB09970C820A49A4A), UINT64_C(0x3F28403F42067458), + UINT64_C(0x153FF2C4BD7D1AD5), UINT64_C(0x7912CC2EE97A90F7)}}, + {{UINT64_C(0xF653DF598F034D9F), UINT64_C(0xCA1671771C409CCF), + UINT64_C(0x21F47005175F3583), UINT64_C(0x13B8A94BFAAFB66F)}, + {UINT64_C(0x64534EE396052C8D), UINT64_C(0x09304DD18D674024), + UINT64_C(0xEB468AC30D7A7E2A), UINT64_C(0x40347256CD62052C)}}, + {{UINT64_C(0x0F089165FFF11C0E), UINT64_C(0x383562C98D69A45C), + UINT64_C(0x7AB3EF9D3125FE61), UINT64_C(0x32C042BCE0735F3A)}, + {UINT64_C(0x420077C84E268D91), UINT64_C(0x7FB4208244695B4F), + UINT64_C(0xFA83216F448A133E), UINT64_C(0x1C66060793062EB3)}}, + {{UINT64_C(0xA0FCBACAEF9E04DE), UINT64_C(0xAEF9EECB5B86F69A), + UINT64_C(0x73D2E95FC39D4C99), UINT64_C(0x098C74F7923A5BA8)}, + {UINT64_C(0x5B8C95C84F68DECF), UINT64_C(0xCFF2E10158976551), + UINT64_C(0x5032AE48BE5CAF91), UINT64_C(0x5CCB9008E09BC8AE)}}, + {{UINT64_C(0x41A38F203714D3BF), UINT64_C(0x2413653317366520), + UINT64_C(0xF12F314CFAE17B01), UINT64_C(0x4AA0C969FC9AD43B)}, + {UINT64_C(0xD8AB5F728BBAC026), UINT64_C(0x35128269526992DC), + UINT64_C(0xA2EF6E44D19880AA), UINT64_C(0x28BB3623DBF47628)}}, + {{UINT64_C(0x294742BA3BA25C35), UINT64_C(0x39D3BC9B061555B7), + UINT64_C(0x944E3ABCDE6EA1A0), UINT64_C(0x4FDC641557EBD394)}, + {UINT64_C(0xB615C1DAE981E649), UINT64_C(0xAF7EDB348BE3C95F), + UINT64_C(0x38573AE871F7221F), UINT64_C(0x1B30FF04668CF414)}}, + {{UINT64_C(0x48EFF6A2A57A9A4E), UINT64_C(0x04BA2F7374A59C19), + UINT64_C(0x5FDE389D6779C5DA), UINT64_C(0x258E2B246612F160)}, + {UINT64_C(0xCE8D7A0B6D116D41), UINT64_C(0xAF660436EE2706C8), + UINT64_C(0xFFAD6FE9F81D6398), UINT64_C(0x4FE5EC5414BA128A)}}, + {{UINT64_C(0x7D5E8299BD4B886C), UINT64_C(0x5403A46EDB0DB148), + UINT64_C(0x32F49FC076A808D7), UINT64_C(0x6D483FD7D3B9A641)}, + {UINT64_C(0x731DF1223952C70F), UINT64_C(0xB5CABAC1CB5E6081), + UINT64_C(0x12FA297D7AFA8F59), UINT64_C(0x3272360A6AC91952)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 6 + * ASSERT: a = -3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t0, X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t1, Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t2, Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, X, Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t3, t3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, Y, Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, X, Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, X3, t3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t2, t3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, Z3, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, Z3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t4, t4); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3); +} + +/*- + * 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.op3 + * https://eprint.iacr.org/2015/1060 Alg 5 + * ASSERT: a = -3 + */ +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, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, Y2, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t4, Y1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X2, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, X1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Z1, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t1, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t1); + + /* if P is inf, throw all that away and take Q */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->X, nz, Q->X, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 4 + * ASSERT: a = -3 + */ +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, t4, t5; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, Z1, Z2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, Y1, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t5, Y2, Z2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t5, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X1, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, X2, Z2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t1); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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[32], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 32) 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(char out[52], const unsigned char in[32]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 51; 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(char out[257], const unsigned char in[32]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 257; 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; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32], + const unsigned char b[32], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[257] = {0}; + char bnaf[257] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 256; i >= 0; i--) { + if (!is_inf) point_double(&Q, &Q); + if ((d = bnaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y); + 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.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_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_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[32], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[52] = {0}; + pt_prj_t Q, lut; + 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[51] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 50; 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_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_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[32]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[52] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 1; i >= 0; i--) { + for (j = 0; i != 1 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 27; j++) { + if (j * 2 + i > 51) continue; + d = rnaf[j * 2 + 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_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.Y, is_neg, lut.Y, out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, scalar[0] & 1, + R.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, scalar[0] & 1, + R.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, scalar[0] & 1, + R.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[32], unsigned char outy[32], + const unsigned char a[32], const unsigned char b[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.Y, P.Y); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.Y, P.Y); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[32] = {0}; + + int + point_mul_two_id_GostR3410_2001_CryptoPro_B_ParamSet( + 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[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_GostR3410_2001_CryptoPro_B_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const EC_POINT *q, + const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_GostR3410_2001_CryptoPro_B_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + 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, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, 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 8 +/* Field elements */ +typedef uint32_t fe_t[LIMB_CNT]; +typedef uint32_t limb_t; + +#define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) +#define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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: word_by_word_montgomery --static id_GostR3410_2001_CryptoPro_B_ParamSet 32 '2^255 + 3225' */ +/* curve description: id_GostR3410_2001_CryptoPro_B_ParamSet */ +/* machine_wordsize = 32 (from "32") */ +/* requested operations: (all) */ +/* m = 0x8000000000000000000000000000000000000000000000000000000000000c99 (from "2^255 + 3225") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (m), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ +/* */ +/* Computed values: */ +/* eval z = z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1; +typedef signed char fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^32 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint64_t x1; + uint32_t x2; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x3; + x1 = ((arg1 + (uint64_t)arg2) + arg3); + x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + x3 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^32 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int64_t x1; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1 x2; + uint32_t x3; + x1 = ((arg2 - (int64_t)arg1) - arg3); + x2 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1)(x1 >> 32); + x3 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + *out1 = x3; + *out2 = (fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32 is a multiplication, returning the full double-width result. + * Postconditions: + * out1 = (arg1 * arg2) mod 2^32 + * out2 = ⌊arg1 * arg2 / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0xffffffff] + * arg2: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0xffffffff] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32( + uint32_t *out1, uint32_t *out2, uint32_t arg1, uint32_t arg2) { + uint64_t x1; + uint32_t x2; + uint32_t x3; + x1 = ((uint64_t)arg1 * arg2); + x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + x3 = (uint32_t)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_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_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, + uint32_t arg2, uint32_t arg3) { + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x1; + uint32_t x2; + uint32_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_int1)(0x0 - x1) & + UINT32_C(0xffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul multiplies two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul( + uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x28; + uint32_t x29; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x30; + uint32_t x31; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x32; + uint32_t x33; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x34; + uint32_t x35; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x36; + uint32_t x37; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47; + uint32_t x48; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x49; + uint32_t x50; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x51; + uint32_t x52; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x53; + uint32_t x54; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x55; + uint32_t x56; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x57; + uint32_t x58; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x59; + uint32_t x60; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x61; + uint32_t x62; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x63; + uint32_t x64; + uint32_t x65; + uint32_t x66; + uint32_t x67; + uint32_t x68; + uint32_t x69; + uint32_t x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + uint32_t x79; + uint32_t x80; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x81; + uint32_t x82; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x83; + uint32_t x84; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x85; + uint32_t x86; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x87; + uint32_t x88; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x89; + uint32_t x90; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x91; + uint32_t x92; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x93; + uint32_t x94; + uint32_t x95; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x96; + uint32_t x97; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x98; + uint32_t x99; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x100; + uint32_t x101; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x102; + uint32_t x103; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x104; + uint32_t x105; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x106; + uint32_t x107; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x108; + uint32_t x109; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x110; + uint32_t x111; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x112; + uint32_t x113; + uint32_t x114; + uint32_t x115; + uint32_t x116; + uint32_t x117; + uint32_t x118; + uint32_t x119; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x120; + uint32_t x121; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x122; + uint32_t x123; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x124; + uint32_t x125; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x126; + uint32_t x127; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x128; + uint32_t x129; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x130; + uint32_t x131; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x132; + uint32_t x133; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x134; + uint32_t x135; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x136; + uint32_t x137; + uint32_t x138; + uint32_t x139; + uint32_t x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + uint32_t x148; + uint32_t x149; + uint32_t x150; + uint32_t x151; + uint32_t x152; + uint32_t x153; + uint32_t x154; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x155; + uint32_t x156; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x157; + uint32_t x158; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x159; + uint32_t x160; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x161; + uint32_t x162; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x163; + uint32_t x164; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x165; + uint32_t x166; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x167; + uint32_t x168; + uint32_t x169; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x170; + uint32_t x171; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x172; + uint32_t x173; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x174; + uint32_t x175; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x176; + uint32_t x177; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x178; + uint32_t x179; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x180; + uint32_t x181; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x182; + uint32_t x183; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x184; + uint32_t x185; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x186; + uint32_t x187; + uint32_t x188; + uint32_t x189; + uint32_t x190; + uint32_t x191; + uint32_t x192; + uint32_t x193; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x194; + uint32_t x195; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x196; + uint32_t x197; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x198; + uint32_t x199; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x200; + uint32_t x201; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x202; + uint32_t x203; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x204; + uint32_t x205; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x206; + uint32_t x207; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x208; + uint32_t x209; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x210; + uint32_t x211; + uint32_t x212; + uint32_t x213; + uint32_t x214; + uint32_t x215; + uint32_t x216; + uint32_t x217; + uint32_t x218; + uint32_t x219; + uint32_t x220; + uint32_t x221; + uint32_t x222; + uint32_t x223; + uint32_t x224; + uint32_t x225; + uint32_t x226; + uint32_t x227; + uint32_t x228; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x229; + uint32_t x230; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x231; + uint32_t x232; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x233; + uint32_t x234; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x235; + uint32_t x236; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x237; + uint32_t x238; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x239; + uint32_t x240; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x241; + uint32_t x242; + uint32_t x243; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x244; + uint32_t x245; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x246; + uint32_t x247; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x248; + uint32_t x249; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x250; + uint32_t x251; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x252; + uint32_t x253; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x254; + uint32_t x255; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x256; + uint32_t x257; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x258; + uint32_t x259; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x260; + uint32_t x261; + uint32_t x262; + uint32_t x263; + uint32_t x264; + uint32_t x265; + uint32_t x266; + uint32_t x267; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x268; + uint32_t x269; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x270; + uint32_t x271; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x272; + uint32_t x273; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x274; + uint32_t x275; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x276; + uint32_t x277; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x278; + uint32_t x279; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x280; + uint32_t x281; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x282; + uint32_t x283; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x284; + uint32_t x285; + uint32_t x286; + uint32_t x287; + uint32_t x288; + uint32_t x289; + uint32_t x290; + uint32_t x291; + uint32_t x292; + uint32_t x293; + uint32_t x294; + uint32_t x295; + uint32_t x296; + uint32_t x297; + uint32_t x298; + uint32_t x299; + uint32_t x300; + uint32_t x301; + uint32_t x302; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x303; + uint32_t x304; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x305; + uint32_t x306; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x307; + uint32_t x308; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x309; + uint32_t x310; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x311; + uint32_t x312; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x313; + uint32_t x314; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x315; + uint32_t x316; + uint32_t x317; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x318; + uint32_t x319; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x320; + uint32_t x321; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x322; + uint32_t x323; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x324; + uint32_t x325; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x326; + uint32_t x327; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x328; + uint32_t x329; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x330; + uint32_t x331; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x332; + uint32_t x333; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x334; + uint32_t x335; + uint32_t x336; + uint32_t x337; + uint32_t x338; + uint32_t x339; + uint32_t x340; + uint32_t x341; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x342; + uint32_t x343; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x344; + uint32_t x345; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x346; + uint32_t x347; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x348; + uint32_t x349; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x350; + uint32_t x351; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x352; + uint32_t x353; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x354; + uint32_t x355; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x356; + uint32_t x357; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x358; + uint32_t x359; + uint32_t x360; + uint32_t x361; + uint32_t x362; + uint32_t x363; + uint32_t x364; + uint32_t x365; + uint32_t x366; + uint32_t x367; + uint32_t x368; + uint32_t x369; + uint32_t x370; + uint32_t x371; + uint32_t x372; + uint32_t x373; + uint32_t x374; + uint32_t x375; + uint32_t x376; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x377; + uint32_t x378; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x379; + uint32_t x380; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x381; + uint32_t x382; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x383; + uint32_t x384; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x385; + uint32_t x386; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x387; + uint32_t x388; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x389; + uint32_t x390; + uint32_t x391; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x392; + uint32_t x393; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x394; + uint32_t x395; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x396; + uint32_t x397; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x398; + uint32_t x399; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x400; + uint32_t x401; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x402; + uint32_t x403; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x404; + uint32_t x405; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x406; + uint32_t x407; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x408; + uint32_t x409; + uint32_t x410; + uint32_t x411; + uint32_t x412; + uint32_t x413; + uint32_t x414; + uint32_t x415; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x416; + uint32_t x417; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x418; + uint32_t x419; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x420; + uint32_t x421; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x422; + uint32_t x423; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x424; + uint32_t x425; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x426; + uint32_t x427; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x428; + uint32_t x429; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x430; + uint32_t x431; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x432; + uint32_t x433; + uint32_t x434; + uint32_t x435; + uint32_t x436; + uint32_t x437; + uint32_t x438; + uint32_t x439; + uint32_t x440; + uint32_t x441; + uint32_t x442; + uint32_t x443; + uint32_t x444; + uint32_t x445; + uint32_t x446; + uint32_t x447; + uint32_t x448; + uint32_t x449; + uint32_t x450; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x451; + uint32_t x452; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x453; + uint32_t x454; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x455; + uint32_t x456; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x457; + uint32_t x458; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x459; + uint32_t x460; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x461; + uint32_t x462; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x463; + uint32_t x464; + uint32_t x465; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x466; + uint32_t x467; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x468; + uint32_t x469; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x470; + uint32_t x471; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x472; + uint32_t x473; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x474; + uint32_t x475; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x476; + uint32_t x477; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x478; + uint32_t x479; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x480; + uint32_t x481; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x482; + uint32_t x483; + uint32_t x484; + uint32_t x485; + uint32_t x486; + uint32_t x487; + uint32_t x488; + uint32_t x489; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x490; + uint32_t x491; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x492; + uint32_t x493; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x494; + uint32_t x495; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x496; + uint32_t x497; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x498; + uint32_t x499; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x500; + uint32_t x501; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x502; + uint32_t x503; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x504; + uint32_t x505; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x506; + uint32_t x507; + uint32_t x508; + uint32_t x509; + uint32_t x510; + uint32_t x511; + uint32_t x512; + uint32_t x513; + uint32_t x514; + uint32_t x515; + uint32_t x516; + uint32_t x517; + uint32_t x518; + uint32_t x519; + uint32_t x520; + uint32_t x521; + uint32_t x522; + uint32_t x523; + uint32_t x524; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x525; + uint32_t x526; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x527; + uint32_t x528; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x529; + uint32_t x530; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x531; + uint32_t x532; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x533; + uint32_t x534; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x535; + uint32_t x536; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x537; + uint32_t x538; + uint32_t x539; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x540; + uint32_t x541; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x542; + uint32_t x543; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x544; + uint32_t x545; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x546; + uint32_t x547; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x548; + uint32_t x549; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x550; + uint32_t x551; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x552; + uint32_t x553; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x554; + uint32_t x555; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x556; + uint32_t x557; + uint32_t x558; + uint32_t x559; + uint32_t x560; + uint32_t x561; + uint32_t x562; + uint32_t x563; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x564; + uint32_t x565; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x566; + uint32_t x567; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x568; + uint32_t x569; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x570; + uint32_t x571; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x572; + uint32_t x573; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x574; + uint32_t x575; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x576; + uint32_t x577; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x578; + uint32_t x579; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x580; + uint32_t x581; + uint32_t x582; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x583; + uint32_t x584; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x585; + uint32_t x586; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x587; + uint32_t x588; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x589; + uint32_t x590; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x591; + uint32_t x592; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x593; + uint32_t x594; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x595; + uint32_t x596; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x597; + uint32_t x598; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x599; + uint32_t x600; + uint32_t x601; + uint32_t x602; + uint32_t x603; + uint32_t x604; + uint32_t x605; + uint32_t x606; + uint32_t x607; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x9, &x10, x8, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x11, &x12, x8, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x13, &x14, x8, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x15, &x16, x8, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x17, &x18, x8, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x19, &x20, x8, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x21, &x22, x8, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x23, &x24, x8, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x25, &x26, 0x0, + x24, x21); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x27, &x28, x26, + x22, x19); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x29, &x30, x28, + x20, x17); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x31, &x32, x30, + x18, x15); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x33, &x34, x32, + x16, x13); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x35, &x36, x34, + x14, x11); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x37, &x38, x36, + x12, x9); + x39 = (x38 + x10); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x40, &x41, x23, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x42, &x43, x40, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x44, &x45, x40, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x46, &x47, 0x0, + x23, x44); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x48, &x49, x47, + x25, x45); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x50, &x51, x49, + x27, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x52, &x53, x51, + x29, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x54, &x55, x53, + x31, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x56, &x57, x55, + x33, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x58, &x59, x57, + x35, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x60, &x61, x59, + x37, x42); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x62, &x63, x61, + x39, x43); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x64, &x65, x1, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x66, &x67, x1, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x68, &x69, x1, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x70, &x71, x1, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x72, &x73, x1, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x74, &x75, x1, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x76, &x77, x1, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x78, &x79, x1, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x80, &x81, 0x0, + x79, x76); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x82, &x83, x81, + x77, x74); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x84, &x85, x83, + x75, x72); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x86, &x87, x85, + x73, x70); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x88, &x89, x87, + x71, x68); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x90, &x91, x89, + x69, x66); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x92, &x93, x91, + x67, x64); + x94 = (x93 + x65); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x95, &x96, 0x0, + x48, x78); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x97, &x98, x96, + x50, x80); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x99, &x100, x98, + x52, x82); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x101, &x102, + x100, x54, x84); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x103, &x104, + x102, x56, x86); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x105, &x106, + x104, x58, x88); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x107, &x108, + x106, x60, x90); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x109, &x110, + x108, x62, x92); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x111, &x112, + x110, x63, x94); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x113, &x114, x95, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x115, &x116, x113, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x117, &x118, x113, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x119, &x120, 0x0, + x95, x117); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x121, &x122, + x120, x97, x118); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x123, &x124, + x122, x99, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x125, &x126, + x124, x101, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x127, &x128, + x126, x103, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x129, &x130, + x128, x105, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x131, &x132, + x130, x107, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x133, &x134, + x132, x109, x115); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x135, &x136, + x134, x111, x116); + x137 = ((uint32_t)x136 + x112); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x138, &x139, x2, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x140, &x141, x2, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x142, &x143, x2, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x144, &x145, x2, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x146, &x147, x2, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x148, &x149, x2, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x150, &x151, x2, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x152, &x153, x2, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x154, &x155, 0x0, + x153, x150); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x156, &x157, + x155, x151, x148); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x158, &x159, + x157, x149, x146); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x160, &x161, + x159, x147, x144); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x162, &x163, + x161, x145, x142); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x164, &x165, + x163, x143, x140); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x166, &x167, + x165, x141, x138); + x168 = (x167 + x139); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x169, &x170, 0x0, + x121, x152); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x171, &x172, + x170, x123, x154); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x173, &x174, + x172, x125, x156); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x175, &x176, + x174, x127, x158); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x177, &x178, + x176, x129, x160); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x179, &x180, + x178, x131, x162); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x181, &x182, + x180, x133, x164); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x183, &x184, + x182, x135, x166); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x185, &x186, + x184, x137, x168); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x187, &x188, x169, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x189, &x190, x187, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x191, &x192, x187, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x193, &x194, 0x0, + x169, x191); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x195, &x196, + x194, x171, x192); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x197, &x198, + x196, x173, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x199, &x200, + x198, x175, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x201, &x202, + x200, x177, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x203, &x204, + x202, x179, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x205, &x206, + x204, x181, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x207, &x208, + x206, x183, x189); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x209, &x210, + x208, x185, x190); + x211 = ((uint32_t)x210 + x186); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x212, &x213, x3, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x214, &x215, x3, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x216, &x217, x3, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x218, &x219, x3, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x220, &x221, x3, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x222, &x223, x3, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x224, &x225, x3, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x226, &x227, x3, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x228, &x229, 0x0, + x227, x224); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x230, &x231, + x229, x225, x222); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x232, &x233, + x231, x223, x220); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x234, &x235, + x233, x221, x218); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x236, &x237, + x235, x219, x216); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x238, &x239, + x237, x217, x214); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x240, &x241, + x239, x215, x212); + x242 = (x241 + x213); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x243, &x244, 0x0, + x195, x226); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x245, &x246, + x244, x197, x228); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x247, &x248, + x246, x199, x230); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x249, &x250, + x248, x201, x232); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x251, &x252, + x250, x203, x234); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x253, &x254, + x252, x205, x236); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x255, &x256, + x254, x207, x238); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x257, &x258, + x256, x209, x240); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x259, &x260, + x258, x211, x242); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x261, &x262, x243, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x263, &x264, x261, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x265, &x266, x261, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x267, &x268, 0x0, + x243, x265); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x269, &x270, + x268, x245, x266); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x271, &x272, + x270, x247, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x273, &x274, + x272, x249, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x275, &x276, + x274, x251, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x277, &x278, + x276, x253, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x279, &x280, + x278, x255, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x281, &x282, + x280, x257, x263); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x283, &x284, + x282, x259, x264); + x285 = ((uint32_t)x284 + x260); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x286, &x287, x4, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x288, &x289, x4, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x290, &x291, x4, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x292, &x293, x4, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x294, &x295, x4, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x296, &x297, x4, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x298, &x299, x4, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x300, &x301, x4, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x302, &x303, 0x0, + x301, x298); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x304, &x305, + x303, x299, x296); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x306, &x307, + x305, x297, x294); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x308, &x309, + x307, x295, x292); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x310, &x311, + x309, x293, x290); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x312, &x313, + x311, x291, x288); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x314, &x315, + x313, x289, x286); + x316 = (x315 + x287); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x317, &x318, 0x0, + x269, x300); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x319, &x320, + x318, x271, x302); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x321, &x322, + x320, x273, x304); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x323, &x324, + x322, x275, x306); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x325, &x326, + x324, x277, x308); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x327, &x328, + x326, x279, x310); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x329, &x330, + x328, x281, x312); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x331, &x332, + x330, x283, x314); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x333, &x334, + x332, x285, x316); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x335, &x336, x317, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x337, &x338, x335, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x339, &x340, x335, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x341, &x342, 0x0, + x317, x339); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x343, &x344, + x342, x319, x340); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x345, &x346, + x344, x321, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x347, &x348, + x346, x323, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x349, &x350, + x348, x325, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x351, &x352, + x350, x327, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x353, &x354, + x352, x329, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x355, &x356, + x354, x331, x337); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x357, &x358, + x356, x333, x338); + x359 = ((uint32_t)x358 + x334); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x360, &x361, x5, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x362, &x363, x5, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x364, &x365, x5, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x366, &x367, x5, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x368, &x369, x5, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x370, &x371, x5, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x372, &x373, x5, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x374, &x375, x5, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x376, &x377, 0x0, + x375, x372); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x378, &x379, + x377, x373, x370); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x380, &x381, + x379, x371, x368); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x382, &x383, + x381, x369, x366); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x384, &x385, + x383, x367, x364); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x386, &x387, + x385, x365, x362); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x388, &x389, + x387, x363, x360); + x390 = (x389 + x361); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x391, &x392, 0x0, + x343, x374); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x393, &x394, + x392, x345, x376); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x395, &x396, + x394, x347, x378); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x397, &x398, + x396, x349, x380); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x399, &x400, + x398, x351, x382); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x401, &x402, + x400, x353, x384); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x403, &x404, + x402, x355, x386); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x405, &x406, + x404, x357, x388); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x407, &x408, + x406, x359, x390); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x409, &x410, x391, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x411, &x412, x409, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x413, &x414, x409, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x415, &x416, 0x0, + x391, x413); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x417, &x418, + x416, x393, x414); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x419, &x420, + x418, x395, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x421, &x422, + x420, x397, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x423, &x424, + x422, x399, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x425, &x426, + x424, x401, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x427, &x428, + x426, x403, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x429, &x430, + x428, x405, x411); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x431, &x432, + x430, x407, x412); + x433 = ((uint32_t)x432 + x408); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x434, &x435, x6, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x436, &x437, x6, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x438, &x439, x6, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x440, &x441, x6, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x442, &x443, x6, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x444, &x445, x6, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x446, &x447, x6, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x448, &x449, x6, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x450, &x451, 0x0, + x449, x446); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x452, &x453, + x451, x447, x444); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x454, &x455, + x453, x445, x442); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x456, &x457, + x455, x443, x440); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x458, &x459, + x457, x441, x438); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x460, &x461, + x459, x439, x436); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x462, &x463, + x461, x437, x434); + x464 = (x463 + x435); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x465, &x466, 0x0, + x417, x448); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x467, &x468, + x466, x419, x450); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x469, &x470, + x468, x421, x452); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x471, &x472, + x470, x423, x454); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x473, &x474, + x472, x425, x456); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x475, &x476, + x474, x427, x458); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x477, &x478, + x476, x429, x460); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x479, &x480, + x478, x431, x462); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x481, &x482, + x480, x433, x464); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x483, &x484, x465, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x485, &x486, x483, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x487, &x488, x483, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x489, &x490, 0x0, + x465, x487); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x491, &x492, + x490, x467, x488); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x493, &x494, + x492, x469, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x495, &x496, + x494, x471, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x497, &x498, + x496, x473, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x499, &x500, + x498, x475, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x501, &x502, + x500, x477, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x503, &x504, + x502, x479, x485); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x505, &x506, + x504, x481, x486); + x507 = ((uint32_t)x506 + x482); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x508, &x509, x7, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x510, &x511, x7, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x512, &x513, x7, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x514, &x515, x7, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x516, &x517, x7, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x518, &x519, x7, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x520, &x521, x7, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x522, &x523, x7, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x524, &x525, 0x0, + x523, x520); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x526, &x527, + x525, x521, x518); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x528, &x529, + x527, x519, x516); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x530, &x531, + x529, x517, x514); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x532, &x533, + x531, x515, x512); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x534, &x535, + x533, x513, x510); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x536, &x537, + x535, x511, x508); + x538 = (x537 + x509); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x539, &x540, 0x0, + x491, x522); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x541, &x542, + x540, x493, x524); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x543, &x544, + x542, x495, x526); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x545, &x546, + x544, x497, x528); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x547, &x548, + x546, x499, x530); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x549, &x550, + x548, x501, x532); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x551, &x552, + x550, x503, x534); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x553, &x554, + x552, x505, x536); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x555, &x556, + x554, x507, x538); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x557, &x558, x539, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x559, &x560, x557, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x561, &x562, x557, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x563, &x564, 0x0, + x539, x561); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x565, &x566, + x564, x541, x562); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x567, &x568, + x566, x543, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x569, &x570, + x568, x545, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x571, &x572, + x570, x547, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x573, &x574, + x572, x549, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x575, &x576, + x574, x551, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x577, &x578, + x576, x553, x559); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x579, &x580, + x578, x555, x560); + x581 = ((uint32_t)x580 + x556); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x582, &x583, 0x0, x565, UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x584, &x585, + x583, x567, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x586, &x587, + x585, x569, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x588, &x589, + x587, x571, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x590, &x591, + x589, x573, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x592, &x593, + x591, x575, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x594, &x595, + x593, x577, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x596, &x597, x595, x579, UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x598, &x599, + x597, x581, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x600, x599, x582, + x565); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x601, x599, x584, + x567); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x602, x599, x586, + x569); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x603, x599, x588, + x571); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x604, x599, x590, + x573); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x605, x599, x592, + x575); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x606, x599, x594, + x577); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x607, x599, x596, + x579); + out1[0] = x600; + out1[1] = x601; + out1[2] = x602; + out1[3] = x603; + out1[4] = x604; + out1[5] = x605; + out1[6] = x606; + out1[7] = x607; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square squares a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square( + uint32_t out1[8], const uint32_t arg1[8]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x28; + uint32_t x29; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x30; + uint32_t x31; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x32; + uint32_t x33; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x34; + uint32_t x35; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x36; + uint32_t x37; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47; + uint32_t x48; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x49; + uint32_t x50; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x51; + uint32_t x52; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x53; + uint32_t x54; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x55; + uint32_t x56; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x57; + uint32_t x58; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x59; + uint32_t x60; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x61; + uint32_t x62; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x63; + uint32_t x64; + uint32_t x65; + uint32_t x66; + uint32_t x67; + uint32_t x68; + uint32_t x69; + uint32_t x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + uint32_t x79; + uint32_t x80; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x81; + uint32_t x82; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x83; + uint32_t x84; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x85; + uint32_t x86; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x87; + uint32_t x88; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x89; + uint32_t x90; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x91; + uint32_t x92; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x93; + uint32_t x94; + uint32_t x95; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x96; + uint32_t x97; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x98; + uint32_t x99; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x100; + uint32_t x101; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x102; + uint32_t x103; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x104; + uint32_t x105; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x106; + uint32_t x107; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x108; + uint32_t x109; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x110; + uint32_t x111; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x112; + uint32_t x113; + uint32_t x114; + uint32_t x115; + uint32_t x116; + uint32_t x117; + uint32_t x118; + uint32_t x119; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x120; + uint32_t x121; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x122; + uint32_t x123; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x124; + uint32_t x125; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x126; + uint32_t x127; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x128; + uint32_t x129; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x130; + uint32_t x131; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x132; + uint32_t x133; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x134; + uint32_t x135; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x136; + uint32_t x137; + uint32_t x138; + uint32_t x139; + uint32_t x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + uint32_t x148; + uint32_t x149; + uint32_t x150; + uint32_t x151; + uint32_t x152; + uint32_t x153; + uint32_t x154; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x155; + uint32_t x156; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x157; + uint32_t x158; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x159; + uint32_t x160; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x161; + uint32_t x162; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x163; + uint32_t x164; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x165; + uint32_t x166; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x167; + uint32_t x168; + uint32_t x169; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x170; + uint32_t x171; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x172; + uint32_t x173; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x174; + uint32_t x175; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x176; + uint32_t x177; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x178; + uint32_t x179; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x180; + uint32_t x181; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x182; + uint32_t x183; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x184; + uint32_t x185; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x186; + uint32_t x187; + uint32_t x188; + uint32_t x189; + uint32_t x190; + uint32_t x191; + uint32_t x192; + uint32_t x193; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x194; + uint32_t x195; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x196; + uint32_t x197; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x198; + uint32_t x199; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x200; + uint32_t x201; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x202; + uint32_t x203; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x204; + uint32_t x205; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x206; + uint32_t x207; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x208; + uint32_t x209; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x210; + uint32_t x211; + uint32_t x212; + uint32_t x213; + uint32_t x214; + uint32_t x215; + uint32_t x216; + uint32_t x217; + uint32_t x218; + uint32_t x219; + uint32_t x220; + uint32_t x221; + uint32_t x222; + uint32_t x223; + uint32_t x224; + uint32_t x225; + uint32_t x226; + uint32_t x227; + uint32_t x228; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x229; + uint32_t x230; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x231; + uint32_t x232; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x233; + uint32_t x234; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x235; + uint32_t x236; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x237; + uint32_t x238; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x239; + uint32_t x240; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x241; + uint32_t x242; + uint32_t x243; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x244; + uint32_t x245; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x246; + uint32_t x247; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x248; + uint32_t x249; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x250; + uint32_t x251; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x252; + uint32_t x253; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x254; + uint32_t x255; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x256; + uint32_t x257; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x258; + uint32_t x259; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x260; + uint32_t x261; + uint32_t x262; + uint32_t x263; + uint32_t x264; + uint32_t x265; + uint32_t x266; + uint32_t x267; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x268; + uint32_t x269; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x270; + uint32_t x271; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x272; + uint32_t x273; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x274; + uint32_t x275; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x276; + uint32_t x277; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x278; + uint32_t x279; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x280; + uint32_t x281; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x282; + uint32_t x283; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x284; + uint32_t x285; + uint32_t x286; + uint32_t x287; + uint32_t x288; + uint32_t x289; + uint32_t x290; + uint32_t x291; + uint32_t x292; + uint32_t x293; + uint32_t x294; + uint32_t x295; + uint32_t x296; + uint32_t x297; + uint32_t x298; + uint32_t x299; + uint32_t x300; + uint32_t x301; + uint32_t x302; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x303; + uint32_t x304; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x305; + uint32_t x306; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x307; + uint32_t x308; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x309; + uint32_t x310; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x311; + uint32_t x312; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x313; + uint32_t x314; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x315; + uint32_t x316; + uint32_t x317; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x318; + uint32_t x319; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x320; + uint32_t x321; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x322; + uint32_t x323; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x324; + uint32_t x325; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x326; + uint32_t x327; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x328; + uint32_t x329; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x330; + uint32_t x331; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x332; + uint32_t x333; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x334; + uint32_t x335; + uint32_t x336; + uint32_t x337; + uint32_t x338; + uint32_t x339; + uint32_t x340; + uint32_t x341; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x342; + uint32_t x343; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x344; + uint32_t x345; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x346; + uint32_t x347; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x348; + uint32_t x349; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x350; + uint32_t x351; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x352; + uint32_t x353; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x354; + uint32_t x355; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x356; + uint32_t x357; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x358; + uint32_t x359; + uint32_t x360; + uint32_t x361; + uint32_t x362; + uint32_t x363; + uint32_t x364; + uint32_t x365; + uint32_t x366; + uint32_t x367; + uint32_t x368; + uint32_t x369; + uint32_t x370; + uint32_t x371; + uint32_t x372; + uint32_t x373; + uint32_t x374; + uint32_t x375; + uint32_t x376; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x377; + uint32_t x378; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x379; + uint32_t x380; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x381; + uint32_t x382; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x383; + uint32_t x384; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x385; + uint32_t x386; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x387; + uint32_t x388; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x389; + uint32_t x390; + uint32_t x391; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x392; + uint32_t x393; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x394; + uint32_t x395; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x396; + uint32_t x397; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x398; + uint32_t x399; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x400; + uint32_t x401; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x402; + uint32_t x403; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x404; + uint32_t x405; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x406; + uint32_t x407; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x408; + uint32_t x409; + uint32_t x410; + uint32_t x411; + uint32_t x412; + uint32_t x413; + uint32_t x414; + uint32_t x415; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x416; + uint32_t x417; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x418; + uint32_t x419; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x420; + uint32_t x421; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x422; + uint32_t x423; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x424; + uint32_t x425; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x426; + uint32_t x427; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x428; + uint32_t x429; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x430; + uint32_t x431; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x432; + uint32_t x433; + uint32_t x434; + uint32_t x435; + uint32_t x436; + uint32_t x437; + uint32_t x438; + uint32_t x439; + uint32_t x440; + uint32_t x441; + uint32_t x442; + uint32_t x443; + uint32_t x444; + uint32_t x445; + uint32_t x446; + uint32_t x447; + uint32_t x448; + uint32_t x449; + uint32_t x450; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x451; + uint32_t x452; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x453; + uint32_t x454; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x455; + uint32_t x456; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x457; + uint32_t x458; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x459; + uint32_t x460; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x461; + uint32_t x462; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x463; + uint32_t x464; + uint32_t x465; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x466; + uint32_t x467; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x468; + uint32_t x469; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x470; + uint32_t x471; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x472; + uint32_t x473; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x474; + uint32_t x475; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x476; + uint32_t x477; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x478; + uint32_t x479; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x480; + uint32_t x481; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x482; + uint32_t x483; + uint32_t x484; + uint32_t x485; + uint32_t x486; + uint32_t x487; + uint32_t x488; + uint32_t x489; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x490; + uint32_t x491; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x492; + uint32_t x493; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x494; + uint32_t x495; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x496; + uint32_t x497; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x498; + uint32_t x499; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x500; + uint32_t x501; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x502; + uint32_t x503; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x504; + uint32_t x505; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x506; + uint32_t x507; + uint32_t x508; + uint32_t x509; + uint32_t x510; + uint32_t x511; + uint32_t x512; + uint32_t x513; + uint32_t x514; + uint32_t x515; + uint32_t x516; + uint32_t x517; + uint32_t x518; + uint32_t x519; + uint32_t x520; + uint32_t x521; + uint32_t x522; + uint32_t x523; + uint32_t x524; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x525; + uint32_t x526; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x527; + uint32_t x528; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x529; + uint32_t x530; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x531; + uint32_t x532; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x533; + uint32_t x534; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x535; + uint32_t x536; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x537; + uint32_t x538; + uint32_t x539; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x540; + uint32_t x541; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x542; + uint32_t x543; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x544; + uint32_t x545; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x546; + uint32_t x547; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x548; + uint32_t x549; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x550; + uint32_t x551; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x552; + uint32_t x553; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x554; + uint32_t x555; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x556; + uint32_t x557; + uint32_t x558; + uint32_t x559; + uint32_t x560; + uint32_t x561; + uint32_t x562; + uint32_t x563; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x564; + uint32_t x565; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x566; + uint32_t x567; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x568; + uint32_t x569; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x570; + uint32_t x571; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x572; + uint32_t x573; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x574; + uint32_t x575; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x576; + uint32_t x577; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x578; + uint32_t x579; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x580; + uint32_t x581; + uint32_t x582; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x583; + uint32_t x584; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x585; + uint32_t x586; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x587; + uint32_t x588; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x589; + uint32_t x590; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x591; + uint32_t x592; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x593; + uint32_t x594; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x595; + uint32_t x596; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x597; + uint32_t x598; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x599; + uint32_t x600; + uint32_t x601; + uint32_t x602; + uint32_t x603; + uint32_t x604; + uint32_t x605; + uint32_t x606; + uint32_t x607; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x9, &x10, x8, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x11, &x12, x8, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x13, &x14, x8, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x15, &x16, x8, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x17, &x18, x8, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x19, &x20, x8, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x21, &x22, x8, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x23, &x24, x8, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x25, &x26, 0x0, + x24, x21); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x27, &x28, x26, + x22, x19); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x29, &x30, x28, + x20, x17); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x31, &x32, x30, + x18, x15); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x33, &x34, x32, + x16, x13); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x35, &x36, x34, + x14, x11); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x37, &x38, x36, + x12, x9); + x39 = (x38 + x10); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x40, &x41, x23, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x42, &x43, x40, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x44, &x45, x40, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x46, &x47, 0x0, + x23, x44); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x48, &x49, x47, + x25, x45); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x50, &x51, x49, + x27, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x52, &x53, x51, + x29, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x54, &x55, x53, + x31, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x56, &x57, x55, + x33, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x58, &x59, x57, + x35, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x60, &x61, x59, + x37, x42); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x62, &x63, x61, + x39, x43); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x64, &x65, x1, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x66, &x67, x1, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x68, &x69, x1, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x70, &x71, x1, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x72, &x73, x1, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x74, &x75, x1, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x76, &x77, x1, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x78, &x79, x1, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x80, &x81, 0x0, + x79, x76); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x82, &x83, x81, + x77, x74); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x84, &x85, x83, + x75, x72); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x86, &x87, x85, + x73, x70); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x88, &x89, x87, + x71, x68); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x90, &x91, x89, + x69, x66); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x92, &x93, x91, + x67, x64); + x94 = (x93 + x65); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x95, &x96, 0x0, + x48, x78); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x97, &x98, x96, + x50, x80); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x99, &x100, x98, + x52, x82); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x101, &x102, + x100, x54, x84); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x103, &x104, + x102, x56, x86); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x105, &x106, + x104, x58, x88); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x107, &x108, + x106, x60, x90); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x109, &x110, + x108, x62, x92); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x111, &x112, + x110, x63, x94); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x113, &x114, x95, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x115, &x116, x113, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x117, &x118, x113, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x119, &x120, 0x0, + x95, x117); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x121, &x122, + x120, x97, x118); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x123, &x124, + x122, x99, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x125, &x126, + x124, x101, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x127, &x128, + x126, x103, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x129, &x130, + x128, x105, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x131, &x132, + x130, x107, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x133, &x134, + x132, x109, x115); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x135, &x136, + x134, x111, x116); + x137 = ((uint32_t)x136 + x112); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x138, &x139, x2, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x140, &x141, x2, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x142, &x143, x2, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x144, &x145, x2, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x146, &x147, x2, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x148, &x149, x2, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x150, &x151, x2, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x152, &x153, x2, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x154, &x155, 0x0, + x153, x150); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x156, &x157, + x155, x151, x148); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x158, &x159, + x157, x149, x146); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x160, &x161, + x159, x147, x144); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x162, &x163, + x161, x145, x142); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x164, &x165, + x163, x143, x140); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x166, &x167, + x165, x141, x138); + x168 = (x167 + x139); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x169, &x170, 0x0, + x121, x152); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x171, &x172, + x170, x123, x154); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x173, &x174, + x172, x125, x156); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x175, &x176, + x174, x127, x158); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x177, &x178, + x176, x129, x160); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x179, &x180, + x178, x131, x162); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x181, &x182, + x180, x133, x164); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x183, &x184, + x182, x135, x166); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x185, &x186, + x184, x137, x168); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x187, &x188, x169, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x189, &x190, x187, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x191, &x192, x187, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x193, &x194, 0x0, + x169, x191); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x195, &x196, + x194, x171, x192); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x197, &x198, + x196, x173, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x199, &x200, + x198, x175, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x201, &x202, + x200, x177, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x203, &x204, + x202, x179, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x205, &x206, + x204, x181, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x207, &x208, + x206, x183, x189); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x209, &x210, + x208, x185, x190); + x211 = ((uint32_t)x210 + x186); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x212, &x213, x3, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x214, &x215, x3, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x216, &x217, x3, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x218, &x219, x3, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x220, &x221, x3, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x222, &x223, x3, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x224, &x225, x3, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x226, &x227, x3, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x228, &x229, 0x0, + x227, x224); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x230, &x231, + x229, x225, x222); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x232, &x233, + x231, x223, x220); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x234, &x235, + x233, x221, x218); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x236, &x237, + x235, x219, x216); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x238, &x239, + x237, x217, x214); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x240, &x241, + x239, x215, x212); + x242 = (x241 + x213); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x243, &x244, 0x0, + x195, x226); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x245, &x246, + x244, x197, x228); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x247, &x248, + x246, x199, x230); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x249, &x250, + x248, x201, x232); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x251, &x252, + x250, x203, x234); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x253, &x254, + x252, x205, x236); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x255, &x256, + x254, x207, x238); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x257, &x258, + x256, x209, x240); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x259, &x260, + x258, x211, x242); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x261, &x262, x243, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x263, &x264, x261, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x265, &x266, x261, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x267, &x268, 0x0, + x243, x265); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x269, &x270, + x268, x245, x266); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x271, &x272, + x270, x247, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x273, &x274, + x272, x249, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x275, &x276, + x274, x251, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x277, &x278, + x276, x253, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x279, &x280, + x278, x255, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x281, &x282, + x280, x257, x263); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x283, &x284, + x282, x259, x264); + x285 = ((uint32_t)x284 + x260); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x286, &x287, x4, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x288, &x289, x4, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x290, &x291, x4, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x292, &x293, x4, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x294, &x295, x4, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x296, &x297, x4, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x298, &x299, x4, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x300, &x301, x4, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x302, &x303, 0x0, + x301, x298); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x304, &x305, + x303, x299, x296); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x306, &x307, + x305, x297, x294); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x308, &x309, + x307, x295, x292); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x310, &x311, + x309, x293, x290); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x312, &x313, + x311, x291, x288); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x314, &x315, + x313, x289, x286); + x316 = (x315 + x287); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x317, &x318, 0x0, + x269, x300); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x319, &x320, + x318, x271, x302); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x321, &x322, + x320, x273, x304); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x323, &x324, + x322, x275, x306); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x325, &x326, + x324, x277, x308); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x327, &x328, + x326, x279, x310); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x329, &x330, + x328, x281, x312); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x331, &x332, + x330, x283, x314); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x333, &x334, + x332, x285, x316); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x335, &x336, x317, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x337, &x338, x335, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x339, &x340, x335, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x341, &x342, 0x0, + x317, x339); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x343, &x344, + x342, x319, x340); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x345, &x346, + x344, x321, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x347, &x348, + x346, x323, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x349, &x350, + x348, x325, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x351, &x352, + x350, x327, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x353, &x354, + x352, x329, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x355, &x356, + x354, x331, x337); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x357, &x358, + x356, x333, x338); + x359 = ((uint32_t)x358 + x334); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x360, &x361, x5, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x362, &x363, x5, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x364, &x365, x5, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x366, &x367, x5, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x368, &x369, x5, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x370, &x371, x5, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x372, &x373, x5, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x374, &x375, x5, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x376, &x377, 0x0, + x375, x372); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x378, &x379, + x377, x373, x370); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x380, &x381, + x379, x371, x368); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x382, &x383, + x381, x369, x366); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x384, &x385, + x383, x367, x364); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x386, &x387, + x385, x365, x362); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x388, &x389, + x387, x363, x360); + x390 = (x389 + x361); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x391, &x392, 0x0, + x343, x374); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x393, &x394, + x392, x345, x376); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x395, &x396, + x394, x347, x378); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x397, &x398, + x396, x349, x380); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x399, &x400, + x398, x351, x382); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x401, &x402, + x400, x353, x384); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x403, &x404, + x402, x355, x386); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x405, &x406, + x404, x357, x388); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x407, &x408, + x406, x359, x390); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x409, &x410, x391, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x411, &x412, x409, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x413, &x414, x409, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x415, &x416, 0x0, + x391, x413); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x417, &x418, + x416, x393, x414); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x419, &x420, + x418, x395, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x421, &x422, + x420, x397, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x423, &x424, + x422, x399, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x425, &x426, + x424, x401, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x427, &x428, + x426, x403, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x429, &x430, + x428, x405, x411); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x431, &x432, + x430, x407, x412); + x433 = ((uint32_t)x432 + x408); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x434, &x435, x6, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x436, &x437, x6, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x438, &x439, x6, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x440, &x441, x6, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x442, &x443, x6, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x444, &x445, x6, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x446, &x447, x6, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x448, &x449, x6, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x450, &x451, 0x0, + x449, x446); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x452, &x453, + x451, x447, x444); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x454, &x455, + x453, x445, x442); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x456, &x457, + x455, x443, x440); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x458, &x459, + x457, x441, x438); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x460, &x461, + x459, x439, x436); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x462, &x463, + x461, x437, x434); + x464 = (x463 + x435); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x465, &x466, 0x0, + x417, x448); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x467, &x468, + x466, x419, x450); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x469, &x470, + x468, x421, x452); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x471, &x472, + x470, x423, x454); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x473, &x474, + x472, x425, x456); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x475, &x476, + x474, x427, x458); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x477, &x478, + x476, x429, x460); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x479, &x480, + x478, x431, x462); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x481, &x482, + x480, x433, x464); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x483, &x484, x465, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x485, &x486, x483, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x487, &x488, x483, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x489, &x490, 0x0, + x465, x487); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x491, &x492, + x490, x467, x488); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x493, &x494, + x492, x469, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x495, &x496, + x494, x471, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x497, &x498, + x496, x473, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x499, &x500, + x498, x475, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x501, &x502, + x500, x477, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x503, &x504, + x502, x479, x485); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x505, &x506, + x504, x481, x486); + x507 = ((uint32_t)x506 + x482); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x508, &x509, x7, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x510, &x511, x7, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x512, &x513, x7, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x514, &x515, x7, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x516, &x517, x7, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x518, &x519, x7, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x520, &x521, x7, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x522, &x523, x7, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x524, &x525, 0x0, + x523, x520); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x526, &x527, + x525, x521, x518); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x528, &x529, + x527, x519, x516); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x530, &x531, + x529, x517, x514); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x532, &x533, + x531, x515, x512); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x534, &x535, + x533, x513, x510); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x536, &x537, + x535, x511, x508); + x538 = (x537 + x509); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x539, &x540, 0x0, + x491, x522); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x541, &x542, + x540, x493, x524); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x543, &x544, + x542, x495, x526); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x545, &x546, + x544, x497, x528); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x547, &x548, + x546, x499, x530); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x549, &x550, + x548, x501, x532); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x551, &x552, + x550, x503, x534); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x553, &x554, + x552, x505, x536); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x555, &x556, + x554, x507, x538); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x557, &x558, x539, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x559, &x560, x557, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x561, &x562, x557, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x563, &x564, 0x0, + x539, x561); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x565, &x566, + x564, x541, x562); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x567, &x568, + x566, x543, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x569, &x570, + x568, x545, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x571, &x572, + x570, x547, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x573, &x574, + x572, x549, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x575, &x576, + x574, x551, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x577, &x578, + x576, x553, x559); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x579, &x580, + x578, x555, x560); + x581 = ((uint32_t)x580 + x556); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x582, &x583, 0x0, x565, UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x584, &x585, + x583, x567, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x586, &x587, + x585, x569, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x588, &x589, + x587, x571, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x590, &x591, + x589, x573, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x592, &x593, + x591, x575, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x594, &x595, + x593, x577, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x596, &x597, x595, x579, UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x598, &x599, + x597, x581, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x600, x599, x582, + x565); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x601, x599, x584, + x567); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x602, x599, x586, + x569); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x603, x599, x588, + x571); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x604, x599, x590, + x573); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x605, x599, x592, + x575); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x606, x599, x594, + x577); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x607, x599, x596, + x579); + out1[0] = x600; + out1[1] = x601; + out1[2] = x602; + out1[3] = x603; + out1[4] = x604; + out1[5] = x605; + out1[6] = x606; + out1[7] = x607; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add adds two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add( + uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) { + uint32_t x1; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2; + uint32_t x3; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4; + uint32_t x5; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6; + uint32_t x7; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8; + uint32_t x9; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x10; + uint32_t x11; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14; + uint32_t x15; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16; + uint32_t x17; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x18; + uint32_t x19; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x20; + uint32_t x21; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x22; + uint32_t x23; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x24; + uint32_t x25; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x28; + uint32_t x29; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x30; + uint32_t x31; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x32; + uint32_t x33; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x9, &x10, x8, (arg1[4]), (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x11, &x12, x10, (arg1[5]), (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x13, &x14, x12, (arg1[6]), (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x15, &x16, x14, (arg1[7]), (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x17, &x18, 0x0, x1, UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x19, &x20, x18, + x3, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x21, &x22, x20, + x5, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x23, &x24, x22, + x7, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x25, &x26, x24, + x9, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x27, &x28, x26, + x11, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x29, &x30, x28, + x13, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x31, &x32, x30, x15, UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x33, &x34, x32, + x16, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x35, x34, x17, x1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x36, x34, x19, x3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x37, x34, x21, x5); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x38, x34, x23, x7); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x39, x34, x25, x9); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x40, x34, x27, + x11); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x41, x34, x29, + x13); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x42, x34, x31, + x15); + out1[0] = x35; + out1[1] = x36; + out1[2] = x37; + out1[3] = x38; + out1[4] = x39; + out1[5] = x40; + out1[6] = x41; + out1[7] = x42; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub subtracts two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub( + uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) { + uint32_t x1; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2; + uint32_t x3; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4; + uint32_t x5; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6; + uint32_t x7; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8; + uint32_t x9; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x10; + uint32_t x11; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14; + uint32_t x15; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16; + uint32_t x17; + uint32_t x18; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x19; + uint32_t x20; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x21; + uint32_t x22; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x23; + uint32_t x24; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x25; + uint32_t x26; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x27; + uint32_t x28; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x29; + uint32_t x30; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x31; + uint32_t x32; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x33; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x9, &x10, x8, (arg1[4]), (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x11, &x12, x10, (arg1[5]), (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x13, &x14, x12, (arg1[6]), (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x15, &x16, x14, (arg1[7]), (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + &x17, x16, 0x0, UINT32_C(0xffffffff)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x18, &x19, 0x0, x1, (x17 & UINT16_C(0xc99))); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x20, &x21, x19, + x3, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x22, &x23, x21, + x5, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x24, &x25, x23, + x7, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x26, &x27, x25, + x9, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x28, &x29, x27, + x11, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x30, &x31, x29, + x13, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x32, &x33, x31, x15, (x17 & UINT32_C(0x80000000))); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x24; + out1[4] = x26; + out1[5] = x28; + out1[6] = x30; + out1[7] = x32; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp negates a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp( + uint32_t out1[8], const uint32_t arg1[8]) { + uint32_t x1; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x2; + uint32_t x3; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x4; + uint32_t x5; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x6; + uint32_t x7; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x8; + uint32_t x9; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x10; + uint32_t x11; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14; + uint32_t x15; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x16; + uint32_t x17; + uint32_t x18; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x19; + uint32_t x20; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x21; + uint32_t x22; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x23; + uint32_t x24; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x25; + uint32_t x26; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x27; + uint32_t x28; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x29; + uint32_t x30; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x31; + uint32_t x32; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x33; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x1, &x2, 0x0, + 0x0, (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x3, &x4, x2, + 0x0, (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x5, &x6, x4, + 0x0, (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x7, &x8, x6, + 0x0, (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x9, &x10, x8, + 0x0, (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x11, &x12, x10, + 0x0, (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x13, &x14, x12, + 0x0, (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x15, &x16, x14, + 0x0, (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + &x17, x16, 0x0, UINT32_C(0xffffffff)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x18, &x19, 0x0, x1, (x17 & UINT16_C(0xc99))); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x20, &x21, x19, + x3, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x22, &x23, x21, + x5, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x24, &x25, x23, + x7, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x26, &x27, x25, + x9, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x28, &x29, x27, + x11, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x30, &x31, x29, + x13, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x32, &x33, x31, x15, (x17 & UINT32_C(0x80000000))); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x24; + out1[4] = x26; + out1[5] = x28; + out1[6] = x30; + out1[7] = x32; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery translates a field element out of the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^8) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery( + uint32_t out1[8], const uint32_t arg1[8]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x9; + uint32_t x10; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x11; + uint32_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x19; + uint32_t x20; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x21; + uint32_t x22; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x23; + uint32_t x24; + uint32_t x25; + uint32_t x26; + uint32_t x27; + uint32_t x28; + uint32_t x29; + uint32_t x30; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x31; + uint32_t x32; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x33; + uint32_t x34; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x35; + uint32_t x36; + uint32_t x37; + uint32_t x38; + uint32_t x39; + uint32_t x40; + uint32_t x41; + uint32_t x42; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x43; + uint32_t x44; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x45; + uint32_t x46; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x47; + uint32_t x48; + uint32_t x49; + uint32_t x50; + uint32_t x51; + uint32_t x52; + uint32_t x53; + uint32_t x54; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x55; + uint32_t x56; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x57; + uint32_t x58; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x59; + uint32_t x60; + uint32_t x61; + uint32_t x62; + uint32_t x63; + uint32_t x64; + uint32_t x65; + uint32_t x66; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x67; + uint32_t x68; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x69; + uint32_t x70; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x71; + uint32_t x72; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x73; + uint32_t x74; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x75; + uint32_t x76; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x77; + uint32_t x78; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x79; + uint32_t x80; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x81; + uint32_t x82; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x83; + uint32_t x84; + uint32_t x85; + uint32_t x86; + uint32_t x87; + uint32_t x88; + uint32_t x89; + uint32_t x90; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x91; + uint32_t x92; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x93; + uint32_t x94; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x95; + uint32_t x96; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x97; + uint32_t x98; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x99; + uint32_t x100; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x101; + uint32_t x102; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x103; + uint32_t x104; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x105; + uint32_t x106; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x107; + uint32_t x108; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x109; + uint32_t x110; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x111; + uint32_t x112; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x113; + uint32_t x114; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x115; + uint32_t x116; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x117; + uint32_t x118; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x119; + uint32_t x120; + uint32_t x121; + uint32_t x122; + uint32_t x123; + uint32_t x124; + uint32_t x125; + uint32_t x126; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x127; + uint32_t x128; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x129; + uint32_t x130; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x131; + uint32_t x132; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x133; + uint32_t x134; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x135; + uint32_t x136; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x137; + uint32_t x138; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x139; + uint32_t x140; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x141; + uint32_t x142; + uint32_t x143; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x144; + uint32_t x145; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x146; + uint32_t x147; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x148; + uint32_t x149; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x150; + uint32_t x151; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x152; + uint32_t x153; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x154; + uint32_t x155; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x156; + uint32_t x157; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x158; + uint32_t x159; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x160; + uint32_t x161; + uint32_t x162; + uint32_t x163; + uint32_t x164; + uint32_t x165; + uint32_t x166; + uint32_t x167; + uint32_t x168; + x1 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x2, &x3, x1, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x4, &x5, x2, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x6, &x7, x2, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x8, &x9, 0x0, x1, + x6); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x10, &x11, 0x0, (x9 + x7), (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x12, &x13, x10, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x14, &x15, x12, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x16, &x17, x12, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x18, &x19, 0x0, + x5, x14); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x20, &x21, 0x0, + x10, x16); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x22, &x23, 0x0, (((uint32_t)x21 + x11) + x17), (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x24, &x25, x22, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x26, &x27, x24, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x28, &x29, x24, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x30, &x31, 0x0, + (x19 + x15), x26); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x32, &x33, 0x0, + x22, x28); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x34, &x35, 0x0, (((uint32_t)x33 + x23) + x29), (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x36, &x37, x34, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x38, &x39, x36, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x40, &x41, x36, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x42, &x43, 0x0, + (x31 + x27), x38); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x44, &x45, 0x0, + x34, x40); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x46, &x47, 0x0, (((uint32_t)x45 + x35) + x41), (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x48, &x49, x46, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x50, &x51, x48, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x52, &x53, x48, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x54, &x55, 0x0, + (x43 + x39), x50); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x56, &x57, 0x0, + x46, x52); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x58, &x59, 0x0, (((uint32_t)x57 + x47) + x53), (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x60, &x61, x58, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x62, &x63, x60, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x64, &x65, x60, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x66, &x67, 0x0, + (x55 + x51), x62); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x68, &x69, 0x0, + x58, x64); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x70, &x71, 0x0, (((uint32_t)x69 + x59) + x65), (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x72, &x73, x71, + x4, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x74, &x75, x73, + x18, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x76, &x77, x75, + x30, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x78, &x79, x77, + x42, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x80, &x81, x79, + x54, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x82, &x83, x81, + x66, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x84, &x85, x70, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x86, &x87, x84, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x88, &x89, x84, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x90, &x91, 0x0, + x70, x88); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x92, &x93, x91, + x72, x89); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x94, &x95, x93, + x74, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x96, &x97, x95, + x76, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x98, &x99, x97, + x78, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x100, &x101, x99, + x80, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x102, &x103, + x101, x82, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x104, &x105, x103, (x83 + (x67 + x63)), x86); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x106, &x107, 0x0, + x92, (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x108, &x109, + x107, x94, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x110, &x111, + x109, x96, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x112, &x113, + x111, x98, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x114, &x115, + x113, x100, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x116, &x117, + x115, x102, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x118, &x119, + x117, x104, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x120, &x121, x106, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x122, &x123, x120, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x124, &x125, x120, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x126, &x127, 0x0, + x106, x124); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x128, &x129, + x127, x108, x125); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x130, &x131, + x129, x110, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x132, &x133, + x131, x112, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x134, &x135, + x133, x114, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x136, &x137, + x135, x116, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x138, &x139, + x137, x118, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x140, &x141, x139, (x119 + (x105 + x87)), x122); + x142 = (x141 + x123); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x143, &x144, 0x0, x128, UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x145, &x146, + x144, x130, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x147, &x148, + x146, x132, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x149, &x150, + x148, x134, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x151, &x152, + x150, x136, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x153, &x154, + x152, x138, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x155, &x156, + x154, x140, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x157, &x158, x156, x142, UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x159, &x160, + x158, 0x0, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x161, x160, x143, + x128); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x162, x160, x145, + x130); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x163, x160, x147, + x132); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x164, x160, x149, + x134); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x165, x160, x151, + x136); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x166, x160, x153, + x138); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x167, x160, x155, + x140); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x168, x160, x157, + x142); + out1[0] = x161; + out1[1] = x162; + out1[2] = x163; + out1[3] = x164; + out1[4] = x165; + out1[5] = x166; + out1[6] = x167; + out1[7] = x168; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery translates a field element into the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = eval arg1 mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery( + uint32_t out1[8], const uint32_t arg1[8]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_t x20; + uint32_t x21; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x22; + uint32_t x23; + uint32_t x24; + uint32_t x25; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x28; + uint32_t x29; + uint32_t x30; + uint32_t x31; + uint32_t x32; + uint32_t x33; + uint32_t x34; + uint32_t x35; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x36; + uint32_t x37; + uint32_t x38; + uint32_t x39; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x40; + uint32_t x41; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x42; + uint32_t x43; + uint32_t x44; + uint32_t x45; + uint32_t x46; + uint32_t x47; + uint32_t x48; + uint32_t x49; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x50; + uint32_t x51; + uint32_t x52; + uint32_t x53; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x54; + uint32_t x55; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x56; + uint32_t x57; + uint32_t x58; + uint32_t x59; + uint32_t x60; + uint32_t x61; + uint32_t x62; + uint32_t x63; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x64; + uint32_t x65; + uint32_t x66; + uint32_t x67; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x68; + uint32_t x69; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x82; + uint32_t x83; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x84; + uint32_t x85; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x86; + uint32_t x87; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x88; + uint32_t x89; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x90; + uint32_t x91; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x92; + uint32_t x93; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x94; + uint32_t x95; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x96; + uint32_t x97; + uint32_t x98; + uint32_t x99; + uint32_t x100; + uint32_t x101; + uint32_t x102; + uint32_t x103; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x104; + uint32_t x105; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x106; + uint32_t x107; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x108; + uint32_t x109; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x110; + uint32_t x111; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x112; + uint32_t x113; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x114; + uint32_t x115; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x116; + uint32_t x117; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x118; + uint32_t x119; + uint32_t x120; + uint32_t x121; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x122; + uint32_t x123; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x124; + uint32_t x125; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x126; + uint32_t x127; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x128; + uint32_t x129; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x130; + uint32_t x131; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x132; + uint32_t x133; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x134; + uint32_t x135; + uint32_t x136; + uint32_t x137; + uint32_t x138; + uint32_t x139; + uint32_t x140; + uint32_t x141; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x142; + uint32_t x143; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x144; + uint32_t x145; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x146; + uint32_t x147; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x148; + uint32_t x149; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x150; + uint32_t x151; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x152; + uint32_t x153; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x154; + uint32_t x155; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x156; + uint32_t x157; + uint32_t x158; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x159; + uint32_t x160; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x161; + uint32_t x162; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x163; + uint32_t x164; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x165; + uint32_t x166; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x167; + uint32_t x168; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x169; + uint32_t x170; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x171; + uint32_t x172; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x173; + uint32_t x174; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 x175; + uint32_t x176; + uint32_t x177; + uint32_t x178; + uint32_t x179; + uint32_t x180; + uint32_t x181; + uint32_t x182; + uint32_t x183; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x1, &x2, (arg1[0]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x3, &x4, x1, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x5, &x6, x3, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x7, &x8, x3, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x9, &x10, (arg1[1]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x11, &x12, 0x0, + x1, x7); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x13, &x14, 0x0, ((x12 + x2) + x8), x9); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x15, &x16, x13, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x17, &x18, x15, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x19, &x20, x15, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x21, &x22, 0x0, + x6, x17); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x23, &x24, (arg1[2]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x25, &x26, 0x0, + x13, x19); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x27, &x28, 0x0, ((x26 + (x14 + x10)) + x20), x23); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x29, &x30, x27, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x31, &x32, x29, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x33, &x34, x29, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x35, &x36, 0x0, + (x22 + x18), x31); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x37, &x38, (arg1[3]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x39, &x40, 0x0, + x27, x33); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x41, &x42, 0x0, ((x40 + (x28 + x24)) + x34), x37); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x43, &x44, x41, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x45, &x46, x43, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x47, &x48, x43, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x49, &x50, 0x0, + (x36 + x32), x45); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x51, &x52, (arg1[4]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x53, &x54, 0x0, + x41, x47); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x55, &x56, 0x0, ((x54 + (x42 + x38)) + x48), x51); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x57, &x58, x55, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x59, &x60, x57, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x61, &x62, x57, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x63, &x64, 0x0, + (x50 + x46), x59); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x65, &x66, (arg1[5]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x67, &x68, 0x0, + x55, x61); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x69, &x70, 0x0, ((x68 + (x56 + x52)) + x62), x65); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x71, &x72, x69, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x73, &x74, x71, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x75, &x76, x71, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x77, &x78, 0x0, + (x64 + x60), x73); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x79, &x80, (arg1[6]), + UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x81, &x82, 0x0, + x69, x75); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x83, &x84, 0x0, ((x82 + (x70 + x66)) + x76), x79); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x85, &x86, x84, + x5, x80); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x87, &x88, x86, + x21, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x89, &x90, x88, + x35, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x91, &x92, x90, + x49, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x93, &x94, x92, + x63, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x95, &x96, x94, + x77, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x97, &x98, x83, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x99, &x100, x97, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x101, &x102, x97, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x103, &x104, 0x0, + x83, x101); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x105, &x106, + x104, x85, x102); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x107, &x108, + x106, x87, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x109, &x110, + x108, x89, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x111, &x112, + x110, x91, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x113, &x114, + x112, x93, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x115, &x116, + x114, x95, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x117, &x118, x116, (x96 + (x78 + x74)), x99); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32( + &x119, &x120, (arg1[7]), UINT32_C(0x27acdc4)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x121, &x122, 0x0, + x105, x119); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x123, &x124, + x122, x107, x120); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x125, &x126, + x124, x109, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x127, &x128, + x126, x111, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x129, &x130, + x128, x113, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x131, &x132, + x130, x115, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x133, &x134, + x132, x117, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x135, &x136, x121, + UINT32_C(0xa3347857)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x137, &x138, x135, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mulx_u32(&x139, &x140, x135, + UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x141, &x142, 0x0, + x121, x139); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x143, &x144, + x142, x123, x140); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x145, &x146, + x144, x125, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x147, &x148, + x146, x127, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x149, &x150, + x148, x129, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x151, &x152, + x150, x131, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32(&x153, &x154, + x152, x133, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_addcarryx_u32( + &x155, &x156, x154, (x134 + (x118 + x100)), x137); + x157 = (x156 + x138); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x158, &x159, 0x0, x143, UINT16_C(0xc99)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x160, &x161, + x159, x145, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x162, &x163, + x161, x147, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x164, &x165, + x163, x149, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x166, &x167, + x165, x151, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x168, &x169, + x167, x153, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x170, &x171, + x169, x155, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32( + &x172, &x173, x171, x157, UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_subborrowx_u32(&x174, &x175, + x173, 0x0, 0x0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x176, x175, x158, + x143); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x177, x175, x160, + x145); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x178, x175, x162, + x147); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x179, x175, x164, + x149); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x180, x175, x166, + x151); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x181, x175, x168, + x153); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x182, x175, x170, + x155); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32(&x183, x175, x172, + x157); + out1[0] = x176; + out1[1] = x177; + out1[2] = x178; + out1[3] = x179; + out1[4] = x180; + out1[5] = x181; + out1[6] = x182; + out1[7] = x183; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero( + uint32_t *out1, const uint32_t arg1[8]) { + uint32_t x1; + x1 = ((arg1[0]) | + ((arg1[1]) | + ((arg1[2]) | + ((arg1[3]) | + ((arg1[4]) | + ((arg1[5]) | ((arg1[6]) | ((arg1[7]) | (uint32_t)0x0)))))))); + *out1 = x1; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_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]] + * arg3: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + uint32_t out1[8], fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_uint1 arg1, + const uint32_t arg2[8], const uint32_t arg3[8]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + &x1, arg1, (arg2[0]), (arg3[0])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + &x2, arg1, (arg2[1]), (arg3[1])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + &x3, arg1, (arg2[2]), (arg3[2])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + &x4, arg1, (arg2[3]), (arg3[3])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + &x5, arg1, (arg2[4]), (arg3[4])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + &x6, arg1, (arg2[5]), (arg3[5])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + &x7, arg1, (arg2[6]), (arg3[6])); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_cmovznz_u32( + &x8, arg1, (arg2[7]), (arg3[7])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31] + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * 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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes( + uint8_t out1[32], const uint32_t arg1[8]) { + 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; + uint8_t x10; + uint32_t x11; + uint8_t x12; + uint8_t x13; + uint8_t x14; + uint8_t x15; + uint32_t x16; + uint8_t x17; + uint32_t x18; + uint8_t x19; + uint8_t x20; + uint8_t x21; + uint8_t x22; + uint32_t x23; + uint8_t x24; + uint32_t x25; + uint8_t x26; + uint8_t x27; + uint8_t x28; + uint8_t x29; + uint32_t x30; + uint8_t x31; + uint32_t x32; + uint8_t x33; + uint8_t x34; + uint8_t x35; + uint8_t x36; + uint32_t x37; + uint8_t x38; + uint32_t x39; + uint8_t x40; + uint8_t x41; + uint8_t x42; + uint8_t x43; + uint32_t x44; + uint8_t x45; + uint32_t x46; + uint8_t x47; + uint8_t x48; + uint8_t x49; + uint8_t x50; + uint32_t x51; + uint8_t x52; + uint32_t x53; + uint8_t x54; + uint8_t x55; + uint8_t x56; + uint8_t x57; + uint32_t x58; + uint8_t x59; + uint32_t x60; + uint8_t x61; + uint8_t x62; + uint8_t x63; + x1 = (arg1[7]); + x2 = (arg1[6]); + x3 = (arg1[5]); + x4 = (arg1[4]); + x5 = (arg1[3]); + x6 = (arg1[2]); + x7 = (arg1[1]); + x8 = (arg1[0]); + x9 = (x8 >> 8); + x10 = (uint8_t)(x8 & UINT8_C(0xff)); + x11 = (x9 >> 8); + x12 = (uint8_t)(x9 & UINT8_C(0xff)); + x13 = (uint8_t)(x11 >> 8); + x14 = (uint8_t)(x11 & UINT8_C(0xff)); + x15 = (uint8_t)(x13 & UINT8_C(0xff)); + x16 = (x7 >> 8); + x17 = (uint8_t)(x7 & UINT8_C(0xff)); + x18 = (x16 >> 8); + x19 = (uint8_t)(x16 & UINT8_C(0xff)); + x20 = (uint8_t)(x18 >> 8); + x21 = (uint8_t)(x18 & UINT8_C(0xff)); + x22 = (uint8_t)(x20 & UINT8_C(0xff)); + x23 = (x6 >> 8); + x24 = (uint8_t)(x6 & UINT8_C(0xff)); + x25 = (x23 >> 8); + x26 = (uint8_t)(x23 & UINT8_C(0xff)); + x27 = (uint8_t)(x25 >> 8); + x28 = (uint8_t)(x25 & UINT8_C(0xff)); + x29 = (uint8_t)(x27 & UINT8_C(0xff)); + x30 = (x5 >> 8); + x31 = (uint8_t)(x5 & UINT8_C(0xff)); + x32 = (x30 >> 8); + x33 = (uint8_t)(x30 & UINT8_C(0xff)); + x34 = (uint8_t)(x32 >> 8); + x35 = (uint8_t)(x32 & UINT8_C(0xff)); + x36 = (uint8_t)(x34 & UINT8_C(0xff)); + x37 = (x4 >> 8); + x38 = (uint8_t)(x4 & UINT8_C(0xff)); + x39 = (x37 >> 8); + x40 = (uint8_t)(x37 & UINT8_C(0xff)); + x41 = (uint8_t)(x39 >> 8); + x42 = (uint8_t)(x39 & UINT8_C(0xff)); + x43 = (uint8_t)(x41 & UINT8_C(0xff)); + x44 = (x3 >> 8); + x45 = (uint8_t)(x3 & UINT8_C(0xff)); + x46 = (x44 >> 8); + x47 = (uint8_t)(x44 & UINT8_C(0xff)); + x48 = (uint8_t)(x46 >> 8); + x49 = (uint8_t)(x46 & UINT8_C(0xff)); + x50 = (uint8_t)(x48 & UINT8_C(0xff)); + x51 = (x2 >> 8); + x52 = (uint8_t)(x2 & UINT8_C(0xff)); + x53 = (x51 >> 8); + x54 = (uint8_t)(x51 & UINT8_C(0xff)); + x55 = (uint8_t)(x53 >> 8); + x56 = (uint8_t)(x53 & UINT8_C(0xff)); + x57 = (uint8_t)(x55 & UINT8_C(0xff)); + x58 = (x1 >> 8); + x59 = (uint8_t)(x1 & UINT8_C(0xff)); + x60 = (x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (uint8_t)(x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x15; + out1[4] = x17; + out1[5] = x19; + out1[6] = x21; + out1[7] = x22; + out1[8] = x24; + out1[9] = x26; + out1[10] = x28; + out1[11] = x29; + out1[12] = x31; + out1[13] = x33; + out1[14] = x35; + out1[15] = x36; + out1[16] = x38; + out1[17] = x40; + out1[18] = x42; + out1[19] = x43; + out1[20] = x45; + out1[21] = x47; + out1[22] = x49; + out1[23] = x50; + out1[24] = x52; + out1[25] = x54; + out1[26] = x56; + out1[27] = x57; + out1[28] = x59; + out1[29] = x61; + out1[30] = x63; + out1[31] = x62; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order. + * Preconditions: + * 0 ≤ bytes_eval arg1 < m + * Postconditions: + * eval out1 mod m = bytes_eval arg1 mod m + * 0 ≤ eval out1 < 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]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes( + uint32_t out1[8], const uint8_t arg1[32]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint8_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint8_t x8; + uint32_t x9; + uint32_t x10; + uint32_t x11; + uint8_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint8_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint8_t x20; + uint32_t x21; + uint32_t x22; + uint32_t x23; + uint8_t x24; + uint32_t x25; + uint32_t x26; + uint32_t x27; + uint8_t x28; + uint32_t x29; + uint32_t x30; + uint32_t x31; + uint8_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; + x1 = ((uint32_t)(arg1[31]) << 24); + x2 = ((uint32_t)(arg1[30]) << 16); + x3 = ((uint32_t)(arg1[29]) << 8); + x4 = (arg1[28]); + x5 = ((uint32_t)(arg1[27]) << 24); + x6 = ((uint32_t)(arg1[26]) << 16); + x7 = ((uint32_t)(arg1[25]) << 8); + x8 = (arg1[24]); + x9 = ((uint32_t)(arg1[23]) << 24); + x10 = ((uint32_t)(arg1[22]) << 16); + x11 = ((uint32_t)(arg1[21]) << 8); + x12 = (arg1[20]); + x13 = ((uint32_t)(arg1[19]) << 24); + x14 = ((uint32_t)(arg1[18]) << 16); + x15 = ((uint32_t)(arg1[17]) << 8); + x16 = (arg1[16]); + x17 = ((uint32_t)(arg1[15]) << 24); + x18 = ((uint32_t)(arg1[14]) << 16); + x19 = ((uint32_t)(arg1[13]) << 8); + x20 = (arg1[12]); + x21 = ((uint32_t)(arg1[11]) << 24); + x22 = ((uint32_t)(arg1[10]) << 16); + x23 = ((uint32_t)(arg1[9]) << 8); + x24 = (arg1[8]); + x25 = ((uint32_t)(arg1[7]) << 24); + x26 = ((uint32_t)(arg1[6]) << 16); + x27 = ((uint32_t)(arg1[5]) << 8); + x28 = (arg1[4]); + x29 = ((uint32_t)(arg1[3]) << 24); + x30 = ((uint32_t)(arg1[2]) << 16); + x31 = ((uint32_t)(arg1[1]) << 8); + x32 = (arg1[0]); + x33 = (x32 + (x31 + (x30 + x29))); + x34 = (x33 & UINT32_C(0xffffffff)); + x35 = (x4 + (x3 + (x2 + x1))); + x36 = (x8 + (x7 + (x6 + x5))); + x37 = (x12 + (x11 + (x10 + x9))); + x38 = (x16 + (x15 + (x14 + x13))); + x39 = (x20 + (x19 + (x18 + x17))); + x40 = (x24 + (x23 + (x22 + x21))); + x41 = (x28 + (x27 + (x26 + x25))); + x42 = (x41 & UINT32_C(0xffffffff)); + x43 = (x40 & UINT32_C(0xffffffff)); + x44 = (x39 & UINT32_C(0xffffffff)); + x45 = (x38 & UINT32_C(0xffffffff)); + x46 = (x37 & UINT32_C(0xffffffff)); + x47 = (x36 & UINT32_C(0xffffffff)); + out1[0] = x34; + out1[1] = x42; + out1[2] = x43; + out1[3] = x44; + out1[4] = x45; + out1[5] = x46; + out1[6] = x47; + out1[7] = x35; +} + +/* 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_GostR3410_2001_CryptoPro_B_ParamSet/fe_inv.op3 + * sliding window w=5 + */ +static void fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t23, t25; + + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t1, acc); + for (i = 0; i < 9; i++) + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t25, acc); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t23, t25, acc); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t25, t23, acc); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, t1); + for (i = 0; i < 247; i++) + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(acc, acc, t25); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(output, acc, t23); +} + +/* curve coefficient constants */ + +static const limb_t const_one[8] = {UINT32_C(0xFFFFF367), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0x7FFFFFFF)}; + +static const limb_t const_b[8] = {UINT32_C(0xA9C5A084), UINT32_C(0x8DCC455A), + UINT32_C(0x6CF438A8), UINT32_C(0x91AB42DF), + UINT32_C(0xEEAC7D11), UINT32_C(0x8F8AA907), + UINT32_C(0xF6285375), UINT32_C(0x3CE5D221)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[27][16] = { + { + {{UINT32_C(0xFFFFF367), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0x7FFFFFFF)}, + {UINT32_C(0x570C7410), UINT32_C(0xDDDC64B3), UINT32_C(0x13172887), + UINT32_C(0xA7B09925), UINT32_C(0x4B6382DB), UINT32_C(0x0C4E5C4C), + UINT32_C(0x124768DE), UINT32_C(0x2763DB0F)}}, + {{UINT32_C(0x8457D15D), UINT32_C(0xCD3E57B6), UINT32_C(0xBEA56E83), + UINT32_C(0xEB688F7F), UINT32_C(0x6A13C5CE), UINT32_C(0x235A123C), + UINT32_C(0x50F57A6D), UINT32_C(0x0CD7EB9D)}, + {UINT32_C(0x544C1965), UINT32_C(0xC0124E91), UINT32_C(0x62AFA35E), + UINT32_C(0x4D9C1729), UINT32_C(0x0037C554), UINT32_C(0x0F92F2C3), + UINT32_C(0x0A3F2665), UINT32_C(0x1D899868)}}, + {{UINT32_C(0x55F43EFF), UINT32_C(0x9DE4B213), UINT32_C(0x5C9E63F5), + UINT32_C(0x2E110A42), UINT32_C(0x1CE5A6DF), UINT32_C(0x9350A9C3), + UINT32_C(0xA332315E), UINT32_C(0x377CBF0B)}, + {UINT32_C(0x20F0D1B5), UINT32_C(0x2805DD48), UINT32_C(0x0F9723E5), + UINT32_C(0x3B197566), UINT32_C(0x84B79937), UINT32_C(0xA1CCA78C), + UINT32_C(0x94D5E03D), UINT32_C(0x4F87BB1B)}}, + {{UINT32_C(0x5652C96F), UINT32_C(0xE428FBFB), UINT32_C(0xD261BDD1), + UINT32_C(0x2E9A14D2), UINT32_C(0x7453B76A), UINT32_C(0x082D8296), + UINT32_C(0x7AC87B02), UINT32_C(0x61EA580E)}, + {UINT32_C(0xCF368FDB), UINT32_C(0xA0F8C2BA), UINT32_C(0xD73B2A28), + UINT32_C(0xDF093380), UINT32_C(0xEA8FE5D2), UINT32_C(0xFA0928B2), + UINT32_C(0x5F86D38A), UINT32_C(0x77A67492)}}, + {{UINT32_C(0x27670451), UINT32_C(0xDFFAB410), UINT32_C(0x1200AD3A), + UINT32_C(0xEBC3D017), UINT32_C(0x25F4F6C4), UINT32_C(0xF68324F3), + UINT32_C(0x7D0EAFD0), UINT32_C(0x4A24CD5F)}, + {UINT32_C(0xD3F6BD1C), UINT32_C(0xF8FBD489), UINT32_C(0x67B473DE), + UINT32_C(0x0F6B56D5), UINT32_C(0xCACF0D6B), UINT32_C(0x6FB063DE), + UINT32_C(0x96DC574B), UINT32_C(0x27F2E7E9)}}, + {{UINT32_C(0x93937228), UINT32_C(0xA6A10645), UINT32_C(0xA9165BBB), + UINT32_C(0xAB7550B4), UINT32_C(0xCB0EDBE8), UINT32_C(0xD682D4F1), + UINT32_C(0x40E5AD8D), UINT32_C(0x2261FCEC)}, + {UINT32_C(0xCCBD4E18), UINT32_C(0x9F2119C6), UINT32_C(0xAAB09697), + UINT32_C(0x2FD094E9), UINT32_C(0xE700929E), UINT32_C(0x00331713), + UINT32_C(0x54338FE1), UINT32_C(0x6C5F2EFE)}}, + {{UINT32_C(0x42FFF78A), UINT32_C(0xD6314017), UINT32_C(0x2087E055), + UINT32_C(0x38F23A91), UINT32_C(0x10EF1CAC), UINT32_C(0xE30E809C), + UINT32_C(0x2432FF74), UINT32_C(0x3BCB0A54)}, + {UINT32_C(0xB31509E6), UINT32_C(0x2B4B5B97), UINT32_C(0x3E54AF47), + UINT32_C(0x117FE9D7), UINT32_C(0x52F63ACA), UINT32_C(0xE513C0BE), + UINT32_C(0xB1C80A6B), UINT32_C(0x41ED8ADA)}}, + {{UINT32_C(0xE0A79FCD), UINT32_C(0x61A31837), UINT32_C(0x51D3DE38), + UINT32_C(0x8F742B57), UINT32_C(0x41354B55), UINT32_C(0x10635FCD), + UINT32_C(0x946510BE), UINT32_C(0x61F30C61)}, + {UINT32_C(0x6C416DAC), UINT32_C(0x9183D677), UINT32_C(0x345431CB), + UINT32_C(0x391B7B42), UINT32_C(0x7C254A8D), UINT32_C(0xE3D6F084), + UINT32_C(0x19D320D8), UINT32_C(0x777E1F62)}}, + {{UINT32_C(0xF05BD85D), UINT32_C(0x090E633F), UINT32_C(0x240392ED), + UINT32_C(0x546C41A0), UINT32_C(0x9F4139CA), UINT32_C(0x6BBCF15D), + UINT32_C(0x7FFDA5DA), UINT32_C(0x73F5B657)}, + {UINT32_C(0xE0622A57), UINT32_C(0xBC04E353), UINT32_C(0x6E6414F4), + UINT32_C(0xCBD8F01E), UINT32_C(0x8C3C0CC5), UINT32_C(0x53377C0B), + UINT32_C(0xE0A14548), UINT32_C(0x6D302331)}}, + {{UINT32_C(0x3D6D456E), UINT32_C(0x235487F8), UINT32_C(0xB3FDCDCF), + UINT32_C(0xBD92203D), UINT32_C(0xCFFDA977), UINT32_C(0x15B13D60), + UINT32_C(0x31A1C4B5), UINT32_C(0x22DCB487)}, + {UINT32_C(0xC76ED9A2), UINT32_C(0xA367FB4E), UINT32_C(0xC0C86AF4), + UINT32_C(0x1E4F7956), UINT32_C(0x5B012AD7), UINT32_C(0x6F087C49), + UINT32_C(0x4949B444), UINT32_C(0x33437E4A)}}, + {{UINT32_C(0xB7CDDB38), UINT32_C(0x261B44FE), UINT32_C(0x419216AD), + UINT32_C(0xDCE2FE47), UINT32_C(0x9428657B), UINT32_C(0xA4CE17FF), + UINT32_C(0xF8329049), UINT32_C(0x7CE64F48)}, + {UINT32_C(0x7289C114), UINT32_C(0x4CE74211), UINT32_C(0x8C212A23), + UINT32_C(0x0E622409), UINT32_C(0x2096719D), UINT32_C(0xCF75BF45), + UINT32_C(0x7BDC1600), UINT32_C(0x6F553581)}}, + {{UINT32_C(0xB941CBC9), UINT32_C(0xE776AA0C), UINT32_C(0x951AAED3), + UINT32_C(0x16D670E0), UINT32_C(0x4B1EC097), UINT32_C(0x79C019DF), + UINT32_C(0x12266D30), UINT32_C(0x635A66BB)}, + {UINT32_C(0x023AAFD2), UINT32_C(0x030D843E), UINT32_C(0x6466108F), + UINT32_C(0x10FB6157), UINT32_C(0x08D568D5), UINT32_C(0x93774BEC), + UINT32_C(0x04C1EE73), UINT32_C(0x29D27962)}}, + {{UINT32_C(0xE00BBC21), UINT32_C(0x6F0F4C2E), UINT32_C(0xA30AB92F), + UINT32_C(0x9EB34C58), UINT32_C(0xAE34908B), UINT32_C(0x2153D901), + UINT32_C(0x4EDC188F), UINT32_C(0x136A7E1F)}, + {UINT32_C(0x8BC45EE4), UINT32_C(0xF709BF5D), UINT32_C(0x4FAD9A54), + UINT32_C(0xEA6984E4), UINT32_C(0xAF5140EB), UINT32_C(0xFC8E6F8A), + UINT32_C(0x87756E47), UINT32_C(0x25EBF0DE)}}, + {{UINT32_C(0x5B1D4B9F), UINT32_C(0x5C2A9726), UINT32_C(0x68E93FC7), + UINT32_C(0xBE235DFD), UINT32_C(0x471A4EA0), UINT32_C(0x7766BDB9), + UINT32_C(0xD9909CD9), UINT32_C(0x476D17CC)}, + {UINT32_C(0x7B398BC4), UINT32_C(0x4960E5B4), UINT32_C(0x0F58F328), + UINT32_C(0x909D0F17), UINT32_C(0x230EF508), UINT32_C(0x1ABF7E02), + UINT32_C(0xD29239C9), UINT32_C(0x6DE6B3E1)}}, + {{UINT32_C(0x85A6DBE3), UINT32_C(0xCCF0AA28), UINT32_C(0x823C606C), + UINT32_C(0xA5E4B325), UINT32_C(0x15505FC6), UINT32_C(0xADE98B2A), + UINT32_C(0x02E20C3B), UINT32_C(0x4D4E7703)}, + {UINT32_C(0x4730DF64), UINT32_C(0x24196417), UINT32_C(0xA914A59D), + UINT32_C(0x3DD47817), UINT32_C(0xC4FDFD97), UINT32_C(0x4D7A317E), + UINT32_C(0xBE12AA72), UINT32_C(0x3767E545)}}, + {{UINT32_C(0x165C7BF4), UINT32_C(0xA0C2A028), UINT32_C(0x36A0B483), + UINT32_C(0xCD4DA6EA), UINT32_C(0x3AF53195), UINT32_C(0x1E1E6332), + UINT32_C(0x8D77188F), UINT32_C(0x7A025E23)}, + {UINT32_C(0x08D2CEF2), UINT32_C(0xB3CF03B9), UINT32_C(0x25A0AFA6), + UINT32_C(0x8FEE9BB8), UINT32_C(0x88111895), UINT32_C(0x855340E0), + UINT32_C(0x4FB8F8A3), UINT32_C(0x32E3EF01)}}, + }, + { + {{UINT32_C(0xEBF87807), UINT32_C(0x33EBE39D), UINT32_C(0xDBDEFF76), + UINT32_C(0xB048F96C), UINT32_C(0x342A3087), UINT32_C(0xA0496C3C), + UINT32_C(0x50953679), UINT32_C(0x7623E192)}, + {UINT32_C(0x4B932390), UINT32_C(0x12F76711), UINT32_C(0xACECE2F7), + UINT32_C(0xF80851EA), UINT32_C(0xE5B280EA), UINT32_C(0xE447465B), + UINT32_C(0x11115958), UINT32_C(0x0412ADE8)}}, + {{UINT32_C(0xB5EB0DC2), UINT32_C(0x982F1AC8), UINT32_C(0xBBBCC880), + UINT32_C(0x8464E052), UINT32_C(0x01335D53), UINT32_C(0xC927B596), + UINT32_C(0x4DA4D80B), UINT32_C(0x4B0C6F5A)}, + {UINT32_C(0xE04783AF), UINT32_C(0x101E1878), UINT32_C(0x41D8A690), + UINT32_C(0x50458FFC), UINT32_C(0x1B77DFBF), UINT32_C(0x11499D88), + UINT32_C(0x1F77A937), UINT32_C(0x46DC7D22)}}, + {{UINT32_C(0x620E52C0), UINT32_C(0xE9AD22CE), UINT32_C(0x4140F356), + UINT32_C(0x0990D6AA), UINT32_C(0x0CBBEEE5), UINT32_C(0x0F6B2EF7), + UINT32_C(0xEAD414C6), UINT32_C(0x2C67DC80)}, + {UINT32_C(0x23D4CD20), UINT32_C(0xE17182BC), UINT32_C(0xC13DDEA9), + UINT32_C(0xFC8FE3CB), UINT32_C(0x3BABC06D), UINT32_C(0xD1E4A7B8), + UINT32_C(0x71C06DB7), UINT32_C(0x52EA05CC)}}, + {{UINT32_C(0x0D022B5B), UINT32_C(0xF8ABB770), UINT32_C(0x199DC689), + UINT32_C(0x362B8059), UINT32_C(0x26BBDEC8), UINT32_C(0x5D887A4D), + UINT32_C(0xF7FC2A01), UINT32_C(0x7835F183)}, + {UINT32_C(0xDE99DF34), UINT32_C(0xEEDE12F5), UINT32_C(0xA3082301), + UINT32_C(0xBE952638), UINT32_C(0x4C35A162), UINT32_C(0x829FDF80), + UINT32_C(0xC2B9645E), UINT32_C(0x205A2252)}}, + {{UINT32_C(0x1356E14C), UINT32_C(0xDE284DA9), UINT32_C(0xC37415FE), + UINT32_C(0xE40CEFE0), UINT32_C(0x47F6016E), UINT32_C(0x62BE93E9), + UINT32_C(0x5DBFE2F6), UINT32_C(0x2DD98904)}, + {UINT32_C(0x2EBC70F9), UINT32_C(0x195B0E98), UINT32_C(0xF01F4D43), + UINT32_C(0x7E52840D), UINT32_C(0x4B1F6AB4), UINT32_C(0x1AFB1FDF), + UINT32_C(0x20B3E491), UINT32_C(0x050AABB8)}}, + {{UINT32_C(0xC645DAD4), UINT32_C(0xC59E1EDB), UINT32_C(0x565A286D), + UINT32_C(0x5AF6B2DC), UINT32_C(0x13076366), UINT32_C(0xC399A48A), + UINT32_C(0x4AC0E5B9), UINT32_C(0x19F4881F)}, + {UINT32_C(0xCD5AC339), UINT32_C(0xC07D02A1), UINT32_C(0xED628A55), + UINT32_C(0x18FBD088), UINT32_C(0xFFA4788E), UINT32_C(0x2D33C6F4), + UINT32_C(0xCCB832E7), UINT32_C(0x52E9AE42)}}, + {{UINT32_C(0x4E5E934E), UINT32_C(0xA47091AE), UINT32_C(0x91CED3C6), + UINT32_C(0x2542CE13), UINT32_C(0x8FC47857), UINT32_C(0xDDE01FD5), + UINT32_C(0x4304EAA9), UINT32_C(0x6BA6E569)}, + {UINT32_C(0xE24091A9), UINT32_C(0x2FF0278B), UINT32_C(0x782BBCE0), + UINT32_C(0xB895F0AB), UINT32_C(0xAB8B8828), UINT32_C(0xA80CCC97), + UINT32_C(0x68A7D8FE), UINT32_C(0x6A54B961)}}, + {{UINT32_C(0xBAC4581A), UINT32_C(0x15E1F5AD), UINT32_C(0xD4BAA751), + UINT32_C(0x91620EF0), UINT32_C(0xC7273C4D), UINT32_C(0x4E65731F), + UINT32_C(0x7EEE33B5), UINT32_C(0x14B166CB)}, + {UINT32_C(0x3CD06080), UINT32_C(0x7B0EFFA5), UINT32_C(0x8CF95FF9), + UINT32_C(0x4491156A), UINT32_C(0xE2258574), UINT32_C(0xC8C64C39), + UINT32_C(0x13315CE9), UINT32_C(0x3D48DA9D)}}, + {{UINT32_C(0x99866CE5), UINT32_C(0x97A098A3), UINT32_C(0x023A1167), + UINT32_C(0xF4CCDB40), UINT32_C(0xF8094782), UINT32_C(0x4BB32981), + UINT32_C(0xC7D5FD13), UINT32_C(0x7342CC98)}, + {UINT32_C(0x78B99D4E), UINT32_C(0x3C1C5B18), UINT32_C(0xF4762AC9), + UINT32_C(0x1277668F), UINT32_C(0x6AE50E4F), UINT32_C(0x612431D7), + UINT32_C(0x36F9071C), UINT32_C(0x36C174E0)}}, + {{UINT32_C(0x9327BA7F), UINT32_C(0x39194E87), UINT32_C(0x7237FA1A), + UINT32_C(0xC4D251FF), UINT32_C(0x2BA5EB8D), UINT32_C(0x55ED3CD4), + UINT32_C(0xBA590188), UINT32_C(0x0263AF07)}, + {UINT32_C(0xEFA82CF3), UINT32_C(0xB4853127), UINT32_C(0x2B8E761D), + UINT32_C(0x2CC2D220), UINT32_C(0x2722B490), UINT32_C(0x4582B81E), + UINT32_C(0x610AA621), UINT32_C(0x1DA7680A)}}, + {{UINT32_C(0x30D297D4), UINT32_C(0x06A669EE), UINT32_C(0xE133D393), + UINT32_C(0xC336B048), UINT32_C(0x93B7B41B), UINT32_C(0xB733A2C4), + UINT32_C(0xC7A8E721), UINT32_C(0x427CC233)}, + {UINT32_C(0x2867BB00), UINT32_C(0x727C14F1), UINT32_C(0xA736035E), + UINT32_C(0x756F4C7A), UINT32_C(0x26327A22), UINT32_C(0xB72A3EDE), + UINT32_C(0x77F73F28), UINT32_C(0x4AEDE2BB)}}, + {{UINT32_C(0xA7282ED0), UINT32_C(0xC8A3612F), UINT32_C(0xB0150579), + UINT32_C(0xE4AD8B40), UINT32_C(0x0C3FEE4B), UINT32_C(0xAB1DE11D), + UINT32_C(0x33B31F23), UINT32_C(0x613AAD48)}, + {UINT32_C(0x5C91BD21), UINT32_C(0xE74AB856), UINT32_C(0x7953D695), + UINT32_C(0x49917735), UINT32_C(0x1A53D74F), UINT32_C(0x3831EB60), + UINT32_C(0x54DEB1A6), UINT32_C(0x245977A0)}}, + {{UINT32_C(0xFFFC1468), UINT32_C(0x15972E4D), UINT32_C(0x141DC24C), + UINT32_C(0xA758D9CB), UINT32_C(0xED8694C5), UINT32_C(0x5E76FCDF), + UINT32_C(0x069B7A5E), UINT32_C(0x5F9DAF35)}, + {UINT32_C(0x501B5415), UINT32_C(0xFE50FCE4), UINT32_C(0x58CFDE50), + UINT32_C(0x6442CF67), UINT32_C(0x38E5F4D0), UINT32_C(0xA89C6DB4), + UINT32_C(0xF5D4FEFC), UINT32_C(0x21F012DB)}}, + {{UINT32_C(0x98CB9A81), UINT32_C(0x2A1170AD), UINT32_C(0x036C5E45), + UINT32_C(0x934BD9D5), UINT32_C(0xCA5095B1), UINT32_C(0x27DF152E), + UINT32_C(0xCCEEE508), UINT32_C(0x682698DB)}, + {UINT32_C(0xB973FB5F), UINT32_C(0x1F4FE3A2), UINT32_C(0x792C7D4D), + UINT32_C(0xD33CBEBE), UINT32_C(0xE7B33A8F), UINT32_C(0x99D37961), + UINT32_C(0x7B6D015D), UINT32_C(0x46B8993B)}}, + {{UINT32_C(0x6FBAC8F7), UINT32_C(0x93A3809B), UINT32_C(0x97C55DC4), + UINT32_C(0x84861BF0), UINT32_C(0x15BB65E3), UINT32_C(0xA6F89EEA), + UINT32_C(0xA6E531D1), UINT32_C(0x66AE1C5D)}, + {UINT32_C(0xFD83DAEA), UINT32_C(0x643A14FC), UINT32_C(0xC585947B), + UINT32_C(0xA7A46D0D), UINT32_C(0x4FBA1274), UINT32_C(0xFA20CF07), + UINT32_C(0x93578A7D), UINT32_C(0x5999ED7B)}}, + {{UINT32_C(0x78E7C6CE), UINT32_C(0x36C8B6ED), UINT32_C(0x5E325F44), + UINT32_C(0x6D400CA5), UINT32_C(0x20B7AA5C), UINT32_C(0xC6AE09B3), + UINT32_C(0x89EABC17), UINT32_C(0x1AF261C1)}, + {UINT32_C(0xB9E778E4), UINT32_C(0x64D6FFBB), UINT32_C(0x7FC64BEB), + UINT32_C(0x1C9E223E), UINT32_C(0x5D75E6C0), UINT32_C(0x4D68B520), + UINT32_C(0x76677A06), UINT32_C(0x5A72B1D9)}}, + }, + { + {{UINT32_C(0x6F08BB17), UINT32_C(0x62DB6640), UINT32_C(0xAE75BB73), + UINT32_C(0xC34F29DF), UINT32_C(0x7DBD4851), UINT32_C(0xD501293D), + UINT32_C(0xAD1F604B), UINT32_C(0x5EAA94CA)}, + {UINT32_C(0x094408A8), UINT32_C(0x39CFE9D1), UINT32_C(0xE8A476F2), + UINT32_C(0xC0F6544C), UINT32_C(0xA42D7607), UINT32_C(0x9F6308B6), + UINT32_C(0xD727018F), UINT32_C(0x17F82949)}}, + {{UINT32_C(0x9C4C4BD2), UINT32_C(0xC44453CD), UINT32_C(0xEBD0B947), + UINT32_C(0xA895E247), UINT32_C(0xAEBC27F4), UINT32_C(0x0AEB7AFC), + UINT32_C(0xF04ABFAC), UINT32_C(0x2472FD08)}, + {UINT32_C(0x73E6E994), UINT32_C(0x319EC67D), UINT32_C(0x798C5FC0), + UINT32_C(0xD6533E4C), UINT32_C(0x3FB9AA89), UINT32_C(0xF4C3B24D), + UINT32_C(0x0A3B376B), UINT32_C(0x3EC58082)}}, + {{UINT32_C(0x144ACF7A), UINT32_C(0x79732D6F), UINT32_C(0x911342DD), + UINT32_C(0xFDD630C3), UINT32_C(0x4A630649), UINT32_C(0xC577C4B3), + UINT32_C(0xBBA999D6), UINT32_C(0x14956A17)}, + {UINT32_C(0xA435A559), UINT32_C(0x523D3CC8), UINT32_C(0xACDA8861), + UINT32_C(0x488DC690), UINT32_C(0xF051C69A), UINT32_C(0x4CF70928), + UINT32_C(0x955394CB), UINT32_C(0x2D98D573)}}, + {{UINT32_C(0x23A4B840), UINT32_C(0xEDB7BA2A), UINT32_C(0xF6C2D93B), + UINT32_C(0x725EC496), UINT32_C(0x8833BB3F), UINT32_C(0x0C94818B), + UINT32_C(0xB142B12A), UINT32_C(0x51281A31)}, + {UINT32_C(0x659EDA83), UINT32_C(0x2A8A5706), UINT32_C(0x7F9D6877), + UINT32_C(0x3098F750), UINT32_C(0x2171F69F), UINT32_C(0x87AD0FDF), + UINT32_C(0x1A6F2F28), UINT32_C(0x6B7067C3)}}, + {{UINT32_C(0x12B1E36F), UINT32_C(0x3B521074), UINT32_C(0xF81E4733), + UINT32_C(0x727A2432), UINT32_C(0x53F2CBBD), UINT32_C(0xB75A2F35), + UINT32_C(0x54960EB0), UINT32_C(0x46DE9338)}, + {UINT32_C(0xE561D908), UINT32_C(0xAC5344F8), UINT32_C(0x12C67430), + UINT32_C(0x4BD40ECB), UINT32_C(0xEF499F97), UINT32_C(0x1698FD62), + UINT32_C(0x6AE9FBD1), UINT32_C(0x29EBD7AE)}}, + {{UINT32_C(0x1EC8110D), UINT32_C(0x9DEC249B), UINT32_C(0xFD2F5C39), + UINT32_C(0x2D19053A), UINT32_C(0xE01522DF), UINT32_C(0xB1189807), + UINT32_C(0xC1424C77), UINT32_C(0x24A04C16)}, + {UINT32_C(0x24F72226), UINT32_C(0xA4FC7C7D), UINT32_C(0xA8322501), + UINT32_C(0x763405FB), UINT32_C(0x18F015E0), UINT32_C(0xC5443C9A), + UINT32_C(0xC55D6CEA), UINT32_C(0x6DEDA19B)}}, + {{UINT32_C(0x9EAE2FF9), UINT32_C(0x4EF30976), UINT32_C(0x5741B21B), + UINT32_C(0x2549B7F2), UINT32_C(0x3BC23F01), UINT32_C(0x859ACD10), + UINT32_C(0xBF5FB0D7), UINT32_C(0x05C0358F)}, + {UINT32_C(0xFB6AB34C), UINT32_C(0x85E53AA8), UINT32_C(0x8FD2FD20), + UINT32_C(0x8DAAAA69), UINT32_C(0x16096FC9), UINT32_C(0xBE6D4D34), + UINT32_C(0xF8B8B831), UINT32_C(0x27572C88)}}, + {{UINT32_C(0x47D56A25), UINT32_C(0xADB98DC5), UINT32_C(0x8B8E1DC6), + UINT32_C(0x0CC76432), UINT32_C(0xBE48C4A1), UINT32_C(0x032C738E), + UINT32_C(0x94FC9CF0), UINT32_C(0x31372DAD)}, + {UINT32_C(0x78A7DCB2), UINT32_C(0x8E646A0C), UINT32_C(0x6ECD9885), + UINT32_C(0xA32F3E9C), UINT32_C(0x6A3AD963), UINT32_C(0x280BB4AD), + UINT32_C(0x817D4327), UINT32_C(0x7DEE1BC4)}}, + {{UINT32_C(0xF8A7C1E1), UINT32_C(0x1AE6A27B), UINT32_C(0xCBC527C7), + UINT32_C(0x558C652F), UINT32_C(0xA65056F6), UINT32_C(0x4084B56E), + UINT32_C(0x6D4C838B), UINT32_C(0x3FD45459)}, + {UINT32_C(0x56DE792A), UINT32_C(0xF5C15AFD), UINT32_C(0x88959282), + UINT32_C(0xF656FAA4), UINT32_C(0x1C07D63F), UINT32_C(0x7F0D8EF4), + UINT32_C(0xCD841ACC), UINT32_C(0x44EFFF7D)}}, + {{UINT32_C(0x8D3695D8), UINT32_C(0xAC28F2A6), UINT32_C(0x3F91E781), + UINT32_C(0x94959EB8), UINT32_C(0xFEDD6E1F), UINT32_C(0x7693FFF7), + UINT32_C(0xA9A699EF), UINT32_C(0x2512E6E1)}, + {UINT32_C(0x7955FAB7), UINT32_C(0x823400EB), UINT32_C(0x94924C08), + UINT32_C(0xCF109EF9), UINT32_C(0x3A709F32), UINT32_C(0x12E08779), + UINT32_C(0x9CC6484C), UINT32_C(0x187D0413)}}, + {{UINT32_C(0xEBDE477F), UINT32_C(0xD3932AFB), UINT32_C(0x44538D8A), + UINT32_C(0x9D5A5422), UINT32_C(0x166A87AF), UINT32_C(0x40B0B159), + UINT32_C(0x41D5E078), UINT32_C(0x31294B3D)}, + {UINT32_C(0xE8C48222), UINT32_C(0x6C49C853), UINT32_C(0xDCD0D611), + UINT32_C(0x8FBE6620), UINT32_C(0xF611007B), UINT32_C(0x9DDC7EE2), + UINT32_C(0xE6652172), UINT32_C(0x12289A60)}}, + {{UINT32_C(0xDACF80F7), UINT32_C(0x8B85475B), UINT32_C(0x9B5CAEF2), + UINT32_C(0xADBAB353), UINT32_C(0x8D2A7707), UINT32_C(0x7C4090A3), + UINT32_C(0xDAB97830), UINT32_C(0x271FA4F1)}, + {UINT32_C(0x53173E04), UINT32_C(0x141B7252), UINT32_C(0x06D0B127), + UINT32_C(0x4B483D64), UINT32_C(0x063A7AF8), UINT32_C(0x8FD15BCF), + UINT32_C(0xE580F34C), UINT32_C(0x59B19EAF)}}, + {{UINT32_C(0x9C0D79B6), UINT32_C(0xA7EEA8C4), UINT32_C(0xB9185109), + UINT32_C(0x766FA113), UINT32_C(0x4642CC64), UINT32_C(0xB42D74F3), + UINT32_C(0xBB817476), UINT32_C(0x51D0127B)}, + {UINT32_C(0x8AB71448), UINT32_C(0x6DA097F5), UINT32_C(0xF95AD0C7), + UINT32_C(0x145872E5), UINT32_C(0xF1759436), UINT32_C(0xB7E934F3), + UINT32_C(0x3160ED1F), UINT32_C(0x4EA883F9)}}, + {{UINT32_C(0x0CEABAE1), UINT32_C(0x30DC39B7), UINT32_C(0xA606D766), + UINT32_C(0x49EC5EE8), UINT32_C(0x97FC46AF), UINT32_C(0x230E2762), + UINT32_C(0x5BE79B8D), UINT32_C(0x079A531F)}, + {UINT32_C(0xEF08C93F), UINT32_C(0x48253BC2), UINT32_C(0xF124D043), + UINT32_C(0x2D32AF02), UINT32_C(0xAF34D231), UINT32_C(0x85796D0D), + UINT32_C(0x15F8CECD), UINT32_C(0x06A6205C)}}, + {{UINT32_C(0x47B00D1A), UINT32_C(0x1FA77AFD), UINT32_C(0xE48CE97A), + UINT32_C(0x429717B0), UINT32_C(0x57433697), UINT32_C(0x38FEF11D), + UINT32_C(0x7D426687), UINT32_C(0x3E91BED6)}, + {UINT32_C(0x2AB4BFE9), UINT32_C(0x95919BF7), UINT32_C(0x97096B3A), + UINT32_C(0x7A3F33FC), UINT32_C(0x3DD8C82E), UINT32_C(0x0E0BBAC3), + UINT32_C(0xF8EDB675), UINT32_C(0x2CE9EFCB)}}, + {{UINT32_C(0x43D8B81D), UINT32_C(0x2D44E998), UINT32_C(0x6D68A95C), + UINT32_C(0x8ABFF419), UINT32_C(0x3B2A18DD), UINT32_C(0x639000A0), + UINT32_C(0x871E3ED3), UINT32_C(0x7CD15413)}, + {UINT32_C(0x148F0378), UINT32_C(0xC059855B), UINT32_C(0x616B62BF), + UINT32_C(0x50147459), UINT32_C(0x4D461110), UINT32_C(0x53B699AF), + UINT32_C(0xEC29E48D), UINT32_C(0x6A0D0EC7)}}, + }, + { + {{UINT32_C(0x15797F35), UINT32_C(0x51733221), UINT32_C(0x4BBE6644), + UINT32_C(0x2F298214), UINT32_C(0x4A5EF621), UINT32_C(0x7BC8FEC6), + UINT32_C(0x7F472F05), UINT32_C(0x3D2BE785)}, + {UINT32_C(0x2765C427), UINT32_C(0xA1C3A1C9), UINT32_C(0x24155ACF), + UINT32_C(0xBACF08FE), UINT32_C(0x9D229948), UINT32_C(0xA9CC1A17), + UINT32_C(0x27039FD8), UINT32_C(0x1918C97F)}}, + {{UINT32_C(0x7843FF7B), UINT32_C(0x2CF39338), UINT32_C(0x258997F2), + UINT32_C(0x5FCBDE65), UINT32_C(0x165A98A3), UINT32_C(0x3980BF90), + UINT32_C(0xBF9458E5), UINT32_C(0x2E80607D)}, + {UINT32_C(0x7019165C), UINT32_C(0x5F646EB6), UINT32_C(0xDDE34205), + UINT32_C(0xFA091FBE), UINT32_C(0x69267AE3), UINT32_C(0x695348B6), + UINT32_C(0xABC22051), UINT32_C(0x385B0B6A)}}, + {{UINT32_C(0xB537F78C), UINT32_C(0x3CAE0756), UINT32_C(0x8BE30367), + UINT32_C(0x3012A958), UINT32_C(0x981A22C3), UINT32_C(0x32D26C06), + UINT32_C(0x2950E833), UINT32_C(0x7D091FAB)}, + {UINT32_C(0x797ACAAF), UINT32_C(0xD8E1B638), UINT32_C(0x49F2EA10), + UINT32_C(0xE7021C85), UINT32_C(0x17A7AF3B), UINT32_C(0xCA382BC1), + UINT32_C(0xBB809976), UINT32_C(0x08A5A81D)}}, + {{UINT32_C(0x4287BB97), UINT32_C(0x00F499FD), UINT32_C(0xDAA9DAF2), + UINT32_C(0xFB6791CA), UINT32_C(0x057B2B98), UINT32_C(0x9A19E4F3), + UINT32_C(0xC53C0223), UINT32_C(0x6968D2FF)}, + {UINT32_C(0xCE88509C), UINT32_C(0xDC741EF5), UINT32_C(0x306A0570), + UINT32_C(0x38AE355D), UINT32_C(0xC23AF46B), UINT32_C(0xFECF6589), + UINT32_C(0x6AD48836), UINT32_C(0x6C0E6ED1)}}, + {{UINT32_C(0xE363495D), UINT32_C(0x22B68698), UINT32_C(0x39AF2BE3), + UINT32_C(0x120005D0), UINT32_C(0x0BF4BA69), UINT32_C(0xE37B1965), + UINT32_C(0x26E64AE7), UINT32_C(0x3B416E93)}, + {UINT32_C(0xDEAC5C59), UINT32_C(0xFAED5088), UINT32_C(0xEB2518A5), + UINT32_C(0x67436ACC), UINT32_C(0x91FA788D), UINT32_C(0x636B52F8), + UINT32_C(0x655153D1), UINT32_C(0x10B2A57A)}}, + {{UINT32_C(0x833A984C), UINT32_C(0xB18060A7), UINT32_C(0x74833BAD), + UINT32_C(0x7EF83746), UINT32_C(0xC5B3BC88), UINT32_C(0xCBFAF742), + UINT32_C(0xA1A7F135), UINT32_C(0x7981DC36)}, + {UINT32_C(0x5D076280), UINT32_C(0xE70CCAFA), UINT32_C(0x07009D85), + UINT32_C(0xEBA80EB7), UINT32_C(0x73778DE2), UINT32_C(0x7D99D24C), + UINT32_C(0xA7262D50), UINT32_C(0x1EFEE1BB)}}, + {{UINT32_C(0x6A7CAB32), UINT32_C(0xBC47F4A2), UINT32_C(0xDD6E48A3), + UINT32_C(0x53F290A7), UINT32_C(0x92F35F9E), UINT32_C(0x82257A1B), + UINT32_C(0x8BB0AAB0), UINT32_C(0x73D17B31)}, + {UINT32_C(0xC2DFFE96), UINT32_C(0xBBD4522A), UINT32_C(0xE6EB0501), + UINT32_C(0x9C37DAA1), UINT32_C(0x453DB6BE), UINT32_C(0xF4D4D568), + UINT32_C(0x642AD2E4), UINT32_C(0x2868CBF5)}}, + {{UINT32_C(0xABE30C59), UINT32_C(0x40A988E6), UINT32_C(0x93057DEC), + UINT32_C(0x5ADED929), UINT32_C(0xDACD37B0), UINT32_C(0x18FD7E04), + UINT32_C(0x8228ACA5), UINT32_C(0x6E3FB81E)}, + {UINT32_C(0x4104B0C9), UINT32_C(0xFF3EEFE6), UINT32_C(0x31CA120A), + UINT32_C(0xD7DD05E7), UINT32_C(0xD01C1CF8), UINT32_C(0xAFD3CF1C), + UINT32_C(0x831BC4E9), UINT32_C(0x4D0CD264)}}, + {{UINT32_C(0x82CAC14A), UINT32_C(0x2641B321), UINT32_C(0x70990E6C), + UINT32_C(0x34EB1495), UINT32_C(0xA1C74CA6), UINT32_C(0x3E5AF58F), + UINT32_C(0x616B7A2D), UINT32_C(0x11B50821)}, + {UINT32_C(0xC4FA9719), UINT32_C(0x891636E3), UINT32_C(0x107DD719), + UINT32_C(0xAEE84C27), UINT32_C(0xC1872E75), UINT32_C(0xA2B0D83E), + UINT32_C(0x7383069E), UINT32_C(0x7DD62CBC)}}, + {{UINT32_C(0xC81B7E15), UINT32_C(0xEBA4A024), UINT32_C(0x04516070), + UINT32_C(0x1CC37E08), UINT32_C(0xF90CE59D), UINT32_C(0xEF1F0401), + UINT32_C(0xE062E133), UINT32_C(0x3B4259D5)}, + {UINT32_C(0xCF2CA1DD), UINT32_C(0x87A1DBFA), UINT32_C(0x61FD1AFB), + UINT32_C(0xCFBFB15F), UINT32_C(0xECF4C7BA), UINT32_C(0xFBFD9899), + UINT32_C(0x2725FA50), UINT32_C(0x57C84CEE)}}, + {{UINT32_C(0xEFA6E3D0), UINT32_C(0x8B0B7414), UINT32_C(0xB3D04224), + UINT32_C(0xD9725C5E), UINT32_C(0x8A91371E), UINT32_C(0x670E6C50), + UINT32_C(0x9B25BD3B), UINT32_C(0x4D130467)}, + {UINT32_C(0x5CF18D4F), UINT32_C(0x18D77D15), UINT32_C(0x1CA09677), + UINT32_C(0xEF80DC41), UINT32_C(0xB9A05CF9), UINT32_C(0x6F3A961B), + UINT32_C(0x7C1433A4), UINT32_C(0x0BB8A518)}}, + {{UINT32_C(0xB33FCF05), UINT32_C(0xAC0CF52A), UINT32_C(0x1CDC7782), + UINT32_C(0xAD03692F), UINT32_C(0xAA02B77E), UINT32_C(0xB345BAE6), + UINT32_C(0x456FCFA9), UINT32_C(0x05096694)}, + {UINT32_C(0x25D4CF32), UINT32_C(0xA8984448), UINT32_C(0x15184188), + UINT32_C(0xD76393E3), UINT32_C(0xEA069BED), UINT32_C(0x7D4A8C0C), + UINT32_C(0x11E18347), UINT32_C(0x4D22268D)}}, + {{UINT32_C(0x3CB3C0F1), UINT32_C(0xC2A0BB75), UINT32_C(0x8EBA58C6), + UINT32_C(0x61F4EC4C), UINT32_C(0xDFC4A903), UINT32_C(0x5D3F0D44), + UINT32_C(0xF9B6F79A), UINT32_C(0x0B6CE81B)}, + {UINT32_C(0x94E49623), UINT32_C(0xF694A44A), UINT32_C(0x1BDF75E0), + UINT32_C(0xCFCBB7E1), UINT32_C(0xE0337E13), UINT32_C(0x20CEE1BD), + UINT32_C(0xDFF02E18), UINT32_C(0x694EA40B)}}, + {{UINT32_C(0x78D1DC2E), UINT32_C(0xC21BE0FA), UINT32_C(0xED0E49E0), + UINT32_C(0x08B4D9A5), UINT32_C(0x827F0B4C), UINT32_C(0x676731AB), + UINT32_C(0xEBAB5894), UINT32_C(0x674ECC79)}, + {UINT32_C(0x39ABB148), UINT32_C(0xB29BD0D4), UINT32_C(0x2378A63A), + UINT32_C(0x8207A8F8), UINT32_C(0x1E4C29C2), UINT32_C(0xE36A549D), + UINT32_C(0x3F1C255B), UINT32_C(0x380D48DE)}}, + {{UINT32_C(0xE5F2C87E), UINT32_C(0x6AB6F887), UINT32_C(0xA01AEC86), + UINT32_C(0xE92C7345), UINT32_C(0x8660C26F), UINT32_C(0x697F4520), + UINT32_C(0x9B58015B), UINT32_C(0x4F2488E0)}, + {UINT32_C(0xBB41900C), UINT32_C(0xB2410B3E), UINT32_C(0xBE1A8A39), + UINT32_C(0x31267500), UINT32_C(0xB9140554), UINT32_C(0xA7C9997C), + UINT32_C(0x1CD41524), UINT32_C(0x335B1806)}}, + {{UINT32_C(0x14873270), UINT32_C(0xB836FD9F), UINT32_C(0xE3243EC5), + UINT32_C(0x1AE0F512), UINT32_C(0x83B9AB74), UINT32_C(0xA743E304), + UINT32_C(0x3A5758C7), UINT32_C(0x1569C30D)}, + {UINT32_C(0x9E8F9E52), UINT32_C(0x003CEF9A), UINT32_C(0x8C22119E), + UINT32_C(0x557AFB4A), UINT32_C(0xF223A966), UINT32_C(0x66F2487E), + UINT32_C(0xA519378F), UINT32_C(0x7FA00273)}}, + }, + { + {{UINT32_C(0x7B08C1C4), UINT32_C(0x812C024F), UINT32_C(0xADBA8AD9), + UINT32_C(0xC6017986), UINT32_C(0x0601BD82), UINT32_C(0x59C7B16C), + UINT32_C(0x0CFA5622), UINT32_C(0x41B6A45C)}, + {UINT32_C(0x83C1E3E8), UINT32_C(0x353A67D5), UINT32_C(0xC65F5059), + UINT32_C(0x9A83438E), UINT32_C(0x86EEA346), UINT32_C(0x99950377), + UINT32_C(0x330D2570), UINT32_C(0x74E2F4BD)}}, + {{UINT32_C(0xB4A8BDA8), UINT32_C(0xDB8E53C1), UINT32_C(0x2C003C77), + UINT32_C(0xA850047E), UINT32_C(0x1B018831), UINT32_C(0xFFD48A73), + UINT32_C(0x8B325062), UINT32_C(0x24F96CB6)}, + {UINT32_C(0xCD2B821B), UINT32_C(0x3779CA4D), UINT32_C(0xC3159CE7), + UINT32_C(0xC2AFBF6E), UINT32_C(0x10F18DE9), UINT32_C(0x8A580B1A), + UINT32_C(0x8CF75334), UINT32_C(0x37043D0D)}}, + {{UINT32_C(0xECCCF2E8), UINT32_C(0x0451DCDA), UINT32_C(0x752A134F), + UINT32_C(0xCF7A3AD9), UINT32_C(0xFBDAE56C), UINT32_C(0xD5754596), + UINT32_C(0xF4CDCF6A), UINT32_C(0x15237D73)}, + {UINT32_C(0xECA37967), UINT32_C(0x1DF5912C), UINT32_C(0x336CD97E), + UINT32_C(0x60934339), UINT32_C(0x434DDC01), UINT32_C(0xA4E523FE), + UINT32_C(0x79DBE24C), UINT32_C(0x24E81DC6)}}, + {{UINT32_C(0xC83B2B7C), UINT32_C(0x28F0D73B), UINT32_C(0x7B5DE1AA), + UINT32_C(0x45BE220F), UINT32_C(0xB136A877), UINT32_C(0x1B785230), + UINT32_C(0xAEFF115B), UINT32_C(0x5A94122A)}, + {UINT32_C(0x8E598998), UINT32_C(0xEF895F0C), UINT32_C(0xF4C622C3), + UINT32_C(0xCEE32B3E), UINT32_C(0xB256CFD0), UINT32_C(0x2D080B1D), + UINT32_C(0x21075E15), UINT32_C(0x672686D6)}}, + {{UINT32_C(0x9F9F26FE), UINT32_C(0xE85FB575), UINT32_C(0x93A7966E), + UINT32_C(0x1DE57B83), UINT32_C(0xDD8CB696), UINT32_C(0xA9948DE8), + UINT32_C(0x758E685D), UINT32_C(0x226C95A6)}, + {UINT32_C(0x3729C663), UINT32_C(0x38B0753B), UINT32_C(0x410E4884), + UINT32_C(0xD46CA4D9), UINT32_C(0x77516FA4), UINT32_C(0x1D6FA5F9), + UINT32_C(0x696CFAFC), UINT32_C(0x09A0FDB8)}}, + {{UINT32_C(0xCC7F6FD8), UINT32_C(0xD1DAD8E9), UINT32_C(0x022195A2), + UINT32_C(0x7BB9F606), UINT32_C(0x223A9346), UINT32_C(0x1B997396), + UINT32_C(0x88DCFB04), UINT32_C(0x6ACD6F7C)}, + {UINT32_C(0x3AC52F65), UINT32_C(0x9029E5EB), UINT32_C(0x935A39DE), + UINT32_C(0xED1D7A0F), UINT32_C(0x538D8914), UINT32_C(0xF1D58C3A), + UINT32_C(0xB36B8342), UINT32_C(0x19153569)}}, + {{UINT32_C(0xE2502156), UINT32_C(0xFF600354), UINT32_C(0x733DA5EC), + UINT32_C(0xE386A20F), UINT32_C(0x9D24D11D), UINT32_C(0xD6FBCBBB), + UINT32_C(0x0B06C843), UINT32_C(0x0B57498C)}, + {UINT32_C(0x7A834667), UINT32_C(0x98F1FFF8), UINT32_C(0xC7DF05F5), + UINT32_C(0x4AEB8788), UINT32_C(0xC2681DA4), UINT32_C(0x8CFA3B01), + UINT32_C(0x2FA2FAEA), UINT32_C(0x1AECC0E8)}}, + {{UINT32_C(0x94C5CBC5), UINT32_C(0x38278865), UINT32_C(0x041A755A), + UINT32_C(0x9ADA7CAB), UINT32_C(0x8D891640), UINT32_C(0xB38F762A), + UINT32_C(0x00AD88F0), UINT32_C(0x28F6FBB2)}, + {UINT32_C(0x3709CD6D), UINT32_C(0x3F9629E3), UINT32_C(0x4912F483), + UINT32_C(0xD2435A55), UINT32_C(0xDFF5AB69), UINT32_C(0x305BEA64), + UINT32_C(0x663BB0D9), UINT32_C(0x4D29041A)}}, + {{UINT32_C(0xE2FD9338), UINT32_C(0xDC4BC9D4), UINT32_C(0xBA7938FC), + UINT32_C(0x5389390D), UINT32_C(0xF329B218), UINT32_C(0xC42B812D), + UINT32_C(0xFA9F1956), UINT32_C(0x5E809B5E)}, + {UINT32_C(0x523D74C3), UINT32_C(0xE2A89BAA), UINT32_C(0x78CBA7B5), + UINT32_C(0x97CD9FFB), UINT32_C(0x5B07BCD2), UINT32_C(0x25F95301), + UINT32_C(0x2064BB3A), UINT32_C(0x4042C705)}}, + {{UINT32_C(0x28D53BF9), UINT32_C(0xD8B6ADA4), UINT32_C(0xA4210F2D), + UINT32_C(0x5E922CA5), UINT32_C(0xF05A1629), UINT32_C(0x9501F46A), + UINT32_C(0xC6CD71CD), UINT32_C(0x28094E54)}, + {UINT32_C(0x811285AD), UINT32_C(0x8D5484D5), UINT32_C(0x1593EE86), + UINT32_C(0xFB2168F4), UINT32_C(0xAC54A41D), UINT32_C(0x693D3B32), + UINT32_C(0x28A5425C), UINT32_C(0x3DAFEC07)}}, + {{UINT32_C(0xD12837A8), UINT32_C(0x0E4CF0D0), UINT32_C(0xCF5273BB), + UINT32_C(0x19FA2CC9), UINT32_C(0x116A20C4), UINT32_C(0x56346BAE), + UINT32_C(0x0E436A36), UINT32_C(0x4F3597FE)}, + {UINT32_C(0xE8EB1B85), UINT32_C(0x459D3FFB), UINT32_C(0x5AE04130), + UINT32_C(0x7C718672), UINT32_C(0x60302740), UINT32_C(0xA37C2586), + UINT32_C(0x913072D8), UINT32_C(0x2871AF37)}}, + {{UINT32_C(0x8590319D), UINT32_C(0xD77249B7), UINT32_C(0xEB06B813), + UINT32_C(0x73F7A684), UINT32_C(0x71D1D580), UINT32_C(0x4C9DC5B9), + UINT32_C(0x5A50A95B), UINT32_C(0x7C91A9F5)}, + {UINT32_C(0x0475F161), UINT32_C(0x4F8F2E89), UINT32_C(0x538B7F94), + UINT32_C(0xF34EC1DD), UINT32_C(0xD46F2575), UINT32_C(0xB8FF6C65), + UINT32_C(0x64433C80), UINT32_C(0x79A2CE2C)}}, + {{UINT32_C(0x1AEB7039), UINT32_C(0x38448A53), UINT32_C(0x417189EC), + UINT32_C(0xF5EC03F7), UINT32_C(0xEB92FF2B), UINT32_C(0xFA095CA1), + UINT32_C(0xE4FCAEDB), UINT32_C(0x4612F720)}, + {UINT32_C(0xF30AAE0E), UINT32_C(0xC945E966), UINT32_C(0x340A7A1D), + UINT32_C(0xF61CFE85), UINT32_C(0xE42D7920), UINT32_C(0xA2560BC6), + UINT32_C(0xA692E9C7), UINT32_C(0x07D7B321)}}, + {{UINT32_C(0x592C60C5), UINT32_C(0xB9C26307), UINT32_C(0x0F59D966), + UINT32_C(0xCECBC6C3), UINT32_C(0x5459D89E), UINT32_C(0x8BA31FD6), + UINT32_C(0x47C7FAE8), UINT32_C(0x1A4AF6B1)}, + {UINT32_C(0xB431D720), UINT32_C(0x66487766), UINT32_C(0x5108B845), + UINT32_C(0x5D597309), UINT32_C(0xCA8E6E0D), UINT32_C(0xA3B94FD7), + UINT32_C(0x55C6A48D), UINT32_C(0x639519E3)}}, + {{UINT32_C(0x052DC195), UINT32_C(0xAD3EE167), UINT32_C(0x0947816B), + UINT32_C(0x4DF2BFC7), UINT32_C(0xABADBB3C), UINT32_C(0x5D463469), + UINT32_C(0xC33D4F96), UINT32_C(0x6F7AA885)}, + {UINT32_C(0xFE06133C), UINT32_C(0x3DD27536), UINT32_C(0x2796E7ED), + UINT32_C(0x27A557B2), UINT32_C(0x3D314A4F), UINT32_C(0x1117CCB7), + UINT32_C(0x23968946), UINT32_C(0x6F0C0AE0)}}, + {{UINT32_C(0xE2110C00), UINT32_C(0x0A3D4DAE), UINT32_C(0x4C633A23), + UINT32_C(0x0389D3A5), UINT32_C(0x83AEC172), UINT32_C(0xE167BDFA), + UINT32_C(0xFB38E8F1), UINT32_C(0x067070CE)}, + {UINT32_C(0x4DF220C5), UINT32_C(0x41137367), UINT32_C(0x59C39F05), + UINT32_C(0xB255E5D3), UINT32_C(0x043C75B3), UINT32_C(0xE437984E), + UINT32_C(0x6A22994A), UINT32_C(0x01DCD771)}}, + }, + { + {{UINT32_C(0x4C6FDDCF), UINT32_C(0xD2880DF2), UINT32_C(0x8A00D80F), + UINT32_C(0x76A28FF2), UINT32_C(0x0792F82C), UINT32_C(0x257CB1F8), + UINT32_C(0x605703EA), UINT32_C(0x07938ABC)}, + {UINT32_C(0x5F61B0FE), UINT32_C(0xD99F0AC9), UINT32_C(0x8EC15433), + UINT32_C(0x440DC63C), UINT32_C(0x86AB5DDB), UINT32_C(0xD9BDDFF1), + UINT32_C(0x744755EA), UINT32_C(0x3B8875DC)}}, + {{UINT32_C(0x4938C9FB), UINT32_C(0x01D90440), UINT32_C(0x8DB6A890), + UINT32_C(0x900657FD), UINT32_C(0xF60A173A), UINT32_C(0xDCC5068A), + UINT32_C(0x857C7B2A), UINT32_C(0x5F3EB242)}, + {UINT32_C(0xA4F0EB9E), UINT32_C(0x634240BD), UINT32_C(0x44E85C70), + UINT32_C(0xACDDA6C4), UINT32_C(0x0AABE4C5), UINT32_C(0x753F02AB), + UINT32_C(0xC1D034E1), UINT32_C(0x33D89D21)}}, + {{UINT32_C(0x1279B25B), UINT32_C(0x4596B52D), UINT32_C(0xA48014AE), + UINT32_C(0x494669D9), UINT32_C(0x4FD22150), UINT32_C(0x9A26B6FC), + UINT32_C(0xF07D5A3F), UINT32_C(0x394DE0BB)}, + {UINT32_C(0x634C1733), UINT32_C(0x12DFE5A6), UINT32_C(0x1EBC5177), + UINT32_C(0x33EC21D2), UINT32_C(0x527514CC), UINT32_C(0x454B4930), + UINT32_C(0x41405532), UINT32_C(0x7F23BD0F)}}, + {{UINT32_C(0xBAC9DD30), UINT32_C(0xB2879E7F), UINT32_C(0x06CE7672), + UINT32_C(0x259BB1CB), UINT32_C(0xBB97BE10), UINT32_C(0x201DB42E), + UINT32_C(0x2EA35A8E), UINT32_C(0x112D6079)}, + {UINT32_C(0x6B3B9933), UINT32_C(0x7CC756D4), UINT32_C(0x781CE4DD), + UINT32_C(0x4BD24810), UINT32_C(0x8733247E), UINT32_C(0x53CB4E38), + UINT32_C(0x9DA66787), UINT32_C(0x47BD6A30)}}, + {{UINT32_C(0xBA600C8E), UINT32_C(0x8A700953), UINT32_C(0xCF388C0D), + UINT32_C(0xD466F11D), UINT32_C(0xE4A17A8E), UINT32_C(0xD485F341), + UINT32_C(0x234FC16D), UINT32_C(0x63278918)}, + {UINT32_C(0xBB82046D), UINT32_C(0xF4DDA875), UINT32_C(0x2945470A), + UINT32_C(0xD61E4E58), UINT32_C(0x6D0F8976), UINT32_C(0xCDB6C5BD), + UINT32_C(0x10A004A2), UINT32_C(0x44CD9E4D)}}, + {{UINT32_C(0x49C4AA6E), UINT32_C(0x595CD942), UINT32_C(0x3DE400C8), + UINT32_C(0xE5A90136), UINT32_C(0x9DD12D9E), UINT32_C(0x4BCED3BD), + UINT32_C(0x78E3D5E4), UINT32_C(0x3700CF92)}, + {UINT32_C(0x75A32D1A), UINT32_C(0xECFFF498), UINT32_C(0x3C4A54B2), + UINT32_C(0xC28DDE37), UINT32_C(0x993CAE6D), UINT32_C(0x8DC22352), + UINT32_C(0x52ED7019), UINT32_C(0x46CB5408)}}, + {{UINT32_C(0xEA94E7BF), UINT32_C(0x71FFAED0), UINT32_C(0xD5AE6185), + UINT32_C(0xC0817D2C), UINT32_C(0x5CF23687), UINT32_C(0x7B72B8B9), + UINT32_C(0x60A450E1), UINT32_C(0x61DDE599)}, + {UINT32_C(0xD13870E6), UINT32_C(0x17CF0B10), UINT32_C(0x5F2930BB), + UINT32_C(0x7D08E1FB), UINT32_C(0x83807C14), UINT32_C(0x8D0F4F55), + UINT32_C(0x6E6DB701), UINT32_C(0x61EBFC1A)}}, + {{UINT32_C(0x0FCAFE68), UINT32_C(0x247A3F65), UINT32_C(0x7AC2A25E), + UINT32_C(0x57548035), UINT32_C(0x3CD0FE06), UINT32_C(0xB7466CA5), + UINT32_C(0xBCC31AB3), UINT32_C(0x7B0D8B36)}, + {UINT32_C(0xA6D4358C), UINT32_C(0x2FAAF49C), UINT32_C(0x3E9B4E31), + UINT32_C(0xD9E5E2FE), UINT32_C(0xF6086336), UINT32_C(0xA6A859A0), + UINT32_C(0xA9C19F84), UINT32_C(0x0C2A442A)}}, + {{UINT32_C(0x3BC0AD7D), UINT32_C(0x66FEA841), UINT32_C(0x32C9158E), + UINT32_C(0xCD3A546C), UINT32_C(0x8FE1DF7F), UINT32_C(0xACD2EE7F), + UINT32_C(0xEBE9621E), UINT32_C(0x10F58C0A)}, + {UINT32_C(0x478B667D), UINT32_C(0x80047C54), UINT32_C(0x89870DCE), + UINT32_C(0x9EAE5FAA), UINT32_C(0x0520A005), UINT32_C(0xC05BEB33), + UINT32_C(0x352AC891), UINT32_C(0x2CFBC921)}}, + {{UINT32_C(0x632F6D73), UINT32_C(0x6842E6B8), UINT32_C(0x2B9FFAEA), + UINT32_C(0x6F2B5724), UINT32_C(0x9341D2FA), UINT32_C(0x7ACCC982), + UINT32_C(0x88809B65), UINT32_C(0x6DAD9A11)}, + {UINT32_C(0xB6CC2240), UINT32_C(0x3411850C), UINT32_C(0xB64937E1), + UINT32_C(0x8547BCAF), UINT32_C(0x6978F636), UINT32_C(0x49AEDD5F), + UINT32_C(0x85A53D2A), UINT32_C(0x38F59752)}}, + {{UINT32_C(0xF5F5A2D0), UINT32_C(0x5C38EB49), UINT32_C(0xE3BF779C), + UINT32_C(0xE028121B), UINT32_C(0xA783D5E3), UINT32_C(0x649997C8), + UINT32_C(0x2C06CC0F), UINT32_C(0x04DE984A)}, + {UINT32_C(0xA49D6239), UINT32_C(0x52C834B0), UINT32_C(0x628413AC), + UINT32_C(0x070A1B09), UINT32_C(0xA8624A1E), UINT32_C(0x2FBE0CA5), + UINT32_C(0x268D930A), UINT32_C(0x687D93C3)}}, + {{UINT32_C(0x314C47A4), UINT32_C(0xC7CD6805), UINT32_C(0xCE7A9A6D), + UINT32_C(0x8BD0C630), UINT32_C(0x34F727BA), UINT32_C(0xCDB2DAD5), + UINT32_C(0x25DB0189), UINT32_C(0x7814C414)}, + {UINT32_C(0x7DD9CAEE), UINT32_C(0xD7F9C5DC), UINT32_C(0x798690E4), + UINT32_C(0xDA6EACC8), UINT32_C(0x6B675E01), UINT32_C(0x705794E3), + UINT32_C(0x75C5EC38), UINT32_C(0x4A31D714)}}, + {{UINT32_C(0x0519D5F2), UINT32_C(0xC162A3EA), UINT32_C(0x2958FABF), + UINT32_C(0x92146A78), UINT32_C(0x6CB31EB0), UINT32_C(0x1E63CBE4), + UINT32_C(0xFBC5AD0F), UINT32_C(0x77CE5AAD)}, + {UINT32_C(0x32605DC6), UINT32_C(0x3631E470), UINT32_C(0x43413DD3), + UINT32_C(0xC7D1C72F), UINT32_C(0x0DF6B7C9), UINT32_C(0x171A3794), + UINT32_C(0x2B5A08BC), UINT32_C(0x6D711743)}}, + {{UINT32_C(0x509EF0F2), UINT32_C(0xDDC8057D), UINT32_C(0x6CABB486), + UINT32_C(0x05C0B92B), UINT32_C(0x4244D919), UINT32_C(0xD49692B6), + UINT32_C(0xD297F56E), UINT32_C(0x4E181744)}, + {UINT32_C(0xF8CBB897), UINT32_C(0x902F6E73), UINT32_C(0x56D01382), + UINT32_C(0xC3B21FE1), UINT32_C(0x46890F6D), UINT32_C(0xA858ABE1), + UINT32_C(0x506858AF), UINT32_C(0x46B5E2C9)}}, + {{UINT32_C(0xF4DEDE56), UINT32_C(0x30441281), UINT32_C(0xA195AEDE), + UINT32_C(0x13F06FBB), UINT32_C(0x2FDD3BFF), UINT32_C(0xAD5F575B), + UINT32_C(0x32ACB590), UINT32_C(0x680F656D)}, + {UINT32_C(0xE3FAABA7), UINT32_C(0xFB60A8E1), UINT32_C(0x89A14827), + UINT32_C(0xC8FBC1E4), UINT32_C(0xA8616136), UINT32_C(0x5835453F), + UINT32_C(0xE6F4926F), UINT32_C(0x02826A47)}}, + {{UINT32_C(0x74F32180), UINT32_C(0xAF4319A1), UINT32_C(0x6C2C1712), + UINT32_C(0x4C9FDD16), UINT32_C(0xAC7E14A7), UINT32_C(0x59CA4FD4), + UINT32_C(0xABBD4EA4), UINT32_C(0x07AA6E2F)}, + {UINT32_C(0xFE9F121F), UINT32_C(0xB4BD441C), UINT32_C(0xCDA452C5), + UINT32_C(0xDEBB4356), UINT32_C(0x51C9F451), UINT32_C(0xC29F1CFA), + UINT32_C(0x83F598D8), UINT32_C(0x7E1EEF4C)}}, + }, + { + {{UINT32_C(0x5014135F), UINT32_C(0xFC41A321), UINT32_C(0x3EEADF3F), + UINT32_C(0xBE95F9BA), UINT32_C(0x3203A540), UINT32_C(0x054B1212), + UINT32_C(0x3721C745), UINT32_C(0x6DD2FD17)}, + {UINT32_C(0x5A682B59), UINT32_C(0xF86B8578), UINT32_C(0xBE801F7D), + UINT32_C(0x872AA481), UINT32_C(0x14F865F2), UINT32_C(0x64C1600C), + UINT32_C(0x25365449), UINT32_C(0x4BDD47AA)}}, + {{UINT32_C(0xF3A3469F), UINT32_C(0xC96A964C), UINT32_C(0x9F7DA0E3), + UINT32_C(0x273C5C85), UINT32_C(0x4C1A9DCD), UINT32_C(0x88EDC4AC), + UINT32_C(0xB48E4CAA), UINT32_C(0x77623444)}, + {UINT32_C(0x31581FF7), UINT32_C(0x7AF34A9C), UINT32_C(0xBB57F7CC), + UINT32_C(0x23328C37), UINT32_C(0x8B7C86AB), UINT32_C(0xE920D8E9), + UINT32_C(0x9DE6D64C), UINT32_C(0x1C7A7A40)}}, + {{UINT32_C(0x79B9451C), UINT32_C(0x0BCDCD22), UINT32_C(0x58F5241B), + UINT32_C(0x2920B435), UINT32_C(0x9B33EF3D), UINT32_C(0xC24DF715), + UINT32_C(0xF2600224), UINT32_C(0x15252C5B)}, + {UINT32_C(0x9A9160B6), UINT32_C(0xF9C8D8A6), UINT32_C(0xA6B9A6B8), + UINT32_C(0x3186F2F9), UINT32_C(0xA377E98A), UINT32_C(0xC37267DC), + UINT32_C(0x37957189), UINT32_C(0x71319A0A)}}, + {{UINT32_C(0x6BAF6AE5), UINT32_C(0x48E5033F), UINT32_C(0xA460FCE9), + UINT32_C(0x72379B2E), UINT32_C(0xF3D2FA46), UINT32_C(0xFC753D47), + UINT32_C(0xED9EDF72), UINT32_C(0x3B67685A)}, + {UINT32_C(0xF712500F), UINT32_C(0x1608E304), UINT32_C(0x9EE1B42A), + UINT32_C(0xDFA358A4), UINT32_C(0x34B8345C), UINT32_C(0xE7A4B376), + UINT32_C(0x06753C17), UINT32_C(0x7D0E0BF3)}}, + {{UINT32_C(0x8FA62042), UINT32_C(0xA88526A6), UINT32_C(0x393006BD), + UINT32_C(0xD6F32BB5), UINT32_C(0xA5DD5045), UINT32_C(0x14804978), + UINT32_C(0xBF0C5E13), UINT32_C(0x34C02662)}, + {UINT32_C(0x376E3E3D), UINT32_C(0xF9BEEBF9), UINT32_C(0x5923DC61), + UINT32_C(0xFD774041), UINT32_C(0xF9735CF5), UINT32_C(0xFE77BDFA), + UINT32_C(0x4077CFCC), UINT32_C(0x2E476E22)}}, + {{UINT32_C(0x9BA457EF), UINT32_C(0xAB8E52EB), UINT32_C(0x0ABED212), + UINT32_C(0x95F6C5FE), UINT32_C(0x386620FF), UINT32_C(0x7204B1A6), + UINT32_C(0xDD180719), UINT32_C(0x463B7474)}, + {UINT32_C(0xF991D8EE), UINT32_C(0x7F7D27AA), UINT32_C(0x8F67722D), + UINT32_C(0xA7EB1085), UINT32_C(0xE331480A), UINT32_C(0x78D7095B), + UINT32_C(0x66A1C8FA), UINT32_C(0x1DCC8C12)}}, + {{UINT32_C(0x3E6A04C1), UINT32_C(0xD4C39C18), UINT32_C(0xB598ABEE), + UINT32_C(0x73DB1C4D), UINT32_C(0xDF4A7D42), UINT32_C(0x381F9780), + UINT32_C(0x52F860CD), UINT32_C(0x3C19A231)}, + {UINT32_C(0x3EF00740), UINT32_C(0x7EC89934), UINT32_C(0xF37FE0D5), + UINT32_C(0x50867788), UINT32_C(0x43E84D4A), UINT32_C(0x502D870B), + UINT32_C(0x8F744749), UINT32_C(0x5F8A8413)}}, + {{UINT32_C(0xFAECCFE4), UINT32_C(0x1C41AAAD), UINT32_C(0x21461F41), + UINT32_C(0xC324F3B9), UINT32_C(0x4E90C0AB), UINT32_C(0x165ABA3F), + UINT32_C(0x5F88E7D3), UINT32_C(0x2F96CED5)}, + {UINT32_C(0xC0E52768), UINT32_C(0x8CA366FC), UINT32_C(0xA55249A7), + UINT32_C(0x6CCA017C), UINT32_C(0x0F7EBCA2), UINT32_C(0x41ED002F), + UINT32_C(0xA2BAF655), UINT32_C(0x0C33B371)}}, + {{UINT32_C(0x62B928CE), UINT32_C(0x3B94CD9C), UINT32_C(0x39729345), + UINT32_C(0x5BC43A6A), UINT32_C(0xC47D223C), UINT32_C(0x044D0C0F), + UINT32_C(0xB0493367), UINT32_C(0x3B64B38D)}, + {UINT32_C(0xEB74A6C2), UINT32_C(0x82AFB645), UINT32_C(0xD876D71C), + UINT32_C(0x0CB01E22), UINT32_C(0x29C6BCD0), UINT32_C(0xCE2A7DCC), + UINT32_C(0xDFD644EC), UINT32_C(0x4753DE1C)}}, + {{UINT32_C(0x62188792), UINT32_C(0xE69FC903), UINT32_C(0x4914328B), + UINT32_C(0xD91DB9BC), UINT32_C(0x3B68F8D0), UINT32_C(0x44953F4D), + UINT32_C(0x0654B283), UINT32_C(0x2950435D)}, + {UINT32_C(0xBE88F609), UINT32_C(0xE599A4AE), UINT32_C(0x90F5D10E), + UINT32_C(0xF801CD90), UINT32_C(0xD4F1D3D9), UINT32_C(0x0AB78DB1), + UINT32_C(0xC0F71ECB), UINT32_C(0x3ED9666A)}}, + {{UINT32_C(0xE1E73E59), UINT32_C(0x6046A505), UINT32_C(0xF3B5C2E0), + UINT32_C(0x8723A3EC), UINT32_C(0xE22C1555), UINT32_C(0x4BD95BF6), + UINT32_C(0x6DA421E9), UINT32_C(0x50DC33DB)}, + {UINT32_C(0xF1B01327), UINT32_C(0xCFB51E95), UINT32_C(0x199A8765), + UINT32_C(0xE7013F2A), UINT32_C(0x77504B0B), UINT32_C(0xF486FEA7), + UINT32_C(0xF9BA61C6), UINT32_C(0x2AF0F7E9)}}, + {{UINT32_C(0xBE00B841), UINT32_C(0x9DBA1A02), UINT32_C(0x8BED5F08), + UINT32_C(0x488BA455), UINT32_C(0x67F1040E), UINT32_C(0xF6814A64), + UINT32_C(0xDC252336), UINT32_C(0x23AC4762)}, + {UINT32_C(0xF0ED0577), UINT32_C(0x25040F02), UINT32_C(0xC6FFAE9C), + UINT32_C(0x65209B22), UINT32_C(0x485AA0AC), UINT32_C(0xCC441A8C), + UINT32_C(0x59D63A8A), UINT32_C(0x10DFACB6)}}, + {{UINT32_C(0xC7D86B28), UINT32_C(0xBF4A0569), UINT32_C(0xDBDA9DA4), + UINT32_C(0x5CDA94C4), UINT32_C(0x69058335), UINT32_C(0x2235C4CE), + UINT32_C(0xD30C89E2), UINT32_C(0x68FA5E7C)}, + {UINT32_C(0x59097B5B), UINT32_C(0xBB286D39), UINT32_C(0x9A20BA7E), + UINT32_C(0x87DA80BB), UINT32_C(0x56F47E54), UINT32_C(0x85EF865E), + UINT32_C(0x74ABFA5B), UINT32_C(0x5BB87867)}}, + {{UINT32_C(0xDE2FA36E), UINT32_C(0x5DB14FAB), UINT32_C(0x77775F09), + UINT32_C(0x84E3B546), UINT32_C(0xDA951D99), UINT32_C(0xDA734523), + UINT32_C(0x3975026E), UINT32_C(0x04A89097)}, + {UINT32_C(0xC0D12BE1), UINT32_C(0xB5753599), UINT32_C(0xFB864D61), + UINT32_C(0x05670CE9), UINT32_C(0x305BF3CF), UINT32_C(0xB7153502), + UINT32_C(0x2E60AF62), UINT32_C(0x7A9BB357)}}, + {{UINT32_C(0xC7566DA5), UINT32_C(0xF43CDA07), UINT32_C(0x53FA4196), + UINT32_C(0x7FC4C7FC), UINT32_C(0x88DCC9F3), UINT32_C(0x1E20E0ED), + UINT32_C(0xFEE23DDA), UINT32_C(0x7317C7E5)}, + {UINT32_C(0x43017070), UINT32_C(0x0305E13F), UINT32_C(0x6B1CA7C0), + UINT32_C(0x5568410C), UINT32_C(0x104BA029), UINT32_C(0x0E5D55BA), + UINT32_C(0x90FD49F8), UINT32_C(0x118B284E)}}, + {{UINT32_C(0x8F3C6D8A), UINT32_C(0xCA0F7B5B), UINT32_C(0xAF7ECBF6), + UINT32_C(0xAF72DEE0), UINT32_C(0xBB0EC4F1), UINT32_C(0x21C86D85), + UINT32_C(0xF0525D17), UINT32_C(0x0303BC47)}, + {UINT32_C(0x896FFCC0), UINT32_C(0x6ADCAB9F), UINT32_C(0x24E970CA), + UINT32_C(0x65764C45), UINT32_C(0x1C3CA718), UINT32_C(0x0000F14C), + UINT32_C(0xD0292587), UINT32_C(0x01CF1DDB)}}, + }, + { + {{UINT32_C(0x86111EBA), UINT32_C(0xEC4FABCC), UINT32_C(0xBBBB793F), + UINT32_C(0x599C20B6), UINT32_C(0x5657668F), UINT32_C(0xF74AE747), + UINT32_C(0x77BAE892), UINT32_C(0x24AF29B2)}, + {UINT32_C(0xCFAC9D5E), UINT32_C(0x47D6876B), UINT32_C(0x24369E14), + UINT32_C(0xCACF9F50), UINT32_C(0x6F9CAFEF), UINT32_C(0x8A231D74), + UINT32_C(0xB69AAE58), UINT32_C(0x57645A4E)}}, + {{UINT32_C(0x489900F6), UINT32_C(0x440A3B15), UINT32_C(0x961AC3C2), + UINT32_C(0x4B642FD3), UINT32_C(0xC265B973), UINT32_C(0x3D668599), + UINT32_C(0x1139CE78), UINT32_C(0x5FA0E65D)}, + {UINT32_C(0x1FAA710E), UINT32_C(0x3FF15AF4), UINT32_C(0xA9422FC0), + UINT32_C(0xE45D35CE), UINT32_C(0xBD7BB349), UINT32_C(0x56904C06), + UINT32_C(0xE529989D), UINT32_C(0x40C5BEE0)}}, + {{UINT32_C(0x70B20298), UINT32_C(0x8FA46861), UINT32_C(0x4838A136), + UINT32_C(0xEC629538), UINT32_C(0x137F66D6), UINT32_C(0x23ADE0F6), + UINT32_C(0x8EA53E76), UINT32_C(0x1A92E05C)}, + {UINT32_C(0x9D51EB7A), UINT32_C(0x51728E27), UINT32_C(0xC4352E35), + UINT32_C(0xA6B0B758), UINT32_C(0x37A11B35), UINT32_C(0x84C59331), + UINT32_C(0xF66B75C7), UINT32_C(0x3933EFC1)}}, + {{UINT32_C(0x66916D0A), UINT32_C(0x7FB68D62), UINT32_C(0xF28A9B14), + UINT32_C(0x3325D42E), UINT32_C(0x8592B544), UINT32_C(0x75E83A65), + UINT32_C(0x2718628F), UINT32_C(0x524D1CE0)}, + {UINT32_C(0x3C584D76), UINT32_C(0x88A110EA), UINT32_C(0x4AC09AAC), + UINT32_C(0x6B034AC4), UINT32_C(0x84FD3A36), UINT32_C(0x06488635), + UINT32_C(0x87D944E1), UINT32_C(0x516F0EB0)}}, + {{UINT32_C(0xDF11D0BB), UINT32_C(0xE2016DA0), UINT32_C(0xB01F6540), + UINT32_C(0xB34EB471), UINT32_C(0x165CBB24), UINT32_C(0x13E3D330), + UINT32_C(0x7CF7F676), UINT32_C(0x3E755D11)}, + {UINT32_C(0x4FEA9A69), UINT32_C(0xD70CF4F8), UINT32_C(0xD18F4337), + UINT32_C(0x98F59E0A), UINT32_C(0x826344BA), UINT32_C(0x7CCE7CE6), + UINT32_C(0xF4004BBE), UINT32_C(0x30D129D7)}}, + {{UINT32_C(0xBA9CB975), UINT32_C(0x016EF317), UINT32_C(0xE4B3AB4D), + UINT32_C(0x8EEBED19), UINT32_C(0x170A2570), UINT32_C(0x8C597DF0), + UINT32_C(0x5BE6DE70), UINT32_C(0x451538D8)}, + {UINT32_C(0x7A64792F), UINT32_C(0x6C711DAC), UINT32_C(0x217EC8FB), + UINT32_C(0x8F1896EB), UINT32_C(0x7FE18DED), UINT32_C(0x82E9C20B), + UINT32_C(0xB0C5F622), UINT32_C(0x6CEBF4A7)}}, + {{UINT32_C(0x49CCC64F), UINT32_C(0xD9403EB5), UINT32_C(0x28B8A3FD), + UINT32_C(0x807EBD56), UINT32_C(0x0F291E12), UINT32_C(0xF08BB659), + UINT32_C(0x9C3F4432), UINT32_C(0x020D13E3)}, + {UINT32_C(0x752BB92E), UINT32_C(0xDA247896), UINT32_C(0x86EAFA7A), + UINT32_C(0x99541794), UINT32_C(0x274E36AD), UINT32_C(0x213E94BA), + UINT32_C(0x61A71333), UINT32_C(0x4CC0F1FB)}}, + {{UINT32_C(0x06478801), UINT32_C(0x19CC11BD), UINT32_C(0x6D18216A), + UINT32_C(0x1251562A), UINT32_C(0xCDD307FC), UINT32_C(0x7A5F06BB), + UINT32_C(0xFAA9CA2A), UINT32_C(0x4285F6AB)}, + {UINT32_C(0x81258996), UINT32_C(0x5A922831), UINT32_C(0x27B8B018), + UINT32_C(0x8F7CF8EE), UINT32_C(0x7F81A62D), UINT32_C(0xF030BEF3), + UINT32_C(0xCD4FD4E7), UINT32_C(0x417ACBC1)}}, + {{UINT32_C(0xEC64412F), UINT32_C(0xCFB0EA58), UINT32_C(0x6091E621), + UINT32_C(0x9547B64A), UINT32_C(0xFD0C9815), UINT32_C(0x5EA49C7E), + UINT32_C(0xE78B355C), UINT32_C(0x6789055A)}, + {UINT32_C(0x77E9A73A), UINT32_C(0x8D743E98), UINT32_C(0x2EA3FA49), + UINT32_C(0xB032EA6A), UINT32_C(0xCEAAA33A), UINT32_C(0x52EA3801), + UINT32_C(0xF2C3E22B), UINT32_C(0x73B3BB8D)}}, + {{UINT32_C(0x7DB9E301), UINT32_C(0xAA2A1291), UINT32_C(0xA1293DD7), + UINT32_C(0x7F29770F), UINT32_C(0x59683DEC), UINT32_C(0x3135BB21), + UINT32_C(0x7785B505), UINT32_C(0x070F8DF7)}, + {UINT32_C(0x37F53677), UINT32_C(0x8F2158EA), UINT32_C(0xABE1AF1C), + UINT32_C(0x96CC7B9D), UINT32_C(0x6D6477D6), UINT32_C(0x7F977915), + UINT32_C(0xDF370EAF), UINT32_C(0x55DB3922)}}, + {{UINT32_C(0xA9DAC7AE), UINT32_C(0x3028C03A), UINT32_C(0xBAE06BE0), + UINT32_C(0x16F7DF0D), UINT32_C(0x410D57D9), UINT32_C(0x09548398), + UINT32_C(0x1510D51F), UINT32_C(0x5E9C7F43)}, + {UINT32_C(0xD07717B3), UINT32_C(0x033B9BE2), UINT32_C(0xEF08AB91), + UINT32_C(0x0D5D8116), UINT32_C(0xEEEFE88F), UINT32_C(0xD5A172B1), + UINT32_C(0x0996294E), UINT32_C(0x72B1D29F)}}, + {{UINT32_C(0xE4D0965C), UINT32_C(0x9E2B79FB), UINT32_C(0xF49D8B8E), + UINT32_C(0x01F403EE), UINT32_C(0xCEB12D6A), UINT32_C(0xBD4D2D48), + UINT32_C(0x11FB24FB), UINT32_C(0x4D04DD9A)}, + {UINT32_C(0xE5C8D24C), UINT32_C(0x7E613EC5), UINT32_C(0xB918E543), + UINT32_C(0x568BEFE8), UINT32_C(0xE966DF28), UINT32_C(0xD6456D1E), + UINT32_C(0xBAFC71E2), UINT32_C(0x2DDEAD63)}}, + {{UINT32_C(0x448D72E9), UINT32_C(0x1D794F92), UINT32_C(0xE7E62BF2), + UINT32_C(0x3978052E), UINT32_C(0xE2B92538), UINT32_C(0xF6C7A72E), + UINT32_C(0x6EF321F0), UINT32_C(0x43879A88)}, + {UINT32_C(0x34F6FFBC), UINT32_C(0x2A823140), UINT32_C(0x35F4C485), + UINT32_C(0x26F84E51), UINT32_C(0x028BFA7E), UINT32_C(0xDEE65540), + UINT32_C(0x5F033058), UINT32_C(0x56216E9D)}}, + {{UINT32_C(0xCBC772EE), UINT32_C(0x31CA5470), UINT32_C(0x811BB5D0), + UINT32_C(0xD3621E11), UINT32_C(0x70863D71), UINT32_C(0x501C4C47), + UINT32_C(0xD28D6BDD), UINT32_C(0x0564518E)}, + {UINT32_C(0xD35B64B9), UINT32_C(0x60E3B89B), UINT32_C(0x6621A688), + UINT32_C(0xB4F2599A), UINT32_C(0x3B5E116D), UINT32_C(0x1A8C4508), + UINT32_C(0xFABF3125), UINT32_C(0x633EF5CC)}}, + {{UINT32_C(0x5D4FF62A), UINT32_C(0x0DB1D251), UINT32_C(0x4B17D658), + UINT32_C(0x6CBD00EB), UINT32_C(0xFA1DB737), UINT32_C(0x2FA38212), + UINT32_C(0x93A7FA03), UINT32_C(0x07B18CB8)}, + {UINT32_C(0x548E5F82), UINT32_C(0x531E47EF), UINT32_C(0x8276963C), + UINT32_C(0xAE7B94FD), UINT32_C(0x6181A13A), UINT32_C(0x8055D82A), + UINT32_C(0x23B6E361), UINT32_C(0x5725B512)}}, + {{UINT32_C(0x6D8B1FFE), UINT32_C(0xD84C7041), UINT32_C(0x5D994200), + UINT32_C(0xF68ACA0B), UINT32_C(0x6BB908E2), UINT32_C(0x32BF9944), + UINT32_C(0x1AD88DB1), UINT32_C(0x1240A3E6)}, + {UINT32_C(0xA92B6472), UINT32_C(0xB0BE96AA), UINT32_C(0xA1B7726C), + UINT32_C(0xEF88A155), UINT32_C(0x9349F496), UINT32_C(0x000FD9ED), + UINT32_C(0x454A05D9), UINT32_C(0x377DCBAD)}}, + }, + { + {{UINT32_C(0xC04111D2), UINT32_C(0xD0A092CD), UINT32_C(0x338F06D6), + UINT32_C(0x5C43A94C), UINT32_C(0x25E964F3), UINT32_C(0x697B4C26), + UINT32_C(0x7572CCFD), UINT32_C(0x2CD5A059)}, + {UINT32_C(0xB5B523E4), UINT32_C(0xA09FC4D4), UINT32_C(0x4E1E9042), + UINT32_C(0x7D8141E8), UINT32_C(0xD637409E), UINT32_C(0x2462512B), + UINT32_C(0x7CB2CE75), UINT32_C(0x503F032F)}}, + {{UINT32_C(0xBCBF1450), UINT32_C(0xC56F38E3), UINT32_C(0xCF2E5594), + UINT32_C(0x09F4FC77), UINT32_C(0x0FCB653A), UINT32_C(0xF449C3E6), + UINT32_C(0x64A53C65), UINT32_C(0x6A1FE752)}, + {UINT32_C(0x7C039488), UINT32_C(0xFF366FED), UINT32_C(0x8C99A6CB), + UINT32_C(0x23F58BA5), UINT32_C(0x8D67F6D6), UINT32_C(0x4B5546C6), + UINT32_C(0x178B1668), UINT32_C(0x03405C85)}}, + {{UINT32_C(0xC0C86696), UINT32_C(0x969F1B33), UINT32_C(0x13746468), + UINT32_C(0x9346D06C), UINT32_C(0xAE0C6D62), UINT32_C(0x68AED3C8), + UINT32_C(0x74FE63D5), UINT32_C(0x7B3D5361)}, + {UINT32_C(0xC4F4B65D), UINT32_C(0xFEE8416B), UINT32_C(0x554C6D0A), + UINT32_C(0xC79BF488), UINT32_C(0xDC402BB0), UINT32_C(0x191D5D27), + UINT32_C(0xE087EB9F), UINT32_C(0x31B00167)}}, + {{UINT32_C(0xE05D281F), UINT32_C(0xD5FE0979), UINT32_C(0x3485446B), + UINT32_C(0x8373AB50), UINT32_C(0x9223681F), UINT32_C(0xCE5258BA), + UINT32_C(0xA37BF244), UINT32_C(0x5F82843E)}, + {UINT32_C(0xCFC16536), UINT32_C(0x94ED780B), UINT32_C(0xBD477733), + UINT32_C(0x6A9739B3), UINT32_C(0xA04A4195), UINT32_C(0x137D68F2), + UINT32_C(0x0032BFCE), UINT32_C(0x3A0F27E8)}}, + {{UINT32_C(0x358382F9), UINT32_C(0x7EADE421), UINT32_C(0x92E3D912), + UINT32_C(0x490B9CA6), UINT32_C(0xF1AFBC2A), UINT32_C(0x040CE73E), + UINT32_C(0x11AE91BA), UINT32_C(0x5745D473)}, + {UINT32_C(0xCE303B77), UINT32_C(0x625BED61), UINT32_C(0x85B03A1D), + UINT32_C(0x85B2A1EB), UINT32_C(0x3D7C02E0), UINT32_C(0x764F62E4), + UINT32_C(0xA7AF6DDE), UINT32_C(0x22C2D16F)}}, + {{UINT32_C(0xD19377BE), UINT32_C(0x5B985DE6), UINT32_C(0xD8E43A10), + UINT32_C(0x0AF85A06), UINT32_C(0x0519F4C6), UINT32_C(0x1465E504), + UINT32_C(0xE3E20BA3), UINT32_C(0x5DA01665)}, + {UINT32_C(0x675D9E2A), UINT32_C(0xCD9B8E9B), UINT32_C(0x6448A2CD), + UINT32_C(0x4C77E1AD), UINT32_C(0x1E5D4465), UINT32_C(0xD6094BAD), + UINT32_C(0xC50DB788), UINT32_C(0x4C352951)}}, + {{UINT32_C(0xEE5AB903), UINT32_C(0x42581152), UINT32_C(0x63311418), + UINT32_C(0xDAD2DBC9), UINT32_C(0xB885E56A), UINT32_C(0xBCA4F70B), + UINT32_C(0xB94E0876), UINT32_C(0x1F5DD363)}, + {UINT32_C(0x3FFF479E), UINT32_C(0xF9AD5D04), UINT32_C(0xFE06AD2B), + UINT32_C(0xEF1176E5), UINT32_C(0x216F77AF), UINT32_C(0x46ACB00A), + UINT32_C(0x857C4F78), UINT32_C(0x709CF4EB)}}, + {{UINT32_C(0xD0D2FF1C), UINT32_C(0x70CD666E), UINT32_C(0xE7EFE4AD), + UINT32_C(0x4BAD4A6A), UINT32_C(0x0FA72024), UINT32_C(0xB43F6C2D), + UINT32_C(0xE90C0617), UINT32_C(0x0D78F8E2)}, + {UINT32_C(0xF80DCAA7), UINT32_C(0x543B9662), UINT32_C(0xF28ADFAF), + UINT32_C(0xB02FB3BC), UINT32_C(0xC51C54C3), UINT32_C(0x26C17651), + UINT32_C(0x3D648D88), UINT32_C(0x0815F637)}}, + {{UINT32_C(0xAEA98FA6), UINT32_C(0xAC4F43C1), UINT32_C(0xAC4398C6), + UINT32_C(0x2D223416), UINT32_C(0xDA5C5070), UINT32_C(0x48B2EEAD), + UINT32_C(0xBE666F70), UINT32_C(0x632B65F1)}, + {UINT32_C(0x952021BE), UINT32_C(0x971D3BC0), UINT32_C(0x23B2C578), + UINT32_C(0x9FDCB7E0), UINT32_C(0x3CC21796), UINT32_C(0x476D4715), + UINT32_C(0x95832A94), UINT32_C(0x4015565F)}}, + {{UINT32_C(0x13CA725C), UINT32_C(0x8913AFAC), UINT32_C(0xDC18F0D9), + UINT32_C(0xA56DC461), UINT32_C(0x10F3AAFE), UINT32_C(0xAC3AC720), + UINT32_C(0xC628D69C), UINT32_C(0x5D75567E)}, + {UINT32_C(0xEEEA4BF7), UINT32_C(0xC11BE9DC), UINT32_C(0x1C193BD5), + UINT32_C(0xAD97FBCA), UINT32_C(0xC58123E8), UINT32_C(0xD1EC5BCE), + UINT32_C(0x9C73D4E5), UINT32_C(0x0F6DF930)}}, + {{UINT32_C(0xFD759FFD), UINT32_C(0xE80A0ADA), UINT32_C(0x239CAFC0), + UINT32_C(0xE52DF94B), UINT32_C(0xFE7A43E9), UINT32_C(0x59640161), + UINT32_C(0xDB1A38F0), UINT32_C(0x7A96995C)}, + {UINT32_C(0x7CD5011B), UINT32_C(0xA46A1503), UINT32_C(0xAC0E9689), + UINT32_C(0x75CFB637), UINT32_C(0x97AAD2BA), UINT32_C(0x27B740CA), + UINT32_C(0xEAD2F776), UINT32_C(0x64A0748B)}}, + {{UINT32_C(0x0625B3B1), UINT32_C(0xB67E5BB5), UINT32_C(0xC66D2832), + UINT32_C(0x2FE19FFB), UINT32_C(0xF70C07CF), UINT32_C(0x47815666), + UINT32_C(0xA43E52AB), UINT32_C(0x5A1AA24A)}, + {UINT32_C(0x4CAC0E66), UINT32_C(0x04EE11F8), UINT32_C(0x3A3A4836), + UINT32_C(0x51E51583), UINT32_C(0xB44F6DEC), UINT32_C(0x46755F49), + UINT32_C(0xC1E9B282), UINT32_C(0x6388408B)}}, + {{UINT32_C(0x9DE7A6A7), UINT32_C(0xD47AA9A6), UINT32_C(0x189BC9D2), + UINT32_C(0xEC94AD9B), UINT32_C(0x8EC0E950), UINT32_C(0xFA89099D), + UINT32_C(0x9F64D27F), UINT32_C(0x1B9FC206)}, + {UINT32_C(0x0B729DE1), UINT32_C(0x76572484), UINT32_C(0x4BE22EB8), + UINT32_C(0xFE9E8E71), UINT32_C(0xF9DB5942), UINT32_C(0x910F0456), + UINT32_C(0xC617D82B), UINT32_C(0x4D018459)}}, + {{UINT32_C(0xF5516C6F), UINT32_C(0xB082B58A), UINT32_C(0x567A8CF5), + UINT32_C(0xFFBA0E73), UINT32_C(0x8A6DD4A0), UINT32_C(0x08FF64CE), + UINT32_C(0x69A9F66A), UINT32_C(0x6CF3C89C)}, + {UINT32_C(0x62FEB0A7), UINT32_C(0x356782BA), UINT32_C(0x3E2907F9), + UINT32_C(0x1A18720D), UINT32_C(0x0BBD9D92), UINT32_C(0xF840FFA3), + UINT32_C(0x20926421), UINT32_C(0x41D9EECA)}}, + {{UINT32_C(0xB6B08321), UINT32_C(0xCF2E8AAC), UINT32_C(0x010D91C0), + UINT32_C(0xC76FBE12), UINT32_C(0x68E35E02), UINT32_C(0x54924750), + UINT32_C(0x9AEE00F8), UINT32_C(0x74DBA2E1)}, + {UINT32_C(0xC5504E82), UINT32_C(0x94C70D6D), UINT32_C(0xEA1770F7), + UINT32_C(0x0BDF415F), UINT32_C(0x3CA6DB0A), UINT32_C(0xDA45B700), + UINT32_C(0xE133A980), UINT32_C(0x473C6A04)}}, + {{UINT32_C(0x1E188071), UINT32_C(0xD1FF6C1E), UINT32_C(0xEA3F16F8), + UINT32_C(0x621A7D3C), UINT32_C(0x6A160F47), UINT32_C(0x60467307), + UINT32_C(0x32DC84EE), UINT32_C(0x37CA7D3D)}, + {UINT32_C(0x67DDFDB5), UINT32_C(0x54F5F7F6), UINT32_C(0x921BA04B), + UINT32_C(0x3A8482F9), UINT32_C(0x1A28E238), UINT32_C(0x842F4950), + UINT32_C(0x7214FAFD), UINT32_C(0x3A4DC917)}}, + }, + { + {{UINT32_C(0xEEA25E82), UINT32_C(0xEDD8360C), UINT32_C(0xFB7B7ED0), + UINT32_C(0x3DB6D933), UINT32_C(0xABF15199), UINT32_C(0x882F3C0B), + UINT32_C(0x516E349D), UINT32_C(0x228664A2)}, + {UINT32_C(0xE88173DF), UINT32_C(0x96E6DCF7), UINT32_C(0xD7EC0BC3), + UINT32_C(0x382C8D3B), UINT32_C(0x6FA5FA58), UINT32_C(0xFBFF6D21), + UINT32_C(0x2F41C959), UINT32_C(0x78003980)}}, + {{UINT32_C(0x9D9ACF9C), UINT32_C(0x713BA43B), UINT32_C(0x94876559), + UINT32_C(0xF59A252D), UINT32_C(0x437B8ED5), UINT32_C(0x8B310954), + UINT32_C(0xE474E98E), UINT32_C(0x76A83790)}, + {UINT32_C(0xF6040B05), UINT32_C(0x84C1386A), UINT32_C(0xBF3D8189), + UINT32_C(0x69FA9F43), UINT32_C(0xA98D4866), UINT32_C(0x5584164C), + UINT32_C(0x3B9045D0), UINT32_C(0x6C89CE1D)}}, + {{UINT32_C(0xB522FB28), UINT32_C(0xD6EF7540), UINT32_C(0xBB28D745), + UINT32_C(0xDB561B56), UINT32_C(0xEFA58B87), UINT32_C(0xC9F7543E), + UINT32_C(0xE9062979), UINT32_C(0x5F02A23B)}, + {UINT32_C(0x6809D624), UINT32_C(0xFD3C0C19), UINT32_C(0xA92EB229), + UINT32_C(0x94481554), UINT32_C(0xF5147EFB), UINT32_C(0x72D8EC53), + UINT32_C(0x0D1BA626), UINT32_C(0x14302661)}}, + {{UINT32_C(0x89020800), UINT32_C(0x0B35BD59), UINT32_C(0x430D7DEB), + UINT32_C(0x3C6F1527), UINT32_C(0x2FFFA0E0), UINT32_C(0x9BEB3C8E), + UINT32_C(0xAFD09A19), UINT32_C(0x7E181B78)}, + {UINT32_C(0x3B2F0B49), UINT32_C(0xE82FD957), UINT32_C(0x0BC0F9DA), + UINT32_C(0x4C9461B1), UINT32_C(0x2B1C8B85), UINT32_C(0x87D78C41), + UINT32_C(0xC1F5BDA1), UINT32_C(0x775BED20)}}, + {{UINT32_C(0x16350593), UINT32_C(0x883AE89B), UINT32_C(0x0C19FEC8), + UINT32_C(0x85D429CB), UINT32_C(0x5742C36D), UINT32_C(0x5938BDEC), + UINT32_C(0xDA8A21B7), UINT32_C(0x2DDBC7EB)}, + {UINT32_C(0x07A2E700), UINT32_C(0xA249BDE4), UINT32_C(0xE8BD6215), + UINT32_C(0x42A3897C), UINT32_C(0x732FF181), UINT32_C(0x87F30BA7), + UINT32_C(0x1B912C57), UINT32_C(0x5385D709)}}, + {{UINT32_C(0x288041F5), UINT32_C(0x2B5C555B), UINT32_C(0x1F425866), + UINT32_C(0xD3D90040), UINT32_C(0x02E0FA71), UINT32_C(0x37E40CD2), + UINT32_C(0x3A386038), UINT32_C(0x08B37F26)}, + {UINT32_C(0x5DE1ED78), UINT32_C(0x165BD7FB), UINT32_C(0x0829ECC9), + UINT32_C(0x22949E81), UINT32_C(0xBCE3D01F), UINT32_C(0xBB8705CC), + UINT32_C(0x1D233CDF), UINT32_C(0x7961BE85)}}, + {{UINT32_C(0x7659B477), UINT32_C(0x5D3DBC6B), UINT32_C(0x50EF08EB), + UINT32_C(0xFD865779), UINT32_C(0xF34EA1A5), UINT32_C(0x502729E8), + UINT32_C(0xD2B64602), UINT32_C(0x1548526E)}, + {UINT32_C(0xB91D2675), UINT32_C(0xB13632FD), UINT32_C(0xF7B37397), + UINT32_C(0x09A42003), UINT32_C(0xCCFC4532), UINT32_C(0x37D18F37), + UINT32_C(0x73C7082C), UINT32_C(0x3FAEF63B)}}, + {{UINT32_C(0xE666DB6D), UINT32_C(0x3365445F), UINT32_C(0x339A0076), + UINT32_C(0x9051FFF5), UINT32_C(0x9BD6D01D), UINT32_C(0x6167FB76), + UINT32_C(0xCA087B41), UINT32_C(0x09737137)}, + {UINT32_C(0xB3270BA7), UINT32_C(0xCA2193AE), UINT32_C(0x8F2217B3), + UINT32_C(0xEF0744C2), UINT32_C(0xF0DD10D8), UINT32_C(0x3E030D58), + UINT32_C(0xCCB4F2F9), UINT32_C(0x667246DB)}}, + {{UINT32_C(0x3773EC8C), UINT32_C(0x31F3030E), UINT32_C(0x5AD56010), + UINT32_C(0xAF2B3123), UINT32_C(0xB37E9062), UINT32_C(0xFC118587), + UINT32_C(0x9C2D5406), UINT32_C(0x52840C2C)}, + {UINT32_C(0x6670ACBB), UINT32_C(0xA96D3DFF), UINT32_C(0x772EC6D3), + UINT32_C(0xF469982F), UINT32_C(0xA9DF4C88), UINT32_C(0x5BE20628), + UINT32_C(0x673633BC), UINT32_C(0x59D01479)}}, + {{UINT32_C(0xAFB5083B), UINT32_C(0xC9223750), UINT32_C(0x191C2160), + UINT32_C(0xF1EB451E), UINT32_C(0xA38EC005), UINT32_C(0x0D913794), + UINT32_C(0x83FD1D18), UINT32_C(0x31062E9E)}, + {UINT32_C(0x5F4816AD), UINT32_C(0x070538F5), UINT32_C(0x925F5DA1), + UINT32_C(0x90D4855D), UINT32_C(0x22F455B6), UINT32_C(0xC0BBA87B), + UINT32_C(0xF48D2AE5), UINT32_C(0x517B5F80)}}, + {{UINT32_C(0x3F4FA7CA), UINT32_C(0x0D8B670A), UINT32_C(0x3D114EB2), + UINT32_C(0xE29C8849), UINT32_C(0x916A187E), UINT32_C(0x1823780D), + UINT32_C(0x65EE66A0), UINT32_C(0x6961C483)}, + {UINT32_C(0x62FDC12C), UINT32_C(0x2F6FB20A), UINT32_C(0x0CFDDE0C), + UINT32_C(0x51414E5F), UINT32_C(0xDCA39073), UINT32_C(0x16BD56A7), + UINT32_C(0x648FFD43), UINT32_C(0x0CFE6DAF)}}, + {{UINT32_C(0xAEBA9241), UINT32_C(0x3789F4CA), UINT32_C(0x107777C6), + UINT32_C(0xE8056BC6), UINT32_C(0x3CB20826), UINT32_C(0x6EE564C3), + UINT32_C(0x45448C69), UINT32_C(0x5DF36347)}, + {UINT32_C(0xB22CE624), UINT32_C(0xFD0FA84B), UINT32_C(0xAC753D50), + UINT32_C(0x2AA19672), UINT32_C(0x677CC0D0), UINT32_C(0x29A1464F), + UINT32_C(0x3CEF5493), UINT32_C(0x7C2237B1)}}, + {{UINT32_C(0x24255918), UINT32_C(0x87C2587C), UINT32_C(0x90B35A37), + UINT32_C(0x9AA89A0B), UINT32_C(0x10E7CAEF), UINT32_C(0x9932EB78), + UINT32_C(0xCDE31568), UINT32_C(0x49278F16)}, + {UINT32_C(0x41188ED9), UINT32_C(0xA4D33C61), UINT32_C(0x05AC3A1D), + UINT32_C(0xC587BDE0), UINT32_C(0x7248B5E0), UINT32_C(0x2A5C5ACC), + UINT32_C(0x8510D2CB), UINT32_C(0x60026A1D)}}, + {{UINT32_C(0x6BAF603C), UINT32_C(0xE57CB0C9), UINT32_C(0xAB770AF0), + UINT32_C(0x527F28A6), UINT32_C(0x016F2BC1), UINT32_C(0x2850D8E6), + UINT32_C(0x936DC2EC), UINT32_C(0x0EC2A46C)}, + {UINT32_C(0xD4F23FC2), UINT32_C(0xA0BC5306), UINT32_C(0x53A0130F), + UINT32_C(0x6DBEDA26), UINT32_C(0xEE3314B7), UINT32_C(0xB1D52F87), + UINT32_C(0x6C234CF5), UINT32_C(0x17168B12)}}, + {{UINT32_C(0xDADF17D5), UINT32_C(0x8B8BC181), UINT32_C(0xFAFFA918), + UINT32_C(0x31EC3CAD), UINT32_C(0x274E4658), UINT32_C(0x4611A482), + UINT32_C(0x73D35EAD), UINT32_C(0x5A9E3652)}, + {UINT32_C(0xF4028FC7), UINT32_C(0xBA68825B), UINT32_C(0x62E203F5), + UINT32_C(0x142859D5), UINT32_C(0x1C817A9E), UINT32_C(0xCE516AC4), + UINT32_C(0x57223F8D), UINT32_C(0x42014682)}}, + {{UINT32_C(0xB4B66798), UINT32_C(0x51FBFB2E), UINT32_C(0x0EA9C4EF), + UINT32_C(0x3A3F1591), UINT32_C(0xE8814805), UINT32_C(0x3FD3D026), + UINT32_C(0xB0C8DFD0), UINT32_C(0x3CA531E4)}, + {UINT32_C(0xE585A960), UINT32_C(0x69A6B3F8), UINT32_C(0xBD3F567D), + UINT32_C(0x1627CC77), UINT32_C(0x5DB9CFD0), UINT32_C(0x6F4EF430), + UINT32_C(0x8D02278A), UINT32_C(0x05B56707)}}, + }, + { + {{UINT32_C(0x10B96338), UINT32_C(0x6663F2F3), UINT32_C(0xCE8CA31C), + UINT32_C(0x69373D1F), UINT32_C(0xD67AEC10), UINT32_C(0x3D31C5CF), + UINT32_C(0x16F2547E), UINT32_C(0x2FAF5545)}, + {UINT32_C(0x1EA2EA64), UINT32_C(0xF6E397D5), UINT32_C(0xEEAEBE7A), + UINT32_C(0x2281A0DF), UINT32_C(0xFA2527EC), UINT32_C(0x72E53254), + UINT32_C(0x76432155), UINT32_C(0x660D059A)}}, + {{UINT32_C(0x2C66D937), UINT32_C(0xD3CA8B13), UINT32_C(0xCD2DF849), + UINT32_C(0xC6F34B08), UINT32_C(0xA23A9F73), UINT32_C(0x9AF2C9E3), + UINT32_C(0x702388E9), UINT32_C(0x24D44BD9)}, + {UINT32_C(0xD1B3DA10), UINT32_C(0x8DA4D6A4), UINT32_C(0x40B93B10), + UINT32_C(0xB9FAFBF4), UINT32_C(0xEFCFD2A3), UINT32_C(0xBBE51BB3), + UINT32_C(0x1844581D), UINT32_C(0x68BE0395)}}, + {{UINT32_C(0x0EA1FAE1), UINT32_C(0xDECABD8C), UINT32_C(0xFDFED7C2), + UINT32_C(0xA7499225), UINT32_C(0xFB468B83), UINT32_C(0x08489E35), + UINT32_C(0x43D95F9C), UINT32_C(0x5B689344)}, + {UINT32_C(0x9D2F522E), UINT32_C(0x9FC8364A), UINT32_C(0x3A5D27A4), + UINT32_C(0x114DB31A), UINT32_C(0xE33A9EC8), UINT32_C(0xC6A35992), + UINT32_C(0xDC9ACAF6), UINT32_C(0x6FE9EC3B)}}, + {{UINT32_C(0xDEAFC64C), UINT32_C(0x98AE2D66), UINT32_C(0xABE706B7), + UINT32_C(0x95AAC8EF), UINT32_C(0x223DFA3B), UINT32_C(0xB15A6604), + UINT32_C(0xE24B43CB), UINT32_C(0x77DBC24A)}, + {UINT32_C(0x8542FA2A), UINT32_C(0x65D6F871), UINT32_C(0x5D326A1A), + UINT32_C(0x1093B273), UINT32_C(0xF137AFEF), UINT32_C(0xBA82D607), + UINT32_C(0xB9DEA6A7), UINT32_C(0x502B32E3)}}, + {{UINT32_C(0x885CA6CE), UINT32_C(0x88906BD6), UINT32_C(0x1D36BFEE), + UINT32_C(0x136ADF9A), UINT32_C(0x09AA61E3), UINT32_C(0xF844088C), + UINT32_C(0x51BAC299), UINT32_C(0x4E508EA3)}, + {UINT32_C(0xEB821936), UINT32_C(0x251ACD26), UINT32_C(0x43D90E10), + UINT32_C(0xDF6AD7D5), UINT32_C(0xDE7F14B9), UINT32_C(0xEBCD7046), + UINT32_C(0xAB503259), UINT32_C(0x1DB258B1)}}, + {{UINT32_C(0x90AD5D55), UINT32_C(0x348E3018), UINT32_C(0x7067806A), + UINT32_C(0x0EF6BE73), UINT32_C(0x41627FCC), UINT32_C(0x072C1134), + UINT32_C(0xE904F823), UINT32_C(0x48EE7606)}, + {UINT32_C(0xD9FD5EF3), UINT32_C(0xEE6AB582), UINT32_C(0x17AB50BC), + UINT32_C(0x57765D03), UINT32_C(0xFB7DEC68), UINT32_C(0x1CCFB407), + UINT32_C(0x141DF51D), UINT32_C(0x2E1771C7)}}, + {{UINT32_C(0xA013284B), UINT32_C(0xCBDD6235), UINT32_C(0x20D07125), + UINT32_C(0x4D93FD87), UINT32_C(0xD485418E), UINT32_C(0xB3D055B3), + UINT32_C(0xC67ADD2D), UINT32_C(0x4EFB8763)}, + {UINT32_C(0x1B2DF427), UINT32_C(0xEC369382), UINT32_C(0x64D0DDF4), + UINT32_C(0x25009791), UINT32_C(0x163056C8), UINT32_C(0x9BD42FFC), + UINT32_C(0x5B88BEBA), UINT32_C(0x60527792)}}, + {{UINT32_C(0x9D82DADF), UINT32_C(0x6D5D6A86), UINT32_C(0x7C24A1CA), + UINT32_C(0xC3BA9A16), UINT32_C(0x2E6981CC), UINT32_C(0x838167EC), + UINT32_C(0x7E1E4237), UINT32_C(0x7FB5D857)}, + {UINT32_C(0x86A40BC7), UINT32_C(0x83B2C2FC), UINT32_C(0x6F9AC4FB), + UINT32_C(0x679D2DFC), UINT32_C(0xE45455EF), UINT32_C(0x0B3714CD), + UINT32_C(0x394A7797), UINT32_C(0x1C8D833D)}}, + {{UINT32_C(0x4E641C9D), UINT32_C(0x1FBF8961), UINT32_C(0xD951DFC8), + UINT32_C(0x3330DAB0), UINT32_C(0x051D96DB), UINT32_C(0x9D4EBA4D), + UINT32_C(0x23066924), UINT32_C(0x27C6DBF0)}, + {UINT32_C(0xDA5D1D79), UINT32_C(0xB950C648), UINT32_C(0x5E9CD783), + UINT32_C(0x544D46BA), UINT32_C(0xE69BA3EF), UINT32_C(0xFA77226F), + UINT32_C(0xE4DA8423), UINT32_C(0x0A93D219)}}, + {{UINT32_C(0x5BDCA76B), UINT32_C(0x7C377CC6), UINT32_C(0xDC58D194), + UINT32_C(0x7DF505D7), UINT32_C(0x13E389E1), UINT32_C(0x18A24C0B), + UINT32_C(0x6C3972FD), UINT32_C(0x5E0782DD)}, + {UINT32_C(0x6680FCE1), UINT32_C(0x97AD477E), UINT32_C(0x3CBAB792), + UINT32_C(0x6B07BF22), UINT32_C(0xDC68C9E2), UINT32_C(0xB8DF3C73), + UINT32_C(0xC04B2749), UINT32_C(0x33AB5A4C)}}, + {{UINT32_C(0x7E79B5A7), UINT32_C(0xD151C762), UINT32_C(0xC82C7B8A), + UINT32_C(0xA4356B79), UINT32_C(0x96E0A2E2), UINT32_C(0x931DDDE8), + UINT32_C(0x52C54FDC), UINT32_C(0x40378EB2)}, + {UINT32_C(0x40C24003), UINT32_C(0xA6BBD5E3), UINT32_C(0x65C34FEA), + UINT32_C(0xB4F3246E), UINT32_C(0x9C767A23), UINT32_C(0x780B21ED), + UINT32_C(0x52BD7E83), UINT32_C(0x5F1E95FE)}}, + {{UINT32_C(0xCF39F9C4), UINT32_C(0x4F3453DF), UINT32_C(0xB8CC2CA6), + UINT32_C(0xA3E1CFD1), UINT32_C(0x4B898859), UINT32_C(0xE49BC49C), + UINT32_C(0x6C0BF055), UINT32_C(0x4FFD7BD6)}, + {UINT32_C(0xD139AD1B), UINT32_C(0x7DE7604C), UINT32_C(0x2A3CE8FE), + UINT32_C(0x6973F5EB), UINT32_C(0xF9501ECC), UINT32_C(0xAC66FF97), + UINT32_C(0xA97D46CD), UINT32_C(0x3D96F1E2)}}, + {{UINT32_C(0x6106EB96), UINT32_C(0x70D5A0D0), UINT32_C(0x398C1FD9), + UINT32_C(0x938E038F), UINT32_C(0x1F3A1AA9), UINT32_C(0xE66B7007), + UINT32_C(0xF5BD9308), UINT32_C(0x42BDB264)}, + {UINT32_C(0x5AF84957), UINT32_C(0x4B3FD754), UINT32_C(0x4E27DC6B), + UINT32_C(0x9E3E17FA), UINT32_C(0x51D8560B), UINT32_C(0x384FCACD), + UINT32_C(0xF8068C09), UINT32_C(0x42F00D11)}}, + {{UINT32_C(0x7D5897D5), UINT32_C(0x794C1E6A), UINT32_C(0xDF72DCA0), + UINT32_C(0x4901097F), UINT32_C(0x0B01E4C4), UINT32_C(0xDED5B192), + UINT32_C(0x26DD41E9), UINT32_C(0x364FF582)}, + {UINT32_C(0x32FCA925), UINT32_C(0xA3F92DCC), UINT32_C(0x207AA09A), + UINT32_C(0x8A1FB329), UINT32_C(0xF512AE3A), UINT32_C(0xA9274BD3), + UINT32_C(0xC47B9007), UINT32_C(0x161C82BC)}}, + {{UINT32_C(0x7AE1175F), UINT32_C(0x482ECE3B), UINT32_C(0xBDD5DC6C), + UINT32_C(0x97CAC7E8), UINT32_C(0x9FDA910D), UINT32_C(0x56225309), + UINT32_C(0x9FC206B9), UINT32_C(0x52A9893B)}, + {UINT32_C(0x05BB5ACA), UINT32_C(0xAD9F2A92), UINT32_C(0xA3B65716), + UINT32_C(0xB9EEFB5B), UINT32_C(0x8DB5A8D4), UINT32_C(0xE7BC173B), + UINT32_C(0x399DAE9E), UINT32_C(0x6715EC64)}}, + {{UINT32_C(0x5E41AC75), UINT32_C(0x780796D1), UINT32_C(0x4FB3A0B4), + UINT32_C(0x3E165C78), UINT32_C(0x237103E9), UINT32_C(0x198599BA), + UINT32_C(0xFA7ED86B), UINT32_C(0x2C04C3F5)}, + {UINT32_C(0xAC9356F0), UINT32_C(0x29547DA8), UINT32_C(0x79EADA37), + UINT32_C(0xCB345AB4), UINT32_C(0xA295BF2D), UINT32_C(0x1D15D377), + UINT32_C(0x2FDC8131), UINT32_C(0x10292C9D)}}, + }, + { + {{UINT32_C(0x40E1DC7E), UINT32_C(0xADF3B547), UINT32_C(0x1C345D14), + UINT32_C(0x420CE2DD), UINT32_C(0x21DC5C2D), UINT32_C(0xC08E3CBE), + UINT32_C(0x6F8FCE80), UINT32_C(0x79FDC000)}, + {UINT32_C(0xCB105CE7), UINT32_C(0x23EBDF7F), UINT32_C(0x7C6794A8), + UINT32_C(0x793FC99D), UINT32_C(0x293E3575), UINT32_C(0x4CA3FB21), + UINT32_C(0x7BF73CC8), UINT32_C(0x7FB2ACB9)}}, + {{UINT32_C(0x0FC8FCD4), UINT32_C(0x67DB6C90), UINT32_C(0x7EE3B705), + UINT32_C(0x22A3DF5F), UINT32_C(0xC7B2EDFF), UINT32_C(0xD50EBF8B), + UINT32_C(0x99522FB7), UINT32_C(0x0C701045)}, + {UINT32_C(0xAD4F9044), UINT32_C(0x1420CF02), UINT32_C(0xE5B59451), + UINT32_C(0xD78DBA23), UINT32_C(0x6AEFD853), UINT32_C(0xDFDC1C7F), + UINT32_C(0xDEA1DAAB), UINT32_C(0x560DEE94)}}, + {{UINT32_C(0x2167A78B), UINT32_C(0x0F235513), UINT32_C(0x9F441927), + UINT32_C(0xCF463702), UINT32_C(0xA3D1505C), UINT32_C(0xD0AE2723), + UINT32_C(0xCD9FBFF4), UINT32_C(0x3149D858)}, + {UINT32_C(0xF79240FA), UINT32_C(0x2A73913A), UINT32_C(0x252A958B), + UINT32_C(0xC904A575), UINT32_C(0x78473D97), UINT32_C(0x10D18190), + UINT32_C(0x203BC8C4), UINT32_C(0x42CE7A38)}}, + {{UINT32_C(0xFA59BB8B), UINT32_C(0x1D2AD4F2), UINT32_C(0x79F137DD), + UINT32_C(0x8234964C), UINT32_C(0x5D02679E), UINT32_C(0x00B63A30), + UINT32_C(0x5DD7543D), UINT32_C(0x506C45BE)}, + {UINT32_C(0x776BF80C), UINT32_C(0x4378F900), UINT32_C(0xB312F2BB), + UINT32_C(0x179558B2), UINT32_C(0xEA37C183), UINT32_C(0x5B15368C), + UINT32_C(0xB198E42D), UINT32_C(0x7593B19F)}}, + {{UINT32_C(0xDEFA1F48), UINT32_C(0xED723535), UINT32_C(0x87F96EE5), + UINT32_C(0x0DAFC48B), UINT32_C(0x91B1B52C), UINT32_C(0x0AEFA3BA), + UINT32_C(0xA1ADBEA4), UINT32_C(0x56BA1B33)}, + {UINT32_C(0x30A6C905), UINT32_C(0x8A0B6170), UINT32_C(0xB272D12E), + UINT32_C(0xC5BA3518), UINT32_C(0x4B6643A9), UINT32_C(0x782100CF), + UINT32_C(0x85C5BD2B), UINT32_C(0x12DEE803)}}, + {{UINT32_C(0x78FCADD6), UINT32_C(0xDD07D2D5), UINT32_C(0x3B25C523), + UINT32_C(0x8CB8E8A8), UINT32_C(0x530919CF), UINT32_C(0x25063508), + UINT32_C(0x1E24F7A1), UINT32_C(0x45D3DD54)}, + {UINT32_C(0x49DDAF96), UINT32_C(0x296AE893), UINT32_C(0xACE559F5), + UINT32_C(0x7EF3CDE0), UINT32_C(0x0D36F87B), UINT32_C(0x9CDF22E4), + UINT32_C(0x4AC9A845), UINT32_C(0x19684765)}}, + {{UINT32_C(0xC597B7AE), UINT32_C(0x3955B5AB), UINT32_C(0x3AB49731), + UINT32_C(0x59F3BA05), UINT32_C(0xF525C6C8), UINT32_C(0xBCA5B117), + UINT32_C(0x32050B8D), UINT32_C(0x4969C134)}, + {UINT32_C(0x970E8E49), UINT32_C(0x353183D9), UINT32_C(0xE95300CF), + UINT32_C(0x3D005213), UINT32_C(0x09022378), UINT32_C(0x595F9C8E), + UINT32_C(0x1A445C28), UINT32_C(0x70FA8B47)}}, + {{UINT32_C(0xBADB79EA), UINT32_C(0xECC88EE3), UINT32_C(0xFBD8464E), + UINT32_C(0x5BDAF68C), UINT32_C(0xB4280334), UINT32_C(0x24AF6A4C), + UINT32_C(0x398E5BBE), UINT32_C(0x17A5DE8B)}, + {UINT32_C(0x92999E18), UINT32_C(0x300B6DEB), UINT32_C(0x67DEFC2F), + UINT32_C(0xA0766918), UINT32_C(0xB19F87FF), UINT32_C(0x4E904450), + UINT32_C(0xC2871056), UINT32_C(0x3010AD94)}}, + {{UINT32_C(0x461EFCC3), UINT32_C(0x72E747A1), UINT32_C(0x562F923E), + UINT32_C(0x329EDF18), UINT32_C(0xD081A4E7), UINT32_C(0x65E021D4), + UINT32_C(0xB727B6F4), UINT32_C(0x4B2DBFFF)}, + {UINT32_C(0x9C8505AC), UINT32_C(0x5A597A80), UINT32_C(0x562B82D2), + UINT32_C(0x13486480), UINT32_C(0xCC8234C3), UINT32_C(0x477FD480), + UINT32_C(0x04800C00), UINT32_C(0x6045ABA4)}}, + {{UINT32_C(0x9C541035), UINT32_C(0x3E087439), UINT32_C(0x6D9D8B6A), + UINT32_C(0x389AA76C), UINT32_C(0x36A21299), UINT32_C(0x68FE5E83), + UINT32_C(0x402A32CF), UINT32_C(0x67AC313D)}, + {UINT32_C(0x25501A53), UINT32_C(0x996131D2), UINT32_C(0xA77A85F4), + UINT32_C(0x5C1B89DE), UINT32_C(0xED6702AD), UINT32_C(0xA9822C84), + UINT32_C(0x56609EA0), UINT32_C(0x50F014A4)}}, + {{UINT32_C(0xE5A8E91E), UINT32_C(0xF0F8B4E6), UINT32_C(0x1A2FFEFD), + UINT32_C(0x734CFF08), UINT32_C(0x27BCB163), UINT32_C(0x9724EE0B), + UINT32_C(0x30B8EF68), UINT32_C(0x6AF3808B)}, + {UINT32_C(0x126E88FC), UINT32_C(0xE5B3829F), UINT32_C(0x4EE5FD4B), + UINT32_C(0x0F441EE3), UINT32_C(0xBFEC4D34), UINT32_C(0x534D2F8C), + UINT32_C(0x076E6737), UINT32_C(0x3E1F16DE)}}, + {{UINT32_C(0x4ED36E6A), UINT32_C(0x4DB53E8A), UINT32_C(0x4352B22F), + UINT32_C(0x49A9EFE9), UINT32_C(0x39CF005C), UINT32_C(0x7829605C), + UINT32_C(0xD85DB959), UINT32_C(0x190A8E16)}, + {UINT32_C(0x9B073AB3), UINT32_C(0x69981069), UINT32_C(0x8C141AA1), + UINT32_C(0x8C264B87), UINT32_C(0x603ED47C), UINT32_C(0x7F614282), + UINT32_C(0x9F9B0940), UINT32_C(0x21FD2E7A)}}, + {{UINT32_C(0x1EC6BB3D), UINT32_C(0xC5CA10A0), UINT32_C(0x27A9B02B), + UINT32_C(0x9403E3F5), UINT32_C(0xFB43F790), UINT32_C(0x9D3D186D), + UINT32_C(0x67DC0C00), UINT32_C(0x7855276E)}, + {UINT32_C(0xFFFFB14C), UINT32_C(0x053DBB2A), UINT32_C(0x43ACC0A6), + UINT32_C(0x26746663), UINT32_C(0x7FFC1C68), UINT32_C(0x1EE7A946), + UINT32_C(0x56DBB0DE), UINT32_C(0x14BFAF01)}}, + {{UINT32_C(0x849EA674), UINT32_C(0x11C89A47), UINT32_C(0x94A540E6), + UINT32_C(0x194FAAF0), UINT32_C(0x6050E4C0), UINT32_C(0xE61163F8), + UINT32_C(0xB1A07B76), UINT32_C(0x6939A166)}, + {UINT32_C(0x2EF18325), UINT32_C(0x8166CA8E), UINT32_C(0x30C042E2), + UINT32_C(0x96112E65), UINT32_C(0x5A394C25), UINT32_C(0xA805CAE0), + UINT32_C(0x0392E6BB), UINT32_C(0x45A0DE01)}}, + {{UINT32_C(0xB4FAAA56), UINT32_C(0xB89CEE96), UINT32_C(0x529736DE), + UINT32_C(0x7A7DC8AE), UINT32_C(0xA727FCF7), UINT32_C(0x9158AA49), + UINT32_C(0x1896B9DA), UINT32_C(0x621B8B31)}, + {UINT32_C(0x03BEC74B), UINT32_C(0x875930D6), UINT32_C(0xA7A50309), + UINT32_C(0x1056DB45), UINT32_C(0xB5657B0E), UINT32_C(0xEE713E04), + UINT32_C(0x6FCAD967), UINT32_C(0x2D68155E)}}, + {{UINT32_C(0x65B1E2B3), UINT32_C(0x3BB1E9E3), UINT32_C(0x88425BAB), + UINT32_C(0x2A615670), UINT32_C(0x62F1BA4A), UINT32_C(0x22F4F32F), + UINT32_C(0x88A59642), UINT32_C(0x7B5EC250)}, + {UINT32_C(0x42D30049), UINT32_C(0x7B5BA12A), UINT32_C(0x86995BE6), + UINT32_C(0x4E6AC055), UINT32_C(0x45EC87AC), UINT32_C(0x04431A04), + UINT32_C(0xED94823D), UINT32_C(0x28974ED7)}}, + }, + { + {{UINT32_C(0x12BB5555), UINT32_C(0x59258057), UINT32_C(0xBB7608EE), + UINT32_C(0x03141CD8), UINT32_C(0xEF77714B), UINT32_C(0x84EBDC49), + UINT32_C(0xB5DC1A5F), UINT32_C(0x6A45FC3A)}, + {UINT32_C(0x2FBEEC76), UINT32_C(0x1F6DC205), UINT32_C(0xA920C554), + UINT32_C(0x17EB733B), UINT32_C(0x7A28ACDF), UINT32_C(0xDB022C21), + UINT32_C(0xA9B62BF1), UINT32_C(0x6AF16156)}}, + {{UINT32_C(0x80B472CC), UINT32_C(0x9379D6A8), UINT32_C(0x7BD92F27), + UINT32_C(0x6CB08CB0), UINT32_C(0x147E6E12), UINT32_C(0x19B3C353), + UINT32_C(0x26827839), UINT32_C(0x3C26CB2F)}, + {UINT32_C(0x0CC571E4), UINT32_C(0x98AAC9A7), UINT32_C(0xC3C8FC04), + UINT32_C(0x075D05F2), UINT32_C(0xD79621AC), UINT32_C(0x718B55A0), + UINT32_C(0x5B94B41B), UINT32_C(0x149FEECF)}}, + {{UINT32_C(0x783F9C81), UINT32_C(0x6A150A64), UINT32_C(0x0FB18827), + UINT32_C(0x5950C2DF), UINT32_C(0xF15E3A89), UINT32_C(0xF5D75504), + UINT32_C(0xFCB4406B), UINT32_C(0x5F92F2F7)}, + {UINT32_C(0x6123E858), UINT32_C(0x665F31E7), UINT32_C(0xA95184A3), + UINT32_C(0x4E568EA9), UINT32_C(0x505FF0AD), UINT32_C(0x851EEADC), + UINT32_C(0x542C3EF8), UINT32_C(0x62AD5BA6)}}, + {{UINT32_C(0xC55C23FD), UINT32_C(0x1103859D), UINT32_C(0x695E4E9B), + UINT32_C(0x06AB0BD6), UINT32_C(0xDD734990), UINT32_C(0x2CD00D76), + UINT32_C(0xB06460E4), UINT32_C(0x5D59C693)}, + {UINT32_C(0x1F9C76DA), UINT32_C(0x3BA8F2F0), UINT32_C(0x960F5C0E), + UINT32_C(0x08E4A7EC), UINT32_C(0xE4AAB060), UINT32_C(0x79C82AD9), + UINT32_C(0x0DF95C43), UINT32_C(0x093D322C)}}, + {{UINT32_C(0x0C627547), UINT32_C(0x88AF1258), UINT32_C(0x889A5E12), + UINT32_C(0x81E5F197), UINT32_C(0x7CBD84FD), UINT32_C(0x99E0E191), + UINT32_C(0xDB0B9711), UINT32_C(0x3024BCE8)}, + {UINT32_C(0xDB93B1A2), UINT32_C(0x04075C80), UINT32_C(0x628B0E63), + UINT32_C(0x12F30AF8), UINT32_C(0xEB25A4ED), UINT32_C(0xA3514F26), + UINT32_C(0x7BCD0873), UINT32_C(0x3D42E489)}}, + {{UINT32_C(0x754B236F), UINT32_C(0x0F1C16C6), UINT32_C(0x594F5D3D), + UINT32_C(0x717CE487), UINT32_C(0xAFAD77B1), UINT32_C(0x7679C7DA), + UINT32_C(0x6F3E724C), UINT32_C(0x51AFD014)}, + {UINT32_C(0x3AF6938F), UINT32_C(0xAFC9745C), UINT32_C(0xC4E61CB4), + UINT32_C(0xCA12BFA9), UINT32_C(0x9425CCA7), UINT32_C(0x943B5696), + UINT32_C(0xB6E48A69), UINT32_C(0x5BD3E65E)}}, + {{UINT32_C(0xDEAE74B1), UINT32_C(0x2D23CF78), UINT32_C(0x043BF2F1), + UINT32_C(0xA686767E), UINT32_C(0xE464ADE9), UINT32_C(0x3AFED34D), + UINT32_C(0x5A6AE80B), UINT32_C(0x1E462073)}, + {UINT32_C(0x737F7B66), UINT32_C(0xA86AA408), UINT32_C(0xEAB3B6CE), + UINT32_C(0xD67A0B49), UINT32_C(0x275355F3), UINT32_C(0x6FF3CA4F), + UINT32_C(0x688F99AB), UINT32_C(0x6F385576)}}, + {{UINT32_C(0xFD2F9A72), UINT32_C(0xC9B63343), UINT32_C(0xAC267E8A), + UINT32_C(0xBD0A126D), UINT32_C(0x5D2839B5), UINT32_C(0x818BD5D8), + UINT32_C(0x0BF5AFCE), UINT32_C(0x1BBAB4CE)}, + {UINT32_C(0x4D8B67DE), UINT32_C(0x2827B24A), UINT32_C(0xC34E6642), + UINT32_C(0x841F6BD3), UINT32_C(0x5E4A34D4), UINT32_C(0xE9F5C1C2), + UINT32_C(0xFDA4177C), UINT32_C(0x4E98795C)}}, + {{UINT32_C(0x0763AB04), UINT32_C(0x3C9FF1C2), UINT32_C(0x9832FCFD), + UINT32_C(0x4FC1BE61), UINT32_C(0x8BD0363A), UINT32_C(0x5FA50C38), + UINT32_C(0xF26206BE), UINT32_C(0x14C9BB2F)}, + {UINT32_C(0x1D31880C), UINT32_C(0xAD1A96EB), UINT32_C(0x65DFCF8A), + UINT32_C(0xF0A37BC4), UINT32_C(0x3D048FE4), UINT32_C(0x38962729), + UINT32_C(0x6480B254), UINT32_C(0x017125C0)}}, + {{UINT32_C(0x98D4BAC6), UINT32_C(0x01E819F5), UINT32_C(0x36B99D30), + UINT32_C(0xD3686E04), UINT32_C(0x200A4A9D), UINT32_C(0x0C2876FB), + UINT32_C(0xE65782D5), UINT32_C(0x45D50C2F)}, + {UINT32_C(0x865B7A21), UINT32_C(0xB8316ECE), UINT32_C(0xCC875503), + UINT32_C(0xA3ADB90F), UINT32_C(0x98468FB4), UINT32_C(0xD72E864E), + UINT32_C(0xDED21F40), UINT32_C(0x13BB23FD)}}, + {{UINT32_C(0xC6B96368), UINT32_C(0x653C3C15), UINT32_C(0x2B9C381F), + UINT32_C(0x9A42FC2C), UINT32_C(0x69534D92), UINT32_C(0xF06B41B9), + UINT32_C(0x3FB7BED2), UINT32_C(0x46F7292E)}, + {UINT32_C(0x97D1875E), UINT32_C(0x14A2C420), UINT32_C(0xD3B2DF55), + UINT32_C(0x45DFA824), UINT32_C(0x3F2BA72D), UINT32_C(0x59CB7E59), + UINT32_C(0xD7D96C98), UINT32_C(0x2EEC65C9)}}, + {{UINT32_C(0x49650405), UINT32_C(0x907CD4C8), UINT32_C(0x37E05E06), + UINT32_C(0xFC29320A), UINT32_C(0x09E29619), UINT32_C(0x99B4C1DF), + UINT32_C(0x34DE993F), UINT32_C(0x74E69BF8)}, + {UINT32_C(0x509D9797), UINT32_C(0x62C0F296), UINT32_C(0x5F1EF554), + UINT32_C(0x2E6BD4E6), UINT32_C(0x0D0B71B8), UINT32_C(0xE3050641), + UINT32_C(0x235DDE6C), UINT32_C(0x29DA0C9D)}}, + {{UINT32_C(0x689398C1), UINT32_C(0x3CFBCA4B), UINT32_C(0x40C9DF13), + UINT32_C(0x11E58804), UINT32_C(0xBCDF2489), UINT32_C(0x3923A39B), + UINT32_C(0x387C8089), UINT32_C(0x3805CCC7)}, + {UINT32_C(0x70319AFA), UINT32_C(0xC1B4EB48), UINT32_C(0xCA089604), + UINT32_C(0x0A6A5FA4), UINT32_C(0x73139A20), UINT32_C(0x16ABDE54), + UINT32_C(0x94BD61B5), UINT32_C(0x7C0055E0)}}, + {{UINT32_C(0xCB05A02A), UINT32_C(0xA5AB5CEF), UINT32_C(0x0BFE903B), + UINT32_C(0xC0B4E1B4), UINT32_C(0xEAC9E7E8), UINT32_C(0xBA528329), + UINT32_C(0x0A2456B6), UINT32_C(0x0266C5A7)}, + {UINT32_C(0x5E216EEC), UINT32_C(0x507E9A41), UINT32_C(0xD0F1E440), + UINT32_C(0xFCC06B0A), UINT32_C(0xE5C7B26F), UINT32_C(0x6FAEFC8E), + UINT32_C(0xB02F85C1), UINT32_C(0x4744CF2E)}}, + {{UINT32_C(0x1C291BFC), UINT32_C(0xF5E2B812), UINT32_C(0x2CDCBF7A), + UINT32_C(0xC18E791D), UINT32_C(0x46554345), UINT32_C(0xC386B962), + UINT32_C(0x067518CD), UINT32_C(0x373E00FB)}, + {UINT32_C(0xE950051B), UINT32_C(0xC9BA9DF9), UINT32_C(0xDD6133EE), + UINT32_C(0x182CB132), UINT32_C(0x70A3C71C), UINT32_C(0xD6D7F815), + UINT32_C(0x7FAFE307), UINT32_C(0x44C5AEBC)}}, + {{UINT32_C(0xA9D16080), UINT32_C(0x6C7CE359), UINT32_C(0x1E8B643E), + UINT32_C(0xA874386D), UINT32_C(0x07F48E10), UINT32_C(0xA0648129), + UINT32_C(0x93E4D619), UINT32_C(0x2A402201)}, + {UINT32_C(0xBD383EA6), UINT32_C(0x8B429545), UINT32_C(0xF2880536), + UINT32_C(0xC096D593), UINT32_C(0x20E299B9), UINT32_C(0xB4057D6C), + UINT32_C(0x38A825FA), UINT32_C(0x303962CE)}}, + }, + { + {{UINT32_C(0x1E1D70D0), UINT32_C(0x9E426EBF), UINT32_C(0xB83529CA), + UINT32_C(0x6AEA4DDC), UINT32_C(0x7CC9A07C), UINT32_C(0xF3ECD462), + UINT32_C(0xC364772E), UINT32_C(0x7F255C86)}, + {UINT32_C(0x5613BEF0), UINT32_C(0x0DF212CF), UINT32_C(0x1309F9D0), + UINT32_C(0x771F02A9), UINT32_C(0x805FE1F5), UINT32_C(0xE97BEE39), + UINT32_C(0xD93522B9), UINT32_C(0x54A43430)}}, + {{UINT32_C(0xCDE4EBBE), UINT32_C(0xC01553BD), UINT32_C(0xA02E56C1), + UINT32_C(0xB1928DDC), UINT32_C(0x94A1A417), UINT32_C(0xB91004BA), + UINT32_C(0x56CB9C88), UINT32_C(0x44F74BE6)}, + {UINT32_C(0x921B62E5), UINT32_C(0x6A7E3E9B), UINT32_C(0x5FBF13C4), + UINT32_C(0xF2BF553B), UINT32_C(0x86D55641), UINT32_C(0x51CB776D), + UINT32_C(0x6425A3AD), UINT32_C(0x71826BC5)}}, + {{UINT32_C(0xC6D70EF9), UINT32_C(0xD6D49F90), UINT32_C(0x29EBA0DD), + UINT32_C(0x5BD0DA69), UINT32_C(0x803233EF), UINT32_C(0x0BBA7571), + UINT32_C(0x679A17D5), UINT32_C(0x0EB0959E)}, + {UINT32_C(0xB8A3D6EC), UINT32_C(0x97818DC2), UINT32_C(0xC687EAA2), + UINT32_C(0x09497FB0), UINT32_C(0xA65FA4C0), UINT32_C(0x2E2707EA), + UINT32_C(0x7542F472), UINT32_C(0x6A74D4C6)}}, + {{UINT32_C(0x1EE0BC40), UINT32_C(0x0D193006), UINT32_C(0x6DC98BA8), + UINT32_C(0x7D7BEE19), UINT32_C(0x447C38D2), UINT32_C(0x1AD37C98), + UINT32_C(0xB6B4550A), UINT32_C(0x3E163AE1)}, + {UINT32_C(0x5BC93243), UINT32_C(0x734E36C9), UINT32_C(0x986C35A8), + UINT32_C(0x54E217FD), UINT32_C(0x9E3285E3), UINT32_C(0xF0576FF0), + UINT32_C(0x186EE7EB), UINT32_C(0x65C950C8)}}, + {{UINT32_C(0x2012D277), UINT32_C(0x1AB12C04), UINT32_C(0x83872384), + UINT32_C(0x97CAB84B), UINT32_C(0x1C66FCFD), UINT32_C(0x479C9CF5), + UINT32_C(0xF276933E), UINT32_C(0x70ABC8B4)}, + {UINT32_C(0xBA4D14F0), UINT32_C(0xE6B15BF7), UINT32_C(0x22E2F5D5), + UINT32_C(0xF4060ED3), UINT32_C(0xCDC5462C), UINT32_C(0xA53F3CA0), + UINT32_C(0xC6FC3854), UINT32_C(0x593219D4)}}, + {{UINT32_C(0x72B6F8A1), UINT32_C(0x9DE69934), UINT32_C(0x19E16B3F), + UINT32_C(0xECABAEEE), UINT32_C(0xEDA68D7B), UINT32_C(0x0B537CA5), + UINT32_C(0xD3CE55B7), UINT32_C(0x744628BD)}, + {UINT32_C(0x98A95308), UINT32_C(0x3A5B2D8E), UINT32_C(0x6758C6C8), + UINT32_C(0x74D0CEF1), UINT32_C(0xDA204834), UINT32_C(0x7538198A), + UINT32_C(0xA644E880), UINT32_C(0x1E166AAA)}}, + {{UINT32_C(0x4674ACF0), UINT32_C(0xE76EE712), UINT32_C(0xDF9DFB4C), + UINT32_C(0x40A6F6DE), UINT32_C(0x40C65721), UINT32_C(0x91B0034C), + UINT32_C(0xF8E0F5E5), UINT32_C(0x54FE8B8B)}, + {UINT32_C(0x75891895), UINT32_C(0x6322CA0F), UINT32_C(0x7D20C522), + UINT32_C(0x3D1C821E), UINT32_C(0x08043786), UINT32_C(0x1691407F), + UINT32_C(0x14847D58), UINT32_C(0x02C30838)}}, + {{UINT32_C(0xB8F0C372), UINT32_C(0x57DEF069), UINT32_C(0x0D5ABF2C), + UINT32_C(0x50375DC3), UINT32_C(0x75EDFBC9), UINT32_C(0x22903814), + UINT32_C(0xAE37695A), UINT32_C(0x56E39BD7)}, + {UINT32_C(0x463D13F2), UINT32_C(0xAB74B187), UINT32_C(0x3CDE8886), + UINT32_C(0xC50CB8A2), UINT32_C(0xB35F7D59), UINT32_C(0x1EFBD1CF), + UINT32_C(0x1057AE42), UINT32_C(0x1296C482)}}, + {{UINT32_C(0xC347E3FB), UINT32_C(0xA350B57B), UINT32_C(0xADF65129), + UINT32_C(0x4312EB75), UINT32_C(0x7F9A6C9E), UINT32_C(0xD9A7E2F4), + UINT32_C(0x9BFDCB4D), UINT32_C(0x5493AF7B)}, + {UINT32_C(0x9AC0E58E), UINT32_C(0x90A443DD), UINT32_C(0xC6F3BEEF), + UINT32_C(0x9777D58A), UINT32_C(0x965EC900), UINT32_C(0x12F00913), + UINT32_C(0x480126DA), UINT32_C(0x2F6C5B59)}}, + {{UINT32_C(0xBAD8C051), UINT32_C(0x70B907FC), UINT32_C(0xD3B4F608), + UINT32_C(0x54492D6A), UINT32_C(0x2E096D9F), UINT32_C(0xE3B46F1B), + UINT32_C(0x747D472A), UINT32_C(0x522AD6D1)}, + {UINT32_C(0x02DAB5E5), UINT32_C(0x8FCD1616), UINT32_C(0x357B1C85), + UINT32_C(0xD3BA292F), UINT32_C(0x2704F072), UINT32_C(0xA6DB50CD), + UINT32_C(0x8341AA73), UINT32_C(0x63488DDF)}}, + {{UINT32_C(0x0FE2AAAB), UINT32_C(0x99100A3D), UINT32_C(0x8EA44560), + UINT32_C(0x7D30C4E9), UINT32_C(0x2B4C776D), UINT32_C(0xBA458C67), + UINT32_C(0xBBA4D85E), UINT32_C(0x2EC11420)}, + {UINT32_C(0x7A7AEC55), UINT32_C(0xB1D9FBA2), UINT32_C(0x7665AAE5), + UINT32_C(0x432AB2AA), UINT32_C(0xF3BC7043), UINT32_C(0xD2755948), + UINT32_C(0x82510EAD), UINT32_C(0x2FC331BB)}}, + {{UINT32_C(0x46253DB1), UINT32_C(0xAAF11CF9), UINT32_C(0xB0DF307C), + UINT32_C(0xEB025AED), UINT32_C(0x7A82ADEE), UINT32_C(0xCB7C22A5), + UINT32_C(0x9C5FA97B), UINT32_C(0x7316C390)}, + {UINT32_C(0xF518067C), UINT32_C(0x91620554), UINT32_C(0x3C96A804), + UINT32_C(0x20A438AE), UINT32_C(0x5B0C090C), UINT32_C(0xC4F9DCDF), + UINT32_C(0x6E5C1B45), UINT32_C(0x77C512DB)}}, + {{UINT32_C(0xFDD09EDE), UINT32_C(0xC981E682), UINT32_C(0xBBB3F57D), + UINT32_C(0xC3EB36B7), UINT32_C(0xD12BF450), UINT32_C(0xA07369C6), + UINT32_C(0xCE017845), UINT32_C(0x16627566)}, + {UINT32_C(0x9494AF62), UINT32_C(0xFD8DEC90), UINT32_C(0x53FD4B22), + UINT32_C(0x7E793096), UINT32_C(0xC8AAEAE9), UINT32_C(0x21B8E665), + UINT32_C(0x18BC33C0), UINT32_C(0x526FA318)}}, + {{UINT32_C(0x853A2647), UINT32_C(0xF55D32BF), UINT32_C(0xCDAEE8FE), + UINT32_C(0xD873ED6C), UINT32_C(0x80E52622), UINT32_C(0xA3579E2B), + UINT32_C(0x33D16FE8), UINT32_C(0x03871ABA)}, + {UINT32_C(0x69925EDF), UINT32_C(0x714804AC), UINT32_C(0xF2B964FF), + UINT32_C(0x0340755F), UINT32_C(0xDA0D1A07), UINT32_C(0x93830F98), + UINT32_C(0xF7FB1E16), UINT32_C(0x2CAB201E)}}, + {{UINT32_C(0x22A8AF77), UINT32_C(0x26DE3A3A), UINT32_C(0xB45BA630), + UINT32_C(0x0E77C3DC), UINT32_C(0xFC86E7D1), UINT32_C(0x34F00017), + UINT32_C(0x1B62F7F2), UINT32_C(0x796ABE2F)}, + {UINT32_C(0x1663B5B1), UINT32_C(0x9FA09277), UINT32_C(0x9B2FB9AC), + UINT32_C(0xFFFDC93F), UINT32_C(0x6B340D75), UINT32_C(0x03AECD1A), + UINT32_C(0x314DCCEA), UINT32_C(0x5D55A168)}}, + {{UINT32_C(0x747DBD0C), UINT32_C(0x678AEF02), UINT32_C(0xD47A6C09), + UINT32_C(0xF0D47C1C), UINT32_C(0x3FDD1681), UINT32_C(0x6C2AC72F), + UINT32_C(0x6D789D3A), UINT32_C(0x750E7064)}, + {UINT32_C(0xAEBEDD58), UINT32_C(0x3F970AFE), UINT32_C(0xE3540951), + UINT32_C(0x6BBA7956), UINT32_C(0x3E71F6AF), UINT32_C(0x7CC461B2), + UINT32_C(0xC45FED28), UINT32_C(0x7E51E548)}}, + }, + { + {{UINT32_C(0x2CE2CBE5), UINT32_C(0x4A598EFB), UINT32_C(0x89C9A51B), + UINT32_C(0x774CDE0A), UINT32_C(0xCA907F34), UINT32_C(0x2D003680), + UINT32_C(0x9D3C7D97), UINT32_C(0x62C32DCA)}, + {UINT32_C(0xB3054D17), UINT32_C(0x37B3A90F), UINT32_C(0x67E58A5A), + UINT32_C(0x1423574C), UINT32_C(0x4859FA49), UINT32_C(0xF1D3BB1A), + UINT32_C(0x3F5AFA63), UINT32_C(0x25F0AF1C)}}, + {{UINT32_C(0x1FE53AC9), UINT32_C(0xD3BF7F62), UINT32_C(0xCBCE6164), + UINT32_C(0xCE2B67C3), UINT32_C(0x95341024), UINT32_C(0xE081C576), + UINT32_C(0x9A70ECAB), UINT32_C(0x32B0EF5D)}, + {UINT32_C(0x3BE1E5CE), UINT32_C(0x3EC93C85), UINT32_C(0xA0CB7DCD), + UINT32_C(0xE25F54ED), UINT32_C(0x517965B2), UINT32_C(0x9D6B57D7), + UINT32_C(0x129B0B27), UINT32_C(0x159F7AB0)}}, + {{UINT32_C(0xEEFB67F3), UINT32_C(0xAEF88E95), UINT32_C(0xE0316AB2), + UINT32_C(0xEAEB2889), UINT32_C(0xC2CB6753), UINT32_C(0x1491881F), + UINT32_C(0x702789D0), UINT32_C(0x67DCDF28)}, + {UINT32_C(0x11C0F3FD), UINT32_C(0x8282E0A7), UINT32_C(0x01BA273D), + UINT32_C(0x9CDCFDB8), UINT32_C(0x26279B95), UINT32_C(0x6BF1E043), + UINT32_C(0x85852777), UINT32_C(0x0D42AAC6)}}, + {{UINT32_C(0x608981AB), UINT32_C(0xC4CE393E), UINT32_C(0x52141CB0), + UINT32_C(0x210E20F8), UINT32_C(0x6B9234B5), UINT32_C(0x22C2586D), + UINT32_C(0x4366750E), UINT32_C(0x52F1B366)}, + {UINT32_C(0x760AFA55), UINT32_C(0xE38ED0D9), UINT32_C(0xB5D61A08), + UINT32_C(0xA43FF25A), UINT32_C(0xB5E21691), UINT32_C(0x0BE3A406), + UINT32_C(0xFD4E17B0), UINT32_C(0x37B47A28)}}, + {{UINT32_C(0x4C2C65C2), UINT32_C(0xC46DC6D4), UINT32_C(0xC54BE778), + UINT32_C(0x2A0B452C), UINT32_C(0xF727070E), UINT32_C(0xAF113693), + UINT32_C(0xC68D13A3), UINT32_C(0x7B229CD8)}, + {UINT32_C(0x02D43E4B), UINT32_C(0x0F63097E), UINT32_C(0x55627FD8), + UINT32_C(0x912F8D33), UINT32_C(0x2A0DD9AE), UINT32_C(0x1EBF3961), + UINT32_C(0xF0294B2D), UINT32_C(0x7FD33FDE)}}, + {{UINT32_C(0xD0CC6D9F), UINT32_C(0xC72411F5), UINT32_C(0x9B92FF84), + UINT32_C(0x66E04C90), UINT32_C(0xE1C033B6), UINT32_C(0x0678B4F8), + UINT32_C(0xE49A972A), UINT32_C(0x5A99F270)}, + {UINT32_C(0xD265A4DF), UINT32_C(0x3743BCD8), UINT32_C(0xCE0404C3), + UINT32_C(0x7BD6DDF4), UINT32_C(0x131750A5), UINT32_C(0x4043767F), + UINT32_C(0x9DD65652), UINT32_C(0x4A7D8983)}}, + {{UINT32_C(0x12B7822D), UINT32_C(0x535BC784), UINT32_C(0xF1F9B703), + UINT32_C(0xDD32DD67), UINT32_C(0x2EAA2A1C), UINT32_C(0xFFDBF0EB), + UINT32_C(0xF64E9822), UINT32_C(0x497C09FA)}, + {UINT32_C(0x32EE2A36), UINT32_C(0x18E717E9), UINT32_C(0x583949B1), + UINT32_C(0xF01CC4F5), UINT32_C(0x0A168755), UINT32_C(0x222EE974), + UINT32_C(0x00C81EC9), UINT32_C(0x0CD14CD5)}}, + {{UINT32_C(0x14C79CDC), UINT32_C(0x7AE0BD11), UINT32_C(0x6DC08C80), + UINT32_C(0x67323D1A), UINT32_C(0x0EF32432), UINT32_C(0x2FD1ABC7), + UINT32_C(0xB0E08EBF), UINT32_C(0x65923246)}, + {UINT32_C(0xC0754ECE), UINT32_C(0x0A9FD3D7), UINT32_C(0x5F8644FA), + UINT32_C(0xE76B2624), UINT32_C(0x0F8BB385), UINT32_C(0xF1F0BEBA), + UINT32_C(0xFC96778F), UINT32_C(0x73251F03)}}, + {{UINT32_C(0xD08795A9), UINT32_C(0x197150DE), UINT32_C(0xFBB8B9CF), + UINT32_C(0xAD6935AE), UINT32_C(0x3B2B9EFB), UINT32_C(0x72118682), + UINT32_C(0xBC2B7240), UINT32_C(0x265B288D)}, + {UINT32_C(0x2F78C431), UINT32_C(0x7BF2EB36), UINT32_C(0xF2A6E469), + UINT32_C(0xF03B83CA), UINT32_C(0x4740E74B), UINT32_C(0x21159256), + UINT32_C(0x0490F0B9), UINT32_C(0x35BE5735)}}, + {{UINT32_C(0x806C1CAE), UINT32_C(0x207F33B2), UINT32_C(0xDAC5ADE0), + UINT32_C(0x04249127), UINT32_C(0x1CC59DE7), UINT32_C(0xC4CCF33E), + UINT32_C(0x272BD6D7), UINT32_C(0x2A17B520)}, + {UINT32_C(0xB48F6585), UINT32_C(0xC36F6B3C), UINT32_C(0x0861ACF5), + UINT32_C(0xD32A7379), UINT32_C(0x2C3291C6), UINT32_C(0x28A12ECB), + UINT32_C(0xF02A88D0), UINT32_C(0x0E945F95)}}, + {{UINT32_C(0xD3B3117B), UINT32_C(0x4836EC01), UINT32_C(0xA4C2FD72), + UINT32_C(0x4C197454), UINT32_C(0xF9897721), UINT32_C(0x96FCED51), + UINT32_C(0x5828C97D), UINT32_C(0x14202858)}, + {UINT32_C(0x774755B9), UINT32_C(0xCA7ACED8), UINT32_C(0x97252559), + UINT32_C(0x460FF582), UINT32_C(0x5796DD63), UINT32_C(0xAAE45776), + UINT32_C(0x346DDBF5), UINT32_C(0x711C916E)}}, + {{UINT32_C(0x5E203692), UINT32_C(0xA60E2E7B), UINT32_C(0xF3BF2A45), + UINT32_C(0xCFC72FEA), UINT32_C(0x72AC0436), UINT32_C(0x78729D28), + UINT32_C(0x29ABF199), UINT32_C(0x3E16DD8B)}, + {UINT32_C(0x15A41F3D), UINT32_C(0xB1705AA6), UINT32_C(0x308AB87C), + UINT32_C(0x8C7512FE), UINT32_C(0x03995381), UINT32_C(0xA27411C5), + UINT32_C(0xA780CED3), UINT32_C(0x3142403C)}}, + {{UINT32_C(0xF1718C7F), UINT32_C(0xE4473E94), UINT32_C(0xA3CAB6CB), + UINT32_C(0x601BC194), UINT32_C(0x581D491D), UINT32_C(0x8F3540F8), + UINT32_C(0x43C15321), UINT32_C(0x456A9B7C)}, + {UINT32_C(0x593BB7ED), UINT32_C(0x6F335A2D), UINT32_C(0x7D791514), + UINT32_C(0xB6D5A23F), UINT32_C(0x79235EAD), UINT32_C(0x976D2F83), + UINT32_C(0x44775C97), UINT32_C(0x7D02EA0F)}}, + {{UINT32_C(0xE5EC268E), UINT32_C(0x322DBC8C), UINT32_C(0xBE14BF5C), + UINT32_C(0x1F2F6050), UINT32_C(0xEACF6A50), UINT32_C(0x58AC6397), + UINT32_C(0xA5401081), UINT32_C(0x4167CBD5)}, + {UINT32_C(0xEE5B4BF5), UINT32_C(0x8E6F06A1), UINT32_C(0x6B2F790F), + UINT32_C(0x1A6073D5), UINT32_C(0x4F901250), UINT32_C(0x1C09FF3D), + UINT32_C(0xE6B40DF4), UINT32_C(0x286AF8D7)}}, + {{UINT32_C(0x06BD53FF), UINT32_C(0xF74C8057), UINT32_C(0xE5788F0D), + UINT32_C(0x4FCE7281), UINT32_C(0x3D015E6B), UINT32_C(0xD6A867AC), + UINT32_C(0x6E185A42), UINT32_C(0x04AEC38D)}, + {UINT32_C(0x083D65CB), UINT32_C(0x8DC12B74), UINT32_C(0x82966668), + UINT32_C(0xDB1AA8AC), UINT32_C(0x28AF1B90), UINT32_C(0xBD2233BF), + UINT32_C(0x172CCA11), UINT32_C(0x544569A7)}}, + {{UINT32_C(0x149BD0BD), UINT32_C(0x9C56FCA8), UINT32_C(0xA05F8E44), + UINT32_C(0x2B4EC788), UINT32_C(0x92478943), UINT32_C(0x1569CF6D), + UINT32_C(0x57380986), UINT32_C(0x67E373E8)}, + {UINT32_C(0xED3C14DB), UINT32_C(0xF5CC8232), UINT32_C(0xF52EAF83), + UINT32_C(0xE3D184B0), UINT32_C(0x0BC64038), UINT32_C(0x195D4137), + UINT32_C(0x778C3C20), UINT32_C(0x77994388)}}, + }, + { + {{UINT32_C(0xA0CC77AA), UINT32_C(0x3DAA0C47), UINT32_C(0x7C69CDF0), + UINT32_C(0xB9794E74), UINT32_C(0x4549F5D4), UINT32_C(0x3610E50B), + UINT32_C(0xB8A112CA), UINT32_C(0x262CA564)}, + {UINT32_C(0x554E8714), UINT32_C(0xD5EC795E), UINT32_C(0x717EBEF3), + UINT32_C(0x73EE5502), UINT32_C(0x1947A478), UINT32_C(0xE36E8A1A), + UINT32_C(0x42ADC59D), UINT32_C(0x3FBE43A3)}}, + {{UINT32_C(0x021FBCBE), UINT32_C(0x4DE78909), UINT32_C(0x0BBBB324), + UINT32_C(0xA76A5EE2), UINT32_C(0xCD67810B), UINT32_C(0x5B86519A), + UINT32_C(0x3710A4EE), UINT32_C(0x4CCA44A2)}, + {UINT32_C(0xCD1F8BEC), UINT32_C(0xD79A121D), UINT32_C(0xDC9CA10E), + UINT32_C(0x2E12A772), UINT32_C(0x8C9E9640), UINT32_C(0xE301CA3B), + UINT32_C(0xB731A957), UINT32_C(0x4B25FE18)}}, + {{UINT32_C(0xF4AD7264), UINT32_C(0xA05DA2CD), UINT32_C(0x076977A5), + UINT32_C(0x31336489), UINT32_C(0xF2E576A8), UINT32_C(0xC1D269BE), + UINT32_C(0x7532203F), UINT32_C(0x1E877ADC)}, + {UINT32_C(0x8B92972C), UINT32_C(0x9C9961BC), UINT32_C(0x6A14D810), + UINT32_C(0x7BA07272), UINT32_C(0x06913136), UINT32_C(0xE51095A9), + UINT32_C(0x30E0EA8C), UINT32_C(0x46748969)}}, + {{UINT32_C(0x3C73BA49), UINT32_C(0xDB8EF346), UINT32_C(0x3720570D), + UINT32_C(0xBF221312), UINT32_C(0x605DB0D6), UINT32_C(0xC07B3639), + UINT32_C(0x300336A3), UINT32_C(0x44FCEFA6)}, + {UINT32_C(0x2D234592), UINT32_C(0x121FAC5C), UINT32_C(0x44E367D7), + UINT32_C(0x901DEE88), UINT32_C(0x1CAA6A3A), UINT32_C(0x5B5F3DD6), + UINT32_C(0xAC2F6E64), UINT32_C(0x72E474EC)}}, + {{UINT32_C(0xF55BE61C), UINT32_C(0x15690BEE), UINT32_C(0xDF2678A2), + UINT32_C(0xE42B945E), UINT32_C(0x3B7B1776), UINT32_C(0x60A5C8AA), + UINT32_C(0xEB9AB938), UINT32_C(0x16103FBC)}, + {UINT32_C(0x87AD06AB), UINT32_C(0x79722A1E), UINT32_C(0xD6B632A2), + UINT32_C(0xD7B509F6), UINT32_C(0x3B69EB40), UINT32_C(0x8C4E8B2E), + UINT32_C(0x14DB2225), UINT32_C(0x6A509583)}}, + {{UINT32_C(0x93B78659), UINT32_C(0x169F35D8), UINT32_C(0x8EFF83AD), + UINT32_C(0x989B04D2), UINT32_C(0xA6AE4806), UINT32_C(0x72CF7338), + UINT32_C(0xF4AAA524), UINT32_C(0x6E156C84)}, + {UINT32_C(0xA1ED5CB2), UINT32_C(0x33A608ED), UINT32_C(0xC3D28716), + UINT32_C(0xCE274A64), UINT32_C(0x45F0435F), UINT32_C(0xFCF1B170), + UINT32_C(0x1653D6F6), UINT32_C(0x101D1BDB)}}, + {{UINT32_C(0x2E5A67D9), UINT32_C(0x45BC931D), UINT32_C(0x697DA479), + UINT32_C(0xAFF02C11), UINT32_C(0x2EA3E6E1), UINT32_C(0x7C7972A3), + UINT32_C(0x5E97BB90), UINT32_C(0x71A17D50)}, + {UINT32_C(0x19AD4C5E), UINT32_C(0x962E84F2), UINT32_C(0x692020BE), + UINT32_C(0xBB8C9FC7), UINT32_C(0xE7B36665), UINT32_C(0xA78FDF2C), + UINT32_C(0x26F92E33), UINT32_C(0x7AC84ED4)}}, + {{UINT32_C(0xC3C9E5C1), UINT32_C(0xBD85A9EE), UINT32_C(0x6ED2FD6A), + UINT32_C(0x72030BAA), UINT32_C(0x39CFFB89), UINT32_C(0xB67185AB), + UINT32_C(0x833BF770), UINT32_C(0x3E2E51A4)}, + {UINT32_C(0x5E27D5BB), UINT32_C(0x248FA348), UINT32_C(0x2E6D3DCF), + UINT32_C(0xF8D43596), UINT32_C(0x0C8DAF81), UINT32_C(0x07F5B93C), + UINT32_C(0xAD2FC97D), UINT32_C(0x6A7FFA1D)}}, + {{UINT32_C(0xFAEA33F1), UINT32_C(0xFF308FAE), UINT32_C(0x3CC4C7CF), + UINT32_C(0x5F29DFFB), UINT32_C(0xECC5A2B9), UINT32_C(0xB9AD4527), + UINT32_C(0x048D4B38), UINT32_C(0x08B95AF6)}, + {UINT32_C(0xDEC152BB), UINT32_C(0x56BC43A8), UINT32_C(0x3849D869), + UINT32_C(0xD1147B9A), UINT32_C(0xD02AF3B7), UINT32_C(0xFE5020C2), + UINT32_C(0xB918496E), UINT32_C(0x54C02B44)}}, + {{UINT32_C(0x0B27468D), UINT32_C(0x1611ECFD), UINT32_C(0x0513A562), + UINT32_C(0x4AFCE329), UINT32_C(0x2FE74EED), UINT32_C(0x982782FD), + UINT32_C(0x17ADD2EA), UINT32_C(0x66AC58BF)}, + {UINT32_C(0x613581D4), UINT32_C(0x8277BC2D), UINT32_C(0x988D1498), + UINT32_C(0x0BF5BF0C), UINT32_C(0x55C984CB), UINT32_C(0x8A37134D), + UINT32_C(0x92211390), UINT32_C(0x409A79CC)}}, + {{UINT32_C(0x816F0462), UINT32_C(0x8C0081AE), UINT32_C(0x5A68BFC2), + UINT32_C(0xB431DC24), UINT32_C(0x5F78C8A1), UINT32_C(0x25C769C6), + UINT32_C(0xB382AF14), UINT32_C(0x3BE0458D)}, + {UINT32_C(0xA171ADF2), UINT32_C(0x10583083), UINT32_C(0x37F7C39F), + UINT32_C(0xBA5D5325), UINT32_C(0x5EAC7585), UINT32_C(0x76B03B94), + UINT32_C(0x9C2DF2C6), UINT32_C(0x76159AAC)}}, + {{UINT32_C(0x918E0332), UINT32_C(0x886C73BA), UINT32_C(0xD24B5B52), + UINT32_C(0xF6FEC62A), UINT32_C(0x36B4D23A), UINT32_C(0xB98759B4), + UINT32_C(0x5480ACF3), UINT32_C(0x5EC5B3FE)}, + {UINT32_C(0x6DD175BF), UINT32_C(0x30FF297D), UINT32_C(0x75F2B9C3), + UINT32_C(0x501DE744), UINT32_C(0xF19230C5), UINT32_C(0xDEBE47CA), + UINT32_C(0x32BBBB62), UINT32_C(0x7401F209)}}, + {{UINT32_C(0x22496D1E), UINT32_C(0x80712E47), UINT32_C(0xDA80AF1D), + UINT32_C(0x36A0EF37), UINT32_C(0x940E5E9F), UINT32_C(0xAF6CA51C), + UINT32_C(0x722D9D22), UINT32_C(0x74E17B6F)}, + {UINT32_C(0xB8B3AE1B), UINT32_C(0xCB70B878), UINT32_C(0x07DF974C), + UINT32_C(0xBF8B9A0B), UINT32_C(0xF68A4BF4), UINT32_C(0x89FCC996), + UINT32_C(0x6EB0FB2E), UINT32_C(0x46F581E8)}}, + {{UINT32_C(0x67137153), UINT32_C(0xBCE0BD6C), UINT32_C(0x75F64B78), + UINT32_C(0xAD3E92B3), UINT32_C(0xFD047DD9), UINT32_C(0x6454CD1D), + UINT32_C(0x612AE472), UINT32_C(0x181C93EB)}, + {UINT32_C(0x23A529C3), UINT32_C(0xE575307E), UINT32_C(0x59C09EB5), + UINT32_C(0xB9C43A0B), UINT32_C(0xAA805840), UINT32_C(0xFD233A68), + UINT32_C(0xA122FFB9), UINT32_C(0x067C442E)}}, + {{UINT32_C(0x2CD6762E), UINT32_C(0xE1F3F76F), UINT32_C(0x9764B53A), + UINT32_C(0xFB68650F), UINT32_C(0xF1224580), UINT32_C(0x4E90AC72), + UINT32_C(0x127EED48), UINT32_C(0x2BF68F01)}, + {UINT32_C(0x94D389A0), UINT32_C(0xE6B4B409), UINT32_C(0xD44593D6), + UINT32_C(0xD7BC8108), UINT32_C(0x48A86677), UINT32_C(0xDCF03991), + UINT32_C(0xCEBCE3C7), UINT32_C(0x4A52D961)}}, + {{UINT32_C(0xBAA873EA), UINT32_C(0x55734AB5), UINT32_C(0x7871F323), + UINT32_C(0x506DE4CF), UINT32_C(0x578612C0), UINT32_C(0x7C3F8B00), + UINT32_C(0x9243C9E8), UINT32_C(0x730D4B8A)}, + {UINT32_C(0xD385F6BD), UINT32_C(0xA3290689), UINT32_C(0x913596F5), + UINT32_C(0xAF688C6A), UINT32_C(0xB646BE23), UINT32_C(0x0A2D89B5), + UINT32_C(0xF63A6029), UINT32_C(0x31891165)}}, + }, + { + {{UINT32_C(0x579583C0), UINT32_C(0x331F9E57), UINT32_C(0x69C65DA2), + UINT32_C(0xE92ABADF), UINT32_C(0xA5B8B057), UINT32_C(0xC796FBEC), + UINT32_C(0x312D1E89), UINT32_C(0x52E6F9C9)}, + {UINT32_C(0xDA68DFD3), UINT32_C(0x0318B1DF), UINT32_C(0xA1CAC4F1), + UINT32_C(0x8BAA2EB3), UINT32_C(0xBEE7D6E1), UINT32_C(0x0CDC89A2), + UINT32_C(0x22AB50F4), UINT32_C(0x6102DE7A)}}, + {{UINT32_C(0xE20C707A), UINT32_C(0x02003D83), UINT32_C(0x28289D89), + UINT32_C(0xD819249C), UINT32_C(0x72053FF8), UINT32_C(0x3FBC00B1), + UINT32_C(0xDF40D261), UINT32_C(0x0249C43C)}, + {UINT32_C(0xD8F064AF), UINT32_C(0x8794EEAC), UINT32_C(0xDC9F0631), + UINT32_C(0xE2359E70), UINT32_C(0xADA310D0), UINT32_C(0xD1603647), + UINT32_C(0xEDC888EC), UINT32_C(0x6A9E3785)}}, + {{UINT32_C(0xEC41908E), UINT32_C(0xF332B384), UINT32_C(0xBDE4760B), + UINT32_C(0xF3274472), UINT32_C(0x140D0EF4), UINT32_C(0x96185E89), + UINT32_C(0x90E698E7), UINT32_C(0x56462089)}, + {UINT32_C(0xF2E64396), UINT32_C(0x841A31C5), UINT32_C(0x03C4118F), + UINT32_C(0x8F494CA5), UINT32_C(0x1A188305), UINT32_C(0x0C98A4C3), + UINT32_C(0x98AAB1AB), UINT32_C(0x1C4B5F62)}}, + {{UINT32_C(0x5D0D8381), UINT32_C(0xDDEEEBF8), UINT32_C(0x89044363), + UINT32_C(0xD1616F48), UINT32_C(0x21616A13), UINT32_C(0x2EE41D47), + UINT32_C(0x4BC769FC), UINT32_C(0x2DCE6110)}, + {UINT32_C(0x16C1C468), UINT32_C(0xE3707A01), UINT32_C(0x969AF612), + UINT32_C(0x3B674187), UINT32_C(0x1E0671CC), UINT32_C(0xB64BD4D7), + UINT32_C(0xB98C297C), UINT32_C(0x7EF01DBA)}}, + {{UINT32_C(0x815381AC), UINT32_C(0x91DCBF99), UINT32_C(0x38B67B97), + UINT32_C(0x8D711F58), UINT32_C(0x9C6E322C), UINT32_C(0x9C11F595), + UINT32_C(0xE31A782F), UINT32_C(0x4A688D0B)}, + {UINT32_C(0xDCE93F5B), UINT32_C(0x1297D9F3), UINT32_C(0x7C1DC62A), + UINT32_C(0xA7956194), UINT32_C(0x5F718F63), UINT32_C(0x340F217A), + UINT32_C(0xFCC0EF6A), UINT32_C(0x71F84529)}}, + {{UINT32_C(0x3DD00963), UINT32_C(0x0D968E50), UINT32_C(0xD7FF66C3), + UINT32_C(0x5E696D79), UINT32_C(0x499A9BE2), UINT32_C(0xAA52D60D), + UINT32_C(0xCDC289DE), UINT32_C(0x72482C45)}, + {UINT32_C(0x7FFAAD3A), UINT32_C(0xC84968F5), UINT32_C(0xF7CD5BED), + UINT32_C(0xEE91304C), UINT32_C(0x0A7CC7C0), UINT32_C(0x68493676), + UINT32_C(0x80023968), UINT32_C(0x3411AFA7)}}, + {{UINT32_C(0x6E3294C0), UINT32_C(0xA0AEBC70), UINT32_C(0xDC385E50), + UINT32_C(0x93263942), UINT32_C(0x8467FB06), UINT32_C(0x7B90C002), + UINT32_C(0x38CFD0FF), UINT32_C(0x29477CA4)}, + {UINT32_C(0x92A748D5), UINT32_C(0xADC04D81), UINT32_C(0x76CF3AE5), + UINT32_C(0xAE4F309D), UINT32_C(0x4BB2C2FF), UINT32_C(0xBDA34BF0), + UINT32_C(0x368536E4), UINT32_C(0x65138897)}}, + {{UINT32_C(0x6FE6D4D6), UINT32_C(0x9CB8F7D6), UINT32_C(0xAF246792), + UINT32_C(0x6C2FFBF5), UINT32_C(0x81524707), UINT32_C(0xD5A4F349), + UINT32_C(0x36766D5E), UINT32_C(0x3AFE45CE)}, + {UINT32_C(0x513BA267), UINT32_C(0x41991B49), UINT32_C(0x6C18AA5E), + UINT32_C(0x06EF1EEA), UINT32_C(0x88EA2099), UINT32_C(0x0A517635), + UINT32_C(0xD245B88B), UINT32_C(0x32D2B5E2)}}, + {{UINT32_C(0x3F517C5B), UINT32_C(0xAE38CDD5), UINT32_C(0xD878FEEE), + UINT32_C(0x1C94FDC5), UINT32_C(0xBEFCE107), UINT32_C(0xABF7A41D), + UINT32_C(0xD408DFE8), UINT32_C(0x33BF3FE9)}, + {UINT32_C(0x947CB8C4), UINT32_C(0x4F2E6FF0), UINT32_C(0xF998C5A0), + UINT32_C(0x3A8E86AB), UINT32_C(0xE359209F), UINT32_C(0x3ADC6ABA), + UINT32_C(0xD9A50051), UINT32_C(0x37A2DE1B)}}, + {{UINT32_C(0xE718F6B9), UINT32_C(0x424F4E34), UINT32_C(0x75C58EB6), + UINT32_C(0x50B1A03B), UINT32_C(0x91390E27), UINT32_C(0xB9495314), + UINT32_C(0x880E78D8), UINT32_C(0x4AE0CC3A)}, + {UINT32_C(0xF1E4413C), UINT32_C(0x10331AFA), UINT32_C(0xDDFCD2F0), + UINT32_C(0xE7A3E554), UINT32_C(0x0EBF484B), UINT32_C(0x44F6DE85), + UINT32_C(0x895D0F54), UINT32_C(0x6A762A7E)}}, + {{UINT32_C(0x8D0558F6), UINT32_C(0x8E606B0A), UINT32_C(0x5C4DD930), + UINT32_C(0xAADA7604), UINT32_C(0xEF4ACAD0), UINT32_C(0x5B2FC7AD), + UINT32_C(0x87F5B6E2), UINT32_C(0x0D969AD0)}, + {UINT32_C(0x5974E67B), UINT32_C(0xF9A182B2), UINT32_C(0x23B4009A), + UINT32_C(0xCD8232E7), UINT32_C(0x285BCC3F), UINT32_C(0x3D8F5DDD), + UINT32_C(0xEEE1B9BF), UINT32_C(0x114AC56F)}}, + {{UINT32_C(0xAA45085A), UINT32_C(0xD3EA1B56), UINT32_C(0xD314CEDF), + UINT32_C(0x5DE7BB70), UINT32_C(0x7BCCDCFD), UINT32_C(0x8A74384C), + UINT32_C(0x8E0E0367), UINT32_C(0x64B80F8A)}, + {UINT32_C(0x48884ED1), UINT32_C(0xA9EA432B), UINT32_C(0x8C0BA810), + UINT32_C(0x51957A8F), UINT32_C(0x39E810E3), UINT32_C(0x9E883400), + UINT32_C(0x28B2051C), UINT32_C(0x0A73ED5A)}}, + {{UINT32_C(0x13C30826), UINT32_C(0x655212A3), UINT32_C(0xB73E8660), + UINT32_C(0xAE53668E), UINT32_C(0xFF108CCE), UINT32_C(0x6C33B649), + UINT32_C(0x21D49681), UINT32_C(0x39E0B118)}, + {UINT32_C(0x70525312), UINT32_C(0xFE4D2152), UINT32_C(0xFFD18749), + UINT32_C(0x2EDCE32B), UINT32_C(0xB04D3FB8), UINT32_C(0xFED19B1C), + UINT32_C(0x2B225A9D), UINT32_C(0x4DFE216B)}}, + {{UINT32_C(0x4C70F8A8), UINT32_C(0x583E8A6C), UINT32_C(0x954A9AE1), + UINT32_C(0xC8206231), UINT32_C(0xB76517B1), UINT32_C(0x9360B592), + UINT32_C(0xEED10CCA), UINT32_C(0x362C5C5C)}, + {UINT32_C(0x3D607921), UINT32_C(0x3DBA9595), UINT32_C(0x5A6ECC40), + UINT32_C(0x0188A5D6), UINT32_C(0x6CFF4ADE), UINT32_C(0x0EAB43C1), + UINT32_C(0xDE3347E0), UINT32_C(0x1F3673AE)}}, + {{UINT32_C(0x796593EE), UINT32_C(0x7300C4B3), UINT32_C(0xD8D926C3), + UINT32_C(0x607E7E76), UINT32_C(0x77F9FD06), UINT32_C(0x1762CE26), + UINT32_C(0xCEA891EB), UINT32_C(0x0D0478B3)}, + {UINT32_C(0x2618B09E), UINT32_C(0xB1129791), UINT32_C(0x33F928C9), + UINT32_C(0x5F9D290D), UINT32_C(0xE6178DB0), UINT32_C(0xE3192631), + UINT32_C(0x08576D3F), UINT32_C(0x21260AC8)}}, + {{UINT32_C(0x76968E1C), UINT32_C(0x899DAF2A), UINT32_C(0xF9C2B3E7), + UINT32_C(0x0519DEA9), UINT32_C(0x93D0BD4E), UINT32_C(0x5FDADC38), + UINT32_C(0x43B4D98F), UINT32_C(0x0467BFF7)}, + {UINT32_C(0x6F3936C9), UINT32_C(0x651C316C), UINT32_C(0xAF27DF8B), + UINT32_C(0xE757689A), UINT32_C(0xA0FA9188), UINT32_C(0x3AB037EA), + UINT32_C(0xD927B60A), UINT32_C(0x2F8B039B)}}, + }, + { + {{UINT32_C(0xDE876A70), UINT32_C(0x72211BF5), UINT32_C(0x73D121CE), + UINT32_C(0xA8361631), UINT32_C(0x23D419E4), UINT32_C(0x23852721), + UINT32_C(0xDBD03345), UINT32_C(0x3F56D47E)}, + {UINT32_C(0xD6F05BAC), UINT32_C(0xFB0E91A5), UINT32_C(0xAC9D0F46), + UINT32_C(0xA0E02BF6), UINT32_C(0x97F1812F), UINT32_C(0x5ED9EA2C), + UINT32_C(0xEBD5DB5A), UINT32_C(0x172F564F)}}, + {{UINT32_C(0x81F11E58), UINT32_C(0xC790E912), UINT32_C(0x99A5DFF7), + UINT32_C(0x14A17630), UINT32_C(0x1627516D), UINT32_C(0xF6F30F2F), + UINT32_C(0xEFCF43B7), UINT32_C(0x522CAD8F)}, + {UINT32_C(0x6EA01128), UINT32_C(0xFFADD45E), UINT32_C(0xD61D1964), + UINT32_C(0x5D23234C), UINT32_C(0x2802DF86), UINT32_C(0xE9212C85), + UINT32_C(0x92AA8DA3), UINT32_C(0x0A3D237B)}}, + {{UINT32_C(0xE50ED356), UINT32_C(0x2CED05F4), UINT32_C(0xBFFEEF3A), + UINT32_C(0x1CBC7FB1), UINT32_C(0xBE19F0F0), UINT32_C(0x885991B1), + UINT32_C(0xDE44A492), UINT32_C(0x6DED0794)}, + {UINT32_C(0x44CBECFC), UINT32_C(0x9967E834), UINT32_C(0x6A792ED1), + UINT32_C(0xB0674A8D), UINT32_C(0xB7DDD557), UINT32_C(0x360E2DE4), + UINT32_C(0x70E95D26), UINT32_C(0x26852A74)}}, + {{UINT32_C(0x3A6E2116), UINT32_C(0x8CBC1520), UINT32_C(0xBF285BBE), + UINT32_C(0xF09327DF), UINT32_C(0x4A54D3C5), UINT32_C(0x8C7D9AD5), + UINT32_C(0x6BD2768F), UINT32_C(0x778F54E6)}, + {UINT32_C(0x8FF3DBC0), UINT32_C(0x09B489F8), UINT32_C(0xD2871932), + UINT32_C(0x0A0FA7FB), UINT32_C(0xE0A8CEC4), UINT32_C(0xABB9DC38), + UINT32_C(0x21E37A50), UINT32_C(0x2EE092D8)}}, + {{UINT32_C(0xAF6D88D8), UINT32_C(0xBB9256E7), UINT32_C(0x0A218927), + UINT32_C(0x3CDCB1CB), UINT32_C(0xF216D6E6), UINT32_C(0x8E5B744A), + UINT32_C(0xBC885AFD), UINT32_C(0x6F0617F2)}, + {UINT32_C(0x268397D5), UINT32_C(0xFBA9CDA7), UINT32_C(0x5D4C75D8), + UINT32_C(0xC6154716), UINT32_C(0x43FB2CD2), UINT32_C(0x9ED8D17B), + UINT32_C(0xBE45BC5C), UINT32_C(0x4D0CE3FB)}}, + {{UINT32_C(0xA38472F5), UINT32_C(0x4259BB02), UINT32_C(0x15107D0E), + UINT32_C(0xFAFAAE03), UINT32_C(0xCF0CF2B6), UINT32_C(0x2B8E450E), + UINT32_C(0xED887C3A), UINT32_C(0x788674C3)}, + {UINT32_C(0x4B3D2EAC), UINT32_C(0x1F3EBD59), UINT32_C(0x75E41B55), + UINT32_C(0x82CB5684), UINT32_C(0xC02BE49A), UINT32_C(0x005AB76B), + UINT32_C(0xF5F90FEE), UINT32_C(0x6F13ADD2)}}, + {{UINT32_C(0x7AFA7161), UINT32_C(0x0116374A), UINT32_C(0x2DB7F824), + UINT32_C(0x8A1AE448), UINT32_C(0xDB656A22), UINT32_C(0xD3C0DA12), + UINT32_C(0xB989204D), UINT32_C(0x7B095B95)}, + {UINT32_C(0xEF8F21CA), UINT32_C(0x24C35202), UINT32_C(0x2DA5A5A1), + UINT32_C(0x91088DA7), UINT32_C(0xE3F97D68), UINT32_C(0xAAF1944B), + UINT32_C(0x7C884134), UINT32_C(0x245D2848)}}, + {{UINT32_C(0x68F5C702), UINT32_C(0xD80C65D6), UINT32_C(0x021A2974), + UINT32_C(0xE2FE245F), UINT32_C(0x3A11899C), UINT32_C(0xFB8520E0), + UINT32_C(0x2BE6BF88), UINT32_C(0x4806D1FA)}, + {UINT32_C(0x20ED235F), UINT32_C(0xF6F8C11A), UINT32_C(0x7F0D651E), + UINT32_C(0x52AC1424), UINT32_C(0xDB9CF6D6), UINT32_C(0x44C3C89F), + UINT32_C(0xB2E2E41F), UINT32_C(0x6762516D)}}, + {{UINT32_C(0xFDE91600), UINT32_C(0x2743D874), UINT32_C(0xCDF00100), + UINT32_C(0x60975FD5), UINT32_C(0x2D2954F4), UINT32_C(0x78ACC864), + UINT32_C(0x56373454), UINT32_C(0x46B9E602)}, + {UINT32_C(0x6F0FB867), UINT32_C(0x7586A970), UINT32_C(0x242DF35A), + UINT32_C(0x888E3677), UINT32_C(0xF1460F62), UINT32_C(0x5A639E79), + UINT32_C(0x55297DBC), UINT32_C(0x1256517E)}}, + {{UINT32_C(0x7B9294C3), UINT32_C(0x3F78339B), UINT32_C(0xBCE77012), + UINT32_C(0x5BA765D1), UINT32_C(0x512E39E2), UINT32_C(0xA88E0CD8), + UINT32_C(0xF6BA6A6A), UINT32_C(0x2D63E14B)}, + {UINT32_C(0xEA29071B), UINT32_C(0xF849A163), UINT32_C(0x4C0A2E22), + UINT32_C(0xF32519B7), UINT32_C(0x561C35F5), UINT32_C(0xEA5D1315), + UINT32_C(0xD9267DCA), UINT32_C(0x7041F515)}}, + {{UINT32_C(0x1FE56E6B), UINT32_C(0xE01E839F), UINT32_C(0x4A93CE88), + UINT32_C(0x3E473D8C), UINT32_C(0x89AAFDAE), UINT32_C(0xC4846ECF), + UINT32_C(0x07D946EA), UINT32_C(0x4111D97A)}, + {UINT32_C(0x51A45F02), UINT32_C(0xC20881F6), UINT32_C(0xB9CD841A), + UINT32_C(0x14C2AC95), UINT32_C(0xF2CBD929), UINT32_C(0x2FBE8329), + UINT32_C(0xC812608B), UINT32_C(0x1E8B7469)}}, + {{UINT32_C(0x007F0A5D), UINT32_C(0xB36A5D03), UINT32_C(0x5DCF7AF4), + UINT32_C(0xA7E7A1A8), UINT32_C(0xBEB12AFB), UINT32_C(0x7227F4C5), + UINT32_C(0x4D276783), UINT32_C(0x46227792)}, + {UINT32_C(0x48403B93), UINT32_C(0x9EA64D4C), UINT32_C(0x0B333ED5), + UINT32_C(0x58EA31BC), UINT32_C(0xC5C93119), UINT32_C(0x2D6DD219), + UINT32_C(0x45069280), UINT32_C(0x385023A7)}}, + {{UINT32_C(0xF60C46AF), UINT32_C(0x8AB9B9EA), UINT32_C(0xE8B827C2), + UINT32_C(0xFA1D3F08), UINT32_C(0x1BAD41DB), UINT32_C(0x78C6BFBC), + UINT32_C(0x23BE0C1E), UINT32_C(0x527A0BED)}, + {UINT32_C(0x6ACCE641), UINT32_C(0x66212FD2), UINT32_C(0xEE6F78E7), + UINT32_C(0x86125B0D), UINT32_C(0x58552A8C), UINT32_C(0xA2A02718), + UINT32_C(0x7E9605C5), UINT32_C(0x594F2B77)}}, + {{UINT32_C(0x88A27989), UINT32_C(0x3FB1F6CF), UINT32_C(0xD96268B8), + UINT32_C(0xBC4962F7), UINT32_C(0xB95E2A36), UINT32_C(0xBD8761E9), + UINT32_C(0x046DEC63), UINT32_C(0x64AB934A)}, + {UINT32_C(0x2E53CF1A), UINT32_C(0xC64D1C59), UINT32_C(0x578C5E8C), + UINT32_C(0xC9865A9B), UINT32_C(0x7A0359DE), UINT32_C(0x5ECA6232), + UINT32_C(0xFB4685E5), UINT32_C(0x127DD136)}}, + {{UINT32_C(0x1AE320C9), UINT32_C(0xB0F7B071), UINT32_C(0x52525203), + UINT32_C(0x09BF89BB), UINT32_C(0x709C5692), UINT32_C(0x97B20027), + UINT32_C(0xEDBF6175), UINT32_C(0x16A62485)}, + {UINT32_C(0x394C50F9), UINT32_C(0x32C18836), UINT32_C(0xD3B98C19), + UINT32_C(0x7D99468F), UINT32_C(0x2E8D2729), UINT32_C(0x8EBE5096), + UINT32_C(0xE655F093), UINT32_C(0x4E75B3CC)}}, + {{UINT32_C(0x9EAE827E), UINT32_C(0xCBEFD1A2), UINT32_C(0xFBF4630D), + UINT32_C(0xDE2D1234), UINT32_C(0x96086CDA), UINT32_C(0x1B3ADCF8), + UINT32_C(0x2EA6CBA7), UINT32_C(0x43D3960E)}, + {UINT32_C(0x1CB5A0F7), UINT32_C(0x18321D1D), UINT32_C(0x47BEABB4), + UINT32_C(0xDC94C6F9), UINT32_C(0x75AF6AB7), UINT32_C(0xFBACC6D5), + UINT32_C(0x89B98E86), UINT32_C(0x0EE5D357)}}, + }, + { + {{UINT32_C(0x062E0994), UINT32_C(0x3F01B4AA), UINT32_C(0x5C952259), + UINT32_C(0x994B28B0), UINT32_C(0x0CDEEC70), UINT32_C(0x2678F8B8), + UINT32_C(0x212436F3), UINT32_C(0x4D06AF84)}, + {UINT32_C(0x1CF27A98), UINT32_C(0xE9DF52FD), UINT32_C(0x0B7718F7), + UINT32_C(0xD56B9FD1), UINT32_C(0xD9AEDA0D), UINT32_C(0x728BE624), + UINT32_C(0x1A646888), UINT32_C(0x09871088)}}, + {{UINT32_C(0x9B586B13), UINT32_C(0xB1BC922D), UINT32_C(0x3CA3B1BA), + UINT32_C(0x6C084C54), UINT32_C(0xCF322698), UINT32_C(0x54D196C7), + UINT32_C(0x85D527E1), UINT32_C(0x06EC3A55)}, + {UINT32_C(0x2A57CAA1), UINT32_C(0x06918710), UINT32_C(0x65FD0F6B), + UINT32_C(0x6AEAC07D), UINT32_C(0x0F512F84), UINT32_C(0xB66A34D7), + UINT32_C(0xA44E6452), UINT32_C(0x3860C002)}}, + {{UINT32_C(0x0881608A), UINT32_C(0x17263B26), UINT32_C(0x56C18A7A), + UINT32_C(0x78D556AA), UINT32_C(0xAC3A47AB), UINT32_C(0xA0826A1C), + UINT32_C(0xB6933FF5), UINT32_C(0x61686A58)}, + {UINT32_C(0xDBCF2C4F), UINT32_C(0xEA9D8771), UINT32_C(0x6AB00426), + UINT32_C(0x1C66EB02), UINT32_C(0x401C466A), UINT32_C(0xF8DAED2B), + UINT32_C(0xDAAE8040), UINT32_C(0x1ED0A99A)}}, + {{UINT32_C(0x7208E58A), UINT32_C(0x31EFFC4B), UINT32_C(0xB4E4319E), + UINT32_C(0x28868456), UINT32_C(0xD46AC4DA), UINT32_C(0x1059C249), + UINT32_C(0x2279B362), UINT32_C(0x3589D212)}, + {UINT32_C(0x45552E92), UINT32_C(0xB28B8FAD), UINT32_C(0xC3AB8098), + UINT32_C(0xC9E32541), UINT32_C(0xF14B35A1), UINT32_C(0x82604904), + UINT32_C(0xDB68C214), UINT32_C(0x1E64A89F)}}, + {{UINT32_C(0xAB6947AF), UINT32_C(0xDF0E223D), UINT32_C(0x771670D0), + UINT32_C(0xE74EF1D6), UINT32_C(0xF429F03B), UINT32_C(0x70A9AD21), + UINT32_C(0x1385B8DC), UINT32_C(0x7CB1FA1F)}, + {UINT32_C(0x69053D24), UINT32_C(0x25ABC0A7), UINT32_C(0x6369D02E), + UINT32_C(0x207FE30A), UINT32_C(0xC6E4EC2C), UINT32_C(0x57B76E3C), + UINT32_C(0xB927CAB2), UINT32_C(0x2E03D2E3)}}, + {{UINT32_C(0x622D57AE), UINT32_C(0xEFA377FF), UINT32_C(0xA885951A), + UINT32_C(0x41532F56), UINT32_C(0xCC69B9A8), UINT32_C(0x5ED89AA7), + UINT32_C(0x295F5E84), UINT32_C(0x60BFF2EC)}, + {UINT32_C(0x1E5C3041), UINT32_C(0x411D65C3), UINT32_C(0x4B7772F8), + UINT32_C(0xDB533F8B), UINT32_C(0x3BDD4AEA), UINT32_C(0x72CADEB6), + UINT32_C(0x7C49E454), UINT32_C(0x0EC79DF2)}}, + {{UINT32_C(0x81D0B84B), UINT32_C(0x0C39332C), UINT32_C(0x95FF472B), + UINT32_C(0xA76A9A3A), UINT32_C(0x31DB2BA6), UINT32_C(0xD12FEB99), + UINT32_C(0x3683E53A), UINT32_C(0x4AAB9222)}, + {UINT32_C(0x24FC6271), UINT32_C(0x56CB18AF), UINT32_C(0x2544C72D), + UINT32_C(0x671581D6), UINT32_C(0xFBD6F4D1), UINT32_C(0xCD136492), + UINT32_C(0x3579EE09), UINT32_C(0x6C202318)}}, + {{UINT32_C(0xC103C348), UINT32_C(0xEDC5AF02), UINT32_C(0x155A103D), + UINT32_C(0xDA32344E), UINT32_C(0xB0D1377E), UINT32_C(0xFF3A7679), + UINT32_C(0x68F02750), UINT32_C(0x16091972)}, + {UINT32_C(0xD9E9C143), UINT32_C(0xD4C6360D), UINT32_C(0x968EE990), + UINT32_C(0xE0ABA0EF), UINT32_C(0x97E4C9AE), UINT32_C(0x57816878), + UINT32_C(0x9D63E32D), UINT32_C(0x5A4D167B)}}, + {{UINT32_C(0x50E25802), UINT32_C(0xB04BA525), UINT32_C(0x66912F15), + UINT32_C(0x011DA36E), UINT32_C(0x19E0A182), UINT32_C(0x08D8B680), + UINT32_C(0x2E462B0F), UINT32_C(0x66AA4AE8)}, + {UINT32_C(0xE0B9D283), UINT32_C(0x3227C3A6), UINT32_C(0xF2B2B096), + UINT32_C(0x9BF8C4D0), UINT32_C(0xBA809EB7), UINT32_C(0x1E51416C), + UINT32_C(0x2A67D346), UINT32_C(0x68411B75)}}, + {{UINT32_C(0x37A67F3B), UINT32_C(0xE55B1348), UINT32_C(0x96484391), + UINT32_C(0x5E32D73C), UINT32_C(0x6256B91E), UINT32_C(0xC3F804D5), + UINT32_C(0x03B0783B), UINT32_C(0x67F17A47)}, + {UINT32_C(0xDD2334AD), UINT32_C(0x2010EFEB), UINT32_C(0xB10FF052), + UINT32_C(0xBD9965B5), UINT32_C(0xF58ACA52), UINT32_C(0x519CDA6D), + UINT32_C(0x2FD3D394), UINT32_C(0x045BEEBE)}}, + {{UINT32_C(0xEA271BCD), UINT32_C(0x81722E2C), UINT32_C(0x0A4F1342), + UINT32_C(0x393C082E), UINT32_C(0x53B345CE), UINT32_C(0x573F7CD5), + UINT32_C(0x3D7B4292), UINT32_C(0x7AD71FE2)}, + {UINT32_C(0xDA8BECB8), UINT32_C(0xDA406D0A), UINT32_C(0x82FE66BC), + UINT32_C(0x14FD41CA), UINT32_C(0x0A91DFFC), UINT32_C(0x80A41062), + UINT32_C(0xF4F0CDEB), UINT32_C(0x33E38E10)}}, + {{UINT32_C(0x2529532C), UINT32_C(0x0234BF38), UINT32_C(0xA76CAE3B), + UINT32_C(0x9F5D6342), UINT32_C(0xB3C50442), UINT32_C(0xC9944CB3), + UINT32_C(0x8ABFAF17), UINT32_C(0x51752DF0)}, + {UINT32_C(0xA37B13FB), UINT32_C(0x2BFA58C4), UINT32_C(0xDDB14951), + UINT32_C(0x19F80FDE), UINT32_C(0x7DCB927B), UINT32_C(0xDC7026AA), + UINT32_C(0xAAB9FCBA), UINT32_C(0x57907272)}}, + {{UINT32_C(0xF3C046C2), UINT32_C(0xCE38712D), UINT32_C(0x47B29D0E), + UINT32_C(0x21D1FDB0), UINT32_C(0xCD96D414), UINT32_C(0x7F746E0E), + UINT32_C(0x636CFEA4), UINT32_C(0x72F07B52)}, + {UINT32_C(0xECE6382D), UINT32_C(0x0D8FE94F), UINT32_C(0x24229CA4), + UINT32_C(0x9BFB4CBA), UINT32_C(0xE54388B0), UINT32_C(0xFAE55B77), + UINT32_C(0xA188299F), UINT32_C(0x074EBC32)}}, + {{UINT32_C(0xE21DCCA2), UINT32_C(0x8AF2EBCD), UINT32_C(0x377487F2), + UINT32_C(0x9916A6B6), UINT32_C(0xD8051D40), UINT32_C(0x607DC19A), + UINT32_C(0x419DDE12), UINT32_C(0x7DFD53F4)}, + {UINT32_C(0x9AD07924), UINT32_C(0xD17D0D61), UINT32_C(0x173E266B), + UINT32_C(0x14F7CE0F), UINT32_C(0x0281C9EB), UINT32_C(0x687FB853), + UINT32_C(0x3361B273), UINT32_C(0x6B35CC1A)}}, + {{UINT32_C(0x16E02DE3), UINT32_C(0x7CD6369E), UINT32_C(0x1F35DFBC), + UINT32_C(0x118EE0B1), UINT32_C(0x98B3EE60), UINT32_C(0x7D8C8DBD), + UINT32_C(0x8D29EA17), UINT32_C(0x039806FC)}, + {UINT32_C(0xEC2C2597), UINT32_C(0x3C473872), UINT32_C(0x5E4EF521), + UINT32_C(0x81294AF4), UINT32_C(0xC22A9D7C), UINT32_C(0x5ED048DB), + UINT32_C(0x0A08C4D4), UINT32_C(0x3879E95B)}}, + {{UINT32_C(0x96A864FE), UINT32_C(0x0206E47F), UINT32_C(0xA55D0631), + UINT32_C(0xC94F137A), UINT32_C(0x8E8408F8), UINT32_C(0x9C1B3D29), + UINT32_C(0xB9193A5E), UINT32_C(0x150A4046)}, + {UINT32_C(0xCB1ADF21), UINT32_C(0x4E8F9345), UINT32_C(0x7BD5E1F9), + UINT32_C(0x6ED14D8A), UINT32_C(0x60809F68), UINT32_C(0x70825329), + UINT32_C(0xFA85A06C), UINT32_C(0x0D2F1C3B)}}, + }, + { + {{UINT32_C(0xB5C810C3), UINT32_C(0x3C5ABE75), UINT32_C(0xE28F1E26), + UINT32_C(0xEA2C3EF9), UINT32_C(0x8BF68280), UINT32_C(0xEEB1C568), + UINT32_C(0x7AE69110), UINT32_C(0x5A165CEB)}, + {UINT32_C(0x44550DF1), UINT32_C(0xE36C6460), UINT32_C(0xDB909258), + UINT32_C(0x6FB4B108), UINT32_C(0x17D4D8C5), UINT32_C(0xBFA14277), + UINT32_C(0x927976D8), UINT32_C(0x744CAF23)}}, + {{UINT32_C(0x47EA55C7), UINT32_C(0xCBE70DF9), UINT32_C(0x535457AE), + UINT32_C(0x8F8119AE), UINT32_C(0x7DAFD732), UINT32_C(0x1E3C69EC), + UINT32_C(0x39D409A2), UINT32_C(0x1A2E162D)}, + {UINT32_C(0x5F81C227), UINT32_C(0xBD7576A1), UINT32_C(0xC86AC2C3), + UINT32_C(0xA040AF9E), UINT32_C(0xC10FC749), UINT32_C(0x5690C059), + UINT32_C(0x49CFAEC6), UINT32_C(0x20B26E88)}}, + {{UINT32_C(0xE3EF781E), UINT32_C(0x87AEBD1E), UINT32_C(0x1609A1F0), + UINT32_C(0xBC794A62), UINT32_C(0x26E7F61B), UINT32_C(0x96D83142), + UINT32_C(0xFC51D17D), UINT32_C(0x5198577F)}, + {UINT32_C(0x8E6D0124), UINT32_C(0xBFB5FAE2), UINT32_C(0xFFD5BD72), + UINT32_C(0x91A7172B), UINT32_C(0x02832847), UINT32_C(0x474B0154), + UINT32_C(0x59827FEB), UINT32_C(0x4BAF0B4C)}}, + {{UINT32_C(0xBA090294), UINT32_C(0x5EADAA8E), UINT32_C(0x11A6E9FA), + UINT32_C(0x51401BC9), UINT32_C(0x1D2594CD), UINT32_C(0x78F11758), + UINT32_C(0x82D203C2), UINT32_C(0x1811AD30)}, + {UINT32_C(0x53FD07CC), UINT32_C(0x554CC39A), UINT32_C(0xC7A05601), + UINT32_C(0x055FC983), UINT32_C(0xD5A80B4B), UINT32_C(0xB3B34E95), + UINT32_C(0x1819BC16), UINT32_C(0x72B4CF94)}}, + {{UINT32_C(0x514FAFD0), UINT32_C(0x0750E4F0), UINT32_C(0xAD61C7B1), + UINT32_C(0x297D27E6), UINT32_C(0xA2D5D410), UINT32_C(0x701D743F), + UINT32_C(0xC83B55C9), UINT32_C(0x535DD97B)}, + {UINT32_C(0x1CB11BB0), UINT32_C(0x2EE96DDE), UINT32_C(0x0914450F), + UINT32_C(0xECEA32EA), UINT32_C(0x4CDBDA6A), UINT32_C(0x4FB81236), + UINT32_C(0x233C8063), UINT32_C(0x5B75B6B2)}}, + {{UINT32_C(0xD69D6C6A), UINT32_C(0xF0A934A6), UINT32_C(0x3CC80AC9), + UINT32_C(0x313E8977), UINT32_C(0x1E428B71), UINT32_C(0x74692B17), + UINT32_C(0xE1BE662D), UINT32_C(0x0474FEFC)}, + {UINT32_C(0xAFFBF61B), UINT32_C(0xAA2FF6DB), UINT32_C(0x776983AF), + UINT32_C(0xCE1594E1), UINT32_C(0x4D5A2596), UINT32_C(0xF00C665B), + UINT32_C(0x7D414B9A), UINT32_C(0x30DD2449)}}, + {{UINT32_C(0xACC44AB3), UINT32_C(0xEF862DA2), UINT32_C(0x6EE7A44A), + UINT32_C(0xBAD6857F), UINT32_C(0xD2F9027E), UINT32_C(0x57674BF9), + UINT32_C(0x2ABF816E), UINT32_C(0x4D771CC3)}, + {UINT32_C(0xAC0F1348), UINT32_C(0x27BEFC18), UINT32_C(0x5E4F1202), + UINT32_C(0xD83112EF), UINT32_C(0x8E9AAAE5), UINT32_C(0x3571BDE3), + UINT32_C(0xC1379B13), UINT32_C(0x07284830)}}, + {{UINT32_C(0x72A8890C), UINT32_C(0xA4C2F36F), UINT32_C(0x5824B392), + UINT32_C(0x22DF0E81), UINT32_C(0x5E720240), UINT32_C(0x50FAD77F), + UINT32_C(0x03278F96), UINT32_C(0x1D152A69)}, + {UINT32_C(0xA7D80F17), UINT32_C(0x25A3E92E), UINT32_C(0x7EF32666), + UINT32_C(0xBBF85B32), UINT32_C(0x27222E52), UINT32_C(0xBBB55687), + UINT32_C(0x7582FE42), UINT32_C(0x756D22A6)}}, + {{UINT32_C(0x9BC9EAED), UINT32_C(0x0AE7493A), UINT32_C(0x0DDBB275), + UINT32_C(0x9185F53F), UINT32_C(0xC3DFDBA7), UINT32_C(0x1585D068), + UINT32_C(0x562E2455), UINT32_C(0x543208A1)}, + {UINT32_C(0xCBCF9535), UINT32_C(0x4C417D81), UINT32_C(0xE35DD6ED), + UINT32_C(0xD2DC38D3), UINT32_C(0x346F03A4), UINT32_C(0x9DF1E014), + UINT32_C(0xF0E772A6), UINT32_C(0x65736E3F)}}, + {{UINT32_C(0xCFB7FF06), UINT32_C(0x58684A7B), UINT32_C(0xC58E6316), + UINT32_C(0x72CC4AFE), UINT32_C(0xA8BB508A), UINT32_C(0x2CA9BF30), + UINT32_C(0xE2044C8C), UINT32_C(0x61576519)}, + {UINT32_C(0x8FF6D2B5), UINT32_C(0xE78FAD3D), UINT32_C(0xA934C7B2), + UINT32_C(0x6E5B839F), UINT32_C(0xFAFA9F9B), UINT32_C(0xC1F3D367), + UINT32_C(0xF8B2AFA4), UINT32_C(0x637CC398)}}, + {{UINT32_C(0xFE2B2639), UINT32_C(0xD6FC1806), UINT32_C(0x9E98A7F2), + UINT32_C(0x1DB199B4), UINT32_C(0xC794F900), UINT32_C(0x0508763D), + UINT32_C(0x3232E5AC), UINT32_C(0x363F1F7D)}, + {UINT32_C(0xBBDBB351), UINT32_C(0xDCF2AD74), UINT32_C(0x5A506BC6), + UINT32_C(0x91F2EAF1), UINT32_C(0xB850088B), UINT32_C(0xBDE8459E), + UINT32_C(0x3E1135AF), UINT32_C(0x52DF883B)}}, + {{UINT32_C(0xF93779DC), UINT32_C(0x12FD053A), UINT32_C(0x9E319E46), + UINT32_C(0x3E3D8728), UINT32_C(0xE5E360AE), UINT32_C(0x4D631005), + UINT32_C(0xB1B29A30), UINT32_C(0x4A8B5683)}, + {UINT32_C(0xA8CA45EF), UINT32_C(0x305E5E53), UINT32_C(0xC2914843), + UINT32_C(0x59EACB45), UINT32_C(0x1988ECEA), UINT32_C(0x83677B7A), + UINT32_C(0xD6FD53E8), UINT32_C(0x63D9CD36)}}, + {{UINT32_C(0xB77EB45F), UINT32_C(0xDF2DACF2), UINT32_C(0x55BBA70E), + UINT32_C(0x3C1303E3), UINT32_C(0x4526A06C), UINT32_C(0x5AB8EB42), + UINT32_C(0x7FE06BBC), UINT32_C(0x4D4FD216)}, + {UINT32_C(0xE1486ABC), UINT32_C(0x98C5ADCF), UINT32_C(0x07F86F3A), + UINT32_C(0x9A503BFF), UINT32_C(0x56282E44), UINT32_C(0x7CEBAECB), + UINT32_C(0x1F230DA0), UINT32_C(0x4FB09037)}}, + {{UINT32_C(0x27210752), UINT32_C(0xD1A37384), UINT32_C(0x02CF1C74), + UINT32_C(0xD10794D6), UINT32_C(0x820CC08C), UINT32_C(0x48A2095A), + UINT32_C(0xE3284B9D), UINT32_C(0x6DCDDE2E)}, + {UINT32_C(0x5D40510D), UINT32_C(0xB8C7203E), UINT32_C(0x5385E3A7), + UINT32_C(0x957E8982), UINT32_C(0xE27D7C13), UINT32_C(0xD220BE2F), + UINT32_C(0x7B471B5B), UINT32_C(0x2D104AC5)}}, + {{UINT32_C(0xBA0AFA8D), UINT32_C(0x3B31D52B), UINT32_C(0xDCC85F88), + UINT32_C(0xFA9639F5), UINT32_C(0x8861DDD7), UINT32_C(0x15014637), + UINT32_C(0x7B5443B0), UINT32_C(0x31C222DB)}, + {UINT32_C(0xC3CDD689), UINT32_C(0xE2618546), UINT32_C(0xD528A130), + UINT32_C(0x7F3FB754), UINT32_C(0xAC5FAF99), UINT32_C(0xA0915810), + UINT32_C(0xE9899CE5), UINT32_C(0x3863B890)}}, + {{UINT32_C(0x579C4353), UINT32_C(0xBDD42CA3), UINT32_C(0x4D65CB5B), + UINT32_C(0xAD30567D), UINT32_C(0x6D91810B), UINT32_C(0x0E343F21), + UINT32_C(0x42E19816), UINT32_C(0x65E0092D)}, + {UINT32_C(0xF84E8C8E), UINT32_C(0x76154DCC), UINT32_C(0x0BA4AE59), + UINT32_C(0xBA147CA8), UINT32_C(0x56A1A71E), UINT32_C(0xCA8085E7), + UINT32_C(0x1A158536), UINT32_C(0x1D90B4B0)}}, + }, + { + {{UINT32_C(0xF8B6C26A), UINT32_C(0x5C4B7438), UINT32_C(0x645BBE80), + UINT32_C(0x0C17A41B), UINT32_C(0x40CF3D85), UINT32_C(0xA386062D), + UINT32_C(0xE78F776D), UINT32_C(0x563E42D2)}, + {UINT32_C(0x1F07459B), UINT32_C(0x4BB8E356), UINT32_C(0x75D222CD), + UINT32_C(0xF01A24B7), UINT32_C(0x24CF3F61), UINT32_C(0xBE3D032B), + UINT32_C(0x0AD5F3A3), UINT32_C(0x759B0167)}}, + {{UINT32_C(0x7D201AAB), UINT32_C(0x2F5AEBD1), UINT32_C(0xC0AE02AD), + UINT32_C(0x7B14CBEE), UINT32_C(0xEDC6388B), UINT32_C(0xB9B54430), + UINT32_C(0xB622E01F), UINT32_C(0x69E713FB)}, + {UINT32_C(0xC5361565), UINT32_C(0x4630EE8E), UINT32_C(0x5C8FB479), + UINT32_C(0x6705961E), UINT32_C(0x07C2AA45), UINT32_C(0x125CC97E), + UINT32_C(0x25AE3B12), UINT32_C(0x4BC459F4)}}, + {{UINT32_C(0x28CF94E4), UINT32_C(0xEF025496), UINT32_C(0x9DB24DE6), + UINT32_C(0x04CFAB25), UINT32_C(0xC62254EF), UINT32_C(0x52B8C734), + UINT32_C(0x568AB164), UINT32_C(0x0F2FE922)}, + {UINT32_C(0xE3F39B40), UINT32_C(0x48551A05), UINT32_C(0x31A7C7F6), + UINT32_C(0x4A36865F), UINT32_C(0x840441AE), UINT32_C(0x4486512C), + UINT32_C(0x8C7C4B4D), UINT32_C(0x559C6CAF)}}, + {{UINT32_C(0x0F103030), UINT32_C(0xFCC0D1DA), UINT32_C(0x39CD584E), + UINT32_C(0x7A9F1D55), UINT32_C(0x681D0D37), UINT32_C(0x3EFB9B94), + UINT32_C(0x4D842332), UINT32_C(0x3AE97CCD)}, + {UINT32_C(0x3C03676B), UINT32_C(0x85A8ECE1), UINT32_C(0x3AD435A1), + UINT32_C(0x030F8775), UINT32_C(0x7F2D73B5), UINT32_C(0xF6019B4D), + UINT32_C(0x2F14F911), UINT32_C(0x6B77E31A)}}, + {{UINT32_C(0x9186C671), UINT32_C(0x65C8161B), UINT32_C(0xCDFF2F8C), + UINT32_C(0x412C3CC7), UINT32_C(0x2C2FEA33), UINT32_C(0xBFFC1719), + UINT32_C(0xC3675845), UINT32_C(0x75DCF68B)}, + {UINT32_C(0x3B23D576), UINT32_C(0x0476AFBF), UINT32_C(0x19315F79), + UINT32_C(0xB20CAEE2), UINT32_C(0x0885471A), UINT32_C(0x1BC2A859), + UINT32_C(0xC328279C), UINT32_C(0x410FF6CF)}}, + {{UINT32_C(0x60569D94), UINT32_C(0x327394D9), UINT32_C(0x6EA39D95), + UINT32_C(0xFF2AEB6A), UINT32_C(0xEA0CA3AE), UINT32_C(0x1BED71E8), + UINT32_C(0x21072A94), UINT32_C(0x1000A81E)}, + {UINT32_C(0x73C02416), UINT32_C(0x368EA229), UINT32_C(0x0A4941BC), + UINT32_C(0xDF5B2A42), UINT32_C(0xD0D40B3A), UINT32_C(0x4FFDC7B8), + UINT32_C(0x48ABAB4E), UINT32_C(0x7B2C73F1)}}, + {{UINT32_C(0x81EE1072), UINT32_C(0x90FE34E4), UINT32_C(0x310E13D8), + UINT32_C(0xAE7A2FF4), UINT32_C(0xCAB3927C), UINT32_C(0x6213D3B1), + UINT32_C(0x7DC7E9EF), UINT32_C(0x44936FBD)}, + {UINT32_C(0x23A1BDBE), UINT32_C(0x3B898EF3), UINT32_C(0x54CC7B1D), + UINT32_C(0x3FA6C6A0), UINT32_C(0xC6AC54F2), UINT32_C(0x41BCC3B5), + UINT32_C(0xDC10AE39), UINT32_C(0x1AB5D168)}}, + {{UINT32_C(0xFEAF67A6), UINT32_C(0x1AED113C), UINT32_C(0x342AC459), + UINT32_C(0x04E3C7A1), UINT32_C(0x7A99DFBC), UINT32_C(0x65A39278), + UINT32_C(0x642329FF), UINT32_C(0x03ECBC6B)}, + {UINT32_C(0xA6A4421A), UINT32_C(0x799F4EC5), UINT32_C(0xBEE18B3C), + UINT32_C(0x44522C26), UINT32_C(0x1975C4BB), UINT32_C(0x1C7BFF15), + UINT32_C(0xE6A27857), UINT32_C(0x0FAA03BE)}}, + {{UINT32_C(0x0743FF7B), UINT32_C(0x173AB9E0), UINT32_C(0x2CFC95AE), + UINT32_C(0xB11187AE), UINT32_C(0x9C112049), UINT32_C(0xCA81BB2E), + UINT32_C(0xC03555D5), UINT32_C(0x6B811DB6)}, + {UINT32_C(0x4FE32256), UINT32_C(0x76C1FC14), UINT32_C(0xD0E47C4E), + UINT32_C(0xDA8C5A96), UINT32_C(0x29FDB01C), UINT32_C(0xB645D413), + UINT32_C(0xAC39502A), UINT32_C(0x78898447)}}, + {{UINT32_C(0x9BF44B35), UINT32_C(0x4285FF32), UINT32_C(0xE3358C7F), + UINT32_C(0x207F9029), UINT32_C(0x63BAF4CE), UINT32_C(0x0FE8F032), + UINT32_C(0xFF15E1F7), UINT32_C(0x698A0398)}, + {UINT32_C(0x7E572DF6), UINT32_C(0x54874843), UINT32_C(0x9F43C07B), + UINT32_C(0x74683519), UINT32_C(0x0A433D6A), UINT32_C(0x47BAB49E), + UINT32_C(0xFAB5C858), UINT32_C(0x09ED8740)}}, + {{UINT32_C(0x1F6CA820), UINT32_C(0x8AA5E5C9), UINT32_C(0xD3C25BEC), + UINT32_C(0xAD290A94), UINT32_C(0x3BA255F0), UINT32_C(0xDC4C67BF), + UINT32_C(0x1DEDD8A9), UINT32_C(0x0D7EF7D9)}, + {UINT32_C(0x5EEFD1C3), UINT32_C(0x0831A26F), UINT32_C(0x04483E0C), + UINT32_C(0x78CA66F5), UINT32_C(0x2FAAC15A), UINT32_C(0x9D5A5612), + UINT32_C(0x5D6FACDB), UINT32_C(0x43B0C7E7)}}, + {{UINT32_C(0x4503899D), UINT32_C(0x34BA537C), UINT32_C(0x2AF8ED3B), + UINT32_C(0x9DEBC8F5), UINT32_C(0x84F416E6), UINT32_C(0x396995E9), + UINT32_C(0xC7BCE392), UINT32_C(0x77F10FED)}, + {UINT32_C(0x1F8AF262), UINT32_C(0x065CCB72), UINT32_C(0xD2F00FC4), + UINT32_C(0xE220ED60), UINT32_C(0x5EE25B46), UINT32_C(0x41A5FB06), + UINT32_C(0xDD9070B1), UINT32_C(0x22505574)}}, + {{UINT32_C(0x44BFC5C0), UINT32_C(0x571FF151), UINT32_C(0x3138363C), + UINT32_C(0xBE2558B8), UINT32_C(0x605E356C), UINT32_C(0xB2211ABD), + UINT32_C(0x176C5F53), UINT32_C(0x0B6435DA)}, + {UINT32_C(0x8DCF484E), UINT32_C(0xF18C917C), UINT32_C(0xCD93D65F), + UINT32_C(0x45D4120C), UINT32_C(0x190AE7F8), UINT32_C(0xEBB0BF9C), + UINT32_C(0x8D8C8D5A), UINT32_C(0x3D403DE2)}}, + {{UINT32_C(0xBE656644), UINT32_C(0xCDE760B4), UINT32_C(0x2D21DBC5), + UINT32_C(0x99DC5E6D), UINT32_C(0xB6232D08), UINT32_C(0x644FCAF3), + UINT32_C(0x859341E3), UINT32_C(0x52955488)}, + {UINT32_C(0x25763919), UINT32_C(0x3AB4580D), UINT32_C(0x4EF66999), + UINT32_C(0x82AB0C53), UINT32_C(0x0180663E), UINT32_C(0xBD395C74), + UINT32_C(0xB4756474), UINT32_C(0x07974F1A)}}, + {{UINT32_C(0x31588EA6), UINT32_C(0x8C15CFE7), UINT32_C(0xF36C882D), + UINT32_C(0x9629060E), UINT32_C(0x862B080D), UINT32_C(0xDF8E8E9E), + UINT32_C(0xD7A0C5BE), UINT32_C(0x0BD36B48)}, + {UINT32_C(0x76DA047B), UINT32_C(0xEBD0C6C9), UINT32_C(0xBB94FD5A), + UINT32_C(0x4F0F08AB), UINT32_C(0x74910D9F), UINT32_C(0x33D41A4E), + UINT32_C(0xA9583754), UINT32_C(0x3D6F8D0B)}}, + {{UINT32_C(0x4E4FC72E), UINT32_C(0xEC4C896E), UINT32_C(0x002ECE31), + UINT32_C(0xB111210C), UINT32_C(0x2AF11E21), UINT32_C(0x7204D937), + UINT32_C(0x5D0509E9), UINT32_C(0x59B9C1EC)}, + {UINT32_C(0xF9D5BBC0), UINT32_C(0xBC97644C), UINT32_C(0x31B4E869), + UINT32_C(0x25B123AF), UINT32_C(0x5A6CAAB0), UINT32_C(0x091D7AEC), + UINT32_C(0xECC911C4), UINT32_C(0x340B9E80)}}, + }, + { + {{UINT32_C(0xEC208406), UINT32_C(0xE8036B20), UINT32_C(0x214CEB5A), + UINT32_C(0xAF46A05A), UINT32_C(0x46CC8379), UINT32_C(0x8672084A), + UINT32_C(0x04BA7885), UINT32_C(0x7DE0A42F)}, + {UINT32_C(0xC9D3F32A), UINT32_C(0xB772BEDC), UINT32_C(0x534B1520), + UINT32_C(0x7DAE3680), UINT32_C(0xEC7120CC), UINT32_C(0x04CD6203), + UINT32_C(0xB4E99780), UINT32_C(0x032F88E3)}}, + {{UINT32_C(0xE4A0897E), UINT32_C(0xB34BDA5C), UINT32_C(0x379B2480), + UINT32_C(0xF7748B26), UINT32_C(0xB2D97522), UINT32_C(0xF47F6646), + UINT32_C(0xF9641DB9), UINT32_C(0x66AD8DE1)}, + {UINT32_C(0xD1BF09C0), UINT32_C(0x0F8EB919), UINT32_C(0xB95DC052), + UINT32_C(0x7853BB4E), UINT32_C(0x62B1FD4A), UINT32_C(0xBE7EE13D), + UINT32_C(0xDC7CE53E), UINT32_C(0x2FF7EDC5)}}, + {{UINT32_C(0xEE81DF35), UINT32_C(0xE1009AA0), UINT32_C(0x61D0798B), + UINT32_C(0x14972F02), UINT32_C(0xF1EA1A6A), UINT32_C(0x5A6831A0), + UINT32_C(0x0CAB301A), UINT32_C(0x1DBABA3D)}, + {UINT32_C(0x157D5213), UINT32_C(0x421270E2), UINT32_C(0x6407B790), + UINT32_C(0xA37BEA95), UINT32_C(0x103A6073), UINT32_C(0xEAD56B1F), + UINT32_C(0xBAD909F1), UINT32_C(0x27534624)}}, + {{UINT32_C(0xC2621EF1), UINT32_C(0xC92D2209), UINT32_C(0x1D3AD3F3), + UINT32_C(0x450710C3), UINT32_C(0x19E481AD), UINT32_C(0x8CFB8D6C), + UINT32_C(0xE6DB01BD), UINT32_C(0x35CACDAE)}, + {UINT32_C(0x7CDD5B01), UINT32_C(0x2DA4A1D8), UINT32_C(0x0F55BA11), + UINT32_C(0x3E40C751), UINT32_C(0xB15C162D), UINT32_C(0xA91D9EE7), + UINT32_C(0x11DBA157), UINT32_C(0x13AD3BE5)}}, + {{UINT32_C(0xE72F64F5), UINT32_C(0xAE417DB0), UINT32_C(0xF13352BA), + UINT32_C(0x40822279), UINT32_C(0x1F2B75B9), UINT32_C(0xEC43AFD9), + UINT32_C(0xC9CF2972), UINT32_C(0x14D4BB2B)}, + {UINT32_C(0x0761B2F1), UINT32_C(0x4A55718A), UINT32_C(0xD81A9307), + UINT32_C(0xDAFBF756), UINT32_C(0x5D3E5A07), UINT32_C(0x2DCDFC1C), + UINT32_C(0x2EBBDF28), UINT32_C(0x696E42ED)}}, + {{UINT32_C(0x68705410), UINT32_C(0xF4739399), UINT32_C(0xAF5FFC88), + UINT32_C(0xFD581005), UINT32_C(0x90A9F517), UINT32_C(0x5490A694), + UINT32_C(0x8CF8327E), UINT32_C(0x4A5C8C2E)}, + {UINT32_C(0xF7D83DA6), UINT32_C(0xC203CD35), UINT32_C(0x7282368D), + UINT32_C(0xECAA6B90), UINT32_C(0x2AF7EC42), UINT32_C(0x365BB571), + UINT32_C(0xD4099316), UINT32_C(0x112E7ACD)}}, + {{UINT32_C(0x3AE3C25C), UINT32_C(0x9ABDE060), UINT32_C(0xEB9925B2), + UINT32_C(0xE4C03DAD), UINT32_C(0x9E03388B), UINT32_C(0x3C28DCB1), + UINT32_C(0x52B63C06), UINT32_C(0x2337A7CF)}, + {UINT32_C(0x4E1AF2EA), UINT32_C(0x74DC0F13), UINT32_C(0xCD0D59AA), + UINT32_C(0xA010E4E3), UINT32_C(0x9FA14C96), UINT32_C(0x6E4DB7BA), + UINT32_C(0x557F7CDE), UINT32_C(0x5B2C3862)}}, + {{UINT32_C(0xC8C79CA9), UINT32_C(0xC826E567), UINT32_C(0xE851BE0C), + UINT32_C(0xE7D110CA), UINT32_C(0xA3606499), UINT32_C(0xFFD57057), + UINT32_C(0xC6482504), UINT32_C(0x2E9DBC40)}, + {UINT32_C(0xF784D9AF), UINT32_C(0xC9F0C3C2), UINT32_C(0xB755172E), + UINT32_C(0xDD982A05), UINT32_C(0xA023997F), UINT32_C(0x6BC6C19D), + UINT32_C(0xE34493C6), UINT32_C(0x4AC177BE)}}, + {{UINT32_C(0x4FA4F134), UINT32_C(0x21C3E087), UINT32_C(0x86F9722F), + UINT32_C(0x66E10C34), UINT32_C(0x7398579A), UINT32_C(0xD2927B01), + UINT32_C(0x0352C3D3), UINT32_C(0x7135B638)}, + {UINT32_C(0x3BB5EE11), UINT32_C(0x2DA62007), UINT32_C(0x3A946236), + UINT32_C(0x8B64F13C), UINT32_C(0x30EAE6DF), UINT32_C(0x3A83C854), + UINT32_C(0x0EB6F749), UINT32_C(0x31114E2A)}}, + {{UINT32_C(0x35BFC72B), UINT32_C(0x2C7B52E7), UINT32_C(0x2B0D4C2C), + UINT32_C(0x6DD29EBD), UINT32_C(0x6C92E82D), UINT32_C(0xE90D3988), + UINT32_C(0x3864D94D), UINT32_C(0x0A924901)}, + {UINT32_C(0x9BEE9E78), UINT32_C(0x63050824), UINT32_C(0x003DD5CF), + UINT32_C(0x7929FD62), UINT32_C(0xE57507D1), UINT32_C(0xD04F832C), + UINT32_C(0x37D2C32E), UINT32_C(0x61078BDC)}}, + {{UINT32_C(0x2E75264A), UINT32_C(0xB118AFDD), UINT32_C(0xEFD65114), + UINT32_C(0x3AB692EA), UINT32_C(0x8B0A2128), UINT32_C(0x58D2CE24), + UINT32_C(0x82ED6D5F), UINT32_C(0x4316E6C2)}, + {UINT32_C(0x46345BE4), UINT32_C(0x97766FFF), UINT32_C(0x0A7451AA), + UINT32_C(0xD7FF3014), UINT32_C(0xAACE2E37), UINT32_C(0x078A423F), + UINT32_C(0xA6A78919), UINT32_C(0x7F1F90C2)}}, + {{UINT32_C(0x8E9E3D4D), UINT32_C(0x988FCCB0), UINT32_C(0xB95C9731), + UINT32_C(0xBD003FC0), UINT32_C(0xB0A84E58), UINT32_C(0x74E40076), + UINT32_C(0x1DF7FDD0), UINT32_C(0x5FD1DBE6)}, + {UINT32_C(0x4E6CE2FA), UINT32_C(0xD2C700C7), UINT32_C(0x903C5AE7), + UINT32_C(0xA6E042E2), UINT32_C(0x3C73822E), UINT32_C(0x561CC25F), + UINT32_C(0x2A6A0C0C), UINT32_C(0x651A7939)}}, + {{UINT32_C(0x88CD7642), UINT32_C(0x103E9EC6), UINT32_C(0x3C3C86CE), + UINT32_C(0x65ED5218), UINT32_C(0x82785C8B), UINT32_C(0x16BAB002), + UINT32_C(0xF34723C5), UINT32_C(0x0B5C18BB)}, + {UINT32_C(0xE724D144), UINT32_C(0x528B0546), UINT32_C(0x780EEF9E), + UINT32_C(0x5E582A6B), UINT32_C(0x122F17AD), UINT32_C(0xC08283B8), + UINT32_C(0x1C22F32D), UINT32_C(0x0300EDCD)}}, + {{UINT32_C(0x38DCFD39), UINT32_C(0x03AC716A), UINT32_C(0x94F12C74), + UINT32_C(0xCD88474C), UINT32_C(0xE9042CA8), UINT32_C(0xB5E8641E), + UINT32_C(0x40D10558), UINT32_C(0x1D5746CC)}, + {UINT32_C(0xCB4BB408), UINT32_C(0x7869F45E), UINT32_C(0x569489C3), + UINT32_C(0x28FB091D), UINT32_C(0x50A46306), UINT32_C(0xEA371EEC), + UINT32_C(0x75AA224C), UINT32_C(0x28025796)}}, + {{UINT32_C(0xF7A5923A), UINT32_C(0x4EAFA44E), UINT32_C(0x6B69FD8B), + UINT32_C(0xD2427C30), UINT32_C(0x393D83F9), UINT32_C(0x4C4E884A), + UINT32_C(0x6236AB65), UINT32_C(0x2D34890A)}, + {UINT32_C(0x35CC97F5), UINT32_C(0x80038D40), UINT32_C(0x97897472), + UINT32_C(0x4FE43C84), UINT32_C(0xBEF161AF), UINT32_C(0xE5F56243), + UINT32_C(0x9372E631), UINT32_C(0x3E1BDD6F)}}, + {{UINT32_C(0x5732669F), UINT32_C(0x06A2B287), UINT32_C(0xCDF4D2C0), + UINT32_C(0x92D00397), UINT32_C(0x454A57F5), UINT32_C(0xCD9A25F0), + UINT32_C(0x2F0CDB0B), UINT32_C(0x23ADB724)}, + {UINT32_C(0xFF0F8CB0), UINT32_C(0x504DA603), UINT32_C(0xD3E24181), + UINT32_C(0x14EF9D30), UINT32_C(0x47FC1E66), UINT32_C(0xB1B1328E), + UINT32_C(0x6C60354D), UINT32_C(0x319B2A84)}}, + }, + { + {{UINT32_C(0xF1D56038), UINT32_C(0xBBF5542E), UINT32_C(0xDD71CFC3), + UINT32_C(0xEDE3E637), UINT32_C(0x2E9F6C8B), UINT32_C(0xFAA81D21), + UINT32_C(0x69FBD060), UINT32_C(0x4DD2D44B)}, + {UINT32_C(0x14366A20), UINT32_C(0x71FB6233), UINT32_C(0x9575451D), + UINT32_C(0x155E486F), UINT32_C(0xEC7807D9), UINT32_C(0x001106F0), + UINT32_C(0xC617034C), UINT32_C(0x1C80E5AB)}}, + {{UINT32_C(0x8619F5F4), UINT32_C(0xD3E478DB), UINT32_C(0xF68170C2), + UINT32_C(0x1DF5C367), UINT32_C(0x3430DE1D), UINT32_C(0xEAB09524), + UINT32_C(0xC3CD4C24), UINT32_C(0x48F09361)}, + {UINT32_C(0x60644FED), UINT32_C(0xE49DEA4B), UINT32_C(0x758C3679), + UINT32_C(0x47170F1C), UINT32_C(0xB0382A84), UINT32_C(0x4CC1E6E8), + UINT32_C(0x10A4465E), UINT32_C(0x2DBDB9DA)}}, + {{UINT32_C(0xC8400A4C), UINT32_C(0x67BAA79A), UINT32_C(0x01D28ECE), + UINT32_C(0xFA306753), UINT32_C(0x6F33289C), UINT32_C(0x29DB5B1C), + UINT32_C(0x26A8FCB4), UINT32_C(0x44757573)}, + {UINT32_C(0xE1B0A795), UINT32_C(0x59616219), UINT32_C(0xC5B32FA0), + UINT32_C(0x3032D939), UINT32_C(0x7C3CEA2C), UINT32_C(0x3010C917), + UINT32_C(0x9892BDF4), UINT32_C(0x5CF83EF1)}}, + {{UINT32_C(0x3C7E83E6), UINT32_C(0x55DE1141), UINT32_C(0x74EA0366), + UINT32_C(0x9D03929C), UINT32_C(0x83BAF3FE), UINT32_C(0x5CA60C50), + UINT32_C(0x7F70E905), UINT32_C(0x3D9BCA58)}, + {UINT32_C(0xFCC5AB59), UINT32_C(0xDB79DF5A), UINT32_C(0x53F68D30), + UINT32_C(0x03CFCF06), UINT32_C(0x4FCFA5F1), UINT32_C(0xBE101A78), + UINT32_C(0xB49E493C), UINT32_C(0x115D7078)}}, + {{UINT32_C(0x76A0CCBD), UINT32_C(0xF14023AA), UINT32_C(0x086F2E50), + UINT32_C(0x4287F0BC), UINT32_C(0xF79A37E7), UINT32_C(0xC5EAA559), + UINT32_C(0x04E4F2A2), UINT32_C(0x5D527C09)}, + {UINT32_C(0x51DAA504), UINT32_C(0xEC914616), UINT32_C(0xEEF1DC95), + UINT32_C(0x250D90C6), UINT32_C(0xA50330B2), UINT32_C(0x1B0AA868), + UINT32_C(0x54189BBE), UINT32_C(0x7B45A783)}}, + {{UINT32_C(0xF019D6FF), UINT32_C(0x0D602E05), UINT32_C(0xDD1800BA), + UINT32_C(0x563E3893), UINT32_C(0xF3C7F7E5), UINT32_C(0x7146727E), + UINT32_C(0x4B026635), UINT32_C(0x59641D98)}, + {UINT32_C(0xE91DDBB8), UINT32_C(0x50BCF90F), UINT32_C(0x7F8397A6), + UINT32_C(0x5D43E78E), UINT32_C(0xEB15896E), UINT32_C(0x8734A261), + UINT32_C(0x9FF6B361), UINT32_C(0x4AD1E864)}}, + {{UINT32_C(0x320322F1), UINT32_C(0x1A9B601F), UINT32_C(0x91F611C4), + UINT32_C(0x606D40B3), UINT32_C(0xA19C918F), UINT32_C(0xB984958B), + UINT32_C(0x776F834E), UINT32_C(0x67BFB045)}, + {UINT32_C(0x68DD85F0), UINT32_C(0xC59E5569), UINT32_C(0xD4067875), + UINT32_C(0xB5642834), UINT32_C(0xCB138DF3), UINT32_C(0x247E7D65), + UINT32_C(0x5CB9281D), UINT32_C(0x73640A03)}}, + {{UINT32_C(0x88639889), UINT32_C(0xC7C34CCC), UINT32_C(0xA785C707), + UINT32_C(0xD9E44E07), UINT32_C(0x32F83073), UINT32_C(0x1BE68EFE), + UINT32_C(0xAE5317CE), UINT32_C(0x249902DA)}, + {UINT32_C(0x76CA92FF), UINT32_C(0xF1F0B86A), UINT32_C(0xC01CB06B), + UINT32_C(0xA7F502CF), UINT32_C(0x595AA185), UINT32_C(0x0A8B4766), + UINT32_C(0xB792DE49), UINT32_C(0x614135AA)}}, + {{UINT32_C(0x564F2BC8), UINT32_C(0x5392CAA7), UINT32_C(0xCC894FCD), + UINT32_C(0x1CDDA684), UINT32_C(0xA4EBF82F), UINT32_C(0x10AC2378), + UINT32_C(0x5051BFF9), UINT32_C(0x6211EA46)}, + {UINT32_C(0x30E8E210), UINT32_C(0xE53B0174), UINT32_C(0x02C0E381), + UINT32_C(0x2374FEC3), UINT32_C(0x4DA07224), UINT32_C(0xF8B1506B), + UINT32_C(0x54DA7A08), UINT32_C(0x4E451E01)}}, + {{UINT32_C(0x241FC7FB), UINT32_C(0xA8404D9C), UINT32_C(0xC4406332), + UINT32_C(0x1D6DBF6E), UINT32_C(0x30162118), UINT32_C(0xFE142319), + UINT32_C(0xA7EF5EF5), UINT32_C(0x69DE75CC)}, + {UINT32_C(0x856E26A5), UINT32_C(0x008D4D09), UINT32_C(0xC588ECF6), + UINT32_C(0x2BC64B65), UINT32_C(0xAA01EE19), UINT32_C(0x7A523D0B), + UINT32_C(0x932F0B95), UINT32_C(0x213EF390)}}, + {{UINT32_C(0x1CD716FA), UINT32_C(0xA42FE513), UINT32_C(0x0E8001B6), + UINT32_C(0xFB13B3C6), UINT32_C(0xD8F530CB), UINT32_C(0xBFDC7998), + UINT32_C(0xF1C61761), UINT32_C(0x04F9C05B)}, + {UINT32_C(0xAFED9D64), UINT32_C(0xFB57396F), UINT32_C(0x421AC123), + UINT32_C(0x28CCEE3A), UINT32_C(0xF6C21ACC), UINT32_C(0x32590C9B), + UINT32_C(0xBCA75AE3), UINT32_C(0x503B97CB)}}, + {{UINT32_C(0x366946ED), UINT32_C(0x745208BC), UINT32_C(0x4C906596), + UINT32_C(0xA75D88E9), UINT32_C(0xEE043530), UINT32_C(0x03A30C7E), + UINT32_C(0xD11BF4D5), UINT32_C(0x5C67C151)}, + {UINT32_C(0xE7AE4BB3), UINT32_C(0x04F75DFA), UINT32_C(0x7F8D7404), + UINT32_C(0xA0813606), UINT32_C(0x19D68F64), UINT32_C(0x8B9F9210), + UINT32_C(0x06F73B55), UINT32_C(0x5AB67971)}}, + {{UINT32_C(0xB0687095), UINT32_C(0x08064C4A), UINT32_C(0xB0106DF4), + UINT32_C(0x27E30DDD), UINT32_C(0x8482524A), UINT32_C(0x31D29C70), + UINT32_C(0xD86FDACD), UINT32_C(0x65DD5896)}, + {UINT32_C(0xC647197E), UINT32_C(0x081C013D), UINT32_C(0xD7A53A45), + UINT32_C(0x51C10B9E), UINT32_C(0x0DD7FC53), UINT32_C(0xACB9A4DE), + UINT32_C(0xF646220B), UINT32_C(0x639997A2)}}, + {{UINT32_C(0x1FB93B43), UINT32_C(0x97CCF825), UINT32_C(0xE488D786), + UINT32_C(0xB7D7713D), UINT32_C(0x3E4DBB33), UINT32_C(0x4F759566), + UINT32_C(0xE0F09964), UINT32_C(0x13B5D8A1)}, + {UINT32_C(0x316CDD97), UINT32_C(0xFFDDAD74), UINT32_C(0x52C92EE9), + UINT32_C(0x67C55782), UINT32_C(0x0AC5D6FD), UINT32_C(0x03B50F94), + UINT32_C(0x1484DF88), UINT32_C(0x56C5C009)}}, + {{UINT32_C(0x1778D303), UINT32_C(0xDCE199E3), UINT32_C(0x0F1DD4EC), + UINT32_C(0x53A2A4C6), UINT32_C(0x370A7B99), UINT32_C(0x7CC5EE9E), + UINT32_C(0x2598744E), UINT32_C(0x4403202B)}, + {UINT32_C(0x228247B6), UINT32_C(0xCCFAA978), UINT32_C(0x4A1D0E27), + UINT32_C(0xF50D14BD), UINT32_C(0x80723ABC), UINT32_C(0x66695061), + UINT32_C(0x742C0015), UINT32_C(0x750CCB6A)}}, + {{UINT32_C(0x81A109F1), UINT32_C(0x7B046936), UINT32_C(0xD4C1AFE5), + UINT32_C(0x6414D9A3), UINT32_C(0xDD14AC1F), UINT32_C(0x35070548), + UINT32_C(0xDEC0D3F0), UINT32_C(0x27172F39)}, + {UINT32_C(0xF2E273F0), UINT32_C(0x4EE0A7BF), UINT32_C(0xEC82B8E6), + UINT32_C(0x028C7813), UINT32_C(0x2081EAE2), UINT32_C(0x907BF09F), + UINT32_C(0x414D6421), UINT32_C(0x72E4C3D3)}}, + }, + { + {{UINT32_C(0xA073711C), UINT32_C(0x2064097E), UINT32_C(0x5A65EC25), + UINT32_C(0x980D830A), UINT32_C(0xF0877567), UINT32_C(0x7906A87C), + UINT32_C(0xF1980A3A), UINT32_C(0x3E5EAE10)}, + {UINT32_C(0x9272CE32), UINT32_C(0x5F51023A), UINT32_C(0xA437C974), + UINT32_C(0x71D69E68), UINT32_C(0xD0B579FF), UINT32_C(0x32006EA1), + UINT32_C(0xA436E129), UINT32_C(0x191935FF)}}, + {{UINT32_C(0x91C1474C), UINT32_C(0xE5FE2909), UINT32_C(0x1F0B10F5), + UINT32_C(0x7350B9FA), UINT32_C(0x6B4AB128), UINT32_C(0x2006F41D), + UINT32_C(0xCD95FA42), UINT32_C(0x4EBDA6CF)}, + {UINT32_C(0x5DA9A7F4), UINT32_C(0x45028938), UINT32_C(0x57FB462B), + UINT32_C(0xD8129DE4), UINT32_C(0xE592EF90), UINT32_C(0x4F2BF2C9), + UINT32_C(0xD6751DCC), UINT32_C(0x14A1A16B)}}, + {{UINT32_C(0xDE0CD47A), UINT32_C(0x7460BB84), UINT32_C(0x468CBA3D), + UINT32_C(0x261F24D6), UINT32_C(0x1E3C2D8A), UINT32_C(0x229D3181), + UINT32_C(0x1D19E059), UINT32_C(0x4AE520C9)}, + {UINT32_C(0xDF8DC66E), UINT32_C(0x5AC3AEE7), UINT32_C(0x299697EE), + UINT32_C(0xCB417060), UINT32_C(0xCE97514F), UINT32_C(0x227C1497), + UINT32_C(0x2E991FDE), UINT32_C(0x2589B803)}}, + {{UINT32_C(0xA97A5D03), UINT32_C(0x7FE9D585), UINT32_C(0x10D58157), + UINT32_C(0x7333A1EF), UINT32_C(0xC94C3DF6), UINT32_C(0x54C1CCD2), + UINT32_C(0x28073B4E), UINT32_C(0x25C1B252)}, + {UINT32_C(0x0635AD79), UINT32_C(0xEEB29AF9), UINT32_C(0x9AA38848), + UINT32_C(0x880019C1), UINT32_C(0x30A9A497), UINT32_C(0x1A859942), + UINT32_C(0x92B25ABA), UINT32_C(0x57EDCC2D)}}, + {{UINT32_C(0x65E19DE6), UINT32_C(0xA98DAE7D), UINT32_C(0x46AD8696), + UINT32_C(0x8007DD17), UINT32_C(0xA7F3BBAD), UINT32_C(0x61F2E2CF), + UINT32_C(0x54193858), UINT32_C(0x1EFCD387)}, + {UINT32_C(0x11666ECF), UINT32_C(0xFB54FD60), UINT32_C(0x36E7D371), + UINT32_C(0xD97EA5DF), UINT32_C(0x3B9371FF), UINT32_C(0x944CA170), + UINT32_C(0x05DE7FB0), UINT32_C(0x32A52CAC)}}, + {{UINT32_C(0x19ED8B5E), UINT32_C(0xB960FFF6), UINT32_C(0x660354BB), + UINT32_C(0xFD6B4C3E), UINT32_C(0x1C9E95F0), UINT32_C(0xF8ECAADA), + UINT32_C(0xA8E08CC7), UINT32_C(0x687A6D29)}, + {UINT32_C(0xC6A83D12), UINT32_C(0xD38B7670), UINT32_C(0x1265BF30), + UINT32_C(0x1646064C), UINT32_C(0x2464892D), UINT32_C(0x7DE19FFE), + UINT32_C(0x1BDBB729), UINT32_C(0x05B57E08)}}, + {{UINT32_C(0xFFB7A98A), UINT32_C(0xF3586B04), UINT32_C(0xCB072826), + UINT32_C(0xF1850CDC), UINT32_C(0xCF53BFB0), UINT32_C(0xFA3E66A4), + UINT32_C(0x06E07221), UINT32_C(0x7C78E567)}, + {UINT32_C(0x3B4E72AE), UINT32_C(0x21E6F245), UINT32_C(0xC6A3DBE8), + UINT32_C(0x10A0D78B), UINT32_C(0xD618DDAB), UINT32_C(0xB9FC6D77), + UINT32_C(0x76951DE5), UINT32_C(0x33092D13)}}, + {{UINT32_C(0x5A0257CB), UINT32_C(0xCAA1BF9D), UINT32_C(0x866C505F), + UINT32_C(0x1044E224), UINT32_C(0x81482E7D), UINT32_C(0x9B514107), + UINT32_C(0x88940BFB), UINT32_C(0x538CB867)}, + {UINT32_C(0xAC21DCC1), UINT32_C(0xACE68B78), UINT32_C(0x1609BF8C), + UINT32_C(0x57942F3C), UINT32_C(0x66E48C7A), UINT32_C(0x30A47F32), + UINT32_C(0xB0DA341F), UINT32_C(0x170D301D)}}, + {{UINT32_C(0x18ED9863), UINT32_C(0x19643EB2), UINT32_C(0xD9104F33), + UINT32_C(0xBBE55BCC), UINT32_C(0xA15B283C), UINT32_C(0x77008B6C), + UINT32_C(0x873A6A02), UINT32_C(0x2A6E0B41)}, + {UINT32_C(0x3CB9A225), UINT32_C(0x517410DF), UINT32_C(0xF538730A), + UINT32_C(0x20D76E38), UINT32_C(0x9F8724F0), UINT32_C(0x76C9CAD6), + UINT32_C(0x6BE9A035), UINT32_C(0x588BA106)}}, + {{UINT32_C(0xF842F66C), UINT32_C(0xA059DBEC), UINT32_C(0xB3ED0481), + UINT32_C(0x59CA186D), UINT32_C(0xD454490F), UINT32_C(0xA5B2ABCB), + UINT32_C(0x02624902), UINT32_C(0x4A0F6004)}, + {UINT32_C(0x4D2F605F), UINT32_C(0x45AF7B51), UINT32_C(0xC368030F), + UINT32_C(0x57E8FE0F), UINT32_C(0x0C0727AE), UINT32_C(0x23B74557), + UINT32_C(0x2B603EC4), UINT32_C(0x7E91EC77)}}, + {{UINT32_C(0xFD582BE8), UINT32_C(0xEDD284CF), UINT32_C(0x81093CDA), + UINT32_C(0x3077CB23), UINT32_C(0xFDEA4FCE), UINT32_C(0xB1934840), + UINT32_C(0xD7F01C9A), UINT32_C(0x00F9B9D1)}, + {UINT32_C(0x0A1C707B), UINT32_C(0xA55E5C5B), UINT32_C(0x2F8618A5), + UINT32_C(0x05CD73CB), UINT32_C(0x512EEA05), UINT32_C(0x7327CECB), + UINT32_C(0x8BF2A4D5), UINT32_C(0x5130A099)}}, + {{UINT32_C(0xFA7A1C7B), UINT32_C(0x34D18880), UINT32_C(0xFD4E043F), + UINT32_C(0x5E0D6C53), UINT32_C(0x1B4442AE), UINT32_C(0xB4DD8010), + UINT32_C(0x78ED7563), UINT32_C(0x59D9183E)}, + {UINT32_C(0xF1FAE158), UINT32_C(0x624DDAFC), UINT32_C(0x5C4C1E92), + UINT32_C(0xC08C3653), UINT32_C(0xCE3E42EF), UINT32_C(0x452FD71F), + UINT32_C(0x20B902EC), UINT32_C(0x175B4908)}}, + {{UINT32_C(0x18F4CE34), UINT32_C(0x5F0FDF24), UINT32_C(0x9B7E61B8), + UINT32_C(0xA64A3011), UINT32_C(0x663362E2), UINT32_C(0x8109ACD5), + UINT32_C(0x97F3DF44), UINT32_C(0x4D02F824)}, + {UINT32_C(0x3A4F916A), UINT32_C(0x2CE27CCE), UINT32_C(0x3B85B146), + UINT32_C(0x4A4E6CBB), UINT32_C(0xDB8C9E5E), UINT32_C(0xFE7A6199), + UINT32_C(0xD94B8D23), UINT32_C(0x53F5D620)}}, + {{UINT32_C(0xE77610A9), UINT32_C(0x37FEBEC3), UINT32_C(0x92245CB0), + UINT32_C(0xE82D8EAC), UINT32_C(0xF79A31BC), UINT32_C(0x3FD2CEEA), + UINT32_C(0xB446850C), UINT32_C(0x277ACF32)}, + {UINT32_C(0xCE1A2786), UINT32_C(0xD89FF4C7), UINT32_C(0xFFD3A23C), + UINT32_C(0x441781E5), UINT32_C(0x07E85496), UINT32_C(0x7876EFC5), + UINT32_C(0xE6F41B30), UINT32_C(0x0F306C7B)}}, + {{UINT32_C(0x5AB1B92B), UINT32_C(0x3BF2BFD1), UINT32_C(0xF373FCF2), + UINT32_C(0xDCC3F5A6), UINT32_C(0xDA53C229), UINT32_C(0x27CFC4A6), + UINT32_C(0x508E677F), UINT32_C(0x5885737C)}, + {UINT32_C(0x7B829F24), UINT32_C(0x1275D0F1), UINT32_C(0x4991B75B), + UINT32_C(0xBD3C0B02), UINT32_C(0xE581C569), UINT32_C(0x3F82ACDF), + UINT32_C(0x3F28904E), UINT32_C(0x12329435)}}, + {{UINT32_C(0x99C3A09B), UINT32_C(0xCF7BDCCC), UINT32_C(0x5F7D601A), + UINT32_C(0x19191107), UINT32_C(0x39FBAA22), UINT32_C(0xA82F7460), + UINT32_C(0xD75B5786), UINT32_C(0x3105A6FC)}, + {UINT32_C(0x932F69A6), UINT32_C(0x9673DAC4), UINT32_C(0xB57D6EE6), + UINT32_C(0xF5664B25), UINT32_C(0x0A3CDD3E), UINT32_C(0x1EDAC112), + UINT32_C(0x42778563), UINT32_C(0x3CF84F8C)}}, + }, + { + {{UINT32_C(0x65DE3040), UINT32_C(0xE36FD1B7), UINT32_C(0x8AA0D3FE), + UINT32_C(0x240EADEA), UINT32_C(0x7F77F804), UINT32_C(0x76971431), + UINT32_C(0x591E9694), UINT32_C(0x6FCC933E)}, + {UINT32_C(0x18F48742), UINT32_C(0x3218D92B), UINT32_C(0x5E1B4001), + UINT32_C(0x215F13E9), UINT32_C(0x7A8D69B9), UINT32_C(0xCDF333CD), + UINT32_C(0xD2FD134F), UINT32_C(0x14F159B1)}}, + {{UINT32_C(0x07A50C16), UINT32_C(0x2D1228D6), UINT32_C(0x29AE42FD), + UINT32_C(0x0DFD80F6), UINT32_C(0xBB8F3512), UINT32_C(0x6C18B122), + UINT32_C(0x303F3DCA), UINT32_C(0x0FE61243)}, + {UINT32_C(0xDA50709B), UINT32_C(0x43A29F4D), UINT32_C(0x4B92BF7B), + UINT32_C(0x3FF58C08), UINT32_C(0xDFCEF797), UINT32_C(0x62DC6B41), + UINT32_C(0xC7B83F32), UINT32_C(0x43F9525A)}}, + {{UINT32_C(0x15F08F5B), UINT32_C(0x17EBBC9A), UINT32_C(0x8BB3E932), + UINT32_C(0xBCD3B640), UINT32_C(0x510BBD36), UINT32_C(0xD46FBB9F), + UINT32_C(0xCF65442B), UINT32_C(0x389ABBA8)}, + {UINT32_C(0xB575545C), UINT32_C(0x3A3DAFE4), UINT32_C(0xE1D0994D), + UINT32_C(0x6AB985EC), UINT32_C(0x69E1DB27), UINT32_C(0xCC2A697B), + UINT32_C(0x271581DC), UINT32_C(0x0D483E18)}}, + {{UINT32_C(0xC046D968), UINT32_C(0x380D4095), UINT32_C(0x55D3318B), + UINT32_C(0x53039755), UINT32_C(0x91CE6FFC), UINT32_C(0x57FA7629), + UINT32_C(0xA4ADB641), UINT32_C(0x0A0F2885)}, + {UINT32_C(0x6E5C2909), UINT32_C(0x8B99AF1B), UINT32_C(0xB8794175), + UINT32_C(0xBDFE7FFD), UINT32_C(0x795ED786), UINT32_C(0x2CFB948A), + UINT32_C(0x0FD0DF66), UINT32_C(0x11FE7465)}}, + {{UINT32_C(0x22E152E2), UINT32_C(0xFC2CC2BD), UINT32_C(0xE30BCEB3), + UINT32_C(0xCF6AB96B), UINT32_C(0xBC89B689), UINT32_C(0xAE89C041), + UINT32_C(0xE7523AB6), UINT32_C(0x6813430C)}, + {UINT32_C(0x40A4FA33), UINT32_C(0x3F49E728), UINT32_C(0x857CB0C9), + UINT32_C(0x025DE1B7), UINT32_C(0x11EA5EA5), UINT32_C(0x6D71465A), + UINT32_C(0x46C8D7CB), UINT32_C(0x6651F7B9)}}, + {{UINT32_C(0x5268098F), UINT32_C(0xD05F1DCE), UINT32_C(0x0DC75030), + UINT32_C(0x891DBB68), UINT32_C(0xEA916291), UINT32_C(0xD939E428), + UINT32_C(0xEA37D060), UINT32_C(0x5F8EECCC)}, + {UINT32_C(0x8DC5D544), UINT32_C(0x885F1EA8), UINT32_C(0x57E7448F), + UINT32_C(0xFD3B3D17), UINT32_C(0x79531DE0), UINT32_C(0x5FC791A8), + UINT32_C(0x42E66DAA), UINT32_C(0x780C1AAF)}}, + {{UINT32_C(0x397BB28F), UINT32_C(0x19697778), UINT32_C(0xAAA9069D), + UINT32_C(0x5EC31D44), UINT32_C(0x3CA24A6F), UINT32_C(0xDC2DFEAA), + UINT32_C(0x80BED770), UINT32_C(0x3F66CFCA)}, + {UINT32_C(0x1A102662), UINT32_C(0x2B6B8215), UINT32_C(0xC5D34CEB), + UINT32_C(0x44B4D7A4), UINT32_C(0x88AFECF2), UINT32_C(0x17E0FDE6), + UINT32_C(0xCFF8D214), UINT32_C(0x0DEFA14B)}}, + {{UINT32_C(0x8365CA84), UINT32_C(0x14035AA4), UINT32_C(0x197CE2B7), + UINT32_C(0x309CEEF0), UINT32_C(0xED39AF37), UINT32_C(0x21305426), + UINT32_C(0xD2EA583A), UINT32_C(0x10D01D11)}, + {UINT32_C(0x9FA5C766), UINT32_C(0x3F2E9749), UINT32_C(0xD70549D4), + UINT32_C(0x98357584), UINT32_C(0xD279946D), UINT32_C(0x8FF80803), + UINT32_C(0x99DF1253), UINT32_C(0x53DBC433)}}, + {{UINT32_C(0x5329F12F), UINT32_C(0x1D0D9EFA), UINT32_C(0xBE1F007F), + UINT32_C(0xBC9F74CF), UINT32_C(0x18EE4DBC), UINT32_C(0xD7F2AA9A), + UINT32_C(0x3A792753), UINT32_C(0x634BF4CF)}, + {UINT32_C(0x2FA6255A), UINT32_C(0xD5DC72AD), UINT32_C(0xF3BC00C5), + UINT32_C(0xEE69EA43), UINT32_C(0xD8147A1A), UINT32_C(0xEA930F61), + UINT32_C(0xF4E9AD37), UINT32_C(0x25E1368D)}}, + {{UINT32_C(0xB7C955EC), UINT32_C(0x9422AAF7), UINT32_C(0x6A74D634), + UINT32_C(0x7C710761), UINT32_C(0x305EE420), UINT32_C(0x4ED89932), + UINT32_C(0x2E937289), UINT32_C(0x07E42212)}, + {UINT32_C(0x28566C88), UINT32_C(0x7EBB2313), UINT32_C(0xC27ED656), + UINT32_C(0xC7ED9C7A), UINT32_C(0xBF14FB3B), UINT32_C(0xF77F3873), + UINT32_C(0xEB957520), UINT32_C(0x447AA1E5)}}, + {{UINT32_C(0xB5C5E016), UINT32_C(0x3E3CEC7E), UINT32_C(0xBDE44D26), + UINT32_C(0xB33DDFF7), UINT32_C(0x66E820DD), UINT32_C(0x2056E9C7), + UINT32_C(0xF8196FE2), UINT32_C(0x21A9E5D4)}, + {UINT32_C(0x88040C97), UINT32_C(0x86CB0A17), UINT32_C(0xFF515D49), + UINT32_C(0x18AD8AE7), UINT32_C(0x226A400A), UINT32_C(0xCB8A564A), + UINT32_C(0x8B72A0D2), UINT32_C(0x6DB48979)}}, + {{UINT32_C(0x6324DED2), UINT32_C(0x4365074B), UINT32_C(0xAEDAF0F8), + UINT32_C(0x9EFB5CC6), UINT32_C(0xC0792B14), UINT32_C(0xCF952C3C), + UINT32_C(0x97ED965E), UINT32_C(0x70B82AB9)}, + {UINT32_C(0x3ACEBCE7), UINT32_C(0x931B9886), UINT32_C(0x18C2425A), + UINT32_C(0xDA850491), UINT32_C(0xE499F7FB), UINT32_C(0xD88E1E27), + UINT32_C(0x960981DE), UINT32_C(0x61D3F246)}}, + {{UINT32_C(0x8393EB0A), UINT32_C(0x1D8EA227), UINT32_C(0x7863FB53), + UINT32_C(0x9DCC23D2), UINT32_C(0xD5EBD297), UINT32_C(0x961B2337), + UINT32_C(0x5BFED1E9), UINT32_C(0x0A96F8B2)}, + {UINT32_C(0xFE7DD2B7), UINT32_C(0x39EA1803), UINT32_C(0xE5F7772A), + UINT32_C(0x7E4817BB), UINT32_C(0xD44A41EF), UINT32_C(0x3668C5FF), + UINT32_C(0xE11F8E11), UINT32_C(0x78227653)}}, + {{UINT32_C(0xD024880B), UINT32_C(0x272D6933), UINT32_C(0xF236FD8A), + UINT32_C(0x733C029F), UINT32_C(0x604868F0), UINT32_C(0xBA5C20BD), + UINT32_C(0x321175C2), UINT32_C(0x33F211AE)}, + {UINT32_C(0x9FD79FE3), UINT32_C(0xE40010FB), UINT32_C(0xA685A59F), + UINT32_C(0x9C6EA1DC), UINT32_C(0x8EB9889D), UINT32_C(0x79963FFC), + UINT32_C(0x5F67108D), UINT32_C(0x15434E7D)}}, + {{UINT32_C(0xD68B670F), UINT32_C(0x42C14BBF), UINT32_C(0x23F1AA69), + UINT32_C(0x2021AC9D), UINT32_C(0xAEA04636), UINT32_C(0xBF4C6D74), + UINT32_C(0xBD1FB11D), UINT32_C(0x1E4D2F8E)}, + {UINT32_C(0x37911AA6), UINT32_C(0x4B0CF0E3), UINT32_C(0x2C484507), + UINT32_C(0x7542D928), UINT32_C(0x889542DC), UINT32_C(0x68836751), + UINT32_C(0xFE2282A0), UINT32_C(0x05F229F7)}}, + {{UINT32_C(0x409B2067), UINT32_C(0xAF269E8B), UINT32_C(0xA860F075), + UINT32_C(0x6C749952), UINT32_C(0x5DF7C7F6), UINT32_C(0xCB7492DA), + UINT32_C(0xE8E591E1), UINT32_C(0x2B010A7F)}, + {UINT32_C(0x04D9E871), UINT32_C(0xF7446577), UINT32_C(0x5E68408E), + UINT32_C(0xC2E0A2A3), UINT32_C(0xD0F0BAAD), UINT32_C(0xD512E9A6), + UINT32_C(0xC6BE34A3), UINT32_C(0x3E2F73E1)}}, + }, + { + {{UINT32_C(0x2EC65BB4), UINT32_C(0x6C466C8E), UINT32_C(0xB1FC8F92), + UINT32_C(0x912FFAE5), UINT32_C(0xB50A522D), UINT32_C(0x7587BE5D), + UINT32_C(0x649847CF), UINT32_C(0x15939FF7)}, + {UINT32_C(0xF464794E), UINT32_C(0x69E81D63), UINT32_C(0x6D3F858E), + UINT32_C(0x7BB6EEE3), UINT32_C(0x10813BBB), UINT32_C(0x24FE5C01), + UINT32_C(0x6D80756C), UINT32_C(0x0C491F97)}}, + {{UINT32_C(0xA5FF3510), UINT32_C(0xBAD1C256), UINT32_C(0x99C1B7B2), + UINT32_C(0xF06F38A2), UINT32_C(0x049312D6), UINT32_C(0xF7C0F164), + UINT32_C(0x5749B3E4), UINT32_C(0x073C5374)}, + {UINT32_C(0x55211A81), UINT32_C(0xD6761480), UINT32_C(0xDFA98F45), + UINT32_C(0xF34CB5DB), UINT32_C(0xB4AA4967), UINT32_C(0xAF59FA47), + UINT32_C(0x8214BE48), UINT32_C(0x116935B9)}}, + {{UINT32_C(0x9FE10E46), UINT32_C(0x1D86FA00), UINT32_C(0x0B5B8494), + UINT32_C(0x73B8099C), UINT32_C(0xA1102BE7), UINT32_C(0x9A6EA98D), + UINT32_C(0x5514CA21), UINT32_C(0x3DE1948B)}, + {UINT32_C(0xD0AAAA53), UINT32_C(0x5D18ED69), UINT32_C(0x3C952B98), + UINT32_C(0x17BF7DFF), UINT32_C(0x7DDBD937), UINT32_C(0xC60143FE), + UINT32_C(0x6F2F10C4), UINT32_C(0x214F2F55)}}, + {{UINT32_C(0x02F047D0), UINT32_C(0xB2F28695), UINT32_C(0x923F52BF), + UINT32_C(0x80952DFE), UINT32_C(0xA5017C3E), UINT32_C(0x56F3306B), + UINT32_C(0x052DADFB), UINT32_C(0x5DD62F07)}, + {UINT32_C(0xD5274F90), UINT32_C(0xDD11592D), UINT32_C(0xE471965B), + UINT32_C(0x40632FF3), UINT32_C(0x7E618430), UINT32_C(0xAD1939A8), + UINT32_C(0x33F19556), UINT32_C(0x5DD9CAD2)}}, + {{UINT32_C(0xC1094747), UINT32_C(0x7B0AA88C), UINT32_C(0xF6753A0C), + UINT32_C(0xCFA6B95D), UINT32_C(0x2A252A4D), UINT32_C(0xE81AFADA), + UINT32_C(0xD3770570), UINT32_C(0x364CAB7C)}, + {UINT32_C(0xB4610A19), UINT32_C(0xE99D8252), UINT32_C(0x55ED9AD3), + UINT32_C(0xB22B2FEC), UINT32_C(0xBEBE7FED), UINT32_C(0x328ACBDD), + UINT32_C(0xFBEDFE84), UINT32_C(0x1D379D61)}}, + {{UINT32_C(0x5EDF8C9C), UINT32_C(0xD9EFFFFA), UINT32_C(0x0CE548EC), + UINT32_C(0x9BAA7181), UINT32_C(0x5FA8FEEB), UINT32_C(0xEB458AEB), + UINT32_C(0x0904D841), UINT32_C(0x18C5E691)}, + {UINT32_C(0x8F33D2E5), UINT32_C(0xFCEFAE28), UINT32_C(0x6FAFDA18), + UINT32_C(0xB3CF853E), UINT32_C(0x427D6218), UINT32_C(0x05DE94BA), + UINT32_C(0x3731D3E9), UINT32_C(0x021D8AED)}}, + {{UINT32_C(0xE92719DA), UINT32_C(0x06C8C318), UINT32_C(0x1A65DFDB), + UINT32_C(0x1F7CDE12), UINT32_C(0x4B672A2D), UINT32_C(0x9B4D531E), + UINT32_C(0x115FAF11), UINT32_C(0x3E39CC63)}, + {UINT32_C(0x0037AF60), UINT32_C(0xC9C3F339), UINT32_C(0x02B43D27), + UINT32_C(0xC1C67587), UINT32_C(0xC42DF26B), UINT32_C(0x46B77CDD), + UINT32_C(0xEBFA97A7), UINT32_C(0x7235F2B0)}}, + {{UINT32_C(0xE898094E), UINT32_C(0xAF7FFC9A), UINT32_C(0x146A27E3), + UINT32_C(0x8D18AB93), UINT32_C(0x8AEC0416), UINT32_C(0x1376B797), + UINT32_C(0x8D91C25E), UINT32_C(0x746A1B1C)}, + {UINT32_C(0x0EBDE2E3), UINT32_C(0x16DCCCC1), UINT32_C(0x8CE7D61E), + UINT32_C(0xFE4ABD41), UINT32_C(0xE25F1551), UINT32_C(0xB9830395), + UINT32_C(0xB885A943), UINT32_C(0x543493D7)}}, + {{UINT32_C(0x24EBCFC0), UINT32_C(0x52C659E6), UINT32_C(0xD38367A4), + UINT32_C(0x72E3CA91), UINT32_C(0x4D168F4F), UINT32_C(0xA3086AAC), + UINT32_C(0x5D64207B), UINT32_C(0x656ACFEE)}, + {UINT32_C(0xBA196A9E), UINT32_C(0xBE697CBA), UINT32_C(0x97DFFEC2), + UINT32_C(0x6A737ACC), UINT32_C(0x54F04DBD), UINT32_C(0x393E2661), + UINT32_C(0x4B0E92BD), UINT32_C(0x4FFF7C24)}}, + {{UINT32_C(0x828EC659), UINT32_C(0xC709CC59), UINT32_C(0xCBDEACB3), + UINT32_C(0xB275AC8C), UINT32_C(0xF7922523), UINT32_C(0xA8D08921), + UINT32_C(0x400A6459), UINT32_C(0x68B92F96)}, + {UINT32_C(0xDFBECB97), UINT32_C(0x45803EC2), UINT32_C(0x7515D696), + UINT32_C(0x49464E05), UINT32_C(0x8F03E969), UINT32_C(0xF39CA961), + UINT32_C(0x1CD7C79F), UINT32_C(0x605065A1)}}, + {{UINT32_C(0x97F1A97A), UINT32_C(0xB91C03DC), UINT32_C(0x201FFB53), + UINT32_C(0x2F6D50BB), UINT32_C(0x46241856), UINT32_C(0x39D67D40), + UINT32_C(0x74D04805), UINT32_C(0x0A2C0256)}, + {UINT32_C(0x28374A6D), UINT32_C(0xD289B94C), UINT32_C(0x10EDD6FC), + UINT32_C(0x1176C73A), UINT32_C(0x56AE631E), UINT32_C(0x890E9C39), + UINT32_C(0x6027F549), UINT32_C(0x30451CF1)}}, + {{UINT32_C(0xDF8F4DDB), UINT32_C(0x0CB33FDC), UINT32_C(0x87FF6E63), + UINT32_C(0xD9C540DE), UINT32_C(0x55A1D8E4), UINT32_C(0xD8445732), + UINT32_C(0x8AC403A6), UINT32_C(0x1497403D)}, + {UINT32_C(0x6A4BAAC6), UINT32_C(0xA2591C40), UINT32_C(0x48DD3E5D), + UINT32_C(0xF493CF1F), UINT32_C(0xB69AF047), UINT32_C(0x7B9AE39F), + UINT32_C(0x3782B110), UINT32_C(0x293123C0)}}, + {{UINT32_C(0xB7A36B62), UINT32_C(0x14921836), UINT32_C(0x4CA3AA39), + UINT32_C(0x5AC82430), UINT32_C(0x52F601CA), UINT32_C(0x01303AA6), + UINT32_C(0x2B43BB72), UINT32_C(0x7EE1E6C7)}, + {UINT32_C(0x64D44957), UINT32_C(0x7F82B37B), UINT32_C(0xDA4A6FEC), + UINT32_C(0x840D0654), UINT32_C(0x0290F75D), UINT32_C(0xFC806FA1), + UINT32_C(0x4C62F0E8), UINT32_C(0x3027FE4A)}}, + {{UINT32_C(0xCD0D3AC0), UINT32_C(0x34E68AB5), UINT32_C(0xE9BC85BD), + UINT32_C(0xE6B0B8C1), UINT32_C(0x99533831), UINT32_C(0xE00F5052), + UINT32_C(0xCDC83750), UINT32_C(0x11327DA7)}, + {UINT32_C(0x4656A428), UINT32_C(0x6D991DF0), UINT32_C(0x86228F26), + UINT32_C(0x6A7BE349), UINT32_C(0x3019CDC5), UINT32_C(0x6BF85E3D), + UINT32_C(0x576913A4), UINT32_C(0x42200D2F)}}, + {{UINT32_C(0x707B940F), UINT32_C(0x420D9259), UINT32_C(0x3C5E39BB), + UINT32_C(0x1BB1FFE1), UINT32_C(0xE40D018E), UINT32_C(0x83D6BA36), + UINT32_C(0x044EC576), UINT32_C(0x139BD842)}, + {UINT32_C(0xC6DE63E8), UINT32_C(0x3C79F8D2), UINT32_C(0x96F1FB0B), + UINT32_C(0x49150B1D), UINT32_C(0x1358A13B), UINT32_C(0x66616053), + UINT32_C(0xD5DDFD9F), UINT32_C(0x187CA3CF)}}, + {{UINT32_C(0x8D5AEE84), UINT32_C(0x0675370F), UINT32_C(0xDC269114), + UINT32_C(0x30AA7D65), UINT32_C(0x5AFC6DC1), UINT32_C(0x295F7FE8), + UINT32_C(0x55674339), UINT32_C(0x49452029)}, + {UINT32_C(0xA6F209EC), UINT32_C(0x7EB1926B), UINT32_C(0xDC72C3E3), + UINT32_C(0x5232B9D1), UINT32_C(0xAB52141B), UINT32_C(0xCD788D79), + UINT32_C(0xFDD9611F), UINT32_C(0x3EB561BE)}}, + }, + { + {{UINT32_C(0xE22241AD), UINT32_C(0x09DB342C), UINT32_C(0x2A566653), + UINT32_C(0x2EAB852F), UINT32_C(0xCA6E59F3), UINT32_C(0x970843ED), + UINT32_C(0xA18C2D89), UINT32_C(0x6490013E)}, + {UINT32_C(0xC7A691CC), UINT32_C(0x52293350), UINT32_C(0xB2079F14), + UINT32_C(0x6544B49D), UINT32_C(0x52DCF090), UINT32_C(0xC49C5598), + UINT32_C(0x8817A2C7), UINT32_C(0x4069B6FC)}}, + {{UINT32_C(0xC86B40F4), UINT32_C(0x0E4A4B0C), UINT32_C(0x51F6F853), + UINT32_C(0x2B5350E1), UINT32_C(0x1033BEC4), UINT32_C(0xDE26FDE2), + UINT32_C(0xC0E9B971), UINT32_C(0x4DE9D2E7)}, + {UINT32_C(0xD315AD57), UINT32_C(0x716605FD), UINT32_C(0x392B101A), + UINT32_C(0x5627D732), UINT32_C(0x81A9F40A), UINT32_C(0x628EDFC6), + UINT32_C(0x5AB9C99D), UINT32_C(0x4BD2A96C)}}, + {{UINT32_C(0xBFBD288A), UINT32_C(0x2C8DF2A1), UINT32_C(0xF4CF7C09), + UINT32_C(0x260C4F1E), UINT32_C(0x90E796CB), UINT32_C(0x88A26186), + UINT32_C(0x323E0702), UINT32_C(0x105ACC3A)}, + {UINT32_C(0x667664CF), UINT32_C(0xA8ADA467), UINT32_C(0x3B518622), + UINT32_C(0x41144C1B), UINT32_C(0xD8B99FE1), UINT32_C(0x4A532B87), + UINT32_C(0x2289C308), UINT32_C(0x4A51C289)}}, + {{UINT32_C(0x1D6F6880), UINT32_C(0x201DDA61), UINT32_C(0x62029898), + UINT32_C(0x47A964D4), UINT32_C(0x426C8CA5), UINT32_C(0xE44E2EEE), + UINT32_C(0x09625DBA), UINT32_C(0x02A51821)}, + {UINT32_C(0xB45B3DFB), UINT32_C(0x170C626E), UINT32_C(0x5C8343A9), + UINT32_C(0xFC7F1F71), UINT32_C(0xE549F040), UINT32_C(0xE6CF246F), + UINT32_C(0x2F903ACE), UINT32_C(0x4ACF60AE)}}, + {{UINT32_C(0x81C807EC), UINT32_C(0x91715352), UINT32_C(0x47174A58), + UINT32_C(0x72AC60C3), UINT32_C(0xA0F12F61), UINT32_C(0xAD62D06F), + UINT32_C(0xAA899C0D), UINT32_C(0x325C2792)}, + {UINT32_C(0x9D8BA267), UINT32_C(0x53A1E392), UINT32_C(0xCDACCB05), + UINT32_C(0x5DC088A5), UINT32_C(0x5025CB69), UINT32_C(0x5BB9127F), + UINT32_C(0x69214616), UINT32_C(0x25D2B42E)}}, + {{UINT32_C(0xDDB55121), UINT32_C(0x4DE5D58A), UINT32_C(0x84DE0677), + UINT32_C(0x688AA2F5), UINT32_C(0x63AA25E0), UINT32_C(0xF7925A39), + UINT32_C(0x85D4DEA5), UINT32_C(0x4FB42FC7)}, + {UINT32_C(0x8F134390), UINT32_C(0x957B933B), UINT32_C(0x4B9BF8C2), + UINT32_C(0xB360DD2C), UINT32_C(0xFFFF96CD), UINT32_C(0x45E6767F), + UINT32_C(0x1E01D5C3), UINT32_C(0x26D0A6A9)}}, + {{UINT32_C(0x5A0A98EA), UINT32_C(0xC7FC5714), UINT32_C(0xE7535AF6), + UINT32_C(0xDBB06F30), UINT32_C(0xDF4ACD0D), UINT32_C(0x555B22E3), + UINT32_C(0x2EFD2FBE), UINT32_C(0x3A011AAF)}, + {UINT32_C(0xE9166B20), UINT32_C(0x341C7733), UINT32_C(0xFB19590A), + UINT32_C(0x84619E8E), UINT32_C(0x10574C96), UINT32_C(0x8EF989FD), + UINT32_C(0x0F55F9A2), UINT32_C(0x61ACFAAE)}}, + {{UINT32_C(0x6DEAB094), UINT32_C(0x8C8A33F2), UINT32_C(0x96022EBC), + UINT32_C(0x4A8E5D9F), UINT32_C(0x7DDA92E8), UINT32_C(0xA10DF82C), + UINT32_C(0xD1CF3815), UINT32_C(0x33A19462)}, + {UINT32_C(0xA489D67F), UINT32_C(0xE3FF8E43), UINT32_C(0x225064AA), + UINT32_C(0xD4B6136F), UINT32_C(0x92F5E662), UINT32_C(0xE1721D2A), + UINT32_C(0xA90A33C6), UINT32_C(0x4C4F03D7)}}, + {{UINT32_C(0xA3463B4A), UINT32_C(0x70885B35), UINT32_C(0xDF9D0194), + UINT32_C(0x974BC40E), UINT32_C(0x273957F4), UINT32_C(0x1AF71E18), + UINT32_C(0x9900CB0D), UINT32_C(0x58EF684B)}, + {UINT32_C(0x20A49A4A), UINT32_C(0xB09970C8), UINT32_C(0x42067458), + UINT32_C(0x3F28403F), UINT32_C(0xBD7D1AD5), UINT32_C(0x153FF2C4), + UINT32_C(0xE97A90F7), UINT32_C(0x7912CC2E)}}, + {{UINT32_C(0x8F034D9F), UINT32_C(0xF653DF59), UINT32_C(0x1C409CCF), + UINT32_C(0xCA167177), UINT32_C(0x175F3583), UINT32_C(0x21F47005), + UINT32_C(0xFAAFB66F), UINT32_C(0x13B8A94B)}, + {UINT32_C(0x96052C8D), UINT32_C(0x64534EE3), UINT32_C(0x8D674024), + UINT32_C(0x09304DD1), UINT32_C(0x0D7A7E2A), UINT32_C(0xEB468AC3), + UINT32_C(0xCD62052C), UINT32_C(0x40347256)}}, + {{UINT32_C(0xFFF11C0E), UINT32_C(0x0F089165), UINT32_C(0x8D69A45C), + UINT32_C(0x383562C9), UINT32_C(0x3125FE61), UINT32_C(0x7AB3EF9D), + UINT32_C(0xE0735F3A), UINT32_C(0x32C042BC)}, + {UINT32_C(0x4E268D91), UINT32_C(0x420077C8), UINT32_C(0x44695B4F), + UINT32_C(0x7FB42082), UINT32_C(0x448A133E), UINT32_C(0xFA83216F), + UINT32_C(0x93062EB3), UINT32_C(0x1C660607)}}, + {{UINT32_C(0xEF9E04DE), UINT32_C(0xA0FCBACA), UINT32_C(0x5B86F69A), + UINT32_C(0xAEF9EECB), UINT32_C(0xC39D4C99), UINT32_C(0x73D2E95F), + UINT32_C(0x923A5BA8), UINT32_C(0x098C74F7)}, + {UINT32_C(0x4F68DECF), UINT32_C(0x5B8C95C8), UINT32_C(0x58976551), + UINT32_C(0xCFF2E101), UINT32_C(0xBE5CAF91), UINT32_C(0x5032AE48), + UINT32_C(0xE09BC8AE), UINT32_C(0x5CCB9008)}}, + {{UINT32_C(0x3714D3BF), UINT32_C(0x41A38F20), UINT32_C(0x17366520), + UINT32_C(0x24136533), UINT32_C(0xFAE17B01), UINT32_C(0xF12F314C), + UINT32_C(0xFC9AD43B), UINT32_C(0x4AA0C969)}, + {UINT32_C(0x8BBAC026), UINT32_C(0xD8AB5F72), UINT32_C(0x526992DC), + UINT32_C(0x35128269), UINT32_C(0xD19880AA), UINT32_C(0xA2EF6E44), + UINT32_C(0xDBF47628), UINT32_C(0x28BB3623)}}, + {{UINT32_C(0x3BA25C35), UINT32_C(0x294742BA), UINT32_C(0x061555B7), + UINT32_C(0x39D3BC9B), UINT32_C(0xDE6EA1A0), UINT32_C(0x944E3ABC), + UINT32_C(0x57EBD394), UINT32_C(0x4FDC6415)}, + {UINT32_C(0xE981E649), UINT32_C(0xB615C1DA), UINT32_C(0x8BE3C95F), + UINT32_C(0xAF7EDB34), UINT32_C(0x71F7221F), UINT32_C(0x38573AE8), + UINT32_C(0x668CF414), UINT32_C(0x1B30FF04)}}, + {{UINT32_C(0xA57A9A4E), UINT32_C(0x48EFF6A2), UINT32_C(0x74A59C19), + UINT32_C(0x04BA2F73), UINT32_C(0x6779C5DA), UINT32_C(0x5FDE389D), + UINT32_C(0x6612F160), UINT32_C(0x258E2B24)}, + {UINT32_C(0x6D116D41), UINT32_C(0xCE8D7A0B), UINT32_C(0xEE2706C8), + UINT32_C(0xAF660436), UINT32_C(0xF81D6398), UINT32_C(0xFFAD6FE9), + UINT32_C(0x14BA128A), UINT32_C(0x4FE5EC54)}}, + {{UINT32_C(0xBD4B886C), UINT32_C(0x7D5E8299), UINT32_C(0xDB0DB148), + UINT32_C(0x5403A46E), UINT32_C(0x76A808D7), UINT32_C(0x32F49FC0), + UINT32_C(0xD3B9A641), UINT32_C(0x6D483FD7)}, + {UINT32_C(0x3952C70F), UINT32_C(0x731DF122), UINT32_C(0xCB5E6081), + UINT32_C(0xB5CABAC1), UINT32_C(0x7AFA8F59), UINT32_C(0x12FA297D), + UINT32_C(0x6AC91952), UINT32_C(0x3272360A)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 6 + * ASSERT: a = -3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t0, X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t1, Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_square(t2, Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, X, Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t3, t3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, Y, Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, X, Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, X3, t3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t2, t3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, Z3, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, Z3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t4, t4); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, Z3); +} + +/*- + * 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.op3 + * https://eprint.iacr.org/2015/1060 Alg 5 + * ASSERT: a = -3 + */ +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, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, Y2, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t4, Y1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X2, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, X1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Z1, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t1, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t1); + + /* if P is inf, throw all that away and take Q */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->X, nz, Q->X, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 4 + * ASSERT: a = -3 + */ +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, t4, t5; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, Z1, Z2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t3, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t4, Y1, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t5, Y2, Z2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t5, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X1, Z1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, X2, Z2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t2, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_add(Z3, Z3, t1); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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[32], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 32) 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(char out[52], const unsigned char in[32]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 51; 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(char out[257], const unsigned char in[32]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 257; 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; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32], + const unsigned char b[32], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[257] = {0}; + char bnaf[257] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 256; i >= 0; i--) { + if (!is_inf) point_double(&Q, &Q); + if ((d = bnaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y); + 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.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_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_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[32], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[52] = {0}; + pt_prj_t Q, lut; + 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[51] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 50; 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_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_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[32]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[52] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 1; i >= 0; i--) { + for (j = 0; i != 1 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 27; j++) { + if (j * 2 + i > 51) continue; + d = rnaf[j * 2 + 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_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz( + lut.Y, is_neg, lut.Y, out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.X, scalar[0] & 1, + R.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Y, scalar[0] & 1, + R.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_selectznz(Q.Z, scalar[0] & 1, + R.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[32], unsigned char outy[32], + const unsigned char a[32], const unsigned char b[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.Y, P.Y); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_montgomery(P.Y, P.Y); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_B_ParamSet_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[32] = {0}; + + int + point_mul_two_id_GostR3410_2001_CryptoPro_B_ParamSet( + 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[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_GostR3410_2001_CryptoPro_B_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const EC_POINT *q, + const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_GostR3410_2001_CryptoPro_B_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + 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, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, 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__ */ diff --git a/ecp_id_GostR3410_2001_CryptoPro_C_ParamSet.c b/ecp_id_GostR3410_2001_CryptoPro_C_ParamSet.c new file mode 100644 index 0000000..581f5f4 --- /dev/null +++ b/ecp_id_GostR3410_2001_CryptoPro_C_ParamSet.c @@ -0,0 +1,15334 @@ +/* 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 4 +/* Field elements */ +typedef uint64_t fe_t[LIMB_CNT]; +typedef uint64_t limb_t; + +#define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) +#define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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: word_by_word_montgomery --static id_GostR3410_2001_CryptoPro_C_ParamSet 64 0x9B9F605F5A858107AB1EC85E6B41C8AACF846E86789051D37998F7B9022D759B */ +/* curve description: id_GostR3410_2001_CryptoPro_C_ParamSet */ +/* machine_wordsize = 64 (from "64") */ +/* requested operations: (all) */ +/* m = 0x9b9f605f5a858107ab1ec85e6b41c8aacf846e86789051d37998f7b9022d759b (from "0x9B9F605F5A858107AB1EC85E6B41C8AACF846E86789051D37998F7B9022D759B") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (m), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ +/* */ +/* Computed values: */ +/* eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1; +typedef signed char fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int1; +typedef signed __int128 fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int128; +typedef unsigned __int128 fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint128; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^64 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint128 x1; + uint64_t x2; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x3; + x1 = ((arg1 + (fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint128)arg2) + + arg3); + x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + x3 = (fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^64 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int128 x1; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int1 x2; + uint64_t x3; + x1 = ((arg2 - (fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int128)arg1) - + arg3); + x2 = (fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int1)(x1 >> 64); + x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64 is a multiplication, returning the full double-width result. + * Postconditions: + * out1 = (arg1 * arg2) mod 2^64 + * out2 = ⌊arg1 * arg2 / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0xffffffffffffffff] + * arg2: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + uint64_t *out1, uint64_t *out2, uint64_t arg1, uint64_t arg2) { + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint128 x1; + uint64_t x2; + uint64_t x3; + x1 = ((fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint128)arg1 * arg2); + x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + x3 = (uint64_t)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_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_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64( + uint64_t *out1, fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 arg1, + uint64_t arg2, uint64_t arg3) { + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x1; + uint64_t x2; + uint64_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int1)(0x0 - x1) & + UINT64_C(0xffffffffffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul multiplies two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul( + uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x14; + uint64_t x15; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x16; + uint64_t x17; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x31; + uint64_t x32; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x33; + uint64_t x34; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x35; + uint64_t x36; + uint64_t x37; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x38; + uint64_t x39; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x40; + uint64_t x41; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x42; + uint64_t x43; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x44; + uint64_t x45; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x56; + uint64_t x57; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x58; + uint64_t x59; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x60; + uint64_t x61; + uint64_t x62; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x63; + uint64_t x64; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x65; + uint64_t x66; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x67; + uint64_t x68; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x69; + uint64_t x70; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x83; + uint64_t x84; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x85; + uint64_t x86; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x87; + uint64_t x88; + uint64_t x89; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x90; + uint64_t x91; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x92; + uint64_t x93; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x94; + uint64_t x95; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x96; + uint64_t x97; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x109; + uint64_t x110; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x111; + uint64_t x112; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x113; + uint64_t x114; + uint64_t x115; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x116; + uint64_t x117; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x118; + uint64_t x119; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x120; + uint64_t x121; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x122; + uint64_t x123; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x136; + uint64_t x137; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x138; + uint64_t x139; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x140; + uint64_t x141; + uint64_t x142; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x143; + uint64_t x144; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x145; + uint64_t x146; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x147; + uint64_t x148; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x149; + uint64_t x150; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x162; + uint64_t x163; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x164; + uint64_t x165; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x166; + uint64_t x167; + uint64_t x168; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x169; + uint64_t x170; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x171; + uint64_t x172; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x173; + uint64_t x174; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x175; + uint64_t x176; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x189; + uint64_t x190; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x191; + uint64_t x192; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x193; + uint64_t x194; + uint64_t x195; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x196; + uint64_t x197; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x198; + uint64_t x199; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x200; + uint64_t x201; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x202; + uint64_t x203; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x204; + uint64_t x205; + uint64_t x206; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x207; + uint64_t x208; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x209; + uint64_t x210; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x211; + uint64_t x212; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x213; + uint64_t x214; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x215; + uint64_t x216; + uint64_t x217; + uint64_t x218; + uint64_t x219; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x5, &x6, x4, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x7, &x8, x4, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x9, &x10, x4, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x11, &x12, x4, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x13, &x14, 0x0, + x12, x9); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x15, &x16, x14, + x10, x7); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x17, &x18, x16, + x8, x5); + x19 = (x18 + x6); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x20, &x21, x11, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x22, &x23, x20, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x24, &x25, x20, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x26, &x27, x20, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x28, &x29, x20, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x30, &x31, 0x0, + x29, x26); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x32, &x33, x31, + x27, x24); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x34, &x35, x33, + x25, x22); + x36 = (x35 + x23); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x37, &x38, 0x0, + x11, x28); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x39, &x40, x38, + x13, x30); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x41, &x42, x40, + x15, x32); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x43, &x44, x42, + x17, x34); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x45, &x46, x44, + x19, x36); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x47, &x48, x1, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x49, &x50, x1, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x51, &x52, x1, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x53, &x54, x1, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x55, &x56, 0x0, + x54, x51); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x57, &x58, x56, + x52, x49); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x59, &x60, x58, + x50, x47); + x61 = (x60 + x48); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x62, &x63, 0x0, + x39, x53); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x64, &x65, x63, + x41, x55); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x66, &x67, x65, + x43, x57); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x68, &x69, x67, + x45, x59); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x70, &x71, x69, + x46, x61); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x72, &x73, x62, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x74, &x75, x72, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x76, &x77, x72, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x78, &x79, x72, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x80, &x81, x72, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x82, &x83, 0x0, + x81, x78); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x84, &x85, x83, + x79, x76); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x86, &x87, x85, + x77, x74); + x88 = (x87 + x75); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x89, &x90, 0x0, + x62, x80); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x91, &x92, x90, + x64, x82); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x93, &x94, x92, + x66, x84); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x95, &x96, x94, + x68, x86); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x97, &x98, x96, + x70, x88); + x99 = ((uint64_t)x98 + x71); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x100, &x101, x2, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x102, &x103, x2, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x104, &x105, x2, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x106, &x107, x2, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x108, &x109, 0x0, + x107, x104); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x110, &x111, + x109, x105, x102); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x112, &x113, + x111, x103, x100); + x114 = (x113 + x101); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x115, &x116, 0x0, + x91, x106); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x117, &x118, + x116, x93, x108); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x119, &x120, + x118, x95, x110); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x121, &x122, + x120, x97, x112); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x123, &x124, + x122, x99, x114); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x125, &x126, x115, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x127, &x128, x125, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x129, &x130, x125, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x131, &x132, x125, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x133, &x134, x125, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x135, &x136, 0x0, + x134, x131); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x137, &x138, + x136, x132, x129); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x139, &x140, + x138, x130, x127); + x141 = (x140 + x128); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x142, &x143, 0x0, + x115, x133); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x144, &x145, + x143, x117, x135); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x146, &x147, + x145, x119, x137); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x148, &x149, + x147, x121, x139); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x150, &x151, + x149, x123, x141); + x152 = ((uint64_t)x151 + x124); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x153, &x154, x3, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x155, &x156, x3, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x157, &x158, x3, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x159, &x160, x3, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x161, &x162, 0x0, + x160, x157); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x163, &x164, + x162, x158, x155); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x165, &x166, + x164, x156, x153); + x167 = (x166 + x154); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x168, &x169, 0x0, + x144, x159); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x170, &x171, + x169, x146, x161); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x172, &x173, + x171, x148, x163); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x174, &x175, + x173, x150, x165); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x176, &x177, + x175, x152, x167); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x178, &x179, x168, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x180, &x181, x178, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x182, &x183, x178, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x184, &x185, x178, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x186, &x187, x178, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x188, &x189, 0x0, + x187, x184); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x190, &x191, + x189, x185, x182); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x192, &x193, + x191, x183, x180); + x194 = (x193 + x181); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x195, &x196, 0x0, + x168, x186); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x197, &x198, + x196, x170, x188); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x199, &x200, + x198, x172, x190); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x201, &x202, + x200, x174, x192); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x203, &x204, + x202, x176, x194); + x205 = ((uint64_t)x204 + x177); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x206, &x207, 0x0, x197, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x208, &x209, x207, x199, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x210, &x211, x209, x201, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x212, &x213, x211, x203, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64(&x214, &x215, + x213, x205, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x216, x215, x206, + x197); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x217, x215, x208, + x199); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x218, x215, x210, + x201); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x219, x215, x212, + x203); + out1[0] = x216; + out1[1] = x217; + out1[2] = x218; + out1[3] = x219; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square squares a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square( + uint64_t out1[4], const uint64_t arg1[4]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x14; + uint64_t x15; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x16; + uint64_t x17; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x31; + uint64_t x32; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x33; + uint64_t x34; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x35; + uint64_t x36; + uint64_t x37; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x38; + uint64_t x39; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x40; + uint64_t x41; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x42; + uint64_t x43; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x44; + uint64_t x45; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x56; + uint64_t x57; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x58; + uint64_t x59; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x60; + uint64_t x61; + uint64_t x62; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x63; + uint64_t x64; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x65; + uint64_t x66; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x67; + uint64_t x68; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x69; + uint64_t x70; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x83; + uint64_t x84; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x85; + uint64_t x86; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x87; + uint64_t x88; + uint64_t x89; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x90; + uint64_t x91; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x92; + uint64_t x93; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x94; + uint64_t x95; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x96; + uint64_t x97; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x109; + uint64_t x110; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x111; + uint64_t x112; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x113; + uint64_t x114; + uint64_t x115; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x116; + uint64_t x117; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x118; + uint64_t x119; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x120; + uint64_t x121; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x122; + uint64_t x123; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x136; + uint64_t x137; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x138; + uint64_t x139; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x140; + uint64_t x141; + uint64_t x142; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x143; + uint64_t x144; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x145; + uint64_t x146; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x147; + uint64_t x148; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x149; + uint64_t x150; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x162; + uint64_t x163; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x164; + uint64_t x165; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x166; + uint64_t x167; + uint64_t x168; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x169; + uint64_t x170; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x171; + uint64_t x172; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x173; + uint64_t x174; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x175; + uint64_t x176; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x189; + uint64_t x190; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x191; + uint64_t x192; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x193; + uint64_t x194; + uint64_t x195; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x196; + uint64_t x197; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x198; + uint64_t x199; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x200; + uint64_t x201; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x202; + uint64_t x203; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x204; + uint64_t x205; + uint64_t x206; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x207; + uint64_t x208; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x209; + uint64_t x210; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x211; + uint64_t x212; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x213; + uint64_t x214; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x215; + uint64_t x216; + uint64_t x217; + uint64_t x218; + uint64_t x219; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x5, &x6, x4, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x7, &x8, x4, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x9, &x10, x4, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x11, &x12, x4, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x13, &x14, 0x0, + x12, x9); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x15, &x16, x14, + x10, x7); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x17, &x18, x16, + x8, x5); + x19 = (x18 + x6); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x20, &x21, x11, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x22, &x23, x20, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x24, &x25, x20, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x26, &x27, x20, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x28, &x29, x20, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x30, &x31, 0x0, + x29, x26); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x32, &x33, x31, + x27, x24); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x34, &x35, x33, + x25, x22); + x36 = (x35 + x23); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x37, &x38, 0x0, + x11, x28); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x39, &x40, x38, + x13, x30); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x41, &x42, x40, + x15, x32); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x43, &x44, x42, + x17, x34); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x45, &x46, x44, + x19, x36); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x47, &x48, x1, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x49, &x50, x1, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x51, &x52, x1, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x53, &x54, x1, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x55, &x56, 0x0, + x54, x51); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x57, &x58, x56, + x52, x49); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x59, &x60, x58, + x50, x47); + x61 = (x60 + x48); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x62, &x63, 0x0, + x39, x53); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x64, &x65, x63, + x41, x55); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x66, &x67, x65, + x43, x57); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x68, &x69, x67, + x45, x59); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x70, &x71, x69, + x46, x61); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x72, &x73, x62, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x74, &x75, x72, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x76, &x77, x72, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x78, &x79, x72, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x80, &x81, x72, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x82, &x83, 0x0, + x81, x78); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x84, &x85, x83, + x79, x76); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x86, &x87, x85, + x77, x74); + x88 = (x87 + x75); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x89, &x90, 0x0, + x62, x80); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x91, &x92, x90, + x64, x82); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x93, &x94, x92, + x66, x84); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x95, &x96, x94, + x68, x86); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x97, &x98, x96, + x70, x88); + x99 = ((uint64_t)x98 + x71); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x100, &x101, x2, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x102, &x103, x2, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x104, &x105, x2, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x106, &x107, x2, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x108, &x109, 0x0, + x107, x104); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x110, &x111, + x109, x105, x102); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x112, &x113, + x111, x103, x100); + x114 = (x113 + x101); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x115, &x116, 0x0, + x91, x106); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x117, &x118, + x116, x93, x108); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x119, &x120, + x118, x95, x110); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x121, &x122, + x120, x97, x112); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x123, &x124, + x122, x99, x114); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x125, &x126, x115, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x127, &x128, x125, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x129, &x130, x125, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x131, &x132, x125, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x133, &x134, x125, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x135, &x136, 0x0, + x134, x131); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x137, &x138, + x136, x132, x129); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x139, &x140, + x138, x130, x127); + x141 = (x140 + x128); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x142, &x143, 0x0, + x115, x133); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x144, &x145, + x143, x117, x135); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x146, &x147, + x145, x119, x137); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x148, &x149, + x147, x121, x139); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x150, &x151, + x149, x123, x141); + x152 = ((uint64_t)x151 + x124); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x153, &x154, x3, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x155, &x156, x3, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x157, &x158, x3, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64(&x159, &x160, x3, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x161, &x162, 0x0, + x160, x157); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x163, &x164, + x162, x158, x155); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x165, &x166, + x164, x156, x153); + x167 = (x166 + x154); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x168, &x169, 0x0, + x144, x159); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x170, &x171, + x169, x146, x161); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x172, &x173, + x171, x148, x163); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x174, &x175, + x173, x150, x165); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x176, &x177, + x175, x152, x167); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x178, &x179, x168, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x180, &x181, x178, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x182, &x183, x178, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x184, &x185, x178, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x186, &x187, x178, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x188, &x189, 0x0, + x187, x184); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x190, &x191, + x189, x185, x182); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x192, &x193, + x191, x183, x180); + x194 = (x193 + x181); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x195, &x196, 0x0, + x168, x186); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x197, &x198, + x196, x170, x188); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x199, &x200, + x198, x172, x190); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x201, &x202, + x200, x174, x192); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x203, &x204, + x202, x176, x194); + x205 = ((uint64_t)x204 + x177); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x206, &x207, 0x0, x197, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x208, &x209, x207, x199, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x210, &x211, x209, x201, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x212, &x213, x211, x203, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64(&x214, &x215, + x213, x205, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x216, x215, x206, + x197); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x217, x215, x208, + x199); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x218, x215, x210, + x201); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x219, x215, x212, + x203); + out1[0] = x216; + out1[1] = x217; + out1[2] = x218; + out1[3] = x219; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add adds two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add( + uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + uint64_t x1; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x2; + uint64_t x3; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x4; + uint64_t x5; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x6; + uint64_t x7; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x8; + uint64_t x9; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x10; + uint64_t x11; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x12; + uint64_t x13; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x14; + uint64_t x15; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x16; + uint64_t x17; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x9, &x10, 0x0, x1, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x11, &x12, x10, x3, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x13, &x14, x12, x5, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x15, &x16, x14, x7, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64(&x17, &x18, x16, + x8, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x19, x18, x9, x1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x20, x18, x11, x3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x21, x18, x13, x5); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x22, x18, x15, x7); + out1[0] = x19; + out1[1] = x20; + out1[2] = x21; + out1[3] = x22; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub subtracts two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub( + uint64_t out1[4], const uint64_t arg1[4], const uint64_t arg2[4]) { + uint64_t x1; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x2; + uint64_t x3; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x4; + uint64_t x5; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x6; + uint64_t x7; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x8; + uint64_t x9; + uint64_t x10; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x11; + uint64_t x12; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x13; + uint64_t x14; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x15; + uint64_t x16; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x17; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64( + &x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x10, &x11, 0x0, x1, (x9 & UINT64_C(0x7998f7b9022d759b))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x12, &x13, x11, x3, (x9 & UINT64_C(0xcf846e86789051d3))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x14, &x15, x13, x5, (x9 & UINT64_C(0xab1ec85e6b41c8aa))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x16, &x17, x15, x7, (x9 & UINT64_C(0x9b9f605f5a858107))); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp negates a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp( + uint64_t out1[4], const uint64_t arg1[4]) { + uint64_t x1; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x2; + uint64_t x3; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x4; + uint64_t x5; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x6; + uint64_t x7; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x8; + uint64_t x9; + uint64_t x10; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x11; + uint64_t x12; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x13; + uint64_t x14; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x15; + uint64_t x16; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x17; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64(&x1, &x2, 0x0, + 0x0, (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64(&x3, &x4, x2, + 0x0, (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64(&x5, &x6, x4, + 0x0, (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64(&x7, &x8, x6, + 0x0, (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64( + &x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x10, &x11, 0x0, x1, (x9 & UINT64_C(0x7998f7b9022d759b))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x12, &x13, x11, x3, (x9 & UINT64_C(0xcf846e86789051d3))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x14, &x15, x13, x5, (x9 & UINT64_C(0xab1ec85e6b41c8aa))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x16, &x17, x15, x7, (x9 & UINT64_C(0x9b9f605f5a858107))); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery translates a field element out of the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^4) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery( + uint64_t out1[4], const uint64_t arg1[4]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x13; + uint64_t x14; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x15; + uint64_t x16; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x17; + uint64_t x18; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x19; + uint64_t x20; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x21; + uint64_t x22; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x23; + uint64_t x24; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x25; + uint64_t x26; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x27; + uint64_t x28; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x29; + uint64_t x30; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x43; + uint64_t x44; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x45; + uint64_t x46; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x47; + uint64_t x48; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x49; + uint64_t x50; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x51; + uint64_t x52; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x53; + uint64_t x54; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x55; + uint64_t x56; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x57; + uint64_t x58; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x59; + uint64_t x60; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x73; + uint64_t x74; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x75; + uint64_t x76; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x77; + uint64_t x78; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x79; + uint64_t x80; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x81; + uint64_t x82; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x83; + uint64_t x84; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x85; + uint64_t x86; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x87; + uint64_t x88; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x89; + uint64_t x90; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x103; + uint64_t x104; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x105; + uint64_t x106; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x107; + uint64_t x108; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x109; + uint64_t x110; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x111; + uint64_t x112; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x113; + uint64_t x114; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x115; + uint64_t x116; + uint64_t x117; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x118; + uint64_t x119; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x120; + uint64_t x121; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x122; + uint64_t x123; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x124; + uint64_t x125; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x126; + uint64_t x127; + uint64_t x128; + uint64_t x129; + uint64_t x130; + x1 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x2, &x3, x1, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x4, &x5, x2, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x6, &x7, x2, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x8, &x9, x2, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x10, &x11, x2, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x12, &x13, 0x0, + x11, x8); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x14, &x15, x13, + x9, x6); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x16, &x17, x15, + x7, x4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x18, &x19, 0x0, + x1, x10); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x20, &x21, x19, + 0x0, x12); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x22, &x23, x21, + 0x0, x14); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x24, &x25, x23, + 0x0, x16); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x26, &x27, 0x0, + x20, (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x28, &x29, x27, + x22, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x30, &x31, x29, + x24, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x32, &x33, x26, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x34, &x35, x32, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x36, &x37, x32, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x38, &x39, x32, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x40, &x41, x32, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x42, &x43, 0x0, + x41, x38); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x44, &x45, x43, + x39, x36); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x46, &x47, x45, + x37, x34); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x48, &x49, 0x0, + x26, x40); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x50, &x51, x49, + x28, x42); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x52, &x53, x51, + x30, x44); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x54, &x55, x53, (x31 + (x25 + (x17 + x5))), x46); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x56, &x57, 0x0, + x50, (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x58, &x59, x57, + x52, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x60, &x61, x59, + x54, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x62, &x63, x56, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x64, &x65, x62, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x66, &x67, x62, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x68, &x69, x62, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x70, &x71, x62, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x72, &x73, 0x0, + x71, x68); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x74, &x75, x73, + x69, x66); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x76, &x77, x75, + x67, x64); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x78, &x79, 0x0, + x56, x70); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x80, &x81, x79, + x58, x72); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x82, &x83, x81, + x60, x74); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x84, &x85, x83, (x61 + (x55 + (x47 + x35))), x76); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x86, &x87, 0x0, + x80, (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x88, &x89, x87, + x82, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x90, &x91, x89, + x84, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x92, &x93, x86, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x94, &x95, x92, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x96, &x97, x92, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x98, &x99, x92, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x100, &x101, x92, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x102, &x103, 0x0, + x101, x98); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x104, &x105, + x103, x99, x96); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x106, &x107, + x105, x97, x94); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x108, &x109, 0x0, + x86, x100); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x110, &x111, + x109, x88, x102); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x112, &x113, + x111, x90, x104); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x114, &x115, x113, (x91 + (x85 + (x77 + x65))), x106); + x116 = (x115 + (x107 + x95)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x117, &x118, 0x0, x110, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x119, &x120, x118, x112, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x121, &x122, x120, x114, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x123, &x124, x122, x116, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64(&x125, &x126, + x124, 0x0, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x127, x126, x117, + x110); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x128, x126, x119, + x112); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x129, x126, x121, + x114); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x130, x126, x123, + x116); + out1[0] = x127; + out1[1] = x128; + out1[2] = x129; + out1[3] = x130; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery translates a field element into the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = eval arg1 mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery( + uint64_t out1[4], const uint64_t arg1[4]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x14; + uint64_t x15; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x16; + uint64_t x17; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x30; + uint64_t x31; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x32; + uint64_t x33; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x34; + uint64_t x35; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x36; + uint64_t x37; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x38; + uint64_t x39; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x40; + uint64_t x41; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x42; + uint64_t x43; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x54; + uint64_t x55; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x56; + uint64_t x57; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x58; + uint64_t x59; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x60; + uint64_t x61; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x62; + uint64_t x63; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x64; + uint64_t x65; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x78; + uint64_t x79; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x80; + uint64_t x81; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x82; + uint64_t x83; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x84; + uint64_t x85; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x86; + uint64_t x87; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x88; + uint64_t x89; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x90; + uint64_t x91; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x102; + uint64_t x103; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x104; + uint64_t x105; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x106; + uint64_t x107; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x108; + uint64_t x109; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x110; + uint64_t x111; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x112; + uint64_t x113; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x126; + uint64_t x127; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x128; + uint64_t x129; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x130; + uint64_t x131; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x132; + uint64_t x133; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x134; + uint64_t x135; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x136; + uint64_t x137; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x138; + uint64_t x139; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x150; + uint64_t x151; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x152; + uint64_t x153; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x154; + uint64_t x155; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x156; + uint64_t x157; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x158; + uint64_t x159; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x160; + uint64_t x161; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x174; + uint64_t x175; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x176; + uint64_t x177; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x178; + uint64_t x179; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x180; + uint64_t x181; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x182; + uint64_t x183; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x184; + uint64_t x185; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x186; + uint64_t x187; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x188; + uint64_t x189; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x190; + uint64_t x191; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x192; + uint64_t x193; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x194; + uint64_t x195; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x196; + uint64_t x197; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x198; + uint64_t x199; + uint64_t x200; + uint64_t x201; + uint64_t x202; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x5, &x6, x4, UINT64_C(0x807a394ede097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x7, &x8, x4, UINT64_C(0x186304212849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x9, &x10, x4, UINT64_C(0x1017bb39c2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x11, &x12, x4, UINT64_C(0x409973b4c427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x13, &x14, 0x0, + x12, x9); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x15, &x16, x14, + x10, x7); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x17, &x18, x16, + x8, x5); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x19, &x20, x11, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x21, &x22, x19, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x23, &x24, x19, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x25, &x26, x19, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x27, &x28, x19, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x29, &x30, 0x0, + x28, x25); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x31, &x32, x30, + x26, x23); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x33, &x34, x32, + x24, x21); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x35, &x36, 0x0, + x11, x27); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x37, &x38, x36, + x13, x29); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x39, &x40, x38, + x15, x31); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x41, &x42, x40, + x17, x33); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x43, &x44, x42, (x18 + x6), (x34 + x22)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x45, &x46, x1, UINT64_C(0x807a394ede097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x47, &x48, x1, UINT64_C(0x186304212849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x49, &x50, x1, UINT64_C(0x1017bb39c2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x51, &x52, x1, UINT64_C(0x409973b4c427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x53, &x54, 0x0, + x52, x49); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x55, &x56, x54, + x50, x47); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x57, &x58, x56, + x48, x45); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x59, &x60, 0x0, + x37, x51); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x61, &x62, x60, + x39, x53); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x63, &x64, x62, + x41, x55); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x65, &x66, x64, + x43, x57); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x67, &x68, x59, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x69, &x70, x67, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x71, &x72, x67, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x73, &x74, x67, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x75, &x76, x67, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x77, &x78, 0x0, + x76, x73); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x79, &x80, x78, + x74, x71); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x81, &x82, x80, + x72, x69); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x83, &x84, 0x0, + x59, x75); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x85, &x86, x84, + x61, x77); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x87, &x88, x86, + x63, x79); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x89, &x90, x88, + x65, x81); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x91, &x92, x90, (((uint64_t)x66 + x44) + (x58 + x46)), (x82 + x70)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x93, &x94, x2, UINT64_C(0x807a394ede097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x95, &x96, x2, UINT64_C(0x186304212849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x97, &x98, x2, UINT64_C(0x1017bb39c2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x99, &x100, x2, UINT64_C(0x409973b4c427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x101, &x102, 0x0, + x100, x97); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x103, &x104, + x102, x98, x95); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x105, &x106, + x104, x96, x93); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x107, &x108, 0x0, + x85, x99); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x109, &x110, + x108, x87, x101); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x111, &x112, + x110, x89, x103); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x113, &x114, + x112, x91, x105); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x115, &x116, x107, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x117, &x118, x115, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x119, &x120, x115, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x121, &x122, x115, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x123, &x124, x115, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x125, &x126, 0x0, + x124, x121); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x127, &x128, + x126, x122, x119); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x129, &x130, + x128, x120, x117); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x131, &x132, 0x0, + x107, x123); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x133, &x134, + x132, x109, x125); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x135, &x136, + x134, x111, x127); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x137, &x138, + x136, x113, x129); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x139, &x140, x138, (((uint64_t)x114 + x92) + (x106 + x94)), + (x130 + x118)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x141, &x142, x3, UINT64_C(0x807a394ede097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x143, &x144, x3, UINT64_C(0x186304212849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x145, &x146, x3, UINT64_C(0x1017bb39c2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x147, &x148, x3, UINT64_C(0x409973b4c427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x149, &x150, 0x0, + x148, x145); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x151, &x152, + x150, x146, x143); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x153, &x154, + x152, x144, x141); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x155, &x156, 0x0, + x133, x147); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x157, &x158, + x156, x135, x149); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x159, &x160, + x158, x137, x151); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x161, &x162, + x160, x139, x153); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x163, &x164, x155, UINT64_C(0xdf6e6c2c727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x165, &x166, x163, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x167, &x168, x163, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x169, &x170, x163, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u64( + &x171, &x172, x163, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x173, &x174, 0x0, + x172, x169); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x175, &x176, + x174, x170, x167); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x177, &x178, + x176, x168, x165); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x179, &x180, 0x0, + x155, x171); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x181, &x182, + x180, x157, x173); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x183, &x184, + x182, x159, x175); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64(&x185, &x186, + x184, x161, x177); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u64( + &x187, &x188, x186, (((uint64_t)x162 + x140) + (x154 + x142)), + (x178 + x166)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x189, &x190, 0x0, x181, UINT64_C(0x7998f7b9022d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x191, &x192, x190, x183, UINT64_C(0xcf846e86789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x193, &x194, x192, x185, UINT64_C(0xab1ec85e6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64( + &x195, &x196, x194, x187, UINT64_C(0x9b9f605f5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u64(&x197, &x198, + x196, x188, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x199, x198, x189, + x181); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x200, x198, x191, + x183); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x201, x198, x193, + x185); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64(&x202, x198, x195, + x187); + out1[0] = x199; + out1[1] = x200; + out1[2] = x201; + out1[3] = x202; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_nonzero( + uint64_t *out1, const uint64_t arg1[4]) { + uint64_t x1; + x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | (uint64_t)0x0)))); + *out1 = x1; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_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]] + * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + uint64_t out1[4], fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 arg1, + const uint64_t arg2[4], const uint64_t arg3[4]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64( + &x1, arg1, (arg2[0]), (arg3[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64( + &x2, arg1, (arg2[1]), (arg3[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64( + &x3, arg1, (arg2[2]), (arg3[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u64( + &x4, arg1, (arg2[3]), (arg3[3])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31] + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * 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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes( + uint8_t out1[32], const uint64_t arg1[4]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint8_t x6; + uint64_t x7; + uint8_t x8; + uint64_t x9; + uint8_t x10; + uint64_t x11; + uint8_t x12; + uint64_t x13; + uint8_t x14; + uint64_t x15; + uint8_t x16; + uint8_t x17; + uint8_t x18; + uint8_t x19; + uint64_t x20; + uint8_t x21; + uint64_t x22; + uint8_t x23; + uint64_t x24; + uint8_t x25; + uint64_t x26; + uint8_t x27; + uint64_t x28; + uint8_t x29; + uint64_t x30; + uint8_t x31; + uint8_t x32; + uint8_t x33; + uint8_t x34; + uint64_t x35; + uint8_t x36; + uint64_t x37; + uint8_t x38; + uint64_t x39; + uint8_t x40; + uint64_t x41; + uint8_t x42; + uint64_t x43; + uint8_t x44; + uint64_t x45; + uint8_t x46; + uint8_t x47; + uint8_t x48; + uint8_t x49; + uint64_t x50; + uint8_t x51; + uint64_t x52; + uint8_t x53; + uint64_t x54; + uint8_t x55; + uint64_t x56; + uint8_t x57; + uint64_t x58; + uint8_t x59; + uint64_t x60; + uint8_t x61; + uint8_t x62; + uint8_t x63; + x1 = (arg1[3]); + x2 = (arg1[2]); + x3 = (arg1[1]); + x4 = (arg1[0]); + x5 = (x4 >> 8); + x6 = (uint8_t)(x4 & UINT8_C(0xff)); + x7 = (x5 >> 8); + x8 = (uint8_t)(x5 & UINT8_C(0xff)); + x9 = (x7 >> 8); + x10 = (uint8_t)(x7 & UINT8_C(0xff)); + x11 = (x9 >> 8); + x12 = (uint8_t)(x9 & UINT8_C(0xff)); + x13 = (x11 >> 8); + x14 = (uint8_t)(x11 & UINT8_C(0xff)); + x15 = (x13 >> 8); + x16 = (uint8_t)(x13 & UINT8_C(0xff)); + x17 = (uint8_t)(x15 >> 8); + x18 = (uint8_t)(x15 & UINT8_C(0xff)); + x19 = (uint8_t)(x17 & UINT8_C(0xff)); + x20 = (x3 >> 8); + x21 = (uint8_t)(x3 & UINT8_C(0xff)); + x22 = (x20 >> 8); + x23 = (uint8_t)(x20 & UINT8_C(0xff)); + x24 = (x22 >> 8); + x25 = (uint8_t)(x22 & UINT8_C(0xff)); + x26 = (x24 >> 8); + x27 = (uint8_t)(x24 & UINT8_C(0xff)); + x28 = (x26 >> 8); + x29 = (uint8_t)(x26 & UINT8_C(0xff)); + x30 = (x28 >> 8); + x31 = (uint8_t)(x28 & UINT8_C(0xff)); + x32 = (uint8_t)(x30 >> 8); + x33 = (uint8_t)(x30 & UINT8_C(0xff)); + x34 = (uint8_t)(x32 & UINT8_C(0xff)); + x35 = (x2 >> 8); + x36 = (uint8_t)(x2 & UINT8_C(0xff)); + x37 = (x35 >> 8); + x38 = (uint8_t)(x35 & UINT8_C(0xff)); + x39 = (x37 >> 8); + x40 = (uint8_t)(x37 & UINT8_C(0xff)); + x41 = (x39 >> 8); + x42 = (uint8_t)(x39 & UINT8_C(0xff)); + x43 = (x41 >> 8); + x44 = (uint8_t)(x41 & UINT8_C(0xff)); + x45 = (x43 >> 8); + x46 = (uint8_t)(x43 & UINT8_C(0xff)); + x47 = (uint8_t)(x45 >> 8); + x48 = (uint8_t)(x45 & UINT8_C(0xff)); + x49 = (uint8_t)(x47 & UINT8_C(0xff)); + x50 = (x1 >> 8); + x51 = (uint8_t)(x1 & UINT8_C(0xff)); + x52 = (x50 >> 8); + x53 = (uint8_t)(x50 & UINT8_C(0xff)); + x54 = (x52 >> 8); + x55 = (uint8_t)(x52 & UINT8_C(0xff)); + x56 = (x54 >> 8); + x57 = (uint8_t)(x54 & UINT8_C(0xff)); + x58 = (x56 >> 8); + x59 = (uint8_t)(x56 & UINT8_C(0xff)); + x60 = (x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (uint8_t)(x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + out1[0] = x6; + out1[1] = x8; + out1[2] = x10; + out1[3] = x12; + out1[4] = x14; + out1[5] = x16; + out1[6] = x18; + out1[7] = x19; + out1[8] = x21; + out1[9] = x23; + out1[10] = x25; + out1[11] = x27; + out1[12] = x29; + out1[13] = x31; + out1[14] = x33; + out1[15] = x34; + out1[16] = x36; + out1[17] = x38; + out1[18] = x40; + out1[19] = x42; + out1[20] = x44; + out1[21] = x46; + out1[22] = x48; + out1[23] = x49; + out1[24] = x51; + out1[25] = x53; + out1[26] = x55; + out1[27] = x57; + out1[28] = x59; + out1[29] = x61; + out1[30] = x63; + out1[31] = x62; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order. + * Preconditions: + * 0 ≤ bytes_eval arg1 < m + * Postconditions: + * eval out1 mod m = bytes_eval arg1 mod m + * 0 ≤ eval out1 < 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]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes( + uint64_t out1[4], const uint8_t arg1[32]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint8_t x8; + uint64_t x9; + uint64_t x10; + uint64_t x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint8_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + uint64_t x23; + uint8_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; + x1 = ((uint64_t)(arg1[31]) << 56); + x2 = ((uint64_t)(arg1[30]) << 48); + x3 = ((uint64_t)(arg1[29]) << 40); + x4 = ((uint64_t)(arg1[28]) << 32); + x5 = ((uint64_t)(arg1[27]) << 24); + x6 = ((uint64_t)(arg1[26]) << 16); + x7 = ((uint64_t)(arg1[25]) << 8); + x8 = (arg1[24]); + x9 = ((uint64_t)(arg1[23]) << 56); + x10 = ((uint64_t)(arg1[22]) << 48); + x11 = ((uint64_t)(arg1[21]) << 40); + x12 = ((uint64_t)(arg1[20]) << 32); + x13 = ((uint64_t)(arg1[19]) << 24); + x14 = ((uint64_t)(arg1[18]) << 16); + x15 = ((uint64_t)(arg1[17]) << 8); + x16 = (arg1[16]); + x17 = ((uint64_t)(arg1[15]) << 56); + x18 = ((uint64_t)(arg1[14]) << 48); + x19 = ((uint64_t)(arg1[13]) << 40); + x20 = ((uint64_t)(arg1[12]) << 32); + x21 = ((uint64_t)(arg1[11]) << 24); + x22 = ((uint64_t)(arg1[10]) << 16); + x23 = ((uint64_t)(arg1[9]) << 8); + x24 = (arg1[8]); + x25 = ((uint64_t)(arg1[7]) << 56); + x26 = ((uint64_t)(arg1[6]) << 48); + x27 = ((uint64_t)(arg1[5]) << 40); + x28 = ((uint64_t)(arg1[4]) << 32); + x29 = ((uint64_t)(arg1[3]) << 24); + x30 = ((uint64_t)(arg1[2]) << 16); + x31 = ((uint64_t)(arg1[1]) << 8); + x32 = (arg1[0]); + x33 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + (x26 + x25))))))); + x34 = (x33 & UINT64_C(0xffffffffffffffff)); + x35 = (x8 + (x7 + (x6 + (x5 + (x4 + (x3 + (x2 + x1))))))); + x36 = (x16 + (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9))))))); + x37 = (x24 + (x23 + (x22 + (x21 + (x20 + (x19 + (x18 + x17))))))); + x38 = (x37 & UINT64_C(0xffffffffffffffff)); + x39 = (x36 & UINT64_C(0xffffffffffffffff)); + out1[0] = x34; + out1[1] = x38; + out1[2] = x39; + out1[3] = x35; +} + +/* 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_GostR3410_2001_CryptoPro_C_ParamSet/fe_inv.op3 + * sliding window w=5 + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t11, t13, t15, t17, t19, t21, t23, t25, t27, t29, t3, t31, t5, t7, + t9; + + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t3, t1, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t5, t3, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t7, t5, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t9, t7, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t11, t9, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t13, t11, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t15, t13, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t17, t15, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t19, t17, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t21, t19, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t23, t21, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t25, t23, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t27, t25, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t29, t27, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t31, t29, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, t9); + for (i = 0; i < 4; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t23); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t7); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t27); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t15); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t21); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t21); + for (i = 0; i < 8; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t11); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t29); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t11); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t15); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t25); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t15); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t13); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t13); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t25); + for (i = 0; i < 8; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t21); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t11); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t31); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t3); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t29); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t3); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t15); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t9); + for (i = 0; i < 8; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t5); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t7); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t19); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t15); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t25); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t17); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t29); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t29); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t25); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t11); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t23); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t11); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(output, acc, t25); +} + +/* curve coefficient constants */ + +static const limb_t const_one[4] = { + UINT64_C(0x86670846FDD28A65), UINT64_C(0x307B9179876FAE2C), + UINT64_C(0x54E137A194BE3755), UINT64_C(0x64609FA0A57A7EF8)}; + +static const limb_t const_b[4] = { + UINT64_C(0x4BE8A4E93BDA2ACF), UINT64_C(0x79CC0E3E90D382DD), + UINT64_C(0x3BA4C8B01D9CC79B), UINT64_C(0x5CC73B5A966609E9)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[27][16] = { + { + {{UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000)}, + {UINT64_C(0xD082E00700254F12), UINT64_C(0xC5BA8184EB1F1421), + UINT64_C(0x4EC9E7D0F010780D), UINT64_C(0x7846B5B72794C8D5)}}, + {{UINT64_C(0x870FB0417225A595), UINT64_C(0x6CAFAE705FD57F04), + UINT64_C(0xFEC1C2AC2E7DB9BA), UINT64_C(0x9230823E127A5862)}, + {UINT64_C(0xF6CFDB6DE4464836), UINT64_C(0x3D79631B9A945AC0), + UINT64_C(0xA1FCF2DF3D0C880D), UINT64_C(0x17C83E500EE6A611)}}, + {{UINT64_C(0x3C79C11AE42734FD), UINT64_C(0x1614B2BEAC4040C3), + UINT64_C(0xDD1437252C3A23A5), UINT64_C(0x1A02DA838AF4F7CD)}, + {UINT64_C(0x23D588D6E7D6991A), UINT64_C(0x5F332676D2B3E364), + UINT64_C(0x353826809134BA88), UINT64_C(0x08ECA826D27090E5)}}, + {{UINT64_C(0x231F8DC826761106), UINT64_C(0x7363050E3D78B14B), + UINT64_C(0xC3B9A1B8C05C4381), UINT64_C(0x29727635B8ACD9AC)}, + {UINT64_C(0xDD416AE92ED54E6C), UINT64_C(0x546084350B48A87C), + UINT64_C(0x2C8DEEA497093D22), UINT64_C(0x87D2924C0D716BAF)}}, + {{UINT64_C(0x43281D30619206D6), UINT64_C(0x4A8FFC8768744E44), + UINT64_C(0xB1011A3D708208D5), UINT64_C(0x2FE86E7BA035B0B9)}, + {UINT64_C(0x82F43088A3762860), UINT64_C(0x67B5A303B33595D4), + UINT64_C(0x262F16EBB477BECD), UINT64_C(0x1D38D4A723E2816A)}}, + {{UINT64_C(0x91BBA3C0AD83C032), UINT64_C(0x7DBC2EB6234F2FF3), + UINT64_C(0xE2C00C156D18A737), UINT64_C(0x71D1AE8BCCF6DC2D)}, + {UINT64_C(0x6183816A2DB77239), UINT64_C(0xC545A5120E228C41), + UINT64_C(0x3B96D6BC0F49A679), UINT64_C(0x9831D683E49E39C2)}}, + {{UINT64_C(0xEEAA17A920DA13D9), UINT64_C(0xEE3130FB8ABECADE), + UINT64_C(0xBFB2CE6AA6E3D089), UINT64_C(0x22BCDCEEE627A07C)}, + {UINT64_C(0x86D7A50C955A1D9E), UINT64_C(0xCD60A425E4E00B9E), + UINT64_C(0x5407A6F8615B9E91), UINT64_C(0x7F17B1714F1CA93D)}}, + {{UINT64_C(0xBC351DE00DB59F2C), UINT64_C(0x1470E6A19CDAF8AF), + UINT64_C(0x461ED28960D3B27A), UINT64_C(0x122C8F4B49C7F789)}, + {UINT64_C(0xAB56E614069FC8CE), UINT64_C(0x9836B010C34E487C), + UINT64_C(0x9EE067033FE009EB), UINT64_C(0x88C8DC64AA019563)}}, + {{UINT64_C(0xD0B4A99663DDBB1F), UINT64_C(0x483286E51D154696), + UINT64_C(0xF0586DB89F0D6F4E), UINT64_C(0x38167987980446C8)}, + {UINT64_C(0x86A2ABACE4166B55), UINT64_C(0x4E7B4F96A8366C64), + UINT64_C(0x20CF2108ED997D8E), UINT64_C(0x20EA98441D01C009)}}, + {{UINT64_C(0x028B520EB89CE05A), UINT64_C(0xEF41147D4FAAD420), + UINT64_C(0xB280CCD3121A2A0A), UINT64_C(0x4C677C8386E8F591)}, + {UINT64_C(0xB42F67B2A390AA99), UINT64_C(0xC4EF553B19F8A01A), + UINT64_C(0x867611396979027F), UINT64_C(0x6F17766382C202BE)}}, + {{UINT64_C(0xBEF6B99627C5C7CC), UINT64_C(0xB2D34F8B10799DB8), + UINT64_C(0x132E1A3D48AD9B1E), UINT64_C(0x2971BFEDE68B9907)}, + {UINT64_C(0x312F6D31C6B743B5), UINT64_C(0xCF123317A718E0A8), + UINT64_C(0xCF1E5266FD58637C), UINT64_C(0x56BA8362E046167C)}}, + {{UINT64_C(0xD680969D0E910D7F), UINT64_C(0x634FB3C28A4689F9), + UINT64_C(0xA79A56DF09FDD299), UINT64_C(0x9065269E89411C3D)}, + {UINT64_C(0x5D22254E82C6076C), UINT64_C(0xDE7D78F081FEA171), + UINT64_C(0xE136696410BCDA87), UINT64_C(0x98B58F5A97638B85)}}, + {{UINT64_C(0xA532DED4FB5EDF3F), UINT64_C(0x604E5631833A7E2F), + UINT64_C(0x7C4051D33A09C74E), UINT64_C(0x51D1108AEDFBEB4B)}, + {UINT64_C(0x9AE61F9E4DF1AB4D), UINT64_C(0xFD4966F3163DB1A5), + UINT64_C(0xF6C44E557075AD6D), UINT64_C(0x670D0D6F4AF24611)}}, + {{UINT64_C(0xD99925FFD369D301), UINT64_C(0xC17E97677665BCF4), + UINT64_C(0xB5A908F1CB5A2128), UINT64_C(0x1981791D9C726C9F)}, + {UINT64_C(0xC4249418E0861F4E), UINT64_C(0x2A63399FEE045D5E), + UINT64_C(0x246958FDA1B974FF), UINT64_C(0x668016A20FC6F7A0)}}, + {{UINT64_C(0xEB7018ADEDE07C08), UINT64_C(0xDF3C12592E33D1D9), + UINT64_C(0xEE0913DADC24E3DE), UINT64_C(0x1C632D5B35EB6B0D)}, + {UINT64_C(0xC69396DD2C56E1B2), UINT64_C(0x01F0B034A837CE8F), + UINT64_C(0x7842B98DB6882E32), UINT64_C(0x8FAC92309E61FCA6)}}, + {{UINT64_C(0x1DBB7D998A782CFE), UINT64_C(0xEB945B49C9322BE7), + UINT64_C(0xDCCB4E6EE208123B), UINT64_C(0x1C7C265CFC024524)}, + {UINT64_C(0xAD000D8A6102BC63), UINT64_C(0x7D7F3C7B82575943), + UINT64_C(0x8D2F08810D547A95), UINT64_C(0x7012377AD94FFA6D)}}, + }, + { + {{UINT64_C(0xE3F78DE51EB6CBF7), UINT64_C(0xF4E08A6172FA65DB), + UINT64_C(0x670B0E06502A247E), UINT64_C(0x7A45D73E9877E492)}, + {UINT64_C(0x5FD754AD3DD0CDBC), UINT64_C(0xA5C2B15E0125AB1F), + UINT64_C(0xC503836FE614B7A9), UINT64_C(0x5548C4242C50DCFE)}}, + {{UINT64_C(0xCEE7BE65B9B38743), UINT64_C(0xD5E4171594BE028E), + UINT64_C(0x08EC3CA3B5C45F7D), UINT64_C(0x1ACFAC17FB51261A)}, + {UINT64_C(0x45098D93A9C04381), UINT64_C(0x717FC0DCA5B45DC8), + UINT64_C(0xF352A9C2EABEE4E5), UINT64_C(0x1964AF20F311B457)}}, + {{UINT64_C(0x8C2298080802A755), UINT64_C(0x46F0A7CA6140CDA7), + UINT64_C(0xF0EEB7AEBC62603B), UINT64_C(0x8432E1524BF4B451)}, + {UINT64_C(0x3C31982563967F94), UINT64_C(0xF04EACB6A042AE13), + UINT64_C(0xD7CB2DBC650A6ADB), UINT64_C(0x38A36EE378C9E166)}}, + {{UINT64_C(0x3527A5C5D3EE8657), UINT64_C(0xBAA0DE97101645F9), + UINT64_C(0xC59C9803CE9D6A48), UINT64_C(0x43D12449F8F39FDF)}, + {UINT64_C(0x65B3AB988DF7A72B), UINT64_C(0xD225AF8EAFDA9048), + UINT64_C(0x88C368B8338A3694), UINT64_C(0x4A5A3C24FBC813F1)}}, + {{UINT64_C(0xCBCB725A9E2118B5), UINT64_C(0x113F36C5CAA54794), + UINT64_C(0x5900990E4A0A2267), UINT64_C(0x4E329EB10A9C1F11)}, + {UINT64_C(0xF47F4077CD8918A7), UINT64_C(0x18A3C0713877B404), + UINT64_C(0xCDEF4FE3EFEB2B6B), UINT64_C(0x360982DBDE4D0540)}}, + {{UINT64_C(0x42AB64F2D5F8DACA), UINT64_C(0x604A9676EE88523D), + UINT64_C(0xD430CCABAEFD1283), UINT64_C(0x3DA9D0E554465F7C)}, + {UINT64_C(0x5EC145DF41A4216B), UINT64_C(0x7C8F2C51F7E7FBD9), + UINT64_C(0xA2E58A23BD483D26), UINT64_C(0x4739F7F9E4A908C8)}}, + {{UINT64_C(0x37DDF87279370382), UINT64_C(0x9D26A55F12C8E90E), + UINT64_C(0xFC1FA6CDE8EB0CA4), UINT64_C(0x826A29E5C29DC4F9)}, + {UINT64_C(0x15ECB621AA29F814), UINT64_C(0x4C8A81289DF1DFF7), + UINT64_C(0xBB22301966B549BB), UINT64_C(0x6CB21ACBB81A2863)}}, + {{UINT64_C(0xDD31ACC211DA6928), UINT64_C(0xF98867B0A903D58F), + UINT64_C(0xAD283697D3679348), UINT64_C(0x67BFEFF9301C3571)}, + {UINT64_C(0xB745CAE6780BBBCE), UINT64_C(0x1A9C661862F2EC5D), + UINT64_C(0xF9895684A1475BEB), UINT64_C(0x93E5ACE64731A11D)}}, + {{UINT64_C(0x0F6E94607539483E), UINT64_C(0x5728E6DD9EF4EF16), + UINT64_C(0xE1DA86E1062E946E), UINT64_C(0x272EBC47F2E07759)}, + {UINT64_C(0xE5E688E3909A578F), UINT64_C(0x9F25D6D17CFD1B7D), + UINT64_C(0xC582260FADE1E2A4), UINT64_C(0x2F50F74EA050071E)}}, + {{UINT64_C(0xE0A8FE3F2DF4D40D), UINT64_C(0xB126E4EF07791F88), + UINT64_C(0x69759DB42A88D242), UINT64_C(0x52592A3BC9C1981C)}, + {UINT64_C(0xD0F4172872F649A1), UINT64_C(0x9FF19B2B0750EBAB), + UINT64_C(0xEFC047F9E0D7D222), UINT64_C(0x81491CA12E8140AF)}}, + {{UINT64_C(0x2DA40FF1675F821B), UINT64_C(0x2C91A2879E2E0502), + UINT64_C(0x993ECFF4077D81FE), UINT64_C(0x3ABA2F2C71CC3DAE)}, + {UINT64_C(0xED007670168413DB), UINT64_C(0xC07D61B5AFBD4E82), + UINT64_C(0xF078262E6BBADA24), UINT64_C(0x0E0EDC629E6413CC)}}, + {{UINT64_C(0x6CD0451DB7D099F9), UINT64_C(0x8FB218E6F8B12C83), + UINT64_C(0x4D8C3B26E55EE1E4), UINT64_C(0x949649064A6FCD90)}, + {UINT64_C(0x9ABB96854BEACA48), UINT64_C(0x6A749487868EFEC7), + UINT64_C(0x46BB9B42C8D2932C), UINT64_C(0x82384321DE007BAC)}}, + {{UINT64_C(0xDBECB743A942DB71), UINT64_C(0x21B5211521A6BC46), + UINT64_C(0xE49B689424C17D78), UINT64_C(0x737FD3F189A08E17)}, + {UINT64_C(0xF833E404C36E4E57), UINT64_C(0x512C114A01E17CE6), + UINT64_C(0x65A23D7350D75050), UINT64_C(0x838CA746F2F2D438)}}, + {{UINT64_C(0x28F9220CA20632B7), UINT64_C(0x72D8C347642358D6), + UINT64_C(0xAB15FE1BE89CAA6F), UINT64_C(0x2A09B1436E16374A)}, + {UINT64_C(0x4CED0986B983CFE8), UINT64_C(0xD9B067B697B84E88), + UINT64_C(0x926FC5F5C2350F8F), UINT64_C(0x31D7735884E2078F)}}, + {{UINT64_C(0xA7815CE77FF17BA1), UINT64_C(0xBE80BB6CA26BBA1B), + UINT64_C(0x66DAE535F86DF104), UINT64_C(0x72739199AB1B9C09)}, + {UINT64_C(0x8E93F3C854056E67), UINT64_C(0xDC5E3855EBF23595), + UINT64_C(0x70D1033C78123000), UINT64_C(0x50874350F22DD2BD)}}, + {{UINT64_C(0x533F213BC2700468), UINT64_C(0x31E6AA9C11BEA732), + UINT64_C(0xCB5E184E4491DC82), UINT64_C(0x8A68049A5BD63975)}, + {UINT64_C(0x1724AC47F86A41D1), UINT64_C(0xDF9A0CA3ECA0DA11), + UINT64_C(0xE5E1489C71F0EA19), UINT64_C(0x0E20661AC9DC7BF2)}}, + }, + { + {{UINT64_C(0x5EB4E319F86D9DA8), UINT64_C(0x3CBF130EE0A46703), + UINT64_C(0x166D52DA00A4AB17), UINT64_C(0x27A80547B7030861)}, + {UINT64_C(0xA7601086399C32BA), UINT64_C(0x571E4E4BC2F0A5E5), + UINT64_C(0x72D12F6B39BED44D), UINT64_C(0x8FDCCE3D1AF8F25F)}}, + {{UINT64_C(0x281F7AF97DFEB40D), UINT64_C(0x0CCE33B9D7F767D5), + UINT64_C(0x3E8BF3F48818C1E6), UINT64_C(0x6D909D0D4BA4647A)}, + {UINT64_C(0x91D77BA0FAC574D1), UINT64_C(0xD259266168CA7FEC), + UINT64_C(0xC4C7D6B5281F269C), UINT64_C(0x7A41CD78DA42CDDD)}}, + {{UINT64_C(0xBC8E0D27A3B8F255), UINT64_C(0xF5E2A8B11C3E5190), + UINT64_C(0x8C38862BD609F668), UINT64_C(0x4E31C18E0631D50F)}, + {UINT64_C(0x9013EDDBF13E0CCD), UINT64_C(0x83B04E6841EFDAF7), + UINT64_C(0x15EC4BB8DC82597F), UINT64_C(0x5059515056117705)}}, + {{UINT64_C(0xD25F244D1E0E0161), UINT64_C(0x6C975D7B1A437FBA), + UINT64_C(0x305DB2DF95F2AD8C), UINT64_C(0x17D6E0053B9CC742)}, + {UINT64_C(0x6A849F76E60BC3C3), UINT64_C(0x35523E08BF8C3790), + UINT64_C(0xF18B5335239140E2), UINT64_C(0x5E8570557CA5FF40)}}, + {{UINT64_C(0xB48F07A4A4250E95), UINT64_C(0x068735AEC7F17667), + UINT64_C(0x30F8D31394771B24), UINT64_C(0x598EA397A495A064)}, + {UINT64_C(0xBF19252968B76855), UINT64_C(0x897E3CC6C7C0D2D6), + UINT64_C(0xA2A4948F64EC9649), UINT64_C(0x1027891AAE7C8598)}}, + {{UINT64_C(0x0442E6CB04585685), UINT64_C(0x09BA61DA82A2D258), + UINT64_C(0x7C5400B10AE5466D), UINT64_C(0x0A0B71B0C2133893)}, + {UINT64_C(0x04E3D98AD5EF6E93), UINT64_C(0x177EA5F8F332BDF2), + UINT64_C(0xE7CF3F71C3FAE583), UINT64_C(0x40C451338AE0CFD7)}}, + {{UINT64_C(0x6BE94FC39B82E738), UINT64_C(0x212FB8048BC262E2), + UINT64_C(0xE17F6A7AB22E21FF), UINT64_C(0x22B7BDAB15E960BB)}, + {UINT64_C(0xE154C945771350C2), UINT64_C(0x6505B8EB882DB07B), + UINT64_C(0x149A0A16C7E3ABD3), UINT64_C(0x78F78ABF81C30AAE)}}, + {{UINT64_C(0x6ED81415C954BC0A), UINT64_C(0x316E801270E55349), + UINT64_C(0xEC02323B50399C09), UINT64_C(0x963BA97B8559C3A9)}, + {UINT64_C(0x39FCE50E037EC345), UINT64_C(0x422A082DD5BF03FB), + UINT64_C(0x59ED39E418DCC77E), UINT64_C(0x4CFC3F11A40AA978)}}, + {{UINT64_C(0x85A5692255D7C9B6), UINT64_C(0x5BC590E2B451111B), + UINT64_C(0x3BCB23158782C71B), UINT64_C(0x1F3456C4632246A9)}, + {UINT64_C(0xEA577AD99CFBBE19), UINT64_C(0x051BEE4035CCE939), + UINT64_C(0xDC3008991A0C589C), UINT64_C(0x14877ECED2095619)}}, + {{UINT64_C(0xB64D0EC695024C5E), UINT64_C(0xB0597195B94CDF74), + UINT64_C(0x3B97B51316844010), UINT64_C(0x48799881CCBABC63)}, + {UINT64_C(0x0E3119AED9819075), UINT64_C(0xA5DCA9C1EB0299FD), + UINT64_C(0x8063D7884A404D13), UINT64_C(0x974D2A1A8044EBE2)}}, + {{UINT64_C(0xB6589045B8E14640), UINT64_C(0xFAD60A435507B9BE), + UINT64_C(0x9D540C1C56FF32BC), UINT64_C(0x47ECC24F74265A69)}, + {UINT64_C(0x0C829F18DB3E64C9), UINT64_C(0xF7C0C6D772E87B2B), + UINT64_C(0xCB3FC51216B616CE), UINT64_C(0x549B9227B94F69B1)}}, + {{UINT64_C(0xB151DEE9DB235273), UINT64_C(0x2FD9496F6D65606C), + UINT64_C(0x6A5E172DD62B5B0D), UINT64_C(0x181E605DEA0AE249)}, + {UINT64_C(0x66D7EB098911490A), UINT64_C(0x85E174A32E70DEF2), + UINT64_C(0x2DA133544EF8CFA9), UINT64_C(0x1B87FE623E69BD22)}}, + {{UINT64_C(0x2DF420CA2BB09564), UINT64_C(0x1AC26F767ACEE4D4), + UINT64_C(0x50C68E6F2BC7EF7A), UINT64_C(0x4730D654B445B2FE)}, + {UINT64_C(0x90C040D98B57D38D), UINT64_C(0x28793DB533CA2C77), + UINT64_C(0x22D2B573AC6A4BE8), UINT64_C(0x68C0DBDDB72E7E01)}}, + {{UINT64_C(0xDF70BCDC09E2D3FF), UINT64_C(0xB6E599709F20F624), + UINT64_C(0x5E04FDE76DE3119E), UINT64_C(0x1C9B43FFD5705A5D)}, + {UINT64_C(0x7C23A517681270B0), UINT64_C(0xDD7FC8339303BF40), + UINT64_C(0x3028E496458EE80A), UINT64_C(0x0C72006352590EEF)}}, + {{UINT64_C(0x27B297102850A5AE), UINT64_C(0xD1E6FBBAAA3E0397), + UINT64_C(0xCFB44044DF8FCBD6), UINT64_C(0x7CD86272C52B90FD)}, + {UINT64_C(0xB0E7FA93EBA52025), UINT64_C(0x6416630304084EF3), + UINT64_C(0xD7C7DCBE43840178), UINT64_C(0x8BC7FF7722FB81A2)}}, + {{UINT64_C(0xABDC5206DAFCE699), UINT64_C(0x522A913783C5F3A3), + UINT64_C(0xBAA936370E666E5C), UINT64_C(0x0FD813DAD2D33B62)}, + {UINT64_C(0x833919085D417354), UINT64_C(0xE5AADE1DA6B9B447), + UINT64_C(0xBDE90A3CD68321B1), UINT64_C(0x43FF95140411531B)}}, + }, + { + {{UINT64_C(0xD61DEE6439648345), UINT64_C(0xF8B3FA1C7FCB5B5E), + UINT64_C(0xDD531CE124C29C71), UINT64_C(0x7A23608BFFB825FE)}, + {UINT64_C(0x8D607B82F0DE896D), UINT64_C(0x6E49733006EDDAFE), + UINT64_C(0x8B49EFF0C935E754), UINT64_C(0x90D54646EE08BDBF)}}, + {{UINT64_C(0xF44FBB169044FD39), UINT64_C(0xA72128C4DFB38141), + UINT64_C(0x8467F68801954CC0), UINT64_C(0x741C23EEB560B5C5)}, + {UINT64_C(0xA7F422019765CF34), UINT64_C(0xB26C97BF8A2AB61A), + UINT64_C(0xAA948763CBD45AF3), UINT64_C(0x74C993C2E21479F5)}}, + {{UINT64_C(0xD968CE1ABFA717A5), UINT64_C(0x45C1103D48E92615), + UINT64_C(0x4CCEBE85DD98207D), UINT64_C(0x8A75DF6EE65E5FE6)}, + {UINT64_C(0x9E582C40418C47C5), UINT64_C(0x2E9EE003A450009B), + UINT64_C(0x7C079613DD60D3D2), UINT64_C(0x80A78C4A9935D8CA)}}, + {{UINT64_C(0xF6CDED58D3C9B903), UINT64_C(0x4F27927DEF455E7A), + UINT64_C(0xF9DBBB9E833BB3C1), UINT64_C(0x4107CFBF6BA3770A)}, + {UINT64_C(0x61871175520FCB57), UINT64_C(0xEA3A307B47A12C8E), + UINT64_C(0x940DDEE8C24E9E75), UINT64_C(0x8AE8F22CF33541BB)}}, + {{UINT64_C(0xE4C898703973DC0B), UINT64_C(0xCC3DD1AC55DFAAF0), + UINT64_C(0xB63D596B27372EFE), UINT64_C(0x1B92A19245A33718)}, + {UINT64_C(0x0EABEBEE00607319), UINT64_C(0x69B7355E7C3E35EE), + UINT64_C(0xF7354E352233C454), UINT64_C(0x1E2BAADA1E722C0A)}}, + {{UINT64_C(0xD0E47FE23B9FE86D), UINT64_C(0x878F403FDAA1C7BC), + UINT64_C(0x5447AD5490F5DED7), UINT64_C(0x4E8A997B1E58B03B)}, + {UINT64_C(0x9AD0E4812E926FA8), UINT64_C(0x871EFB9E8D0EF3AA), + UINT64_C(0xADD7DD147E714DF6), UINT64_C(0x9A30245A2308EE02)}}, + {{UINT64_C(0x44838B15904F0D11), UINT64_C(0x6177587A2A2A70FF), + UINT64_C(0x402938502C2F7943), UINT64_C(0x8F85119167581701)}, + {UINT64_C(0x564383D1842E6434), UINT64_C(0x251AF59DAF2C0078), + UINT64_C(0x8A81772D3354A264), UINT64_C(0x9AAFA350DFD2D0EA)}}, + {{UINT64_C(0x4739793235461CAD), UINT64_C(0x0F86BD4362C5BFFA), + UINT64_C(0x5F166BC07785490D), UINT64_C(0x7DCCC9882BD61B3E)}, + {UINT64_C(0x44C3299A9394375B), UINT64_C(0x0C5F2803405A34BD), + UINT64_C(0x3AD60F1D4237E728), UINT64_C(0x6E7E06D072EC2562)}}, + {{UINT64_C(0x44AD84713C5840A6), UINT64_C(0x40C3CE2B4752BC62), + UINT64_C(0x94B14C21EC3FD75F), UINT64_C(0x65E0E6AF2629C0C0)}, + {UINT64_C(0xA3FE2F5555936454), UINT64_C(0x252AD743780E25E5), + UINT64_C(0x22F9951BFF4E107A), UINT64_C(0x1B8A7DDE554CEA49)}}, + {{UINT64_C(0xBBDCC2C089F1C6FA), UINT64_C(0x548FEF29C360A51D), + UINT64_C(0x094DAD451290EC92), UINT64_C(0x792F6FB9AF55BF30)}, + {UINT64_C(0x37EF4ABE707FBF4E), UINT64_C(0x0F43AB0DFC4B6BD0), + UINT64_C(0x850015B72D6EE5D9), UINT64_C(0x09273F3535C1FD65)}}, + {{UINT64_C(0xCECF1B90A6C3209B), UINT64_C(0xFB4BC864ABD433C0), + UINT64_C(0x38246AAA3EEEF8BA), UINT64_C(0x4BC7904E9ED13F88)}, + {UINT64_C(0xA61C369A8E783066), UINT64_C(0x496FB8314D1C832C), + UINT64_C(0x1907687A03AD64D5), UINT64_C(0x49516EA583425766)}}, + {{UINT64_C(0x8108B704B1714E53), UINT64_C(0xB458CB4B82E39BE7), + UINT64_C(0xFCBD51CC097049DE), UINT64_C(0x415F4079722E8CBA)}, + {UINT64_C(0xCDB06F5E342DF9C6), UINT64_C(0x64885CD11281AC74), + UINT64_C(0x932A05E45366673D), UINT64_C(0x7333520BE83AD23D)}}, + {{UINT64_C(0xDAA0A1EFC54B523C), UINT64_C(0xA3E80053B3C261C8), + UINT64_C(0x352CC612558FCFA5), UINT64_C(0x1B9B755D85852B14)}, + {UINT64_C(0x19EE2CB6A1B541FF), UINT64_C(0x2B531CE2D5786B4F), + UINT64_C(0xEF5EA6DF08C3E15B), UINT64_C(0x82161B0487111129)}}, + {{UINT64_C(0x5AB533A5FCEABAED), UINT64_C(0x4C2147A54A4D8E44), + UINT64_C(0xD8EEE795DA02D43D), UINT64_C(0x8CB648DFA15C1CD0)}, + {UINT64_C(0x4869FB6CA788DDDE), UINT64_C(0xF9554D1477C03759), + UINT64_C(0x4D25B41A96187DB9), UINT64_C(0x662FBAB33FE0B3F3)}}, + {{UINT64_C(0xD3AF4D09A58A5B2E), UINT64_C(0x3C5DD2985CE88DBE), + UINT64_C(0x89DDA42E7426C2A4), UINT64_C(0x2D832B0749095424)}, + {UINT64_C(0x24EFCC0362AA84CF), UINT64_C(0x348C19DEE86923D7), + UINT64_C(0x453E928635DB5CB1), UINT64_C(0x03F48EEB8DB21CF3)}}, + {{UINT64_C(0xBCF9600FF4035856), UINT64_C(0xE77CEC83AF820E18), + UINT64_C(0xC87D43C17F2FBCC1), UINT64_C(0x574C4CAE6290B18D)}, + {UINT64_C(0x8BD8AE45E56E1EFE), UINT64_C(0xB1EFD68475D6FCC9), + UINT64_C(0x9829F227A361E753), UINT64_C(0x9A50B4255211B784)}}, + }, + { + {{UINT64_C(0x26F1959036396F78), UINT64_C(0x350D1A769AD1982C), + UINT64_C(0x33BDB4AB947F352E), UINT64_C(0x6CA38B05FFE1E1E1)}, + {UINT64_C(0x055364C26F2A8CA0), UINT64_C(0xAF15075D2969CA7E), + UINT64_C(0x2916D58FC3B9CB70), UINT64_C(0x18D94A8BD7325693)}}, + {{UINT64_C(0x87C41809F36EB789), UINT64_C(0x8C3517F9A7436F54), + UINT64_C(0xE7C02E1D3D785160), UINT64_C(0x5BAFE72E418C7ABF)}, + {UINT64_C(0xA00A8E76CD9B27C2), UINT64_C(0x667918087DA06823), + UINT64_C(0x342A03D920EC00B4), UINT64_C(0x44502A7E6122589A)}}, + {{UINT64_C(0x3A492F735BDAE972), UINT64_C(0x5184D076126A07DE), + UINT64_C(0xAE49313CB56A38F0), UINT64_C(0x66CCC24E9EC47E0A)}, + {UINT64_C(0xAE84941BC03CF3E1), UINT64_C(0x771AFC575A73440B), + UINT64_C(0xABF93DC8C433E43C), UINT64_C(0x974EE822243C6828)}}, + {{UINT64_C(0x468D7FDBA7A5F66C), UINT64_C(0xBBB2C482B18DEFCC), + UINT64_C(0x188B8CACFA2E7DEA), UINT64_C(0x7894BC93BE0200B9)}, + {UINT64_C(0xA31813386B84750E), UINT64_C(0x8B14BDB237356096), + UINT64_C(0xA9200FE7D62F4813), UINT64_C(0x8DF664A36F7627CE)}}, + {{UINT64_C(0x39BF14DDDD996CF1), UINT64_C(0xD00B3BF5F7F42D26), + UINT64_C(0xF1AF5A20017718A3), UINT64_C(0x34A1E94BABCAE05D)}, + {UINT64_C(0xAD75D1B5C635D333), UINT64_C(0x97E5BD3987210A5A), + UINT64_C(0x11684CA6A0327BF4), UINT64_C(0x25C511179B8F0A46)}}, + {{UINT64_C(0x7E5CD79FA935A9B9), UINT64_C(0x15DC70C2A22DCD16), + UINT64_C(0x5CDA47E678A420F4), UINT64_C(0x37E0364EEA631104)}, + {UINT64_C(0xE7C469565E47B630), UINT64_C(0x7BD4C4A7E42C4DCB), + UINT64_C(0xA76B87A71C91117E), UINT64_C(0x2AA043DDADA4B5E1)}}, + {{UINT64_C(0x6BB06B5A875DED57), UINT64_C(0x89452B3BFEAD7B14), + UINT64_C(0x0CBD5CA8A6E39E1F), UINT64_C(0x2DC5917C3BFA7A3D)}, + {UINT64_C(0x6395D5B8F840B6E8), UINT64_C(0xAEC9342FED8589EE), + UINT64_C(0x8332A1B877979E67), UINT64_C(0x29B55822C59F97DB)}}, + {{UINT64_C(0xFD145FF77D65A8F4), UINT64_C(0x8FFF7EE0119C9AFC), + UINT64_C(0x0100D0E9AFCD6214), UINT64_C(0x98DE55E5A3B988B3)}, + {UINT64_C(0x0BACCB2E00151BF2), UINT64_C(0x2B422D0966091583), + UINT64_C(0xC4D15E1693C66A3B), UINT64_C(0x1C107559727DE9E6)}}, + {{UINT64_C(0xC019C7D73CB76EDF), UINT64_C(0x6456DD91151F5E14), + UINT64_C(0x29E95B6657CC7078), UINT64_C(0x9193F4D9E9BDBCEC)}, + {UINT64_C(0x375837B04806F8CB), UINT64_C(0x52D5528AAA954620), + UINT64_C(0xE71F9F601B9D6D34), UINT64_C(0x910E4FA1DF95759C)}}, + {{UINT64_C(0x8D31B2EEFCADB5EA), UINT64_C(0x0814FF77A63C7498), + UINT64_C(0x236569C05E3D927E), UINT64_C(0x7F669DAD95BBB9D9)}, + {UINT64_C(0x29158C9A305B0347), UINT64_C(0x99B9B7E752D468EB), + UINT64_C(0x6C4CABC3B4342443), UINT64_C(0x125AFBEA0A803ED4)}}, + {{UINT64_C(0x850A150B101FAA4E), UINT64_C(0xB586BCDA11ECDABC), + UINT64_C(0x9692EF834DAD2264), UINT64_C(0x0951716ED2B67F5E)}, + {UINT64_C(0xA2295F20924DD16D), UINT64_C(0xD8327275D0CE88CD), + UINT64_C(0x45F8DD0CC683ADA3), UINT64_C(0x4A798B3388C26024)}}, + {{UINT64_C(0x225395CFCAF71198), UINT64_C(0xEE223712CA3F67CF), + UINT64_C(0x972B019981280061), UINT64_C(0x0CB20E7A280ECC12)}, + {UINT64_C(0x06F04DA870F54717), UINT64_C(0x5288425E410B9712), + UINT64_C(0x6C29A51474CEFB4A), UINT64_C(0x4218ECCA849E2FD6)}}, + {{UINT64_C(0xD85663A3B33574B6), UINT64_C(0x7469CFB1FAF7D3A2), + UINT64_C(0x9C587EC43CFA8876), UINT64_C(0x5DAE46AEDB24ED63)}, + {UINT64_C(0x66C8DA33C413E494), UINT64_C(0xB8B256B665942568), + UINT64_C(0x0F09178EA7A4CAAD), UINT64_C(0x577D4ADCAFEBC90B)}}, + {{UINT64_C(0x49009BA692D6C3B4), UINT64_C(0xE9CF4915B884FAAC), + UINT64_C(0xC12377D36F3DBE23), UINT64_C(0x2F6E0E86EA6B680C)}, + {UINT64_C(0x5DF2CD5AE6C5E24D), UINT64_C(0xAAE7E145EE608DD3), + UINT64_C(0x5357CFF28A7ED956), UINT64_C(0x8377126C3912DBA4)}}, + {{UINT64_C(0x6E83A6C6F83BC3F6), UINT64_C(0x3633E1E4C0CC09C6), + UINT64_C(0x0C2A268BBC4B73A5), UINT64_C(0x688369D3125688EB)}, + {UINT64_C(0x64EE03E173E75809), UINT64_C(0x21773EE98E110C46), + UINT64_C(0xF0BC6BE9A6A648B1), UINT64_C(0x399121837E0041E7)}}, + {{UINT64_C(0xCC09774A26F5716E), UINT64_C(0x01CB17F9FDFB59E9), + UINT64_C(0xA88D1269AE8938B4), UINT64_C(0x99A40D17D13047C9)}, + {UINT64_C(0xE469C9846FC672A3), UINT64_C(0xDA6534B65638B928), + UINT64_C(0xC56EAB20CDE40C83), UINT64_C(0x2C1582B1BD93AF10)}}, + }, + { + {{UINT64_C(0xE4C19851A3F45C37), UINT64_C(0xCA0FEFF2C7D78FE9), + UINT64_C(0x027B41D89A7E444B), UINT64_C(0x1F1B242F15D38CBB)}, + {UINT64_C(0x1C6C132CF1F50AB9), UINT64_C(0x2A02A3A45DFE7530), + UINT64_C(0x2B1EB8E26E29159F), UINT64_C(0x5F3F4AB72EEDE876)}}, + {{UINT64_C(0x362CE0130F2DF95C), UINT64_C(0x82E4E19226480BFA), + UINT64_C(0x9AAC9A966BEFF080), UINT64_C(0x5A1636F68EE2B59C)}, + {UINT64_C(0x600E0339FA049CCB), UINT64_C(0x56680F80F2F57163), + UINT64_C(0x2C395CC17B4240A7), UINT64_C(0x32EDFE4A9C86BB64)}}, + {{UINT64_C(0x8D9842AB711AEF69), UINT64_C(0x7A1C2429890831F0), + UINT64_C(0x924478DF54CDA99A), UINT64_C(0x791A1D45E25A02E2)}, + {UINT64_C(0x1433F569170F4C21), UINT64_C(0x9F42C8C1CA5F8BD8), + UINT64_C(0x377740F7067B3201), UINT64_C(0x75145FFF2ECE5D81)}}, + {{UINT64_C(0xCBFE782A39638F43), UINT64_C(0xB0C0EC09E07553D2), + UINT64_C(0x8D1C41F7115C673A), UINT64_C(0x8510551AEB39E385)}, + {UINT64_C(0x92000181BA275803), UINT64_C(0x8AF63F4A27B9A42A), + UINT64_C(0xD50ECF0F52297029), UINT64_C(0x1DCA33A566883C56)}}, + {{UINT64_C(0xB2C44933C51DF9D9), UINT64_C(0xCA6F9FB0E66D80AE), + UINT64_C(0x78CD2EEB82839BA4), UINT64_C(0x8FF8BCC8F7AFBCF3)}, + {UINT64_C(0x5AD00C704164959B), UINT64_C(0xAD901C71E83ED8D5), + UINT64_C(0x56FFC0A92B52650D), UINT64_C(0x0689B171780126A8)}}, + {{UINT64_C(0x2E902A395EAC1DD8), UINT64_C(0x7681EABA7CAC283F), + UINT64_C(0x03608CD878525B7C), UINT64_C(0x09665B805EB95540)}, + {UINT64_C(0xF09F9805306EE831), UINT64_C(0xFB00B1C6E41D453A), + UINT64_C(0xD8BB95597C93E727), UINT64_C(0x3B74FEE72CE63FD8)}}, + {{UINT64_C(0x73F48B330A22DABA), UINT64_C(0x797DE0FBC8FC3E20), + UINT64_C(0x69C1BEE29E79222D), UINT64_C(0x3052F67A1DF4C549)}, + {UINT64_C(0xFE9128A9ED78B6FB), UINT64_C(0xD9460CFF29CCF94F), + UINT64_C(0x53737484C1FD1DAA), UINT64_C(0x83ADCD011EDAEEB2)}}, + {{UINT64_C(0x189EC9AA2BA4195A), UINT64_C(0x61345757C522BE92), + UINT64_C(0x35BAB72A39EFB05D), UINT64_C(0x82B27322AE0AC461)}, + {UINT64_C(0xFEBF0F8CC07F4382), UINT64_C(0x1CA2B3D7DAD2ED8E), + UINT64_C(0x4800A0370A27F89C), UINT64_C(0x77D1B2FC9815D971)}}, + {{UINT64_C(0xF9F46089CA0FC66A), UINT64_C(0x5BC406DE8C23E4E1), + UINT64_C(0x1D7F3BA98DBF6DD5), UINT64_C(0x685B9111679D5587)}, + {UINT64_C(0x93554084B85BE0D0), UINT64_C(0xB081E9CA7B9EB16C), + UINT64_C(0x58C428DC60F0D0B0), UINT64_C(0x12442C1A30B3C6D9)}}, + {{UINT64_C(0x147B843C567226BE), UINT64_C(0x2B2BFFAB429A8FFA), + UINT64_C(0x7A4678EBCD435C2F), UINT64_C(0x200E85133C0B887A)}, + {UINT64_C(0x9D457AAD90605CDD), UINT64_C(0x6736A242157F29A5), + UINT64_C(0x779B0D25549FCA4D), UINT64_C(0x57477EE917FDB4D9)}}, + {{UINT64_C(0xD9B15FD1ECF06CDD), UINT64_C(0xECF75FC0C1CC2CFC), + UINT64_C(0x273867C3A56B39E5), UINT64_C(0x72F3ED4579340B7D)}, + {UINT64_C(0xF31C9E4C55B6C9B9), UINT64_C(0xED96826E0448FE57), + UINT64_C(0xE2DF54AD8BB7A02F), UINT64_C(0x945E7B6BD79D71CC)}}, + {{UINT64_C(0x32B6CE429270E878), UINT64_C(0x980C8F6ED6EEBEB9), + UINT64_C(0xC5717C8555808237), UINT64_C(0x4469D0A0CCA3F298)}, + {UINT64_C(0x2B9DD7E91A18C0E8), UINT64_C(0xE9D124016A0EC412), + UINT64_C(0xF889DE9831F44B32), UINT64_C(0x692EE1E678854A7F)}}, + {{UINT64_C(0xF2360597ADEECA22), UINT64_C(0x94623EBC99A4C198), + UINT64_C(0x5A0D49C4E4169D20), UINT64_C(0x7BE2C5BBBF0384F0)}, + {UINT64_C(0x42DB0D408C537851), UINT64_C(0x198A09A465C50782), + UINT64_C(0x72F80BB745AD7EE0), UINT64_C(0x4F83164B11FCED06)}}, + {{UINT64_C(0x54E5B07C95712AF0), UINT64_C(0x95E7F5D91E893387), + UINT64_C(0x383BC5AEC61D7766), UINT64_C(0x09F626ED681C28DD)}, + {UINT64_C(0x0D32B726DF97E3C9), UINT64_C(0x2AC622387C7C4786), + UINT64_C(0xECEA0C6AD3F5AD40), UINT64_C(0x0D26633EA870A132)}}, + {{UINT64_C(0x40A05A14C3D42D26), UINT64_C(0x06577CA1F3BDE0E3), + UINT64_C(0x03DAA258418B73FB), UINT64_C(0x205E02E60EFDEB86)}, + {UINT64_C(0xF5479E4D99F90D56), UINT64_C(0x4E699BF3368CB6E3), + UINT64_C(0x534F674362E4A879), UINT64_C(0x18473603A9D78191)}}, + {{UINT64_C(0xA23D79CF5C1ED4F9), UINT64_C(0xFADE1CF5F2248B01), + UINT64_C(0xA3D528276F4D2164), UINT64_C(0x1F211C0310B731E5)}, + {UINT64_C(0x0B415884D97229E2), UINT64_C(0xCABB7D8980FCC283), + UINT64_C(0xDB9BC75298EF388A), UINT64_C(0x50AF2A4A93E80262)}}, + }, + { + {{UINT64_C(0xD11E80F1D57DD821), UINT64_C(0x11CAE463DDA2AB29), + UINT64_C(0x21CAFD16E628F315), UINT64_C(0x296A84E97DF70CD4)}, + {UINT64_C(0x9ECF75136E9EF995), UINT64_C(0xAE87525706E28855), + UINT64_C(0x78E1B7E95DED383C), UINT64_C(0x6C5D8ECC5E940F7F)}}, + {{UINT64_C(0xCBD3ACB9998EE9A3), UINT64_C(0x990CDFF6D0DCF584), + UINT64_C(0x0FB4346CC7CE5DDA), UINT64_C(0x5EDEEF9B355E268F)}, + {UINT64_C(0xACD8B4A2C215036D), UINT64_C(0x70D3699591C7486B), + UINT64_C(0x72D5243D52C6694B), UINT64_C(0x54163B48E5F8B99C)}}, + {{UINT64_C(0xD2AEA2FF1D76A94A), UINT64_C(0xC5B4FBF1379F780B), + UINT64_C(0x700042F7B33AC708), UINT64_C(0x7DA790BF8183E0CA)}, + {UINT64_C(0x95681FE6EBA72FA8), UINT64_C(0x1F0A390EE22E254E), + UINT64_C(0x465A58F8BF07A8A5), UINT64_C(0x840EA2E7FB1FCE40)}}, + {{UINT64_C(0xD955C5B544048484), UINT64_C(0x7107D5956935C5E4), + UINT64_C(0xFC6574448A0FCE44), UINT64_C(0x97DF2B4D2800E517)}, + {UINT64_C(0x0B1BB3282C482414), UINT64_C(0x152614CC4E48CDBE), + UINT64_C(0x48051FB642EDE4E0), UINT64_C(0x91125B933DBFFE52)}}, + {{UINT64_C(0xA2F526C7CF898F54), UINT64_C(0x8788CA1283080857), + UINT64_C(0x2F4427234562F7B0), UINT64_C(0x837772ABC044560C)}, + {UINT64_C(0x51AD2F7131BCB2EA), UINT64_C(0x0F1D33FCAFC5C03D), + UINT64_C(0xDBFE541F7BD352A4), UINT64_C(0x8B44139964B8343D)}}, + {{UINT64_C(0xFEB96B8C44DCD145), UINT64_C(0xEEB3007CEFF22D0D), + UINT64_C(0xAF64DFC1252A8C8F), UINT64_C(0x5D9B0A05D131E0C5)}, + {UINT64_C(0x28C943EFABFED144), UINT64_C(0xDFBF730CB6A2273D), + UINT64_C(0x6CC5BE44E2A1BFBD), UINT64_C(0x55FAC03309030FCD)}}, + {{UINT64_C(0xFAA58543728F39EC), UINT64_C(0x9B2F10BA40B37B15), + UINT64_C(0x96505C7F7254A419), UINT64_C(0x04F4ACE5879C7FF9)}, + {UINT64_C(0xC0B4B576BC5FDA53), UINT64_C(0x12549929F7ABCD3C), + UINT64_C(0x00F5631E313FEC34), UINT64_C(0x89EA4459798C7CFB)}}, + {{UINT64_C(0x671137B50E2020C1), UINT64_C(0x77727861A4DC66C3), + UINT64_C(0x8CE05ED181492A26), UINT64_C(0x42BEA541A0C3F612)}, + {UINT64_C(0x6D39E3D1B0E461EB), UINT64_C(0x459A8E1309FA806F), + UINT64_C(0xE2A185C1466CB93B), UINT64_C(0x17D131CEE21ECB34)}}, + {{UINT64_C(0x2141E262387A15BF), UINT64_C(0x675B5E7C6BE61C42), + UINT64_C(0xEEC1BDD4F1CF93EF), UINT64_C(0x6ACF383823BAB1F9)}, + {UINT64_C(0xA2F84E23B0B39C86), UINT64_C(0xE955DBBCE244E0E3), + UINT64_C(0xE0155980B7A8102A), UINT64_C(0x1E117DC8B23012FA)}}, + {{UINT64_C(0xC92A36AA6EB36280), UINT64_C(0x5AED3A1D5E906D78), + UINT64_C(0x8D336221AE4E430A), UINT64_C(0x3F184F1DD3AA50AD)}, + {UINT64_C(0xD14810EC916D9741), UINT64_C(0x2900169F3322D9B3), + UINT64_C(0xAFF1A06004728254), UINT64_C(0x89C4C67326F60B5F)}}, + {{UINT64_C(0x5216E0AEB7F0D157), UINT64_C(0x3B8D2226C9F38AAD), + UINT64_C(0x283E3E3FBB34AA79), UINT64_C(0x94DA80FA565CAB83)}, + {UINT64_C(0xDDB51943E6ED4A46), UINT64_C(0xF3AFFA9A7CDD5FE6), + UINT64_C(0x0AB493CCB648A84F), UINT64_C(0x128356B6F15EE45F)}}, + {{UINT64_C(0xD2AD34F4BD0F02C4), UINT64_C(0x3DC9B6D1719BCF1E), + UINT64_C(0x11EDB8F112EB5AE8), UINT64_C(0x33AC71D871180F90)}, + {UINT64_C(0x0AE988FEB59621D7), UINT64_C(0x32042B528F348211), + UINT64_C(0x7E6787C4EB0CEBD3), UINT64_C(0x8C4D254926B8A526)}}, + {{UINT64_C(0xA3B461544D40ED72), UINT64_C(0x3A096546F6CF3972), + UINT64_C(0x9C7BC931B3E46D8C), UINT64_C(0x85B77BAD90486C75)}, + {UINT64_C(0x95B706E56EBD35E0), UINT64_C(0xC1E18243101E098E), + UINT64_C(0xF17C23FFF01C17E1), UINT64_C(0x3223527285EC224E)}}, + {{UINT64_C(0xE816235DFD24FA16), UINT64_C(0x5306CBC30B3AEBD7), + UINT64_C(0xDEF60A9A8BE25CB7), UINT64_C(0x4B889A0F512999C2)}, + {UINT64_C(0xAB86A7F867B29FD9), UINT64_C(0xB81C532DB5461BCB), + UINT64_C(0x810E9A0CD34D9819), UINT64_C(0x1E3530093092515D)}}, + {{UINT64_C(0x4682633921FB0BD9), UINT64_C(0x9CCE9A43003BAE50), + UINT64_C(0xCD2216C32EB45B4A), UINT64_C(0x13598548C7E0F2C3)}, + {UINT64_C(0x8B0BFD7254611984), UINT64_C(0x705CB52589C0B05A), + UINT64_C(0xD9073D87CE880DD8), UINT64_C(0x1EA534CD003DCAEB)}}, + {{UINT64_C(0xC7AAC256C58B4413), UINT64_C(0x301109D6E8054F96), + UINT64_C(0x0A1F44D29C7E7860), UINT64_C(0x55D122BB96F15424)}, + {UINT64_C(0x9A63098F1C14A8A9), UINT64_C(0x8E01A9DC4221CDFB), + UINT64_C(0x11C91FCF357B360A), UINT64_C(0x70C47AEA036A3CF4)}}, + }, + { + {{UINT64_C(0xC0457C4F036A843D), UINT64_C(0x6E3E0801F1F593CB), + UINT64_C(0x1AADF2D88C53873B), UINT64_C(0x5CEC5C7B0D140C8D)}, + {UINT64_C(0x4341A9AB328002E4), UINT64_C(0x11F22331C410D034), + UINT64_C(0x0FCF69EF5DB6A39D), UINT64_C(0x3DD32A53B84FDA1F)}}, + {{UINT64_C(0x19E52339AF8C811A), UINT64_C(0xC8B8380092D46C4F), + UINT64_C(0x891C4185CA8463A3), UINT64_C(0x5B51651F98F3FF1B)}, + {UINT64_C(0x3D1496070FB39DCA), UINT64_C(0x39ECCDE2B1051394), + UINT64_C(0x3633DE271A14522B), UINT64_C(0x5FE551147C59A9A5)}}, + {{UINT64_C(0x68C8E0C62F0B507F), UINT64_C(0xDABC8EEF05B62C5E), + UINT64_C(0x297C943AE6165C1E), UINT64_C(0x337C6B947D7CA6D6)}, + {UINT64_C(0x66F98FE4D6066191), UINT64_C(0x745BFEBA58945DA9), + UINT64_C(0x600447873B29A546), UINT64_C(0x2815651EE2D4EDF2)}}, + {{UINT64_C(0x54A3BE7463661218), UINT64_C(0x89C5636415E79415), + UINT64_C(0xE03C6963405E4932), UINT64_C(0x86E101EA9A619956)}, + {UINT64_C(0x47BAF2F3400DC92B), UINT64_C(0x5C44512C291E4059), + UINT64_C(0xD7F84B8EEC6D7BF9), UINT64_C(0x6CF4254025AB8D79)}}, + {{UINT64_C(0xD6E1B75DB885DAFC), UINT64_C(0x7A33CE4B6128014E), + UINT64_C(0x80DF9948EA9FF260), UINT64_C(0x99E0A11CD2B5872B)}, + {UINT64_C(0x960BDC3DE2435510), UINT64_C(0x4B0ECC5314F7A99C), + UINT64_C(0xE815DB8B5AC6170B), UINT64_C(0x3095615617D5F2DD)}}, + {{UINT64_C(0xA035E3CE57166FCE), UINT64_C(0x71AD409540A75B80), + UINT64_C(0x639C4EA7DB7D0BFB), UINT64_C(0x7A90BE97B12DBE6B)}, + {UINT64_C(0x091AA30F75F86A60), UINT64_C(0x67C0F795509AEEFC), + UINT64_C(0xF028C12A331629C5), UINT64_C(0x90D26B1C8A1F7478)}}, + {{UINT64_C(0x6F01554EB6AC2AD5), UINT64_C(0x9DD0576EBC9A48D6), + UINT64_C(0xAB37201397AE2605), UINT64_C(0x1525D8B5BB83852B)}, + {UINT64_C(0xD50680C3E46E4C61), UINT64_C(0x29FBBA5CECB8F06F), + UINT64_C(0x60A48AB4B16637A3), UINT64_C(0x8BB47967CD1490D3)}}, + {{UINT64_C(0xA35A01874B7C7EA6), UINT64_C(0xFE01521AB4D6409A), + UINT64_C(0x57CECE628FDE1E30), UINT64_C(0x1A9A9B2DF4F51D55)}, + {UINT64_C(0x0D33556BE221AC58), UINT64_C(0x0A4A1A34152508AD), + UINT64_C(0x1FD61DA10144AA33), UINT64_C(0x4804BE6AEDC7C5F8)}}, + {{UINT64_C(0x071EC8155B363A84), UINT64_C(0x359C2A9FFE11ED05), + UINT64_C(0x0FDF80C9B8BBF9BD), UINT64_C(0x928E51A4103ACCBE)}, + {UINT64_C(0xD152B6E7D5E8A222), UINT64_C(0x6368E3A8CBE022C9), + UINT64_C(0x2E5055DE3128B659), UINT64_C(0x51E23651D21F1062)}}, + {{UINT64_C(0x5CE999D734834BF7), UINT64_C(0xE386394C3DC831E9), + UINT64_C(0x6DBD5ECA7FE48564), UINT64_C(0x804BC07F556841A5)}, + {UINT64_C(0x2A8B616C229A9175), UINT64_C(0xAEEB533AA1B3EF97), + UINT64_C(0x9D858F9D6F145037), UINT64_C(0x247FFAB07F6A8EBB)}}, + {{UINT64_C(0xE616E779099EB4F3), UINT64_C(0x4F360D2EF1B1926C), + UINT64_C(0x28EE1F9117055397), UINT64_C(0x9994D7FF844AFCF3)}, + {UINT64_C(0x8824A94912CBD801), UINT64_C(0xA3AFED4D6A4484DD), + UINT64_C(0xCB16CD673B5E36A5), UINT64_C(0x5490C30DBC3BBEA9)}}, + {{UINT64_C(0xEA43CA5AD7601122), UINT64_C(0x9CF2A15BD248EB72), + UINT64_C(0x4CE8AB75B71D18D0), UINT64_C(0x2576C5B1041A19A5)}, + {UINT64_C(0xDE20FD028CC1496E), UINT64_C(0xC9FE5B0C0BE51831), + UINT64_C(0x9DC17E323A53ABBC), UINT64_C(0x94E24DD9F4C806FA)}}, + {{UINT64_C(0x2A9CF5F10DF1A4B3), UINT64_C(0xE019675415063C08), + UINT64_C(0xCE9CF2C6CCF88F77), UINT64_C(0x51ACC7B5EFE91C6C)}, + {UINT64_C(0x0C2302EFA799FE2E), UINT64_C(0x5EE756A469C0D117), + UINT64_C(0x7E907EC2F4EAB1A1), UINT64_C(0x19EEF95BD98022DD)}}, + {{UINT64_C(0xB170D483A8E7FFA5), UINT64_C(0x2052600A39180FAC), + UINT64_C(0x8EAD52D4A68AF290), UINT64_C(0x01B88CFEFF9E3641)}, + {UINT64_C(0x3D9077F765BC2D0C), UINT64_C(0x2AF9CF673ABCDB1C), + UINT64_C(0xEA104E747295DADA), UINT64_C(0x7DF23470EB1E5D6E)}}, + {{UINT64_C(0x0F54D98D8E53F40B), UINT64_C(0xBFC22E9BAF360481), + UINT64_C(0x309973B6E132666B), UINT64_C(0x1F40D11F25E783E0)}, + {UINT64_C(0x8EEBC9D7F00AC3EB), UINT64_C(0xBD725D822F9ADCC7), + UINT64_C(0x4776781066EFDDCC), UINT64_C(0x60B0B1004ECCAF67)}}, + {{UINT64_C(0x498E2074B98C7E96), UINT64_C(0xBEBF518308BF31A9), + UINT64_C(0x00DD4AAD3894DBE7), UINT64_C(0x66C047A4429878F6)}, + {UINT64_C(0x16F2CB336D0F1AB1), UINT64_C(0x5FA2F18158669ACB), + UINT64_C(0xFA4B2F49486F1BE7), UINT64_C(0x1ECAAF6B5698F41B)}}, + }, + { + {{UINT64_C(0x2999C2124DCC455E), UINT64_C(0x83897E49BEF617B8), + UINT64_C(0x6B49CE265A218E0F), UINT64_C(0x49A5C9EB88EF7EA7)}, + {UINT64_C(0xF0EDA5FFF63EC82C), UINT64_C(0x736D933DEAD471CD), + UINT64_C(0x10E4431DDF8071C4), UINT64_C(0x8C59C10738E1523C)}}, + {{UINT64_C(0x569FB74E5A54A4AB), UINT64_C(0x72788868F3384C14), + UINT64_C(0xBC840717107B417F), UINT64_C(0x6682C1077E13210C)}, + {UINT64_C(0xB3359FC277B20150), UINT64_C(0xEB923E66A9E03222), + UINT64_C(0x490C39FCA10CF332), UINT64_C(0x69099C2D49BA035D)}}, + {{UINT64_C(0x6498672003CB2C6E), UINT64_C(0x994054A1328B22BA), + UINT64_C(0x4155C6B96F0542DA), UINT64_C(0x216CF760A3B93FFB)}, + {UINT64_C(0x744861845C2AD753), UINT64_C(0xE517984EA0CD3660), + UINT64_C(0x6530BC863D7DA8A1), UINT64_C(0x04328CF92E46CA79)}}, + {{UINT64_C(0x4100ADED4798CD35), UINT64_C(0xC832796D635BAECD), + UINT64_C(0x7EF1EA955B80E18C), UINT64_C(0x6889A91B426B1AA9)}, + {UINT64_C(0xC40A0A870927C6F8), UINT64_C(0xD60CFD1C2B86ED45), + UINT64_C(0x98731DFFD57350A1), UINT64_C(0x1C52EAE91DE4341F)}}, + {{UINT64_C(0xC287E33B23A40FAA), UINT64_C(0xB96D9F517A633BDC), + UINT64_C(0xF6A5B779E6D0F326), UINT64_C(0x10203FE1F619DE4B)}, + {UINT64_C(0x011FB53EC4F18BF8), UINT64_C(0xAEBB82F6BCA32CA0), + UINT64_C(0x06BF8ED5F881818D), UINT64_C(0x3A6A3E3518247E6A)}}, + {{UINT64_C(0x3BF2E96E00625DC1), UINT64_C(0xD81AD1565A288F80), + UINT64_C(0x04C3269EB7CE9B13), UINT64_C(0x3E18EAFC2F9E2713)}, + {UINT64_C(0x20F0E05D9D0BC74A), UINT64_C(0xACDB4B75D8140790), + UINT64_C(0x12918A7EF1B5B265), UINT64_C(0x22A70AF96896342E)}}, + {{UINT64_C(0x326A28A29C4B6B08), UINT64_C(0x21302F37A17D3D57), + UINT64_C(0x181378E7CE36F438), UINT64_C(0x42B07EBAFED12DE1)}, + {UINT64_C(0x081DDD200468AD4C), UINT64_C(0x32822EC364DF34AE), + UINT64_C(0xE9F8D7C204B2192D), UINT64_C(0x6ABC7220918666F8)}}, + {{UINT64_C(0x9333070104AF3956), UINT64_C(0xEEB7AA8E872BD30D), + UINT64_C(0xFC96D106D0E67494), UINT64_C(0x516028CF3A918DFB)}, + {UINT64_C(0xFAF0B6F7FB27B6EC), UINT64_C(0x0FAD73AD515DA78D), + UINT64_C(0x5F136068D8CF1934), UINT64_C(0x0A526E04B6052802)}}, + {{UINT64_C(0x20DF0DEBE4685212), UINT64_C(0x71D4BAC1A41B293F), + UINT64_C(0xBCC32A2F2FA8BBAC), UINT64_C(0x32A8723AF30CC343)}, + {UINT64_C(0x71E6DAAFEF95ACFE), UINT64_C(0x27D158F69F445394), + UINT64_C(0x2140F78DE186B246), UINT64_C(0x4CAF98C3CB1C83AD)}}, + {{UINT64_C(0x94E264FCB6F63AA9), UINT64_C(0xF4637B024D0FE485), + UINT64_C(0xA4BC0A03069CCB4E), UINT64_C(0x99A81E379E25E817)}, + {UINT64_C(0xE3B804A78F4D37BB), UINT64_C(0x57F272A5E38E654C), + UINT64_C(0x00D1852C05928F65), UINT64_C(0x3031B7134345DD06)}}, + {{UINT64_C(0x6E42AF1157536140), UINT64_C(0xDC5B7CDC005A403F), + UINT64_C(0xE6EE185E26527417), UINT64_C(0x1003D0137C685BCF)}, + {UINT64_C(0xC2206BF6192979E6), UINT64_C(0xD1C370DB6FE38214), + UINT64_C(0x78D105B792F3C044), UINT64_C(0x2F0DF6B8BFDF8DFA)}}, + {{UINT64_C(0xB02FCA3844D04C4A), UINT64_C(0x956A2F7CA44566C6), + UINT64_C(0x60672DF39F1F09C6), UINT64_C(0x6459A9492160C362)}, + {UINT64_C(0xDAE5434108714451), UINT64_C(0x48B77A0DBFFD7CF6), + UINT64_C(0x615ADBFE3EDBC8D4), UINT64_C(0x3338E55735B67D2F)}}, + {{UINT64_C(0x601D49D1DD24A0F0), UINT64_C(0x60A48DB748EF27B9), + UINT64_C(0x97F2212C97A8BAC6), UINT64_C(0x376B0292155AB524)}, + {UINT64_C(0xA25881BA62E2A961), UINT64_C(0xEB74CC802B8C56F7), + UINT64_C(0xBE5C5DD4DA57C41A), UINT64_C(0x53D0D0372D16AFA0)}}, + {{UINT64_C(0xE47C9EABCA291206), UINT64_C(0x25DADB6442D5C667), + UINT64_C(0x8C154CB6D886993E), UINT64_C(0x11DEC39C806B932F)}, + {UINT64_C(0x51A4DCF313D4B4E5), UINT64_C(0xAA1DAD6D9D1D822A), + UINT64_C(0x2BB2E14DCEEF2E29), UINT64_C(0x429C13C7B2343BE3)}}, + {{UINT64_C(0x4E8E953F297F709D), UINT64_C(0x23183A3D262D862A), + UINT64_C(0xE164A10DEA12D93F), UINT64_C(0x386C2873FE703920)}, + {UINT64_C(0xD59E1582E5C51C7E), UINT64_C(0xA8C93B5B020F6A2E), + UINT64_C(0x51518BD0160CD058), UINT64_C(0x3337801AB1D38AC7)}}, + {{UINT64_C(0x6E2515332F5D9E25), UINT64_C(0x88E76135B0D6B0DB), + UINT64_C(0x5C1978329E6762D1), UINT64_C(0x1232677384E620AC)}, + {UINT64_C(0x3B88DF270E2694DD), UINT64_C(0x30FED9E330A23CAA), + UINT64_C(0xE12DD93EA23DF142), UINT64_C(0x06778F512EA77C07)}}, + }, + { + {{UINT64_C(0x5D5BE00E49E5F6B4), UINT64_C(0x2F47E7C7721EF9DC), + UINT64_C(0x338F7B007EAFC098), UINT64_C(0x0F5F06E3AF8C2475)}, + {UINT64_C(0x2A4B845C63122B22), UINT64_C(0xED44006089A4CE9A), + UINT64_C(0xC9EEB6409A86D9BC), UINT64_C(0x12C3E0F32F39B439)}}, + {{UINT64_C(0xB444B88B17766F6C), UINT64_C(0xF9B100E6A41FD692), + UINT64_C(0x81EAFCD15C149B30), UINT64_C(0x37DD6F6E1D521A1E)}, + {UINT64_C(0x14DBE8C3389DCD6E), UINT64_C(0xCD24D6550DCBC7FC), + UINT64_C(0x05F8D48EE00F9102), UINT64_C(0x403954E6509D18D4)}}, + {{UINT64_C(0xA04FDDDFE4FE16EC), UINT64_C(0xB9E7FA7390E15C0C), + UINT64_C(0x7D6A7206C77FAB6B), UINT64_C(0x3FFDCCD13E221F12)}, + {UINT64_C(0x120C05B147B5BB7F), UINT64_C(0xFA3614C05B7E2B96), + UINT64_C(0xF3A4F07F4A6AC6E0), UINT64_C(0x0324BF48C8AD4F23)}}, + {{UINT64_C(0x508A037055DF2F18), UINT64_C(0x1C6C91EAB872F209), + UINT64_C(0xDC3F6C5A8E12F437), UINT64_C(0x65F5058FC91AFD75)}, + {UINT64_C(0x0C43613D5A859A1D), UINT64_C(0x83A2610E5BF96A6B), + UINT64_C(0x1A98AA4C1496AEAD), UINT64_C(0x3AB1CE5EE6CAA901)}}, + {{UINT64_C(0x9420ABFEFFB3E411), UINT64_C(0xCE60976031404E74), + UINT64_C(0x3D4C23C502C49837), UINT64_C(0x6B79FB14D0868A3C)}, + {UINT64_C(0xB4EEE8DB6B5861EA), UINT64_C(0x495E2B469D948195), + UINT64_C(0x2BB0BD941CE15EC9), UINT64_C(0x6CE79F80DED25955)}}, + {{UINT64_C(0xA6B98C1D5820DF65), UINT64_C(0xE8284737909356B5), + UINT64_C(0x38E8609A091340E1), UINT64_C(0x98EC077B10666012)}, + {UINT64_C(0xFB243B1EBF075DAE), UINT64_C(0x32312BACA270FE31), + UINT64_C(0x214511200CAA5F8E), UINT64_C(0x8F60118F2A515015)}}, + {{UINT64_C(0x4F211C9ECBDEB88E), UINT64_C(0xF6D3CC3AB6D680FD), + UINT64_C(0xE193829D8BF4B4A7), UINT64_C(0x3223EF4E2D620371)}, + {UINT64_C(0xC3E35420C0E5245A), UINT64_C(0xD3F4F894B4ADE2EA), + UINT64_C(0x464FCB6CF2CE985E), UINT64_C(0x79CF596D7B987FA7)}}, + {{UINT64_C(0x0730748C0C0016FF), UINT64_C(0xD02115C5A2949069), + UINT64_C(0xAA6F794D40E9C7F9), UINT64_C(0x9514FA7B79149C37)}, + {UINT64_C(0x6E2F27785A46BCE0), UINT64_C(0xF55D46C60837ACD5), + UINT64_C(0xF965C4681E4223E6), UINT64_C(0x0BFF0A9185D90A07)}}, + {{UINT64_C(0x9ED903581923C8AF), UINT64_C(0xC425B633A470AE00), + UINT64_C(0xF9F4B1621C50FDAD), UINT64_C(0x0999D072A8CA2BD5)}, + {UINT64_C(0xCB122FBDAF74D4C3), UINT64_C(0x372C13F02C283752), + UINT64_C(0x9F42A90382138B19), UINT64_C(0x573A2CEE3EB8CB95)}}, + {{UINT64_C(0x6C3A6BE33AC2E191), UINT64_C(0x4149E0EB1B222DB2), + UINT64_C(0x5BA91005A4AACC55), UINT64_C(0x176BD33D1BFADBD0)}, + {UINT64_C(0x4AEAF14EA8DA0FEA), UINT64_C(0xB12401F9A7FF8E1C), + UINT64_C(0xF1EF39AE0F192414), UINT64_C(0x95D433D3416743C1)}}, + {{UINT64_C(0x29ECF54D9AA0C238), UINT64_C(0x3762F1D78FCA6419), + UINT64_C(0x761D786A64D3AAA9), UINT64_C(0x7A8A677DDAEC7BF4)}, + {UINT64_C(0xC2829EAD324676F4), UINT64_C(0x4E504A474D0B291E), + UINT64_C(0x360CE7FEF8C4F384), UINT64_C(0x33A577B578CDA37D)}}, + {{UINT64_C(0x1BBFC128333103FD), UINT64_C(0x3D36045CE45C9DBE), + UINT64_C(0xA8D53F5A15C9013D), UINT64_C(0x99D62F8AA33FDCFD)}, + {UINT64_C(0x73E539610A81F581), UINT64_C(0xD01AD20ED00BC0D9), + UINT64_C(0x59701F4D1F6D9B73), UINT64_C(0x0F4EBFBCE098E536)}}, + {{UINT64_C(0xBDB9368A91E3C062), UINT64_C(0xCD66A0B19B17AAE5), + UINT64_C(0xB6636DD7B4537E05), UINT64_C(0x37D94B8E73B119CE)}, + {UINT64_C(0xA5F8E90FC7428FF9), UINT64_C(0xE7E5B2B7F8EA9F03), + UINT64_C(0xB7F20FB85B3506DA), UINT64_C(0x0F4AB6D5E494FFDA)}}, + {{UINT64_C(0x3ACEE3BD85365933), UINT64_C(0x9D5223D3BF510114), + UINT64_C(0xE0D7D9A7A08D01B0), UINT64_C(0x28FD329AB2F1F61F)}, + {UINT64_C(0x3E16A2E2A5909DD3), UINT64_C(0x284A8708B4FECB35), + UINT64_C(0x190F7B3A73D5BFBA), UINT64_C(0x7E07982E92EE4BBE)}}, + {{UINT64_C(0xA30A4C2244945687), UINT64_C(0x657C0F2ED688A301), + UINT64_C(0x9B558D4ABBB3E65A), UINT64_C(0x8044D57EA6E57844)}, + {UINT64_C(0xF202E50EE3957E21), UINT64_C(0x4957E651CE62FCC9), + UINT64_C(0xF7B9EBA4C4ECE0B8), UINT64_C(0x29532CEC61167229)}}, + {{UINT64_C(0xE9DC8EA63EEF3D71), UINT64_C(0xEBF76BD43E8EC117), + UINT64_C(0x48CEB78D2EA072B9), UINT64_C(0x82ECDFC473EFC32D)}, + {UINT64_C(0x51B02CB3E2C89E7D), UINT64_C(0xE9D0740CF4D9100F), + UINT64_C(0xBB556EFE8A5E3F48), UINT64_C(0x864E52DA1D01B44E)}}, + }, + { + {{UINT64_C(0x5A75E0BD14EA6DC5), UINT64_C(0x09F2AA76532EFED7), + UINT64_C(0xE6DAE0A983CE5A18), UINT64_C(0x00F9BCB7CEB4E78D)}, + {UINT64_C(0x128FB51C71F79BF3), UINT64_C(0x78C7978880D5DBC3), + UINT64_C(0x2752F02C9B816B9E), UINT64_C(0x88CFBA0CEB7622E2)}}, + {{UINT64_C(0x845AB940268432A3), UINT64_C(0xA8D0231B2F94F6D3), + UINT64_C(0xBDFB3F91FEC02130), UINT64_C(0x07A61AE45F62419F)}, + {UINT64_C(0xD1C951DF192EBF1A), UINT64_C(0x22CDCFF5FA232E34), + UINT64_C(0xDFDF121B3A7581DD), UINT64_C(0x9865ECA2710403A5)}}, + {{UINT64_C(0x609F4527F8180BAB), UINT64_C(0x93AB107250A6D914), + UINT64_C(0x299D5013E2EEE3BD), UINT64_C(0x36EFCE5B42959C14)}, + {UINT64_C(0x49CDA60D1045FFCB), UINT64_C(0xA8B2492E45723371), + UINT64_C(0xCB75789BF243FDBB), UINT64_C(0x8E1079D7871D500D)}}, + {{UINT64_C(0x69852694DB14298E), UINT64_C(0xBAA92A9541A56B6D), + UINT64_C(0xC73718483DBFDBA4), UINT64_C(0x94B3155C947747F8)}, + {UINT64_C(0x97BCDD197552426B), UINT64_C(0x4FB3E76D32682121), + UINT64_C(0x875AA0F78BC15FCA), UINT64_C(0x4065BCDFF1FD2315)}}, + {{UINT64_C(0x2D1C0519B7F1ED04), UINT64_C(0xED9A1BB7EA2535E1), + UINT64_C(0xE4728CD6ABAE813E), UINT64_C(0x2CD7D44721A771D0)}, + {UINT64_C(0x88E2A78559B9E964), UINT64_C(0x2677FBD76F9B5374), + UINT64_C(0x3967D6C52645B626), UINT64_C(0x8843F7DF5A1C315B)}}, + {{UINT64_C(0x673CD273C7055A4E), UINT64_C(0x052AC45CEE827873), + UINT64_C(0xC26B9214CE1981F3), UINT64_C(0x3C39C13C2B8EEF59)}, + {UINT64_C(0xDD9E1B9B0B276D47), UINT64_C(0x6729A5347287F9A1), + UINT64_C(0x43E1471C061DAD53), UINT64_C(0x6082FAD9118B56C8)}}, + {{UINT64_C(0x9C3872AAF99186D6), UINT64_C(0x1D9E8DB675AC99BF), + UINT64_C(0x6FA7A0FFE338DBD3), UINT64_C(0x1EDF44ECD1FEF2F9)}, + {UINT64_C(0xBAF9D33A1F9114BF), UINT64_C(0x89AF08E53007B6A5), + UINT64_C(0xAA04B1698436D917), UINT64_C(0x8381E76A6AFCF5E0)}}, + {{UINT64_C(0xC51848A4C1D799BA), UINT64_C(0x6C3D43A97F40B34B), + UINT64_C(0xE8DAE074A5CB7B95), UINT64_C(0x5375B1EEBB5F8AEC)}, + {UINT64_C(0x461290EE507099E6), UINT64_C(0xB95934AA3BAD89AD), + UINT64_C(0x9A6E5C22701A4D9C), UINT64_C(0x2CA791445E1389F6)}}, + {{UINT64_C(0xBF82F7860E5108FC), UINT64_C(0x3620CCC4644D06DE), + UINT64_C(0xB65DE8538E5C4753), UINT64_C(0x6DAB72419FEDFD16)}, + {UINT64_C(0x4CECAC87546DCBA4), UINT64_C(0xA7BBE65D3E2D0684), + UINT64_C(0x092AA490DA1E4FFA), UINT64_C(0x78F448BE41AD32AF)}}, + {{UINT64_C(0x321580FE4A33F071), UINT64_C(0xBEA845D15EE5E685), + UINT64_C(0xC73CAECE47AC8ACF), UINT64_C(0x0E15E55DA9F65F05)}, + {UINT64_C(0x5FC47420A59506E7), UINT64_C(0x501417FF01DBD2DD), + UINT64_C(0x8EF23280FB1205A6), UINT64_C(0x1AA26168E0F43AE8)}}, + {{UINT64_C(0xD41F73B18149EB2A), UINT64_C(0xC297AF04AD95D531), + UINT64_C(0x2017176F749E415D), UINT64_C(0x5AF89C738357CE9A)}, + {UINT64_C(0x301F7C7908A0FF9C), UINT64_C(0x0C2999B598695C57), + UINT64_C(0x856799576E4D8FF5), UINT64_C(0x2CC0FF3E6F493B1C)}}, + {{UINT64_C(0xFE90F9044AF481F5), UINT64_C(0x0562C78B31BC4919), + UINT64_C(0xAA44AA5670E4F140), UINT64_C(0x1B61DEB4A175159A)}, + {UINT64_C(0x85315DE1A7A7E648), UINT64_C(0x4BC1F51D6C012B33), + UINT64_C(0x40CB5DE3060CDEE6), UINT64_C(0x969F919632A1E138)}}, + {{UINT64_C(0x3B317508E05F23B5), UINT64_C(0x7B1A93AE512D1156), + UINT64_C(0x3A283415CB58EC19), UINT64_C(0x193A53A18E27CAD9)}, + {UINT64_C(0xCF6BBEBA03DE1BA8), UINT64_C(0xFA5544CA47A02393), + UINT64_C(0x8B3AAC1A8627F5EB), UINT64_C(0x02FAD2EC62EAF195)}}, + {{UINT64_C(0x4F8D8ADA259CCF0F), UINT64_C(0xE4E6786B562991D7), + UINT64_C(0xA1C63473597C3FD3), UINT64_C(0x1F5B9017ACAB6F16)}, + {UINT64_C(0x95B201BD592D437A), UINT64_C(0x54432A75ED14F859), + UINT64_C(0x67EF73FB0B551AC1), UINT64_C(0x0A48F0437F1AB9CA)}}, + {{UINT64_C(0xECEE508E4A35445C), UINT64_C(0x80BE9F07B3EA6F9B), + UINT64_C(0xD914B25687E4B78E), UINT64_C(0x97F79CC9F89B8E4B)}, + {UINT64_C(0x6A5B4F2BC359FB12), UINT64_C(0x54E6E37A99CF6FFA), + UINT64_C(0x1133C4B2F7C66CA8), UINT64_C(0x6F679B280345866B)}}, + {{UINT64_C(0x0006F7A144E77CDF), UINT64_C(0xD8077F9F42033333), + UINT64_C(0x0414ECE521EAF35F), UINT64_C(0x1211576B5623803C)}, + {UINT64_C(0xEDADD215140309A7), UINT64_C(0xC349C6575EBAE3BB), + UINT64_C(0xBD40427C821DE06B), UINT64_C(0x8949ACA33F5D2F97)}}, + }, + { + {{UINT64_C(0xAC1F87E6022E3D44), UINT64_C(0xDFC17BEDB39F6B10), + UINT64_C(0xEAAE416807119C4A), UINT64_C(0x8B3B40BCDBD47D36)}, + {UINT64_C(0x6683A561861B7B59), UINT64_C(0xF9BFFB1713A6C76D), + UINT64_C(0xE4E72EA4A30A05AC), UINT64_C(0x77C219E8BA0D2AD6)}}, + {{UINT64_C(0x5019824E66BE6944), UINT64_C(0x811ACEBE7B131070), + UINT64_C(0x9730DCF03BA34677), UINT64_C(0x5B9C5CF57BC9CFC8)}, + {UINT64_C(0x1CBD950FB283C8CC), UINT64_C(0xF66DBDDA3973A325), + UINT64_C(0x4EC5EBC26FA60257), UINT64_C(0x0C01D57736FF26B3)}}, + {{UINT64_C(0xBB2219547CE2BE74), UINT64_C(0x23E44E0E841E6C0C), + UINT64_C(0xE760D33D77C3824E), UINT64_C(0x5B656FBE7EB3CE34)}, + {UINT64_C(0xEC50E509C5F3D66E), UINT64_C(0x5326C2B8496EF8BA), + UINT64_C(0x3F9485F63D4B20D4), UINT64_C(0x11B74A8551C21B0E)}}, + {{UINT64_C(0xC3EAEB0425E30336), UINT64_C(0xA9D6C70FA6E3637F), + UINT64_C(0xF818C37E86F77F68), UINT64_C(0x786ED3C2C60DF35A)}, + {UINT64_C(0xACA70EA0D56D705A), UINT64_C(0xCE61608C7BF4EF10), + UINT64_C(0x49AD1CD81722C179), UINT64_C(0x1B84FBE9687F3222)}}, + {{UINT64_C(0x8A0F4BF135EE0BA9), UINT64_C(0x42AD284603952A08), + UINT64_C(0x1E0E1E3B3B60B4DD), UINT64_C(0x0DC1A947F5DCAD76)}, + {UINT64_C(0x054BECA41F496E03), UINT64_C(0x8F02FDAB3AE6E6F6), + UINT64_C(0x8851CFF49B71C9F5), UINT64_C(0x6BD7271CA7441F87)}}, + {{UINT64_C(0xB019E3469EB6A2C3), UINT64_C(0x2B719034931E7550), + UINT64_C(0x2B2CBEBD40698F1F), UINT64_C(0x375DB5914F1FC587)}, + {UINT64_C(0x09843166676A79A4), UINT64_C(0x91848967B416D657), + UINT64_C(0xB49EA7219FED6B27), UINT64_C(0x1FAC5650D080C8AA)}}, + {{UINT64_C(0x205CD58858C4C2AA), UINT64_C(0xBEEE26F817F572EE), + UINT64_C(0xE744AB674CB4DE3A), UINT64_C(0x37E34E18CBE989BD)}, + {UINT64_C(0x95D9118B767D31B5), UINT64_C(0x9A34DBEC83E7C03E), + UINT64_C(0xCAFDBD1AB8F70DD3), UINT64_C(0x1E68A6813909BB51)}}, + {{UINT64_C(0xFE0A5DFF9FD96ABA), UINT64_C(0xBBFB1FDFD99B68DE), + UINT64_C(0x5E232A4FE3F522BE), UINT64_C(0x768C2C54A6428D33)}, + {UINT64_C(0xE9CFEDF9DBF1A575), UINT64_C(0x841721F24B83F9AB), + UINT64_C(0xFAD9650A80A85361), UINT64_C(0x3158921104979759)}}, + {{UINT64_C(0x1CF9F4B8EFBF2099), UINT64_C(0x63D5499BF571408B), + UINT64_C(0x89C119FCEC3E74A6), UINT64_C(0x0525DDDF698E4DCD)}, + {UINT64_C(0x43FCDDE47333A38C), UINT64_C(0x2150EAD480A912DE), + UINT64_C(0x4B3BD2230A19CC55), UINT64_C(0x3553EB4E238AC64C)}}, + {{UINT64_C(0x3A259F52FEC2371F), UINT64_C(0x8B03C50544863D3E), + UINT64_C(0x1053E2D686BB6522), UINT64_C(0x400CE699F7086CBE)}, + {UINT64_C(0x695B1EA003ED78DE), UINT64_C(0x00AE6D0916500E1B), + UINT64_C(0x9F29B08914B01815), UINT64_C(0x269692B4C218D892)}}, + {{UINT64_C(0x8660280DF0D44E79), UINT64_C(0x69D2968537C0F38F), + UINT64_C(0x664B8146B9E24AD8), UINT64_C(0x277CB4DD1E695452)}, + {UINT64_C(0xB1A02D4EDFBF05EB), UINT64_C(0x3B3493084A1426C7), + UINT64_C(0x13B7961222204FE7), UINT64_C(0x04F80867BCB5CD9F)}}, + {{UINT64_C(0x37BDBCAEE0852CBC), UINT64_C(0x2A6D7A23BE22764C), + UINT64_C(0x4E0D43AC25AFD9FF), UINT64_C(0x1F6C9E14D16DD9EB)}, + {UINT64_C(0xE37E3AB3B4B0F47A), UINT64_C(0x09E046FB6C476C3A), + UINT64_C(0xB8F649D9B75FA2DC), UINT64_C(0x7962A8C4FAB1AC41)}}, + {{UINT64_C(0x00E41470F6A1314A), UINT64_C(0x176380C3E4388464), + UINT64_C(0xDB3405CD9B8A2B4D), UINT64_C(0x6299A1A67DE02ABC)}, + {UINT64_C(0x9F6B9DE77BBE7BFA), UINT64_C(0x59F16F549D3098DD), + UINT64_C(0xFEC29C8D3B5767FE), UINT64_C(0x67711BC064955759)}}, + {{UINT64_C(0x34444EA3B1B07B5D), UINT64_C(0xB1D973B491FA2B4A), + UINT64_C(0xEBEBEFB183403A0E), UINT64_C(0x56D520988E8A8EC6)}, + {UINT64_C(0x11C93529A7E82D55), UINT64_C(0x9230AE03D525C399), + UINT64_C(0x74E1CBB28DB46C82), UINT64_C(0x4C3383CC40BE5E15)}}, + {{UINT64_C(0x33A52E73CDAD72F3), UINT64_C(0x1D2CCA33B9E77759), + UINT64_C(0x26717716549406F5), UINT64_C(0x70DED57F5B3DB3E8)}, + {UINT64_C(0xBA38F81343C85A67), UINT64_C(0x956F2DD735422BB3), + UINT64_C(0x52D9FA9907486F18), UINT64_C(0x655791BF75D1D2C4)}}, + {{UINT64_C(0xF434A9601FC9E0B3), UINT64_C(0x42A7B891BEDE92AD), + UINT64_C(0x05A182D8A55A8009), UINT64_C(0x3404E08D38531612)}, + {UINT64_C(0x2B5B2766F07D76E3), UINT64_C(0x94B1A98D1D77B90C), + UINT64_C(0xA86C0EC84B18BB9F), UINT64_C(0x6532770F526A81E3)}}, + }, + { + {{UINT64_C(0x4429A4E861CFE04A), UINT64_C(0xEE8673862C9CA012), + UINT64_C(0x237A3040C32D1969), UINT64_C(0x400AD5990AE2DFAE)}, + {UINT64_C(0x1603D10A213C0A18), UINT64_C(0x6EB8042D2B1E2A57), + UINT64_C(0x4C9C1696C7CAF556), UINT64_C(0x79BE04A7E0C1A5A3)}}, + {{UINT64_C(0x161781E33FCB8B14), UINT64_C(0x1383E3B8B1384C3C), + UINT64_C(0x5129EA19B566626C), UINT64_C(0x8A1F86E4551DE02A)}, + {UINT64_C(0x9C648CCEAEDBE04C), UINT64_C(0x0D4278ACFB200132), + UINT64_C(0x466D452AC1E2D4A3), UINT64_C(0x832B0E6EB21B6E38)}}, + {{UINT64_C(0x20101D7CED1D76C7), UINT64_C(0xC3282661C110D85E), + UINT64_C(0xB8026CE4FFCA2DD7), UINT64_C(0x73B4EBA58BA48211)}, + {UINT64_C(0xAB94FE21D8554E2C), UINT64_C(0x319E2FD781B2A181), + UINT64_C(0x2C824DC537E8D3E2), UINT64_C(0x97CD457A09FCA0AB)}}, + {{UINT64_C(0x8E4B5FBDC50116CB), UINT64_C(0x3D20CECECA631A93), + UINT64_C(0x5F80606C545575D8), UINT64_C(0x45ED55DEF91C7908)}, + {UINT64_C(0x91870A927CC1083C), UINT64_C(0xA3828E06D360FF5C), + UINT64_C(0xFC9DFCDC84003D42), UINT64_C(0x0733C887FAC4667F)}}, + {{UINT64_C(0x6F1F771ACC2FC31B), UINT64_C(0xDA9351A1902E8176), + UINT64_C(0xFB9395AFCE3FF045), UINT64_C(0x17C28CA213820DAB)}, + {UINT64_C(0xA1F596BCA684E6FA), UINT64_C(0x89228CC7DAD3995A), + UINT64_C(0x5DBFD421C02E458B), UINT64_C(0x58C25045A2122AFE)}}, + {{UINT64_C(0x2906450F018EADB0), UINT64_C(0x88A7A2369030C84E), + UINT64_C(0x492BA7A333308084), UINT64_C(0x321388B95605F371)}, + {UINT64_C(0x5F934C94626AE19A), UINT64_C(0xE2BD6C6701C7CCD9), + UINT64_C(0xB07757B1EC0BBD52), UINT64_C(0x1E980338F9EDD2AC)}}, + {{UINT64_C(0x5A5370748831457C), UINT64_C(0x0E0E22FB47E7B9A9), + UINT64_C(0x7BE70594A225A259), UINT64_C(0x433DB05530946816)}, + {UINT64_C(0x852EA9F9E2F2C3CB), UINT64_C(0xDC4E8E3A2D243848), + UINT64_C(0x10F34AB81E887770), UINT64_C(0x29795D2CC89FC71B)}}, + {{UINT64_C(0xE046B04BCFEC2C6F), UINT64_C(0xA1D3B5A02CA8256E), + UINT64_C(0x93F7FDFAE87F767F), UINT64_C(0x2DF5693E35FA3837)}, + {UINT64_C(0x71D9638C97884587), UINT64_C(0x175EA91F39E115EC), + UINT64_C(0x14E16C31F41A27FC), UINT64_C(0x8B2682EAEB2F5913)}}, + {{UINT64_C(0x2BCC6853798C7F28), UINT64_C(0x2F985A59DD7D3615), + UINT64_C(0xA66519E141D2257A), UINT64_C(0x18731D74021F719B)}, + {UINT64_C(0x7210472C360E9C20), UINT64_C(0x4FB48411329A9B35), + UINT64_C(0xB33B6CB587D62CA5), UINT64_C(0x86226D9EFD0D7703)}}, + {{UINT64_C(0xDD133F8BF67CB77C), UINT64_C(0x381E4D62F6ABEE80), + UINT64_C(0x3236F0057DF85AE5), UINT64_C(0x88EBB3864610BB0E)}, + {UINT64_C(0x895AA5398DB908D8), UINT64_C(0x848142E6104C4633), + UINT64_C(0x467EE770B8012B2E), UINT64_C(0x193CBAED1B9210EE)}}, + {{UINT64_C(0x737CD32BC1F44FC1), UINT64_C(0xCDF82B1C522B6209), + UINT64_C(0x08F4BB70E0017F2A), UINT64_C(0x1565BCEF64738F26)}, + {UINT64_C(0x0D2910B9684DCF67), UINT64_C(0x4ED1734BC6F3EB81), + UINT64_C(0xCBEA79B6DA1D6BC8), UINT64_C(0x0470CE36EE6A41D6)}}, + {{UINT64_C(0xECFD5C66BA05AF3C), UINT64_C(0x421D5540EB9BFAA8), + UINT64_C(0xFC0E5AF2526CFF85), UINT64_C(0x7E17F1E653DC49A6)}, + {UINT64_C(0x69BB1DFB1FAEB0A2), UINT64_C(0xDC95661AB3785ED4), + UINT64_C(0x1F1D7395676D7CD0), UINT64_C(0x2C16BB9689C6412F)}}, + {{UINT64_C(0x2335F20EEE414CA6), UINT64_C(0x56E0DDB2FEF5E042), + UINT64_C(0x942D4E35D9DE2966), UINT64_C(0x80E92B8CCF63D583)}, + {UINT64_C(0x158BE1B65D492C76), UINT64_C(0xFF096960C4F822D9), + UINT64_C(0xC00FC7305AF79379), UINT64_C(0x07C49B0350D34E12)}}, + {{UINT64_C(0x64678B2EC34836C8), UINT64_C(0xCC280DCB615FF066), + UINT64_C(0x86C3C7479131EC98), UINT64_C(0x35B008CC2D151FAD)}, + {UINT64_C(0x22C18852F8133FDC), UINT64_C(0x183BE4DC2FE8809D), + UINT64_C(0x86589814CF98D56D), UINT64_C(0x52D8074D2F6E0DE4)}}, + {{UINT64_C(0x33FF9F41C9274AA6), UINT64_C(0xAC30ACB4CA854AF1), + UINT64_C(0x87A7BE53FBC994B7), UINT64_C(0x6E7E8B2ADBCD717B)}, + {UINT64_C(0x3065A732CD494AB6), UINT64_C(0x6F977B8760FD7F57), + UINT64_C(0x4C216EB4B74BAD54), UINT64_C(0x674F00F5F6061F7A)}}, + {{UINT64_C(0xA8C224813164AFBB), UINT64_C(0x4C9E2F1D72A7AC55), + UINT64_C(0xE3DAC3E379DEFE94), UINT64_C(0x193A1E0BBB9D953F)}, + {UINT64_C(0x8852020C7E0957EE), UINT64_C(0xF7FD181EB62F8EF7), + UINT64_C(0x0DE7EDDEE26B8860), UINT64_C(0x53A05575FD1B00DE)}}, + }, + { + {{UINT64_C(0xE5D63E1B63E0C8FC), UINT64_C(0x6849B530C684016A), + UINT64_C(0x4E89CB43009318AD), UINT64_C(0x1CDC5918EF571911)}, + {UINT64_C(0xA6596C03F389EAF3), UINT64_C(0x9282C1B3E88975F9), + UINT64_C(0xD07A2AEF0D53D3F2), UINT64_C(0x3DA515D52B3B602C)}}, + {{UINT64_C(0xE42857818A5436EA), UINT64_C(0x047E305636D65626), + UINT64_C(0x0016B568E16489A0), UINT64_C(0x4460319675A0209C)}, + {UINT64_C(0x2BE99A51BCC19754), UINT64_C(0xE02EAFD05ACFCDEF), + UINT64_C(0xB0A1E300AECACABB), UINT64_C(0x0F39CBDEAC1860D9)}}, + {{UINT64_C(0x50DA53722099F08E), UINT64_C(0xAA6AAAD1CA4817B1), + UINT64_C(0xA4DDC5FF57D73192), UINT64_C(0x046043AC7682D453)}, + {UINT64_C(0xC8EB178828CF3F48), UINT64_C(0x3967A02FDCA184D4), + UINT64_C(0x0CE68B7986221941), UINT64_C(0x27BDCA48FD3A197A)}}, + {{UINT64_C(0xD774E33C563D7A91), UINT64_C(0x1C309DAE07AE1C92), + UINT64_C(0xDABA89B457DBE6A8), UINT64_C(0x90C62517E5820FA4)}, + {UINT64_C(0x23C6460511371109), UINT64_C(0x1176AE7E15605666), + UINT64_C(0xD71E9755DF040DCB), UINT64_C(0x5312A5B362ED515C)}}, + {{UINT64_C(0xB7AA3A117A5FB9E0), UINT64_C(0xA769BC7218E2CB32), + UINT64_C(0x9D551B9B6B73E050), UINT64_C(0x0CE51DF0DB067CBC)}, + {UINT64_C(0x00BF90D54A0E06BE), UINT64_C(0xFEC6E7B37EE820E7), + UINT64_C(0xDFBAC0833334937A), UINT64_C(0x46884935CE14CF46)}}, + {{UINT64_C(0xC3F31EAF902EF3A9), UINT64_C(0xF3B6E6FA5CCDF002), + UINT64_C(0x5A9B532188CDDE0F), UINT64_C(0x00D99E43E8691FED)}, + {UINT64_C(0x8E786F52CFE02C8B), UINT64_C(0x587AA5374DD36F8E), + UINT64_C(0xBCA91CAC425CC228), UINT64_C(0x80AA8AA9BFA9C36B)}}, + {{UINT64_C(0xAD4A2AD09B20505A), UINT64_C(0x6D70802916739066), + UINT64_C(0x729001F389F73B52), UINT64_C(0x774803478073A428)}, + {UINT64_C(0x1AB38F07E84DB3B4), UINT64_C(0xE643D756A6655769), + UINT64_C(0x5631359B46C19856), UINT64_C(0x82530A3201C3DCD1)}}, + {{UINT64_C(0x9250EC262DDDB968), UINT64_C(0x63D99CBF8D82A03E), + UINT64_C(0x4FBFE78441349B60), UINT64_C(0x6977DD07A15BF2B7)}, + {UINT64_C(0x771917C668513C32), UINT64_C(0x026035188F0064F7), + UINT64_C(0x45A5742951D78637), UINT64_C(0x56BF57CC87293790)}}, + {{UINT64_C(0xBAC94E24032E6426), UINT64_C(0x7D54AE34C2531B26), + UINT64_C(0x4D6EF608CD688082), UINT64_C(0x736E7ACFF5AA4BEE)}, + {UINT64_C(0x41D5BF6C6AFB84E2), UINT64_C(0x40E12DA56E976E09), + UINT64_C(0xCBF32FCB2235F7B9), UINT64_C(0x285DDF46A21BC0E0)}}, + {{UINT64_C(0x66C6A76ECE751632), UINT64_C(0xBD457D0E32A61A1D), + UINT64_C(0xFA12A7C878191C57), UINT64_C(0x030ED98B06611B5E)}, + {UINT64_C(0x199F7756F4972FFD), UINT64_C(0x298D98E69C8AAB09), + UINT64_C(0x2186054CC5B02158), UINT64_C(0x0736CE4CB9B1147A)}}, + {{UINT64_C(0x33E4A4CA19BFA57D), UINT64_C(0xF02F6D32AA70C35D), + UINT64_C(0x9EA10B633CC082FD), UINT64_C(0x86104E8ED00E82A8)}, + {UINT64_C(0xACBA5E7387797E25), UINT64_C(0x24DD98A8EB85A796), + UINT64_C(0x02748827C58AC480), UINT64_C(0x5B4480C76A932D80)}}, + {{UINT64_C(0xF9E210FB1992B174), UINT64_C(0x3CFA6EF1BE22636E), + UINT64_C(0xA46F202B3BDFA2BD), UINT64_C(0x8C83B3DA441B96D2)}, + {UINT64_C(0x3BB2ED8B8AA39AB4), UINT64_C(0x4DB63B239CE53FB2), + UINT64_C(0x24AC8A9846DC2104), UINT64_C(0x997BC4A768E20D1B)}}, + {{UINT64_C(0x4CDF8757D1C0D629), UINT64_C(0xBA155719A64B6058), + UINT64_C(0x82FD0DA3BE3FB0B1), UINT64_C(0x12F5069403E34CB1)}, + {UINT64_C(0x8993EE3802E7DFEB), UINT64_C(0x2FC240C63D7A758E), + UINT64_C(0x75CB6F62AFF7CC7B), UINT64_C(0x2D73F74D71B02A5B)}}, + {{UINT64_C(0x0B7B920A550ADA69), UINT64_C(0x87D29F08D2F1D5C2), + UINT64_C(0x6E36EF9CEEA99A38), UINT64_C(0x624874C179D7626A)}, + {UINT64_C(0x9FCA1B2E17F026E0), UINT64_C(0xBDBE18E5A3A79C2E), + UINT64_C(0x1506DE6A6E1B0C6D), UINT64_C(0x860CCD71AD2A2C5F)}}, + {{UINT64_C(0x00A15CB028715EF9), UINT64_C(0x71F337D8B1C0ED6D), + UINT64_C(0xBD7E6892F998251E), UINT64_C(0x4C5AB31108E0A4E9)}, + {UINT64_C(0xDFD51293567342FB), UINT64_C(0xF202FCD15AE3193B), + UINT64_C(0xE317C933AF59A5A2), UINT64_C(0x300FE0835055DE2A)}}, + {{UINT64_C(0x279A071AC58E7AE9), UINT64_C(0xCED1F2F44C718A8B), + UINT64_C(0x3A8C0D1A5FE7F6E5), UINT64_C(0x789C9B04BB40DA93)}, + {UINT64_C(0xBB7EA922BF2A0B9B), UINT64_C(0x5DD7A04A3A484413), + UINT64_C(0x3E1F49FBC5912F93), UINT64_C(0x4D8C07A561ECAB05)}}, + }, + { + {{UINT64_C(0x7D3510079706D4CF), UINT64_C(0x3E2B3D2EB9BABB1F), + UINT64_C(0xC73745BFA2E423EA), UINT64_C(0x0AB3940AF59601A0)}, + {UINT64_C(0x8881507A2A895C4F), UINT64_C(0xF27F6F4068652263), + UINT64_C(0xCFD9181488A416BE), UINT64_C(0x13459BC31B4F51F6)}}, + {{UINT64_C(0x6D830E0C01C7C38A), UINT64_C(0xBA912BD4E27DA48A), + UINT64_C(0x3828F4334AB8B5A6), UINT64_C(0x3F858E6CE35E88DA)}, + {UINT64_C(0x137F2E3A6E1C033C), UINT64_C(0xFC7C89537E670398), + UINT64_C(0x6FF761CEF5C3D4DB), UINT64_C(0x53A02906EED1029B)}}, + {{UINT64_C(0x5C597BA656779C20), UINT64_C(0x366688CC43A87346), + UINT64_C(0x19F6DA4AA55ACF91), UINT64_C(0x280ED592182DEC58)}, + {UINT64_C(0x0A1F3A7AA1D3EBDD), UINT64_C(0xD92B60780C9F474A), + UINT64_C(0x38D0335E19AE00DD), UINT64_C(0x094A5772A97F33F7)}}, + {{UINT64_C(0x026A9029312D2694), UINT64_C(0x95408516AB5B34B8), + UINT64_C(0x9FFA9AB1DED270EA), UINT64_C(0x1F9DDC52493E5935)}, + {UINT64_C(0xAC7F94C117244394), UINT64_C(0x18FC29C40F28C9DF), + UINT64_C(0xEDE29238BD817BD9), UINT64_C(0x20DBF9AF8E2A7E40)}}, + {{UINT64_C(0x009365D97648CA5C), UINT64_C(0xB168191E2BF27488), + UINT64_C(0x2481BFAAE3B91112), UINT64_C(0x744C505B3D6DB830)}, + {UINT64_C(0x21426D8F3C464704), UINT64_C(0x283F59EFDAF85A61), + UINT64_C(0x278B5F8EF2716102), UINT64_C(0x95B80D820FE7E7EC)}}, + {{UINT64_C(0xD15ADA08F327664D), UINT64_C(0xF26E3232FE904AF8), + UINT64_C(0x2763DBA6F99471C6), UINT64_C(0x4BC9713915F30827)}, + {UINT64_C(0x8523812E5F154BF9), UINT64_C(0x0839059FDE17F8F9), + UINT64_C(0xEA151382BC16678D), UINT64_C(0x68D01E627890C4EF)}}, + {{UINT64_C(0x37FAC9FA9487556B), UINT64_C(0xB4DF5C53FB4DC83D), + UINT64_C(0x1EF42D8C92969151), UINT64_C(0x6C0A9D188B0ED349)}, + {UINT64_C(0x63E91049946F31ED), UINT64_C(0x51E91DC6653F600B), + UINT64_C(0xD7A582B153A29196), UINT64_C(0x0452F4AD31E1D843)}}, + {{UINT64_C(0x1224169D0DE8E344), UINT64_C(0x0F4AB4E7F329D30F), + UINT64_C(0x12662965B525B6A4), UINT64_C(0x3142B612255F14B8)}, + {UINT64_C(0xEF6148B9BBF468A1), UINT64_C(0x3FC413B4144F8DFF), + UINT64_C(0xA453D0759BF55B34), UINT64_C(0x857EC76386EBA319)}}, + {{UINT64_C(0x7FC22E26C16C1002), UINT64_C(0x2E34975EB0B186C3), + UINT64_C(0xE11E36422FC79F85), UINT64_C(0x30FE5C0E9F981B5F)}, + {UINT64_C(0x73BD0FA631816247), UINT64_C(0x40FE16616906AF0A), + UINT64_C(0x8D7109A3787BC7EE), UINT64_C(0x294520546FB9A590)}}, + {{UINT64_C(0x24654B9B4DFAAF93), UINT64_C(0x91CDEA8B9A450D29), + UINT64_C(0xEE55420BE4874748), UINT64_C(0x01FAC14C6D03064C)}, + {UINT64_C(0x8A4EBDE2D93BD5BE), UINT64_C(0xCB2DF30749EF18A9), + UINT64_C(0x36E6AC641A7B7F36), UINT64_C(0x301954234AC1CB8D)}}, + {{UINT64_C(0xD9970B1E34F5B3FF), UINT64_C(0x3CFEFC50587A9C5C), + UINT64_C(0x8EC1C5DE7CCE631E), UINT64_C(0x92C93E2B52465AB8)}, + {UINT64_C(0x0104DF30257017CA), UINT64_C(0xF4E5E7798D8DB4CE), + UINT64_C(0xE12A39DDFDC267F0), UINT64_C(0x683DEAFE27C73FDA)}}, + {{UINT64_C(0xD0840E81BBC70623), UINT64_C(0x03A93C164D23568E), + UINT64_C(0xC52FF3D611A71BFF), UINT64_C(0x03C11FCE0875248E)}, + {UINT64_C(0xBC6F184B6C4AE445), UINT64_C(0xF52CC71F7698EE98), + UINT64_C(0x4663193EEEA25223), UINT64_C(0x86CD1AB3031C68DC)}}, + {{UINT64_C(0x221C94EB21E04C02), UINT64_C(0xE96BB7B37B980F70), + UINT64_C(0x60A7289724DC2BD1), UINT64_C(0x8C8E019F5621F475)}, + {UINT64_C(0xAE47B2F75CFA457A), UINT64_C(0x31B2F9E1F395C533), + UINT64_C(0x7EEB5DDC82E75849), UINT64_C(0x4863A6A32A241E52)}}, + {{UINT64_C(0x806AC7F4914976EF), UINT64_C(0x5019261ECA42B875), + UINT64_C(0x44F5C03D6EF2D82F), UINT64_C(0x24959F00690F2ACA)}, + {UINT64_C(0x4BDE211581F0BBB6), UINT64_C(0x01EB2C001F701A2D), + UINT64_C(0x039F8910274FB05C), UINT64_C(0x57068F24C625EBCD)}}, + {{UINT64_C(0xB21B8C9367FF2575), UINT64_C(0xC7826C600C60B449), + UINT64_C(0xD4D69A9FA98671BB), UINT64_C(0x95249276F5A2AB0C)}, + {UINT64_C(0x8F7007F02D1976DA), UINT64_C(0x846F2A92C011D54C), + UINT64_C(0xFDBF81DFFA2076B1), UINT64_C(0x3349224F5583B46C)}}, + {{UINT64_C(0x624967467C854B4A), UINT64_C(0xF92BAE1D798B1395), + UINT64_C(0x2EBE18E3D2F65638), UINT64_C(0x472FF6E58A068F49)}, + {UINT64_C(0x64BB0F33DA2030C2), UINT64_C(0x72C0D0C966F6C000), + UINT64_C(0xEA837EE53194615E), UINT64_C(0x1B7B4849FA9A7903)}}, + }, + { + {{UINT64_C(0x27AB780CCF9A0727), UINT64_C(0xD457A7BC9D7486CB), + UINT64_C(0xFC57C335FE9F1A59), UINT64_C(0x269D8959D1D9F161)}, + {UINT64_C(0x06A32331B81605D5), UINT64_C(0x236963536F050BE0), + UINT64_C(0xF9350879413E1C0D), UINT64_C(0x170195485761A8DF)}}, + {{UINT64_C(0x583D3D3F6765C6A2), UINT64_C(0x68BBA6F9BE9DF3AF), + UINT64_C(0x7011E59485358B53), UINT64_C(0x3B2142E353A08874)}, + {UINT64_C(0x4AB6137E6F5C8641), UINT64_C(0x4955890E4FE9BCEB), + UINT64_C(0xE2F732BA4D14DA01), UINT64_C(0x8CB285FCBEBD63D4)}}, + {{UINT64_C(0x5099551B6C74A0AA), UINT64_C(0xF04EB8F8BC2C8A61), + UINT64_C(0xE169F49285983435), UINT64_C(0x764062A15B808C9E)}, + {UINT64_C(0x8C59A43F65B994FB), UINT64_C(0x2FB148B76068E685), + UINT64_C(0x899D4FC554108A9F), UINT64_C(0x0469EA3E5B4D40FE)}}, + {{UINT64_C(0x15B613EA62A76AA8), UINT64_C(0x7E8E7D562FE2F179), + UINT64_C(0x53160F65BE98EDC2), UINT64_C(0x258DA04E9810DC27)}, + {UINT64_C(0x4FEE19D0030D9C31), UINT64_C(0xFC2C57F8C29E300F), + UINT64_C(0x00071F97C44458AE), UINT64_C(0x0AA2B911709727E1)}}, + {{UINT64_C(0x443F8B23A61166F8), UINT64_C(0x3E8F6278D685FCF1), + UINT64_C(0xC930C1D1447433C6), UINT64_C(0x1245A867AED7D6EB)}, + {UINT64_C(0xC35986DDFA89945A), UINT64_C(0x89CE110926B0AFEE), + UINT64_C(0x9C6A87CD17103D18), UINT64_C(0x811B2242CE338978)}}, + {{UINT64_C(0xC074AF660C293255), UINT64_C(0x982C23A95AEAC2E1), + UINT64_C(0xDB14DE0CD39AC56C), UINT64_C(0x20263F3F47EBB839)}, + {UINT64_C(0x183EA578D10588DF), UINT64_C(0xB4D88EFB1EB69C36), + UINT64_C(0xA79A1B4DDBF3BEE7), UINT64_C(0x650FC466E8159E0D)}}, + {{UINT64_C(0x9E6EE797F80D5744), UINT64_C(0xDFC3EBF5825949BD), + UINT64_C(0x1083EC797EC9BD65), UINT64_C(0x62A45C5EB753499C)}, + {UINT64_C(0x9C135F802B6F42CF), UINT64_C(0xE39B0BA5C4B49041), + UINT64_C(0x4D8385138D3B2D06), UINT64_C(0x696034DCD070754B)}}, + {{UINT64_C(0x06313D73B8E3BDD1), UINT64_C(0xC7BEC420E6968872), + UINT64_C(0x740DD6D33A04B7F0), UINT64_C(0x98F2D0B72465BED2)}, + {UINT64_C(0x9F2984604043DBAD), UINT64_C(0x82D6991A01B5961F), + UINT64_C(0xAAE7DF9D54DFAB8A), UINT64_C(0x5701E3351A07DD22)}}, + {{UINT64_C(0x5695A08EFCA398A2), UINT64_C(0xD29EBC1F0D76E8CF), + UINT64_C(0x5AB17ABF24004EDB), UINT64_C(0x20C7761B0CC7A144)}, + {UINT64_C(0x6CAEE036285EA93C), UINT64_C(0xF9756E89F2B8BF23), + UINT64_C(0x3CEA1C76B1AB91B7), UINT64_C(0x5D86860E3FB4F3B8)}}, + {{UINT64_C(0x835B023BFDC7DBC5), UINT64_C(0xF05C0676EEEDFD73), + UINT64_C(0xF8325D64E52BFB27), UINT64_C(0x919D008DB5032CFF)}, + {UINT64_C(0xEF27862C4B130537), UINT64_C(0x616DF1545CE404DC), + UINT64_C(0x182BA57E451ED033), UINT64_C(0x2EFEC0C7BD01F864)}}, + {{UINT64_C(0xDC84684545F3AF3C), UINT64_C(0x2D2BA0CD92A47B31), + UINT64_C(0x9C806C7DE1AFE6EE), UINT64_C(0x28FE43FF4C6A4FEA)}, + {UINT64_C(0x2E028CD16C76C0F4), UINT64_C(0xC6FA5AD12AEFBDDA), + UINT64_C(0xC8B5339BF63F1A35), UINT64_C(0x30C780A704523F02)}}, + {{UINT64_C(0x3D2DCA55D7E4F0CE), UINT64_C(0x8EEF918926616811), + UINT64_C(0xB106642F3C0E5892), UINT64_C(0x4A96538589DB033E)}, + {UINT64_C(0x5A1CBEB6B3C2DD37), UINT64_C(0x5290C737156EAC75), + UINT64_C(0x57AFD98AE32E40C7), UINT64_C(0x04A16164B3571868)}}, + {{UINT64_C(0x9AB8A3E91A673E1B), UINT64_C(0xC707ABBA0FC23483), + UINT64_C(0x936C17839E0EA0BD), UINT64_C(0x1E4C2E7CF71F6F1D)}, + {UINT64_C(0x37904F636FB0926C), UINT64_C(0x9EC76DF7C51FEEA5), + UINT64_C(0x2C60F7D64D103DAC), UINT64_C(0x7B451E0BF9DC2CC6)}}, + {{UINT64_C(0xD4F8526CB2A5F07F), UINT64_C(0x41303D42B0F4AE09), + UINT64_C(0xAC79523F0C182FDC), UINT64_C(0x8D6A75C8AA0C5D6D)}, + {UINT64_C(0x4DD7FC953CDCE3F0), UINT64_C(0x4DDB39105BE6DA0F), + UINT64_C(0xE34961F916F7E27D), UINT64_C(0x0C5CB76F5B3544EB)}}, + {{UINT64_C(0x324C95B5252C354C), UINT64_C(0x4648D87E8CC2C3BC), + UINT64_C(0x6DDFDECD82BC8C80), UINT64_C(0x8C64CADEC069996E)}, + {UINT64_C(0x4E282E9640ED44AB), UINT64_C(0x70A1206779334507), + UINT64_C(0x65CE5D385AB8902B), UINT64_C(0x56FE68F27C949D96)}}, + {{UINT64_C(0x1D55C87ECF9530AE), UINT64_C(0xD1CF73FFC147C2D5), + UINT64_C(0x826031CDC1F44403), UINT64_C(0x3A06528F5EEF5BFB)}, + {UINT64_C(0xF220EAF35F84A7B1), UINT64_C(0xBC99C905350EBADE), + UINT64_C(0x686A706E810A101C), UINT64_C(0x95E527131D92EAEA)}}, + }, + { + {{UINT64_C(0xAAC634B3514D47C2), UINT64_C(0xD0C189B858B83B33), + UINT64_C(0x633D59E358CA9A2F), UINT64_C(0x65965CE0838ACC80)}, + {UINT64_C(0xBB03F7EA9B512F6E), UINT64_C(0xB2F38B849EF17A82), + UINT64_C(0xE8382E37E16A7A95), UINT64_C(0x28644EFE4D9EF607)}}, + {{UINT64_C(0x46F9115E040A515B), UINT64_C(0x4C7DBCFFFA59CD3E), + UINT64_C(0xB4CE22B871BB543E), UINT64_C(0x58D935D8948F80BA)}, + {UINT64_C(0x33DC1D5B03683C8B), UINT64_C(0x25E6113A2D071D87), + UINT64_C(0x44F962F8A7D59351), UINT64_C(0x6B818DDBBCF66B43)}}, + {{UINT64_C(0x363A63C7378C1098), UINT64_C(0xBEB2A7B6AC5C0C9E), + UINT64_C(0x3F620D3F4361C8D4), UINT64_C(0x68EAD01A4E3D9686)}, + {UINT64_C(0x4361308545DB7208), UINT64_C(0x865A6DDE13B35D33), + UINT64_C(0x4EAA166368DF09F5), UINT64_C(0x5FDCA83FBF02AA12)}}, + {{UINT64_C(0xC240FEAABFEFB3CB), UINT64_C(0x78E757D20EC6694F), + UINT64_C(0xA11A82DF2413D6A2), UINT64_C(0x7BD656EEDBB7A220)}, + {UINT64_C(0x68C608736EB899A4), UINT64_C(0xAFFB9F1C318C72E8), + UINT64_C(0xF16A443C9FB7619D), UINT64_C(0x2FC317E342C6E4D6)}}, + {{UINT64_C(0xAB56A87373F57A93), UINT64_C(0xE9BA24E2308F5224), + UINT64_C(0x010281B911992077), UINT64_C(0x2CBCA7FE593EAD1A)}, + {UINT64_C(0xB400388A2A1D8318), UINT64_C(0xD470ABDA3C61A0AF), + UINT64_C(0xF910272194BD2FAC), UINT64_C(0x222365D10FAC703C)}}, + {{UINT64_C(0x5C9021C49C2D1B2B), UINT64_C(0xB349DB18CAF0B562), + UINT64_C(0x6DAF741291412CC3), UINT64_C(0x44E5E3E5CF6584D3)}, + {UINT64_C(0x1D1F4244E4C17B19), UINT64_C(0x4C663EE63787A38A), + UINT64_C(0xA3261E22313A8581), UINT64_C(0x3AE1E1DB7A82C05A)}}, + {{UINT64_C(0x31AA2B293CD6A155), UINT64_C(0x0EB9527E3D078B12), + UINT64_C(0x6785ABA2214FF1E2), UINT64_C(0x74974F84F111D572)}, + {UINT64_C(0x2199A753078C684B), UINT64_C(0xA0F1DE234B13A004), + UINT64_C(0x3965AE1975BEBCBC), UINT64_C(0x22A8D7EE24562AA7)}}, + {{UINT64_C(0x0591965FBF268ADE), UINT64_C(0xF621B3649EE48F0E), + UINT64_C(0x0AD981A95A3A3848), UINT64_C(0x1316675C9ECD72B7)}, + {UINT64_C(0x21A5CEB7F37C87E0), UINT64_C(0xEF864CF368D1AAFB), + UINT64_C(0x5F340413D3C9A54F), UINT64_C(0x0C5DE1E6E00FD564)}}, + {{UINT64_C(0x439B2C0CB415D72C), UINT64_C(0x106AE2E063442E62), + UINT64_C(0x8A9428C64A79E93B), UINT64_C(0x67FE6D6ECC2DF510)}, + {UINT64_C(0x407158BC655013B3), UINT64_C(0x3AAEAC1C2BC7E7CC), + UINT64_C(0x399DB6EFEE8EC1F4), UINT64_C(0x1F7D0D17ECFF6657)}}, + {{UINT64_C(0x03039D18CB86639E), UINT64_C(0x586039099CDC3408), + UINT64_C(0x52421109F1804B9E), UINT64_C(0x95502857ED126B9F)}, + {UINT64_C(0xC91842D9451B0539), UINT64_C(0x2B5B11EBE60AAE3B), + UINT64_C(0xDB50F9EA44CB5A14), UINT64_C(0x4B5C982489E80A6E)}}, + {{UINT64_C(0x8EF3A1E569FC9F1A), UINT64_C(0xA4EAB6F47CCA576A), + UINT64_C(0x955E1C89FBF1CD65), UINT64_C(0x3E3ACF6EF8CE13DB)}, + {UINT64_C(0x1FDB619058F31FC9), UINT64_C(0x10DB71B393B0D0D5), + UINT64_C(0x900961439154B285), UINT64_C(0x37EEE1781C49EFF3)}}, + {{UINT64_C(0x609DE502BC198066), UINT64_C(0x075C863140722EF6), + UINT64_C(0x121ACC9FFF0FA57D), UINT64_C(0x31E79AC5EC7DB1A0)}, + {UINT64_C(0x736EB95DF16FAE79), UINT64_C(0xFF963917815A14CB), + UINT64_C(0xC6003E5D23AF0BC3), UINT64_C(0x0D1B035099AFCAAA)}}, + {{UINT64_C(0x8A1B6C971F0DF59D), UINT64_C(0x7DF81A7259C9CA8D), + UINT64_C(0x74257F8E9602E8BE), UINT64_C(0x2FFBAD39A441657A)}, + {UINT64_C(0xB1B090DB048050A6), UINT64_C(0xD6144221741E7392), + UINT64_C(0x63826973ECA1E2D6), UINT64_C(0x28EE60B8D287DE2F)}}, + {{UINT64_C(0x815042955DEE86CE), UINT64_C(0xFACCB61D73C03937), + UINT64_C(0x9898F773299B96AF), UINT64_C(0x51552297488F95CD)}, + {UINT64_C(0x6170618C54F5E182), UINT64_C(0x9C11D666C2798401), + UINT64_C(0x88225F4B3EAF3DDE), UINT64_C(0x20841538087F1185)}}, + {{UINT64_C(0x42BCEFFE14FA59EC), UINT64_C(0xC41CFCDA7D023F1E), + UINT64_C(0xD7E4FDE77163E802), UINT64_C(0x54F4C7982E145BCE)}, + {UINT64_C(0xE4EA68C9F9162235), UINT64_C(0x4F7EAC6F458DEC24), + UINT64_C(0x70100D2D845C6AD1), UINT64_C(0x67AC34CFF1EA21B2)}}, + {{UINT64_C(0x2BD49BDFAC21C728), UINT64_C(0x2D009B45EDA966DF), + UINT64_C(0x0D4476BE4A9B9167), UINT64_C(0x340BD3BE95D2ACD2)}, + {UINT64_C(0xF8BACA2DB040FF50), UINT64_C(0x307BEA0DB91D47C1), + UINT64_C(0x2EFDC81BB6B3A1E4), UINT64_C(0x3B2CD7D91595D6E2)}}, + }, + { + {{UINT64_C(0x56254AE732A5A002), UINT64_C(0xE48A475C448B0A9F), + UINT64_C(0x3B2DF6DF14EDBBA9), UINT64_C(0x911BE369F5E4CC81)}, + {UINT64_C(0x57D065C677CBB387), UINT64_C(0x7C1E0142527575FD), + UINT64_C(0x2CA91EEF243B5C33), UINT64_C(0x7E54AF425C4700CC)}}, + {{UINT64_C(0xEF5ECAE55EEDF97F), UINT64_C(0x2D79312AC0D821AC), + UINT64_C(0xD3817042A9EDBE8F), UINT64_C(0x7A3D537EAD924B1D)}, + {UINT64_C(0xD9923A20B26FFC3B), UINT64_C(0x651D22015B81EC12), + UINT64_C(0xBDF7205A54C37FF0), UINT64_C(0x5562D2588C0D2E79)}}, + {{UINT64_C(0xE5BC2E1CFB4842F8), UINT64_C(0xCFE9782425B464C8), + UINT64_C(0xD902A11A2FEA9ED3), UINT64_C(0x2FC360ED8D3DD0A4)}, + {UINT64_C(0xEC4E57FC9E5F7AE1), UINT64_C(0xF0F1FD9F79B8AF6C), + UINT64_C(0x803F3ED6A9A283D0), UINT64_C(0x5F13000FADEEA78E)}}, + {{UINT64_C(0x3EBBBD161838B470), UINT64_C(0x934BA22AB2781680), + UINT64_C(0xC9ED04FCC7210CD4), UINT64_C(0x716004A14615F186)}, + {UINT64_C(0xE7B36C21E894BBC3), UINT64_C(0x3F739857570AA9A8), + UINT64_C(0x1707FBEE3063902B), UINT64_C(0x44FCB774155C9824)}}, + {{UINT64_C(0x30ECD772CDD8CEDB), UINT64_C(0x67BB36FDCA09BCD3), + UINT64_C(0xD5AD0FAA9BC43B7B), UINT64_C(0x3962E5566A130895)}, + {UINT64_C(0x579282537F7A565A), UINT64_C(0xDE9D779255B911EE), + UINT64_C(0xD5DBFDDE6984F326), UINT64_C(0x7CDF5E159FB51246)}}, + {{UINT64_C(0xD7FC427A89D24763), UINT64_C(0x50E627C9AD874362), + UINT64_C(0x17A8F83B2069873A), UINT64_C(0x186952D7DB698BD1)}, + {UINT64_C(0x6C007EED38A2822C), UINT64_C(0x5F1870910C207073), + UINT64_C(0xD0023B6308D245D2), UINT64_C(0x7A32C2A134544316)}}, + {{UINT64_C(0x8B99183A8C2635EC), UINT64_C(0xA00A94766F12B137), + UINT64_C(0x9B5E2F57823DA313), UINT64_C(0x0F7CB4AF47B3CEB1)}, + {UINT64_C(0xC993AF7E67266D24), UINT64_C(0x8B60295EEBA985B8), + UINT64_C(0x9AA596CBE41A6F69), UINT64_C(0x4D6CF5DF4B68507A)}}, + {{UINT64_C(0x3B8A3CBC6921DEFE), UINT64_C(0xB96D53900ED7B717), + UINT64_C(0x6761E86A7DE65E54), UINT64_C(0x964460D6701CC1E4)}, + {UINT64_C(0x5C0A221326C82309), UINT64_C(0xF95F547220328C60), + UINT64_C(0xB519B476FB49E3B5), UINT64_C(0x089D0AB6EE373756)}}, + {{UINT64_C(0x947DFCF0DC952768), UINT64_C(0xD8B5C61C3AB613AA), + UINT64_C(0x146E83259A457DA4), UINT64_C(0x37E2F6D3F476945E)}, + {UINT64_C(0x5702A4413851A6F6), UINT64_C(0xB476560E8D67EF9C), + UINT64_C(0xABA23F67F9D2AD96), UINT64_C(0x3CE30A4EDFBBB806)}}, + {{UINT64_C(0x64695640E5BAA662), UINT64_C(0x2A18979A0AAF3988), + UINT64_C(0x605578FFDE0ED212), UINT64_C(0x52E604D530F2C13C)}, + {UINT64_C(0x2E9E2D83894AB3B9), UINT64_C(0x098B1FAA4BC33041), + UINT64_C(0x01CF66060863AA3C), UINT64_C(0x7334879BD2951A60)}}, + {{UINT64_C(0xB080105CC51704F1), UINT64_C(0x1A5869B8EAEE29C4), + UINT64_C(0xAD6AEF335FDD2FD3), UINT64_C(0x83E677C449C2B183)}, + {UINT64_C(0x757A4EFDDFA8B8F4), UINT64_C(0xFC8E7650E42F2C87), + UINT64_C(0xD4A61A3E9C963D98), UINT64_C(0x3750289A45BC9044)}}, + {{UINT64_C(0x40A0620E40B1C72C), UINT64_C(0xAEE56EC7B2E44573), + UINT64_C(0xE4E6EA3D60532553), UINT64_C(0x5BA50E80A0EB6014)}, + {UINT64_C(0x846429784378CC2F), UINT64_C(0xE322D1692A1C5FB4), + UINT64_C(0x5000C9B16B91F82D), UINT64_C(0x32380CB87AA49F2D)}}, + {{UINT64_C(0x0A2F936AE18C4BD2), UINT64_C(0x7AEA56AAC3DB9AA5), + UINT64_C(0x3A984E935DDF30CB), UINT64_C(0x36133D20904181C6)}, + {UINT64_C(0xA9A65593F62DFBF5), UINT64_C(0xB4AC06FD6808B883), + UINT64_C(0x986797047A2FEDBB), UINT64_C(0x20E9E8E197880A72)}}, + {{UINT64_C(0x403A1ED1CEB26FAE), UINT64_C(0xAD13CD873CD622C9), + UINT64_C(0xC1E03929CF45C32D), UINT64_C(0x4B50E4A9C3BE1A53)}, + {UINT64_C(0xCF10F3AFD0D7AFE3), UINT64_C(0x6A29B1731494A9B4), + UINT64_C(0xB9DC9849D13B0495), UINT64_C(0x4C50794E9C05B110)}}, + {{UINT64_C(0xC3C97DED1427F71D), UINT64_C(0xC3CFB754966ECF33), + UINT64_C(0x48E30FE11FBF30CD), UINT64_C(0x71C96E1C1E4B0998)}, + {UINT64_C(0x878D6305B92C4BF7), UINT64_C(0x14477130CCB5E4A1), + UINT64_C(0x7C210767E3C00A19), UINT64_C(0x5546DBD5AB3CDBF0)}}, + {{UINT64_C(0xADEC875870857571), UINT64_C(0x0A52587CE70D07EC), + UINT64_C(0xE6CEAF9EC731B9BC), UINT64_C(0x1D0FDE3F47143479)}, + {UINT64_C(0x2F3BE2CFC5B410CB), UINT64_C(0x576004BE4E64FD9B), + UINT64_C(0x03F339517629820C), UINT64_C(0x7BD3296446A450E2)}}, + }, + { + {{UINT64_C(0xD492D6B746CED42D), UINT64_C(0xC068D02D1F0092E3), + UINT64_C(0x008ECBAD8D8A822A), UINT64_C(0x6B32686971045647)}, + {UINT64_C(0xFEE3237F523CBA58), UINT64_C(0x077B7F509C29059F), + UINT64_C(0x42C308B3E72FBE6F), UINT64_C(0x3DD79D838E34148B)}}, + {{UINT64_C(0x3ED9DF47CAC24455), UINT64_C(0x7C8A7B31D8546306), + UINT64_C(0x4CC432952AA02202), UINT64_C(0x5E8B4EA38598E028)}, + {UINT64_C(0x8A882F3F812B8070), UINT64_C(0x984BE5881DD374C0), + UINT64_C(0x6FDA815916E133CF), UINT64_C(0x34FB92FA899920D0)}}, + {{UINT64_C(0x3BE0416FDA0B8D0E), UINT64_C(0x2CC846DB88C053D0), + UINT64_C(0xC04C3A42B1A3A621), UINT64_C(0x35BC55508A9D9115)}, + {UINT64_C(0x7F8C9FE37FA72AFE), UINT64_C(0x488FA0B4D1E914FD), + UINT64_C(0x8F5C2D6384F79359), UINT64_C(0x2BE80429FBC94785)}}, + {{UINT64_C(0x391794E06F67799A), UINT64_C(0xD9BF08AE0677A067), + UINT64_C(0x716D5062DF61563C), UINT64_C(0x0ECB234AF590F3A3)}, + {UINT64_C(0xA5B91448FEA22392), UINT64_C(0xFAA294877E76FB8B), + UINT64_C(0x3CC3A02A4B6CB375), UINT64_C(0x5C0B3B639022167A)}}, + {{UINT64_C(0xC5689CF34C576430), UINT64_C(0xF7B7B230C585F5A5), + UINT64_C(0xB8DAADFBE4BFCEE7), UINT64_C(0x7B7D8A959CF4242F)}, + {UINT64_C(0xC1755F9B398FEEF6), UINT64_C(0x9B31CD4D5CC5C36E), + UINT64_C(0x4D87AB9CF4C6B793), UINT64_C(0x673FD5B2F595EFA8)}}, + {{UINT64_C(0xA3836484E05E6B19), UINT64_C(0x090C14CFFCA7E6FB), + UINT64_C(0xB7A27042FC717DBC), UINT64_C(0x56CD4AF138647882)}, + {UINT64_C(0xC2B56B50A43C453E), UINT64_C(0x0CD5E768982E7AED), + UINT64_C(0xD5ABADF758474A8B), UINT64_C(0x68188A3899F500AC)}}, + {{UINT64_C(0x0683AC3E83B1F7BA), UINT64_C(0x6A4FC30C680568E9), + UINT64_C(0x735F5E487F6256CF), UINT64_C(0x1240752D048DB831)}, + {UINT64_C(0x98B78A67868B8AD7), UINT64_C(0x9E32F2C1822EBA7D), + UINT64_C(0xEAE28B1E8F37580F), UINT64_C(0x0D204CE0C72EDA86)}}, + {{UINT64_C(0x5E4EAA1C77E8C68C), UINT64_C(0x282ADFE9859A127B), + UINT64_C(0x0C75AB7C14904910), UINT64_C(0x1794516A6E751062)}, + {UINT64_C(0x8D99D8913DE4A32A), UINT64_C(0x957AA80754EF2BF0), + UINT64_C(0xBF20A9E00B109ECD), UINT64_C(0x7732F2B3A72268D3)}}, + {{UINT64_C(0xADB52E4348752F76), UINT64_C(0x01E9F4B1D6F7CCE8), + UINT64_C(0x22702DA02E4BD9B5), UINT64_C(0x1BCC9C60B40BF9AB)}, + {UINT64_C(0xAB7746379F53B2B1), UINT64_C(0x9C5741518CB316D0), + UINT64_C(0x231D5C45BECBEBED), UINT64_C(0x0BD2D5E7F0458638)}}, + {{UINT64_C(0xD2F5E0B54B946132), UINT64_C(0x200A8A30155AA2C8), + UINT64_C(0x15473FD456A62CE7), UINT64_C(0x030EA71BB6689367)}, + {UINT64_C(0xD561432B0E315F29), UINT64_C(0x4155022E149E3A9E), + UINT64_C(0xC77EF7E115841273), UINT64_C(0x890D9C8D52BA265A)}}, + {{UINT64_C(0xB72B5A6A5E62451A), UINT64_C(0xFDA85C175C61A183), + UINT64_C(0xA4275361B7F36EB3), UINT64_C(0x53ADFAF394F4148D)}, + {UINT64_C(0x281D47F96A8467AE), UINT64_C(0x416A64B58474D3AD), + UINT64_C(0x710D0E7AEC99480E), UINT64_C(0x2693A878819253FF)}}, + {{UINT64_C(0x4BE769041A2FE406), UINT64_C(0xB6FEED1D343F5B10), + UINT64_C(0x36695C52D705E35C), UINT64_C(0x7DF6FA416BD3859F)}, + {UINT64_C(0x7B9B11F5C00E77EA), UINT64_C(0xC90411B8CA80F838), + UINT64_C(0x8A9FAEF02908C694), UINT64_C(0x05F65AAAFF5B39B0)}}, + {{UINT64_C(0x823A0776D7F59CC5), UINT64_C(0xB9EBE15EC410DFD1), + UINT64_C(0xC2374B5810A7FA3F), UINT64_C(0x1B912C84311660F2)}, + {UINT64_C(0x486A2607D5A175E6), UINT64_C(0x9B17D14D72B74EB7), + UINT64_C(0x1069D5C41039CA77), UINT64_C(0x214605B33FEE08BB)}}, + {{UINT64_C(0xC25A7379F9D14E8D), UINT64_C(0x9D5FAFDA577D330E), + UINT64_C(0xB9A0217DA4A9CEF0), UINT64_C(0x95AFC7F708252731)}, + {UINT64_C(0x14E53E9E8FC51680), UINT64_C(0x0AEA2428A8AC4E21), + UINT64_C(0x6BC5E42C11CB2361), UINT64_C(0x3B205E45DCB52215)}}, + {{UINT64_C(0x8EDD4718C916CDE4), UINT64_C(0xBB08F27AD70D7130), + UINT64_C(0x289A33C0ED9162CB), UINT64_C(0x97CEFA45FB69185B)}, + {UINT64_C(0x44DA25788B7797EE), UINT64_C(0x579B17F7148E9A75), + UINT64_C(0x73EC1C23913C09AE), UINT64_C(0x3FAB86A40BAAA67D)}}, + {{UINT64_C(0x28E76C232DF7BE6D), UINT64_C(0x00526844500A844D), + UINT64_C(0xB86FBB143CC748C2), UINT64_C(0x6D89BB8AEB5F6AC5)}, + {UINT64_C(0xF66159DF2327808C), UINT64_C(0x606F055329C5006C), + UINT64_C(0xDAA1107F844B6CA4), UINT64_C(0x95D7686C63A8946C)}}, + }, + { + {{UINT64_C(0x71438CEA07F7DCF5), UINT64_C(0xB3F59AFA0A1CCD55), + UINT64_C(0x5A4396270E0071B4), UINT64_C(0x8694E3FAE93D5B8E)}, + {UINT64_C(0x21713A387D6550B0), UINT64_C(0x893BD9F706CFCD5B), + UINT64_C(0xC3D2679CE7513FCE), UINT64_C(0x418AE7C82C451EF3)}}, + {{UINT64_C(0xADFAFF380B85E2A9), UINT64_C(0x6124E6272E244653), + UINT64_C(0xF2C465AF375D1EE7), UINT64_C(0x5B2302D676E58455)}, + {UINT64_C(0x32938A0D7479F387), UINT64_C(0xF9A16A0DAAAB22A5), + UINT64_C(0x65AF0E252AD65CAE), UINT64_C(0x2B5668668431EA40)}}, + {{UINT64_C(0xCA3ACC11DBCDAFAB), UINT64_C(0x0BBB5DBFBB7F218B), + UINT64_C(0xD69E091ADB0ABBE2), UINT64_C(0x8AFFCE950B0B7B09)}, + {UINT64_C(0x0A5E6C81C7EC52C7), UINT64_C(0xABD60595896707CD), + UINT64_C(0x4CE86506101E0F80), UINT64_C(0x9629A6C04ED01B2E)}}, + {{UINT64_C(0x1D740EACE15D82F4), UINT64_C(0x42F9801890A5D149), + UINT64_C(0x1B8C8DC0903D6D28), UINT64_C(0x7BE2B91605BBDFF7)}, + {UINT64_C(0xFBACF878D8E41D96), UINT64_C(0x42E98BFBBE26EB56), + UINT64_C(0x9EA73555F6DE1EB1), UINT64_C(0x5325DDDECF79A9EE)}}, + {{UINT64_C(0x44BE62C348E6A22F), UINT64_C(0xD0A3C0AD8DB35276), + UINT64_C(0xB4C99306136FE9BA), UINT64_C(0x0F2987D7A44E491F)}, + {UINT64_C(0xA0965F74CCC77C2B), UINT64_C(0xE01AD644FE110072), + UINT64_C(0x79528B9CC16B5E1E), UINT64_C(0x45AEEFF3F929BE4D)}}, + {{UINT64_C(0x46E95DF67F4DA458), UINT64_C(0x554C50C1A7AD579B), + UINT64_C(0xF64F00A14316DBA1), UINT64_C(0x16C9851346D487BD)}, + {UINT64_C(0xECB197612C048A1B), UINT64_C(0x997AF3985373E5E6), + UINT64_C(0x50E832D2FDF23B20), UINT64_C(0x1B358E0F7EF7E097)}}, + {{UINT64_C(0x7C6728AEACBC759C), UINT64_C(0x187588FBA156A466), + UINT64_C(0xC2E550ED928F97BD), UINT64_C(0x8B595A3AAAE1C05A)}, + {UINT64_C(0xE36871E1D77C1125), UINT64_C(0x11E129780DBBD882), + UINT64_C(0x3EF8268A5E77FB7E), UINT64_C(0x7BAEA9BA6B33C00C)}}, + {{UINT64_C(0x7C8512365925E5FE), UINT64_C(0xCED70AE5D8E1597B), + UINT64_C(0x7A28BE1A6DCD112F), UINT64_C(0x1EB192683B8EAF6F)}, + {UINT64_C(0x7E6F1CF28AA902B9), UINT64_C(0x3DD9D59CA5A761D9), + UINT64_C(0x8EF70BB448D9F52E), UINT64_C(0x96629C1ACDEE9658)}}, + {{UINT64_C(0xCA215EACB367C5B3), UINT64_C(0x36B22774A796338A), + UINT64_C(0x71F9A61A26EBCDFE), UINT64_C(0x1B40580A35119BD3)}, + {UINT64_C(0x77169EF1431C78BD), UINT64_C(0x8197975E337022D5), + UINT64_C(0x451127991D9A4742), UINT64_C(0x382750D619B6DB07)}}, + {{UINT64_C(0x740405EE9786AE0B), UINT64_C(0xF7F37C0F3ABA0481), + UINT64_C(0x904FC60C51892307), UINT64_C(0x8405DF2AE891D639)}, + {UINT64_C(0x53D19AC5D9B432F8), UINT64_C(0xE8F1730F066CD97C), + UINT64_C(0xC8740FEF0E95804B), UINT64_C(0x12EE433CEC242811)}}, + {{UINT64_C(0x6AF4B9B16153F4D4), UINT64_C(0x9CD8CD0CF84F0145), + UINT64_C(0x6CABD4FCDCEB0F06), UINT64_C(0x036BF1460D134DCE)}, + {UINT64_C(0xCDEB18187EFFACAB), UINT64_C(0xB57A416252C987E7), + UINT64_C(0xDD5104EBC647E82F), UINT64_C(0x389AA556F51B5270)}}, + {{UINT64_C(0xC450CAEA60108876), UINT64_C(0xF36B5B6AF48601A1), + UINT64_C(0x257950D109128863), UINT64_C(0x7A592427A9F6A1B9)}, + {UINT64_C(0xBF1FF2B0ED12DE33), UINT64_C(0x4D542AC8E2141101), + UINT64_C(0x998523C4E170F9CF), UINT64_C(0x629385CEFCEC0E2F)}}, + {{UINT64_C(0x951494EDB2677C49), UINT64_C(0xF1AE7138F9B648E8), + UINT64_C(0x28B8749E63CFF359), UINT64_C(0x5AC4EC4C9A73272F)}, + {UINT64_C(0xC25ABB8721723271), UINT64_C(0x488EC9108B441AFD), + UINT64_C(0x075183481B1DF775), UINT64_C(0x4662BBDAF1EB2FB4)}}, + {{UINT64_C(0xAE836F746DF9F64A), UINT64_C(0xF3CD6C9DA185ABE6), + UINT64_C(0xAFA897A8C29A1C1A), UINT64_C(0x4BAFBB6911B2D6AC)}, + {UINT64_C(0x8040F9A3B6D971C7), UINT64_C(0x3B8920B700763EAF), + UINT64_C(0x7A1655DA52E848B7), UINT64_C(0x03BC8B55703FA84D)}}, + {{UINT64_C(0xE6348C651F934416), UINT64_C(0xDBE59C03F82BBC4A), + UINT64_C(0x51AEAD09EAD60547), UINT64_C(0x043A35C34F20111E)}, + {UINT64_C(0x0AA18326EC574F0A), UINT64_C(0x07E90D70FCADF79D), + UINT64_C(0x3979D4CE201CD68B), UINT64_C(0x7FBF2C632C2734B1)}}, + {{UINT64_C(0x2E4513732656AF49), UINT64_C(0xCA86207DA432DE06), + UINT64_C(0xC5F9262D12F20637), UINT64_C(0x7DD9CCDC26C0C745)}, + {UINT64_C(0x99276BDCA785ED89), UINT64_C(0x34B307A7374CFBE2), + UINT64_C(0x916E9B061E8EE0C5), UINT64_C(0x4E8EB3C788A85C6A)}}, + }, + { + {{UINT64_C(0x6F2433EF107F1CE0), UINT64_C(0x121DE13146D23AEF), + UINT64_C(0x7AC50BE820DB44DE), UINT64_C(0x1E500A2BF6F41A1C)}, + {UINT64_C(0x8E5BAFCC27B0004C), UINT64_C(0x8538A5EDDB555C04), + UINT64_C(0x00AEC8A7CE4ED544), UINT64_C(0x7C7301CC73B2DA91)}}, + {{UINT64_C(0x3E7E1E5C63284E3A), UINT64_C(0x145814001422D8EA), + UINT64_C(0x5FE151BF7AAABD1D), UINT64_C(0x6716691F1533B371)}, + {UINT64_C(0xA592D53E22A8B7DF), UINT64_C(0x66991AFF51C97935), + UINT64_C(0x8B10603DDE5429B6), UINT64_C(0x0002F6C6551F146B)}}, + {{UINT64_C(0xF641CBCB777A334C), UINT64_C(0xB45B21E1EEFBCA44), + UINT64_C(0x7C2FCD6532F6E263), UINT64_C(0x05A21D80FEED8901)}, + {UINT64_C(0x2471B4865506CF47), UINT64_C(0x0FFAC1F77C9E62DE), + UINT64_C(0xC4D321DF869D3BDC), UINT64_C(0x9AC035099512D0CA)}}, + {{UINT64_C(0x5A26E8F5352E0353), UINT64_C(0x965CF602BF6ABBAC), + UINT64_C(0xDD8C4818E911C628), UINT64_C(0x132CA2D8DC2D04A0)}, + {UINT64_C(0x7641CFCE6C865C91), UINT64_C(0xDB5AB8F38E9965EF), + UINT64_C(0x30030BCDDE0B7E90), UINT64_C(0x7BF444532320D3F1)}}, + {{UINT64_C(0xC006FA6DD8A99DAD), UINT64_C(0xC042F163B45E64A1), + UINT64_C(0xB91C9CA474F4DBB1), UINT64_C(0x23BD5A29BE221E4E)}, + {UINT64_C(0x6B0591D73D1ECF78), UINT64_C(0x9E0ACF38AA5B771C), + UINT64_C(0xC970F263796D4AA3), UINT64_C(0x370375027B5DD349)}}, + {{UINT64_C(0xE11DECDAFBC52541), UINT64_C(0xA49B8D39E7FE53A5), + UINT64_C(0x3A08E9BB104A1F6E), UINT64_C(0x95444A15E0192BFB)}, + {UINT64_C(0xEF75B0621A97B875), UINT64_C(0x9FC8AE5EEA5FC457), + UINT64_C(0x3A09FD1B47F73089), UINT64_C(0x096750ECE24516AB)}}, + {{UINT64_C(0xAA1800464A350C95), UINT64_C(0xA72F2B6758EA4195), + UINT64_C(0xE0647945FD9A4F25), UINT64_C(0x4CF4136D22737E2D)}, + {UINT64_C(0xEE2532CEEFB2A96D), UINT64_C(0xB39DB1176C2F1471), + UINT64_C(0xF7C6242B19935BDB), UINT64_C(0x98CA48D47A820092)}}, + {{UINT64_C(0xE9C1AD0AC3C938B0), UINT64_C(0xF7CC05C4CCDF3BC6), + UINT64_C(0x3C21752B363A9CC6), UINT64_C(0x47996B875916BD59)}, + {UINT64_C(0x01EF895D98D17468), UINT64_C(0x9182F8825818F5D8), + UINT64_C(0xCBD212A3E35E4BE7), UINT64_C(0x894E7F395EA16E55)}}, + {{UINT64_C(0xAC674AEE7C8FDD7E), UINT64_C(0xA23FA827EDB0FE30), + UINT64_C(0x642BE06F745B3230), UINT64_C(0x7654C79BCB40941C)}, + {UINT64_C(0x4640C0C5D6A9E988), UINT64_C(0xA98AF66111A4EECB), + UINT64_C(0xE1E827E3325D730E), UINT64_C(0x2342D8807D8A02DE)}}, + {{UINT64_C(0xE4101595715DB87E), UINT64_C(0x462718AB3C44A43A), + UINT64_C(0xF414CBC7EFCBC0F7), UINT64_C(0x2A64DB21E5999AB3)}, + {UINT64_C(0xDAD841E19DA91E84), UINT64_C(0x5A28F6495F5C1CDD), + UINT64_C(0x2F8C9DCAB8B41BDA), UINT64_C(0x259DC791029C3697)}}, + {{UINT64_C(0xD56F4EF45296BA38), UINT64_C(0x4A853BA102EC3100), + UINT64_C(0xB0ED5F21C8AE4C47), UINT64_C(0x53D0DA0C61DF268E)}, + {UINT64_C(0xB6771DCB6DC06EB6), UINT64_C(0x30B07595BB0C457F), + UINT64_C(0xC2FD08F3F174690D), UINT64_C(0x77000D6A87A5DC8E)}}, + {{UINT64_C(0x90DDAA616E1369AD), UINT64_C(0x3DD15EE7B6A5F225), + UINT64_C(0x051AA9C427AEB0DC), UINT64_C(0x18712DBBE5372729)}, + {UINT64_C(0x13B3F9DFA23AFF5A), UINT64_C(0x34388CED703FBFF9), + UINT64_C(0x0F390D6717D60129), UINT64_C(0x3F0CA25E4DAE9863)}}, + {{UINT64_C(0x6E0F5594903385DC), UINT64_C(0x47483889F8A815A9), + UINT64_C(0x42AF320C23B70B1C), UINT64_C(0x4A27CA271A1AEA03)}, + {UINT64_C(0xFAAC21C866AF6F9D), UINT64_C(0x20849D90C9FBFD3E), + UINT64_C(0x793F889FEE0A541C), UINT64_C(0x2555FC32ADA5D18F)}}, + {{UINT64_C(0x3F38F58CBA2BD509), UINT64_C(0x319A5F0D048F864B), + UINT64_C(0xC4632F37D5900B1E), UINT64_C(0x3FAF2615F8519441)}, + {UINT64_C(0x6A4AA25DFE194D77), UINT64_C(0xB5A6464AD681409B), + UINT64_C(0x1A9326EDB957523A), UINT64_C(0x7690EA4F27098B5B)}}, + {{UINT64_C(0x5530E91110F3FDE3), UINT64_C(0x9A40101F810E7853), + UINT64_C(0x152704FC8F011C4E), UINT64_C(0x5B1702E4129B455F)}, + {UINT64_C(0x46A130BAE60F4D30), UINT64_C(0xA3D5741462BBE8B5), + UINT64_C(0xA26238DA3CFAEFE3), UINT64_C(0x4E6141133175078E)}}, + {{UINT64_C(0x27BCCDFF992EE109), UINT64_C(0x79F88647FB45C6C3), + UINT64_C(0x7FD5D73AC73F2829), UINT64_C(0x7EBE8E4E65A44CF1)}, + {UINT64_C(0xB9EC0B9437414B2C), UINT64_C(0x846AD1D136DED49D), + UINT64_C(0x72AE106062F2FE87), UINT64_C(0x7F5AF329C032EEDD)}}, + }, + { + {{UINT64_C(0x6C80B058C7A645A5), UINT64_C(0xF86341D2729066AC), + UINT64_C(0xE4F366BD33FB5CE8), UINT64_C(0x6B79D63FC23A4751)}, + {UINT64_C(0xFAA0F994EC3F8686), UINT64_C(0x156A6E8EA9BA8F5E), + UINT64_C(0xA46CA7D59F2FAE57), UINT64_C(0x84CB21966EFE66F2)}}, + {{UINT64_C(0xF9C1DECBED25185C), UINT64_C(0x6DC43F21B1FCFC82), + UINT64_C(0x4A840262A954087B), UINT64_C(0x602308090A38F667)}, + {UINT64_C(0xBD3450061D9672B5), UINT64_C(0xE0FF804BF83361EF), + UINT64_C(0x9DDC6CE1EF8E1598), UINT64_C(0x4419F705FBD9BD0E)}}, + {{UINT64_C(0xF171EDE43426122A), UINT64_C(0xEF6A1AE220A3963E), + UINT64_C(0xD25AB7A2031647D0), UINT64_C(0x0FD7EC20CB4CA4E3)}, + {UINT64_C(0xC103969CB7D3A295), UINT64_C(0x4957509E34DBABA8), + UINT64_C(0x8456DF6360BC0760), UINT64_C(0x02AF2033D63B49A9)}}, + {{UINT64_C(0x271966A00378E444), UINT64_C(0x673F057D5D15A0B7), + UINT64_C(0xA55C44F9A0EFE59E), UINT64_C(0x2F602F87376119A6)}, + {UINT64_C(0x0A14907428981502), UINT64_C(0xDA0067748741D4F2), + UINT64_C(0x8F982C81133F8479), UINT64_C(0x1ECAF17AF944319A)}}, + {{UINT64_C(0x281A234EA37F4FC2), UINT64_C(0xAFD847B2FD34FC11), + UINT64_C(0x02CC08394683E11A), UINT64_C(0x71215DA93F65B844)}, + {UINT64_C(0xF9F41383EFE32AC9), UINT64_C(0x4AC3D91D1361FE53), + UINT64_C(0x03C9FBAB1CC2E948), UINT64_C(0x9A9A4B9143379A4F)}}, + {{UINT64_C(0x8D37A10851BED5AC), UINT64_C(0x75D91890998E1C19), + UINT64_C(0xE6C76B095D244730), UINT64_C(0x127147164CD555FF)}, + {UINT64_C(0xF2DCE85A29DDC669), UINT64_C(0x8914D13A8D622348), + UINT64_C(0x9FE6B578DAE035E8), UINT64_C(0x21ECB251F41EEF19)}}, + {{UINT64_C(0xEAFF38627999064D), UINT64_C(0xB72BABEF96383204), + UINT64_C(0x8E6C9E676BCCCB43), UINT64_C(0x320A7D787FD71298)}, + {UINT64_C(0x4081E38AB438A302), UINT64_C(0x0A15CBA7120E132D), + UINT64_C(0x6D9123E1EC2E0939), UINT64_C(0x692D699CE0D6FEC5)}}, + {{UINT64_C(0xB639ADAEC8D5D361), UINT64_C(0xA8F742CCC60A078D), + UINT64_C(0xE8D2CF929D740F0F), UINT64_C(0x6E8EEEF94DCE6A87)}, + {UINT64_C(0x54E194886A2E5164), UINT64_C(0x4372C6CF2430E4B9), + UINT64_C(0xD58EA91B1C5B13B3), UINT64_C(0x796DCC45BB9F2911)}}, + {{UINT64_C(0xD8D4FAF0CBB267F9), UINT64_C(0xC2770DBE703F4011), + UINT64_C(0x13739F020D651402), UINT64_C(0x7DE4E51E72D2B3F1)}, + {UINT64_C(0xB10F966E1FE00C7E), UINT64_C(0x5E9A15018F42B5F8), + UINT64_C(0x6AFB1AD0D00437A3), UINT64_C(0x267D15361473D5AE)}}, + {{UINT64_C(0x1173B5DB4CAE118F), UINT64_C(0xC3A2EAFDCA749EE6), + UINT64_C(0x64F738E64ED4FFF4), UINT64_C(0x47DDECB6B07860B6)}, + {UINT64_C(0xF5D627FCBD47A901), UINT64_C(0x6493BC28856C6903), + UINT64_C(0x90280E4BEA63B675), UINT64_C(0x211C04A2C4148666)}}, + {{UINT64_C(0x0A5F0C276524BC38), UINT64_C(0x4B9D95FBBB3CBDB9), + UINT64_C(0x5394ADC220507C82), UINT64_C(0x4C0C9167B4DBE448)}, + {UINT64_C(0xAC3E87CE303A5B11), UINT64_C(0xD31FB9C53251F4DF), + UINT64_C(0x86C281DFE43CE799), UINT64_C(0x84E644D729FE09E4)}}, + {{UINT64_C(0x6D7B61DC43166C20), UINT64_C(0x54D6C035BD34F981), + UINT64_C(0xB166769DC991096D), UINT64_C(0x51A47E3A3A4CF05C)}, + {UINT64_C(0x57CF9EFF14F5E7F1), UINT64_C(0xED3D4E9DE39FDA0D), + UINT64_C(0xDF0176ECBAA7E93B), UINT64_C(0x6B2FEA1470935B9F)}}, + {{UINT64_C(0x19F9D59E709B70AE), UINT64_C(0xD850CA3270472149), + UINT64_C(0x292CADD929EE6104), UINT64_C(0x870F7C998FD499F2)}, + {UINT64_C(0x200ECB1C415C6FFD), UINT64_C(0xEEA6107D35CB841B), + UINT64_C(0x1CB06F8AF95DD333), UINT64_C(0x245712FDE498AA7B)}}, + {{UINT64_C(0x101665EAED4FBD78), UINT64_C(0xC6DDE1BB0E32D1B4), + UINT64_C(0x3E79185E40150A9C), UINT64_C(0x49E2AE6B7DEF3607)}, + {UINT64_C(0xCCC9B0F6308B7F59), UINT64_C(0xB267008FCE922087), + UINT64_C(0x46CF7F07CF2AABA6), UINT64_C(0x5A74C8A09954091F)}}, + {{UINT64_C(0x8F2871955240B5A0), UINT64_C(0x7AC7720F1845373D), + UINT64_C(0xCF276B594E592274), UINT64_C(0x6BEBC284694C30B8)}, + {UINT64_C(0xDA0113D6677B16CD), UINT64_C(0xA221344645C9FA76), + UINT64_C(0x2DEAF2ED66964ADB), UINT64_C(0x1977A8B3BC062240)}}, + {{UINT64_C(0xEEA2912680303DFD), UINT64_C(0x3E4A33ACE95BF6A1), + UINT64_C(0x6BFE2D5D15DE0457), UINT64_C(0x407BF7E3AD0976D1)}, + {UINT64_C(0x04C1F61F306B415B), UINT64_C(0xC86A75D25F790D5F), + UINT64_C(0x7B799EDEB7EAE07B), UINT64_C(0x9155A9A0B4A66839)}}, + }, + { + {{UINT64_C(0x9745C6BB0DCE586B), UINT64_C(0x554C8313BE77B502), + UINT64_C(0xF0F842A9A93962CF), UINT64_C(0x40862273AAA141BC)}, + {UINT64_C(0x926FFA4ABD62237B), UINT64_C(0xD4F1E4A17B942F48), + UINT64_C(0x3A841EB7075684FD), UINT64_C(0x21F6EB39DD1807E1)}}, + {{UINT64_C(0x155DFD66BEDA4365), UINT64_C(0xDD575C8327F33BF9), + UINT64_C(0x5907B08D3DFF83A1), UINT64_C(0x7E325357D6788D63)}, + {UINT64_C(0xF90BF447BAC74ED7), UINT64_C(0x2DE6C957EDA226CD), + UINT64_C(0x678323021CA44607), UINT64_C(0x22ECBC1F56011C38)}}, + {{UINT64_C(0xF01279A9B663A46C), UINT64_C(0x07D74C5F7E3AAB83), + UINT64_C(0xF20940B68C0DA43E), UINT64_C(0x57C6A735368AD991)}, + {UINT64_C(0x01E9B3665007E059), UINT64_C(0xFC38FC999614D480), + UINT64_C(0x4A3AAA18FF7DA757), UINT64_C(0x4481B669B0CE1B03)}}, + {{UINT64_C(0x9CAA37A0B4A807FF), UINT64_C(0xBDEDEB49F9B269F3), + UINT64_C(0xC5B76E57CB607AC3), UINT64_C(0x08AEFE669A322F48)}, + {UINT64_C(0x6919E40DD9261469), UINT64_C(0x1F0ADA81849718FA), + UINT64_C(0xCD251B549D81628E), UINT64_C(0x6519C3C65505F9E1)}}, + {{UINT64_C(0x277591DC2F81C037), UINT64_C(0xD63AD35A76E0D41E), + UINT64_C(0x682662B56EC063D3), UINT64_C(0x8210978B6762A0DB)}, + {UINT64_C(0x05085F68FE164B90), UINT64_C(0x50026ADC3D6FD0D1), + UINT64_C(0x38CC9FA7B01A3791), UINT64_C(0x1E286652B376F83E)}}, + {{UINT64_C(0x8DFFDA1609759892), UINT64_C(0xE011DDDB9AC2CE5D), + UINT64_C(0xDDC7670FBD71426B), UINT64_C(0x9722A23B19742F7C)}, + {UINT64_C(0x2EA99893DC4767D3), UINT64_C(0xCB68D6C211125BAE), + UINT64_C(0xAC76953E307ED3B9), UINT64_C(0x0EDD0C17C366E9A2)}}, + {{UINT64_C(0x88B3DEC9484B5272), UINT64_C(0x0C848EA190380294), + UINT64_C(0xDE187E83A01AC92C), UINT64_C(0x2A8801827A5D4D65)}, + {UINT64_C(0xD3C22C2BB3C3C7BB), UINT64_C(0xC485CE02DE7ECE33), + UINT64_C(0xF22138C4A437071A), UINT64_C(0x23A55C890716DA53)}}, + {{UINT64_C(0x9533C4A3F6FE058E), UINT64_C(0x28753F87748E4A4F), + UINT64_C(0x7814C50AEA404C70), UINT64_C(0x908D1C81E91B5EF3)}, + {UINT64_C(0xD827D3CE04094766), UINT64_C(0x7AE2FD260CE5C727), + UINT64_C(0x016AC86FCDAD2BDD), UINT64_C(0x37C088B07A77C252)}}, + {{UINT64_C(0xABF4C1EF18A35CD3), UINT64_C(0x1F721491698A5A01), + UINT64_C(0x79284A121A9E9A1F), UINT64_C(0x0457FF704D50DF40)}, + {UINT64_C(0x1D235814EC46ED07), UINT64_C(0xBD013752AE5E97C8), + UINT64_C(0x0E085C88D9B100D4), UINT64_C(0x8AFA070A8858F9F3)}}, + {{UINT64_C(0x0F548BE3698D6A59), UINT64_C(0x5D7818A5BF2D0D94), + UINT64_C(0x8E150DF1D80E620D), UINT64_C(0x4C3A5E64F857F167)}, + {UINT64_C(0x837D9A9861BD9152), UINT64_C(0x242CE5898D10687F), + UINT64_C(0x9863EA4CB6B52BB7), UINT64_C(0x23665B46B7DD35FF)}}, + {{UINT64_C(0x3AA5432A73942AAF), UINT64_C(0xB0185DB40CEE83A9), + UINT64_C(0x145372EEA83B907B), UINT64_C(0x609F1AD9BB6D341A)}, + {UINT64_C(0x28C2B37A864C92EE), UINT64_C(0xDD847239D4CC1158), + UINT64_C(0xE5BD4FD28F2EAF0A), UINT64_C(0x04F43BC0D24950AB)}}, + {{UINT64_C(0x11DEFCED88DA3F20), UINT64_C(0xCA4CE370A407C4A2), + UINT64_C(0xEA70BEDF2F8C5CFC), UINT64_C(0x08AC147D8214B7F7)}, + {UINT64_C(0xECAD0F77E260AA96), UINT64_C(0xA868AC63B56C30F7), + UINT64_C(0xF0ACDE5A396F4815), UINT64_C(0x302F75B9ACDE6CD8)}}, + {{UINT64_C(0x2125D07DC5D14866), UINT64_C(0xFE563DE44AE3212D), + UINT64_C(0x0FE787CBEE9CAA2B), UINT64_C(0x7D9B56A253802482)}, + {UINT64_C(0x128B4D378040D1A7), UINT64_C(0x5737129930ACA2F4), + UINT64_C(0x5C443E357623D14A), UINT64_C(0x6436D3285FDB6310)}}, + {{UINT64_C(0x531486A4A8557B64), UINT64_C(0x3FAB4F219C5DE310), + UINT64_C(0xD872282E260468D0), UINT64_C(0x04CD45682542CBA4)}, + {UINT64_C(0xACA0975A555B6E0C), UINT64_C(0xEE8C43B28B85132F), + UINT64_C(0xC768808BB9DECE9D), UINT64_C(0x59EDEC60431AF98C)}}, + {{UINT64_C(0xC365E13331992E22), UINT64_C(0xB96C5FA00DC3A4C8), + UINT64_C(0xDEB1C1DAA65761B0), UINT64_C(0x457676EEF4ACAB4C)}, + {UINT64_C(0xA0F95894E674FFAF), UINT64_C(0xFD099172D65CDAB7), + UINT64_C(0x9383C2F854DA58A2), UINT64_C(0x0A4F4C110F24A07B)}}, + {{UINT64_C(0x9D7A80B3E380ABF3), UINT64_C(0xF0C6AC5A9E469F9F), + UINT64_C(0xC87D57276BD0A324), UINT64_C(0x28138E377692B063)}, + {UINT64_C(0xE18C1F7DD67862CA), UINT64_C(0x4B6B723E1E07F928), + UINT64_C(0xAAFE3FB0BBCF4125), UINT64_C(0x254003223B3AE714)}}, + }, + { + {{UINT64_C(0xB89A2DCA63C295D8), UINT64_C(0x5CC03C6585041AA1), + UINT64_C(0xFA9B4C5CC6514781), UINT64_C(0x578031A0D92388FF)}, + {UINT64_C(0xB0D5AE0AF92C2D77), UINT64_C(0x945A677E793D588A), + UINT64_C(0x3722DE4434A190E0), UINT64_C(0x6EA90DB80C2B9975)}}, + {{UINT64_C(0xE987AA8584BA4F9B), UINT64_C(0xB2A77B9C0AB43BE6), + UINT64_C(0xC4AD2AF6474D8841), UINT64_C(0x4ED7A82B5D4FA590)}, + {UINT64_C(0x9F39335E9977AC2B), UINT64_C(0x3CCD406D52E87607), + UINT64_C(0x9D18CB3F71456060), UINT64_C(0x0FE4D8886A45D7D0)}}, + {{UINT64_C(0xAEA8A911F42D501A), UINT64_C(0x303E25D588F66FBA), + UINT64_C(0x54213F2961740B85), UINT64_C(0x5BC13A30C0B4D835)}, + {UINT64_C(0x569AB9B84758EA28), UINT64_C(0xE2E49B28B796A794), + UINT64_C(0x17787125320D54E2), UINT64_C(0x5A6A8EDEC54B4465)}}, + {{UINT64_C(0xC76C73D9870619DD), UINT64_C(0xF541440E84FE1078), + UINT64_C(0x2082FE363B26A3DC), UINT64_C(0x3B896B29CC329B14)}, + {UINT64_C(0xB45028A9CAFCDC20), UINT64_C(0xA1B77C6F9C56757E), + UINT64_C(0xDE50D86584802E47), UINT64_C(0x7DFBC0E8BA0892B0)}}, + {{UINT64_C(0xEBC505A947E702BB), UINT64_C(0x2329A41CDACFACFE), + UINT64_C(0xEA11560351DDCE2F), UINT64_C(0x95BBC8072E9D855A)}, + {UINT64_C(0x454C6B88CFD33E9F), UINT64_C(0x993CF6DE4FFBB24A), + UINT64_C(0xA8E22FF89B2144CD), UINT64_C(0x741066EE84943294)}}, + {{UINT64_C(0x2CEE0CFFF067E5B2), UINT64_C(0x1C1FD5A3CA95F1C5), + UINT64_C(0xA0EB8E7DC07B97F1), UINT64_C(0x0F2A5D777457415E)}, + {UINT64_C(0xDFF92C5845D06291), UINT64_C(0x709EA0AC48ABABE8), + UINT64_C(0xB3058FEB2FDC92F0), UINT64_C(0x55E9F86E5E5B169E)}}, + {{UINT64_C(0xEE5DF132EBF6AF2B), UINT64_C(0xC30DC3F1F642A206), + UINT64_C(0xD7D8EC3E02C60CB6), UINT64_C(0x7C98946B3178F1BF)}, + {UINT64_C(0x816C2AA1A68799EB), UINT64_C(0x507FD5E92430F06B), + UINT64_C(0x021FFF1CB9EBD4B7), UINT64_C(0x044365E68AECFEA4)}}, + {{UINT64_C(0xDC5F5EA621339693), UINT64_C(0x5BFD267690A448AD), + UINT64_C(0xF712BA95A12A9D77), UINT64_C(0x7104735ABD8A6B5B)}, + {UINT64_C(0xD2ED8304A763BB99), UINT64_C(0x7AF040F011B91A05), + UINT64_C(0xC545E8AEB61F3789), UINT64_C(0x582E9EEDBB386760)}}, + {{UINT64_C(0x0FCE5877CC099185), UINT64_C(0x0E148BB5CD681E67), + UINT64_C(0xE9F9013EECB24ECE), UINT64_C(0x0090654B2A386485)}, + {UINT64_C(0x11BA700B0520BAE8), UINT64_C(0xFC93BE31D8E53123), + UINT64_C(0x7DD7CB36E37948EE), UINT64_C(0x8689AE8F3FC23444)}}, + {{UINT64_C(0x2060F7DEAAC6616B), UINT64_C(0x372952C5DEAB3CC7), + UINT64_C(0x715C4D27C2424ACD), UINT64_C(0x058468560308A009)}, + {UINT64_C(0x887BBD550B8B34E8), UINT64_C(0x949ACBD1B688C987), + UINT64_C(0x3E774D49784C4C0E), UINT64_C(0x7AEA2D11B0F5F545)}}, + {{UINT64_C(0x5335BA6BE831E509), UINT64_C(0x8FC4B4AF739F332E), + UINT64_C(0xB050246295993EAF), UINT64_C(0x7DA49F36A7CEB88B)}, + {UINT64_C(0x3BE0B74B029D0C8F), UINT64_C(0xBC07F18055611A8B), + UINT64_C(0xC168CF416583F53F), UINT64_C(0x4256E8D2C34ADBC1)}}, + {{UINT64_C(0x313AFC75CE2FCD89), UINT64_C(0xEA27FDA4D3DA44F2), + UINT64_C(0x9FABEA799063B0DC), UINT64_C(0x2DF7D966B3418884)}, + {UINT64_C(0x4329FD2480AF2EBD), UINT64_C(0x36F27FF79F095D30), + UINT64_C(0x88FFB18FCC84C068), UINT64_C(0x976427A87B0A9906)}}, + {{UINT64_C(0xCFF828CCFAC21087), UINT64_C(0x6B6D348456863CB5), + UINT64_C(0x14163A70C30879F3), UINT64_C(0x30E2A6338CA6FD5D)}, + {UINT64_C(0xC7FCEAD628A58783), UINT64_C(0x945F7B09EEFA1EAA), + UINT64_C(0x98A503DB5CC66267), UINT64_C(0x83EE750E3780061B)}}, + {{UINT64_C(0x7061409AB8477D6B), UINT64_C(0xE47C779D2B7B54FA), + UINT64_C(0x42F5EDF5F293166C), UINT64_C(0x73C3AC1B115D830F)}, + {UINT64_C(0xC30D346E4DEE0980), UINT64_C(0xEE0D9A29A62F0D09), + UINT64_C(0xBBE8DC9EABCB7DAE), UINT64_C(0x4F0E78C068B78925)}}, + {{UINT64_C(0x25A0D4FFB4B14003), UINT64_C(0xA4C3AC55B8AB649C), + UINT64_C(0x7D7EDE7227F9FDF5), UINT64_C(0x507EC83FBC2A46D4)}, + {UINT64_C(0x344577D9FAAFC26F), UINT64_C(0x77CBB7833EB30156), + UINT64_C(0x3A846FFD1D5C9367), UINT64_C(0x5F0D280C9DF9F7BE)}}, + {{UINT64_C(0xCC8EAC0A77DF7F9F), UINT64_C(0x195BC6FFF33A62D4), + UINT64_C(0x18A33FFA524D78FE), UINT64_C(0x10E589746603F9C0)}, + {UINT64_C(0x31AF4B460CDA2C3F), UINT64_C(0xDDBF00C8ADE169C3), + UINT64_C(0xA169C3E371A7BC38), UINT64_C(0x3FC352FFA64B342E)}}, + }, + { + {{UINT64_C(0x58848315EE73C673), UINT64_C(0x67D2F7C08ADB897E), + UINT64_C(0xE8CD786DF0658115), UINT64_C(0x023D515AAC54D2AB)}, + {UINT64_C(0x0EDE61D867559911), UINT64_C(0xBC12B1063C2B78B5), + UINT64_C(0xB5661A289E4707D8), UINT64_C(0x93FB4096ADC095A4)}}, + {{UINT64_C(0xEEB3810F33D5FA08), UINT64_C(0x8D8FC35433F4CAAF), + UINT64_C(0xED87051629EB08A3), UINT64_C(0x89FD91CAD1D31EBC)}, + {UINT64_C(0xD2F1F832EDE2494B), UINT64_C(0xCFEE1D77FA8EEA95), + UINT64_C(0x13603C4A3B0F005C), UINT64_C(0x6DF97F85D9EF68F4)}}, + {{UINT64_C(0x578FBC0A55410512), UINT64_C(0x1FA404F2DEC79EEE), + UINT64_C(0x201FE21592B60820), UINT64_C(0x9A9B3CE80A56193A)}, + {UINT64_C(0x8A5ECCB910B49800), UINT64_C(0xA7373AEBBFDB1D8E), + UINT64_C(0x8996BEFA4944B5DF), UINT64_C(0x3102D3C07B44246C)}}, + {{UINT64_C(0xD4A853B7449C09BE), UINT64_C(0x1F7080A451DDB7FE), + UINT64_C(0x8A9DE52CE1C27FC1), UINT64_C(0x6585B54F0C58B99D)}, + {UINT64_C(0x8EEB0601B5A4AB53), UINT64_C(0x977D658D48C73AC6), + UINT64_C(0xD5DA09033D9BD223), UINT64_C(0x881A5838BE115965)}}, + {{UINT64_C(0x8EB70B77EB3FC303), UINT64_C(0xED1C4DEF98BDB841), + UINT64_C(0x13E6BE06997DE9E4), UINT64_C(0x4A94C0A19334D46D)}, + {UINT64_C(0x184C17C80F867DAF), UINT64_C(0x4A65802633A64148), + UINT64_C(0xD177F0090AE3D4AA), UINT64_C(0x8134AC8F98ED12C0)}}, + {{UINT64_C(0x7A308A007A58DDEC), UINT64_C(0x74A15C5FFDF92DF2), + UINT64_C(0x210D260E21B4E345), UINT64_C(0x6446715BC651E31E)}, + {UINT64_C(0xB1AF1F8410B905B6), UINT64_C(0xEF6CD0F2A62D366F), + UINT64_C(0x77E47B01D1F6B7E3), UINT64_C(0x0F38B2802B95BD12)}}, + {{UINT64_C(0x52DA30E18CCCDAE6), UINT64_C(0x9F3D6636BD86A13A), + UINT64_C(0xADFA00C5F4EA6151), UINT64_C(0x6B93BFA01EC37639)}, + {UINT64_C(0x443F0023F8FE22FC), UINT64_C(0xCB7848A4A81FEACC), + UINT64_C(0xCE5E650A517E9E61), UINT64_C(0x5842DB7DA1968E3D)}}, + {{UINT64_C(0x61DDC69498C06F78), UINT64_C(0x680FEDE97985B1A2), + UINT64_C(0x214CD2B8FB53A327), UINT64_C(0x98EAC0B3E425132B)}, + {UINT64_C(0x5EEDD76D33E5766D), UINT64_C(0x5B280618540000A3), + UINT64_C(0x915D55CB65C894AE), UINT64_C(0x7B088A36D20D9523)}}, + {{UINT64_C(0x51A47312C28DA278), UINT64_C(0xE315CBA4EFE64521), + UINT64_C(0x3EF70A1849D8D0FF), UINT64_C(0x0990CB92CABD48C5)}, + {UINT64_C(0x22ED6302A7C2FC76), UINT64_C(0xB50370EA2CB98186), + UINT64_C(0xDEA88C65F3F2BA8B), UINT64_C(0x0906245109FEDEEA)}}, + {{UINT64_C(0x742F9A2EDAC0F222), UINT64_C(0xE2A8842B95C88A8E), + UINT64_C(0x80C057659D817B14), UINT64_C(0x7ED0521A982D49AE)}, + {UINT64_C(0x047E49D4907B10F7), UINT64_C(0x8A3E23A7DE8AD4CD), + UINT64_C(0xEBE8C13FEB5292B1), UINT64_C(0x048A6209A7EB70BD)}}, + {{UINT64_C(0xB51665A09AA34851), UINT64_C(0x4DD5AC1B7C4AFCEE), + UINT64_C(0x00DEE7AB25A21937), UINT64_C(0x88E2681E80FAF232)}, + {UINT64_C(0x79ECD66AB5411EE2), UINT64_C(0x06008CE3F370BF53), + UINT64_C(0xCFB1850EC9BBB64C), UINT64_C(0x5FBACB277149B14E)}}, + {{UINT64_C(0xA1F0EE079938AA0C), UINT64_C(0x6945E2BA74CCE9C4), + UINT64_C(0x16689FCE46A98BEA), UINT64_C(0x8D71F405CF67DF91)}, + {UINT64_C(0x71E4CAC869621150), UINT64_C(0x518FA20089B380D8), + UINT64_C(0x3B3B85F153F9E660), UINT64_C(0x02643303C6D9B022)}}, + {{UINT64_C(0xE8C478EC07660C3E), UINT64_C(0xA906C3A1EF41F1DA), + UINT64_C(0xE918F16046699B71), UINT64_C(0x2B8A0B0EE5BE7B36)}, + {UINT64_C(0xC663F0EC889F50A0), UINT64_C(0x7413264BF9214F81), + UINT64_C(0x2E9FA9A0421A9087), UINT64_C(0x85C59B7C83546DCD)}}, + {{UINT64_C(0xB4A6CF398D920A29), UINT64_C(0xC857AF481B3956A1), + UINT64_C(0x519C7371DD794B23), UINT64_C(0x478462208EFBF8F9)}, + {UINT64_C(0x184C25E5617E4C6C), UINT64_C(0x218FCC23D2E51A5E), + UINT64_C(0xB421971928FA0FFC), UINT64_C(0x6C0BCD71781A61D9)}}, + {{UINT64_C(0x440D6DDFDC7B5568), UINT64_C(0x64C7CC310DBBEC7C), + UINT64_C(0x63D16D4EA2DC0CBA), UINT64_C(0x7BD9E0CC4504BE2C)}, + {UINT64_C(0x9C8828952DE780A8), UINT64_C(0x7C6685C2EF2B2486), + UINT64_C(0xF1FB09E9957FA7D8), UINT64_C(0x20C6B5A546A77A98)}}, + {{UINT64_C(0x60C7757333C0F0C1), UINT64_C(0x40C93227CADDA5FE), + UINT64_C(0xA48EBAA29DD41D5F), UINT64_C(0x4AAFBF3CEA9FD5AD)}, + {UINT64_C(0x7EB61836C5A287BA), UINT64_C(0x1D6A1BA2B31BA25E), + UINT64_C(0x60507257AD186E52), UINT64_C(0x7FEC8EB02BAB7451)}}, + }, + { + {{UINT64_C(0x500E2FDBB8DA5FFE), UINT64_C(0x6AE2D4EA8CDD1B39), + UINT64_C(0x38D120251A5840CD), UINT64_C(0x8D3B20CBC214D26D)}, + {UINT64_C(0xEF6BB36CC041E874), UINT64_C(0x67660393450F2218), + UINT64_C(0x1E1B7782A892BDFD), UINT64_C(0x2D69514C8D962E62)}}, + {{UINT64_C(0x9EDF5F789631B095), UINT64_C(0xAC7DD68745BF8F20), + UINT64_C(0x257CCE28E3262EBC), UINT64_C(0x5D32EFCBE0E480A6)}, + {UINT64_C(0xED48E34C6FBB99E8), UINT64_C(0x50B1D58C23FDE9B7), + UINT64_C(0xC5164C2A6B6927C8), UINT64_C(0x8A0BC6068906B705)}}, + {{UINT64_C(0x3FA3C7C92F747DA8), UINT64_C(0x2E8D2C2E14938E08), + UINT64_C(0x155A8A5BB6A1C720), UINT64_C(0x6B4D8C9EB3133FD0)}, + {UINT64_C(0x079AC7F1CE131C1D), UINT64_C(0x9CF419AF815B7D2B), + UINT64_C(0x569EB7BAE60B6245), UINT64_C(0x03C79E609A3DD94E)}}, + {{UINT64_C(0x328F5296B9CE9502), UINT64_C(0xCA44ADBDE45C3576), + UINT64_C(0x669879526194AE2C), UINT64_C(0x5875F8EFBF9B8C49)}, + {UINT64_C(0x525A4D53DA51CAB8), UINT64_C(0x91A592DD9DC268B2), + UINT64_C(0xD7EA7958E1E3C168), UINT64_C(0x0D1E20E0A999ED30)}}, + {{UINT64_C(0x55DA34E5FE8AD270), UINT64_C(0xB041289561EC55F6), + UINT64_C(0x0D45670F534569C9), UINT64_C(0x5A7E6764E23F69FB)}, + {UINT64_C(0xBB6BBEC9A8B28676), UINT64_C(0x4F924558093B0D1D), + UINT64_C(0xD4E4BF120C29D841), UINT64_C(0x67D2B4C8578A237A)}}, + {{UINT64_C(0x0BDF32D663EF2D73), UINT64_C(0x7248DD2D4AE4303C), + UINT64_C(0xBB61BAB56CE1E92A), UINT64_C(0x126166E91D7B9A6C)}, + {UINT64_C(0x4CE7086A11CEBC3C), UINT64_C(0xE7ACB25E1C71426F), + UINT64_C(0xBFB65EDC432CC4AF), UINT64_C(0x3BCA5202CB018CF7)}}, + {{UINT64_C(0xACF034F276430A87), UINT64_C(0xBFDF19B3534C42ED), + UINT64_C(0x05654FE67946CB1A), UINT64_C(0x0DB07E7980F17880)}, + {UINT64_C(0xE6E93101FDCF8BC9), UINT64_C(0xF3198B87F798A8CD), + UINT64_C(0xC05444EFC9683420), UINT64_C(0x56E9AA68915D1BF1)}}, + {{UINT64_C(0xF27B298B34000B11), UINT64_C(0x70ED8C95F4196E50), + UINT64_C(0xF3E16608233C8764), UINT64_C(0x5B97655A41881557)}, + {UINT64_C(0x5BF11C1A128C195B), UINT64_C(0xFFB64333372C286D), + UINT64_C(0x084D3EF77C83BB31), UINT64_C(0x8ECF6C01745B7D75)}}, + {{UINT64_C(0x3D6052B9C6F4FF82), UINT64_C(0x9305FE456607892F), + UINT64_C(0x232FD87E5879425F), UINT64_C(0x4CAEDF73D6F47350)}, + {UINT64_C(0x889243D2032FC50D), UINT64_C(0xA6AF69D70C9C11AC), + UINT64_C(0x43B5429D802E8E06), UINT64_C(0x38F1DEA8D70FC802)}}, + {{UINT64_C(0x54F24344C9595C08), UINT64_C(0x95A2E8FB0240AAB3), + UINT64_C(0x07A5109DC3544985), UINT64_C(0x96F44213B5D30899)}, + {UINT64_C(0x03FAB192AA347497), UINT64_C(0x47FFD3DEC9CFC073), + UINT64_C(0x283AD765D2C1D57F), UINT64_C(0x1FDFFBAC62DC271A)}}, + {{UINT64_C(0x2355C62995F80CA6), UINT64_C(0x90AE1DBBCD8D880A), + UINT64_C(0x563CC122C54117E0), UINT64_C(0x1EF4991B813D7481)}, + {UINT64_C(0x8A310D77CCE9AEDE), UINT64_C(0xA401FAEF9318642E), + UINT64_C(0xC1712A67CF9AFDCB), UINT64_C(0x8D97374CBE499DE5)}}, + {{UINT64_C(0x7437AA3B55A0BC07), UINT64_C(0x004946D0F726DD81), + UINT64_C(0x33D41D1B0F341860), UINT64_C(0x2A009EB517840F0D)}, + {UINT64_C(0x158F59AEAA0DCDCF), UINT64_C(0xF686EF2DEAB42135), + UINT64_C(0xFF6B8E827A80C670), UINT64_C(0x38646963A04DF944)}}, + {{UINT64_C(0x6BB2705E4B987E90), UINT64_C(0x2F5E2C4DD3C36316), + UINT64_C(0x41B38905E5A9ECEC), UINT64_C(0x2C6BA68155BF8D1A)}, + {UINT64_C(0x1121B3B23C92B20B), UINT64_C(0x6DE41B12904305D5), + UINT64_C(0xA0496CF4D569EAC4), UINT64_C(0x5C64A06C11E5CF90)}}, + {{UINT64_C(0xA65F12ABE28783DF), UINT64_C(0x2A891B0F37322285), + UINT64_C(0xD6FF46049811C4EB), UINT64_C(0x7C960ED5A8505AC0)}, + {UINT64_C(0xE86893772FCA110D), UINT64_C(0x71AAE29260FD893E), + UINT64_C(0x8ADE53177505671D), UINT64_C(0x721A07A58C508791)}}, + {{UINT64_C(0xC1AE9A50E5ECCA8C), UINT64_C(0x7528AEF507EB4329), + UINT64_C(0x8F0D0E03D1297D88), UINT64_C(0x27C7BF76244BBC0C)}, + {UINT64_C(0x96EEDA7CC7E7E9BB), UINT64_C(0xC9749BF7F96C99B3), + UINT64_C(0x44C852D2467B4D43), UINT64_C(0x1691D71D937FA21D)}}, + {{UINT64_C(0x8CAC092FF8058A68), UINT64_C(0x6B892BCFDAE38445), + UINT64_C(0x82CBECE597D76059), UINT64_C(0x5AEB66463518F9E2)}, + {UINT64_C(0xA39C710C392080B4), UINT64_C(0x575DC5F41502DE54), + UINT64_C(0xA465DD5E3A3D2B4D), UINT64_C(0x281AAE47638EAF45)}}, + }, + { + {{UINT64_C(0xBE40C92BE955A145), UINT64_C(0xD464D6BC324234B5), + UINT64_C(0xE8084747B09D4AF8), UINT64_C(0x939C70BF5268D6C3)}, + {UINT64_C(0x9C9C9D25D1DDBB48), UINT64_C(0x30D9EA7F790B5B42), + UINT64_C(0x367FD79B4E3914B4), UINT64_C(0x27615F29826EE4D7)}}, + {{UINT64_C(0x09BB6F1650A41246), UINT64_C(0xC72BFF7AE5459A13), + UINT64_C(0x0FC15846FF09B2F7), UINT64_C(0x6D90406209CB693A)}, + {UINT64_C(0x98A132F8F40FC67D), UINT64_C(0xC8B6573BDF37CBFA), + UINT64_C(0xC9CF994899D7FC36), UINT64_C(0x0DD66ABAA7235DDB)}}, + {{UINT64_C(0x0180B525F96048BD), UINT64_C(0xEB566786544F1E70), + UINT64_C(0x8BABBF9B8EF4373C), UINT64_C(0x509BA431D9E49178)}, + {UINT64_C(0xF961A6F565A4A201), UINT64_C(0xB6621DF98D44ED2D), + UINT64_C(0xEADD3C0CD7B4D744), UINT64_C(0x75D27E990EAAB110)}}, + {{UINT64_C(0xEAC7AC7685DF5695), UINT64_C(0x02C26274DA7540A3), + UINT64_C(0xDEC1BBC4C659B610), UINT64_C(0x54483C1B3AC61EEB)}, + {UINT64_C(0x8B91209A217E0283), UINT64_C(0x939FBDAF3A17DDFE), + UINT64_C(0xA82C66D65BF98726), UINT64_C(0x2BA82FA0915AAC76)}}, + {{UINT64_C(0x99B324C1AF4542E8), UINT64_C(0x16EBC66FC0F225E0), + UINT64_C(0xEAE6956327FEF57B), UINT64_C(0x2996FE3C961B03FA)}, + {UINT64_C(0x0835212E4F967A68), UINT64_C(0x0AAABD99F44352DC), + UINT64_C(0x1874255F4B3A6B8D), UINT64_C(0x45F5D8B26D10B369)}}, + {{UINT64_C(0x603DD497F7B7644B), UINT64_C(0x369BE6762D1386AA), + UINT64_C(0x08C1B76314C9FA94), UINT64_C(0x734921D9384AF696)}, + {UINT64_C(0xA1B5AF5BD76E8EEB), UINT64_C(0xB0EAE7A342F990E8), + UINT64_C(0x59E7C515069ED81D), UINT64_C(0x2D1B5E62B5A50610)}}, + {{UINT64_C(0xDC32281085995BD3), UINT64_C(0x35A47B05873E7A09), + UINT64_C(0x0CDFE9BBA70DE932), UINT64_C(0x049B899DD62FBC89)}, + {UINT64_C(0xF6BAA860652291DB), UINT64_C(0x58123B259AF7478F), + UINT64_C(0xA05CCBC247B9F204), UINT64_C(0x8A0B479D82D999A7)}}, + {{UINT64_C(0xA72B9B522D0F619A), UINT64_C(0xE73B66F75919C420), + UINT64_C(0x92319C86D21CFEFE), UINT64_C(0x58EEFC71F1635F0E)}, + {UINT64_C(0xDC481783DA909290), UINT64_C(0x144E7A9866316584), + UINT64_C(0xBD7E657F45E1E3C8), UINT64_C(0x5C9FCD1CBD93938C)}}, + {{UINT64_C(0x2339E2FA436C1AB3), UINT64_C(0x69C22269C26768AA), + UINT64_C(0x94DFCAF440FCBD90), UINT64_C(0x56235739C41D4F61)}, + {UINT64_C(0x6E50D4DB718468D3), UINT64_C(0xDEA80730CADCEC6C), + UINT64_C(0x924FF97E63DC3C43), UINT64_C(0x1B6528256752EA6A)}}, + {{UINT64_C(0xAC2BDCDDF07BE4BB), UINT64_C(0xB46D8E968DB0A32D), + UINT64_C(0xDD661C68B618488D), UINT64_C(0x8ED22D4B75E1E4BF)}, + {UINT64_C(0x5DD2E5DF3C177D80), UINT64_C(0x5049C01282803711), + UINT64_C(0xFB243B3F73E0BA27), UINT64_C(0x0C756BA08C7810D5)}}, + {{UINT64_C(0xFC58F0BD6F16FBCA), UINT64_C(0xA855BB8CA5E33B36), + UINT64_C(0xB9239EB499D08247), UINT64_C(0x27ABC78D49CAF40D)}, + {UINT64_C(0x88BE1595A1285278), UINT64_C(0x9D5AEE5B60F16638), + UINT64_C(0x3F3815291FCE4327), UINT64_C(0x17206899F19CAA04)}}, + {{UINT64_C(0x586163489E047F55), UINT64_C(0x0D6098A5E991FC4C), + UINT64_C(0x47760F9899A33914), UINT64_C(0x70C8F5D45608C80E)}, + {UINT64_C(0x405F119106036DBE), UINT64_C(0xBF62589580CC0A27), + UINT64_C(0xFB8A0330389FA7BF), UINT64_C(0x22B0B9461FA0CBB4)}}, + {{UINT64_C(0x84AE19811B1E2ACD), UINT64_C(0xFA23C20563961891), + UINT64_C(0xCF4C685E742C1653), UINT64_C(0x55BFC7444D303078)}, + {UINT64_C(0xEB131CBBBA03AAE4), UINT64_C(0xF338C0DB2C5B9EAB), + UINT64_C(0xC1006396B7495209), UINT64_C(0x0FD928CFF7E6A4E6)}}, + {{UINT64_C(0xA6BAC9948633AB84), UINT64_C(0xC165BF5A75364642), + UINT64_C(0xB70BEB478C57070D), UINT64_C(0x838158A0D416322E)}, + {UINT64_C(0x501D2BFDD4957751), UINT64_C(0xF1CDDF32C23AA730), + UINT64_C(0xF64558A85458F1C6), UINT64_C(0x51B6DDE306E1209C)}}, + {{UINT64_C(0x0712C186CC31D6BE), UINT64_C(0x91C4064A33CD1D3F), + UINT64_C(0xCADAE5B0C7C91F53), UINT64_C(0x52AA408FDEB2A2EE)}, + {UINT64_C(0x058675CC202719D5), UINT64_C(0x444F99F51D087D07), + UINT64_C(0x4DB587E89D7A8AF4), UINT64_C(0x389376F5DA17095A)}}, + {{UINT64_C(0x8262D37048FED385), UINT64_C(0x3B1FB4661AE92689), + UINT64_C(0xDA6F570F24242CF4), UINT64_C(0x0532FC9E0DEAC5E9)}, + {UINT64_C(0x5E8FB74020C5BD7B), UINT64_C(0x5AE99925002624B3), + UINT64_C(0xAD44A4D57AFADC15), UINT64_C(0x6AECBC80DF409330)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 6 + * ASSERT: a = -3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(t0, X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(t1, Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(t2, Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t3, X, Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, t3, t3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t4, Y, Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, X, Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(X3, X3, t3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t2, t2, t3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, b, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Z3, Z3, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Z3, Z3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, t3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t0, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t0, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t0, t4, t4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, Z3); +} + +/*- + * 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.op3 + * https://eprint.iacr.org/2015/1060 Alg 5 + * ASSERT: a = -3 + */ +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, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t4, Y2, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, t4, Y1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, X2, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, Y3, X1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, b, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, Z1, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t2, t1, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, t1); + + /* if P is inf, throw all that away and take Q */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(R->X, nz, Q->X, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 4 + * ASSERT: a = -3 + */ +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, t4, t5; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t2, Z1, Z2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, Y1, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t5, Y2, Z2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t5, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, X1, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, X2, Z2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(X3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t2, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, t1); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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[32], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 32) 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(char out[52], const unsigned char in[32]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 51; 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(char out[257], const unsigned char in[32]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 257; 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; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32], + const unsigned char b[32], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[257] = {0}; + char bnaf[257] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 256; i >= 0; i--) { + if (!is_inf) point_double(&Q, &Q); + if ((d = bnaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(Q.Y, Q.Y); + 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.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_GostR3410_2001_CryptoPro_C_ParamSet_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_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[32], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[52] = {0}; + pt_prj_t Q, lut; + 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[51] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 50; 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_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_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[32]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[52] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 1; i >= 0; i--) { + for (j = 0; i != 1 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 27; j++) { + if (j * 2 + i > 51) continue; + d = rnaf[j * 2 + 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_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.Y, is_neg, lut.Y, out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.X, scalar[0] & 1, + R.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Y, scalar[0] & 1, + R.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Z, scalar[0] & 1, + R.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[32], unsigned char outy[32], + const unsigned char a[32], const unsigned char b[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery(P.Y, P.Y); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery(P.Y, P.Y); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[32] = {0}; + + int + point_mul_two_id_GostR3410_2001_CryptoPro_C_ParamSet( + 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[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_GostR3410_2001_CryptoPro_C_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const EC_POINT *q, + const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_GostR3410_2001_CryptoPro_C_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + 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, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, 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 8 +/* Field elements */ +typedef uint32_t fe_t[LIMB_CNT]; +typedef uint32_t limb_t; + +#define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) +#define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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: word_by_word_montgomery --static id_GostR3410_2001_CryptoPro_C_ParamSet 32 0x9B9F605F5A858107AB1EC85E6B41C8AACF846E86789051D37998F7B9022D759B */ +/* curve description: id_GostR3410_2001_CryptoPro_C_ParamSet */ +/* machine_wordsize = 32 (from "32") */ +/* requested operations: (all) */ +/* m = 0x9b9f605f5a858107ab1ec85e6b41c8aacf846e86789051d37998f7b9022d759b (from "0x9B9F605F5A858107AB1EC85E6B41C8AACF846E86789051D37998F7B9022D759B") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (m), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ +/* */ +/* Computed values: */ +/* eval z = z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1; +typedef signed char fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int1; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^32 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint64_t x1; + uint32_t x2; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x3; + x1 = ((arg1 + (uint64_t)arg2) + arg3); + x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + x3 = (fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^32 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 *out2, + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int64_t x1; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int1 x2; + uint32_t x3; + x1 = ((arg2 - (int64_t)arg1) - arg3); + x2 = (fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int1)(x1 >> 32); + x3 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + *out1 = x3; + *out2 = (fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32 is a multiplication, returning the full double-width result. + * Postconditions: + * out1 = (arg1 * arg2) mod 2^32 + * out2 = ⌊arg1 * arg2 / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0xffffffff] + * arg2: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0xffffffff] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32( + uint32_t *out1, uint32_t *out2, uint32_t arg1, uint32_t arg2) { + uint64_t x1; + uint32_t x2; + uint32_t x3; + x1 = ((uint64_t)arg1 * arg2); + x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + x3 = (uint32_t)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_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_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + uint32_t *out1, fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 arg1, + uint32_t arg2, uint32_t arg3) { + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x1; + uint32_t x2; + uint32_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_int1)(0x0 - x1) & + UINT32_C(0xffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul multiplies two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul( + uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x28; + uint32_t x29; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x30; + uint32_t x31; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x32; + uint32_t x33; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x34; + uint32_t x35; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x36; + uint32_t x37; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + uint32_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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x59; + uint32_t x60; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x61; + uint32_t x62; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x63; + uint32_t x64; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x65; + uint32_t x66; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x67; + uint32_t x68; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x69; + uint32_t x70; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x71; + uint32_t x72; + uint32_t x73; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x74; + uint32_t x75; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x76; + uint32_t x77; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x78; + uint32_t x79; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x80; + uint32_t x81; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x82; + uint32_t x83; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x84; + uint32_t x85; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x86; + uint32_t x87; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x88; + uint32_t x89; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x90; + uint32_t x91; + uint32_t x92; + uint32_t 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x108; + uint32_t x109; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x110; + uint32_t x111; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x112; + uint32_t x113; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x114; + uint32_t x115; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x116; + uint32_t x117; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x118; + uint32_t x119; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x120; + uint32_t x121; + uint32_t x122; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x123; + uint32_t x124; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x125; + uint32_t x126; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x127; + uint32_t x128; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x129; + uint32_t x130; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x131; + uint32_t x132; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x133; + uint32_t x134; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x135; + uint32_t x136; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x137; + uint32_t x138; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x139; + uint32_t x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + uint32_t x148; + uint32_t x149; + uint32_t x150; + uint32_t x151; + uint32_t x152; + uint32_t x153; + uint32_t x154; + uint32_t x155; + uint32_t x156; + uint32_t x157; + uint32_t x158; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x159; + uint32_t x160; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x161; + uint32_t x162; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x163; + uint32_t x164; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x165; + uint32_t x166; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x167; + uint32_t x168; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x169; + uint32_t x170; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x171; + uint32_t x172; + uint32_t x173; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x174; + uint32_t x175; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x176; + uint32_t x177; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x178; + uint32_t x179; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x180; + uint32_t x181; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x182; + uint32_t x183; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x184; + uint32_t x185; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x186; + uint32_t x187; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x188; + uint32_t x189; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x190; + uint32_t x191; + uint32_t x192; + uint32_t x193; + uint32_t x194; + uint32_t x195; + uint32_t x196; + uint32_t x197; + uint32_t x198; + uint32_t x199; + uint32_t x200; + uint32_t x201; + uint32_t x202; + uint32_t x203; + uint32_t x204; + uint32_t x205; + uint32_t x206; + uint32_t x207; + uint32_t x208; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x209; + uint32_t x210; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x211; + uint32_t x212; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x213; + uint32_t x214; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x215; + uint32_t x216; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x217; + uint32_t x218; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x219; + uint32_t x220; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x221; + uint32_t x222; + uint32_t x223; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x224; + uint32_t x225; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x226; + uint32_t x227; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x228; + uint32_t x229; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x230; + uint32_t x231; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x232; + uint32_t x233; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x234; + uint32_t x235; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x236; + uint32_t x237; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x238; + uint32_t x239; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x240; + uint32_t x241; + uint32_t x242; + uint32_t x243; + uint32_t x244; + uint32_t x245; + uint32_t x246; + uint32_t x247; + uint32_t x248; + uint32_t x249; + uint32_t x250; + uint32_t x251; + uint32_t x252; + uint32_t x253; + uint32_t x254; + uint32_t x255; + uint32_t x256; + uint32_t x257; + uint32_t x258; + uint32_t x259; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x260; + uint32_t x261; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x262; + uint32_t x263; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x264; + uint32_t x265; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x266; + uint32_t x267; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x268; + uint32_t x269; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x270; + uint32_t x271; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x272; + uint32_t x273; + uint32_t x274; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x275; + uint32_t x276; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x277; + uint32_t x278; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x279; + uint32_t x280; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x281; + uint32_t x282; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x283; + uint32_t x284; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x285; + uint32_t x286; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x287; + uint32_t x288; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x289; + uint32_t x290; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x291; + uint32_t x292; + uint32_t x293; + uint32_t x294; + uint32_t x295; + uint32_t x296; + uint32_t x297; + uint32_t x298; + uint32_t x299; + uint32_t x300; + uint32_t x301; + uint32_t x302; + uint32_t x303; + uint32_t x304; + uint32_t x305; + uint32_t x306; + uint32_t x307; + uint32_t x308; + uint32_t x309; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x310; + uint32_t x311; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x312; + uint32_t x313; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x314; + uint32_t x315; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x316; + uint32_t x317; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x318; + uint32_t x319; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x320; + uint32_t x321; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x322; + uint32_t x323; + uint32_t x324; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x325; + uint32_t x326; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x327; + uint32_t x328; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x329; + uint32_t x330; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x331; + uint32_t x332; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x333; + uint32_t x334; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x335; + uint32_t x336; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x337; + uint32_t x338; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x339; + uint32_t x340; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x341; + uint32_t x342; + uint32_t x343; + uint32_t x344; + uint32_t x345; + uint32_t x346; + uint32_t x347; + uint32_t x348; + uint32_t x349; + uint32_t x350; + uint32_t x351; + uint32_t x352; + uint32_t x353; + uint32_t x354; + uint32_t x355; + uint32_t x356; + uint32_t x357; + uint32_t x358; + uint32_t x359; + uint32_t x360; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x361; + uint32_t x362; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x363; + uint32_t x364; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x365; + uint32_t x366; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x367; + uint32_t x368; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x369; + uint32_t x370; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x371; + uint32_t x372; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x373; + uint32_t x374; + uint32_t x375; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x376; + uint32_t x377; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x378; + uint32_t x379; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x380; + uint32_t x381; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x382; + uint32_t x383; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x384; + uint32_t x385; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x386; + uint32_t x387; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x388; + uint32_t x389; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x390; + uint32_t x391; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x392; + uint32_t x393; + uint32_t x394; + uint32_t x395; + uint32_t x396; + uint32_t x397; + uint32_t x398; + uint32_t x399; + uint32_t x400; + uint32_t x401; + uint32_t x402; + uint32_t x403; + uint32_t x404; + uint32_t x405; + uint32_t x406; + uint32_t x407; + uint32_t x408; + uint32_t x409; + uint32_t x410; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x411; + uint32_t x412; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x413; + uint32_t x414; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x415; + uint32_t x416; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x417; + uint32_t x418; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x419; + uint32_t x420; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x421; + uint32_t x422; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x423; + uint32_t x424; + uint32_t x425; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x426; + uint32_t x427; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x428; + uint32_t x429; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x430; + uint32_t x431; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x432; + uint32_t x433; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x434; + uint32_t x435; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x436; + uint32_t x437; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x438; + uint32_t x439; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x440; + uint32_t x441; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x442; + uint32_t x443; + uint32_t x444; + uint32_t x445; + uint32_t x446; + uint32_t x447; + uint32_t x448; + uint32_t x449; + uint32_t x450; + uint32_t x451; + uint32_t x452; + uint32_t x453; + uint32_t x454; + uint32_t x455; + uint32_t x456; + uint32_t x457; + uint32_t x458; + uint32_t x459; + uint32_t x460; + uint32_t x461; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x462; + uint32_t x463; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x464; + uint32_t x465; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x466; + uint32_t x467; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x468; + uint32_t x469; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x470; + uint32_t x471; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x472; + uint32_t x473; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x474; + uint32_t x475; + uint32_t x476; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x477; + uint32_t x478; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x479; + uint32_t x480; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x481; + uint32_t x482; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x483; + uint32_t x484; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x485; + uint32_t x486; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x487; + uint32_t x488; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x489; + uint32_t x490; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x491; + uint32_t x492; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x493; + uint32_t x494; + uint32_t x495; + uint32_t x496; + uint32_t x497; + uint32_t x498; + uint32_t x499; + uint32_t x500; + uint32_t x501; + uint32_t x502; + uint32_t x503; + uint32_t x504; + uint32_t x505; + uint32_t x506; + uint32_t x507; + uint32_t x508; + uint32_t x509; + uint32_t x510; + uint32_t x511; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x512; + uint32_t x513; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x514; + uint32_t x515; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x516; + uint32_t x517; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x518; + uint32_t x519; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x520; + uint32_t x521; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x522; + uint32_t x523; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x524; + uint32_t x525; + uint32_t x526; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x527; + uint32_t x528; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x529; + uint32_t x530; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x531; + uint32_t x532; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x533; + uint32_t x534; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x535; + uint32_t x536; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x537; + uint32_t x538; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x539; + uint32_t x540; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x541; + uint32_t x542; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x543; + uint32_t x544; + uint32_t x545; + uint32_t x546; + uint32_t x547; + uint32_t x548; + uint32_t x549; + uint32_t x550; + uint32_t x551; + uint32_t x552; + uint32_t x553; + uint32_t x554; + uint32_t x555; + uint32_t x556; + uint32_t x557; + uint32_t x558; + uint32_t x559; + uint32_t x560; + uint32_t x561; + uint32_t x562; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x563; + uint32_t x564; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x565; + uint32_t x566; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x567; + uint32_t x568; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x569; + uint32_t x570; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x571; + uint32_t x572; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x573; + uint32_t x574; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x575; + uint32_t x576; + uint32_t x577; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x578; + uint32_t x579; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x580; + uint32_t x581; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x582; + uint32_t x583; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x584; + uint32_t x585; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x586; + uint32_t x587; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x588; + uint32_t x589; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x590; + uint32_t x591; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x592; + uint32_t x593; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x594; + uint32_t x595; + uint32_t x596; + uint32_t x597; + uint32_t x598; + uint32_t x599; + uint32_t x600; + uint32_t x601; + uint32_t x602; + uint32_t x603; + uint32_t x604; + uint32_t x605; + uint32_t x606; + uint32_t x607; + uint32_t x608; + uint32_t x609; + uint32_t x610; + uint32_t x611; + uint32_t x612; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x613; + uint32_t x614; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x615; + uint32_t x616; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x617; + uint32_t x618; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x619; + uint32_t x620; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x621; + uint32_t x622; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x623; + uint32_t x624; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x625; + uint32_t x626; + uint32_t x627; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x628; + uint32_t x629; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x630; + uint32_t x631; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x632; + uint32_t x633; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x634; + uint32_t x635; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x636; + uint32_t x637; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x638; + uint32_t x639; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x640; + uint32_t x641; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x642; + uint32_t x643; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x644; + uint32_t x645; + uint32_t x646; + uint32_t x647; + uint32_t x648; + uint32_t x649; + uint32_t x650; + uint32_t x651; + uint32_t x652; + uint32_t x653; + uint32_t x654; + uint32_t x655; + uint32_t x656; + uint32_t x657; + uint32_t x658; + uint32_t x659; + uint32_t x660; + uint32_t x661; + uint32_t x662; + uint32_t x663; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x664; + uint32_t x665; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x666; + uint32_t x667; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x668; + uint32_t x669; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x670; + uint32_t x671; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x672; + uint32_t x673; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x674; + uint32_t x675; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x676; + uint32_t x677; + uint32_t x678; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x679; + uint32_t x680; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x681; + uint32_t x682; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x683; + uint32_t x684; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x685; + uint32_t x686; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x687; + uint32_t x688; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x689; + uint32_t x690; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x691; + uint32_t x692; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x693; + uint32_t x694; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x695; + uint32_t x696; + uint32_t x697; + uint32_t x698; + uint32_t x699; + uint32_t x700; + uint32_t x701; + uint32_t x702; + uint32_t x703; + uint32_t x704; + uint32_t x705; + uint32_t x706; + uint32_t x707; + uint32_t x708; + uint32_t x709; + uint32_t x710; + uint32_t x711; + uint32_t x712; + uint32_t x713; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x714; + uint32_t x715; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x716; + uint32_t x717; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x718; + uint32_t x719; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x720; + uint32_t x721; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x722; + uint32_t x723; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x724; + uint32_t x725; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x726; + uint32_t x727; + uint32_t x728; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x729; + uint32_t x730; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x731; + uint32_t x732; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x733; + uint32_t x734; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x735; + uint32_t x736; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x737; + uint32_t x738; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x739; + uint32_t x740; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x741; + uint32_t x742; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x743; + uint32_t x744; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x745; + uint32_t x746; + uint32_t x747; + uint32_t x748; + uint32_t x749; + uint32_t x750; + uint32_t x751; + uint32_t x752; + uint32_t x753; + uint32_t x754; + uint32_t x755; + uint32_t x756; + uint32_t x757; + uint32_t x758; + uint32_t x759; + uint32_t x760; + uint32_t x761; + uint32_t x762; + uint32_t x763; + uint32_t x764; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x765; + uint32_t x766; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x767; + uint32_t x768; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x769; + uint32_t x770; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x771; + uint32_t x772; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x773; + uint32_t x774; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x775; + uint32_t x776; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x777; + uint32_t x778; + uint32_t x779; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x780; + uint32_t x781; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x782; + uint32_t x783; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x784; + uint32_t x785; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x786; + uint32_t x787; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x788; + uint32_t x789; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x790; + uint32_t x791; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x792; + uint32_t x793; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x794; + uint32_t x795; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x796; + uint32_t x797; + uint32_t x798; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x799; + uint32_t x800; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x801; + uint32_t x802; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x803; + uint32_t x804; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x805; + uint32_t x806; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x807; + uint32_t x808; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x809; + uint32_t x810; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x811; + uint32_t x812; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x813; + uint32_t x814; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x815; + uint32_t x816; + uint32_t x817; + uint32_t x818; + uint32_t x819; + uint32_t x820; + uint32_t x821; + uint32_t x822; + uint32_t x823; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x9, &x10, x8, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x11, &x12, x8, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x13, &x14, x8, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x15, &x16, x8, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x17, &x18, x8, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x19, &x20, x8, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x21, &x22, x8, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x23, &x24, x8, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x25, &x26, 0x0, + x24, x21); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x27, &x28, x26, + x22, x19); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x29, &x30, x28, + x20, x17); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x31, &x32, x30, + x18, x15); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x33, &x34, x32, + x16, x13); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x35, &x36, x34, + x14, x11); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x37, &x38, x36, + x12, x9); + x39 = (x38 + x10); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x40, &x41, x23, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x42, &x43, x40, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x44, &x45, x40, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x46, &x47, x40, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x48, &x49, x40, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x50, &x51, x40, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x52, &x53, x40, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x54, &x55, x40, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x56, &x57, x40, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x58, &x59, 0x0, + x57, x54); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x60, &x61, x59, + x55, x52); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x62, &x63, x61, + x53, x50); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x64, &x65, x63, + x51, x48); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x66, &x67, x65, + x49, x46); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x68, &x69, x67, + x47, x44); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x70, &x71, x69, + x45, x42); + x72 = (x71 + x43); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x73, &x74, 0x0, + x23, x56); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x75, &x76, x74, + x25, x58); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x77, &x78, x76, + x27, x60); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x79, &x80, x78, + x29, x62); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x81, &x82, x80, + x31, x64); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x83, &x84, x82, + x33, x66); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x85, &x86, x84, + x35, x68); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x87, &x88, x86, + x37, x70); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x89, &x90, x88, + x39, x72); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x91, &x92, x1, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x93, &x94, x1, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x95, &x96, x1, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x97, &x98, x1, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x99, &x100, x1, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x101, &x102, x1, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x103, &x104, x1, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x105, &x106, x1, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x107, &x108, 0x0, + x106, x103); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x109, &x110, + x108, x104, x101); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x111, &x112, + x110, x102, x99); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x113, &x114, + x112, x100, x97); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x115, &x116, + x114, x98, x95); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x117, &x118, + x116, x96, x93); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x119, &x120, + x118, x94, x91); + x121 = (x120 + x92); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x122, &x123, 0x0, + x75, x105); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x124, &x125, + x123, x77, x107); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x126, &x127, + x125, x79, x109); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x128, &x129, + x127, x81, x111); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x130, &x131, + x129, x83, x113); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x132, &x133, + x131, x85, x115); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x134, &x135, + x133, x87, x117); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x136, &x137, + x135, x89, x119); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x138, &x139, + x137, x90, x121); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x140, &x141, x122, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x142, &x143, x140, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x144, &x145, x140, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x146, &x147, x140, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x148, &x149, x140, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x150, &x151, x140, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x152, &x153, x140, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x154, &x155, x140, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x156, &x157, x140, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x158, &x159, 0x0, + x157, x154); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x160, &x161, + x159, x155, x152); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x162, &x163, + x161, x153, x150); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x164, &x165, + x163, x151, x148); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x166, &x167, + x165, x149, x146); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x168, &x169, + x167, x147, x144); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x170, &x171, + x169, x145, x142); + x172 = (x171 + x143); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x173, &x174, 0x0, + x122, x156); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x175, &x176, + x174, x124, x158); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x177, &x178, + x176, x126, x160); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x179, &x180, + x178, x128, x162); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x181, &x182, + x180, x130, x164); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x183, &x184, + x182, x132, x166); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x185, &x186, + x184, x134, x168); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x187, &x188, + x186, x136, x170); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x189, &x190, + x188, x138, x172); + x191 = ((uint32_t)x190 + x139); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x192, &x193, x2, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x194, &x195, x2, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x196, &x197, x2, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x198, &x199, x2, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x200, &x201, x2, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x202, &x203, x2, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x204, &x205, x2, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x206, &x207, x2, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x208, &x209, 0x0, + x207, x204); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x210, &x211, + x209, x205, x202); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x212, &x213, + x211, x203, x200); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x214, &x215, + x213, x201, x198); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x216, &x217, + x215, x199, x196); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x218, &x219, + x217, x197, x194); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x220, &x221, + x219, x195, x192); + x222 = (x221 + x193); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x223, &x224, 0x0, + x175, x206); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x225, &x226, + x224, x177, x208); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x227, &x228, + x226, x179, x210); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x229, &x230, + x228, x181, x212); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x231, &x232, + x230, x183, x214); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x233, &x234, + x232, x185, x216); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x235, &x236, + x234, x187, x218); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x237, &x238, + x236, x189, x220); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x239, &x240, + x238, x191, x222); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x241, &x242, x223, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x243, &x244, x241, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x245, &x246, x241, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x247, &x248, x241, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x249, &x250, x241, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x251, &x252, x241, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x253, &x254, x241, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x255, &x256, x241, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x257, &x258, x241, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x259, &x260, 0x0, + x258, x255); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x261, &x262, + x260, x256, x253); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x263, &x264, + x262, x254, x251); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x265, &x266, + x264, x252, x249); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x267, &x268, + x266, x250, x247); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x269, &x270, + x268, x248, x245); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x271, &x272, + x270, x246, x243); + x273 = (x272 + x244); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x274, &x275, 0x0, + x223, x257); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x276, &x277, + x275, x225, x259); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x278, &x279, + x277, x227, x261); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x280, &x281, + x279, x229, x263); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x282, &x283, + x281, x231, x265); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x284, &x285, + x283, x233, x267); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x286, &x287, + x285, x235, x269); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x288, &x289, + x287, x237, x271); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x290, &x291, + x289, x239, x273); + x292 = ((uint32_t)x291 + x240); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x293, &x294, x3, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x295, &x296, x3, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x297, &x298, x3, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x299, &x300, x3, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x301, &x302, x3, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x303, &x304, x3, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x305, &x306, x3, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x307, &x308, x3, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x309, &x310, 0x0, + x308, x305); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x311, &x312, + x310, x306, x303); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x313, &x314, + x312, x304, x301); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x315, &x316, + x314, x302, x299); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x317, &x318, + x316, x300, x297); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x319, &x320, + x318, x298, x295); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x321, &x322, + x320, x296, x293); + x323 = (x322 + x294); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x324, &x325, 0x0, + x276, x307); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x326, &x327, + x325, x278, x309); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x328, &x329, + x327, x280, x311); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x330, &x331, + x329, x282, x313); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x332, &x333, + x331, x284, x315); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x334, &x335, + x333, x286, x317); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x336, &x337, + x335, x288, x319); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x338, &x339, + x337, x290, x321); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x340, &x341, + x339, x292, x323); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x342, &x343, x324, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x344, &x345, x342, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x346, &x347, x342, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x348, &x349, x342, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x350, &x351, x342, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x352, &x353, x342, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x354, &x355, x342, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x356, &x357, x342, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x358, &x359, x342, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x360, &x361, 0x0, + x359, x356); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x362, &x363, + x361, x357, x354); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x364, &x365, + x363, x355, x352); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x366, &x367, + x365, x353, x350); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x368, &x369, + x367, x351, x348); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x370, &x371, + x369, x349, x346); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x372, &x373, + x371, x347, x344); + x374 = (x373 + x345); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x375, &x376, 0x0, + x324, x358); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x377, &x378, + x376, x326, x360); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x379, &x380, + x378, x328, x362); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x381, &x382, + x380, x330, x364); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x383, &x384, + x382, x332, x366); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x385, &x386, + x384, x334, x368); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x387, &x388, + x386, x336, x370); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x389, &x390, + x388, x338, x372); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x391, &x392, + x390, x340, x374); + x393 = ((uint32_t)x392 + x341); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x394, &x395, x4, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x396, &x397, x4, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x398, &x399, x4, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x400, &x401, x4, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x402, &x403, x4, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x404, &x405, x4, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x406, &x407, x4, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x408, &x409, x4, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x410, &x411, 0x0, + x409, x406); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x412, &x413, + x411, x407, x404); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x414, &x415, + x413, x405, x402); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x416, &x417, + x415, x403, x400); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x418, &x419, + x417, x401, x398); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x420, &x421, + x419, x399, x396); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x422, &x423, + x421, x397, x394); + x424 = (x423 + x395); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x425, &x426, 0x0, + x377, x408); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x427, &x428, + x426, x379, x410); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x429, &x430, + x428, x381, x412); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x431, &x432, + x430, x383, x414); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x433, &x434, + x432, x385, x416); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x435, &x436, + x434, x387, x418); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x437, &x438, + x436, x389, x420); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x439, &x440, + x438, x391, x422); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x441, &x442, + x440, x393, x424); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x443, &x444, x425, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x445, &x446, x443, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x447, &x448, x443, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x449, &x450, x443, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x451, &x452, x443, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x453, &x454, x443, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x455, &x456, x443, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x457, &x458, x443, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x459, &x460, x443, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x461, &x462, 0x0, + x460, x457); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x463, &x464, + x462, x458, x455); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x465, &x466, + x464, x456, x453); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x467, &x468, + x466, x454, x451); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x469, &x470, + x468, x452, x449); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x471, &x472, + x470, x450, x447); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x473, &x474, + x472, x448, x445); + x475 = (x474 + x446); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x476, &x477, 0x0, + x425, x459); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x478, &x479, + x477, x427, x461); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x480, &x481, + x479, x429, x463); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x482, &x483, + x481, x431, x465); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x484, &x485, + x483, x433, x467); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x486, &x487, + x485, x435, x469); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x488, &x489, + x487, x437, x471); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x490, &x491, + x489, x439, x473); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x492, &x493, + x491, x441, x475); + x494 = ((uint32_t)x493 + x442); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x495, &x496, x5, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x497, &x498, x5, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x499, &x500, x5, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x501, &x502, x5, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x503, &x504, x5, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x505, &x506, x5, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x507, &x508, x5, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x509, &x510, x5, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x511, &x512, 0x0, + x510, x507); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x513, &x514, + x512, x508, x505); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x515, &x516, + x514, x506, x503); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x517, &x518, + x516, x504, x501); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x519, &x520, + x518, x502, x499); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x521, &x522, + x520, x500, x497); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x523, &x524, + x522, x498, x495); + x525 = (x524 + x496); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x526, &x527, 0x0, + x478, x509); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x528, &x529, + x527, x480, x511); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x530, &x531, + x529, x482, x513); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x532, &x533, + x531, x484, x515); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x534, &x535, + x533, x486, x517); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x536, &x537, + x535, x488, x519); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x538, &x539, + x537, x490, x521); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x540, &x541, + x539, x492, x523); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x542, &x543, + x541, x494, x525); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x544, &x545, x526, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x546, &x547, x544, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x548, &x549, x544, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x550, &x551, x544, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x552, &x553, x544, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x554, &x555, x544, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x556, &x557, x544, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x558, &x559, x544, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x560, &x561, x544, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x562, &x563, 0x0, + x561, x558); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x564, &x565, + x563, x559, x556); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x566, &x567, + x565, x557, x554); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x568, &x569, + x567, x555, x552); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x570, &x571, + x569, x553, x550); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x572, &x573, + x571, x551, x548); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x574, &x575, + x573, x549, x546); + x576 = (x575 + x547); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x577, &x578, 0x0, + x526, x560); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x579, &x580, + x578, x528, x562); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x581, &x582, + x580, x530, x564); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x583, &x584, + x582, x532, x566); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x585, &x586, + x584, x534, x568); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x587, &x588, + x586, x536, x570); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x589, &x590, + x588, x538, x572); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x591, &x592, + x590, x540, x574); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x593, &x594, + x592, x542, x576); + x595 = ((uint32_t)x594 + x543); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x596, &x597, x6, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x598, &x599, x6, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x600, &x601, x6, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x602, &x603, x6, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x604, &x605, x6, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x606, &x607, x6, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x608, &x609, x6, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x610, &x611, x6, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x612, &x613, 0x0, + x611, x608); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x614, &x615, + x613, x609, x606); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x616, &x617, + x615, x607, x604); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x618, &x619, + x617, x605, x602); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x620, &x621, + x619, x603, x600); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x622, &x623, + x621, x601, x598); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x624, &x625, + x623, x599, x596); + x626 = (x625 + x597); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x627, &x628, 0x0, + x579, x610); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x629, &x630, + x628, x581, x612); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x631, &x632, + x630, x583, x614); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x633, &x634, + x632, x585, x616); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x635, &x636, + x634, x587, x618); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x637, &x638, + x636, x589, x620); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x639, &x640, + x638, x591, x622); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x641, &x642, + x640, x593, x624); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x643, &x644, + x642, x595, x626); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x645, &x646, x627, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x647, &x648, x645, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x649, &x650, x645, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x651, &x652, x645, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x653, &x654, x645, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x655, &x656, x645, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x657, &x658, x645, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x659, &x660, x645, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x661, &x662, x645, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x663, &x664, 0x0, + x662, x659); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x665, &x666, + x664, x660, x657); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x667, &x668, + x666, x658, x655); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x669, &x670, + x668, x656, x653); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x671, &x672, + x670, x654, x651); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x673, &x674, + x672, x652, x649); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x675, &x676, + x674, x650, x647); + x677 = (x676 + x648); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x678, &x679, 0x0, + x627, x661); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x680, &x681, + x679, x629, x663); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x682, &x683, + x681, x631, x665); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x684, &x685, + x683, x633, x667); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x686, &x687, + x685, x635, x669); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x688, &x689, + x687, x637, x671); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x690, &x691, + x689, x639, x673); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x692, &x693, + x691, x641, x675); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x694, &x695, + x693, x643, x677); + x696 = ((uint32_t)x695 + x644); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x697, &x698, x7, + (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x699, &x700, x7, + (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x701, &x702, x7, + (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x703, &x704, x7, + (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x705, &x706, x7, + (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x707, &x708, x7, + (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x709, &x710, x7, + (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x711, &x712, x7, + (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x713, &x714, 0x0, + x712, x709); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x715, &x716, + x714, x710, x707); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x717, &x718, + x716, x708, x705); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x719, &x720, + x718, x706, x703); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x721, &x722, + x720, x704, x701); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x723, &x724, + x722, x702, x699); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x725, &x726, + x724, x700, x697); + x727 = (x726 + x698); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x728, &x729, 0x0, + x680, x711); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x730, &x731, + x729, x682, x713); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x732, &x733, + x731, x684, x715); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x734, &x735, + x733, x686, x717); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x736, &x737, + x735, x688, x719); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x738, &x739, + x737, x690, x721); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x740, &x741, + x739, x692, x723); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x742, &x743, + x741, x694, x725); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x744, &x745, + x743, x696, x727); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x746, &x747, x728, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x748, &x749, x746, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x750, &x751, x746, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x752, &x753, x746, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x754, &x755, x746, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x756, &x757, x746, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x758, &x759, x746, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x760, &x761, x746, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x762, &x763, x746, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x764, &x765, 0x0, + x763, x760); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x766, &x767, + x765, x761, x758); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x768, &x769, + x767, x759, x756); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x770, &x771, + x769, x757, x754); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x772, &x773, + x771, x755, x752); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x774, &x775, + x773, x753, x750); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x776, &x777, + x775, x751, x748); + x778 = (x777 + x749); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x779, &x780, 0x0, + x728, x762); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x781, &x782, + x780, x730, x764); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x783, &x784, + x782, x732, x766); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x785, &x786, + x784, x734, x768); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x787, &x788, + x786, x736, x770); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x789, &x790, + x788, x738, x772); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x791, &x792, + x790, x740, x774); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x793, &x794, + x792, x742, x776); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x795, &x796, + x794, x744, x778); + x797 = ((uint32_t)x796 + x745); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x798, &x799, 0x0, x781, UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x800, &x801, x799, x783, UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x802, &x803, x801, x785, UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x804, &x805, x803, x787, UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x806, &x807, x805, x789, UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x808, &x809, x807, x791, UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x810, &x811, x809, x793, UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x812, &x813, x811, x795, UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x814, &x815, + x813, x797, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x816, x815, x798, + x781); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x817, x815, x800, + x783); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x818, x815, x802, + x785); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x819, x815, x804, + x787); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x820, x815, x806, + x789); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x821, x815, x808, + x791); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x822, x815, x810, + x793); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x823, x815, x812, + x795); + out1[0] = x816; + out1[1] = x817; + out1[2] = x818; + out1[3] = x819; + out1[4] = x820; + out1[5] = x821; + out1[6] = x822; + out1[7] = x823; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square squares a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square( + uint32_t out1[8], const uint32_t arg1[8]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x28; + uint32_t x29; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x30; + uint32_t x31; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x32; + uint32_t x33; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x34; + uint32_t x35; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x36; + uint32_t x37; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + uint32_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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x59; + uint32_t x60; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x61; + uint32_t x62; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x63; + uint32_t x64; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x65; + uint32_t x66; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x67; + uint32_t x68; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x69; + uint32_t x70; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x71; + uint32_t x72; + uint32_t x73; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x74; + uint32_t x75; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x76; + uint32_t x77; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x78; + uint32_t x79; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x80; + uint32_t x81; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x82; + uint32_t x83; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x84; + uint32_t x85; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x86; + uint32_t x87; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x88; + uint32_t x89; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x90; + uint32_t x91; + uint32_t x92; + uint32_t 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x108; + uint32_t x109; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x110; + uint32_t x111; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x112; + uint32_t x113; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x114; + uint32_t x115; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x116; + uint32_t x117; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x118; + uint32_t x119; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x120; + uint32_t x121; + uint32_t x122; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x123; + uint32_t x124; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x125; + uint32_t x126; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x127; + uint32_t x128; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x129; + uint32_t x130; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x131; + uint32_t x132; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x133; + uint32_t x134; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x135; + uint32_t x136; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x137; + uint32_t x138; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x139; + uint32_t x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + uint32_t x148; + uint32_t x149; + uint32_t x150; + uint32_t x151; + uint32_t x152; + uint32_t x153; + uint32_t x154; + uint32_t x155; + uint32_t x156; + uint32_t x157; + uint32_t x158; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x159; + uint32_t x160; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x161; + uint32_t x162; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x163; + uint32_t x164; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x165; + uint32_t x166; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x167; + uint32_t x168; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x169; + uint32_t x170; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x171; + uint32_t x172; + uint32_t x173; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x174; + uint32_t x175; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x176; + uint32_t x177; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x178; + uint32_t x179; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x180; + uint32_t x181; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x182; + uint32_t x183; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x184; + uint32_t x185; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x186; + uint32_t x187; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x188; + uint32_t x189; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x190; + uint32_t x191; + uint32_t x192; + uint32_t x193; + uint32_t x194; + uint32_t x195; + uint32_t x196; + uint32_t x197; + uint32_t x198; + uint32_t x199; + uint32_t x200; + uint32_t x201; + uint32_t x202; + uint32_t x203; + uint32_t x204; + uint32_t x205; + uint32_t x206; + uint32_t x207; + uint32_t x208; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x209; + uint32_t x210; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x211; + uint32_t x212; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x213; + uint32_t x214; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x215; + uint32_t x216; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x217; + uint32_t x218; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x219; + uint32_t x220; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x221; + uint32_t x222; + uint32_t x223; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x224; + uint32_t x225; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x226; + uint32_t x227; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x228; + uint32_t x229; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x230; + uint32_t x231; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x232; + uint32_t x233; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x234; + uint32_t x235; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x236; + uint32_t x237; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x238; + uint32_t x239; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x240; + uint32_t x241; + uint32_t x242; + uint32_t x243; + uint32_t x244; + uint32_t x245; + uint32_t x246; + uint32_t x247; + uint32_t x248; + uint32_t x249; + uint32_t x250; + uint32_t x251; + uint32_t x252; + uint32_t x253; + uint32_t x254; + uint32_t x255; + uint32_t x256; + uint32_t x257; + uint32_t x258; + uint32_t x259; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x260; + uint32_t x261; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x262; + uint32_t x263; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x264; + uint32_t x265; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x266; + uint32_t x267; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x268; + uint32_t x269; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x270; + uint32_t x271; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x272; + uint32_t x273; + uint32_t x274; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x275; + uint32_t x276; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x277; + uint32_t x278; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x279; + uint32_t x280; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x281; + uint32_t x282; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x283; + uint32_t x284; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x285; + uint32_t x286; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x287; + uint32_t x288; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x289; + uint32_t x290; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x291; + uint32_t x292; + uint32_t x293; + uint32_t x294; + uint32_t x295; + uint32_t x296; + uint32_t x297; + uint32_t x298; + uint32_t x299; + uint32_t x300; + uint32_t x301; + uint32_t x302; + uint32_t x303; + uint32_t x304; + uint32_t x305; + uint32_t x306; + uint32_t x307; + uint32_t x308; + uint32_t x309; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x310; + uint32_t x311; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x312; + uint32_t x313; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x314; + uint32_t x315; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x316; + uint32_t x317; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x318; + uint32_t x319; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x320; + uint32_t x321; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x322; + uint32_t x323; + uint32_t x324; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x325; + uint32_t x326; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x327; + uint32_t x328; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x329; + uint32_t x330; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x331; + uint32_t x332; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x333; + uint32_t x334; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x335; + uint32_t x336; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x337; + uint32_t x338; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x339; + uint32_t x340; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x341; + uint32_t x342; + uint32_t x343; + uint32_t x344; + uint32_t x345; + uint32_t x346; + uint32_t x347; + uint32_t x348; + uint32_t x349; + uint32_t x350; + uint32_t x351; + uint32_t x352; + uint32_t x353; + uint32_t x354; + uint32_t x355; + uint32_t x356; + uint32_t x357; + uint32_t x358; + uint32_t x359; + uint32_t x360; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x361; + uint32_t x362; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x363; + uint32_t x364; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x365; + uint32_t x366; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x367; + uint32_t x368; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x369; + uint32_t x370; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x371; + uint32_t x372; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x373; + uint32_t x374; + uint32_t x375; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x376; + uint32_t x377; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x378; + uint32_t x379; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x380; + uint32_t x381; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x382; + uint32_t x383; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x384; + uint32_t x385; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x386; + uint32_t x387; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x388; + uint32_t x389; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x390; + uint32_t x391; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x392; + uint32_t x393; + uint32_t x394; + uint32_t x395; + uint32_t x396; + uint32_t x397; + uint32_t x398; + uint32_t x399; + uint32_t x400; + uint32_t x401; + uint32_t x402; + uint32_t x403; + uint32_t x404; + uint32_t x405; + uint32_t x406; + uint32_t x407; + uint32_t x408; + uint32_t x409; + uint32_t x410; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x411; + uint32_t x412; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x413; + uint32_t x414; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x415; + uint32_t x416; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x417; + uint32_t x418; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x419; + uint32_t x420; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x421; + uint32_t x422; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x423; + uint32_t x424; + uint32_t x425; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x426; + uint32_t x427; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x428; + uint32_t x429; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x430; + uint32_t x431; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x432; + uint32_t x433; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x434; + uint32_t x435; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x436; + uint32_t x437; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x438; + uint32_t x439; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x440; + uint32_t x441; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x442; + uint32_t x443; + uint32_t x444; + uint32_t x445; + uint32_t x446; + uint32_t x447; + uint32_t x448; + uint32_t x449; + uint32_t x450; + uint32_t x451; + uint32_t x452; + uint32_t x453; + uint32_t x454; + uint32_t x455; + uint32_t x456; + uint32_t x457; + uint32_t x458; + uint32_t x459; + uint32_t x460; + uint32_t x461; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x462; + uint32_t x463; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x464; + uint32_t x465; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x466; + uint32_t x467; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x468; + uint32_t x469; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x470; + uint32_t x471; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x472; + uint32_t x473; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x474; + uint32_t x475; + uint32_t x476; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x477; + uint32_t x478; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x479; + uint32_t x480; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x481; + uint32_t x482; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x483; + uint32_t x484; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x485; + uint32_t x486; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x487; + uint32_t x488; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x489; + uint32_t x490; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x491; + uint32_t x492; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x493; + uint32_t x494; + uint32_t x495; + uint32_t x496; + uint32_t x497; + uint32_t x498; + uint32_t x499; + uint32_t x500; + uint32_t x501; + uint32_t x502; + uint32_t x503; + uint32_t x504; + uint32_t x505; + uint32_t x506; + uint32_t x507; + uint32_t x508; + uint32_t x509; + uint32_t x510; + uint32_t x511; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x512; + uint32_t x513; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x514; + uint32_t x515; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x516; + uint32_t x517; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x518; + uint32_t x519; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x520; + uint32_t x521; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x522; + uint32_t x523; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x524; + uint32_t x525; + uint32_t x526; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x527; + uint32_t x528; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x529; + uint32_t x530; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x531; + uint32_t x532; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x533; + uint32_t x534; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x535; + uint32_t x536; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x537; + uint32_t x538; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x539; + uint32_t x540; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x541; + uint32_t x542; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x543; + uint32_t x544; + uint32_t x545; + uint32_t x546; + uint32_t x547; + uint32_t x548; + uint32_t x549; + uint32_t x550; + uint32_t x551; + uint32_t x552; + uint32_t x553; + uint32_t x554; + uint32_t x555; + uint32_t x556; + uint32_t x557; + uint32_t x558; + uint32_t x559; + uint32_t x560; + uint32_t x561; + uint32_t x562; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x563; + uint32_t x564; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x565; + uint32_t x566; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x567; + uint32_t x568; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x569; + uint32_t x570; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x571; + uint32_t x572; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x573; + uint32_t x574; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x575; + uint32_t x576; + uint32_t x577; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x578; + uint32_t x579; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x580; + uint32_t x581; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x582; + uint32_t x583; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x584; + uint32_t x585; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x586; + uint32_t x587; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x588; + uint32_t x589; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x590; + uint32_t x591; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x592; + uint32_t x593; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x594; + uint32_t x595; + uint32_t x596; + uint32_t x597; + uint32_t x598; + uint32_t x599; + uint32_t x600; + uint32_t x601; + uint32_t x602; + uint32_t x603; + uint32_t x604; + uint32_t x605; + uint32_t x606; + uint32_t x607; + uint32_t x608; + uint32_t x609; + uint32_t x610; + uint32_t x611; + uint32_t x612; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x613; + uint32_t x614; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x615; + uint32_t x616; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x617; + uint32_t x618; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x619; + uint32_t x620; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x621; + uint32_t x622; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x623; + uint32_t x624; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x625; + uint32_t x626; + uint32_t x627; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x628; + uint32_t x629; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x630; + uint32_t x631; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x632; + uint32_t x633; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x634; + uint32_t x635; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x636; + uint32_t x637; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x638; + uint32_t x639; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x640; + uint32_t x641; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x642; + uint32_t x643; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x644; + uint32_t x645; + uint32_t x646; + uint32_t x647; + uint32_t x648; + uint32_t x649; + uint32_t x650; + uint32_t x651; + uint32_t x652; + uint32_t x653; + uint32_t x654; + uint32_t x655; + uint32_t x656; + uint32_t x657; + uint32_t x658; + uint32_t x659; + uint32_t x660; + uint32_t x661; + uint32_t x662; + uint32_t x663; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x664; + uint32_t x665; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x666; + uint32_t x667; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x668; + uint32_t x669; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x670; + uint32_t x671; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x672; + uint32_t x673; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x674; + uint32_t x675; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x676; + uint32_t x677; + uint32_t x678; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x679; + uint32_t x680; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x681; + uint32_t x682; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x683; + uint32_t x684; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x685; + uint32_t x686; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x687; + uint32_t x688; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x689; + uint32_t x690; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x691; + uint32_t x692; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x693; + uint32_t x694; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x695; + uint32_t x696; + uint32_t x697; + uint32_t x698; + uint32_t x699; + uint32_t x700; + uint32_t x701; + uint32_t x702; + uint32_t x703; + uint32_t x704; + uint32_t x705; + uint32_t x706; + uint32_t x707; + uint32_t x708; + uint32_t x709; + uint32_t x710; + uint32_t x711; + uint32_t x712; + uint32_t x713; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x714; + uint32_t x715; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x716; + uint32_t x717; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x718; + uint32_t x719; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x720; + uint32_t x721; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x722; + uint32_t x723; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x724; + uint32_t x725; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x726; + uint32_t x727; + uint32_t x728; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x729; + uint32_t x730; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x731; + uint32_t x732; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x733; + uint32_t x734; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x735; + uint32_t x736; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x737; + uint32_t x738; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x739; + uint32_t x740; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x741; + uint32_t x742; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x743; + uint32_t x744; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x745; + uint32_t x746; + uint32_t x747; + uint32_t x748; + uint32_t x749; + uint32_t x750; + uint32_t x751; + uint32_t x752; + uint32_t x753; + uint32_t x754; + uint32_t x755; + uint32_t x756; + uint32_t x757; + uint32_t x758; + uint32_t x759; + uint32_t x760; + uint32_t x761; + uint32_t x762; + uint32_t x763; + uint32_t x764; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x765; + uint32_t x766; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x767; + uint32_t x768; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x769; + uint32_t x770; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x771; + uint32_t x772; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x773; + uint32_t x774; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x775; + uint32_t x776; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x777; + uint32_t x778; + uint32_t x779; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x780; + uint32_t x781; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x782; + uint32_t x783; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x784; + uint32_t x785; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x786; + uint32_t x787; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x788; + uint32_t x789; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x790; + uint32_t x791; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x792; + uint32_t x793; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x794; + uint32_t x795; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x796; + uint32_t x797; + uint32_t x798; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x799; + uint32_t x800; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x801; + uint32_t x802; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x803; + uint32_t x804; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x805; + uint32_t x806; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x807; + uint32_t x808; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x809; + uint32_t x810; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x811; + uint32_t x812; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x813; + uint32_t x814; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x815; + uint32_t x816; + uint32_t x817; + uint32_t x818; + uint32_t x819; + uint32_t x820; + uint32_t x821; + uint32_t x822; + uint32_t x823; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x9, &x10, x8, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x11, &x12, x8, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x13, &x14, x8, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x15, &x16, x8, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x17, &x18, x8, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x19, &x20, x8, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x21, &x22, x8, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x23, &x24, x8, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x25, &x26, 0x0, + x24, x21); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x27, &x28, x26, + x22, x19); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x29, &x30, x28, + x20, x17); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x31, &x32, x30, + x18, x15); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x33, &x34, x32, + x16, x13); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x35, &x36, x34, + x14, x11); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x37, &x38, x36, + x12, x9); + x39 = (x38 + x10); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x40, &x41, x23, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x42, &x43, x40, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x44, &x45, x40, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x46, &x47, x40, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x48, &x49, x40, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x50, &x51, x40, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x52, &x53, x40, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x54, &x55, x40, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x56, &x57, x40, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x58, &x59, 0x0, + x57, x54); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x60, &x61, x59, + x55, x52); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x62, &x63, x61, + x53, x50); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x64, &x65, x63, + x51, x48); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x66, &x67, x65, + x49, x46); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x68, &x69, x67, + x47, x44); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x70, &x71, x69, + x45, x42); + x72 = (x71 + x43); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x73, &x74, 0x0, + x23, x56); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x75, &x76, x74, + x25, x58); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x77, &x78, x76, + x27, x60); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x79, &x80, x78, + x29, x62); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x81, &x82, x80, + x31, x64); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x83, &x84, x82, + x33, x66); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x85, &x86, x84, + x35, x68); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x87, &x88, x86, + x37, x70); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x89, &x90, x88, + x39, x72); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x91, &x92, x1, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x93, &x94, x1, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x95, &x96, x1, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x97, &x98, x1, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x99, &x100, x1, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x101, &x102, x1, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x103, &x104, x1, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x105, &x106, x1, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x107, &x108, 0x0, + x106, x103); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x109, &x110, + x108, x104, x101); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x111, &x112, + x110, x102, x99); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x113, &x114, + x112, x100, x97); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x115, &x116, + x114, x98, x95); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x117, &x118, + x116, x96, x93); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x119, &x120, + x118, x94, x91); + x121 = (x120 + x92); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x122, &x123, 0x0, + x75, x105); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x124, &x125, + x123, x77, x107); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x126, &x127, + x125, x79, x109); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x128, &x129, + x127, x81, x111); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x130, &x131, + x129, x83, x113); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x132, &x133, + x131, x85, x115); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x134, &x135, + x133, x87, x117); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x136, &x137, + x135, x89, x119); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x138, &x139, + x137, x90, x121); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x140, &x141, x122, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x142, &x143, x140, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x144, &x145, x140, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x146, &x147, x140, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x148, &x149, x140, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x150, &x151, x140, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x152, &x153, x140, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x154, &x155, x140, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x156, &x157, x140, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x158, &x159, 0x0, + x157, x154); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x160, &x161, + x159, x155, x152); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x162, &x163, + x161, x153, x150); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x164, &x165, + x163, x151, x148); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x166, &x167, + x165, x149, x146); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x168, &x169, + x167, x147, x144); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x170, &x171, + x169, x145, x142); + x172 = (x171 + x143); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x173, &x174, 0x0, + x122, x156); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x175, &x176, + x174, x124, x158); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x177, &x178, + x176, x126, x160); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x179, &x180, + x178, x128, x162); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x181, &x182, + x180, x130, x164); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x183, &x184, + x182, x132, x166); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x185, &x186, + x184, x134, x168); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x187, &x188, + x186, x136, x170); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x189, &x190, + x188, x138, x172); + x191 = ((uint32_t)x190 + x139); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x192, &x193, x2, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x194, &x195, x2, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x196, &x197, x2, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x198, &x199, x2, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x200, &x201, x2, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x202, &x203, x2, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x204, &x205, x2, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x206, &x207, x2, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x208, &x209, 0x0, + x207, x204); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x210, &x211, + x209, x205, x202); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x212, &x213, + x211, x203, x200); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x214, &x215, + x213, x201, x198); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x216, &x217, + x215, x199, x196); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x218, &x219, + x217, x197, x194); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x220, &x221, + x219, x195, x192); + x222 = (x221 + x193); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x223, &x224, 0x0, + x175, x206); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x225, &x226, + x224, x177, x208); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x227, &x228, + x226, x179, x210); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x229, &x230, + x228, x181, x212); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x231, &x232, + x230, x183, x214); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x233, &x234, + x232, x185, x216); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x235, &x236, + x234, x187, x218); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x237, &x238, + x236, x189, x220); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x239, &x240, + x238, x191, x222); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x241, &x242, x223, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x243, &x244, x241, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x245, &x246, x241, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x247, &x248, x241, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x249, &x250, x241, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x251, &x252, x241, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x253, &x254, x241, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x255, &x256, x241, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x257, &x258, x241, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x259, &x260, 0x0, + x258, x255); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x261, &x262, + x260, x256, x253); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x263, &x264, + x262, x254, x251); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x265, &x266, + x264, x252, x249); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x267, &x268, + x266, x250, x247); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x269, &x270, + x268, x248, x245); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x271, &x272, + x270, x246, x243); + x273 = (x272 + x244); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x274, &x275, 0x0, + x223, x257); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x276, &x277, + x275, x225, x259); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x278, &x279, + x277, x227, x261); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x280, &x281, + x279, x229, x263); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x282, &x283, + x281, x231, x265); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x284, &x285, + x283, x233, x267); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x286, &x287, + x285, x235, x269); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x288, &x289, + x287, x237, x271); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x290, &x291, + x289, x239, x273); + x292 = ((uint32_t)x291 + x240); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x293, &x294, x3, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x295, &x296, x3, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x297, &x298, x3, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x299, &x300, x3, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x301, &x302, x3, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x303, &x304, x3, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x305, &x306, x3, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x307, &x308, x3, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x309, &x310, 0x0, + x308, x305); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x311, &x312, + x310, x306, x303); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x313, &x314, + x312, x304, x301); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x315, &x316, + x314, x302, x299); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x317, &x318, + x316, x300, x297); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x319, &x320, + x318, x298, x295); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x321, &x322, + x320, x296, x293); + x323 = (x322 + x294); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x324, &x325, 0x0, + x276, x307); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x326, &x327, + x325, x278, x309); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x328, &x329, + x327, x280, x311); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x330, &x331, + x329, x282, x313); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x332, &x333, + x331, x284, x315); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x334, &x335, + x333, x286, x317); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x336, &x337, + x335, x288, x319); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x338, &x339, + x337, x290, x321); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x340, &x341, + x339, x292, x323); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x342, &x343, x324, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x344, &x345, x342, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x346, &x347, x342, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x348, &x349, x342, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x350, &x351, x342, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x352, &x353, x342, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x354, &x355, x342, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x356, &x357, x342, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x358, &x359, x342, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x360, &x361, 0x0, + x359, x356); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x362, &x363, + x361, x357, x354); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x364, &x365, + x363, x355, x352); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x366, &x367, + x365, x353, x350); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x368, &x369, + x367, x351, x348); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x370, &x371, + x369, x349, x346); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x372, &x373, + x371, x347, x344); + x374 = (x373 + x345); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x375, &x376, 0x0, + x324, x358); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x377, &x378, + x376, x326, x360); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x379, &x380, + x378, x328, x362); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x381, &x382, + x380, x330, x364); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x383, &x384, + x382, x332, x366); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x385, &x386, + x384, x334, x368); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x387, &x388, + x386, x336, x370); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x389, &x390, + x388, x338, x372); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x391, &x392, + x390, x340, x374); + x393 = ((uint32_t)x392 + x341); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x394, &x395, x4, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x396, &x397, x4, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x398, &x399, x4, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x400, &x401, x4, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x402, &x403, x4, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x404, &x405, x4, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x406, &x407, x4, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x408, &x409, x4, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x410, &x411, 0x0, + x409, x406); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x412, &x413, + x411, x407, x404); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x414, &x415, + x413, x405, x402); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x416, &x417, + x415, x403, x400); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x418, &x419, + x417, x401, x398); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x420, &x421, + x419, x399, x396); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x422, &x423, + x421, x397, x394); + x424 = (x423 + x395); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x425, &x426, 0x0, + x377, x408); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x427, &x428, + x426, x379, x410); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x429, &x430, + x428, x381, x412); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x431, &x432, + x430, x383, x414); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x433, &x434, + x432, x385, x416); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x435, &x436, + x434, x387, x418); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x437, &x438, + x436, x389, x420); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x439, &x440, + x438, x391, x422); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x441, &x442, + x440, x393, x424); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x443, &x444, x425, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x445, &x446, x443, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x447, &x448, x443, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x449, &x450, x443, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x451, &x452, x443, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x453, &x454, x443, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x455, &x456, x443, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x457, &x458, x443, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x459, &x460, x443, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x461, &x462, 0x0, + x460, x457); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x463, &x464, + x462, x458, x455); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x465, &x466, + x464, x456, x453); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x467, &x468, + x466, x454, x451); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x469, &x470, + x468, x452, x449); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x471, &x472, + x470, x450, x447); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x473, &x474, + x472, x448, x445); + x475 = (x474 + x446); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x476, &x477, 0x0, + x425, x459); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x478, &x479, + x477, x427, x461); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x480, &x481, + x479, x429, x463); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x482, &x483, + x481, x431, x465); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x484, &x485, + x483, x433, x467); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x486, &x487, + x485, x435, x469); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x488, &x489, + x487, x437, x471); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x490, &x491, + x489, x439, x473); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x492, &x493, + x491, x441, x475); + x494 = ((uint32_t)x493 + x442); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x495, &x496, x5, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x497, &x498, x5, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x499, &x500, x5, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x501, &x502, x5, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x503, &x504, x5, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x505, &x506, x5, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x507, &x508, x5, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x509, &x510, x5, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x511, &x512, 0x0, + x510, x507); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x513, &x514, + x512, x508, x505); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x515, &x516, + x514, x506, x503); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x517, &x518, + x516, x504, x501); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x519, &x520, + x518, x502, x499); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x521, &x522, + x520, x500, x497); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x523, &x524, + x522, x498, x495); + x525 = (x524 + x496); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x526, &x527, 0x0, + x478, x509); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x528, &x529, + x527, x480, x511); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x530, &x531, + x529, x482, x513); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x532, &x533, + x531, x484, x515); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x534, &x535, + x533, x486, x517); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x536, &x537, + x535, x488, x519); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x538, &x539, + x537, x490, x521); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x540, &x541, + x539, x492, x523); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x542, &x543, + x541, x494, x525); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x544, &x545, x526, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x546, &x547, x544, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x548, &x549, x544, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x550, &x551, x544, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x552, &x553, x544, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x554, &x555, x544, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x556, &x557, x544, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x558, &x559, x544, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x560, &x561, x544, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x562, &x563, 0x0, + x561, x558); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x564, &x565, + x563, x559, x556); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x566, &x567, + x565, x557, x554); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x568, &x569, + x567, x555, x552); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x570, &x571, + x569, x553, x550); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x572, &x573, + x571, x551, x548); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x574, &x575, + x573, x549, x546); + x576 = (x575 + x547); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x577, &x578, 0x0, + x526, x560); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x579, &x580, + x578, x528, x562); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x581, &x582, + x580, x530, x564); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x583, &x584, + x582, x532, x566); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x585, &x586, + x584, x534, x568); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x587, &x588, + x586, x536, x570); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x589, &x590, + x588, x538, x572); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x591, &x592, + x590, x540, x574); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x593, &x594, + x592, x542, x576); + x595 = ((uint32_t)x594 + x543); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x596, &x597, x6, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x598, &x599, x6, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x600, &x601, x6, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x602, &x603, x6, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x604, &x605, x6, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x606, &x607, x6, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x608, &x609, x6, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x610, &x611, x6, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x612, &x613, 0x0, + x611, x608); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x614, &x615, + x613, x609, x606); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x616, &x617, + x615, x607, x604); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x618, &x619, + x617, x605, x602); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x620, &x621, + x619, x603, x600); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x622, &x623, + x621, x601, x598); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x624, &x625, + x623, x599, x596); + x626 = (x625 + x597); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x627, &x628, 0x0, + x579, x610); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x629, &x630, + x628, x581, x612); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x631, &x632, + x630, x583, x614); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x633, &x634, + x632, x585, x616); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x635, &x636, + x634, x587, x618); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x637, &x638, + x636, x589, x620); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x639, &x640, + x638, x591, x622); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x641, &x642, + x640, x593, x624); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x643, &x644, + x642, x595, x626); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x645, &x646, x627, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x647, &x648, x645, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x649, &x650, x645, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x651, &x652, x645, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x653, &x654, x645, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x655, &x656, x645, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x657, &x658, x645, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x659, &x660, x645, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x661, &x662, x645, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x663, &x664, 0x0, + x662, x659); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x665, &x666, + x664, x660, x657); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x667, &x668, + x666, x658, x655); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x669, &x670, + x668, x656, x653); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x671, &x672, + x670, x654, x651); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x673, &x674, + x672, x652, x649); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x675, &x676, + x674, x650, x647); + x677 = (x676 + x648); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x678, &x679, 0x0, + x627, x661); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x680, &x681, + x679, x629, x663); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x682, &x683, + x681, x631, x665); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x684, &x685, + x683, x633, x667); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x686, &x687, + x685, x635, x669); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x688, &x689, + x687, x637, x671); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x690, &x691, + x689, x639, x673); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x692, &x693, + x691, x641, x675); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x694, &x695, + x693, x643, x677); + x696 = ((uint32_t)x695 + x644); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x697, &x698, x7, + (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x699, &x700, x7, + (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x701, &x702, x7, + (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x703, &x704, x7, + (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x705, &x706, x7, + (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x707, &x708, x7, + (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x709, &x710, x7, + (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x711, &x712, x7, + (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x713, &x714, 0x0, + x712, x709); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x715, &x716, + x714, x710, x707); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x717, &x718, + x716, x708, x705); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x719, &x720, + x718, x706, x703); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x721, &x722, + x720, x704, x701); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x723, &x724, + x722, x702, x699); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x725, &x726, + x724, x700, x697); + x727 = (x726 + x698); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x728, &x729, 0x0, + x680, x711); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x730, &x731, + x729, x682, x713); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x732, &x733, + x731, x684, x715); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x734, &x735, + x733, x686, x717); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x736, &x737, + x735, x688, x719); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x738, &x739, + x737, x690, x721); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x740, &x741, + x739, x692, x723); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x742, &x743, + x741, x694, x725); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x744, &x745, + x743, x696, x727); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x746, &x747, x728, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x748, &x749, x746, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x750, &x751, x746, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x752, &x753, x746, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x754, &x755, x746, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x756, &x757, x746, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x758, &x759, x746, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x760, &x761, x746, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x762, &x763, x746, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x764, &x765, 0x0, + x763, x760); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x766, &x767, + x765, x761, x758); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x768, &x769, + x767, x759, x756); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x770, &x771, + x769, x757, x754); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x772, &x773, + x771, x755, x752); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x774, &x775, + x773, x753, x750); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x776, &x777, + x775, x751, x748); + x778 = (x777 + x749); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x779, &x780, 0x0, + x728, x762); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x781, &x782, + x780, x730, x764); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x783, &x784, + x782, x732, x766); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x785, &x786, + x784, x734, x768); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x787, &x788, + x786, x736, x770); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x789, &x790, + x788, x738, x772); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x791, &x792, + x790, x740, x774); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x793, &x794, + x792, x742, x776); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x795, &x796, + x794, x744, x778); + x797 = ((uint32_t)x796 + x745); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x798, &x799, 0x0, x781, UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x800, &x801, x799, x783, UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x802, &x803, x801, x785, UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x804, &x805, x803, x787, UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x806, &x807, x805, x789, UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x808, &x809, x807, x791, UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x810, &x811, x809, x793, UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x812, &x813, x811, x795, UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x814, &x815, + x813, x797, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x816, x815, x798, + x781); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x817, x815, x800, + x783); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x818, x815, x802, + x785); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x819, x815, x804, + x787); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x820, x815, x806, + x789); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x821, x815, x808, + x791); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x822, x815, x810, + x793); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x823, x815, x812, + x795); + out1[0] = x816; + out1[1] = x817; + out1[2] = x818; + out1[3] = x819; + out1[4] = x820; + out1[5] = x821; + out1[6] = x822; + out1[7] = x823; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add adds two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add( + uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) { + uint32_t x1; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x2; + uint32_t x3; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x4; + uint32_t x5; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x6; + uint32_t x7; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x8; + uint32_t x9; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x10; + uint32_t x11; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x14; + uint32_t x15; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x16; + uint32_t x17; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x18; + uint32_t x19; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x20; + uint32_t x21; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x22; + uint32_t x23; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x24; + uint32_t x25; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x28; + uint32_t x29; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x30; + uint32_t x31; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x32; + uint32_t x33; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x9, &x10, x8, (arg1[4]), (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x11, &x12, x10, (arg1[5]), (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x13, &x14, x12, (arg1[6]), (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x15, &x16, x14, (arg1[7]), (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x17, &x18, 0x0, x1, UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x19, &x20, x18, x3, UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x21, &x22, x20, x5, UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x23, &x24, x22, x7, UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x25, &x26, x24, x9, UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x27, &x28, x26, x11, UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x29, &x30, x28, x13, UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x31, &x32, x30, x15, UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x33, &x34, x32, + x16, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x35, x34, x17, x1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x36, x34, x19, x3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x37, x34, x21, x5); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x38, x34, x23, x7); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x39, x34, x25, x9); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x40, x34, x27, + x11); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x41, x34, x29, + x13); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x42, x34, x31, + x15); + out1[0] = x35; + out1[1] = x36; + out1[2] = x37; + out1[3] = x38; + out1[4] = x39; + out1[5] = x40; + out1[6] = x41; + out1[7] = x42; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub subtracts two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub( + uint32_t out1[8], const uint32_t arg1[8], const uint32_t arg2[8]) { + uint32_t x1; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x2; + uint32_t x3; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x4; + uint32_t x5; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x6; + uint32_t x7; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x8; + uint32_t x9; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x10; + uint32_t x11; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x14; + uint32_t x15; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x16; + uint32_t x17; + uint32_t x18; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x19; + uint32_t x20; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x21; + uint32_t x22; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x23; + uint32_t x24; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x25; + uint32_t x26; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x27; + uint32_t x28; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x29; + uint32_t x30; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x31; + uint32_t x32; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x33; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x9, &x10, x8, (arg1[4]), (arg2[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x11, &x12, x10, (arg1[5]), (arg2[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x13, &x14, x12, (arg1[6]), (arg2[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x15, &x16, x14, (arg1[7]), (arg2[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + &x17, x16, 0x0, UINT32_C(0xffffffff)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x18, &x19, 0x0, x1, (x17 & UINT32_C(0x22d759b))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x20, &x21, x19, x3, (x17 & UINT32_C(0x7998f7b9))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x22, &x23, x21, x5, (x17 & UINT32_C(0x789051d3))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x24, &x25, x23, x7, (x17 & UINT32_C(0xcf846e86))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x26, &x27, x25, x9, (x17 & UINT32_C(0x6b41c8aa))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x28, &x29, x27, x11, (x17 & UINT32_C(0xab1ec85e))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x30, &x31, x29, x13, (x17 & UINT32_C(0x5a858107))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x32, &x33, x31, x15, (x17 & UINT32_C(0x9b9f605f))); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x24; + out1[4] = x26; + out1[5] = x28; + out1[6] = x30; + out1[7] = x32; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp negates a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp( + uint32_t out1[8], const uint32_t arg1[8]) { + uint32_t x1; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x2; + uint32_t x3; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x4; + uint32_t x5; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x6; + uint32_t x7; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x8; + uint32_t x9; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x10; + uint32_t x11; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x14; + uint32_t x15; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x16; + uint32_t x17; + uint32_t x18; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x19; + uint32_t x20; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x21; + uint32_t x22; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x23; + uint32_t x24; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x25; + uint32_t x26; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x27; + uint32_t x28; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x29; + uint32_t x30; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x31; + uint32_t x32; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x33; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x1, &x2, 0x0, + 0x0, (arg1[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x3, &x4, x2, + 0x0, (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x5, &x6, x4, + 0x0, (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x7, &x8, x6, + 0x0, (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x9, &x10, x8, + 0x0, (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x11, &x12, x10, + 0x0, (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x13, &x14, x12, + 0x0, (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x15, &x16, x14, + 0x0, (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + &x17, x16, 0x0, UINT32_C(0xffffffff)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x18, &x19, 0x0, x1, (x17 & UINT32_C(0x22d759b))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x20, &x21, x19, x3, (x17 & UINT32_C(0x7998f7b9))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x22, &x23, x21, x5, (x17 & UINT32_C(0x789051d3))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x24, &x25, x23, x7, (x17 & UINT32_C(0xcf846e86))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x26, &x27, x25, x9, (x17 & UINT32_C(0x6b41c8aa))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x28, &x29, x27, x11, (x17 & UINT32_C(0xab1ec85e))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x30, &x31, x29, x13, (x17 & UINT32_C(0x5a858107))); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x32, &x33, x31, x15, (x17 & UINT32_C(0x9b9f605f))); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x24; + out1[4] = x26; + out1[5] = x28; + out1[6] = x30; + out1[7] = x32; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery translates a field element out of the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^8) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery( + uint32_t out1[8], const uint32_t arg1[8]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x21; + uint32_t x22; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x23; + uint32_t x24; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x25; + uint32_t x26; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x27; + uint32_t x28; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x29; + uint32_t x30; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x31; + uint32_t x32; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x33; + uint32_t x34; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x35; + uint32_t x36; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x37; + uint32_t x38; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x39; + uint32_t x40; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x41; + uint32_t x42; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x43; + uint32_t x44; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x45; + uint32_t x46; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x47; + uint32_t x48; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x49; + uint32_t x50; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x51; + uint32_t x52; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x53; + uint32_t x54; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x55; + uint32_t x56; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x57; + uint32_t x58; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x59; + uint32_t x60; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x61; + uint32_t x62; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x63; + uint32_t x64; + uint32_t x65; + uint32_t x66; + uint32_t x67; + uint32_t x68; + uint32_t x69; + uint32_t x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + uint32_t x82; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x83; + uint32_t x84; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x85; + uint32_t x86; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x87; + uint32_t x88; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x89; + uint32_t x90; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x91; + uint32_t x92; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x93; + uint32_t x94; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x95; + uint32_t x96; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x97; + uint32_t x98; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x99; + uint32_t x100; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x101; + uint32_t x102; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x103; + uint32_t x104; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x105; + uint32_t x106; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x107; + uint32_t x108; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x109; + uint32_t x110; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x111; + uint32_t x112; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x113; + uint32_t x114; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x115; + uint32_t x116; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x117; + uint32_t x118; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x119; + uint32_t x120; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x121; + uint32_t x122; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x123; + uint32_t x124; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x125; + uint32_t x126; + uint32_t x127; + uint32_t x128; + uint32_t x129; + uint32_t x130; + uint32_t x131; + uint32_t x132; + uint32_t x133; + uint32_t x134; + uint32_t x135; + uint32_t x136; + uint32_t x137; + uint32_t x138; + uint32_t x139; + uint32_t x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x145; + uint32_t x146; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x147; + uint32_t x148; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x149; + uint32_t x150; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x151; + uint32_t x152; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x153; + uint32_t x154; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x155; + uint32_t x156; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x157; + uint32_t x158; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x159; + uint32_t x160; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x161; + uint32_t x162; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x163; + uint32_t x164; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x165; + uint32_t x166; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x167; + uint32_t x168; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x169; + uint32_t x170; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x171; + uint32_t x172; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x173; + uint32_t x174; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x175; + uint32_t x176; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x177; + uint32_t x178; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x179; + uint32_t x180; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x181; + uint32_t x182; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x183; + uint32_t x184; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x185; + uint32_t x186; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x187; + uint32_t x188; + uint32_t x189; + uint32_t x190; + uint32_t x191; + uint32_t x192; + uint32_t x193; + uint32_t x194; + uint32_t x195; + uint32_t x196; + uint32_t x197; + uint32_t x198; + uint32_t x199; + uint32_t x200; + uint32_t x201; + uint32_t x202; + uint32_t x203; + uint32_t x204; + uint32_t x205; + uint32_t x206; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x207; + uint32_t x208; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x209; + uint32_t x210; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x211; + uint32_t x212; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x213; + uint32_t x214; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x215; + uint32_t x216; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x217; + uint32_t x218; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x219; + uint32_t x220; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x221; + uint32_t x222; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x223; + uint32_t x224; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x225; + uint32_t x226; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x227; + uint32_t x228; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x229; + uint32_t x230; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x231; + uint32_t x232; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x233; + uint32_t x234; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x235; + uint32_t x236; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x237; + uint32_t x238; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x239; + uint32_t x240; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x241; + uint32_t x242; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x243; + uint32_t x244; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x245; + uint32_t x246; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x247; + uint32_t x248; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x249; + uint32_t x250; + uint32_t x251; + uint32_t x252; + uint32_t x253; + uint32_t x254; + uint32_t x255; + uint32_t x256; + uint32_t x257; + uint32_t x258; + uint32_t x259; + uint32_t x260; + uint32_t x261; + uint32_t x262; + uint32_t x263; + uint32_t x264; + uint32_t x265; + uint32_t x266; + uint32_t x267; + uint32_t x268; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x269; + uint32_t x270; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x271; + uint32_t x272; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x273; + uint32_t x274; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x275; + uint32_t x276; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x277; + uint32_t x278; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x279; + uint32_t x280; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x281; + uint32_t x282; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x283; + uint32_t x284; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x285; + uint32_t x286; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x287; + uint32_t x288; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x289; + uint32_t x290; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x291; + uint32_t x292; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x293; + uint32_t x294; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x295; + uint32_t x296; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x297; + uint32_t x298; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x299; + uint32_t x300; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x301; + uint32_t x302; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x303; + uint32_t x304; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x305; + uint32_t x306; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x307; + uint32_t x308; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x309; + uint32_t x310; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x311; + uint32_t x312; + uint32_t x313; + uint32_t x314; + uint32_t x315; + uint32_t x316; + uint32_t x317; + uint32_t x318; + uint32_t x319; + uint32_t x320; + uint32_t x321; + uint32_t x322; + uint32_t x323; + uint32_t x324; + uint32_t x325; + uint32_t x326; + uint32_t x327; + uint32_t x328; + uint32_t x329; + uint32_t x330; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x331; + uint32_t x332; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x333; + uint32_t x334; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x335; + uint32_t x336; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x337; + uint32_t x338; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x339; + uint32_t x340; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x341; + uint32_t x342; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x343; + uint32_t x344; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x345; + uint32_t x346; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x347; + uint32_t x348; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x349; + uint32_t x350; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x351; + uint32_t x352; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x353; + uint32_t x354; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x355; + uint32_t x356; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x357; + uint32_t x358; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x359; + uint32_t x360; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x361; + uint32_t x362; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x363; + uint32_t x364; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x365; + uint32_t x366; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x367; + uint32_t x368; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x369; + uint32_t x370; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x371; + uint32_t x372; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x373; + uint32_t x374; + uint32_t x375; + uint32_t x376; + uint32_t x377; + uint32_t x378; + uint32_t x379; + uint32_t x380; + uint32_t x381; + uint32_t x382; + uint32_t x383; + uint32_t x384; + uint32_t x385; + uint32_t x386; + uint32_t x387; + uint32_t x388; + uint32_t x389; + uint32_t x390; + uint32_t x391; + uint32_t x392; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x393; + uint32_t x394; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x395; + uint32_t x396; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x397; + uint32_t x398; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x399; + uint32_t x400; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x401; + uint32_t x402; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x403; + uint32_t x404; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x405; + uint32_t x406; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x407; + uint32_t x408; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x409; + uint32_t x410; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x411; + uint32_t x412; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x413; + uint32_t x414; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x415; + uint32_t x416; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x417; + uint32_t x418; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x419; + uint32_t x420; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x421; + uint32_t x422; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x423; + uint32_t x424; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x425; + uint32_t x426; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x427; + uint32_t x428; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x429; + uint32_t x430; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x431; + uint32_t x432; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x433; + uint32_t x434; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x435; + uint32_t x436; + uint32_t x437; + uint32_t x438; + uint32_t x439; + uint32_t x440; + uint32_t x441; + uint32_t x442; + uint32_t x443; + uint32_t x444; + uint32_t x445; + uint32_t x446; + uint32_t x447; + uint32_t x448; + uint32_t x449; + uint32_t x450; + uint32_t x451; + uint32_t x452; + uint32_t x453; + uint32_t x454; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x455; + uint32_t x456; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x457; + uint32_t x458; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x459; + uint32_t x460; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x461; + uint32_t x462; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x463; + uint32_t x464; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x465; + uint32_t x466; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x467; + uint32_t x468; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x469; + uint32_t x470; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x471; + uint32_t x472; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x473; + uint32_t x474; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x475; + uint32_t x476; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x477; + uint32_t x478; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x479; + uint32_t x480; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x481; + uint32_t x482; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x483; + uint32_t x484; + uint32_t x485; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x486; + uint32_t x487; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x488; + uint32_t x489; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x490; + uint32_t x491; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x492; + uint32_t x493; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x494; + uint32_t x495; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x496; + uint32_t x497; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x498; + uint32_t x499; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x500; + uint32_t x501; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x502; + uint32_t x503; + uint32_t x504; + uint32_t x505; + uint32_t x506; + uint32_t x507; + uint32_t x508; + uint32_t x509; + uint32_t x510; + x1 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x2, &x3, x1, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x4, &x5, x2, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x6, &x7, x2, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x8, &x9, x2, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x10, &x11, x2, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x12, &x13, x2, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x14, &x15, x2, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x16, &x17, x2, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x18, &x19, x2, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x20, &x21, 0x0, + x19, x16); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x22, &x23, x21, + x17, x14); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x24, &x25, x23, + x15, x12); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x26, &x27, x25, + x13, x10); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x28, &x29, x27, + x11, x8); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x30, &x31, x29, + x9, x6); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x32, &x33, x31, + x7, x4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x34, &x35, 0x0, + x1, x18); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x36, &x37, x35, + 0x0, x20); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x38, &x39, x37, + 0x0, x22); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x40, &x41, x39, + 0x0, x24); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x42, &x43, x41, + 0x0, x26); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x44, &x45, x43, + 0x0, x28); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x46, &x47, x45, + 0x0, x30); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x48, &x49, x47, + 0x0, x32); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x50, &x51, 0x0, + x36, (arg1[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x52, &x53, x51, + x38, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x54, &x55, x53, + x40, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x56, &x57, x55, + x42, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x58, &x59, x57, + x44, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x60, &x61, x59, + x46, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x62, &x63, x61, + x48, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x64, &x65, x50, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x66, &x67, x64, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x68, &x69, x64, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x70, &x71, x64, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x72, &x73, x64, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x74, &x75, x64, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x76, &x77, x64, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x78, &x79, x64, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x80, &x81, x64, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x82, &x83, 0x0, + x81, x78); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x84, &x85, x83, + x79, x76); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x86, &x87, x85, + x77, x74); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x88, &x89, x87, + x75, x72); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x90, &x91, x89, + x73, x70); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x92, &x93, x91, + x71, x68); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x94, &x95, x93, + x69, x66); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x96, &x97, 0x0, + x50, x80); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x98, &x99, x97, + x52, x82); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x100, &x101, x99, + x54, x84); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x102, &x103, + x101, x56, x86); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x104, &x105, + x103, x58, x88); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x106, &x107, + x105, x60, x90); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x108, &x109, + x107, x62, x92); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x110, &x111, x109, (x63 + (x49 + (x33 + x5))), x94); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x112, &x113, 0x0, + x98, (arg1[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x114, &x115, + x113, x100, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x116, &x117, + x115, x102, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x118, &x119, + x117, x104, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x120, &x121, + x119, x106, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x122, &x123, + x121, x108, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x124, &x125, + x123, x110, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x126, &x127, x112, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x128, &x129, x126, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x130, &x131, x126, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x132, &x133, x126, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x134, &x135, x126, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x136, &x137, x126, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x138, &x139, x126, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x140, &x141, x126, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x142, &x143, x126, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x144, &x145, 0x0, + x143, x140); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x146, &x147, + x145, x141, x138); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x148, &x149, + x147, x139, x136); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x150, &x151, + x149, x137, x134); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x152, &x153, + x151, x135, x132); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x154, &x155, + x153, x133, x130); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x156, &x157, + x155, x131, x128); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x158, &x159, 0x0, + x112, x142); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x160, &x161, + x159, x114, x144); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x162, &x163, + x161, x116, x146); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x164, &x165, + x163, x118, x148); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x166, &x167, + x165, x120, x150); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x168, &x169, + x167, x122, x152); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x170, &x171, + x169, x124, x154); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x172, &x173, x171, (x125 + (x111 + (x95 + x67))), x156); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x174, &x175, 0x0, + x160, (arg1[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x176, &x177, + x175, x162, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x178, &x179, + x177, x164, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x180, &x181, + x179, x166, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x182, &x183, + x181, x168, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x184, &x185, + x183, x170, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x186, &x187, + x185, x172, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x188, &x189, x174, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x190, &x191, x188, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x192, &x193, x188, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x194, &x195, x188, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x196, &x197, x188, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x198, &x199, x188, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x200, &x201, x188, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x202, &x203, x188, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x204, &x205, x188, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x206, &x207, 0x0, + x205, x202); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x208, &x209, + x207, x203, x200); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x210, &x211, + x209, x201, x198); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x212, &x213, + x211, x199, x196); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x214, &x215, + x213, x197, x194); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x216, &x217, + x215, x195, x192); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x218, &x219, + x217, x193, x190); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x220, &x221, 0x0, + x174, x204); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x222, &x223, + x221, x176, x206); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x224, &x225, + x223, x178, x208); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x226, &x227, + x225, x180, x210); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x228, &x229, + x227, x182, x212); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x230, &x231, + x229, x184, x214); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x232, &x233, + x231, x186, x216); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x234, &x235, x233, (x187 + (x173 + (x157 + x129))), x218); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x236, &x237, 0x0, + x222, (arg1[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x238, &x239, + x237, x224, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x240, &x241, + x239, x226, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x242, &x243, + x241, x228, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x244, &x245, + x243, x230, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x246, &x247, + x245, x232, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x248, &x249, + x247, x234, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x250, &x251, x236, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x252, &x253, x250, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x254, &x255, x250, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x256, &x257, x250, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x258, &x259, x250, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x260, &x261, x250, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x262, &x263, x250, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x264, &x265, x250, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x266, &x267, x250, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x268, &x269, 0x0, + x267, x264); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x270, &x271, + x269, x265, x262); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x272, &x273, + x271, x263, x260); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x274, &x275, + x273, x261, x258); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x276, &x277, + x275, x259, x256); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x278, &x279, + x277, x257, x254); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x280, &x281, + x279, x255, x252); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x282, &x283, 0x0, + x236, x266); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x284, &x285, + x283, x238, x268); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x286, &x287, + x285, x240, x270); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x288, &x289, + x287, x242, x272); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x290, &x291, + x289, x244, x274); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x292, &x293, + x291, x246, x276); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x294, &x295, + x293, x248, x278); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x296, &x297, x295, (x249 + (x235 + (x219 + x191))), x280); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x298, &x299, 0x0, + x284, (arg1[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x300, &x301, + x299, x286, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x302, &x303, + x301, x288, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x304, &x305, + x303, x290, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x306, &x307, + x305, x292, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x308, &x309, + x307, x294, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x310, &x311, + x309, x296, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x312, &x313, x298, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x314, &x315, x312, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x316, &x317, x312, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x318, &x319, x312, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x320, &x321, x312, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x322, &x323, x312, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x324, &x325, x312, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x326, &x327, x312, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x328, &x329, x312, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x330, &x331, 0x0, + x329, x326); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x332, &x333, + x331, x327, x324); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x334, &x335, + x333, x325, x322); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x336, &x337, + x335, x323, x320); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x338, &x339, + x337, x321, x318); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x340, &x341, + x339, x319, x316); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x342, &x343, + x341, x317, x314); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x344, &x345, 0x0, + x298, x328); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x346, &x347, + x345, x300, x330); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x348, &x349, + x347, x302, x332); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x350, &x351, + x349, x304, x334); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x352, &x353, + x351, x306, x336); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x354, &x355, + x353, x308, x338); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x356, &x357, + x355, x310, x340); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x358, &x359, x357, (x311 + (x297 + (x281 + x253))), x342); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x360, &x361, 0x0, + x346, (arg1[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x362, &x363, + x361, x348, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x364, &x365, + x363, x350, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x366, &x367, + x365, x352, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x368, &x369, + x367, x354, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x370, &x371, + x369, x356, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x372, &x373, + x371, x358, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x374, &x375, x360, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x376, &x377, x374, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x378, &x379, x374, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x380, &x381, x374, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x382, &x383, x374, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x384, &x385, x374, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x386, &x387, x374, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x388, &x389, x374, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x390, &x391, x374, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x392, &x393, 0x0, + x391, x388); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x394, &x395, + x393, x389, x386); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x396, &x397, + x395, x387, x384); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x398, &x399, + x397, x385, x382); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x400, &x401, + x399, x383, x380); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x402, &x403, + x401, x381, x378); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x404, &x405, + x403, x379, x376); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x406, &x407, 0x0, + x360, x390); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x408, &x409, + x407, x362, x392); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x410, &x411, + x409, x364, x394); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x412, &x413, + x411, x366, x396); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x414, &x415, + x413, x368, x398); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x416, &x417, + x415, x370, x400); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x418, &x419, + x417, x372, x402); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x420, &x421, x419, (x373 + (x359 + (x343 + x315))), x404); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x422, &x423, 0x0, + x408, (arg1[7])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x424, &x425, + x423, x410, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x426, &x427, + x425, x412, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x428, &x429, + x427, x414, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x430, &x431, + x429, x416, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x432, &x433, + x431, x418, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x434, &x435, + x433, x420, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x436, &x437, x422, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x438, &x439, x436, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x440, &x441, x436, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x442, &x443, x436, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x444, &x445, x436, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x446, &x447, x436, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x448, &x449, x436, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x450, &x451, x436, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x452, &x453, x436, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x454, &x455, 0x0, + x453, x450); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x456, &x457, + x455, x451, x448); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x458, &x459, + x457, x449, x446); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x460, &x461, + x459, x447, x444); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x462, &x463, + x461, x445, x442); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x464, &x465, + x463, x443, x440); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x466, &x467, + x465, x441, x438); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x468, &x469, 0x0, + x422, x452); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x470, &x471, + x469, x424, x454); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x472, &x473, + x471, x426, x456); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x474, &x475, + x473, x428, x458); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x476, &x477, + x475, x430, x460); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x478, &x479, + x477, x432, x462); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x480, &x481, + x479, x434, x464); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x482, &x483, x481, (x435 + (x421 + (x405 + x377))), x466); + x484 = (x483 + (x467 + x439)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x485, &x486, 0x0, x470, UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x487, &x488, x486, x472, UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x489, &x490, x488, x474, UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x491, &x492, x490, x476, UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x493, &x494, x492, x478, UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x495, &x496, x494, x480, UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x497, &x498, x496, x482, UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x499, &x500, x498, x484, UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x501, &x502, + x500, 0x0, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x503, x502, x485, + x470); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x504, x502, x487, + x472); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x505, x502, x489, + x474); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x506, x502, x491, + x476); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x507, x502, x493, + x478); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x508, x502, x495, + x480); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x509, x502, x497, + x482); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x510, x502, x499, + x484); + out1[0] = x503; + out1[1] = x504; + out1[2] = x505; + out1[3] = x506; + out1[4] = x507; + out1[5] = x508; + out1[6] = x509; + out1[7] = x510; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery translates a field element into the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = eval arg1 mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery( + uint32_t out1[8], const uint32_t arg1[8]) { + 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x28; + uint32_t x29; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x30; + uint32_t x31; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x32; + uint32_t x33; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x34; + uint32_t x35; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x36; + uint32_t x37; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 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; + uint32_t x50; + uint32_t x51; + uint32_t x52; + uint32_t x53; + uint32_t x54; + uint32_t x55; + uint32_t x56; + uint32_t x57; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x58; + uint32_t x59; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x60; + uint32_t x61; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x62; + uint32_t x63; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x64; + uint32_t x65; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x66; + uint32_t x67; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x68; + uint32_t x69; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x70; + uint32_t x71; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x72; + uint32_t x73; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x74; + uint32_t x75; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x76; + uint32_t x77; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x78; + uint32_t x79; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x80; + uint32_t x81; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x82; + uint32_t x83; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x84; + uint32_t x85; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x86; + uint32_t x87; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x88; + uint32_t x89; + uint32_t x90; + uint32_t x91; + uint32_t x92; + uint32_t 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; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x106; + uint32_t x107; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x108; + uint32_t x109; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x110; + uint32_t x111; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x112; + uint32_t x113; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x114; + uint32_t x115; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x116; + uint32_t x117; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x118; + uint32_t x119; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x120; + uint32_t x121; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x122; + uint32_t x123; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x124; + uint32_t x125; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x126; + uint32_t x127; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x128; + uint32_t x129; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x130; + uint32_t x131; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x132; + uint32_t x133; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x134; + uint32_t x135; + uint32_t x136; + uint32_t x137; + uint32_t x138; + uint32_t x139; + uint32_t x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + uint32_t x148; + uint32_t x149; + uint32_t x150; + uint32_t x151; + uint32_t x152; + uint32_t x153; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x154; + uint32_t x155; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x156; + uint32_t x157; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x158; + uint32_t x159; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x160; + uint32_t x161; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x162; + uint32_t x163; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x164; + uint32_t x165; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x166; + uint32_t x167; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x168; + uint32_t x169; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x170; + uint32_t x171; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x172; + uint32_t x173; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x174; + uint32_t x175; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x176; + uint32_t x177; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x178; + uint32_t x179; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x180; + uint32_t x181; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x182; + uint32_t x183; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x184; + uint32_t x185; + uint32_t x186; + uint32_t x187; + uint32_t x188; + uint32_t x189; + uint32_t x190; + uint32_t x191; + uint32_t x192; + uint32_t x193; + uint32_t x194; + uint32_t x195; + uint32_t x196; + uint32_t x197; + uint32_t x198; + uint32_t x199; + uint32_t x200; + uint32_t x201; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x202; + uint32_t x203; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x204; + uint32_t x205; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x206; + uint32_t x207; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x208; + uint32_t x209; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x210; + uint32_t x211; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x212; + uint32_t x213; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x214; + uint32_t x215; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x216; + uint32_t x217; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x218; + uint32_t x219; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x220; + uint32_t x221; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x222; + uint32_t x223; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x224; + uint32_t x225; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x226; + uint32_t x227; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x228; + uint32_t x229; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x230; + uint32_t x231; + uint32_t x232; + uint32_t x233; + uint32_t x234; + uint32_t x235; + uint32_t x236; + uint32_t x237; + uint32_t x238; + uint32_t x239; + uint32_t x240; + uint32_t x241; + uint32_t x242; + uint32_t x243; + uint32_t x244; + uint32_t x245; + uint32_t x246; + uint32_t x247; + uint32_t x248; + uint32_t x249; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x250; + uint32_t x251; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x252; + uint32_t x253; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x254; + uint32_t x255; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x256; + uint32_t x257; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x258; + uint32_t x259; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x260; + uint32_t x261; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x262; + uint32_t x263; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x264; + uint32_t x265; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x266; + uint32_t x267; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x268; + uint32_t x269; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x270; + uint32_t x271; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x272; + uint32_t x273; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x274; + uint32_t x275; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x276; + uint32_t x277; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x278; + uint32_t x279; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x280; + uint32_t x281; + uint32_t x282; + uint32_t x283; + uint32_t x284; + uint32_t x285; + uint32_t x286; + uint32_t x287; + uint32_t x288; + uint32_t x289; + uint32_t x290; + uint32_t x291; + uint32_t x292; + uint32_t x293; + uint32_t x294; + uint32_t x295; + uint32_t x296; + uint32_t x297; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x298; + uint32_t x299; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x300; + uint32_t x301; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x302; + uint32_t x303; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x304; + uint32_t x305; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x306; + uint32_t x307; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x308; + uint32_t x309; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x310; + uint32_t x311; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x312; + uint32_t x313; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x314; + uint32_t x315; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x316; + uint32_t x317; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x318; + uint32_t x319; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x320; + uint32_t x321; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x322; + uint32_t x323; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x324; + uint32_t x325; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x326; + uint32_t x327; + uint32_t x328; + uint32_t x329; + uint32_t x330; + uint32_t x331; + uint32_t x332; + uint32_t x333; + uint32_t x334; + uint32_t x335; + uint32_t x336; + uint32_t x337; + uint32_t x338; + uint32_t x339; + uint32_t x340; + uint32_t x341; + uint32_t x342; + uint32_t x343; + uint32_t x344; + uint32_t x345; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x346; + uint32_t x347; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x348; + uint32_t x349; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x350; + uint32_t x351; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x352; + uint32_t x353; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x354; + uint32_t x355; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x356; + uint32_t x357; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x358; + uint32_t x359; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x360; + uint32_t x361; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x362; + uint32_t x363; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x364; + uint32_t x365; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x366; + uint32_t x367; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x368; + uint32_t x369; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x370; + uint32_t x371; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x372; + uint32_t x373; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x374; + uint32_t x375; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x376; + uint32_t x377; + uint32_t x378; + uint32_t x379; + uint32_t x380; + uint32_t x381; + uint32_t x382; + uint32_t x383; + uint32_t x384; + uint32_t x385; + uint32_t x386; + uint32_t x387; + uint32_t x388; + uint32_t x389; + uint32_t x390; + uint32_t x391; + uint32_t x392; + uint32_t x393; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x394; + uint32_t x395; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x396; + uint32_t x397; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x398; + uint32_t x399; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x400; + uint32_t x401; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x402; + uint32_t x403; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x404; + uint32_t x405; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x406; + uint32_t x407; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x408; + uint32_t x409; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x410; + uint32_t x411; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x412; + uint32_t x413; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x414; + uint32_t x415; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x416; + uint32_t x417; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x418; + uint32_t x419; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x420; + uint32_t x421; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x422; + uint32_t x423; + uint32_t x424; + uint32_t x425; + uint32_t x426; + uint32_t x427; + uint32_t x428; + uint32_t x429; + uint32_t x430; + uint32_t x431; + uint32_t x432; + uint32_t x433; + uint32_t x434; + uint32_t x435; + uint32_t x436; + uint32_t x437; + uint32_t x438; + uint32_t x439; + uint32_t x440; + uint32_t x441; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x442; + uint32_t x443; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x444; + uint32_t x445; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x446; + uint32_t x447; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x448; + uint32_t x449; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x450; + uint32_t x451; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x452; + uint32_t x453; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x454; + uint32_t x455; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x456; + uint32_t x457; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x458; + uint32_t x459; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x460; + uint32_t x461; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x462; + uint32_t x463; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x464; + uint32_t x465; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x466; + uint32_t x467; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x468; + uint32_t x469; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x470; + uint32_t x471; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x472; + uint32_t x473; + uint32_t x474; + uint32_t x475; + uint32_t x476; + uint32_t x477; + uint32_t x478; + uint32_t x479; + uint32_t x480; + uint32_t x481; + uint32_t x482; + uint32_t x483; + uint32_t x484; + uint32_t x485; + uint32_t x486; + uint32_t x487; + uint32_t x488; + uint32_t x489; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x490; + uint32_t x491; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x492; + uint32_t x493; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x494; + uint32_t x495; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x496; + uint32_t x497; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x498; + uint32_t x499; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x500; + uint32_t x501; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x502; + uint32_t x503; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x504; + uint32_t x505; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x506; + uint32_t x507; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x508; + uint32_t x509; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x510; + uint32_t x511; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x512; + uint32_t x513; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x514; + uint32_t x515; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x516; + uint32_t x517; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x518; + uint32_t x519; + uint32_t x520; + uint32_t x521; + uint32_t x522; + uint32_t x523; + uint32_t x524; + uint32_t x525; + uint32_t x526; + uint32_t x527; + uint32_t x528; + uint32_t x529; + uint32_t x530; + uint32_t x531; + uint32_t x532; + uint32_t x533; + uint32_t x534; + uint32_t x535; + uint32_t x536; + uint32_t x537; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x538; + uint32_t x539; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x540; + uint32_t x541; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x542; + uint32_t x543; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x544; + uint32_t x545; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x546; + uint32_t x547; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x548; + uint32_t x549; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x550; + uint32_t x551; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x552; + uint32_t x553; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x554; + uint32_t x555; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x556; + uint32_t x557; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x558; + uint32_t x559; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x560; + uint32_t x561; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x562; + uint32_t x563; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x564; + uint32_t x565; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x566; + uint32_t x567; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x568; + uint32_t x569; + uint32_t x570; + uint32_t x571; + uint32_t x572; + uint32_t x573; + uint32_t x574; + uint32_t x575; + uint32_t x576; + uint32_t x577; + uint32_t x578; + uint32_t x579; + uint32_t x580; + uint32_t x581; + uint32_t x582; + uint32_t x583; + uint32_t x584; + uint32_t x585; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x586; + uint32_t x587; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x588; + uint32_t x589; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x590; + uint32_t x591; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x592; + uint32_t x593; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x594; + uint32_t x595; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x596; + uint32_t x597; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x598; + uint32_t x599; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x600; + uint32_t x601; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x602; + uint32_t x603; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x604; + uint32_t x605; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x606; + uint32_t x607; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x608; + uint32_t x609; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x610; + uint32_t x611; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x612; + uint32_t x613; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x614; + uint32_t x615; + uint32_t x616; + uint32_t x617; + uint32_t x618; + uint32_t x619; + uint32_t x620; + uint32_t x621; + uint32_t x622; + uint32_t x623; + uint32_t x624; + uint32_t x625; + uint32_t x626; + uint32_t x627; + uint32_t x628; + uint32_t x629; + uint32_t x630; + uint32_t x631; + uint32_t x632; + uint32_t x633; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x634; + uint32_t x635; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x636; + uint32_t x637; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x638; + uint32_t x639; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x640; + uint32_t x641; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x642; + uint32_t x643; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x644; + uint32_t x645; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x646; + uint32_t x647; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x648; + uint32_t x649; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x650; + uint32_t x651; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x652; + uint32_t x653; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x654; + uint32_t x655; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x656; + uint32_t x657; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x658; + uint32_t x659; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x660; + uint32_t x661; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x662; + uint32_t x663; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x664; + uint32_t x665; + uint32_t x666; + uint32_t x667; + uint32_t x668; + uint32_t x669; + uint32_t x670; + uint32_t x671; + uint32_t x672; + uint32_t x673; + uint32_t x674; + uint32_t x675; + uint32_t x676; + uint32_t x677; + uint32_t x678; + uint32_t x679; + uint32_t x680; + uint32_t x681; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x682; + uint32_t x683; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x684; + uint32_t x685; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x686; + uint32_t x687; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x688; + uint32_t x689; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x690; + uint32_t x691; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x692; + uint32_t x693; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x694; + uint32_t x695; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x696; + uint32_t x697; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x698; + uint32_t x699; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x700; + uint32_t x701; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x702; + uint32_t x703; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x704; + uint32_t x705; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x706; + uint32_t x707; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x708; + uint32_t x709; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x710; + uint32_t x711; + uint32_t x712; + uint32_t x713; + uint32_t x714; + uint32_t x715; + uint32_t x716; + uint32_t x717; + uint32_t x718; + uint32_t x719; + uint32_t x720; + uint32_t x721; + uint32_t x722; + uint32_t x723; + uint32_t x724; + uint32_t x725; + uint32_t x726; + uint32_t x727; + uint32_t x728; + uint32_t x729; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x730; + uint32_t x731; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x732; + uint32_t x733; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x734; + uint32_t x735; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x736; + uint32_t x737; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x738; + uint32_t x739; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x740; + uint32_t x741; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x742; + uint32_t x743; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x744; + uint32_t x745; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x746; + uint32_t x747; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x748; + uint32_t x749; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x750; + uint32_t x751; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x752; + uint32_t x753; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x754; + uint32_t x755; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x756; + uint32_t x757; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x758; + uint32_t x759; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x760; + uint32_t x761; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x762; + uint32_t x763; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x764; + uint32_t x765; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x766; + uint32_t x767; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x768; + uint32_t x769; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x770; + uint32_t x771; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x772; + uint32_t x773; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x774; + uint32_t x775; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x776; + uint32_t x777; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 x778; + uint32_t x779; + uint32_t x780; + uint32_t x781; + uint32_t x782; + uint32_t x783; + uint32_t x784; + uint32_t x785; + uint32_t x786; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[0]); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x9, &x10, x8, + UINT32_C(0x807a394e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x11, &x12, x8, + UINT32_C(0xde097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x13, &x14, x8, + UINT32_C(0x18630421)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x15, &x16, x8, + UINT32_C(0x2849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x17, &x18, x8, + UINT32_C(0x1017bb39)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x19, &x20, x8, + UINT32_C(0xc2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x21, &x22, x8, + UINT32_C(0x409973b4)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x23, &x24, x8, + UINT32_C(0xc427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x25, &x26, 0x0, + x24, x21); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x27, &x28, x26, + x22, x19); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x29, &x30, x28, + x20, x17); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x31, &x32, x30, + x18, x15); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x33, &x34, x32, + x16, x13); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x35, &x36, x34, + x14, x11); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x37, &x38, x36, + x12, x9); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x39, &x40, x23, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x41, &x42, x39, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x43, &x44, x39, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x45, &x46, x39, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x47, &x48, x39, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x49, &x50, x39, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x51, &x52, x39, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x53, &x54, x39, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x55, &x56, x39, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x57, &x58, 0x0, + x56, x53); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x59, &x60, x58, + x54, x51); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x61, &x62, x60, + x52, x49); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x63, &x64, x62, + x50, x47); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x65, &x66, x64, + x48, x45); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x67, &x68, x66, + x46, x43); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x69, &x70, x68, + x44, x41); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x71, &x72, 0x0, + x23, x55); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x73, &x74, x72, + x25, x57); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x75, &x76, x74, + x27, x59); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x77, &x78, x76, + x29, x61); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x79, &x80, x78, + x31, x63); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x81, &x82, x80, + x33, x65); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x83, &x84, x82, + x35, x67); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x85, &x86, x84, + x37, x69); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x87, &x88, x86, (x38 + x10), (x70 + x42)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x89, &x90, x1, + UINT32_C(0x807a394e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x91, &x92, x1, + UINT32_C(0xde097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x93, &x94, x1, + UINT32_C(0x18630421)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x95, &x96, x1, + UINT32_C(0x2849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x97, &x98, x1, + UINT32_C(0x1017bb39)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x99, &x100, x1, + UINT32_C(0xc2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x101, &x102, x1, + UINT32_C(0x409973b4)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x103, &x104, x1, + UINT32_C(0xc427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x105, &x106, 0x0, + x104, x101); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x107, &x108, + x106, x102, x99); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x109, &x110, + x108, x100, x97); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x111, &x112, + x110, x98, x95); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x113, &x114, + x112, x96, x93); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x115, &x116, + x114, x94, x91); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x117, &x118, + x116, x92, x89); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x119, &x120, 0x0, + x73, x103); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x121, &x122, + x120, x75, x105); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x123, &x124, + x122, x77, x107); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x125, &x126, + x124, x79, x109); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x127, &x128, + x126, x81, x111); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x129, &x130, + x128, x83, x113); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x131, &x132, + x130, x85, x115); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x133, &x134, + x132, x87, x117); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x135, &x136, x119, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x137, &x138, x135, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x139, &x140, x135, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x141, &x142, x135, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x143, &x144, x135, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x145, &x146, x135, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x147, &x148, x135, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x149, &x150, x135, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x151, &x152, x135, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x153, &x154, 0x0, + x152, x149); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x155, &x156, + x154, x150, x147); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x157, &x158, + x156, x148, x145); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x159, &x160, + x158, x146, x143); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x161, &x162, + x160, x144, x141); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x163, &x164, + x162, x142, x139); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x165, &x166, + x164, x140, x137); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x167, &x168, 0x0, + x119, x151); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x169, &x170, + x168, x121, x153); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x171, &x172, + x170, x123, x155); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x173, &x174, + x172, x125, x157); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x175, &x176, + x174, x127, x159); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x177, &x178, + x176, x129, x161); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x179, &x180, + x178, x131, x163); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x181, &x182, + x180, x133, x165); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x183, &x184, x182, (((uint32_t)x134 + x88) + (x118 + x90)), + (x166 + x138)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x185, &x186, x2, + UINT32_C(0x807a394e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x187, &x188, x2, + UINT32_C(0xde097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x189, &x190, x2, + UINT32_C(0x18630421)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x191, &x192, x2, + UINT32_C(0x2849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x193, &x194, x2, + UINT32_C(0x1017bb39)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x195, &x196, x2, + UINT32_C(0xc2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x197, &x198, x2, + UINT32_C(0x409973b4)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x199, &x200, x2, + UINT32_C(0xc427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x201, &x202, 0x0, + x200, x197); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x203, &x204, + x202, x198, x195); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x205, &x206, + x204, x196, x193); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x207, &x208, + x206, x194, x191); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x209, &x210, + x208, x192, x189); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x211, &x212, + x210, x190, x187); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x213, &x214, + x212, x188, x185); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x215, &x216, 0x0, + x169, x199); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x217, &x218, + x216, x171, x201); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x219, &x220, + x218, x173, x203); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x221, &x222, + x220, x175, x205); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x223, &x224, + x222, x177, x207); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x225, &x226, + x224, x179, x209); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x227, &x228, + x226, x181, x211); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x229, &x230, + x228, x183, x213); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x231, &x232, x215, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x233, &x234, x231, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x235, &x236, x231, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x237, &x238, x231, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x239, &x240, x231, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x241, &x242, x231, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x243, &x244, x231, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x245, &x246, x231, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x247, &x248, x231, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x249, &x250, 0x0, + x248, x245); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x251, &x252, + x250, x246, x243); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x253, &x254, + x252, x244, x241); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x255, &x256, + x254, x242, x239); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x257, &x258, + x256, x240, x237); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x259, &x260, + x258, x238, x235); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x261, &x262, + x260, x236, x233); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x263, &x264, 0x0, + x215, x247); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x265, &x266, + x264, x217, x249); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x267, &x268, + x266, x219, x251); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x269, &x270, + x268, x221, x253); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x271, &x272, + x270, x223, x255); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x273, &x274, + x272, x225, x257); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x275, &x276, + x274, x227, x259); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x277, &x278, + x276, x229, x261); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x279, &x280, x278, (((uint32_t)x230 + x184) + (x214 + x186)), + (x262 + x234)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x281, &x282, x3, + UINT32_C(0x807a394e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x283, &x284, x3, + UINT32_C(0xde097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x285, &x286, x3, + UINT32_C(0x18630421)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x287, &x288, x3, + UINT32_C(0x2849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x289, &x290, x3, + UINT32_C(0x1017bb39)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x291, &x292, x3, + UINT32_C(0xc2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x293, &x294, x3, + UINT32_C(0x409973b4)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x295, &x296, x3, + UINT32_C(0xc427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x297, &x298, 0x0, + x296, x293); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x299, &x300, + x298, x294, x291); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x301, &x302, + x300, x292, x289); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x303, &x304, + x302, x290, x287); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x305, &x306, + x304, x288, x285); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x307, &x308, + x306, x286, x283); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x309, &x310, + x308, x284, x281); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x311, &x312, 0x0, + x265, x295); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x313, &x314, + x312, x267, x297); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x315, &x316, + x314, x269, x299); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x317, &x318, + x316, x271, x301); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x319, &x320, + x318, x273, x303); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x321, &x322, + x320, x275, x305); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x323, &x324, + x322, x277, x307); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x325, &x326, + x324, x279, x309); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x327, &x328, x311, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x329, &x330, x327, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x331, &x332, x327, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x333, &x334, x327, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x335, &x336, x327, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x337, &x338, x327, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x339, &x340, x327, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x341, &x342, x327, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x343, &x344, x327, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x345, &x346, 0x0, + x344, x341); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x347, &x348, + x346, x342, x339); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x349, &x350, + x348, x340, x337); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x351, &x352, + x350, x338, x335); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x353, &x354, + x352, x336, x333); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x355, &x356, + x354, x334, x331); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x357, &x358, + x356, x332, x329); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x359, &x360, 0x0, + x311, x343); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x361, &x362, + x360, x313, x345); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x363, &x364, + x362, x315, x347); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x365, &x366, + x364, x317, x349); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x367, &x368, + x366, x319, x351); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x369, &x370, + x368, x321, x353); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x371, &x372, + x370, x323, x355); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x373, &x374, + x372, x325, x357); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x375, &x376, x374, (((uint32_t)x326 + x280) + (x310 + x282)), + (x358 + x330)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x377, &x378, x4, + UINT32_C(0x807a394e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x379, &x380, x4, + UINT32_C(0xde097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x381, &x382, x4, + UINT32_C(0x18630421)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x383, &x384, x4, + UINT32_C(0x2849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x385, &x386, x4, + UINT32_C(0x1017bb39)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x387, &x388, x4, + UINT32_C(0xc2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x389, &x390, x4, + UINT32_C(0x409973b4)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x391, &x392, x4, + UINT32_C(0xc427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x393, &x394, 0x0, + x392, x389); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x395, &x396, + x394, x390, x387); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x397, &x398, + x396, x388, x385); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x399, &x400, + x398, x386, x383); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x401, &x402, + x400, x384, x381); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x403, &x404, + x402, x382, x379); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x405, &x406, + x404, x380, x377); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x407, &x408, 0x0, + x361, x391); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x409, &x410, + x408, x363, x393); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x411, &x412, + x410, x365, x395); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x413, &x414, + x412, x367, x397); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x415, &x416, + x414, x369, x399); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x417, &x418, + x416, x371, x401); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x419, &x420, + x418, x373, x403); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x421, &x422, + x420, x375, x405); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x423, &x424, x407, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x425, &x426, x423, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x427, &x428, x423, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x429, &x430, x423, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x431, &x432, x423, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x433, &x434, x423, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x435, &x436, x423, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x437, &x438, x423, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x439, &x440, x423, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x441, &x442, 0x0, + x440, x437); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x443, &x444, + x442, x438, x435); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x445, &x446, + x444, x436, x433); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x447, &x448, + x446, x434, x431); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x449, &x450, + x448, x432, x429); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x451, &x452, + x450, x430, x427); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x453, &x454, + x452, x428, x425); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x455, &x456, 0x0, + x407, x439); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x457, &x458, + x456, x409, x441); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x459, &x460, + x458, x411, x443); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x461, &x462, + x460, x413, x445); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x463, &x464, + x462, x415, x447); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x465, &x466, + x464, x417, x449); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x467, &x468, + x466, x419, x451); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x469, &x470, + x468, x421, x453); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x471, &x472, x470, (((uint32_t)x422 + x376) + (x406 + x378)), + (x454 + x426)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x473, &x474, x5, + UINT32_C(0x807a394e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x475, &x476, x5, + UINT32_C(0xde097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x477, &x478, x5, + UINT32_C(0x18630421)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x479, &x480, x5, + UINT32_C(0x2849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x481, &x482, x5, + UINT32_C(0x1017bb39)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x483, &x484, x5, + UINT32_C(0xc2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x485, &x486, x5, + UINT32_C(0x409973b4)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x487, &x488, x5, + UINT32_C(0xc427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x489, &x490, 0x0, + x488, x485); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x491, &x492, + x490, x486, x483); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x493, &x494, + x492, x484, x481); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x495, &x496, + x494, x482, x479); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x497, &x498, + x496, x480, x477); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x499, &x500, + x498, x478, x475); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x501, &x502, + x500, x476, x473); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x503, &x504, 0x0, + x457, x487); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x505, &x506, + x504, x459, x489); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x507, &x508, + x506, x461, x491); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x509, &x510, + x508, x463, x493); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x511, &x512, + x510, x465, x495); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x513, &x514, + x512, x467, x497); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x515, &x516, + x514, x469, x499); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x517, &x518, + x516, x471, x501); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x519, &x520, x503, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x521, &x522, x519, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x523, &x524, x519, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x525, &x526, x519, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x527, &x528, x519, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x529, &x530, x519, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x531, &x532, x519, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x533, &x534, x519, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x535, &x536, x519, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x537, &x538, 0x0, + x536, x533); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x539, &x540, + x538, x534, x531); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x541, &x542, + x540, x532, x529); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x543, &x544, + x542, x530, x527); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x545, &x546, + x544, x528, x525); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x547, &x548, + x546, x526, x523); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x549, &x550, + x548, x524, x521); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x551, &x552, 0x0, + x503, x535); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x553, &x554, + x552, x505, x537); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x555, &x556, + x554, x507, x539); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x557, &x558, + x556, x509, x541); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x559, &x560, + x558, x511, x543); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x561, &x562, + x560, x513, x545); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x563, &x564, + x562, x515, x547); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x565, &x566, + x564, x517, x549); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x567, &x568, x566, (((uint32_t)x518 + x472) + (x502 + x474)), + (x550 + x522)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x569, &x570, x6, + UINT32_C(0x807a394e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x571, &x572, x6, + UINT32_C(0xde097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x573, &x574, x6, + UINT32_C(0x18630421)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x575, &x576, x6, + UINT32_C(0x2849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x577, &x578, x6, + UINT32_C(0x1017bb39)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x579, &x580, x6, + UINT32_C(0xc2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x581, &x582, x6, + UINT32_C(0x409973b4)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x583, &x584, x6, + UINT32_C(0xc427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x585, &x586, 0x0, + x584, x581); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x587, &x588, + x586, x582, x579); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x589, &x590, + x588, x580, x577); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x591, &x592, + x590, x578, x575); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x593, &x594, + x592, x576, x573); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x595, &x596, + x594, x574, x571); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x597, &x598, + x596, x572, x569); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x599, &x600, 0x0, + x553, x583); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x601, &x602, + x600, x555, x585); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x603, &x604, + x602, x557, x587); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x605, &x606, + x604, x559, x589); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x607, &x608, + x606, x561, x591); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x609, &x610, + x608, x563, x593); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x611, &x612, + x610, x565, x595); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x613, &x614, + x612, x567, x597); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x615, &x616, x599, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x617, &x618, x615, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x619, &x620, x615, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x621, &x622, x615, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x623, &x624, x615, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x625, &x626, x615, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x627, &x628, x615, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x629, &x630, x615, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x631, &x632, x615, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x633, &x634, 0x0, + x632, x629); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x635, &x636, + x634, x630, x627); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x637, &x638, + x636, x628, x625); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x639, &x640, + x638, x626, x623); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x641, &x642, + x640, x624, x621); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x643, &x644, + x642, x622, x619); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x645, &x646, + x644, x620, x617); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x647, &x648, 0x0, + x599, x631); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x649, &x650, + x648, x601, x633); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x651, &x652, + x650, x603, x635); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x653, &x654, + x652, x605, x637); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x655, &x656, + x654, x607, x639); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x657, &x658, + x656, x609, x641); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x659, &x660, + x658, x611, x643); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x661, &x662, + x660, x613, x645); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x663, &x664, x662, (((uint32_t)x614 + x568) + (x598 + x570)), + (x646 + x618)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x665, &x666, x7, + UINT32_C(0x807a394e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x667, &x668, x7, + UINT32_C(0xde097652)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x669, &x670, x7, + UINT32_C(0x18630421)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x671, &x672, x7, + UINT32_C(0x2849c07b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x673, &x674, x7, + UINT32_C(0x1017bb39)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x675, &x676, x7, + UINT32_C(0xc2d346c5)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x677, &x678, x7, + UINT32_C(0x409973b4)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x679, &x680, x7, + UINT32_C(0xc427fcea)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x681, &x682, 0x0, + x680, x677); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x683, &x684, + x682, x678, x675); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x685, &x686, + x684, x676, x673); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x687, &x688, + x686, x674, x671); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x689, &x690, + x688, x672, x669); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x691, &x692, + x690, x670, x667); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x693, &x694, + x692, x668, x665); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x695, &x696, 0x0, + x649, x679); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x697, &x698, + x696, x651, x681); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x699, &x700, + x698, x653, x683); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x701, &x702, + x700, x655, x685); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x703, &x704, + x702, x657, x687); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x705, &x706, + x704, x659, x689); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x707, &x708, + x706, x661, x691); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x709, &x710, + x708, x663, x693); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x711, &x712, x695, + UINT32_C(0x727c176d)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x713, &x714, x711, + UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x715, &x716, x711, + UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x717, &x718, x711, + UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x719, &x720, x711, + UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x721, &x722, x711, + UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x723, &x724, x711, + UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x725, &x726, x711, + UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mulx_u32(&x727, &x728, x711, + UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x729, &x730, 0x0, + x728, x725); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x731, &x732, + x730, x726, x723); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x733, &x734, + x732, x724, x721); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x735, &x736, + x734, x722, x719); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x737, &x738, + x736, x720, x717); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x739, &x740, + x738, x718, x715); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x741, &x742, + x740, x716, x713); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x743, &x744, 0x0, + x695, x727); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x745, &x746, + x744, x697, x729); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x747, &x748, + x746, x699, x731); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x749, &x750, + x748, x701, x733); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x751, &x752, + x750, x703, x735); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x753, &x754, + x752, x705, x737); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x755, &x756, + x754, x707, x739); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32(&x757, &x758, + x756, x709, x741); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_addcarryx_u32( + &x759, &x760, x758, (((uint32_t)x710 + x664) + (x694 + x666)), + (x742 + x714)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x761, &x762, 0x0, x745, UINT32_C(0x22d759b)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x763, &x764, x762, x747, UINT32_C(0x7998f7b9)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x765, &x766, x764, x749, UINT32_C(0x789051d3)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x767, &x768, x766, x751, UINT32_C(0xcf846e86)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x769, &x770, x768, x753, UINT32_C(0x6b41c8aa)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x771, &x772, x770, x755, UINT32_C(0xab1ec85e)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x773, &x774, x772, x757, UINT32_C(0x5a858107)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32( + &x775, &x776, x774, x759, UINT32_C(0x9b9f605f)); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_subborrowx_u32(&x777, &x778, + x776, x760, 0x0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x779, x778, x761, + x745); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x780, x778, x763, + x747); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x781, x778, x765, + x749); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x782, x778, x767, + x751); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x783, x778, x769, + x753); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x784, x778, x771, + x755); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x785, x778, x773, + x757); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32(&x786, x778, x775, + x759); + out1[0] = x779; + out1[1] = x780; + out1[2] = x781; + out1[3] = x782; + out1[4] = x783; + out1[5] = x784; + out1[6] = x785; + out1[7] = x786; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_nonzero( + uint32_t *out1, const uint32_t arg1[8]) { + uint32_t x1; + x1 = ((arg1[0]) | + ((arg1[1]) | + ((arg1[2]) | + ((arg1[3]) | + ((arg1[4]) | + ((arg1[5]) | ((arg1[6]) | ((arg1[7]) | (uint32_t)0x0)))))))); + *out1 = x1; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_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]] + * arg3: [[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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + uint32_t out1[8], fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_uint1 arg1, + const uint32_t arg2[8], const uint32_t arg3[8]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + &x1, arg1, (arg2[0]), (arg3[0])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + &x2, arg1, (arg2[1]), (arg3[1])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + &x3, arg1, (arg2[2]), (arg3[2])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + &x4, arg1, (arg2[3]), (arg3[3])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + &x5, arg1, (arg2[4]), (arg3[4])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + &x6, arg1, (arg2[5]), (arg3[5])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + &x7, arg1, (arg2[6]), (arg3[6])); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_cmovznz_u32( + &x8, arg1, (arg2[7]), (arg3[7])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31] + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * 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]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes( + uint8_t out1[32], const uint32_t arg1[8]) { + 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; + uint8_t x10; + uint32_t x11; + uint8_t x12; + uint8_t x13; + uint8_t x14; + uint8_t x15; + uint32_t x16; + uint8_t x17; + uint32_t x18; + uint8_t x19; + uint8_t x20; + uint8_t x21; + uint8_t x22; + uint32_t x23; + uint8_t x24; + uint32_t x25; + uint8_t x26; + uint8_t x27; + uint8_t x28; + uint8_t x29; + uint32_t x30; + uint8_t x31; + uint32_t x32; + uint8_t x33; + uint8_t x34; + uint8_t x35; + uint8_t x36; + uint32_t x37; + uint8_t x38; + uint32_t x39; + uint8_t x40; + uint8_t x41; + uint8_t x42; + uint8_t x43; + uint32_t x44; + uint8_t x45; + uint32_t x46; + uint8_t x47; + uint8_t x48; + uint8_t x49; + uint8_t x50; + uint32_t x51; + uint8_t x52; + uint32_t x53; + uint8_t x54; + uint8_t x55; + uint8_t x56; + uint8_t x57; + uint32_t x58; + uint8_t x59; + uint32_t x60; + uint8_t x61; + uint8_t x62; + uint8_t x63; + x1 = (arg1[7]); + x2 = (arg1[6]); + x3 = (arg1[5]); + x4 = (arg1[4]); + x5 = (arg1[3]); + x6 = (arg1[2]); + x7 = (arg1[1]); + x8 = (arg1[0]); + x9 = (x8 >> 8); + x10 = (uint8_t)(x8 & UINT8_C(0xff)); + x11 = (x9 >> 8); + x12 = (uint8_t)(x9 & UINT8_C(0xff)); + x13 = (uint8_t)(x11 >> 8); + x14 = (uint8_t)(x11 & UINT8_C(0xff)); + x15 = (uint8_t)(x13 & UINT8_C(0xff)); + x16 = (x7 >> 8); + x17 = (uint8_t)(x7 & UINT8_C(0xff)); + x18 = (x16 >> 8); + x19 = (uint8_t)(x16 & UINT8_C(0xff)); + x20 = (uint8_t)(x18 >> 8); + x21 = (uint8_t)(x18 & UINT8_C(0xff)); + x22 = (uint8_t)(x20 & UINT8_C(0xff)); + x23 = (x6 >> 8); + x24 = (uint8_t)(x6 & UINT8_C(0xff)); + x25 = (x23 >> 8); + x26 = (uint8_t)(x23 & UINT8_C(0xff)); + x27 = (uint8_t)(x25 >> 8); + x28 = (uint8_t)(x25 & UINT8_C(0xff)); + x29 = (uint8_t)(x27 & UINT8_C(0xff)); + x30 = (x5 >> 8); + x31 = (uint8_t)(x5 & UINT8_C(0xff)); + x32 = (x30 >> 8); + x33 = (uint8_t)(x30 & UINT8_C(0xff)); + x34 = (uint8_t)(x32 >> 8); + x35 = (uint8_t)(x32 & UINT8_C(0xff)); + x36 = (uint8_t)(x34 & UINT8_C(0xff)); + x37 = (x4 >> 8); + x38 = (uint8_t)(x4 & UINT8_C(0xff)); + x39 = (x37 >> 8); + x40 = (uint8_t)(x37 & UINT8_C(0xff)); + x41 = (uint8_t)(x39 >> 8); + x42 = (uint8_t)(x39 & UINT8_C(0xff)); + x43 = (uint8_t)(x41 & UINT8_C(0xff)); + x44 = (x3 >> 8); + x45 = (uint8_t)(x3 & UINT8_C(0xff)); + x46 = (x44 >> 8); + x47 = (uint8_t)(x44 & UINT8_C(0xff)); + x48 = (uint8_t)(x46 >> 8); + x49 = (uint8_t)(x46 & UINT8_C(0xff)); + x50 = (uint8_t)(x48 & UINT8_C(0xff)); + x51 = (x2 >> 8); + x52 = (uint8_t)(x2 & UINT8_C(0xff)); + x53 = (x51 >> 8); + x54 = (uint8_t)(x51 & UINT8_C(0xff)); + x55 = (uint8_t)(x53 >> 8); + x56 = (uint8_t)(x53 & UINT8_C(0xff)); + x57 = (uint8_t)(x55 & UINT8_C(0xff)); + x58 = (x1 >> 8); + x59 = (uint8_t)(x1 & UINT8_C(0xff)); + x60 = (x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (uint8_t)(x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x15; + out1[4] = x17; + out1[5] = x19; + out1[6] = x21; + out1[7] = x22; + out1[8] = x24; + out1[9] = x26; + out1[10] = x28; + out1[11] = x29; + out1[12] = x31; + out1[13] = x33; + out1[14] = x35; + out1[15] = x36; + out1[16] = x38; + out1[17] = x40; + out1[18] = x42; + out1[19] = x43; + out1[20] = x45; + out1[21] = x47; + out1[22] = x49; + out1[23] = x50; + out1[24] = x52; + out1[25] = x54; + out1[26] = x56; + out1[27] = x57; + out1[28] = x59; + out1[29] = x61; + out1[30] = x63; + out1[31] = x62; +} + +/* + * The function fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order. + * Preconditions: + * 0 ≤ bytes_eval arg1 < m + * Postconditions: + * eval out1 mod m = bytes_eval arg1 mod m + * 0 ≤ eval out1 < 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]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes( + uint32_t out1[8], const uint8_t arg1[32]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint8_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint8_t x8; + uint32_t x9; + uint32_t x10; + uint32_t x11; + uint8_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint8_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint8_t x20; + uint32_t x21; + uint32_t x22; + uint32_t x23; + uint8_t x24; + uint32_t x25; + uint32_t x26; + uint32_t x27; + uint8_t x28; + uint32_t x29; + uint32_t x30; + uint32_t x31; + uint8_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; + x1 = ((uint32_t)(arg1[31]) << 24); + x2 = ((uint32_t)(arg1[30]) << 16); + x3 = ((uint32_t)(arg1[29]) << 8); + x4 = (arg1[28]); + x5 = ((uint32_t)(arg1[27]) << 24); + x6 = ((uint32_t)(arg1[26]) << 16); + x7 = ((uint32_t)(arg1[25]) << 8); + x8 = (arg1[24]); + x9 = ((uint32_t)(arg1[23]) << 24); + x10 = ((uint32_t)(arg1[22]) << 16); + x11 = ((uint32_t)(arg1[21]) << 8); + x12 = (arg1[20]); + x13 = ((uint32_t)(arg1[19]) << 24); + x14 = ((uint32_t)(arg1[18]) << 16); + x15 = ((uint32_t)(arg1[17]) << 8); + x16 = (arg1[16]); + x17 = ((uint32_t)(arg1[15]) << 24); + x18 = ((uint32_t)(arg1[14]) << 16); + x19 = ((uint32_t)(arg1[13]) << 8); + x20 = (arg1[12]); + x21 = ((uint32_t)(arg1[11]) << 24); + x22 = ((uint32_t)(arg1[10]) << 16); + x23 = ((uint32_t)(arg1[9]) << 8); + x24 = (arg1[8]); + x25 = ((uint32_t)(arg1[7]) << 24); + x26 = ((uint32_t)(arg1[6]) << 16); + x27 = ((uint32_t)(arg1[5]) << 8); + x28 = (arg1[4]); + x29 = ((uint32_t)(arg1[3]) << 24); + x30 = ((uint32_t)(arg1[2]) << 16); + x31 = ((uint32_t)(arg1[1]) << 8); + x32 = (arg1[0]); + x33 = (x32 + (x31 + (x30 + x29))); + x34 = (x33 & UINT32_C(0xffffffff)); + x35 = (x4 + (x3 + (x2 + x1))); + x36 = (x8 + (x7 + (x6 + x5))); + x37 = (x12 + (x11 + (x10 + x9))); + x38 = (x16 + (x15 + (x14 + x13))); + x39 = (x20 + (x19 + (x18 + x17))); + x40 = (x24 + (x23 + (x22 + x21))); + x41 = (x28 + (x27 + (x26 + x25))); + x42 = (x41 & UINT32_C(0xffffffff)); + x43 = (x40 & UINT32_C(0xffffffff)); + x44 = (x39 & UINT32_C(0xffffffff)); + x45 = (x38 & UINT32_C(0xffffffff)); + x46 = (x37 & UINT32_C(0xffffffff)); + x47 = (x36 & UINT32_C(0xffffffff)); + out1[0] = x34; + out1[1] = x42; + out1[2] = x43; + out1[3] = x44; + out1[4] = x45; + out1[5] = x46; + out1[6] = x47; + out1[7] = x35; +} + +/* 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_GostR3410_2001_CryptoPro_C_ParamSet/fe_inv.op3 + * sliding window w=5 + */ +static void fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t11, t13, t15, t17, t19, t21, t23, t25, t27, t29, t3, t31, t5, t7, + t9; + + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t3, t1, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t5, t3, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t7, t5, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t9, t7, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t11, t9, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t13, t11, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t15, t13, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t17, t15, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t19, t17, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t21, t19, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t23, t21, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t25, t23, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t27, t25, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t29, t27, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t31, t29, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, t9); + for (i = 0; i < 4; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t23); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t7); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t27); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t15); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t21); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t21); + for (i = 0; i < 8; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t11); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t29); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t11); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t15); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t25); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t15); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t13); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t13); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t25); + for (i = 0; i < 8; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t21); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t11); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t31); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t3); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t29); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t3); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t15); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t9); + for (i = 0; i < 8; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t5); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t7); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t19); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t15); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t25); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t17); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t29); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t29); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t25); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t1); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t11); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t23); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(acc, acc, t11); + for (i = 0; i < 7; i++) + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(acc, acc); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(output, acc, t25); +} + +/* curve coefficient constants */ + +static const limb_t const_one[8] = {UINT32_C(0xFDD28A65), UINT32_C(0x86670846), + UINT32_C(0x876FAE2C), UINT32_C(0x307B9179), + UINT32_C(0x94BE3755), UINT32_C(0x54E137A1), + UINT32_C(0xA57A7EF8), UINT32_C(0x64609FA0)}; + +static const limb_t const_b[8] = {UINT32_C(0x3BDA2ACF), UINT32_C(0x4BE8A4E9), + UINT32_C(0x90D382DD), UINT32_C(0x79CC0E3E), + UINT32_C(0x1D9CC79B), UINT32_C(0x3BA4C8B0), + UINT32_C(0x966609E9), UINT32_C(0x5CC73B5A)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[27][16] = { + { + {{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(0x00254F12), UINT32_C(0xD082E007), UINT32_C(0xEB1F1421), + UINT32_C(0xC5BA8184), UINT32_C(0xF010780D), UINT32_C(0x4EC9E7D0), + UINT32_C(0x2794C8D5), UINT32_C(0x7846B5B7)}}, + {{UINT32_C(0x7225A595), UINT32_C(0x870FB041), UINT32_C(0x5FD57F04), + UINT32_C(0x6CAFAE70), UINT32_C(0x2E7DB9BA), UINT32_C(0xFEC1C2AC), + UINT32_C(0x127A5862), UINT32_C(0x9230823E)}, + {UINT32_C(0xE4464836), UINT32_C(0xF6CFDB6D), UINT32_C(0x9A945AC0), + UINT32_C(0x3D79631B), UINT32_C(0x3D0C880D), UINT32_C(0xA1FCF2DF), + UINT32_C(0x0EE6A611), UINT32_C(0x17C83E50)}}, + {{UINT32_C(0xE42734FD), UINT32_C(0x3C79C11A), UINT32_C(0xAC4040C3), + UINT32_C(0x1614B2BE), UINT32_C(0x2C3A23A5), UINT32_C(0xDD143725), + UINT32_C(0x8AF4F7CD), UINT32_C(0x1A02DA83)}, + {UINT32_C(0xE7D6991A), UINT32_C(0x23D588D6), UINT32_C(0xD2B3E364), + UINT32_C(0x5F332676), UINT32_C(0x9134BA88), UINT32_C(0x35382680), + UINT32_C(0xD27090E5), UINT32_C(0x08ECA826)}}, + {{UINT32_C(0x26761106), UINT32_C(0x231F8DC8), UINT32_C(0x3D78B14B), + UINT32_C(0x7363050E), UINT32_C(0xC05C4381), UINT32_C(0xC3B9A1B8), + UINT32_C(0xB8ACD9AC), UINT32_C(0x29727635)}, + {UINT32_C(0x2ED54E6C), UINT32_C(0xDD416AE9), UINT32_C(0x0B48A87C), + UINT32_C(0x54608435), UINT32_C(0x97093D22), UINT32_C(0x2C8DEEA4), + UINT32_C(0x0D716BAF), UINT32_C(0x87D2924C)}}, + {{UINT32_C(0x619206D6), UINT32_C(0x43281D30), UINT32_C(0x68744E44), + UINT32_C(0x4A8FFC87), UINT32_C(0x708208D5), UINT32_C(0xB1011A3D), + UINT32_C(0xA035B0B9), UINT32_C(0x2FE86E7B)}, + {UINT32_C(0xA3762860), UINT32_C(0x82F43088), UINT32_C(0xB33595D4), + UINT32_C(0x67B5A303), UINT32_C(0xB477BECD), UINT32_C(0x262F16EB), + UINT32_C(0x23E2816A), UINT32_C(0x1D38D4A7)}}, + {{UINT32_C(0xAD83C032), UINT32_C(0x91BBA3C0), UINT32_C(0x234F2FF3), + UINT32_C(0x7DBC2EB6), UINT32_C(0x6D18A737), UINT32_C(0xE2C00C15), + UINT32_C(0xCCF6DC2D), UINT32_C(0x71D1AE8B)}, + {UINT32_C(0x2DB77239), UINT32_C(0x6183816A), UINT32_C(0x0E228C41), + UINT32_C(0xC545A512), UINT32_C(0x0F49A679), UINT32_C(0x3B96D6BC), + UINT32_C(0xE49E39C2), UINT32_C(0x9831D683)}}, + {{UINT32_C(0x20DA13D9), UINT32_C(0xEEAA17A9), UINT32_C(0x8ABECADE), + UINT32_C(0xEE3130FB), UINT32_C(0xA6E3D089), UINT32_C(0xBFB2CE6A), + UINT32_C(0xE627A07C), UINT32_C(0x22BCDCEE)}, + {UINT32_C(0x955A1D9E), UINT32_C(0x86D7A50C), UINT32_C(0xE4E00B9E), + UINT32_C(0xCD60A425), UINT32_C(0x615B9E91), UINT32_C(0x5407A6F8), + UINT32_C(0x4F1CA93D), UINT32_C(0x7F17B171)}}, + {{UINT32_C(0x0DB59F2C), UINT32_C(0xBC351DE0), UINT32_C(0x9CDAF8AF), + UINT32_C(0x1470E6A1), UINT32_C(0x60D3B27A), UINT32_C(0x461ED289), + UINT32_C(0x49C7F789), UINT32_C(0x122C8F4B)}, + {UINT32_C(0x069FC8CE), UINT32_C(0xAB56E614), UINT32_C(0xC34E487C), + UINT32_C(0x9836B010), UINT32_C(0x3FE009EB), UINT32_C(0x9EE06703), + UINT32_C(0xAA019563), UINT32_C(0x88C8DC64)}}, + {{UINT32_C(0x63DDBB1F), UINT32_C(0xD0B4A996), UINT32_C(0x1D154696), + UINT32_C(0x483286E5), UINT32_C(0x9F0D6F4E), UINT32_C(0xF0586DB8), + UINT32_C(0x980446C8), UINT32_C(0x38167987)}, + {UINT32_C(0xE4166B55), UINT32_C(0x86A2ABAC), UINT32_C(0xA8366C64), + UINT32_C(0x4E7B4F96), UINT32_C(0xED997D8E), UINT32_C(0x20CF2108), + UINT32_C(0x1D01C009), UINT32_C(0x20EA9844)}}, + {{UINT32_C(0xB89CE05A), UINT32_C(0x028B520E), UINT32_C(0x4FAAD420), + UINT32_C(0xEF41147D), UINT32_C(0x121A2A0A), UINT32_C(0xB280CCD3), + UINT32_C(0x86E8F591), UINT32_C(0x4C677C83)}, + {UINT32_C(0xA390AA99), UINT32_C(0xB42F67B2), UINT32_C(0x19F8A01A), + UINT32_C(0xC4EF553B), UINT32_C(0x6979027F), UINT32_C(0x86761139), + UINT32_C(0x82C202BE), UINT32_C(0x6F177663)}}, + {{UINT32_C(0x27C5C7CC), UINT32_C(0xBEF6B996), UINT32_C(0x10799DB8), + UINT32_C(0xB2D34F8B), UINT32_C(0x48AD9B1E), UINT32_C(0x132E1A3D), + UINT32_C(0xE68B9907), UINT32_C(0x2971BFED)}, + {UINT32_C(0xC6B743B5), UINT32_C(0x312F6D31), UINT32_C(0xA718E0A8), + UINT32_C(0xCF123317), UINT32_C(0xFD58637C), UINT32_C(0xCF1E5266), + UINT32_C(0xE046167C), UINT32_C(0x56BA8362)}}, + {{UINT32_C(0x0E910D7F), UINT32_C(0xD680969D), UINT32_C(0x8A4689F9), + UINT32_C(0x634FB3C2), UINT32_C(0x09FDD299), UINT32_C(0xA79A56DF), + UINT32_C(0x89411C3D), UINT32_C(0x9065269E)}, + {UINT32_C(0x82C6076C), UINT32_C(0x5D22254E), UINT32_C(0x81FEA171), + UINT32_C(0xDE7D78F0), UINT32_C(0x10BCDA87), UINT32_C(0xE1366964), + UINT32_C(0x97638B85), UINT32_C(0x98B58F5A)}}, + {{UINT32_C(0xFB5EDF3F), UINT32_C(0xA532DED4), UINT32_C(0x833A7E2F), + UINT32_C(0x604E5631), UINT32_C(0x3A09C74E), UINT32_C(0x7C4051D3), + UINT32_C(0xEDFBEB4B), UINT32_C(0x51D1108A)}, + {UINT32_C(0x4DF1AB4D), UINT32_C(0x9AE61F9E), UINT32_C(0x163DB1A5), + UINT32_C(0xFD4966F3), UINT32_C(0x7075AD6D), UINT32_C(0xF6C44E55), + UINT32_C(0x4AF24611), UINT32_C(0x670D0D6F)}}, + {{UINT32_C(0xD369D301), UINT32_C(0xD99925FF), UINT32_C(0x7665BCF4), + UINT32_C(0xC17E9767), UINT32_C(0xCB5A2128), UINT32_C(0xB5A908F1), + UINT32_C(0x9C726C9F), UINT32_C(0x1981791D)}, + {UINT32_C(0xE0861F4E), UINT32_C(0xC4249418), UINT32_C(0xEE045D5E), + UINT32_C(0x2A63399F), UINT32_C(0xA1B974FF), UINT32_C(0x246958FD), + UINT32_C(0x0FC6F7A0), UINT32_C(0x668016A2)}}, + {{UINT32_C(0xEDE07C08), UINT32_C(0xEB7018AD), UINT32_C(0x2E33D1D9), + UINT32_C(0xDF3C1259), UINT32_C(0xDC24E3DE), UINT32_C(0xEE0913DA), + UINT32_C(0x35EB6B0D), UINT32_C(0x1C632D5B)}, + {UINT32_C(0x2C56E1B2), UINT32_C(0xC69396DD), UINT32_C(0xA837CE8F), + UINT32_C(0x01F0B034), UINT32_C(0xB6882E32), UINT32_C(0x7842B98D), + UINT32_C(0x9E61FCA6), UINT32_C(0x8FAC9230)}}, + {{UINT32_C(0x8A782CFE), UINT32_C(0x1DBB7D99), UINT32_C(0xC9322BE7), + UINT32_C(0xEB945B49), UINT32_C(0xE208123B), UINT32_C(0xDCCB4E6E), + UINT32_C(0xFC024524), UINT32_C(0x1C7C265C)}, + {UINT32_C(0x6102BC63), UINT32_C(0xAD000D8A), UINT32_C(0x82575943), + UINT32_C(0x7D7F3C7B), UINT32_C(0x0D547A95), UINT32_C(0x8D2F0881), + UINT32_C(0xD94FFA6D), UINT32_C(0x7012377A)}}, + }, + { + {{UINT32_C(0x1EB6CBF7), UINT32_C(0xE3F78DE5), UINT32_C(0x72FA65DB), + UINT32_C(0xF4E08A61), UINT32_C(0x502A247E), UINT32_C(0x670B0E06), + UINT32_C(0x9877E492), UINT32_C(0x7A45D73E)}, + {UINT32_C(0x3DD0CDBC), UINT32_C(0x5FD754AD), UINT32_C(0x0125AB1F), + UINT32_C(0xA5C2B15E), UINT32_C(0xE614B7A9), UINT32_C(0xC503836F), + UINT32_C(0x2C50DCFE), UINT32_C(0x5548C424)}}, + {{UINT32_C(0xB9B38743), UINT32_C(0xCEE7BE65), UINT32_C(0x94BE028E), + UINT32_C(0xD5E41715), UINT32_C(0xB5C45F7D), UINT32_C(0x08EC3CA3), + UINT32_C(0xFB51261A), UINT32_C(0x1ACFAC17)}, + {UINT32_C(0xA9C04381), UINT32_C(0x45098D93), UINT32_C(0xA5B45DC8), + UINT32_C(0x717FC0DC), UINT32_C(0xEABEE4E5), UINT32_C(0xF352A9C2), + UINT32_C(0xF311B457), UINT32_C(0x1964AF20)}}, + {{UINT32_C(0x0802A755), UINT32_C(0x8C229808), UINT32_C(0x6140CDA7), + UINT32_C(0x46F0A7CA), UINT32_C(0xBC62603B), UINT32_C(0xF0EEB7AE), + UINT32_C(0x4BF4B451), UINT32_C(0x8432E152)}, + {UINT32_C(0x63967F94), UINT32_C(0x3C319825), UINT32_C(0xA042AE13), + UINT32_C(0xF04EACB6), UINT32_C(0x650A6ADB), UINT32_C(0xD7CB2DBC), + UINT32_C(0x78C9E166), UINT32_C(0x38A36EE3)}}, + {{UINT32_C(0xD3EE8657), UINT32_C(0x3527A5C5), UINT32_C(0x101645F9), + UINT32_C(0xBAA0DE97), UINT32_C(0xCE9D6A48), UINT32_C(0xC59C9803), + UINT32_C(0xF8F39FDF), UINT32_C(0x43D12449)}, + {UINT32_C(0x8DF7A72B), UINT32_C(0x65B3AB98), UINT32_C(0xAFDA9048), + UINT32_C(0xD225AF8E), UINT32_C(0x338A3694), UINT32_C(0x88C368B8), + UINT32_C(0xFBC813F1), UINT32_C(0x4A5A3C24)}}, + {{UINT32_C(0x9E2118B5), UINT32_C(0xCBCB725A), UINT32_C(0xCAA54794), + UINT32_C(0x113F36C5), UINT32_C(0x4A0A2267), UINT32_C(0x5900990E), + UINT32_C(0x0A9C1F11), UINT32_C(0x4E329EB1)}, + {UINT32_C(0xCD8918A7), UINT32_C(0xF47F4077), UINT32_C(0x3877B404), + UINT32_C(0x18A3C071), UINT32_C(0xEFEB2B6B), UINT32_C(0xCDEF4FE3), + UINT32_C(0xDE4D0540), UINT32_C(0x360982DB)}}, + {{UINT32_C(0xD5F8DACA), UINT32_C(0x42AB64F2), UINT32_C(0xEE88523D), + UINT32_C(0x604A9676), UINT32_C(0xAEFD1283), UINT32_C(0xD430CCAB), + UINT32_C(0x54465F7C), UINT32_C(0x3DA9D0E5)}, + {UINT32_C(0x41A4216B), UINT32_C(0x5EC145DF), UINT32_C(0xF7E7FBD9), + UINT32_C(0x7C8F2C51), UINT32_C(0xBD483D26), UINT32_C(0xA2E58A23), + UINT32_C(0xE4A908C8), UINT32_C(0x4739F7F9)}}, + {{UINT32_C(0x79370382), UINT32_C(0x37DDF872), UINT32_C(0x12C8E90E), + UINT32_C(0x9D26A55F), UINT32_C(0xE8EB0CA4), UINT32_C(0xFC1FA6CD), + UINT32_C(0xC29DC4F9), UINT32_C(0x826A29E5)}, + {UINT32_C(0xAA29F814), UINT32_C(0x15ECB621), UINT32_C(0x9DF1DFF7), + UINT32_C(0x4C8A8128), UINT32_C(0x66B549BB), UINT32_C(0xBB223019), + UINT32_C(0xB81A2863), UINT32_C(0x6CB21ACB)}}, + {{UINT32_C(0x11DA6928), UINT32_C(0xDD31ACC2), UINT32_C(0xA903D58F), + UINT32_C(0xF98867B0), UINT32_C(0xD3679348), UINT32_C(0xAD283697), + UINT32_C(0x301C3571), UINT32_C(0x67BFEFF9)}, + {UINT32_C(0x780BBBCE), UINT32_C(0xB745CAE6), UINT32_C(0x62F2EC5D), + UINT32_C(0x1A9C6618), UINT32_C(0xA1475BEB), UINT32_C(0xF9895684), + UINT32_C(0x4731A11D), UINT32_C(0x93E5ACE6)}}, + {{UINT32_C(0x7539483E), UINT32_C(0x0F6E9460), UINT32_C(0x9EF4EF16), + UINT32_C(0x5728E6DD), UINT32_C(0x062E946E), UINT32_C(0xE1DA86E1), + UINT32_C(0xF2E07759), UINT32_C(0x272EBC47)}, + {UINT32_C(0x909A578F), UINT32_C(0xE5E688E3), UINT32_C(0x7CFD1B7D), + UINT32_C(0x9F25D6D1), UINT32_C(0xADE1E2A4), UINT32_C(0xC582260F), + UINT32_C(0xA050071E), UINT32_C(0x2F50F74E)}}, + {{UINT32_C(0x2DF4D40D), UINT32_C(0xE0A8FE3F), UINT32_C(0x07791F88), + UINT32_C(0xB126E4EF), UINT32_C(0x2A88D242), UINT32_C(0x69759DB4), + UINT32_C(0xC9C1981C), UINT32_C(0x52592A3B)}, + {UINT32_C(0x72F649A1), UINT32_C(0xD0F41728), UINT32_C(0x0750EBAB), + UINT32_C(0x9FF19B2B), UINT32_C(0xE0D7D222), UINT32_C(0xEFC047F9), + UINT32_C(0x2E8140AF), UINT32_C(0x81491CA1)}}, + {{UINT32_C(0x675F821B), UINT32_C(0x2DA40FF1), UINT32_C(0x9E2E0502), + UINT32_C(0x2C91A287), UINT32_C(0x077D81FE), UINT32_C(0x993ECFF4), + UINT32_C(0x71CC3DAE), UINT32_C(0x3ABA2F2C)}, + {UINT32_C(0x168413DB), UINT32_C(0xED007670), UINT32_C(0xAFBD4E82), + UINT32_C(0xC07D61B5), UINT32_C(0x6BBADA24), UINT32_C(0xF078262E), + UINT32_C(0x9E6413CC), UINT32_C(0x0E0EDC62)}}, + {{UINT32_C(0xB7D099F9), UINT32_C(0x6CD0451D), UINT32_C(0xF8B12C83), + UINT32_C(0x8FB218E6), UINT32_C(0xE55EE1E4), UINT32_C(0x4D8C3B26), + UINT32_C(0x4A6FCD90), UINT32_C(0x94964906)}, + {UINT32_C(0x4BEACA48), UINT32_C(0x9ABB9685), UINT32_C(0x868EFEC7), + UINT32_C(0x6A749487), UINT32_C(0xC8D2932C), UINT32_C(0x46BB9B42), + UINT32_C(0xDE007BAC), UINT32_C(0x82384321)}}, + {{UINT32_C(0xA942DB71), UINT32_C(0xDBECB743), UINT32_C(0x21A6BC46), + UINT32_C(0x21B52115), UINT32_C(0x24C17D78), UINT32_C(0xE49B6894), + UINT32_C(0x89A08E17), UINT32_C(0x737FD3F1)}, + {UINT32_C(0xC36E4E57), UINT32_C(0xF833E404), UINT32_C(0x01E17CE6), + UINT32_C(0x512C114A), UINT32_C(0x50D75050), UINT32_C(0x65A23D73), + UINT32_C(0xF2F2D438), UINT32_C(0x838CA746)}}, + {{UINT32_C(0xA20632B7), UINT32_C(0x28F9220C), UINT32_C(0x642358D6), + UINT32_C(0x72D8C347), UINT32_C(0xE89CAA6F), UINT32_C(0xAB15FE1B), + UINT32_C(0x6E16374A), UINT32_C(0x2A09B143)}, + {UINT32_C(0xB983CFE8), UINT32_C(0x4CED0986), UINT32_C(0x97B84E88), + UINT32_C(0xD9B067B6), UINT32_C(0xC2350F8F), UINT32_C(0x926FC5F5), + UINT32_C(0x84E2078F), UINT32_C(0x31D77358)}}, + {{UINT32_C(0x7FF17BA1), UINT32_C(0xA7815CE7), UINT32_C(0xA26BBA1B), + UINT32_C(0xBE80BB6C), UINT32_C(0xF86DF104), UINT32_C(0x66DAE535), + UINT32_C(0xAB1B9C09), UINT32_C(0x72739199)}, + {UINT32_C(0x54056E67), UINT32_C(0x8E93F3C8), UINT32_C(0xEBF23595), + UINT32_C(0xDC5E3855), UINT32_C(0x78123000), UINT32_C(0x70D1033C), + UINT32_C(0xF22DD2BD), UINT32_C(0x50874350)}}, + {{UINT32_C(0xC2700468), UINT32_C(0x533F213B), UINT32_C(0x11BEA732), + UINT32_C(0x31E6AA9C), UINT32_C(0x4491DC82), UINT32_C(0xCB5E184E), + UINT32_C(0x5BD63975), UINT32_C(0x8A68049A)}, + {UINT32_C(0xF86A41D1), UINT32_C(0x1724AC47), UINT32_C(0xECA0DA11), + UINT32_C(0xDF9A0CA3), UINT32_C(0x71F0EA19), UINT32_C(0xE5E1489C), + UINT32_C(0xC9DC7BF2), UINT32_C(0x0E20661A)}}, + }, + { + {{UINT32_C(0xF86D9DA8), UINT32_C(0x5EB4E319), UINT32_C(0xE0A46703), + UINT32_C(0x3CBF130E), UINT32_C(0x00A4AB17), UINT32_C(0x166D52DA), + UINT32_C(0xB7030861), UINT32_C(0x27A80547)}, + {UINT32_C(0x399C32BA), UINT32_C(0xA7601086), UINT32_C(0xC2F0A5E5), + UINT32_C(0x571E4E4B), UINT32_C(0x39BED44D), UINT32_C(0x72D12F6B), + UINT32_C(0x1AF8F25F), UINT32_C(0x8FDCCE3D)}}, + {{UINT32_C(0x7DFEB40D), UINT32_C(0x281F7AF9), UINT32_C(0xD7F767D5), + UINT32_C(0x0CCE33B9), UINT32_C(0x8818C1E6), UINT32_C(0x3E8BF3F4), + UINT32_C(0x4BA4647A), UINT32_C(0x6D909D0D)}, + {UINT32_C(0xFAC574D1), UINT32_C(0x91D77BA0), UINT32_C(0x68CA7FEC), + UINT32_C(0xD2592661), UINT32_C(0x281F269C), UINT32_C(0xC4C7D6B5), + UINT32_C(0xDA42CDDD), UINT32_C(0x7A41CD78)}}, + {{UINT32_C(0xA3B8F255), UINT32_C(0xBC8E0D27), UINT32_C(0x1C3E5190), + UINT32_C(0xF5E2A8B1), UINT32_C(0xD609F668), UINT32_C(0x8C38862B), + UINT32_C(0x0631D50F), UINT32_C(0x4E31C18E)}, + {UINT32_C(0xF13E0CCD), UINT32_C(0x9013EDDB), UINT32_C(0x41EFDAF7), + UINT32_C(0x83B04E68), UINT32_C(0xDC82597F), UINT32_C(0x15EC4BB8), + UINT32_C(0x56117705), UINT32_C(0x50595150)}}, + {{UINT32_C(0x1E0E0161), UINT32_C(0xD25F244D), UINT32_C(0x1A437FBA), + UINT32_C(0x6C975D7B), UINT32_C(0x95F2AD8C), UINT32_C(0x305DB2DF), + UINT32_C(0x3B9CC742), UINT32_C(0x17D6E005)}, + {UINT32_C(0xE60BC3C3), UINT32_C(0x6A849F76), UINT32_C(0xBF8C3790), + UINT32_C(0x35523E08), UINT32_C(0x239140E2), UINT32_C(0xF18B5335), + UINT32_C(0x7CA5FF40), UINT32_C(0x5E857055)}}, + {{UINT32_C(0xA4250E95), UINT32_C(0xB48F07A4), UINT32_C(0xC7F17667), + UINT32_C(0x068735AE), UINT32_C(0x94771B24), UINT32_C(0x30F8D313), + UINT32_C(0xA495A064), UINT32_C(0x598EA397)}, + {UINT32_C(0x68B76855), UINT32_C(0xBF192529), UINT32_C(0xC7C0D2D6), + UINT32_C(0x897E3CC6), UINT32_C(0x64EC9649), UINT32_C(0xA2A4948F), + UINT32_C(0xAE7C8598), UINT32_C(0x1027891A)}}, + {{UINT32_C(0x04585685), UINT32_C(0x0442E6CB), UINT32_C(0x82A2D258), + UINT32_C(0x09BA61DA), UINT32_C(0x0AE5466D), UINT32_C(0x7C5400B1), + UINT32_C(0xC2133893), UINT32_C(0x0A0B71B0)}, + {UINT32_C(0xD5EF6E93), UINT32_C(0x04E3D98A), UINT32_C(0xF332BDF2), + UINT32_C(0x177EA5F8), UINT32_C(0xC3FAE583), UINT32_C(0xE7CF3F71), + UINT32_C(0x8AE0CFD7), UINT32_C(0x40C45133)}}, + {{UINT32_C(0x9B82E738), UINT32_C(0x6BE94FC3), UINT32_C(0x8BC262E2), + UINT32_C(0x212FB804), UINT32_C(0xB22E21FF), UINT32_C(0xE17F6A7A), + UINT32_C(0x15E960BB), UINT32_C(0x22B7BDAB)}, + {UINT32_C(0x771350C2), UINT32_C(0xE154C945), UINT32_C(0x882DB07B), + UINT32_C(0x6505B8EB), UINT32_C(0xC7E3ABD3), UINT32_C(0x149A0A16), + UINT32_C(0x81C30AAE), UINT32_C(0x78F78ABF)}}, + {{UINT32_C(0xC954BC0A), UINT32_C(0x6ED81415), UINT32_C(0x70E55349), + UINT32_C(0x316E8012), UINT32_C(0x50399C09), UINT32_C(0xEC02323B), + UINT32_C(0x8559C3A9), UINT32_C(0x963BA97B)}, + {UINT32_C(0x037EC345), UINT32_C(0x39FCE50E), UINT32_C(0xD5BF03FB), + UINT32_C(0x422A082D), UINT32_C(0x18DCC77E), UINT32_C(0x59ED39E4), + UINT32_C(0xA40AA978), UINT32_C(0x4CFC3F11)}}, + {{UINT32_C(0x55D7C9B6), UINT32_C(0x85A56922), UINT32_C(0xB451111B), + UINT32_C(0x5BC590E2), UINT32_C(0x8782C71B), UINT32_C(0x3BCB2315), + UINT32_C(0x632246A9), UINT32_C(0x1F3456C4)}, + {UINT32_C(0x9CFBBE19), UINT32_C(0xEA577AD9), UINT32_C(0x35CCE939), + UINT32_C(0x051BEE40), UINT32_C(0x1A0C589C), UINT32_C(0xDC300899), + UINT32_C(0xD2095619), UINT32_C(0x14877ECE)}}, + {{UINT32_C(0x95024C5E), UINT32_C(0xB64D0EC6), UINT32_C(0xB94CDF74), + UINT32_C(0xB0597195), UINT32_C(0x16844010), UINT32_C(0x3B97B513), + UINT32_C(0xCCBABC63), UINT32_C(0x48799881)}, + {UINT32_C(0xD9819075), UINT32_C(0x0E3119AE), UINT32_C(0xEB0299FD), + UINT32_C(0xA5DCA9C1), UINT32_C(0x4A404D13), UINT32_C(0x8063D788), + UINT32_C(0x8044EBE2), UINT32_C(0x974D2A1A)}}, + {{UINT32_C(0xB8E14640), UINT32_C(0xB6589045), UINT32_C(0x5507B9BE), + UINT32_C(0xFAD60A43), UINT32_C(0x56FF32BC), UINT32_C(0x9D540C1C), + UINT32_C(0x74265A69), UINT32_C(0x47ECC24F)}, + {UINT32_C(0xDB3E64C9), UINT32_C(0x0C829F18), UINT32_C(0x72E87B2B), + UINT32_C(0xF7C0C6D7), UINT32_C(0x16B616CE), UINT32_C(0xCB3FC512), + UINT32_C(0xB94F69B1), UINT32_C(0x549B9227)}}, + {{UINT32_C(0xDB235273), UINT32_C(0xB151DEE9), UINT32_C(0x6D65606C), + UINT32_C(0x2FD9496F), UINT32_C(0xD62B5B0D), UINT32_C(0x6A5E172D), + UINT32_C(0xEA0AE249), UINT32_C(0x181E605D)}, + {UINT32_C(0x8911490A), UINT32_C(0x66D7EB09), UINT32_C(0x2E70DEF2), + UINT32_C(0x85E174A3), UINT32_C(0x4EF8CFA9), UINT32_C(0x2DA13354), + UINT32_C(0x3E69BD22), UINT32_C(0x1B87FE62)}}, + {{UINT32_C(0x2BB09564), UINT32_C(0x2DF420CA), UINT32_C(0x7ACEE4D4), + UINT32_C(0x1AC26F76), UINT32_C(0x2BC7EF7A), UINT32_C(0x50C68E6F), + UINT32_C(0xB445B2FE), UINT32_C(0x4730D654)}, + {UINT32_C(0x8B57D38D), UINT32_C(0x90C040D9), UINT32_C(0x33CA2C77), + UINT32_C(0x28793DB5), UINT32_C(0xAC6A4BE8), UINT32_C(0x22D2B573), + UINT32_C(0xB72E7E01), UINT32_C(0x68C0DBDD)}}, + {{UINT32_C(0x09E2D3FF), UINT32_C(0xDF70BCDC), UINT32_C(0x9F20F624), + UINT32_C(0xB6E59970), UINT32_C(0x6DE3119E), UINT32_C(0x5E04FDE7), + UINT32_C(0xD5705A5D), UINT32_C(0x1C9B43FF)}, + {UINT32_C(0x681270B0), UINT32_C(0x7C23A517), UINT32_C(0x9303BF40), + UINT32_C(0xDD7FC833), UINT32_C(0x458EE80A), UINT32_C(0x3028E496), + UINT32_C(0x52590EEF), UINT32_C(0x0C720063)}}, + {{UINT32_C(0x2850A5AE), UINT32_C(0x27B29710), UINT32_C(0xAA3E0397), + UINT32_C(0xD1E6FBBA), UINT32_C(0xDF8FCBD6), UINT32_C(0xCFB44044), + UINT32_C(0xC52B90FD), UINT32_C(0x7CD86272)}, + {UINT32_C(0xEBA52025), UINT32_C(0xB0E7FA93), UINT32_C(0x04084EF3), + UINT32_C(0x64166303), UINT32_C(0x43840178), UINT32_C(0xD7C7DCBE), + UINT32_C(0x22FB81A2), UINT32_C(0x8BC7FF77)}}, + {{UINT32_C(0xDAFCE699), UINT32_C(0xABDC5206), UINT32_C(0x83C5F3A3), + UINT32_C(0x522A9137), UINT32_C(0x0E666E5C), UINT32_C(0xBAA93637), + UINT32_C(0xD2D33B62), UINT32_C(0x0FD813DA)}, + {UINT32_C(0x5D417354), UINT32_C(0x83391908), UINT32_C(0xA6B9B447), + UINT32_C(0xE5AADE1D), UINT32_C(0xD68321B1), UINT32_C(0xBDE90A3C), + UINT32_C(0x0411531B), UINT32_C(0x43FF9514)}}, + }, + { + {{UINT32_C(0x39648345), UINT32_C(0xD61DEE64), UINT32_C(0x7FCB5B5E), + UINT32_C(0xF8B3FA1C), UINT32_C(0x24C29C71), UINT32_C(0xDD531CE1), + UINT32_C(0xFFB825FE), UINT32_C(0x7A23608B)}, + {UINT32_C(0xF0DE896D), UINT32_C(0x8D607B82), UINT32_C(0x06EDDAFE), + UINT32_C(0x6E497330), UINT32_C(0xC935E754), UINT32_C(0x8B49EFF0), + UINT32_C(0xEE08BDBF), UINT32_C(0x90D54646)}}, + {{UINT32_C(0x9044FD39), UINT32_C(0xF44FBB16), UINT32_C(0xDFB38141), + UINT32_C(0xA72128C4), UINT32_C(0x01954CC0), UINT32_C(0x8467F688), + UINT32_C(0xB560B5C5), UINT32_C(0x741C23EE)}, + {UINT32_C(0x9765CF34), UINT32_C(0xA7F42201), UINT32_C(0x8A2AB61A), + UINT32_C(0xB26C97BF), UINT32_C(0xCBD45AF3), UINT32_C(0xAA948763), + UINT32_C(0xE21479F5), UINT32_C(0x74C993C2)}}, + {{UINT32_C(0xBFA717A5), UINT32_C(0xD968CE1A), UINT32_C(0x48E92615), + UINT32_C(0x45C1103D), UINT32_C(0xDD98207D), UINT32_C(0x4CCEBE85), + UINT32_C(0xE65E5FE6), UINT32_C(0x8A75DF6E)}, + {UINT32_C(0x418C47C5), UINT32_C(0x9E582C40), UINT32_C(0xA450009B), + UINT32_C(0x2E9EE003), UINT32_C(0xDD60D3D2), UINT32_C(0x7C079613), + UINT32_C(0x9935D8CA), UINT32_C(0x80A78C4A)}}, + {{UINT32_C(0xD3C9B903), UINT32_C(0xF6CDED58), UINT32_C(0xEF455E7A), + UINT32_C(0x4F27927D), UINT32_C(0x833BB3C1), UINT32_C(0xF9DBBB9E), + UINT32_C(0x6BA3770A), UINT32_C(0x4107CFBF)}, + {UINT32_C(0x520FCB57), UINT32_C(0x61871175), UINT32_C(0x47A12C8E), + UINT32_C(0xEA3A307B), UINT32_C(0xC24E9E75), UINT32_C(0x940DDEE8), + UINT32_C(0xF33541BB), UINT32_C(0x8AE8F22C)}}, + {{UINT32_C(0x3973DC0B), UINT32_C(0xE4C89870), UINT32_C(0x55DFAAF0), + UINT32_C(0xCC3DD1AC), UINT32_C(0x27372EFE), UINT32_C(0xB63D596B), + UINT32_C(0x45A33718), UINT32_C(0x1B92A192)}, + {UINT32_C(0x00607319), UINT32_C(0x0EABEBEE), UINT32_C(0x7C3E35EE), + UINT32_C(0x69B7355E), UINT32_C(0x2233C454), UINT32_C(0xF7354E35), + UINT32_C(0x1E722C0A), UINT32_C(0x1E2BAADA)}}, + {{UINT32_C(0x3B9FE86D), UINT32_C(0xD0E47FE2), UINT32_C(0xDAA1C7BC), + UINT32_C(0x878F403F), UINT32_C(0x90F5DED7), UINT32_C(0x5447AD54), + UINT32_C(0x1E58B03B), UINT32_C(0x4E8A997B)}, + {UINT32_C(0x2E926FA8), UINT32_C(0x9AD0E481), UINT32_C(0x8D0EF3AA), + UINT32_C(0x871EFB9E), UINT32_C(0x7E714DF6), UINT32_C(0xADD7DD14), + UINT32_C(0x2308EE02), UINT32_C(0x9A30245A)}}, + {{UINT32_C(0x904F0D11), UINT32_C(0x44838B15), UINT32_C(0x2A2A70FF), + UINT32_C(0x6177587A), UINT32_C(0x2C2F7943), UINT32_C(0x40293850), + UINT32_C(0x67581701), UINT32_C(0x8F851191)}, + {UINT32_C(0x842E6434), UINT32_C(0x564383D1), UINT32_C(0xAF2C0078), + UINT32_C(0x251AF59D), UINT32_C(0x3354A264), UINT32_C(0x8A81772D), + UINT32_C(0xDFD2D0EA), UINT32_C(0x9AAFA350)}}, + {{UINT32_C(0x35461CAD), UINT32_C(0x47397932), UINT32_C(0x62C5BFFA), + UINT32_C(0x0F86BD43), UINT32_C(0x7785490D), UINT32_C(0x5F166BC0), + UINT32_C(0x2BD61B3E), UINT32_C(0x7DCCC988)}, + {UINT32_C(0x9394375B), UINT32_C(0x44C3299A), UINT32_C(0x405A34BD), + UINT32_C(0x0C5F2803), UINT32_C(0x4237E728), UINT32_C(0x3AD60F1D), + UINT32_C(0x72EC2562), UINT32_C(0x6E7E06D0)}}, + {{UINT32_C(0x3C5840A6), UINT32_C(0x44AD8471), UINT32_C(0x4752BC62), + UINT32_C(0x40C3CE2B), UINT32_C(0xEC3FD75F), UINT32_C(0x94B14C21), + UINT32_C(0x2629C0C0), UINT32_C(0x65E0E6AF)}, + {UINT32_C(0x55936454), UINT32_C(0xA3FE2F55), UINT32_C(0x780E25E5), + UINT32_C(0x252AD743), UINT32_C(0xFF4E107A), UINT32_C(0x22F9951B), + UINT32_C(0x554CEA49), UINT32_C(0x1B8A7DDE)}}, + {{UINT32_C(0x89F1C6FA), UINT32_C(0xBBDCC2C0), UINT32_C(0xC360A51D), + UINT32_C(0x548FEF29), UINT32_C(0x1290EC92), UINT32_C(0x094DAD45), + UINT32_C(0xAF55BF30), UINT32_C(0x792F6FB9)}, + {UINT32_C(0x707FBF4E), UINT32_C(0x37EF4ABE), UINT32_C(0xFC4B6BD0), + UINT32_C(0x0F43AB0D), UINT32_C(0x2D6EE5D9), UINT32_C(0x850015B7), + UINT32_C(0x35C1FD65), UINT32_C(0x09273F35)}}, + {{UINT32_C(0xA6C3209B), UINT32_C(0xCECF1B90), UINT32_C(0xABD433C0), + UINT32_C(0xFB4BC864), UINT32_C(0x3EEEF8BA), UINT32_C(0x38246AAA), + UINT32_C(0x9ED13F88), UINT32_C(0x4BC7904E)}, + {UINT32_C(0x8E783066), UINT32_C(0xA61C369A), UINT32_C(0x4D1C832C), + UINT32_C(0x496FB831), UINT32_C(0x03AD64D5), UINT32_C(0x1907687A), + UINT32_C(0x83425766), UINT32_C(0x49516EA5)}}, + {{UINT32_C(0xB1714E53), UINT32_C(0x8108B704), UINT32_C(0x82E39BE7), + UINT32_C(0xB458CB4B), UINT32_C(0x097049DE), UINT32_C(0xFCBD51CC), + UINT32_C(0x722E8CBA), UINT32_C(0x415F4079)}, + {UINT32_C(0x342DF9C6), UINT32_C(0xCDB06F5E), UINT32_C(0x1281AC74), + UINT32_C(0x64885CD1), UINT32_C(0x5366673D), UINT32_C(0x932A05E4), + UINT32_C(0xE83AD23D), UINT32_C(0x7333520B)}}, + {{UINT32_C(0xC54B523C), UINT32_C(0xDAA0A1EF), UINT32_C(0xB3C261C8), + UINT32_C(0xA3E80053), UINT32_C(0x558FCFA5), UINT32_C(0x352CC612), + UINT32_C(0x85852B14), UINT32_C(0x1B9B755D)}, + {UINT32_C(0xA1B541FF), UINT32_C(0x19EE2CB6), UINT32_C(0xD5786B4F), + UINT32_C(0x2B531CE2), UINT32_C(0x08C3E15B), UINT32_C(0xEF5EA6DF), + UINT32_C(0x87111129), UINT32_C(0x82161B04)}}, + {{UINT32_C(0xFCEABAED), UINT32_C(0x5AB533A5), UINT32_C(0x4A4D8E44), + UINT32_C(0x4C2147A5), UINT32_C(0xDA02D43D), UINT32_C(0xD8EEE795), + UINT32_C(0xA15C1CD0), UINT32_C(0x8CB648DF)}, + {UINT32_C(0xA788DDDE), UINT32_C(0x4869FB6C), UINT32_C(0x77C03759), + UINT32_C(0xF9554D14), UINT32_C(0x96187DB9), UINT32_C(0x4D25B41A), + UINT32_C(0x3FE0B3F3), UINT32_C(0x662FBAB3)}}, + {{UINT32_C(0xA58A5B2E), UINT32_C(0xD3AF4D09), UINT32_C(0x5CE88DBE), + UINT32_C(0x3C5DD298), UINT32_C(0x7426C2A4), UINT32_C(0x89DDA42E), + UINT32_C(0x49095424), UINT32_C(0x2D832B07)}, + {UINT32_C(0x62AA84CF), UINT32_C(0x24EFCC03), UINT32_C(0xE86923D7), + UINT32_C(0x348C19DE), UINT32_C(0x35DB5CB1), UINT32_C(0x453E9286), + UINT32_C(0x8DB21CF3), UINT32_C(0x03F48EEB)}}, + {{UINT32_C(0xF4035856), UINT32_C(0xBCF9600F), UINT32_C(0xAF820E18), + UINT32_C(0xE77CEC83), UINT32_C(0x7F2FBCC1), UINT32_C(0xC87D43C1), + UINT32_C(0x6290B18D), UINT32_C(0x574C4CAE)}, + {UINT32_C(0xE56E1EFE), UINT32_C(0x8BD8AE45), UINT32_C(0x75D6FCC9), + UINT32_C(0xB1EFD684), UINT32_C(0xA361E753), UINT32_C(0x9829F227), + UINT32_C(0x5211B784), UINT32_C(0x9A50B425)}}, + }, + { + {{UINT32_C(0x36396F78), UINT32_C(0x26F19590), UINT32_C(0x9AD1982C), + UINT32_C(0x350D1A76), UINT32_C(0x947F352E), UINT32_C(0x33BDB4AB), + UINT32_C(0xFFE1E1E1), UINT32_C(0x6CA38B05)}, + {UINT32_C(0x6F2A8CA0), UINT32_C(0x055364C2), UINT32_C(0x2969CA7E), + UINT32_C(0xAF15075D), UINT32_C(0xC3B9CB70), UINT32_C(0x2916D58F), + UINT32_C(0xD7325693), UINT32_C(0x18D94A8B)}}, + {{UINT32_C(0xF36EB789), UINT32_C(0x87C41809), UINT32_C(0xA7436F54), + UINT32_C(0x8C3517F9), UINT32_C(0x3D785160), UINT32_C(0xE7C02E1D), + UINT32_C(0x418C7ABF), UINT32_C(0x5BAFE72E)}, + {UINT32_C(0xCD9B27C2), UINT32_C(0xA00A8E76), UINT32_C(0x7DA06823), + UINT32_C(0x66791808), UINT32_C(0x20EC00B4), UINT32_C(0x342A03D9), + UINT32_C(0x6122589A), UINT32_C(0x44502A7E)}}, + {{UINT32_C(0x5BDAE972), UINT32_C(0x3A492F73), UINT32_C(0x126A07DE), + UINT32_C(0x5184D076), UINT32_C(0xB56A38F0), UINT32_C(0xAE49313C), + UINT32_C(0x9EC47E0A), UINT32_C(0x66CCC24E)}, + {UINT32_C(0xC03CF3E1), UINT32_C(0xAE84941B), UINT32_C(0x5A73440B), + UINT32_C(0x771AFC57), UINT32_C(0xC433E43C), UINT32_C(0xABF93DC8), + UINT32_C(0x243C6828), UINT32_C(0x974EE822)}}, + {{UINT32_C(0xA7A5F66C), UINT32_C(0x468D7FDB), UINT32_C(0xB18DEFCC), + UINT32_C(0xBBB2C482), UINT32_C(0xFA2E7DEA), UINT32_C(0x188B8CAC), + UINT32_C(0xBE0200B9), UINT32_C(0x7894BC93)}, + {UINT32_C(0x6B84750E), UINT32_C(0xA3181338), UINT32_C(0x37356096), + UINT32_C(0x8B14BDB2), UINT32_C(0xD62F4813), UINT32_C(0xA9200FE7), + UINT32_C(0x6F7627CE), UINT32_C(0x8DF664A3)}}, + {{UINT32_C(0xDD996CF1), UINT32_C(0x39BF14DD), UINT32_C(0xF7F42D26), + UINT32_C(0xD00B3BF5), UINT32_C(0x017718A3), UINT32_C(0xF1AF5A20), + UINT32_C(0xABCAE05D), UINT32_C(0x34A1E94B)}, + {UINT32_C(0xC635D333), UINT32_C(0xAD75D1B5), UINT32_C(0x87210A5A), + UINT32_C(0x97E5BD39), UINT32_C(0xA0327BF4), UINT32_C(0x11684CA6), + UINT32_C(0x9B8F0A46), UINT32_C(0x25C51117)}}, + {{UINT32_C(0xA935A9B9), UINT32_C(0x7E5CD79F), UINT32_C(0xA22DCD16), + UINT32_C(0x15DC70C2), UINT32_C(0x78A420F4), UINT32_C(0x5CDA47E6), + UINT32_C(0xEA631104), UINT32_C(0x37E0364E)}, + {UINT32_C(0x5E47B630), UINT32_C(0xE7C46956), UINT32_C(0xE42C4DCB), + UINT32_C(0x7BD4C4A7), UINT32_C(0x1C91117E), UINT32_C(0xA76B87A7), + UINT32_C(0xADA4B5E1), UINT32_C(0x2AA043DD)}}, + {{UINT32_C(0x875DED57), UINT32_C(0x6BB06B5A), UINT32_C(0xFEAD7B14), + UINT32_C(0x89452B3B), UINT32_C(0xA6E39E1F), UINT32_C(0x0CBD5CA8), + UINT32_C(0x3BFA7A3D), UINT32_C(0x2DC5917C)}, + {UINT32_C(0xF840B6E8), UINT32_C(0x6395D5B8), UINT32_C(0xED8589EE), + UINT32_C(0xAEC9342F), UINT32_C(0x77979E67), UINT32_C(0x8332A1B8), + UINT32_C(0xC59F97DB), UINT32_C(0x29B55822)}}, + {{UINT32_C(0x7D65A8F4), UINT32_C(0xFD145FF7), UINT32_C(0x119C9AFC), + UINT32_C(0x8FFF7EE0), UINT32_C(0xAFCD6214), UINT32_C(0x0100D0E9), + UINT32_C(0xA3B988B3), UINT32_C(0x98DE55E5)}, + {UINT32_C(0x00151BF2), UINT32_C(0x0BACCB2E), UINT32_C(0x66091583), + UINT32_C(0x2B422D09), UINT32_C(0x93C66A3B), UINT32_C(0xC4D15E16), + UINT32_C(0x727DE9E6), UINT32_C(0x1C107559)}}, + {{UINT32_C(0x3CB76EDF), UINT32_C(0xC019C7D7), UINT32_C(0x151F5E14), + UINT32_C(0x6456DD91), UINT32_C(0x57CC7078), UINT32_C(0x29E95B66), + UINT32_C(0xE9BDBCEC), UINT32_C(0x9193F4D9)}, + {UINT32_C(0x4806F8CB), UINT32_C(0x375837B0), UINT32_C(0xAA954620), + UINT32_C(0x52D5528A), UINT32_C(0x1B9D6D34), UINT32_C(0xE71F9F60), + UINT32_C(0xDF95759C), UINT32_C(0x910E4FA1)}}, + {{UINT32_C(0xFCADB5EA), UINT32_C(0x8D31B2EE), UINT32_C(0xA63C7498), + UINT32_C(0x0814FF77), UINT32_C(0x5E3D927E), UINT32_C(0x236569C0), + UINT32_C(0x95BBB9D9), UINT32_C(0x7F669DAD)}, + {UINT32_C(0x305B0347), UINT32_C(0x29158C9A), UINT32_C(0x52D468EB), + UINT32_C(0x99B9B7E7), UINT32_C(0xB4342443), UINT32_C(0x6C4CABC3), + UINT32_C(0x0A803ED4), UINT32_C(0x125AFBEA)}}, + {{UINT32_C(0x101FAA4E), UINT32_C(0x850A150B), UINT32_C(0x11ECDABC), + UINT32_C(0xB586BCDA), UINT32_C(0x4DAD2264), UINT32_C(0x9692EF83), + UINT32_C(0xD2B67F5E), UINT32_C(0x0951716E)}, + {UINT32_C(0x924DD16D), UINT32_C(0xA2295F20), UINT32_C(0xD0CE88CD), + UINT32_C(0xD8327275), UINT32_C(0xC683ADA3), UINT32_C(0x45F8DD0C), + UINT32_C(0x88C26024), UINT32_C(0x4A798B33)}}, + {{UINT32_C(0xCAF71198), UINT32_C(0x225395CF), UINT32_C(0xCA3F67CF), + UINT32_C(0xEE223712), UINT32_C(0x81280061), UINT32_C(0x972B0199), + UINT32_C(0x280ECC12), UINT32_C(0x0CB20E7A)}, + {UINT32_C(0x70F54717), UINT32_C(0x06F04DA8), UINT32_C(0x410B9712), + UINT32_C(0x5288425E), UINT32_C(0x74CEFB4A), UINT32_C(0x6C29A514), + UINT32_C(0x849E2FD6), UINT32_C(0x4218ECCA)}}, + {{UINT32_C(0xB33574B6), UINT32_C(0xD85663A3), UINT32_C(0xFAF7D3A2), + UINT32_C(0x7469CFB1), UINT32_C(0x3CFA8876), UINT32_C(0x9C587EC4), + UINT32_C(0xDB24ED63), UINT32_C(0x5DAE46AE)}, + {UINT32_C(0xC413E494), UINT32_C(0x66C8DA33), UINT32_C(0x65942568), + UINT32_C(0xB8B256B6), UINT32_C(0xA7A4CAAD), UINT32_C(0x0F09178E), + UINT32_C(0xAFEBC90B), UINT32_C(0x577D4ADC)}}, + {{UINT32_C(0x92D6C3B4), UINT32_C(0x49009BA6), UINT32_C(0xB884FAAC), + UINT32_C(0xE9CF4915), UINT32_C(0x6F3DBE23), UINT32_C(0xC12377D3), + UINT32_C(0xEA6B680C), UINT32_C(0x2F6E0E86)}, + {UINT32_C(0xE6C5E24D), UINT32_C(0x5DF2CD5A), UINT32_C(0xEE608DD3), + UINT32_C(0xAAE7E145), UINT32_C(0x8A7ED956), UINT32_C(0x5357CFF2), + UINT32_C(0x3912DBA4), UINT32_C(0x8377126C)}}, + {{UINT32_C(0xF83BC3F6), UINT32_C(0x6E83A6C6), UINT32_C(0xC0CC09C6), + UINT32_C(0x3633E1E4), UINT32_C(0xBC4B73A5), UINT32_C(0x0C2A268B), + UINT32_C(0x125688EB), UINT32_C(0x688369D3)}, + {UINT32_C(0x73E75809), UINT32_C(0x64EE03E1), UINT32_C(0x8E110C46), + UINT32_C(0x21773EE9), UINT32_C(0xA6A648B1), UINT32_C(0xF0BC6BE9), + UINT32_C(0x7E0041E7), UINT32_C(0x39912183)}}, + {{UINT32_C(0x26F5716E), UINT32_C(0xCC09774A), UINT32_C(0xFDFB59E9), + UINT32_C(0x01CB17F9), UINT32_C(0xAE8938B4), UINT32_C(0xA88D1269), + UINT32_C(0xD13047C9), UINT32_C(0x99A40D17)}, + {UINT32_C(0x6FC672A3), UINT32_C(0xE469C984), UINT32_C(0x5638B928), + UINT32_C(0xDA6534B6), UINT32_C(0xCDE40C83), UINT32_C(0xC56EAB20), + UINT32_C(0xBD93AF10), UINT32_C(0x2C1582B1)}}, + }, + { + {{UINT32_C(0xA3F45C37), UINT32_C(0xE4C19851), UINT32_C(0xC7D78FE9), + UINT32_C(0xCA0FEFF2), UINT32_C(0x9A7E444B), UINT32_C(0x027B41D8), + UINT32_C(0x15D38CBB), UINT32_C(0x1F1B242F)}, + {UINT32_C(0xF1F50AB9), UINT32_C(0x1C6C132C), UINT32_C(0x5DFE7530), + UINT32_C(0x2A02A3A4), UINT32_C(0x6E29159F), UINT32_C(0x2B1EB8E2), + UINT32_C(0x2EEDE876), UINT32_C(0x5F3F4AB7)}}, + {{UINT32_C(0x0F2DF95C), UINT32_C(0x362CE013), UINT32_C(0x26480BFA), + UINT32_C(0x82E4E192), UINT32_C(0x6BEFF080), UINT32_C(0x9AAC9A96), + UINT32_C(0x8EE2B59C), UINT32_C(0x5A1636F6)}, + {UINT32_C(0xFA049CCB), UINT32_C(0x600E0339), UINT32_C(0xF2F57163), + UINT32_C(0x56680F80), UINT32_C(0x7B4240A7), UINT32_C(0x2C395CC1), + UINT32_C(0x9C86BB64), UINT32_C(0x32EDFE4A)}}, + {{UINT32_C(0x711AEF69), UINT32_C(0x8D9842AB), UINT32_C(0x890831F0), + UINT32_C(0x7A1C2429), UINT32_C(0x54CDA99A), UINT32_C(0x924478DF), + UINT32_C(0xE25A02E2), UINT32_C(0x791A1D45)}, + {UINT32_C(0x170F4C21), UINT32_C(0x1433F569), UINT32_C(0xCA5F8BD8), + UINT32_C(0x9F42C8C1), UINT32_C(0x067B3201), UINT32_C(0x377740F7), + UINT32_C(0x2ECE5D81), UINT32_C(0x75145FFF)}}, + {{UINT32_C(0x39638F43), UINT32_C(0xCBFE782A), UINT32_C(0xE07553D2), + UINT32_C(0xB0C0EC09), UINT32_C(0x115C673A), UINT32_C(0x8D1C41F7), + UINT32_C(0xEB39E385), UINT32_C(0x8510551A)}, + {UINT32_C(0xBA275803), UINT32_C(0x92000181), UINT32_C(0x27B9A42A), + UINT32_C(0x8AF63F4A), UINT32_C(0x52297029), UINT32_C(0xD50ECF0F), + UINT32_C(0x66883C56), UINT32_C(0x1DCA33A5)}}, + {{UINT32_C(0xC51DF9D9), UINT32_C(0xB2C44933), UINT32_C(0xE66D80AE), + UINT32_C(0xCA6F9FB0), UINT32_C(0x82839BA4), UINT32_C(0x78CD2EEB), + UINT32_C(0xF7AFBCF3), UINT32_C(0x8FF8BCC8)}, + {UINT32_C(0x4164959B), UINT32_C(0x5AD00C70), UINT32_C(0xE83ED8D5), + UINT32_C(0xAD901C71), UINT32_C(0x2B52650D), UINT32_C(0x56FFC0A9), + UINT32_C(0x780126A8), UINT32_C(0x0689B171)}}, + {{UINT32_C(0x5EAC1DD8), UINT32_C(0x2E902A39), UINT32_C(0x7CAC283F), + UINT32_C(0x7681EABA), UINT32_C(0x78525B7C), UINT32_C(0x03608CD8), + UINT32_C(0x5EB95540), UINT32_C(0x09665B80)}, + {UINT32_C(0x306EE831), UINT32_C(0xF09F9805), UINT32_C(0xE41D453A), + UINT32_C(0xFB00B1C6), UINT32_C(0x7C93E727), UINT32_C(0xD8BB9559), + UINT32_C(0x2CE63FD8), UINT32_C(0x3B74FEE7)}}, + {{UINT32_C(0x0A22DABA), UINT32_C(0x73F48B33), UINT32_C(0xC8FC3E20), + UINT32_C(0x797DE0FB), UINT32_C(0x9E79222D), UINT32_C(0x69C1BEE2), + UINT32_C(0x1DF4C549), UINT32_C(0x3052F67A)}, + {UINT32_C(0xED78B6FB), UINT32_C(0xFE9128A9), UINT32_C(0x29CCF94F), + UINT32_C(0xD9460CFF), UINT32_C(0xC1FD1DAA), UINT32_C(0x53737484), + UINT32_C(0x1EDAEEB2), UINT32_C(0x83ADCD01)}}, + {{UINT32_C(0x2BA4195A), UINT32_C(0x189EC9AA), UINT32_C(0xC522BE92), + UINT32_C(0x61345757), UINT32_C(0x39EFB05D), UINT32_C(0x35BAB72A), + UINT32_C(0xAE0AC461), UINT32_C(0x82B27322)}, + {UINT32_C(0xC07F4382), UINT32_C(0xFEBF0F8C), UINT32_C(0xDAD2ED8E), + UINT32_C(0x1CA2B3D7), UINT32_C(0x0A27F89C), UINT32_C(0x4800A037), + UINT32_C(0x9815D971), UINT32_C(0x77D1B2FC)}}, + {{UINT32_C(0xCA0FC66A), UINT32_C(0xF9F46089), UINT32_C(0x8C23E4E1), + UINT32_C(0x5BC406DE), UINT32_C(0x8DBF6DD5), UINT32_C(0x1D7F3BA9), + UINT32_C(0x679D5587), UINT32_C(0x685B9111)}, + {UINT32_C(0xB85BE0D0), UINT32_C(0x93554084), UINT32_C(0x7B9EB16C), + UINT32_C(0xB081E9CA), UINT32_C(0x60F0D0B0), UINT32_C(0x58C428DC), + UINT32_C(0x30B3C6D9), UINT32_C(0x12442C1A)}}, + {{UINT32_C(0x567226BE), UINT32_C(0x147B843C), UINT32_C(0x429A8FFA), + UINT32_C(0x2B2BFFAB), UINT32_C(0xCD435C2F), UINT32_C(0x7A4678EB), + UINT32_C(0x3C0B887A), UINT32_C(0x200E8513)}, + {UINT32_C(0x90605CDD), UINT32_C(0x9D457AAD), UINT32_C(0x157F29A5), + UINT32_C(0x6736A242), UINT32_C(0x549FCA4D), UINT32_C(0x779B0D25), + UINT32_C(0x17FDB4D9), UINT32_C(0x57477EE9)}}, + {{UINT32_C(0xECF06CDD), UINT32_C(0xD9B15FD1), UINT32_C(0xC1CC2CFC), + UINT32_C(0xECF75FC0), UINT32_C(0xA56B39E5), UINT32_C(0x273867C3), + UINT32_C(0x79340B7D), UINT32_C(0x72F3ED45)}, + {UINT32_C(0x55B6C9B9), UINT32_C(0xF31C9E4C), UINT32_C(0x0448FE57), + UINT32_C(0xED96826E), UINT32_C(0x8BB7A02F), UINT32_C(0xE2DF54AD), + UINT32_C(0xD79D71CC), UINT32_C(0x945E7B6B)}}, + {{UINT32_C(0x9270E878), UINT32_C(0x32B6CE42), UINT32_C(0xD6EEBEB9), + UINT32_C(0x980C8F6E), UINT32_C(0x55808237), UINT32_C(0xC5717C85), + UINT32_C(0xCCA3F298), UINT32_C(0x4469D0A0)}, + {UINT32_C(0x1A18C0E8), UINT32_C(0x2B9DD7E9), UINT32_C(0x6A0EC412), + UINT32_C(0xE9D12401), UINT32_C(0x31F44B32), UINT32_C(0xF889DE98), + UINT32_C(0x78854A7F), UINT32_C(0x692EE1E6)}}, + {{UINT32_C(0xADEECA22), UINT32_C(0xF2360597), UINT32_C(0x99A4C198), + UINT32_C(0x94623EBC), UINT32_C(0xE4169D20), UINT32_C(0x5A0D49C4), + UINT32_C(0xBF0384F0), UINT32_C(0x7BE2C5BB)}, + {UINT32_C(0x8C537851), UINT32_C(0x42DB0D40), UINT32_C(0x65C50782), + UINT32_C(0x198A09A4), UINT32_C(0x45AD7EE0), UINT32_C(0x72F80BB7), + UINT32_C(0x11FCED06), UINT32_C(0x4F83164B)}}, + {{UINT32_C(0x95712AF0), UINT32_C(0x54E5B07C), UINT32_C(0x1E893387), + UINT32_C(0x95E7F5D9), UINT32_C(0xC61D7766), UINT32_C(0x383BC5AE), + UINT32_C(0x681C28DD), UINT32_C(0x09F626ED)}, + {UINT32_C(0xDF97E3C9), UINT32_C(0x0D32B726), UINT32_C(0x7C7C4786), + UINT32_C(0x2AC62238), UINT32_C(0xD3F5AD40), UINT32_C(0xECEA0C6A), + UINT32_C(0xA870A132), UINT32_C(0x0D26633E)}}, + {{UINT32_C(0xC3D42D26), UINT32_C(0x40A05A14), UINT32_C(0xF3BDE0E3), + UINT32_C(0x06577CA1), UINT32_C(0x418B73FB), UINT32_C(0x03DAA258), + UINT32_C(0x0EFDEB86), UINT32_C(0x205E02E6)}, + {UINT32_C(0x99F90D56), UINT32_C(0xF5479E4D), UINT32_C(0x368CB6E3), + UINT32_C(0x4E699BF3), UINT32_C(0x62E4A879), UINT32_C(0x534F6743), + UINT32_C(0xA9D78191), UINT32_C(0x18473603)}}, + {{UINT32_C(0x5C1ED4F9), UINT32_C(0xA23D79CF), UINT32_C(0xF2248B01), + UINT32_C(0xFADE1CF5), UINT32_C(0x6F4D2164), UINT32_C(0xA3D52827), + UINT32_C(0x10B731E5), UINT32_C(0x1F211C03)}, + {UINT32_C(0xD97229E2), UINT32_C(0x0B415884), UINT32_C(0x80FCC283), + UINT32_C(0xCABB7D89), UINT32_C(0x98EF388A), UINT32_C(0xDB9BC752), + UINT32_C(0x93E80262), UINT32_C(0x50AF2A4A)}}, + }, + { + {{UINT32_C(0xD57DD821), UINT32_C(0xD11E80F1), UINT32_C(0xDDA2AB29), + UINT32_C(0x11CAE463), UINT32_C(0xE628F315), UINT32_C(0x21CAFD16), + UINT32_C(0x7DF70CD4), UINT32_C(0x296A84E9)}, + {UINT32_C(0x6E9EF995), UINT32_C(0x9ECF7513), UINT32_C(0x06E28855), + UINT32_C(0xAE875257), UINT32_C(0x5DED383C), UINT32_C(0x78E1B7E9), + UINT32_C(0x5E940F7F), UINT32_C(0x6C5D8ECC)}}, + {{UINT32_C(0x998EE9A3), UINT32_C(0xCBD3ACB9), UINT32_C(0xD0DCF584), + UINT32_C(0x990CDFF6), UINT32_C(0xC7CE5DDA), UINT32_C(0x0FB4346C), + UINT32_C(0x355E268F), UINT32_C(0x5EDEEF9B)}, + {UINT32_C(0xC215036D), UINT32_C(0xACD8B4A2), UINT32_C(0x91C7486B), + UINT32_C(0x70D36995), UINT32_C(0x52C6694B), UINT32_C(0x72D5243D), + UINT32_C(0xE5F8B99C), UINT32_C(0x54163B48)}}, + {{UINT32_C(0x1D76A94A), UINT32_C(0xD2AEA2FF), UINT32_C(0x379F780B), + UINT32_C(0xC5B4FBF1), UINT32_C(0xB33AC708), UINT32_C(0x700042F7), + UINT32_C(0x8183E0CA), UINT32_C(0x7DA790BF)}, + {UINT32_C(0xEBA72FA8), UINT32_C(0x95681FE6), UINT32_C(0xE22E254E), + UINT32_C(0x1F0A390E), UINT32_C(0xBF07A8A5), UINT32_C(0x465A58F8), + UINT32_C(0xFB1FCE40), UINT32_C(0x840EA2E7)}}, + {{UINT32_C(0x44048484), UINT32_C(0xD955C5B5), UINT32_C(0x6935C5E4), + UINT32_C(0x7107D595), UINT32_C(0x8A0FCE44), UINT32_C(0xFC657444), + UINT32_C(0x2800E517), UINT32_C(0x97DF2B4D)}, + {UINT32_C(0x2C482414), UINT32_C(0x0B1BB328), UINT32_C(0x4E48CDBE), + UINT32_C(0x152614CC), UINT32_C(0x42EDE4E0), UINT32_C(0x48051FB6), + UINT32_C(0x3DBFFE52), UINT32_C(0x91125B93)}}, + {{UINT32_C(0xCF898F54), UINT32_C(0xA2F526C7), UINT32_C(0x83080857), + UINT32_C(0x8788CA12), UINT32_C(0x4562F7B0), UINT32_C(0x2F442723), + UINT32_C(0xC044560C), UINT32_C(0x837772AB)}, + {UINT32_C(0x31BCB2EA), UINT32_C(0x51AD2F71), UINT32_C(0xAFC5C03D), + UINT32_C(0x0F1D33FC), UINT32_C(0x7BD352A4), UINT32_C(0xDBFE541F), + UINT32_C(0x64B8343D), UINT32_C(0x8B441399)}}, + {{UINT32_C(0x44DCD145), UINT32_C(0xFEB96B8C), UINT32_C(0xEFF22D0D), + UINT32_C(0xEEB3007C), UINT32_C(0x252A8C8F), UINT32_C(0xAF64DFC1), + UINT32_C(0xD131E0C5), UINT32_C(0x5D9B0A05)}, + {UINT32_C(0xABFED144), UINT32_C(0x28C943EF), UINT32_C(0xB6A2273D), + UINT32_C(0xDFBF730C), UINT32_C(0xE2A1BFBD), UINT32_C(0x6CC5BE44), + UINT32_C(0x09030FCD), UINT32_C(0x55FAC033)}}, + {{UINT32_C(0x728F39EC), UINT32_C(0xFAA58543), UINT32_C(0x40B37B15), + UINT32_C(0x9B2F10BA), UINT32_C(0x7254A419), UINT32_C(0x96505C7F), + UINT32_C(0x879C7FF9), UINT32_C(0x04F4ACE5)}, + {UINT32_C(0xBC5FDA53), UINT32_C(0xC0B4B576), UINT32_C(0xF7ABCD3C), + UINT32_C(0x12549929), UINT32_C(0x313FEC34), UINT32_C(0x00F5631E), + UINT32_C(0x798C7CFB), UINT32_C(0x89EA4459)}}, + {{UINT32_C(0x0E2020C1), UINT32_C(0x671137B5), UINT32_C(0xA4DC66C3), + UINT32_C(0x77727861), UINT32_C(0x81492A26), UINT32_C(0x8CE05ED1), + UINT32_C(0xA0C3F612), UINT32_C(0x42BEA541)}, + {UINT32_C(0xB0E461EB), UINT32_C(0x6D39E3D1), UINT32_C(0x09FA806F), + UINT32_C(0x459A8E13), UINT32_C(0x466CB93B), UINT32_C(0xE2A185C1), + UINT32_C(0xE21ECB34), UINT32_C(0x17D131CE)}}, + {{UINT32_C(0x387A15BF), UINT32_C(0x2141E262), UINT32_C(0x6BE61C42), + UINT32_C(0x675B5E7C), UINT32_C(0xF1CF93EF), UINT32_C(0xEEC1BDD4), + UINT32_C(0x23BAB1F9), UINT32_C(0x6ACF3838)}, + {UINT32_C(0xB0B39C86), UINT32_C(0xA2F84E23), UINT32_C(0xE244E0E3), + UINT32_C(0xE955DBBC), UINT32_C(0xB7A8102A), UINT32_C(0xE0155980), + UINT32_C(0xB23012FA), UINT32_C(0x1E117DC8)}}, + {{UINT32_C(0x6EB36280), UINT32_C(0xC92A36AA), UINT32_C(0x5E906D78), + UINT32_C(0x5AED3A1D), UINT32_C(0xAE4E430A), UINT32_C(0x8D336221), + UINT32_C(0xD3AA50AD), UINT32_C(0x3F184F1D)}, + {UINT32_C(0x916D9741), UINT32_C(0xD14810EC), UINT32_C(0x3322D9B3), + UINT32_C(0x2900169F), UINT32_C(0x04728254), UINT32_C(0xAFF1A060), + UINT32_C(0x26F60B5F), UINT32_C(0x89C4C673)}}, + {{UINT32_C(0xB7F0D157), UINT32_C(0x5216E0AE), UINT32_C(0xC9F38AAD), + UINT32_C(0x3B8D2226), UINT32_C(0xBB34AA79), UINT32_C(0x283E3E3F), + UINT32_C(0x565CAB83), UINT32_C(0x94DA80FA)}, + {UINT32_C(0xE6ED4A46), UINT32_C(0xDDB51943), UINT32_C(0x7CDD5FE6), + UINT32_C(0xF3AFFA9A), UINT32_C(0xB648A84F), UINT32_C(0x0AB493CC), + UINT32_C(0xF15EE45F), UINT32_C(0x128356B6)}}, + {{UINT32_C(0xBD0F02C4), UINT32_C(0xD2AD34F4), UINT32_C(0x719BCF1E), + UINT32_C(0x3DC9B6D1), UINT32_C(0x12EB5AE8), UINT32_C(0x11EDB8F1), + UINT32_C(0x71180F90), UINT32_C(0x33AC71D8)}, + {UINT32_C(0xB59621D7), UINT32_C(0x0AE988FE), UINT32_C(0x8F348211), + UINT32_C(0x32042B52), UINT32_C(0xEB0CEBD3), UINT32_C(0x7E6787C4), + UINT32_C(0x26B8A526), UINT32_C(0x8C4D2549)}}, + {{UINT32_C(0x4D40ED72), UINT32_C(0xA3B46154), UINT32_C(0xF6CF3972), + UINT32_C(0x3A096546), UINT32_C(0xB3E46D8C), UINT32_C(0x9C7BC931), + UINT32_C(0x90486C75), UINT32_C(0x85B77BAD)}, + {UINT32_C(0x6EBD35E0), UINT32_C(0x95B706E5), UINT32_C(0x101E098E), + UINT32_C(0xC1E18243), UINT32_C(0xF01C17E1), UINT32_C(0xF17C23FF), + UINT32_C(0x85EC224E), UINT32_C(0x32235272)}}, + {{UINT32_C(0xFD24FA16), UINT32_C(0xE816235D), UINT32_C(0x0B3AEBD7), + UINT32_C(0x5306CBC3), UINT32_C(0x8BE25CB7), UINT32_C(0xDEF60A9A), + UINT32_C(0x512999C2), UINT32_C(0x4B889A0F)}, + {UINT32_C(0x67B29FD9), UINT32_C(0xAB86A7F8), UINT32_C(0xB5461BCB), + UINT32_C(0xB81C532D), UINT32_C(0xD34D9819), UINT32_C(0x810E9A0C), + UINT32_C(0x3092515D), UINT32_C(0x1E353009)}}, + {{UINT32_C(0x21FB0BD9), UINT32_C(0x46826339), UINT32_C(0x003BAE50), + UINT32_C(0x9CCE9A43), UINT32_C(0x2EB45B4A), UINT32_C(0xCD2216C3), + UINT32_C(0xC7E0F2C3), UINT32_C(0x13598548)}, + {UINT32_C(0x54611984), UINT32_C(0x8B0BFD72), UINT32_C(0x89C0B05A), + UINT32_C(0x705CB525), UINT32_C(0xCE880DD8), UINT32_C(0xD9073D87), + UINT32_C(0x003DCAEB), UINT32_C(0x1EA534CD)}}, + {{UINT32_C(0xC58B4413), UINT32_C(0xC7AAC256), UINT32_C(0xE8054F96), + UINT32_C(0x301109D6), UINT32_C(0x9C7E7860), UINT32_C(0x0A1F44D2), + UINT32_C(0x96F15424), UINT32_C(0x55D122BB)}, + {UINT32_C(0x1C14A8A9), UINT32_C(0x9A63098F), UINT32_C(0x4221CDFB), + UINT32_C(0x8E01A9DC), UINT32_C(0x357B360A), UINT32_C(0x11C91FCF), + UINT32_C(0x036A3CF4), UINT32_C(0x70C47AEA)}}, + }, + { + {{UINT32_C(0x036A843D), UINT32_C(0xC0457C4F), UINT32_C(0xF1F593CB), + UINT32_C(0x6E3E0801), UINT32_C(0x8C53873B), UINT32_C(0x1AADF2D8), + UINT32_C(0x0D140C8D), UINT32_C(0x5CEC5C7B)}, + {UINT32_C(0x328002E4), UINT32_C(0x4341A9AB), UINT32_C(0xC410D034), + UINT32_C(0x11F22331), UINT32_C(0x5DB6A39D), UINT32_C(0x0FCF69EF), + UINT32_C(0xB84FDA1F), UINT32_C(0x3DD32A53)}}, + {{UINT32_C(0xAF8C811A), UINT32_C(0x19E52339), UINT32_C(0x92D46C4F), + UINT32_C(0xC8B83800), UINT32_C(0xCA8463A3), UINT32_C(0x891C4185), + UINT32_C(0x98F3FF1B), UINT32_C(0x5B51651F)}, + {UINT32_C(0x0FB39DCA), UINT32_C(0x3D149607), UINT32_C(0xB1051394), + UINT32_C(0x39ECCDE2), UINT32_C(0x1A14522B), UINT32_C(0x3633DE27), + UINT32_C(0x7C59A9A5), UINT32_C(0x5FE55114)}}, + {{UINT32_C(0x2F0B507F), UINT32_C(0x68C8E0C6), UINT32_C(0x05B62C5E), + UINT32_C(0xDABC8EEF), UINT32_C(0xE6165C1E), UINT32_C(0x297C943A), + UINT32_C(0x7D7CA6D6), UINT32_C(0x337C6B94)}, + {UINT32_C(0xD6066191), UINT32_C(0x66F98FE4), UINT32_C(0x58945DA9), + UINT32_C(0x745BFEBA), UINT32_C(0x3B29A546), UINT32_C(0x60044787), + UINT32_C(0xE2D4EDF2), UINT32_C(0x2815651E)}}, + {{UINT32_C(0x63661218), UINT32_C(0x54A3BE74), UINT32_C(0x15E79415), + UINT32_C(0x89C56364), UINT32_C(0x405E4932), UINT32_C(0xE03C6963), + UINT32_C(0x9A619956), UINT32_C(0x86E101EA)}, + {UINT32_C(0x400DC92B), UINT32_C(0x47BAF2F3), UINT32_C(0x291E4059), + UINT32_C(0x5C44512C), UINT32_C(0xEC6D7BF9), UINT32_C(0xD7F84B8E), + UINT32_C(0x25AB8D79), UINT32_C(0x6CF42540)}}, + {{UINT32_C(0xB885DAFC), UINT32_C(0xD6E1B75D), UINT32_C(0x6128014E), + UINT32_C(0x7A33CE4B), UINT32_C(0xEA9FF260), UINT32_C(0x80DF9948), + UINT32_C(0xD2B5872B), UINT32_C(0x99E0A11C)}, + {UINT32_C(0xE2435510), UINT32_C(0x960BDC3D), UINT32_C(0x14F7A99C), + UINT32_C(0x4B0ECC53), UINT32_C(0x5AC6170B), UINT32_C(0xE815DB8B), + UINT32_C(0x17D5F2DD), UINT32_C(0x30956156)}}, + {{UINT32_C(0x57166FCE), UINT32_C(0xA035E3CE), UINT32_C(0x40A75B80), + UINT32_C(0x71AD4095), UINT32_C(0xDB7D0BFB), UINT32_C(0x639C4EA7), + UINT32_C(0xB12DBE6B), UINT32_C(0x7A90BE97)}, + {UINT32_C(0x75F86A60), UINT32_C(0x091AA30F), UINT32_C(0x509AEEFC), + UINT32_C(0x67C0F795), UINT32_C(0x331629C5), UINT32_C(0xF028C12A), + UINT32_C(0x8A1F7478), UINT32_C(0x90D26B1C)}}, + {{UINT32_C(0xB6AC2AD5), UINT32_C(0x6F01554E), UINT32_C(0xBC9A48D6), + UINT32_C(0x9DD0576E), UINT32_C(0x97AE2605), UINT32_C(0xAB372013), + UINT32_C(0xBB83852B), UINT32_C(0x1525D8B5)}, + {UINT32_C(0xE46E4C61), UINT32_C(0xD50680C3), UINT32_C(0xECB8F06F), + UINT32_C(0x29FBBA5C), UINT32_C(0xB16637A3), UINT32_C(0x60A48AB4), + UINT32_C(0xCD1490D3), UINT32_C(0x8BB47967)}}, + {{UINT32_C(0x4B7C7EA6), UINT32_C(0xA35A0187), UINT32_C(0xB4D6409A), + UINT32_C(0xFE01521A), UINT32_C(0x8FDE1E30), UINT32_C(0x57CECE62), + UINT32_C(0xF4F51D55), UINT32_C(0x1A9A9B2D)}, + {UINT32_C(0xE221AC58), UINT32_C(0x0D33556B), UINT32_C(0x152508AD), + UINT32_C(0x0A4A1A34), UINT32_C(0x0144AA33), UINT32_C(0x1FD61DA1), + UINT32_C(0xEDC7C5F8), UINT32_C(0x4804BE6A)}}, + {{UINT32_C(0x5B363A84), UINT32_C(0x071EC815), UINT32_C(0xFE11ED05), + UINT32_C(0x359C2A9F), UINT32_C(0xB8BBF9BD), UINT32_C(0x0FDF80C9), + UINT32_C(0x103ACCBE), UINT32_C(0x928E51A4)}, + {UINT32_C(0xD5E8A222), UINT32_C(0xD152B6E7), UINT32_C(0xCBE022C9), + UINT32_C(0x6368E3A8), UINT32_C(0x3128B659), UINT32_C(0x2E5055DE), + UINT32_C(0xD21F1062), UINT32_C(0x51E23651)}}, + {{UINT32_C(0x34834BF7), UINT32_C(0x5CE999D7), UINT32_C(0x3DC831E9), + UINT32_C(0xE386394C), UINT32_C(0x7FE48564), UINT32_C(0x6DBD5ECA), + UINT32_C(0x556841A5), UINT32_C(0x804BC07F)}, + {UINT32_C(0x229A9175), UINT32_C(0x2A8B616C), UINT32_C(0xA1B3EF97), + UINT32_C(0xAEEB533A), UINT32_C(0x6F145037), UINT32_C(0x9D858F9D), + UINT32_C(0x7F6A8EBB), UINT32_C(0x247FFAB0)}}, + {{UINT32_C(0x099EB4F3), UINT32_C(0xE616E779), UINT32_C(0xF1B1926C), + UINT32_C(0x4F360D2E), UINT32_C(0x17055397), UINT32_C(0x28EE1F91), + UINT32_C(0x844AFCF3), UINT32_C(0x9994D7FF)}, + {UINT32_C(0x12CBD801), UINT32_C(0x8824A949), UINT32_C(0x6A4484DD), + UINT32_C(0xA3AFED4D), UINT32_C(0x3B5E36A5), UINT32_C(0xCB16CD67), + UINT32_C(0xBC3BBEA9), UINT32_C(0x5490C30D)}}, + {{UINT32_C(0xD7601122), UINT32_C(0xEA43CA5A), UINT32_C(0xD248EB72), + UINT32_C(0x9CF2A15B), UINT32_C(0xB71D18D0), UINT32_C(0x4CE8AB75), + UINT32_C(0x041A19A5), UINT32_C(0x2576C5B1)}, + {UINT32_C(0x8CC1496E), UINT32_C(0xDE20FD02), UINT32_C(0x0BE51831), + UINT32_C(0xC9FE5B0C), UINT32_C(0x3A53ABBC), UINT32_C(0x9DC17E32), + UINT32_C(0xF4C806FA), UINT32_C(0x94E24DD9)}}, + {{UINT32_C(0x0DF1A4B3), UINT32_C(0x2A9CF5F1), UINT32_C(0x15063C08), + UINT32_C(0xE0196754), UINT32_C(0xCCF88F77), UINT32_C(0xCE9CF2C6), + UINT32_C(0xEFE91C6C), UINT32_C(0x51ACC7B5)}, + {UINT32_C(0xA799FE2E), UINT32_C(0x0C2302EF), UINT32_C(0x69C0D117), + UINT32_C(0x5EE756A4), UINT32_C(0xF4EAB1A1), UINT32_C(0x7E907EC2), + UINT32_C(0xD98022DD), UINT32_C(0x19EEF95B)}}, + {{UINT32_C(0xA8E7FFA5), UINT32_C(0xB170D483), UINT32_C(0x39180FAC), + UINT32_C(0x2052600A), UINT32_C(0xA68AF290), UINT32_C(0x8EAD52D4), + UINT32_C(0xFF9E3641), UINT32_C(0x01B88CFE)}, + {UINT32_C(0x65BC2D0C), UINT32_C(0x3D9077F7), UINT32_C(0x3ABCDB1C), + UINT32_C(0x2AF9CF67), UINT32_C(0x7295DADA), UINT32_C(0xEA104E74), + UINT32_C(0xEB1E5D6E), UINT32_C(0x7DF23470)}}, + {{UINT32_C(0x8E53F40B), UINT32_C(0x0F54D98D), UINT32_C(0xAF360481), + UINT32_C(0xBFC22E9B), UINT32_C(0xE132666B), UINT32_C(0x309973B6), + UINT32_C(0x25E783E0), UINT32_C(0x1F40D11F)}, + {UINT32_C(0xF00AC3EB), UINT32_C(0x8EEBC9D7), UINT32_C(0x2F9ADCC7), + UINT32_C(0xBD725D82), UINT32_C(0x66EFDDCC), UINT32_C(0x47767810), + UINT32_C(0x4ECCAF67), UINT32_C(0x60B0B100)}}, + {{UINT32_C(0xB98C7E96), UINT32_C(0x498E2074), UINT32_C(0x08BF31A9), + UINT32_C(0xBEBF5183), UINT32_C(0x3894DBE7), UINT32_C(0x00DD4AAD), + UINT32_C(0x429878F6), UINT32_C(0x66C047A4)}, + {UINT32_C(0x6D0F1AB1), UINT32_C(0x16F2CB33), UINT32_C(0x58669ACB), + UINT32_C(0x5FA2F181), UINT32_C(0x486F1BE7), UINT32_C(0xFA4B2F49), + UINT32_C(0x5698F41B), UINT32_C(0x1ECAAF6B)}}, + }, + { + {{UINT32_C(0x4DCC455E), UINT32_C(0x2999C212), UINT32_C(0xBEF617B8), + UINT32_C(0x83897E49), UINT32_C(0x5A218E0F), UINT32_C(0x6B49CE26), + UINT32_C(0x88EF7EA7), UINT32_C(0x49A5C9EB)}, + {UINT32_C(0xF63EC82C), UINT32_C(0xF0EDA5FF), UINT32_C(0xEAD471CD), + UINT32_C(0x736D933D), UINT32_C(0xDF8071C4), UINT32_C(0x10E4431D), + UINT32_C(0x38E1523C), UINT32_C(0x8C59C107)}}, + {{UINT32_C(0x5A54A4AB), UINT32_C(0x569FB74E), UINT32_C(0xF3384C14), + UINT32_C(0x72788868), UINT32_C(0x107B417F), UINT32_C(0xBC840717), + UINT32_C(0x7E13210C), UINT32_C(0x6682C107)}, + {UINT32_C(0x77B20150), UINT32_C(0xB3359FC2), UINT32_C(0xA9E03222), + UINT32_C(0xEB923E66), UINT32_C(0xA10CF332), UINT32_C(0x490C39FC), + UINT32_C(0x49BA035D), UINT32_C(0x69099C2D)}}, + {{UINT32_C(0x03CB2C6E), UINT32_C(0x64986720), UINT32_C(0x328B22BA), + UINT32_C(0x994054A1), UINT32_C(0x6F0542DA), UINT32_C(0x4155C6B9), + UINT32_C(0xA3B93FFB), UINT32_C(0x216CF760)}, + {UINT32_C(0x5C2AD753), UINT32_C(0x74486184), UINT32_C(0xA0CD3660), + UINT32_C(0xE517984E), UINT32_C(0x3D7DA8A1), UINT32_C(0x6530BC86), + UINT32_C(0x2E46CA79), UINT32_C(0x04328CF9)}}, + {{UINT32_C(0x4798CD35), UINT32_C(0x4100ADED), UINT32_C(0x635BAECD), + UINT32_C(0xC832796D), UINT32_C(0x5B80E18C), UINT32_C(0x7EF1EA95), + UINT32_C(0x426B1AA9), UINT32_C(0x6889A91B)}, + {UINT32_C(0x0927C6F8), UINT32_C(0xC40A0A87), UINT32_C(0x2B86ED45), + UINT32_C(0xD60CFD1C), UINT32_C(0xD57350A1), UINT32_C(0x98731DFF), + UINT32_C(0x1DE4341F), UINT32_C(0x1C52EAE9)}}, + {{UINT32_C(0x23A40FAA), UINT32_C(0xC287E33B), UINT32_C(0x7A633BDC), + UINT32_C(0xB96D9F51), UINT32_C(0xE6D0F326), UINT32_C(0xF6A5B779), + UINT32_C(0xF619DE4B), UINT32_C(0x10203FE1)}, + {UINT32_C(0xC4F18BF8), UINT32_C(0x011FB53E), UINT32_C(0xBCA32CA0), + UINT32_C(0xAEBB82F6), UINT32_C(0xF881818D), UINT32_C(0x06BF8ED5), + UINT32_C(0x18247E6A), UINT32_C(0x3A6A3E35)}}, + {{UINT32_C(0x00625DC1), UINT32_C(0x3BF2E96E), UINT32_C(0x5A288F80), + UINT32_C(0xD81AD156), UINT32_C(0xB7CE9B13), UINT32_C(0x04C3269E), + UINT32_C(0x2F9E2713), UINT32_C(0x3E18EAFC)}, + {UINT32_C(0x9D0BC74A), UINT32_C(0x20F0E05D), UINT32_C(0xD8140790), + UINT32_C(0xACDB4B75), UINT32_C(0xF1B5B265), UINT32_C(0x12918A7E), + UINT32_C(0x6896342E), UINT32_C(0x22A70AF9)}}, + {{UINT32_C(0x9C4B6B08), UINT32_C(0x326A28A2), UINT32_C(0xA17D3D57), + UINT32_C(0x21302F37), UINT32_C(0xCE36F438), UINT32_C(0x181378E7), + UINT32_C(0xFED12DE1), UINT32_C(0x42B07EBA)}, + {UINT32_C(0x0468AD4C), UINT32_C(0x081DDD20), UINT32_C(0x64DF34AE), + UINT32_C(0x32822EC3), UINT32_C(0x04B2192D), UINT32_C(0xE9F8D7C2), + UINT32_C(0x918666F8), UINT32_C(0x6ABC7220)}}, + {{UINT32_C(0x04AF3956), UINT32_C(0x93330701), UINT32_C(0x872BD30D), + UINT32_C(0xEEB7AA8E), UINT32_C(0xD0E67494), UINT32_C(0xFC96D106), + UINT32_C(0x3A918DFB), UINT32_C(0x516028CF)}, + {UINT32_C(0xFB27B6EC), UINT32_C(0xFAF0B6F7), UINT32_C(0x515DA78D), + UINT32_C(0x0FAD73AD), UINT32_C(0xD8CF1934), UINT32_C(0x5F136068), + UINT32_C(0xB6052802), UINT32_C(0x0A526E04)}}, + {{UINT32_C(0xE4685212), UINT32_C(0x20DF0DEB), UINT32_C(0xA41B293F), + UINT32_C(0x71D4BAC1), UINT32_C(0x2FA8BBAC), UINT32_C(0xBCC32A2F), + UINT32_C(0xF30CC343), UINT32_C(0x32A8723A)}, + {UINT32_C(0xEF95ACFE), UINT32_C(0x71E6DAAF), UINT32_C(0x9F445394), + UINT32_C(0x27D158F6), UINT32_C(0xE186B246), UINT32_C(0x2140F78D), + UINT32_C(0xCB1C83AD), UINT32_C(0x4CAF98C3)}}, + {{UINT32_C(0xB6F63AA9), UINT32_C(0x94E264FC), UINT32_C(0x4D0FE485), + UINT32_C(0xF4637B02), UINT32_C(0x069CCB4E), UINT32_C(0xA4BC0A03), + UINT32_C(0x9E25E817), UINT32_C(0x99A81E37)}, + {UINT32_C(0x8F4D37BB), UINT32_C(0xE3B804A7), UINT32_C(0xE38E654C), + UINT32_C(0x57F272A5), UINT32_C(0x05928F65), UINT32_C(0x00D1852C), + UINT32_C(0x4345DD06), UINT32_C(0x3031B713)}}, + {{UINT32_C(0x57536140), UINT32_C(0x6E42AF11), UINT32_C(0x005A403F), + UINT32_C(0xDC5B7CDC), UINT32_C(0x26527417), UINT32_C(0xE6EE185E), + UINT32_C(0x7C685BCF), UINT32_C(0x1003D013)}, + {UINT32_C(0x192979E6), UINT32_C(0xC2206BF6), UINT32_C(0x6FE38214), + UINT32_C(0xD1C370DB), UINT32_C(0x92F3C044), UINT32_C(0x78D105B7), + UINT32_C(0xBFDF8DFA), UINT32_C(0x2F0DF6B8)}}, + {{UINT32_C(0x44D04C4A), UINT32_C(0xB02FCA38), UINT32_C(0xA44566C6), + UINT32_C(0x956A2F7C), UINT32_C(0x9F1F09C6), UINT32_C(0x60672DF3), + UINT32_C(0x2160C362), UINT32_C(0x6459A949)}, + {UINT32_C(0x08714451), UINT32_C(0xDAE54341), UINT32_C(0xBFFD7CF6), + UINT32_C(0x48B77A0D), UINT32_C(0x3EDBC8D4), UINT32_C(0x615ADBFE), + UINT32_C(0x35B67D2F), UINT32_C(0x3338E557)}}, + {{UINT32_C(0xDD24A0F0), UINT32_C(0x601D49D1), UINT32_C(0x48EF27B9), + UINT32_C(0x60A48DB7), UINT32_C(0x97A8BAC6), UINT32_C(0x97F2212C), + UINT32_C(0x155AB524), UINT32_C(0x376B0292)}, + {UINT32_C(0x62E2A961), UINT32_C(0xA25881BA), UINT32_C(0x2B8C56F7), + UINT32_C(0xEB74CC80), UINT32_C(0xDA57C41A), UINT32_C(0xBE5C5DD4), + UINT32_C(0x2D16AFA0), UINT32_C(0x53D0D037)}}, + {{UINT32_C(0xCA291206), UINT32_C(0xE47C9EAB), UINT32_C(0x42D5C667), + UINT32_C(0x25DADB64), UINT32_C(0xD886993E), UINT32_C(0x8C154CB6), + UINT32_C(0x806B932F), UINT32_C(0x11DEC39C)}, + {UINT32_C(0x13D4B4E5), UINT32_C(0x51A4DCF3), UINT32_C(0x9D1D822A), + UINT32_C(0xAA1DAD6D), UINT32_C(0xCEEF2E29), UINT32_C(0x2BB2E14D), + UINT32_C(0xB2343BE3), UINT32_C(0x429C13C7)}}, + {{UINT32_C(0x297F709D), UINT32_C(0x4E8E953F), UINT32_C(0x262D862A), + UINT32_C(0x23183A3D), UINT32_C(0xEA12D93F), UINT32_C(0xE164A10D), + UINT32_C(0xFE703920), UINT32_C(0x386C2873)}, + {UINT32_C(0xE5C51C7E), UINT32_C(0xD59E1582), UINT32_C(0x020F6A2E), + UINT32_C(0xA8C93B5B), UINT32_C(0x160CD058), UINT32_C(0x51518BD0), + UINT32_C(0xB1D38AC7), UINT32_C(0x3337801A)}}, + {{UINT32_C(0x2F5D9E25), UINT32_C(0x6E251533), UINT32_C(0xB0D6B0DB), + UINT32_C(0x88E76135), UINT32_C(0x9E6762D1), UINT32_C(0x5C197832), + UINT32_C(0x84E620AC), UINT32_C(0x12326773)}, + {UINT32_C(0x0E2694DD), UINT32_C(0x3B88DF27), UINT32_C(0x30A23CAA), + UINT32_C(0x30FED9E3), UINT32_C(0xA23DF142), UINT32_C(0xE12DD93E), + UINT32_C(0x2EA77C07), UINT32_C(0x06778F51)}}, + }, + { + {{UINT32_C(0x49E5F6B4), UINT32_C(0x5D5BE00E), UINT32_C(0x721EF9DC), + UINT32_C(0x2F47E7C7), UINT32_C(0x7EAFC098), UINT32_C(0x338F7B00), + UINT32_C(0xAF8C2475), UINT32_C(0x0F5F06E3)}, + {UINT32_C(0x63122B22), UINT32_C(0x2A4B845C), UINT32_C(0x89A4CE9A), + UINT32_C(0xED440060), UINT32_C(0x9A86D9BC), UINT32_C(0xC9EEB640), + UINT32_C(0x2F39B439), UINT32_C(0x12C3E0F3)}}, + {{UINT32_C(0x17766F6C), UINT32_C(0xB444B88B), UINT32_C(0xA41FD692), + UINT32_C(0xF9B100E6), UINT32_C(0x5C149B30), UINT32_C(0x81EAFCD1), + UINT32_C(0x1D521A1E), UINT32_C(0x37DD6F6E)}, + {UINT32_C(0x389DCD6E), UINT32_C(0x14DBE8C3), UINT32_C(0x0DCBC7FC), + UINT32_C(0xCD24D655), UINT32_C(0xE00F9102), UINT32_C(0x05F8D48E), + UINT32_C(0x509D18D4), UINT32_C(0x403954E6)}}, + {{UINT32_C(0xE4FE16EC), UINT32_C(0xA04FDDDF), UINT32_C(0x90E15C0C), + UINT32_C(0xB9E7FA73), UINT32_C(0xC77FAB6B), UINT32_C(0x7D6A7206), + UINT32_C(0x3E221F12), UINT32_C(0x3FFDCCD1)}, + {UINT32_C(0x47B5BB7F), UINT32_C(0x120C05B1), UINT32_C(0x5B7E2B96), + UINT32_C(0xFA3614C0), UINT32_C(0x4A6AC6E0), UINT32_C(0xF3A4F07F), + UINT32_C(0xC8AD4F23), UINT32_C(0x0324BF48)}}, + {{UINT32_C(0x55DF2F18), UINT32_C(0x508A0370), UINT32_C(0xB872F209), + UINT32_C(0x1C6C91EA), UINT32_C(0x8E12F437), UINT32_C(0xDC3F6C5A), + UINT32_C(0xC91AFD75), UINT32_C(0x65F5058F)}, + {UINT32_C(0x5A859A1D), UINT32_C(0x0C43613D), UINT32_C(0x5BF96A6B), + UINT32_C(0x83A2610E), UINT32_C(0x1496AEAD), UINT32_C(0x1A98AA4C), + UINT32_C(0xE6CAA901), UINT32_C(0x3AB1CE5E)}}, + {{UINT32_C(0xFFB3E411), UINT32_C(0x9420ABFE), UINT32_C(0x31404E74), + UINT32_C(0xCE609760), UINT32_C(0x02C49837), UINT32_C(0x3D4C23C5), + UINT32_C(0xD0868A3C), UINT32_C(0x6B79FB14)}, + {UINT32_C(0x6B5861EA), UINT32_C(0xB4EEE8DB), UINT32_C(0x9D948195), + UINT32_C(0x495E2B46), UINT32_C(0x1CE15EC9), UINT32_C(0x2BB0BD94), + UINT32_C(0xDED25955), UINT32_C(0x6CE79F80)}}, + {{UINT32_C(0x5820DF65), UINT32_C(0xA6B98C1D), UINT32_C(0x909356B5), + UINT32_C(0xE8284737), UINT32_C(0x091340E1), UINT32_C(0x38E8609A), + UINT32_C(0x10666012), UINT32_C(0x98EC077B)}, + {UINT32_C(0xBF075DAE), UINT32_C(0xFB243B1E), UINT32_C(0xA270FE31), + UINT32_C(0x32312BAC), UINT32_C(0x0CAA5F8E), UINT32_C(0x21451120), + UINT32_C(0x2A515015), UINT32_C(0x8F60118F)}}, + {{UINT32_C(0xCBDEB88E), UINT32_C(0x4F211C9E), UINT32_C(0xB6D680FD), + UINT32_C(0xF6D3CC3A), UINT32_C(0x8BF4B4A7), UINT32_C(0xE193829D), + UINT32_C(0x2D620371), UINT32_C(0x3223EF4E)}, + {UINT32_C(0xC0E5245A), UINT32_C(0xC3E35420), UINT32_C(0xB4ADE2EA), + UINT32_C(0xD3F4F894), UINT32_C(0xF2CE985E), UINT32_C(0x464FCB6C), + UINT32_C(0x7B987FA7), UINT32_C(0x79CF596D)}}, + {{UINT32_C(0x0C0016FF), UINT32_C(0x0730748C), UINT32_C(0xA2949069), + UINT32_C(0xD02115C5), UINT32_C(0x40E9C7F9), UINT32_C(0xAA6F794D), + UINT32_C(0x79149C37), UINT32_C(0x9514FA7B)}, + {UINT32_C(0x5A46BCE0), UINT32_C(0x6E2F2778), UINT32_C(0x0837ACD5), + UINT32_C(0xF55D46C6), UINT32_C(0x1E4223E6), UINT32_C(0xF965C468), + UINT32_C(0x85D90A07), UINT32_C(0x0BFF0A91)}}, + {{UINT32_C(0x1923C8AF), UINT32_C(0x9ED90358), UINT32_C(0xA470AE00), + UINT32_C(0xC425B633), UINT32_C(0x1C50FDAD), UINT32_C(0xF9F4B162), + UINT32_C(0xA8CA2BD5), UINT32_C(0x0999D072)}, + {UINT32_C(0xAF74D4C3), UINT32_C(0xCB122FBD), UINT32_C(0x2C283752), + UINT32_C(0x372C13F0), UINT32_C(0x82138B19), UINT32_C(0x9F42A903), + UINT32_C(0x3EB8CB95), UINT32_C(0x573A2CEE)}}, + {{UINT32_C(0x3AC2E191), UINT32_C(0x6C3A6BE3), UINT32_C(0x1B222DB2), + UINT32_C(0x4149E0EB), UINT32_C(0xA4AACC55), UINT32_C(0x5BA91005), + UINT32_C(0x1BFADBD0), UINT32_C(0x176BD33D)}, + {UINT32_C(0xA8DA0FEA), UINT32_C(0x4AEAF14E), UINT32_C(0xA7FF8E1C), + UINT32_C(0xB12401F9), UINT32_C(0x0F192414), UINT32_C(0xF1EF39AE), + UINT32_C(0x416743C1), UINT32_C(0x95D433D3)}}, + {{UINT32_C(0x9AA0C238), UINT32_C(0x29ECF54D), UINT32_C(0x8FCA6419), + UINT32_C(0x3762F1D7), UINT32_C(0x64D3AAA9), UINT32_C(0x761D786A), + UINT32_C(0xDAEC7BF4), UINT32_C(0x7A8A677D)}, + {UINT32_C(0x324676F4), UINT32_C(0xC2829EAD), UINT32_C(0x4D0B291E), + UINT32_C(0x4E504A47), UINT32_C(0xF8C4F384), UINT32_C(0x360CE7FE), + UINT32_C(0x78CDA37D), UINT32_C(0x33A577B5)}}, + {{UINT32_C(0x333103FD), UINT32_C(0x1BBFC128), UINT32_C(0xE45C9DBE), + UINT32_C(0x3D36045C), UINT32_C(0x15C9013D), UINT32_C(0xA8D53F5A), + UINT32_C(0xA33FDCFD), UINT32_C(0x99D62F8A)}, + {UINT32_C(0x0A81F581), UINT32_C(0x73E53961), UINT32_C(0xD00BC0D9), + UINT32_C(0xD01AD20E), UINT32_C(0x1F6D9B73), UINT32_C(0x59701F4D), + UINT32_C(0xE098E536), UINT32_C(0x0F4EBFBC)}}, + {{UINT32_C(0x91E3C062), UINT32_C(0xBDB9368A), UINT32_C(0x9B17AAE5), + UINT32_C(0xCD66A0B1), UINT32_C(0xB4537E05), UINT32_C(0xB6636DD7), + UINT32_C(0x73B119CE), UINT32_C(0x37D94B8E)}, + {UINT32_C(0xC7428FF9), UINT32_C(0xA5F8E90F), UINT32_C(0xF8EA9F03), + UINT32_C(0xE7E5B2B7), UINT32_C(0x5B3506DA), UINT32_C(0xB7F20FB8), + UINT32_C(0xE494FFDA), UINT32_C(0x0F4AB6D5)}}, + {{UINT32_C(0x85365933), UINT32_C(0x3ACEE3BD), UINT32_C(0xBF510114), + UINT32_C(0x9D5223D3), UINT32_C(0xA08D01B0), UINT32_C(0xE0D7D9A7), + UINT32_C(0xB2F1F61F), UINT32_C(0x28FD329A)}, + {UINT32_C(0xA5909DD3), UINT32_C(0x3E16A2E2), UINT32_C(0xB4FECB35), + UINT32_C(0x284A8708), UINT32_C(0x73D5BFBA), UINT32_C(0x190F7B3A), + UINT32_C(0x92EE4BBE), UINT32_C(0x7E07982E)}}, + {{UINT32_C(0x44945687), UINT32_C(0xA30A4C22), UINT32_C(0xD688A301), + UINT32_C(0x657C0F2E), UINT32_C(0xBBB3E65A), UINT32_C(0x9B558D4A), + UINT32_C(0xA6E57844), UINT32_C(0x8044D57E)}, + {UINT32_C(0xE3957E21), UINT32_C(0xF202E50E), UINT32_C(0xCE62FCC9), + UINT32_C(0x4957E651), UINT32_C(0xC4ECE0B8), UINT32_C(0xF7B9EBA4), + UINT32_C(0x61167229), UINT32_C(0x29532CEC)}}, + {{UINT32_C(0x3EEF3D71), UINT32_C(0xE9DC8EA6), UINT32_C(0x3E8EC117), + UINT32_C(0xEBF76BD4), UINT32_C(0x2EA072B9), UINT32_C(0x48CEB78D), + UINT32_C(0x73EFC32D), UINT32_C(0x82ECDFC4)}, + {UINT32_C(0xE2C89E7D), UINT32_C(0x51B02CB3), UINT32_C(0xF4D9100F), + UINT32_C(0xE9D0740C), UINT32_C(0x8A5E3F48), UINT32_C(0xBB556EFE), + UINT32_C(0x1D01B44E), UINT32_C(0x864E52DA)}}, + }, + { + {{UINT32_C(0x14EA6DC5), UINT32_C(0x5A75E0BD), UINT32_C(0x532EFED7), + UINT32_C(0x09F2AA76), UINT32_C(0x83CE5A18), UINT32_C(0xE6DAE0A9), + UINT32_C(0xCEB4E78D), UINT32_C(0x00F9BCB7)}, + {UINT32_C(0x71F79BF3), UINT32_C(0x128FB51C), UINT32_C(0x80D5DBC3), + UINT32_C(0x78C79788), UINT32_C(0x9B816B9E), UINT32_C(0x2752F02C), + UINT32_C(0xEB7622E2), UINT32_C(0x88CFBA0C)}}, + {{UINT32_C(0x268432A3), UINT32_C(0x845AB940), UINT32_C(0x2F94F6D3), + UINT32_C(0xA8D0231B), UINT32_C(0xFEC02130), UINT32_C(0xBDFB3F91), + UINT32_C(0x5F62419F), UINT32_C(0x07A61AE4)}, + {UINT32_C(0x192EBF1A), UINT32_C(0xD1C951DF), UINT32_C(0xFA232E34), + UINT32_C(0x22CDCFF5), UINT32_C(0x3A7581DD), UINT32_C(0xDFDF121B), + UINT32_C(0x710403A5), UINT32_C(0x9865ECA2)}}, + {{UINT32_C(0xF8180BAB), UINT32_C(0x609F4527), UINT32_C(0x50A6D914), + UINT32_C(0x93AB1072), UINT32_C(0xE2EEE3BD), UINT32_C(0x299D5013), + UINT32_C(0x42959C14), UINT32_C(0x36EFCE5B)}, + {UINT32_C(0x1045FFCB), UINT32_C(0x49CDA60D), UINT32_C(0x45723371), + UINT32_C(0xA8B2492E), UINT32_C(0xF243FDBB), UINT32_C(0xCB75789B), + UINT32_C(0x871D500D), UINT32_C(0x8E1079D7)}}, + {{UINT32_C(0xDB14298E), UINT32_C(0x69852694), UINT32_C(0x41A56B6D), + UINT32_C(0xBAA92A95), UINT32_C(0x3DBFDBA4), UINT32_C(0xC7371848), + UINT32_C(0x947747F8), UINT32_C(0x94B3155C)}, + {UINT32_C(0x7552426B), UINT32_C(0x97BCDD19), UINT32_C(0x32682121), + UINT32_C(0x4FB3E76D), UINT32_C(0x8BC15FCA), UINT32_C(0x875AA0F7), + UINT32_C(0xF1FD2315), UINT32_C(0x4065BCDF)}}, + {{UINT32_C(0xB7F1ED04), UINT32_C(0x2D1C0519), UINT32_C(0xEA2535E1), + UINT32_C(0xED9A1BB7), UINT32_C(0xABAE813E), UINT32_C(0xE4728CD6), + UINT32_C(0x21A771D0), UINT32_C(0x2CD7D447)}, + {UINT32_C(0x59B9E964), UINT32_C(0x88E2A785), UINT32_C(0x6F9B5374), + UINT32_C(0x2677FBD7), UINT32_C(0x2645B626), UINT32_C(0x3967D6C5), + UINT32_C(0x5A1C315B), UINT32_C(0x8843F7DF)}}, + {{UINT32_C(0xC7055A4E), UINT32_C(0x673CD273), UINT32_C(0xEE827873), + UINT32_C(0x052AC45C), UINT32_C(0xCE1981F3), UINT32_C(0xC26B9214), + UINT32_C(0x2B8EEF59), UINT32_C(0x3C39C13C)}, + {UINT32_C(0x0B276D47), UINT32_C(0xDD9E1B9B), UINT32_C(0x7287F9A1), + UINT32_C(0x6729A534), UINT32_C(0x061DAD53), UINT32_C(0x43E1471C), + UINT32_C(0x118B56C8), UINT32_C(0x6082FAD9)}}, + {{UINT32_C(0xF99186D6), UINT32_C(0x9C3872AA), UINT32_C(0x75AC99BF), + UINT32_C(0x1D9E8DB6), UINT32_C(0xE338DBD3), UINT32_C(0x6FA7A0FF), + UINT32_C(0xD1FEF2F9), UINT32_C(0x1EDF44EC)}, + {UINT32_C(0x1F9114BF), UINT32_C(0xBAF9D33A), UINT32_C(0x3007B6A5), + UINT32_C(0x89AF08E5), UINT32_C(0x8436D917), UINT32_C(0xAA04B169), + UINT32_C(0x6AFCF5E0), UINT32_C(0x8381E76A)}}, + {{UINT32_C(0xC1D799BA), UINT32_C(0xC51848A4), UINT32_C(0x7F40B34B), + UINT32_C(0x6C3D43A9), UINT32_C(0xA5CB7B95), UINT32_C(0xE8DAE074), + UINT32_C(0xBB5F8AEC), UINT32_C(0x5375B1EE)}, + {UINT32_C(0x507099E6), UINT32_C(0x461290EE), UINT32_C(0x3BAD89AD), + UINT32_C(0xB95934AA), UINT32_C(0x701A4D9C), UINT32_C(0x9A6E5C22), + UINT32_C(0x5E1389F6), UINT32_C(0x2CA79144)}}, + {{UINT32_C(0x0E5108FC), UINT32_C(0xBF82F786), UINT32_C(0x644D06DE), + UINT32_C(0x3620CCC4), UINT32_C(0x8E5C4753), UINT32_C(0xB65DE853), + UINT32_C(0x9FEDFD16), UINT32_C(0x6DAB7241)}, + {UINT32_C(0x546DCBA4), UINT32_C(0x4CECAC87), UINT32_C(0x3E2D0684), + UINT32_C(0xA7BBE65D), UINT32_C(0xDA1E4FFA), UINT32_C(0x092AA490), + UINT32_C(0x41AD32AF), UINT32_C(0x78F448BE)}}, + {{UINT32_C(0x4A33F071), UINT32_C(0x321580FE), UINT32_C(0x5EE5E685), + UINT32_C(0xBEA845D1), UINT32_C(0x47AC8ACF), UINT32_C(0xC73CAECE), + UINT32_C(0xA9F65F05), UINT32_C(0x0E15E55D)}, + {UINT32_C(0xA59506E7), UINT32_C(0x5FC47420), UINT32_C(0x01DBD2DD), + UINT32_C(0x501417FF), UINT32_C(0xFB1205A6), UINT32_C(0x8EF23280), + UINT32_C(0xE0F43AE8), UINT32_C(0x1AA26168)}}, + {{UINT32_C(0x8149EB2A), UINT32_C(0xD41F73B1), UINT32_C(0xAD95D531), + UINT32_C(0xC297AF04), UINT32_C(0x749E415D), UINT32_C(0x2017176F), + UINT32_C(0x8357CE9A), UINT32_C(0x5AF89C73)}, + {UINT32_C(0x08A0FF9C), UINT32_C(0x301F7C79), UINT32_C(0x98695C57), + UINT32_C(0x0C2999B5), UINT32_C(0x6E4D8FF5), UINT32_C(0x85679957), + UINT32_C(0x6F493B1C), UINT32_C(0x2CC0FF3E)}}, + {{UINT32_C(0x4AF481F5), UINT32_C(0xFE90F904), UINT32_C(0x31BC4919), + UINT32_C(0x0562C78B), UINT32_C(0x70E4F140), UINT32_C(0xAA44AA56), + UINT32_C(0xA175159A), UINT32_C(0x1B61DEB4)}, + {UINT32_C(0xA7A7E648), UINT32_C(0x85315DE1), UINT32_C(0x6C012B33), + UINT32_C(0x4BC1F51D), UINT32_C(0x060CDEE6), UINT32_C(0x40CB5DE3), + UINT32_C(0x32A1E138), UINT32_C(0x969F9196)}}, + {{UINT32_C(0xE05F23B5), UINT32_C(0x3B317508), UINT32_C(0x512D1156), + UINT32_C(0x7B1A93AE), UINT32_C(0xCB58EC19), UINT32_C(0x3A283415), + UINT32_C(0x8E27CAD9), UINT32_C(0x193A53A1)}, + {UINT32_C(0x03DE1BA8), UINT32_C(0xCF6BBEBA), UINT32_C(0x47A02393), + UINT32_C(0xFA5544CA), UINT32_C(0x8627F5EB), UINT32_C(0x8B3AAC1A), + UINT32_C(0x62EAF195), UINT32_C(0x02FAD2EC)}}, + {{UINT32_C(0x259CCF0F), UINT32_C(0x4F8D8ADA), UINT32_C(0x562991D7), + UINT32_C(0xE4E6786B), UINT32_C(0x597C3FD3), UINT32_C(0xA1C63473), + UINT32_C(0xACAB6F16), UINT32_C(0x1F5B9017)}, + {UINT32_C(0x592D437A), UINT32_C(0x95B201BD), UINT32_C(0xED14F859), + UINT32_C(0x54432A75), UINT32_C(0x0B551AC1), UINT32_C(0x67EF73FB), + UINT32_C(0x7F1AB9CA), UINT32_C(0x0A48F043)}}, + {{UINT32_C(0x4A35445C), UINT32_C(0xECEE508E), UINT32_C(0xB3EA6F9B), + UINT32_C(0x80BE9F07), UINT32_C(0x87E4B78E), UINT32_C(0xD914B256), + UINT32_C(0xF89B8E4B), UINT32_C(0x97F79CC9)}, + {UINT32_C(0xC359FB12), UINT32_C(0x6A5B4F2B), UINT32_C(0x99CF6FFA), + UINT32_C(0x54E6E37A), UINT32_C(0xF7C66CA8), UINT32_C(0x1133C4B2), + UINT32_C(0x0345866B), UINT32_C(0x6F679B28)}}, + {{UINT32_C(0x44E77CDF), UINT32_C(0x0006F7A1), UINT32_C(0x42033333), + UINT32_C(0xD8077F9F), UINT32_C(0x21EAF35F), UINT32_C(0x0414ECE5), + UINT32_C(0x5623803C), UINT32_C(0x1211576B)}, + {UINT32_C(0x140309A7), UINT32_C(0xEDADD215), UINT32_C(0x5EBAE3BB), + UINT32_C(0xC349C657), UINT32_C(0x821DE06B), UINT32_C(0xBD40427C), + UINT32_C(0x3F5D2F97), UINT32_C(0x8949ACA3)}}, + }, + { + {{UINT32_C(0x022E3D44), UINT32_C(0xAC1F87E6), UINT32_C(0xB39F6B10), + UINT32_C(0xDFC17BED), UINT32_C(0x07119C4A), UINT32_C(0xEAAE4168), + UINT32_C(0xDBD47D36), UINT32_C(0x8B3B40BC)}, + {UINT32_C(0x861B7B59), UINT32_C(0x6683A561), UINT32_C(0x13A6C76D), + UINT32_C(0xF9BFFB17), UINT32_C(0xA30A05AC), UINT32_C(0xE4E72EA4), + UINT32_C(0xBA0D2AD6), UINT32_C(0x77C219E8)}}, + {{UINT32_C(0x66BE6944), UINT32_C(0x5019824E), UINT32_C(0x7B131070), + UINT32_C(0x811ACEBE), UINT32_C(0x3BA34677), UINT32_C(0x9730DCF0), + UINT32_C(0x7BC9CFC8), UINT32_C(0x5B9C5CF5)}, + {UINT32_C(0xB283C8CC), UINT32_C(0x1CBD950F), UINT32_C(0x3973A325), + UINT32_C(0xF66DBDDA), UINT32_C(0x6FA60257), UINT32_C(0x4EC5EBC2), + UINT32_C(0x36FF26B3), UINT32_C(0x0C01D577)}}, + {{UINT32_C(0x7CE2BE74), UINT32_C(0xBB221954), UINT32_C(0x841E6C0C), + UINT32_C(0x23E44E0E), UINT32_C(0x77C3824E), UINT32_C(0xE760D33D), + UINT32_C(0x7EB3CE34), UINT32_C(0x5B656FBE)}, + {UINT32_C(0xC5F3D66E), UINT32_C(0xEC50E509), UINT32_C(0x496EF8BA), + UINT32_C(0x5326C2B8), UINT32_C(0x3D4B20D4), UINT32_C(0x3F9485F6), + UINT32_C(0x51C21B0E), UINT32_C(0x11B74A85)}}, + {{UINT32_C(0x25E30336), UINT32_C(0xC3EAEB04), UINT32_C(0xA6E3637F), + UINT32_C(0xA9D6C70F), UINT32_C(0x86F77F68), UINT32_C(0xF818C37E), + UINT32_C(0xC60DF35A), UINT32_C(0x786ED3C2)}, + {UINT32_C(0xD56D705A), UINT32_C(0xACA70EA0), UINT32_C(0x7BF4EF10), + UINT32_C(0xCE61608C), UINT32_C(0x1722C179), UINT32_C(0x49AD1CD8), + UINT32_C(0x687F3222), UINT32_C(0x1B84FBE9)}}, + {{UINT32_C(0x35EE0BA9), UINT32_C(0x8A0F4BF1), UINT32_C(0x03952A08), + UINT32_C(0x42AD2846), UINT32_C(0x3B60B4DD), UINT32_C(0x1E0E1E3B), + UINT32_C(0xF5DCAD76), UINT32_C(0x0DC1A947)}, + {UINT32_C(0x1F496E03), UINT32_C(0x054BECA4), UINT32_C(0x3AE6E6F6), + UINT32_C(0x8F02FDAB), UINT32_C(0x9B71C9F5), UINT32_C(0x8851CFF4), + UINT32_C(0xA7441F87), UINT32_C(0x6BD7271C)}}, + {{UINT32_C(0x9EB6A2C3), UINT32_C(0xB019E346), UINT32_C(0x931E7550), + UINT32_C(0x2B719034), UINT32_C(0x40698F1F), UINT32_C(0x2B2CBEBD), + UINT32_C(0x4F1FC587), UINT32_C(0x375DB591)}, + {UINT32_C(0x676A79A4), UINT32_C(0x09843166), UINT32_C(0xB416D657), + UINT32_C(0x91848967), UINT32_C(0x9FED6B27), UINT32_C(0xB49EA721), + UINT32_C(0xD080C8AA), UINT32_C(0x1FAC5650)}}, + {{UINT32_C(0x58C4C2AA), UINT32_C(0x205CD588), UINT32_C(0x17F572EE), + UINT32_C(0xBEEE26F8), UINT32_C(0x4CB4DE3A), UINT32_C(0xE744AB67), + UINT32_C(0xCBE989BD), UINT32_C(0x37E34E18)}, + {UINT32_C(0x767D31B5), UINT32_C(0x95D9118B), UINT32_C(0x83E7C03E), + UINT32_C(0x9A34DBEC), UINT32_C(0xB8F70DD3), UINT32_C(0xCAFDBD1A), + UINT32_C(0x3909BB51), UINT32_C(0x1E68A681)}}, + {{UINT32_C(0x9FD96ABA), UINT32_C(0xFE0A5DFF), UINT32_C(0xD99B68DE), + UINT32_C(0xBBFB1FDF), UINT32_C(0xE3F522BE), UINT32_C(0x5E232A4F), + UINT32_C(0xA6428D33), UINT32_C(0x768C2C54)}, + {UINT32_C(0xDBF1A575), UINT32_C(0xE9CFEDF9), UINT32_C(0x4B83F9AB), + UINT32_C(0x841721F2), UINT32_C(0x80A85361), UINT32_C(0xFAD9650A), + UINT32_C(0x04979759), UINT32_C(0x31589211)}}, + {{UINT32_C(0xEFBF2099), UINT32_C(0x1CF9F4B8), UINT32_C(0xF571408B), + UINT32_C(0x63D5499B), UINT32_C(0xEC3E74A6), UINT32_C(0x89C119FC), + UINT32_C(0x698E4DCD), UINT32_C(0x0525DDDF)}, + {UINT32_C(0x7333A38C), UINT32_C(0x43FCDDE4), UINT32_C(0x80A912DE), + UINT32_C(0x2150EAD4), UINT32_C(0x0A19CC55), UINT32_C(0x4B3BD223), + UINT32_C(0x238AC64C), UINT32_C(0x3553EB4E)}}, + {{UINT32_C(0xFEC2371F), UINT32_C(0x3A259F52), UINT32_C(0x44863D3E), + UINT32_C(0x8B03C505), UINT32_C(0x86BB6522), UINT32_C(0x1053E2D6), + UINT32_C(0xF7086CBE), UINT32_C(0x400CE699)}, + {UINT32_C(0x03ED78DE), UINT32_C(0x695B1EA0), UINT32_C(0x16500E1B), + UINT32_C(0x00AE6D09), UINT32_C(0x14B01815), UINT32_C(0x9F29B089), + UINT32_C(0xC218D892), UINT32_C(0x269692B4)}}, + {{UINT32_C(0xF0D44E79), UINT32_C(0x8660280D), UINT32_C(0x37C0F38F), + UINT32_C(0x69D29685), UINT32_C(0xB9E24AD8), UINT32_C(0x664B8146), + UINT32_C(0x1E695452), UINT32_C(0x277CB4DD)}, + {UINT32_C(0xDFBF05EB), UINT32_C(0xB1A02D4E), UINT32_C(0x4A1426C7), + UINT32_C(0x3B349308), UINT32_C(0x22204FE7), UINT32_C(0x13B79612), + UINT32_C(0xBCB5CD9F), UINT32_C(0x04F80867)}}, + {{UINT32_C(0xE0852CBC), UINT32_C(0x37BDBCAE), UINT32_C(0xBE22764C), + UINT32_C(0x2A6D7A23), UINT32_C(0x25AFD9FF), UINT32_C(0x4E0D43AC), + UINT32_C(0xD16DD9EB), UINT32_C(0x1F6C9E14)}, + {UINT32_C(0xB4B0F47A), UINT32_C(0xE37E3AB3), UINT32_C(0x6C476C3A), + UINT32_C(0x09E046FB), UINT32_C(0xB75FA2DC), UINT32_C(0xB8F649D9), + UINT32_C(0xFAB1AC41), UINT32_C(0x7962A8C4)}}, + {{UINT32_C(0xF6A1314A), UINT32_C(0x00E41470), UINT32_C(0xE4388464), + UINT32_C(0x176380C3), UINT32_C(0x9B8A2B4D), UINT32_C(0xDB3405CD), + UINT32_C(0x7DE02ABC), UINT32_C(0x6299A1A6)}, + {UINT32_C(0x7BBE7BFA), UINT32_C(0x9F6B9DE7), UINT32_C(0x9D3098DD), + UINT32_C(0x59F16F54), UINT32_C(0x3B5767FE), UINT32_C(0xFEC29C8D), + UINT32_C(0x64955759), UINT32_C(0x67711BC0)}}, + {{UINT32_C(0xB1B07B5D), UINT32_C(0x34444EA3), UINT32_C(0x91FA2B4A), + UINT32_C(0xB1D973B4), UINT32_C(0x83403A0E), UINT32_C(0xEBEBEFB1), + UINT32_C(0x8E8A8EC6), UINT32_C(0x56D52098)}, + {UINT32_C(0xA7E82D55), UINT32_C(0x11C93529), UINT32_C(0xD525C399), + UINT32_C(0x9230AE03), UINT32_C(0x8DB46C82), UINT32_C(0x74E1CBB2), + UINT32_C(0x40BE5E15), UINT32_C(0x4C3383CC)}}, + {{UINT32_C(0xCDAD72F3), UINT32_C(0x33A52E73), UINT32_C(0xB9E77759), + UINT32_C(0x1D2CCA33), UINT32_C(0x549406F5), UINT32_C(0x26717716), + UINT32_C(0x5B3DB3E8), UINT32_C(0x70DED57F)}, + {UINT32_C(0x43C85A67), UINT32_C(0xBA38F813), UINT32_C(0x35422BB3), + UINT32_C(0x956F2DD7), UINT32_C(0x07486F18), UINT32_C(0x52D9FA99), + UINT32_C(0x75D1D2C4), UINT32_C(0x655791BF)}}, + {{UINT32_C(0x1FC9E0B3), UINT32_C(0xF434A960), UINT32_C(0xBEDE92AD), + UINT32_C(0x42A7B891), UINT32_C(0xA55A8009), UINT32_C(0x05A182D8), + UINT32_C(0x38531612), UINT32_C(0x3404E08D)}, + {UINT32_C(0xF07D76E3), UINT32_C(0x2B5B2766), UINT32_C(0x1D77B90C), + UINT32_C(0x94B1A98D), UINT32_C(0x4B18BB9F), UINT32_C(0xA86C0EC8), + UINT32_C(0x526A81E3), UINT32_C(0x6532770F)}}, + }, + { + {{UINT32_C(0x61CFE04A), UINT32_C(0x4429A4E8), UINT32_C(0x2C9CA012), + UINT32_C(0xEE867386), UINT32_C(0xC32D1969), UINT32_C(0x237A3040), + UINT32_C(0x0AE2DFAE), UINT32_C(0x400AD599)}, + {UINT32_C(0x213C0A18), UINT32_C(0x1603D10A), UINT32_C(0x2B1E2A57), + UINT32_C(0x6EB8042D), UINT32_C(0xC7CAF556), UINT32_C(0x4C9C1696), + UINT32_C(0xE0C1A5A3), UINT32_C(0x79BE04A7)}}, + {{UINT32_C(0x3FCB8B14), UINT32_C(0x161781E3), UINT32_C(0xB1384C3C), + UINT32_C(0x1383E3B8), UINT32_C(0xB566626C), UINT32_C(0x5129EA19), + UINT32_C(0x551DE02A), UINT32_C(0x8A1F86E4)}, + {UINT32_C(0xAEDBE04C), UINT32_C(0x9C648CCE), UINT32_C(0xFB200132), + UINT32_C(0x0D4278AC), UINT32_C(0xC1E2D4A3), UINT32_C(0x466D452A), + UINT32_C(0xB21B6E38), UINT32_C(0x832B0E6E)}}, + {{UINT32_C(0xED1D76C7), UINT32_C(0x20101D7C), UINT32_C(0xC110D85E), + UINT32_C(0xC3282661), UINT32_C(0xFFCA2DD7), UINT32_C(0xB8026CE4), + UINT32_C(0x8BA48211), UINT32_C(0x73B4EBA5)}, + {UINT32_C(0xD8554E2C), UINT32_C(0xAB94FE21), UINT32_C(0x81B2A181), + UINT32_C(0x319E2FD7), UINT32_C(0x37E8D3E2), UINT32_C(0x2C824DC5), + UINT32_C(0x09FCA0AB), UINT32_C(0x97CD457A)}}, + {{UINT32_C(0xC50116CB), UINT32_C(0x8E4B5FBD), UINT32_C(0xCA631A93), + UINT32_C(0x3D20CECE), UINT32_C(0x545575D8), UINT32_C(0x5F80606C), + UINT32_C(0xF91C7908), UINT32_C(0x45ED55DE)}, + {UINT32_C(0x7CC1083C), UINT32_C(0x91870A92), UINT32_C(0xD360FF5C), + UINT32_C(0xA3828E06), UINT32_C(0x84003D42), UINT32_C(0xFC9DFCDC), + UINT32_C(0xFAC4667F), UINT32_C(0x0733C887)}}, + {{UINT32_C(0xCC2FC31B), UINT32_C(0x6F1F771A), UINT32_C(0x902E8176), + UINT32_C(0xDA9351A1), UINT32_C(0xCE3FF045), UINT32_C(0xFB9395AF), + UINT32_C(0x13820DAB), UINT32_C(0x17C28CA2)}, + {UINT32_C(0xA684E6FA), UINT32_C(0xA1F596BC), UINT32_C(0xDAD3995A), + UINT32_C(0x89228CC7), UINT32_C(0xC02E458B), UINT32_C(0x5DBFD421), + UINT32_C(0xA2122AFE), UINT32_C(0x58C25045)}}, + {{UINT32_C(0x018EADB0), UINT32_C(0x2906450F), UINT32_C(0x9030C84E), + UINT32_C(0x88A7A236), UINT32_C(0x33308084), UINT32_C(0x492BA7A3), + UINT32_C(0x5605F371), UINT32_C(0x321388B9)}, + {UINT32_C(0x626AE19A), UINT32_C(0x5F934C94), UINT32_C(0x01C7CCD9), + UINT32_C(0xE2BD6C67), UINT32_C(0xEC0BBD52), UINT32_C(0xB07757B1), + UINT32_C(0xF9EDD2AC), UINT32_C(0x1E980338)}}, + {{UINT32_C(0x8831457C), UINT32_C(0x5A537074), UINT32_C(0x47E7B9A9), + UINT32_C(0x0E0E22FB), UINT32_C(0xA225A259), UINT32_C(0x7BE70594), + UINT32_C(0x30946816), UINT32_C(0x433DB055)}, + {UINT32_C(0xE2F2C3CB), UINT32_C(0x852EA9F9), UINT32_C(0x2D243848), + UINT32_C(0xDC4E8E3A), UINT32_C(0x1E887770), UINT32_C(0x10F34AB8), + UINT32_C(0xC89FC71B), UINT32_C(0x29795D2C)}}, + {{UINT32_C(0xCFEC2C6F), UINT32_C(0xE046B04B), UINT32_C(0x2CA8256E), + UINT32_C(0xA1D3B5A0), UINT32_C(0xE87F767F), UINT32_C(0x93F7FDFA), + UINT32_C(0x35FA3837), UINT32_C(0x2DF5693E)}, + {UINT32_C(0x97884587), UINT32_C(0x71D9638C), UINT32_C(0x39E115EC), + UINT32_C(0x175EA91F), UINT32_C(0xF41A27FC), UINT32_C(0x14E16C31), + UINT32_C(0xEB2F5913), UINT32_C(0x8B2682EA)}}, + {{UINT32_C(0x798C7F28), UINT32_C(0x2BCC6853), UINT32_C(0xDD7D3615), + UINT32_C(0x2F985A59), UINT32_C(0x41D2257A), UINT32_C(0xA66519E1), + UINT32_C(0x021F719B), UINT32_C(0x18731D74)}, + {UINT32_C(0x360E9C20), UINT32_C(0x7210472C), UINT32_C(0x329A9B35), + UINT32_C(0x4FB48411), UINT32_C(0x87D62CA5), UINT32_C(0xB33B6CB5), + UINT32_C(0xFD0D7703), UINT32_C(0x86226D9E)}}, + {{UINT32_C(0xF67CB77C), UINT32_C(0xDD133F8B), UINT32_C(0xF6ABEE80), + UINT32_C(0x381E4D62), UINT32_C(0x7DF85AE5), UINT32_C(0x3236F005), + UINT32_C(0x4610BB0E), UINT32_C(0x88EBB386)}, + {UINT32_C(0x8DB908D8), UINT32_C(0x895AA539), UINT32_C(0x104C4633), + UINT32_C(0x848142E6), UINT32_C(0xB8012B2E), UINT32_C(0x467EE770), + UINT32_C(0x1B9210EE), UINT32_C(0x193CBAED)}}, + {{UINT32_C(0xC1F44FC1), UINT32_C(0x737CD32B), UINT32_C(0x522B6209), + UINT32_C(0xCDF82B1C), UINT32_C(0xE0017F2A), UINT32_C(0x08F4BB70), + UINT32_C(0x64738F26), UINT32_C(0x1565BCEF)}, + {UINT32_C(0x684DCF67), UINT32_C(0x0D2910B9), UINT32_C(0xC6F3EB81), + UINT32_C(0x4ED1734B), UINT32_C(0xDA1D6BC8), UINT32_C(0xCBEA79B6), + UINT32_C(0xEE6A41D6), UINT32_C(0x0470CE36)}}, + {{UINT32_C(0xBA05AF3C), UINT32_C(0xECFD5C66), UINT32_C(0xEB9BFAA8), + UINT32_C(0x421D5540), UINT32_C(0x526CFF85), UINT32_C(0xFC0E5AF2), + UINT32_C(0x53DC49A6), UINT32_C(0x7E17F1E6)}, + {UINT32_C(0x1FAEB0A2), UINT32_C(0x69BB1DFB), UINT32_C(0xB3785ED4), + UINT32_C(0xDC95661A), UINT32_C(0x676D7CD0), UINT32_C(0x1F1D7395), + UINT32_C(0x89C6412F), UINT32_C(0x2C16BB96)}}, + {{UINT32_C(0xEE414CA6), UINT32_C(0x2335F20E), UINT32_C(0xFEF5E042), + UINT32_C(0x56E0DDB2), UINT32_C(0xD9DE2966), UINT32_C(0x942D4E35), + UINT32_C(0xCF63D583), UINT32_C(0x80E92B8C)}, + {UINT32_C(0x5D492C76), UINT32_C(0x158BE1B6), UINT32_C(0xC4F822D9), + UINT32_C(0xFF096960), UINT32_C(0x5AF79379), UINT32_C(0xC00FC730), + UINT32_C(0x50D34E12), UINT32_C(0x07C49B03)}}, + {{UINT32_C(0xC34836C8), UINT32_C(0x64678B2E), UINT32_C(0x615FF066), + UINT32_C(0xCC280DCB), UINT32_C(0x9131EC98), UINT32_C(0x86C3C747), + UINT32_C(0x2D151FAD), UINT32_C(0x35B008CC)}, + {UINT32_C(0xF8133FDC), UINT32_C(0x22C18852), UINT32_C(0x2FE8809D), + UINT32_C(0x183BE4DC), UINT32_C(0xCF98D56D), UINT32_C(0x86589814), + UINT32_C(0x2F6E0DE4), UINT32_C(0x52D8074D)}}, + {{UINT32_C(0xC9274AA6), UINT32_C(0x33FF9F41), UINT32_C(0xCA854AF1), + UINT32_C(0xAC30ACB4), UINT32_C(0xFBC994B7), UINT32_C(0x87A7BE53), + UINT32_C(0xDBCD717B), UINT32_C(0x6E7E8B2A)}, + {UINT32_C(0xCD494AB6), UINT32_C(0x3065A732), UINT32_C(0x60FD7F57), + UINT32_C(0x6F977B87), UINT32_C(0xB74BAD54), UINT32_C(0x4C216EB4), + UINT32_C(0xF6061F7A), UINT32_C(0x674F00F5)}}, + {{UINT32_C(0x3164AFBB), UINT32_C(0xA8C22481), UINT32_C(0x72A7AC55), + UINT32_C(0x4C9E2F1D), UINT32_C(0x79DEFE94), UINT32_C(0xE3DAC3E3), + UINT32_C(0xBB9D953F), UINT32_C(0x193A1E0B)}, + {UINT32_C(0x7E0957EE), UINT32_C(0x8852020C), UINT32_C(0xB62F8EF7), + UINT32_C(0xF7FD181E), UINT32_C(0xE26B8860), UINT32_C(0x0DE7EDDE), + UINT32_C(0xFD1B00DE), UINT32_C(0x53A05575)}}, + }, + { + {{UINT32_C(0x63E0C8FC), UINT32_C(0xE5D63E1B), UINT32_C(0xC684016A), + UINT32_C(0x6849B530), UINT32_C(0x009318AD), UINT32_C(0x4E89CB43), + UINT32_C(0xEF571911), UINT32_C(0x1CDC5918)}, + {UINT32_C(0xF389EAF3), UINT32_C(0xA6596C03), UINT32_C(0xE88975F9), + UINT32_C(0x9282C1B3), UINT32_C(0x0D53D3F2), UINT32_C(0xD07A2AEF), + UINT32_C(0x2B3B602C), UINT32_C(0x3DA515D5)}}, + {{UINT32_C(0x8A5436EA), UINT32_C(0xE4285781), UINT32_C(0x36D65626), + UINT32_C(0x047E3056), UINT32_C(0xE16489A0), UINT32_C(0x0016B568), + UINT32_C(0x75A0209C), UINT32_C(0x44603196)}, + {UINT32_C(0xBCC19754), UINT32_C(0x2BE99A51), UINT32_C(0x5ACFCDEF), + UINT32_C(0xE02EAFD0), UINT32_C(0xAECACABB), UINT32_C(0xB0A1E300), + UINT32_C(0xAC1860D9), UINT32_C(0x0F39CBDE)}}, + {{UINT32_C(0x2099F08E), UINT32_C(0x50DA5372), UINT32_C(0xCA4817B1), + UINT32_C(0xAA6AAAD1), UINT32_C(0x57D73192), UINT32_C(0xA4DDC5FF), + UINT32_C(0x7682D453), UINT32_C(0x046043AC)}, + {UINT32_C(0x28CF3F48), UINT32_C(0xC8EB1788), UINT32_C(0xDCA184D4), + UINT32_C(0x3967A02F), UINT32_C(0x86221941), UINT32_C(0x0CE68B79), + UINT32_C(0xFD3A197A), UINT32_C(0x27BDCA48)}}, + {{UINT32_C(0x563D7A91), UINT32_C(0xD774E33C), UINT32_C(0x07AE1C92), + UINT32_C(0x1C309DAE), UINT32_C(0x57DBE6A8), UINT32_C(0xDABA89B4), + UINT32_C(0xE5820FA4), UINT32_C(0x90C62517)}, + {UINT32_C(0x11371109), UINT32_C(0x23C64605), UINT32_C(0x15605666), + UINT32_C(0x1176AE7E), UINT32_C(0xDF040DCB), UINT32_C(0xD71E9755), + UINT32_C(0x62ED515C), UINT32_C(0x5312A5B3)}}, + {{UINT32_C(0x7A5FB9E0), UINT32_C(0xB7AA3A11), UINT32_C(0x18E2CB32), + UINT32_C(0xA769BC72), UINT32_C(0x6B73E050), UINT32_C(0x9D551B9B), + UINT32_C(0xDB067CBC), UINT32_C(0x0CE51DF0)}, + {UINT32_C(0x4A0E06BE), UINT32_C(0x00BF90D5), UINT32_C(0x7EE820E7), + UINT32_C(0xFEC6E7B3), UINT32_C(0x3334937A), UINT32_C(0xDFBAC083), + UINT32_C(0xCE14CF46), UINT32_C(0x46884935)}}, + {{UINT32_C(0x902EF3A9), UINT32_C(0xC3F31EAF), UINT32_C(0x5CCDF002), + UINT32_C(0xF3B6E6FA), UINT32_C(0x88CDDE0F), UINT32_C(0x5A9B5321), + UINT32_C(0xE8691FED), UINT32_C(0x00D99E43)}, + {UINT32_C(0xCFE02C8B), UINT32_C(0x8E786F52), UINT32_C(0x4DD36F8E), + UINT32_C(0x587AA537), UINT32_C(0x425CC228), UINT32_C(0xBCA91CAC), + UINT32_C(0xBFA9C36B), UINT32_C(0x80AA8AA9)}}, + {{UINT32_C(0x9B20505A), UINT32_C(0xAD4A2AD0), UINT32_C(0x16739066), + UINT32_C(0x6D708029), UINT32_C(0x89F73B52), UINT32_C(0x729001F3), + UINT32_C(0x8073A428), UINT32_C(0x77480347)}, + {UINT32_C(0xE84DB3B4), UINT32_C(0x1AB38F07), UINT32_C(0xA6655769), + UINT32_C(0xE643D756), UINT32_C(0x46C19856), UINT32_C(0x5631359B), + UINT32_C(0x01C3DCD1), UINT32_C(0x82530A32)}}, + {{UINT32_C(0x2DDDB968), UINT32_C(0x9250EC26), UINT32_C(0x8D82A03E), + UINT32_C(0x63D99CBF), UINT32_C(0x41349B60), UINT32_C(0x4FBFE784), + UINT32_C(0xA15BF2B7), UINT32_C(0x6977DD07)}, + {UINT32_C(0x68513C32), UINT32_C(0x771917C6), UINT32_C(0x8F0064F7), + UINT32_C(0x02603518), UINT32_C(0x51D78637), UINT32_C(0x45A57429), + UINT32_C(0x87293790), UINT32_C(0x56BF57CC)}}, + {{UINT32_C(0x032E6426), UINT32_C(0xBAC94E24), UINT32_C(0xC2531B26), + UINT32_C(0x7D54AE34), UINT32_C(0xCD688082), UINT32_C(0x4D6EF608), + UINT32_C(0xF5AA4BEE), UINT32_C(0x736E7ACF)}, + {UINT32_C(0x6AFB84E2), UINT32_C(0x41D5BF6C), UINT32_C(0x6E976E09), + UINT32_C(0x40E12DA5), UINT32_C(0x2235F7B9), UINT32_C(0xCBF32FCB), + UINT32_C(0xA21BC0E0), UINT32_C(0x285DDF46)}}, + {{UINT32_C(0xCE751632), UINT32_C(0x66C6A76E), UINT32_C(0x32A61A1D), + UINT32_C(0xBD457D0E), UINT32_C(0x78191C57), UINT32_C(0xFA12A7C8), + UINT32_C(0x06611B5E), UINT32_C(0x030ED98B)}, + {UINT32_C(0xF4972FFD), UINT32_C(0x199F7756), UINT32_C(0x9C8AAB09), + UINT32_C(0x298D98E6), UINT32_C(0xC5B02158), UINT32_C(0x2186054C), + UINT32_C(0xB9B1147A), UINT32_C(0x0736CE4C)}}, + {{UINT32_C(0x19BFA57D), UINT32_C(0x33E4A4CA), UINT32_C(0xAA70C35D), + UINT32_C(0xF02F6D32), UINT32_C(0x3CC082FD), UINT32_C(0x9EA10B63), + UINT32_C(0xD00E82A8), UINT32_C(0x86104E8E)}, + {UINT32_C(0x87797E25), UINT32_C(0xACBA5E73), UINT32_C(0xEB85A796), + UINT32_C(0x24DD98A8), UINT32_C(0xC58AC480), UINT32_C(0x02748827), + UINT32_C(0x6A932D80), UINT32_C(0x5B4480C7)}}, + {{UINT32_C(0x1992B174), UINT32_C(0xF9E210FB), UINT32_C(0xBE22636E), + UINT32_C(0x3CFA6EF1), UINT32_C(0x3BDFA2BD), UINT32_C(0xA46F202B), + UINT32_C(0x441B96D2), UINT32_C(0x8C83B3DA)}, + {UINT32_C(0x8AA39AB4), UINT32_C(0x3BB2ED8B), UINT32_C(0x9CE53FB2), + UINT32_C(0x4DB63B23), UINT32_C(0x46DC2104), UINT32_C(0x24AC8A98), + UINT32_C(0x68E20D1B), UINT32_C(0x997BC4A7)}}, + {{UINT32_C(0xD1C0D629), UINT32_C(0x4CDF8757), UINT32_C(0xA64B6058), + UINT32_C(0xBA155719), UINT32_C(0xBE3FB0B1), UINT32_C(0x82FD0DA3), + UINT32_C(0x03E34CB1), UINT32_C(0x12F50694)}, + {UINT32_C(0x02E7DFEB), UINT32_C(0x8993EE38), UINT32_C(0x3D7A758E), + UINT32_C(0x2FC240C6), UINT32_C(0xAFF7CC7B), UINT32_C(0x75CB6F62), + UINT32_C(0x71B02A5B), UINT32_C(0x2D73F74D)}}, + {{UINT32_C(0x550ADA69), UINT32_C(0x0B7B920A), UINT32_C(0xD2F1D5C2), + UINT32_C(0x87D29F08), UINT32_C(0xEEA99A38), UINT32_C(0x6E36EF9C), + UINT32_C(0x79D7626A), UINT32_C(0x624874C1)}, + {UINT32_C(0x17F026E0), UINT32_C(0x9FCA1B2E), UINT32_C(0xA3A79C2E), + UINT32_C(0xBDBE18E5), UINT32_C(0x6E1B0C6D), UINT32_C(0x1506DE6A), + UINT32_C(0xAD2A2C5F), UINT32_C(0x860CCD71)}}, + {{UINT32_C(0x28715EF9), UINT32_C(0x00A15CB0), UINT32_C(0xB1C0ED6D), + UINT32_C(0x71F337D8), UINT32_C(0xF998251E), UINT32_C(0xBD7E6892), + UINT32_C(0x08E0A4E9), UINT32_C(0x4C5AB311)}, + {UINT32_C(0x567342FB), UINT32_C(0xDFD51293), UINT32_C(0x5AE3193B), + UINT32_C(0xF202FCD1), UINT32_C(0xAF59A5A2), UINT32_C(0xE317C933), + UINT32_C(0x5055DE2A), UINT32_C(0x300FE083)}}, + {{UINT32_C(0xC58E7AE9), UINT32_C(0x279A071A), UINT32_C(0x4C718A8B), + UINT32_C(0xCED1F2F4), UINT32_C(0x5FE7F6E5), UINT32_C(0x3A8C0D1A), + UINT32_C(0xBB40DA93), UINT32_C(0x789C9B04)}, + {UINT32_C(0xBF2A0B9B), UINT32_C(0xBB7EA922), UINT32_C(0x3A484413), + UINT32_C(0x5DD7A04A), UINT32_C(0xC5912F93), UINT32_C(0x3E1F49FB), + UINT32_C(0x61ECAB05), UINT32_C(0x4D8C07A5)}}, + }, + { + {{UINT32_C(0x9706D4CF), UINT32_C(0x7D351007), UINT32_C(0xB9BABB1F), + UINT32_C(0x3E2B3D2E), UINT32_C(0xA2E423EA), UINT32_C(0xC73745BF), + UINT32_C(0xF59601A0), UINT32_C(0x0AB3940A)}, + {UINT32_C(0x2A895C4F), UINT32_C(0x8881507A), UINT32_C(0x68652263), + UINT32_C(0xF27F6F40), UINT32_C(0x88A416BE), UINT32_C(0xCFD91814), + UINT32_C(0x1B4F51F6), UINT32_C(0x13459BC3)}}, + {{UINT32_C(0x01C7C38A), UINT32_C(0x6D830E0C), UINT32_C(0xE27DA48A), + UINT32_C(0xBA912BD4), UINT32_C(0x4AB8B5A6), UINT32_C(0x3828F433), + UINT32_C(0xE35E88DA), UINT32_C(0x3F858E6C)}, + {UINT32_C(0x6E1C033C), UINT32_C(0x137F2E3A), UINT32_C(0x7E670398), + UINT32_C(0xFC7C8953), UINT32_C(0xF5C3D4DB), UINT32_C(0x6FF761CE), + UINT32_C(0xEED1029B), UINT32_C(0x53A02906)}}, + {{UINT32_C(0x56779C20), UINT32_C(0x5C597BA6), UINT32_C(0x43A87346), + UINT32_C(0x366688CC), UINT32_C(0xA55ACF91), UINT32_C(0x19F6DA4A), + UINT32_C(0x182DEC58), UINT32_C(0x280ED592)}, + {UINT32_C(0xA1D3EBDD), UINT32_C(0x0A1F3A7A), UINT32_C(0x0C9F474A), + UINT32_C(0xD92B6078), UINT32_C(0x19AE00DD), UINT32_C(0x38D0335E), + UINT32_C(0xA97F33F7), UINT32_C(0x094A5772)}}, + {{UINT32_C(0x312D2694), UINT32_C(0x026A9029), UINT32_C(0xAB5B34B8), + UINT32_C(0x95408516), UINT32_C(0xDED270EA), UINT32_C(0x9FFA9AB1), + UINT32_C(0x493E5935), UINT32_C(0x1F9DDC52)}, + {UINT32_C(0x17244394), UINT32_C(0xAC7F94C1), UINT32_C(0x0F28C9DF), + UINT32_C(0x18FC29C4), UINT32_C(0xBD817BD9), UINT32_C(0xEDE29238), + UINT32_C(0x8E2A7E40), UINT32_C(0x20DBF9AF)}}, + {{UINT32_C(0x7648CA5C), UINT32_C(0x009365D9), UINT32_C(0x2BF27488), + UINT32_C(0xB168191E), UINT32_C(0xE3B91112), UINT32_C(0x2481BFAA), + UINT32_C(0x3D6DB830), UINT32_C(0x744C505B)}, + {UINT32_C(0x3C464704), UINT32_C(0x21426D8F), UINT32_C(0xDAF85A61), + UINT32_C(0x283F59EF), UINT32_C(0xF2716102), UINT32_C(0x278B5F8E), + UINT32_C(0x0FE7E7EC), UINT32_C(0x95B80D82)}}, + {{UINT32_C(0xF327664D), UINT32_C(0xD15ADA08), UINT32_C(0xFE904AF8), + UINT32_C(0xF26E3232), UINT32_C(0xF99471C6), UINT32_C(0x2763DBA6), + UINT32_C(0x15F30827), UINT32_C(0x4BC97139)}, + {UINT32_C(0x5F154BF9), UINT32_C(0x8523812E), UINT32_C(0xDE17F8F9), + UINT32_C(0x0839059F), UINT32_C(0xBC16678D), UINT32_C(0xEA151382), + UINT32_C(0x7890C4EF), UINT32_C(0x68D01E62)}}, + {{UINT32_C(0x9487556B), UINT32_C(0x37FAC9FA), UINT32_C(0xFB4DC83D), + UINT32_C(0xB4DF5C53), UINT32_C(0x92969151), UINT32_C(0x1EF42D8C), + UINT32_C(0x8B0ED349), UINT32_C(0x6C0A9D18)}, + {UINT32_C(0x946F31ED), UINT32_C(0x63E91049), UINT32_C(0x653F600B), + UINT32_C(0x51E91DC6), UINT32_C(0x53A29196), UINT32_C(0xD7A582B1), + UINT32_C(0x31E1D843), UINT32_C(0x0452F4AD)}}, + {{UINT32_C(0x0DE8E344), UINT32_C(0x1224169D), UINT32_C(0xF329D30F), + UINT32_C(0x0F4AB4E7), UINT32_C(0xB525B6A4), UINT32_C(0x12662965), + UINT32_C(0x255F14B8), UINT32_C(0x3142B612)}, + {UINT32_C(0xBBF468A1), UINT32_C(0xEF6148B9), UINT32_C(0x144F8DFF), + UINT32_C(0x3FC413B4), UINT32_C(0x9BF55B34), UINT32_C(0xA453D075), + UINT32_C(0x86EBA319), UINT32_C(0x857EC763)}}, + {{UINT32_C(0xC16C1002), UINT32_C(0x7FC22E26), UINT32_C(0xB0B186C3), + UINT32_C(0x2E34975E), UINT32_C(0x2FC79F85), UINT32_C(0xE11E3642), + UINT32_C(0x9F981B5F), UINT32_C(0x30FE5C0E)}, + {UINT32_C(0x31816247), UINT32_C(0x73BD0FA6), UINT32_C(0x6906AF0A), + UINT32_C(0x40FE1661), UINT32_C(0x787BC7EE), UINT32_C(0x8D7109A3), + UINT32_C(0x6FB9A590), UINT32_C(0x29452054)}}, + {{UINT32_C(0x4DFAAF93), UINT32_C(0x24654B9B), UINT32_C(0x9A450D29), + UINT32_C(0x91CDEA8B), UINT32_C(0xE4874748), UINT32_C(0xEE55420B), + UINT32_C(0x6D03064C), UINT32_C(0x01FAC14C)}, + {UINT32_C(0xD93BD5BE), UINT32_C(0x8A4EBDE2), UINT32_C(0x49EF18A9), + UINT32_C(0xCB2DF307), UINT32_C(0x1A7B7F36), UINT32_C(0x36E6AC64), + UINT32_C(0x4AC1CB8D), UINT32_C(0x30195423)}}, + {{UINT32_C(0x34F5B3FF), UINT32_C(0xD9970B1E), UINT32_C(0x587A9C5C), + UINT32_C(0x3CFEFC50), UINT32_C(0x7CCE631E), UINT32_C(0x8EC1C5DE), + UINT32_C(0x52465AB8), UINT32_C(0x92C93E2B)}, + {UINT32_C(0x257017CA), UINT32_C(0x0104DF30), UINT32_C(0x8D8DB4CE), + UINT32_C(0xF4E5E779), UINT32_C(0xFDC267F0), UINT32_C(0xE12A39DD), + UINT32_C(0x27C73FDA), UINT32_C(0x683DEAFE)}}, + {{UINT32_C(0xBBC70623), UINT32_C(0xD0840E81), UINT32_C(0x4D23568E), + UINT32_C(0x03A93C16), UINT32_C(0x11A71BFF), UINT32_C(0xC52FF3D6), + UINT32_C(0x0875248E), UINT32_C(0x03C11FCE)}, + {UINT32_C(0x6C4AE445), UINT32_C(0xBC6F184B), UINT32_C(0x7698EE98), + UINT32_C(0xF52CC71F), UINT32_C(0xEEA25223), UINT32_C(0x4663193E), + UINT32_C(0x031C68DC), UINT32_C(0x86CD1AB3)}}, + {{UINT32_C(0x21E04C02), UINT32_C(0x221C94EB), UINT32_C(0x7B980F70), + UINT32_C(0xE96BB7B3), UINT32_C(0x24DC2BD1), UINT32_C(0x60A72897), + UINT32_C(0x5621F475), UINT32_C(0x8C8E019F)}, + {UINT32_C(0x5CFA457A), UINT32_C(0xAE47B2F7), UINT32_C(0xF395C533), + UINT32_C(0x31B2F9E1), UINT32_C(0x82E75849), UINT32_C(0x7EEB5DDC), + UINT32_C(0x2A241E52), UINT32_C(0x4863A6A3)}}, + {{UINT32_C(0x914976EF), UINT32_C(0x806AC7F4), UINT32_C(0xCA42B875), + UINT32_C(0x5019261E), UINT32_C(0x6EF2D82F), UINT32_C(0x44F5C03D), + UINT32_C(0x690F2ACA), UINT32_C(0x24959F00)}, + {UINT32_C(0x81F0BBB6), UINT32_C(0x4BDE2115), UINT32_C(0x1F701A2D), + UINT32_C(0x01EB2C00), UINT32_C(0x274FB05C), UINT32_C(0x039F8910), + UINT32_C(0xC625EBCD), UINT32_C(0x57068F24)}}, + {{UINT32_C(0x67FF2575), UINT32_C(0xB21B8C93), UINT32_C(0x0C60B449), + UINT32_C(0xC7826C60), UINT32_C(0xA98671BB), UINT32_C(0xD4D69A9F), + UINT32_C(0xF5A2AB0C), UINT32_C(0x95249276)}, + {UINT32_C(0x2D1976DA), UINT32_C(0x8F7007F0), UINT32_C(0xC011D54C), + UINT32_C(0x846F2A92), UINT32_C(0xFA2076B1), UINT32_C(0xFDBF81DF), + UINT32_C(0x5583B46C), UINT32_C(0x3349224F)}}, + {{UINT32_C(0x7C854B4A), UINT32_C(0x62496746), UINT32_C(0x798B1395), + UINT32_C(0xF92BAE1D), UINT32_C(0xD2F65638), UINT32_C(0x2EBE18E3), + UINT32_C(0x8A068F49), UINT32_C(0x472FF6E5)}, + {UINT32_C(0xDA2030C2), UINT32_C(0x64BB0F33), UINT32_C(0x66F6C000), + UINT32_C(0x72C0D0C9), UINT32_C(0x3194615E), UINT32_C(0xEA837EE5), + UINT32_C(0xFA9A7903), UINT32_C(0x1B7B4849)}}, + }, + { + {{UINT32_C(0xCF9A0727), UINT32_C(0x27AB780C), UINT32_C(0x9D7486CB), + UINT32_C(0xD457A7BC), UINT32_C(0xFE9F1A59), UINT32_C(0xFC57C335), + UINT32_C(0xD1D9F161), UINT32_C(0x269D8959)}, + {UINT32_C(0xB81605D5), UINT32_C(0x06A32331), UINT32_C(0x6F050BE0), + UINT32_C(0x23696353), UINT32_C(0x413E1C0D), UINT32_C(0xF9350879), + UINT32_C(0x5761A8DF), UINT32_C(0x17019548)}}, + {{UINT32_C(0x6765C6A2), UINT32_C(0x583D3D3F), UINT32_C(0xBE9DF3AF), + UINT32_C(0x68BBA6F9), UINT32_C(0x85358B53), UINT32_C(0x7011E594), + UINT32_C(0x53A08874), UINT32_C(0x3B2142E3)}, + {UINT32_C(0x6F5C8641), UINT32_C(0x4AB6137E), UINT32_C(0x4FE9BCEB), + UINT32_C(0x4955890E), UINT32_C(0x4D14DA01), UINT32_C(0xE2F732BA), + UINT32_C(0xBEBD63D4), UINT32_C(0x8CB285FC)}}, + {{UINT32_C(0x6C74A0AA), UINT32_C(0x5099551B), UINT32_C(0xBC2C8A61), + UINT32_C(0xF04EB8F8), UINT32_C(0x85983435), UINT32_C(0xE169F492), + UINT32_C(0x5B808C9E), UINT32_C(0x764062A1)}, + {UINT32_C(0x65B994FB), UINT32_C(0x8C59A43F), UINT32_C(0x6068E685), + UINT32_C(0x2FB148B7), UINT32_C(0x54108A9F), UINT32_C(0x899D4FC5), + UINT32_C(0x5B4D40FE), UINT32_C(0x0469EA3E)}}, + {{UINT32_C(0x62A76AA8), UINT32_C(0x15B613EA), UINT32_C(0x2FE2F179), + UINT32_C(0x7E8E7D56), UINT32_C(0xBE98EDC2), UINT32_C(0x53160F65), + UINT32_C(0x9810DC27), UINT32_C(0x258DA04E)}, + {UINT32_C(0x030D9C31), UINT32_C(0x4FEE19D0), UINT32_C(0xC29E300F), + UINT32_C(0xFC2C57F8), UINT32_C(0xC44458AE), UINT32_C(0x00071F97), + UINT32_C(0x709727E1), UINT32_C(0x0AA2B911)}}, + {{UINT32_C(0xA61166F8), UINT32_C(0x443F8B23), UINT32_C(0xD685FCF1), + UINT32_C(0x3E8F6278), UINT32_C(0x447433C6), UINT32_C(0xC930C1D1), + UINT32_C(0xAED7D6EB), UINT32_C(0x1245A867)}, + {UINT32_C(0xFA89945A), UINT32_C(0xC35986DD), UINT32_C(0x26B0AFEE), + UINT32_C(0x89CE1109), UINT32_C(0x17103D18), UINT32_C(0x9C6A87CD), + UINT32_C(0xCE338978), UINT32_C(0x811B2242)}}, + {{UINT32_C(0x0C293255), UINT32_C(0xC074AF66), UINT32_C(0x5AEAC2E1), + UINT32_C(0x982C23A9), UINT32_C(0xD39AC56C), UINT32_C(0xDB14DE0C), + UINT32_C(0x47EBB839), UINT32_C(0x20263F3F)}, + {UINT32_C(0xD10588DF), UINT32_C(0x183EA578), UINT32_C(0x1EB69C36), + UINT32_C(0xB4D88EFB), UINT32_C(0xDBF3BEE7), UINT32_C(0xA79A1B4D), + UINT32_C(0xE8159E0D), UINT32_C(0x650FC466)}}, + {{UINT32_C(0xF80D5744), UINT32_C(0x9E6EE797), UINT32_C(0x825949BD), + UINT32_C(0xDFC3EBF5), UINT32_C(0x7EC9BD65), UINT32_C(0x1083EC79), + UINT32_C(0xB753499C), UINT32_C(0x62A45C5E)}, + {UINT32_C(0x2B6F42CF), UINT32_C(0x9C135F80), UINT32_C(0xC4B49041), + UINT32_C(0xE39B0BA5), UINT32_C(0x8D3B2D06), UINT32_C(0x4D838513), + UINT32_C(0xD070754B), UINT32_C(0x696034DC)}}, + {{UINT32_C(0xB8E3BDD1), UINT32_C(0x06313D73), UINT32_C(0xE6968872), + UINT32_C(0xC7BEC420), UINT32_C(0x3A04B7F0), UINT32_C(0x740DD6D3), + UINT32_C(0x2465BED2), UINT32_C(0x98F2D0B7)}, + {UINT32_C(0x4043DBAD), UINT32_C(0x9F298460), UINT32_C(0x01B5961F), + UINT32_C(0x82D6991A), UINT32_C(0x54DFAB8A), UINT32_C(0xAAE7DF9D), + UINT32_C(0x1A07DD22), UINT32_C(0x5701E335)}}, + {{UINT32_C(0xFCA398A2), UINT32_C(0x5695A08E), UINT32_C(0x0D76E8CF), + UINT32_C(0xD29EBC1F), UINT32_C(0x24004EDB), UINT32_C(0x5AB17ABF), + UINT32_C(0x0CC7A144), UINT32_C(0x20C7761B)}, + {UINT32_C(0x285EA93C), UINT32_C(0x6CAEE036), UINT32_C(0xF2B8BF23), + UINT32_C(0xF9756E89), UINT32_C(0xB1AB91B7), UINT32_C(0x3CEA1C76), + UINT32_C(0x3FB4F3B8), UINT32_C(0x5D86860E)}}, + {{UINT32_C(0xFDC7DBC5), UINT32_C(0x835B023B), UINT32_C(0xEEEDFD73), + UINT32_C(0xF05C0676), UINT32_C(0xE52BFB27), UINT32_C(0xF8325D64), + UINT32_C(0xB5032CFF), UINT32_C(0x919D008D)}, + {UINT32_C(0x4B130537), UINT32_C(0xEF27862C), UINT32_C(0x5CE404DC), + UINT32_C(0x616DF154), UINT32_C(0x451ED033), UINT32_C(0x182BA57E), + UINT32_C(0xBD01F864), UINT32_C(0x2EFEC0C7)}}, + {{UINT32_C(0x45F3AF3C), UINT32_C(0xDC846845), UINT32_C(0x92A47B31), + UINT32_C(0x2D2BA0CD), UINT32_C(0xE1AFE6EE), UINT32_C(0x9C806C7D), + UINT32_C(0x4C6A4FEA), UINT32_C(0x28FE43FF)}, + {UINT32_C(0x6C76C0F4), UINT32_C(0x2E028CD1), UINT32_C(0x2AEFBDDA), + UINT32_C(0xC6FA5AD1), UINT32_C(0xF63F1A35), UINT32_C(0xC8B5339B), + UINT32_C(0x04523F02), UINT32_C(0x30C780A7)}}, + {{UINT32_C(0xD7E4F0CE), UINT32_C(0x3D2DCA55), UINT32_C(0x26616811), + UINT32_C(0x8EEF9189), UINT32_C(0x3C0E5892), UINT32_C(0xB106642F), + UINT32_C(0x89DB033E), UINT32_C(0x4A965385)}, + {UINT32_C(0xB3C2DD37), UINT32_C(0x5A1CBEB6), UINT32_C(0x156EAC75), + UINT32_C(0x5290C737), UINT32_C(0xE32E40C7), UINT32_C(0x57AFD98A), + UINT32_C(0xB3571868), UINT32_C(0x04A16164)}}, + {{UINT32_C(0x1A673E1B), UINT32_C(0x9AB8A3E9), UINT32_C(0x0FC23483), + UINT32_C(0xC707ABBA), UINT32_C(0x9E0EA0BD), UINT32_C(0x936C1783), + UINT32_C(0xF71F6F1D), UINT32_C(0x1E4C2E7C)}, + {UINT32_C(0x6FB0926C), UINT32_C(0x37904F63), UINT32_C(0xC51FEEA5), + UINT32_C(0x9EC76DF7), UINT32_C(0x4D103DAC), UINT32_C(0x2C60F7D6), + UINT32_C(0xF9DC2CC6), UINT32_C(0x7B451E0B)}}, + {{UINT32_C(0xB2A5F07F), UINT32_C(0xD4F8526C), UINT32_C(0xB0F4AE09), + UINT32_C(0x41303D42), UINT32_C(0x0C182FDC), UINT32_C(0xAC79523F), + UINT32_C(0xAA0C5D6D), UINT32_C(0x8D6A75C8)}, + {UINT32_C(0x3CDCE3F0), UINT32_C(0x4DD7FC95), UINT32_C(0x5BE6DA0F), + UINT32_C(0x4DDB3910), UINT32_C(0x16F7E27D), UINT32_C(0xE34961F9), + UINT32_C(0x5B3544EB), UINT32_C(0x0C5CB76F)}}, + {{UINT32_C(0x252C354C), UINT32_C(0x324C95B5), UINT32_C(0x8CC2C3BC), + UINT32_C(0x4648D87E), UINT32_C(0x82BC8C80), UINT32_C(0x6DDFDECD), + UINT32_C(0xC069996E), UINT32_C(0x8C64CADE)}, + {UINT32_C(0x40ED44AB), UINT32_C(0x4E282E96), UINT32_C(0x79334507), + UINT32_C(0x70A12067), UINT32_C(0x5AB8902B), UINT32_C(0x65CE5D38), + UINT32_C(0x7C949D96), UINT32_C(0x56FE68F2)}}, + {{UINT32_C(0xCF9530AE), UINT32_C(0x1D55C87E), UINT32_C(0xC147C2D5), + UINT32_C(0xD1CF73FF), UINT32_C(0xC1F44403), UINT32_C(0x826031CD), + UINT32_C(0x5EEF5BFB), UINT32_C(0x3A06528F)}, + {UINT32_C(0x5F84A7B1), UINT32_C(0xF220EAF3), UINT32_C(0x350EBADE), + UINT32_C(0xBC99C905), UINT32_C(0x810A101C), UINT32_C(0x686A706E), + UINT32_C(0x1D92EAEA), UINT32_C(0x95E52713)}}, + }, + { + {{UINT32_C(0x514D47C2), UINT32_C(0xAAC634B3), UINT32_C(0x58B83B33), + UINT32_C(0xD0C189B8), UINT32_C(0x58CA9A2F), UINT32_C(0x633D59E3), + UINT32_C(0x838ACC80), UINT32_C(0x65965CE0)}, + {UINT32_C(0x9B512F6E), UINT32_C(0xBB03F7EA), UINT32_C(0x9EF17A82), + UINT32_C(0xB2F38B84), UINT32_C(0xE16A7A95), UINT32_C(0xE8382E37), + UINT32_C(0x4D9EF607), UINT32_C(0x28644EFE)}}, + {{UINT32_C(0x040A515B), UINT32_C(0x46F9115E), UINT32_C(0xFA59CD3E), + UINT32_C(0x4C7DBCFF), UINT32_C(0x71BB543E), UINT32_C(0xB4CE22B8), + UINT32_C(0x948F80BA), UINT32_C(0x58D935D8)}, + {UINT32_C(0x03683C8B), UINT32_C(0x33DC1D5B), UINT32_C(0x2D071D87), + UINT32_C(0x25E6113A), UINT32_C(0xA7D59351), UINT32_C(0x44F962F8), + UINT32_C(0xBCF66B43), UINT32_C(0x6B818DDB)}}, + {{UINT32_C(0x378C1098), UINT32_C(0x363A63C7), UINT32_C(0xAC5C0C9E), + UINT32_C(0xBEB2A7B6), UINT32_C(0x4361C8D4), UINT32_C(0x3F620D3F), + UINT32_C(0x4E3D9686), UINT32_C(0x68EAD01A)}, + {UINT32_C(0x45DB7208), UINT32_C(0x43613085), UINT32_C(0x13B35D33), + UINT32_C(0x865A6DDE), UINT32_C(0x68DF09F5), UINT32_C(0x4EAA1663), + UINT32_C(0xBF02AA12), UINT32_C(0x5FDCA83F)}}, + {{UINT32_C(0xBFEFB3CB), UINT32_C(0xC240FEAA), UINT32_C(0x0EC6694F), + UINT32_C(0x78E757D2), UINT32_C(0x2413D6A2), UINT32_C(0xA11A82DF), + UINT32_C(0xDBB7A220), UINT32_C(0x7BD656EE)}, + {UINT32_C(0x6EB899A4), UINT32_C(0x68C60873), UINT32_C(0x318C72E8), + UINT32_C(0xAFFB9F1C), UINT32_C(0x9FB7619D), UINT32_C(0xF16A443C), + UINT32_C(0x42C6E4D6), UINT32_C(0x2FC317E3)}}, + {{UINT32_C(0x73F57A93), UINT32_C(0xAB56A873), UINT32_C(0x308F5224), + UINT32_C(0xE9BA24E2), UINT32_C(0x11992077), UINT32_C(0x010281B9), + UINT32_C(0x593EAD1A), UINT32_C(0x2CBCA7FE)}, + {UINT32_C(0x2A1D8318), UINT32_C(0xB400388A), UINT32_C(0x3C61A0AF), + UINT32_C(0xD470ABDA), UINT32_C(0x94BD2FAC), UINT32_C(0xF9102721), + UINT32_C(0x0FAC703C), UINT32_C(0x222365D1)}}, + {{UINT32_C(0x9C2D1B2B), UINT32_C(0x5C9021C4), UINT32_C(0xCAF0B562), + UINT32_C(0xB349DB18), UINT32_C(0x91412CC3), UINT32_C(0x6DAF7412), + UINT32_C(0xCF6584D3), UINT32_C(0x44E5E3E5)}, + {UINT32_C(0xE4C17B19), UINT32_C(0x1D1F4244), UINT32_C(0x3787A38A), + UINT32_C(0x4C663EE6), UINT32_C(0x313A8581), UINT32_C(0xA3261E22), + UINT32_C(0x7A82C05A), UINT32_C(0x3AE1E1DB)}}, + {{UINT32_C(0x3CD6A155), UINT32_C(0x31AA2B29), UINT32_C(0x3D078B12), + UINT32_C(0x0EB9527E), UINT32_C(0x214FF1E2), UINT32_C(0x6785ABA2), + UINT32_C(0xF111D572), UINT32_C(0x74974F84)}, + {UINT32_C(0x078C684B), UINT32_C(0x2199A753), UINT32_C(0x4B13A004), + UINT32_C(0xA0F1DE23), UINT32_C(0x75BEBCBC), UINT32_C(0x3965AE19), + UINT32_C(0x24562AA7), UINT32_C(0x22A8D7EE)}}, + {{UINT32_C(0xBF268ADE), UINT32_C(0x0591965F), UINT32_C(0x9EE48F0E), + UINT32_C(0xF621B364), UINT32_C(0x5A3A3848), UINT32_C(0x0AD981A9), + UINT32_C(0x9ECD72B7), UINT32_C(0x1316675C)}, + {UINT32_C(0xF37C87E0), UINT32_C(0x21A5CEB7), UINT32_C(0x68D1AAFB), + UINT32_C(0xEF864CF3), UINT32_C(0xD3C9A54F), UINT32_C(0x5F340413), + UINT32_C(0xE00FD564), UINT32_C(0x0C5DE1E6)}}, + {{UINT32_C(0xB415D72C), UINT32_C(0x439B2C0C), UINT32_C(0x63442E62), + UINT32_C(0x106AE2E0), UINT32_C(0x4A79E93B), UINT32_C(0x8A9428C6), + UINT32_C(0xCC2DF510), UINT32_C(0x67FE6D6E)}, + {UINT32_C(0x655013B3), UINT32_C(0x407158BC), UINT32_C(0x2BC7E7CC), + UINT32_C(0x3AAEAC1C), UINT32_C(0xEE8EC1F4), UINT32_C(0x399DB6EF), + UINT32_C(0xECFF6657), UINT32_C(0x1F7D0D17)}}, + {{UINT32_C(0xCB86639E), UINT32_C(0x03039D18), UINT32_C(0x9CDC3408), + UINT32_C(0x58603909), UINT32_C(0xF1804B9E), UINT32_C(0x52421109), + UINT32_C(0xED126B9F), UINT32_C(0x95502857)}, + {UINT32_C(0x451B0539), UINT32_C(0xC91842D9), UINT32_C(0xE60AAE3B), + UINT32_C(0x2B5B11EB), UINT32_C(0x44CB5A14), UINT32_C(0xDB50F9EA), + UINT32_C(0x89E80A6E), UINT32_C(0x4B5C9824)}}, + {{UINT32_C(0x69FC9F1A), UINT32_C(0x8EF3A1E5), UINT32_C(0x7CCA576A), + UINT32_C(0xA4EAB6F4), UINT32_C(0xFBF1CD65), UINT32_C(0x955E1C89), + UINT32_C(0xF8CE13DB), UINT32_C(0x3E3ACF6E)}, + {UINT32_C(0x58F31FC9), UINT32_C(0x1FDB6190), UINT32_C(0x93B0D0D5), + UINT32_C(0x10DB71B3), UINT32_C(0x9154B285), UINT32_C(0x90096143), + UINT32_C(0x1C49EFF3), UINT32_C(0x37EEE178)}}, + {{UINT32_C(0xBC198066), UINT32_C(0x609DE502), UINT32_C(0x40722EF6), + UINT32_C(0x075C8631), UINT32_C(0xFF0FA57D), UINT32_C(0x121ACC9F), + UINT32_C(0xEC7DB1A0), UINT32_C(0x31E79AC5)}, + {UINT32_C(0xF16FAE79), UINT32_C(0x736EB95D), UINT32_C(0x815A14CB), + UINT32_C(0xFF963917), UINT32_C(0x23AF0BC3), UINT32_C(0xC6003E5D), + UINT32_C(0x99AFCAAA), UINT32_C(0x0D1B0350)}}, + {{UINT32_C(0x1F0DF59D), UINT32_C(0x8A1B6C97), UINT32_C(0x59C9CA8D), + UINT32_C(0x7DF81A72), UINT32_C(0x9602E8BE), UINT32_C(0x74257F8E), + UINT32_C(0xA441657A), UINT32_C(0x2FFBAD39)}, + {UINT32_C(0x048050A6), UINT32_C(0xB1B090DB), UINT32_C(0x741E7392), + UINT32_C(0xD6144221), UINT32_C(0xECA1E2D6), UINT32_C(0x63826973), + UINT32_C(0xD287DE2F), UINT32_C(0x28EE60B8)}}, + {{UINT32_C(0x5DEE86CE), UINT32_C(0x81504295), UINT32_C(0x73C03937), + UINT32_C(0xFACCB61D), UINT32_C(0x299B96AF), UINT32_C(0x9898F773), + UINT32_C(0x488F95CD), UINT32_C(0x51552297)}, + {UINT32_C(0x54F5E182), UINT32_C(0x6170618C), UINT32_C(0xC2798401), + UINT32_C(0x9C11D666), UINT32_C(0x3EAF3DDE), UINT32_C(0x88225F4B), + UINT32_C(0x087F1185), UINT32_C(0x20841538)}}, + {{UINT32_C(0x14FA59EC), UINT32_C(0x42BCEFFE), UINT32_C(0x7D023F1E), + UINT32_C(0xC41CFCDA), UINT32_C(0x7163E802), UINT32_C(0xD7E4FDE7), + UINT32_C(0x2E145BCE), UINT32_C(0x54F4C798)}, + {UINT32_C(0xF9162235), UINT32_C(0xE4EA68C9), UINT32_C(0x458DEC24), + UINT32_C(0x4F7EAC6F), UINT32_C(0x845C6AD1), UINT32_C(0x70100D2D), + UINT32_C(0xF1EA21B2), UINT32_C(0x67AC34CF)}}, + {{UINT32_C(0xAC21C728), UINT32_C(0x2BD49BDF), UINT32_C(0xEDA966DF), + UINT32_C(0x2D009B45), UINT32_C(0x4A9B9167), UINT32_C(0x0D4476BE), + UINT32_C(0x95D2ACD2), UINT32_C(0x340BD3BE)}, + {UINT32_C(0xB040FF50), UINT32_C(0xF8BACA2D), UINT32_C(0xB91D47C1), + UINT32_C(0x307BEA0D), UINT32_C(0xB6B3A1E4), UINT32_C(0x2EFDC81B), + UINT32_C(0x1595D6E2), UINT32_C(0x3B2CD7D9)}}, + }, + { + {{UINT32_C(0x32A5A002), UINT32_C(0x56254AE7), UINT32_C(0x448B0A9F), + UINT32_C(0xE48A475C), UINT32_C(0x14EDBBA9), UINT32_C(0x3B2DF6DF), + UINT32_C(0xF5E4CC81), UINT32_C(0x911BE369)}, + {UINT32_C(0x77CBB387), UINT32_C(0x57D065C6), UINT32_C(0x527575FD), + UINT32_C(0x7C1E0142), UINT32_C(0x243B5C33), UINT32_C(0x2CA91EEF), + UINT32_C(0x5C4700CC), UINT32_C(0x7E54AF42)}}, + {{UINT32_C(0x5EEDF97F), UINT32_C(0xEF5ECAE5), UINT32_C(0xC0D821AC), + UINT32_C(0x2D79312A), UINT32_C(0xA9EDBE8F), UINT32_C(0xD3817042), + UINT32_C(0xAD924B1D), UINT32_C(0x7A3D537E)}, + {UINT32_C(0xB26FFC3B), UINT32_C(0xD9923A20), UINT32_C(0x5B81EC12), + UINT32_C(0x651D2201), UINT32_C(0x54C37FF0), UINT32_C(0xBDF7205A), + UINT32_C(0x8C0D2E79), UINT32_C(0x5562D258)}}, + {{UINT32_C(0xFB4842F8), UINT32_C(0xE5BC2E1C), UINT32_C(0x25B464C8), + UINT32_C(0xCFE97824), UINT32_C(0x2FEA9ED3), UINT32_C(0xD902A11A), + UINT32_C(0x8D3DD0A4), UINT32_C(0x2FC360ED)}, + {UINT32_C(0x9E5F7AE1), UINT32_C(0xEC4E57FC), UINT32_C(0x79B8AF6C), + UINT32_C(0xF0F1FD9F), UINT32_C(0xA9A283D0), UINT32_C(0x803F3ED6), + UINT32_C(0xADEEA78E), UINT32_C(0x5F13000F)}}, + {{UINT32_C(0x1838B470), UINT32_C(0x3EBBBD16), UINT32_C(0xB2781680), + UINT32_C(0x934BA22A), UINT32_C(0xC7210CD4), UINT32_C(0xC9ED04FC), + UINT32_C(0x4615F186), UINT32_C(0x716004A1)}, + {UINT32_C(0xE894BBC3), UINT32_C(0xE7B36C21), UINT32_C(0x570AA9A8), + UINT32_C(0x3F739857), UINT32_C(0x3063902B), UINT32_C(0x1707FBEE), + UINT32_C(0x155C9824), UINT32_C(0x44FCB774)}}, + {{UINT32_C(0xCDD8CEDB), UINT32_C(0x30ECD772), UINT32_C(0xCA09BCD3), + UINT32_C(0x67BB36FD), UINT32_C(0x9BC43B7B), UINT32_C(0xD5AD0FAA), + UINT32_C(0x6A130895), UINT32_C(0x3962E556)}, + {UINT32_C(0x7F7A565A), UINT32_C(0x57928253), UINT32_C(0x55B911EE), + UINT32_C(0xDE9D7792), UINT32_C(0x6984F326), UINT32_C(0xD5DBFDDE), + UINT32_C(0x9FB51246), UINT32_C(0x7CDF5E15)}}, + {{UINT32_C(0x89D24763), UINT32_C(0xD7FC427A), UINT32_C(0xAD874362), + UINT32_C(0x50E627C9), UINT32_C(0x2069873A), UINT32_C(0x17A8F83B), + UINT32_C(0xDB698BD1), UINT32_C(0x186952D7)}, + {UINT32_C(0x38A2822C), UINT32_C(0x6C007EED), UINT32_C(0x0C207073), + UINT32_C(0x5F187091), UINT32_C(0x08D245D2), UINT32_C(0xD0023B63), + UINT32_C(0x34544316), UINT32_C(0x7A32C2A1)}}, + {{UINT32_C(0x8C2635EC), UINT32_C(0x8B99183A), UINT32_C(0x6F12B137), + UINT32_C(0xA00A9476), UINT32_C(0x823DA313), UINT32_C(0x9B5E2F57), + UINT32_C(0x47B3CEB1), UINT32_C(0x0F7CB4AF)}, + {UINT32_C(0x67266D24), UINT32_C(0xC993AF7E), UINT32_C(0xEBA985B8), + UINT32_C(0x8B60295E), UINT32_C(0xE41A6F69), UINT32_C(0x9AA596CB), + UINT32_C(0x4B68507A), UINT32_C(0x4D6CF5DF)}}, + {{UINT32_C(0x6921DEFE), UINT32_C(0x3B8A3CBC), UINT32_C(0x0ED7B717), + UINT32_C(0xB96D5390), UINT32_C(0x7DE65E54), UINT32_C(0x6761E86A), + UINT32_C(0x701CC1E4), UINT32_C(0x964460D6)}, + {UINT32_C(0x26C82309), UINT32_C(0x5C0A2213), UINT32_C(0x20328C60), + UINT32_C(0xF95F5472), UINT32_C(0xFB49E3B5), UINT32_C(0xB519B476), + UINT32_C(0xEE373756), UINT32_C(0x089D0AB6)}}, + {{UINT32_C(0xDC952768), UINT32_C(0x947DFCF0), UINT32_C(0x3AB613AA), + UINT32_C(0xD8B5C61C), UINT32_C(0x9A457DA4), UINT32_C(0x146E8325), + UINT32_C(0xF476945E), UINT32_C(0x37E2F6D3)}, + {UINT32_C(0x3851A6F6), UINT32_C(0x5702A441), UINT32_C(0x8D67EF9C), + UINT32_C(0xB476560E), UINT32_C(0xF9D2AD96), UINT32_C(0xABA23F67), + UINT32_C(0xDFBBB806), UINT32_C(0x3CE30A4E)}}, + {{UINT32_C(0xE5BAA662), UINT32_C(0x64695640), UINT32_C(0x0AAF3988), + UINT32_C(0x2A18979A), UINT32_C(0xDE0ED212), UINT32_C(0x605578FF), + UINT32_C(0x30F2C13C), UINT32_C(0x52E604D5)}, + {UINT32_C(0x894AB3B9), UINT32_C(0x2E9E2D83), UINT32_C(0x4BC33041), + UINT32_C(0x098B1FAA), UINT32_C(0x0863AA3C), UINT32_C(0x01CF6606), + UINT32_C(0xD2951A60), UINT32_C(0x7334879B)}}, + {{UINT32_C(0xC51704F1), UINT32_C(0xB080105C), UINT32_C(0xEAEE29C4), + UINT32_C(0x1A5869B8), UINT32_C(0x5FDD2FD3), UINT32_C(0xAD6AEF33), + UINT32_C(0x49C2B183), UINT32_C(0x83E677C4)}, + {UINT32_C(0xDFA8B8F4), UINT32_C(0x757A4EFD), UINT32_C(0xE42F2C87), + UINT32_C(0xFC8E7650), UINT32_C(0x9C963D98), UINT32_C(0xD4A61A3E), + UINT32_C(0x45BC9044), UINT32_C(0x3750289A)}}, + {{UINT32_C(0x40B1C72C), UINT32_C(0x40A0620E), UINT32_C(0xB2E44573), + UINT32_C(0xAEE56EC7), UINT32_C(0x60532553), UINT32_C(0xE4E6EA3D), + UINT32_C(0xA0EB6014), UINT32_C(0x5BA50E80)}, + {UINT32_C(0x4378CC2F), UINT32_C(0x84642978), UINT32_C(0x2A1C5FB4), + UINT32_C(0xE322D169), UINT32_C(0x6B91F82D), UINT32_C(0x5000C9B1), + UINT32_C(0x7AA49F2D), UINT32_C(0x32380CB8)}}, + {{UINT32_C(0xE18C4BD2), UINT32_C(0x0A2F936A), UINT32_C(0xC3DB9AA5), + UINT32_C(0x7AEA56AA), UINT32_C(0x5DDF30CB), UINT32_C(0x3A984E93), + UINT32_C(0x904181C6), UINT32_C(0x36133D20)}, + {UINT32_C(0xF62DFBF5), UINT32_C(0xA9A65593), UINT32_C(0x6808B883), + UINT32_C(0xB4AC06FD), UINT32_C(0x7A2FEDBB), UINT32_C(0x98679704), + UINT32_C(0x97880A72), UINT32_C(0x20E9E8E1)}}, + {{UINT32_C(0xCEB26FAE), UINT32_C(0x403A1ED1), UINT32_C(0x3CD622C9), + UINT32_C(0xAD13CD87), UINT32_C(0xCF45C32D), UINT32_C(0xC1E03929), + UINT32_C(0xC3BE1A53), UINT32_C(0x4B50E4A9)}, + {UINT32_C(0xD0D7AFE3), UINT32_C(0xCF10F3AF), UINT32_C(0x1494A9B4), + UINT32_C(0x6A29B173), UINT32_C(0xD13B0495), UINT32_C(0xB9DC9849), + UINT32_C(0x9C05B110), UINT32_C(0x4C50794E)}}, + {{UINT32_C(0x1427F71D), UINT32_C(0xC3C97DED), UINT32_C(0x966ECF33), + UINT32_C(0xC3CFB754), UINT32_C(0x1FBF30CD), UINT32_C(0x48E30FE1), + UINT32_C(0x1E4B0998), UINT32_C(0x71C96E1C)}, + {UINT32_C(0xB92C4BF7), UINT32_C(0x878D6305), UINT32_C(0xCCB5E4A1), + UINT32_C(0x14477130), UINT32_C(0xE3C00A19), UINT32_C(0x7C210767), + UINT32_C(0xAB3CDBF0), UINT32_C(0x5546DBD5)}}, + {{UINT32_C(0x70857571), UINT32_C(0xADEC8758), UINT32_C(0xE70D07EC), + UINT32_C(0x0A52587C), UINT32_C(0xC731B9BC), UINT32_C(0xE6CEAF9E), + UINT32_C(0x47143479), UINT32_C(0x1D0FDE3F)}, + {UINT32_C(0xC5B410CB), UINT32_C(0x2F3BE2CF), UINT32_C(0x4E64FD9B), + UINT32_C(0x576004BE), UINT32_C(0x7629820C), UINT32_C(0x03F33951), + UINT32_C(0x46A450E2), UINT32_C(0x7BD32964)}}, + }, + { + {{UINT32_C(0x46CED42D), UINT32_C(0xD492D6B7), UINT32_C(0x1F0092E3), + UINT32_C(0xC068D02D), UINT32_C(0x8D8A822A), UINT32_C(0x008ECBAD), + UINT32_C(0x71045647), UINT32_C(0x6B326869)}, + {UINT32_C(0x523CBA58), UINT32_C(0xFEE3237F), UINT32_C(0x9C29059F), + UINT32_C(0x077B7F50), UINT32_C(0xE72FBE6F), UINT32_C(0x42C308B3), + UINT32_C(0x8E34148B), UINT32_C(0x3DD79D83)}}, + {{UINT32_C(0xCAC24455), UINT32_C(0x3ED9DF47), UINT32_C(0xD8546306), + UINT32_C(0x7C8A7B31), UINT32_C(0x2AA02202), UINT32_C(0x4CC43295), + UINT32_C(0x8598E028), UINT32_C(0x5E8B4EA3)}, + {UINT32_C(0x812B8070), UINT32_C(0x8A882F3F), UINT32_C(0x1DD374C0), + UINT32_C(0x984BE588), UINT32_C(0x16E133CF), UINT32_C(0x6FDA8159), + UINT32_C(0x899920D0), UINT32_C(0x34FB92FA)}}, + {{UINT32_C(0xDA0B8D0E), UINT32_C(0x3BE0416F), UINT32_C(0x88C053D0), + UINT32_C(0x2CC846DB), UINT32_C(0xB1A3A621), UINT32_C(0xC04C3A42), + UINT32_C(0x8A9D9115), UINT32_C(0x35BC5550)}, + {UINT32_C(0x7FA72AFE), UINT32_C(0x7F8C9FE3), UINT32_C(0xD1E914FD), + UINT32_C(0x488FA0B4), UINT32_C(0x84F79359), UINT32_C(0x8F5C2D63), + UINT32_C(0xFBC94785), UINT32_C(0x2BE80429)}}, + {{UINT32_C(0x6F67799A), UINT32_C(0x391794E0), UINT32_C(0x0677A067), + UINT32_C(0xD9BF08AE), UINT32_C(0xDF61563C), UINT32_C(0x716D5062), + UINT32_C(0xF590F3A3), UINT32_C(0x0ECB234A)}, + {UINT32_C(0xFEA22392), UINT32_C(0xA5B91448), UINT32_C(0x7E76FB8B), + UINT32_C(0xFAA29487), UINT32_C(0x4B6CB375), UINT32_C(0x3CC3A02A), + UINT32_C(0x9022167A), UINT32_C(0x5C0B3B63)}}, + {{UINT32_C(0x4C576430), UINT32_C(0xC5689CF3), UINT32_C(0xC585F5A5), + UINT32_C(0xF7B7B230), UINT32_C(0xE4BFCEE7), UINT32_C(0xB8DAADFB), + UINT32_C(0x9CF4242F), UINT32_C(0x7B7D8A95)}, + {UINT32_C(0x398FEEF6), UINT32_C(0xC1755F9B), UINT32_C(0x5CC5C36E), + UINT32_C(0x9B31CD4D), UINT32_C(0xF4C6B793), UINT32_C(0x4D87AB9C), + UINT32_C(0xF595EFA8), UINT32_C(0x673FD5B2)}}, + {{UINT32_C(0xE05E6B19), UINT32_C(0xA3836484), UINT32_C(0xFCA7E6FB), + UINT32_C(0x090C14CF), UINT32_C(0xFC717DBC), UINT32_C(0xB7A27042), + UINT32_C(0x38647882), UINT32_C(0x56CD4AF1)}, + {UINT32_C(0xA43C453E), UINT32_C(0xC2B56B50), UINT32_C(0x982E7AED), + UINT32_C(0x0CD5E768), UINT32_C(0x58474A8B), UINT32_C(0xD5ABADF7), + UINT32_C(0x99F500AC), UINT32_C(0x68188A38)}}, + {{UINT32_C(0x83B1F7BA), UINT32_C(0x0683AC3E), UINT32_C(0x680568E9), + UINT32_C(0x6A4FC30C), UINT32_C(0x7F6256CF), UINT32_C(0x735F5E48), + UINT32_C(0x048DB831), UINT32_C(0x1240752D)}, + {UINT32_C(0x868B8AD7), UINT32_C(0x98B78A67), UINT32_C(0x822EBA7D), + UINT32_C(0x9E32F2C1), UINT32_C(0x8F37580F), UINT32_C(0xEAE28B1E), + UINT32_C(0xC72EDA86), UINT32_C(0x0D204CE0)}}, + {{UINT32_C(0x77E8C68C), UINT32_C(0x5E4EAA1C), UINT32_C(0x859A127B), + UINT32_C(0x282ADFE9), UINT32_C(0x14904910), UINT32_C(0x0C75AB7C), + UINT32_C(0x6E751062), UINT32_C(0x1794516A)}, + {UINT32_C(0x3DE4A32A), UINT32_C(0x8D99D891), UINT32_C(0x54EF2BF0), + UINT32_C(0x957AA807), UINT32_C(0x0B109ECD), UINT32_C(0xBF20A9E0), + UINT32_C(0xA72268D3), UINT32_C(0x7732F2B3)}}, + {{UINT32_C(0x48752F76), UINT32_C(0xADB52E43), UINT32_C(0xD6F7CCE8), + UINT32_C(0x01E9F4B1), UINT32_C(0x2E4BD9B5), UINT32_C(0x22702DA0), + UINT32_C(0xB40BF9AB), UINT32_C(0x1BCC9C60)}, + {UINT32_C(0x9F53B2B1), UINT32_C(0xAB774637), UINT32_C(0x8CB316D0), + UINT32_C(0x9C574151), UINT32_C(0xBECBEBED), UINT32_C(0x231D5C45), + UINT32_C(0xF0458638), UINT32_C(0x0BD2D5E7)}}, + {{UINT32_C(0x4B946132), UINT32_C(0xD2F5E0B5), UINT32_C(0x155AA2C8), + UINT32_C(0x200A8A30), UINT32_C(0x56A62CE7), UINT32_C(0x15473FD4), + UINT32_C(0xB6689367), UINT32_C(0x030EA71B)}, + {UINT32_C(0x0E315F29), UINT32_C(0xD561432B), UINT32_C(0x149E3A9E), + UINT32_C(0x4155022E), UINT32_C(0x15841273), UINT32_C(0xC77EF7E1), + UINT32_C(0x52BA265A), UINT32_C(0x890D9C8D)}}, + {{UINT32_C(0x5E62451A), UINT32_C(0xB72B5A6A), UINT32_C(0x5C61A183), + UINT32_C(0xFDA85C17), UINT32_C(0xB7F36EB3), UINT32_C(0xA4275361), + UINT32_C(0x94F4148D), UINT32_C(0x53ADFAF3)}, + {UINT32_C(0x6A8467AE), UINT32_C(0x281D47F9), UINT32_C(0x8474D3AD), + UINT32_C(0x416A64B5), UINT32_C(0xEC99480E), UINT32_C(0x710D0E7A), + UINT32_C(0x819253FF), UINT32_C(0x2693A878)}}, + {{UINT32_C(0x1A2FE406), UINT32_C(0x4BE76904), UINT32_C(0x343F5B10), + UINT32_C(0xB6FEED1D), UINT32_C(0xD705E35C), UINT32_C(0x36695C52), + UINT32_C(0x6BD3859F), UINT32_C(0x7DF6FA41)}, + {UINT32_C(0xC00E77EA), UINT32_C(0x7B9B11F5), UINT32_C(0xCA80F838), + UINT32_C(0xC90411B8), UINT32_C(0x2908C694), UINT32_C(0x8A9FAEF0), + UINT32_C(0xFF5B39B0), UINT32_C(0x05F65AAA)}}, + {{UINT32_C(0xD7F59CC5), UINT32_C(0x823A0776), UINT32_C(0xC410DFD1), + UINT32_C(0xB9EBE15E), UINT32_C(0x10A7FA3F), UINT32_C(0xC2374B58), + UINT32_C(0x311660F2), UINT32_C(0x1B912C84)}, + {UINT32_C(0xD5A175E6), UINT32_C(0x486A2607), UINT32_C(0x72B74EB7), + UINT32_C(0x9B17D14D), UINT32_C(0x1039CA77), UINT32_C(0x1069D5C4), + UINT32_C(0x3FEE08BB), UINT32_C(0x214605B3)}}, + {{UINT32_C(0xF9D14E8D), UINT32_C(0xC25A7379), UINT32_C(0x577D330E), + UINT32_C(0x9D5FAFDA), UINT32_C(0xA4A9CEF0), UINT32_C(0xB9A0217D), + UINT32_C(0x08252731), UINT32_C(0x95AFC7F7)}, + {UINT32_C(0x8FC51680), UINT32_C(0x14E53E9E), UINT32_C(0xA8AC4E21), + UINT32_C(0x0AEA2428), UINT32_C(0x11CB2361), UINT32_C(0x6BC5E42C), + UINT32_C(0xDCB52215), UINT32_C(0x3B205E45)}}, + {{UINT32_C(0xC916CDE4), UINT32_C(0x8EDD4718), UINT32_C(0xD70D7130), + UINT32_C(0xBB08F27A), UINT32_C(0xED9162CB), UINT32_C(0x289A33C0), + UINT32_C(0xFB69185B), UINT32_C(0x97CEFA45)}, + {UINT32_C(0x8B7797EE), UINT32_C(0x44DA2578), UINT32_C(0x148E9A75), + UINT32_C(0x579B17F7), UINT32_C(0x913C09AE), UINT32_C(0x73EC1C23), + UINT32_C(0x0BAAA67D), UINT32_C(0x3FAB86A4)}}, + {{UINT32_C(0x2DF7BE6D), UINT32_C(0x28E76C23), UINT32_C(0x500A844D), + UINT32_C(0x00526844), UINT32_C(0x3CC748C2), UINT32_C(0xB86FBB14), + UINT32_C(0xEB5F6AC5), UINT32_C(0x6D89BB8A)}, + {UINT32_C(0x2327808C), UINT32_C(0xF66159DF), UINT32_C(0x29C5006C), + UINT32_C(0x606F0553), UINT32_C(0x844B6CA4), UINT32_C(0xDAA1107F), + UINT32_C(0x63A8946C), UINT32_C(0x95D7686C)}}, + }, + { + {{UINT32_C(0x07F7DCF5), UINT32_C(0x71438CEA), UINT32_C(0x0A1CCD55), + UINT32_C(0xB3F59AFA), UINT32_C(0x0E0071B4), UINT32_C(0x5A439627), + UINT32_C(0xE93D5B8E), UINT32_C(0x8694E3FA)}, + {UINT32_C(0x7D6550B0), UINT32_C(0x21713A38), UINT32_C(0x06CFCD5B), + UINT32_C(0x893BD9F7), UINT32_C(0xE7513FCE), UINT32_C(0xC3D2679C), + UINT32_C(0x2C451EF3), UINT32_C(0x418AE7C8)}}, + {{UINT32_C(0x0B85E2A9), UINT32_C(0xADFAFF38), UINT32_C(0x2E244653), + UINT32_C(0x6124E627), UINT32_C(0x375D1EE7), UINT32_C(0xF2C465AF), + UINT32_C(0x76E58455), UINT32_C(0x5B2302D6)}, + {UINT32_C(0x7479F387), UINT32_C(0x32938A0D), UINT32_C(0xAAAB22A5), + UINT32_C(0xF9A16A0D), UINT32_C(0x2AD65CAE), UINT32_C(0x65AF0E25), + UINT32_C(0x8431EA40), UINT32_C(0x2B566866)}}, + {{UINT32_C(0xDBCDAFAB), UINT32_C(0xCA3ACC11), UINT32_C(0xBB7F218B), + UINT32_C(0x0BBB5DBF), UINT32_C(0xDB0ABBE2), UINT32_C(0xD69E091A), + UINT32_C(0x0B0B7B09), UINT32_C(0x8AFFCE95)}, + {UINT32_C(0xC7EC52C7), UINT32_C(0x0A5E6C81), UINT32_C(0x896707CD), + UINT32_C(0xABD60595), UINT32_C(0x101E0F80), UINT32_C(0x4CE86506), + UINT32_C(0x4ED01B2E), UINT32_C(0x9629A6C0)}}, + {{UINT32_C(0xE15D82F4), UINT32_C(0x1D740EAC), UINT32_C(0x90A5D149), + UINT32_C(0x42F98018), UINT32_C(0x903D6D28), UINT32_C(0x1B8C8DC0), + UINT32_C(0x05BBDFF7), UINT32_C(0x7BE2B916)}, + {UINT32_C(0xD8E41D96), UINT32_C(0xFBACF878), UINT32_C(0xBE26EB56), + UINT32_C(0x42E98BFB), UINT32_C(0xF6DE1EB1), UINT32_C(0x9EA73555), + UINT32_C(0xCF79A9EE), UINT32_C(0x5325DDDE)}}, + {{UINT32_C(0x48E6A22F), UINT32_C(0x44BE62C3), UINT32_C(0x8DB35276), + UINT32_C(0xD0A3C0AD), UINT32_C(0x136FE9BA), UINT32_C(0xB4C99306), + UINT32_C(0xA44E491F), UINT32_C(0x0F2987D7)}, + {UINT32_C(0xCCC77C2B), UINT32_C(0xA0965F74), UINT32_C(0xFE110072), + UINT32_C(0xE01AD644), UINT32_C(0xC16B5E1E), UINT32_C(0x79528B9C), + UINT32_C(0xF929BE4D), UINT32_C(0x45AEEFF3)}}, + {{UINT32_C(0x7F4DA458), UINT32_C(0x46E95DF6), UINT32_C(0xA7AD579B), + UINT32_C(0x554C50C1), UINT32_C(0x4316DBA1), UINT32_C(0xF64F00A1), + UINT32_C(0x46D487BD), UINT32_C(0x16C98513)}, + {UINT32_C(0x2C048A1B), UINT32_C(0xECB19761), UINT32_C(0x5373E5E6), + UINT32_C(0x997AF398), UINT32_C(0xFDF23B20), UINT32_C(0x50E832D2), + UINT32_C(0x7EF7E097), UINT32_C(0x1B358E0F)}}, + {{UINT32_C(0xACBC759C), UINT32_C(0x7C6728AE), UINT32_C(0xA156A466), + UINT32_C(0x187588FB), UINT32_C(0x928F97BD), UINT32_C(0xC2E550ED), + UINT32_C(0xAAE1C05A), UINT32_C(0x8B595A3A)}, + {UINT32_C(0xD77C1125), UINT32_C(0xE36871E1), UINT32_C(0x0DBBD882), + UINT32_C(0x11E12978), UINT32_C(0x5E77FB7E), UINT32_C(0x3EF8268A), + UINT32_C(0x6B33C00C), UINT32_C(0x7BAEA9BA)}}, + {{UINT32_C(0x5925E5FE), UINT32_C(0x7C851236), UINT32_C(0xD8E1597B), + UINT32_C(0xCED70AE5), UINT32_C(0x6DCD112F), UINT32_C(0x7A28BE1A), + UINT32_C(0x3B8EAF6F), UINT32_C(0x1EB19268)}, + {UINT32_C(0x8AA902B9), UINT32_C(0x7E6F1CF2), UINT32_C(0xA5A761D9), + UINT32_C(0x3DD9D59C), UINT32_C(0x48D9F52E), UINT32_C(0x8EF70BB4), + UINT32_C(0xCDEE9658), UINT32_C(0x96629C1A)}}, + {{UINT32_C(0xB367C5B3), UINT32_C(0xCA215EAC), UINT32_C(0xA796338A), + UINT32_C(0x36B22774), UINT32_C(0x26EBCDFE), UINT32_C(0x71F9A61A), + UINT32_C(0x35119BD3), UINT32_C(0x1B40580A)}, + {UINT32_C(0x431C78BD), UINT32_C(0x77169EF1), UINT32_C(0x337022D5), + UINT32_C(0x8197975E), UINT32_C(0x1D9A4742), UINT32_C(0x45112799), + UINT32_C(0x19B6DB07), UINT32_C(0x382750D6)}}, + {{UINT32_C(0x9786AE0B), UINT32_C(0x740405EE), UINT32_C(0x3ABA0481), + UINT32_C(0xF7F37C0F), UINT32_C(0x51892307), UINT32_C(0x904FC60C), + UINT32_C(0xE891D639), UINT32_C(0x8405DF2A)}, + {UINT32_C(0xD9B432F8), UINT32_C(0x53D19AC5), UINT32_C(0x066CD97C), + UINT32_C(0xE8F1730F), UINT32_C(0x0E95804B), UINT32_C(0xC8740FEF), + UINT32_C(0xEC242811), UINT32_C(0x12EE433C)}}, + {{UINT32_C(0x6153F4D4), UINT32_C(0x6AF4B9B1), UINT32_C(0xF84F0145), + UINT32_C(0x9CD8CD0C), UINT32_C(0xDCEB0F06), UINT32_C(0x6CABD4FC), + UINT32_C(0x0D134DCE), UINT32_C(0x036BF146)}, + {UINT32_C(0x7EFFACAB), UINT32_C(0xCDEB1818), UINT32_C(0x52C987E7), + UINT32_C(0xB57A4162), UINT32_C(0xC647E82F), UINT32_C(0xDD5104EB), + UINT32_C(0xF51B5270), UINT32_C(0x389AA556)}}, + {{UINT32_C(0x60108876), UINT32_C(0xC450CAEA), UINT32_C(0xF48601A1), + UINT32_C(0xF36B5B6A), UINT32_C(0x09128863), UINT32_C(0x257950D1), + UINT32_C(0xA9F6A1B9), UINT32_C(0x7A592427)}, + {UINT32_C(0xED12DE33), UINT32_C(0xBF1FF2B0), UINT32_C(0xE2141101), + UINT32_C(0x4D542AC8), UINT32_C(0xE170F9CF), UINT32_C(0x998523C4), + UINT32_C(0xFCEC0E2F), UINT32_C(0x629385CE)}}, + {{UINT32_C(0xB2677C49), UINT32_C(0x951494ED), UINT32_C(0xF9B648E8), + UINT32_C(0xF1AE7138), UINT32_C(0x63CFF359), UINT32_C(0x28B8749E), + UINT32_C(0x9A73272F), UINT32_C(0x5AC4EC4C)}, + {UINT32_C(0x21723271), UINT32_C(0xC25ABB87), UINT32_C(0x8B441AFD), + UINT32_C(0x488EC910), UINT32_C(0x1B1DF775), UINT32_C(0x07518348), + UINT32_C(0xF1EB2FB4), UINT32_C(0x4662BBDA)}}, + {{UINT32_C(0x6DF9F64A), UINT32_C(0xAE836F74), UINT32_C(0xA185ABE6), + UINT32_C(0xF3CD6C9D), UINT32_C(0xC29A1C1A), UINT32_C(0xAFA897A8), + UINT32_C(0x11B2D6AC), UINT32_C(0x4BAFBB69)}, + {UINT32_C(0xB6D971C7), UINT32_C(0x8040F9A3), UINT32_C(0x00763EAF), + UINT32_C(0x3B8920B7), UINT32_C(0x52E848B7), UINT32_C(0x7A1655DA), + UINT32_C(0x703FA84D), UINT32_C(0x03BC8B55)}}, + {{UINT32_C(0x1F934416), UINT32_C(0xE6348C65), UINT32_C(0xF82BBC4A), + UINT32_C(0xDBE59C03), UINT32_C(0xEAD60547), UINT32_C(0x51AEAD09), + UINT32_C(0x4F20111E), UINT32_C(0x043A35C3)}, + {UINT32_C(0xEC574F0A), UINT32_C(0x0AA18326), UINT32_C(0xFCADF79D), + UINT32_C(0x07E90D70), UINT32_C(0x201CD68B), UINT32_C(0x3979D4CE), + UINT32_C(0x2C2734B1), UINT32_C(0x7FBF2C63)}}, + {{UINT32_C(0x2656AF49), UINT32_C(0x2E451373), UINT32_C(0xA432DE06), + UINT32_C(0xCA86207D), UINT32_C(0x12F20637), UINT32_C(0xC5F9262D), + UINT32_C(0x26C0C745), UINT32_C(0x7DD9CCDC)}, + {UINT32_C(0xA785ED89), UINT32_C(0x99276BDC), UINT32_C(0x374CFBE2), + UINT32_C(0x34B307A7), UINT32_C(0x1E8EE0C5), UINT32_C(0x916E9B06), + UINT32_C(0x88A85C6A), UINT32_C(0x4E8EB3C7)}}, + }, + { + {{UINT32_C(0x107F1CE0), UINT32_C(0x6F2433EF), UINT32_C(0x46D23AEF), + UINT32_C(0x121DE131), UINT32_C(0x20DB44DE), UINT32_C(0x7AC50BE8), + UINT32_C(0xF6F41A1C), UINT32_C(0x1E500A2B)}, + {UINT32_C(0x27B0004C), UINT32_C(0x8E5BAFCC), UINT32_C(0xDB555C04), + UINT32_C(0x8538A5ED), UINT32_C(0xCE4ED544), UINT32_C(0x00AEC8A7), + UINT32_C(0x73B2DA91), UINT32_C(0x7C7301CC)}}, + {{UINT32_C(0x63284E3A), UINT32_C(0x3E7E1E5C), UINT32_C(0x1422D8EA), + UINT32_C(0x14581400), UINT32_C(0x7AAABD1D), UINT32_C(0x5FE151BF), + UINT32_C(0x1533B371), UINT32_C(0x6716691F)}, + {UINT32_C(0x22A8B7DF), UINT32_C(0xA592D53E), UINT32_C(0x51C97935), + UINT32_C(0x66991AFF), UINT32_C(0xDE5429B6), UINT32_C(0x8B10603D), + UINT32_C(0x551F146B), UINT32_C(0x0002F6C6)}}, + {{UINT32_C(0x777A334C), UINT32_C(0xF641CBCB), UINT32_C(0xEEFBCA44), + UINT32_C(0xB45B21E1), UINT32_C(0x32F6E263), UINT32_C(0x7C2FCD65), + UINT32_C(0xFEED8901), UINT32_C(0x05A21D80)}, + {UINT32_C(0x5506CF47), UINT32_C(0x2471B486), UINT32_C(0x7C9E62DE), + UINT32_C(0x0FFAC1F7), UINT32_C(0x869D3BDC), UINT32_C(0xC4D321DF), + UINT32_C(0x9512D0CA), UINT32_C(0x9AC03509)}}, + {{UINT32_C(0x352E0353), UINT32_C(0x5A26E8F5), UINT32_C(0xBF6ABBAC), + UINT32_C(0x965CF602), UINT32_C(0xE911C628), UINT32_C(0xDD8C4818), + UINT32_C(0xDC2D04A0), UINT32_C(0x132CA2D8)}, + {UINT32_C(0x6C865C91), UINT32_C(0x7641CFCE), UINT32_C(0x8E9965EF), + UINT32_C(0xDB5AB8F3), UINT32_C(0xDE0B7E90), UINT32_C(0x30030BCD), + UINT32_C(0x2320D3F1), UINT32_C(0x7BF44453)}}, + {{UINT32_C(0xD8A99DAD), UINT32_C(0xC006FA6D), UINT32_C(0xB45E64A1), + UINT32_C(0xC042F163), UINT32_C(0x74F4DBB1), UINT32_C(0xB91C9CA4), + UINT32_C(0xBE221E4E), UINT32_C(0x23BD5A29)}, + {UINT32_C(0x3D1ECF78), UINT32_C(0x6B0591D7), UINT32_C(0xAA5B771C), + UINT32_C(0x9E0ACF38), UINT32_C(0x796D4AA3), UINT32_C(0xC970F263), + UINT32_C(0x7B5DD349), UINT32_C(0x37037502)}}, + {{UINT32_C(0xFBC52541), UINT32_C(0xE11DECDA), UINT32_C(0xE7FE53A5), + UINT32_C(0xA49B8D39), UINT32_C(0x104A1F6E), UINT32_C(0x3A08E9BB), + UINT32_C(0xE0192BFB), UINT32_C(0x95444A15)}, + {UINT32_C(0x1A97B875), UINT32_C(0xEF75B062), UINT32_C(0xEA5FC457), + UINT32_C(0x9FC8AE5E), UINT32_C(0x47F73089), UINT32_C(0x3A09FD1B), + UINT32_C(0xE24516AB), UINT32_C(0x096750EC)}}, + {{UINT32_C(0x4A350C95), UINT32_C(0xAA180046), UINT32_C(0x58EA4195), + UINT32_C(0xA72F2B67), UINT32_C(0xFD9A4F25), UINT32_C(0xE0647945), + UINT32_C(0x22737E2D), UINT32_C(0x4CF4136D)}, + {UINT32_C(0xEFB2A96D), UINT32_C(0xEE2532CE), UINT32_C(0x6C2F1471), + UINT32_C(0xB39DB117), UINT32_C(0x19935BDB), UINT32_C(0xF7C6242B), + UINT32_C(0x7A820092), UINT32_C(0x98CA48D4)}}, + {{UINT32_C(0xC3C938B0), UINT32_C(0xE9C1AD0A), UINT32_C(0xCCDF3BC6), + UINT32_C(0xF7CC05C4), UINT32_C(0x363A9CC6), UINT32_C(0x3C21752B), + UINT32_C(0x5916BD59), UINT32_C(0x47996B87)}, + {UINT32_C(0x98D17468), UINT32_C(0x01EF895D), UINT32_C(0x5818F5D8), + UINT32_C(0x9182F882), UINT32_C(0xE35E4BE7), UINT32_C(0xCBD212A3), + UINT32_C(0x5EA16E55), UINT32_C(0x894E7F39)}}, + {{UINT32_C(0x7C8FDD7E), UINT32_C(0xAC674AEE), UINT32_C(0xEDB0FE30), + UINT32_C(0xA23FA827), UINT32_C(0x745B3230), UINT32_C(0x642BE06F), + UINT32_C(0xCB40941C), UINT32_C(0x7654C79B)}, + {UINT32_C(0xD6A9E988), UINT32_C(0x4640C0C5), UINT32_C(0x11A4EECB), + UINT32_C(0xA98AF661), UINT32_C(0x325D730E), UINT32_C(0xE1E827E3), + UINT32_C(0x7D8A02DE), UINT32_C(0x2342D880)}}, + {{UINT32_C(0x715DB87E), UINT32_C(0xE4101595), UINT32_C(0x3C44A43A), + UINT32_C(0x462718AB), UINT32_C(0xEFCBC0F7), UINT32_C(0xF414CBC7), + UINT32_C(0xE5999AB3), UINT32_C(0x2A64DB21)}, + {UINT32_C(0x9DA91E84), UINT32_C(0xDAD841E1), UINT32_C(0x5F5C1CDD), + UINT32_C(0x5A28F649), UINT32_C(0xB8B41BDA), UINT32_C(0x2F8C9DCA), + UINT32_C(0x029C3697), UINT32_C(0x259DC791)}}, + {{UINT32_C(0x5296BA38), UINT32_C(0xD56F4EF4), UINT32_C(0x02EC3100), + UINT32_C(0x4A853BA1), UINT32_C(0xC8AE4C47), UINT32_C(0xB0ED5F21), + UINT32_C(0x61DF268E), UINT32_C(0x53D0DA0C)}, + {UINT32_C(0x6DC06EB6), UINT32_C(0xB6771DCB), UINT32_C(0xBB0C457F), + UINT32_C(0x30B07595), UINT32_C(0xF174690D), UINT32_C(0xC2FD08F3), + UINT32_C(0x87A5DC8E), UINT32_C(0x77000D6A)}}, + {{UINT32_C(0x6E1369AD), UINT32_C(0x90DDAA61), UINT32_C(0xB6A5F225), + UINT32_C(0x3DD15EE7), UINT32_C(0x27AEB0DC), UINT32_C(0x051AA9C4), + UINT32_C(0xE5372729), UINT32_C(0x18712DBB)}, + {UINT32_C(0xA23AFF5A), UINT32_C(0x13B3F9DF), UINT32_C(0x703FBFF9), + UINT32_C(0x34388CED), UINT32_C(0x17D60129), UINT32_C(0x0F390D67), + UINT32_C(0x4DAE9863), UINT32_C(0x3F0CA25E)}}, + {{UINT32_C(0x903385DC), UINT32_C(0x6E0F5594), UINT32_C(0xF8A815A9), + UINT32_C(0x47483889), UINT32_C(0x23B70B1C), UINT32_C(0x42AF320C), + UINT32_C(0x1A1AEA03), UINT32_C(0x4A27CA27)}, + {UINT32_C(0x66AF6F9D), UINT32_C(0xFAAC21C8), UINT32_C(0xC9FBFD3E), + UINT32_C(0x20849D90), UINT32_C(0xEE0A541C), UINT32_C(0x793F889F), + UINT32_C(0xADA5D18F), UINT32_C(0x2555FC32)}}, + {{UINT32_C(0xBA2BD509), UINT32_C(0x3F38F58C), UINT32_C(0x048F864B), + UINT32_C(0x319A5F0D), UINT32_C(0xD5900B1E), UINT32_C(0xC4632F37), + UINT32_C(0xF8519441), UINT32_C(0x3FAF2615)}, + {UINT32_C(0xFE194D77), UINT32_C(0x6A4AA25D), UINT32_C(0xD681409B), + UINT32_C(0xB5A6464A), UINT32_C(0xB957523A), UINT32_C(0x1A9326ED), + UINT32_C(0x27098B5B), UINT32_C(0x7690EA4F)}}, + {{UINT32_C(0x10F3FDE3), UINT32_C(0x5530E911), UINT32_C(0x810E7853), + UINT32_C(0x9A40101F), UINT32_C(0x8F011C4E), UINT32_C(0x152704FC), + UINT32_C(0x129B455F), UINT32_C(0x5B1702E4)}, + {UINT32_C(0xE60F4D30), UINT32_C(0x46A130BA), UINT32_C(0x62BBE8B5), + UINT32_C(0xA3D57414), UINT32_C(0x3CFAEFE3), UINT32_C(0xA26238DA), + UINT32_C(0x3175078E), UINT32_C(0x4E614113)}}, + {{UINT32_C(0x992EE109), UINT32_C(0x27BCCDFF), UINT32_C(0xFB45C6C3), + UINT32_C(0x79F88647), UINT32_C(0xC73F2829), UINT32_C(0x7FD5D73A), + UINT32_C(0x65A44CF1), UINT32_C(0x7EBE8E4E)}, + {UINT32_C(0x37414B2C), UINT32_C(0xB9EC0B94), UINT32_C(0x36DED49D), + UINT32_C(0x846AD1D1), UINT32_C(0x62F2FE87), UINT32_C(0x72AE1060), + UINT32_C(0xC032EEDD), UINT32_C(0x7F5AF329)}}, + }, + { + {{UINT32_C(0xC7A645A5), UINT32_C(0x6C80B058), UINT32_C(0x729066AC), + UINT32_C(0xF86341D2), UINT32_C(0x33FB5CE8), UINT32_C(0xE4F366BD), + UINT32_C(0xC23A4751), UINT32_C(0x6B79D63F)}, + {UINT32_C(0xEC3F8686), UINT32_C(0xFAA0F994), UINT32_C(0xA9BA8F5E), + UINT32_C(0x156A6E8E), UINT32_C(0x9F2FAE57), UINT32_C(0xA46CA7D5), + UINT32_C(0x6EFE66F2), UINT32_C(0x84CB2196)}}, + {{UINT32_C(0xED25185C), UINT32_C(0xF9C1DECB), UINT32_C(0xB1FCFC82), + UINT32_C(0x6DC43F21), UINT32_C(0xA954087B), UINT32_C(0x4A840262), + UINT32_C(0x0A38F667), UINT32_C(0x60230809)}, + {UINT32_C(0x1D9672B5), UINT32_C(0xBD345006), UINT32_C(0xF83361EF), + UINT32_C(0xE0FF804B), UINT32_C(0xEF8E1598), UINT32_C(0x9DDC6CE1), + UINT32_C(0xFBD9BD0E), UINT32_C(0x4419F705)}}, + {{UINT32_C(0x3426122A), UINT32_C(0xF171EDE4), UINT32_C(0x20A3963E), + UINT32_C(0xEF6A1AE2), UINT32_C(0x031647D0), UINT32_C(0xD25AB7A2), + UINT32_C(0xCB4CA4E3), UINT32_C(0x0FD7EC20)}, + {UINT32_C(0xB7D3A295), UINT32_C(0xC103969C), UINT32_C(0x34DBABA8), + UINT32_C(0x4957509E), UINT32_C(0x60BC0760), UINT32_C(0x8456DF63), + UINT32_C(0xD63B49A9), UINT32_C(0x02AF2033)}}, + {{UINT32_C(0x0378E444), UINT32_C(0x271966A0), UINT32_C(0x5D15A0B7), + UINT32_C(0x673F057D), UINT32_C(0xA0EFE59E), UINT32_C(0xA55C44F9), + UINT32_C(0x376119A6), UINT32_C(0x2F602F87)}, + {UINT32_C(0x28981502), UINT32_C(0x0A149074), UINT32_C(0x8741D4F2), + UINT32_C(0xDA006774), UINT32_C(0x133F8479), UINT32_C(0x8F982C81), + UINT32_C(0xF944319A), UINT32_C(0x1ECAF17A)}}, + {{UINT32_C(0xA37F4FC2), UINT32_C(0x281A234E), UINT32_C(0xFD34FC11), + UINT32_C(0xAFD847B2), UINT32_C(0x4683E11A), UINT32_C(0x02CC0839), + UINT32_C(0x3F65B844), UINT32_C(0x71215DA9)}, + {UINT32_C(0xEFE32AC9), UINT32_C(0xF9F41383), UINT32_C(0x1361FE53), + UINT32_C(0x4AC3D91D), UINT32_C(0x1CC2E948), UINT32_C(0x03C9FBAB), + UINT32_C(0x43379A4F), UINT32_C(0x9A9A4B91)}}, + {{UINT32_C(0x51BED5AC), UINT32_C(0x8D37A108), UINT32_C(0x998E1C19), + UINT32_C(0x75D91890), UINT32_C(0x5D244730), UINT32_C(0xE6C76B09), + UINT32_C(0x4CD555FF), UINT32_C(0x12714716)}, + {UINT32_C(0x29DDC669), UINT32_C(0xF2DCE85A), UINT32_C(0x8D622348), + UINT32_C(0x8914D13A), UINT32_C(0xDAE035E8), UINT32_C(0x9FE6B578), + UINT32_C(0xF41EEF19), UINT32_C(0x21ECB251)}}, + {{UINT32_C(0x7999064D), UINT32_C(0xEAFF3862), UINT32_C(0x96383204), + UINT32_C(0xB72BABEF), UINT32_C(0x6BCCCB43), UINT32_C(0x8E6C9E67), + UINT32_C(0x7FD71298), UINT32_C(0x320A7D78)}, + {UINT32_C(0xB438A302), UINT32_C(0x4081E38A), UINT32_C(0x120E132D), + UINT32_C(0x0A15CBA7), UINT32_C(0xEC2E0939), UINT32_C(0x6D9123E1), + UINT32_C(0xE0D6FEC5), UINT32_C(0x692D699C)}}, + {{UINT32_C(0xC8D5D361), UINT32_C(0xB639ADAE), UINT32_C(0xC60A078D), + UINT32_C(0xA8F742CC), UINT32_C(0x9D740F0F), UINT32_C(0xE8D2CF92), + UINT32_C(0x4DCE6A87), UINT32_C(0x6E8EEEF9)}, + {UINT32_C(0x6A2E5164), UINT32_C(0x54E19488), UINT32_C(0x2430E4B9), + UINT32_C(0x4372C6CF), UINT32_C(0x1C5B13B3), UINT32_C(0xD58EA91B), + UINT32_C(0xBB9F2911), UINT32_C(0x796DCC45)}}, + {{UINT32_C(0xCBB267F9), UINT32_C(0xD8D4FAF0), UINT32_C(0x703F4011), + UINT32_C(0xC2770DBE), UINT32_C(0x0D651402), UINT32_C(0x13739F02), + UINT32_C(0x72D2B3F1), UINT32_C(0x7DE4E51E)}, + {UINT32_C(0x1FE00C7E), UINT32_C(0xB10F966E), UINT32_C(0x8F42B5F8), + UINT32_C(0x5E9A1501), UINT32_C(0xD00437A3), UINT32_C(0x6AFB1AD0), + UINT32_C(0x1473D5AE), UINT32_C(0x267D1536)}}, + {{UINT32_C(0x4CAE118F), UINT32_C(0x1173B5DB), UINT32_C(0xCA749EE6), + UINT32_C(0xC3A2EAFD), UINT32_C(0x4ED4FFF4), UINT32_C(0x64F738E6), + UINT32_C(0xB07860B6), UINT32_C(0x47DDECB6)}, + {UINT32_C(0xBD47A901), UINT32_C(0xF5D627FC), UINT32_C(0x856C6903), + UINT32_C(0x6493BC28), UINT32_C(0xEA63B675), UINT32_C(0x90280E4B), + UINT32_C(0xC4148666), UINT32_C(0x211C04A2)}}, + {{UINT32_C(0x6524BC38), UINT32_C(0x0A5F0C27), UINT32_C(0xBB3CBDB9), + UINT32_C(0x4B9D95FB), UINT32_C(0x20507C82), UINT32_C(0x5394ADC2), + UINT32_C(0xB4DBE448), UINT32_C(0x4C0C9167)}, + {UINT32_C(0x303A5B11), UINT32_C(0xAC3E87CE), UINT32_C(0x3251F4DF), + UINT32_C(0xD31FB9C5), UINT32_C(0xE43CE799), UINT32_C(0x86C281DF), + UINT32_C(0x29FE09E4), UINT32_C(0x84E644D7)}}, + {{UINT32_C(0x43166C20), UINT32_C(0x6D7B61DC), UINT32_C(0xBD34F981), + UINT32_C(0x54D6C035), UINT32_C(0xC991096D), UINT32_C(0xB166769D), + UINT32_C(0x3A4CF05C), UINT32_C(0x51A47E3A)}, + {UINT32_C(0x14F5E7F1), UINT32_C(0x57CF9EFF), UINT32_C(0xE39FDA0D), + UINT32_C(0xED3D4E9D), UINT32_C(0xBAA7E93B), UINT32_C(0xDF0176EC), + UINT32_C(0x70935B9F), UINT32_C(0x6B2FEA14)}}, + {{UINT32_C(0x709B70AE), UINT32_C(0x19F9D59E), UINT32_C(0x70472149), + UINT32_C(0xD850CA32), UINT32_C(0x29EE6104), UINT32_C(0x292CADD9), + UINT32_C(0x8FD499F2), UINT32_C(0x870F7C99)}, + {UINT32_C(0x415C6FFD), UINT32_C(0x200ECB1C), UINT32_C(0x35CB841B), + UINT32_C(0xEEA6107D), UINT32_C(0xF95DD333), UINT32_C(0x1CB06F8A), + UINT32_C(0xE498AA7B), UINT32_C(0x245712FD)}}, + {{UINT32_C(0xED4FBD78), UINT32_C(0x101665EA), UINT32_C(0x0E32D1B4), + UINT32_C(0xC6DDE1BB), UINT32_C(0x40150A9C), UINT32_C(0x3E79185E), + UINT32_C(0x7DEF3607), UINT32_C(0x49E2AE6B)}, + {UINT32_C(0x308B7F59), UINT32_C(0xCCC9B0F6), UINT32_C(0xCE922087), + UINT32_C(0xB267008F), UINT32_C(0xCF2AABA6), UINT32_C(0x46CF7F07), + UINT32_C(0x9954091F), UINT32_C(0x5A74C8A0)}}, + {{UINT32_C(0x5240B5A0), UINT32_C(0x8F287195), UINT32_C(0x1845373D), + UINT32_C(0x7AC7720F), UINT32_C(0x4E592274), UINT32_C(0xCF276B59), + UINT32_C(0x694C30B8), UINT32_C(0x6BEBC284)}, + {UINT32_C(0x677B16CD), UINT32_C(0xDA0113D6), UINT32_C(0x45C9FA76), + UINT32_C(0xA2213446), UINT32_C(0x66964ADB), UINT32_C(0x2DEAF2ED), + UINT32_C(0xBC062240), UINT32_C(0x1977A8B3)}}, + {{UINT32_C(0x80303DFD), UINT32_C(0xEEA29126), UINT32_C(0xE95BF6A1), + UINT32_C(0x3E4A33AC), UINT32_C(0x15DE0457), UINT32_C(0x6BFE2D5D), + UINT32_C(0xAD0976D1), UINT32_C(0x407BF7E3)}, + {UINT32_C(0x306B415B), UINT32_C(0x04C1F61F), UINT32_C(0x5F790D5F), + UINT32_C(0xC86A75D2), UINT32_C(0xB7EAE07B), UINT32_C(0x7B799EDE), + UINT32_C(0xB4A66839), UINT32_C(0x9155A9A0)}}, + }, + { + {{UINT32_C(0x0DCE586B), UINT32_C(0x9745C6BB), UINT32_C(0xBE77B502), + UINT32_C(0x554C8313), UINT32_C(0xA93962CF), UINT32_C(0xF0F842A9), + UINT32_C(0xAAA141BC), UINT32_C(0x40862273)}, + {UINT32_C(0xBD62237B), UINT32_C(0x926FFA4A), UINT32_C(0x7B942F48), + UINT32_C(0xD4F1E4A1), UINT32_C(0x075684FD), UINT32_C(0x3A841EB7), + UINT32_C(0xDD1807E1), UINT32_C(0x21F6EB39)}}, + {{UINT32_C(0xBEDA4365), UINT32_C(0x155DFD66), UINT32_C(0x27F33BF9), + UINT32_C(0xDD575C83), UINT32_C(0x3DFF83A1), UINT32_C(0x5907B08D), + UINT32_C(0xD6788D63), UINT32_C(0x7E325357)}, + {UINT32_C(0xBAC74ED7), UINT32_C(0xF90BF447), UINT32_C(0xEDA226CD), + UINT32_C(0x2DE6C957), UINT32_C(0x1CA44607), UINT32_C(0x67832302), + UINT32_C(0x56011C38), UINT32_C(0x22ECBC1F)}}, + {{UINT32_C(0xB663A46C), UINT32_C(0xF01279A9), UINT32_C(0x7E3AAB83), + UINT32_C(0x07D74C5F), UINT32_C(0x8C0DA43E), UINT32_C(0xF20940B6), + UINT32_C(0x368AD991), UINT32_C(0x57C6A735)}, + {UINT32_C(0x5007E059), UINT32_C(0x01E9B366), UINT32_C(0x9614D480), + UINT32_C(0xFC38FC99), UINT32_C(0xFF7DA757), UINT32_C(0x4A3AAA18), + UINT32_C(0xB0CE1B03), UINT32_C(0x4481B669)}}, + {{UINT32_C(0xB4A807FF), UINT32_C(0x9CAA37A0), UINT32_C(0xF9B269F3), + UINT32_C(0xBDEDEB49), UINT32_C(0xCB607AC3), UINT32_C(0xC5B76E57), + UINT32_C(0x9A322F48), UINT32_C(0x08AEFE66)}, + {UINT32_C(0xD9261469), UINT32_C(0x6919E40D), UINT32_C(0x849718FA), + UINT32_C(0x1F0ADA81), UINT32_C(0x9D81628E), UINT32_C(0xCD251B54), + UINT32_C(0x5505F9E1), UINT32_C(0x6519C3C6)}}, + {{UINT32_C(0x2F81C037), UINT32_C(0x277591DC), UINT32_C(0x76E0D41E), + UINT32_C(0xD63AD35A), UINT32_C(0x6EC063D3), UINT32_C(0x682662B5), + UINT32_C(0x6762A0DB), UINT32_C(0x8210978B)}, + {UINT32_C(0xFE164B90), UINT32_C(0x05085F68), UINT32_C(0x3D6FD0D1), + UINT32_C(0x50026ADC), UINT32_C(0xB01A3791), UINT32_C(0x38CC9FA7), + UINT32_C(0xB376F83E), UINT32_C(0x1E286652)}}, + {{UINT32_C(0x09759892), UINT32_C(0x8DFFDA16), UINT32_C(0x9AC2CE5D), + UINT32_C(0xE011DDDB), UINT32_C(0xBD71426B), UINT32_C(0xDDC7670F), + UINT32_C(0x19742F7C), UINT32_C(0x9722A23B)}, + {UINT32_C(0xDC4767D3), UINT32_C(0x2EA99893), UINT32_C(0x11125BAE), + UINT32_C(0xCB68D6C2), UINT32_C(0x307ED3B9), UINT32_C(0xAC76953E), + UINT32_C(0xC366E9A2), UINT32_C(0x0EDD0C17)}}, + {{UINT32_C(0x484B5272), UINT32_C(0x88B3DEC9), UINT32_C(0x90380294), + UINT32_C(0x0C848EA1), UINT32_C(0xA01AC92C), UINT32_C(0xDE187E83), + UINT32_C(0x7A5D4D65), UINT32_C(0x2A880182)}, + {UINT32_C(0xB3C3C7BB), UINT32_C(0xD3C22C2B), UINT32_C(0xDE7ECE33), + UINT32_C(0xC485CE02), UINT32_C(0xA437071A), UINT32_C(0xF22138C4), + UINT32_C(0x0716DA53), UINT32_C(0x23A55C89)}}, + {{UINT32_C(0xF6FE058E), UINT32_C(0x9533C4A3), UINT32_C(0x748E4A4F), + UINT32_C(0x28753F87), UINT32_C(0xEA404C70), UINT32_C(0x7814C50A), + UINT32_C(0xE91B5EF3), UINT32_C(0x908D1C81)}, + {UINT32_C(0x04094766), UINT32_C(0xD827D3CE), UINT32_C(0x0CE5C727), + UINT32_C(0x7AE2FD26), UINT32_C(0xCDAD2BDD), UINT32_C(0x016AC86F), + UINT32_C(0x7A77C252), UINT32_C(0x37C088B0)}}, + {{UINT32_C(0x18A35CD3), UINT32_C(0xABF4C1EF), UINT32_C(0x698A5A01), + UINT32_C(0x1F721491), UINT32_C(0x1A9E9A1F), UINT32_C(0x79284A12), + UINT32_C(0x4D50DF40), UINT32_C(0x0457FF70)}, + {UINT32_C(0xEC46ED07), UINT32_C(0x1D235814), UINT32_C(0xAE5E97C8), + UINT32_C(0xBD013752), UINT32_C(0xD9B100D4), UINT32_C(0x0E085C88), + UINT32_C(0x8858F9F3), UINT32_C(0x8AFA070A)}}, + {{UINT32_C(0x698D6A59), UINT32_C(0x0F548BE3), UINT32_C(0xBF2D0D94), + UINT32_C(0x5D7818A5), UINT32_C(0xD80E620D), UINT32_C(0x8E150DF1), + UINT32_C(0xF857F167), UINT32_C(0x4C3A5E64)}, + {UINT32_C(0x61BD9152), UINT32_C(0x837D9A98), UINT32_C(0x8D10687F), + UINT32_C(0x242CE589), UINT32_C(0xB6B52BB7), UINT32_C(0x9863EA4C), + UINT32_C(0xB7DD35FF), UINT32_C(0x23665B46)}}, + {{UINT32_C(0x73942AAF), UINT32_C(0x3AA5432A), UINT32_C(0x0CEE83A9), + UINT32_C(0xB0185DB4), UINT32_C(0xA83B907B), UINT32_C(0x145372EE), + UINT32_C(0xBB6D341A), UINT32_C(0x609F1AD9)}, + {UINT32_C(0x864C92EE), UINT32_C(0x28C2B37A), UINT32_C(0xD4CC1158), + UINT32_C(0xDD847239), UINT32_C(0x8F2EAF0A), UINT32_C(0xE5BD4FD2), + UINT32_C(0xD24950AB), UINT32_C(0x04F43BC0)}}, + {{UINT32_C(0x88DA3F20), UINT32_C(0x11DEFCED), UINT32_C(0xA407C4A2), + UINT32_C(0xCA4CE370), UINT32_C(0x2F8C5CFC), UINT32_C(0xEA70BEDF), + UINT32_C(0x8214B7F7), UINT32_C(0x08AC147D)}, + {UINT32_C(0xE260AA96), UINT32_C(0xECAD0F77), UINT32_C(0xB56C30F7), + UINT32_C(0xA868AC63), UINT32_C(0x396F4815), UINT32_C(0xF0ACDE5A), + UINT32_C(0xACDE6CD8), UINT32_C(0x302F75B9)}}, + {{UINT32_C(0xC5D14866), UINT32_C(0x2125D07D), UINT32_C(0x4AE3212D), + UINT32_C(0xFE563DE4), UINT32_C(0xEE9CAA2B), UINT32_C(0x0FE787CB), + UINT32_C(0x53802482), UINT32_C(0x7D9B56A2)}, + {UINT32_C(0x8040D1A7), UINT32_C(0x128B4D37), UINT32_C(0x30ACA2F4), + UINT32_C(0x57371299), UINT32_C(0x7623D14A), UINT32_C(0x5C443E35), + UINT32_C(0x5FDB6310), UINT32_C(0x6436D328)}}, + {{UINT32_C(0xA8557B64), UINT32_C(0x531486A4), UINT32_C(0x9C5DE310), + UINT32_C(0x3FAB4F21), UINT32_C(0x260468D0), UINT32_C(0xD872282E), + UINT32_C(0x2542CBA4), UINT32_C(0x04CD4568)}, + {UINT32_C(0x555B6E0C), UINT32_C(0xACA0975A), UINT32_C(0x8B85132F), + UINT32_C(0xEE8C43B2), UINT32_C(0xB9DECE9D), UINT32_C(0xC768808B), + UINT32_C(0x431AF98C), UINT32_C(0x59EDEC60)}}, + {{UINT32_C(0x31992E22), UINT32_C(0xC365E133), UINT32_C(0x0DC3A4C8), + UINT32_C(0xB96C5FA0), UINT32_C(0xA65761B0), UINT32_C(0xDEB1C1DA), + UINT32_C(0xF4ACAB4C), UINT32_C(0x457676EE)}, + {UINT32_C(0xE674FFAF), UINT32_C(0xA0F95894), UINT32_C(0xD65CDAB7), + UINT32_C(0xFD099172), UINT32_C(0x54DA58A2), UINT32_C(0x9383C2F8), + UINT32_C(0x0F24A07B), UINT32_C(0x0A4F4C11)}}, + {{UINT32_C(0xE380ABF3), UINT32_C(0x9D7A80B3), UINT32_C(0x9E469F9F), + UINT32_C(0xF0C6AC5A), UINT32_C(0x6BD0A324), UINT32_C(0xC87D5727), + UINT32_C(0x7692B063), UINT32_C(0x28138E37)}, + {UINT32_C(0xD67862CA), UINT32_C(0xE18C1F7D), UINT32_C(0x1E07F928), + UINT32_C(0x4B6B723E), UINT32_C(0xBBCF4125), UINT32_C(0xAAFE3FB0), + UINT32_C(0x3B3AE714), UINT32_C(0x25400322)}}, + }, + { + {{UINT32_C(0x63C295D8), UINT32_C(0xB89A2DCA), UINT32_C(0x85041AA1), + UINT32_C(0x5CC03C65), UINT32_C(0xC6514781), UINT32_C(0xFA9B4C5C), + UINT32_C(0xD92388FF), UINT32_C(0x578031A0)}, + {UINT32_C(0xF92C2D77), UINT32_C(0xB0D5AE0A), UINT32_C(0x793D588A), + UINT32_C(0x945A677E), UINT32_C(0x34A190E0), UINT32_C(0x3722DE44), + UINT32_C(0x0C2B9975), UINT32_C(0x6EA90DB8)}}, + {{UINT32_C(0x84BA4F9B), UINT32_C(0xE987AA85), UINT32_C(0x0AB43BE6), + UINT32_C(0xB2A77B9C), UINT32_C(0x474D8841), UINT32_C(0xC4AD2AF6), + UINT32_C(0x5D4FA590), UINT32_C(0x4ED7A82B)}, + {UINT32_C(0x9977AC2B), UINT32_C(0x9F39335E), UINT32_C(0x52E87607), + UINT32_C(0x3CCD406D), UINT32_C(0x71456060), UINT32_C(0x9D18CB3F), + UINT32_C(0x6A45D7D0), UINT32_C(0x0FE4D888)}}, + {{UINT32_C(0xF42D501A), UINT32_C(0xAEA8A911), UINT32_C(0x88F66FBA), + UINT32_C(0x303E25D5), UINT32_C(0x61740B85), UINT32_C(0x54213F29), + UINT32_C(0xC0B4D835), UINT32_C(0x5BC13A30)}, + {UINT32_C(0x4758EA28), UINT32_C(0x569AB9B8), UINT32_C(0xB796A794), + UINT32_C(0xE2E49B28), UINT32_C(0x320D54E2), UINT32_C(0x17787125), + UINT32_C(0xC54B4465), UINT32_C(0x5A6A8EDE)}}, + {{UINT32_C(0x870619DD), UINT32_C(0xC76C73D9), UINT32_C(0x84FE1078), + UINT32_C(0xF541440E), UINT32_C(0x3B26A3DC), UINT32_C(0x2082FE36), + UINT32_C(0xCC329B14), UINT32_C(0x3B896B29)}, + {UINT32_C(0xCAFCDC20), UINT32_C(0xB45028A9), UINT32_C(0x9C56757E), + UINT32_C(0xA1B77C6F), UINT32_C(0x84802E47), UINT32_C(0xDE50D865), + UINT32_C(0xBA0892B0), UINT32_C(0x7DFBC0E8)}}, + {{UINT32_C(0x47E702BB), UINT32_C(0xEBC505A9), UINT32_C(0xDACFACFE), + UINT32_C(0x2329A41C), UINT32_C(0x51DDCE2F), UINT32_C(0xEA115603), + UINT32_C(0x2E9D855A), UINT32_C(0x95BBC807)}, + {UINT32_C(0xCFD33E9F), UINT32_C(0x454C6B88), UINT32_C(0x4FFBB24A), + UINT32_C(0x993CF6DE), UINT32_C(0x9B2144CD), UINT32_C(0xA8E22FF8), + UINT32_C(0x84943294), UINT32_C(0x741066EE)}}, + {{UINT32_C(0xF067E5B2), UINT32_C(0x2CEE0CFF), UINT32_C(0xCA95F1C5), + UINT32_C(0x1C1FD5A3), UINT32_C(0xC07B97F1), UINT32_C(0xA0EB8E7D), + UINT32_C(0x7457415E), UINT32_C(0x0F2A5D77)}, + {UINT32_C(0x45D06291), UINT32_C(0xDFF92C58), UINT32_C(0x48ABABE8), + UINT32_C(0x709EA0AC), UINT32_C(0x2FDC92F0), UINT32_C(0xB3058FEB), + UINT32_C(0x5E5B169E), UINT32_C(0x55E9F86E)}}, + {{UINT32_C(0xEBF6AF2B), UINT32_C(0xEE5DF132), UINT32_C(0xF642A206), + UINT32_C(0xC30DC3F1), UINT32_C(0x02C60CB6), UINT32_C(0xD7D8EC3E), + UINT32_C(0x3178F1BF), UINT32_C(0x7C98946B)}, + {UINT32_C(0xA68799EB), UINT32_C(0x816C2AA1), UINT32_C(0x2430F06B), + UINT32_C(0x507FD5E9), UINT32_C(0xB9EBD4B7), UINT32_C(0x021FFF1C), + UINT32_C(0x8AECFEA4), UINT32_C(0x044365E6)}}, + {{UINT32_C(0x21339693), UINT32_C(0xDC5F5EA6), UINT32_C(0x90A448AD), + UINT32_C(0x5BFD2676), UINT32_C(0xA12A9D77), UINT32_C(0xF712BA95), + UINT32_C(0xBD8A6B5B), UINT32_C(0x7104735A)}, + {UINT32_C(0xA763BB99), UINT32_C(0xD2ED8304), UINT32_C(0x11B91A05), + UINT32_C(0x7AF040F0), UINT32_C(0xB61F3789), UINT32_C(0xC545E8AE), + UINT32_C(0xBB386760), UINT32_C(0x582E9EED)}}, + {{UINT32_C(0xCC099185), UINT32_C(0x0FCE5877), UINT32_C(0xCD681E67), + UINT32_C(0x0E148BB5), UINT32_C(0xECB24ECE), UINT32_C(0xE9F9013E), + UINT32_C(0x2A386485), UINT32_C(0x0090654B)}, + {UINT32_C(0x0520BAE8), UINT32_C(0x11BA700B), UINT32_C(0xD8E53123), + UINT32_C(0xFC93BE31), UINT32_C(0xE37948EE), UINT32_C(0x7DD7CB36), + UINT32_C(0x3FC23444), UINT32_C(0x8689AE8F)}}, + {{UINT32_C(0xAAC6616B), UINT32_C(0x2060F7DE), UINT32_C(0xDEAB3CC7), + UINT32_C(0x372952C5), UINT32_C(0xC2424ACD), UINT32_C(0x715C4D27), + UINT32_C(0x0308A009), UINT32_C(0x05846856)}, + {UINT32_C(0x0B8B34E8), UINT32_C(0x887BBD55), UINT32_C(0xB688C987), + UINT32_C(0x949ACBD1), UINT32_C(0x784C4C0E), UINT32_C(0x3E774D49), + UINT32_C(0xB0F5F545), UINT32_C(0x7AEA2D11)}}, + {{UINT32_C(0xE831E509), UINT32_C(0x5335BA6B), UINT32_C(0x739F332E), + UINT32_C(0x8FC4B4AF), UINT32_C(0x95993EAF), UINT32_C(0xB0502462), + UINT32_C(0xA7CEB88B), UINT32_C(0x7DA49F36)}, + {UINT32_C(0x029D0C8F), UINT32_C(0x3BE0B74B), UINT32_C(0x55611A8B), + UINT32_C(0xBC07F180), UINT32_C(0x6583F53F), UINT32_C(0xC168CF41), + UINT32_C(0xC34ADBC1), UINT32_C(0x4256E8D2)}}, + {{UINT32_C(0xCE2FCD89), UINT32_C(0x313AFC75), UINT32_C(0xD3DA44F2), + UINT32_C(0xEA27FDA4), UINT32_C(0x9063B0DC), UINT32_C(0x9FABEA79), + UINT32_C(0xB3418884), UINT32_C(0x2DF7D966)}, + {UINT32_C(0x80AF2EBD), UINT32_C(0x4329FD24), UINT32_C(0x9F095D30), + UINT32_C(0x36F27FF7), UINT32_C(0xCC84C068), UINT32_C(0x88FFB18F), + UINT32_C(0x7B0A9906), UINT32_C(0x976427A8)}}, + {{UINT32_C(0xFAC21087), UINT32_C(0xCFF828CC), UINT32_C(0x56863CB5), + UINT32_C(0x6B6D3484), UINT32_C(0xC30879F3), UINT32_C(0x14163A70), + UINT32_C(0x8CA6FD5D), UINT32_C(0x30E2A633)}, + {UINT32_C(0x28A58783), UINT32_C(0xC7FCEAD6), UINT32_C(0xEEFA1EAA), + UINT32_C(0x945F7B09), UINT32_C(0x5CC66267), UINT32_C(0x98A503DB), + UINT32_C(0x3780061B), UINT32_C(0x83EE750E)}}, + {{UINT32_C(0xB8477D6B), UINT32_C(0x7061409A), UINT32_C(0x2B7B54FA), + UINT32_C(0xE47C779D), UINT32_C(0xF293166C), UINT32_C(0x42F5EDF5), + UINT32_C(0x115D830F), UINT32_C(0x73C3AC1B)}, + {UINT32_C(0x4DEE0980), UINT32_C(0xC30D346E), UINT32_C(0xA62F0D09), + UINT32_C(0xEE0D9A29), UINT32_C(0xABCB7DAE), UINT32_C(0xBBE8DC9E), + UINT32_C(0x68B78925), UINT32_C(0x4F0E78C0)}}, + {{UINT32_C(0xB4B14003), UINT32_C(0x25A0D4FF), UINT32_C(0xB8AB649C), + UINT32_C(0xA4C3AC55), UINT32_C(0x27F9FDF5), UINT32_C(0x7D7EDE72), + UINT32_C(0xBC2A46D4), UINT32_C(0x507EC83F)}, + {UINT32_C(0xFAAFC26F), UINT32_C(0x344577D9), UINT32_C(0x3EB30156), + UINT32_C(0x77CBB783), UINT32_C(0x1D5C9367), UINT32_C(0x3A846FFD), + UINT32_C(0x9DF9F7BE), UINT32_C(0x5F0D280C)}}, + {{UINT32_C(0x77DF7F9F), UINT32_C(0xCC8EAC0A), UINT32_C(0xF33A62D4), + UINT32_C(0x195BC6FF), UINT32_C(0x524D78FE), UINT32_C(0x18A33FFA), + UINT32_C(0x6603F9C0), UINT32_C(0x10E58974)}, + {UINT32_C(0x0CDA2C3F), UINT32_C(0x31AF4B46), UINT32_C(0xADE169C3), + UINT32_C(0xDDBF00C8), UINT32_C(0x71A7BC38), UINT32_C(0xA169C3E3), + UINT32_C(0xA64B342E), UINT32_C(0x3FC352FF)}}, + }, + { + {{UINT32_C(0xEE73C673), UINT32_C(0x58848315), UINT32_C(0x8ADB897E), + UINT32_C(0x67D2F7C0), UINT32_C(0xF0658115), UINT32_C(0xE8CD786D), + UINT32_C(0xAC54D2AB), UINT32_C(0x023D515A)}, + {UINT32_C(0x67559911), UINT32_C(0x0EDE61D8), UINT32_C(0x3C2B78B5), + UINT32_C(0xBC12B106), UINT32_C(0x9E4707D8), UINT32_C(0xB5661A28), + UINT32_C(0xADC095A4), UINT32_C(0x93FB4096)}}, + {{UINT32_C(0x33D5FA08), UINT32_C(0xEEB3810F), UINT32_C(0x33F4CAAF), + UINT32_C(0x8D8FC354), UINT32_C(0x29EB08A3), UINT32_C(0xED870516), + UINT32_C(0xD1D31EBC), UINT32_C(0x89FD91CA)}, + {UINT32_C(0xEDE2494B), UINT32_C(0xD2F1F832), UINT32_C(0xFA8EEA95), + UINT32_C(0xCFEE1D77), UINT32_C(0x3B0F005C), UINT32_C(0x13603C4A), + UINT32_C(0xD9EF68F4), UINT32_C(0x6DF97F85)}}, + {{UINT32_C(0x55410512), UINT32_C(0x578FBC0A), UINT32_C(0xDEC79EEE), + UINT32_C(0x1FA404F2), UINT32_C(0x92B60820), UINT32_C(0x201FE215), + UINT32_C(0x0A56193A), UINT32_C(0x9A9B3CE8)}, + {UINT32_C(0x10B49800), UINT32_C(0x8A5ECCB9), UINT32_C(0xBFDB1D8E), + UINT32_C(0xA7373AEB), UINT32_C(0x4944B5DF), UINT32_C(0x8996BEFA), + UINT32_C(0x7B44246C), UINT32_C(0x3102D3C0)}}, + {{UINT32_C(0x449C09BE), UINT32_C(0xD4A853B7), UINT32_C(0x51DDB7FE), + UINT32_C(0x1F7080A4), UINT32_C(0xE1C27FC1), UINT32_C(0x8A9DE52C), + UINT32_C(0x0C58B99D), UINT32_C(0x6585B54F)}, + {UINT32_C(0xB5A4AB53), UINT32_C(0x8EEB0601), UINT32_C(0x48C73AC6), + UINT32_C(0x977D658D), UINT32_C(0x3D9BD223), UINT32_C(0xD5DA0903), + UINT32_C(0xBE115965), UINT32_C(0x881A5838)}}, + {{UINT32_C(0xEB3FC303), UINT32_C(0x8EB70B77), UINT32_C(0x98BDB841), + UINT32_C(0xED1C4DEF), UINT32_C(0x997DE9E4), UINT32_C(0x13E6BE06), + UINT32_C(0x9334D46D), UINT32_C(0x4A94C0A1)}, + {UINT32_C(0x0F867DAF), UINT32_C(0x184C17C8), UINT32_C(0x33A64148), + UINT32_C(0x4A658026), UINT32_C(0x0AE3D4AA), UINT32_C(0xD177F009), + UINT32_C(0x98ED12C0), UINT32_C(0x8134AC8F)}}, + {{UINT32_C(0x7A58DDEC), UINT32_C(0x7A308A00), UINT32_C(0xFDF92DF2), + UINT32_C(0x74A15C5F), UINT32_C(0x21B4E345), UINT32_C(0x210D260E), + UINT32_C(0xC651E31E), UINT32_C(0x6446715B)}, + {UINT32_C(0x10B905B6), UINT32_C(0xB1AF1F84), UINT32_C(0xA62D366F), + UINT32_C(0xEF6CD0F2), UINT32_C(0xD1F6B7E3), UINT32_C(0x77E47B01), + UINT32_C(0x2B95BD12), UINT32_C(0x0F38B280)}}, + {{UINT32_C(0x8CCCDAE6), UINT32_C(0x52DA30E1), UINT32_C(0xBD86A13A), + UINT32_C(0x9F3D6636), UINT32_C(0xF4EA6151), UINT32_C(0xADFA00C5), + UINT32_C(0x1EC37639), UINT32_C(0x6B93BFA0)}, + {UINT32_C(0xF8FE22FC), UINT32_C(0x443F0023), UINT32_C(0xA81FEACC), + UINT32_C(0xCB7848A4), UINT32_C(0x517E9E61), UINT32_C(0xCE5E650A), + UINT32_C(0xA1968E3D), UINT32_C(0x5842DB7D)}}, + {{UINT32_C(0x98C06F78), UINT32_C(0x61DDC694), UINT32_C(0x7985B1A2), + UINT32_C(0x680FEDE9), UINT32_C(0xFB53A327), UINT32_C(0x214CD2B8), + UINT32_C(0xE425132B), UINT32_C(0x98EAC0B3)}, + {UINT32_C(0x33E5766D), UINT32_C(0x5EEDD76D), UINT32_C(0x540000A3), + UINT32_C(0x5B280618), UINT32_C(0x65C894AE), UINT32_C(0x915D55CB), + UINT32_C(0xD20D9523), UINT32_C(0x7B088A36)}}, + {{UINT32_C(0xC28DA278), UINT32_C(0x51A47312), UINT32_C(0xEFE64521), + UINT32_C(0xE315CBA4), UINT32_C(0x49D8D0FF), UINT32_C(0x3EF70A18), + UINT32_C(0xCABD48C5), UINT32_C(0x0990CB92)}, + {UINT32_C(0xA7C2FC76), UINT32_C(0x22ED6302), UINT32_C(0x2CB98186), + UINT32_C(0xB50370EA), UINT32_C(0xF3F2BA8B), UINT32_C(0xDEA88C65), + UINT32_C(0x09FEDEEA), UINT32_C(0x09062451)}}, + {{UINT32_C(0xDAC0F222), UINT32_C(0x742F9A2E), UINT32_C(0x95C88A8E), + UINT32_C(0xE2A8842B), UINT32_C(0x9D817B14), UINT32_C(0x80C05765), + UINT32_C(0x982D49AE), UINT32_C(0x7ED0521A)}, + {UINT32_C(0x907B10F7), UINT32_C(0x047E49D4), UINT32_C(0xDE8AD4CD), + UINT32_C(0x8A3E23A7), UINT32_C(0xEB5292B1), UINT32_C(0xEBE8C13F), + UINT32_C(0xA7EB70BD), UINT32_C(0x048A6209)}}, + {{UINT32_C(0x9AA34851), UINT32_C(0xB51665A0), UINT32_C(0x7C4AFCEE), + UINT32_C(0x4DD5AC1B), UINT32_C(0x25A21937), UINT32_C(0x00DEE7AB), + UINT32_C(0x80FAF232), UINT32_C(0x88E2681E)}, + {UINT32_C(0xB5411EE2), UINT32_C(0x79ECD66A), UINT32_C(0xF370BF53), + UINT32_C(0x06008CE3), UINT32_C(0xC9BBB64C), UINT32_C(0xCFB1850E), + UINT32_C(0x7149B14E), UINT32_C(0x5FBACB27)}}, + {{UINT32_C(0x9938AA0C), UINT32_C(0xA1F0EE07), UINT32_C(0x74CCE9C4), + UINT32_C(0x6945E2BA), UINT32_C(0x46A98BEA), UINT32_C(0x16689FCE), + UINT32_C(0xCF67DF91), UINT32_C(0x8D71F405)}, + {UINT32_C(0x69621150), UINT32_C(0x71E4CAC8), UINT32_C(0x89B380D8), + UINT32_C(0x518FA200), UINT32_C(0x53F9E660), UINT32_C(0x3B3B85F1), + UINT32_C(0xC6D9B022), UINT32_C(0x02643303)}}, + {{UINT32_C(0x07660C3E), UINT32_C(0xE8C478EC), UINT32_C(0xEF41F1DA), + UINT32_C(0xA906C3A1), UINT32_C(0x46699B71), UINT32_C(0xE918F160), + UINT32_C(0xE5BE7B36), UINT32_C(0x2B8A0B0E)}, + {UINT32_C(0x889F50A0), UINT32_C(0xC663F0EC), UINT32_C(0xF9214F81), + UINT32_C(0x7413264B), UINT32_C(0x421A9087), UINT32_C(0x2E9FA9A0), + UINT32_C(0x83546DCD), UINT32_C(0x85C59B7C)}}, + {{UINT32_C(0x8D920A29), UINT32_C(0xB4A6CF39), UINT32_C(0x1B3956A1), + UINT32_C(0xC857AF48), UINT32_C(0xDD794B23), UINT32_C(0x519C7371), + UINT32_C(0x8EFBF8F9), UINT32_C(0x47846220)}, + {UINT32_C(0x617E4C6C), UINT32_C(0x184C25E5), UINT32_C(0xD2E51A5E), + UINT32_C(0x218FCC23), UINT32_C(0x28FA0FFC), UINT32_C(0xB4219719), + UINT32_C(0x781A61D9), UINT32_C(0x6C0BCD71)}}, + {{UINT32_C(0xDC7B5568), UINT32_C(0x440D6DDF), UINT32_C(0x0DBBEC7C), + UINT32_C(0x64C7CC31), UINT32_C(0xA2DC0CBA), UINT32_C(0x63D16D4E), + UINT32_C(0x4504BE2C), UINT32_C(0x7BD9E0CC)}, + {UINT32_C(0x2DE780A8), UINT32_C(0x9C882895), UINT32_C(0xEF2B2486), + UINT32_C(0x7C6685C2), UINT32_C(0x957FA7D8), UINT32_C(0xF1FB09E9), + UINT32_C(0x46A77A98), UINT32_C(0x20C6B5A5)}}, + {{UINT32_C(0x33C0F0C1), UINT32_C(0x60C77573), UINT32_C(0xCADDA5FE), + UINT32_C(0x40C93227), UINT32_C(0x9DD41D5F), UINT32_C(0xA48EBAA2), + UINT32_C(0xEA9FD5AD), UINT32_C(0x4AAFBF3C)}, + {UINT32_C(0xC5A287BA), UINT32_C(0x7EB61836), UINT32_C(0xB31BA25E), + UINT32_C(0x1D6A1BA2), UINT32_C(0xAD186E52), UINT32_C(0x60507257), + UINT32_C(0x2BAB7451), UINT32_C(0x7FEC8EB0)}}, + }, + { + {{UINT32_C(0xB8DA5FFE), UINT32_C(0x500E2FDB), UINT32_C(0x8CDD1B39), + UINT32_C(0x6AE2D4EA), UINT32_C(0x1A5840CD), UINT32_C(0x38D12025), + UINT32_C(0xC214D26D), UINT32_C(0x8D3B20CB)}, + {UINT32_C(0xC041E874), UINT32_C(0xEF6BB36C), UINT32_C(0x450F2218), + UINT32_C(0x67660393), UINT32_C(0xA892BDFD), UINT32_C(0x1E1B7782), + UINT32_C(0x8D962E62), UINT32_C(0x2D69514C)}}, + {{UINT32_C(0x9631B095), UINT32_C(0x9EDF5F78), UINT32_C(0x45BF8F20), + UINT32_C(0xAC7DD687), UINT32_C(0xE3262EBC), UINT32_C(0x257CCE28), + UINT32_C(0xE0E480A6), UINT32_C(0x5D32EFCB)}, + {UINT32_C(0x6FBB99E8), UINT32_C(0xED48E34C), UINT32_C(0x23FDE9B7), + UINT32_C(0x50B1D58C), UINT32_C(0x6B6927C8), UINT32_C(0xC5164C2A), + UINT32_C(0x8906B705), UINT32_C(0x8A0BC606)}}, + {{UINT32_C(0x2F747DA8), UINT32_C(0x3FA3C7C9), UINT32_C(0x14938E08), + UINT32_C(0x2E8D2C2E), UINT32_C(0xB6A1C720), UINT32_C(0x155A8A5B), + UINT32_C(0xB3133FD0), UINT32_C(0x6B4D8C9E)}, + {UINT32_C(0xCE131C1D), UINT32_C(0x079AC7F1), UINT32_C(0x815B7D2B), + UINT32_C(0x9CF419AF), UINT32_C(0xE60B6245), UINT32_C(0x569EB7BA), + UINT32_C(0x9A3DD94E), UINT32_C(0x03C79E60)}}, + {{UINT32_C(0xB9CE9502), UINT32_C(0x328F5296), UINT32_C(0xE45C3576), + UINT32_C(0xCA44ADBD), UINT32_C(0x6194AE2C), UINT32_C(0x66987952), + UINT32_C(0xBF9B8C49), UINT32_C(0x5875F8EF)}, + {UINT32_C(0xDA51CAB8), UINT32_C(0x525A4D53), UINT32_C(0x9DC268B2), + UINT32_C(0x91A592DD), UINT32_C(0xE1E3C168), UINT32_C(0xD7EA7958), + UINT32_C(0xA999ED30), UINT32_C(0x0D1E20E0)}}, + {{UINT32_C(0xFE8AD270), UINT32_C(0x55DA34E5), UINT32_C(0x61EC55F6), + UINT32_C(0xB0412895), UINT32_C(0x534569C9), UINT32_C(0x0D45670F), + UINT32_C(0xE23F69FB), UINT32_C(0x5A7E6764)}, + {UINT32_C(0xA8B28676), UINT32_C(0xBB6BBEC9), UINT32_C(0x093B0D1D), + UINT32_C(0x4F924558), UINT32_C(0x0C29D841), UINT32_C(0xD4E4BF12), + UINT32_C(0x578A237A), UINT32_C(0x67D2B4C8)}}, + {{UINT32_C(0x63EF2D73), UINT32_C(0x0BDF32D6), UINT32_C(0x4AE4303C), + UINT32_C(0x7248DD2D), UINT32_C(0x6CE1E92A), UINT32_C(0xBB61BAB5), + UINT32_C(0x1D7B9A6C), UINT32_C(0x126166E9)}, + {UINT32_C(0x11CEBC3C), UINT32_C(0x4CE7086A), UINT32_C(0x1C71426F), + UINT32_C(0xE7ACB25E), UINT32_C(0x432CC4AF), UINT32_C(0xBFB65EDC), + UINT32_C(0xCB018CF7), UINT32_C(0x3BCA5202)}}, + {{UINT32_C(0x76430A87), UINT32_C(0xACF034F2), UINT32_C(0x534C42ED), + UINT32_C(0xBFDF19B3), UINT32_C(0x7946CB1A), UINT32_C(0x05654FE6), + UINT32_C(0x80F17880), UINT32_C(0x0DB07E79)}, + {UINT32_C(0xFDCF8BC9), UINT32_C(0xE6E93101), UINT32_C(0xF798A8CD), + UINT32_C(0xF3198B87), UINT32_C(0xC9683420), UINT32_C(0xC05444EF), + UINT32_C(0x915D1BF1), UINT32_C(0x56E9AA68)}}, + {{UINT32_C(0x34000B11), UINT32_C(0xF27B298B), UINT32_C(0xF4196E50), + UINT32_C(0x70ED8C95), UINT32_C(0x233C8764), UINT32_C(0xF3E16608), + UINT32_C(0x41881557), UINT32_C(0x5B97655A)}, + {UINT32_C(0x128C195B), UINT32_C(0x5BF11C1A), UINT32_C(0x372C286D), + UINT32_C(0xFFB64333), UINT32_C(0x7C83BB31), UINT32_C(0x084D3EF7), + UINT32_C(0x745B7D75), UINT32_C(0x8ECF6C01)}}, + {{UINT32_C(0xC6F4FF82), UINT32_C(0x3D6052B9), UINT32_C(0x6607892F), + UINT32_C(0x9305FE45), UINT32_C(0x5879425F), UINT32_C(0x232FD87E), + UINT32_C(0xD6F47350), UINT32_C(0x4CAEDF73)}, + {UINT32_C(0x032FC50D), UINT32_C(0x889243D2), UINT32_C(0x0C9C11AC), + UINT32_C(0xA6AF69D7), UINT32_C(0x802E8E06), UINT32_C(0x43B5429D), + UINT32_C(0xD70FC802), UINT32_C(0x38F1DEA8)}}, + {{UINT32_C(0xC9595C08), UINT32_C(0x54F24344), UINT32_C(0x0240AAB3), + UINT32_C(0x95A2E8FB), UINT32_C(0xC3544985), UINT32_C(0x07A5109D), + UINT32_C(0xB5D30899), UINT32_C(0x96F44213)}, + {UINT32_C(0xAA347497), UINT32_C(0x03FAB192), UINT32_C(0xC9CFC073), + UINT32_C(0x47FFD3DE), UINT32_C(0xD2C1D57F), UINT32_C(0x283AD765), + UINT32_C(0x62DC271A), UINT32_C(0x1FDFFBAC)}}, + {{UINT32_C(0x95F80CA6), UINT32_C(0x2355C629), UINT32_C(0xCD8D880A), + UINT32_C(0x90AE1DBB), UINT32_C(0xC54117E0), UINT32_C(0x563CC122), + UINT32_C(0x813D7481), UINT32_C(0x1EF4991B)}, + {UINT32_C(0xCCE9AEDE), UINT32_C(0x8A310D77), UINT32_C(0x9318642E), + UINT32_C(0xA401FAEF), UINT32_C(0xCF9AFDCB), UINT32_C(0xC1712A67), + UINT32_C(0xBE499DE5), UINT32_C(0x8D97374C)}}, + {{UINT32_C(0x55A0BC07), UINT32_C(0x7437AA3B), UINT32_C(0xF726DD81), + UINT32_C(0x004946D0), UINT32_C(0x0F341860), UINT32_C(0x33D41D1B), + UINT32_C(0x17840F0D), UINT32_C(0x2A009EB5)}, + {UINT32_C(0xAA0DCDCF), UINT32_C(0x158F59AE), UINT32_C(0xEAB42135), + UINT32_C(0xF686EF2D), UINT32_C(0x7A80C670), UINT32_C(0xFF6B8E82), + UINT32_C(0xA04DF944), UINT32_C(0x38646963)}}, + {{UINT32_C(0x4B987E90), UINT32_C(0x6BB2705E), UINT32_C(0xD3C36316), + UINT32_C(0x2F5E2C4D), UINT32_C(0xE5A9ECEC), UINT32_C(0x41B38905), + UINT32_C(0x55BF8D1A), UINT32_C(0x2C6BA681)}, + {UINT32_C(0x3C92B20B), UINT32_C(0x1121B3B2), UINT32_C(0x904305D5), + UINT32_C(0x6DE41B12), UINT32_C(0xD569EAC4), UINT32_C(0xA0496CF4), + UINT32_C(0x11E5CF90), UINT32_C(0x5C64A06C)}}, + {{UINT32_C(0xE28783DF), UINT32_C(0xA65F12AB), UINT32_C(0x37322285), + UINT32_C(0x2A891B0F), UINT32_C(0x9811C4EB), UINT32_C(0xD6FF4604), + UINT32_C(0xA8505AC0), UINT32_C(0x7C960ED5)}, + {UINT32_C(0x2FCA110D), UINT32_C(0xE8689377), UINT32_C(0x60FD893E), + UINT32_C(0x71AAE292), UINT32_C(0x7505671D), UINT32_C(0x8ADE5317), + UINT32_C(0x8C508791), UINT32_C(0x721A07A5)}}, + {{UINT32_C(0xE5ECCA8C), UINT32_C(0xC1AE9A50), UINT32_C(0x07EB4329), + UINT32_C(0x7528AEF5), UINT32_C(0xD1297D88), UINT32_C(0x8F0D0E03), + UINT32_C(0x244BBC0C), UINT32_C(0x27C7BF76)}, + {UINT32_C(0xC7E7E9BB), UINT32_C(0x96EEDA7C), UINT32_C(0xF96C99B3), + UINT32_C(0xC9749BF7), UINT32_C(0x467B4D43), UINT32_C(0x44C852D2), + UINT32_C(0x937FA21D), UINT32_C(0x1691D71D)}}, + {{UINT32_C(0xF8058A68), UINT32_C(0x8CAC092F), UINT32_C(0xDAE38445), + UINT32_C(0x6B892BCF), UINT32_C(0x97D76059), UINT32_C(0x82CBECE5), + UINT32_C(0x3518F9E2), UINT32_C(0x5AEB6646)}, + {UINT32_C(0x392080B4), UINT32_C(0xA39C710C), UINT32_C(0x1502DE54), + UINT32_C(0x575DC5F4), UINT32_C(0x3A3D2B4D), UINT32_C(0xA465DD5E), + UINT32_C(0x638EAF45), UINT32_C(0x281AAE47)}}, + }, + { + {{UINT32_C(0xE955A145), UINT32_C(0xBE40C92B), UINT32_C(0x324234B5), + UINT32_C(0xD464D6BC), UINT32_C(0xB09D4AF8), UINT32_C(0xE8084747), + UINT32_C(0x5268D6C3), UINT32_C(0x939C70BF)}, + {UINT32_C(0xD1DDBB48), UINT32_C(0x9C9C9D25), UINT32_C(0x790B5B42), + UINT32_C(0x30D9EA7F), UINT32_C(0x4E3914B4), UINT32_C(0x367FD79B), + UINT32_C(0x826EE4D7), UINT32_C(0x27615F29)}}, + {{UINT32_C(0x50A41246), UINT32_C(0x09BB6F16), UINT32_C(0xE5459A13), + UINT32_C(0xC72BFF7A), UINT32_C(0xFF09B2F7), UINT32_C(0x0FC15846), + UINT32_C(0x09CB693A), UINT32_C(0x6D904062)}, + {UINT32_C(0xF40FC67D), UINT32_C(0x98A132F8), UINT32_C(0xDF37CBFA), + UINT32_C(0xC8B6573B), UINT32_C(0x99D7FC36), UINT32_C(0xC9CF9948), + UINT32_C(0xA7235DDB), UINT32_C(0x0DD66ABA)}}, + {{UINT32_C(0xF96048BD), UINT32_C(0x0180B525), UINT32_C(0x544F1E70), + UINT32_C(0xEB566786), UINT32_C(0x8EF4373C), UINT32_C(0x8BABBF9B), + UINT32_C(0xD9E49178), UINT32_C(0x509BA431)}, + {UINT32_C(0x65A4A201), UINT32_C(0xF961A6F5), UINT32_C(0x8D44ED2D), + UINT32_C(0xB6621DF9), UINT32_C(0xD7B4D744), UINT32_C(0xEADD3C0C), + UINT32_C(0x0EAAB110), UINT32_C(0x75D27E99)}}, + {{UINT32_C(0x85DF5695), UINT32_C(0xEAC7AC76), UINT32_C(0xDA7540A3), + UINT32_C(0x02C26274), UINT32_C(0xC659B610), UINT32_C(0xDEC1BBC4), + UINT32_C(0x3AC61EEB), UINT32_C(0x54483C1B)}, + {UINT32_C(0x217E0283), UINT32_C(0x8B91209A), UINT32_C(0x3A17DDFE), + UINT32_C(0x939FBDAF), UINT32_C(0x5BF98726), UINT32_C(0xA82C66D6), + UINT32_C(0x915AAC76), UINT32_C(0x2BA82FA0)}}, + {{UINT32_C(0xAF4542E8), UINT32_C(0x99B324C1), UINT32_C(0xC0F225E0), + UINT32_C(0x16EBC66F), UINT32_C(0x27FEF57B), UINT32_C(0xEAE69563), + UINT32_C(0x961B03FA), UINT32_C(0x2996FE3C)}, + {UINT32_C(0x4F967A68), UINT32_C(0x0835212E), UINT32_C(0xF44352DC), + UINT32_C(0x0AAABD99), UINT32_C(0x4B3A6B8D), UINT32_C(0x1874255F), + UINT32_C(0x6D10B369), UINT32_C(0x45F5D8B2)}}, + {{UINT32_C(0xF7B7644B), UINT32_C(0x603DD497), UINT32_C(0x2D1386AA), + UINT32_C(0x369BE676), UINT32_C(0x14C9FA94), UINT32_C(0x08C1B763), + UINT32_C(0x384AF696), UINT32_C(0x734921D9)}, + {UINT32_C(0xD76E8EEB), UINT32_C(0xA1B5AF5B), UINT32_C(0x42F990E8), + UINT32_C(0xB0EAE7A3), UINT32_C(0x069ED81D), UINT32_C(0x59E7C515), + UINT32_C(0xB5A50610), UINT32_C(0x2D1B5E62)}}, + {{UINT32_C(0x85995BD3), UINT32_C(0xDC322810), UINT32_C(0x873E7A09), + UINT32_C(0x35A47B05), UINT32_C(0xA70DE932), UINT32_C(0x0CDFE9BB), + UINT32_C(0xD62FBC89), UINT32_C(0x049B899D)}, + {UINT32_C(0x652291DB), UINT32_C(0xF6BAA860), UINT32_C(0x9AF7478F), + UINT32_C(0x58123B25), UINT32_C(0x47B9F204), UINT32_C(0xA05CCBC2), + UINT32_C(0x82D999A7), UINT32_C(0x8A0B479D)}}, + {{UINT32_C(0x2D0F619A), UINT32_C(0xA72B9B52), UINT32_C(0x5919C420), + UINT32_C(0xE73B66F7), UINT32_C(0xD21CFEFE), UINT32_C(0x92319C86), + UINT32_C(0xF1635F0E), UINT32_C(0x58EEFC71)}, + {UINT32_C(0xDA909290), UINT32_C(0xDC481783), UINT32_C(0x66316584), + UINT32_C(0x144E7A98), UINT32_C(0x45E1E3C8), UINT32_C(0xBD7E657F), + UINT32_C(0xBD93938C), UINT32_C(0x5C9FCD1C)}}, + {{UINT32_C(0x436C1AB3), UINT32_C(0x2339E2FA), UINT32_C(0xC26768AA), + UINT32_C(0x69C22269), UINT32_C(0x40FCBD90), UINT32_C(0x94DFCAF4), + UINT32_C(0xC41D4F61), UINT32_C(0x56235739)}, + {UINT32_C(0x718468D3), UINT32_C(0x6E50D4DB), UINT32_C(0xCADCEC6C), + UINT32_C(0xDEA80730), UINT32_C(0x63DC3C43), UINT32_C(0x924FF97E), + UINT32_C(0x6752EA6A), UINT32_C(0x1B652825)}}, + {{UINT32_C(0xF07BE4BB), UINT32_C(0xAC2BDCDD), UINT32_C(0x8DB0A32D), + UINT32_C(0xB46D8E96), UINT32_C(0xB618488D), UINT32_C(0xDD661C68), + UINT32_C(0x75E1E4BF), UINT32_C(0x8ED22D4B)}, + {UINT32_C(0x3C177D80), UINT32_C(0x5DD2E5DF), UINT32_C(0x82803711), + UINT32_C(0x5049C012), UINT32_C(0x73E0BA27), UINT32_C(0xFB243B3F), + UINT32_C(0x8C7810D5), UINT32_C(0x0C756BA0)}}, + {{UINT32_C(0x6F16FBCA), UINT32_C(0xFC58F0BD), UINT32_C(0xA5E33B36), + UINT32_C(0xA855BB8C), UINT32_C(0x99D08247), UINT32_C(0xB9239EB4), + UINT32_C(0x49CAF40D), UINT32_C(0x27ABC78D)}, + {UINT32_C(0xA1285278), UINT32_C(0x88BE1595), UINT32_C(0x60F16638), + UINT32_C(0x9D5AEE5B), UINT32_C(0x1FCE4327), UINT32_C(0x3F381529), + UINT32_C(0xF19CAA04), UINT32_C(0x17206899)}}, + {{UINT32_C(0x9E047F55), UINT32_C(0x58616348), UINT32_C(0xE991FC4C), + UINT32_C(0x0D6098A5), UINT32_C(0x99A33914), UINT32_C(0x47760F98), + UINT32_C(0x5608C80E), UINT32_C(0x70C8F5D4)}, + {UINT32_C(0x06036DBE), UINT32_C(0x405F1191), UINT32_C(0x80CC0A27), + UINT32_C(0xBF625895), UINT32_C(0x389FA7BF), UINT32_C(0xFB8A0330), + UINT32_C(0x1FA0CBB4), UINT32_C(0x22B0B946)}}, + {{UINT32_C(0x1B1E2ACD), UINT32_C(0x84AE1981), UINT32_C(0x63961891), + UINT32_C(0xFA23C205), UINT32_C(0x742C1653), UINT32_C(0xCF4C685E), + UINT32_C(0x4D303078), UINT32_C(0x55BFC744)}, + {UINT32_C(0xBA03AAE4), UINT32_C(0xEB131CBB), UINT32_C(0x2C5B9EAB), + UINT32_C(0xF338C0DB), UINT32_C(0xB7495209), UINT32_C(0xC1006396), + UINT32_C(0xF7E6A4E6), UINT32_C(0x0FD928CF)}}, + {{UINT32_C(0x8633AB84), UINT32_C(0xA6BAC994), UINT32_C(0x75364642), + UINT32_C(0xC165BF5A), UINT32_C(0x8C57070D), UINT32_C(0xB70BEB47), + UINT32_C(0xD416322E), UINT32_C(0x838158A0)}, + {UINT32_C(0xD4957751), UINT32_C(0x501D2BFD), UINT32_C(0xC23AA730), + UINT32_C(0xF1CDDF32), UINT32_C(0x5458F1C6), UINT32_C(0xF64558A8), + UINT32_C(0x06E1209C), UINT32_C(0x51B6DDE3)}}, + {{UINT32_C(0xCC31D6BE), UINT32_C(0x0712C186), UINT32_C(0x33CD1D3F), + UINT32_C(0x91C4064A), UINT32_C(0xC7C91F53), UINT32_C(0xCADAE5B0), + UINT32_C(0xDEB2A2EE), UINT32_C(0x52AA408F)}, + {UINT32_C(0x202719D5), UINT32_C(0x058675CC), UINT32_C(0x1D087D07), + UINT32_C(0x444F99F5), UINT32_C(0x9D7A8AF4), UINT32_C(0x4DB587E8), + UINT32_C(0xDA17095A), UINT32_C(0x389376F5)}}, + {{UINT32_C(0x48FED385), UINT32_C(0x8262D370), UINT32_C(0x1AE92689), + UINT32_C(0x3B1FB466), UINT32_C(0x24242CF4), UINT32_C(0xDA6F570F), + UINT32_C(0x0DEAC5E9), UINT32_C(0x0532FC9E)}, + {UINT32_C(0x20C5BD7B), UINT32_C(0x5E8FB740), UINT32_C(0x002624B3), + UINT32_C(0x5AE99925), UINT32_C(0x7AFADC15), UINT32_C(0xAD44A4D5), + UINT32_C(0xDF409330), UINT32_C(0x6AECBC80)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 6 + * ASSERT: a = -3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(t0, X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(t1, Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_square(t2, Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t3, X, Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, t3, t3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t4, Y, Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, X, Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(X3, X3, t3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t2, t2, t3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, b, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Z3, Z3, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Z3, Z3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, t3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t0, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t0, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t0, t4, t4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, t0, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, Z3); +} + +/*- + * 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.op3 + * https://eprint.iacr.org/2015/1060 Alg 5 + * ASSERT: a = -3 + */ +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, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t4, Y2, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, t4, Y1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, X2, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, Y3, X1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, b, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, Z1, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t2, t1, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, t1); + + /* if P is inf, throw all that away and take Q */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(R->X, nz, Q->X, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 4 + * ASSERT: a = -3 + */ +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, t4, t5; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t2, Z1, Z2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t3, X1, Y1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, X2, Y2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t4, Y1, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t5, Y2, Z2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t5, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t4, t4, t5); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, X1, Z1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, X2, Z2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(X3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, X3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, b, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, Y3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, X3, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Z3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(X3, t1, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, b, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, t2, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t2, t1, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(Y3, Y3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, Y3, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(t0, t1, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(t0, t0, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, t4, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t2, t0, Y3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Y3, Y3, t2); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_sub(X3, X3, t1); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(Z3, t4, Z3); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(t1, t3, t0); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_add(Z3, Z3, t1); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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[32], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 32) 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(char out[52], const unsigned char in[32]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 51; 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(char out[257], const unsigned char in[32]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 257; 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; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32], + const unsigned char b[32], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[257] = {0}; + char bnaf[257] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 256; i >= 0; i--) { + if (!is_inf) point_double(&Q, &Q); + if ((d = bnaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(Q.Y, Q.Y); + 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.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_GostR3410_2001_CryptoPro_C_ParamSet_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_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[32], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[52] = {0}; + pt_prj_t Q, lut; + 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[51] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 50; 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_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_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[32]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[52] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 1; i >= 0; i--) { + for (j = 0; i != 1 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 27; j++) { + if (j * 2 + i > 51) continue; + d = rnaf[j * 2 + 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_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz( + lut.Y, is_neg, lut.Y, out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.X, scalar[0] & 1, + R.X, Q.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Y, scalar[0] & 1, + R.Y, Q.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_selectznz(Q.Z, scalar[0] & 1, + R.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[32], unsigned char outy[32], + const unsigned char a[32], const unsigned char b[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery(P.Y, P.Y); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_montgomery(P.Y, P.Y); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_CryptoPro_C_ParamSet_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[32] = {0}; + + int + point_mul_two_id_GostR3410_2001_CryptoPro_C_ParamSet( + 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[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_GostR3410_2001_CryptoPro_C_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const EC_POINT *q, + const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_GostR3410_2001_CryptoPro_C_ParamSet(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + 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, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, 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__ */ diff --git a/ecp_id_GostR3410_2001_TestParamSet.c b/ecp_id_GostR3410_2001_TestParamSet.c new file mode 100644 index 0000000..71f1b23 --- /dev/null +++ b/ecp_id_GostR3410_2001_TestParamSet.c @@ -0,0 +1,11525 @@ +/* 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 4 +/* Field elements */ +typedef uint64_t fe_t[LIMB_CNT]; +typedef uint64_t limb_t; + +#define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) +#define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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: word_by_word_montgomery --static id_GostR3410_2001_TestParamSet 64 '2^255 + 1073' */ +/* curve description: id_GostR3410_2001_TestParamSet */ +/* machine_wordsize = 64 (from "64") */ +/* requested operations: (all) */ +/* m = 0x8000000000000000000000000000000000000000000000000000000000000431 (from "2^255 + 1073") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (m), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ +/* */ +/* Computed values: */ +/* eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_GostR3410_2001_TestParamSet_uint1; +typedef signed char fiat_id_GostR3410_2001_TestParamSet_int1; +typedef signed __int128 fiat_id_GostR3410_2001_TestParamSet_int128; +typedef unsigned __int128 fiat_id_GostR3410_2001_TestParamSet_uint128; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^64 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64( + uint64_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 *out2, + fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + fiat_id_GostR3410_2001_TestParamSet_uint128 x1; + uint64_t x2; + fiat_id_GostR3410_2001_TestParamSet_uint1 x3; + x1 = ((arg1 + (fiat_id_GostR3410_2001_TestParamSet_uint128)arg2) + arg3); + x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + x3 = (fiat_id_GostR3410_2001_TestParamSet_uint1)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^64 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64( + uint64_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 *out2, + fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + fiat_id_GostR3410_2001_TestParamSet_int128 x1; + fiat_id_GostR3410_2001_TestParamSet_int1 x2; + uint64_t x3; + x1 = ((arg2 - (fiat_id_GostR3410_2001_TestParamSet_int128)arg1) - arg3); + x2 = (fiat_id_GostR3410_2001_TestParamSet_int1)(x1 >> 64); + x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_GostR3410_2001_TestParamSet_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_mulx_u64 is a multiplication, returning the full double-width result. + * Postconditions: + * out1 = (arg1 * arg2) mod 2^64 + * out2 = ⌊arg1 * arg2 / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0xffffffffffffffff] + * arg2: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_id_GostR3410_2001_TestParamSet_mulx_u64(uint64_t *out1, + uint64_t *out2, + uint64_t arg1, + uint64_t arg2) { + fiat_id_GostR3410_2001_TestParamSet_uint128 x1; + uint64_t x2; + uint64_t x3; + x1 = ((fiat_id_GostR3410_2001_TestParamSet_uint128)arg1 * arg2); + x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + x3 = (uint64_t)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_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_GostR3410_2001_TestParamSet_cmovznz_u64( + uint64_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, + uint64_t arg2, uint64_t arg3) { + fiat_id_GostR3410_2001_TestParamSet_uint1 x1; + uint64_t x2; + uint64_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_GostR3410_2001_TestParamSet_int1)(0x0 - x1) & + UINT64_C(0xffffffffffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_mul multiplies two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_mul(uint64_t out1[4], + const uint64_t arg1[4], + const uint64_t arg2[4]) { + 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x14; + uint64_t x15; + fiat_id_GostR3410_2001_TestParamSet_uint1 x16; + uint64_t x17; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x27; + uint64_t x28; + fiat_id_GostR3410_2001_TestParamSet_uint1 x29; + uint64_t x30; + fiat_id_GostR3410_2001_TestParamSet_uint1 x31; + uint64_t x32; + fiat_id_GostR3410_2001_TestParamSet_uint1 x33; + uint64_t x34; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x45; + uint64_t x46; + fiat_id_GostR3410_2001_TestParamSet_uint1 x47; + uint64_t x48; + fiat_id_GostR3410_2001_TestParamSet_uint1 x49; + uint64_t x50; + uint64_t x51; + fiat_id_GostR3410_2001_TestParamSet_uint1 x52; + uint64_t x53; + fiat_id_GostR3410_2001_TestParamSet_uint1 x54; + uint64_t x55; + fiat_id_GostR3410_2001_TestParamSet_uint1 x56; + uint64_t x57; + fiat_id_GostR3410_2001_TestParamSet_uint1 x58; + uint64_t x59; + fiat_id_GostR3410_2001_TestParamSet_uint1 x60; + uint64_t x61; + uint64_t x62; + uint64_t x63; + uint64_t x64; + uint64_t x65; + uint64_t x66; + uint64_t x67; + fiat_id_GostR3410_2001_TestParamSet_uint1 x68; + uint64_t x69; + fiat_id_GostR3410_2001_TestParamSet_uint1 x70; + uint64_t x71; + fiat_id_GostR3410_2001_TestParamSet_uint1 x72; + uint64_t x73; + fiat_id_GostR3410_2001_TestParamSet_uint1 x74; + uint64_t x75; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x87; + uint64_t x88; + fiat_id_GostR3410_2001_TestParamSet_uint1 x89; + uint64_t x90; + fiat_id_GostR3410_2001_TestParamSet_uint1 x91; + uint64_t x92; + uint64_t x93; + fiat_id_GostR3410_2001_TestParamSet_uint1 x94; + uint64_t x95; + fiat_id_GostR3410_2001_TestParamSet_uint1 x96; + uint64_t x97; + fiat_id_GostR3410_2001_TestParamSet_uint1 x98; + uint64_t x99; + fiat_id_GostR3410_2001_TestParamSet_uint1 x100; + uint64_t x101; + fiat_id_GostR3410_2001_TestParamSet_uint1 x102; + uint64_t x103; + uint64_t x104; + uint64_t x105; + uint64_t x106; + uint64_t x107; + uint64_t x108; + uint64_t x109; + fiat_id_GostR3410_2001_TestParamSet_uint1 x110; + uint64_t x111; + fiat_id_GostR3410_2001_TestParamSet_uint1 x112; + uint64_t x113; + fiat_id_GostR3410_2001_TestParamSet_uint1 x114; + uint64_t x115; + fiat_id_GostR3410_2001_TestParamSet_uint1 x116; + uint64_t x117; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x129; + uint64_t x130; + fiat_id_GostR3410_2001_TestParamSet_uint1 x131; + uint64_t x132; + fiat_id_GostR3410_2001_TestParamSet_uint1 x133; + uint64_t x134; + uint64_t x135; + fiat_id_GostR3410_2001_TestParamSet_uint1 x136; + uint64_t x137; + fiat_id_GostR3410_2001_TestParamSet_uint1 x138; + uint64_t x139; + fiat_id_GostR3410_2001_TestParamSet_uint1 x140; + uint64_t x141; + fiat_id_GostR3410_2001_TestParamSet_uint1 x142; + uint64_t x143; + fiat_id_GostR3410_2001_TestParamSet_uint1 x144; + uint64_t x145; + uint64_t x146; + uint64_t x147; + uint64_t x148; + uint64_t x149; + uint64_t x150; + uint64_t x151; + fiat_id_GostR3410_2001_TestParamSet_uint1 x152; + uint64_t x153; + fiat_id_GostR3410_2001_TestParamSet_uint1 x154; + uint64_t x155; + fiat_id_GostR3410_2001_TestParamSet_uint1 x156; + uint64_t x157; + fiat_id_GostR3410_2001_TestParamSet_uint1 x158; + uint64_t x159; + fiat_id_GostR3410_2001_TestParamSet_uint1 x160; + uint64_t x161; + uint64_t x162; + fiat_id_GostR3410_2001_TestParamSet_uint1 x163; + uint64_t x164; + fiat_id_GostR3410_2001_TestParamSet_uint1 x165; + uint64_t x166; + fiat_id_GostR3410_2001_TestParamSet_uint1 x167; + uint64_t x168; + fiat_id_GostR3410_2001_TestParamSet_uint1 x169; + uint64_t x170; + fiat_id_GostR3410_2001_TestParamSet_uint1 x171; + uint64_t x172; + uint64_t x173; + uint64_t x174; + uint64_t x175; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[0]); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x5, &x6, x4, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x7, &x8, x4, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x9, &x10, x4, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x11, &x12, x4, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x13, &x14, 0x0, x12, x9); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x15, &x16, x14, x10, x7); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x17, &x18, x16, x8, x5); + x19 = (x18 + x6); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x20, &x21, x11, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x22, &x23, x20, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x24, &x25, x20, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x26, &x27, 0x0, x11, + x24); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x28, &x29, x27, x13, + x25); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x30, &x31, x29, x15, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x32, &x33, x31, x17, + x22); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x34, &x35, x33, x19, + x23); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x36, &x37, x1, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x38, &x39, x1, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x40, &x41, x1, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x42, &x43, x1, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x44, &x45, 0x0, x43, + x40); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x46, &x47, x45, x41, + x38); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x48, &x49, x47, x39, + x36); + x50 = (x49 + x37); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x51, &x52, 0x0, x28, + x42); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x53, &x54, x52, x30, + x44); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x55, &x56, x54, x32, + x46); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x57, &x58, x56, x34, + x48); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x59, &x60, x58, x35, + x50); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x61, &x62, x51, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x63, &x64, x61, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x65, &x66, x61, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x67, &x68, 0x0, x51, + x65); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x69, &x70, x68, x53, + x66); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x71, &x72, x70, x55, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x73, &x74, x72, x57, + x63); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x75, &x76, x74, x59, + x64); + x77 = ((uint64_t)x76 + x60); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x78, &x79, x2, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x80, &x81, x2, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x82, &x83, x2, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x84, &x85, x2, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x86, &x87, 0x0, x85, + x82); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x88, &x89, x87, x83, + x80); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x90, &x91, x89, x81, + x78); + x92 = (x91 + x79); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x93, &x94, 0x0, x69, + x84); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x95, &x96, x94, x71, + x86); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x97, &x98, x96, x73, + x88); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x99, &x100, x98, x75, + x90); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x101, &x102, x100, x77, + x92); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x103, &x104, x93, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x105, &x106, x103, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x107, &x108, x103, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x109, &x110, 0x0, x93, + x107); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x111, &x112, x110, x95, + x108); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x113, &x114, x112, x97, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x115, &x116, x114, x99, + x105); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x117, &x118, x116, x101, + x106); + x119 = ((uint64_t)x118 + x102); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x120, &x121, x3, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x122, &x123, x3, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x124, &x125, x3, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x126, &x127, x3, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x128, &x129, 0x0, x127, + x124); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x130, &x131, x129, x125, + x122); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x132, &x133, x131, x123, + x120); + x134 = (x133 + x121); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x135, &x136, 0x0, x111, + x126); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x137, &x138, x136, x113, + x128); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x139, &x140, x138, x115, + x130); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x141, &x142, x140, x117, + x132); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x143, &x144, x142, x119, + x134); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x145, &x146, x135, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x147, &x148, x145, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x149, &x150, x145, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x151, &x152, 0x0, x135, + x149); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x153, &x154, x152, x137, + x150); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x155, &x156, x154, x139, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x157, &x158, x156, x141, + x147); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x159, &x160, x158, x143, + x148); + x161 = ((uint64_t)x160 + x144); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x162, &x163, 0x0, x153, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x164, &x165, x163, x155, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x166, &x167, x165, x157, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64( + &x168, &x169, x167, x159, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x170, &x171, x169, x161, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x172, x171, x162, x153); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x173, x171, x164, x155); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x174, x171, x166, x157); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x175, x171, x168, x159); + out1[0] = x172; + out1[1] = x173; + out1[2] = x174; + out1[3] = x175; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_square squares a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_square(uint64_t out1[4], + const uint64_t arg1[4]) { + 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x14; + uint64_t x15; + fiat_id_GostR3410_2001_TestParamSet_uint1 x16; + uint64_t x17; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x27; + uint64_t x28; + fiat_id_GostR3410_2001_TestParamSet_uint1 x29; + uint64_t x30; + fiat_id_GostR3410_2001_TestParamSet_uint1 x31; + uint64_t x32; + fiat_id_GostR3410_2001_TestParamSet_uint1 x33; + uint64_t x34; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x45; + uint64_t x46; + fiat_id_GostR3410_2001_TestParamSet_uint1 x47; + uint64_t x48; + fiat_id_GostR3410_2001_TestParamSet_uint1 x49; + uint64_t x50; + uint64_t x51; + fiat_id_GostR3410_2001_TestParamSet_uint1 x52; + uint64_t x53; + fiat_id_GostR3410_2001_TestParamSet_uint1 x54; + uint64_t x55; + fiat_id_GostR3410_2001_TestParamSet_uint1 x56; + uint64_t x57; + fiat_id_GostR3410_2001_TestParamSet_uint1 x58; + uint64_t x59; + fiat_id_GostR3410_2001_TestParamSet_uint1 x60; + uint64_t x61; + uint64_t x62; + uint64_t x63; + uint64_t x64; + uint64_t x65; + uint64_t x66; + uint64_t x67; + fiat_id_GostR3410_2001_TestParamSet_uint1 x68; + uint64_t x69; + fiat_id_GostR3410_2001_TestParamSet_uint1 x70; + uint64_t x71; + fiat_id_GostR3410_2001_TestParamSet_uint1 x72; + uint64_t x73; + fiat_id_GostR3410_2001_TestParamSet_uint1 x74; + uint64_t x75; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x87; + uint64_t x88; + fiat_id_GostR3410_2001_TestParamSet_uint1 x89; + uint64_t x90; + fiat_id_GostR3410_2001_TestParamSet_uint1 x91; + uint64_t x92; + uint64_t x93; + fiat_id_GostR3410_2001_TestParamSet_uint1 x94; + uint64_t x95; + fiat_id_GostR3410_2001_TestParamSet_uint1 x96; + uint64_t x97; + fiat_id_GostR3410_2001_TestParamSet_uint1 x98; + uint64_t x99; + fiat_id_GostR3410_2001_TestParamSet_uint1 x100; + uint64_t x101; + fiat_id_GostR3410_2001_TestParamSet_uint1 x102; + uint64_t x103; + uint64_t x104; + uint64_t x105; + uint64_t x106; + uint64_t x107; + uint64_t x108; + uint64_t x109; + fiat_id_GostR3410_2001_TestParamSet_uint1 x110; + uint64_t x111; + fiat_id_GostR3410_2001_TestParamSet_uint1 x112; + uint64_t x113; + fiat_id_GostR3410_2001_TestParamSet_uint1 x114; + uint64_t x115; + fiat_id_GostR3410_2001_TestParamSet_uint1 x116; + uint64_t x117; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x129; + uint64_t x130; + fiat_id_GostR3410_2001_TestParamSet_uint1 x131; + uint64_t x132; + fiat_id_GostR3410_2001_TestParamSet_uint1 x133; + uint64_t x134; + uint64_t x135; + fiat_id_GostR3410_2001_TestParamSet_uint1 x136; + uint64_t x137; + fiat_id_GostR3410_2001_TestParamSet_uint1 x138; + uint64_t x139; + fiat_id_GostR3410_2001_TestParamSet_uint1 x140; + uint64_t x141; + fiat_id_GostR3410_2001_TestParamSet_uint1 x142; + uint64_t x143; + fiat_id_GostR3410_2001_TestParamSet_uint1 x144; + uint64_t x145; + uint64_t x146; + uint64_t x147; + uint64_t x148; + uint64_t x149; + uint64_t x150; + uint64_t x151; + fiat_id_GostR3410_2001_TestParamSet_uint1 x152; + uint64_t x153; + fiat_id_GostR3410_2001_TestParamSet_uint1 x154; + uint64_t x155; + fiat_id_GostR3410_2001_TestParamSet_uint1 x156; + uint64_t x157; + fiat_id_GostR3410_2001_TestParamSet_uint1 x158; + uint64_t x159; + fiat_id_GostR3410_2001_TestParamSet_uint1 x160; + uint64_t x161; + uint64_t x162; + fiat_id_GostR3410_2001_TestParamSet_uint1 x163; + uint64_t x164; + fiat_id_GostR3410_2001_TestParamSet_uint1 x165; + uint64_t x166; + fiat_id_GostR3410_2001_TestParamSet_uint1 x167; + uint64_t x168; + fiat_id_GostR3410_2001_TestParamSet_uint1 x169; + uint64_t x170; + fiat_id_GostR3410_2001_TestParamSet_uint1 x171; + uint64_t x172; + uint64_t x173; + uint64_t x174; + uint64_t x175; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[0]); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x5, &x6, x4, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x7, &x8, x4, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x9, &x10, x4, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x11, &x12, x4, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x13, &x14, 0x0, x12, x9); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x15, &x16, x14, x10, x7); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x17, &x18, x16, x8, x5); + x19 = (x18 + x6); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x20, &x21, x11, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x22, &x23, x20, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x24, &x25, x20, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x26, &x27, 0x0, x11, + x24); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x28, &x29, x27, x13, + x25); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x30, &x31, x29, x15, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x32, &x33, x31, x17, + x22); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x34, &x35, x33, x19, + x23); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x36, &x37, x1, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x38, &x39, x1, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x40, &x41, x1, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x42, &x43, x1, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x44, &x45, 0x0, x43, + x40); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x46, &x47, x45, x41, + x38); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x48, &x49, x47, x39, + x36); + x50 = (x49 + x37); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x51, &x52, 0x0, x28, + x42); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x53, &x54, x52, x30, + x44); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x55, &x56, x54, x32, + x46); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x57, &x58, x56, x34, + x48); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x59, &x60, x58, x35, + x50); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x61, &x62, x51, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x63, &x64, x61, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x65, &x66, x61, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x67, &x68, 0x0, x51, + x65); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x69, &x70, x68, x53, + x66); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x71, &x72, x70, x55, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x73, &x74, x72, x57, + x63); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x75, &x76, x74, x59, + x64); + x77 = ((uint64_t)x76 + x60); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x78, &x79, x2, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x80, &x81, x2, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x82, &x83, x2, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x84, &x85, x2, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x86, &x87, 0x0, x85, + x82); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x88, &x89, x87, x83, + x80); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x90, &x91, x89, x81, + x78); + x92 = (x91 + x79); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x93, &x94, 0x0, x69, + x84); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x95, &x96, x94, x71, + x86); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x97, &x98, x96, x73, + x88); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x99, &x100, x98, x75, + x90); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x101, &x102, x100, x77, + x92); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x103, &x104, x93, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x105, &x106, x103, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x107, &x108, x103, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x109, &x110, 0x0, x93, + x107); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x111, &x112, x110, x95, + x108); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x113, &x114, x112, x97, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x115, &x116, x114, x99, + x105); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x117, &x118, x116, x101, + x106); + x119 = ((uint64_t)x118 + x102); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x120, &x121, x3, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x122, &x123, x3, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x124, &x125, x3, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x126, &x127, x3, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x128, &x129, 0x0, x127, + x124); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x130, &x131, x129, x125, + x122); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x132, &x133, x131, x123, + x120); + x134 = (x133 + x121); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x135, &x136, 0x0, x111, + x126); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x137, &x138, x136, x113, + x128); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x139, &x140, x138, x115, + x130); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x141, &x142, x140, x117, + x132); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x143, &x144, x142, x119, + x134); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x145, &x146, x135, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x147, &x148, x145, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x149, &x150, x145, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x151, &x152, 0x0, x135, + x149); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x153, &x154, x152, x137, + x150); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x155, &x156, x154, x139, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x157, &x158, x156, x141, + x147); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x159, &x160, x158, x143, + x148); + x161 = ((uint64_t)x160 + x144); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x162, &x163, 0x0, x153, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x164, &x165, x163, x155, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x166, &x167, x165, x157, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64( + &x168, &x169, x167, x159, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x170, &x171, x169, x161, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x172, x171, x162, x153); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x173, x171, x164, x155); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x174, x171, x166, x157); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x175, x171, x168, x159); + out1[0] = x172; + out1[1] = x173; + out1[2] = x174; + out1[3] = x175; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_add adds two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_add(uint64_t out1[4], + const uint64_t arg1[4], + const uint64_t arg2[4]) { + uint64_t x1; + fiat_id_GostR3410_2001_TestParamSet_uint1 x2; + uint64_t x3; + fiat_id_GostR3410_2001_TestParamSet_uint1 x4; + uint64_t x5; + fiat_id_GostR3410_2001_TestParamSet_uint1 x6; + uint64_t x7; + fiat_id_GostR3410_2001_TestParamSet_uint1 x8; + uint64_t x9; + fiat_id_GostR3410_2001_TestParamSet_uint1 x10; + uint64_t x11; + fiat_id_GostR3410_2001_TestParamSet_uint1 x12; + uint64_t x13; + fiat_id_GostR3410_2001_TestParamSet_uint1 x14; + uint64_t x15; + fiat_id_GostR3410_2001_TestParamSet_uint1 x16; + uint64_t x17; + fiat_id_GostR3410_2001_TestParamSet_uint1 x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x1, &x2, 0x0, (arg1[0]), + (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x3, &x4, x2, (arg1[1]), + (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x5, &x6, x4, (arg1[2]), + (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x7, &x8, x6, (arg1[3]), + (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x9, &x10, 0x0, x1, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x11, &x12, x10, x3, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x13, &x14, x12, x5, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64( + &x15, &x16, x14, x7, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x17, &x18, x16, x8, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x19, x18, x9, x1); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x20, x18, x11, x3); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x21, x18, x13, x5); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x22, x18, x15, x7); + out1[0] = x19; + out1[1] = x20; + out1[2] = x21; + out1[3] = x22; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_sub subtracts two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_sub(uint64_t out1[4], + const uint64_t arg1[4], + const uint64_t arg2[4]) { + uint64_t x1; + fiat_id_GostR3410_2001_TestParamSet_uint1 x2; + uint64_t x3; + fiat_id_GostR3410_2001_TestParamSet_uint1 x4; + uint64_t x5; + fiat_id_GostR3410_2001_TestParamSet_uint1 x6; + uint64_t x7; + fiat_id_GostR3410_2001_TestParamSet_uint1 x8; + uint64_t x9; + uint64_t x10; + fiat_id_GostR3410_2001_TestParamSet_uint1 x11; + uint64_t x12; + fiat_id_GostR3410_2001_TestParamSet_uint1 x13; + uint64_t x14; + fiat_id_GostR3410_2001_TestParamSet_uint1 x15; + uint64_t x16; + fiat_id_GostR3410_2001_TestParamSet_uint1 x17; + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x1, &x2, 0x0, (arg1[0]), + (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x3, &x4, x2, (arg1[1]), + (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x5, &x6, x4, (arg1[2]), + (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x7, &x8, x6, (arg1[3]), + (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64( + &x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x10, &x11, 0x0, x1, + (x9 & UINT16_C(0x431))); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x12, &x13, x11, x3, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x14, &x15, x13, x5, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64( + &x16, &x17, x15, x7, (x9 & UINT64_C(0x8000000000000000))); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_opp negates a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_opp(uint64_t out1[4], + const uint64_t arg1[4]) { + uint64_t x1; + fiat_id_GostR3410_2001_TestParamSet_uint1 x2; + uint64_t x3; + fiat_id_GostR3410_2001_TestParamSet_uint1 x4; + uint64_t x5; + fiat_id_GostR3410_2001_TestParamSet_uint1 x6; + uint64_t x7; + fiat_id_GostR3410_2001_TestParamSet_uint1 x8; + uint64_t x9; + uint64_t x10; + fiat_id_GostR3410_2001_TestParamSet_uint1 x11; + uint64_t x12; + fiat_id_GostR3410_2001_TestParamSet_uint1 x13; + uint64_t x14; + fiat_id_GostR3410_2001_TestParamSet_uint1 x15; + uint64_t x16; + fiat_id_GostR3410_2001_TestParamSet_uint1 x17; + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x1, &x2, 0x0, 0x0, + (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x3, &x4, x2, 0x0, + (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x5, &x6, x4, 0x0, + (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x7, &x8, x6, 0x0, + (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64( + &x9, x8, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x10, &x11, 0x0, x1, + (x9 & UINT16_C(0x431))); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x12, &x13, x11, x3, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x14, &x15, x13, x5, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64( + &x16, &x17, x15, x7, (x9 & UINT64_C(0x8000000000000000))); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_from_montgomery translates a field element out of the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^4) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_from_montgomery( + uint64_t out1[4], const uint64_t arg1[4]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + fiat_id_GostR3410_2001_TestParamSet_uint1 x9; + uint64_t x10; + fiat_id_GostR3410_2001_TestParamSet_uint1 x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint64_t x16; + uint64_t x17; + uint64_t x18; + fiat_id_GostR3410_2001_TestParamSet_uint1 x19; + uint64_t x20; + fiat_id_GostR3410_2001_TestParamSet_uint1 x21; + uint64_t x22; + fiat_id_GostR3410_2001_TestParamSet_uint1 x23; + uint64_t x24; + fiat_id_GostR3410_2001_TestParamSet_uint1 x25; + uint64_t x26; + fiat_id_GostR3410_2001_TestParamSet_uint1 x27; + uint64_t x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + fiat_id_GostR3410_2001_TestParamSet_uint1 x35; + uint64_t x36; + fiat_id_GostR3410_2001_TestParamSet_uint1 x37; + uint64_t x38; + fiat_id_GostR3410_2001_TestParamSet_uint1 x39; + uint64_t x40; + fiat_id_GostR3410_2001_TestParamSet_uint1 x41; + uint64_t x42; + fiat_id_GostR3410_2001_TestParamSet_uint1 x43; + uint64_t x44; + fiat_id_GostR3410_2001_TestParamSet_uint1 x45; + uint64_t x46; + fiat_id_GostR3410_2001_TestParamSet_uint1 x47; + uint64_t x48; + uint64_t x49; + uint64_t x50; + uint64_t x51; + uint64_t x52; + uint64_t x53; + uint64_t x54; + fiat_id_GostR3410_2001_TestParamSet_uint1 x55; + uint64_t x56; + fiat_id_GostR3410_2001_TestParamSet_uint1 x57; + uint64_t x58; + fiat_id_GostR3410_2001_TestParamSet_uint1 x59; + uint64_t x60; + fiat_id_GostR3410_2001_TestParamSet_uint1 x61; + uint64_t x62; + uint64_t x63; + fiat_id_GostR3410_2001_TestParamSet_uint1 x64; + uint64_t x65; + fiat_id_GostR3410_2001_TestParamSet_uint1 x66; + uint64_t x67; + fiat_id_GostR3410_2001_TestParamSet_uint1 x68; + uint64_t x69; + fiat_id_GostR3410_2001_TestParamSet_uint1 x70; + uint64_t x71; + fiat_id_GostR3410_2001_TestParamSet_uint1 x72; + uint64_t x73; + uint64_t x74; + uint64_t x75; + uint64_t x76; + x1 = (arg1[0]); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x2, &x3, x1, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x4, &x5, x2, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x6, &x7, x2, UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x8, &x9, 0x0, x1, x6); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x10, &x11, 0x0, + (x9 + x7), (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x12, &x13, x10, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x14, &x15, x12, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x16, &x17, x12, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x18, &x19, 0x0, x5, x14); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x20, &x21, 0x0, x10, + x16); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64( + &x22, &x23, 0x0, (((uint64_t)x21 + x11) + x17), (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x24, &x25, x23, x4, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x26, &x27, x25, x18, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x28, &x29, x22, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x30, &x31, x28, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x32, &x33, x28, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x34, &x35, 0x0, x22, + x32); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x36, &x37, x35, x24, + x33); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x38, &x39, x37, x26, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x40, &x41, x39, + (x27 + (x19 + x15)), x30); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x42, &x43, 0x0, x36, + (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x44, &x45, x43, x38, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x46, &x47, x45, x40, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x48, &x49, x42, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x50, &x51, x48, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x52, &x53, x48, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x54, &x55, 0x0, x42, + x52); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x56, &x57, x55, x44, + x53); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x58, &x59, x57, x46, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x60, &x61, x59, + (x47 + (x41 + x31)), x50); + x62 = (x61 + x51); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x63, &x64, 0x0, x56, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x65, &x66, x64, x58, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x67, &x68, x66, x60, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64( + &x69, &x70, x68, x62, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x71, &x72, x70, 0x0, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x73, x72, x63, x56); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x74, x72, x65, x58); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x75, x72, x67, x60); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x76, x72, x69, x62); + out1[0] = x73; + out1[1] = x74; + out1[2] = x75; + out1[3] = x76; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_to_montgomery translates a field element into the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = eval arg1 mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_to_montgomery( + uint64_t out1[4], const uint64_t arg1[4]) { + 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x12; + uint64_t x13; + fiat_id_GostR3410_2001_TestParamSet_uint1 x14; + uint64_t x15; + uint64_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + fiat_id_GostR3410_2001_TestParamSet_uint1 x22; + uint64_t x23; + uint64_t x24; + uint64_t x25; + fiat_id_GostR3410_2001_TestParamSet_uint1 x26; + uint64_t x27; + fiat_id_GostR3410_2001_TestParamSet_uint1 x28; + uint64_t x29; + fiat_id_GostR3410_2001_TestParamSet_uint1 x30; + uint64_t x31; + fiat_id_GostR3410_2001_TestParamSet_uint1 x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + uint64_t x36; + uint64_t x37; + uint64_t x38; + uint64_t x39; + fiat_id_GostR3410_2001_TestParamSet_uint1 x40; + uint64_t x41; + fiat_id_GostR3410_2001_TestParamSet_uint1 x42; + uint64_t x43; + fiat_id_GostR3410_2001_TestParamSet_uint1 x44; + uint64_t x45; + fiat_id_GostR3410_2001_TestParamSet_uint1 x46; + uint64_t x47; + uint64_t x48; + uint64_t x49; + fiat_id_GostR3410_2001_TestParamSet_uint1 x50; + uint64_t x51; + fiat_id_GostR3410_2001_TestParamSet_uint1 x52; + uint64_t x53; + fiat_id_GostR3410_2001_TestParamSet_uint1 x54; + uint64_t x55; + uint64_t x56; + uint64_t x57; + uint64_t x58; + uint64_t x59; + uint64_t x60; + uint64_t x61; + fiat_id_GostR3410_2001_TestParamSet_uint1 x62; + uint64_t x63; + fiat_id_GostR3410_2001_TestParamSet_uint1 x64; + uint64_t x65; + fiat_id_GostR3410_2001_TestParamSet_uint1 x66; + uint64_t x67; + fiat_id_GostR3410_2001_TestParamSet_uint1 x68; + uint64_t x69; + uint64_t x70; + fiat_id_GostR3410_2001_TestParamSet_uint1 x71; + uint64_t x72; + fiat_id_GostR3410_2001_TestParamSet_uint1 x73; + uint64_t x74; + fiat_id_GostR3410_2001_TestParamSet_uint1 x75; + uint64_t x76; + fiat_id_GostR3410_2001_TestParamSet_uint1 x77; + uint64_t x78; + fiat_id_GostR3410_2001_TestParamSet_uint1 x79; + uint64_t x80; + uint64_t x81; + uint64_t x82; + uint64_t x83; + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x1, &x2, (arg1[0]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x3, &x4, x1, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x5, &x6, x3, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x7, &x8, x3, UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x9, &x10, (arg1[1]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x11, &x12, 0x0, x1, x7); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x13, &x14, 0x0, + ((x12 + x2) + x8), x9); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x15, &x16, x13, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x17, &x18, x15, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x19, &x20, x15, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x21, &x22, 0x0, x6, x17); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x23, &x24, (arg1[2]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x25, &x26, 0x0, x13, + x19); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64( + &x27, &x28, 0x0, ((x26 + (x14 + x10)) + x20), x23); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x29, &x30, x28, x5, x24); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x31, &x32, x30, x21, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x33, &x34, x27, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x35, &x36, x33, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x37, &x38, x33, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x39, &x40, 0x0, x27, + x37); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x41, &x42, x40, x29, + x38); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x43, &x44, x42, x31, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x45, &x46, x44, + (x32 + (x22 + x18)), x35); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x47, &x48, (arg1[3]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x49, &x50, 0x0, x41, + x47); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x51, &x52, x50, x43, + x48); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x53, &x54, x52, x45, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x55, &x56, x49, + UINT64_C(0xdbf951d5883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x57, &x58, x55, + UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u64(&x59, &x60, x55, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x61, &x62, 0x0, x49, + x59); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x63, &x64, x62, x51, + x60); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x65, &x66, x64, x53, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u64(&x67, &x68, x66, + (x54 + (x46 + x36)), x57); + x69 = (x68 + x58); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x70, &x71, 0x0, x63, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x72, &x73, x71, x65, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x74, &x75, x73, x67, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64( + &x76, &x77, x75, x69, UINT64_C(0x8000000000000000)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u64(&x78, &x79, x77, 0x0, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x80, x79, x70, x63); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x81, x79, x72, x65); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x82, x79, x74, x67); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x83, x79, x76, x69); + out1[0] = x80; + out1[1] = x81; + out1[2] = x82; + out1[3] = x83; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_id_GostR3410_2001_TestParamSet_nonzero( + uint64_t *out1, const uint64_t arg1[4]) { + uint64_t x1; + x1 = ((arg1[0]) | ((arg1[1]) | ((arg1[2]) | ((arg1[3]) | (uint64_t)0x0)))); + *out1 = x1; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_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]] + * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_selectznz( + uint64_t out1[4], fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, + const uint64_t arg2[4], const uint64_t arg3[4]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x1, arg1, (arg2[0]), + (arg3[0])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x2, arg1, (arg2[1]), + (arg3[1])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x3, arg1, (arg2[2]), + (arg3[2])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u64(&x4, arg1, (arg2[3]), + (arg3[3])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31] + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * 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]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_to_bytes( + uint8_t out1[32], const uint64_t arg1[4]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint8_t x6; + uint64_t x7; + uint8_t x8; + uint64_t x9; + uint8_t x10; + uint64_t x11; + uint8_t x12; + uint64_t x13; + uint8_t x14; + uint64_t x15; + uint8_t x16; + uint8_t x17; + uint8_t x18; + uint8_t x19; + uint64_t x20; + uint8_t x21; + uint64_t x22; + uint8_t x23; + uint64_t x24; + uint8_t x25; + uint64_t x26; + uint8_t x27; + uint64_t x28; + uint8_t x29; + uint64_t x30; + uint8_t x31; + uint8_t x32; + uint8_t x33; + uint8_t x34; + uint64_t x35; + uint8_t x36; + uint64_t x37; + uint8_t x38; + uint64_t x39; + uint8_t x40; + uint64_t x41; + uint8_t x42; + uint64_t x43; + uint8_t x44; + uint64_t x45; + uint8_t x46; + uint8_t x47; + uint8_t x48; + uint8_t x49; + uint64_t x50; + uint8_t x51; + uint64_t x52; + uint8_t x53; + uint64_t x54; + uint8_t x55; + uint64_t x56; + uint8_t x57; + uint64_t x58; + uint8_t x59; + uint64_t x60; + uint8_t x61; + uint8_t x62; + uint8_t x63; + x1 = (arg1[3]); + x2 = (arg1[2]); + x3 = (arg1[1]); + x4 = (arg1[0]); + x5 = (x4 >> 8); + x6 = (uint8_t)(x4 & UINT8_C(0xff)); + x7 = (x5 >> 8); + x8 = (uint8_t)(x5 & UINT8_C(0xff)); + x9 = (x7 >> 8); + x10 = (uint8_t)(x7 & UINT8_C(0xff)); + x11 = (x9 >> 8); + x12 = (uint8_t)(x9 & UINT8_C(0xff)); + x13 = (x11 >> 8); + x14 = (uint8_t)(x11 & UINT8_C(0xff)); + x15 = (x13 >> 8); + x16 = (uint8_t)(x13 & UINT8_C(0xff)); + x17 = (uint8_t)(x15 >> 8); + x18 = (uint8_t)(x15 & UINT8_C(0xff)); + x19 = (uint8_t)(x17 & UINT8_C(0xff)); + x20 = (x3 >> 8); + x21 = (uint8_t)(x3 & UINT8_C(0xff)); + x22 = (x20 >> 8); + x23 = (uint8_t)(x20 & UINT8_C(0xff)); + x24 = (x22 >> 8); + x25 = (uint8_t)(x22 & UINT8_C(0xff)); + x26 = (x24 >> 8); + x27 = (uint8_t)(x24 & UINT8_C(0xff)); + x28 = (x26 >> 8); + x29 = (uint8_t)(x26 & UINT8_C(0xff)); + x30 = (x28 >> 8); + x31 = (uint8_t)(x28 & UINT8_C(0xff)); + x32 = (uint8_t)(x30 >> 8); + x33 = (uint8_t)(x30 & UINT8_C(0xff)); + x34 = (uint8_t)(x32 & UINT8_C(0xff)); + x35 = (x2 >> 8); + x36 = (uint8_t)(x2 & UINT8_C(0xff)); + x37 = (x35 >> 8); + x38 = (uint8_t)(x35 & UINT8_C(0xff)); + x39 = (x37 >> 8); + x40 = (uint8_t)(x37 & UINT8_C(0xff)); + x41 = (x39 >> 8); + x42 = (uint8_t)(x39 & UINT8_C(0xff)); + x43 = (x41 >> 8); + x44 = (uint8_t)(x41 & UINT8_C(0xff)); + x45 = (x43 >> 8); + x46 = (uint8_t)(x43 & UINT8_C(0xff)); + x47 = (uint8_t)(x45 >> 8); + x48 = (uint8_t)(x45 & UINT8_C(0xff)); + x49 = (uint8_t)(x47 & UINT8_C(0xff)); + x50 = (x1 >> 8); + x51 = (uint8_t)(x1 & UINT8_C(0xff)); + x52 = (x50 >> 8); + x53 = (uint8_t)(x50 & UINT8_C(0xff)); + x54 = (x52 >> 8); + x55 = (uint8_t)(x52 & UINT8_C(0xff)); + x56 = (x54 >> 8); + x57 = (uint8_t)(x54 & UINT8_C(0xff)); + x58 = (x56 >> 8); + x59 = (uint8_t)(x56 & UINT8_C(0xff)); + x60 = (x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (uint8_t)(x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + out1[0] = x6; + out1[1] = x8; + out1[2] = x10; + out1[3] = x12; + out1[4] = x14; + out1[5] = x16; + out1[6] = x18; + out1[7] = x19; + out1[8] = x21; + out1[9] = x23; + out1[10] = x25; + out1[11] = x27; + out1[12] = x29; + out1[13] = x31; + out1[14] = x33; + out1[15] = x34; + out1[16] = x36; + out1[17] = x38; + out1[18] = x40; + out1[19] = x42; + out1[20] = x44; + out1[21] = x46; + out1[22] = x48; + out1[23] = x49; + out1[24] = x51; + out1[25] = x53; + out1[26] = x55; + out1[27] = x57; + out1[28] = x59; + out1[29] = x61; + out1[30] = x63; + out1[31] = x62; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order. + * Preconditions: + * 0 ≤ bytes_eval arg1 < m + * Postconditions: + * eval out1 mod m = bytes_eval arg1 mod m + * 0 ≤ eval out1 < 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]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_from_bytes( + uint64_t out1[4], const uint8_t arg1[32]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint8_t x8; + uint64_t x9; + uint64_t x10; + uint64_t x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint8_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + uint64_t x23; + uint8_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; + x1 = ((uint64_t)(arg1[31]) << 56); + x2 = ((uint64_t)(arg1[30]) << 48); + x3 = ((uint64_t)(arg1[29]) << 40); + x4 = ((uint64_t)(arg1[28]) << 32); + x5 = ((uint64_t)(arg1[27]) << 24); + x6 = ((uint64_t)(arg1[26]) << 16); + x7 = ((uint64_t)(arg1[25]) << 8); + x8 = (arg1[24]); + x9 = ((uint64_t)(arg1[23]) << 56); + x10 = ((uint64_t)(arg1[22]) << 48); + x11 = ((uint64_t)(arg1[21]) << 40); + x12 = ((uint64_t)(arg1[20]) << 32); + x13 = ((uint64_t)(arg1[19]) << 24); + x14 = ((uint64_t)(arg1[18]) << 16); + x15 = ((uint64_t)(arg1[17]) << 8); + x16 = (arg1[16]); + x17 = ((uint64_t)(arg1[15]) << 56); + x18 = ((uint64_t)(arg1[14]) << 48); + x19 = ((uint64_t)(arg1[13]) << 40); + x20 = ((uint64_t)(arg1[12]) << 32); + x21 = ((uint64_t)(arg1[11]) << 24); + x22 = ((uint64_t)(arg1[10]) << 16); + x23 = ((uint64_t)(arg1[9]) << 8); + x24 = (arg1[8]); + x25 = ((uint64_t)(arg1[7]) << 56); + x26 = ((uint64_t)(arg1[6]) << 48); + x27 = ((uint64_t)(arg1[5]) << 40); + x28 = ((uint64_t)(arg1[4]) << 32); + x29 = ((uint64_t)(arg1[3]) << 24); + x30 = ((uint64_t)(arg1[2]) << 16); + x31 = ((uint64_t)(arg1[1]) << 8); + x32 = (arg1[0]); + x33 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + (x26 + x25))))))); + x34 = (x33 & UINT64_C(0xffffffffffffffff)); + x35 = (x8 + (x7 + (x6 + (x5 + (x4 + (x3 + (x2 + x1))))))); + x36 = (x16 + (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9))))))); + x37 = (x24 + (x23 + (x22 + (x21 + (x20 + (x19 + (x18 + x17))))))); + x38 = (x37 & UINT64_C(0xffffffffffffffff)); + x39 = (x36 & UINT64_C(0xffffffffffffffff)); + out1[0] = x34; + out1[1] = x38; + out1[2] = x39; + out1[3] = x35; +} + +/* 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_GostR3410_2001_TestParamSet/fe_inv.op3 + * sliding window w=5 + */ +static void fiat_id_GostR3410_2001_TestParamSet_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t15; + + fiat_id_GostR3410_2001_TestParamSet_square(acc, t1); + fiat_id_GostR3410_2001_TestParamSet_mul(t15, t1, acc); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_TestParamSet_mul(t15, t15, acc); + fiat_id_GostR3410_2001_TestParamSet_square(acc, t1); + for (i = 0; i < 244; i++) + fiat_id_GostR3410_2001_TestParamSet_square(acc, acc); + fiat_id_GostR3410_2001_TestParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_TestParamSet_square(acc, acc); + fiat_id_GostR3410_2001_TestParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_TestParamSet_square(acc, acc); + fiat_id_GostR3410_2001_TestParamSet_mul(output, acc, t15); +} + +/* curve coefficient constants */ + +static const limb_t const_one[4] = { + UINT64_C(0xFFFFFFFFFFFFFBCF), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)}; + +static const limb_t const_a[4] = { + UINT64_C(0xFFFFFFFFFFFFC983), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)}; + +static const limb_t const_b3[4] = { + UINT64_C(0x81733EE96AEAB71C), UINT64_C(0x00CD3D1CFC4E6FC7), + UINT64_C(0x60AB503A75853407), UINT64_C(0x0A9EC8AE4556810A)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[27][16] = { + { + {{UINT64_C(0xFFFFFFFFFFFFF36D), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)}, + {UINT64_C(0x9AF45A5A471125F5), UINT64_C(0x7CE5090AF69BF9AE), + UINT64_C(0x67617A63E4B6DDE6), UINT64_C(0x03F66B354AA3DAA4)}}, + {{UINT64_C(0xB39BDC16149B5D15), UINT64_C(0x87CE978A7309454F), + UINT64_C(0xD22F32EF315A7A56), UINT64_C(0x4C7DE232B69A6B57)}, + {UINT64_C(0x9E2DAF6D466DC64D), UINT64_C(0x758C27B14B1C8A55), + UINT64_C(0x74A0CB23BD647F1A), UINT64_C(0x27E748682C2F4C70)}}, + {{UINT64_C(0xF2D8F32E55A62594), UINT64_C(0x8323D57036BC547A), + UINT64_C(0x497679EB98D4B25A), UINT64_C(0x061167F2B87E0534)}, + {UINT64_C(0xE1FFFDCE223E4DF8), UINT64_C(0x7C83AE78DCD891E9), + UINT64_C(0x743985863C1B95D0), UINT64_C(0x11D7320574B3F5AB)}}, + {{UINT64_C(0x34B9C048ACB97F7C), UINT64_C(0x8232E73CE3B9BCC6), + UINT64_C(0x81F4B63FDA2DB71D), UINT64_C(0x4EEE5393A2DF4C84)}, + {UINT64_C(0xCA6E63AEAC469C69), UINT64_C(0x27BC807C428E4F01), + UINT64_C(0x4A2C23BA5F4EC124), UINT64_C(0x74847CFCAAE2668B)}}, + {{UINT64_C(0x4435585F6716AF4E), UINT64_C(0xB872D8B71CDB965F), + UINT64_C(0x662F1962746FFAD0), UINT64_C(0x52761A24DB5D0187)}, + {UINT64_C(0xF6A09922A57E0E3D), UINT64_C(0x86C69342A9C12B63), + UINT64_C(0x91FF20B65AF190C5), UINT64_C(0x10DB7A2A4EEEE1AE)}}, + {{UINT64_C(0xBB464A5374628B90), UINT64_C(0x6E7A1227057A4F25), + UINT64_C(0x4C309D690B0FA41F), UINT64_C(0x7548260777FE7B93)}, + {UINT64_C(0xF2583EC70B612421), UINT64_C(0xFF2CFC835E2B15ED), + UINT64_C(0x1E97A7DB8CABC5CF), UINT64_C(0x1EC08FAA925C149F)}}, + {{UINT64_C(0xBA0170E30E9FCBA9), UINT64_C(0x8976DF7C70D9939B), + UINT64_C(0xEAE6E74B21AF14DD), UINT64_C(0x09F098680D0861F9)}, + {UINT64_C(0x4F7FE26E21A781FF), UINT64_C(0x1725B8D0D73DCEF7), + UINT64_C(0x9DA632177E743498), UINT64_C(0x0F51D42C1B828B99)}}, + {{UINT64_C(0xBABB076B9AFE09BD), UINT64_C(0x4AC8922317C4050D), + UINT64_C(0xCA3EA6E3DA3E57E8), UINT64_C(0x20AAA384A33242C0)}, + {UINT64_C(0x6D3A1F2DEF929BF5), UINT64_C(0xB34E2605E751A62D), + UINT64_C(0xE1AC629FB8CF1F99), UINT64_C(0x7152D4E3F0BBA01A)}}, + {{UINT64_C(0xA97A6CE3943E5B8E), UINT64_C(0x1C0F6C7F2D053A9D), + UINT64_C(0x9D4A91DE64457DE4), UINT64_C(0x1E19EA8FC6140057)}, + {UINT64_C(0xD4766CB6500995C8), UINT64_C(0xA019D41DE70CD7EE), + UINT64_C(0xBA1828AA7AB0A162), UINT64_C(0x0CACA0630B7A4E93)}}, + {{UINT64_C(0x1E68315CA1B3FE03), UINT64_C(0x21FB277E1AAB6B20), + UINT64_C(0x210305D76A90FB22), UINT64_C(0x4C3D3EEA2E51B9BC)}, + {UINT64_C(0xC5662C6D89C3A2E8), UINT64_C(0x66EA48181712BF9B), + UINT64_C(0x417F8F042254FBAB), UINT64_C(0x2F57DF29B057EEC1)}}, + {{UINT64_C(0xF6975C9F6509AE4F), UINT64_C(0x58300438DC89C220), + UINT64_C(0xE81DA879907FF785), UINT64_C(0x68D600E30910ED2F)}, + {UINT64_C(0xFBB25113B43BF686), UINT64_C(0x8B391E3F50A64FAE), + UINT64_C(0x8C1190D23112B7ED), UINT64_C(0x617BCD41CCB4CA50)}}, + {{UINT64_C(0x75036E69DD780ACA), UINT64_C(0xC90A01DE6FBCD996), + UINT64_C(0x75E1A8E80C851CEF), UINT64_C(0x7225D38AF71BDCC6)}, + {UINT64_C(0x74AE6935868B78D2), UINT64_C(0xE70570F31CDB5A1E), + UINT64_C(0x3E700C48BEBD2FA4), UINT64_C(0x3E483638325D3214)}}, + {{UINT64_C(0x9F272CD5C0E6D8AD), UINT64_C(0x9E29687CE09743A2), + UINT64_C(0xBE0E0D5993CD64B3), UINT64_C(0x5D57A75D504B58F0)}, + {UINT64_C(0x81A1A6E35D44B092), UINT64_C(0x38AD0169310D7868), + UINT64_C(0xC8D3C9A6CC297B73), UINT64_C(0x34D98A19908E0814)}}, + {{UINT64_C(0xFFB946ADE5A57E1F), UINT64_C(0xF7EA0AA2191B6C5F), + UINT64_C(0x52D070588DF529C1), UINT64_C(0x06B7BDE52AFDA727)}, + {UINT64_C(0x651E6DC990658555), UINT64_C(0x8F910D891FC416CE), + UINT64_C(0x0BA4D84ECBF086D5), UINT64_C(0x73DA158C0C4A4B4A)}}, + {{UINT64_C(0xE22420A6521DB62C), UINT64_C(0x8EBC1A21BC90EB6F), + UINT64_C(0xE1529AACE50F6EB4), UINT64_C(0x4025BF278BE235DB)}, + {UINT64_C(0x406077109FFE2B82), UINT64_C(0x7A6BB75B696B4634), + UINT64_C(0x0CEF27A92B2F25D3), UINT64_C(0x6C9CFFD7CA0B7112)}}, + {{UINT64_C(0x12B39FF0EDA5C43B), UINT64_C(0x2E1FC66C54E0FE3F), + UINT64_C(0xFB2DEA80248A9167), UINT64_C(0x11BCDA103B2BB322)}, + {UINT64_C(0xFDDF6E8416D2C928), UINT64_C(0x99DDF6A136E887F4), + UINT64_C(0x1E56D2F3920092D6), UINT64_C(0x67433BF42D77AE5A)}}, + }, + { + {{UINT64_C(0x6C204DDC321BFA62), UINT64_C(0xA96E42B82F138A80), + UINT64_C(0x4C98E986E3EC1A7D), UINT64_C(0x223C8BC4136CADC4)}, + {UINT64_C(0xFA9F15D3BA3CE54A), UINT64_C(0xA103B9D719963D88), + UINT64_C(0x1ED233542F811A21), UINT64_C(0x64D6B14C65A4E833)}}, + {{UINT64_C(0x2485175CCFBD1039), UINT64_C(0xC4DAE65B7C92D8EC), + UINT64_C(0x6FC70F541859FD47), UINT64_C(0x6D54344433E8305C)}, + {UINT64_C(0x1A65FEC2944DDA07), UINT64_C(0x7BCF8391EF375B21), + UINT64_C(0xDDCFC356BE4CD8D6), UINT64_C(0x4BF93B9E13850042)}}, + {{UINT64_C(0xBDF7A56C88B7F950), UINT64_C(0x3A60E5FC81B8590E), + UINT64_C(0x475B94D16F6E6807), UINT64_C(0x2F1B9F062F0D49A8)}, + {UINT64_C(0x3C36DCF32E6A01D3), UINT64_C(0x807E1D5B30444003), + UINT64_C(0xE3768486FECF5768), UINT64_C(0x73C4D0CFEF12B5CC)}}, + {{UINT64_C(0x9D76477CF4C6FF93), UINT64_C(0x03F16687C5A1A495), + UINT64_C(0x5071DA3DB41748B2), UINT64_C(0x0F3A3784971D6A7D)}, + {UINT64_C(0x0B9A5AD62785A782), UINT64_C(0x957E72A009FF09F9), + UINT64_C(0x3072C1DCAE3CF5F4), UINT64_C(0x63D463ACCD9CFD7E)}}, + {{UINT64_C(0xDA0DEE0BC77B516C), UINT64_C(0x446D7199E6AA0E1F), + UINT64_C(0xCC0D1590BFFA705C), UINT64_C(0x6A6FC81CC35B59BA)}, + {UINT64_C(0x39DF210E593E3EB9), UINT64_C(0x17F331CED0DCC01F), + UINT64_C(0x02E0E5EBBD176C5B), UINT64_C(0x68946CCC8A2D6290)}}, + {{UINT64_C(0x8D1400D609ECFEF2), UINT64_C(0x57D5F91BE1E76A98), + UINT64_C(0x5CF76130A12DFF8D), UINT64_C(0x5C36192261002939)}, + {UINT64_C(0x8D45C8C1FB0FE974), UINT64_C(0x0C97725EF942ED70), + UINT64_C(0xB1C6649873C5AA42), UINT64_C(0x4A121FC47E203187)}}, + {{UINT64_C(0x58430EE3FCEDA76C), UINT64_C(0x3496699AF5C88D62), + UINT64_C(0x1C3FC81114273E7E), UINT64_C(0x3E38E9FC1D6D67DA)}, + {UINT64_C(0xBB683EA4AB685B3B), UINT64_C(0xB63F72B1B0904BB3), + UINT64_C(0x5DFA23C547A75297), UINT64_C(0x09E80AA038B59560)}}, + {{UINT64_C(0x7D8325C67F4D22FC), UINT64_C(0xBFFB01B18C2FA282), + UINT64_C(0x01A037DC4A89BE98), UINT64_C(0x092F652584EA8C8A)}, + {UINT64_C(0x873D33DAC52FD518), UINT64_C(0x0A245B1544AFDD41), + UINT64_C(0x7899373798FA7FF5), UINT64_C(0x1BB48AD221D29087)}}, + {{UINT64_C(0x00C97A991A59313C), UINT64_C(0xBD4F29EE5CF9A6FF), + UINT64_C(0xEA59D87AD839B62B), UINT64_C(0x16F18F4897CAB63C)}, + {UINT64_C(0xB339789A6F6C292F), UINT64_C(0xEC52E644D005ABB2), + UINT64_C(0xEEAC93C9AE24DA46), UINT64_C(0x0ECB9957E5C43B4F)}}, + {{UINT64_C(0xD91B220220561AF7), UINT64_C(0xECA260DD55F2CFB8), + UINT64_C(0xF03A8C1D17B91CCF), UINT64_C(0x55A0491F64B35D9A)}, + {UINT64_C(0x0A97E5CC1A2F8F39), UINT64_C(0x02C187D123B1D80B), + UINT64_C(0xA9C13D26DB9FBA1A), UINT64_C(0x7CCDDBACF8051F0D)}}, + {{UINT64_C(0x05CA8EA5ED0E9DB8), UINT64_C(0xE888079F53A8EA3F), + UINT64_C(0x6DDBC40D9209BFA2), UINT64_C(0x068E5BA980DCEAEA)}, + {UINT64_C(0xDB69D133B19D824B), UINT64_C(0x65154FB6E6A3A462), + UINT64_C(0x9FCF733D020B2AC7), UINT64_C(0x15178DDEE1329315)}}, + {{UINT64_C(0x76F78865877EE476), UINT64_C(0x5824EACC12B471BA), + UINT64_C(0x71BDFADFBBB640A8), UINT64_C(0x5181B08F9A631D09)}, + {UINT64_C(0x2913CCA5FFE978E8), UINT64_C(0x9CEF3612AEB89AA6), + UINT64_C(0x93BB373EE02AD6DC), UINT64_C(0x5D7984F004144769)}}, + {{UINT64_C(0x3219DB074F98D2C3), UINT64_C(0xE3EF888FBD40ACCC), + UINT64_C(0x07A30E3A31124C73), UINT64_C(0x5D9C820BB070C53F)}, + {UINT64_C(0x94D41768DA0661AB), UINT64_C(0x27FC266121FF87EB), + UINT64_C(0xB8DCBC7FFF17A977), UINT64_C(0x71F75FF9392EB13D)}}, + {{UINT64_C(0xC5CED56C9AD71AB0), UINT64_C(0xE744EAB039D6C9F1), + UINT64_C(0x6E49B00B839BD904), UINT64_C(0x0C0EDE2CD7003054)}, + {UINT64_C(0x792C3F801A6A1BB7), UINT64_C(0x6E5093B14B2C7885), + UINT64_C(0x2887320913EA65F7), UINT64_C(0x085A2697F381C851)}}, + {{UINT64_C(0x84FC6B9DDA60A255), UINT64_C(0x12397EED4B495BC6), + UINT64_C(0x4881DF6B71A5AA87), UINT64_C(0x57BB32599572CFE2)}, + {UINT64_C(0x306777593A10A65F), UINT64_C(0x670B82ECDB1758DD), + UINT64_C(0xD84F3E8FD57B513E), UINT64_C(0x617A512A89088E78)}}, + {{UINT64_C(0x83971322AE3D7707), UINT64_C(0x66563CDE6D34D0B4), + UINT64_C(0x95342D9BC13309ED), UINT64_C(0x62C2B1B6082A5887)}, + {UINT64_C(0xD94A8712C3C27158), UINT64_C(0xDE2C9C9DA844BF60), + UINT64_C(0xDE897386CE3E4F3C), UINT64_C(0x2C22A82E6ACEBDF1)}}, + }, + { + {{UINT64_C(0x2755028A0604E200), UINT64_C(0xADE23A7D44189101), + UINT64_C(0xA6E418F4F0B7F9B7), UINT64_C(0x036F5503212EDC2A)}, + {UINT64_C(0xE069D06A3F5E0456), UINT64_C(0x2FAFF7C80F37F2D8), + UINT64_C(0xFF08E8797F5EDE53), UINT64_C(0x7F97725D797E0427)}}, + {{UINT64_C(0xE44E39C1B32E5B1B), UINT64_C(0x25CD4614AD3EC706), + UINT64_C(0x2E97B090E382C5D2), UINT64_C(0x3E1A1F6BB00D79F2)}, + {UINT64_C(0x27573C4EC2375837), UINT64_C(0xAD53D2C86C8D5CCD), + UINT64_C(0x94EE5460FC09725A), UINT64_C(0x6E59250602DD0DF4)}}, + {{UINT64_C(0x6CFFA4BF3D0C7AC4), UINT64_C(0x663B121869ED4317), + UINT64_C(0x933094F6C79AD5C1), UINT64_C(0x569F37EDFFC54767)}, + {UINT64_C(0x954EEE0C1F338782), UINT64_C(0x5BE69673A46CA276), + UINT64_C(0x77BA000920CB26DC), UINT64_C(0x2211CAC3029316AE)}}, + {{UINT64_C(0xC8DEF3CB184EBD7C), UINT64_C(0x393370506A4DB0A0), + UINT64_C(0x6FF7993A0BE1D82C), UINT64_C(0x01D7674AFC9252C0)}, + {UINT64_C(0xB10BA727F62D9268), UINT64_C(0x6E2338D8817B687B), + UINT64_C(0x266443F2E47405F1), UINT64_C(0x6A1BD9CE6872B879)}}, + {{UINT64_C(0x192137652B2BD346), UINT64_C(0x962CA22CE2ACFB8E), + UINT64_C(0x518CF45D62FECDE1), UINT64_C(0x529AE629A13D9E8D)}, + {UINT64_C(0xAF796DB0BB69D5E3), UINT64_C(0xA064209DD4E596B7), + UINT64_C(0x9F3DFD4A47942C73), UINT64_C(0x7FAB6C6D7810D5EC)}}, + {{UINT64_C(0x55D1525066A3B287), UINT64_C(0x1ECC6A20EEFDDC75), + UINT64_C(0xF683FA6026DE8C01), UINT64_C(0x4F5DE2A69FBA658C)}, + {UINT64_C(0xE748D78AC66D82F4), UINT64_C(0x2BA525EF3B24C76B), + UINT64_C(0x5A9539E630EE69CE), UINT64_C(0x2DA4C4C2B7861B2D)}}, + {{UINT64_C(0x9D1E982D820743E6), UINT64_C(0x705D9237AB0CC42D), + UINT64_C(0xBDD0166347C4E7D7), UINT64_C(0x3D48EE78F8E69896)}, + {UINT64_C(0x7A822BCD41132782), UINT64_C(0xBD41BEFAEE46F715), + UINT64_C(0x8E5C3B5FD0B2F4B0), UINT64_C(0x690A53D45E47ED55)}}, + {{UINT64_C(0x390536C165A40E44), UINT64_C(0x4B4D79701C92235C), + UINT64_C(0xCAC270848B7389E4), UINT64_C(0x7B5B23B219041D01)}, + {UINT64_C(0x7C18B9733B5FD5BA), UINT64_C(0xFD14865D84B72217), + UINT64_C(0x5592547E267EDE4C), UINT64_C(0x22DB62E58B369753)}}, + {{UINT64_C(0x06083D33DDF15BDD), UINT64_C(0x5766555F361925F5), + UINT64_C(0xECC0F110B7ACDEA7), UINT64_C(0x3E3F1B270A3453B5)}, + {UINT64_C(0x5A8B7DF96F7B980D), UINT64_C(0xEBA90E39B44756AC), + UINT64_C(0x954D7ECDAC9A7DB2), UINT64_C(0x43F688D328EA7151)}}, + {{UINT64_C(0x51F645694638EFAE), UINT64_C(0x5840A5DB3D28BF3C), + UINT64_C(0xDD486261134D3E8F), UINT64_C(0x09F17E2C7B6B466B)}, + {UINT64_C(0x30D3546378ED7016), UINT64_C(0x342E9701B86D8508), + UINT64_C(0xA3FF656542B19533), UINT64_C(0x4405F02C061A4A81)}}, + {{UINT64_C(0x15C921C03D3AAF1E), UINT64_C(0x2DD720C77D297559), + UINT64_C(0x93A07904CB80E3B2), UINT64_C(0x427C610B6B1EDB93)}, + {UINT64_C(0xD2CE818FF61E2F41), UINT64_C(0x1DA534218252FB3C), + UINT64_C(0x37A4A997ED07538F), UINT64_C(0x48A928BF962454F2)}}, + {{UINT64_C(0x65091E4D7A420273), UINT64_C(0x6AF382AFE54C0B47), + UINT64_C(0x150DAB088047A423), UINT64_C(0x22C3740A45BD197C)}, + {UINT64_C(0x64429AA0E07C3468), UINT64_C(0xC506B8C97B37FE10), + UINT64_C(0x30E2FE783CC5062C), UINT64_C(0x2F3B5A5FA9242F2D)}}, + {{UINT64_C(0x2619A3B25A40BCA1), UINT64_C(0xD012DF23118C2FEA), + UINT64_C(0x2868C8B7B73FE15C), UINT64_C(0x45A9CC5AEB10B475)}, + {UINT64_C(0x7111AB75069050AD), UINT64_C(0x0665182BEC2398A9), + UINT64_C(0xD9A5126E9B86A240), UINT64_C(0x601CF0E040E2AED6)}}, + {{UINT64_C(0xE74C9DCDF48C8655), UINT64_C(0xEE703CA8900E89D5), + UINT64_C(0x6C2DFF8B5390F052), UINT64_C(0x08588E891316CC4C)}, + {UINT64_C(0x0F2CC83A47E80C87), UINT64_C(0x23DE34CFD87824E4), + UINT64_C(0xC530AF41541FE8F9), UINT64_C(0x0BF01DC0D142F1C0)}}, + {{UINT64_C(0x210B0B1E886C0C4A), UINT64_C(0x66369DF19C56A126), + UINT64_C(0x5D79AE81EAC22A5E), UINT64_C(0x4E6C67D4D16F7DB6)}, + {UINT64_C(0x274572F6247CDE60), UINT64_C(0xF3C92AC754E8454B), + UINT64_C(0x784EC1A1F08C32D1), UINT64_C(0x222716D8E1FE9C4E)}}, + {{UINT64_C(0xAF6AEF5D3FB1DB1E), UINT64_C(0xB8B55842C4C2A4D8), + UINT64_C(0x258A2F44CA5AB578), UINT64_C(0x558A803F7D8B2D70)}, + {UINT64_C(0x9A7345C37E0247A3), UINT64_C(0x4E5A6904B4D920B1), + UINT64_C(0xCF7FAA4176BCBBE1), UINT64_C(0x66CF993FEE112271)}}, + }, + { + {{UINT64_C(0xDE7D208F84D2C56B), UINT64_C(0xD1C77403DDA20F33), + UINT64_C(0xB73FDC099A6F337A), UINT64_C(0x1B2A380740CD2CBD)}, + {UINT64_C(0xB642FA2C65988D73), UINT64_C(0x117E75BC059DAB8E), + UINT64_C(0xC7E2E935D6B279AA), UINT64_C(0x5EEB9654EEA2A445)}}, + {{UINT64_C(0xA84747C0A59D7A2A), UINT64_C(0x4478AD4A1004C5B8), + UINT64_C(0xF55C2B1BA22DE791), UINT64_C(0x2FF6097D23F8F89F)}, + {UINT64_C(0xD079C875E117BC40), UINT64_C(0x14AEA36003CB43DD), + UINT64_C(0x8C730D890A20D653), UINT64_C(0x6956274A02FD02D8)}}, + {{UINT64_C(0x9F5D0E9DD46293CF), UINT64_C(0x53748DD4F0D93AB7), + UINT64_C(0x6F81339FB9C37CF0), UINT64_C(0x00B8677AF4B041FC)}, + {UINT64_C(0xF76E0FFEB5A6FE97), UINT64_C(0x6D3C71F5F7D198A2), + UINT64_C(0xF91E840811420372), UINT64_C(0x36F9F35470036AED)}}, + {{UINT64_C(0x503AF4F25D446956), UINT64_C(0xCA08C5372DC9777C), + UINT64_C(0xDB4BA888E1308D3A), UINT64_C(0x01EA28EA01DB98CB)}, + {UINT64_C(0x27CC52A9A7DF5FE0), UINT64_C(0x7DA5186B7DE31E0A), + UINT64_C(0x63E32889F136FAD5), UINT64_C(0x1BB010A8A363AF23)}}, + {{UINT64_C(0x65828B54C0FE56C9), UINT64_C(0x7322CD514ED3935A), + UINT64_C(0x42F068F437B4A727), UINT64_C(0x7AA9F9F0B4C02BE4)}, + {UINT64_C(0xBB77851ADEBB2DD4), UINT64_C(0x7757D5F6D105B81F), + UINT64_C(0x7805369C52FA1512), UINT64_C(0x4CBC43AE38B6976A)}}, + {{UINT64_C(0x24FE8ABD4096725B), UINT64_C(0xC3FAC73A3895D1E2), + UINT64_C(0xBCAF7757006A2360), UINT64_C(0x75AE96ADC03EBB33)}, + {UINT64_C(0x310744780BD1FB6F), UINT64_C(0x729E8E6AEA386CBE), + UINT64_C(0xA8BBCC0B4845AAEC), UINT64_C(0x1A0A2D19E6582656)}}, + {{UINT64_C(0x332BC9BD69BD55F7), UINT64_C(0x93D987E2EFB6F780), + UINT64_C(0xE57DE09614381F4D), UINT64_C(0x7BDF4217FF01C4D9)}, + {UINT64_C(0x2A07C4AB1956BF02), UINT64_C(0x7C7B3684553823D9), + UINT64_C(0x8F750E8ED40F600C), UINT64_C(0x63F253E99693A3C3)}}, + {{UINT64_C(0x250ED8BFC62CE42B), UINT64_C(0xE8A1A295E70674E1), + UINT64_C(0x05ED093D163A92F1), UINT64_C(0x515FF44B628969A0)}, + {UINT64_C(0xF617DF0341CE3AF8), UINT64_C(0xCADE131AF9E60202), + UINT64_C(0xFE83C379363B87E9), UINT64_C(0x7196A80B493EF65F)}}, + {{UINT64_C(0x4B176FE6D7A2047B), UINT64_C(0x6981D18241DCA514), + UINT64_C(0xDDC7EE8EDC74AC2E), UINT64_C(0x3A95A20385CC07D1)}, + {UINT64_C(0x8D4BA2D8841E3200), UINT64_C(0x837DDD9B5F654197), + UINT64_C(0x388D358EFBFE4D06), UINT64_C(0x562DE2F261143A85)}}, + {{UINT64_C(0x3BA1F6E5CFACB903), UINT64_C(0xB5BBA41FBD97A3A2), + UINT64_C(0xB86F117FCFCF2547), UINT64_C(0x506428593D9A13DB)}, + {UINT64_C(0xC15C82AE7B5F2A8F), UINT64_C(0x47E772DDEF89351E), + UINT64_C(0x78C53901CAAC4CC7), UINT64_C(0x6B0F5D3068D72131)}}, + {{UINT64_C(0x47E17734A0B407E6), UINT64_C(0x29E0683034949A81), + UINT64_C(0x63D83340CB1AC772), UINT64_C(0x178A6DD6EB84F909)}, + {UINT64_C(0xA9E948263C27D7BA), UINT64_C(0xC86AF96DDB027A4C), + UINT64_C(0xE7D04E3456D5DF86), UINT64_C(0x7212EAC22E8D0EE3)}}, + {{UINT64_C(0xE7E5AA648A75F66B), UINT64_C(0x7E86B6AA8CFD9597), + UINT64_C(0x1B7DDE0C834C0271), UINT64_C(0x397EAF2AD4AD306F)}, + {UINT64_C(0x0A3579061657E32B), UINT64_C(0xAAEB2DCF4957B3AF), + UINT64_C(0x1C0CBD0269D3CEE9), UINT64_C(0x7434EC325A6E7D53)}}, + {{UINT64_C(0xEB5878F785559E86), UINT64_C(0xB9555F704A09C168), + UINT64_C(0xBFFAC5DB80501134), UINT64_C(0x4CDBF53A05B53160)}, + {UINT64_C(0x1413BA295F90344B), UINT64_C(0xC6A9D1EDD0DD0CFD), + UINT64_C(0x8C56AA29A0C31B73), UINT64_C(0x1C9B0B61F4E58E08)}}, + {{UINT64_C(0xBF8D22370E2F595A), UINT64_C(0x7A646816CBA13CD8), + UINT64_C(0xBD2E93A15CD728B6), UINT64_C(0x30FDF85C07CF9009)}, + {UINT64_C(0x3496D94906122B98), UINT64_C(0xE63EC7415A80B3AF), + UINT64_C(0xA2A39CF782838A44), UINT64_C(0x4A064F99C015E1D4)}}, + {{UINT64_C(0x9CCDF95B456CB242), UINT64_C(0xDA1CB24E6F4517DC), + UINT64_C(0x60450E0F931A1115), UINT64_C(0x6780D774B5680A8D)}, + {UINT64_C(0xAFE48DCD1FDA4243), UINT64_C(0x6BDD541CAE9733C7), + UINT64_C(0xCBBCC69CD79D1D52), UINT64_C(0x334F4F671A513B3E)}}, + {{UINT64_C(0xCE7712C4DF49E1A0), UINT64_C(0xB5444862E0B96135), + UINT64_C(0x10564C4BF050D010), UINT64_C(0x0531AEC8FEBEFCC8)}, + {UINT64_C(0xD45B4BE770DF6D29), UINT64_C(0x1ACC2D706829054E), + UINT64_C(0x9744CDE154E56E05), UINT64_C(0x3C5DE93E6EE02696)}}, + }, + { + {{UINT64_C(0xF43A2B993951B674), UINT64_C(0xE82789E85E72FC98), + UINT64_C(0x2AD4843686992601), UINT64_C(0x3FDEB17201A2B65A)}, + {UINT64_C(0x926B48393666322B), UINT64_C(0x68847D5C44B3FDB7), + UINT64_C(0xD06C450DF2F5E247), UINT64_C(0x0CEC0646BBA7C892)}}, + {{UINT64_C(0x76446D2661F9C9DA), UINT64_C(0xEF2C7B98AC60376F), + UINT64_C(0xEEA8CABE2410C057), UINT64_C(0x4C2CE2A73672A2B6)}, + {UINT64_C(0x3F77094512879BA5), UINT64_C(0x719D5BD0AD913022), + UINT64_C(0x28A82DD936D445A4), UINT64_C(0x26382C23965965AA)}}, + {{UINT64_C(0x66709D92B8AA8419), UINT64_C(0xFAEFF2E40AB5C241), + UINT64_C(0xABB7C5DD1DD46DEB), UINT64_C(0x7DD03C3339DB6CB5)}, + {UINT64_C(0x76CDD1EA9E160F01), UINT64_C(0x00598D5681C5CA37), + UINT64_C(0x16D23B04241772EC), UINT64_C(0x5132B02852A6B807)}}, + {{UINT64_C(0x6D48D4B5CC041445), UINT64_C(0x0B1CD9231528DF63), + UINT64_C(0x82EE4DC64A815F60), UINT64_C(0x29DA60590451E242)}, + {UINT64_C(0xCD90BFB017A8A6D0), UINT64_C(0x8BCF439252A7FC3D), + UINT64_C(0x49AD55F21974860C), UINT64_C(0x20BBF0105EDCB1D2)}}, + {{UINT64_C(0xB4F0EA84A8F6C08C), UINT64_C(0x4341BEA7D50164F3), + UINT64_C(0xE538901906320C0F), UINT64_C(0x69D4851A8BA6F033)}, + {UINT64_C(0x1CE5866077902045), UINT64_C(0xF3B88D85BD8579B3), + UINT64_C(0xF84FF63A4FB0A17B), UINT64_C(0x09EE62EEDE6581BF)}}, + {{UINT64_C(0x8B8C15B57C0516DE), UINT64_C(0x3B448FC3A530B89F), + UINT64_C(0xE385BBE5500B0251), UINT64_C(0x5F643F85ED70804B)}, + {UINT64_C(0x550D9B7D239E85A5), UINT64_C(0xDC910B5B8666E41F), + UINT64_C(0x655221817D4E390F), UINT64_C(0x5DD2D3E83162FE10)}}, + {{UINT64_C(0x59609390DF024A25), UINT64_C(0xE66A77E908CCBA91), + UINT64_C(0xC5CEA91A65E24DB6), UINT64_C(0x0888DFB53DCEA0A7)}, + {UINT64_C(0x8C8E58CC92FA0754), UINT64_C(0x99C259ABF7DC9538), + UINT64_C(0x3A06D8ED9BEFE750), UINT64_C(0x71AF22E1FAACDC97)}}, + {{UINT64_C(0xCC41D094250AC059), UINT64_C(0xCD792A733BE3DA01), + UINT64_C(0x2DA07802CC61EFE1), UINT64_C(0x293AFB0857053A5D)}, + {UINT64_C(0x3E7E48842FD8A8A0), UINT64_C(0x183FA5000B9B48D3), + UINT64_C(0x9CAC07BE431AACF6), UINT64_C(0x4F82D7992DF89F10)}}, + {{UINT64_C(0xFD9F61A80A84935C), UINT64_C(0x78B948D0BB5A7E56), + UINT64_C(0xDA4787660ACCEEB3), UINT64_C(0x47BDAE4453C3851D)}, + {UINT64_C(0x5AE2C60C0CFE8D0D), UINT64_C(0xAC8F79B31D8A79C9), + UINT64_C(0xA958C15E0A79CA31), UINT64_C(0x1C46E20EF0952018)}}, + {{UINT64_C(0xAE552ECEF04AC529), UINT64_C(0xB295B601E2BFEFBC), + UINT64_C(0xECC1EE5554733412), UINT64_C(0x28BCBA5312282094)}, + {UINT64_C(0x306C078150B25069), UINT64_C(0x10D5D23CE9A18FFE), + UINT64_C(0xC34FC5C71BD5489F), UINT64_C(0x2B610028E191867D)}}, + {{UINT64_C(0x458A1CC13E17E84D), UINT64_C(0x6EAE343D5D7CFB98), + UINT64_C(0xC6E0FDAA101F0B7E), UINT64_C(0x0B9F7C2C2A023288)}, + {UINT64_C(0xBEA893A86F3FCAA0), UINT64_C(0x7D711B2B452B07C0), + UINT64_C(0x2895873798E2C88D), UINT64_C(0x553A0180DFD99A2A)}}, + {{UINT64_C(0x8D617BE80DBA5986), UINT64_C(0xDB763C1413D18594), + UINT64_C(0x822CB0DAD2DAD82F), UINT64_C(0x37ACD99F93239947)}, + {UINT64_C(0x6A2A7070CDC08BE6), UINT64_C(0x86B3B66ACF6D63FF), + UINT64_C(0x5BEFF3FB0F7D4A67), UINT64_C(0x05C25557EBC94AE5)}}, + {{UINT64_C(0x5D1DC08789183418), UINT64_C(0xA25C7AE26EA5A960), + UINT64_C(0x074698B9D31F3AAE), UINT64_C(0x5A5B510B221788A4)}, + {UINT64_C(0x896A87871DCE95FE), UINT64_C(0x89E7B93D7F24020C), + UINT64_C(0xFC19BF42865B4334), UINT64_C(0x0389FBF75B78B06D)}}, + {{UINT64_C(0x73B6DA7B0BB3A3E2), UINT64_C(0xDBC1267044D56755), + UINT64_C(0x7AF2DE287CC1C589), UINT64_C(0x7E248FCB697CB6B7)}, + {UINT64_C(0x9410EC06C64202C0), UINT64_C(0x79C8215875EB3A8C), + UINT64_C(0x74FDD2F6E95C5EA9), UINT64_C(0x2A40B5B51CCA72C7)}}, + {{UINT64_C(0x569842235C29E320), UINT64_C(0x8266392AE871D9E2), + UINT64_C(0x9D86C6C77B391763), UINT64_C(0x5E9E61E202543C9E)}, + {UINT64_C(0xD62A9334D2501D1A), UINT64_C(0x9D19F54D9211135D), + UINT64_C(0x66D0B9618FE81272), UINT64_C(0x6E64635AD09C2033)}}, + {{UINT64_C(0x93BD0AD806F84E11), UINT64_C(0x45F18F2B131AFDBF), + UINT64_C(0x881F053F6058EB37), UINT64_C(0x36B8D656948AD0D5)}, + {UINT64_C(0x53DC2E02E1934E38), UINT64_C(0xA8AD5055C0435B6C), + UINT64_C(0x0DF7BD114BD7154F), UINT64_C(0x6350B05E73BC98FC)}}, + }, + { + {{UINT64_C(0x12AC549604BF927A), UINT64_C(0x9BB322DBE749323E), + UINT64_C(0xC10C666DF6D99AD6), UINT64_C(0x0FDF8FB34C883E0A)}, + {UINT64_C(0x10667F92665272E8), UINT64_C(0xA30D4CE15BF8702F), + UINT64_C(0x56314B47A2D6033D), UINT64_C(0x09EC90D9DAC1A10E)}}, + {{UINT64_C(0x364F06DDC9EB81D1), UINT64_C(0xFD181A564DC5CB76), + UINT64_C(0x91CF010CE264567C), UINT64_C(0x71D9A95BA05C02FC)}, + {UINT64_C(0xAB5AFBA653967407), UINT64_C(0x3FC779139B0AA089), + UINT64_C(0xDF1D4912AF29EF02), UINT64_C(0x01C3D61C5796A0A5)}}, + {{UINT64_C(0x11503A1CB376E8DE), UINT64_C(0x5CB17D6DB8B98321), + UINT64_C(0x96C9D585BD8FE9C2), UINT64_C(0x048C8DA7D117171D)}, + {UINT64_C(0xDF7FABB8B582282A), UINT64_C(0x75C2A93724FD6BB7), + UINT64_C(0xDF0DBD3200633701), UINT64_C(0x04FB7AEC039B3E72)}}, + {{UINT64_C(0xE60CCE960E20C09A), UINT64_C(0xAD295B31116E1C38), + UINT64_C(0xCA6B625DC04477D0), UINT64_C(0x032FE03BFFA32E36)}, + {UINT64_C(0x46334FEEE2AAABC6), UINT64_C(0x9808B03CDA1C6871), + UINT64_C(0x76D0E3AAF934A482), UINT64_C(0x2B0BF54AF9CB8F97)}}, + {{UINT64_C(0xB5D527172CA29D02), UINT64_C(0xF9DAEAFBDBEACF03), + UINT64_C(0x3786E64B113A3811), UINT64_C(0x6A01A1A55C30569D)}, + {UINT64_C(0x0A91E160BA1C28B6), UINT64_C(0x5BFA32BA929D3F05), + UINT64_C(0x1108F87540C51084), UINT64_C(0x37FD238342FD5AE1)}}, + {{UINT64_C(0xABF14EDE2A79BFB8), UINT64_C(0x08B34155AA34300C), + UINT64_C(0x85C0DFA064077041), UINT64_C(0x3AE5D28DF542D447)}, + {UINT64_C(0xC303A0FEB74DC4FB), UINT64_C(0xB75292FA556E0B87), + UINT64_C(0x785628B051BDC64C), UINT64_C(0x43FE786E13C579F6)}}, + {{UINT64_C(0xBC5898CB5F08790F), UINT64_C(0xA298A59A125644EC), + UINT64_C(0xD2D9627BB048217A), UINT64_C(0x6DCEEF327B1F23F7)}, + {UINT64_C(0x7F02FC44FA7B9C6A), UINT64_C(0x90C6496073597BF7), + UINT64_C(0x5DD7E4F42CB0B3A2), UINT64_C(0x5EC5F92C43E83553)}}, + {{UINT64_C(0xC06B4D4959E2C8E9), UINT64_C(0x7DBC82181DF8AD8B), + UINT64_C(0x35570120DAE8B6D7), UINT64_C(0x4222A1BA0CDE2691)}, + {UINT64_C(0xD2F1EFA6C1693046), UINT64_C(0x2707228D7D36D9CD), + UINT64_C(0xD668EE25062D499C), UINT64_C(0x7AC81BDFCE2621A0)}}, + {{UINT64_C(0x3A9F04BB16F6A215), UINT64_C(0x739BB2BC89E5494E), + UINT64_C(0xCB8DBAE8D1CEB043), UINT64_C(0x6B177DF009A6B465)}, + {UINT64_C(0xB7C4980E1A529744), UINT64_C(0x3941B9970E9012B5), + UINT64_C(0xDF317B9504C6D677), UINT64_C(0x17898D81829F51D6)}}, + {{UINT64_C(0x3D48FD66A12282BA), UINT64_C(0xB775465B899E5A1A), + UINT64_C(0xDE0CCB9955D95C35), UINT64_C(0x4CB3CCDD950AB9DF)}, + {UINT64_C(0x0B4ABA02175C4CAE), UINT64_C(0x2DA7C698CF86187C), + UINT64_C(0x3A4453DF9A9BF6CA), UINT64_C(0x53C86F9C8BB9F543)}}, + {{UINT64_C(0x806B815E5B7DB133), UINT64_C(0x2451D6AC118FA7C1), + UINT64_C(0x32C148B6FB0BEFC3), UINT64_C(0x2E6ECEF6E433031E)}, + {UINT64_C(0x2B78F31754B2EE29), UINT64_C(0xBC321BF95A73BF01), + UINT64_C(0xDF6F7840F8F7F981), UINT64_C(0x751A917A22280C40)}}, + {{UINT64_C(0x73EFA6314F9161C8), UINT64_C(0xB61C5E6821145C52), + UINT64_C(0x609477736A04DC52), UINT64_C(0x758E38FF2C2073B2)}, + {UINT64_C(0xDC6FEA7303A54541), UINT64_C(0x5E77682CB6E65787), + UINT64_C(0xAFEF6C1C37370FD0), UINT64_C(0x33DEEF00D5AC255A)}}, + {{UINT64_C(0x1AD81101061D35CC), UINT64_C(0xD55EED7D8A77D246), + UINT64_C(0x8D59DC22926E64C3), UINT64_C(0x76C9D6CEAFC6FFA6)}, + {UINT64_C(0x945A89B53F4FCC0F), UINT64_C(0x65EB52CF9087F46A), + UINT64_C(0xC3380377AE9F09DE), UINT64_C(0x59067EDD43DFD5FB)}}, + {{UINT64_C(0xCBB7BC66CF841445), UINT64_C(0x9ED681D3A3BE7C94), + UINT64_C(0xF5CF59BE396C6DD5), UINT64_C(0x2598A5DCFA763634)}, + {UINT64_C(0xAD2B445A85CF4FDE), UINT64_C(0xC8CE3F42A0D92F4C), + UINT64_C(0x78356D5BF01CD0F5), UINT64_C(0x26E44A455D50C9D7)}}, + {{UINT64_C(0x22EB53E34EDF35A5), UINT64_C(0xA0C6CDEFAF1A8A60), + UINT64_C(0x1D31BA2CD07C1EBD), UINT64_C(0x513511A0D2C2ADE1)}, + {UINT64_C(0xBD3772D4C4449889), UINT64_C(0xAF5EF819D3F49C61), + UINT64_C(0xAAF2159940047745), UINT64_C(0x2128938CA54B8080)}}, + {{UINT64_C(0x9761A94A73ADBEC8), UINT64_C(0x4710BBF01FB2F257), + UINT64_C(0xFE52603EB3920007), UINT64_C(0x663937507DE06F13)}, + {UINT64_C(0x35F4E633965AC706), UINT64_C(0xF49DC41833F953E5), + UINT64_C(0x1562AD5131CFE467), UINT64_C(0x035FB54D8ADB1F7A)}}, + }, + { + {{UINT64_C(0xF632081FFD73062E), UINT64_C(0xB2740C19CB740B59), + UINT64_C(0x2DFD957F8751E315), UINT64_C(0x5722E015C21039C2)}, + {UINT64_C(0x44781BFCA4E56D39), UINT64_C(0x894BD2F7DA2FBE63), + UINT64_C(0x9E81007B5DE22DE0), UINT64_C(0x0CED0859C68788FC)}}, + {{UINT64_C(0x97DD8CF18DDA6292), UINT64_C(0x3E9191F727FCF7F1), + UINT64_C(0x07885E32DAA6AD44), UINT64_C(0x624CE66EBE9F7E62)}, + {UINT64_C(0x0483DA421893A3D9), UINT64_C(0x1041B7EA8F2A105F), + UINT64_C(0x5B706F99429A24B9), UINT64_C(0x30BFBCEE167C12E1)}}, + {{UINT64_C(0xEB2C7218C38251D8), UINT64_C(0x5FE5D8F6022B6411), + UINT64_C(0xF62200C193DCCB63), UINT64_C(0x2CF0F8F1CFF221E6)}, + {UINT64_C(0xDCF1BCD69217EE42), UINT64_C(0x1904879C9DB2580B), + UINT64_C(0x2DDB7E5DF6510164), UINT64_C(0x7BB299858A0EAC6B)}}, + {{UINT64_C(0x98313C0E0FCF8397), UINT64_C(0xB594D0B742C8EEF1), + UINT64_C(0xBD31FC3497E842F7), UINT64_C(0x49476B9D8F3ADB9B)}, + {UINT64_C(0xD1B5FD3750B45445), UINT64_C(0x526C51CAD583A89F), + UINT64_C(0x5D461F096782C060), UINT64_C(0x414023EC27274A60)}}, + {{UINT64_C(0x7C809B26EAE4285A), UINT64_C(0x939814BF0A066043), + UINT64_C(0x9CBAC0BB6C640E3D), UINT64_C(0x647E22E130EB1B86)}, + {UINT64_C(0x21E2A42D3C7DFA0D), UINT64_C(0xFF8CC304E2CD0CCE), + UINT64_C(0x3DC8C9203496964C), UINT64_C(0x5D91FE782B4DF7C2)}}, + {{UINT64_C(0xD5BBBD6E96D84346), UINT64_C(0x8363527BF91FFA8C), + UINT64_C(0x931D0FDA7F408588), UINT64_C(0x2C51F17BB0B19D0F)}, + {UINT64_C(0x7A693804FF61C86D), UINT64_C(0xBAB4AC45B3FFD529), + UINT64_C(0xEDEA275F4C171C84), UINT64_C(0x0520925CD59B94D9)}}, + {{UINT64_C(0xB6A620AAE8718BB4), UINT64_C(0x67851F0F88D37A61), + UINT64_C(0xCBEE8DBC9984A787), UINT64_C(0x7190B766AE834635)}, + {UINT64_C(0x3A1D7DB4C9AC1A8E), UINT64_C(0x6EEBD5AD7B97BCB7), + UINT64_C(0x609786259D0AB769), UINT64_C(0x5AD56C0C7C7F02DD)}}, + {{UINT64_C(0x2C0003DE2DB3B6F2), UINT64_C(0x3BE1CE3FEFCF1DD8), + UINT64_C(0xE2F79872379E6B8A), UINT64_C(0x3F9640D80B898094)}, + {UINT64_C(0x11EBD93715B29D41), UINT64_C(0xD6A076B93EF17D8C), + UINT64_C(0x0A2C0016B38ED3BA), UINT64_C(0x64329A02CCB161CC)}}, + {{UINT64_C(0xD135032DB1ED1DEA), UINT64_C(0x43F7684842F734A0), + UINT64_C(0x1F6C12BD3C18D8C5), UINT64_C(0x7D7757B7C0A304E8)}, + {UINT64_C(0x3F0C2867DE3B6B9F), UINT64_C(0x72F98EBBB7201E4F), + UINT64_C(0xCC408000940E748D), UINT64_C(0x34FE6D8FAD74B322)}}, + {{UINT64_C(0xA12A9359E6D884FE), UINT64_C(0xB080A081DE063103), + UINT64_C(0x672DE27D97ABB854), UINT64_C(0x712B0883EE6F3485)}, + {UINT64_C(0xF430BF2D2044A2A2), UINT64_C(0x665610207D12027A), + UINT64_C(0x5ED63AD22C539C3B), UINT64_C(0x7982AAD0FE5EE1D1)}}, + {{UINT64_C(0x873DC8F63BE94D26), UINT64_C(0x909236394B41BD76), + UINT64_C(0xE439A4960CBE4B5C), UINT64_C(0x424F8D2411782BF1)}, + {UINT64_C(0x6612BD9949686ED9), UINT64_C(0x78157AA9FB04E27E), + UINT64_C(0x844E1616805F809C), UINT64_C(0x717AEB3262CB8BCD)}}, + {{UINT64_C(0xE98C1A0E5248CF6A), UINT64_C(0xC84294A8B0E4ADF8), + UINT64_C(0xD35748A4A7769275), UINT64_C(0x2C3867E103363C82)}, + {UINT64_C(0x2EC7AF438F43885A), UINT64_C(0x7979D1A23AE516C7), + UINT64_C(0x059939EC8B81056C), UINT64_C(0x434AA4DD7E358480)}}, + {{UINT64_C(0x12EA1C874A5228EA), UINT64_C(0x47B481984D293B9F), + UINT64_C(0x319CE379E9696688), UINT64_C(0x7C9FF5957CE6FD05)}, + {UINT64_C(0x15E954DF3093E3E4), UINT64_C(0xBC98307C304015AF), + UINT64_C(0x66522DF8975C69C5), UINT64_C(0x4C9EBFB3963CE892)}}, + {{UINT64_C(0x1CEEF18A628FB125), UINT64_C(0xFB69A2344BF30BB6), + UINT64_C(0x510EB33970C9C864), UINT64_C(0x1EE9D1ED8A89151D)}, + {UINT64_C(0x340940284EE1A486), UINT64_C(0x664401672FC79CEE), + UINT64_C(0xB597625AC7DA3A75), UINT64_C(0x6E5B920E65205AF9)}}, + {{UINT64_C(0x749D0CA4D87C914C), UINT64_C(0x55ECBEBB0D60C59E), + UINT64_C(0x916A1127A65B4652), UINT64_C(0x503964D44E4767A3)}, + {UINT64_C(0x8899A4C21B1F94D5), UINT64_C(0xEFFCAF5233E0D94D), + UINT64_C(0x61B89B3FA3DAD87D), UINT64_C(0x3CB455F55088D6BE)}}, + {{UINT64_C(0x5088A52B70678C14), UINT64_C(0x212823D941B00FC3), + UINT64_C(0x38D5CEB619865BDB), UINT64_C(0x2E9C7FD712E63491)}, + {UINT64_C(0x6656F91659E73913), UINT64_C(0x57AE9A47E9035A63), + UINT64_C(0x970DCF2BF02B8DAE), UINT64_C(0x3366F8A6950FF8A9)}}, + }, + { + {{UINT64_C(0x93DABD6FAC4A8F83), UINT64_C(0x272334881CFF0AAD), + UINT64_C(0xBCAC3181F500EDFB), UINT64_C(0x27C6DB15B5297515)}, + {UINT64_C(0x9CD142D92F08A89F), UINT64_C(0x3C0054232EAD0A80), + UINT64_C(0x82845F9544A7623A), UINT64_C(0x5104707072BC4862)}}, + {{UINT64_C(0x4303797ADC1B9159), UINT64_C(0x7842434B5D9C9AC1), + UINT64_C(0x8A36ED2D6009FE2E), UINT64_C(0x11FE35C95106429C)}, + {UINT64_C(0xDF20A39323554A92), UINT64_C(0x59364A48932E37C2), + UINT64_C(0x6D7DE6AE7754A5DF), UINT64_C(0x00CCC6A3462725AC)}}, + {{UINT64_C(0xB1F86CA5BAE83077), UINT64_C(0x82FE28A55110782C), + UINT64_C(0x8031BBF3D942182C), UINT64_C(0x4F1F3815410D9F83)}, + {UINT64_C(0xE57F9907835ABA65), UINT64_C(0x0A8220C25AA10903), + UINT64_C(0x2E9847178812602E), UINT64_C(0x0AEC467D2A7D2C6C)}}, + {{UINT64_C(0xC779F708C4DBED03), UINT64_C(0x10A30CD88582BD4E), + UINT64_C(0xFA5646C5243FEAEE), UINT64_C(0x1CFAF38ECA459EF7)}, + {UINT64_C(0xCCDD014695BC8077), UINT64_C(0x4ECDE91965858C49), + UINT64_C(0x562764C677FEE1B6), UINT64_C(0x3CF5A3AB43524407)}}, + {{UINT64_C(0x0CCEAADD0F6EF445), UINT64_C(0x690C12C1C297AFAF), + UINT64_C(0xD67AA6EAC15B3D7B), UINT64_C(0x445D233C9FF8884E)}, + {UINT64_C(0xC38FFD096CAD3234), UINT64_C(0xA690FFD1C7002F6F), + UINT64_C(0xD445E85111ACB469), UINT64_C(0x64EE138097166E52)}}, + {{UINT64_C(0x1EB031CCCEFBFB0A), UINT64_C(0x60F3DEF4AA40D6A9), + UINT64_C(0x240F7CA5F96FCAFE), UINT64_C(0x53AF2F10E4450A06)}, + {UINT64_C(0xE8AF980FA84058EF), UINT64_C(0x3E30001734AFFC6E), + UINT64_C(0x62D1D094C86B458C), UINT64_C(0x5338383D75732C7E)}}, + {{UINT64_C(0x6BD46AEB04D82638), UINT64_C(0x86940A3162E645A0), + UINT64_C(0xD025B4B1A5736B40), UINT64_C(0x1056D9D0924E8E5E)}, + {UINT64_C(0x3D0495CC1DB58101), UINT64_C(0xC300C6E72D677581), + UINT64_C(0xFE38B898610AECEC), UINT64_C(0x1C8B94E2D66F64ED)}}, + {{UINT64_C(0x5C9C3A3706D0C7EC), UINT64_C(0x6B4B5437B8A74918), + UINT64_C(0x85689C989052A235), UINT64_C(0x4F7C2C8D87B53AA6)}, + {UINT64_C(0x9FCD866FD8F1D334), UINT64_C(0xDBAAA2276898223C), + UINT64_C(0x933DE9DA95C7B35A), UINT64_C(0x329AE20F3EA949FD)}}, + {{UINT64_C(0xB83547AF948A2ECD), UINT64_C(0xEBF7C1E7BE34890C), + UINT64_C(0x5F0F44F3F8211C33), UINT64_C(0x14A10BDBC6927638)}, + {UINT64_C(0x7FD885675B579BF5), UINT64_C(0xD7C712815B7417F0), + UINT64_C(0x7C04F1112083502E), UINT64_C(0x42029128E9AD6283)}}, + {{UINT64_C(0x32FBFFAE2C5C0928), UINT64_C(0x4E31D3121469F1D3), + UINT64_C(0x17307E28D79F51A2), UINT64_C(0x546C91AF79A51EBD)}, + {UINT64_C(0x041D464D668086A6), UINT64_C(0x4986BDE50DB695DB), + UINT64_C(0xCBA5F6EEEF317AA0), UINT64_C(0x5879259F730221D3)}}, + {{UINT64_C(0xBD9C5CA5253BB4BA), UINT64_C(0xBBFC60790E2A75BB), + UINT64_C(0xB5F11AE367AB9033), UINT64_C(0x6411CB1EAC2BFAFE)}, + {UINT64_C(0x750734FEBF5390B0), UINT64_C(0xA044BED4879A3D3D), + UINT64_C(0xE1E9F0E4A0C47093), UINT64_C(0x3BCAD93EB64DA48C)}}, + {{UINT64_C(0xAFC6BCB6B37E16C2), UINT64_C(0xB54F56C02331B0CD), + UINT64_C(0x725E81B45BBFBEE7), UINT64_C(0x2AE0C039E8B9D922)}, + {UINT64_C(0x85301041DB958319), UINT64_C(0xDFAE34DD0681C4A4), + UINT64_C(0x906C9219CBF7BB2B), UINT64_C(0x1463E9EF10A1710A)}}, + {{UINT64_C(0x41E6C38821E6FC9D), UINT64_C(0x0B629A1E24A39EC8), + UINT64_C(0xC62F60BE1AEF7A46), UINT64_C(0x59A50B54C5A16B6E)}, + {UINT64_C(0x41CA367A285B891E), UINT64_C(0x70A6CE6BE2F8AF59), + UINT64_C(0x74058747CBCEEF98), UINT64_C(0x4B912170601C375F)}}, + {{UINT64_C(0x7D975CE2734EE866), UINT64_C(0x8D3572C6A09F5F14), + UINT64_C(0x1DB4CC882232EE5E), UINT64_C(0x6C9790497C04C250)}, + {UINT64_C(0xB5EC7706AE1EBC20), UINT64_C(0x7BDBD34DE21AAA32), + UINT64_C(0xAD4125FDC5D1C733), UINT64_C(0x28B0302D731E6B09)}}, + {{UINT64_C(0xD68EEC491521415E), UINT64_C(0x31963424092763C0), + UINT64_C(0xCA90F48D0BFB513B), UINT64_C(0x4814DDFF573A056A)}, + {UINT64_C(0x7E67599C400E804D), UINT64_C(0x3545275051FD0596), + UINT64_C(0x45EDD7FBDB331B66), UINT64_C(0x172DA8B3BDEDE107)}}, + {{UINT64_C(0xD46F284CB5BEB1C8), UINT64_C(0x5DE5D3F17B125701), + UINT64_C(0xC3BA591E248053D1), UINT64_C(0x4E67F1F29C8F487C)}, + {UINT64_C(0x380D93E48C252EC5), UINT64_C(0x913F96F122BC5CF6), + UINT64_C(0xC1F06BBDD7BAA634), UINT64_C(0x7B625179A30BF1B9)}}, + }, + { + {{UINT64_C(0x125D398DABD424AC), UINT64_C(0xFE65DF039CC70479), + UINT64_C(0x89A31794FB5EC82C), UINT64_C(0x63EFFB55A31C5DCA)}, + {UINT64_C(0x948F7571045B576A), UINT64_C(0xEC9F6FAB022B5FC8), + UINT64_C(0x174DC936BD9F0DD2), UINT64_C(0x5EEA65E6F4C4EE8B)}}, + {{UINT64_C(0xE97070AE8B800D67), UINT64_C(0xB9CB66FAB59B433E), + UINT64_C(0xC4496574C6141364), UINT64_C(0x530AA9B56A9677EA)}, + {UINT64_C(0x4A4E2EE375200533), UINT64_C(0x4C38A5090F20A9BE), + UINT64_C(0x0A6FFBA4EA683510), UINT64_C(0x7340EFEE65732EA9)}}, + {{UINT64_C(0x3A5612E4E41C2B43), UINT64_C(0x31F51B80FCB5C0A8), + UINT64_C(0x4C5BBA64BD1F03E6), UINT64_C(0x253872433694ADCA)}, + {UINT64_C(0xF114EFAF1F7E4D5C), UINT64_C(0xBEA5223A4EA3A59D), + UINT64_C(0x82CEF46F67EB414D), UINT64_C(0x09D351C19B6CAC3D)}}, + {{UINT64_C(0xC69F25CE810F5054), UINT64_C(0xE33E5E97548A2CDF), + UINT64_C(0x20B3F44236946D3C), UINT64_C(0x572C0F5C65DF2D3B)}, + {UINT64_C(0xFC5B2DF3CC953CC8), UINT64_C(0x934D54C0D1CCADC6), + UINT64_C(0x828A906EA6E7B4DB), UINT64_C(0x610D36C15AD3076F)}}, + {{UINT64_C(0x960B0A0174F56E27), UINT64_C(0x9942C6ACCF3FEA75), + UINT64_C(0x2E4D786D82C51490), UINT64_C(0x23A516369A4749C9)}, + {UINT64_C(0xD86AB36A2F7560FC), UINT64_C(0xDA66B49DDDB852A9), + UINT64_C(0x84E1587D544C1023), UINT64_C(0x7AB8BC696AA3C1DA)}}, + {{UINT64_C(0xFD0397AFA5F30701), UINT64_C(0x96FFB15DDFC8B187), + UINT64_C(0xF2C864531475E520), UINT64_C(0x71521986EF37300E)}, + {UINT64_C(0xD81F75A868006D45), UINT64_C(0xDF7814EACBC06D4D), + UINT64_C(0x5BCF959B2E8E9150), UINT64_C(0x146D37D756668C18)}}, + {{UINT64_C(0x1ABD731288E8DC77), UINT64_C(0x0B34B877C1C3A4DB), + UINT64_C(0x85739093F844BACE), UINT64_C(0x5DEDCF8F04A7CF80)}, + {UINT64_C(0xD8BB237ED87CDBDC), UINT64_C(0x89852174CCBA784F), + UINT64_C(0x6843BAB8B2FAECC3), UINT64_C(0x15268302AA4BBA32)}}, + {{UINT64_C(0x3B58225AB23D3770), UINT64_C(0x9357EB5910CC9DE6), + UINT64_C(0x8665F92A42ECF80E), UINT64_C(0x4819CC9DC875C031)}, + {UINT64_C(0x09CBE5D8C34B979B), UINT64_C(0x161E8AC07E1D0E63), + UINT64_C(0x874DF24F282E36E8), UINT64_C(0x6528E6FA0712A0CD)}}, + {{UINT64_C(0xE37AD786107633E4), UINT64_C(0x122D7123CF1FE646), + UINT64_C(0x1E6E682BCFA93AC0), UINT64_C(0x0A25F4EE276200DB)}, + {UINT64_C(0x44E290EDE25FBB01), UINT64_C(0x3E392DF5C3C1B418), + UINT64_C(0xE5E1574583EBE689), UINT64_C(0x016139D24B999926)}}, + {{UINT64_C(0x048915B065D7DA58), UINT64_C(0x6EF7C4EFA78F3D9E), + UINT64_C(0x78CCCE55AD614974), UINT64_C(0x43DB7DA054B95643)}, + {UINT64_C(0xFC423B70E53F1A67), UINT64_C(0x8F8BED814EFE2427), + UINT64_C(0xF5D6AD5F95B045EB), UINT64_C(0x23582D5DD7407716)}}, + {{UINT64_C(0x9E5D24FB9F674472), UINT64_C(0x1AE1863668626041), + UINT64_C(0x8977E68F7ABC4380), UINT64_C(0x7D9FF8E805AF2D04)}, + {UINT64_C(0x9D31195F4197C4E1), UINT64_C(0x9F3F6E114400F35E), + UINT64_C(0x1A87D5867BBEF801), UINT64_C(0x42AE0380952BB025)}}, + {{UINT64_C(0xC6A3ED756B96482B), UINT64_C(0x58B38724A9C6DD2F), + UINT64_C(0x464C8CE89297FB47), UINT64_C(0x0245797EFB6D6C55)}, + {UINT64_C(0xBE141C80C0B58C8F), UINT64_C(0xC4C405CB77766C48), + UINT64_C(0xD57EE428D10C0F31), UINT64_C(0x03D4862B50E8FE7B)}}, + {{UINT64_C(0x21976F8A1DC3722C), UINT64_C(0x02EC30D55F476F0D), + UINT64_C(0xD711E01DCA434B06), UINT64_C(0x551AC91099FF2488)}, + {UINT64_C(0x24AEC72DA56CA3C7), UINT64_C(0x2DD1219A891896CE), + UINT64_C(0xD84BAD1967882925), UINT64_C(0x27E65D7F9D4778EF)}}, + {{UINT64_C(0x09F19C8F4685687F), UINT64_C(0xB7C7B9E3BBB58BD3), + UINT64_C(0x349D03A78FA34DD5), UINT64_C(0x41F9D0038D59E889)}, + {UINT64_C(0xCF3367D42B3ED6FA), UINT64_C(0xCF3C6715378DA1ED), + UINT64_C(0x86DC39034E935E9A), UINT64_C(0x50692CFFF08CB23A)}}, + {{UINT64_C(0x18CA772AC2D65C87), UINT64_C(0xC9092B384F1D0CB6), + UINT64_C(0x91E71CF1BBD2015A), UINT64_C(0x4A09DAAC4F3DEF26)}, + {UINT64_C(0x7CCA7B4A735C9281), UINT64_C(0x2028F1441BF0AAEE), + UINT64_C(0xCF72A082ACB5B748), UINT64_C(0x58957D5D43299B85)}}, + {{UINT64_C(0x64BB164E901F1789), UINT64_C(0xC68766E65AEF97BF), + UINT64_C(0x30ECA3E2942B6DCE), UINT64_C(0x632676FAF9E798F3)}, + {UINT64_C(0xB52533D3F13896EE), UINT64_C(0xAD9128312D8A29C1), + UINT64_C(0x12F1B9A4BC14E7FF), UINT64_C(0x4E1D23FD8828D196)}}, + }, + { + {{UINT64_C(0xC4F89E00EF494793), UINT64_C(0xA6044BC3C93D2F55), + UINT64_C(0x68E60B588797F8AF), UINT64_C(0x4D5969FA841E4B5E)}, + {UINT64_C(0xB1EE70FBD759BB2D), UINT64_C(0x9AC3043366D8AD01), + UINT64_C(0xD93F23DB84E9F677), UINT64_C(0x2AD9D16FC53029A4)}}, + {{UINT64_C(0xD01FC16BDD882D23), UINT64_C(0x3BF921F1FA5B4128), + UINT64_C(0x3D3FE145235BC9CE), UINT64_C(0x5955671662E686E1)}, + {UINT64_C(0xE329A7C279F99D69), UINT64_C(0xA67EF5ECA4F5F5F5), + UINT64_C(0xF96A41EED5A34FF0), UINT64_C(0x09D0CF0674674B5F)}}, + {{UINT64_C(0x8CCDF71C6135B7E2), UINT64_C(0x91F1E33EAFB6AD6B), + UINT64_C(0xC452F439DB0CFEDF), UINT64_C(0x15724711C05B06D4)}, + {UINT64_C(0x5FEE0E0EA3BC1277), UINT64_C(0xD6847FAD8D8BA081), + UINT64_C(0x8B02666C0D4C8DDD), UINT64_C(0x149E5009C35559DB)}}, + {{UINT64_C(0xB4D0D2C95461D9CA), UINT64_C(0xFE7993B6CE0A3973), + UINT64_C(0x42B2A500D6032E95), UINT64_C(0x4DEEE35A217131C6)}, + {UINT64_C(0x94E65C8CFFE7C2EB), UINT64_C(0x0DAD7785B19D4B4A), + UINT64_C(0xEEBA6794925613F9), UINT64_C(0x6AF45BBEE30494CB)}}, + {{UINT64_C(0x41352A6132F43F67), UINT64_C(0x0D218DE948F886D3), + UINT64_C(0xCDFC0C559B33B0F6), UINT64_C(0x21FC63536C5B90CD)}, + {UINT64_C(0x5D8CA5AD7898AFF2), UINT64_C(0xA743F80E24287C30), + UINT64_C(0x4D0371319084A3A2), UINT64_C(0x52041EEDB5EFC978)}}, + {{UINT64_C(0x80B588EECC1BCFCB), UINT64_C(0xAD871A11E5CE0035), + UINT64_C(0xF47224D0F966D746), UINT64_C(0x5215A9D2B387FCC2)}, + {UINT64_C(0xC54EB2E7695C02AF), UINT64_C(0x36FD06BCDFC8493D), + UINT64_C(0x1CE8A9AA98CE7C76), UINT64_C(0x058DFCBF644D398B)}}, + {{UINT64_C(0xCD7E67DC5BB81464), UINT64_C(0xE7A19301047A7789), + UINT64_C(0xCCC31EE5573E837B), UINT64_C(0x25EE99AFAF7703D5)}, + {UINT64_C(0x34FDD6DADDB3E807), UINT64_C(0x273D8288109092DD), + UINT64_C(0xF8F2464FB7357633), UINT64_C(0x26B2CBADCCAA31D5)}}, + {{UINT64_C(0xBA9CFEDEF707F9F7), UINT64_C(0xA9A6896CAC4975FB), + UINT64_C(0x62135D9DBB1C35E4), UINT64_C(0x13AE840FCBA133D2)}, + {UINT64_C(0x6ABF39134C2BA3A9), UINT64_C(0xE4D8508A6D8A62C1), + UINT64_C(0xF256535466D96607), UINT64_C(0x5C368CCEB6CABAE8)}}, + {{UINT64_C(0x0C3B52E88B3999BB), UINT64_C(0xB752E28FEF691871), + UINT64_C(0xA0460ABCF17D0D2D), UINT64_C(0x7DDCE3C1B7741F2C)}, + {UINT64_C(0x076A6BAB3673000F), UINT64_C(0xCDB1CD2B425E8A9D), + UINT64_C(0x357FCFFF2606EAB5), UINT64_C(0x308644F8035DE7B4)}}, + {{UINT64_C(0xBA64A1276D6FF45E), UINT64_C(0x1F52B6AE6B0C3CEF), + UINT64_C(0x91295179CBF496CB), UINT64_C(0x2B986FADA1B12BE4)}, + {UINT64_C(0x243D236644DBAF57), UINT64_C(0x48E22BBA346E88C2), + UINT64_C(0xCDFB79578BBAFA0D), UINT64_C(0x094ED36E0D70670E)}}, + {{UINT64_C(0x2BAD1539A0D60407), UINT64_C(0xC1A9286E6E744111), + UINT64_C(0x6D08C0DB81A6DCAA), UINT64_C(0x108F35EC80AFB34F)}, + {UINT64_C(0xBE79A6E31E3E34AE), UINT64_C(0x206EAA2816D524E5), + UINT64_C(0x563B6E1C344ABA64), UINT64_C(0x6C362A613207CA68)}}, + {{UINT64_C(0x04D8145BEF9A9A0F), UINT64_C(0x8B57559BA15B6247), + UINT64_C(0x72D53570303AFBF3), UINT64_C(0x01C36B41D6DB5736)}, + {UINT64_C(0x94D583C91173B5FA), UINT64_C(0x71F8E12D013C8AAA), + UINT64_C(0xA4B5A532F29CB838), UINT64_C(0x4B1797007CE4EBA4)}}, + {{UINT64_C(0x69CFA7B00CE86FC3), UINT64_C(0x3705D7C0D60E076C), + UINT64_C(0xB1A1464AB1091E10), UINT64_C(0x097945A97FE80950)}, + {UINT64_C(0xD9C71A959AA381E3), UINT64_C(0x2A929073A410FF56), + UINT64_C(0x79EF8353F0FEB121), UINT64_C(0x1437C4B05F3107E5)}}, + {{UINT64_C(0xC5128C8B621DB2E5), UINT64_C(0x4E9C9B2E51A9499A), + UINT64_C(0x11535880D8CD7594), UINT64_C(0x35A26F59B0697C07)}, + {UINT64_C(0xAB3F4B75C43B624E), UINT64_C(0x69F82105B8E03E6B), + UINT64_C(0xFB268288FB04E036), UINT64_C(0x6A5E6BD3A0BDB41C)}}, + {{UINT64_C(0x8C716A1AC8082916), UINT64_C(0xB1D1B1524592472C), + UINT64_C(0x63657A6D3AB6938A), UINT64_C(0x44882EB6F03214AE)}, + {UINT64_C(0x19575B8AC615AF7D), UINT64_C(0x14D740C135EE3D98), + UINT64_C(0xBC478E8957768D2D), UINT64_C(0x30CC8FA213FC5E4C)}}, + {{UINT64_C(0x705607C54EBE1E7C), UINT64_C(0x631E5B88284EDA2B), + UINT64_C(0x07E9E39C07F54DDB), UINT64_C(0x4E554D888DCF6BC5)}, + {UINT64_C(0x12E9FB200CBAB0FE), UINT64_C(0x6F3BC7CEBA5E007F), + UINT64_C(0xA770BA1DBC871DF6), UINT64_C(0x541AA4C6FE01142C)}}, + }, + { + {{UINT64_C(0xBFE26700F2412EC7), UINT64_C(0x0E975796CFE96AF4), + UINT64_C(0x7D30BF7CDD6B04F7), UINT64_C(0x5421925DF1D8FCE4)}, + {UINT64_C(0x1CF5E9F5EC709107), UINT64_C(0x124FCFC2B4580AA9), + UINT64_C(0x02F7012B67A835B3), UINT64_C(0x753FE01B47C0760F)}}, + {{UINT64_C(0x82FD5D47B1D2A896), UINT64_C(0x7EABC17554E75DDB), + UINT64_C(0x724FC3A81AB080BC), UINT64_C(0x363D6016A75C31DD)}, + {UINT64_C(0x5D465FF2863F308F), UINT64_C(0x9EC70664E515ADCB), + UINT64_C(0x4BD7A1A2B3BC206A), UINT64_C(0x2022576C4A167D34)}}, + {{UINT64_C(0xF5AC34515CD6AC65), UINT64_C(0x7629731E5839F554), + UINT64_C(0xA3260AE393545A60), UINT64_C(0x49D190E8A7AD1979)}, + {UINT64_C(0x5AA8492FF0B35045), UINT64_C(0x4A5FAB7B2584E651), + UINT64_C(0x5A05420E395E2AAE), UINT64_C(0x30613C78547B4038)}}, + {{UINT64_C(0x47E1C59DF9DAE7E6), UINT64_C(0x8D68839B247A5A9D), + UINT64_C(0x663B5977C1A80D5E), UINT64_C(0x5E51F87240D8CF32)}, + {UINT64_C(0x88ADBF9EECE49494), UINT64_C(0x40B4AC5C1792BAE8), + UINT64_C(0x278200D19A1B3314), UINT64_C(0x7D15320ED9F83584)}}, + {{UINT64_C(0xFE6DAA74EAF2BFF8), UINT64_C(0x6E4EE4C0C156AA6B), + UINT64_C(0xD9310FF8D0F4E7D5), UINT64_C(0x552EEF9E7BB0C42D)}, + {UINT64_C(0x323FF6F1FDC69E1A), UINT64_C(0x00FA66B741D79365), + UINT64_C(0x0006B16EA96B22B4), UINT64_C(0x71BBC653D20F07BE)}}, + {{UINT64_C(0x89A7B7EEA440FA1C), UINT64_C(0x52BB5278757CD658), + UINT64_C(0xC5906F4BB0CDDEA4), UINT64_C(0x66AAAFEE5DE2D8DA)}, + {UINT64_C(0x4D5E016A53B6E226), UINT64_C(0xA2F73DC61993A1D7), + UINT64_C(0x7CDD4C1DA09DD554), UINT64_C(0x6F723079AB416627)}}, + {{UINT64_C(0xE641639EC4E5C4AF), UINT64_C(0x8BC6100D371CC648), + UINT64_C(0x7BD161B19B216E8A), UINT64_C(0x58098AEBF810DB32)}, + {UINT64_C(0xEE52BB465AD92372), UINT64_C(0x4B2C48E1EEF938CA), + UINT64_C(0xE8FDE4D6AB43A5D0), UINT64_C(0x459274CDA5284C83)}}, + {{UINT64_C(0xA98925B0D015095D), UINT64_C(0xC8969F5F4611A1A5), + UINT64_C(0xBDDCD62F2CE4663B), UINT64_C(0x1C9D9007A076C8BE)}, + {UINT64_C(0xE8DE8890749F7BE5), UINT64_C(0xC9E455E7FF208E75), + UINT64_C(0xDCEE17A98F5FAC9A), UINT64_C(0x776B72D368A3A666)}}, + {{UINT64_C(0x28C7D648FEE0E89A), UINT64_C(0x621B370F463AF60D), + UINT64_C(0x9DC1548E5ADC8ACD), UINT64_C(0x48032ACFA0B49504)}, + {UINT64_C(0x146C6EAC85E992D5), UINT64_C(0x5A2CB5775CB491E0), + UINT64_C(0x669DD6D4454C120A), UINT64_C(0x3431AB3398203C39)}}, + {{UINT64_C(0xE87615039DE017BF), UINT64_C(0xAB117D2FB60AE61F), + UINT64_C(0x0846463F827937FF), UINT64_C(0x45E6BD406BD89C65)}, + {UINT64_C(0x3160AD67A613BDB8), UINT64_C(0xBD5266F3B8714A49), + UINT64_C(0xF7D29C4751A233E4), UINT64_C(0x6887B48D4DE6A90C)}}, + {{UINT64_C(0x087290A5DFDE1EF8), UINT64_C(0xC70CCB52A166950A), + UINT64_C(0xAA7F095B4A170AAE), UINT64_C(0x15301F4E5517CA0B)}, + {UINT64_C(0x3C86B787302F1F84), UINT64_C(0x95D4153544676E39), + UINT64_C(0xBFEC4AE39DF5F751), UINT64_C(0x4A0D3986304923D3)}}, + {{UINT64_C(0x70FAABA979B1390C), UINT64_C(0xA9067EEE62BA8B9E), + UINT64_C(0x987895031E17DF6F), UINT64_C(0x5997E8AE78D5B295)}, + {UINT64_C(0x31E13AD7AE0C6768), UINT64_C(0x23262F05EF17A7B1), + UINT64_C(0x1580322749B7B101), UINT64_C(0x1234A9C536B5BA70)}}, + {{UINT64_C(0xED65C961395793AC), UINT64_C(0x01157CD8CCDE1C47), + UINT64_C(0x0D0240B01D5614DF), UINT64_C(0x0F0DA1EF568E83A5)}, + {UINT64_C(0x57C90846C0B783C1), UINT64_C(0x4501048C81E2F613), + UINT64_C(0x03D8A69BA2709DC1), UINT64_C(0x06F365C4A97CCE0E)}}, + {{UINT64_C(0xEAF23159551580CD), UINT64_C(0x0F1E586A053DD5EE), + UINT64_C(0xEB7A78DD3CBCC3D5), UINT64_C(0x39BBC65AB014B850)}, + {UINT64_C(0x13DA4E8579B61AC7), UINT64_C(0x33E78DCF0DA59E37), + UINT64_C(0x4E65AF252A643C4C), UINT64_C(0x0DC38C9708869D03)}}, + {{UINT64_C(0x2B648345A3A38837), UINT64_C(0x2FA6D8F7905E261D), + UINT64_C(0xA23BD78666A14946), UINT64_C(0x781633FD5E01CC9A)}, + {UINT64_C(0xB1352709E2C71AD1), UINT64_C(0x9D74505283A6D365), + UINT64_C(0xD88B5CAE66567032), UINT64_C(0x27FC40DF53D875CA)}}, + {{UINT64_C(0xB254E54C47F7554F), UINT64_C(0x33AD0ED6D708614D), + UINT64_C(0x830566A376CE908D), UINT64_C(0x73DF94BDAA1ADD5C)}, + {UINT64_C(0x23EC411F2DBDD8A3), UINT64_C(0x9BA473383A979FDC), + UINT64_C(0x56A2C27FC667E9F7), UINT64_C(0x295647C7427E6BFB)}}, + }, + { + {{UINT64_C(0x9B5F4652F8E48C13), UINT64_C(0xE979034F9EEF4BA3), + UINT64_C(0xF95FD7767CF5AF6E), UINT64_C(0x4236C47E506CEB46)}, + {UINT64_C(0x0C02A249E08D2312), UINT64_C(0xAA5A38CCC056499A), + UINT64_C(0xCB26A8E27C188B64), UINT64_C(0x38FB961D0AE373D5)}}, + {{UINT64_C(0xEB179C9E7B23470D), UINT64_C(0xAE70102F1EBC44E7), + UINT64_C(0x8184C1D492E0EED0), UINT64_C(0x329882815C21BF08)}, + {UINT64_C(0x469589678180D11E), UINT64_C(0xEBD5518C7FD7278D), + UINT64_C(0xFCEB7F68AD2B74F7), UINT64_C(0x082D2011F9C7B6DA)}}, + {{UINT64_C(0x65D5AED1BBE0299D), UINT64_C(0x0077F756CF565A0A), + UINT64_C(0xD44FCD6B344BB90D), UINT64_C(0x6C2A19C0536F3F25)}, + {UINT64_C(0x32EE7439BB2A4D91), UINT64_C(0xA97E677AED9351E1), + UINT64_C(0x6752EDCF413A16E0), UINT64_C(0x5DE1B0C71CE4FBE6)}}, + {{UINT64_C(0x6C10DA15D6009B36), UINT64_C(0xAAD05F4FE5D8CFBE), + UINT64_C(0xD8BCE0B431D58B76), UINT64_C(0x08DE344E27B2811B)}, + {UINT64_C(0xD9A78AAE80B51E48), UINT64_C(0x1E1D0A813E41C63A), + UINT64_C(0x844376DE8076B3C7), UINT64_C(0x73F0D4A35FDF9D53)}}, + {{UINT64_C(0xF1532922558C7719), UINT64_C(0x0F10188AA8221197), + UINT64_C(0x51A97E5F5DDC1716), UINT64_C(0x0F583A9B444789E7)}, + {UINT64_C(0xAA8FC58D97D63B87), UINT64_C(0xA5AF048B1CFDA59C), + UINT64_C(0x2A4A0C5F2DDB34EB), UINT64_C(0x66C0F0C7701E2E07)}}, + {{UINT64_C(0xC0BC88B836BE2ABF), UINT64_C(0x265CCE745C721B85), + UINT64_C(0x483EBB01D54299BA), UINT64_C(0x18F11CBE348ED89E)}, + {UINT64_C(0x5E9AE7B9E42129D4), UINT64_C(0x6B3E9E8D81DE5B77), + UINT64_C(0xB3ADBAC97A14A74A), UINT64_C(0x1B6CEBB20003B266)}}, + {{UINT64_C(0xD4D4DD1015EB200E), UINT64_C(0xEEAEA4C6FB87C57B), + UINT64_C(0x48F0B95772FF6321), UINT64_C(0x187C4B75B782B01D)}, + {UINT64_C(0x3DC1AACDE9B4D622), UINT64_C(0x0358418E3F4ED519), + UINT64_C(0x981A24F8773D019C), UINT64_C(0x6643CA913DB0B4F4)}}, + {{UINT64_C(0xE3254F4BD47670E3), UINT64_C(0x9822612530B1DDE9), + UINT64_C(0x61EB6C86DA8AF160), UINT64_C(0x725C771618363269)}, + {UINT64_C(0xB051DC9F02F62462), UINT64_C(0xFF8C9EDF00AC5531), + UINT64_C(0x3909C79B962A92A3), UINT64_C(0x25C90D9327790237)}}, + {{UINT64_C(0x0A5DF2CC88ADC475), UINT64_C(0x48D26967E5D27D0A), + UINT64_C(0x21D5F616359FF194), UINT64_C(0x38ACD14189977CE2)}, + {UINT64_C(0x39B9BD92FDAA8ACB), UINT64_C(0xDB157DF2035B62D0), + UINT64_C(0x4E33386EB7D252D9), UINT64_C(0x6BD2E33FCF196258)}}, + {{UINT64_C(0xE0806297CE8F10C5), UINT64_C(0x446AFD6D8A14B746), + UINT64_C(0xD7931F29BF566190), UINT64_C(0x4D9CFBFA86FDB72A)}, + {UINT64_C(0x7752885195009F63), UINT64_C(0x5FE5013434C0FF45), + UINT64_C(0xC38CABBB6E134B81), UINT64_C(0x2E60B277E36DB037)}}, + {{UINT64_C(0xA614CF6757184CA5), UINT64_C(0x6CBD8D6325BE01E3), + UINT64_C(0xE313EE8DA0030BE3), UINT64_C(0x69AF03992B1E7C60)}, + {UINT64_C(0x519ABFBB50423F30), UINT64_C(0x200111FF486B9519), + UINT64_C(0x6FF93CCB3351F692), UINT64_C(0x32EB3E543ED9BE71)}}, + {{UINT64_C(0x0851ACB954052EBD), UINT64_C(0x3A389B7B6D2336D7), + UINT64_C(0x50A8792517C6ACD9), UINT64_C(0x031FE845B807D9B1)}, + {UINT64_C(0xA348BB01E22F7492), UINT64_C(0x9547ED3605F39661), + UINT64_C(0x97DF675668EC4AC2), UINT64_C(0x5836FEFE85B7F81B)}}, + {{UINT64_C(0x4E4869A65F0B2ACB), UINT64_C(0xC4798F3FDEC46001), + UINT64_C(0x281A4ED600903474), UINT64_C(0x04F22E9DEFB9AABD)}, + {UINT64_C(0x2AC92264FAA721A4), UINT64_C(0xBCE2FF0B276F8041), + UINT64_C(0x5F605607E4943926), UINT64_C(0x388C5FAB55506DF7)}}, + {{UINT64_C(0xFF104F6DAB5687E2), UINT64_C(0x1B6DAFE93B2D0245), + UINT64_C(0x6405C02681B2EC4B), UINT64_C(0x2B7676DAF489EBBC)}, + {UINT64_C(0xBAA158F06DA1F57A), UINT64_C(0x9CB044AD27A8457F), + UINT64_C(0xC23737A5A3BBD6C9), UINT64_C(0x71FB5B471D2267E1)}}, + {{UINT64_C(0x779BD825D14F56E4), UINT64_C(0xD7E672A008396F23), + UINT64_C(0x23FE3FC0D40BA6EE), UINT64_C(0x41E749E73B56A3AB)}, + {UINT64_C(0xD19471CE72042F67), UINT64_C(0x8A686DA74989D4D7), + UINT64_C(0x52A709C64FA09BC9), UINT64_C(0x1DC21162B3B6AA64)}}, + {{UINT64_C(0x62C9838BF9B3BD1D), UINT64_C(0x1EE59E5A0CE6384C), + UINT64_C(0xA9F5ABF6ECE8CC7F), UINT64_C(0x1961D80F80BDDA83)}, + {UINT64_C(0x7A40880CCA406FB1), UINT64_C(0x5035D307DFBCE2E4), + UINT64_C(0x590259E03D637299), UINT64_C(0x1607AC9FD6C34E05)}}, + }, + { + {{UINT64_C(0x4ABC27109D818B72), UINT64_C(0x2496CEA6092607B7), + UINT64_C(0xFB1087E1055C4EC8), UINT64_C(0x50A30C6A258ADC7D)}, + {UINT64_C(0xAF4EB6B30FF502E3), UINT64_C(0x5D5D76AD190607AB), + UINT64_C(0xC9C9B71134482C13), UINT64_C(0x574A971842213696)}}, + {{UINT64_C(0x7C90FAFD7018FC70), UINT64_C(0x36A045592B83291C), + UINT64_C(0x6120B51E40D1B175), UINT64_C(0x45F10B203DCF9606)}, + {UINT64_C(0x3C6A9EFFF20C5636), UINT64_C(0xB2768BA3FFBBC648), + UINT64_C(0x1C9DF90AB523B36C), UINT64_C(0x4148BF06D6FF34ED)}}, + {{UINT64_C(0x3D29821A3B5F9492), UINT64_C(0xAE12C78290B24561), + UINT64_C(0xEF6FB2778A3BDC5F), UINT64_C(0x6034BF3BAC3BD74E)}, + {UINT64_C(0x131D57CD4ACB6F85), UINT64_C(0xDED1C4333BE79B31), + UINT64_C(0xB091348978A896B8), UINT64_C(0x1247C0B7B287862C)}}, + {{UINT64_C(0xEB6428937C494054), UINT64_C(0x7922793022142D26), + UINT64_C(0x8F1C8371943E8398), UINT64_C(0x583C7AEF60886DB7)}, + {UINT64_C(0xAFE460223A12EE0E), UINT64_C(0xE9C9253AB6CB8685), + UINT64_C(0x5334F9DD6316A4C6), UINT64_C(0x4E2F13D8E6F1DEE9)}}, + {{UINT64_C(0x7499A5B4B37D8BA5), UINT64_C(0xA12AA6371C9BCDE2), + UINT64_C(0xCC99471DBFD6AE86), UINT64_C(0x0996637892048D63)}, + {UINT64_C(0x42CBFA9D552E71A3), UINT64_C(0x84A8B153675C1716), + UINT64_C(0xB9C07C0E4CF00A7D), UINT64_C(0x32E2322B0DA504DB)}}, + {{UINT64_C(0x569F581FE671EE59), UINT64_C(0x293522D7422E86C7), + UINT64_C(0x5E4CEA7E15DCEF10), UINT64_C(0x67C8A9FC483C0FE3)}, + {UINT64_C(0x4DE5AC0947B79284), UINT64_C(0x22AB8FBD025016BA), + UINT64_C(0x51318C232A099B37), UINT64_C(0x542EA0FA49E06623)}}, + {{UINT64_C(0xDD240F6428909F31), UINT64_C(0x46B66F9E101B7F01), + UINT64_C(0x788C29CA20481C3F), UINT64_C(0x3218A509CA5D5182)}, + {UINT64_C(0x64BCC7AD63E9A2B9), UINT64_C(0x3D213CA2ADDF5C0B), + UINT64_C(0x6D93ED4C9960D650), UINT64_C(0x3F13DB22284EE5F3)}}, + {{UINT64_C(0x5B678C3A6697E0D1), UINT64_C(0x25A171F416D9D878), + UINT64_C(0xC20A6D80FAEC362B), UINT64_C(0x1BB3F14CC512EA4B)}, + {UINT64_C(0xECE5313B2AE35FA5), UINT64_C(0xE390A01FBBD76B87), + UINT64_C(0xC78EA4C5882DA3FC), UINT64_C(0x771BCDAE42086A77)}}, + {{UINT64_C(0x8E9E3C8B565802E9), UINT64_C(0xC37A7B3553FA1BE7), + UINT64_C(0x9D2F1A264408FB77), UINT64_C(0x0B3ECE36FF308B7B)}, + {UINT64_C(0x8FB35B361F30FC37), UINT64_C(0x463B44E283E1A3C9), + UINT64_C(0x7218F09F3402233A), UINT64_C(0x1519638AFC9A6990)}}, + {{UINT64_C(0x51FB3E5D8EAAC478), UINT64_C(0x620E4826760ED4EC), + UINT64_C(0x46FC5B1F1D865577), UINT64_C(0x15EF2AD95244A538)}, + {UINT64_C(0x8D7E477C4BF382BD), UINT64_C(0xCBF170C902A5C9EE), + UINT64_C(0xB91A870C4AFB0EC1), UINT64_C(0x052FFC5169C31425)}}, + {{UINT64_C(0x1FD437462018D066), UINT64_C(0xBC5015174C67FC35), + UINT64_C(0xE65BC2FBBC990EB6), UINT64_C(0x538CA6F973F87F92)}, + {UINT64_C(0x42FBDAE08352B03F), UINT64_C(0xF265B1E099A4C9B9), + UINT64_C(0x6E3EAB2F185CA070), UINT64_C(0x6E6F4F7D37D0A2C1)}}, + {{UINT64_C(0x9B20D8EEC2D5D73E), UINT64_C(0x190521AE75844C15), + UINT64_C(0x67663AC426AD08FE), UINT64_C(0x67AEEFEFF984EC06)}, + {UINT64_C(0x61C71142CBDD87EF), UINT64_C(0x0FA4995B63396E3B), + UINT64_C(0x3196E55185C193B0), UINT64_C(0x36C0A2A8DACB3A3D)}}, + {{UINT64_C(0xEAB89FDC178A1115), UINT64_C(0xC7B764D8D7C31303), + UINT64_C(0xA5B2D6FB90203755), UINT64_C(0x3C360BF9D5F8AEEE)}, + {UINT64_C(0x8DFDCD0502F1CC3C), UINT64_C(0x7F8A64D264E5269E), + UINT64_C(0xA36196ECEA13FFD7), UINT64_C(0x35E2241577E3839F)}}, + {{UINT64_C(0x29E7AB0BE22E0C52), UINT64_C(0x68BF32C78B27DEDA), + UINT64_C(0x52A762A2DC7971AE), UINT64_C(0x4CA4348718B0CDCC)}, + {UINT64_C(0xED429DA13FCEAF73), UINT64_C(0x49396E6F06718D19), + UINT64_C(0xDECB93375BB3301C), UINT64_C(0x4B7723C10FF489B1)}}, + {{UINT64_C(0xAE321F09ABEE6B9B), UINT64_C(0xF251BF4D37318F60), + UINT64_C(0xB0A8A251B63DC269), UINT64_C(0x514A25FC71817963)}, + {UINT64_C(0x518F574755C9B2E9), UINT64_C(0x3E56CC3E1C9B4845), + UINT64_C(0xBDFD637A283AE1FA), UINT64_C(0x419BA4B4C3DE778E)}}, + {{UINT64_C(0xC7F18E93BCD2EB74), UINT64_C(0x171264C8FC61FB42), + UINT64_C(0x27282E7685119033), UINT64_C(0x225006A4D7DB91C7)}, + {UINT64_C(0x628E0F3C1ECF5024), UINT64_C(0xDC5111E000859CDE), + UINT64_C(0x4AB1764F1F220711), UINT64_C(0x7C6916F170DDED3C)}}, + }, + { + {{UINT64_C(0xF9FFE8FC5F0CA58A), UINT64_C(0x09E34F3022879EBB), + UINT64_C(0x648D6339ED7B0520), UINT64_C(0x0D6719D01AF5ECDC)}, + {UINT64_C(0x2878714D0B8590E4), UINT64_C(0x827D04ED90EC312B), + UINT64_C(0xD415C8B43B5767C3), UINT64_C(0x4170F0ADC09FD18D)}}, + {{UINT64_C(0x9B649CFC3C601031), UINT64_C(0x0478603A636DDAE7), + UINT64_C(0xDC972DFA914E100A), UINT64_C(0x519C55DF091621AE)}, + {UINT64_C(0x863046CBD4A9963D), UINT64_C(0xDF16763C5ACF7C0C), + UINT64_C(0x4999A93EFF5468A4), UINT64_C(0x35543EFF424074A5)}}, + {{UINT64_C(0x27B1DBFADD33307C), UINT64_C(0xA0D04784927CA6F3), + UINT64_C(0xBD3EBC5EA37CF855), UINT64_C(0x59D02EF549F5AA2C)}, + {UINT64_C(0xCDABE86FBDD57BF3), UINT64_C(0x7B3ADD2F37819D86), + UINT64_C(0x7B90BA150413B7B0), UINT64_C(0x470717826B99685B)}}, + {{UINT64_C(0xB7C3218EEF0CE97F), UINT64_C(0xDAE3B56C0898C79C), + UINT64_C(0x6349D83D0908877D), UINT64_C(0x0970C6C0C81E8C4E)}, + {UINT64_C(0x0E45C4A7A47F426C), UINT64_C(0xAB000A593FBB194E), + UINT64_C(0x570FBBA53A6DD13E), UINT64_C(0x66045580C8F44A57)}}, + {{UINT64_C(0x5ABEB74912A72F7F), UINT64_C(0x15072A927AE56F4D), + UINT64_C(0x1C77AE00222AB2C4), UINT64_C(0x591EAEC69AFE63DE)}, + {UINT64_C(0xB51D41AFDFD24304), UINT64_C(0xDE28DF26DFBCC096), + UINT64_C(0x02F046C838A20DA7), UINT64_C(0x5EC3DBDC1AE0A45B)}}, + {{UINT64_C(0x7C19BD7563DD86C2), UINT64_C(0xDB1193118D78A57B), + UINT64_C(0xF48BB4FA23C5C4E7), UINT64_C(0x65514C1C97DB0A05)}, + {UINT64_C(0x1BC1F2F043CAC49C), UINT64_C(0x975FEB512851B4BE), + UINT64_C(0x0E0A4633DD60D530), UINT64_C(0x32BBBF1409B1D2C6)}}, + {{UINT64_C(0x79124749A670EAC0), UINT64_C(0x504D89D531DD893C), + UINT64_C(0xDDCED74CE0654D63), UINT64_C(0x58956BE5E2208707)}, + {UINT64_C(0xBE6A3ECD437E7077), UINT64_C(0xB8AB332D574095C8), + UINT64_C(0x4E79AC1C3869DA42), UINT64_C(0x79D4C3FB68859F51)}}, + {{UINT64_C(0x1E5FC1B97936A831), UINT64_C(0x1EA42ED2D74F1F41), + UINT64_C(0x33D22EC1C4EA3228), UINT64_C(0x5705333F729BEBFE)}, + {UINT64_C(0xDBD1A67B64596076), UINT64_C(0x6BFF269DFA65BA98), + UINT64_C(0x8451A9C26C47E715), UINT64_C(0x243D679D22898DB3)}}, + {{UINT64_C(0xE935D705B8323FD0), UINT64_C(0xE2DA88456937E5CB), + UINT64_C(0x1C9DFFF84A5EAE1E), UINT64_C(0x796F0B9545DF7A79)}, + {UINT64_C(0xC24D573F640DBA32), UINT64_C(0x2B77521702E4B792), + UINT64_C(0xD437EB6394D12C40), UINT64_C(0x6182AF6D4AD371F0)}}, + {{UINT64_C(0x133EDA5241FC7551), UINT64_C(0xA0088A2BE91714AF), + UINT64_C(0xB41B9AC25E0A73C0), UINT64_C(0x4808BB5A1D3B3953)}, + {UINT64_C(0xD875AA142B9AE648), UINT64_C(0x4F38C9462408244C), + UINT64_C(0x04B6B941FF051A87), UINT64_C(0x1D5B0B9E6DF48ECD)}}, + {{UINT64_C(0x27FD368A169E757F), UINT64_C(0x2ACB35607B94D9DB), + UINT64_C(0x81903F4B4D4C9B5F), UINT64_C(0x641F806C169B81DE)}, + {UINT64_C(0x574E94449E957475), UINT64_C(0xE08814AEC6C8EE52), + UINT64_C(0xD1AE71EC6C84FDDF), UINT64_C(0x44A56014FAA040D9)}}, + {{UINT64_C(0x06DA690875A48F60), UINT64_C(0x7BA6C9CBBB2CD408), + UINT64_C(0x57D2D0FF3A1BCBFF), UINT64_C(0x186F1A8B8928CE36)}, + {UINT64_C(0x0FFD205B7A40F877), UINT64_C(0x2915BC8E01AF68F7), + UINT64_C(0x816AC4DFC36A5FB1), UINT64_C(0x609B0A872C9E1F7D)}}, + {{UINT64_C(0x4032AC5EB97536FB), UINT64_C(0x53E6FE68A7C5EDB6), + UINT64_C(0x2F4149305F0DCBA1), UINT64_C(0x209752562837E314)}, + {UINT64_C(0xDF5DC4963C3C1D27), UINT64_C(0x0DFDAAF371797C36), + UINT64_C(0x5F3E9229DA504E04), UINT64_C(0x354EA88D8C234246)}}, + {{UINT64_C(0xAF6741C30922D317), UINT64_C(0x7429853B9DF0A572), + UINT64_C(0x0EA1AE041DC207A8), UINT64_C(0x2C1DAA1C450075F5)}, + {UINT64_C(0x27C71F166ED729B4), UINT64_C(0x785718A653AB8EC0), + UINT64_C(0x1EEC7BBFA8465487), UINT64_C(0x78DA9B044C578BA9)}}, + {{UINT64_C(0xFF9ED65EB3B707FA), UINT64_C(0xF8C8301FF5D28D33), + UINT64_C(0xB15D498FA65F5C0F), UINT64_C(0x6DEF256DB0EF2B89)}, + {UINT64_C(0x0D40A6B252184EF6), UINT64_C(0xC702EBE52BF06F5A), + UINT64_C(0x13E50E184BA041AA), UINT64_C(0x53552D887EC4C784)}}, + {{UINT64_C(0x2CD09B19F28ABB3A), UINT64_C(0x4F5C040F724EDB9B), + UINT64_C(0xD6820590E0DCBD16), UINT64_C(0x45D84DE91B7155A3)}, + {UINT64_C(0x995BDD01A251B1BA), UINT64_C(0x607F951737CAA4DC), + UINT64_C(0x747FEA1CA15D9674), UINT64_C(0x646C187673E97C97)}}, + }, + { + {{UINT64_C(0x1951682B6FAC1486), UINT64_C(0x8B578E1E4A4D14C5), + UINT64_C(0x083FA101B7384D42), UINT64_C(0x13380CE9ED1C8A87)}, + {UINT64_C(0xC7052ED8732A493B), UINT64_C(0xD5FEF40FB32E3D69), + UINT64_C(0xA64ACE8788833566), UINT64_C(0x6E36CFDB4177DC00)}}, + {{UINT64_C(0xAA14E281E742C3B4), UINT64_C(0xB75E7B2AEE5AF40A), + UINT64_C(0x3FC5FF0B1616EFA2), UINT64_C(0x090259B0AD763298)}, + {UINT64_C(0x4105B57E38753438), UINT64_C(0x70ED1A00CF2D8926), + UINT64_C(0x78921395322F40BB), UINT64_C(0x3AEE819967A3FF56)}}, + {{UINT64_C(0x88073D0011EA75FC), UINT64_C(0xD23D279606A4B4EB), + UINT64_C(0x1FD22F9ED85D3A6B), UINT64_C(0x6B5EA051AFB43B70)}, + {UINT64_C(0x96C9C176D99BE576), UINT64_C(0x85AC2B6C4C47261E), + UINT64_C(0x2726395999A9C378), UINT64_C(0x6D36E9FE8B5CABDA)}}, + {{UINT64_C(0xC9FC7661A58F614C), UINT64_C(0x82AA317D2E45AE73), + UINT64_C(0xDCB1925FC8CB9CC7), UINT64_C(0x1341C1AA27813205)}, + {UINT64_C(0xDD06745B6CD478AB), UINT64_C(0x0C2534B21E28F6A3), + UINT64_C(0xE21833459D27FE63), UINT64_C(0x7F1E2A3306466147)}}, + {{UINT64_C(0x378D727E5AEE2471), UINT64_C(0xB718FC17D47739B6), + UINT64_C(0xDA27CB9B4145E8EF), UINT64_C(0x3F8AB1A30EF2AB20)}, + {UINT64_C(0xA89ADD37E16C0141), UINT64_C(0x2127823B59DF1C95), + UINT64_C(0x53F90B73B7455CC2), UINT64_C(0x7F9605861183FBE5)}}, + {{UINT64_C(0x56D0475AE77235C3), UINT64_C(0xED2907C5B18ED61A), + UINT64_C(0x2D02C4CB7D73F6F8), UINT64_C(0x35EF69B4C42E7AED)}, + {UINT64_C(0x53A6120A31B7324A), UINT64_C(0x982DD22159F1A395), + UINT64_C(0x03ECA86F835CFD94), UINT64_C(0x4CBA837D73CA1BD5)}}, + {{UINT64_C(0x64F66D3941B17E6D), UINT64_C(0x3C869BF5CB14F3B3), + UINT64_C(0x1EBA045A28350EFA), UINT64_C(0x7ACFB882C7CDEC47)}, + {UINT64_C(0x7ACFD28D8FB3097B), UINT64_C(0xDA397C3162986426), + UINT64_C(0xD49F84212A1A7A94), UINT64_C(0x7B372E2DFAB65156)}}, + {{UINT64_C(0x3ADBDD0701D9DB0F), UINT64_C(0x617521E694FF0CFB), + UINT64_C(0x5BA5905C3F5BD583), UINT64_C(0x6F89603378670CD1)}, + {UINT64_C(0x0A59C447FB98EA11), UINT64_C(0x59B918CC653EDC59), + UINT64_C(0x00BF4D2A9F72C01E), UINT64_C(0x748455D147DEE00F)}}, + {{UINT64_C(0xE371A7A8386E7491), UINT64_C(0xF71711CC621A3484), + UINT64_C(0x1568256EE0015C3B), UINT64_C(0x5ACEF7A67D3FFDE9)}, + {UINT64_C(0x02ED70E5B08E4219), UINT64_C(0x7ECE1726832AC3AA), + UINT64_C(0xC3C0D32B951D1CA2), UINT64_C(0x4C99166438DECC59)}}, + {{UINT64_C(0xB99DF8BA96EB21A4), UINT64_C(0xB88D25F42BBF8E6D), + UINT64_C(0x16B3E0B1686DAA3C), UINT64_C(0x1131456170D47C57)}, + {UINT64_C(0x8DCDC3D13338342D), UINT64_C(0xE6D39B0188E028A7), + UINT64_C(0xB781F1ED72855B5E), UINT64_C(0x0E0D82F6CC192572)}}, + {{UINT64_C(0xC86A8E5DCF1E20AA), UINT64_C(0x1A87AEF3F9AB96D5), + UINT64_C(0xA8941635F3D19051), UINT64_C(0x67B1D0A2654FFF15)}, + {UINT64_C(0x266FD5ED92862ACD), UINT64_C(0xB72587BED11DEEAC), + UINT64_C(0x5CF0D2E2D09320AA), UINT64_C(0x68456EBA515E0277)}}, + {{UINT64_C(0x86A5461C771F64CA), UINT64_C(0xB7A220B748FF8D7A), + UINT64_C(0x9A0DD72AD7A568D1), UINT64_C(0x18F5E1DCF644D858)}, + {UINT64_C(0xB7AE1BC23E00364F), UINT64_C(0xD7EA31F3CEE8D9F7), + UINT64_C(0xD18DA30FDCDB883D), UINT64_C(0x179CFCA5CBA00F48)}}, + {{UINT64_C(0x496F2C0139E7860C), UINT64_C(0xACDF8B4027F15EAF), + UINT64_C(0x8871966C687AC815), UINT64_C(0x6228F1B58DB8FDB5)}, + {UINT64_C(0x8644656AF30ECF2B), UINT64_C(0x15576CC2AE1DEAFF), + UINT64_C(0x93D86D56697AB3FC), UINT64_C(0x3E4A428E811E3FF2)}}, + {{UINT64_C(0xFB85DE3D91B9F5DF), UINT64_C(0xCDB595D4B20A9C71), + UINT64_C(0x55CB08F3B44D671E), UINT64_C(0x780FC2E5FCD7D5ED)}, + {UINT64_C(0x815AB41F7F939366), UINT64_C(0xA7597A02ECD52B20), + UINT64_C(0x9BE078F04648E3C5), UINT64_C(0x7A3E217917BD3DC2)}}, + {{UINT64_C(0x22758C419D9E5E53), UINT64_C(0x44D675F49EF09FAE), + UINT64_C(0x1AB7986D27159F97), UINT64_C(0x72B3F02BB6B9465B)}, + {UINT64_C(0xA372FAC7FE56F578), UINT64_C(0x33FA6479DA534F4A), + UINT64_C(0xB0003307DF63BF2D), UINT64_C(0x34D40B4DB80D0F64)}}, + {{UINT64_C(0x8A8929DC3D2B9FC2), UINT64_C(0x7D12E86C55EE75E5), + UINT64_C(0xB3FE1AD392E1A870), UINT64_C(0x27148C94729CFE4C)}, + {UINT64_C(0x6A8C3B5218BA868B), UINT64_C(0xDD2006E47F038A9C), + UINT64_C(0x4606FA9EB7124908), UINT64_C(0x434A8C07F4940CB1)}}, + }, + { + {{UINT64_C(0x15F36EBEF98B91EA), UINT64_C(0x94D802DEC1ED17B1), + UINT64_C(0x3C45FA08085D77F8), UINT64_C(0x0A30B3C302FF571A)}, + {UINT64_C(0x70F5852D264C93D0), UINT64_C(0x5E51BCAB191AEE57), + UINT64_C(0xD5C14AE9FAD8E96E), UINT64_C(0x73B00534D4BC414B)}}, + {{UINT64_C(0x21CF876B12AFF5E7), UINT64_C(0x3E9F664CF75799A6), + UINT64_C(0xC23B7D199A0E73CD), UINT64_C(0x77AAB691427EEA36)}, + {UINT64_C(0x2E74F972604EE854), UINT64_C(0x8712C7A0F867C81A), + UINT64_C(0x6085980F953A4C56), UINT64_C(0x2DB997070F7707E1)}}, + {{UINT64_C(0x5ECC087F78BDB7A7), UINT64_C(0x43CC156C04C693F2), + UINT64_C(0x965067CF039BD7F1), UINT64_C(0x72140E566E3FAE2F)}, + {UINT64_C(0x26452E4DE019DED1), UINT64_C(0x6F4C23492EDEF154), + UINT64_C(0xA7066D7F054DFC0F), UINT64_C(0x544E6F6D3381AB44)}}, + {{UINT64_C(0x9B6E94699214C791), UINT64_C(0xD74F9C5586938BDC), + UINT64_C(0x0F1527F6FC2928FD), UINT64_C(0x5B0FBF0F63C3A053)}, + {UINT64_C(0xAC1F442CFC41FF10), UINT64_C(0x34EF88EF787B4932), + UINT64_C(0xF8120F08316732AC), UINT64_C(0x7BCCF12CA655DC4A)}}, + {{UINT64_C(0x750DF97FA6C7760E), UINT64_C(0xF1A0A827609BF215), + UINT64_C(0x7348C1B467FD04B4), UINT64_C(0x6A581016615C8145)}, + {UINT64_C(0x9DC012259A11AAFC), UINT64_C(0x24F65B053F2B0C8B), + UINT64_C(0xA27CB8BFDCB1B2A4), UINT64_C(0x3C44B811E48C1A71)}}, + {{UINT64_C(0xBC059AF2F780B295), UINT64_C(0xDF58928C0B6B247D), + UINT64_C(0x224D4C3C01903F3D), UINT64_C(0x7152E120818EE0AC)}, + {UINT64_C(0x6C8F474554BFF1BE), UINT64_C(0x98A6C7EC431ADEF7), + UINT64_C(0xDCB6BB7591B2CFB6), UINT64_C(0x145F6D397E83A5BB)}}, + {{UINT64_C(0x827C000C81D23BC1), UINT64_C(0x5CDC1135403956FC), + UINT64_C(0xD967A5B13C751158), UINT64_C(0x52AF85BC96201D7D)}, + {UINT64_C(0x522BC492644558F7), UINT64_C(0xF74A35AFED7A060D), + UINT64_C(0x10E5F9FD4DC4619E), UINT64_C(0x06071F1F324F60BB)}}, + {{UINT64_C(0xC5FFD5EF65921C34), UINT64_C(0x46CE1A69302BAA5D), + UINT64_C(0x89CC84EC4E22FF1D), UINT64_C(0x16A481AE68131754)}, + {UINT64_C(0x2A06A156B89039F5), UINT64_C(0x40B6401BB3A95AB9), + UINT64_C(0xFFCC53EB313820C3), UINT64_C(0x256B00E7EA959F76)}}, + {{UINT64_C(0xCCE87FC954FBDD74), UINT64_C(0xEC258542B23C6E1D), + UINT64_C(0x5BE392B49E5E1928), UINT64_C(0x65AF311047A8A759)}, + {UINT64_C(0x943F7A2547DFFD31), UINT64_C(0xDCCDA18651E896FA), + UINT64_C(0x71A93B1E933E747F), UINT64_C(0x44F5C468DFB043AD)}}, + {{UINT64_C(0xF6AEC52C786FCCBA), UINT64_C(0x23D49DCF6D51FA78), + UINT64_C(0x0F81463B9B40D8E6), UINT64_C(0x18B9D932708D3DA2)}, + {UINT64_C(0x796F94EDF986DC6D), UINT64_C(0x33B2CCC1FC2622C3), + UINT64_C(0x16790DFB9CCEC606), UINT64_C(0x6F5D1452CFD31481)}}, + {{UINT64_C(0x91F15DDC6C3A15D6), UINT64_C(0x45D12F404D360E75), + UINT64_C(0xF2E28EE81DAFFC9C), UINT64_C(0x5CC6A0566CDF5566)}, + {UINT64_C(0x855166D21779B9BF), UINT64_C(0x92BA5EF4CF94D9FE), + UINT64_C(0x1266FB2A985BC1DD), UINT64_C(0x4572CE8FCA3018AD)}}, + {{UINT64_C(0x8729A12DBE4BB604), UINT64_C(0x6A29C8494E99E9AB), + UINT64_C(0x54AE50117A89894D), UINT64_C(0x5E66A255CDB0EEBD)}, + {UINT64_C(0x006736EACBEE153B), UINT64_C(0x8A36CC2D225E7B86), + UINT64_C(0xF731E430EC0598EC), UINT64_C(0x49338E4D7FD9A11F)}}, + {{UINT64_C(0xE038CE03DA6DABAA), UINT64_C(0x13A08DCE7C1BCE0C), + UINT64_C(0x12D00DD0DA89EFBF), UINT64_C(0x70A13FB96FCF0510)}, + {UINT64_C(0x16ED1C925CDB03E2), UINT64_C(0xDF1AB61D08E9EE4B), + UINT64_C(0x48983DA803AF3E3D), UINT64_C(0x63CCA113429DB770)}}, + {{UINT64_C(0x6D9AC1EBCFB805E5), UINT64_C(0x47C3FE6950FA37B8), + UINT64_C(0xD308EC732C33D457), UINT64_C(0x3CB08E00D4CCA340)}, + {UINT64_C(0xC078DAD0BE862794), UINT64_C(0x2D147F83F4E10A57), + UINT64_C(0xE91820FF3DE1B3D5), UINT64_C(0x3D85DD726F30491B)}}, + {{UINT64_C(0xD486A022F5CBDD3A), UINT64_C(0x2663134ACAC0B99E), + UINT64_C(0x42DE13F55F3ABFCA), UINT64_C(0x4967A225B365B973)}, + {UINT64_C(0x99C98A2510F1F997), UINT64_C(0x23F057C97714FAB2), + UINT64_C(0xCE07CA6E1BA2338D), UINT64_C(0x3BA69161069F65D7)}}, + {{UINT64_C(0xCCD8C86FC026FB0E), UINT64_C(0xF49F1FEA50407A8C), + UINT64_C(0x72FEA37B7F19A1DB), UINT64_C(0x22A03E253F457DB7)}, + {UINT64_C(0x2D6C62B271F736D2), UINT64_C(0xCC99F8E7A5ACB4E5), + UINT64_C(0x8F7DBF2E0DE5F380), UINT64_C(0x24494786352B4933)}}, + }, + { + {{UINT64_C(0xF020E7A9AE2A5E8F), UINT64_C(0x5ADC788BD14C5F02), + UINT64_C(0xC5E5AFE465C84DB4), UINT64_C(0x392FACC435C2633C)}, + {UINT64_C(0x47D5007042DEE269), UINT64_C(0x76706ED76EB7849C), + UINT64_C(0x6BF56D56316548CB), UINT64_C(0x4A466066D37FF4DF)}}, + {{UINT64_C(0xC8EBBFB5C30283AD), UINT64_C(0x31E9CF963544E645), + UINT64_C(0x90EA9A4988886B50), UINT64_C(0x5E4B8C88021D3D5D)}, + {UINT64_C(0xA4DB92250DFEB658), UINT64_C(0x8AA95DB61910FDAE), + UINT64_C(0x82E9A997DE400EB9), UINT64_C(0x238967E996769A04)}}, + {{UINT64_C(0x1ABB076A89E2DF0A), UINT64_C(0xDA8B09B007065929), + UINT64_C(0x332BE8A563BD349B), UINT64_C(0x0EB973CEA2D35385)}, + {UINT64_C(0x67F7AE639C7D375E), UINT64_C(0xA235818DE7AE90B1), + UINT64_C(0x2B59C26E817493B0), UINT64_C(0x39DC105033C4ACD6)}}, + {{UINT64_C(0x11801ACE7B7DB3F5), UINT64_C(0x79C214C38CC97CA5), + UINT64_C(0xB4BFE1ABBF2674BF), UINT64_C(0x598EA7DC43252011)}, + {UINT64_C(0x217FF6D3B08F8EF5), UINT64_C(0x9797BBC98B9226B7), + UINT64_C(0xAB8E98C97B0EDB09), UINT64_C(0x240EC22D083A401F)}}, + {{UINT64_C(0x55A75BCF459ABC3D), UINT64_C(0xB2F9859864ECC2DC), + UINT64_C(0x271C47C39EE84779), UINT64_C(0x0166E5D4BF9BDBF2)}, + {UINT64_C(0xD205380F4215B666), UINT64_C(0xF704139664E9FE64), + UINT64_C(0x4C737E942BB0DA40), UINT64_C(0x2E763521C8119691)}}, + {{UINT64_C(0x79550B60FD2F8593), UINT64_C(0x47E00AFD0C17A56F), + UINT64_C(0x0D900A9DB44157CF), UINT64_C(0x016CF746A81BED76)}, + {UINT64_C(0xC21E861BAC47A84B), UINT64_C(0x0E14387A1724BD47), + UINT64_C(0xC209303E2077F7BC), UINT64_C(0x33B5EB59BAD12F0B)}}, + {{UINT64_C(0x7152354F9850FC1F), UINT64_C(0x1239576F83637934), + UINT64_C(0xB00C4E4E82AF46BA), UINT64_C(0x563D5062EC3FEEFF)}, + {UINT64_C(0xEF25E37333D67B7F), UINT64_C(0x3A80A50E50D9845E), + UINT64_C(0x1DCED1E9A5787EF5), UINT64_C(0x15723E9AA0F87C3C)}}, + {{UINT64_C(0x217435112B4A156D), UINT64_C(0xB75C041CCD12BD2B), + UINT64_C(0x6947368C79F393A6), UINT64_C(0x32CDE49E76420E56)}, + {UINT64_C(0x67FBA31543D612FF), UINT64_C(0x697F7FAEE3B87BC2), + UINT64_C(0x980DAFBC7391129A), UINT64_C(0x438B28586F707469)}}, + {{UINT64_C(0xDA8AD16D5E9D085F), UINT64_C(0xE636F1AF768FA87C), + UINT64_C(0x08520756B85FF1F1), UINT64_C(0x1B8184816ABB31BE)}, + {UINT64_C(0x25B3DCB92E686F1A), UINT64_C(0xE12821342B0CB829), + UINT64_C(0x626232BC3B9B759C), UINT64_C(0x797316BB38C4338E)}}, + {{UINT64_C(0xF8365B644A62DCBD), UINT64_C(0xC2CF51BA6BF0EFED), + UINT64_C(0x37E379EFABF74764), UINT64_C(0x5DC32071A350D603)}, + {UINT64_C(0x5465CC805B732100), UINT64_C(0x3231B4E3B3BB5366), + UINT64_C(0x23F5385ED0D067CE), UINT64_C(0x76CD762167D33451)}}, + {{UINT64_C(0xC6C93A0555D857DD), UINT64_C(0xB4B6F1768F308F7F), + UINT64_C(0x2371CD88C0F13577), UINT64_C(0x1E507D6C70807D9D)}, + {UINT64_C(0x7A77CCE1C73E8E2F), UINT64_C(0x1DD96274FCCBDEEB), + UINT64_C(0xA4DBEA5D03F378B8), UINT64_C(0x44B4DF552A1C347F)}}, + {{UINT64_C(0x9853D2828D067A47), UINT64_C(0xBF0ADAF486813E74), + UINT64_C(0xFDE1F24D39409037), UINT64_C(0x0E629604973B045D)}, + {UINT64_C(0x9880A74B3BB92FAB), UINT64_C(0xBC4E3405C6C4D6C6), + UINT64_C(0x98C243185184A2D6), UINT64_C(0x07D65412C210C183)}}, + {{UINT64_C(0x3938E528441A5FBC), UINT64_C(0x2CCD837DCCC66B22), + UINT64_C(0x075FADE75E606282), UINT64_C(0x321811654BB0E76A)}, + {UINT64_C(0xE7240305FC929890), UINT64_C(0x1FA427C8E03AAA52), + UINT64_C(0xF23C879B0BC7B9F8), UINT64_C(0x699A1235D6BBC908)}}, + {{UINT64_C(0x20C2978114124B8A), UINT64_C(0x0C6464B348000278), + UINT64_C(0xF1939127D644E10C), UINT64_C(0x47A479E64EC07EE3)}, + {UINT64_C(0xB631576877023389), UINT64_C(0xC0FD319D8BFDD90F), + UINT64_C(0x0EBEC2006CB022D4), UINT64_C(0x6810DF3D302F58EF)}}, + {{UINT64_C(0xCF97FA07ACB1C3F2), UINT64_C(0xACC60D84A2C3F2F1), + UINT64_C(0x4EF3CAAC5DEB73D4), UINT64_C(0x654D0D90D5472C1D)}, + {UINT64_C(0x5A39A718E4729062), UINT64_C(0x84B286B08324E0F2), + UINT64_C(0xA07A01CBD21E8457), UINT64_C(0x0EC091C7B094714E)}}, + {{UINT64_C(0x7AB81940895736BD), UINT64_C(0x9AE791B7E4679DF5), + UINT64_C(0x36163D81F064109B), UINT64_C(0x3DDEE4A40E956B07)}, + {UINT64_C(0xE146E7EEFEAAE47C), UINT64_C(0x81C0C2A76A8EEC03), + UINT64_C(0x10BB8DD9A8C315CB), UINT64_C(0x2CB423D8D21B9AB0)}}, + }, + { + {{UINT64_C(0x5B11D3C7166A5B9A), UINT64_C(0x973627BB8768861D), + UINT64_C(0x82A5E2CD5A3E442A), UINT64_C(0x13F6C741DDE63678)}, + {UINT64_C(0x8DAA3C74D892738E), UINT64_C(0x0A07D651A932376F), + UINT64_C(0xE12612C56892504B), UINT64_C(0x619D2B1DCA3FF301)}}, + {{UINT64_C(0x2B6D686F1B07CEB7), UINT64_C(0x90C0260C298D0996), + UINT64_C(0x8CAAB926102BC73C), UINT64_C(0x445A6487AEB3911C)}, + {UINT64_C(0x7EE1E54757F17290), UINT64_C(0xC055478B417711BF), + UINT64_C(0x29EF9FEC5CFA42C2), UINT64_C(0x5A022DE42B8EA0D6)}}, + {{UINT64_C(0x81A5EC18AEEB2675), UINT64_C(0xA867C5AAAD1BBA8A), + UINT64_C(0xAECB36888DB47EBC), UINT64_C(0x77CE00BC26D1038F)}, + {UINT64_C(0xADC635EF3E68504B), UINT64_C(0x0EFC21DEDAE8AF4F), + UINT64_C(0xDE57FD43AC70C4C9), UINT64_C(0x123360BEE78FFC0D)}}, + {{UINT64_C(0xD608DB32D82B61DB), UINT64_C(0x05AF2A908E45C853), + UINT64_C(0xF1B8213E9D3B0032), UINT64_C(0x2312F8ABCAD15361)}, + {UINT64_C(0xDC8D8E32C29EE818), UINT64_C(0x07D7A475DE5CD587), + UINT64_C(0x766109130C6C38B8), UINT64_C(0x0131B6C6D7984BD9)}}, + {{UINT64_C(0xC05CD4D0CF69C844), UINT64_C(0x747C092D81A9B005), + UINT64_C(0x0D793551D9E39F54), UINT64_C(0x3BBB00DA7FFEF17C)}, + {UINT64_C(0x6CAB83D9655AD7C1), UINT64_C(0x601BECD066A8F590), + UINT64_C(0xFADB086DAE51811B), UINT64_C(0x7768A5D8D69F734B)}}, + {{UINT64_C(0x3BB9B347F0E2385E), UINT64_C(0x376C8C48F7D39F23), + UINT64_C(0xE656C1A4D82EC840), UINT64_C(0x328B25C9FC2AC59A)}, + {UINT64_C(0xD02B2F39A046BEE6), UINT64_C(0xDBAB19A580066D6C), + UINT64_C(0x6A2E8F67E938B7F7), UINT64_C(0x645A57A1AA7F2661)}}, + {{UINT64_C(0x6227904D9A006FAE), UINT64_C(0xA975FC4CB598CB72), + UINT64_C(0x945BFC2FA1120B82), UINT64_C(0x437A8AB42AC15CE5)}, + {UINT64_C(0xA512A1070F53317C), UINT64_C(0x7B552554FF9BD7D6), + UINT64_C(0xF81213E754155AF9), UINT64_C(0x0923F42CFDCE0842)}}, + {{UINT64_C(0x135239165216BB55), UINT64_C(0xF27E4C7A599CA117), + UINT64_C(0x464D040A7DD95BE1), UINT64_C(0x408974863C417D05)}, + {UINT64_C(0x0A3D16BF7C88E5D7), UINT64_C(0x0B94C661C13B286F), + UINT64_C(0xF73C7126E2214821), UINT64_C(0x4B3D5BF0F2F6DAFA)}}, + {{UINT64_C(0xCFABD8A2F1A4332A), UINT64_C(0x56DB1546BAAC9A51), + UINT64_C(0x8CC5204B04416247), UINT64_C(0x75EC13BFF0583310)}, + {UINT64_C(0x0D68896ED35B55D0), UINT64_C(0xE89274E267FC14D9), + UINT64_C(0x18D425C0FC322878), UINT64_C(0x69477DD7916C714A)}}, + {{UINT64_C(0x427CBB6C9BDDF0F9), UINT64_C(0xCF6941E2DB9F52CB), + UINT64_C(0xEF144DF635E60DFA), UINT64_C(0x27B5246EB61DF45C)}, + {UINT64_C(0x0E124518B8D3D1D9), UINT64_C(0xBB3BA1348B313B95), + UINT64_C(0x050DCBDF0FA2B7A9), UINT64_C(0x50DBCF6D1D0A99B5)}}, + {{UINT64_C(0x8A8B22CB3924A1E5), UINT64_C(0x86CB4C5A118F9D55), + UINT64_C(0xE5330ACC5B339C53), UINT64_C(0x6D5FDDF966A35A67)}, + {UINT64_C(0xC95007196F6438A5), UINT64_C(0x9723F2BA07E5394E), + UINT64_C(0xA9CE2117866B45A8), UINT64_C(0x1B737D8D045CA2CA)}}, + {{UINT64_C(0x6093F5A56EE00E30), UINT64_C(0x5CAB98D45DE0A6FC), + UINT64_C(0xADFB652C65DE754F), UINT64_C(0x679900D1862EFD1D)}, + {UINT64_C(0x6E5C230FAFC5D235), UINT64_C(0x3A1E557912CF6DD3), + UINT64_C(0x241C20FB03FB4FA0), UINT64_C(0x562FFAE320F6C013)}}, + {{UINT64_C(0x6EFC732F397F25EC), UINT64_C(0x304D1F7DBC1F03B8), + UINT64_C(0xA2FA60018890DADE), UINT64_C(0x4F91F97C51A25539)}, + {UINT64_C(0xE75F9C5048F4EF02), UINT64_C(0xCC53F460218AEE9D), + UINT64_C(0xE7B4048910D76649), UINT64_C(0x148F90A242ECDBA4)}}, + {{UINT64_C(0xBF45023A1F683AD6), UINT64_C(0x2EA5F70C95E868D1), + UINT64_C(0x47A19F33A97F2DE3), UINT64_C(0x3C8CCA9E8A76ED9F)}, + {UINT64_C(0x01562C6EE1A268D0), UINT64_C(0x9EB6EBACBA4EF01E), + UINT64_C(0x835E64D4342410FB), UINT64_C(0x06F96B87FFF4594D)}}, + {{UINT64_C(0xE49A383AD233612B), UINT64_C(0x3CA5421FC9C14F64), + UINT64_C(0x25192E1BBB53DF81), UINT64_C(0x3C1451FEA94C046C)}, + {UINT64_C(0x72B270F80423FAA8), UINT64_C(0xFF63513D3763888A), + UINT64_C(0xB22F2F20C1745190), UINT64_C(0x2E005A7A35DEA32C)}}, + {{UINT64_C(0x6B5A4E7A6305B2EB), UINT64_C(0xF017BCA19CCD05D2), + UINT64_C(0xB37027C9D19AD8CB), UINT64_C(0x2CFCB4700CBB36A6)}, + {UINT64_C(0x17F4FE51663F3485), UINT64_C(0x7DC20A170DC3467B), + UINT64_C(0x6B56BA3F4AF63CBD), UINT64_C(0x4E7CF2890D5D64AF)}}, + }, + { + {{UINT64_C(0xE2C5CD1F7F59D2E9), UINT64_C(0x6B9ACEB79D7FBE1E), + UINT64_C(0x84F0441DA20225B0), UINT64_C(0x15875CDA8B369FBC)}, + {UINT64_C(0xED1332770659E294), UINT64_C(0x7FAA913E7AE02043), + UINT64_C(0xCA0E58DA9DCEDE14), UINT64_C(0x5F6A70FDCDE68547)}}, + {{UINT64_C(0x524B790DE7282711), UINT64_C(0x4B4F6246BCA05694), + UINT64_C(0x85169ECB949AF774), UINT64_C(0x5B168842CC743068)}, + {UINT64_C(0xB8D0E9F231FB3BA3), UINT64_C(0x56DD4BC362D471C7), + UINT64_C(0xB14D689CE2A34F75), UINT64_C(0x7F4E171702E8D2D2)}}, + {{UINT64_C(0x8EE3491AB17090B9), UINT64_C(0x67C071166B7EDAF4), + UINT64_C(0x6876E4CE4D0E6CCE), UINT64_C(0x6D2FBB64BC5A86BE)}, + {UINT64_C(0x0431C67A070FA8C3), UINT64_C(0x91EFF9BE0F5D65F4), + UINT64_C(0x332985E2E07088DF), UINT64_C(0x006D2583676EADA8)}}, + {{UINT64_C(0xA1FBCC370AA747D6), UINT64_C(0xADEA4A90B0DFDF3C), + UINT64_C(0x650162C7401ED81B), UINT64_C(0x0FBC4841A8B15E22)}, + {UINT64_C(0x1044B4E8BF98CDAC), UINT64_C(0x37071115ECD1C668), + UINT64_C(0x29B93C17233C220C), UINT64_C(0x4BEBC3CCE69BC0C0)}}, + {{UINT64_C(0xD1A16E3746BF7E51), UINT64_C(0x889C7782F7A7370C), + UINT64_C(0xC73F396E3CCB474D), UINT64_C(0x1C508F18B9D67A2E)}, + {UINT64_C(0x3F17E9676B03B7E7), UINT64_C(0x3928F1D8F857BB26), + UINT64_C(0x3086FB2EC0EA8620), UINT64_C(0x15DC32C21BE7C3E4)}}, + {{UINT64_C(0xF48D4C3211F4D949), UINT64_C(0xE14A4AE3B0357C05), + UINT64_C(0x77A1121F151D91AE), UINT64_C(0x33F85C2FE8C6869D)}, + {UINT64_C(0x8EA3BB4C364B77B0), UINT64_C(0x1F155B919BD43E50), + UINT64_C(0xA6C2873054748E7D), UINT64_C(0x5AA34DDAE7DDC539)}}, + {{UINT64_C(0xF0F80DDAA6CF8A82), UINT64_C(0x87DE6D6C091663B5), + UINT64_C(0x9479873402FE5519), UINT64_C(0x109D411F96722130)}, + {UINT64_C(0xBC47CA73E661041F), UINT64_C(0x071D605965741541), + UINT64_C(0x7CD4DF6607E08735), UINT64_C(0x175E1F77E68FC807)}}, + {{UINT64_C(0xB88BDAB8DA58865B), UINT64_C(0x14AD911220ED2B89), + UINT64_C(0x2B21AEDF039BF0A3), UINT64_C(0x789717779D4B77E9)}, + {UINT64_C(0x133DA2ACD6612EF3), UINT64_C(0x6260FCF512AD1785), + UINT64_C(0xDBA784DA9DF08843), UINT64_C(0x1A30C4CF4449FBD1)}}, + {{UINT64_C(0xB6FECE874EF7ACA2), UINT64_C(0x9CE7B61A13F7C58C), + UINT64_C(0x6B0223C9F8719A60), UINT64_C(0x21199AA5A3B3B088)}, + {UINT64_C(0x4A7171966938BB02), UINT64_C(0x2E9A17C9E7ABC263), + UINT64_C(0x83F796234BAB12B7), UINT64_C(0x15C0C4AF49D7CFBD)}}, + {{UINT64_C(0x99B3413956D2957F), UINT64_C(0xA51B8DFD07218BB6), + UINT64_C(0x47CA4323FC91D7C9), UINT64_C(0x44B01E753DCFD5F0)}, + {UINT64_C(0x29F9D18E8CE894F3), UINT64_C(0x22BCC54095227C6F), + UINT64_C(0x815CD9363FC75409), UINT64_C(0x0D58B325D8989472)}}, + {{UINT64_C(0x8B4C6980B6C80208), UINT64_C(0xA5D974978FB77CCD), + UINT64_C(0x1B8965719477132F), UINT64_C(0x348ABC213AE45F53)}, + {UINT64_C(0xE438C1C314BCDB96), UINT64_C(0x63150CF98007C1BF), + UINT64_C(0xDB861A338508B903), UINT64_C(0x421DFB017B04ECD6)}}, + {{UINT64_C(0xF2FCE58B19430E7B), UINT64_C(0x851A5F03D0F8ECB7), + UINT64_C(0xE756C1670A5A1833), UINT64_C(0x25A51405227F866C)}, + {UINT64_C(0x40F34CB03C6EE5F3), UINT64_C(0xF4010401F244B5CF), + UINT64_C(0x0E21BDED01349BCF), UINT64_C(0x1B129D8204547F42)}}, + {{UINT64_C(0x802EC4800927D153), UINT64_C(0x0F75E4FE72541520), + UINT64_C(0xA4A1557A026C4613), UINT64_C(0x25E8DAFB7D92BC18)}, + {UINT64_C(0x1D87A14312F15F05), UINT64_C(0x79390E3C7B6B4240), + UINT64_C(0xFC199D76492E6273), UINT64_C(0x0053F1C47EB090C0)}}, + {{UINT64_C(0xE790F1CAACEE6DFC), UINT64_C(0xC8FB4626DFEA04FF), + UINT64_C(0xBF03627F627D88D7), UINT64_C(0x1B3698843D81A75A)}, + {UINT64_C(0x83405DDA917FA19D), UINT64_C(0xFFB23FF98C7DDCD2), + UINT64_C(0x644F54C740F10B48), UINT64_C(0x4636FADF17FF713A)}}, + {{UINT64_C(0xDA62ECC227F417E4), UINT64_C(0xC0DBE48FFD8662BE), + UINT64_C(0x729EE4AA1011E73C), UINT64_C(0x4BAE5D3C3E11C84B)}, + {UINT64_C(0x854DFFF86CEF6CDA), UINT64_C(0x7939228CCB7131EA), + UINT64_C(0x58B3744AD3EBC607), UINT64_C(0x6EB9248F2049E239)}}, + {{UINT64_C(0x0265CAE9ED0D4E57), UINT64_C(0x92166D028AA65AEF), + UINT64_C(0x2E337CDA198345D6), UINT64_C(0x6775330CABE1AD7B)}, + {UINT64_C(0xA9A828A8BF6FBC7D), UINT64_C(0x33A56F8DCBFEA393), + UINT64_C(0x2DB72F77D811EC51), UINT64_C(0x3DDFCD268327C78E)}}, + }, + { + {{UINT64_C(0x7CF8A521B46AA2C4), UINT64_C(0xE3B20937ACF0D567), + UINT64_C(0xD47D8D1BA440648E), UINT64_C(0x674E79201E9791A1)}, + {UINT64_C(0x27B714EB18366462), UINT64_C(0x1526E5588476F588), + UINT64_C(0x72C8D3746C240D70), UINT64_C(0x066BBAFB805C1265)}}, + {{UINT64_C(0x15F1CFF5457034E1), UINT64_C(0xCF7C6550DD819FA7), + UINT64_C(0x57C2CD5377AC7AD6), UINT64_C(0x7DB2A8BEAFED669D)}, + {UINT64_C(0x2DAFD95FD4697340), UINT64_C(0x382FF89215A6B6E7), + UINT64_C(0x036FC753BF4A6B1B), UINT64_C(0x3E7AC46DE4012711)}}, + {{UINT64_C(0xBA5ECDED5752A34D), UINT64_C(0xB08749D46BAA08DD), + UINT64_C(0x8A2B98974A4A47A8), UINT64_C(0x7230966FE42DCE02)}, + {UINT64_C(0xA6FF614A58654FF5), UINT64_C(0x7F3531D1AB3C2A7E), + UINT64_C(0x0282A2F00D0ED417), UINT64_C(0x2DC7B872EA9755A3)}}, + {{UINT64_C(0x7678D7652392536A), UINT64_C(0x0C2025F1574C657D), + UINT64_C(0x01701C80795413DC), UINT64_C(0x63F0D4965396279E)}, + {UINT64_C(0xB0F9968AFA32EA64), UINT64_C(0x81265D155BB393DE), + UINT64_C(0xC05ECC6D0BCD8C10), UINT64_C(0x4F3769F92824457E)}}, + {{UINT64_C(0x9AA58686F13DB92E), UINT64_C(0x1155CDF4ED2E1B18), + UINT64_C(0xA06E919409823F5A), UINT64_C(0x7F1BBE734257AB0E)}, + {UINT64_C(0x2DFB6472ABA6FCD1), UINT64_C(0x04BE6BCAD73D850E), + UINT64_C(0x72AAEC34297D312B), UINT64_C(0x31F4C02C7509D9F5)}}, + {{UINT64_C(0xAA9BA0007CA72AD5), UINT64_C(0x21EE29457FBCB4D6), + UINT64_C(0x0E210AAB1CF8580A), UINT64_C(0x600479FE0FA8DE10)}, + {UINT64_C(0x246FD26554322F70), UINT64_C(0xC60BE9BB60DF1893), + UINT64_C(0x04D4F99D05137E38), UINT64_C(0x6ACB9E016164C176)}}, + {{UINT64_C(0x126F2C7EC1DB7B6C), UINT64_C(0x4C3B30B5CF4DD3C0), + UINT64_C(0x827D57A2F782A489), UINT64_C(0x41B897DEE52621F0)}, + {UINT64_C(0xED31C55ADDA0A3CD), UINT64_C(0x21C91BB2A11AD179), + UINT64_C(0x60E606B843FD6E23), UINT64_C(0x31B8138D51ED7FA6)}}, + {{UINT64_C(0x1387B313E72E4BC5), UINT64_C(0xDCCCB09C82EBFC72), + UINT64_C(0xF0B01202AA4432D6), UINT64_C(0x632599C47C52B69D)}, + {UINT64_C(0x3922D0C0BCE9A04C), UINT64_C(0xC2397D88B53F4268), + UINT64_C(0x50AE5ED900669858), UINT64_C(0x1B2BD4C216C7696B)}}, + {{UINT64_C(0x6FAE1B082BF7DF06), UINT64_C(0x870B3FE85210DB3B), + UINT64_C(0x680BE4229BDC0B91), UINT64_C(0x56BA83C6BCC970AD)}, + {UINT64_C(0x1AE91BAC859D6C78), UINT64_C(0xC5BDD5FB2895A1A6), + UINT64_C(0xA169E73C550610F5), UINT64_C(0x01B467670CC7D3EA)}}, + {{UINT64_C(0x1E147A510EC5ECE2), UINT64_C(0x9B612A1FD0E2C46C), + UINT64_C(0x664FDD555E293783), UINT64_C(0x52070E1567DC4DBC)}, + {UINT64_C(0x449B53E54A4903FB), UINT64_C(0x79B53583A8D30103), + UINT64_C(0x616C97F3AF7CC314), UINT64_C(0x6BEB304C2849862C)}}, + {{UINT64_C(0xB9C636D6019F0313), UINT64_C(0x0B08E7CBD3E0188D), + UINT64_C(0xEAEB1715D704DE15), UINT64_C(0x4990282C837E7543)}, + {UINT64_C(0xCBB0BD49FBD3A061), UINT64_C(0x3454A8AC1DA124AE), + UINT64_C(0x0D524A0237D64EAB), UINT64_C(0x766807490B3E4ADE)}}, + {{UINT64_C(0xC293E01195B04835), UINT64_C(0x76D304BA23D0C885), + UINT64_C(0x36A63627D6552D80), UINT64_C(0x3B4FA680C504CCAB)}, + {UINT64_C(0xF25B3A04E1FC08DF), UINT64_C(0x786380E562D080F8), + UINT64_C(0x0A731427DAC0D110), UINT64_C(0x1D65288FD628429A)}}, + {{UINT64_C(0x3CE5E929DC94453E), UINT64_C(0xEC7CF988B6073324), + UINT64_C(0x023361E7DCB35234), UINT64_C(0x3AF20624F5E89B7C)}, + {UINT64_C(0x860F188EA5B2B103), UINT64_C(0x5EAC84CECB6D112F), + UINT64_C(0x63B200C3914C9FFD), UINT64_C(0x327870A055A1FDCB)}}, + {{UINT64_C(0x4F94633C155280ED), UINT64_C(0xF98321D53654B8AA), + UINT64_C(0x9C057A23489AE89A), UINT64_C(0x1124A1FBD59CA3B5)}, + {UINT64_C(0x2F4CE0521F64AFD7), UINT64_C(0x841EE4417C789152), + UINT64_C(0x93531ED459A98374), UINT64_C(0x69A4F48C36BB8F07)}}, + {{UINT64_C(0xD8FFD2435FD512A7), UINT64_C(0xF48C96F19BEA1738), + UINT64_C(0xF70E1F6A0FFB4553), UINT64_C(0x29DB63B15FF91D21)}, + {UINT64_C(0xC1355C2377BF7279), UINT64_C(0xD3946EE9A2FC904D), + UINT64_C(0x07223881E7B7A9F4), UINT64_C(0x212D896756E08ED6)}}, + {{UINT64_C(0x32B8C22A45503451), UINT64_C(0x9E4FDAF1E6AB7B3D), + UINT64_C(0x7A300E3D04A31294), UINT64_C(0x0F529DFD05FE2AEB)}, + {UINT64_C(0x7EFFEA9E9951B6FB), UINT64_C(0x18C60266336B9A2B), + UINT64_C(0xB78A5EE16C8D0EEC), UINT64_C(0x68C17FE446ED0B23)}}, + }, + { + {{UINT64_C(0xF707FAD596B3222E), UINT64_C(0xD6AF61610223F804), + UINT64_C(0x13FFDC744F43A0E9), UINT64_C(0x6A3B70E93347F487)}, + {UINT64_C(0xBDDF02A46A4AF4F5), UINT64_C(0x61B451E1E4C69950), + UINT64_C(0xFF854590F9E3BB99), UINT64_C(0x46EB1F697CD54C54)}}, + {{UINT64_C(0x70E643B68E6848D3), UINT64_C(0xC58B8519848C2587), + UINT64_C(0x2F195C54EDF4A38E), UINT64_C(0x206E6A323D2A52E8)}, + {UINT64_C(0x234845B5417595BF), UINT64_C(0x90354373FF5AE3CB), + UINT64_C(0x13BE31CE89C0E555), UINT64_C(0x2D18AA43CC67E26F)}}, + {{UINT64_C(0xC74EE8C4F041BD17), UINT64_C(0x655CF527C2B3CC64), + UINT64_C(0x6735CF0A160FF053), UINT64_C(0x35DAB9EB04218A0D)}, + {UINT64_C(0x32BB2E9ACBC34E46), UINT64_C(0xF780CEAF7D190342), + UINT64_C(0x161C0C1A9F0DA1A4), UINT64_C(0x7B198C9EE7642FD6)}}, + {{UINT64_C(0x936C763E122FD0B4), UINT64_C(0xA3819ED9A7E0C435), + UINT64_C(0x86228B04CAAE6D7B), UINT64_C(0x2E1160187A3C65B4)}, + {UINT64_C(0xF55BB1F3D4EB0345), UINT64_C(0x858A0BF40630B569), + UINT64_C(0x8CC22657CB78A626), UINT64_C(0x7CD93BDEB45E3005)}}, + {{UINT64_C(0xCAA1F45998E517AB), UINT64_C(0x36E60281B34A6F5C), + UINT64_C(0x877A49F30B46F47F), UINT64_C(0x0179824B9E7BE761)}, + {UINT64_C(0x6830A2B2D455D9C0), UINT64_C(0xB734BA0A7BA31962), + UINT64_C(0x344665A4065C3B51), UINT64_C(0x0B1D2210562E7F1D)}}, + {{UINT64_C(0x289BAFCA0B2E22E8), UINT64_C(0x038929A083390107), + UINT64_C(0x968A014D0683E782), UINT64_C(0x5A1AD5C853D34463)}, + {UINT64_C(0xA26133349527B2CA), UINT64_C(0xE8471271310B745F), + UINT64_C(0x49C81A2631387F59), UINT64_C(0x1B955AF70343C691)}}, + {{UINT64_C(0x069328ADA4A9FCA4), UINT64_C(0x14EF09A7624FCB94), + UINT64_C(0x21C76F0DE3E0CECD), UINT64_C(0x5F470B866C1BCE0F)}, + {UINT64_C(0x79319A3FB15BC8B4), UINT64_C(0xB1407CB1DB06AFA1), + UINT64_C(0xD69E9E09911116E0), UINT64_C(0x6E77524E0756579E)}}, + {{UINT64_C(0xD3EC5EBCE2D851D5), UINT64_C(0xC888BC2303B63143), + UINT64_C(0x5F3DE41EDB0C357F), UINT64_C(0x646FFBD3C3D47D37)}, + {UINT64_C(0xE53F8BEB0692639B), UINT64_C(0x7E194E37D4FBC3D4), + UINT64_C(0xE1988A22452B2A2E), UINT64_C(0x5D359A15B013F9E1)}}, + {{UINT64_C(0xA48160A7B2A6627D), UINT64_C(0x5EFDC8483CE8789E), + UINT64_C(0x264CBFF1B1CD14EE), UINT64_C(0x288823D444D84222)}, + {UINT64_C(0x2F091B233A6DB1F8), UINT64_C(0xBFD737B5CEA89B44), + UINT64_C(0x682AB86C17F5E969), UINT64_C(0x7653005CABB0FA87)}}, + {{UINT64_C(0x619C2629D4B8A43A), UINT64_C(0xBFDAF433B6DAF943), + UINT64_C(0xDC7AA1EE6D640DB8), UINT64_C(0x35ADEEA83B08D55C)}, + {UINT64_C(0x30935454D7AF5382), UINT64_C(0x1F9C51A13D68A24A), + UINT64_C(0xDBD13CFC78BDBEA9), UINT64_C(0x003B6D9931210A3F)}}, + {{UINT64_C(0xD4547A329C2B515D), UINT64_C(0x4AF29AA8FECDAAA9), + UINT64_C(0x85C80ECDE401D5AD), UINT64_C(0x2830332D8AA315A1)}, + {UINT64_C(0x5675882371DCE198), UINT64_C(0x55AC9D106ACBDEE3), + UINT64_C(0xF6D468CF575CF4BB), UINT64_C(0x46E4FA98576B5C4A)}}, + {{UINT64_C(0xAD20F82020D859EF), UINT64_C(0x380915882A5462B0), + UINT64_C(0x35F45C9F2135DA7D), UINT64_C(0x6B426F91F7F20DBD)}, + {UINT64_C(0x4A0D8CBEF96E77D2), UINT64_C(0x8FC36F5BCC51D3F4), + UINT64_C(0x7A1870DDBE16A0A8), UINT64_C(0x29C3E2B3114DB780)}}, + {{UINT64_C(0xFF692A4C21779E6E), UINT64_C(0x698231ABA6026EC1), + UINT64_C(0xDAB0D835EF03E21B), UINT64_C(0x770BFFACC846D56F)}, + {UINT64_C(0xCD28722D3B8B0747), UINT64_C(0x3DEFE04032AE95E5), + UINT64_C(0x6F5D816A0F9857D6), UINT64_C(0x2E483FEDFC630F5E)}}, + {{UINT64_C(0xDBF82EC4967C7140), UINT64_C(0x6265CAD10D20A2A5), + UINT64_C(0x1509652B5862DEFE), UINT64_C(0x699DD93994A284E5)}, + {UINT64_C(0xC01166460B2CC732), UINT64_C(0x583FE01294C3EF86), + UINT64_C(0xCD5DAEA8CD353430), UINT64_C(0x2B39A746C7ADA62B)}}, + {{UINT64_C(0xF449B989E4257BBC), UINT64_C(0x95BA21BAA90DCCE6), + UINT64_C(0xDD53AD5C93CA4ACD), UINT64_C(0x7FCF27380BB4213B)}, + {UINT64_C(0x0E57C1C0C2E7E54E), UINT64_C(0xD1769DAEA1A0E975), + UINT64_C(0x68F62C4EC3B6E13B), UINT64_C(0x75152F9A781242D8)}}, + {{UINT64_C(0x4D58276824B8B820), UINT64_C(0x36E37AC45BBD9F84), + UINT64_C(0x1F34414ADA076F12), UINT64_C(0x08A77C283E0333C6)}, + {UINT64_C(0xBB1F017DD9193382), UINT64_C(0x56E9AA2483A5612D), + UINT64_C(0x6959B02BD0B4554F), UINT64_C(0x2479BC56E4559B52)}}, + }, + { + {{UINT64_C(0x96D631C60F570A8E), UINT64_C(0xE3F566A3D714B807), + UINT64_C(0x564DD512EF7E1550), UINT64_C(0x1C5CF24A79FA2F58)}, + {UINT64_C(0x973BA599897958DB), UINT64_C(0x93951D1711A9CBB1), + UINT64_C(0x86BA17F6A37A969A), UINT64_C(0x4807CAC7A069B195)}}, + {{UINT64_C(0xB64AC0D46665B35E), UINT64_C(0xBA9CD3947EF72C68), + UINT64_C(0x838807B29C4CBC44), UINT64_C(0x2675D26882770197)}, + {UINT64_C(0xBFC2F13717087FA9), UINT64_C(0x811E644BE7B79B31), + UINT64_C(0x597CE23FC963A061), UINT64_C(0x40BC32E42EA0DEB0)}}, + {{UINT64_C(0xC0AEFB5027C85959), UINT64_C(0x76D1087E058E0FDD), + UINT64_C(0x6ADA5AAF7E51A6F8), UINT64_C(0x424B16E0054A058D)}, + {UINT64_C(0x9A2C20A963AF9766), UINT64_C(0x4C1CB5323CF18DAB), + UINT64_C(0x599CD9296C5D6A00), UINT64_C(0x57C39BAE8AA311BF)}}, + {{UINT64_C(0x3FDF5B46CD987F02), UINT64_C(0x57755078353175C4), + UINT64_C(0x80223EC0CD578394), UINT64_C(0x04BBA6ACAEB7D278)}, + {UINT64_C(0xD27FD2BE8688BFB2), UINT64_C(0xB2F80278C27A62E5), + UINT64_C(0x8BA6FB07339429D8), UINT64_C(0x57737FF63AB70AA0)}}, + {{UINT64_C(0x0140E47F8EAEB3C9), UINT64_C(0xB91C9798735AC8EA), + UINT64_C(0x325E031283D4EFAA), UINT64_C(0x1E7DA3BED9C5888E)}, + {UINT64_C(0xA210CDA6F7F1EB13), UINT64_C(0xEDC1F6B3936EA9E9), + UINT64_C(0x46E831C41B097F65), UINT64_C(0x008576011939A0AE)}}, + {{UINT64_C(0x7C26F7111F68BB40), UINT64_C(0xEA69C84539DDBE6D), + UINT64_C(0x590BF426E5316F22), UINT64_C(0x40CDC921CC2DF9C9)}, + {UINT64_C(0x28A32DDEF3F991C6), UINT64_C(0xD75B59E65356CA78), + UINT64_C(0xB5DD3861D1F5F318), UINT64_C(0x09EB1A2DE7929834)}}, + {{UINT64_C(0x701F9A2DDBC0370D), UINT64_C(0x559D0FAF2870B59D), + UINT64_C(0xE89E5DF055367B5D), UINT64_C(0x22BBD4FC74005A58)}, + {UINT64_C(0x7ACED1E499CDC76B), UINT64_C(0xD41C827CE3C219D3), + UINT64_C(0x5AF3F2AE8221D91F), UINT64_C(0x6D62C990E5B6BC98)}}, + {{UINT64_C(0x23B2A0BF7FFC9D0F), UINT64_C(0xED98F71D974CA299), + UINT64_C(0x10F8C07A151D559B), UINT64_C(0x40E46FC38E949C62)}, + {UINT64_C(0x0CF53E34BBE55338), UINT64_C(0xF2D6CF26115520D4), + UINT64_C(0x915FF09A590B4E23), UINT64_C(0x072E4233BEDC75F2)}}, + {{UINT64_C(0xB67A6B60997E9BFA), UINT64_C(0xE7686AC9973BC3E7), + UINT64_C(0x9525B4490B228320), UINT64_C(0x6C7275837ADE8F19)}, + {UINT64_C(0x3D064298062FF3D5), UINT64_C(0x5483826C07E22768), + UINT64_C(0xF4ADE9211F7A64A4), UINT64_C(0x70BDDCF7BD92EB25)}}, + {{UINT64_C(0xA8DB36115D8A9E36), UINT64_C(0xAA6A5F33FA81065A), + UINT64_C(0x8EC120A3366DDA90), UINT64_C(0x2AA0AB25D8A15CF7)}, + {UINT64_C(0x5E11E169A0DFFB9C), UINT64_C(0x8C7572E9118408A7), + UINT64_C(0x4EEFD13E35833ADF), UINT64_C(0x2C6732E8FC2C1811)}}, + {{UINT64_C(0x15D063F9B1537DF6), UINT64_C(0x864176B30414FCFD), + UINT64_C(0x9C0A194C8FF9E32E), UINT64_C(0x4DB14C6FDDE1540B)}, + {UINT64_C(0xFAA4AED431F6493F), UINT64_C(0x2C479F1DD3C41A46), + UINT64_C(0xC31196678E5E85A2), UINT64_C(0x7E567C8084E9A76C)}}, + {{UINT64_C(0xB9E2C92A689A6B95), UINT64_C(0xCCEAC3833B635B01), + UINT64_C(0x04FEA46534AAB952), UINT64_C(0x772E502763B5CF63)}, + {UINT64_C(0xCB94F5D225830581), UINT64_C(0x791004AFC77FB7DE), + UINT64_C(0x53273C335140E4AE), UINT64_C(0x0C2D329EA524419F)}}, + {{UINT64_C(0xB7CEDA36B307B0E4), UINT64_C(0x12DF7FD00F8F9667), + UINT64_C(0x74274002BF62BD94), UINT64_C(0x6765C73DC436C319)}, + {UINT64_C(0x79B64CE5F6EEC946), UINT64_C(0x3B1B4B43DAB258B6), + UINT64_C(0x377819A3EE1F8B84), UINT64_C(0x1F45F1D676D0EB1F)}}, + {{UINT64_C(0xCC5BF9B358C953AD), UINT64_C(0x8303250F7BAD1D2C), + UINT64_C(0xBCA7BC36F164972B), UINT64_C(0x2CACF8A9B1DFDA64)}, + {UINT64_C(0xB03A59B9D4E2A06F), UINT64_C(0xFED68E681B7FB8FD), + UINT64_C(0x08F75A527E747AE6), UINT64_C(0x3299EA6B37A4420B)}}, + {{UINT64_C(0x49A00BE6932E5BA6), UINT64_C(0x4921250556114C4B), + UINT64_C(0x786B7D31376183C7), UINT64_C(0x01F9E229DD8A5EAF)}, + {UINT64_C(0xE9B8E99053094AD4), UINT64_C(0x2EDA305CBFAEDFA8), + UINT64_C(0x344437267F9E3BC8), UINT64_C(0x1729519C6B55B3C3)}}, + {{UINT64_C(0xEA5A68C050A597D6), UINT64_C(0xA65147D4F1E86D1B), + UINT64_C(0x554FA36B8B47CDEB), UINT64_C(0x7F38364B9F24FFED)}, + {UINT64_C(0x657C7E051D2A8E2B), UINT64_C(0x8270F1A7E3F64D62), + UINT64_C(0xFD258B59953AF5A2), UINT64_C(0x6DE0114143510AA3)}}, + }, + { + {{UINT64_C(0x483904280D7A5CBE), UINT64_C(0xD37E8C1FDE441E5E), + UINT64_C(0x908C88B80DE31C8C), UINT64_C(0x7C0E24BB0ACD87CE)}, + {UINT64_C(0x4A78117725ECCCE8), UINT64_C(0xC06C2F7ACBDA746F), + UINT64_C(0xDB9E9A08AB565DD4), UINT64_C(0x1E9B44C0BE776F5B)}}, + {{UINT64_C(0x7CFD4E5085B54ABC), UINT64_C(0x41A4A4DCE7A44F8B), + UINT64_C(0x751C5052A4422576), UINT64_C(0x534FE0B2D56B6CB1)}, + {UINT64_C(0x22DAA5CDD5D767D0), UINT64_C(0x9C1999AB0AF8E22C), + UINT64_C(0xC70C093299259068), UINT64_C(0x459D212EFD0839F0)}}, + {{UINT64_C(0xA207E7DEFD32D79B), UINT64_C(0xA7B54991410B479F), + UINT64_C(0x806912B6D68E5CDC), UINT64_C(0x1CB7B68C92AB8B64)}, + {UINT64_C(0x3DB85378DF98339F), UINT64_C(0xA24101DC83EA7A18), + UINT64_C(0x8892367CE25522C5), UINT64_C(0x491A8BB37753A2C3)}}, + {{UINT64_C(0x571C547E8C7875A7), UINT64_C(0x7E5F23E4E9747C13), + UINT64_C(0x00F3BBB21058548D), UINT64_C(0x7081F172E2397102)}, + {UINT64_C(0xB4351B8A6B573034), UINT64_C(0xB35A4F44C1A094F0), + UINT64_C(0xE2C1DAEDAE951E96), UINT64_C(0x5CF2A742B9DAA081)}}, + {{UINT64_C(0xB4F0D3F09828ED9F), UINT64_C(0x6DB312FBA9251386), + UINT64_C(0xC9A4583F537203F2), UINT64_C(0x5E0996399CE76D40)}, + {UINT64_C(0x3381B894C9F8CEA8), UINT64_C(0x8242DAF8626E07E8), + UINT64_C(0x64A0B68C6077DFD9), UINT64_C(0x3CC462C0563CF051)}}, + {{UINT64_C(0x8937364C87AF4A45), UINT64_C(0x8C4ACBFA2DE0FD60), + UINT64_C(0xF10AED11472A5D8A), UINT64_C(0x3F5674B55380C2E6)}, + {UINT64_C(0x8F4FD0F52BF8A452), UINT64_C(0xB436E388C7390418), + UINT64_C(0xAFAB7B7CE6EE9406), UINT64_C(0x4F623177951739BA)}}, + {{UINT64_C(0x90B0ED35A9B50F2A), UINT64_C(0x46DC3F91AC6CF217), + UINT64_C(0x2F1420312C7B119C), UINT64_C(0x55A93CBC07D79225)}, + {UINT64_C(0x45E0DD7DB304A642), UINT64_C(0xB743DFCDD572D446), + UINT64_C(0x867B02EBAC74B368), UINT64_C(0x67B2B86C169B94B0)}}, + {{UINT64_C(0x18396DA7483CFEDB), UINT64_C(0x6C6E03708A3A07C2), + UINT64_C(0xF32A1AFEAB554998), UINT64_C(0x408C911987D1C136)}, + {UINT64_C(0x755F63254BBE0B78), UINT64_C(0xDC4A7319D1178550), + UINT64_C(0x44B49813B3B9E459), UINT64_C(0x0294B9A94C3D3620)}}, + {{UINT64_C(0x6480F6FE067FA6FF), UINT64_C(0x67891400F307A52E), + UINT64_C(0x9F846EF87F865DA8), UINT64_C(0x318DAC55AE02F671)}, + {UINT64_C(0x91119652E288A317), UINT64_C(0x4D7CF2B8038C61B8), + UINT64_C(0x098F80DD5154C1A8), UINT64_C(0x10C04F87D239A2D4)}}, + {{UINT64_C(0x134609265CA6F183), UINT64_C(0x5E97AD18D52001ED), + UINT64_C(0x7DCD2477E14843DF), UINT64_C(0x27DAB27698A30426)}, + {UINT64_C(0x7939CAE3E120D80C), UINT64_C(0xC9F4646651E5B81A), + UINT64_C(0xED620322E2E49D52), UINT64_C(0x3C0F5A2EFA172BBB)}}, + {{UINT64_C(0xBFFE87425DB1196B), UINT64_C(0xCD45F8ED49B7214E), + UINT64_C(0x923ABA47C35F5C33), UINT64_C(0x16ED1F1083F3EE48)}, + {UINT64_C(0x042E6DF099274930), UINT64_C(0xE8AE1DCFC5F8EA16), + UINT64_C(0x004462CBF02EA2B2), UINT64_C(0x427F9381D284B04E)}}, + {{UINT64_C(0x4CD481F875EFACC5), UINT64_C(0xD98C3FD421C83368), + UINT64_C(0x4335E7C83894CE88), UINT64_C(0x18321F87955A298C)}, + {UINT64_C(0x073DD00AD1716E18), UINT64_C(0x66D82A5FFE0BFE61), + UINT64_C(0x7D869E202310C532), UINT64_C(0x29A376FB19BF4704)}}, + {{UINT64_C(0xA1B12B35C149B5B0), UINT64_C(0x3411B2311E828959), + UINT64_C(0x56417519560D99FB), UINT64_C(0x4E0EB143EBB52124)}, + {UINT64_C(0x7B594B5E6AEF3801), UINT64_C(0x00AEE12E9ECB536E), + UINT64_C(0x6BF0FB2956E23145), UINT64_C(0x2B2D83B961AE8E98)}}, + {{UINT64_C(0x9CB3E2E86AC27F2D), UINT64_C(0x82BACA965A6280AA), + UINT64_C(0xCBC6C01B2C6B7C8F), UINT64_C(0x390511BCD0C01ABD)}, + {UINT64_C(0xB322D97249551C0D), UINT64_C(0x7905E82E7B6489C8), + UINT64_C(0x4DD0CE8B40EEC20D), UINT64_C(0x5C0B3EE72409298A)}}, + {{UINT64_C(0x4418D685B635FB99), UINT64_C(0x652EA6083ACE8B39), + UINT64_C(0xE586FBDC46FC4047), UINT64_C(0x3C832D34D8CC13D8)}, + {UINT64_C(0x14CC9F23F7AA54A1), UINT64_C(0x80D094E607153B9F), + UINT64_C(0x0776E5406A2EED8E), UINT64_C(0x03CC3BFC77249085)}}, + {{UINT64_C(0x5F8F281F1308C1A8), UINT64_C(0x31C8E737D1AFC4B7), + UINT64_C(0x6778529841AE8EF2), UINT64_C(0x17716086FD028A4B)}, + {UINT64_C(0x1A2083E0F922E100), UINT64_C(0xD67EC9D1D53FE691), + UINT64_C(0x2DF8B6EDECCA8DEB), UINT64_C(0x3B595EE4BCCC999E)}}, + }, + { + {{UINT64_C(0x11F03F895A4B8C04), UINT64_C(0x254C36487DAE8E6B), + UINT64_C(0xAB6EAAF1637CDB83), UINT64_C(0x41F52243FDDED8F6)}, + {UINT64_C(0x487078E1BBDF3270), UINT64_C(0x98853B49339CEA28), + UINT64_C(0x8AF0522BAB3EDE57), UINT64_C(0x734D711F85EB4CC0)}}, + {{UINT64_C(0xFD1F46ADF86BA644), UINT64_C(0xA5332B97A3299855), + UINT64_C(0x61BE90DBD9493634), UINT64_C(0x308F09B1C2705911)}, + {UINT64_C(0xD59F1B1A0B7918A5), UINT64_C(0x9CF333D0CF6399E6), + UINT64_C(0xD09C63CDFBB26B6B), UINT64_C(0x76C27913A6536647)}}, + {{UINT64_C(0x3DF1811FAAAB555C), UINT64_C(0x60853351886C828B), + UINT64_C(0xF6CA7707F1E87F41), UINT64_C(0x5B4F6EDF7D7082E6)}, + {UINT64_C(0xADE518E03F672DE7), UINT64_C(0x00ED0B84022541B2), + UINT64_C(0x04FE5DD6618E8969), UINT64_C(0x2F5F5C65DB9CCA4D)}}, + {{UINT64_C(0x00B69B4596BDAE2C), UINT64_C(0x06DB22CF770604C4), + UINT64_C(0xC2EB7F8F856585C3), UINT64_C(0x6E3225390413C614)}, + {UINT64_C(0x22C09EA870A46872), UINT64_C(0x143E73BC1FF23734), + UINT64_C(0xCAC5E2DD575C20B4), UINT64_C(0x225E53903FEBE787)}}, + {{UINT64_C(0x594FEA4EBE9C512D), UINT64_C(0x5850709292CB73AE), + UINT64_C(0xFD8EFC7DB0CE2096), UINT64_C(0x3B58C199E031D6AB)}, + {UINT64_C(0x55DA1CBD479F23E4), UINT64_C(0x060C6BB5A6DB6137), + UINT64_C(0xD8319CF86864488E), UINT64_C(0x6C15A31B21B02EDA)}}, + {{UINT64_C(0x13C483728CA7084D), UINT64_C(0xF7554E59A171ECE5), + UINT64_C(0x7425C5D823A97699), UINT64_C(0x6F2C68DA71E1120E)}, + {UINT64_C(0x9591B9B624324B64), UINT64_C(0x2DA33472C02AC704), + UINT64_C(0xC5DE7FC981EE1295), UINT64_C(0x6A646A445D6E93C6)}}, + {{UINT64_C(0x48684061A39D6554), UINT64_C(0xB70ABF61C3DF57B6), + UINT64_C(0x9824AFD658B9EEE3), UINT64_C(0x46EBE9D13A14A733)}, + {UINT64_C(0x8E70F95DD74F8E94), UINT64_C(0xA9D922A26AFCA4E2), + UINT64_C(0x519A97536988CC16), UINT64_C(0x711DEF16D545AF8A)}}, + {{UINT64_C(0x362A5D95811A2BF7), UINT64_C(0x42A84A33566B90CE), + UINT64_C(0x25CBC7607C41EC87), UINT64_C(0x6B77E39CD4B7DBEE)}, + {UINT64_C(0xA98B8201833015A4), UINT64_C(0xE412E217C31B26F4), + UINT64_C(0x518BE8F0E0090782), UINT64_C(0x08D9F4B63DB51D4E)}}, + {{UINT64_C(0x2C80CE87297D421E), UINT64_C(0x2FD137F8ADBA1498), + UINT64_C(0xA2ED3D472899AA14), UINT64_C(0x2AC924A5FE4F365A)}, + {UINT64_C(0xAC0389B7666DC0A0), UINT64_C(0x3CC997398ABF3D9E), + UINT64_C(0x33060DB6DFBFF83A), UINT64_C(0x54EEE2150339C3B8)}}, + {{UINT64_C(0x06C3A4F5820F7E4D), UINT64_C(0x86F083E208C3D311), + UINT64_C(0x47E29984FE4B0476), UINT64_C(0x218F52E2CA7DF6CF)}, + {UINT64_C(0x59317E26BF2C2084), UINT64_C(0xEA9C865B289A10CF), + UINT64_C(0x7AA1E50B2074FEA3), UINT64_C(0x708A1D8C4B3EFC31)}}, + {{UINT64_C(0x34C5C63E864817D7), UINT64_C(0x0F614043D89E995B), + UINT64_C(0x60CE8BCE975E2A03), UINT64_C(0x70916E2978493E0C)}, + {UINT64_C(0xBD0748F9216782C6), UINT64_C(0x0051C65AED32FB72), + UINT64_C(0x9DC5F5584DD64705), UINT64_C(0x674F1A63EEC14B50)}}, + {{UINT64_C(0x73D6E68EDB633FD1), UINT64_C(0x7B5F8303F52F9537), + UINT64_C(0x980FDDDC88A74CFB), UINT64_C(0x6419C18F47FC32D1)}, + {UINT64_C(0x93727B4C870B5D59), UINT64_C(0x4BCE05DECF28021D), + UINT64_C(0x3C059B47AB4F0CE5), UINT64_C(0x77CA7F67B85FFDBB)}}, + {{UINT64_C(0xDBEADDCEC525088E), UINT64_C(0x561E12BE390D2221), + UINT64_C(0xCD224FC1D9BA7AF0), UINT64_C(0x03744552394DC073)}, + {UINT64_C(0xCFC67B4921BB6B6E), UINT64_C(0xD234FD8D1B5F8E6A), + UINT64_C(0x6DDBC18B40B7F8B0), UINT64_C(0x79F40857DAACCC74)}}, + {{UINT64_C(0x30E5F9909DD71B9C), UINT64_C(0x00FCBFA5291124EF), + UINT64_C(0xBE595A2549B8C570), UINT64_C(0x5B4B8141BC094446)}, + {UINT64_C(0xB22B4F04469191B6), UINT64_C(0x10845AC8D73C4D38), + UINT64_C(0x39C9F0FBED0C8224), UINT64_C(0x7E009DFBF5813BEE)}}, + {{UINT64_C(0xA47C2989A61D09C0), UINT64_C(0x3706F45659E55A9C), + UINT64_C(0x2373976FEA0259B9), UINT64_C(0x13FC0E09077D20CC)}, + {UINT64_C(0xBB24DD05E78D29CF), UINT64_C(0xD8757A67822CFA02), + UINT64_C(0x36CA74863C55A4C6), UINT64_C(0x4234E6893EEABBE1)}}, + {{UINT64_C(0xA2F54D14B46BDB51), UINT64_C(0x8A530B78675BB770), + UINT64_C(0x617D7E8EDE9F1F8B), UINT64_C(0x799B3E442DCC4712)}, + {UINT64_C(0x658A31D8B486FE8C), UINT64_C(0x45BAFC29163D4AF0), + UINT64_C(0x3A2C7F66A5289C8D), UINT64_C(0x4ECC3C7DB91FF3DB)}}, + }, + { + {{UINT64_C(0x738CF1C7DF4DFD43), UINT64_C(0x72943A2DE987084C), + UINT64_C(0xEA21C05F2491FF24), UINT64_C(0x3D3F4ED7DA050094)}, + {UINT64_C(0xF90644E461C4054D), UINT64_C(0x253792143A50E82A), + UINT64_C(0x47EDB006C7DEF970), UINT64_C(0x0F8F031C0F53F307)}}, + {{UINT64_C(0x50FEB6D8724976D5), UINT64_C(0x57AA499FF40C7720), + UINT64_C(0x6B80AC540DAAF428), UINT64_C(0x7AC6845E1F6FC276)}, + {UINT64_C(0x8EC7FAB117A4B9C5), UINT64_C(0x8336DD62ED0C8F97), + UINT64_C(0x6014A510B7B7104E), UINT64_C(0x4991A03BA2911C30)}}, + {{UINT64_C(0x6D353975CBCC9BA3), UINT64_C(0x23E97E28C4564492), + UINT64_C(0xDF432FDAF8AEED3E), UINT64_C(0x11DB40DD6F6B472C)}, + {UINT64_C(0x5B87005B95AA0174), UINT64_C(0x1DB4108089D9F1A8), + UINT64_C(0x5A6BC444689DF208), UINT64_C(0x16153F87BF38FF8D)}}, + {{UINT64_C(0xD217003FFFD3C814), UINT64_C(0x1ADE64C3FD50AF95), + UINT64_C(0x1936332C9FFB8BEB), UINT64_C(0x6EE322DCD70CD8D8)}, + {UINT64_C(0xE40A0419F2A60976), UINT64_C(0xA62F6FA1EF93B05B), + UINT64_C(0x5978206C596575FF), UINT64_C(0x5CDCA200B68BFE5C)}}, + {{UINT64_C(0x3FB16AEDB7949E33), UINT64_C(0x3453892840304A1B), + UINT64_C(0x7FA35A343BCA4239), UINT64_C(0x22FD1AEFEE76919E)}, + {UINT64_C(0x1F8FE6A40F6A5D50), UINT64_C(0x27CC704F26BBA46B), + UINT64_C(0x230FD0CA3420CC52), UINT64_C(0x3E9E4DA4B3A83D85)}}, + {{UINT64_C(0x1D82390E7F5CC75E), UINT64_C(0x7025624549D0A605), + UINT64_C(0x5B8778134FF4BC44), UINT64_C(0x28E6A057B5EC02E4)}, + {UINT64_C(0xBC7A10DA2E89FB84), UINT64_C(0x3AF182E520E1EA00), + UINT64_C(0x4B590FFA9C507274), UINT64_C(0x26BA94D6AA7FD65B)}}, + {{UINT64_C(0xC02CC77C238CC195), UINT64_C(0x3F175C97A97EE3E4), + UINT64_C(0x8A28FA23DFA1F9DC), UINT64_C(0x35CAC0FF1F968D15)}, + {UINT64_C(0x0FC41B3337C7C773), UINT64_C(0x71E06B10BC999443), + UINT64_C(0x073A1ABA2C87B0A4), UINT64_C(0x29F29B129E5E8B70)}}, + {{UINT64_C(0xAA25F348E491FE70), UINT64_C(0x9371F94BC1713992), + UINT64_C(0x674B478C4FA08818), UINT64_C(0x6F3C31FEB1407431)}, + {UINT64_C(0xBB7D37FBD93DD5E1), UINT64_C(0xE34A40B87E04EE7A), + UINT64_C(0xCF82360DF3C33528), UINT64_C(0x0A3B8FF501477712)}}, + {{UINT64_C(0xA45914716B718511), UINT64_C(0x7B0CE8DED2FD6B9B), + UINT64_C(0xC42544FA6845DBEF), UINT64_C(0x456A698563AF476A)}, + {UINT64_C(0x5DD611F69CDE4E74), UINT64_C(0x860956832B346AEB), + UINT64_C(0xD15C5DA06E75B3D7), UINT64_C(0x220FFD73C72D5D2C)}}, + {{UINT64_C(0x478DA345D2ED888F), UINT64_C(0xA69D4FB9E04CBCC7), + UINT64_C(0xA427150AB3F1179D), UINT64_C(0x1DD3B8C2D5CEA78A)}, + {UINT64_C(0x9462EFF0B8628A22), UINT64_C(0xB2FFFF4AB2CB44A5), + UINT64_C(0x8234A3FF24039BA8), UINT64_C(0x01BE7202916DE889)}}, + {{UINT64_C(0x510669856DFCEF0B), UINT64_C(0x25729D98DF20CDEE), + UINT64_C(0x872FD39D9693E5EF), UINT64_C(0x72D03AE12D859635)}, + {UINT64_C(0x3F28F84EDACAEB82), UINT64_C(0x9EB40FD6CB5284D7), + UINT64_C(0x66C2DCA6C5F54041), UINT64_C(0x4BDBA3821C1F2461)}}, + {{UINT64_C(0xE53421970E0ED176), UINT64_C(0xF588547AA225A47F), + UINT64_C(0xC83B54ED1FEB2259), UINT64_C(0x1B03791392F3733D)}, + {UINT64_C(0x935C97822271ECFA), UINT64_C(0x5F7E94A653CFE07C), + UINT64_C(0xBFF5B0E61B40CA19), UINT64_C(0x36C7851D459445E1)}}, + {{UINT64_C(0xB6547971588C9748), UINT64_C(0xCFD8E81B11970562), + UINT64_C(0x41333C80702FE4FA), UINT64_C(0x2F153C8C962A993B)}, + {UINT64_C(0x028BBD6A8BDA48AC), UINT64_C(0x7B076F88FE1DB02A), + UINT64_C(0xC9560400078FB3FC), UINT64_C(0x5DCC0946035907EA)}}, + {{UINT64_C(0x93D7CF33A6233F1C), UINT64_C(0x03184BC4DF2A187C), + UINT64_C(0x291149BCE83DAC32), UINT64_C(0x575F4279FAEDF216)}, + {UINT64_C(0x101427B4086FC141), UINT64_C(0xC924F2AED288562E), + UINT64_C(0xDB610463EEF5799A), UINT64_C(0x20F187676A09661D)}}, + {{UINT64_C(0xE39BB775F59D0C20), UINT64_C(0x18DA90E2723A4EF2), + UINT64_C(0x8E747A7BF56B381B), UINT64_C(0x7EF67224F98F26DC)}, + {UINT64_C(0xB1373AF5E1F94B99), UINT64_C(0x1076FBA60C3B6AA8), + UINT64_C(0x7FCD0017A3A7811C), UINT64_C(0x6D1A697346554E7E)}}, + {{UINT64_C(0xE5734077B9CED2C2), UINT64_C(0xC94D17F81F770914), + UINT64_C(0x58B47BCB1CD248EB), UINT64_C(0x2E06538C24804B6F)}, + {UINT64_C(0x275D933F32E7CA19), UINT64_C(0x1B982B491FC9241E), + UINT64_C(0x8B8A6ED53986B6AC), UINT64_C(0x1756822135B4EA6A)}}, + }, + { + {{UINT64_C(0x090AD05AE796327F), UINT64_C(0xA78DAE5EAD21DD4B), + UINT64_C(0x8EEC9EDB9C2F8CBE), UINT64_C(0x33E375E0653E0F2D)}, + {UINT64_C(0xDA19EFF28D67AC72), UINT64_C(0xBFC7E62B2737AB8C), + UINT64_C(0xBBF8BD1D4CF53C12), UINT64_C(0x5ABFE23F45C6D555)}}, + {{UINT64_C(0x32460B330DE39342), UINT64_C(0x3567454AB8977067), + UINT64_C(0x10A1E47DF954592C), UINT64_C(0x4DE8C6EF4DD019C4)}, + {UINT64_C(0x1F1D296B1BDAAAFA), UINT64_C(0x4E6B8E8F3A75AD99), + UINT64_C(0x259015E1A27FE061), UINT64_C(0x6B6A48209F320632)}}, + {{UINT64_C(0x8AA089AFA0B5E605), UINT64_C(0x1D6C1EEE1B4058FD), + UINT64_C(0x1D920534B4E89BEF), UINT64_C(0x722A3A3516163340)}, + {UINT64_C(0xA3B9178CF33B49B2), UINT64_C(0xFF8FE9BB65558E90), + UINT64_C(0x94766BC09794EFAE), UINT64_C(0x79A1EFA2FDFAEB42)}}, + {{UINT64_C(0x2FE44B97BCB6D558), UINT64_C(0xB4F4F402DB8B0A79), + UINT64_C(0xF53D8AB1247C32E5), UINT64_C(0x3B883CE54DA4C009)}, + {UINT64_C(0xB46168BD2EC9F1C6), UINT64_C(0xD40BDE7B6B8FE01A), + UINT64_C(0x60A5C168CDFE509F), UINT64_C(0x3314D87823BE249E)}}, + {{UINT64_C(0x02511A854D9F5769), UINT64_C(0x8398F9BDB49D6A8E), + UINT64_C(0xE8D773F35D2D7135), UINT64_C(0x09B3B8AB9DECC331)}, + {UINT64_C(0x8D2B269B584C11D9), UINT64_C(0xF76619446B6B86A9), + UINT64_C(0x719A3620C7659AF7), UINT64_C(0x3CFC8DF037C27DBE)}}, + {{UINT64_C(0x5EE0BE061145B14B), UINT64_C(0xAC6950E423193ED6), + UINT64_C(0x7291C44CDF244C7F), UINT64_C(0x4650C16243D744EA)}, + {UINT64_C(0x60B92D3F34A084D8), UINT64_C(0xBBD44A0E376E5414), + UINT64_C(0x5C0E488A0980F36C), UINT64_C(0x4E53FCCAD7991A09)}}, + {{UINT64_C(0x7A2ADBCF367B55C2), UINT64_C(0x96A88B751FED467E), + UINT64_C(0x8E75E37EFB263845), UINT64_C(0x4C2E47B8EB508DD0)}, + {UINT64_C(0x20BF51DEB19FCD14), UINT64_C(0xD907174914CB67D0), + UINT64_C(0xEC90714B29EBDA7C), UINT64_C(0x4ACADAA6634C0F2E)}}, + {{UINT64_C(0xA516B9B8EC715EC9), UINT64_C(0xC7DCA26342B8A87B), + UINT64_C(0x2CE450C9DA27B456), UINT64_C(0x3C97481200A8819F)}, + {UINT64_C(0xF4822C23ECDED574), UINT64_C(0xFA737FAD19FA48D4), + UINT64_C(0xE34B2F2A45D718E0), UINT64_C(0x1D6F19FEBEA7B540)}}, + {{UINT64_C(0xADC8FCE798E24789), UINT64_C(0xFE2F890C45869609), + UINT64_C(0x6466E03C78A35C19), UINT64_C(0x24C70FEDC1F34AA9)}, + {UINT64_C(0x89530F7557747DD1), UINT64_C(0x343DE05B2B8CDE2D), + UINT64_C(0xC33134E335CC8D5A), UINT64_C(0x3CCEFC38AC9B4F2B)}}, + {{UINT64_C(0x84C904B8EF923364), UINT64_C(0x46E1FECFBDDD31D8), + UINT64_C(0xA8126DD6FAE79B6B), UINT64_C(0x4A53C034FBF05C9A)}, + {UINT64_C(0x44CA3ACBBE8F255F), UINT64_C(0x6F0FD374EC319885), + UINT64_C(0xADBCB4AAF1836DC2), UINT64_C(0x6CC3A59665187EE9)}}, + {{UINT64_C(0x941E7821B397B5E7), UINT64_C(0xD3457371FEE2A9D5), + UINT64_C(0x9F69BE4466382F60), UINT64_C(0x6DCEAD04A1F49E9B)}, + {UINT64_C(0xDC6BC23B3BF21647), UINT64_C(0x1500FD7FB5271BE9), + UINT64_C(0x9B0994DDF23FDF3D), UINT64_C(0x38A2ECEB45065CF7)}}, + {{UINT64_C(0x2667CEFE0DCA8BF4), UINT64_C(0x8227ACB3E46EB469), + UINT64_C(0x4C20677DA75C5B8B), UINT64_C(0x224FC5B4B36ACDFE)}, + {UINT64_C(0xA0007E147A6A01D3), UINT64_C(0x15C79558F8A64EED), + UINT64_C(0xFB58A76A93DEDC09), UINT64_C(0x2057DDDC26F10A98)}}, + {{UINT64_C(0x1FF658AEBDB27AE4), UINT64_C(0x7F30DF57DDD96647), + UINT64_C(0x63490B8DC7294313), UINT64_C(0x0EAEC5735435869E)}, + {UINT64_C(0x85F05C49DF115B78), UINT64_C(0x95739C0C62992F5D), + UINT64_C(0x72F143192B573963), UINT64_C(0x05600E6486328FF4)}}, + {{UINT64_C(0x9BE7331FEAB0F425), UINT64_C(0x2E4CF5AA74447C20), + UINT64_C(0x9B26F51266243D2A), UINT64_C(0x77C9672284AB5627)}, + {UINT64_C(0xEC545427601673B4), UINT64_C(0xEF6A34FB2F127AF7), + UINT64_C(0x519559C1E2DFD269), UINT64_C(0x34D7D7548258E37A)}}, + {{UINT64_C(0xC113747B5E8B5281), UINT64_C(0x0C085456E04D779B), + UINT64_C(0x3E3260521CCBCFC6), UINT64_C(0x5C954CC12A37D19F)}, + {UINT64_C(0xB1A4A5B39124435B), UINT64_C(0x5E8B8D4118ED98E7), + UINT64_C(0xC973D969144A3793), UINT64_C(0x0CB98CC888DD8B49)}}, + {{UINT64_C(0x0E0233B2B48D04DF), UINT64_C(0x1B3916E07BEAA4A5), + UINT64_C(0xA24A4BE4B672BE8C), UINT64_C(0x7A61506D845AB94D)}, + {UINT64_C(0x160DFA0FE7F4CA3B), UINT64_C(0xA9562C89D84C1148), + UINT64_C(0x52979B9592A276EB), UINT64_C(0x17869B53924E86E9)}}, + }, + { + {{UINT64_C(0x5D39F4781A86D0D8), UINT64_C(0xDE5932DAFB8BC8A9), + UINT64_C(0xD706C6D72F5B4B70), UINT64_C(0x53F450FC8A36AFC2)}, + {UINT64_C(0xE1DC35401E550B3B), UINT64_C(0x475507DC8B7EB6D2), + UINT64_C(0xF803F78ADFA2E5F7), UINT64_C(0x40B5F263C48097FF)}}, + {{UINT64_C(0x336FB00E226CDB1F), UINT64_C(0xDDC1BB0288215C40), + UINT64_C(0x6C4DD40E73C07FD0), UINT64_C(0x4D0D2E498F7D15E7)}, + {UINT64_C(0xAF96E9B3D2061402), UINT64_C(0x15A3084A1372FCF8), + UINT64_C(0x91B571E6307B02D6), UINT64_C(0x2239592F53AE7705)}}, + {{UINT64_C(0x7D8615A1C20B6645), UINT64_C(0xF4875767C7C4465B), + UINT64_C(0xF6D3E718861702AB), UINT64_C(0x7F014A53131F726A)}, + {UINT64_C(0x30809F8FDAAB77CA), UINT64_C(0x7CE8DC6128F944D3), + UINT64_C(0xF915111D9AEEF6A1), UINT64_C(0x246D7CC8206902FD)}}, + {{UINT64_C(0x7677488BEF806225), UINT64_C(0x994C8104F4C75EAE), + UINT64_C(0x17586D4E4E0C8988), UINT64_C(0x70E5258090E33A2A)}, + {UINT64_C(0xB993F26A022D2FED), UINT64_C(0x955C130D689FBFBD), + UINT64_C(0x0D3D1C63A3612E8E), UINT64_C(0x423D73E1B91A8DE6)}}, + {{UINT64_C(0x7274BE083027164F), UINT64_C(0xDE907B4942FDB769), + UINT64_C(0x61D74449B697060D), UINT64_C(0x18A5FDC226602CC9)}, + {UINT64_C(0xB08DC02B049CAF4A), UINT64_C(0xC84AF48578DBA1F1), + UINT64_C(0x0A5B35197178E4DF), UINT64_C(0x6EC7A7A55B26D0FE)}}, + {{UINT64_C(0xDEF1782F88554F05), UINT64_C(0xB73E7333D8D6DF47), + UINT64_C(0x1DDF902290E9C67A), UINT64_C(0x5D217B51D56181AC)}, + {UINT64_C(0x7A338C7BE27F90EE), UINT64_C(0xB97CCD2A0D84A177), + UINT64_C(0x3E1016017C5E3FA9), UINT64_C(0x2706E77C30FF0918)}}, + {{UINT64_C(0x1BD1274F72A7CB9F), UINT64_C(0x8B60357A0622DB90), + UINT64_C(0x0140E14A2151BB23), UINT64_C(0x358D7DDAE9A30C4C)}, + {UINT64_C(0x3B15306089BFB2C6), UINT64_C(0x47462C79B6757C69), + UINT64_C(0x2B22239DB43EF986), UINT64_C(0x6793671F0B774DE3)}}, + {{UINT64_C(0x99EDB02EF6F8EDC6), UINT64_C(0x24432760C4257DD9), + UINT64_C(0x4FDD73010336EED2), UINT64_C(0x44879709F6C6506B)}, + {UINT64_C(0x107C7DE213F18D89), UINT64_C(0x71C71DFBA5701FBD), + UINT64_C(0x97017E24C7DE3E0B), UINT64_C(0x0F8D7E09FC9EDDC2)}}, + {{UINT64_C(0x7A0BB3B13897E01D), UINT64_C(0x7FD4F504C5892BDE), + UINT64_C(0x2EA9AA77AB752928), UINT64_C(0x19A82F559078B466)}, + {UINT64_C(0xEF2842C555A0F0D9), UINT64_C(0x5501EEE915B6F2B4), + UINT64_C(0x9665EA6F942AA4B4), UINT64_C(0x015F41F40E707C32)}}, + {{UINT64_C(0x1B4D6A919C6B6FD6), UINT64_C(0xCFD2CEE968217AFC), + UINT64_C(0xC5076256BBC9284D), UINT64_C(0x4C7F4EEFAC36547B)}, + {UINT64_C(0xAB1AAD2C65EE1907), UINT64_C(0xBCFE8C77BAC25425), + UINT64_C(0x38BA0F85C9048A35), UINT64_C(0x300E6AC460A035F6)}}, + {{UINT64_C(0xA8EDBC5E34707CC6), UINT64_C(0x3DA6BC5156ADFC16), + UINT64_C(0x5C7CB5E1CA8B6F3F), UINT64_C(0x76E4A0282D612DFA)}, + {UINT64_C(0x75AB66FD64F49D39), UINT64_C(0x5AF9879DC387A739), + UINT64_C(0x839648083E9EDBCF), UINT64_C(0x555D8BBD7F4C4FFE)}}, + {{UINT64_C(0xAAE8A2FE3C5590B0), UINT64_C(0x461C6CCC8AB34213), + UINT64_C(0xB2F3E8229E719B77), UINT64_C(0x25B8FCA8663188BB)}, + {UINT64_C(0xAA7A047B72548131), UINT64_C(0x0878FFEE189FA6F0), + UINT64_C(0x9E7FB402CE3E17C3), UINT64_C(0x6F260D9344418277)}}, + {{UINT64_C(0x0EF1C290B703B647), UINT64_C(0x995009FA651673E4), + UINT64_C(0x661F76D7BE46362D), UINT64_C(0x74B00FD123E56E7A)}, + {UINT64_C(0x9557D0ABA1A50E4B), UINT64_C(0xC5A1CF95587688CE), + UINT64_C(0x2A14D1B27AE08ECA), UINT64_C(0x2DA8816C3C23D507)}}, + {{UINT64_C(0x51CB405FB9934883), UINT64_C(0xC99A67D401A6864B), + UINT64_C(0xCCF622336CDFFFC3), UINT64_C(0x2938F9F998FE0B79)}, + {UINT64_C(0x7766691139A5AA28), UINT64_C(0xDF56CBB52427BFC0), + UINT64_C(0xA39BE968189EB66D), UINT64_C(0x71E6E105A64FD2AB)}}, + {{UINT64_C(0xA0C6F79560F9D20B), UINT64_C(0xE06DC8BB765670CC), + UINT64_C(0x9FA1DD58A67275E0), UINT64_C(0x0F7F670DE2D23BBB)}, + {UINT64_C(0xF8F07CF333FB15EA), UINT64_C(0x1D09B592723A0271), + UINT64_C(0xF14029234E6FCAAB), UINT64_C(0x05BE1273AE301940)}}, + {{UINT64_C(0x2D83906C114AFD1E), UINT64_C(0x091474FDC88E5761), + UINT64_C(0xAFF18EEBEF9E4F9B), UINT64_C(0x136ECAE5F4E646ED)}, + {UINT64_C(0xEF4526D0EB01808F), UINT64_C(0x3923EBBA940C0AEC), + UINT64_C(0xAB34160CA437F460), UINT64_C(0x7A46966E421AD57C)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj_any.op3 + * https://eprint.iacr.org/2015/1060 Alg 3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b3 = const_b3; + const limb_t *a = const_a; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_TestParamSet_square(t0, X); + fiat_id_GostR3410_2001_TestParamSet_square(t1, Y); + fiat_id_GostR3410_2001_TestParamSet_square(t2, Z); + fiat_id_GostR3410_2001_TestParamSet_mul(t3, X, Y); + fiat_id_GostR3410_2001_TestParamSet_add(t3, t3, t3); + fiat_id_GostR3410_2001_TestParamSet_mul(t4, Y, Z); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, X, Z); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, a, Z3); + fiat_id_GostR3410_2001_TestParamSet_mul(Y3, b3, t2); + fiat_id_GostR3410_2001_TestParamSet_add(Y3, X3, Y3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Y3); + fiat_id_GostR3410_2001_TestParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Y3); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, b3, Z3); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2); + fiat_id_GostR3410_2001_TestParamSet_sub(t3, t0, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t3, a, t3); + fiat_id_GostR3410_2001_TestParamSet_add(t3, t3, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, t0, t0); + fiat_id_GostR3410_2001_TestParamSet_add(t0, Z3, t0); + fiat_id_GostR3410_2001_TestParamSet_add(t0, t0, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t0, t3); + fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_TestParamSet_add(t2, t4, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t2, t3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t2, t1); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3); +} + +/*- + * 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_any.op3 + * https://eprint.iacr.org/2015/1060 Alg 2 + */ +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, t4, t5; + /* constants */ + const limb_t *b3 = const_b3; + const limb_t *a = const_a; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_GostR3410_2001_TestParamSet_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_GostR3410_2001_TestParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_TestParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_TestParamSet_add(t3, X2, Y2); + fiat_id_GostR3410_2001_TestParamSet_add(t4, X1, Y1); + fiat_id_GostR3410_2001_TestParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_TestParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_TestParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(t4, X2, Z1); + fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, X1); + fiat_id_GostR3410_2001_TestParamSet_mul(t5, Y2, Z1); + fiat_id_GostR3410_2001_TestParamSet_add(t5, t5, Y1); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, a, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, b3, Z1); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, X3, Z3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, t1, Z3); + fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, Z1); + fiat_id_GostR3410_2001_TestParamSet_mul(t4, b3, t4); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t2); + fiat_id_GostR3410_2001_TestParamSet_sub(t2, t0, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2); + fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t1, t4); + fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t5, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t3, t1); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t5, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, t0); + + /* if P is inf, throw all that away and take Q */ + fiat_id_GostR3410_2001_TestParamSet_selectznz(R->X, nz, Q->X, X3); + fiat_id_GostR3410_2001_TestParamSet_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_GostR3410_2001_TestParamSet_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj_any.op3 + * https://eprint.iacr.org/2015/1060 Alg 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, t4, t5; + /* constants */ + const limb_t *b3 = const_b3; + const limb_t *a = const_a; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_TestParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_TestParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, Z1, Z2); + fiat_id_GostR3410_2001_TestParamSet_add(t3, X1, Y1); + fiat_id_GostR3410_2001_TestParamSet_add(t4, X2, Y2); + fiat_id_GostR3410_2001_TestParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_TestParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_TestParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_TestParamSet_add(t4, X1, Z1); + fiat_id_GostR3410_2001_TestParamSet_add(t5, X2, Z2); + fiat_id_GostR3410_2001_TestParamSet_mul(t4, t4, t5); + fiat_id_GostR3410_2001_TestParamSet_add(t5, t0, t2); + fiat_id_GostR3410_2001_TestParamSet_sub(t4, t4, t5); + fiat_id_GostR3410_2001_TestParamSet_add(t5, Y1, Z1); + fiat_id_GostR3410_2001_TestParamSet_add(X3, Y2, Z2); + fiat_id_GostR3410_2001_TestParamSet_mul(t5, t5, X3); + fiat_id_GostR3410_2001_TestParamSet_add(X3, t1, t2); + fiat_id_GostR3410_2001_TestParamSet_sub(t5, t5, X3); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, a, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, b3, t2); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, X3, Z3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, t1, Z3); + fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t4, b3, t4); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t2); + fiat_id_GostR3410_2001_TestParamSet_sub(t2, t0, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2); + fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t1, t4); + fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t5, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t3, t1); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t5, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, t0); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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[32], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 32) 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(char out[52], const unsigned char in[32]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 51; 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(char out[257], const unsigned char in[32]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 257; 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; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32], + const unsigned char b[32], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[257] = {0}; + char bnaf[257] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 256; i >= 0; i--) { + if (!is_inf) point_double(&Q, &Q); + if ((d = bnaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y); + 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.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_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_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[32], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[52] = {0}; + pt_prj_t Q, lut; + 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[51] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 50; 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_GostR3410_2001_TestParamSet_selectznz(lut.X, diff, lut.X, + precomp[j].X); + fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, diff, lut.Y, + precomp[j].Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Z, diff, lut.Z, + precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_TestParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, is_neg, lut.Y, + out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_GostR3410_2001_TestParamSet_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, scalar[0] & 1, lut.X, + Q.X); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, scalar[0] & 1, lut.Y, + Q.Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, scalar[0] & 1, lut.Z, + Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_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[32]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[52] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 1; i >= 0; i--) { + for (j = 0; i != 1 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 27; j++) { + if (j * 2 + i > 51) continue; + d = rnaf[j * 2 + 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_GostR3410_2001_TestParamSet_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_GostR3410_2001_TestParamSet_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_TestParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, is_neg, lut.Y, + out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_GostR3410_2001_TestParamSet_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, scalar[0] & 1, R.X, Q.X); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, scalar[0] & 1, R.Y, Q.Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, scalar[0] & 1, R.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[32], unsigned char outy[32], + const unsigned char a[32], const unsigned char b[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.Y, P.Y); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.Y, P.Y); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[32] = {0}; + + int + point_mul_two_id_GostR3410_2001_TestParamSet(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[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_GostR3410_2001_TestParamSet(const EC_GROUP *group, EC_POINT *r, + const EC_POINT *q, const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_GostR3410_2001_TestParamSet(const EC_GROUP *group, + EC_POINT *r, const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + 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, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, 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 8 +/* Field elements */ +typedef uint32_t fe_t[LIMB_CNT]; +typedef uint32_t limb_t; + +#define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) +#define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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: word_by_word_montgomery --static id_GostR3410_2001_TestParamSet 32 '2^255 + 1073' */ +/* curve description: id_GostR3410_2001_TestParamSet */ +/* machine_wordsize = 32 (from "32") */ +/* requested operations: (all) */ +/* m = 0x8000000000000000000000000000000000000000000000000000000000000431 (from "2^255 + 1073") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (m), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ +/* */ +/* Computed values: */ +/* eval z = z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_GostR3410_2001_TestParamSet_uint1; +typedef signed char fiat_id_GostR3410_2001_TestParamSet_int1; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^32 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + uint32_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 *out2, + fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint64_t x1; + uint32_t x2; + fiat_id_GostR3410_2001_TestParamSet_uint1 x3; + x1 = ((arg1 + (uint64_t)arg2) + arg3); + x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + x3 = (fiat_id_GostR3410_2001_TestParamSet_uint1)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^32 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32( + uint32_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 *out2, + fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int64_t x1; + fiat_id_GostR3410_2001_TestParamSet_int1 x2; + uint32_t x3; + x1 = ((arg2 - (int64_t)arg1) - arg3); + x2 = (fiat_id_GostR3410_2001_TestParamSet_int1)(x1 >> 32); + x3 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + *out1 = x3; + *out2 = (fiat_id_GostR3410_2001_TestParamSet_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_mulx_u32 is a multiplication, returning the full double-width result. + * Postconditions: + * out1 = (arg1 * arg2) mod 2^32 + * out2 = ⌊arg1 * arg2 / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0xffffffff] + * arg2: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0xffffffff] + */ +static void fiat_id_GostR3410_2001_TestParamSet_mulx_u32(uint32_t *out1, + uint32_t *out2, + uint32_t arg1, + uint32_t arg2) { + uint64_t x1; + uint32_t x2; + uint32_t x3; + x1 = ((uint64_t)arg1 * arg2); + x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + x3 = (uint32_t)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_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_GostR3410_2001_TestParamSet_cmovznz_u32( + uint32_t *out1, fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, + uint32_t arg2, uint32_t arg3) { + fiat_id_GostR3410_2001_TestParamSet_uint1 x1; + uint32_t x2; + uint32_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_GostR3410_2001_TestParamSet_int1)(0x0 - x1) & + UINT32_C(0xffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_mul multiplies two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[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]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_mul(uint32_t out1[8], + const uint32_t arg1[8], + const uint32_t arg2[8]) { + 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_TestParamSet_uint1 x28; + uint32_t x29; + fiat_id_GostR3410_2001_TestParamSet_uint1 x30; + uint32_t x31; + fiat_id_GostR3410_2001_TestParamSet_uint1 x32; + uint32_t x33; + fiat_id_GostR3410_2001_TestParamSet_uint1 x34; + uint32_t x35; + fiat_id_GostR3410_2001_TestParamSet_uint1 x36; + uint32_t x37; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x47; + uint32_t x48; + fiat_id_GostR3410_2001_TestParamSet_uint1 x49; + uint32_t x50; + fiat_id_GostR3410_2001_TestParamSet_uint1 x51; + uint32_t x52; + fiat_id_GostR3410_2001_TestParamSet_uint1 x53; + uint32_t x54; + fiat_id_GostR3410_2001_TestParamSet_uint1 x55; + uint32_t x56; + fiat_id_GostR3410_2001_TestParamSet_uint1 x57; + uint32_t x58; + fiat_id_GostR3410_2001_TestParamSet_uint1 x59; + uint32_t x60; + fiat_id_GostR3410_2001_TestParamSet_uint1 x61; + uint32_t x62; + fiat_id_GostR3410_2001_TestParamSet_uint1 x63; + uint32_t x64; + uint32_t x65; + uint32_t x66; + uint32_t x67; + uint32_t x68; + uint32_t x69; + uint32_t x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + uint32_t x79; + uint32_t x80; + fiat_id_GostR3410_2001_TestParamSet_uint1 x81; + uint32_t x82; + fiat_id_GostR3410_2001_TestParamSet_uint1 x83; + uint32_t x84; + fiat_id_GostR3410_2001_TestParamSet_uint1 x85; + uint32_t x86; + fiat_id_GostR3410_2001_TestParamSet_uint1 x87; + uint32_t x88; + fiat_id_GostR3410_2001_TestParamSet_uint1 x89; + uint32_t x90; + fiat_id_GostR3410_2001_TestParamSet_uint1 x91; + uint32_t x92; + fiat_id_GostR3410_2001_TestParamSet_uint1 x93; + uint32_t x94; + uint32_t x95; + fiat_id_GostR3410_2001_TestParamSet_uint1 x96; + uint32_t x97; + fiat_id_GostR3410_2001_TestParamSet_uint1 x98; + uint32_t x99; + fiat_id_GostR3410_2001_TestParamSet_uint1 x100; + uint32_t x101; + fiat_id_GostR3410_2001_TestParamSet_uint1 x102; + uint32_t x103; + fiat_id_GostR3410_2001_TestParamSet_uint1 x104; + uint32_t x105; + fiat_id_GostR3410_2001_TestParamSet_uint1 x106; + uint32_t x107; + fiat_id_GostR3410_2001_TestParamSet_uint1 x108; + uint32_t x109; + fiat_id_GostR3410_2001_TestParamSet_uint1 x110; + uint32_t x111; + fiat_id_GostR3410_2001_TestParamSet_uint1 x112; + uint32_t x113; + uint32_t x114; + uint32_t x115; + uint32_t x116; + uint32_t x117; + uint32_t x118; + uint32_t x119; + fiat_id_GostR3410_2001_TestParamSet_uint1 x120; + uint32_t x121; + fiat_id_GostR3410_2001_TestParamSet_uint1 x122; + uint32_t x123; + fiat_id_GostR3410_2001_TestParamSet_uint1 x124; + uint32_t x125; + fiat_id_GostR3410_2001_TestParamSet_uint1 x126; + uint32_t x127; + fiat_id_GostR3410_2001_TestParamSet_uint1 x128; + uint32_t x129; + fiat_id_GostR3410_2001_TestParamSet_uint1 x130; + uint32_t x131; + fiat_id_GostR3410_2001_TestParamSet_uint1 x132; + uint32_t x133; + fiat_id_GostR3410_2001_TestParamSet_uint1 x134; + uint32_t x135; + fiat_id_GostR3410_2001_TestParamSet_uint1 x136; + uint32_t x137; + uint32_t x138; + uint32_t x139; + uint32_t x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + uint32_t x148; + uint32_t x149; + uint32_t x150; + uint32_t x151; + uint32_t x152; + uint32_t x153; + uint32_t x154; + fiat_id_GostR3410_2001_TestParamSet_uint1 x155; + uint32_t x156; + fiat_id_GostR3410_2001_TestParamSet_uint1 x157; + uint32_t x158; + fiat_id_GostR3410_2001_TestParamSet_uint1 x159; + uint32_t x160; + fiat_id_GostR3410_2001_TestParamSet_uint1 x161; + uint32_t x162; + fiat_id_GostR3410_2001_TestParamSet_uint1 x163; + uint32_t x164; + fiat_id_GostR3410_2001_TestParamSet_uint1 x165; + uint32_t x166; + fiat_id_GostR3410_2001_TestParamSet_uint1 x167; + uint32_t x168; + uint32_t x169; + fiat_id_GostR3410_2001_TestParamSet_uint1 x170; + uint32_t x171; + fiat_id_GostR3410_2001_TestParamSet_uint1 x172; + uint32_t x173; + fiat_id_GostR3410_2001_TestParamSet_uint1 x174; + uint32_t x175; + fiat_id_GostR3410_2001_TestParamSet_uint1 x176; + uint32_t x177; + fiat_id_GostR3410_2001_TestParamSet_uint1 x178; + uint32_t x179; + fiat_id_GostR3410_2001_TestParamSet_uint1 x180; + uint32_t x181; + fiat_id_GostR3410_2001_TestParamSet_uint1 x182; + uint32_t x183; + fiat_id_GostR3410_2001_TestParamSet_uint1 x184; + uint32_t x185; + fiat_id_GostR3410_2001_TestParamSet_uint1 x186; + uint32_t x187; + uint32_t x188; + uint32_t x189; + uint32_t x190; + uint32_t x191; + uint32_t x192; + uint32_t x193; + fiat_id_GostR3410_2001_TestParamSet_uint1 x194; + uint32_t x195; + fiat_id_GostR3410_2001_TestParamSet_uint1 x196; + uint32_t x197; + fiat_id_GostR3410_2001_TestParamSet_uint1 x198; + uint32_t x199; + fiat_id_GostR3410_2001_TestParamSet_uint1 x200; + uint32_t x201; + fiat_id_GostR3410_2001_TestParamSet_uint1 x202; + uint32_t x203; + fiat_id_GostR3410_2001_TestParamSet_uint1 x204; + uint32_t x205; + fiat_id_GostR3410_2001_TestParamSet_uint1 x206; + uint32_t x207; + fiat_id_GostR3410_2001_TestParamSet_uint1 x208; + uint32_t x209; + fiat_id_GostR3410_2001_TestParamSet_uint1 x210; + uint32_t x211; + uint32_t x212; + uint32_t x213; + uint32_t x214; + uint32_t x215; + uint32_t x216; + uint32_t x217; + uint32_t x218; + uint32_t x219; + uint32_t x220; + uint32_t x221; + uint32_t x222; + uint32_t x223; + uint32_t x224; + uint32_t x225; + uint32_t x226; + uint32_t x227; + uint32_t x228; + fiat_id_GostR3410_2001_TestParamSet_uint1 x229; + uint32_t x230; + fiat_id_GostR3410_2001_TestParamSet_uint1 x231; + uint32_t x232; + fiat_id_GostR3410_2001_TestParamSet_uint1 x233; + uint32_t x234; + fiat_id_GostR3410_2001_TestParamSet_uint1 x235; + uint32_t x236; + fiat_id_GostR3410_2001_TestParamSet_uint1 x237; + uint32_t x238; + fiat_id_GostR3410_2001_TestParamSet_uint1 x239; + uint32_t x240; + fiat_id_GostR3410_2001_TestParamSet_uint1 x241; + uint32_t x242; + uint32_t x243; + fiat_id_GostR3410_2001_TestParamSet_uint1 x244; + uint32_t x245; + fiat_id_GostR3410_2001_TestParamSet_uint1 x246; + uint32_t x247; + fiat_id_GostR3410_2001_TestParamSet_uint1 x248; + uint32_t x249; + fiat_id_GostR3410_2001_TestParamSet_uint1 x250; + uint32_t x251; + fiat_id_GostR3410_2001_TestParamSet_uint1 x252; + uint32_t x253; + fiat_id_GostR3410_2001_TestParamSet_uint1 x254; + uint32_t x255; + fiat_id_GostR3410_2001_TestParamSet_uint1 x256; + uint32_t x257; + fiat_id_GostR3410_2001_TestParamSet_uint1 x258; + uint32_t x259; + fiat_id_GostR3410_2001_TestParamSet_uint1 x260; + uint32_t x261; + uint32_t x262; + uint32_t x263; + uint32_t x264; + uint32_t x265; + uint32_t x266; + uint32_t x267; + fiat_id_GostR3410_2001_TestParamSet_uint1 x268; + uint32_t x269; + fiat_id_GostR3410_2001_TestParamSet_uint1 x270; + uint32_t x271; + fiat_id_GostR3410_2001_TestParamSet_uint1 x272; + uint32_t x273; + fiat_id_GostR3410_2001_TestParamSet_uint1 x274; + uint32_t x275; + fiat_id_GostR3410_2001_TestParamSet_uint1 x276; + uint32_t x277; + fiat_id_GostR3410_2001_TestParamSet_uint1 x278; + uint32_t x279; + fiat_id_GostR3410_2001_TestParamSet_uint1 x280; + uint32_t x281; + fiat_id_GostR3410_2001_TestParamSet_uint1 x282; + uint32_t x283; + fiat_id_GostR3410_2001_TestParamSet_uint1 x284; + uint32_t x285; + uint32_t x286; + uint32_t x287; + uint32_t x288; + uint32_t x289; + uint32_t x290; + uint32_t x291; + uint32_t x292; + uint32_t x293; + uint32_t x294; + uint32_t x295; + uint32_t x296; + uint32_t x297; + uint32_t x298; + uint32_t x299; + uint32_t x300; + uint32_t x301; + uint32_t x302; + fiat_id_GostR3410_2001_TestParamSet_uint1 x303; + uint32_t x304; + fiat_id_GostR3410_2001_TestParamSet_uint1 x305; + uint32_t x306; + fiat_id_GostR3410_2001_TestParamSet_uint1 x307; + uint32_t x308; + fiat_id_GostR3410_2001_TestParamSet_uint1 x309; + uint32_t x310; + fiat_id_GostR3410_2001_TestParamSet_uint1 x311; + uint32_t x312; + fiat_id_GostR3410_2001_TestParamSet_uint1 x313; + uint32_t x314; + fiat_id_GostR3410_2001_TestParamSet_uint1 x315; + uint32_t x316; + uint32_t x317; + fiat_id_GostR3410_2001_TestParamSet_uint1 x318; + uint32_t x319; + fiat_id_GostR3410_2001_TestParamSet_uint1 x320; + uint32_t x321; + fiat_id_GostR3410_2001_TestParamSet_uint1 x322; + uint32_t x323; + fiat_id_GostR3410_2001_TestParamSet_uint1 x324; + uint32_t x325; + fiat_id_GostR3410_2001_TestParamSet_uint1 x326; + uint32_t x327; + fiat_id_GostR3410_2001_TestParamSet_uint1 x328; + uint32_t x329; + fiat_id_GostR3410_2001_TestParamSet_uint1 x330; + uint32_t x331; + fiat_id_GostR3410_2001_TestParamSet_uint1 x332; + uint32_t x333; + fiat_id_GostR3410_2001_TestParamSet_uint1 x334; + uint32_t x335; + uint32_t x336; + uint32_t x337; + uint32_t x338; + uint32_t x339; + uint32_t x340; + uint32_t x341; + fiat_id_GostR3410_2001_TestParamSet_uint1 x342; + uint32_t x343; + fiat_id_GostR3410_2001_TestParamSet_uint1 x344; + uint32_t x345; + fiat_id_GostR3410_2001_TestParamSet_uint1 x346; + uint32_t x347; + fiat_id_GostR3410_2001_TestParamSet_uint1 x348; + uint32_t x349; + fiat_id_GostR3410_2001_TestParamSet_uint1 x350; + uint32_t x351; + fiat_id_GostR3410_2001_TestParamSet_uint1 x352; + uint32_t x353; + fiat_id_GostR3410_2001_TestParamSet_uint1 x354; + uint32_t x355; + fiat_id_GostR3410_2001_TestParamSet_uint1 x356; + uint32_t x357; + fiat_id_GostR3410_2001_TestParamSet_uint1 x358; + uint32_t x359; + uint32_t x360; + uint32_t x361; + uint32_t x362; + uint32_t x363; + uint32_t x364; + uint32_t x365; + uint32_t x366; + uint32_t x367; + uint32_t x368; + uint32_t x369; + uint32_t x370; + uint32_t x371; + uint32_t x372; + uint32_t x373; + uint32_t x374; + uint32_t x375; + uint32_t x376; + fiat_id_GostR3410_2001_TestParamSet_uint1 x377; + uint32_t x378; + fiat_id_GostR3410_2001_TestParamSet_uint1 x379; + uint32_t x380; + fiat_id_GostR3410_2001_TestParamSet_uint1 x381; + uint32_t x382; + fiat_id_GostR3410_2001_TestParamSet_uint1 x383; + uint32_t x384; + fiat_id_GostR3410_2001_TestParamSet_uint1 x385; + uint32_t x386; + fiat_id_GostR3410_2001_TestParamSet_uint1 x387; + uint32_t x388; + fiat_id_GostR3410_2001_TestParamSet_uint1 x389; + uint32_t x390; + uint32_t x391; + fiat_id_GostR3410_2001_TestParamSet_uint1 x392; + uint32_t x393; + fiat_id_GostR3410_2001_TestParamSet_uint1 x394; + uint32_t x395; + fiat_id_GostR3410_2001_TestParamSet_uint1 x396; + uint32_t x397; + fiat_id_GostR3410_2001_TestParamSet_uint1 x398; + uint32_t x399; + fiat_id_GostR3410_2001_TestParamSet_uint1 x400; + uint32_t x401; + fiat_id_GostR3410_2001_TestParamSet_uint1 x402; + uint32_t x403; + fiat_id_GostR3410_2001_TestParamSet_uint1 x404; + uint32_t x405; + fiat_id_GostR3410_2001_TestParamSet_uint1 x406; + uint32_t x407; + fiat_id_GostR3410_2001_TestParamSet_uint1 x408; + uint32_t x409; + uint32_t x410; + uint32_t x411; + uint32_t x412; + uint32_t x413; + uint32_t x414; + uint32_t x415; + fiat_id_GostR3410_2001_TestParamSet_uint1 x416; + uint32_t x417; + fiat_id_GostR3410_2001_TestParamSet_uint1 x418; + uint32_t x419; + fiat_id_GostR3410_2001_TestParamSet_uint1 x420; + uint32_t x421; + fiat_id_GostR3410_2001_TestParamSet_uint1 x422; + uint32_t x423; + fiat_id_GostR3410_2001_TestParamSet_uint1 x424; + uint32_t x425; + fiat_id_GostR3410_2001_TestParamSet_uint1 x426; + uint32_t x427; + fiat_id_GostR3410_2001_TestParamSet_uint1 x428; + uint32_t x429; + fiat_id_GostR3410_2001_TestParamSet_uint1 x430; + uint32_t x431; + fiat_id_GostR3410_2001_TestParamSet_uint1 x432; + uint32_t x433; + uint32_t x434; + uint32_t x435; + uint32_t x436; + uint32_t x437; + uint32_t x438; + uint32_t x439; + uint32_t x440; + uint32_t x441; + uint32_t x442; + uint32_t x443; + uint32_t x444; + uint32_t x445; + uint32_t x446; + uint32_t x447; + uint32_t x448; + uint32_t x449; + uint32_t x450; + fiat_id_GostR3410_2001_TestParamSet_uint1 x451; + uint32_t x452; + fiat_id_GostR3410_2001_TestParamSet_uint1 x453; + uint32_t x454; + fiat_id_GostR3410_2001_TestParamSet_uint1 x455; + uint32_t x456; + fiat_id_GostR3410_2001_TestParamSet_uint1 x457; + uint32_t x458; + fiat_id_GostR3410_2001_TestParamSet_uint1 x459; + uint32_t x460; + fiat_id_GostR3410_2001_TestParamSet_uint1 x461; + uint32_t x462; + fiat_id_GostR3410_2001_TestParamSet_uint1 x463; + uint32_t x464; + uint32_t x465; + fiat_id_GostR3410_2001_TestParamSet_uint1 x466; + uint32_t x467; + fiat_id_GostR3410_2001_TestParamSet_uint1 x468; + uint32_t x469; + fiat_id_GostR3410_2001_TestParamSet_uint1 x470; + uint32_t x471; + fiat_id_GostR3410_2001_TestParamSet_uint1 x472; + uint32_t x473; + fiat_id_GostR3410_2001_TestParamSet_uint1 x474; + uint32_t x475; + fiat_id_GostR3410_2001_TestParamSet_uint1 x476; + uint32_t x477; + fiat_id_GostR3410_2001_TestParamSet_uint1 x478; + uint32_t x479; + fiat_id_GostR3410_2001_TestParamSet_uint1 x480; + uint32_t x481; + fiat_id_GostR3410_2001_TestParamSet_uint1 x482; + uint32_t x483; + uint32_t x484; + uint32_t x485; + uint32_t x486; + uint32_t x487; + uint32_t x488; + uint32_t x489; + fiat_id_GostR3410_2001_TestParamSet_uint1 x490; + uint32_t x491; + fiat_id_GostR3410_2001_TestParamSet_uint1 x492; + uint32_t x493; + fiat_id_GostR3410_2001_TestParamSet_uint1 x494; + uint32_t x495; + fiat_id_GostR3410_2001_TestParamSet_uint1 x496; + uint32_t x497; + fiat_id_GostR3410_2001_TestParamSet_uint1 x498; + uint32_t x499; + fiat_id_GostR3410_2001_TestParamSet_uint1 x500; + uint32_t x501; + fiat_id_GostR3410_2001_TestParamSet_uint1 x502; + uint32_t x503; + fiat_id_GostR3410_2001_TestParamSet_uint1 x504; + uint32_t x505; + fiat_id_GostR3410_2001_TestParamSet_uint1 x506; + uint32_t x507; + uint32_t x508; + uint32_t x509; + uint32_t x510; + uint32_t x511; + uint32_t x512; + uint32_t x513; + uint32_t x514; + uint32_t x515; + uint32_t x516; + uint32_t x517; + uint32_t x518; + uint32_t x519; + uint32_t x520; + uint32_t x521; + uint32_t x522; + uint32_t x523; + uint32_t x524; + fiat_id_GostR3410_2001_TestParamSet_uint1 x525; + uint32_t x526; + fiat_id_GostR3410_2001_TestParamSet_uint1 x527; + uint32_t x528; + fiat_id_GostR3410_2001_TestParamSet_uint1 x529; + uint32_t x530; + fiat_id_GostR3410_2001_TestParamSet_uint1 x531; + uint32_t x532; + fiat_id_GostR3410_2001_TestParamSet_uint1 x533; + uint32_t x534; + fiat_id_GostR3410_2001_TestParamSet_uint1 x535; + uint32_t x536; + fiat_id_GostR3410_2001_TestParamSet_uint1 x537; + uint32_t x538; + uint32_t x539; + fiat_id_GostR3410_2001_TestParamSet_uint1 x540; + uint32_t x541; + fiat_id_GostR3410_2001_TestParamSet_uint1 x542; + uint32_t x543; + fiat_id_GostR3410_2001_TestParamSet_uint1 x544; + uint32_t x545; + fiat_id_GostR3410_2001_TestParamSet_uint1 x546; + uint32_t x547; + fiat_id_GostR3410_2001_TestParamSet_uint1 x548; + uint32_t x549; + fiat_id_GostR3410_2001_TestParamSet_uint1 x550; + uint32_t x551; + fiat_id_GostR3410_2001_TestParamSet_uint1 x552; + uint32_t x553; + fiat_id_GostR3410_2001_TestParamSet_uint1 x554; + uint32_t x555; + fiat_id_GostR3410_2001_TestParamSet_uint1 x556; + uint32_t x557; + uint32_t x558; + uint32_t x559; + uint32_t x560; + uint32_t x561; + uint32_t x562; + uint32_t x563; + fiat_id_GostR3410_2001_TestParamSet_uint1 x564; + uint32_t x565; + fiat_id_GostR3410_2001_TestParamSet_uint1 x566; + uint32_t x567; + fiat_id_GostR3410_2001_TestParamSet_uint1 x568; + uint32_t x569; + fiat_id_GostR3410_2001_TestParamSet_uint1 x570; + uint32_t x571; + fiat_id_GostR3410_2001_TestParamSet_uint1 x572; + uint32_t x573; + fiat_id_GostR3410_2001_TestParamSet_uint1 x574; + uint32_t x575; + fiat_id_GostR3410_2001_TestParamSet_uint1 x576; + uint32_t x577; + fiat_id_GostR3410_2001_TestParamSet_uint1 x578; + uint32_t x579; + fiat_id_GostR3410_2001_TestParamSet_uint1 x580; + uint32_t x581; + uint32_t x582; + fiat_id_GostR3410_2001_TestParamSet_uint1 x583; + uint32_t x584; + fiat_id_GostR3410_2001_TestParamSet_uint1 x585; + uint32_t x586; + fiat_id_GostR3410_2001_TestParamSet_uint1 x587; + uint32_t x588; + fiat_id_GostR3410_2001_TestParamSet_uint1 x589; + uint32_t x590; + fiat_id_GostR3410_2001_TestParamSet_uint1 x591; + uint32_t x592; + fiat_id_GostR3410_2001_TestParamSet_uint1 x593; + uint32_t x594; + fiat_id_GostR3410_2001_TestParamSet_uint1 x595; + uint32_t x596; + fiat_id_GostR3410_2001_TestParamSet_uint1 x597; + uint32_t x598; + fiat_id_GostR3410_2001_TestParamSet_uint1 x599; + uint32_t x600; + uint32_t x601; + uint32_t x602; + uint32_t x603; + uint32_t x604; + uint32_t x605; + uint32_t x606; + uint32_t x607; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[0]); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x9, &x10, x8, (arg2[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x11, &x12, x8, (arg2[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x13, &x14, x8, (arg2[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x15, &x16, x8, (arg2[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x17, &x18, x8, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x19, &x20, x8, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x21, &x22, x8, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x23, &x24, x8, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x25, &x26, 0x0, x24, + x21); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x27, &x28, x26, x22, + x19); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x29, &x30, x28, x20, + x17); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x31, &x32, x30, x18, + x15); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x33, &x34, x32, x16, + x13); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x35, &x36, x34, x14, + x11); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x37, &x38, x36, x12, x9); + x39 = (x38 + x10); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x40, &x41, x23, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x42, &x43, x40, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x44, &x45, x40, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x46, &x47, 0x0, x23, + x44); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x48, &x49, x47, x25, + x45); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x50, &x51, x49, x27, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x52, &x53, x51, x29, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x54, &x55, x53, x31, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x56, &x57, x55, x33, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x58, &x59, x57, x35, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x60, &x61, x59, x37, + x42); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x62, &x63, x61, x39, + x43); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x64, &x65, x1, (arg2[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x66, &x67, x1, (arg2[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x68, &x69, x1, (arg2[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x70, &x71, x1, (arg2[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x72, &x73, x1, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x74, &x75, x1, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x76, &x77, x1, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x78, &x79, x1, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x80, &x81, 0x0, x79, + x76); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x82, &x83, x81, x77, + x74); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x84, &x85, x83, x75, + x72); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x86, &x87, x85, x73, + x70); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x88, &x89, x87, x71, + x68); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x90, &x91, x89, x69, + x66); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x92, &x93, x91, x67, + x64); + x94 = (x93 + x65); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x95, &x96, 0x0, x48, + x78); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x97, &x98, x96, x50, + x80); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x99, &x100, x98, x52, + x82); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x101, &x102, x100, x54, + x84); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x103, &x104, x102, x56, + x86); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x105, &x106, x104, x58, + x88); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x107, &x108, x106, x60, + x90); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x109, &x110, x108, x62, + x92); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x111, &x112, x110, x63, + x94); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x113, &x114, x95, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x115, &x116, x113, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x117, &x118, x113, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x119, &x120, 0x0, x95, + x117); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x121, &x122, x120, x97, + x118); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x123, &x124, x122, x99, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x125, &x126, x124, x101, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x127, &x128, x126, x103, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x129, &x130, x128, x105, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x131, &x132, x130, x107, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x133, &x134, x132, x109, + x115); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x135, &x136, x134, x111, + x116); + x137 = ((uint32_t)x136 + x112); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x138, &x139, x2, (arg2[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x140, &x141, x2, (arg2[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x142, &x143, x2, (arg2[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x144, &x145, x2, (arg2[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x146, &x147, x2, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x148, &x149, x2, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x150, &x151, x2, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x152, &x153, x2, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x154, &x155, 0x0, x153, + x150); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x156, &x157, x155, x151, + x148); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x158, &x159, x157, x149, + x146); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x160, &x161, x159, x147, + x144); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x162, &x163, x161, x145, + x142); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x164, &x165, x163, x143, + x140); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x166, &x167, x165, x141, + x138); + x168 = (x167 + x139); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x169, &x170, 0x0, x121, + x152); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x171, &x172, x170, x123, + x154); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x173, &x174, x172, x125, + x156); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x175, &x176, x174, x127, + x158); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x177, &x178, x176, x129, + x160); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x179, &x180, x178, x131, + x162); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x181, &x182, x180, x133, + x164); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x183, &x184, x182, x135, + x166); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x185, &x186, x184, x137, + x168); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x187, &x188, x169, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x189, &x190, x187, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x191, &x192, x187, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x193, &x194, 0x0, x169, + x191); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x195, &x196, x194, x171, + x192); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x197, &x198, x196, x173, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x199, &x200, x198, x175, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x201, &x202, x200, x177, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x203, &x204, x202, x179, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x205, &x206, x204, x181, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x207, &x208, x206, x183, + x189); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x209, &x210, x208, x185, + x190); + x211 = ((uint32_t)x210 + x186); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x212, &x213, x3, (arg2[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x214, &x215, x3, (arg2[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x216, &x217, x3, (arg2[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x218, &x219, x3, (arg2[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x220, &x221, x3, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x222, &x223, x3, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x224, &x225, x3, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x226, &x227, x3, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x228, &x229, 0x0, x227, + x224); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x230, &x231, x229, x225, + x222); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x232, &x233, x231, x223, + x220); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x234, &x235, x233, x221, + x218); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x236, &x237, x235, x219, + x216); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x238, &x239, x237, x217, + x214); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x240, &x241, x239, x215, + x212); + x242 = (x241 + x213); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x243, &x244, 0x0, x195, + x226); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x245, &x246, x244, x197, + x228); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x247, &x248, x246, x199, + x230); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x249, &x250, x248, x201, + x232); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x251, &x252, x250, x203, + x234); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x253, &x254, x252, x205, + x236); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x255, &x256, x254, x207, + x238); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x257, &x258, x256, x209, + x240); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x259, &x260, x258, x211, + x242); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x261, &x262, x243, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x263, &x264, x261, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x265, &x266, x261, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x267, &x268, 0x0, x243, + x265); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x269, &x270, x268, x245, + x266); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x271, &x272, x270, x247, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x273, &x274, x272, x249, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x275, &x276, x274, x251, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x277, &x278, x276, x253, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x279, &x280, x278, x255, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x281, &x282, x280, x257, + x263); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x283, &x284, x282, x259, + x264); + x285 = ((uint32_t)x284 + x260); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x286, &x287, x4, (arg2[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x288, &x289, x4, (arg2[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x290, &x291, x4, (arg2[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x292, &x293, x4, (arg2[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x294, &x295, x4, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x296, &x297, x4, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x298, &x299, x4, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x300, &x301, x4, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x302, &x303, 0x0, x301, + x298); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x304, &x305, x303, x299, + x296); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x306, &x307, x305, x297, + x294); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x308, &x309, x307, x295, + x292); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x310, &x311, x309, x293, + x290); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x312, &x313, x311, x291, + x288); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x314, &x315, x313, x289, + x286); + x316 = (x315 + x287); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x317, &x318, 0x0, x269, + x300); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x319, &x320, x318, x271, + x302); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x321, &x322, x320, x273, + x304); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x323, &x324, x322, x275, + x306); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x325, &x326, x324, x277, + x308); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x327, &x328, x326, x279, + x310); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x329, &x330, x328, x281, + x312); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x331, &x332, x330, x283, + x314); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x333, &x334, x332, x285, + x316); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x335, &x336, x317, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x337, &x338, x335, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x339, &x340, x335, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x341, &x342, 0x0, x317, + x339); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x343, &x344, x342, x319, + x340); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x345, &x346, x344, x321, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x347, &x348, x346, x323, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x349, &x350, x348, x325, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x351, &x352, x350, x327, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x353, &x354, x352, x329, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x355, &x356, x354, x331, + x337); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x357, &x358, x356, x333, + x338); + x359 = ((uint32_t)x358 + x334); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x360, &x361, x5, (arg2[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x362, &x363, x5, (arg2[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x364, &x365, x5, (arg2[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x366, &x367, x5, (arg2[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x368, &x369, x5, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x370, &x371, x5, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x372, &x373, x5, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x374, &x375, x5, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x376, &x377, 0x0, x375, + x372); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x378, &x379, x377, x373, + x370); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x380, &x381, x379, x371, + x368); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x382, &x383, x381, x369, + x366); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x384, &x385, x383, x367, + x364); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x386, &x387, x385, x365, + x362); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x388, &x389, x387, x363, + x360); + x390 = (x389 + x361); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x391, &x392, 0x0, x343, + x374); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x393, &x394, x392, x345, + x376); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x395, &x396, x394, x347, + x378); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x397, &x398, x396, x349, + x380); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x399, &x400, x398, x351, + x382); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x401, &x402, x400, x353, + x384); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x403, &x404, x402, x355, + x386); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x405, &x406, x404, x357, + x388); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x407, &x408, x406, x359, + x390); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x409, &x410, x391, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x411, &x412, x409, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x413, &x414, x409, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x415, &x416, 0x0, x391, + x413); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x417, &x418, x416, x393, + x414); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x419, &x420, x418, x395, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x421, &x422, x420, x397, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x423, &x424, x422, x399, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x425, &x426, x424, x401, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x427, &x428, x426, x403, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x429, &x430, x428, x405, + x411); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x431, &x432, x430, x407, + x412); + x433 = ((uint32_t)x432 + x408); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x434, &x435, x6, (arg2[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x436, &x437, x6, (arg2[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x438, &x439, x6, (arg2[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x440, &x441, x6, (arg2[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x442, &x443, x6, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x444, &x445, x6, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x446, &x447, x6, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x448, &x449, x6, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x450, &x451, 0x0, x449, + x446); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x452, &x453, x451, x447, + x444); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x454, &x455, x453, x445, + x442); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x456, &x457, x455, x443, + x440); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x458, &x459, x457, x441, + x438); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x460, &x461, x459, x439, + x436); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x462, &x463, x461, x437, + x434); + x464 = (x463 + x435); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x465, &x466, 0x0, x417, + x448); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x467, &x468, x466, x419, + x450); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x469, &x470, x468, x421, + x452); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x471, &x472, x470, x423, + x454); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x473, &x474, x472, x425, + x456); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x475, &x476, x474, x427, + x458); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x477, &x478, x476, x429, + x460); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x479, &x480, x478, x431, + x462); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x481, &x482, x480, x433, + x464); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x483, &x484, x465, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x485, &x486, x483, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x487, &x488, x483, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x489, &x490, 0x0, x465, + x487); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x491, &x492, x490, x467, + x488); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x493, &x494, x492, x469, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x495, &x496, x494, x471, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x497, &x498, x496, x473, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x499, &x500, x498, x475, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x501, &x502, x500, x477, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x503, &x504, x502, x479, + x485); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x505, &x506, x504, x481, + x486); + x507 = ((uint32_t)x506 + x482); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x508, &x509, x7, (arg2[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x510, &x511, x7, (arg2[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x512, &x513, x7, (arg2[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x514, &x515, x7, (arg2[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x516, &x517, x7, (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x518, &x519, x7, (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x520, &x521, x7, (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x522, &x523, x7, (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x524, &x525, 0x0, x523, + x520); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x526, &x527, x525, x521, + x518); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x528, &x529, x527, x519, + x516); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x530, &x531, x529, x517, + x514); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x532, &x533, x531, x515, + x512); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x534, &x535, x533, x513, + x510); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x536, &x537, x535, x511, + x508); + x538 = (x537 + x509); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x539, &x540, 0x0, x491, + x522); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x541, &x542, x540, x493, + x524); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x543, &x544, x542, x495, + x526); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x545, &x546, x544, x497, + x528); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x547, &x548, x546, x499, + x530); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x549, &x550, x548, x501, + x532); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x551, &x552, x550, x503, + x534); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x553, &x554, x552, x505, + x536); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x555, &x556, x554, x507, + x538); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x557, &x558, x539, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x559, &x560, x557, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x561, &x562, x557, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x563, &x564, 0x0, x539, + x561); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x565, &x566, x564, x541, + x562); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x567, &x568, x566, x543, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x569, &x570, x568, x545, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x571, &x572, x570, x547, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x573, &x574, x572, x549, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x575, &x576, x574, x551, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x577, &x578, x576, x553, + x559); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x579, &x580, x578, x555, + x560); + x581 = ((uint32_t)x580 + x556); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x582, &x583, 0x0, x565, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x584, &x585, x583, x567, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x586, &x587, x585, x569, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x588, &x589, x587, x571, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x590, &x591, x589, x573, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x592, &x593, x591, x575, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x594, &x595, x593, x577, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x596, &x597, x595, x579, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x598, &x599, x597, x581, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x600, x599, x582, x565); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x601, x599, x584, x567); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x602, x599, x586, x569); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x603, x599, x588, x571); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x604, x599, x590, x573); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x605, x599, x592, x575); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x606, x599, x594, x577); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x607, x599, x596, x579); + out1[0] = x600; + out1[1] = x601; + out1[2] = x602; + out1[3] = x603; + out1[4] = x604; + out1[5] = x605; + out1[6] = x606; + out1[7] = x607; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_square squares a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_square(uint32_t out1[8], + const uint32_t arg1[8]) { + 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_TestParamSet_uint1 x28; + uint32_t x29; + fiat_id_GostR3410_2001_TestParamSet_uint1 x30; + uint32_t x31; + fiat_id_GostR3410_2001_TestParamSet_uint1 x32; + uint32_t x33; + fiat_id_GostR3410_2001_TestParamSet_uint1 x34; + uint32_t x35; + fiat_id_GostR3410_2001_TestParamSet_uint1 x36; + uint32_t x37; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x47; + uint32_t x48; + fiat_id_GostR3410_2001_TestParamSet_uint1 x49; + uint32_t x50; + fiat_id_GostR3410_2001_TestParamSet_uint1 x51; + uint32_t x52; + fiat_id_GostR3410_2001_TestParamSet_uint1 x53; + uint32_t x54; + fiat_id_GostR3410_2001_TestParamSet_uint1 x55; + uint32_t x56; + fiat_id_GostR3410_2001_TestParamSet_uint1 x57; + uint32_t x58; + fiat_id_GostR3410_2001_TestParamSet_uint1 x59; + uint32_t x60; + fiat_id_GostR3410_2001_TestParamSet_uint1 x61; + uint32_t x62; + fiat_id_GostR3410_2001_TestParamSet_uint1 x63; + uint32_t x64; + uint32_t x65; + uint32_t x66; + uint32_t x67; + uint32_t x68; + uint32_t x69; + uint32_t x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + uint32_t x79; + uint32_t x80; + fiat_id_GostR3410_2001_TestParamSet_uint1 x81; + uint32_t x82; + fiat_id_GostR3410_2001_TestParamSet_uint1 x83; + uint32_t x84; + fiat_id_GostR3410_2001_TestParamSet_uint1 x85; + uint32_t x86; + fiat_id_GostR3410_2001_TestParamSet_uint1 x87; + uint32_t x88; + fiat_id_GostR3410_2001_TestParamSet_uint1 x89; + uint32_t x90; + fiat_id_GostR3410_2001_TestParamSet_uint1 x91; + uint32_t x92; + fiat_id_GostR3410_2001_TestParamSet_uint1 x93; + uint32_t x94; + uint32_t x95; + fiat_id_GostR3410_2001_TestParamSet_uint1 x96; + uint32_t x97; + fiat_id_GostR3410_2001_TestParamSet_uint1 x98; + uint32_t x99; + fiat_id_GostR3410_2001_TestParamSet_uint1 x100; + uint32_t x101; + fiat_id_GostR3410_2001_TestParamSet_uint1 x102; + uint32_t x103; + fiat_id_GostR3410_2001_TestParamSet_uint1 x104; + uint32_t x105; + fiat_id_GostR3410_2001_TestParamSet_uint1 x106; + uint32_t x107; + fiat_id_GostR3410_2001_TestParamSet_uint1 x108; + uint32_t x109; + fiat_id_GostR3410_2001_TestParamSet_uint1 x110; + uint32_t x111; + fiat_id_GostR3410_2001_TestParamSet_uint1 x112; + uint32_t x113; + uint32_t x114; + uint32_t x115; + uint32_t x116; + uint32_t x117; + uint32_t x118; + uint32_t x119; + fiat_id_GostR3410_2001_TestParamSet_uint1 x120; + uint32_t x121; + fiat_id_GostR3410_2001_TestParamSet_uint1 x122; + uint32_t x123; + fiat_id_GostR3410_2001_TestParamSet_uint1 x124; + uint32_t x125; + fiat_id_GostR3410_2001_TestParamSet_uint1 x126; + uint32_t x127; + fiat_id_GostR3410_2001_TestParamSet_uint1 x128; + uint32_t x129; + fiat_id_GostR3410_2001_TestParamSet_uint1 x130; + uint32_t x131; + fiat_id_GostR3410_2001_TestParamSet_uint1 x132; + uint32_t x133; + fiat_id_GostR3410_2001_TestParamSet_uint1 x134; + uint32_t x135; + fiat_id_GostR3410_2001_TestParamSet_uint1 x136; + uint32_t x137; + uint32_t x138; + uint32_t x139; + uint32_t x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + uint32_t x148; + uint32_t x149; + uint32_t x150; + uint32_t x151; + uint32_t x152; + uint32_t x153; + uint32_t x154; + fiat_id_GostR3410_2001_TestParamSet_uint1 x155; + uint32_t x156; + fiat_id_GostR3410_2001_TestParamSet_uint1 x157; + uint32_t x158; + fiat_id_GostR3410_2001_TestParamSet_uint1 x159; + uint32_t x160; + fiat_id_GostR3410_2001_TestParamSet_uint1 x161; + uint32_t x162; + fiat_id_GostR3410_2001_TestParamSet_uint1 x163; + uint32_t x164; + fiat_id_GostR3410_2001_TestParamSet_uint1 x165; + uint32_t x166; + fiat_id_GostR3410_2001_TestParamSet_uint1 x167; + uint32_t x168; + uint32_t x169; + fiat_id_GostR3410_2001_TestParamSet_uint1 x170; + uint32_t x171; + fiat_id_GostR3410_2001_TestParamSet_uint1 x172; + uint32_t x173; + fiat_id_GostR3410_2001_TestParamSet_uint1 x174; + uint32_t x175; + fiat_id_GostR3410_2001_TestParamSet_uint1 x176; + uint32_t x177; + fiat_id_GostR3410_2001_TestParamSet_uint1 x178; + uint32_t x179; + fiat_id_GostR3410_2001_TestParamSet_uint1 x180; + uint32_t x181; + fiat_id_GostR3410_2001_TestParamSet_uint1 x182; + uint32_t x183; + fiat_id_GostR3410_2001_TestParamSet_uint1 x184; + uint32_t x185; + fiat_id_GostR3410_2001_TestParamSet_uint1 x186; + uint32_t x187; + uint32_t x188; + uint32_t x189; + uint32_t x190; + uint32_t x191; + uint32_t x192; + uint32_t x193; + fiat_id_GostR3410_2001_TestParamSet_uint1 x194; + uint32_t x195; + fiat_id_GostR3410_2001_TestParamSet_uint1 x196; + uint32_t x197; + fiat_id_GostR3410_2001_TestParamSet_uint1 x198; + uint32_t x199; + fiat_id_GostR3410_2001_TestParamSet_uint1 x200; + uint32_t x201; + fiat_id_GostR3410_2001_TestParamSet_uint1 x202; + uint32_t x203; + fiat_id_GostR3410_2001_TestParamSet_uint1 x204; + uint32_t x205; + fiat_id_GostR3410_2001_TestParamSet_uint1 x206; + uint32_t x207; + fiat_id_GostR3410_2001_TestParamSet_uint1 x208; + uint32_t x209; + fiat_id_GostR3410_2001_TestParamSet_uint1 x210; + uint32_t x211; + uint32_t x212; + uint32_t x213; + uint32_t x214; + uint32_t x215; + uint32_t x216; + uint32_t x217; + uint32_t x218; + uint32_t x219; + uint32_t x220; + uint32_t x221; + uint32_t x222; + uint32_t x223; + uint32_t x224; + uint32_t x225; + uint32_t x226; + uint32_t x227; + uint32_t x228; + fiat_id_GostR3410_2001_TestParamSet_uint1 x229; + uint32_t x230; + fiat_id_GostR3410_2001_TestParamSet_uint1 x231; + uint32_t x232; + fiat_id_GostR3410_2001_TestParamSet_uint1 x233; + uint32_t x234; + fiat_id_GostR3410_2001_TestParamSet_uint1 x235; + uint32_t x236; + fiat_id_GostR3410_2001_TestParamSet_uint1 x237; + uint32_t x238; + fiat_id_GostR3410_2001_TestParamSet_uint1 x239; + uint32_t x240; + fiat_id_GostR3410_2001_TestParamSet_uint1 x241; + uint32_t x242; + uint32_t x243; + fiat_id_GostR3410_2001_TestParamSet_uint1 x244; + uint32_t x245; + fiat_id_GostR3410_2001_TestParamSet_uint1 x246; + uint32_t x247; + fiat_id_GostR3410_2001_TestParamSet_uint1 x248; + uint32_t x249; + fiat_id_GostR3410_2001_TestParamSet_uint1 x250; + uint32_t x251; + fiat_id_GostR3410_2001_TestParamSet_uint1 x252; + uint32_t x253; + fiat_id_GostR3410_2001_TestParamSet_uint1 x254; + uint32_t x255; + fiat_id_GostR3410_2001_TestParamSet_uint1 x256; + uint32_t x257; + fiat_id_GostR3410_2001_TestParamSet_uint1 x258; + uint32_t x259; + fiat_id_GostR3410_2001_TestParamSet_uint1 x260; + uint32_t x261; + uint32_t x262; + uint32_t x263; + uint32_t x264; + uint32_t x265; + uint32_t x266; + uint32_t x267; + fiat_id_GostR3410_2001_TestParamSet_uint1 x268; + uint32_t x269; + fiat_id_GostR3410_2001_TestParamSet_uint1 x270; + uint32_t x271; + fiat_id_GostR3410_2001_TestParamSet_uint1 x272; + uint32_t x273; + fiat_id_GostR3410_2001_TestParamSet_uint1 x274; + uint32_t x275; + fiat_id_GostR3410_2001_TestParamSet_uint1 x276; + uint32_t x277; + fiat_id_GostR3410_2001_TestParamSet_uint1 x278; + uint32_t x279; + fiat_id_GostR3410_2001_TestParamSet_uint1 x280; + uint32_t x281; + fiat_id_GostR3410_2001_TestParamSet_uint1 x282; + uint32_t x283; + fiat_id_GostR3410_2001_TestParamSet_uint1 x284; + uint32_t x285; + uint32_t x286; + uint32_t x287; + uint32_t x288; + uint32_t x289; + uint32_t x290; + uint32_t x291; + uint32_t x292; + uint32_t x293; + uint32_t x294; + uint32_t x295; + uint32_t x296; + uint32_t x297; + uint32_t x298; + uint32_t x299; + uint32_t x300; + uint32_t x301; + uint32_t x302; + fiat_id_GostR3410_2001_TestParamSet_uint1 x303; + uint32_t x304; + fiat_id_GostR3410_2001_TestParamSet_uint1 x305; + uint32_t x306; + fiat_id_GostR3410_2001_TestParamSet_uint1 x307; + uint32_t x308; + fiat_id_GostR3410_2001_TestParamSet_uint1 x309; + uint32_t x310; + fiat_id_GostR3410_2001_TestParamSet_uint1 x311; + uint32_t x312; + fiat_id_GostR3410_2001_TestParamSet_uint1 x313; + uint32_t x314; + fiat_id_GostR3410_2001_TestParamSet_uint1 x315; + uint32_t x316; + uint32_t x317; + fiat_id_GostR3410_2001_TestParamSet_uint1 x318; + uint32_t x319; + fiat_id_GostR3410_2001_TestParamSet_uint1 x320; + uint32_t x321; + fiat_id_GostR3410_2001_TestParamSet_uint1 x322; + uint32_t x323; + fiat_id_GostR3410_2001_TestParamSet_uint1 x324; + uint32_t x325; + fiat_id_GostR3410_2001_TestParamSet_uint1 x326; + uint32_t x327; + fiat_id_GostR3410_2001_TestParamSet_uint1 x328; + uint32_t x329; + fiat_id_GostR3410_2001_TestParamSet_uint1 x330; + uint32_t x331; + fiat_id_GostR3410_2001_TestParamSet_uint1 x332; + uint32_t x333; + fiat_id_GostR3410_2001_TestParamSet_uint1 x334; + uint32_t x335; + uint32_t x336; + uint32_t x337; + uint32_t x338; + uint32_t x339; + uint32_t x340; + uint32_t x341; + fiat_id_GostR3410_2001_TestParamSet_uint1 x342; + uint32_t x343; + fiat_id_GostR3410_2001_TestParamSet_uint1 x344; + uint32_t x345; + fiat_id_GostR3410_2001_TestParamSet_uint1 x346; + uint32_t x347; + fiat_id_GostR3410_2001_TestParamSet_uint1 x348; + uint32_t x349; + fiat_id_GostR3410_2001_TestParamSet_uint1 x350; + uint32_t x351; + fiat_id_GostR3410_2001_TestParamSet_uint1 x352; + uint32_t x353; + fiat_id_GostR3410_2001_TestParamSet_uint1 x354; + uint32_t x355; + fiat_id_GostR3410_2001_TestParamSet_uint1 x356; + uint32_t x357; + fiat_id_GostR3410_2001_TestParamSet_uint1 x358; + uint32_t x359; + uint32_t x360; + uint32_t x361; + uint32_t x362; + uint32_t x363; + uint32_t x364; + uint32_t x365; + uint32_t x366; + uint32_t x367; + uint32_t x368; + uint32_t x369; + uint32_t x370; + uint32_t x371; + uint32_t x372; + uint32_t x373; + uint32_t x374; + uint32_t x375; + uint32_t x376; + fiat_id_GostR3410_2001_TestParamSet_uint1 x377; + uint32_t x378; + fiat_id_GostR3410_2001_TestParamSet_uint1 x379; + uint32_t x380; + fiat_id_GostR3410_2001_TestParamSet_uint1 x381; + uint32_t x382; + fiat_id_GostR3410_2001_TestParamSet_uint1 x383; + uint32_t x384; + fiat_id_GostR3410_2001_TestParamSet_uint1 x385; + uint32_t x386; + fiat_id_GostR3410_2001_TestParamSet_uint1 x387; + uint32_t x388; + fiat_id_GostR3410_2001_TestParamSet_uint1 x389; + uint32_t x390; + uint32_t x391; + fiat_id_GostR3410_2001_TestParamSet_uint1 x392; + uint32_t x393; + fiat_id_GostR3410_2001_TestParamSet_uint1 x394; + uint32_t x395; + fiat_id_GostR3410_2001_TestParamSet_uint1 x396; + uint32_t x397; + fiat_id_GostR3410_2001_TestParamSet_uint1 x398; + uint32_t x399; + fiat_id_GostR3410_2001_TestParamSet_uint1 x400; + uint32_t x401; + fiat_id_GostR3410_2001_TestParamSet_uint1 x402; + uint32_t x403; + fiat_id_GostR3410_2001_TestParamSet_uint1 x404; + uint32_t x405; + fiat_id_GostR3410_2001_TestParamSet_uint1 x406; + uint32_t x407; + fiat_id_GostR3410_2001_TestParamSet_uint1 x408; + uint32_t x409; + uint32_t x410; + uint32_t x411; + uint32_t x412; + uint32_t x413; + uint32_t x414; + uint32_t x415; + fiat_id_GostR3410_2001_TestParamSet_uint1 x416; + uint32_t x417; + fiat_id_GostR3410_2001_TestParamSet_uint1 x418; + uint32_t x419; + fiat_id_GostR3410_2001_TestParamSet_uint1 x420; + uint32_t x421; + fiat_id_GostR3410_2001_TestParamSet_uint1 x422; + uint32_t x423; + fiat_id_GostR3410_2001_TestParamSet_uint1 x424; + uint32_t x425; + fiat_id_GostR3410_2001_TestParamSet_uint1 x426; + uint32_t x427; + fiat_id_GostR3410_2001_TestParamSet_uint1 x428; + uint32_t x429; + fiat_id_GostR3410_2001_TestParamSet_uint1 x430; + uint32_t x431; + fiat_id_GostR3410_2001_TestParamSet_uint1 x432; + uint32_t x433; + uint32_t x434; + uint32_t x435; + uint32_t x436; + uint32_t x437; + uint32_t x438; + uint32_t x439; + uint32_t x440; + uint32_t x441; + uint32_t x442; + uint32_t x443; + uint32_t x444; + uint32_t x445; + uint32_t x446; + uint32_t x447; + uint32_t x448; + uint32_t x449; + uint32_t x450; + fiat_id_GostR3410_2001_TestParamSet_uint1 x451; + uint32_t x452; + fiat_id_GostR3410_2001_TestParamSet_uint1 x453; + uint32_t x454; + fiat_id_GostR3410_2001_TestParamSet_uint1 x455; + uint32_t x456; + fiat_id_GostR3410_2001_TestParamSet_uint1 x457; + uint32_t x458; + fiat_id_GostR3410_2001_TestParamSet_uint1 x459; + uint32_t x460; + fiat_id_GostR3410_2001_TestParamSet_uint1 x461; + uint32_t x462; + fiat_id_GostR3410_2001_TestParamSet_uint1 x463; + uint32_t x464; + uint32_t x465; + fiat_id_GostR3410_2001_TestParamSet_uint1 x466; + uint32_t x467; + fiat_id_GostR3410_2001_TestParamSet_uint1 x468; + uint32_t x469; + fiat_id_GostR3410_2001_TestParamSet_uint1 x470; + uint32_t x471; + fiat_id_GostR3410_2001_TestParamSet_uint1 x472; + uint32_t x473; + fiat_id_GostR3410_2001_TestParamSet_uint1 x474; + uint32_t x475; + fiat_id_GostR3410_2001_TestParamSet_uint1 x476; + uint32_t x477; + fiat_id_GostR3410_2001_TestParamSet_uint1 x478; + uint32_t x479; + fiat_id_GostR3410_2001_TestParamSet_uint1 x480; + uint32_t x481; + fiat_id_GostR3410_2001_TestParamSet_uint1 x482; + uint32_t x483; + uint32_t x484; + uint32_t x485; + uint32_t x486; + uint32_t x487; + uint32_t x488; + uint32_t x489; + fiat_id_GostR3410_2001_TestParamSet_uint1 x490; + uint32_t x491; + fiat_id_GostR3410_2001_TestParamSet_uint1 x492; + uint32_t x493; + fiat_id_GostR3410_2001_TestParamSet_uint1 x494; + uint32_t x495; + fiat_id_GostR3410_2001_TestParamSet_uint1 x496; + uint32_t x497; + fiat_id_GostR3410_2001_TestParamSet_uint1 x498; + uint32_t x499; + fiat_id_GostR3410_2001_TestParamSet_uint1 x500; + uint32_t x501; + fiat_id_GostR3410_2001_TestParamSet_uint1 x502; + uint32_t x503; + fiat_id_GostR3410_2001_TestParamSet_uint1 x504; + uint32_t x505; + fiat_id_GostR3410_2001_TestParamSet_uint1 x506; + uint32_t x507; + uint32_t x508; + uint32_t x509; + uint32_t x510; + uint32_t x511; + uint32_t x512; + uint32_t x513; + uint32_t x514; + uint32_t x515; + uint32_t x516; + uint32_t x517; + uint32_t x518; + uint32_t x519; + uint32_t x520; + uint32_t x521; + uint32_t x522; + uint32_t x523; + uint32_t x524; + fiat_id_GostR3410_2001_TestParamSet_uint1 x525; + uint32_t x526; + fiat_id_GostR3410_2001_TestParamSet_uint1 x527; + uint32_t x528; + fiat_id_GostR3410_2001_TestParamSet_uint1 x529; + uint32_t x530; + fiat_id_GostR3410_2001_TestParamSet_uint1 x531; + uint32_t x532; + fiat_id_GostR3410_2001_TestParamSet_uint1 x533; + uint32_t x534; + fiat_id_GostR3410_2001_TestParamSet_uint1 x535; + uint32_t x536; + fiat_id_GostR3410_2001_TestParamSet_uint1 x537; + uint32_t x538; + uint32_t x539; + fiat_id_GostR3410_2001_TestParamSet_uint1 x540; + uint32_t x541; + fiat_id_GostR3410_2001_TestParamSet_uint1 x542; + uint32_t x543; + fiat_id_GostR3410_2001_TestParamSet_uint1 x544; + uint32_t x545; + fiat_id_GostR3410_2001_TestParamSet_uint1 x546; + uint32_t x547; + fiat_id_GostR3410_2001_TestParamSet_uint1 x548; + uint32_t x549; + fiat_id_GostR3410_2001_TestParamSet_uint1 x550; + uint32_t x551; + fiat_id_GostR3410_2001_TestParamSet_uint1 x552; + uint32_t x553; + fiat_id_GostR3410_2001_TestParamSet_uint1 x554; + uint32_t x555; + fiat_id_GostR3410_2001_TestParamSet_uint1 x556; + uint32_t x557; + uint32_t x558; + uint32_t x559; + uint32_t x560; + uint32_t x561; + uint32_t x562; + uint32_t x563; + fiat_id_GostR3410_2001_TestParamSet_uint1 x564; + uint32_t x565; + fiat_id_GostR3410_2001_TestParamSet_uint1 x566; + uint32_t x567; + fiat_id_GostR3410_2001_TestParamSet_uint1 x568; + uint32_t x569; + fiat_id_GostR3410_2001_TestParamSet_uint1 x570; + uint32_t x571; + fiat_id_GostR3410_2001_TestParamSet_uint1 x572; + uint32_t x573; + fiat_id_GostR3410_2001_TestParamSet_uint1 x574; + uint32_t x575; + fiat_id_GostR3410_2001_TestParamSet_uint1 x576; + uint32_t x577; + fiat_id_GostR3410_2001_TestParamSet_uint1 x578; + uint32_t x579; + fiat_id_GostR3410_2001_TestParamSet_uint1 x580; + uint32_t x581; + uint32_t x582; + fiat_id_GostR3410_2001_TestParamSet_uint1 x583; + uint32_t x584; + fiat_id_GostR3410_2001_TestParamSet_uint1 x585; + uint32_t x586; + fiat_id_GostR3410_2001_TestParamSet_uint1 x587; + uint32_t x588; + fiat_id_GostR3410_2001_TestParamSet_uint1 x589; + uint32_t x590; + fiat_id_GostR3410_2001_TestParamSet_uint1 x591; + uint32_t x592; + fiat_id_GostR3410_2001_TestParamSet_uint1 x593; + uint32_t x594; + fiat_id_GostR3410_2001_TestParamSet_uint1 x595; + uint32_t x596; + fiat_id_GostR3410_2001_TestParamSet_uint1 x597; + uint32_t x598; + fiat_id_GostR3410_2001_TestParamSet_uint1 x599; + uint32_t x600; + uint32_t x601; + uint32_t x602; + uint32_t x603; + uint32_t x604; + uint32_t x605; + uint32_t x606; + uint32_t x607; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[0]); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x9, &x10, x8, (arg1[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x11, &x12, x8, (arg1[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x13, &x14, x8, (arg1[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x15, &x16, x8, (arg1[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x17, &x18, x8, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x19, &x20, x8, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x21, &x22, x8, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x23, &x24, x8, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x25, &x26, 0x0, x24, + x21); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x27, &x28, x26, x22, + x19); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x29, &x30, x28, x20, + x17); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x31, &x32, x30, x18, + x15); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x33, &x34, x32, x16, + x13); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x35, &x36, x34, x14, + x11); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x37, &x38, x36, x12, x9); + x39 = (x38 + x10); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x40, &x41, x23, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x42, &x43, x40, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x44, &x45, x40, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x46, &x47, 0x0, x23, + x44); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x48, &x49, x47, x25, + x45); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x50, &x51, x49, x27, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x52, &x53, x51, x29, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x54, &x55, x53, x31, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x56, &x57, x55, x33, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x58, &x59, x57, x35, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x60, &x61, x59, x37, + x42); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x62, &x63, x61, x39, + x43); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x64, &x65, x1, (arg1[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x66, &x67, x1, (arg1[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x68, &x69, x1, (arg1[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x70, &x71, x1, (arg1[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x72, &x73, x1, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x74, &x75, x1, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x76, &x77, x1, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x78, &x79, x1, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x80, &x81, 0x0, x79, + x76); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x82, &x83, x81, x77, + x74); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x84, &x85, x83, x75, + x72); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x86, &x87, x85, x73, + x70); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x88, &x89, x87, x71, + x68); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x90, &x91, x89, x69, + x66); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x92, &x93, x91, x67, + x64); + x94 = (x93 + x65); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x95, &x96, 0x0, x48, + x78); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x97, &x98, x96, x50, + x80); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x99, &x100, x98, x52, + x82); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x101, &x102, x100, x54, + x84); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x103, &x104, x102, x56, + x86); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x105, &x106, x104, x58, + x88); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x107, &x108, x106, x60, + x90); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x109, &x110, x108, x62, + x92); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x111, &x112, x110, x63, + x94); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x113, &x114, x95, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x115, &x116, x113, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x117, &x118, x113, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x119, &x120, 0x0, x95, + x117); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x121, &x122, x120, x97, + x118); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x123, &x124, x122, x99, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x125, &x126, x124, x101, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x127, &x128, x126, x103, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x129, &x130, x128, x105, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x131, &x132, x130, x107, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x133, &x134, x132, x109, + x115); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x135, &x136, x134, x111, + x116); + x137 = ((uint32_t)x136 + x112); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x138, &x139, x2, (arg1[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x140, &x141, x2, (arg1[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x142, &x143, x2, (arg1[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x144, &x145, x2, (arg1[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x146, &x147, x2, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x148, &x149, x2, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x150, &x151, x2, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x152, &x153, x2, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x154, &x155, 0x0, x153, + x150); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x156, &x157, x155, x151, + x148); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x158, &x159, x157, x149, + x146); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x160, &x161, x159, x147, + x144); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x162, &x163, x161, x145, + x142); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x164, &x165, x163, x143, + x140); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x166, &x167, x165, x141, + x138); + x168 = (x167 + x139); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x169, &x170, 0x0, x121, + x152); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x171, &x172, x170, x123, + x154); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x173, &x174, x172, x125, + x156); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x175, &x176, x174, x127, + x158); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x177, &x178, x176, x129, + x160); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x179, &x180, x178, x131, + x162); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x181, &x182, x180, x133, + x164); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x183, &x184, x182, x135, + x166); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x185, &x186, x184, x137, + x168); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x187, &x188, x169, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x189, &x190, x187, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x191, &x192, x187, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x193, &x194, 0x0, x169, + x191); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x195, &x196, x194, x171, + x192); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x197, &x198, x196, x173, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x199, &x200, x198, x175, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x201, &x202, x200, x177, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x203, &x204, x202, x179, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x205, &x206, x204, x181, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x207, &x208, x206, x183, + x189); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x209, &x210, x208, x185, + x190); + x211 = ((uint32_t)x210 + x186); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x212, &x213, x3, (arg1[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x214, &x215, x3, (arg1[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x216, &x217, x3, (arg1[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x218, &x219, x3, (arg1[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x220, &x221, x3, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x222, &x223, x3, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x224, &x225, x3, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x226, &x227, x3, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x228, &x229, 0x0, x227, + x224); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x230, &x231, x229, x225, + x222); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x232, &x233, x231, x223, + x220); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x234, &x235, x233, x221, + x218); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x236, &x237, x235, x219, + x216); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x238, &x239, x237, x217, + x214); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x240, &x241, x239, x215, + x212); + x242 = (x241 + x213); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x243, &x244, 0x0, x195, + x226); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x245, &x246, x244, x197, + x228); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x247, &x248, x246, x199, + x230); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x249, &x250, x248, x201, + x232); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x251, &x252, x250, x203, + x234); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x253, &x254, x252, x205, + x236); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x255, &x256, x254, x207, + x238); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x257, &x258, x256, x209, + x240); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x259, &x260, x258, x211, + x242); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x261, &x262, x243, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x263, &x264, x261, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x265, &x266, x261, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x267, &x268, 0x0, x243, + x265); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x269, &x270, x268, x245, + x266); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x271, &x272, x270, x247, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x273, &x274, x272, x249, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x275, &x276, x274, x251, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x277, &x278, x276, x253, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x279, &x280, x278, x255, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x281, &x282, x280, x257, + x263); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x283, &x284, x282, x259, + x264); + x285 = ((uint32_t)x284 + x260); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x286, &x287, x4, (arg1[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x288, &x289, x4, (arg1[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x290, &x291, x4, (arg1[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x292, &x293, x4, (arg1[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x294, &x295, x4, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x296, &x297, x4, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x298, &x299, x4, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x300, &x301, x4, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x302, &x303, 0x0, x301, + x298); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x304, &x305, x303, x299, + x296); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x306, &x307, x305, x297, + x294); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x308, &x309, x307, x295, + x292); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x310, &x311, x309, x293, + x290); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x312, &x313, x311, x291, + x288); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x314, &x315, x313, x289, + x286); + x316 = (x315 + x287); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x317, &x318, 0x0, x269, + x300); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x319, &x320, x318, x271, + x302); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x321, &x322, x320, x273, + x304); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x323, &x324, x322, x275, + x306); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x325, &x326, x324, x277, + x308); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x327, &x328, x326, x279, + x310); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x329, &x330, x328, x281, + x312); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x331, &x332, x330, x283, + x314); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x333, &x334, x332, x285, + x316); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x335, &x336, x317, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x337, &x338, x335, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x339, &x340, x335, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x341, &x342, 0x0, x317, + x339); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x343, &x344, x342, x319, + x340); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x345, &x346, x344, x321, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x347, &x348, x346, x323, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x349, &x350, x348, x325, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x351, &x352, x350, x327, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x353, &x354, x352, x329, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x355, &x356, x354, x331, + x337); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x357, &x358, x356, x333, + x338); + x359 = ((uint32_t)x358 + x334); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x360, &x361, x5, (arg1[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x362, &x363, x5, (arg1[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x364, &x365, x5, (arg1[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x366, &x367, x5, (arg1[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x368, &x369, x5, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x370, &x371, x5, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x372, &x373, x5, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x374, &x375, x5, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x376, &x377, 0x0, x375, + x372); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x378, &x379, x377, x373, + x370); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x380, &x381, x379, x371, + x368); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x382, &x383, x381, x369, + x366); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x384, &x385, x383, x367, + x364); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x386, &x387, x385, x365, + x362); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x388, &x389, x387, x363, + x360); + x390 = (x389 + x361); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x391, &x392, 0x0, x343, + x374); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x393, &x394, x392, x345, + x376); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x395, &x396, x394, x347, + x378); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x397, &x398, x396, x349, + x380); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x399, &x400, x398, x351, + x382); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x401, &x402, x400, x353, + x384); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x403, &x404, x402, x355, + x386); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x405, &x406, x404, x357, + x388); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x407, &x408, x406, x359, + x390); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x409, &x410, x391, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x411, &x412, x409, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x413, &x414, x409, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x415, &x416, 0x0, x391, + x413); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x417, &x418, x416, x393, + x414); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x419, &x420, x418, x395, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x421, &x422, x420, x397, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x423, &x424, x422, x399, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x425, &x426, x424, x401, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x427, &x428, x426, x403, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x429, &x430, x428, x405, + x411); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x431, &x432, x430, x407, + x412); + x433 = ((uint32_t)x432 + x408); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x434, &x435, x6, (arg1[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x436, &x437, x6, (arg1[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x438, &x439, x6, (arg1[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x440, &x441, x6, (arg1[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x442, &x443, x6, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x444, &x445, x6, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x446, &x447, x6, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x448, &x449, x6, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x450, &x451, 0x0, x449, + x446); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x452, &x453, x451, x447, + x444); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x454, &x455, x453, x445, + x442); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x456, &x457, x455, x443, + x440); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x458, &x459, x457, x441, + x438); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x460, &x461, x459, x439, + x436); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x462, &x463, x461, x437, + x434); + x464 = (x463 + x435); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x465, &x466, 0x0, x417, + x448); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x467, &x468, x466, x419, + x450); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x469, &x470, x468, x421, + x452); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x471, &x472, x470, x423, + x454); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x473, &x474, x472, x425, + x456); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x475, &x476, x474, x427, + x458); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x477, &x478, x476, x429, + x460); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x479, &x480, x478, x431, + x462); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x481, &x482, x480, x433, + x464); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x483, &x484, x465, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x485, &x486, x483, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x487, &x488, x483, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x489, &x490, 0x0, x465, + x487); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x491, &x492, x490, x467, + x488); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x493, &x494, x492, x469, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x495, &x496, x494, x471, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x497, &x498, x496, x473, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x499, &x500, x498, x475, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x501, &x502, x500, x477, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x503, &x504, x502, x479, + x485); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x505, &x506, x504, x481, + x486); + x507 = ((uint32_t)x506 + x482); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x508, &x509, x7, (arg1[7])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x510, &x511, x7, (arg1[6])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x512, &x513, x7, (arg1[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x514, &x515, x7, (arg1[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x516, &x517, x7, (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x518, &x519, x7, (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x520, &x521, x7, (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x522, &x523, x7, (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x524, &x525, 0x0, x523, + x520); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x526, &x527, x525, x521, + x518); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x528, &x529, x527, x519, + x516); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x530, &x531, x529, x517, + x514); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x532, &x533, x531, x515, + x512); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x534, &x535, x533, x513, + x510); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x536, &x537, x535, x511, + x508); + x538 = (x537 + x509); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x539, &x540, 0x0, x491, + x522); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x541, &x542, x540, x493, + x524); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x543, &x544, x542, x495, + x526); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x545, &x546, x544, x497, + x528); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x547, &x548, x546, x499, + x530); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x549, &x550, x548, x501, + x532); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x551, &x552, x550, x503, + x534); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x553, &x554, x552, x505, + x536); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x555, &x556, x554, x507, + x538); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x557, &x558, x539, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x559, &x560, x557, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x561, &x562, x557, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x563, &x564, 0x0, x539, + x561); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x565, &x566, x564, x541, + x562); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x567, &x568, x566, x543, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x569, &x570, x568, x545, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x571, &x572, x570, x547, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x573, &x574, x572, x549, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x575, &x576, x574, x551, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x577, &x578, x576, x553, + x559); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x579, &x580, x578, x555, + x560); + x581 = ((uint32_t)x580 + x556); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x582, &x583, 0x0, x565, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x584, &x585, x583, x567, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x586, &x587, x585, x569, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x588, &x589, x587, x571, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x590, &x591, x589, x573, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x592, &x593, x591, x575, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x594, &x595, x593, x577, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x596, &x597, x595, x579, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x598, &x599, x597, x581, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x600, x599, x582, x565); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x601, x599, x584, x567); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x602, x599, x586, x569); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x603, x599, x588, x571); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x604, x599, x590, x573); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x605, x599, x592, x575); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x606, x599, x594, x577); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x607, x599, x596, x579); + out1[0] = x600; + out1[1] = x601; + out1[2] = x602; + out1[3] = x603; + out1[4] = x604; + out1[5] = x605; + out1[6] = x606; + out1[7] = x607; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_add adds two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[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]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_add(uint32_t out1[8], + const uint32_t arg1[8], + const uint32_t arg2[8]) { + uint32_t x1; + fiat_id_GostR3410_2001_TestParamSet_uint1 x2; + uint32_t x3; + fiat_id_GostR3410_2001_TestParamSet_uint1 x4; + uint32_t x5; + fiat_id_GostR3410_2001_TestParamSet_uint1 x6; + uint32_t x7; + fiat_id_GostR3410_2001_TestParamSet_uint1 x8; + uint32_t x9; + fiat_id_GostR3410_2001_TestParamSet_uint1 x10; + uint32_t x11; + fiat_id_GostR3410_2001_TestParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_TestParamSet_uint1 x14; + uint32_t x15; + fiat_id_GostR3410_2001_TestParamSet_uint1 x16; + uint32_t x17; + fiat_id_GostR3410_2001_TestParamSet_uint1 x18; + uint32_t x19; + fiat_id_GostR3410_2001_TestParamSet_uint1 x20; + uint32_t x21; + fiat_id_GostR3410_2001_TestParamSet_uint1 x22; + uint32_t x23; + fiat_id_GostR3410_2001_TestParamSet_uint1 x24; + uint32_t x25; + fiat_id_GostR3410_2001_TestParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_TestParamSet_uint1 x28; + uint32_t x29; + fiat_id_GostR3410_2001_TestParamSet_uint1 x30; + uint32_t x31; + fiat_id_GostR3410_2001_TestParamSet_uint1 x32; + uint32_t x33; + fiat_id_GostR3410_2001_TestParamSet_uint1 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; + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x1, &x2, 0x0, (arg1[0]), + (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x3, &x4, x2, (arg1[1]), + (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x5, &x6, x4, (arg1[2]), + (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x7, &x8, x6, (arg1[3]), + (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x9, &x10, x8, (arg1[4]), + (arg2[4])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x11, &x12, x10, + (arg1[5]), (arg2[5])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x13, &x14, x12, + (arg1[6]), (arg2[6])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x15, &x16, x14, + (arg1[7]), (arg2[7])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x17, &x18, 0x0, x1, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x19, &x20, x18, x3, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x21, &x22, x20, x5, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x23, &x24, x22, x7, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x25, &x26, x24, x9, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x27, &x28, x26, x11, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x29, &x30, x28, x13, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x31, &x32, x30, x15, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x33, &x34, x32, x16, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x35, x34, x17, x1); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x36, x34, x19, x3); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x37, x34, x21, x5); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x38, x34, x23, x7); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x39, x34, x25, x9); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x40, x34, x27, x11); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x41, x34, x29, x13); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x42, x34, x31, x15); + out1[0] = x35; + out1[1] = x36; + out1[2] = x37; + out1[3] = x38; + out1[4] = x39; + out1[5] = x40; + out1[6] = x41; + out1[7] = x42; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_sub subtracts two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * arg2: [[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]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_sub(uint32_t out1[8], + const uint32_t arg1[8], + const uint32_t arg2[8]) { + uint32_t x1; + fiat_id_GostR3410_2001_TestParamSet_uint1 x2; + uint32_t x3; + fiat_id_GostR3410_2001_TestParamSet_uint1 x4; + uint32_t x5; + fiat_id_GostR3410_2001_TestParamSet_uint1 x6; + uint32_t x7; + fiat_id_GostR3410_2001_TestParamSet_uint1 x8; + uint32_t x9; + fiat_id_GostR3410_2001_TestParamSet_uint1 x10; + uint32_t x11; + fiat_id_GostR3410_2001_TestParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_TestParamSet_uint1 x14; + uint32_t x15; + fiat_id_GostR3410_2001_TestParamSet_uint1 x16; + uint32_t x17; + uint32_t x18; + fiat_id_GostR3410_2001_TestParamSet_uint1 x19; + uint32_t x20; + fiat_id_GostR3410_2001_TestParamSet_uint1 x21; + uint32_t x22; + fiat_id_GostR3410_2001_TestParamSet_uint1 x23; + uint32_t x24; + fiat_id_GostR3410_2001_TestParamSet_uint1 x25; + uint32_t x26; + fiat_id_GostR3410_2001_TestParamSet_uint1 x27; + uint32_t x28; + fiat_id_GostR3410_2001_TestParamSet_uint1 x29; + uint32_t x30; + fiat_id_GostR3410_2001_TestParamSet_uint1 x31; + uint32_t x32; + fiat_id_GostR3410_2001_TestParamSet_uint1 x33; + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x1, &x2, 0x0, (arg1[0]), + (arg2[0])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x3, &x4, x2, (arg1[1]), + (arg2[1])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x5, &x6, x4, (arg1[2]), + (arg2[2])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x7, &x8, x6, (arg1[3]), + (arg2[3])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x9, &x10, x8, (arg1[4]), + (arg2[4])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x11, &x12, x10, + (arg1[5]), (arg2[5])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x13, &x14, x12, + (arg1[6]), (arg2[6])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x15, &x16, x14, + (arg1[7]), (arg2[7])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x17, x16, 0x0, + UINT32_C(0xffffffff)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x18, &x19, 0x0, x1, + (x17 & UINT16_C(0x431))); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x20, &x21, x19, x3, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x22, &x23, x21, x5, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x24, &x25, x23, x7, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x26, &x27, x25, x9, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x28, &x29, x27, x11, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x30, &x31, x29, x13, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x32, &x33, x31, x15, (x17 & UINT32_C(0x80000000))); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x24; + out1[4] = x26; + out1[5] = x28; + out1[6] = x30; + out1[7] = x32; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_opp negates a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_opp(uint32_t out1[8], + const uint32_t arg1[8]) { + uint32_t x1; + fiat_id_GostR3410_2001_TestParamSet_uint1 x2; + uint32_t x3; + fiat_id_GostR3410_2001_TestParamSet_uint1 x4; + uint32_t x5; + fiat_id_GostR3410_2001_TestParamSet_uint1 x6; + uint32_t x7; + fiat_id_GostR3410_2001_TestParamSet_uint1 x8; + uint32_t x9; + fiat_id_GostR3410_2001_TestParamSet_uint1 x10; + uint32_t x11; + fiat_id_GostR3410_2001_TestParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_TestParamSet_uint1 x14; + uint32_t x15; + fiat_id_GostR3410_2001_TestParamSet_uint1 x16; + uint32_t x17; + uint32_t x18; + fiat_id_GostR3410_2001_TestParamSet_uint1 x19; + uint32_t x20; + fiat_id_GostR3410_2001_TestParamSet_uint1 x21; + uint32_t x22; + fiat_id_GostR3410_2001_TestParamSet_uint1 x23; + uint32_t x24; + fiat_id_GostR3410_2001_TestParamSet_uint1 x25; + uint32_t x26; + fiat_id_GostR3410_2001_TestParamSet_uint1 x27; + uint32_t x28; + fiat_id_GostR3410_2001_TestParamSet_uint1 x29; + uint32_t x30; + fiat_id_GostR3410_2001_TestParamSet_uint1 x31; + uint32_t x32; + fiat_id_GostR3410_2001_TestParamSet_uint1 x33; + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x1, &x2, 0x0, 0x0, + (arg1[0])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x3, &x4, x2, 0x0, + (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x5, &x6, x4, 0x0, + (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x7, &x8, x6, 0x0, + (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x9, &x10, x8, 0x0, + (arg1[4])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x11, &x12, x10, 0x0, + (arg1[5])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x13, &x14, x12, 0x0, + (arg1[6])); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x15, &x16, x14, 0x0, + (arg1[7])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x17, x16, 0x0, + UINT32_C(0xffffffff)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x18, &x19, 0x0, x1, + (x17 & UINT16_C(0x431))); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x20, &x21, x19, x3, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x22, &x23, x21, x5, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x24, &x25, x23, x7, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x26, &x27, x25, x9, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x28, &x29, x27, x11, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x30, &x31, x29, x13, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x32, &x33, x31, x15, (x17 & UINT32_C(0x80000000))); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x24; + out1[4] = x26; + out1[5] = x28; + out1[6] = x30; + out1[7] = x32; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_from_montgomery translates a field element out of the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^8) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_from_montgomery( + uint32_t out1[8], const uint32_t arg1[8]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + fiat_id_GostR3410_2001_TestParamSet_uint1 x9; + uint32_t x10; + fiat_id_GostR3410_2001_TestParamSet_uint1 x11; + uint32_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + fiat_id_GostR3410_2001_TestParamSet_uint1 x19; + uint32_t x20; + fiat_id_GostR3410_2001_TestParamSet_uint1 x21; + uint32_t x22; + fiat_id_GostR3410_2001_TestParamSet_uint1 x23; + uint32_t x24; + uint32_t x25; + uint32_t x26; + uint32_t x27; + uint32_t x28; + uint32_t x29; + uint32_t x30; + fiat_id_GostR3410_2001_TestParamSet_uint1 x31; + uint32_t x32; + fiat_id_GostR3410_2001_TestParamSet_uint1 x33; + uint32_t x34; + fiat_id_GostR3410_2001_TestParamSet_uint1 x35; + uint32_t x36; + uint32_t x37; + uint32_t x38; + uint32_t x39; + uint32_t x40; + uint32_t x41; + uint32_t x42; + fiat_id_GostR3410_2001_TestParamSet_uint1 x43; + uint32_t x44; + fiat_id_GostR3410_2001_TestParamSet_uint1 x45; + uint32_t x46; + fiat_id_GostR3410_2001_TestParamSet_uint1 x47; + uint32_t x48; + uint32_t x49; + uint32_t x50; + uint32_t x51; + uint32_t x52; + uint32_t x53; + uint32_t x54; + fiat_id_GostR3410_2001_TestParamSet_uint1 x55; + uint32_t x56; + fiat_id_GostR3410_2001_TestParamSet_uint1 x57; + uint32_t x58; + fiat_id_GostR3410_2001_TestParamSet_uint1 x59; + uint32_t x60; + uint32_t x61; + uint32_t x62; + uint32_t x63; + uint32_t x64; + uint32_t x65; + uint32_t x66; + fiat_id_GostR3410_2001_TestParamSet_uint1 x67; + uint32_t x68; + fiat_id_GostR3410_2001_TestParamSet_uint1 x69; + uint32_t x70; + fiat_id_GostR3410_2001_TestParamSet_uint1 x71; + uint32_t x72; + fiat_id_GostR3410_2001_TestParamSet_uint1 x73; + uint32_t x74; + fiat_id_GostR3410_2001_TestParamSet_uint1 x75; + uint32_t x76; + fiat_id_GostR3410_2001_TestParamSet_uint1 x77; + uint32_t x78; + fiat_id_GostR3410_2001_TestParamSet_uint1 x79; + uint32_t x80; + fiat_id_GostR3410_2001_TestParamSet_uint1 x81; + uint32_t x82; + fiat_id_GostR3410_2001_TestParamSet_uint1 x83; + uint32_t x84; + uint32_t x85; + uint32_t x86; + uint32_t x87; + uint32_t x88; + uint32_t x89; + uint32_t x90; + fiat_id_GostR3410_2001_TestParamSet_uint1 x91; + uint32_t x92; + fiat_id_GostR3410_2001_TestParamSet_uint1 x93; + uint32_t x94; + fiat_id_GostR3410_2001_TestParamSet_uint1 x95; + uint32_t x96; + fiat_id_GostR3410_2001_TestParamSet_uint1 x97; + uint32_t x98; + fiat_id_GostR3410_2001_TestParamSet_uint1 x99; + uint32_t x100; + fiat_id_GostR3410_2001_TestParamSet_uint1 x101; + uint32_t x102; + fiat_id_GostR3410_2001_TestParamSet_uint1 x103; + uint32_t x104; + fiat_id_GostR3410_2001_TestParamSet_uint1 x105; + uint32_t x106; + fiat_id_GostR3410_2001_TestParamSet_uint1 x107; + uint32_t x108; + fiat_id_GostR3410_2001_TestParamSet_uint1 x109; + uint32_t x110; + fiat_id_GostR3410_2001_TestParamSet_uint1 x111; + uint32_t x112; + fiat_id_GostR3410_2001_TestParamSet_uint1 x113; + uint32_t x114; + fiat_id_GostR3410_2001_TestParamSet_uint1 x115; + uint32_t x116; + fiat_id_GostR3410_2001_TestParamSet_uint1 x117; + uint32_t x118; + fiat_id_GostR3410_2001_TestParamSet_uint1 x119; + uint32_t x120; + uint32_t x121; + uint32_t x122; + uint32_t x123; + uint32_t x124; + uint32_t x125; + uint32_t x126; + fiat_id_GostR3410_2001_TestParamSet_uint1 x127; + uint32_t x128; + fiat_id_GostR3410_2001_TestParamSet_uint1 x129; + uint32_t x130; + fiat_id_GostR3410_2001_TestParamSet_uint1 x131; + uint32_t x132; + fiat_id_GostR3410_2001_TestParamSet_uint1 x133; + uint32_t x134; + fiat_id_GostR3410_2001_TestParamSet_uint1 x135; + uint32_t x136; + fiat_id_GostR3410_2001_TestParamSet_uint1 x137; + uint32_t x138; + fiat_id_GostR3410_2001_TestParamSet_uint1 x139; + uint32_t x140; + fiat_id_GostR3410_2001_TestParamSet_uint1 x141; + uint32_t x142; + uint32_t x143; + fiat_id_GostR3410_2001_TestParamSet_uint1 x144; + uint32_t x145; + fiat_id_GostR3410_2001_TestParamSet_uint1 x146; + uint32_t x147; + fiat_id_GostR3410_2001_TestParamSet_uint1 x148; + uint32_t x149; + fiat_id_GostR3410_2001_TestParamSet_uint1 x150; + uint32_t x151; + fiat_id_GostR3410_2001_TestParamSet_uint1 x152; + uint32_t x153; + fiat_id_GostR3410_2001_TestParamSet_uint1 x154; + uint32_t x155; + fiat_id_GostR3410_2001_TestParamSet_uint1 x156; + uint32_t x157; + fiat_id_GostR3410_2001_TestParamSet_uint1 x158; + uint32_t x159; + fiat_id_GostR3410_2001_TestParamSet_uint1 x160; + uint32_t x161; + uint32_t x162; + uint32_t x163; + uint32_t x164; + uint32_t x165; + uint32_t x166; + uint32_t x167; + uint32_t x168; + x1 = (arg1[0]); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x2, &x3, x1, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x4, &x5, x2, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x6, &x7, x2, UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x8, &x9, 0x0, x1, x6); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x10, &x11, 0x0, + (x9 + x7), (arg1[1])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x12, &x13, x10, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x14, &x15, x12, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x16, &x17, x12, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x18, &x19, 0x0, x5, x14); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x20, &x21, 0x0, x10, + x16); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x22, &x23, 0x0, (((uint32_t)x21 + x11) + x17), (arg1[2])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x24, &x25, x22, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x26, &x27, x24, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x28, &x29, x24, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x30, &x31, 0x0, + (x19 + x15), x26); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x32, &x33, 0x0, x22, + x28); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x34, &x35, 0x0, (((uint32_t)x33 + x23) + x29), (arg1[3])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x36, &x37, x34, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x38, &x39, x36, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x40, &x41, x36, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x42, &x43, 0x0, + (x31 + x27), x38); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x44, &x45, 0x0, x34, + x40); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x46, &x47, 0x0, (((uint32_t)x45 + x35) + x41), (arg1[4])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x48, &x49, x46, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x50, &x51, x48, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x52, &x53, x48, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x54, &x55, 0x0, + (x43 + x39), x50); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x56, &x57, 0x0, x46, + x52); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x58, &x59, 0x0, (((uint32_t)x57 + x47) + x53), (arg1[5])); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x60, &x61, x58, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x62, &x63, x60, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x64, &x65, x60, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x66, &x67, 0x0, + (x55 + x51), x62); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x68, &x69, 0x0, x58, + x64); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x70, &x71, 0x0, (((uint32_t)x69 + x59) + x65), (arg1[6])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x72, &x73, x71, x4, 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x74, &x75, x73, x18, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x76, &x77, x75, x30, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x78, &x79, x77, x42, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x80, &x81, x79, x54, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x82, &x83, x81, x66, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x84, &x85, x70, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x86, &x87, x84, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x88, &x89, x84, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x90, &x91, 0x0, x70, + x88); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x92, &x93, x91, x72, + x89); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x94, &x95, x93, x74, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x96, &x97, x95, x76, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x98, &x99, x97, x78, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x100, &x101, x99, x80, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x102, &x103, x101, x82, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x104, &x105, x103, + (x83 + (x67 + x63)), x86); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x106, &x107, 0x0, x92, + (arg1[7])); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x108, &x109, x107, x94, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x110, &x111, x109, x96, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x112, &x113, x111, x98, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x114, &x115, x113, x100, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x116, &x117, x115, x102, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x118, &x119, x117, x104, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x120, &x121, x106, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x122, &x123, x120, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x124, &x125, x120, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x126, &x127, 0x0, x106, + x124); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x128, &x129, x127, x108, + x125); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x130, &x131, x129, x110, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x132, &x133, x131, x112, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x134, &x135, x133, x114, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x136, &x137, x135, x116, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x138, &x139, x137, x118, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x140, &x141, x139, (x119 + (x105 + x87)), x122); + x142 = (x141 + x123); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x143, &x144, 0x0, x128, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x145, &x146, x144, x130, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x147, &x148, x146, x132, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x149, &x150, x148, x134, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x151, &x152, x150, x136, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x153, &x154, x152, x138, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x155, &x156, x154, x140, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x157, &x158, x156, x142, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x159, &x160, x158, 0x0, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x161, x160, x143, x128); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x162, x160, x145, x130); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x163, x160, x147, x132); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x164, x160, x149, x134); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x165, x160, x151, x136); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x166, x160, x153, x138); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x167, x160, x155, x140); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x168, x160, x157, x142); + out1[0] = x161; + out1[1] = x162; + out1[2] = x163; + out1[3] = x164; + out1[4] = x165; + out1[5] = x166; + out1[6] = x167; + out1[7] = x168; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_to_montgomery translates a field element into the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = eval arg1 mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_to_montgomery( + uint32_t out1[8], const uint32_t arg1[8]) { + 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; + fiat_id_GostR3410_2001_TestParamSet_uint1 x12; + uint32_t x13; + fiat_id_GostR3410_2001_TestParamSet_uint1 x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_t x20; + uint32_t x21; + fiat_id_GostR3410_2001_TestParamSet_uint1 x22; + uint32_t x23; + uint32_t x24; + uint32_t x25; + fiat_id_GostR3410_2001_TestParamSet_uint1 x26; + uint32_t x27; + fiat_id_GostR3410_2001_TestParamSet_uint1 x28; + uint32_t x29; + uint32_t x30; + uint32_t x31; + uint32_t x32; + uint32_t x33; + uint32_t x34; + uint32_t x35; + fiat_id_GostR3410_2001_TestParamSet_uint1 x36; + uint32_t x37; + uint32_t x38; + uint32_t x39; + fiat_id_GostR3410_2001_TestParamSet_uint1 x40; + uint32_t x41; + fiat_id_GostR3410_2001_TestParamSet_uint1 x42; + uint32_t x43; + uint32_t x44; + uint32_t x45; + uint32_t x46; + uint32_t x47; + uint32_t x48; + uint32_t x49; + fiat_id_GostR3410_2001_TestParamSet_uint1 x50; + uint32_t x51; + uint32_t x52; + uint32_t x53; + fiat_id_GostR3410_2001_TestParamSet_uint1 x54; + uint32_t x55; + fiat_id_GostR3410_2001_TestParamSet_uint1 x56; + uint32_t x57; + uint32_t x58; + uint32_t x59; + uint32_t x60; + uint32_t x61; + uint32_t x62; + uint32_t x63; + fiat_id_GostR3410_2001_TestParamSet_uint1 x64; + uint32_t x65; + uint32_t x66; + uint32_t x67; + fiat_id_GostR3410_2001_TestParamSet_uint1 x68; + uint32_t x69; + fiat_id_GostR3410_2001_TestParamSet_uint1 x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + fiat_id_GostR3410_2001_TestParamSet_uint1 x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + fiat_id_GostR3410_2001_TestParamSet_uint1 x82; + uint32_t x83; + fiat_id_GostR3410_2001_TestParamSet_uint1 x84; + uint32_t x85; + fiat_id_GostR3410_2001_TestParamSet_uint1 x86; + uint32_t x87; + fiat_id_GostR3410_2001_TestParamSet_uint1 x88; + uint32_t x89; + fiat_id_GostR3410_2001_TestParamSet_uint1 x90; + uint32_t x91; + fiat_id_GostR3410_2001_TestParamSet_uint1 x92; + uint32_t x93; + fiat_id_GostR3410_2001_TestParamSet_uint1 x94; + uint32_t x95; + fiat_id_GostR3410_2001_TestParamSet_uint1 x96; + uint32_t x97; + uint32_t x98; + uint32_t x99; + uint32_t x100; + uint32_t x101; + uint32_t x102; + uint32_t x103; + fiat_id_GostR3410_2001_TestParamSet_uint1 x104; + uint32_t x105; + fiat_id_GostR3410_2001_TestParamSet_uint1 x106; + uint32_t x107; + fiat_id_GostR3410_2001_TestParamSet_uint1 x108; + uint32_t x109; + fiat_id_GostR3410_2001_TestParamSet_uint1 x110; + uint32_t x111; + fiat_id_GostR3410_2001_TestParamSet_uint1 x112; + uint32_t x113; + fiat_id_GostR3410_2001_TestParamSet_uint1 x114; + uint32_t x115; + fiat_id_GostR3410_2001_TestParamSet_uint1 x116; + uint32_t x117; + fiat_id_GostR3410_2001_TestParamSet_uint1 x118; + uint32_t x119; + uint32_t x120; + uint32_t x121; + fiat_id_GostR3410_2001_TestParamSet_uint1 x122; + uint32_t x123; + fiat_id_GostR3410_2001_TestParamSet_uint1 x124; + uint32_t x125; + fiat_id_GostR3410_2001_TestParamSet_uint1 x126; + uint32_t x127; + fiat_id_GostR3410_2001_TestParamSet_uint1 x128; + uint32_t x129; + fiat_id_GostR3410_2001_TestParamSet_uint1 x130; + uint32_t x131; + fiat_id_GostR3410_2001_TestParamSet_uint1 x132; + uint32_t x133; + fiat_id_GostR3410_2001_TestParamSet_uint1 x134; + uint32_t x135; + uint32_t x136; + uint32_t x137; + uint32_t x138; + uint32_t x139; + uint32_t x140; + uint32_t x141; + fiat_id_GostR3410_2001_TestParamSet_uint1 x142; + uint32_t x143; + fiat_id_GostR3410_2001_TestParamSet_uint1 x144; + uint32_t x145; + fiat_id_GostR3410_2001_TestParamSet_uint1 x146; + uint32_t x147; + fiat_id_GostR3410_2001_TestParamSet_uint1 x148; + uint32_t x149; + fiat_id_GostR3410_2001_TestParamSet_uint1 x150; + uint32_t x151; + fiat_id_GostR3410_2001_TestParamSet_uint1 x152; + uint32_t x153; + fiat_id_GostR3410_2001_TestParamSet_uint1 x154; + uint32_t x155; + fiat_id_GostR3410_2001_TestParamSet_uint1 x156; + uint32_t x157; + uint32_t x158; + fiat_id_GostR3410_2001_TestParamSet_uint1 x159; + uint32_t x160; + fiat_id_GostR3410_2001_TestParamSet_uint1 x161; + uint32_t x162; + fiat_id_GostR3410_2001_TestParamSet_uint1 x163; + uint32_t x164; + fiat_id_GostR3410_2001_TestParamSet_uint1 x165; + uint32_t x166; + fiat_id_GostR3410_2001_TestParamSet_uint1 x167; + uint32_t x168; + fiat_id_GostR3410_2001_TestParamSet_uint1 x169; + uint32_t x170; + fiat_id_GostR3410_2001_TestParamSet_uint1 x171; + uint32_t x172; + fiat_id_GostR3410_2001_TestParamSet_uint1 x173; + uint32_t x174; + fiat_id_GostR3410_2001_TestParamSet_uint1 x175; + uint32_t x176; + uint32_t x177; + uint32_t x178; + uint32_t x179; + uint32_t x180; + uint32_t x181; + uint32_t x182; + uint32_t x183; + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x1, &x2, (arg1[0]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x3, &x4, x1, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x5, &x6, x3, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x7, &x8, x3, UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x9, &x10, (arg1[1]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x11, &x12, 0x0, x1, x7); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x13, &x14, 0x0, + ((x12 + x2) + x8), x9); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x15, &x16, x13, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x17, &x18, x15, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x19, &x20, x15, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x21, &x22, 0x0, x6, x17); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x23, &x24, (arg1[2]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x25, &x26, 0x0, x13, + x19); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x27, &x28, 0x0, ((x26 + (x14 + x10)) + x20), x23); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x29, &x30, x27, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x31, &x32, x29, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x33, &x34, x29, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x35, &x36, 0x0, + (x22 + x18), x31); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x37, &x38, (arg1[3]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x39, &x40, 0x0, x27, + x33); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x41, &x42, 0x0, ((x40 + (x28 + x24)) + x34), x37); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x43, &x44, x41, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x45, &x46, x43, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x47, &x48, x43, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x49, &x50, 0x0, + (x36 + x32), x45); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x51, &x52, (arg1[4]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x53, &x54, 0x0, x41, + x47); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x55, &x56, 0x0, ((x54 + (x42 + x38)) + x48), x51); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x57, &x58, x55, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x59, &x60, x57, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x61, &x62, x57, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x63, &x64, 0x0, + (x50 + x46), x59); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x65, &x66, (arg1[5]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x67, &x68, 0x0, x55, + x61); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x69, &x70, 0x0, ((x68 + (x56 + x52)) + x62), x65); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x71, &x72, x69, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x73, &x74, x71, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x75, &x76, x71, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x77, &x78, 0x0, + (x64 + x60), x73); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x79, &x80, (arg1[6]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x81, &x82, 0x0, x69, + x75); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x83, &x84, 0x0, ((x82 + (x70 + x66)) + x76), x79); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x85, &x86, x84, x5, x80); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x87, &x88, x86, x21, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x89, &x90, x88, x35, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x91, &x92, x90, x49, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x93, &x94, x92, x63, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x95, &x96, x94, x77, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x97, &x98, x83, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x99, &x100, x97, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x101, &x102, x97, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x103, &x104, 0x0, x83, + x101); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x105, &x106, x104, x85, + x102); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x107, &x108, x106, x87, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x109, &x110, x108, x89, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x111, &x112, x110, x91, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x113, &x114, x112, x93, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x115, &x116, x114, x95, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x117, &x118, x116, + (x96 + (x78 + x74)), x99); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x119, &x120, (arg1[7]), + UINT32_C(0x464584)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x121, &x122, 0x0, x105, + x119); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x123, &x124, x122, x107, + x120); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x125, &x126, x124, x109, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x127, &x128, x126, x111, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x129, &x130, x128, x113, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x131, &x132, x130, x115, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x133, &x134, x132, x117, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x135, &x136, x121, + UINT32_C(0x883b2b2f)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x137, &x138, x135, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_mulx_u32(&x139, &x140, x135, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x141, &x142, 0x0, x121, + x139); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x143, &x144, x142, x123, + x140); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x145, &x146, x144, x125, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x147, &x148, x146, x127, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x149, &x150, x148, x129, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x151, &x152, x150, x131, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32(&x153, &x154, x152, x133, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_addcarryx_u32( + &x155, &x156, x154, (x134 + (x118 + x100)), x137); + x157 = (x156 + x138); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x158, &x159, 0x0, x143, + UINT16_C(0x431)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x160, &x161, x159, x145, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x162, &x163, x161, x147, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x164, &x165, x163, x149, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x166, &x167, x165, x151, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x168, &x169, x167, x153, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x170, &x171, x169, x155, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x172, &x173, x171, x157, + UINT32_C(0x80000000)); + fiat_id_GostR3410_2001_TestParamSet_subborrowx_u32(&x174, &x175, x173, 0x0, + 0x0); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x176, x175, x158, x143); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x177, x175, x160, x145); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x178, x175, x162, x147); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x179, x175, x164, x149); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x180, x175, x166, x151); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x181, x175, x168, x153); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x182, x175, x170, x155); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x183, x175, x172, x157); + out1[0] = x176; + out1[1] = x177; + out1[2] = x178; + out1[3] = x179; + out1[4] = x180; + out1[5] = x181; + out1[6] = x182; + out1[7] = x183; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + */ +static void fiat_id_GostR3410_2001_TestParamSet_nonzero( + uint32_t *out1, const uint32_t arg1[8]) { + uint32_t x1; + x1 = ((arg1[0]) | + ((arg1[1]) | + ((arg1[2]) | + ((arg1[3]) | + ((arg1[4]) | + ((arg1[5]) | ((arg1[6]) | ((arg1[7]) | (uint32_t)0x0)))))))); + *out1 = x1; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_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]] + * arg3: [[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]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_selectznz( + uint32_t out1[8], fiat_id_GostR3410_2001_TestParamSet_uint1 arg1, + const uint32_t arg2[8], const uint32_t arg3[8]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x1, arg1, (arg2[0]), + (arg3[0])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x2, arg1, (arg2[1]), + (arg3[1])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x3, arg1, (arg2[2]), + (arg3[2])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x4, arg1, (arg2[3]), + (arg3[3])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x5, arg1, (arg2[4]), + (arg3[4])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x6, arg1, (arg2[5]), + (arg3[5])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x7, arg1, (arg2[6]), + (arg3[6])); + fiat_id_GostR3410_2001_TestParamSet_cmovznz_u32(&x8, arg1, (arg2[7]), + (arg3[7])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..31] + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + * 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]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_to_bytes( + uint8_t out1[32], const uint32_t arg1[8]) { + 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; + uint8_t x10; + uint32_t x11; + uint8_t x12; + uint8_t x13; + uint8_t x14; + uint8_t x15; + uint32_t x16; + uint8_t x17; + uint32_t x18; + uint8_t x19; + uint8_t x20; + uint8_t x21; + uint8_t x22; + uint32_t x23; + uint8_t x24; + uint32_t x25; + uint8_t x26; + uint8_t x27; + uint8_t x28; + uint8_t x29; + uint32_t x30; + uint8_t x31; + uint32_t x32; + uint8_t x33; + uint8_t x34; + uint8_t x35; + uint8_t x36; + uint32_t x37; + uint8_t x38; + uint32_t x39; + uint8_t x40; + uint8_t x41; + uint8_t x42; + uint8_t x43; + uint32_t x44; + uint8_t x45; + uint32_t x46; + uint8_t x47; + uint8_t x48; + uint8_t x49; + uint8_t x50; + uint32_t x51; + uint8_t x52; + uint32_t x53; + uint8_t x54; + uint8_t x55; + uint8_t x56; + uint8_t x57; + uint32_t x58; + uint8_t x59; + uint32_t x60; + uint8_t x61; + uint8_t x62; + uint8_t x63; + x1 = (arg1[7]); + x2 = (arg1[6]); + x3 = (arg1[5]); + x4 = (arg1[4]); + x5 = (arg1[3]); + x6 = (arg1[2]); + x7 = (arg1[1]); + x8 = (arg1[0]); + x9 = (x8 >> 8); + x10 = (uint8_t)(x8 & UINT8_C(0xff)); + x11 = (x9 >> 8); + x12 = (uint8_t)(x9 & UINT8_C(0xff)); + x13 = (uint8_t)(x11 >> 8); + x14 = (uint8_t)(x11 & UINT8_C(0xff)); + x15 = (uint8_t)(x13 & UINT8_C(0xff)); + x16 = (x7 >> 8); + x17 = (uint8_t)(x7 & UINT8_C(0xff)); + x18 = (x16 >> 8); + x19 = (uint8_t)(x16 & UINT8_C(0xff)); + x20 = (uint8_t)(x18 >> 8); + x21 = (uint8_t)(x18 & UINT8_C(0xff)); + x22 = (uint8_t)(x20 & UINT8_C(0xff)); + x23 = (x6 >> 8); + x24 = (uint8_t)(x6 & UINT8_C(0xff)); + x25 = (x23 >> 8); + x26 = (uint8_t)(x23 & UINT8_C(0xff)); + x27 = (uint8_t)(x25 >> 8); + x28 = (uint8_t)(x25 & UINT8_C(0xff)); + x29 = (uint8_t)(x27 & UINT8_C(0xff)); + x30 = (x5 >> 8); + x31 = (uint8_t)(x5 & UINT8_C(0xff)); + x32 = (x30 >> 8); + x33 = (uint8_t)(x30 & UINT8_C(0xff)); + x34 = (uint8_t)(x32 >> 8); + x35 = (uint8_t)(x32 & UINT8_C(0xff)); + x36 = (uint8_t)(x34 & UINT8_C(0xff)); + x37 = (x4 >> 8); + x38 = (uint8_t)(x4 & UINT8_C(0xff)); + x39 = (x37 >> 8); + x40 = (uint8_t)(x37 & UINT8_C(0xff)); + x41 = (uint8_t)(x39 >> 8); + x42 = (uint8_t)(x39 & UINT8_C(0xff)); + x43 = (uint8_t)(x41 & UINT8_C(0xff)); + x44 = (x3 >> 8); + x45 = (uint8_t)(x3 & UINT8_C(0xff)); + x46 = (x44 >> 8); + x47 = (uint8_t)(x44 & UINT8_C(0xff)); + x48 = (uint8_t)(x46 >> 8); + x49 = (uint8_t)(x46 & UINT8_C(0xff)); + x50 = (uint8_t)(x48 & UINT8_C(0xff)); + x51 = (x2 >> 8); + x52 = (uint8_t)(x2 & UINT8_C(0xff)); + x53 = (x51 >> 8); + x54 = (uint8_t)(x51 & UINT8_C(0xff)); + x55 = (uint8_t)(x53 >> 8); + x56 = (uint8_t)(x53 & UINT8_C(0xff)); + x57 = (uint8_t)(x55 & UINT8_C(0xff)); + x58 = (x1 >> 8); + x59 = (uint8_t)(x1 & UINT8_C(0xff)); + x60 = (x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (uint8_t)(x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x15; + out1[4] = x17; + out1[5] = x19; + out1[6] = x21; + out1[7] = x22; + out1[8] = x24; + out1[9] = x26; + out1[10] = x28; + out1[11] = x29; + out1[12] = x31; + out1[13] = x33; + out1[14] = x35; + out1[15] = x36; + out1[16] = x38; + out1[17] = x40; + out1[18] = x42; + out1[19] = x43; + out1[20] = x45; + out1[21] = x47; + out1[22] = x49; + out1[23] = x50; + out1[24] = x52; + out1[25] = x54; + out1[26] = x56; + out1[27] = x57; + out1[28] = x59; + out1[29] = x61; + out1[30] = x63; + out1[31] = x62; +} + +/* + * The function fiat_id_GostR3410_2001_TestParamSet_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order. + * Preconditions: + * 0 ≤ bytes_eval arg1 < m + * Postconditions: + * eval out1 mod m = bytes_eval arg1 mod m + * 0 ≤ eval out1 < 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]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff], [0x0 ~> 0xffffffff]] + */ +static void fiat_id_GostR3410_2001_TestParamSet_from_bytes( + uint32_t out1[8], const uint8_t arg1[32]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint8_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint8_t x8; + uint32_t x9; + uint32_t x10; + uint32_t x11; + uint8_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint8_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint8_t x20; + uint32_t x21; + uint32_t x22; + uint32_t x23; + uint8_t x24; + uint32_t x25; + uint32_t x26; + uint32_t x27; + uint8_t x28; + uint32_t x29; + uint32_t x30; + uint32_t x31; + uint8_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; + x1 = ((uint32_t)(arg1[31]) << 24); + x2 = ((uint32_t)(arg1[30]) << 16); + x3 = ((uint32_t)(arg1[29]) << 8); + x4 = (arg1[28]); + x5 = ((uint32_t)(arg1[27]) << 24); + x6 = ((uint32_t)(arg1[26]) << 16); + x7 = ((uint32_t)(arg1[25]) << 8); + x8 = (arg1[24]); + x9 = ((uint32_t)(arg1[23]) << 24); + x10 = ((uint32_t)(arg1[22]) << 16); + x11 = ((uint32_t)(arg1[21]) << 8); + x12 = (arg1[20]); + x13 = ((uint32_t)(arg1[19]) << 24); + x14 = ((uint32_t)(arg1[18]) << 16); + x15 = ((uint32_t)(arg1[17]) << 8); + x16 = (arg1[16]); + x17 = ((uint32_t)(arg1[15]) << 24); + x18 = ((uint32_t)(arg1[14]) << 16); + x19 = ((uint32_t)(arg1[13]) << 8); + x20 = (arg1[12]); + x21 = ((uint32_t)(arg1[11]) << 24); + x22 = ((uint32_t)(arg1[10]) << 16); + x23 = ((uint32_t)(arg1[9]) << 8); + x24 = (arg1[8]); + x25 = ((uint32_t)(arg1[7]) << 24); + x26 = ((uint32_t)(arg1[6]) << 16); + x27 = ((uint32_t)(arg1[5]) << 8); + x28 = (arg1[4]); + x29 = ((uint32_t)(arg1[3]) << 24); + x30 = ((uint32_t)(arg1[2]) << 16); + x31 = ((uint32_t)(arg1[1]) << 8); + x32 = (arg1[0]); + x33 = (x32 + (x31 + (x30 + x29))); + x34 = (x33 & UINT32_C(0xffffffff)); + x35 = (x4 + (x3 + (x2 + x1))); + x36 = (x8 + (x7 + (x6 + x5))); + x37 = (x12 + (x11 + (x10 + x9))); + x38 = (x16 + (x15 + (x14 + x13))); + x39 = (x20 + (x19 + (x18 + x17))); + x40 = (x24 + (x23 + (x22 + x21))); + x41 = (x28 + (x27 + (x26 + x25))); + x42 = (x41 & UINT32_C(0xffffffff)); + x43 = (x40 & UINT32_C(0xffffffff)); + x44 = (x39 & UINT32_C(0xffffffff)); + x45 = (x38 & UINT32_C(0xffffffff)); + x46 = (x37 & UINT32_C(0xffffffff)); + x47 = (x36 & UINT32_C(0xffffffff)); + out1[0] = x34; + out1[1] = x42; + out1[2] = x43; + out1[3] = x44; + out1[4] = x45; + out1[5] = x46; + out1[6] = x47; + out1[7] = x35; +} + +/* 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_GostR3410_2001_TestParamSet/fe_inv.op3 + * sliding window w=5 + */ +static void fiat_id_GostR3410_2001_TestParamSet_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t15; + + fiat_id_GostR3410_2001_TestParamSet_square(acc, t1); + fiat_id_GostR3410_2001_TestParamSet_mul(t15, t1, acc); + for (i = 0; i < 6; i++) + fiat_id_GostR3410_2001_TestParamSet_mul(t15, t15, acc); + fiat_id_GostR3410_2001_TestParamSet_square(acc, t1); + for (i = 0; i < 244; i++) + fiat_id_GostR3410_2001_TestParamSet_square(acc, acc); + fiat_id_GostR3410_2001_TestParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_TestParamSet_square(acc, acc); + fiat_id_GostR3410_2001_TestParamSet_mul(acc, acc, t1); + for (i = 0; i < 5; i++) + fiat_id_GostR3410_2001_TestParamSet_square(acc, acc); + fiat_id_GostR3410_2001_TestParamSet_mul(output, acc, t15); +} + +/* curve coefficient constants */ + +static const limb_t const_one[8] = {UINT32_C(0xFFFFFBCF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0x7FFFFFFF)}; + +static const limb_t const_a[8] = {UINT32_C(0xFFFFC983), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0x7FFFFFFF)}; + +static const limb_t const_b3[8] = {UINT32_C(0x6AEAB71C), UINT32_C(0x81733EE9), + UINT32_C(0xFC4E6FC7), UINT32_C(0x00CD3D1C), + UINT32_C(0x75853407), UINT32_C(0x60AB503A), + UINT32_C(0x4556810A), UINT32_C(0x0A9EC8AE)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[27][16] = { + { + {{UINT32_C(0xFFFFF36D), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0x7FFFFFFF)}, + {UINT32_C(0x471125F5), UINT32_C(0x9AF45A5A), UINT32_C(0xF69BF9AE), + UINT32_C(0x7CE5090A), UINT32_C(0xE4B6DDE6), UINT32_C(0x67617A63), + UINT32_C(0x4AA3DAA4), UINT32_C(0x03F66B35)}}, + {{UINT32_C(0x149B5D15), UINT32_C(0xB39BDC16), UINT32_C(0x7309454F), + UINT32_C(0x87CE978A), UINT32_C(0x315A7A56), UINT32_C(0xD22F32EF), + UINT32_C(0xB69A6B57), UINT32_C(0x4C7DE232)}, + {UINT32_C(0x466DC64D), UINT32_C(0x9E2DAF6D), UINT32_C(0x4B1C8A55), + UINT32_C(0x758C27B1), UINT32_C(0xBD647F1A), UINT32_C(0x74A0CB23), + UINT32_C(0x2C2F4C70), UINT32_C(0x27E74868)}}, + {{UINT32_C(0x55A62594), UINT32_C(0xF2D8F32E), UINT32_C(0x36BC547A), + UINT32_C(0x8323D570), UINT32_C(0x98D4B25A), UINT32_C(0x497679EB), + UINT32_C(0xB87E0534), UINT32_C(0x061167F2)}, + {UINT32_C(0x223E4DF8), UINT32_C(0xE1FFFDCE), UINT32_C(0xDCD891E9), + UINT32_C(0x7C83AE78), UINT32_C(0x3C1B95D0), UINT32_C(0x74398586), + UINT32_C(0x74B3F5AB), UINT32_C(0x11D73205)}}, + {{UINT32_C(0xACB97F7C), UINT32_C(0x34B9C048), UINT32_C(0xE3B9BCC6), + UINT32_C(0x8232E73C), UINT32_C(0xDA2DB71D), UINT32_C(0x81F4B63F), + UINT32_C(0xA2DF4C84), UINT32_C(0x4EEE5393)}, + {UINT32_C(0xAC469C69), UINT32_C(0xCA6E63AE), UINT32_C(0x428E4F01), + UINT32_C(0x27BC807C), UINT32_C(0x5F4EC124), UINT32_C(0x4A2C23BA), + UINT32_C(0xAAE2668B), UINT32_C(0x74847CFC)}}, + {{UINT32_C(0x6716AF4E), UINT32_C(0x4435585F), UINT32_C(0x1CDB965F), + UINT32_C(0xB872D8B7), UINT32_C(0x746FFAD0), UINT32_C(0x662F1962), + UINT32_C(0xDB5D0187), UINT32_C(0x52761A24)}, + {UINT32_C(0xA57E0E3D), UINT32_C(0xF6A09922), UINT32_C(0xA9C12B63), + UINT32_C(0x86C69342), UINT32_C(0x5AF190C5), UINT32_C(0x91FF20B6), + UINT32_C(0x4EEEE1AE), UINT32_C(0x10DB7A2A)}}, + {{UINT32_C(0x74628B90), UINT32_C(0xBB464A53), UINT32_C(0x057A4F25), + UINT32_C(0x6E7A1227), UINT32_C(0x0B0FA41F), UINT32_C(0x4C309D69), + UINT32_C(0x77FE7B93), UINT32_C(0x75482607)}, + {UINT32_C(0x0B612421), UINT32_C(0xF2583EC7), UINT32_C(0x5E2B15ED), + UINT32_C(0xFF2CFC83), UINT32_C(0x8CABC5CF), UINT32_C(0x1E97A7DB), + UINT32_C(0x925C149F), UINT32_C(0x1EC08FAA)}}, + {{UINT32_C(0x0E9FCBA9), UINT32_C(0xBA0170E3), UINT32_C(0x70D9939B), + UINT32_C(0x8976DF7C), UINT32_C(0x21AF14DD), UINT32_C(0xEAE6E74B), + UINT32_C(0x0D0861F9), UINT32_C(0x09F09868)}, + {UINT32_C(0x21A781FF), UINT32_C(0x4F7FE26E), UINT32_C(0xD73DCEF7), + UINT32_C(0x1725B8D0), UINT32_C(0x7E743498), UINT32_C(0x9DA63217), + UINT32_C(0x1B828B99), UINT32_C(0x0F51D42C)}}, + {{UINT32_C(0x9AFE09BD), UINT32_C(0xBABB076B), UINT32_C(0x17C4050D), + UINT32_C(0x4AC89223), UINT32_C(0xDA3E57E8), UINT32_C(0xCA3EA6E3), + UINT32_C(0xA33242C0), UINT32_C(0x20AAA384)}, + {UINT32_C(0xEF929BF5), UINT32_C(0x6D3A1F2D), UINT32_C(0xE751A62D), + UINT32_C(0xB34E2605), UINT32_C(0xB8CF1F99), UINT32_C(0xE1AC629F), + UINT32_C(0xF0BBA01A), UINT32_C(0x7152D4E3)}}, + {{UINT32_C(0x943E5B8E), UINT32_C(0xA97A6CE3), UINT32_C(0x2D053A9D), + UINT32_C(0x1C0F6C7F), UINT32_C(0x64457DE4), UINT32_C(0x9D4A91DE), + UINT32_C(0xC6140057), UINT32_C(0x1E19EA8F)}, + {UINT32_C(0x500995C8), UINT32_C(0xD4766CB6), UINT32_C(0xE70CD7EE), + UINT32_C(0xA019D41D), UINT32_C(0x7AB0A162), UINT32_C(0xBA1828AA), + UINT32_C(0x0B7A4E93), UINT32_C(0x0CACA063)}}, + {{UINT32_C(0xA1B3FE03), UINT32_C(0x1E68315C), UINT32_C(0x1AAB6B20), + UINT32_C(0x21FB277E), UINT32_C(0x6A90FB22), UINT32_C(0x210305D7), + UINT32_C(0x2E51B9BC), UINT32_C(0x4C3D3EEA)}, + {UINT32_C(0x89C3A2E8), UINT32_C(0xC5662C6D), UINT32_C(0x1712BF9B), + UINT32_C(0x66EA4818), UINT32_C(0x2254FBAB), UINT32_C(0x417F8F04), + UINT32_C(0xB057EEC1), UINT32_C(0x2F57DF29)}}, + {{UINT32_C(0x6509AE4F), UINT32_C(0xF6975C9F), UINT32_C(0xDC89C220), + UINT32_C(0x58300438), UINT32_C(0x907FF785), UINT32_C(0xE81DA879), + UINT32_C(0x0910ED2F), UINT32_C(0x68D600E3)}, + {UINT32_C(0xB43BF686), UINT32_C(0xFBB25113), UINT32_C(0x50A64FAE), + UINT32_C(0x8B391E3F), UINT32_C(0x3112B7ED), UINT32_C(0x8C1190D2), + UINT32_C(0xCCB4CA50), UINT32_C(0x617BCD41)}}, + {{UINT32_C(0xDD780ACA), UINT32_C(0x75036E69), UINT32_C(0x6FBCD996), + UINT32_C(0xC90A01DE), UINT32_C(0x0C851CEF), UINT32_C(0x75E1A8E8), + UINT32_C(0xF71BDCC6), UINT32_C(0x7225D38A)}, + {UINT32_C(0x868B78D2), UINT32_C(0x74AE6935), UINT32_C(0x1CDB5A1E), + UINT32_C(0xE70570F3), UINT32_C(0xBEBD2FA4), UINT32_C(0x3E700C48), + UINT32_C(0x325D3214), UINT32_C(0x3E483638)}}, + {{UINT32_C(0xC0E6D8AD), UINT32_C(0x9F272CD5), UINT32_C(0xE09743A2), + UINT32_C(0x9E29687C), UINT32_C(0x93CD64B3), UINT32_C(0xBE0E0D59), + UINT32_C(0x504B58F0), UINT32_C(0x5D57A75D)}, + {UINT32_C(0x5D44B092), UINT32_C(0x81A1A6E3), UINT32_C(0x310D7868), + UINT32_C(0x38AD0169), UINT32_C(0xCC297B73), UINT32_C(0xC8D3C9A6), + UINT32_C(0x908E0814), UINT32_C(0x34D98A19)}}, + {{UINT32_C(0xE5A57E1F), UINT32_C(0xFFB946AD), UINT32_C(0x191B6C5F), + UINT32_C(0xF7EA0AA2), UINT32_C(0x8DF529C1), UINT32_C(0x52D07058), + UINT32_C(0x2AFDA727), UINT32_C(0x06B7BDE5)}, + {UINT32_C(0x90658555), UINT32_C(0x651E6DC9), UINT32_C(0x1FC416CE), + UINT32_C(0x8F910D89), UINT32_C(0xCBF086D5), UINT32_C(0x0BA4D84E), + UINT32_C(0x0C4A4B4A), UINT32_C(0x73DA158C)}}, + {{UINT32_C(0x521DB62C), UINT32_C(0xE22420A6), UINT32_C(0xBC90EB6F), + UINT32_C(0x8EBC1A21), UINT32_C(0xE50F6EB4), UINT32_C(0xE1529AAC), + UINT32_C(0x8BE235DB), UINT32_C(0x4025BF27)}, + {UINT32_C(0x9FFE2B82), UINT32_C(0x40607710), UINT32_C(0x696B4634), + UINT32_C(0x7A6BB75B), UINT32_C(0x2B2F25D3), UINT32_C(0x0CEF27A9), + UINT32_C(0xCA0B7112), UINT32_C(0x6C9CFFD7)}}, + {{UINT32_C(0xEDA5C43B), UINT32_C(0x12B39FF0), UINT32_C(0x54E0FE3F), + UINT32_C(0x2E1FC66C), UINT32_C(0x248A9167), UINT32_C(0xFB2DEA80), + UINT32_C(0x3B2BB322), UINT32_C(0x11BCDA10)}, + {UINT32_C(0x16D2C928), UINT32_C(0xFDDF6E84), UINT32_C(0x36E887F4), + UINT32_C(0x99DDF6A1), UINT32_C(0x920092D6), UINT32_C(0x1E56D2F3), + UINT32_C(0x2D77AE5A), UINT32_C(0x67433BF4)}}, + }, + { + {{UINT32_C(0x321BFA62), UINT32_C(0x6C204DDC), UINT32_C(0x2F138A80), + UINT32_C(0xA96E42B8), UINT32_C(0xE3EC1A7D), UINT32_C(0x4C98E986), + UINT32_C(0x136CADC4), UINT32_C(0x223C8BC4)}, + {UINT32_C(0xBA3CE54A), UINT32_C(0xFA9F15D3), UINT32_C(0x19963D88), + UINT32_C(0xA103B9D7), UINT32_C(0x2F811A21), UINT32_C(0x1ED23354), + UINT32_C(0x65A4E833), UINT32_C(0x64D6B14C)}}, + {{UINT32_C(0xCFBD1039), UINT32_C(0x2485175C), UINT32_C(0x7C92D8EC), + UINT32_C(0xC4DAE65B), UINT32_C(0x1859FD47), UINT32_C(0x6FC70F54), + UINT32_C(0x33E8305C), UINT32_C(0x6D543444)}, + {UINT32_C(0x944DDA07), UINT32_C(0x1A65FEC2), UINT32_C(0xEF375B21), + UINT32_C(0x7BCF8391), UINT32_C(0xBE4CD8D6), UINT32_C(0xDDCFC356), + UINT32_C(0x13850042), UINT32_C(0x4BF93B9E)}}, + {{UINT32_C(0x88B7F950), UINT32_C(0xBDF7A56C), UINT32_C(0x81B8590E), + UINT32_C(0x3A60E5FC), UINT32_C(0x6F6E6807), UINT32_C(0x475B94D1), + UINT32_C(0x2F0D49A8), UINT32_C(0x2F1B9F06)}, + {UINT32_C(0x2E6A01D3), UINT32_C(0x3C36DCF3), UINT32_C(0x30444003), + UINT32_C(0x807E1D5B), UINT32_C(0xFECF5768), UINT32_C(0xE3768486), + UINT32_C(0xEF12B5CC), UINT32_C(0x73C4D0CF)}}, + {{UINT32_C(0xF4C6FF93), UINT32_C(0x9D76477C), UINT32_C(0xC5A1A495), + UINT32_C(0x03F16687), UINT32_C(0xB41748B2), UINT32_C(0x5071DA3D), + UINT32_C(0x971D6A7D), UINT32_C(0x0F3A3784)}, + {UINT32_C(0x2785A782), UINT32_C(0x0B9A5AD6), UINT32_C(0x09FF09F9), + UINT32_C(0x957E72A0), UINT32_C(0xAE3CF5F4), UINT32_C(0x3072C1DC), + UINT32_C(0xCD9CFD7E), UINT32_C(0x63D463AC)}}, + {{UINT32_C(0xC77B516C), UINT32_C(0xDA0DEE0B), UINT32_C(0xE6AA0E1F), + UINT32_C(0x446D7199), UINT32_C(0xBFFA705C), UINT32_C(0xCC0D1590), + UINT32_C(0xC35B59BA), UINT32_C(0x6A6FC81C)}, + {UINT32_C(0x593E3EB9), UINT32_C(0x39DF210E), UINT32_C(0xD0DCC01F), + UINT32_C(0x17F331CE), UINT32_C(0xBD176C5B), UINT32_C(0x02E0E5EB), + UINT32_C(0x8A2D6290), UINT32_C(0x68946CCC)}}, + {{UINT32_C(0x09ECFEF2), UINT32_C(0x8D1400D6), UINT32_C(0xE1E76A98), + UINT32_C(0x57D5F91B), UINT32_C(0xA12DFF8D), UINT32_C(0x5CF76130), + UINT32_C(0x61002939), UINT32_C(0x5C361922)}, + {UINT32_C(0xFB0FE974), UINT32_C(0x8D45C8C1), UINT32_C(0xF942ED70), + UINT32_C(0x0C97725E), UINT32_C(0x73C5AA42), UINT32_C(0xB1C66498), + UINT32_C(0x7E203187), UINT32_C(0x4A121FC4)}}, + {{UINT32_C(0xFCEDA76C), UINT32_C(0x58430EE3), UINT32_C(0xF5C88D62), + UINT32_C(0x3496699A), UINT32_C(0x14273E7E), UINT32_C(0x1C3FC811), + UINT32_C(0x1D6D67DA), UINT32_C(0x3E38E9FC)}, + {UINT32_C(0xAB685B3B), UINT32_C(0xBB683EA4), UINT32_C(0xB0904BB3), + UINT32_C(0xB63F72B1), UINT32_C(0x47A75297), UINT32_C(0x5DFA23C5), + UINT32_C(0x38B59560), UINT32_C(0x09E80AA0)}}, + {{UINT32_C(0x7F4D22FC), UINT32_C(0x7D8325C6), UINT32_C(0x8C2FA282), + UINT32_C(0xBFFB01B1), UINT32_C(0x4A89BE98), UINT32_C(0x01A037DC), + UINT32_C(0x84EA8C8A), UINT32_C(0x092F6525)}, + {UINT32_C(0xC52FD518), UINT32_C(0x873D33DA), UINT32_C(0x44AFDD41), + UINT32_C(0x0A245B15), UINT32_C(0x98FA7FF5), UINT32_C(0x78993737), + UINT32_C(0x21D29087), UINT32_C(0x1BB48AD2)}}, + {{UINT32_C(0x1A59313C), UINT32_C(0x00C97A99), UINT32_C(0x5CF9A6FF), + UINT32_C(0xBD4F29EE), UINT32_C(0xD839B62B), UINT32_C(0xEA59D87A), + UINT32_C(0x97CAB63C), UINT32_C(0x16F18F48)}, + {UINT32_C(0x6F6C292F), UINT32_C(0xB339789A), UINT32_C(0xD005ABB2), + UINT32_C(0xEC52E644), UINT32_C(0xAE24DA46), UINT32_C(0xEEAC93C9), + UINT32_C(0xE5C43B4F), UINT32_C(0x0ECB9957)}}, + {{UINT32_C(0x20561AF7), UINT32_C(0xD91B2202), UINT32_C(0x55F2CFB8), + UINT32_C(0xECA260DD), UINT32_C(0x17B91CCF), UINT32_C(0xF03A8C1D), + UINT32_C(0x64B35D9A), UINT32_C(0x55A0491F)}, + {UINT32_C(0x1A2F8F39), UINT32_C(0x0A97E5CC), UINT32_C(0x23B1D80B), + UINT32_C(0x02C187D1), UINT32_C(0xDB9FBA1A), UINT32_C(0xA9C13D26), + UINT32_C(0xF8051F0D), UINT32_C(0x7CCDDBAC)}}, + {{UINT32_C(0xED0E9DB8), UINT32_C(0x05CA8EA5), UINT32_C(0x53A8EA3F), + UINT32_C(0xE888079F), UINT32_C(0x9209BFA2), UINT32_C(0x6DDBC40D), + UINT32_C(0x80DCEAEA), UINT32_C(0x068E5BA9)}, + {UINT32_C(0xB19D824B), UINT32_C(0xDB69D133), UINT32_C(0xE6A3A462), + UINT32_C(0x65154FB6), UINT32_C(0x020B2AC7), UINT32_C(0x9FCF733D), + UINT32_C(0xE1329315), UINT32_C(0x15178DDE)}}, + {{UINT32_C(0x877EE476), UINT32_C(0x76F78865), UINT32_C(0x12B471BA), + UINT32_C(0x5824EACC), UINT32_C(0xBBB640A8), UINT32_C(0x71BDFADF), + UINT32_C(0x9A631D09), UINT32_C(0x5181B08F)}, + {UINT32_C(0xFFE978E8), UINT32_C(0x2913CCA5), UINT32_C(0xAEB89AA6), + UINT32_C(0x9CEF3612), UINT32_C(0xE02AD6DC), UINT32_C(0x93BB373E), + UINT32_C(0x04144769), UINT32_C(0x5D7984F0)}}, + {{UINT32_C(0x4F98D2C3), UINT32_C(0x3219DB07), UINT32_C(0xBD40ACCC), + UINT32_C(0xE3EF888F), UINT32_C(0x31124C73), UINT32_C(0x07A30E3A), + UINT32_C(0xB070C53F), UINT32_C(0x5D9C820B)}, + {UINT32_C(0xDA0661AB), UINT32_C(0x94D41768), UINT32_C(0x21FF87EB), + UINT32_C(0x27FC2661), UINT32_C(0xFF17A977), UINT32_C(0xB8DCBC7F), + UINT32_C(0x392EB13D), UINT32_C(0x71F75FF9)}}, + {{UINT32_C(0x9AD71AB0), UINT32_C(0xC5CED56C), UINT32_C(0x39D6C9F1), + UINT32_C(0xE744EAB0), UINT32_C(0x839BD904), UINT32_C(0x6E49B00B), + UINT32_C(0xD7003054), UINT32_C(0x0C0EDE2C)}, + {UINT32_C(0x1A6A1BB7), UINT32_C(0x792C3F80), UINT32_C(0x4B2C7885), + UINT32_C(0x6E5093B1), UINT32_C(0x13EA65F7), UINT32_C(0x28873209), + UINT32_C(0xF381C851), UINT32_C(0x085A2697)}}, + {{UINT32_C(0xDA60A255), UINT32_C(0x84FC6B9D), UINT32_C(0x4B495BC6), + UINT32_C(0x12397EED), UINT32_C(0x71A5AA87), UINT32_C(0x4881DF6B), + UINT32_C(0x9572CFE2), UINT32_C(0x57BB3259)}, + {UINT32_C(0x3A10A65F), UINT32_C(0x30677759), UINT32_C(0xDB1758DD), + UINT32_C(0x670B82EC), UINT32_C(0xD57B513E), UINT32_C(0xD84F3E8F), + UINT32_C(0x89088E78), UINT32_C(0x617A512A)}}, + {{UINT32_C(0xAE3D7707), UINT32_C(0x83971322), UINT32_C(0x6D34D0B4), + UINT32_C(0x66563CDE), UINT32_C(0xC13309ED), UINT32_C(0x95342D9B), + UINT32_C(0x082A5887), UINT32_C(0x62C2B1B6)}, + {UINT32_C(0xC3C27158), UINT32_C(0xD94A8712), UINT32_C(0xA844BF60), + UINT32_C(0xDE2C9C9D), UINT32_C(0xCE3E4F3C), UINT32_C(0xDE897386), + UINT32_C(0x6ACEBDF1), UINT32_C(0x2C22A82E)}}, + }, + { + {{UINT32_C(0x0604E200), UINT32_C(0x2755028A), UINT32_C(0x44189101), + UINT32_C(0xADE23A7D), UINT32_C(0xF0B7F9B7), UINT32_C(0xA6E418F4), + UINT32_C(0x212EDC2A), UINT32_C(0x036F5503)}, + {UINT32_C(0x3F5E0456), UINT32_C(0xE069D06A), UINT32_C(0x0F37F2D8), + UINT32_C(0x2FAFF7C8), UINT32_C(0x7F5EDE53), UINT32_C(0xFF08E879), + UINT32_C(0x797E0427), UINT32_C(0x7F97725D)}}, + {{UINT32_C(0xB32E5B1B), UINT32_C(0xE44E39C1), UINT32_C(0xAD3EC706), + UINT32_C(0x25CD4614), UINT32_C(0xE382C5D2), UINT32_C(0x2E97B090), + UINT32_C(0xB00D79F2), UINT32_C(0x3E1A1F6B)}, + {UINT32_C(0xC2375837), UINT32_C(0x27573C4E), UINT32_C(0x6C8D5CCD), + UINT32_C(0xAD53D2C8), UINT32_C(0xFC09725A), UINT32_C(0x94EE5460), + UINT32_C(0x02DD0DF4), UINT32_C(0x6E592506)}}, + {{UINT32_C(0x3D0C7AC4), UINT32_C(0x6CFFA4BF), UINT32_C(0x69ED4317), + UINT32_C(0x663B1218), UINT32_C(0xC79AD5C1), UINT32_C(0x933094F6), + UINT32_C(0xFFC54767), UINT32_C(0x569F37ED)}, + {UINT32_C(0x1F338782), UINT32_C(0x954EEE0C), UINT32_C(0xA46CA276), + UINT32_C(0x5BE69673), UINT32_C(0x20CB26DC), UINT32_C(0x77BA0009), + UINT32_C(0x029316AE), UINT32_C(0x2211CAC3)}}, + {{UINT32_C(0x184EBD7C), UINT32_C(0xC8DEF3CB), UINT32_C(0x6A4DB0A0), + UINT32_C(0x39337050), UINT32_C(0x0BE1D82C), UINT32_C(0x6FF7993A), + UINT32_C(0xFC9252C0), UINT32_C(0x01D7674A)}, + {UINT32_C(0xF62D9268), UINT32_C(0xB10BA727), UINT32_C(0x817B687B), + UINT32_C(0x6E2338D8), UINT32_C(0xE47405F1), UINT32_C(0x266443F2), + UINT32_C(0x6872B879), UINT32_C(0x6A1BD9CE)}}, + {{UINT32_C(0x2B2BD346), UINT32_C(0x19213765), UINT32_C(0xE2ACFB8E), + UINT32_C(0x962CA22C), UINT32_C(0x62FECDE1), UINT32_C(0x518CF45D), + UINT32_C(0xA13D9E8D), UINT32_C(0x529AE629)}, + {UINT32_C(0xBB69D5E3), UINT32_C(0xAF796DB0), UINT32_C(0xD4E596B7), + UINT32_C(0xA064209D), UINT32_C(0x47942C73), UINT32_C(0x9F3DFD4A), + UINT32_C(0x7810D5EC), UINT32_C(0x7FAB6C6D)}}, + {{UINT32_C(0x66A3B287), UINT32_C(0x55D15250), UINT32_C(0xEEFDDC75), + UINT32_C(0x1ECC6A20), UINT32_C(0x26DE8C01), UINT32_C(0xF683FA60), + UINT32_C(0x9FBA658C), UINT32_C(0x4F5DE2A6)}, + {UINT32_C(0xC66D82F4), UINT32_C(0xE748D78A), UINT32_C(0x3B24C76B), + UINT32_C(0x2BA525EF), UINT32_C(0x30EE69CE), UINT32_C(0x5A9539E6), + UINT32_C(0xB7861B2D), UINT32_C(0x2DA4C4C2)}}, + {{UINT32_C(0x820743E6), UINT32_C(0x9D1E982D), UINT32_C(0xAB0CC42D), + UINT32_C(0x705D9237), UINT32_C(0x47C4E7D7), UINT32_C(0xBDD01663), + UINT32_C(0xF8E69896), UINT32_C(0x3D48EE78)}, + {UINT32_C(0x41132782), UINT32_C(0x7A822BCD), UINT32_C(0xEE46F715), + UINT32_C(0xBD41BEFA), UINT32_C(0xD0B2F4B0), UINT32_C(0x8E5C3B5F), + UINT32_C(0x5E47ED55), UINT32_C(0x690A53D4)}}, + {{UINT32_C(0x65A40E44), UINT32_C(0x390536C1), UINT32_C(0x1C92235C), + UINT32_C(0x4B4D7970), UINT32_C(0x8B7389E4), UINT32_C(0xCAC27084), + UINT32_C(0x19041D01), UINT32_C(0x7B5B23B2)}, + {UINT32_C(0x3B5FD5BA), UINT32_C(0x7C18B973), UINT32_C(0x84B72217), + UINT32_C(0xFD14865D), UINT32_C(0x267EDE4C), UINT32_C(0x5592547E), + UINT32_C(0x8B369753), UINT32_C(0x22DB62E5)}}, + {{UINT32_C(0xDDF15BDD), UINT32_C(0x06083D33), UINT32_C(0x361925F5), + UINT32_C(0x5766555F), UINT32_C(0xB7ACDEA7), UINT32_C(0xECC0F110), + UINT32_C(0x0A3453B5), UINT32_C(0x3E3F1B27)}, + {UINT32_C(0x6F7B980D), UINT32_C(0x5A8B7DF9), UINT32_C(0xB44756AC), + UINT32_C(0xEBA90E39), UINT32_C(0xAC9A7DB2), UINT32_C(0x954D7ECD), + UINT32_C(0x28EA7151), UINT32_C(0x43F688D3)}}, + {{UINT32_C(0x4638EFAE), UINT32_C(0x51F64569), UINT32_C(0x3D28BF3C), + UINT32_C(0x5840A5DB), UINT32_C(0x134D3E8F), UINT32_C(0xDD486261), + UINT32_C(0x7B6B466B), UINT32_C(0x09F17E2C)}, + {UINT32_C(0x78ED7016), UINT32_C(0x30D35463), UINT32_C(0xB86D8508), + UINT32_C(0x342E9701), UINT32_C(0x42B19533), UINT32_C(0xA3FF6565), + UINT32_C(0x061A4A81), UINT32_C(0x4405F02C)}}, + {{UINT32_C(0x3D3AAF1E), UINT32_C(0x15C921C0), UINT32_C(0x7D297559), + UINT32_C(0x2DD720C7), UINT32_C(0xCB80E3B2), UINT32_C(0x93A07904), + UINT32_C(0x6B1EDB93), UINT32_C(0x427C610B)}, + {UINT32_C(0xF61E2F41), UINT32_C(0xD2CE818F), UINT32_C(0x8252FB3C), + UINT32_C(0x1DA53421), UINT32_C(0xED07538F), UINT32_C(0x37A4A997), + UINT32_C(0x962454F2), UINT32_C(0x48A928BF)}}, + {{UINT32_C(0x7A420273), UINT32_C(0x65091E4D), UINT32_C(0xE54C0B47), + UINT32_C(0x6AF382AF), UINT32_C(0x8047A423), UINT32_C(0x150DAB08), + UINT32_C(0x45BD197C), UINT32_C(0x22C3740A)}, + {UINT32_C(0xE07C3468), UINT32_C(0x64429AA0), UINT32_C(0x7B37FE10), + UINT32_C(0xC506B8C9), UINT32_C(0x3CC5062C), UINT32_C(0x30E2FE78), + UINT32_C(0xA9242F2D), UINT32_C(0x2F3B5A5F)}}, + {{UINT32_C(0x5A40BCA1), UINT32_C(0x2619A3B2), UINT32_C(0x118C2FEA), + UINT32_C(0xD012DF23), UINT32_C(0xB73FE15C), UINT32_C(0x2868C8B7), + UINT32_C(0xEB10B475), UINT32_C(0x45A9CC5A)}, + {UINT32_C(0x069050AD), UINT32_C(0x7111AB75), UINT32_C(0xEC2398A9), + UINT32_C(0x0665182B), UINT32_C(0x9B86A240), UINT32_C(0xD9A5126E), + UINT32_C(0x40E2AED6), UINT32_C(0x601CF0E0)}}, + {{UINT32_C(0xF48C8655), UINT32_C(0xE74C9DCD), UINT32_C(0x900E89D5), + UINT32_C(0xEE703CA8), UINT32_C(0x5390F052), UINT32_C(0x6C2DFF8B), + UINT32_C(0x1316CC4C), UINT32_C(0x08588E89)}, + {UINT32_C(0x47E80C87), UINT32_C(0x0F2CC83A), UINT32_C(0xD87824E4), + UINT32_C(0x23DE34CF), UINT32_C(0x541FE8F9), UINT32_C(0xC530AF41), + UINT32_C(0xD142F1C0), UINT32_C(0x0BF01DC0)}}, + {{UINT32_C(0x886C0C4A), UINT32_C(0x210B0B1E), UINT32_C(0x9C56A126), + UINT32_C(0x66369DF1), UINT32_C(0xEAC22A5E), UINT32_C(0x5D79AE81), + UINT32_C(0xD16F7DB6), UINT32_C(0x4E6C67D4)}, + {UINT32_C(0x247CDE60), UINT32_C(0x274572F6), UINT32_C(0x54E8454B), + UINT32_C(0xF3C92AC7), UINT32_C(0xF08C32D1), UINT32_C(0x784EC1A1), + UINT32_C(0xE1FE9C4E), UINT32_C(0x222716D8)}}, + {{UINT32_C(0x3FB1DB1E), UINT32_C(0xAF6AEF5D), UINT32_C(0xC4C2A4D8), + UINT32_C(0xB8B55842), UINT32_C(0xCA5AB578), UINT32_C(0x258A2F44), + UINT32_C(0x7D8B2D70), UINT32_C(0x558A803F)}, + {UINT32_C(0x7E0247A3), UINT32_C(0x9A7345C3), UINT32_C(0xB4D920B1), + UINT32_C(0x4E5A6904), UINT32_C(0x76BCBBE1), UINT32_C(0xCF7FAA41), + UINT32_C(0xEE112271), UINT32_C(0x66CF993F)}}, + }, + { + {{UINT32_C(0x84D2C56B), UINT32_C(0xDE7D208F), UINT32_C(0xDDA20F33), + UINT32_C(0xD1C77403), UINT32_C(0x9A6F337A), UINT32_C(0xB73FDC09), + UINT32_C(0x40CD2CBD), UINT32_C(0x1B2A3807)}, + {UINT32_C(0x65988D73), UINT32_C(0xB642FA2C), UINT32_C(0x059DAB8E), + UINT32_C(0x117E75BC), UINT32_C(0xD6B279AA), UINT32_C(0xC7E2E935), + UINT32_C(0xEEA2A445), UINT32_C(0x5EEB9654)}}, + {{UINT32_C(0xA59D7A2A), UINT32_C(0xA84747C0), UINT32_C(0x1004C5B8), + UINT32_C(0x4478AD4A), UINT32_C(0xA22DE791), UINT32_C(0xF55C2B1B), + UINT32_C(0x23F8F89F), UINT32_C(0x2FF6097D)}, + {UINT32_C(0xE117BC40), UINT32_C(0xD079C875), UINT32_C(0x03CB43DD), + UINT32_C(0x14AEA360), UINT32_C(0x0A20D653), UINT32_C(0x8C730D89), + UINT32_C(0x02FD02D8), UINT32_C(0x6956274A)}}, + {{UINT32_C(0xD46293CF), UINT32_C(0x9F5D0E9D), UINT32_C(0xF0D93AB7), + UINT32_C(0x53748DD4), UINT32_C(0xB9C37CF0), UINT32_C(0x6F81339F), + UINT32_C(0xF4B041FC), UINT32_C(0x00B8677A)}, + {UINT32_C(0xB5A6FE97), UINT32_C(0xF76E0FFE), UINT32_C(0xF7D198A2), + UINT32_C(0x6D3C71F5), UINT32_C(0x11420372), UINT32_C(0xF91E8408), + UINT32_C(0x70036AED), UINT32_C(0x36F9F354)}}, + {{UINT32_C(0x5D446956), UINT32_C(0x503AF4F2), UINT32_C(0x2DC9777C), + UINT32_C(0xCA08C537), UINT32_C(0xE1308D3A), UINT32_C(0xDB4BA888), + UINT32_C(0x01DB98CB), UINT32_C(0x01EA28EA)}, + {UINT32_C(0xA7DF5FE0), UINT32_C(0x27CC52A9), UINT32_C(0x7DE31E0A), + UINT32_C(0x7DA5186B), UINT32_C(0xF136FAD5), UINT32_C(0x63E32889), + UINT32_C(0xA363AF23), UINT32_C(0x1BB010A8)}}, + {{UINT32_C(0xC0FE56C9), UINT32_C(0x65828B54), UINT32_C(0x4ED3935A), + UINT32_C(0x7322CD51), UINT32_C(0x37B4A727), UINT32_C(0x42F068F4), + UINT32_C(0xB4C02BE4), UINT32_C(0x7AA9F9F0)}, + {UINT32_C(0xDEBB2DD4), UINT32_C(0xBB77851A), UINT32_C(0xD105B81F), + UINT32_C(0x7757D5F6), UINT32_C(0x52FA1512), UINT32_C(0x7805369C), + UINT32_C(0x38B6976A), UINT32_C(0x4CBC43AE)}}, + {{UINT32_C(0x4096725B), UINT32_C(0x24FE8ABD), UINT32_C(0x3895D1E2), + UINT32_C(0xC3FAC73A), UINT32_C(0x006A2360), UINT32_C(0xBCAF7757), + UINT32_C(0xC03EBB33), UINT32_C(0x75AE96AD)}, + {UINT32_C(0x0BD1FB6F), UINT32_C(0x31074478), UINT32_C(0xEA386CBE), + UINT32_C(0x729E8E6A), UINT32_C(0x4845AAEC), UINT32_C(0xA8BBCC0B), + UINT32_C(0xE6582656), UINT32_C(0x1A0A2D19)}}, + {{UINT32_C(0x69BD55F7), UINT32_C(0x332BC9BD), UINT32_C(0xEFB6F780), + UINT32_C(0x93D987E2), UINT32_C(0x14381F4D), UINT32_C(0xE57DE096), + UINT32_C(0xFF01C4D9), UINT32_C(0x7BDF4217)}, + {UINT32_C(0x1956BF02), UINT32_C(0x2A07C4AB), UINT32_C(0x553823D9), + UINT32_C(0x7C7B3684), UINT32_C(0xD40F600C), UINT32_C(0x8F750E8E), + UINT32_C(0x9693A3C3), UINT32_C(0x63F253E9)}}, + {{UINT32_C(0xC62CE42B), UINT32_C(0x250ED8BF), UINT32_C(0xE70674E1), + UINT32_C(0xE8A1A295), UINT32_C(0x163A92F1), UINT32_C(0x05ED093D), + UINT32_C(0x628969A0), UINT32_C(0x515FF44B)}, + {UINT32_C(0x41CE3AF8), UINT32_C(0xF617DF03), UINT32_C(0xF9E60202), + UINT32_C(0xCADE131A), UINT32_C(0x363B87E9), UINT32_C(0xFE83C379), + UINT32_C(0x493EF65F), UINT32_C(0x7196A80B)}}, + {{UINT32_C(0xD7A2047B), UINT32_C(0x4B176FE6), UINT32_C(0x41DCA514), + UINT32_C(0x6981D182), UINT32_C(0xDC74AC2E), UINT32_C(0xDDC7EE8E), + UINT32_C(0x85CC07D1), UINT32_C(0x3A95A203)}, + {UINT32_C(0x841E3200), UINT32_C(0x8D4BA2D8), UINT32_C(0x5F654197), + UINT32_C(0x837DDD9B), UINT32_C(0xFBFE4D06), UINT32_C(0x388D358E), + UINT32_C(0x61143A85), UINT32_C(0x562DE2F2)}}, + {{UINT32_C(0xCFACB903), UINT32_C(0x3BA1F6E5), UINT32_C(0xBD97A3A2), + UINT32_C(0xB5BBA41F), UINT32_C(0xCFCF2547), UINT32_C(0xB86F117F), + UINT32_C(0x3D9A13DB), UINT32_C(0x50642859)}, + {UINT32_C(0x7B5F2A8F), UINT32_C(0xC15C82AE), UINT32_C(0xEF89351E), + UINT32_C(0x47E772DD), UINT32_C(0xCAAC4CC7), UINT32_C(0x78C53901), + UINT32_C(0x68D72131), UINT32_C(0x6B0F5D30)}}, + {{UINT32_C(0xA0B407E6), UINT32_C(0x47E17734), UINT32_C(0x34949A81), + UINT32_C(0x29E06830), UINT32_C(0xCB1AC772), UINT32_C(0x63D83340), + UINT32_C(0xEB84F909), UINT32_C(0x178A6DD6)}, + {UINT32_C(0x3C27D7BA), UINT32_C(0xA9E94826), UINT32_C(0xDB027A4C), + UINT32_C(0xC86AF96D), UINT32_C(0x56D5DF86), UINT32_C(0xE7D04E34), + UINT32_C(0x2E8D0EE3), UINT32_C(0x7212EAC2)}}, + {{UINT32_C(0x8A75F66B), UINT32_C(0xE7E5AA64), UINT32_C(0x8CFD9597), + UINT32_C(0x7E86B6AA), UINT32_C(0x834C0271), UINT32_C(0x1B7DDE0C), + UINT32_C(0xD4AD306F), UINT32_C(0x397EAF2A)}, + {UINT32_C(0x1657E32B), UINT32_C(0x0A357906), UINT32_C(0x4957B3AF), + UINT32_C(0xAAEB2DCF), UINT32_C(0x69D3CEE9), UINT32_C(0x1C0CBD02), + UINT32_C(0x5A6E7D53), UINT32_C(0x7434EC32)}}, + {{UINT32_C(0x85559E86), UINT32_C(0xEB5878F7), UINT32_C(0x4A09C168), + UINT32_C(0xB9555F70), UINT32_C(0x80501134), UINT32_C(0xBFFAC5DB), + UINT32_C(0x05B53160), UINT32_C(0x4CDBF53A)}, + {UINT32_C(0x5F90344B), UINT32_C(0x1413BA29), UINT32_C(0xD0DD0CFD), + UINT32_C(0xC6A9D1ED), UINT32_C(0xA0C31B73), UINT32_C(0x8C56AA29), + UINT32_C(0xF4E58E08), UINT32_C(0x1C9B0B61)}}, + {{UINT32_C(0x0E2F595A), UINT32_C(0xBF8D2237), UINT32_C(0xCBA13CD8), + UINT32_C(0x7A646816), UINT32_C(0x5CD728B6), UINT32_C(0xBD2E93A1), + UINT32_C(0x07CF9009), UINT32_C(0x30FDF85C)}, + {UINT32_C(0x06122B98), UINT32_C(0x3496D949), UINT32_C(0x5A80B3AF), + UINT32_C(0xE63EC741), UINT32_C(0x82838A44), UINT32_C(0xA2A39CF7), + UINT32_C(0xC015E1D4), UINT32_C(0x4A064F99)}}, + {{UINT32_C(0x456CB242), UINT32_C(0x9CCDF95B), UINT32_C(0x6F4517DC), + UINT32_C(0xDA1CB24E), UINT32_C(0x931A1115), UINT32_C(0x60450E0F), + UINT32_C(0xB5680A8D), UINT32_C(0x6780D774)}, + {UINT32_C(0x1FDA4243), UINT32_C(0xAFE48DCD), UINT32_C(0xAE9733C7), + UINT32_C(0x6BDD541C), UINT32_C(0xD79D1D52), UINT32_C(0xCBBCC69C), + UINT32_C(0x1A513B3E), UINT32_C(0x334F4F67)}}, + {{UINT32_C(0xDF49E1A0), UINT32_C(0xCE7712C4), UINT32_C(0xE0B96135), + UINT32_C(0xB5444862), UINT32_C(0xF050D010), UINT32_C(0x10564C4B), + UINT32_C(0xFEBEFCC8), UINT32_C(0x0531AEC8)}, + {UINT32_C(0x70DF6D29), UINT32_C(0xD45B4BE7), UINT32_C(0x6829054E), + UINT32_C(0x1ACC2D70), UINT32_C(0x54E56E05), UINT32_C(0x9744CDE1), + UINT32_C(0x6EE02696), UINT32_C(0x3C5DE93E)}}, + }, + { + {{UINT32_C(0x3951B674), UINT32_C(0xF43A2B99), UINT32_C(0x5E72FC98), + UINT32_C(0xE82789E8), UINT32_C(0x86992601), UINT32_C(0x2AD48436), + UINT32_C(0x01A2B65A), UINT32_C(0x3FDEB172)}, + {UINT32_C(0x3666322B), UINT32_C(0x926B4839), UINT32_C(0x44B3FDB7), + UINT32_C(0x68847D5C), UINT32_C(0xF2F5E247), UINT32_C(0xD06C450D), + UINT32_C(0xBBA7C892), UINT32_C(0x0CEC0646)}}, + {{UINT32_C(0x61F9C9DA), UINT32_C(0x76446D26), UINT32_C(0xAC60376F), + UINT32_C(0xEF2C7B98), UINT32_C(0x2410C057), UINT32_C(0xEEA8CABE), + UINT32_C(0x3672A2B6), UINT32_C(0x4C2CE2A7)}, + {UINT32_C(0x12879BA5), UINT32_C(0x3F770945), UINT32_C(0xAD913022), + UINT32_C(0x719D5BD0), UINT32_C(0x36D445A4), UINT32_C(0x28A82DD9), + UINT32_C(0x965965AA), UINT32_C(0x26382C23)}}, + {{UINT32_C(0xB8AA8419), UINT32_C(0x66709D92), UINT32_C(0x0AB5C241), + UINT32_C(0xFAEFF2E4), UINT32_C(0x1DD46DEB), UINT32_C(0xABB7C5DD), + UINT32_C(0x39DB6CB5), UINT32_C(0x7DD03C33)}, + {UINT32_C(0x9E160F01), UINT32_C(0x76CDD1EA), UINT32_C(0x81C5CA37), + UINT32_C(0x00598D56), UINT32_C(0x241772EC), UINT32_C(0x16D23B04), + UINT32_C(0x52A6B807), UINT32_C(0x5132B028)}}, + {{UINT32_C(0xCC041445), UINT32_C(0x6D48D4B5), UINT32_C(0x1528DF63), + UINT32_C(0x0B1CD923), UINT32_C(0x4A815F60), UINT32_C(0x82EE4DC6), + UINT32_C(0x0451E242), UINT32_C(0x29DA6059)}, + {UINT32_C(0x17A8A6D0), UINT32_C(0xCD90BFB0), UINT32_C(0x52A7FC3D), + UINT32_C(0x8BCF4392), UINT32_C(0x1974860C), UINT32_C(0x49AD55F2), + UINT32_C(0x5EDCB1D2), UINT32_C(0x20BBF010)}}, + {{UINT32_C(0xA8F6C08C), UINT32_C(0xB4F0EA84), UINT32_C(0xD50164F3), + UINT32_C(0x4341BEA7), UINT32_C(0x06320C0F), UINT32_C(0xE5389019), + UINT32_C(0x8BA6F033), UINT32_C(0x69D4851A)}, + {UINT32_C(0x77902045), UINT32_C(0x1CE58660), UINT32_C(0xBD8579B3), + UINT32_C(0xF3B88D85), UINT32_C(0x4FB0A17B), UINT32_C(0xF84FF63A), + UINT32_C(0xDE6581BF), UINT32_C(0x09EE62EE)}}, + {{UINT32_C(0x7C0516DE), UINT32_C(0x8B8C15B5), UINT32_C(0xA530B89F), + UINT32_C(0x3B448FC3), UINT32_C(0x500B0251), UINT32_C(0xE385BBE5), + UINT32_C(0xED70804B), UINT32_C(0x5F643F85)}, + {UINT32_C(0x239E85A5), UINT32_C(0x550D9B7D), UINT32_C(0x8666E41F), + UINT32_C(0xDC910B5B), UINT32_C(0x7D4E390F), UINT32_C(0x65522181), + UINT32_C(0x3162FE10), UINT32_C(0x5DD2D3E8)}}, + {{UINT32_C(0xDF024A25), UINT32_C(0x59609390), UINT32_C(0x08CCBA91), + UINT32_C(0xE66A77E9), UINT32_C(0x65E24DB6), UINT32_C(0xC5CEA91A), + UINT32_C(0x3DCEA0A7), UINT32_C(0x0888DFB5)}, + {UINT32_C(0x92FA0754), UINT32_C(0x8C8E58CC), UINT32_C(0xF7DC9538), + UINT32_C(0x99C259AB), UINT32_C(0x9BEFE750), UINT32_C(0x3A06D8ED), + UINT32_C(0xFAACDC97), UINT32_C(0x71AF22E1)}}, + {{UINT32_C(0x250AC059), UINT32_C(0xCC41D094), UINT32_C(0x3BE3DA01), + UINT32_C(0xCD792A73), UINT32_C(0xCC61EFE1), UINT32_C(0x2DA07802), + UINT32_C(0x57053A5D), UINT32_C(0x293AFB08)}, + {UINT32_C(0x2FD8A8A0), UINT32_C(0x3E7E4884), UINT32_C(0x0B9B48D3), + UINT32_C(0x183FA500), UINT32_C(0x431AACF6), UINT32_C(0x9CAC07BE), + UINT32_C(0x2DF89F10), UINT32_C(0x4F82D799)}}, + {{UINT32_C(0x0A84935C), UINT32_C(0xFD9F61A8), UINT32_C(0xBB5A7E56), + UINT32_C(0x78B948D0), UINT32_C(0x0ACCEEB3), UINT32_C(0xDA478766), + UINT32_C(0x53C3851D), UINT32_C(0x47BDAE44)}, + {UINT32_C(0x0CFE8D0D), UINT32_C(0x5AE2C60C), UINT32_C(0x1D8A79C9), + UINT32_C(0xAC8F79B3), UINT32_C(0x0A79CA31), UINT32_C(0xA958C15E), + UINT32_C(0xF0952018), UINT32_C(0x1C46E20E)}}, + {{UINT32_C(0xF04AC529), UINT32_C(0xAE552ECE), UINT32_C(0xE2BFEFBC), + UINT32_C(0xB295B601), UINT32_C(0x54733412), UINT32_C(0xECC1EE55), + UINT32_C(0x12282094), UINT32_C(0x28BCBA53)}, + {UINT32_C(0x50B25069), UINT32_C(0x306C0781), UINT32_C(0xE9A18FFE), + UINT32_C(0x10D5D23C), UINT32_C(0x1BD5489F), UINT32_C(0xC34FC5C7), + UINT32_C(0xE191867D), UINT32_C(0x2B610028)}}, + {{UINT32_C(0x3E17E84D), UINT32_C(0x458A1CC1), UINT32_C(0x5D7CFB98), + UINT32_C(0x6EAE343D), UINT32_C(0x101F0B7E), UINT32_C(0xC6E0FDAA), + UINT32_C(0x2A023288), UINT32_C(0x0B9F7C2C)}, + {UINT32_C(0x6F3FCAA0), UINT32_C(0xBEA893A8), UINT32_C(0x452B07C0), + UINT32_C(0x7D711B2B), UINT32_C(0x98E2C88D), UINT32_C(0x28958737), + UINT32_C(0xDFD99A2A), UINT32_C(0x553A0180)}}, + {{UINT32_C(0x0DBA5986), UINT32_C(0x8D617BE8), UINT32_C(0x13D18594), + UINT32_C(0xDB763C14), UINT32_C(0xD2DAD82F), UINT32_C(0x822CB0DA), + UINT32_C(0x93239947), UINT32_C(0x37ACD99F)}, + {UINT32_C(0xCDC08BE6), UINT32_C(0x6A2A7070), UINT32_C(0xCF6D63FF), + UINT32_C(0x86B3B66A), UINT32_C(0x0F7D4A67), UINT32_C(0x5BEFF3FB), + UINT32_C(0xEBC94AE5), UINT32_C(0x05C25557)}}, + {{UINT32_C(0x89183418), UINT32_C(0x5D1DC087), UINT32_C(0x6EA5A960), + UINT32_C(0xA25C7AE2), UINT32_C(0xD31F3AAE), UINT32_C(0x074698B9), + UINT32_C(0x221788A4), UINT32_C(0x5A5B510B)}, + {UINT32_C(0x1DCE95FE), UINT32_C(0x896A8787), UINT32_C(0x7F24020C), + UINT32_C(0x89E7B93D), UINT32_C(0x865B4334), UINT32_C(0xFC19BF42), + UINT32_C(0x5B78B06D), UINT32_C(0x0389FBF7)}}, + {{UINT32_C(0x0BB3A3E2), UINT32_C(0x73B6DA7B), UINT32_C(0x44D56755), + UINT32_C(0xDBC12670), UINT32_C(0x7CC1C589), UINT32_C(0x7AF2DE28), + UINT32_C(0x697CB6B7), UINT32_C(0x7E248FCB)}, + {UINT32_C(0xC64202C0), UINT32_C(0x9410EC06), UINT32_C(0x75EB3A8C), + UINT32_C(0x79C82158), UINT32_C(0xE95C5EA9), UINT32_C(0x74FDD2F6), + UINT32_C(0x1CCA72C7), UINT32_C(0x2A40B5B5)}}, + {{UINT32_C(0x5C29E320), UINT32_C(0x56984223), UINT32_C(0xE871D9E2), + UINT32_C(0x8266392A), UINT32_C(0x7B391763), UINT32_C(0x9D86C6C7), + UINT32_C(0x02543C9E), UINT32_C(0x5E9E61E2)}, + {UINT32_C(0xD2501D1A), UINT32_C(0xD62A9334), UINT32_C(0x9211135D), + UINT32_C(0x9D19F54D), UINT32_C(0x8FE81272), UINT32_C(0x66D0B961), + UINT32_C(0xD09C2033), UINT32_C(0x6E64635A)}}, + {{UINT32_C(0x06F84E11), UINT32_C(0x93BD0AD8), UINT32_C(0x131AFDBF), + UINT32_C(0x45F18F2B), UINT32_C(0x6058EB37), UINT32_C(0x881F053F), + UINT32_C(0x948AD0D5), UINT32_C(0x36B8D656)}, + {UINT32_C(0xE1934E38), UINT32_C(0x53DC2E02), UINT32_C(0xC0435B6C), + UINT32_C(0xA8AD5055), UINT32_C(0x4BD7154F), UINT32_C(0x0DF7BD11), + UINT32_C(0x73BC98FC), UINT32_C(0x6350B05E)}}, + }, + { + {{UINT32_C(0x04BF927A), UINT32_C(0x12AC5496), UINT32_C(0xE749323E), + UINT32_C(0x9BB322DB), UINT32_C(0xF6D99AD6), UINT32_C(0xC10C666D), + UINT32_C(0x4C883E0A), UINT32_C(0x0FDF8FB3)}, + {UINT32_C(0x665272E8), UINT32_C(0x10667F92), UINT32_C(0x5BF8702F), + UINT32_C(0xA30D4CE1), UINT32_C(0xA2D6033D), UINT32_C(0x56314B47), + UINT32_C(0xDAC1A10E), UINT32_C(0x09EC90D9)}}, + {{UINT32_C(0xC9EB81D1), UINT32_C(0x364F06DD), UINT32_C(0x4DC5CB76), + UINT32_C(0xFD181A56), UINT32_C(0xE264567C), UINT32_C(0x91CF010C), + UINT32_C(0xA05C02FC), UINT32_C(0x71D9A95B)}, + {UINT32_C(0x53967407), UINT32_C(0xAB5AFBA6), UINT32_C(0x9B0AA089), + UINT32_C(0x3FC77913), UINT32_C(0xAF29EF02), UINT32_C(0xDF1D4912), + UINT32_C(0x5796A0A5), UINT32_C(0x01C3D61C)}}, + {{UINT32_C(0xB376E8DE), UINT32_C(0x11503A1C), UINT32_C(0xB8B98321), + UINT32_C(0x5CB17D6D), UINT32_C(0xBD8FE9C2), UINT32_C(0x96C9D585), + UINT32_C(0xD117171D), UINT32_C(0x048C8DA7)}, + {UINT32_C(0xB582282A), UINT32_C(0xDF7FABB8), UINT32_C(0x24FD6BB7), + UINT32_C(0x75C2A937), UINT32_C(0x00633701), UINT32_C(0xDF0DBD32), + UINT32_C(0x039B3E72), UINT32_C(0x04FB7AEC)}}, + {{UINT32_C(0x0E20C09A), UINT32_C(0xE60CCE96), UINT32_C(0x116E1C38), + UINT32_C(0xAD295B31), UINT32_C(0xC04477D0), UINT32_C(0xCA6B625D), + UINT32_C(0xFFA32E36), UINT32_C(0x032FE03B)}, + {UINT32_C(0xE2AAABC6), UINT32_C(0x46334FEE), UINT32_C(0xDA1C6871), + UINT32_C(0x9808B03C), UINT32_C(0xF934A482), UINT32_C(0x76D0E3AA), + UINT32_C(0xF9CB8F97), UINT32_C(0x2B0BF54A)}}, + {{UINT32_C(0x2CA29D02), UINT32_C(0xB5D52717), UINT32_C(0xDBEACF03), + UINT32_C(0xF9DAEAFB), UINT32_C(0x113A3811), UINT32_C(0x3786E64B), + UINT32_C(0x5C30569D), UINT32_C(0x6A01A1A5)}, + {UINT32_C(0xBA1C28B6), UINT32_C(0x0A91E160), UINT32_C(0x929D3F05), + UINT32_C(0x5BFA32BA), UINT32_C(0x40C51084), UINT32_C(0x1108F875), + UINT32_C(0x42FD5AE1), UINT32_C(0x37FD2383)}}, + {{UINT32_C(0x2A79BFB8), UINT32_C(0xABF14EDE), UINT32_C(0xAA34300C), + UINT32_C(0x08B34155), UINT32_C(0x64077041), UINT32_C(0x85C0DFA0), + UINT32_C(0xF542D447), UINT32_C(0x3AE5D28D)}, + {UINT32_C(0xB74DC4FB), UINT32_C(0xC303A0FE), UINT32_C(0x556E0B87), + UINT32_C(0xB75292FA), UINT32_C(0x51BDC64C), UINT32_C(0x785628B0), + UINT32_C(0x13C579F6), UINT32_C(0x43FE786E)}}, + {{UINT32_C(0x5F08790F), UINT32_C(0xBC5898CB), UINT32_C(0x125644EC), + UINT32_C(0xA298A59A), UINT32_C(0xB048217A), UINT32_C(0xD2D9627B), + UINT32_C(0x7B1F23F7), UINT32_C(0x6DCEEF32)}, + {UINT32_C(0xFA7B9C6A), UINT32_C(0x7F02FC44), UINT32_C(0x73597BF7), + UINT32_C(0x90C64960), UINT32_C(0x2CB0B3A2), UINT32_C(0x5DD7E4F4), + UINT32_C(0x43E83553), UINT32_C(0x5EC5F92C)}}, + {{UINT32_C(0x59E2C8E9), UINT32_C(0xC06B4D49), UINT32_C(0x1DF8AD8B), + UINT32_C(0x7DBC8218), UINT32_C(0xDAE8B6D7), UINT32_C(0x35570120), + UINT32_C(0x0CDE2691), UINT32_C(0x4222A1BA)}, + {UINT32_C(0xC1693046), UINT32_C(0xD2F1EFA6), UINT32_C(0x7D36D9CD), + UINT32_C(0x2707228D), UINT32_C(0x062D499C), UINT32_C(0xD668EE25), + UINT32_C(0xCE2621A0), UINT32_C(0x7AC81BDF)}}, + {{UINT32_C(0x16F6A215), UINT32_C(0x3A9F04BB), UINT32_C(0x89E5494E), + UINT32_C(0x739BB2BC), UINT32_C(0xD1CEB043), UINT32_C(0xCB8DBAE8), + UINT32_C(0x09A6B465), UINT32_C(0x6B177DF0)}, + {UINT32_C(0x1A529744), UINT32_C(0xB7C4980E), UINT32_C(0x0E9012B5), + UINT32_C(0x3941B997), UINT32_C(0x04C6D677), UINT32_C(0xDF317B95), + UINT32_C(0x829F51D6), UINT32_C(0x17898D81)}}, + {{UINT32_C(0xA12282BA), UINT32_C(0x3D48FD66), UINT32_C(0x899E5A1A), + UINT32_C(0xB775465B), UINT32_C(0x55D95C35), UINT32_C(0xDE0CCB99), + UINT32_C(0x950AB9DF), UINT32_C(0x4CB3CCDD)}, + {UINT32_C(0x175C4CAE), UINT32_C(0x0B4ABA02), UINT32_C(0xCF86187C), + UINT32_C(0x2DA7C698), UINT32_C(0x9A9BF6CA), UINT32_C(0x3A4453DF), + UINT32_C(0x8BB9F543), UINT32_C(0x53C86F9C)}}, + {{UINT32_C(0x5B7DB133), UINT32_C(0x806B815E), UINT32_C(0x118FA7C1), + UINT32_C(0x2451D6AC), UINT32_C(0xFB0BEFC3), UINT32_C(0x32C148B6), + UINT32_C(0xE433031E), UINT32_C(0x2E6ECEF6)}, + {UINT32_C(0x54B2EE29), UINT32_C(0x2B78F317), UINT32_C(0x5A73BF01), + UINT32_C(0xBC321BF9), UINT32_C(0xF8F7F981), UINT32_C(0xDF6F7840), + UINT32_C(0x22280C40), UINT32_C(0x751A917A)}}, + {{UINT32_C(0x4F9161C8), UINT32_C(0x73EFA631), UINT32_C(0x21145C52), + UINT32_C(0xB61C5E68), UINT32_C(0x6A04DC52), UINT32_C(0x60947773), + UINT32_C(0x2C2073B2), UINT32_C(0x758E38FF)}, + {UINT32_C(0x03A54541), UINT32_C(0xDC6FEA73), UINT32_C(0xB6E65787), + UINT32_C(0x5E77682C), UINT32_C(0x37370FD0), UINT32_C(0xAFEF6C1C), + UINT32_C(0xD5AC255A), UINT32_C(0x33DEEF00)}}, + {{UINT32_C(0x061D35CC), UINT32_C(0x1AD81101), UINT32_C(0x8A77D246), + UINT32_C(0xD55EED7D), UINT32_C(0x926E64C3), UINT32_C(0x8D59DC22), + UINT32_C(0xAFC6FFA6), UINT32_C(0x76C9D6CE)}, + {UINT32_C(0x3F4FCC0F), UINT32_C(0x945A89B5), UINT32_C(0x9087F46A), + UINT32_C(0x65EB52CF), UINT32_C(0xAE9F09DE), UINT32_C(0xC3380377), + UINT32_C(0x43DFD5FB), UINT32_C(0x59067EDD)}}, + {{UINT32_C(0xCF841445), UINT32_C(0xCBB7BC66), UINT32_C(0xA3BE7C94), + UINT32_C(0x9ED681D3), UINT32_C(0x396C6DD5), UINT32_C(0xF5CF59BE), + UINT32_C(0xFA763634), UINT32_C(0x2598A5DC)}, + {UINT32_C(0x85CF4FDE), UINT32_C(0xAD2B445A), UINT32_C(0xA0D92F4C), + UINT32_C(0xC8CE3F42), UINT32_C(0xF01CD0F5), UINT32_C(0x78356D5B), + UINT32_C(0x5D50C9D7), UINT32_C(0x26E44A45)}}, + {{UINT32_C(0x4EDF35A5), UINT32_C(0x22EB53E3), UINT32_C(0xAF1A8A60), + UINT32_C(0xA0C6CDEF), UINT32_C(0xD07C1EBD), UINT32_C(0x1D31BA2C), + UINT32_C(0xD2C2ADE1), UINT32_C(0x513511A0)}, + {UINT32_C(0xC4449889), UINT32_C(0xBD3772D4), UINT32_C(0xD3F49C61), + UINT32_C(0xAF5EF819), UINT32_C(0x40047745), UINT32_C(0xAAF21599), + UINT32_C(0xA54B8080), UINT32_C(0x2128938C)}}, + {{UINT32_C(0x73ADBEC8), UINT32_C(0x9761A94A), UINT32_C(0x1FB2F257), + UINT32_C(0x4710BBF0), UINT32_C(0xB3920007), UINT32_C(0xFE52603E), + UINT32_C(0x7DE06F13), UINT32_C(0x66393750)}, + {UINT32_C(0x965AC706), UINT32_C(0x35F4E633), UINT32_C(0x33F953E5), + UINT32_C(0xF49DC418), UINT32_C(0x31CFE467), UINT32_C(0x1562AD51), + UINT32_C(0x8ADB1F7A), UINT32_C(0x035FB54D)}}, + }, + { + {{UINT32_C(0xFD73062E), UINT32_C(0xF632081F), UINT32_C(0xCB740B59), + UINT32_C(0xB2740C19), UINT32_C(0x8751E315), UINT32_C(0x2DFD957F), + UINT32_C(0xC21039C2), UINT32_C(0x5722E015)}, + {UINT32_C(0xA4E56D39), UINT32_C(0x44781BFC), UINT32_C(0xDA2FBE63), + UINT32_C(0x894BD2F7), UINT32_C(0x5DE22DE0), UINT32_C(0x9E81007B), + UINT32_C(0xC68788FC), UINT32_C(0x0CED0859)}}, + {{UINT32_C(0x8DDA6292), UINT32_C(0x97DD8CF1), UINT32_C(0x27FCF7F1), + UINT32_C(0x3E9191F7), UINT32_C(0xDAA6AD44), UINT32_C(0x07885E32), + UINT32_C(0xBE9F7E62), UINT32_C(0x624CE66E)}, + {UINT32_C(0x1893A3D9), UINT32_C(0x0483DA42), UINT32_C(0x8F2A105F), + UINT32_C(0x1041B7EA), UINT32_C(0x429A24B9), UINT32_C(0x5B706F99), + UINT32_C(0x167C12E1), UINT32_C(0x30BFBCEE)}}, + {{UINT32_C(0xC38251D8), UINT32_C(0xEB2C7218), UINT32_C(0x022B6411), + UINT32_C(0x5FE5D8F6), UINT32_C(0x93DCCB63), UINT32_C(0xF62200C1), + UINT32_C(0xCFF221E6), UINT32_C(0x2CF0F8F1)}, + {UINT32_C(0x9217EE42), UINT32_C(0xDCF1BCD6), UINT32_C(0x9DB2580B), + UINT32_C(0x1904879C), UINT32_C(0xF6510164), UINT32_C(0x2DDB7E5D), + UINT32_C(0x8A0EAC6B), UINT32_C(0x7BB29985)}}, + {{UINT32_C(0x0FCF8397), UINT32_C(0x98313C0E), UINT32_C(0x42C8EEF1), + UINT32_C(0xB594D0B7), UINT32_C(0x97E842F7), UINT32_C(0xBD31FC34), + UINT32_C(0x8F3ADB9B), UINT32_C(0x49476B9D)}, + {UINT32_C(0x50B45445), UINT32_C(0xD1B5FD37), UINT32_C(0xD583A89F), + UINT32_C(0x526C51CA), UINT32_C(0x6782C060), UINT32_C(0x5D461F09), + UINT32_C(0x27274A60), UINT32_C(0x414023EC)}}, + {{UINT32_C(0xEAE4285A), UINT32_C(0x7C809B26), UINT32_C(0x0A066043), + UINT32_C(0x939814BF), UINT32_C(0x6C640E3D), UINT32_C(0x9CBAC0BB), + UINT32_C(0x30EB1B86), UINT32_C(0x647E22E1)}, + {UINT32_C(0x3C7DFA0D), UINT32_C(0x21E2A42D), UINT32_C(0xE2CD0CCE), + UINT32_C(0xFF8CC304), UINT32_C(0x3496964C), UINT32_C(0x3DC8C920), + UINT32_C(0x2B4DF7C2), UINT32_C(0x5D91FE78)}}, + {{UINT32_C(0x96D84346), UINT32_C(0xD5BBBD6E), UINT32_C(0xF91FFA8C), + UINT32_C(0x8363527B), UINT32_C(0x7F408588), UINT32_C(0x931D0FDA), + UINT32_C(0xB0B19D0F), UINT32_C(0x2C51F17B)}, + {UINT32_C(0xFF61C86D), UINT32_C(0x7A693804), UINT32_C(0xB3FFD529), + UINT32_C(0xBAB4AC45), UINT32_C(0x4C171C84), UINT32_C(0xEDEA275F), + UINT32_C(0xD59B94D9), UINT32_C(0x0520925C)}}, + {{UINT32_C(0xE8718BB4), UINT32_C(0xB6A620AA), UINT32_C(0x88D37A61), + UINT32_C(0x67851F0F), UINT32_C(0x9984A787), UINT32_C(0xCBEE8DBC), + UINT32_C(0xAE834635), UINT32_C(0x7190B766)}, + {UINT32_C(0xC9AC1A8E), UINT32_C(0x3A1D7DB4), UINT32_C(0x7B97BCB7), + UINT32_C(0x6EEBD5AD), UINT32_C(0x9D0AB769), UINT32_C(0x60978625), + UINT32_C(0x7C7F02DD), UINT32_C(0x5AD56C0C)}}, + {{UINT32_C(0x2DB3B6F2), UINT32_C(0x2C0003DE), UINT32_C(0xEFCF1DD8), + UINT32_C(0x3BE1CE3F), UINT32_C(0x379E6B8A), UINT32_C(0xE2F79872), + UINT32_C(0x0B898094), UINT32_C(0x3F9640D8)}, + {UINT32_C(0x15B29D41), UINT32_C(0x11EBD937), UINT32_C(0x3EF17D8C), + UINT32_C(0xD6A076B9), UINT32_C(0xB38ED3BA), UINT32_C(0x0A2C0016), + UINT32_C(0xCCB161CC), UINT32_C(0x64329A02)}}, + {{UINT32_C(0xB1ED1DEA), UINT32_C(0xD135032D), UINT32_C(0x42F734A0), + UINT32_C(0x43F76848), UINT32_C(0x3C18D8C5), UINT32_C(0x1F6C12BD), + UINT32_C(0xC0A304E8), UINT32_C(0x7D7757B7)}, + {UINT32_C(0xDE3B6B9F), UINT32_C(0x3F0C2867), UINT32_C(0xB7201E4F), + UINT32_C(0x72F98EBB), UINT32_C(0x940E748D), UINT32_C(0xCC408000), + UINT32_C(0xAD74B322), UINT32_C(0x34FE6D8F)}}, + {{UINT32_C(0xE6D884FE), UINT32_C(0xA12A9359), UINT32_C(0xDE063103), + UINT32_C(0xB080A081), UINT32_C(0x97ABB854), UINT32_C(0x672DE27D), + UINT32_C(0xEE6F3485), UINT32_C(0x712B0883)}, + {UINT32_C(0x2044A2A2), UINT32_C(0xF430BF2D), UINT32_C(0x7D12027A), + UINT32_C(0x66561020), UINT32_C(0x2C539C3B), UINT32_C(0x5ED63AD2), + UINT32_C(0xFE5EE1D1), UINT32_C(0x7982AAD0)}}, + {{UINT32_C(0x3BE94D26), UINT32_C(0x873DC8F6), UINT32_C(0x4B41BD76), + UINT32_C(0x90923639), UINT32_C(0x0CBE4B5C), UINT32_C(0xE439A496), + UINT32_C(0x11782BF1), UINT32_C(0x424F8D24)}, + {UINT32_C(0x49686ED9), UINT32_C(0x6612BD99), UINT32_C(0xFB04E27E), + UINT32_C(0x78157AA9), UINT32_C(0x805F809C), UINT32_C(0x844E1616), + UINT32_C(0x62CB8BCD), UINT32_C(0x717AEB32)}}, + {{UINT32_C(0x5248CF6A), UINT32_C(0xE98C1A0E), UINT32_C(0xB0E4ADF8), + UINT32_C(0xC84294A8), UINT32_C(0xA7769275), UINT32_C(0xD35748A4), + UINT32_C(0x03363C82), UINT32_C(0x2C3867E1)}, + {UINT32_C(0x8F43885A), UINT32_C(0x2EC7AF43), UINT32_C(0x3AE516C7), + UINT32_C(0x7979D1A2), UINT32_C(0x8B81056C), UINT32_C(0x059939EC), + UINT32_C(0x7E358480), UINT32_C(0x434AA4DD)}}, + {{UINT32_C(0x4A5228EA), UINT32_C(0x12EA1C87), UINT32_C(0x4D293B9F), + UINT32_C(0x47B48198), UINT32_C(0xE9696688), UINT32_C(0x319CE379), + UINT32_C(0x7CE6FD05), UINT32_C(0x7C9FF595)}, + {UINT32_C(0x3093E3E4), UINT32_C(0x15E954DF), UINT32_C(0x304015AF), + UINT32_C(0xBC98307C), UINT32_C(0x975C69C5), UINT32_C(0x66522DF8), + UINT32_C(0x963CE892), UINT32_C(0x4C9EBFB3)}}, + {{UINT32_C(0x628FB125), UINT32_C(0x1CEEF18A), UINT32_C(0x4BF30BB6), + UINT32_C(0xFB69A234), UINT32_C(0x70C9C864), UINT32_C(0x510EB339), + UINT32_C(0x8A89151D), UINT32_C(0x1EE9D1ED)}, + {UINT32_C(0x4EE1A486), UINT32_C(0x34094028), UINT32_C(0x2FC79CEE), + UINT32_C(0x66440167), UINT32_C(0xC7DA3A75), UINT32_C(0xB597625A), + UINT32_C(0x65205AF9), UINT32_C(0x6E5B920E)}}, + {{UINT32_C(0xD87C914C), UINT32_C(0x749D0CA4), UINT32_C(0x0D60C59E), + UINT32_C(0x55ECBEBB), UINT32_C(0xA65B4652), UINT32_C(0x916A1127), + UINT32_C(0x4E4767A3), UINT32_C(0x503964D4)}, + {UINT32_C(0x1B1F94D5), UINT32_C(0x8899A4C2), UINT32_C(0x33E0D94D), + UINT32_C(0xEFFCAF52), UINT32_C(0xA3DAD87D), UINT32_C(0x61B89B3F), + UINT32_C(0x5088D6BE), UINT32_C(0x3CB455F5)}}, + {{UINT32_C(0x70678C14), UINT32_C(0x5088A52B), UINT32_C(0x41B00FC3), + UINT32_C(0x212823D9), UINT32_C(0x19865BDB), UINT32_C(0x38D5CEB6), + UINT32_C(0x12E63491), UINT32_C(0x2E9C7FD7)}, + {UINT32_C(0x59E73913), UINT32_C(0x6656F916), UINT32_C(0xE9035A63), + UINT32_C(0x57AE9A47), UINT32_C(0xF02B8DAE), UINT32_C(0x970DCF2B), + UINT32_C(0x950FF8A9), UINT32_C(0x3366F8A6)}}, + }, + { + {{UINT32_C(0xAC4A8F83), UINT32_C(0x93DABD6F), UINT32_C(0x1CFF0AAD), + UINT32_C(0x27233488), UINT32_C(0xF500EDFB), UINT32_C(0xBCAC3181), + UINT32_C(0xB5297515), UINT32_C(0x27C6DB15)}, + {UINT32_C(0x2F08A89F), UINT32_C(0x9CD142D9), UINT32_C(0x2EAD0A80), + UINT32_C(0x3C005423), UINT32_C(0x44A7623A), UINT32_C(0x82845F95), + UINT32_C(0x72BC4862), UINT32_C(0x51047070)}}, + {{UINT32_C(0xDC1B9159), UINT32_C(0x4303797A), UINT32_C(0x5D9C9AC1), + UINT32_C(0x7842434B), UINT32_C(0x6009FE2E), UINT32_C(0x8A36ED2D), + UINT32_C(0x5106429C), UINT32_C(0x11FE35C9)}, + {UINT32_C(0x23554A92), UINT32_C(0xDF20A393), UINT32_C(0x932E37C2), + UINT32_C(0x59364A48), UINT32_C(0x7754A5DF), UINT32_C(0x6D7DE6AE), + UINT32_C(0x462725AC), UINT32_C(0x00CCC6A3)}}, + {{UINT32_C(0xBAE83077), UINT32_C(0xB1F86CA5), UINT32_C(0x5110782C), + UINT32_C(0x82FE28A5), UINT32_C(0xD942182C), UINT32_C(0x8031BBF3), + UINT32_C(0x410D9F83), UINT32_C(0x4F1F3815)}, + {UINT32_C(0x835ABA65), UINT32_C(0xE57F9907), UINT32_C(0x5AA10903), + UINT32_C(0x0A8220C2), UINT32_C(0x8812602E), UINT32_C(0x2E984717), + UINT32_C(0x2A7D2C6C), UINT32_C(0x0AEC467D)}}, + {{UINT32_C(0xC4DBED03), UINT32_C(0xC779F708), UINT32_C(0x8582BD4E), + UINT32_C(0x10A30CD8), UINT32_C(0x243FEAEE), UINT32_C(0xFA5646C5), + UINT32_C(0xCA459EF7), UINT32_C(0x1CFAF38E)}, + {UINT32_C(0x95BC8077), UINT32_C(0xCCDD0146), UINT32_C(0x65858C49), + UINT32_C(0x4ECDE919), UINT32_C(0x77FEE1B6), UINT32_C(0x562764C6), + UINT32_C(0x43524407), UINT32_C(0x3CF5A3AB)}}, + {{UINT32_C(0x0F6EF445), UINT32_C(0x0CCEAADD), UINT32_C(0xC297AFAF), + UINT32_C(0x690C12C1), UINT32_C(0xC15B3D7B), UINT32_C(0xD67AA6EA), + UINT32_C(0x9FF8884E), UINT32_C(0x445D233C)}, + {UINT32_C(0x6CAD3234), UINT32_C(0xC38FFD09), UINT32_C(0xC7002F6F), + UINT32_C(0xA690FFD1), UINT32_C(0x11ACB469), UINT32_C(0xD445E851), + UINT32_C(0x97166E52), UINT32_C(0x64EE1380)}}, + {{UINT32_C(0xCEFBFB0A), UINT32_C(0x1EB031CC), UINT32_C(0xAA40D6A9), + UINT32_C(0x60F3DEF4), UINT32_C(0xF96FCAFE), UINT32_C(0x240F7CA5), + UINT32_C(0xE4450A06), UINT32_C(0x53AF2F10)}, + {UINT32_C(0xA84058EF), UINT32_C(0xE8AF980F), UINT32_C(0x34AFFC6E), + UINT32_C(0x3E300017), UINT32_C(0xC86B458C), UINT32_C(0x62D1D094), + UINT32_C(0x75732C7E), UINT32_C(0x5338383D)}}, + {{UINT32_C(0x04D82638), UINT32_C(0x6BD46AEB), UINT32_C(0x62E645A0), + UINT32_C(0x86940A31), UINT32_C(0xA5736B40), UINT32_C(0xD025B4B1), + UINT32_C(0x924E8E5E), UINT32_C(0x1056D9D0)}, + {UINT32_C(0x1DB58101), UINT32_C(0x3D0495CC), UINT32_C(0x2D677581), + UINT32_C(0xC300C6E7), UINT32_C(0x610AECEC), UINT32_C(0xFE38B898), + UINT32_C(0xD66F64ED), UINT32_C(0x1C8B94E2)}}, + {{UINT32_C(0x06D0C7EC), UINT32_C(0x5C9C3A37), UINT32_C(0xB8A74918), + UINT32_C(0x6B4B5437), UINT32_C(0x9052A235), UINT32_C(0x85689C98), + UINT32_C(0x87B53AA6), UINT32_C(0x4F7C2C8D)}, + {UINT32_C(0xD8F1D334), UINT32_C(0x9FCD866F), UINT32_C(0x6898223C), + UINT32_C(0xDBAAA227), UINT32_C(0x95C7B35A), UINT32_C(0x933DE9DA), + UINT32_C(0x3EA949FD), UINT32_C(0x329AE20F)}}, + {{UINT32_C(0x948A2ECD), UINT32_C(0xB83547AF), UINT32_C(0xBE34890C), + UINT32_C(0xEBF7C1E7), UINT32_C(0xF8211C33), UINT32_C(0x5F0F44F3), + UINT32_C(0xC6927638), UINT32_C(0x14A10BDB)}, + {UINT32_C(0x5B579BF5), UINT32_C(0x7FD88567), UINT32_C(0x5B7417F0), + UINT32_C(0xD7C71281), UINT32_C(0x2083502E), UINT32_C(0x7C04F111), + UINT32_C(0xE9AD6283), UINT32_C(0x42029128)}}, + {{UINT32_C(0x2C5C0928), UINT32_C(0x32FBFFAE), UINT32_C(0x1469F1D3), + UINT32_C(0x4E31D312), UINT32_C(0xD79F51A2), UINT32_C(0x17307E28), + UINT32_C(0x79A51EBD), UINT32_C(0x546C91AF)}, + {UINT32_C(0x668086A6), UINT32_C(0x041D464D), UINT32_C(0x0DB695DB), + UINT32_C(0x4986BDE5), UINT32_C(0xEF317AA0), UINT32_C(0xCBA5F6EE), + UINT32_C(0x730221D3), UINT32_C(0x5879259F)}}, + {{UINT32_C(0x253BB4BA), UINT32_C(0xBD9C5CA5), UINT32_C(0x0E2A75BB), + UINT32_C(0xBBFC6079), UINT32_C(0x67AB9033), UINT32_C(0xB5F11AE3), + UINT32_C(0xAC2BFAFE), UINT32_C(0x6411CB1E)}, + {UINT32_C(0xBF5390B0), UINT32_C(0x750734FE), UINT32_C(0x879A3D3D), + UINT32_C(0xA044BED4), UINT32_C(0xA0C47093), UINT32_C(0xE1E9F0E4), + UINT32_C(0xB64DA48C), UINT32_C(0x3BCAD93E)}}, + {{UINT32_C(0xB37E16C2), UINT32_C(0xAFC6BCB6), UINT32_C(0x2331B0CD), + UINT32_C(0xB54F56C0), UINT32_C(0x5BBFBEE7), UINT32_C(0x725E81B4), + UINT32_C(0xE8B9D922), UINT32_C(0x2AE0C039)}, + {UINT32_C(0xDB958319), UINT32_C(0x85301041), UINT32_C(0x0681C4A4), + UINT32_C(0xDFAE34DD), UINT32_C(0xCBF7BB2B), UINT32_C(0x906C9219), + UINT32_C(0x10A1710A), UINT32_C(0x1463E9EF)}}, + {{UINT32_C(0x21E6FC9D), UINT32_C(0x41E6C388), UINT32_C(0x24A39EC8), + UINT32_C(0x0B629A1E), UINT32_C(0x1AEF7A46), UINT32_C(0xC62F60BE), + UINT32_C(0xC5A16B6E), UINT32_C(0x59A50B54)}, + {UINT32_C(0x285B891E), UINT32_C(0x41CA367A), UINT32_C(0xE2F8AF59), + UINT32_C(0x70A6CE6B), UINT32_C(0xCBCEEF98), UINT32_C(0x74058747), + UINT32_C(0x601C375F), UINT32_C(0x4B912170)}}, + {{UINT32_C(0x734EE866), UINT32_C(0x7D975CE2), UINT32_C(0xA09F5F14), + UINT32_C(0x8D3572C6), UINT32_C(0x2232EE5E), UINT32_C(0x1DB4CC88), + UINT32_C(0x7C04C250), UINT32_C(0x6C979049)}, + {UINT32_C(0xAE1EBC20), UINT32_C(0xB5EC7706), UINT32_C(0xE21AAA32), + UINT32_C(0x7BDBD34D), UINT32_C(0xC5D1C733), UINT32_C(0xAD4125FD), + UINT32_C(0x731E6B09), UINT32_C(0x28B0302D)}}, + {{UINT32_C(0x1521415E), UINT32_C(0xD68EEC49), UINT32_C(0x092763C0), + UINT32_C(0x31963424), UINT32_C(0x0BFB513B), UINT32_C(0xCA90F48D), + UINT32_C(0x573A056A), UINT32_C(0x4814DDFF)}, + {UINT32_C(0x400E804D), UINT32_C(0x7E67599C), UINT32_C(0x51FD0596), + UINT32_C(0x35452750), UINT32_C(0xDB331B66), UINT32_C(0x45EDD7FB), + UINT32_C(0xBDEDE107), UINT32_C(0x172DA8B3)}}, + {{UINT32_C(0xB5BEB1C8), UINT32_C(0xD46F284C), UINT32_C(0x7B125701), + UINT32_C(0x5DE5D3F1), UINT32_C(0x248053D1), UINT32_C(0xC3BA591E), + UINT32_C(0x9C8F487C), UINT32_C(0x4E67F1F2)}, + {UINT32_C(0x8C252EC5), UINT32_C(0x380D93E4), UINT32_C(0x22BC5CF6), + UINT32_C(0x913F96F1), UINT32_C(0xD7BAA634), UINT32_C(0xC1F06BBD), + UINT32_C(0xA30BF1B9), UINT32_C(0x7B625179)}}, + }, + { + {{UINT32_C(0xABD424AC), UINT32_C(0x125D398D), UINT32_C(0x9CC70479), + UINT32_C(0xFE65DF03), UINT32_C(0xFB5EC82C), UINT32_C(0x89A31794), + UINT32_C(0xA31C5DCA), UINT32_C(0x63EFFB55)}, + {UINT32_C(0x045B576A), UINT32_C(0x948F7571), UINT32_C(0x022B5FC8), + UINT32_C(0xEC9F6FAB), UINT32_C(0xBD9F0DD2), UINT32_C(0x174DC936), + UINT32_C(0xF4C4EE8B), UINT32_C(0x5EEA65E6)}}, + {{UINT32_C(0x8B800D67), UINT32_C(0xE97070AE), UINT32_C(0xB59B433E), + UINT32_C(0xB9CB66FA), UINT32_C(0xC6141364), UINT32_C(0xC4496574), + UINT32_C(0x6A9677EA), UINT32_C(0x530AA9B5)}, + {UINT32_C(0x75200533), UINT32_C(0x4A4E2EE3), UINT32_C(0x0F20A9BE), + UINT32_C(0x4C38A509), UINT32_C(0xEA683510), UINT32_C(0x0A6FFBA4), + UINT32_C(0x65732EA9), UINT32_C(0x7340EFEE)}}, + {{UINT32_C(0xE41C2B43), UINT32_C(0x3A5612E4), UINT32_C(0xFCB5C0A8), + UINT32_C(0x31F51B80), UINT32_C(0xBD1F03E6), UINT32_C(0x4C5BBA64), + UINT32_C(0x3694ADCA), UINT32_C(0x25387243)}, + {UINT32_C(0x1F7E4D5C), UINT32_C(0xF114EFAF), UINT32_C(0x4EA3A59D), + UINT32_C(0xBEA5223A), UINT32_C(0x67EB414D), UINT32_C(0x82CEF46F), + UINT32_C(0x9B6CAC3D), UINT32_C(0x09D351C1)}}, + {{UINT32_C(0x810F5054), UINT32_C(0xC69F25CE), UINT32_C(0x548A2CDF), + UINT32_C(0xE33E5E97), UINT32_C(0x36946D3C), UINT32_C(0x20B3F442), + UINT32_C(0x65DF2D3B), UINT32_C(0x572C0F5C)}, + {UINT32_C(0xCC953CC8), UINT32_C(0xFC5B2DF3), UINT32_C(0xD1CCADC6), + UINT32_C(0x934D54C0), UINT32_C(0xA6E7B4DB), UINT32_C(0x828A906E), + UINT32_C(0x5AD3076F), UINT32_C(0x610D36C1)}}, + {{UINT32_C(0x74F56E27), UINT32_C(0x960B0A01), UINT32_C(0xCF3FEA75), + UINT32_C(0x9942C6AC), UINT32_C(0x82C51490), UINT32_C(0x2E4D786D), + UINT32_C(0x9A4749C9), UINT32_C(0x23A51636)}, + {UINT32_C(0x2F7560FC), UINT32_C(0xD86AB36A), UINT32_C(0xDDB852A9), + UINT32_C(0xDA66B49D), UINT32_C(0x544C1023), UINT32_C(0x84E1587D), + UINT32_C(0x6AA3C1DA), UINT32_C(0x7AB8BC69)}}, + {{UINT32_C(0xA5F30701), UINT32_C(0xFD0397AF), UINT32_C(0xDFC8B187), + UINT32_C(0x96FFB15D), UINT32_C(0x1475E520), UINT32_C(0xF2C86453), + UINT32_C(0xEF37300E), UINT32_C(0x71521986)}, + {UINT32_C(0x68006D45), UINT32_C(0xD81F75A8), UINT32_C(0xCBC06D4D), + UINT32_C(0xDF7814EA), UINT32_C(0x2E8E9150), UINT32_C(0x5BCF959B), + UINT32_C(0x56668C18), UINT32_C(0x146D37D7)}}, + {{UINT32_C(0x88E8DC77), UINT32_C(0x1ABD7312), UINT32_C(0xC1C3A4DB), + UINT32_C(0x0B34B877), UINT32_C(0xF844BACE), UINT32_C(0x85739093), + UINT32_C(0x04A7CF80), UINT32_C(0x5DEDCF8F)}, + {UINT32_C(0xD87CDBDC), UINT32_C(0xD8BB237E), UINT32_C(0xCCBA784F), + UINT32_C(0x89852174), UINT32_C(0xB2FAECC3), UINT32_C(0x6843BAB8), + UINT32_C(0xAA4BBA32), UINT32_C(0x15268302)}}, + {{UINT32_C(0xB23D3770), UINT32_C(0x3B58225A), UINT32_C(0x10CC9DE6), + UINT32_C(0x9357EB59), UINT32_C(0x42ECF80E), UINT32_C(0x8665F92A), + UINT32_C(0xC875C031), UINT32_C(0x4819CC9D)}, + {UINT32_C(0xC34B979B), UINT32_C(0x09CBE5D8), UINT32_C(0x7E1D0E63), + UINT32_C(0x161E8AC0), UINT32_C(0x282E36E8), UINT32_C(0x874DF24F), + UINT32_C(0x0712A0CD), UINT32_C(0x6528E6FA)}}, + {{UINT32_C(0x107633E4), UINT32_C(0xE37AD786), UINT32_C(0xCF1FE646), + UINT32_C(0x122D7123), UINT32_C(0xCFA93AC0), UINT32_C(0x1E6E682B), + UINT32_C(0x276200DB), UINT32_C(0x0A25F4EE)}, + {UINT32_C(0xE25FBB01), UINT32_C(0x44E290ED), UINT32_C(0xC3C1B418), + UINT32_C(0x3E392DF5), UINT32_C(0x83EBE689), UINT32_C(0xE5E15745), + UINT32_C(0x4B999926), UINT32_C(0x016139D2)}}, + {{UINT32_C(0x65D7DA58), UINT32_C(0x048915B0), UINT32_C(0xA78F3D9E), + UINT32_C(0x6EF7C4EF), UINT32_C(0xAD614974), UINT32_C(0x78CCCE55), + UINT32_C(0x54B95643), UINT32_C(0x43DB7DA0)}, + {UINT32_C(0xE53F1A67), UINT32_C(0xFC423B70), UINT32_C(0x4EFE2427), + UINT32_C(0x8F8BED81), UINT32_C(0x95B045EB), UINT32_C(0xF5D6AD5F), + UINT32_C(0xD7407716), UINT32_C(0x23582D5D)}}, + {{UINT32_C(0x9F674472), UINT32_C(0x9E5D24FB), UINT32_C(0x68626041), + UINT32_C(0x1AE18636), UINT32_C(0x7ABC4380), UINT32_C(0x8977E68F), + UINT32_C(0x05AF2D04), UINT32_C(0x7D9FF8E8)}, + {UINT32_C(0x4197C4E1), UINT32_C(0x9D31195F), UINT32_C(0x4400F35E), + UINT32_C(0x9F3F6E11), UINT32_C(0x7BBEF801), UINT32_C(0x1A87D586), + UINT32_C(0x952BB025), UINT32_C(0x42AE0380)}}, + {{UINT32_C(0x6B96482B), UINT32_C(0xC6A3ED75), UINT32_C(0xA9C6DD2F), + UINT32_C(0x58B38724), UINT32_C(0x9297FB47), UINT32_C(0x464C8CE8), + UINT32_C(0xFB6D6C55), UINT32_C(0x0245797E)}, + {UINT32_C(0xC0B58C8F), UINT32_C(0xBE141C80), UINT32_C(0x77766C48), + UINT32_C(0xC4C405CB), UINT32_C(0xD10C0F31), UINT32_C(0xD57EE428), + UINT32_C(0x50E8FE7B), UINT32_C(0x03D4862B)}}, + {{UINT32_C(0x1DC3722C), UINT32_C(0x21976F8A), UINT32_C(0x5F476F0D), + UINT32_C(0x02EC30D5), UINT32_C(0xCA434B06), UINT32_C(0xD711E01D), + UINT32_C(0x99FF2488), UINT32_C(0x551AC910)}, + {UINT32_C(0xA56CA3C7), UINT32_C(0x24AEC72D), UINT32_C(0x891896CE), + UINT32_C(0x2DD1219A), UINT32_C(0x67882925), UINT32_C(0xD84BAD19), + UINT32_C(0x9D4778EF), UINT32_C(0x27E65D7F)}}, + {{UINT32_C(0x4685687F), UINT32_C(0x09F19C8F), UINT32_C(0xBBB58BD3), + UINT32_C(0xB7C7B9E3), UINT32_C(0x8FA34DD5), UINT32_C(0x349D03A7), + UINT32_C(0x8D59E889), UINT32_C(0x41F9D003)}, + {UINT32_C(0x2B3ED6FA), UINT32_C(0xCF3367D4), UINT32_C(0x378DA1ED), + UINT32_C(0xCF3C6715), UINT32_C(0x4E935E9A), UINT32_C(0x86DC3903), + UINT32_C(0xF08CB23A), UINT32_C(0x50692CFF)}}, + {{UINT32_C(0xC2D65C87), UINT32_C(0x18CA772A), UINT32_C(0x4F1D0CB6), + UINT32_C(0xC9092B38), UINT32_C(0xBBD2015A), UINT32_C(0x91E71CF1), + UINT32_C(0x4F3DEF26), UINT32_C(0x4A09DAAC)}, + {UINT32_C(0x735C9281), UINT32_C(0x7CCA7B4A), UINT32_C(0x1BF0AAEE), + UINT32_C(0x2028F144), UINT32_C(0xACB5B748), UINT32_C(0xCF72A082), + UINT32_C(0x43299B85), UINT32_C(0x58957D5D)}}, + {{UINT32_C(0x901F1789), UINT32_C(0x64BB164E), UINT32_C(0x5AEF97BF), + UINT32_C(0xC68766E6), UINT32_C(0x942B6DCE), UINT32_C(0x30ECA3E2), + UINT32_C(0xF9E798F3), UINT32_C(0x632676FA)}, + {UINT32_C(0xF13896EE), UINT32_C(0xB52533D3), UINT32_C(0x2D8A29C1), + UINT32_C(0xAD912831), UINT32_C(0xBC14E7FF), UINT32_C(0x12F1B9A4), + UINT32_C(0x8828D196), UINT32_C(0x4E1D23FD)}}, + }, + { + {{UINT32_C(0xEF494793), UINT32_C(0xC4F89E00), UINT32_C(0xC93D2F55), + UINT32_C(0xA6044BC3), UINT32_C(0x8797F8AF), UINT32_C(0x68E60B58), + UINT32_C(0x841E4B5E), UINT32_C(0x4D5969FA)}, + {UINT32_C(0xD759BB2D), UINT32_C(0xB1EE70FB), UINT32_C(0x66D8AD01), + UINT32_C(0x9AC30433), UINT32_C(0x84E9F677), UINT32_C(0xD93F23DB), + UINT32_C(0xC53029A4), UINT32_C(0x2AD9D16F)}}, + {{UINT32_C(0xDD882D23), UINT32_C(0xD01FC16B), UINT32_C(0xFA5B4128), + UINT32_C(0x3BF921F1), UINT32_C(0x235BC9CE), UINT32_C(0x3D3FE145), + UINT32_C(0x62E686E1), UINT32_C(0x59556716)}, + {UINT32_C(0x79F99D69), UINT32_C(0xE329A7C2), UINT32_C(0xA4F5F5F5), + UINT32_C(0xA67EF5EC), UINT32_C(0xD5A34FF0), UINT32_C(0xF96A41EE), + UINT32_C(0x74674B5F), UINT32_C(0x09D0CF06)}}, + {{UINT32_C(0x6135B7E2), UINT32_C(0x8CCDF71C), UINT32_C(0xAFB6AD6B), + UINT32_C(0x91F1E33E), UINT32_C(0xDB0CFEDF), UINT32_C(0xC452F439), + UINT32_C(0xC05B06D4), UINT32_C(0x15724711)}, + {UINT32_C(0xA3BC1277), UINT32_C(0x5FEE0E0E), UINT32_C(0x8D8BA081), + UINT32_C(0xD6847FAD), UINT32_C(0x0D4C8DDD), UINT32_C(0x8B02666C), + UINT32_C(0xC35559DB), UINT32_C(0x149E5009)}}, + {{UINT32_C(0x5461D9CA), UINT32_C(0xB4D0D2C9), UINT32_C(0xCE0A3973), + UINT32_C(0xFE7993B6), UINT32_C(0xD6032E95), UINT32_C(0x42B2A500), + UINT32_C(0x217131C6), UINT32_C(0x4DEEE35A)}, + {UINT32_C(0xFFE7C2EB), UINT32_C(0x94E65C8C), UINT32_C(0xB19D4B4A), + UINT32_C(0x0DAD7785), UINT32_C(0x925613F9), UINT32_C(0xEEBA6794), + UINT32_C(0xE30494CB), UINT32_C(0x6AF45BBE)}}, + {{UINT32_C(0x32F43F67), UINT32_C(0x41352A61), UINT32_C(0x48F886D3), + UINT32_C(0x0D218DE9), UINT32_C(0x9B33B0F6), UINT32_C(0xCDFC0C55), + UINT32_C(0x6C5B90CD), UINT32_C(0x21FC6353)}, + {UINT32_C(0x7898AFF2), UINT32_C(0x5D8CA5AD), UINT32_C(0x24287C30), + UINT32_C(0xA743F80E), UINT32_C(0x9084A3A2), UINT32_C(0x4D037131), + UINT32_C(0xB5EFC978), UINT32_C(0x52041EED)}}, + {{UINT32_C(0xCC1BCFCB), UINT32_C(0x80B588EE), UINT32_C(0xE5CE0035), + UINT32_C(0xAD871A11), UINT32_C(0xF966D746), UINT32_C(0xF47224D0), + UINT32_C(0xB387FCC2), UINT32_C(0x5215A9D2)}, + {UINT32_C(0x695C02AF), UINT32_C(0xC54EB2E7), UINT32_C(0xDFC8493D), + UINT32_C(0x36FD06BC), UINT32_C(0x98CE7C76), UINT32_C(0x1CE8A9AA), + UINT32_C(0x644D398B), UINT32_C(0x058DFCBF)}}, + {{UINT32_C(0x5BB81464), UINT32_C(0xCD7E67DC), UINT32_C(0x047A7789), + UINT32_C(0xE7A19301), UINT32_C(0x573E837B), UINT32_C(0xCCC31EE5), + UINT32_C(0xAF7703D5), UINT32_C(0x25EE99AF)}, + {UINT32_C(0xDDB3E807), UINT32_C(0x34FDD6DA), UINT32_C(0x109092DD), + UINT32_C(0x273D8288), UINT32_C(0xB7357633), UINT32_C(0xF8F2464F), + UINT32_C(0xCCAA31D5), UINT32_C(0x26B2CBAD)}}, + {{UINT32_C(0xF707F9F7), UINT32_C(0xBA9CFEDE), UINT32_C(0xAC4975FB), + UINT32_C(0xA9A6896C), UINT32_C(0xBB1C35E4), UINT32_C(0x62135D9D), + UINT32_C(0xCBA133D2), UINT32_C(0x13AE840F)}, + {UINT32_C(0x4C2BA3A9), UINT32_C(0x6ABF3913), UINT32_C(0x6D8A62C1), + UINT32_C(0xE4D8508A), UINT32_C(0x66D96607), UINT32_C(0xF2565354), + UINT32_C(0xB6CABAE8), UINT32_C(0x5C368CCE)}}, + {{UINT32_C(0x8B3999BB), UINT32_C(0x0C3B52E8), UINT32_C(0xEF691871), + UINT32_C(0xB752E28F), UINT32_C(0xF17D0D2D), UINT32_C(0xA0460ABC), + UINT32_C(0xB7741F2C), UINT32_C(0x7DDCE3C1)}, + {UINT32_C(0x3673000F), UINT32_C(0x076A6BAB), UINT32_C(0x425E8A9D), + UINT32_C(0xCDB1CD2B), UINT32_C(0x2606EAB5), UINT32_C(0x357FCFFF), + UINT32_C(0x035DE7B4), UINT32_C(0x308644F8)}}, + {{UINT32_C(0x6D6FF45E), UINT32_C(0xBA64A127), UINT32_C(0x6B0C3CEF), + UINT32_C(0x1F52B6AE), UINT32_C(0xCBF496CB), UINT32_C(0x91295179), + UINT32_C(0xA1B12BE4), UINT32_C(0x2B986FAD)}, + {UINT32_C(0x44DBAF57), UINT32_C(0x243D2366), UINT32_C(0x346E88C2), + UINT32_C(0x48E22BBA), UINT32_C(0x8BBAFA0D), UINT32_C(0xCDFB7957), + UINT32_C(0x0D70670E), UINT32_C(0x094ED36E)}}, + {{UINT32_C(0xA0D60407), UINT32_C(0x2BAD1539), UINT32_C(0x6E744111), + UINT32_C(0xC1A9286E), UINT32_C(0x81A6DCAA), UINT32_C(0x6D08C0DB), + UINT32_C(0x80AFB34F), UINT32_C(0x108F35EC)}, + {UINT32_C(0x1E3E34AE), UINT32_C(0xBE79A6E3), UINT32_C(0x16D524E5), + UINT32_C(0x206EAA28), UINT32_C(0x344ABA64), UINT32_C(0x563B6E1C), + UINT32_C(0x3207CA68), UINT32_C(0x6C362A61)}}, + {{UINT32_C(0xEF9A9A0F), UINT32_C(0x04D8145B), UINT32_C(0xA15B6247), + UINT32_C(0x8B57559B), UINT32_C(0x303AFBF3), UINT32_C(0x72D53570), + UINT32_C(0xD6DB5736), UINT32_C(0x01C36B41)}, + {UINT32_C(0x1173B5FA), UINT32_C(0x94D583C9), UINT32_C(0x013C8AAA), + UINT32_C(0x71F8E12D), UINT32_C(0xF29CB838), UINT32_C(0xA4B5A532), + UINT32_C(0x7CE4EBA4), UINT32_C(0x4B179700)}}, + {{UINT32_C(0x0CE86FC3), UINT32_C(0x69CFA7B0), UINT32_C(0xD60E076C), + UINT32_C(0x3705D7C0), UINT32_C(0xB1091E10), UINT32_C(0xB1A1464A), + UINT32_C(0x7FE80950), UINT32_C(0x097945A9)}, + {UINT32_C(0x9AA381E3), UINT32_C(0xD9C71A95), UINT32_C(0xA410FF56), + UINT32_C(0x2A929073), UINT32_C(0xF0FEB121), UINT32_C(0x79EF8353), + UINT32_C(0x5F3107E5), UINT32_C(0x1437C4B0)}}, + {{UINT32_C(0x621DB2E5), UINT32_C(0xC5128C8B), UINT32_C(0x51A9499A), + UINT32_C(0x4E9C9B2E), UINT32_C(0xD8CD7594), UINT32_C(0x11535880), + UINT32_C(0xB0697C07), UINT32_C(0x35A26F59)}, + {UINT32_C(0xC43B624E), UINT32_C(0xAB3F4B75), UINT32_C(0xB8E03E6B), + UINT32_C(0x69F82105), UINT32_C(0xFB04E036), UINT32_C(0xFB268288), + UINT32_C(0xA0BDB41C), UINT32_C(0x6A5E6BD3)}}, + {{UINT32_C(0xC8082916), UINT32_C(0x8C716A1A), UINT32_C(0x4592472C), + UINT32_C(0xB1D1B152), UINT32_C(0x3AB6938A), UINT32_C(0x63657A6D), + UINT32_C(0xF03214AE), UINT32_C(0x44882EB6)}, + {UINT32_C(0xC615AF7D), UINT32_C(0x19575B8A), UINT32_C(0x35EE3D98), + UINT32_C(0x14D740C1), UINT32_C(0x57768D2D), UINT32_C(0xBC478E89), + UINT32_C(0x13FC5E4C), UINT32_C(0x30CC8FA2)}}, + {{UINT32_C(0x4EBE1E7C), UINT32_C(0x705607C5), UINT32_C(0x284EDA2B), + UINT32_C(0x631E5B88), UINT32_C(0x07F54DDB), UINT32_C(0x07E9E39C), + UINT32_C(0x8DCF6BC5), UINT32_C(0x4E554D88)}, + {UINT32_C(0x0CBAB0FE), UINT32_C(0x12E9FB20), UINT32_C(0xBA5E007F), + UINT32_C(0x6F3BC7CE), UINT32_C(0xBC871DF6), UINT32_C(0xA770BA1D), + UINT32_C(0xFE01142C), UINT32_C(0x541AA4C6)}}, + }, + { + {{UINT32_C(0xF2412EC7), UINT32_C(0xBFE26700), UINT32_C(0xCFE96AF4), + UINT32_C(0x0E975796), UINT32_C(0xDD6B04F7), UINT32_C(0x7D30BF7C), + UINT32_C(0xF1D8FCE4), UINT32_C(0x5421925D)}, + {UINT32_C(0xEC709107), UINT32_C(0x1CF5E9F5), UINT32_C(0xB4580AA9), + UINT32_C(0x124FCFC2), UINT32_C(0x67A835B3), UINT32_C(0x02F7012B), + UINT32_C(0x47C0760F), UINT32_C(0x753FE01B)}}, + {{UINT32_C(0xB1D2A896), UINT32_C(0x82FD5D47), UINT32_C(0x54E75DDB), + UINT32_C(0x7EABC175), UINT32_C(0x1AB080BC), UINT32_C(0x724FC3A8), + UINT32_C(0xA75C31DD), UINT32_C(0x363D6016)}, + {UINT32_C(0x863F308F), UINT32_C(0x5D465FF2), UINT32_C(0xE515ADCB), + UINT32_C(0x9EC70664), UINT32_C(0xB3BC206A), UINT32_C(0x4BD7A1A2), + UINT32_C(0x4A167D34), UINT32_C(0x2022576C)}}, + {{UINT32_C(0x5CD6AC65), UINT32_C(0xF5AC3451), UINT32_C(0x5839F554), + UINT32_C(0x7629731E), UINT32_C(0x93545A60), UINT32_C(0xA3260AE3), + UINT32_C(0xA7AD1979), UINT32_C(0x49D190E8)}, + {UINT32_C(0xF0B35045), UINT32_C(0x5AA8492F), UINT32_C(0x2584E651), + UINT32_C(0x4A5FAB7B), UINT32_C(0x395E2AAE), UINT32_C(0x5A05420E), + UINT32_C(0x547B4038), UINT32_C(0x30613C78)}}, + {{UINT32_C(0xF9DAE7E6), UINT32_C(0x47E1C59D), UINT32_C(0x247A5A9D), + UINT32_C(0x8D68839B), UINT32_C(0xC1A80D5E), UINT32_C(0x663B5977), + UINT32_C(0x40D8CF32), UINT32_C(0x5E51F872)}, + {UINT32_C(0xECE49494), UINT32_C(0x88ADBF9E), UINT32_C(0x1792BAE8), + UINT32_C(0x40B4AC5C), UINT32_C(0x9A1B3314), UINT32_C(0x278200D1), + UINT32_C(0xD9F83584), UINT32_C(0x7D15320E)}}, + {{UINT32_C(0xEAF2BFF8), UINT32_C(0xFE6DAA74), UINT32_C(0xC156AA6B), + UINT32_C(0x6E4EE4C0), UINT32_C(0xD0F4E7D5), UINT32_C(0xD9310FF8), + UINT32_C(0x7BB0C42D), UINT32_C(0x552EEF9E)}, + {UINT32_C(0xFDC69E1A), UINT32_C(0x323FF6F1), UINT32_C(0x41D79365), + UINT32_C(0x00FA66B7), UINT32_C(0xA96B22B4), UINT32_C(0x0006B16E), + UINT32_C(0xD20F07BE), UINT32_C(0x71BBC653)}}, + {{UINT32_C(0xA440FA1C), UINT32_C(0x89A7B7EE), UINT32_C(0x757CD658), + UINT32_C(0x52BB5278), UINT32_C(0xB0CDDEA4), UINT32_C(0xC5906F4B), + UINT32_C(0x5DE2D8DA), UINT32_C(0x66AAAFEE)}, + {UINT32_C(0x53B6E226), UINT32_C(0x4D5E016A), UINT32_C(0x1993A1D7), + UINT32_C(0xA2F73DC6), UINT32_C(0xA09DD554), UINT32_C(0x7CDD4C1D), + UINT32_C(0xAB416627), UINT32_C(0x6F723079)}}, + {{UINT32_C(0xC4E5C4AF), UINT32_C(0xE641639E), UINT32_C(0x371CC648), + UINT32_C(0x8BC6100D), UINT32_C(0x9B216E8A), UINT32_C(0x7BD161B1), + UINT32_C(0xF810DB32), UINT32_C(0x58098AEB)}, + {UINT32_C(0x5AD92372), UINT32_C(0xEE52BB46), UINT32_C(0xEEF938CA), + UINT32_C(0x4B2C48E1), UINT32_C(0xAB43A5D0), UINT32_C(0xE8FDE4D6), + UINT32_C(0xA5284C83), UINT32_C(0x459274CD)}}, + {{UINT32_C(0xD015095D), UINT32_C(0xA98925B0), UINT32_C(0x4611A1A5), + UINT32_C(0xC8969F5F), UINT32_C(0x2CE4663B), UINT32_C(0xBDDCD62F), + UINT32_C(0xA076C8BE), UINT32_C(0x1C9D9007)}, + {UINT32_C(0x749F7BE5), UINT32_C(0xE8DE8890), UINT32_C(0xFF208E75), + UINT32_C(0xC9E455E7), UINT32_C(0x8F5FAC9A), UINT32_C(0xDCEE17A9), + UINT32_C(0x68A3A666), UINT32_C(0x776B72D3)}}, + {{UINT32_C(0xFEE0E89A), UINT32_C(0x28C7D648), UINT32_C(0x463AF60D), + UINT32_C(0x621B370F), UINT32_C(0x5ADC8ACD), UINT32_C(0x9DC1548E), + UINT32_C(0xA0B49504), UINT32_C(0x48032ACF)}, + {UINT32_C(0x85E992D5), UINT32_C(0x146C6EAC), UINT32_C(0x5CB491E0), + UINT32_C(0x5A2CB577), UINT32_C(0x454C120A), UINT32_C(0x669DD6D4), + UINT32_C(0x98203C39), UINT32_C(0x3431AB33)}}, + {{UINT32_C(0x9DE017BF), UINT32_C(0xE8761503), UINT32_C(0xB60AE61F), + UINT32_C(0xAB117D2F), UINT32_C(0x827937FF), UINT32_C(0x0846463F), + UINT32_C(0x6BD89C65), UINT32_C(0x45E6BD40)}, + {UINT32_C(0xA613BDB8), UINT32_C(0x3160AD67), UINT32_C(0xB8714A49), + UINT32_C(0xBD5266F3), UINT32_C(0x51A233E4), UINT32_C(0xF7D29C47), + UINT32_C(0x4DE6A90C), UINT32_C(0x6887B48D)}}, + {{UINT32_C(0xDFDE1EF8), UINT32_C(0x087290A5), UINT32_C(0xA166950A), + UINT32_C(0xC70CCB52), UINT32_C(0x4A170AAE), UINT32_C(0xAA7F095B), + UINT32_C(0x5517CA0B), UINT32_C(0x15301F4E)}, + {UINT32_C(0x302F1F84), UINT32_C(0x3C86B787), UINT32_C(0x44676E39), + UINT32_C(0x95D41535), UINT32_C(0x9DF5F751), UINT32_C(0xBFEC4AE3), + UINT32_C(0x304923D3), UINT32_C(0x4A0D3986)}}, + {{UINT32_C(0x79B1390C), UINT32_C(0x70FAABA9), UINT32_C(0x62BA8B9E), + UINT32_C(0xA9067EEE), UINT32_C(0x1E17DF6F), UINT32_C(0x98789503), + UINT32_C(0x78D5B295), UINT32_C(0x5997E8AE)}, + {UINT32_C(0xAE0C6768), UINT32_C(0x31E13AD7), UINT32_C(0xEF17A7B1), + UINT32_C(0x23262F05), UINT32_C(0x49B7B101), UINT32_C(0x15803227), + UINT32_C(0x36B5BA70), UINT32_C(0x1234A9C5)}}, + {{UINT32_C(0x395793AC), UINT32_C(0xED65C961), UINT32_C(0xCCDE1C47), + UINT32_C(0x01157CD8), UINT32_C(0x1D5614DF), UINT32_C(0x0D0240B0), + UINT32_C(0x568E83A5), UINT32_C(0x0F0DA1EF)}, + {UINT32_C(0xC0B783C1), UINT32_C(0x57C90846), UINT32_C(0x81E2F613), + UINT32_C(0x4501048C), UINT32_C(0xA2709DC1), UINT32_C(0x03D8A69B), + UINT32_C(0xA97CCE0E), UINT32_C(0x06F365C4)}}, + {{UINT32_C(0x551580CD), UINT32_C(0xEAF23159), UINT32_C(0x053DD5EE), + UINT32_C(0x0F1E586A), UINT32_C(0x3CBCC3D5), UINT32_C(0xEB7A78DD), + UINT32_C(0xB014B850), UINT32_C(0x39BBC65A)}, + {UINT32_C(0x79B61AC7), UINT32_C(0x13DA4E85), UINT32_C(0x0DA59E37), + UINT32_C(0x33E78DCF), UINT32_C(0x2A643C4C), UINT32_C(0x4E65AF25), + UINT32_C(0x08869D03), UINT32_C(0x0DC38C97)}}, + {{UINT32_C(0xA3A38837), UINT32_C(0x2B648345), UINT32_C(0x905E261D), + UINT32_C(0x2FA6D8F7), UINT32_C(0x66A14946), UINT32_C(0xA23BD786), + UINT32_C(0x5E01CC9A), UINT32_C(0x781633FD)}, + {UINT32_C(0xE2C71AD1), UINT32_C(0xB1352709), UINT32_C(0x83A6D365), + UINT32_C(0x9D745052), UINT32_C(0x66567032), UINT32_C(0xD88B5CAE), + UINT32_C(0x53D875CA), UINT32_C(0x27FC40DF)}}, + {{UINT32_C(0x47F7554F), UINT32_C(0xB254E54C), UINT32_C(0xD708614D), + UINT32_C(0x33AD0ED6), UINT32_C(0x76CE908D), UINT32_C(0x830566A3), + UINT32_C(0xAA1ADD5C), UINT32_C(0x73DF94BD)}, + {UINT32_C(0x2DBDD8A3), UINT32_C(0x23EC411F), UINT32_C(0x3A979FDC), + UINT32_C(0x9BA47338), UINT32_C(0xC667E9F7), UINT32_C(0x56A2C27F), + UINT32_C(0x427E6BFB), UINT32_C(0x295647C7)}}, + }, + { + {{UINT32_C(0xF8E48C13), UINT32_C(0x9B5F4652), UINT32_C(0x9EEF4BA3), + UINT32_C(0xE979034F), UINT32_C(0x7CF5AF6E), UINT32_C(0xF95FD776), + UINT32_C(0x506CEB46), UINT32_C(0x4236C47E)}, + {UINT32_C(0xE08D2312), UINT32_C(0x0C02A249), UINT32_C(0xC056499A), + UINT32_C(0xAA5A38CC), UINT32_C(0x7C188B64), UINT32_C(0xCB26A8E2), + UINT32_C(0x0AE373D5), UINT32_C(0x38FB961D)}}, + {{UINT32_C(0x7B23470D), UINT32_C(0xEB179C9E), UINT32_C(0x1EBC44E7), + UINT32_C(0xAE70102F), UINT32_C(0x92E0EED0), UINT32_C(0x8184C1D4), + UINT32_C(0x5C21BF08), UINT32_C(0x32988281)}, + {UINT32_C(0x8180D11E), UINT32_C(0x46958967), UINT32_C(0x7FD7278D), + UINT32_C(0xEBD5518C), UINT32_C(0xAD2B74F7), UINT32_C(0xFCEB7F68), + UINT32_C(0xF9C7B6DA), UINT32_C(0x082D2011)}}, + {{UINT32_C(0xBBE0299D), UINT32_C(0x65D5AED1), UINT32_C(0xCF565A0A), + UINT32_C(0x0077F756), UINT32_C(0x344BB90D), UINT32_C(0xD44FCD6B), + UINT32_C(0x536F3F25), UINT32_C(0x6C2A19C0)}, + {UINT32_C(0xBB2A4D91), UINT32_C(0x32EE7439), UINT32_C(0xED9351E1), + UINT32_C(0xA97E677A), UINT32_C(0x413A16E0), UINT32_C(0x6752EDCF), + UINT32_C(0x1CE4FBE6), UINT32_C(0x5DE1B0C7)}}, + {{UINT32_C(0xD6009B36), UINT32_C(0x6C10DA15), UINT32_C(0xE5D8CFBE), + UINT32_C(0xAAD05F4F), UINT32_C(0x31D58B76), UINT32_C(0xD8BCE0B4), + UINT32_C(0x27B2811B), UINT32_C(0x08DE344E)}, + {UINT32_C(0x80B51E48), UINT32_C(0xD9A78AAE), UINT32_C(0x3E41C63A), + UINT32_C(0x1E1D0A81), UINT32_C(0x8076B3C7), UINT32_C(0x844376DE), + UINT32_C(0x5FDF9D53), UINT32_C(0x73F0D4A3)}}, + {{UINT32_C(0x558C7719), UINT32_C(0xF1532922), UINT32_C(0xA8221197), + UINT32_C(0x0F10188A), UINT32_C(0x5DDC1716), UINT32_C(0x51A97E5F), + UINT32_C(0x444789E7), UINT32_C(0x0F583A9B)}, + {UINT32_C(0x97D63B87), UINT32_C(0xAA8FC58D), UINT32_C(0x1CFDA59C), + UINT32_C(0xA5AF048B), UINT32_C(0x2DDB34EB), UINT32_C(0x2A4A0C5F), + UINT32_C(0x701E2E07), UINT32_C(0x66C0F0C7)}}, + {{UINT32_C(0x36BE2ABF), UINT32_C(0xC0BC88B8), UINT32_C(0x5C721B85), + UINT32_C(0x265CCE74), UINT32_C(0xD54299BA), UINT32_C(0x483EBB01), + UINT32_C(0x348ED89E), UINT32_C(0x18F11CBE)}, + {UINT32_C(0xE42129D4), UINT32_C(0x5E9AE7B9), UINT32_C(0x81DE5B77), + UINT32_C(0x6B3E9E8D), UINT32_C(0x7A14A74A), UINT32_C(0xB3ADBAC9), + UINT32_C(0x0003B266), UINT32_C(0x1B6CEBB2)}}, + {{UINT32_C(0x15EB200E), UINT32_C(0xD4D4DD10), UINT32_C(0xFB87C57B), + UINT32_C(0xEEAEA4C6), UINT32_C(0x72FF6321), UINT32_C(0x48F0B957), + UINT32_C(0xB782B01D), UINT32_C(0x187C4B75)}, + {UINT32_C(0xE9B4D622), UINT32_C(0x3DC1AACD), UINT32_C(0x3F4ED519), + UINT32_C(0x0358418E), UINT32_C(0x773D019C), UINT32_C(0x981A24F8), + UINT32_C(0x3DB0B4F4), UINT32_C(0x6643CA91)}}, + {{UINT32_C(0xD47670E3), UINT32_C(0xE3254F4B), UINT32_C(0x30B1DDE9), + UINT32_C(0x98226125), UINT32_C(0xDA8AF160), UINT32_C(0x61EB6C86), + UINT32_C(0x18363269), UINT32_C(0x725C7716)}, + {UINT32_C(0x02F62462), UINT32_C(0xB051DC9F), UINT32_C(0x00AC5531), + UINT32_C(0xFF8C9EDF), UINT32_C(0x962A92A3), UINT32_C(0x3909C79B), + UINT32_C(0x27790237), UINT32_C(0x25C90D93)}}, + {{UINT32_C(0x88ADC475), UINT32_C(0x0A5DF2CC), UINT32_C(0xE5D27D0A), + UINT32_C(0x48D26967), UINT32_C(0x359FF194), UINT32_C(0x21D5F616), + UINT32_C(0x89977CE2), UINT32_C(0x38ACD141)}, + {UINT32_C(0xFDAA8ACB), UINT32_C(0x39B9BD92), UINT32_C(0x035B62D0), + UINT32_C(0xDB157DF2), UINT32_C(0xB7D252D9), UINT32_C(0x4E33386E), + UINT32_C(0xCF196258), UINT32_C(0x6BD2E33F)}}, + {{UINT32_C(0xCE8F10C5), UINT32_C(0xE0806297), UINT32_C(0x8A14B746), + UINT32_C(0x446AFD6D), UINT32_C(0xBF566190), UINT32_C(0xD7931F29), + UINT32_C(0x86FDB72A), UINT32_C(0x4D9CFBFA)}, + {UINT32_C(0x95009F63), UINT32_C(0x77528851), UINT32_C(0x34C0FF45), + UINT32_C(0x5FE50134), UINT32_C(0x6E134B81), UINT32_C(0xC38CABBB), + UINT32_C(0xE36DB037), UINT32_C(0x2E60B277)}}, + {{UINT32_C(0x57184CA5), UINT32_C(0xA614CF67), UINT32_C(0x25BE01E3), + UINT32_C(0x6CBD8D63), UINT32_C(0xA0030BE3), UINT32_C(0xE313EE8D), + UINT32_C(0x2B1E7C60), UINT32_C(0x69AF0399)}, + {UINT32_C(0x50423F30), UINT32_C(0x519ABFBB), UINT32_C(0x486B9519), + UINT32_C(0x200111FF), UINT32_C(0x3351F692), UINT32_C(0x6FF93CCB), + UINT32_C(0x3ED9BE71), UINT32_C(0x32EB3E54)}}, + {{UINT32_C(0x54052EBD), UINT32_C(0x0851ACB9), UINT32_C(0x6D2336D7), + UINT32_C(0x3A389B7B), UINT32_C(0x17C6ACD9), UINT32_C(0x50A87925), + UINT32_C(0xB807D9B1), UINT32_C(0x031FE845)}, + {UINT32_C(0xE22F7492), UINT32_C(0xA348BB01), UINT32_C(0x05F39661), + UINT32_C(0x9547ED36), UINT32_C(0x68EC4AC2), UINT32_C(0x97DF6756), + UINT32_C(0x85B7F81B), UINT32_C(0x5836FEFE)}}, + {{UINT32_C(0x5F0B2ACB), UINT32_C(0x4E4869A6), UINT32_C(0xDEC46001), + UINT32_C(0xC4798F3F), UINT32_C(0x00903474), UINT32_C(0x281A4ED6), + UINT32_C(0xEFB9AABD), UINT32_C(0x04F22E9D)}, + {UINT32_C(0xFAA721A4), UINT32_C(0x2AC92264), UINT32_C(0x276F8041), + UINT32_C(0xBCE2FF0B), UINT32_C(0xE4943926), UINT32_C(0x5F605607), + UINT32_C(0x55506DF7), UINT32_C(0x388C5FAB)}}, + {{UINT32_C(0xAB5687E2), UINT32_C(0xFF104F6D), UINT32_C(0x3B2D0245), + UINT32_C(0x1B6DAFE9), UINT32_C(0x81B2EC4B), UINT32_C(0x6405C026), + UINT32_C(0xF489EBBC), UINT32_C(0x2B7676DA)}, + {UINT32_C(0x6DA1F57A), UINT32_C(0xBAA158F0), UINT32_C(0x27A8457F), + UINT32_C(0x9CB044AD), UINT32_C(0xA3BBD6C9), UINT32_C(0xC23737A5), + UINT32_C(0x1D2267E1), UINT32_C(0x71FB5B47)}}, + {{UINT32_C(0xD14F56E4), UINT32_C(0x779BD825), UINT32_C(0x08396F23), + UINT32_C(0xD7E672A0), UINT32_C(0xD40BA6EE), UINT32_C(0x23FE3FC0), + UINT32_C(0x3B56A3AB), UINT32_C(0x41E749E7)}, + {UINT32_C(0x72042F67), UINT32_C(0xD19471CE), UINT32_C(0x4989D4D7), + UINT32_C(0x8A686DA7), UINT32_C(0x4FA09BC9), UINT32_C(0x52A709C6), + UINT32_C(0xB3B6AA64), UINT32_C(0x1DC21162)}}, + {{UINT32_C(0xF9B3BD1D), UINT32_C(0x62C9838B), UINT32_C(0x0CE6384C), + UINT32_C(0x1EE59E5A), UINT32_C(0xECE8CC7F), UINT32_C(0xA9F5ABF6), + UINT32_C(0x80BDDA83), UINT32_C(0x1961D80F)}, + {UINT32_C(0xCA406FB1), UINT32_C(0x7A40880C), UINT32_C(0xDFBCE2E4), + UINT32_C(0x5035D307), UINT32_C(0x3D637299), UINT32_C(0x590259E0), + UINT32_C(0xD6C34E05), UINT32_C(0x1607AC9F)}}, + }, + { + {{UINT32_C(0x9D818B72), UINT32_C(0x4ABC2710), UINT32_C(0x092607B7), + UINT32_C(0x2496CEA6), UINT32_C(0x055C4EC8), UINT32_C(0xFB1087E1), + UINT32_C(0x258ADC7D), UINT32_C(0x50A30C6A)}, + {UINT32_C(0x0FF502E3), UINT32_C(0xAF4EB6B3), UINT32_C(0x190607AB), + UINT32_C(0x5D5D76AD), UINT32_C(0x34482C13), UINT32_C(0xC9C9B711), + UINT32_C(0x42213696), UINT32_C(0x574A9718)}}, + {{UINT32_C(0x7018FC70), UINT32_C(0x7C90FAFD), UINT32_C(0x2B83291C), + UINT32_C(0x36A04559), UINT32_C(0x40D1B175), UINT32_C(0x6120B51E), + UINT32_C(0x3DCF9606), UINT32_C(0x45F10B20)}, + {UINT32_C(0xF20C5636), UINT32_C(0x3C6A9EFF), UINT32_C(0xFFBBC648), + UINT32_C(0xB2768BA3), UINT32_C(0xB523B36C), UINT32_C(0x1C9DF90A), + UINT32_C(0xD6FF34ED), UINT32_C(0x4148BF06)}}, + {{UINT32_C(0x3B5F9492), UINT32_C(0x3D29821A), UINT32_C(0x90B24561), + UINT32_C(0xAE12C782), UINT32_C(0x8A3BDC5F), UINT32_C(0xEF6FB277), + UINT32_C(0xAC3BD74E), UINT32_C(0x6034BF3B)}, + {UINT32_C(0x4ACB6F85), UINT32_C(0x131D57CD), UINT32_C(0x3BE79B31), + UINT32_C(0xDED1C433), UINT32_C(0x78A896B8), UINT32_C(0xB0913489), + UINT32_C(0xB287862C), UINT32_C(0x1247C0B7)}}, + {{UINT32_C(0x7C494054), UINT32_C(0xEB642893), UINT32_C(0x22142D26), + UINT32_C(0x79227930), UINT32_C(0x943E8398), UINT32_C(0x8F1C8371), + UINT32_C(0x60886DB7), UINT32_C(0x583C7AEF)}, + {UINT32_C(0x3A12EE0E), UINT32_C(0xAFE46022), UINT32_C(0xB6CB8685), + UINT32_C(0xE9C9253A), UINT32_C(0x6316A4C6), UINT32_C(0x5334F9DD), + UINT32_C(0xE6F1DEE9), UINT32_C(0x4E2F13D8)}}, + {{UINT32_C(0xB37D8BA5), UINT32_C(0x7499A5B4), UINT32_C(0x1C9BCDE2), + UINT32_C(0xA12AA637), UINT32_C(0xBFD6AE86), UINT32_C(0xCC99471D), + UINT32_C(0x92048D63), UINT32_C(0x09966378)}, + {UINT32_C(0x552E71A3), UINT32_C(0x42CBFA9D), UINT32_C(0x675C1716), + UINT32_C(0x84A8B153), UINT32_C(0x4CF00A7D), UINT32_C(0xB9C07C0E), + UINT32_C(0x0DA504DB), UINT32_C(0x32E2322B)}}, + {{UINT32_C(0xE671EE59), UINT32_C(0x569F581F), UINT32_C(0x422E86C7), + UINT32_C(0x293522D7), UINT32_C(0x15DCEF10), UINT32_C(0x5E4CEA7E), + UINT32_C(0x483C0FE3), UINT32_C(0x67C8A9FC)}, + {UINT32_C(0x47B79284), UINT32_C(0x4DE5AC09), UINT32_C(0x025016BA), + UINT32_C(0x22AB8FBD), UINT32_C(0x2A099B37), UINT32_C(0x51318C23), + UINT32_C(0x49E06623), UINT32_C(0x542EA0FA)}}, + {{UINT32_C(0x28909F31), UINT32_C(0xDD240F64), UINT32_C(0x101B7F01), + UINT32_C(0x46B66F9E), UINT32_C(0x20481C3F), UINT32_C(0x788C29CA), + UINT32_C(0xCA5D5182), UINT32_C(0x3218A509)}, + {UINT32_C(0x63E9A2B9), UINT32_C(0x64BCC7AD), UINT32_C(0xADDF5C0B), + UINT32_C(0x3D213CA2), UINT32_C(0x9960D650), UINT32_C(0x6D93ED4C), + UINT32_C(0x284EE5F3), UINT32_C(0x3F13DB22)}}, + {{UINT32_C(0x6697E0D1), UINT32_C(0x5B678C3A), UINT32_C(0x16D9D878), + UINT32_C(0x25A171F4), UINT32_C(0xFAEC362B), UINT32_C(0xC20A6D80), + UINT32_C(0xC512EA4B), UINT32_C(0x1BB3F14C)}, + {UINT32_C(0x2AE35FA5), UINT32_C(0xECE5313B), UINT32_C(0xBBD76B87), + UINT32_C(0xE390A01F), UINT32_C(0x882DA3FC), UINT32_C(0xC78EA4C5), + UINT32_C(0x42086A77), UINT32_C(0x771BCDAE)}}, + {{UINT32_C(0x565802E9), UINT32_C(0x8E9E3C8B), UINT32_C(0x53FA1BE7), + UINT32_C(0xC37A7B35), UINT32_C(0x4408FB77), UINT32_C(0x9D2F1A26), + UINT32_C(0xFF308B7B), UINT32_C(0x0B3ECE36)}, + {UINT32_C(0x1F30FC37), UINT32_C(0x8FB35B36), UINT32_C(0x83E1A3C9), + UINT32_C(0x463B44E2), UINT32_C(0x3402233A), UINT32_C(0x7218F09F), + UINT32_C(0xFC9A6990), UINT32_C(0x1519638A)}}, + {{UINT32_C(0x8EAAC478), UINT32_C(0x51FB3E5D), UINT32_C(0x760ED4EC), + UINT32_C(0x620E4826), UINT32_C(0x1D865577), UINT32_C(0x46FC5B1F), + UINT32_C(0x5244A538), UINT32_C(0x15EF2AD9)}, + {UINT32_C(0x4BF382BD), UINT32_C(0x8D7E477C), UINT32_C(0x02A5C9EE), + UINT32_C(0xCBF170C9), UINT32_C(0x4AFB0EC1), UINT32_C(0xB91A870C), + UINT32_C(0x69C31425), UINT32_C(0x052FFC51)}}, + {{UINT32_C(0x2018D066), UINT32_C(0x1FD43746), UINT32_C(0x4C67FC35), + UINT32_C(0xBC501517), UINT32_C(0xBC990EB6), UINT32_C(0xE65BC2FB), + UINT32_C(0x73F87F92), UINT32_C(0x538CA6F9)}, + {UINT32_C(0x8352B03F), UINT32_C(0x42FBDAE0), UINT32_C(0x99A4C9B9), + UINT32_C(0xF265B1E0), UINT32_C(0x185CA070), UINT32_C(0x6E3EAB2F), + UINT32_C(0x37D0A2C1), UINT32_C(0x6E6F4F7D)}}, + {{UINT32_C(0xC2D5D73E), UINT32_C(0x9B20D8EE), UINT32_C(0x75844C15), + UINT32_C(0x190521AE), UINT32_C(0x26AD08FE), UINT32_C(0x67663AC4), + UINT32_C(0xF984EC06), UINT32_C(0x67AEEFEF)}, + {UINT32_C(0xCBDD87EF), UINT32_C(0x61C71142), UINT32_C(0x63396E3B), + UINT32_C(0x0FA4995B), UINT32_C(0x85C193B0), UINT32_C(0x3196E551), + UINT32_C(0xDACB3A3D), UINT32_C(0x36C0A2A8)}}, + {{UINT32_C(0x178A1115), UINT32_C(0xEAB89FDC), UINT32_C(0xD7C31303), + UINT32_C(0xC7B764D8), UINT32_C(0x90203755), UINT32_C(0xA5B2D6FB), + UINT32_C(0xD5F8AEEE), UINT32_C(0x3C360BF9)}, + {UINT32_C(0x02F1CC3C), UINT32_C(0x8DFDCD05), UINT32_C(0x64E5269E), + UINT32_C(0x7F8A64D2), UINT32_C(0xEA13FFD7), UINT32_C(0xA36196EC), + UINT32_C(0x77E3839F), UINT32_C(0x35E22415)}}, + {{UINT32_C(0xE22E0C52), UINT32_C(0x29E7AB0B), UINT32_C(0x8B27DEDA), + UINT32_C(0x68BF32C7), UINT32_C(0xDC7971AE), UINT32_C(0x52A762A2), + UINT32_C(0x18B0CDCC), UINT32_C(0x4CA43487)}, + {UINT32_C(0x3FCEAF73), UINT32_C(0xED429DA1), UINT32_C(0x06718D19), + UINT32_C(0x49396E6F), UINT32_C(0x5BB3301C), UINT32_C(0xDECB9337), + UINT32_C(0x0FF489B1), UINT32_C(0x4B7723C1)}}, + {{UINT32_C(0xABEE6B9B), UINT32_C(0xAE321F09), UINT32_C(0x37318F60), + UINT32_C(0xF251BF4D), UINT32_C(0xB63DC269), UINT32_C(0xB0A8A251), + UINT32_C(0x71817963), UINT32_C(0x514A25FC)}, + {UINT32_C(0x55C9B2E9), UINT32_C(0x518F5747), UINT32_C(0x1C9B4845), + UINT32_C(0x3E56CC3E), UINT32_C(0x283AE1FA), UINT32_C(0xBDFD637A), + UINT32_C(0xC3DE778E), UINT32_C(0x419BA4B4)}}, + {{UINT32_C(0xBCD2EB74), UINT32_C(0xC7F18E93), UINT32_C(0xFC61FB42), + UINT32_C(0x171264C8), UINT32_C(0x85119033), UINT32_C(0x27282E76), + UINT32_C(0xD7DB91C7), UINT32_C(0x225006A4)}, + {UINT32_C(0x1ECF5024), UINT32_C(0x628E0F3C), UINT32_C(0x00859CDE), + UINT32_C(0xDC5111E0), UINT32_C(0x1F220711), UINT32_C(0x4AB1764F), + UINT32_C(0x70DDED3C), UINT32_C(0x7C6916F1)}}, + }, + { + {{UINT32_C(0x5F0CA58A), UINT32_C(0xF9FFE8FC), UINT32_C(0x22879EBB), + UINT32_C(0x09E34F30), UINT32_C(0xED7B0520), UINT32_C(0x648D6339), + UINT32_C(0x1AF5ECDC), UINT32_C(0x0D6719D0)}, + {UINT32_C(0x0B8590E4), UINT32_C(0x2878714D), UINT32_C(0x90EC312B), + UINT32_C(0x827D04ED), UINT32_C(0x3B5767C3), UINT32_C(0xD415C8B4), + UINT32_C(0xC09FD18D), UINT32_C(0x4170F0AD)}}, + {{UINT32_C(0x3C601031), UINT32_C(0x9B649CFC), UINT32_C(0x636DDAE7), + UINT32_C(0x0478603A), UINT32_C(0x914E100A), UINT32_C(0xDC972DFA), + UINT32_C(0x091621AE), UINT32_C(0x519C55DF)}, + {UINT32_C(0xD4A9963D), UINT32_C(0x863046CB), UINT32_C(0x5ACF7C0C), + UINT32_C(0xDF16763C), UINT32_C(0xFF5468A4), UINT32_C(0x4999A93E), + UINT32_C(0x424074A5), UINT32_C(0x35543EFF)}}, + {{UINT32_C(0xDD33307C), UINT32_C(0x27B1DBFA), UINT32_C(0x927CA6F3), + UINT32_C(0xA0D04784), UINT32_C(0xA37CF855), UINT32_C(0xBD3EBC5E), + UINT32_C(0x49F5AA2C), UINT32_C(0x59D02EF5)}, + {UINT32_C(0xBDD57BF3), UINT32_C(0xCDABE86F), UINT32_C(0x37819D86), + UINT32_C(0x7B3ADD2F), UINT32_C(0x0413B7B0), UINT32_C(0x7B90BA15), + UINT32_C(0x6B99685B), UINT32_C(0x47071782)}}, + {{UINT32_C(0xEF0CE97F), UINT32_C(0xB7C3218E), UINT32_C(0x0898C79C), + UINT32_C(0xDAE3B56C), UINT32_C(0x0908877D), UINT32_C(0x6349D83D), + UINT32_C(0xC81E8C4E), UINT32_C(0x0970C6C0)}, + {UINT32_C(0xA47F426C), UINT32_C(0x0E45C4A7), UINT32_C(0x3FBB194E), + UINT32_C(0xAB000A59), UINT32_C(0x3A6DD13E), UINT32_C(0x570FBBA5), + UINT32_C(0xC8F44A57), UINT32_C(0x66045580)}}, + {{UINT32_C(0x12A72F7F), UINT32_C(0x5ABEB749), UINT32_C(0x7AE56F4D), + UINT32_C(0x15072A92), UINT32_C(0x222AB2C4), UINT32_C(0x1C77AE00), + UINT32_C(0x9AFE63DE), UINT32_C(0x591EAEC6)}, + {UINT32_C(0xDFD24304), UINT32_C(0xB51D41AF), UINT32_C(0xDFBCC096), + UINT32_C(0xDE28DF26), UINT32_C(0x38A20DA7), UINT32_C(0x02F046C8), + UINT32_C(0x1AE0A45B), UINT32_C(0x5EC3DBDC)}}, + {{UINT32_C(0x63DD86C2), UINT32_C(0x7C19BD75), UINT32_C(0x8D78A57B), + UINT32_C(0xDB119311), UINT32_C(0x23C5C4E7), UINT32_C(0xF48BB4FA), + UINT32_C(0x97DB0A05), UINT32_C(0x65514C1C)}, + {UINT32_C(0x43CAC49C), UINT32_C(0x1BC1F2F0), UINT32_C(0x2851B4BE), + UINT32_C(0x975FEB51), UINT32_C(0xDD60D530), UINT32_C(0x0E0A4633), + UINT32_C(0x09B1D2C6), UINT32_C(0x32BBBF14)}}, + {{UINT32_C(0xA670EAC0), UINT32_C(0x79124749), UINT32_C(0x31DD893C), + UINT32_C(0x504D89D5), UINT32_C(0xE0654D63), UINT32_C(0xDDCED74C), + UINT32_C(0xE2208707), UINT32_C(0x58956BE5)}, + {UINT32_C(0x437E7077), UINT32_C(0xBE6A3ECD), UINT32_C(0x574095C8), + UINT32_C(0xB8AB332D), UINT32_C(0x3869DA42), UINT32_C(0x4E79AC1C), + UINT32_C(0x68859F51), UINT32_C(0x79D4C3FB)}}, + {{UINT32_C(0x7936A831), UINT32_C(0x1E5FC1B9), UINT32_C(0xD74F1F41), + UINT32_C(0x1EA42ED2), UINT32_C(0xC4EA3228), UINT32_C(0x33D22EC1), + UINT32_C(0x729BEBFE), UINT32_C(0x5705333F)}, + {UINT32_C(0x64596076), UINT32_C(0xDBD1A67B), UINT32_C(0xFA65BA98), + UINT32_C(0x6BFF269D), UINT32_C(0x6C47E715), UINT32_C(0x8451A9C2), + UINT32_C(0x22898DB3), UINT32_C(0x243D679D)}}, + {{UINT32_C(0xB8323FD0), UINT32_C(0xE935D705), UINT32_C(0x6937E5CB), + UINT32_C(0xE2DA8845), UINT32_C(0x4A5EAE1E), UINT32_C(0x1C9DFFF8), + UINT32_C(0x45DF7A79), UINT32_C(0x796F0B95)}, + {UINT32_C(0x640DBA32), UINT32_C(0xC24D573F), UINT32_C(0x02E4B792), + UINT32_C(0x2B775217), UINT32_C(0x94D12C40), UINT32_C(0xD437EB63), + UINT32_C(0x4AD371F0), UINT32_C(0x6182AF6D)}}, + {{UINT32_C(0x41FC7551), UINT32_C(0x133EDA52), UINT32_C(0xE91714AF), + UINT32_C(0xA0088A2B), UINT32_C(0x5E0A73C0), UINT32_C(0xB41B9AC2), + UINT32_C(0x1D3B3953), UINT32_C(0x4808BB5A)}, + {UINT32_C(0x2B9AE648), UINT32_C(0xD875AA14), UINT32_C(0x2408244C), + UINT32_C(0x4F38C946), UINT32_C(0xFF051A87), UINT32_C(0x04B6B941), + UINT32_C(0x6DF48ECD), UINT32_C(0x1D5B0B9E)}}, + {{UINT32_C(0x169E757F), UINT32_C(0x27FD368A), UINT32_C(0x7B94D9DB), + UINT32_C(0x2ACB3560), UINT32_C(0x4D4C9B5F), UINT32_C(0x81903F4B), + UINT32_C(0x169B81DE), UINT32_C(0x641F806C)}, + {UINT32_C(0x9E957475), UINT32_C(0x574E9444), UINT32_C(0xC6C8EE52), + UINT32_C(0xE08814AE), UINT32_C(0x6C84FDDF), UINT32_C(0xD1AE71EC), + UINT32_C(0xFAA040D9), UINT32_C(0x44A56014)}}, + {{UINT32_C(0x75A48F60), UINT32_C(0x06DA6908), UINT32_C(0xBB2CD408), + UINT32_C(0x7BA6C9CB), UINT32_C(0x3A1BCBFF), UINT32_C(0x57D2D0FF), + UINT32_C(0x8928CE36), UINT32_C(0x186F1A8B)}, + {UINT32_C(0x7A40F877), UINT32_C(0x0FFD205B), UINT32_C(0x01AF68F7), + UINT32_C(0x2915BC8E), UINT32_C(0xC36A5FB1), UINT32_C(0x816AC4DF), + UINT32_C(0x2C9E1F7D), UINT32_C(0x609B0A87)}}, + {{UINT32_C(0xB97536FB), UINT32_C(0x4032AC5E), UINT32_C(0xA7C5EDB6), + UINT32_C(0x53E6FE68), UINT32_C(0x5F0DCBA1), UINT32_C(0x2F414930), + UINT32_C(0x2837E314), UINT32_C(0x20975256)}, + {UINT32_C(0x3C3C1D27), UINT32_C(0xDF5DC496), UINT32_C(0x71797C36), + UINT32_C(0x0DFDAAF3), UINT32_C(0xDA504E04), UINT32_C(0x5F3E9229), + UINT32_C(0x8C234246), UINT32_C(0x354EA88D)}}, + {{UINT32_C(0x0922D317), UINT32_C(0xAF6741C3), UINT32_C(0x9DF0A572), + UINT32_C(0x7429853B), UINT32_C(0x1DC207A8), UINT32_C(0x0EA1AE04), + UINT32_C(0x450075F5), UINT32_C(0x2C1DAA1C)}, + {UINT32_C(0x6ED729B4), UINT32_C(0x27C71F16), UINT32_C(0x53AB8EC0), + UINT32_C(0x785718A6), UINT32_C(0xA8465487), UINT32_C(0x1EEC7BBF), + UINT32_C(0x4C578BA9), UINT32_C(0x78DA9B04)}}, + {{UINT32_C(0xB3B707FA), UINT32_C(0xFF9ED65E), UINT32_C(0xF5D28D33), + UINT32_C(0xF8C8301F), UINT32_C(0xA65F5C0F), UINT32_C(0xB15D498F), + UINT32_C(0xB0EF2B89), UINT32_C(0x6DEF256D)}, + {UINT32_C(0x52184EF6), UINT32_C(0x0D40A6B2), UINT32_C(0x2BF06F5A), + UINT32_C(0xC702EBE5), UINT32_C(0x4BA041AA), UINT32_C(0x13E50E18), + UINT32_C(0x7EC4C784), UINT32_C(0x53552D88)}}, + {{UINT32_C(0xF28ABB3A), UINT32_C(0x2CD09B19), UINT32_C(0x724EDB9B), + UINT32_C(0x4F5C040F), UINT32_C(0xE0DCBD16), UINT32_C(0xD6820590), + UINT32_C(0x1B7155A3), UINT32_C(0x45D84DE9)}, + {UINT32_C(0xA251B1BA), UINT32_C(0x995BDD01), UINT32_C(0x37CAA4DC), + UINT32_C(0x607F9517), UINT32_C(0xA15D9674), UINT32_C(0x747FEA1C), + UINT32_C(0x73E97C97), UINT32_C(0x646C1876)}}, + }, + { + {{UINT32_C(0x6FAC1486), UINT32_C(0x1951682B), UINT32_C(0x4A4D14C5), + UINT32_C(0x8B578E1E), UINT32_C(0xB7384D42), UINT32_C(0x083FA101), + UINT32_C(0xED1C8A87), UINT32_C(0x13380CE9)}, + {UINT32_C(0x732A493B), UINT32_C(0xC7052ED8), UINT32_C(0xB32E3D69), + UINT32_C(0xD5FEF40F), UINT32_C(0x88833566), UINT32_C(0xA64ACE87), + UINT32_C(0x4177DC00), UINT32_C(0x6E36CFDB)}}, + {{UINT32_C(0xE742C3B4), UINT32_C(0xAA14E281), UINT32_C(0xEE5AF40A), + UINT32_C(0xB75E7B2A), UINT32_C(0x1616EFA2), UINT32_C(0x3FC5FF0B), + UINT32_C(0xAD763298), UINT32_C(0x090259B0)}, + {UINT32_C(0x38753438), UINT32_C(0x4105B57E), UINT32_C(0xCF2D8926), + UINT32_C(0x70ED1A00), UINT32_C(0x322F40BB), UINT32_C(0x78921395), + UINT32_C(0x67A3FF56), UINT32_C(0x3AEE8199)}}, + {{UINT32_C(0x11EA75FC), UINT32_C(0x88073D00), UINT32_C(0x06A4B4EB), + UINT32_C(0xD23D2796), UINT32_C(0xD85D3A6B), UINT32_C(0x1FD22F9E), + UINT32_C(0xAFB43B70), UINT32_C(0x6B5EA051)}, + {UINT32_C(0xD99BE576), UINT32_C(0x96C9C176), UINT32_C(0x4C47261E), + UINT32_C(0x85AC2B6C), UINT32_C(0x99A9C378), UINT32_C(0x27263959), + UINT32_C(0x8B5CABDA), UINT32_C(0x6D36E9FE)}}, + {{UINT32_C(0xA58F614C), UINT32_C(0xC9FC7661), UINT32_C(0x2E45AE73), + UINT32_C(0x82AA317D), UINT32_C(0xC8CB9CC7), UINT32_C(0xDCB1925F), + UINT32_C(0x27813205), UINT32_C(0x1341C1AA)}, + {UINT32_C(0x6CD478AB), UINT32_C(0xDD06745B), UINT32_C(0x1E28F6A3), + UINT32_C(0x0C2534B2), UINT32_C(0x9D27FE63), UINT32_C(0xE2183345), + UINT32_C(0x06466147), UINT32_C(0x7F1E2A33)}}, + {{UINT32_C(0x5AEE2471), UINT32_C(0x378D727E), UINT32_C(0xD47739B6), + UINT32_C(0xB718FC17), UINT32_C(0x4145E8EF), UINT32_C(0xDA27CB9B), + UINT32_C(0x0EF2AB20), UINT32_C(0x3F8AB1A3)}, + {UINT32_C(0xE16C0141), UINT32_C(0xA89ADD37), UINT32_C(0x59DF1C95), + UINT32_C(0x2127823B), UINT32_C(0xB7455CC2), UINT32_C(0x53F90B73), + UINT32_C(0x1183FBE5), UINT32_C(0x7F960586)}}, + {{UINT32_C(0xE77235C3), UINT32_C(0x56D0475A), UINT32_C(0xB18ED61A), + UINT32_C(0xED2907C5), UINT32_C(0x7D73F6F8), UINT32_C(0x2D02C4CB), + UINT32_C(0xC42E7AED), UINT32_C(0x35EF69B4)}, + {UINT32_C(0x31B7324A), UINT32_C(0x53A6120A), UINT32_C(0x59F1A395), + UINT32_C(0x982DD221), UINT32_C(0x835CFD94), UINT32_C(0x03ECA86F), + UINT32_C(0x73CA1BD5), UINT32_C(0x4CBA837D)}}, + {{UINT32_C(0x41B17E6D), UINT32_C(0x64F66D39), UINT32_C(0xCB14F3B3), + UINT32_C(0x3C869BF5), UINT32_C(0x28350EFA), UINT32_C(0x1EBA045A), + UINT32_C(0xC7CDEC47), UINT32_C(0x7ACFB882)}, + {UINT32_C(0x8FB3097B), UINT32_C(0x7ACFD28D), UINT32_C(0x62986426), + UINT32_C(0xDA397C31), UINT32_C(0x2A1A7A94), UINT32_C(0xD49F8421), + UINT32_C(0xFAB65156), UINT32_C(0x7B372E2D)}}, + {{UINT32_C(0x01D9DB0F), UINT32_C(0x3ADBDD07), UINT32_C(0x94FF0CFB), + UINT32_C(0x617521E6), UINT32_C(0x3F5BD583), UINT32_C(0x5BA5905C), + UINT32_C(0x78670CD1), UINT32_C(0x6F896033)}, + {UINT32_C(0xFB98EA11), UINT32_C(0x0A59C447), UINT32_C(0x653EDC59), + UINT32_C(0x59B918CC), UINT32_C(0x9F72C01E), UINT32_C(0x00BF4D2A), + UINT32_C(0x47DEE00F), UINT32_C(0x748455D1)}}, + {{UINT32_C(0x386E7491), UINT32_C(0xE371A7A8), UINT32_C(0x621A3484), + UINT32_C(0xF71711CC), UINT32_C(0xE0015C3B), UINT32_C(0x1568256E), + UINT32_C(0x7D3FFDE9), UINT32_C(0x5ACEF7A6)}, + {UINT32_C(0xB08E4219), UINT32_C(0x02ED70E5), UINT32_C(0x832AC3AA), + UINT32_C(0x7ECE1726), UINT32_C(0x951D1CA2), UINT32_C(0xC3C0D32B), + UINT32_C(0x38DECC59), UINT32_C(0x4C991664)}}, + {{UINT32_C(0x96EB21A4), UINT32_C(0xB99DF8BA), UINT32_C(0x2BBF8E6D), + UINT32_C(0xB88D25F4), UINT32_C(0x686DAA3C), UINT32_C(0x16B3E0B1), + UINT32_C(0x70D47C57), UINT32_C(0x11314561)}, + {UINT32_C(0x3338342D), UINT32_C(0x8DCDC3D1), UINT32_C(0x88E028A7), + UINT32_C(0xE6D39B01), UINT32_C(0x72855B5E), UINT32_C(0xB781F1ED), + UINT32_C(0xCC192572), UINT32_C(0x0E0D82F6)}}, + {{UINT32_C(0xCF1E20AA), UINT32_C(0xC86A8E5D), UINT32_C(0xF9AB96D5), + UINT32_C(0x1A87AEF3), UINT32_C(0xF3D19051), UINT32_C(0xA8941635), + UINT32_C(0x654FFF15), UINT32_C(0x67B1D0A2)}, + {UINT32_C(0x92862ACD), UINT32_C(0x266FD5ED), UINT32_C(0xD11DEEAC), + UINT32_C(0xB72587BE), UINT32_C(0xD09320AA), UINT32_C(0x5CF0D2E2), + UINT32_C(0x515E0277), UINT32_C(0x68456EBA)}}, + {{UINT32_C(0x771F64CA), UINT32_C(0x86A5461C), UINT32_C(0x48FF8D7A), + UINT32_C(0xB7A220B7), UINT32_C(0xD7A568D1), UINT32_C(0x9A0DD72A), + UINT32_C(0xF644D858), UINT32_C(0x18F5E1DC)}, + {UINT32_C(0x3E00364F), UINT32_C(0xB7AE1BC2), UINT32_C(0xCEE8D9F7), + UINT32_C(0xD7EA31F3), UINT32_C(0xDCDB883D), UINT32_C(0xD18DA30F), + UINT32_C(0xCBA00F48), UINT32_C(0x179CFCA5)}}, + {{UINT32_C(0x39E7860C), UINT32_C(0x496F2C01), UINT32_C(0x27F15EAF), + UINT32_C(0xACDF8B40), UINT32_C(0x687AC815), UINT32_C(0x8871966C), + UINT32_C(0x8DB8FDB5), UINT32_C(0x6228F1B5)}, + {UINT32_C(0xF30ECF2B), UINT32_C(0x8644656A), UINT32_C(0xAE1DEAFF), + UINT32_C(0x15576CC2), UINT32_C(0x697AB3FC), UINT32_C(0x93D86D56), + UINT32_C(0x811E3FF2), UINT32_C(0x3E4A428E)}}, + {{UINT32_C(0x91B9F5DF), UINT32_C(0xFB85DE3D), UINT32_C(0xB20A9C71), + UINT32_C(0xCDB595D4), UINT32_C(0xB44D671E), UINT32_C(0x55CB08F3), + UINT32_C(0xFCD7D5ED), UINT32_C(0x780FC2E5)}, + {UINT32_C(0x7F939366), UINT32_C(0x815AB41F), UINT32_C(0xECD52B20), + UINT32_C(0xA7597A02), UINT32_C(0x4648E3C5), UINT32_C(0x9BE078F0), + UINT32_C(0x17BD3DC2), UINT32_C(0x7A3E2179)}}, + {{UINT32_C(0x9D9E5E53), UINT32_C(0x22758C41), UINT32_C(0x9EF09FAE), + UINT32_C(0x44D675F4), UINT32_C(0x27159F97), UINT32_C(0x1AB7986D), + UINT32_C(0xB6B9465B), UINT32_C(0x72B3F02B)}, + {UINT32_C(0xFE56F578), UINT32_C(0xA372FAC7), UINT32_C(0xDA534F4A), + UINT32_C(0x33FA6479), UINT32_C(0xDF63BF2D), UINT32_C(0xB0003307), + UINT32_C(0xB80D0F64), UINT32_C(0x34D40B4D)}}, + {{UINT32_C(0x3D2B9FC2), UINT32_C(0x8A8929DC), UINT32_C(0x55EE75E5), + UINT32_C(0x7D12E86C), UINT32_C(0x92E1A870), UINT32_C(0xB3FE1AD3), + UINT32_C(0x729CFE4C), UINT32_C(0x27148C94)}, + {UINT32_C(0x18BA868B), UINT32_C(0x6A8C3B52), UINT32_C(0x7F038A9C), + UINT32_C(0xDD2006E4), UINT32_C(0xB7124908), UINT32_C(0x4606FA9E), + UINT32_C(0xF4940CB1), UINT32_C(0x434A8C07)}}, + }, + { + {{UINT32_C(0xF98B91EA), UINT32_C(0x15F36EBE), UINT32_C(0xC1ED17B1), + UINT32_C(0x94D802DE), UINT32_C(0x085D77F8), UINT32_C(0x3C45FA08), + UINT32_C(0x02FF571A), UINT32_C(0x0A30B3C3)}, + {UINT32_C(0x264C93D0), UINT32_C(0x70F5852D), UINT32_C(0x191AEE57), + UINT32_C(0x5E51BCAB), UINT32_C(0xFAD8E96E), UINT32_C(0xD5C14AE9), + UINT32_C(0xD4BC414B), UINT32_C(0x73B00534)}}, + {{UINT32_C(0x12AFF5E7), UINT32_C(0x21CF876B), UINT32_C(0xF75799A6), + UINT32_C(0x3E9F664C), UINT32_C(0x9A0E73CD), UINT32_C(0xC23B7D19), + UINT32_C(0x427EEA36), UINT32_C(0x77AAB691)}, + {UINT32_C(0x604EE854), UINT32_C(0x2E74F972), UINT32_C(0xF867C81A), + UINT32_C(0x8712C7A0), UINT32_C(0x953A4C56), UINT32_C(0x6085980F), + UINT32_C(0x0F7707E1), UINT32_C(0x2DB99707)}}, + {{UINT32_C(0x78BDB7A7), UINT32_C(0x5ECC087F), UINT32_C(0x04C693F2), + UINT32_C(0x43CC156C), UINT32_C(0x039BD7F1), UINT32_C(0x965067CF), + UINT32_C(0x6E3FAE2F), UINT32_C(0x72140E56)}, + {UINT32_C(0xE019DED1), UINT32_C(0x26452E4D), UINT32_C(0x2EDEF154), + UINT32_C(0x6F4C2349), UINT32_C(0x054DFC0F), UINT32_C(0xA7066D7F), + UINT32_C(0x3381AB44), UINT32_C(0x544E6F6D)}}, + {{UINT32_C(0x9214C791), UINT32_C(0x9B6E9469), UINT32_C(0x86938BDC), + UINT32_C(0xD74F9C55), UINT32_C(0xFC2928FD), UINT32_C(0x0F1527F6), + UINT32_C(0x63C3A053), UINT32_C(0x5B0FBF0F)}, + {UINT32_C(0xFC41FF10), UINT32_C(0xAC1F442C), UINT32_C(0x787B4932), + UINT32_C(0x34EF88EF), UINT32_C(0x316732AC), UINT32_C(0xF8120F08), + UINT32_C(0xA655DC4A), UINT32_C(0x7BCCF12C)}}, + {{UINT32_C(0xA6C7760E), UINT32_C(0x750DF97F), UINT32_C(0x609BF215), + UINT32_C(0xF1A0A827), UINT32_C(0x67FD04B4), UINT32_C(0x7348C1B4), + UINT32_C(0x615C8145), UINT32_C(0x6A581016)}, + {UINT32_C(0x9A11AAFC), UINT32_C(0x9DC01225), UINT32_C(0x3F2B0C8B), + UINT32_C(0x24F65B05), UINT32_C(0xDCB1B2A4), UINT32_C(0xA27CB8BF), + UINT32_C(0xE48C1A71), UINT32_C(0x3C44B811)}}, + {{UINT32_C(0xF780B295), UINT32_C(0xBC059AF2), UINT32_C(0x0B6B247D), + UINT32_C(0xDF58928C), UINT32_C(0x01903F3D), UINT32_C(0x224D4C3C), + UINT32_C(0x818EE0AC), UINT32_C(0x7152E120)}, + {UINT32_C(0x54BFF1BE), UINT32_C(0x6C8F4745), UINT32_C(0x431ADEF7), + UINT32_C(0x98A6C7EC), UINT32_C(0x91B2CFB6), UINT32_C(0xDCB6BB75), + UINT32_C(0x7E83A5BB), UINT32_C(0x145F6D39)}}, + {{UINT32_C(0x81D23BC1), UINT32_C(0x827C000C), UINT32_C(0x403956FC), + UINT32_C(0x5CDC1135), UINT32_C(0x3C751158), UINT32_C(0xD967A5B1), + UINT32_C(0x96201D7D), UINT32_C(0x52AF85BC)}, + {UINT32_C(0x644558F7), UINT32_C(0x522BC492), UINT32_C(0xED7A060D), + UINT32_C(0xF74A35AF), UINT32_C(0x4DC4619E), UINT32_C(0x10E5F9FD), + UINT32_C(0x324F60BB), UINT32_C(0x06071F1F)}}, + {{UINT32_C(0x65921C34), UINT32_C(0xC5FFD5EF), UINT32_C(0x302BAA5D), + UINT32_C(0x46CE1A69), UINT32_C(0x4E22FF1D), UINT32_C(0x89CC84EC), + UINT32_C(0x68131754), UINT32_C(0x16A481AE)}, + {UINT32_C(0xB89039F5), UINT32_C(0x2A06A156), UINT32_C(0xB3A95AB9), + UINT32_C(0x40B6401B), UINT32_C(0x313820C3), UINT32_C(0xFFCC53EB), + UINT32_C(0xEA959F76), UINT32_C(0x256B00E7)}}, + {{UINT32_C(0x54FBDD74), UINT32_C(0xCCE87FC9), UINT32_C(0xB23C6E1D), + UINT32_C(0xEC258542), UINT32_C(0x9E5E1928), UINT32_C(0x5BE392B4), + UINT32_C(0x47A8A759), UINT32_C(0x65AF3110)}, + {UINT32_C(0x47DFFD31), UINT32_C(0x943F7A25), UINT32_C(0x51E896FA), + UINT32_C(0xDCCDA186), UINT32_C(0x933E747F), UINT32_C(0x71A93B1E), + UINT32_C(0xDFB043AD), UINT32_C(0x44F5C468)}}, + {{UINT32_C(0x786FCCBA), UINT32_C(0xF6AEC52C), UINT32_C(0x6D51FA78), + UINT32_C(0x23D49DCF), UINT32_C(0x9B40D8E6), UINT32_C(0x0F81463B), + UINT32_C(0x708D3DA2), UINT32_C(0x18B9D932)}, + {UINT32_C(0xF986DC6D), UINT32_C(0x796F94ED), UINT32_C(0xFC2622C3), + UINT32_C(0x33B2CCC1), UINT32_C(0x9CCEC606), UINT32_C(0x16790DFB), + UINT32_C(0xCFD31481), UINT32_C(0x6F5D1452)}}, + {{UINT32_C(0x6C3A15D6), UINT32_C(0x91F15DDC), UINT32_C(0x4D360E75), + UINT32_C(0x45D12F40), UINT32_C(0x1DAFFC9C), UINT32_C(0xF2E28EE8), + UINT32_C(0x6CDF5566), UINT32_C(0x5CC6A056)}, + {UINT32_C(0x1779B9BF), UINT32_C(0x855166D2), UINT32_C(0xCF94D9FE), + UINT32_C(0x92BA5EF4), UINT32_C(0x985BC1DD), UINT32_C(0x1266FB2A), + UINT32_C(0xCA3018AD), UINT32_C(0x4572CE8F)}}, + {{UINT32_C(0xBE4BB604), UINT32_C(0x8729A12D), UINT32_C(0x4E99E9AB), + UINT32_C(0x6A29C849), UINT32_C(0x7A89894D), UINT32_C(0x54AE5011), + UINT32_C(0xCDB0EEBD), UINT32_C(0x5E66A255)}, + {UINT32_C(0xCBEE153B), UINT32_C(0x006736EA), UINT32_C(0x225E7B86), + UINT32_C(0x8A36CC2D), UINT32_C(0xEC0598EC), UINT32_C(0xF731E430), + UINT32_C(0x7FD9A11F), UINT32_C(0x49338E4D)}}, + {{UINT32_C(0xDA6DABAA), UINT32_C(0xE038CE03), UINT32_C(0x7C1BCE0C), + UINT32_C(0x13A08DCE), UINT32_C(0xDA89EFBF), UINT32_C(0x12D00DD0), + UINT32_C(0x6FCF0510), UINT32_C(0x70A13FB9)}, + {UINT32_C(0x5CDB03E2), UINT32_C(0x16ED1C92), UINT32_C(0x08E9EE4B), + UINT32_C(0xDF1AB61D), UINT32_C(0x03AF3E3D), UINT32_C(0x48983DA8), + UINT32_C(0x429DB770), UINT32_C(0x63CCA113)}}, + {{UINT32_C(0xCFB805E5), UINT32_C(0x6D9AC1EB), UINT32_C(0x50FA37B8), + UINT32_C(0x47C3FE69), UINT32_C(0x2C33D457), UINT32_C(0xD308EC73), + UINT32_C(0xD4CCA340), UINT32_C(0x3CB08E00)}, + {UINT32_C(0xBE862794), UINT32_C(0xC078DAD0), UINT32_C(0xF4E10A57), + UINT32_C(0x2D147F83), UINT32_C(0x3DE1B3D5), UINT32_C(0xE91820FF), + UINT32_C(0x6F30491B), UINT32_C(0x3D85DD72)}}, + {{UINT32_C(0xF5CBDD3A), UINT32_C(0xD486A022), UINT32_C(0xCAC0B99E), + UINT32_C(0x2663134A), UINT32_C(0x5F3ABFCA), UINT32_C(0x42DE13F5), + UINT32_C(0xB365B973), UINT32_C(0x4967A225)}, + {UINT32_C(0x10F1F997), UINT32_C(0x99C98A25), UINT32_C(0x7714FAB2), + UINT32_C(0x23F057C9), UINT32_C(0x1BA2338D), UINT32_C(0xCE07CA6E), + UINT32_C(0x069F65D7), UINT32_C(0x3BA69161)}}, + {{UINT32_C(0xC026FB0E), UINT32_C(0xCCD8C86F), UINT32_C(0x50407A8C), + UINT32_C(0xF49F1FEA), UINT32_C(0x7F19A1DB), UINT32_C(0x72FEA37B), + UINT32_C(0x3F457DB7), UINT32_C(0x22A03E25)}, + {UINT32_C(0x71F736D2), UINT32_C(0x2D6C62B2), UINT32_C(0xA5ACB4E5), + UINT32_C(0xCC99F8E7), UINT32_C(0x0DE5F380), UINT32_C(0x8F7DBF2E), + UINT32_C(0x352B4933), UINT32_C(0x24494786)}}, + }, + { + {{UINT32_C(0xAE2A5E8F), UINT32_C(0xF020E7A9), UINT32_C(0xD14C5F02), + UINT32_C(0x5ADC788B), UINT32_C(0x65C84DB4), UINT32_C(0xC5E5AFE4), + UINT32_C(0x35C2633C), UINT32_C(0x392FACC4)}, + {UINT32_C(0x42DEE269), UINT32_C(0x47D50070), UINT32_C(0x6EB7849C), + UINT32_C(0x76706ED7), UINT32_C(0x316548CB), UINT32_C(0x6BF56D56), + UINT32_C(0xD37FF4DF), UINT32_C(0x4A466066)}}, + {{UINT32_C(0xC30283AD), UINT32_C(0xC8EBBFB5), UINT32_C(0x3544E645), + UINT32_C(0x31E9CF96), UINT32_C(0x88886B50), UINT32_C(0x90EA9A49), + UINT32_C(0x021D3D5D), UINT32_C(0x5E4B8C88)}, + {UINT32_C(0x0DFEB658), UINT32_C(0xA4DB9225), UINT32_C(0x1910FDAE), + UINT32_C(0x8AA95DB6), UINT32_C(0xDE400EB9), UINT32_C(0x82E9A997), + UINT32_C(0x96769A04), UINT32_C(0x238967E9)}}, + {{UINT32_C(0x89E2DF0A), UINT32_C(0x1ABB076A), UINT32_C(0x07065929), + UINT32_C(0xDA8B09B0), UINT32_C(0x63BD349B), UINT32_C(0x332BE8A5), + UINT32_C(0xA2D35385), UINT32_C(0x0EB973CE)}, + {UINT32_C(0x9C7D375E), UINT32_C(0x67F7AE63), UINT32_C(0xE7AE90B1), + UINT32_C(0xA235818D), UINT32_C(0x817493B0), UINT32_C(0x2B59C26E), + UINT32_C(0x33C4ACD6), UINT32_C(0x39DC1050)}}, + {{UINT32_C(0x7B7DB3F5), UINT32_C(0x11801ACE), UINT32_C(0x8CC97CA5), + UINT32_C(0x79C214C3), UINT32_C(0xBF2674BF), UINT32_C(0xB4BFE1AB), + UINT32_C(0x43252011), UINT32_C(0x598EA7DC)}, + {UINT32_C(0xB08F8EF5), UINT32_C(0x217FF6D3), UINT32_C(0x8B9226B7), + UINT32_C(0x9797BBC9), UINT32_C(0x7B0EDB09), UINT32_C(0xAB8E98C9), + UINT32_C(0x083A401F), UINT32_C(0x240EC22D)}}, + {{UINT32_C(0x459ABC3D), UINT32_C(0x55A75BCF), UINT32_C(0x64ECC2DC), + UINT32_C(0xB2F98598), UINT32_C(0x9EE84779), UINT32_C(0x271C47C3), + UINT32_C(0xBF9BDBF2), UINT32_C(0x0166E5D4)}, + {UINT32_C(0x4215B666), UINT32_C(0xD205380F), UINT32_C(0x64E9FE64), + UINT32_C(0xF7041396), UINT32_C(0x2BB0DA40), UINT32_C(0x4C737E94), + UINT32_C(0xC8119691), UINT32_C(0x2E763521)}}, + {{UINT32_C(0xFD2F8593), UINT32_C(0x79550B60), UINT32_C(0x0C17A56F), + UINT32_C(0x47E00AFD), UINT32_C(0xB44157CF), UINT32_C(0x0D900A9D), + UINT32_C(0xA81BED76), UINT32_C(0x016CF746)}, + {UINT32_C(0xAC47A84B), UINT32_C(0xC21E861B), UINT32_C(0x1724BD47), + UINT32_C(0x0E14387A), UINT32_C(0x2077F7BC), UINT32_C(0xC209303E), + UINT32_C(0xBAD12F0B), UINT32_C(0x33B5EB59)}}, + {{UINT32_C(0x9850FC1F), UINT32_C(0x7152354F), UINT32_C(0x83637934), + UINT32_C(0x1239576F), UINT32_C(0x82AF46BA), UINT32_C(0xB00C4E4E), + UINT32_C(0xEC3FEEFF), UINT32_C(0x563D5062)}, + {UINT32_C(0x33D67B7F), UINT32_C(0xEF25E373), UINT32_C(0x50D9845E), + UINT32_C(0x3A80A50E), UINT32_C(0xA5787EF5), UINT32_C(0x1DCED1E9), + UINT32_C(0xA0F87C3C), UINT32_C(0x15723E9A)}}, + {{UINT32_C(0x2B4A156D), UINT32_C(0x21743511), UINT32_C(0xCD12BD2B), + UINT32_C(0xB75C041C), UINT32_C(0x79F393A6), UINT32_C(0x6947368C), + UINT32_C(0x76420E56), UINT32_C(0x32CDE49E)}, + {UINT32_C(0x43D612FF), UINT32_C(0x67FBA315), UINT32_C(0xE3B87BC2), + UINT32_C(0x697F7FAE), UINT32_C(0x7391129A), UINT32_C(0x980DAFBC), + UINT32_C(0x6F707469), UINT32_C(0x438B2858)}}, + {{UINT32_C(0x5E9D085F), UINT32_C(0xDA8AD16D), UINT32_C(0x768FA87C), + UINT32_C(0xE636F1AF), UINT32_C(0xB85FF1F1), UINT32_C(0x08520756), + UINT32_C(0x6ABB31BE), UINT32_C(0x1B818481)}, + {UINT32_C(0x2E686F1A), UINT32_C(0x25B3DCB9), UINT32_C(0x2B0CB829), + UINT32_C(0xE1282134), UINT32_C(0x3B9B759C), UINT32_C(0x626232BC), + UINT32_C(0x38C4338E), UINT32_C(0x797316BB)}}, + {{UINT32_C(0x4A62DCBD), UINT32_C(0xF8365B64), UINT32_C(0x6BF0EFED), + UINT32_C(0xC2CF51BA), UINT32_C(0xABF74764), UINT32_C(0x37E379EF), + UINT32_C(0xA350D603), UINT32_C(0x5DC32071)}, + {UINT32_C(0x5B732100), UINT32_C(0x5465CC80), UINT32_C(0xB3BB5366), + UINT32_C(0x3231B4E3), UINT32_C(0xD0D067CE), UINT32_C(0x23F5385E), + UINT32_C(0x67D33451), UINT32_C(0x76CD7621)}}, + {{UINT32_C(0x55D857DD), UINT32_C(0xC6C93A05), UINT32_C(0x8F308F7F), + UINT32_C(0xB4B6F176), UINT32_C(0xC0F13577), UINT32_C(0x2371CD88), + UINT32_C(0x70807D9D), UINT32_C(0x1E507D6C)}, + {UINT32_C(0xC73E8E2F), UINT32_C(0x7A77CCE1), UINT32_C(0xFCCBDEEB), + UINT32_C(0x1DD96274), UINT32_C(0x03F378B8), UINT32_C(0xA4DBEA5D), + UINT32_C(0x2A1C347F), UINT32_C(0x44B4DF55)}}, + {{UINT32_C(0x8D067A47), UINT32_C(0x9853D282), UINT32_C(0x86813E74), + UINT32_C(0xBF0ADAF4), UINT32_C(0x39409037), UINT32_C(0xFDE1F24D), + UINT32_C(0x973B045D), UINT32_C(0x0E629604)}, + {UINT32_C(0x3BB92FAB), UINT32_C(0x9880A74B), UINT32_C(0xC6C4D6C6), + UINT32_C(0xBC4E3405), UINT32_C(0x5184A2D6), UINT32_C(0x98C24318), + UINT32_C(0xC210C183), UINT32_C(0x07D65412)}}, + {{UINT32_C(0x441A5FBC), UINT32_C(0x3938E528), UINT32_C(0xCCC66B22), + UINT32_C(0x2CCD837D), UINT32_C(0x5E606282), UINT32_C(0x075FADE7), + UINT32_C(0x4BB0E76A), UINT32_C(0x32181165)}, + {UINT32_C(0xFC929890), UINT32_C(0xE7240305), UINT32_C(0xE03AAA52), + UINT32_C(0x1FA427C8), UINT32_C(0x0BC7B9F8), UINT32_C(0xF23C879B), + UINT32_C(0xD6BBC908), UINT32_C(0x699A1235)}}, + {{UINT32_C(0x14124B8A), UINT32_C(0x20C29781), UINT32_C(0x48000278), + UINT32_C(0x0C6464B3), UINT32_C(0xD644E10C), UINT32_C(0xF1939127), + UINT32_C(0x4EC07EE3), UINT32_C(0x47A479E6)}, + {UINT32_C(0x77023389), UINT32_C(0xB6315768), UINT32_C(0x8BFDD90F), + UINT32_C(0xC0FD319D), UINT32_C(0x6CB022D4), UINT32_C(0x0EBEC200), + UINT32_C(0x302F58EF), UINT32_C(0x6810DF3D)}}, + {{UINT32_C(0xACB1C3F2), UINT32_C(0xCF97FA07), UINT32_C(0xA2C3F2F1), + UINT32_C(0xACC60D84), UINT32_C(0x5DEB73D4), UINT32_C(0x4EF3CAAC), + UINT32_C(0xD5472C1D), UINT32_C(0x654D0D90)}, + {UINT32_C(0xE4729062), UINT32_C(0x5A39A718), UINT32_C(0x8324E0F2), + UINT32_C(0x84B286B0), UINT32_C(0xD21E8457), UINT32_C(0xA07A01CB), + UINT32_C(0xB094714E), UINT32_C(0x0EC091C7)}}, + {{UINT32_C(0x895736BD), UINT32_C(0x7AB81940), UINT32_C(0xE4679DF5), + UINT32_C(0x9AE791B7), UINT32_C(0xF064109B), UINT32_C(0x36163D81), + UINT32_C(0x0E956B07), UINT32_C(0x3DDEE4A4)}, + {UINT32_C(0xFEAAE47C), UINT32_C(0xE146E7EE), UINT32_C(0x6A8EEC03), + UINT32_C(0x81C0C2A7), UINT32_C(0xA8C315CB), UINT32_C(0x10BB8DD9), + UINT32_C(0xD21B9AB0), UINT32_C(0x2CB423D8)}}, + }, + { + {{UINT32_C(0x166A5B9A), UINT32_C(0x5B11D3C7), UINT32_C(0x8768861D), + UINT32_C(0x973627BB), UINT32_C(0x5A3E442A), UINT32_C(0x82A5E2CD), + UINT32_C(0xDDE63678), UINT32_C(0x13F6C741)}, + {UINT32_C(0xD892738E), UINT32_C(0x8DAA3C74), UINT32_C(0xA932376F), + UINT32_C(0x0A07D651), UINT32_C(0x6892504B), UINT32_C(0xE12612C5), + UINT32_C(0xCA3FF301), UINT32_C(0x619D2B1D)}}, + {{UINT32_C(0x1B07CEB7), UINT32_C(0x2B6D686F), UINT32_C(0x298D0996), + UINT32_C(0x90C0260C), UINT32_C(0x102BC73C), UINT32_C(0x8CAAB926), + UINT32_C(0xAEB3911C), UINT32_C(0x445A6487)}, + {UINT32_C(0x57F17290), UINT32_C(0x7EE1E547), UINT32_C(0x417711BF), + UINT32_C(0xC055478B), UINT32_C(0x5CFA42C2), UINT32_C(0x29EF9FEC), + UINT32_C(0x2B8EA0D6), UINT32_C(0x5A022DE4)}}, + {{UINT32_C(0xAEEB2675), UINT32_C(0x81A5EC18), UINT32_C(0xAD1BBA8A), + UINT32_C(0xA867C5AA), UINT32_C(0x8DB47EBC), UINT32_C(0xAECB3688), + UINT32_C(0x26D1038F), UINT32_C(0x77CE00BC)}, + {UINT32_C(0x3E68504B), UINT32_C(0xADC635EF), UINT32_C(0xDAE8AF4F), + UINT32_C(0x0EFC21DE), UINT32_C(0xAC70C4C9), UINT32_C(0xDE57FD43), + UINT32_C(0xE78FFC0D), UINT32_C(0x123360BE)}}, + {{UINT32_C(0xD82B61DB), UINT32_C(0xD608DB32), UINT32_C(0x8E45C853), + UINT32_C(0x05AF2A90), UINT32_C(0x9D3B0032), UINT32_C(0xF1B8213E), + UINT32_C(0xCAD15361), UINT32_C(0x2312F8AB)}, + {UINT32_C(0xC29EE818), UINT32_C(0xDC8D8E32), UINT32_C(0xDE5CD587), + UINT32_C(0x07D7A475), UINT32_C(0x0C6C38B8), UINT32_C(0x76610913), + UINT32_C(0xD7984BD9), UINT32_C(0x0131B6C6)}}, + {{UINT32_C(0xCF69C844), UINT32_C(0xC05CD4D0), UINT32_C(0x81A9B005), + UINT32_C(0x747C092D), UINT32_C(0xD9E39F54), UINT32_C(0x0D793551), + UINT32_C(0x7FFEF17C), UINT32_C(0x3BBB00DA)}, + {UINT32_C(0x655AD7C1), UINT32_C(0x6CAB83D9), UINT32_C(0x66A8F590), + UINT32_C(0x601BECD0), UINT32_C(0xAE51811B), UINT32_C(0xFADB086D), + UINT32_C(0xD69F734B), UINT32_C(0x7768A5D8)}}, + {{UINT32_C(0xF0E2385E), UINT32_C(0x3BB9B347), UINT32_C(0xF7D39F23), + UINT32_C(0x376C8C48), UINT32_C(0xD82EC840), UINT32_C(0xE656C1A4), + UINT32_C(0xFC2AC59A), UINT32_C(0x328B25C9)}, + {UINT32_C(0xA046BEE6), UINT32_C(0xD02B2F39), UINT32_C(0x80066D6C), + UINT32_C(0xDBAB19A5), UINT32_C(0xE938B7F7), UINT32_C(0x6A2E8F67), + UINT32_C(0xAA7F2661), UINT32_C(0x645A57A1)}}, + {{UINT32_C(0x9A006FAE), UINT32_C(0x6227904D), UINT32_C(0xB598CB72), + UINT32_C(0xA975FC4C), UINT32_C(0xA1120B82), UINT32_C(0x945BFC2F), + UINT32_C(0x2AC15CE5), UINT32_C(0x437A8AB4)}, + {UINT32_C(0x0F53317C), UINT32_C(0xA512A107), UINT32_C(0xFF9BD7D6), + UINT32_C(0x7B552554), UINT32_C(0x54155AF9), UINT32_C(0xF81213E7), + UINT32_C(0xFDCE0842), UINT32_C(0x0923F42C)}}, + {{UINT32_C(0x5216BB55), UINT32_C(0x13523916), UINT32_C(0x599CA117), + UINT32_C(0xF27E4C7A), UINT32_C(0x7DD95BE1), UINT32_C(0x464D040A), + UINT32_C(0x3C417D05), UINT32_C(0x40897486)}, + {UINT32_C(0x7C88E5D7), UINT32_C(0x0A3D16BF), UINT32_C(0xC13B286F), + UINT32_C(0x0B94C661), UINT32_C(0xE2214821), UINT32_C(0xF73C7126), + UINT32_C(0xF2F6DAFA), UINT32_C(0x4B3D5BF0)}}, + {{UINT32_C(0xF1A4332A), UINT32_C(0xCFABD8A2), UINT32_C(0xBAAC9A51), + UINT32_C(0x56DB1546), UINT32_C(0x04416247), UINT32_C(0x8CC5204B), + UINT32_C(0xF0583310), UINT32_C(0x75EC13BF)}, + {UINT32_C(0xD35B55D0), UINT32_C(0x0D68896E), UINT32_C(0x67FC14D9), + UINT32_C(0xE89274E2), UINT32_C(0xFC322878), UINT32_C(0x18D425C0), + UINT32_C(0x916C714A), UINT32_C(0x69477DD7)}}, + {{UINT32_C(0x9BDDF0F9), UINT32_C(0x427CBB6C), UINT32_C(0xDB9F52CB), + UINT32_C(0xCF6941E2), UINT32_C(0x35E60DFA), UINT32_C(0xEF144DF6), + UINT32_C(0xB61DF45C), UINT32_C(0x27B5246E)}, + {UINT32_C(0xB8D3D1D9), UINT32_C(0x0E124518), UINT32_C(0x8B313B95), + UINT32_C(0xBB3BA134), UINT32_C(0x0FA2B7A9), UINT32_C(0x050DCBDF), + UINT32_C(0x1D0A99B5), UINT32_C(0x50DBCF6D)}}, + {{UINT32_C(0x3924A1E5), UINT32_C(0x8A8B22CB), UINT32_C(0x118F9D55), + UINT32_C(0x86CB4C5A), UINT32_C(0x5B339C53), UINT32_C(0xE5330ACC), + UINT32_C(0x66A35A67), UINT32_C(0x6D5FDDF9)}, + {UINT32_C(0x6F6438A5), UINT32_C(0xC9500719), UINT32_C(0x07E5394E), + UINT32_C(0x9723F2BA), UINT32_C(0x866B45A8), UINT32_C(0xA9CE2117), + UINT32_C(0x045CA2CA), UINT32_C(0x1B737D8D)}}, + {{UINT32_C(0x6EE00E30), UINT32_C(0x6093F5A5), UINT32_C(0x5DE0A6FC), + UINT32_C(0x5CAB98D4), UINT32_C(0x65DE754F), UINT32_C(0xADFB652C), + UINT32_C(0x862EFD1D), UINT32_C(0x679900D1)}, + {UINT32_C(0xAFC5D235), UINT32_C(0x6E5C230F), UINT32_C(0x12CF6DD3), + UINT32_C(0x3A1E5579), UINT32_C(0x03FB4FA0), UINT32_C(0x241C20FB), + UINT32_C(0x20F6C013), UINT32_C(0x562FFAE3)}}, + {{UINT32_C(0x397F25EC), UINT32_C(0x6EFC732F), UINT32_C(0xBC1F03B8), + UINT32_C(0x304D1F7D), UINT32_C(0x8890DADE), UINT32_C(0xA2FA6001), + UINT32_C(0x51A25539), UINT32_C(0x4F91F97C)}, + {UINT32_C(0x48F4EF02), UINT32_C(0xE75F9C50), UINT32_C(0x218AEE9D), + UINT32_C(0xCC53F460), UINT32_C(0x10D76649), UINT32_C(0xE7B40489), + UINT32_C(0x42ECDBA4), UINT32_C(0x148F90A2)}}, + {{UINT32_C(0x1F683AD6), UINT32_C(0xBF45023A), UINT32_C(0x95E868D1), + UINT32_C(0x2EA5F70C), UINT32_C(0xA97F2DE3), UINT32_C(0x47A19F33), + UINT32_C(0x8A76ED9F), UINT32_C(0x3C8CCA9E)}, + {UINT32_C(0xE1A268D0), UINT32_C(0x01562C6E), UINT32_C(0xBA4EF01E), + UINT32_C(0x9EB6EBAC), UINT32_C(0x342410FB), UINT32_C(0x835E64D4), + UINT32_C(0xFFF4594D), UINT32_C(0x06F96B87)}}, + {{UINT32_C(0xD233612B), UINT32_C(0xE49A383A), UINT32_C(0xC9C14F64), + UINT32_C(0x3CA5421F), UINT32_C(0xBB53DF81), UINT32_C(0x25192E1B), + UINT32_C(0xA94C046C), UINT32_C(0x3C1451FE)}, + {UINT32_C(0x0423FAA8), UINT32_C(0x72B270F8), UINT32_C(0x3763888A), + UINT32_C(0xFF63513D), UINT32_C(0xC1745190), UINT32_C(0xB22F2F20), + UINT32_C(0x35DEA32C), UINT32_C(0x2E005A7A)}}, + {{UINT32_C(0x6305B2EB), UINT32_C(0x6B5A4E7A), UINT32_C(0x9CCD05D2), + UINT32_C(0xF017BCA1), UINT32_C(0xD19AD8CB), UINT32_C(0xB37027C9), + UINT32_C(0x0CBB36A6), UINT32_C(0x2CFCB470)}, + {UINT32_C(0x663F3485), UINT32_C(0x17F4FE51), UINT32_C(0x0DC3467B), + UINT32_C(0x7DC20A17), UINT32_C(0x4AF63CBD), UINT32_C(0x6B56BA3F), + UINT32_C(0x0D5D64AF), UINT32_C(0x4E7CF289)}}, + }, + { + {{UINT32_C(0x7F59D2E9), UINT32_C(0xE2C5CD1F), UINT32_C(0x9D7FBE1E), + UINT32_C(0x6B9ACEB7), UINT32_C(0xA20225B0), UINT32_C(0x84F0441D), + UINT32_C(0x8B369FBC), UINT32_C(0x15875CDA)}, + {UINT32_C(0x0659E294), UINT32_C(0xED133277), UINT32_C(0x7AE02043), + UINT32_C(0x7FAA913E), UINT32_C(0x9DCEDE14), UINT32_C(0xCA0E58DA), + UINT32_C(0xCDE68547), UINT32_C(0x5F6A70FD)}}, + {{UINT32_C(0xE7282711), UINT32_C(0x524B790D), UINT32_C(0xBCA05694), + UINT32_C(0x4B4F6246), UINT32_C(0x949AF774), UINT32_C(0x85169ECB), + UINT32_C(0xCC743068), UINT32_C(0x5B168842)}, + {UINT32_C(0x31FB3BA3), UINT32_C(0xB8D0E9F2), UINT32_C(0x62D471C7), + UINT32_C(0x56DD4BC3), UINT32_C(0xE2A34F75), UINT32_C(0xB14D689C), + UINT32_C(0x02E8D2D2), UINT32_C(0x7F4E1717)}}, + {{UINT32_C(0xB17090B9), UINT32_C(0x8EE3491A), UINT32_C(0x6B7EDAF4), + UINT32_C(0x67C07116), UINT32_C(0x4D0E6CCE), UINT32_C(0x6876E4CE), + UINT32_C(0xBC5A86BE), UINT32_C(0x6D2FBB64)}, + {UINT32_C(0x070FA8C3), UINT32_C(0x0431C67A), UINT32_C(0x0F5D65F4), + UINT32_C(0x91EFF9BE), UINT32_C(0xE07088DF), UINT32_C(0x332985E2), + UINT32_C(0x676EADA8), UINT32_C(0x006D2583)}}, + {{UINT32_C(0x0AA747D6), UINT32_C(0xA1FBCC37), UINT32_C(0xB0DFDF3C), + UINT32_C(0xADEA4A90), UINT32_C(0x401ED81B), UINT32_C(0x650162C7), + UINT32_C(0xA8B15E22), UINT32_C(0x0FBC4841)}, + {UINT32_C(0xBF98CDAC), UINT32_C(0x1044B4E8), UINT32_C(0xECD1C668), + UINT32_C(0x37071115), UINT32_C(0x233C220C), UINT32_C(0x29B93C17), + UINT32_C(0xE69BC0C0), UINT32_C(0x4BEBC3CC)}}, + {{UINT32_C(0x46BF7E51), UINT32_C(0xD1A16E37), UINT32_C(0xF7A7370C), + UINT32_C(0x889C7782), UINT32_C(0x3CCB474D), UINT32_C(0xC73F396E), + UINT32_C(0xB9D67A2E), UINT32_C(0x1C508F18)}, + {UINT32_C(0x6B03B7E7), UINT32_C(0x3F17E967), UINT32_C(0xF857BB26), + UINT32_C(0x3928F1D8), UINT32_C(0xC0EA8620), UINT32_C(0x3086FB2E), + UINT32_C(0x1BE7C3E4), UINT32_C(0x15DC32C2)}}, + {{UINT32_C(0x11F4D949), UINT32_C(0xF48D4C32), UINT32_C(0xB0357C05), + UINT32_C(0xE14A4AE3), UINT32_C(0x151D91AE), UINT32_C(0x77A1121F), + UINT32_C(0xE8C6869D), UINT32_C(0x33F85C2F)}, + {UINT32_C(0x364B77B0), UINT32_C(0x8EA3BB4C), UINT32_C(0x9BD43E50), + UINT32_C(0x1F155B91), UINT32_C(0x54748E7D), UINT32_C(0xA6C28730), + UINT32_C(0xE7DDC539), UINT32_C(0x5AA34DDA)}}, + {{UINT32_C(0xA6CF8A82), UINT32_C(0xF0F80DDA), UINT32_C(0x091663B5), + UINT32_C(0x87DE6D6C), UINT32_C(0x02FE5519), UINT32_C(0x94798734), + UINT32_C(0x96722130), UINT32_C(0x109D411F)}, + {UINT32_C(0xE661041F), UINT32_C(0xBC47CA73), UINT32_C(0x65741541), + UINT32_C(0x071D6059), UINT32_C(0x07E08735), UINT32_C(0x7CD4DF66), + UINT32_C(0xE68FC807), UINT32_C(0x175E1F77)}}, + {{UINT32_C(0xDA58865B), UINT32_C(0xB88BDAB8), UINT32_C(0x20ED2B89), + UINT32_C(0x14AD9112), UINT32_C(0x039BF0A3), UINT32_C(0x2B21AEDF), + UINT32_C(0x9D4B77E9), UINT32_C(0x78971777)}, + {UINT32_C(0xD6612EF3), UINT32_C(0x133DA2AC), UINT32_C(0x12AD1785), + UINT32_C(0x6260FCF5), UINT32_C(0x9DF08843), UINT32_C(0xDBA784DA), + UINT32_C(0x4449FBD1), UINT32_C(0x1A30C4CF)}}, + {{UINT32_C(0x4EF7ACA2), UINT32_C(0xB6FECE87), UINT32_C(0x13F7C58C), + UINT32_C(0x9CE7B61A), UINT32_C(0xF8719A60), UINT32_C(0x6B0223C9), + UINT32_C(0xA3B3B088), UINT32_C(0x21199AA5)}, + {UINT32_C(0x6938BB02), UINT32_C(0x4A717196), UINT32_C(0xE7ABC263), + UINT32_C(0x2E9A17C9), UINT32_C(0x4BAB12B7), UINT32_C(0x83F79623), + UINT32_C(0x49D7CFBD), UINT32_C(0x15C0C4AF)}}, + {{UINT32_C(0x56D2957F), UINT32_C(0x99B34139), UINT32_C(0x07218BB6), + UINT32_C(0xA51B8DFD), UINT32_C(0xFC91D7C9), UINT32_C(0x47CA4323), + UINT32_C(0x3DCFD5F0), UINT32_C(0x44B01E75)}, + {UINT32_C(0x8CE894F3), UINT32_C(0x29F9D18E), UINT32_C(0x95227C6F), + UINT32_C(0x22BCC540), UINT32_C(0x3FC75409), UINT32_C(0x815CD936), + UINT32_C(0xD8989472), UINT32_C(0x0D58B325)}}, + {{UINT32_C(0xB6C80208), UINT32_C(0x8B4C6980), UINT32_C(0x8FB77CCD), + UINT32_C(0xA5D97497), UINT32_C(0x9477132F), UINT32_C(0x1B896571), + UINT32_C(0x3AE45F53), UINT32_C(0x348ABC21)}, + {UINT32_C(0x14BCDB96), UINT32_C(0xE438C1C3), UINT32_C(0x8007C1BF), + UINT32_C(0x63150CF9), UINT32_C(0x8508B903), UINT32_C(0xDB861A33), + UINT32_C(0x7B04ECD6), UINT32_C(0x421DFB01)}}, + {{UINT32_C(0x19430E7B), UINT32_C(0xF2FCE58B), UINT32_C(0xD0F8ECB7), + UINT32_C(0x851A5F03), UINT32_C(0x0A5A1833), UINT32_C(0xE756C167), + UINT32_C(0x227F866C), UINT32_C(0x25A51405)}, + {UINT32_C(0x3C6EE5F3), UINT32_C(0x40F34CB0), UINT32_C(0xF244B5CF), + UINT32_C(0xF4010401), UINT32_C(0x01349BCF), UINT32_C(0x0E21BDED), + UINT32_C(0x04547F42), UINT32_C(0x1B129D82)}}, + {{UINT32_C(0x0927D153), UINT32_C(0x802EC480), UINT32_C(0x72541520), + UINT32_C(0x0F75E4FE), UINT32_C(0x026C4613), UINT32_C(0xA4A1557A), + UINT32_C(0x7D92BC18), UINT32_C(0x25E8DAFB)}, + {UINT32_C(0x12F15F05), UINT32_C(0x1D87A143), UINT32_C(0x7B6B4240), + UINT32_C(0x79390E3C), UINT32_C(0x492E6273), UINT32_C(0xFC199D76), + UINT32_C(0x7EB090C0), UINT32_C(0x0053F1C4)}}, + {{UINT32_C(0xACEE6DFC), UINT32_C(0xE790F1CA), UINT32_C(0xDFEA04FF), + UINT32_C(0xC8FB4626), UINT32_C(0x627D88D7), UINT32_C(0xBF03627F), + UINT32_C(0x3D81A75A), UINT32_C(0x1B369884)}, + {UINT32_C(0x917FA19D), UINT32_C(0x83405DDA), UINT32_C(0x8C7DDCD2), + UINT32_C(0xFFB23FF9), UINT32_C(0x40F10B48), UINT32_C(0x644F54C7), + UINT32_C(0x17FF713A), UINT32_C(0x4636FADF)}}, + {{UINT32_C(0x27F417E4), UINT32_C(0xDA62ECC2), UINT32_C(0xFD8662BE), + UINT32_C(0xC0DBE48F), UINT32_C(0x1011E73C), UINT32_C(0x729EE4AA), + UINT32_C(0x3E11C84B), UINT32_C(0x4BAE5D3C)}, + {UINT32_C(0x6CEF6CDA), UINT32_C(0x854DFFF8), UINT32_C(0xCB7131EA), + UINT32_C(0x7939228C), UINT32_C(0xD3EBC607), UINT32_C(0x58B3744A), + UINT32_C(0x2049E239), UINT32_C(0x6EB9248F)}}, + {{UINT32_C(0xED0D4E57), UINT32_C(0x0265CAE9), UINT32_C(0x8AA65AEF), + UINT32_C(0x92166D02), UINT32_C(0x198345D6), UINT32_C(0x2E337CDA), + UINT32_C(0xABE1AD7B), UINT32_C(0x6775330C)}, + {UINT32_C(0xBF6FBC7D), UINT32_C(0xA9A828A8), UINT32_C(0xCBFEA393), + UINT32_C(0x33A56F8D), UINT32_C(0xD811EC51), UINT32_C(0x2DB72F77), + UINT32_C(0x8327C78E), UINT32_C(0x3DDFCD26)}}, + }, + { + {{UINT32_C(0xB46AA2C4), UINT32_C(0x7CF8A521), UINT32_C(0xACF0D567), + UINT32_C(0xE3B20937), UINT32_C(0xA440648E), UINT32_C(0xD47D8D1B), + UINT32_C(0x1E9791A1), UINT32_C(0x674E7920)}, + {UINT32_C(0x18366462), UINT32_C(0x27B714EB), UINT32_C(0x8476F588), + UINT32_C(0x1526E558), UINT32_C(0x6C240D70), UINT32_C(0x72C8D374), + UINT32_C(0x805C1265), UINT32_C(0x066BBAFB)}}, + {{UINT32_C(0x457034E1), UINT32_C(0x15F1CFF5), UINT32_C(0xDD819FA7), + UINT32_C(0xCF7C6550), UINT32_C(0x77AC7AD6), UINT32_C(0x57C2CD53), + UINT32_C(0xAFED669D), UINT32_C(0x7DB2A8BE)}, + {UINT32_C(0xD4697340), UINT32_C(0x2DAFD95F), UINT32_C(0x15A6B6E7), + UINT32_C(0x382FF892), UINT32_C(0xBF4A6B1B), UINT32_C(0x036FC753), + UINT32_C(0xE4012711), UINT32_C(0x3E7AC46D)}}, + {{UINT32_C(0x5752A34D), UINT32_C(0xBA5ECDED), UINT32_C(0x6BAA08DD), + UINT32_C(0xB08749D4), UINT32_C(0x4A4A47A8), UINT32_C(0x8A2B9897), + UINT32_C(0xE42DCE02), UINT32_C(0x7230966F)}, + {UINT32_C(0x58654FF5), UINT32_C(0xA6FF614A), UINT32_C(0xAB3C2A7E), + UINT32_C(0x7F3531D1), UINT32_C(0x0D0ED417), UINT32_C(0x0282A2F0), + UINT32_C(0xEA9755A3), UINT32_C(0x2DC7B872)}}, + {{UINT32_C(0x2392536A), UINT32_C(0x7678D765), UINT32_C(0x574C657D), + UINT32_C(0x0C2025F1), UINT32_C(0x795413DC), UINT32_C(0x01701C80), + UINT32_C(0x5396279E), UINT32_C(0x63F0D496)}, + {UINT32_C(0xFA32EA64), UINT32_C(0xB0F9968A), UINT32_C(0x5BB393DE), + UINT32_C(0x81265D15), UINT32_C(0x0BCD8C10), UINT32_C(0xC05ECC6D), + UINT32_C(0x2824457E), UINT32_C(0x4F3769F9)}}, + {{UINT32_C(0xF13DB92E), UINT32_C(0x9AA58686), UINT32_C(0xED2E1B18), + UINT32_C(0x1155CDF4), UINT32_C(0x09823F5A), UINT32_C(0xA06E9194), + UINT32_C(0x4257AB0E), UINT32_C(0x7F1BBE73)}, + {UINT32_C(0xABA6FCD1), UINT32_C(0x2DFB6472), UINT32_C(0xD73D850E), + UINT32_C(0x04BE6BCA), UINT32_C(0x297D312B), UINT32_C(0x72AAEC34), + UINT32_C(0x7509D9F5), UINT32_C(0x31F4C02C)}}, + {{UINT32_C(0x7CA72AD5), UINT32_C(0xAA9BA000), UINT32_C(0x7FBCB4D6), + UINT32_C(0x21EE2945), UINT32_C(0x1CF8580A), UINT32_C(0x0E210AAB), + UINT32_C(0x0FA8DE10), UINT32_C(0x600479FE)}, + {UINT32_C(0x54322F70), UINT32_C(0x246FD265), UINT32_C(0x60DF1893), + UINT32_C(0xC60BE9BB), UINT32_C(0x05137E38), UINT32_C(0x04D4F99D), + UINT32_C(0x6164C176), UINT32_C(0x6ACB9E01)}}, + {{UINT32_C(0xC1DB7B6C), UINT32_C(0x126F2C7E), UINT32_C(0xCF4DD3C0), + UINT32_C(0x4C3B30B5), UINT32_C(0xF782A489), UINT32_C(0x827D57A2), + UINT32_C(0xE52621F0), UINT32_C(0x41B897DE)}, + {UINT32_C(0xDDA0A3CD), UINT32_C(0xED31C55A), UINT32_C(0xA11AD179), + UINT32_C(0x21C91BB2), UINT32_C(0x43FD6E23), UINT32_C(0x60E606B8), + UINT32_C(0x51ED7FA6), UINT32_C(0x31B8138D)}}, + {{UINT32_C(0xE72E4BC5), UINT32_C(0x1387B313), UINT32_C(0x82EBFC72), + UINT32_C(0xDCCCB09C), UINT32_C(0xAA4432D6), UINT32_C(0xF0B01202), + UINT32_C(0x7C52B69D), UINT32_C(0x632599C4)}, + {UINT32_C(0xBCE9A04C), UINT32_C(0x3922D0C0), UINT32_C(0xB53F4268), + UINT32_C(0xC2397D88), UINT32_C(0x00669858), UINT32_C(0x50AE5ED9), + UINT32_C(0x16C7696B), UINT32_C(0x1B2BD4C2)}}, + {{UINT32_C(0x2BF7DF06), UINT32_C(0x6FAE1B08), UINT32_C(0x5210DB3B), + UINT32_C(0x870B3FE8), UINT32_C(0x9BDC0B91), UINT32_C(0x680BE422), + UINT32_C(0xBCC970AD), UINT32_C(0x56BA83C6)}, + {UINT32_C(0x859D6C78), UINT32_C(0x1AE91BAC), UINT32_C(0x2895A1A6), + UINT32_C(0xC5BDD5FB), UINT32_C(0x550610F5), UINT32_C(0xA169E73C), + UINT32_C(0x0CC7D3EA), UINT32_C(0x01B46767)}}, + {{UINT32_C(0x0EC5ECE2), UINT32_C(0x1E147A51), UINT32_C(0xD0E2C46C), + UINT32_C(0x9B612A1F), UINT32_C(0x5E293783), UINT32_C(0x664FDD55), + UINT32_C(0x67DC4DBC), UINT32_C(0x52070E15)}, + {UINT32_C(0x4A4903FB), UINT32_C(0x449B53E5), UINT32_C(0xA8D30103), + UINT32_C(0x79B53583), UINT32_C(0xAF7CC314), UINT32_C(0x616C97F3), + UINT32_C(0x2849862C), UINT32_C(0x6BEB304C)}}, + {{UINT32_C(0x019F0313), UINT32_C(0xB9C636D6), UINT32_C(0xD3E0188D), + UINT32_C(0x0B08E7CB), UINT32_C(0xD704DE15), UINT32_C(0xEAEB1715), + UINT32_C(0x837E7543), UINT32_C(0x4990282C)}, + {UINT32_C(0xFBD3A061), UINT32_C(0xCBB0BD49), UINT32_C(0x1DA124AE), + UINT32_C(0x3454A8AC), UINT32_C(0x37D64EAB), UINT32_C(0x0D524A02), + UINT32_C(0x0B3E4ADE), UINT32_C(0x76680749)}}, + {{UINT32_C(0x95B04835), UINT32_C(0xC293E011), UINT32_C(0x23D0C885), + UINT32_C(0x76D304BA), UINT32_C(0xD6552D80), UINT32_C(0x36A63627), + UINT32_C(0xC504CCAB), UINT32_C(0x3B4FA680)}, + {UINT32_C(0xE1FC08DF), UINT32_C(0xF25B3A04), UINT32_C(0x62D080F8), + UINT32_C(0x786380E5), UINT32_C(0xDAC0D110), UINT32_C(0x0A731427), + UINT32_C(0xD628429A), UINT32_C(0x1D65288F)}}, + {{UINT32_C(0xDC94453E), UINT32_C(0x3CE5E929), UINT32_C(0xB6073324), + UINT32_C(0xEC7CF988), UINT32_C(0xDCB35234), UINT32_C(0x023361E7), + UINT32_C(0xF5E89B7C), UINT32_C(0x3AF20624)}, + {UINT32_C(0xA5B2B103), UINT32_C(0x860F188E), UINT32_C(0xCB6D112F), + UINT32_C(0x5EAC84CE), UINT32_C(0x914C9FFD), UINT32_C(0x63B200C3), + UINT32_C(0x55A1FDCB), UINT32_C(0x327870A0)}}, + {{UINT32_C(0x155280ED), UINT32_C(0x4F94633C), UINT32_C(0x3654B8AA), + UINT32_C(0xF98321D5), UINT32_C(0x489AE89A), UINT32_C(0x9C057A23), + UINT32_C(0xD59CA3B5), UINT32_C(0x1124A1FB)}, + {UINT32_C(0x1F64AFD7), UINT32_C(0x2F4CE052), UINT32_C(0x7C789152), + UINT32_C(0x841EE441), UINT32_C(0x59A98374), UINT32_C(0x93531ED4), + UINT32_C(0x36BB8F07), UINT32_C(0x69A4F48C)}}, + {{UINT32_C(0x5FD512A7), UINT32_C(0xD8FFD243), UINT32_C(0x9BEA1738), + UINT32_C(0xF48C96F1), UINT32_C(0x0FFB4553), UINT32_C(0xF70E1F6A), + UINT32_C(0x5FF91D21), UINT32_C(0x29DB63B1)}, + {UINT32_C(0x77BF7279), UINT32_C(0xC1355C23), UINT32_C(0xA2FC904D), + UINT32_C(0xD3946EE9), UINT32_C(0xE7B7A9F4), UINT32_C(0x07223881), + UINT32_C(0x56E08ED6), UINT32_C(0x212D8967)}}, + {{UINT32_C(0x45503451), UINT32_C(0x32B8C22A), UINT32_C(0xE6AB7B3D), + UINT32_C(0x9E4FDAF1), UINT32_C(0x04A31294), UINT32_C(0x7A300E3D), + UINT32_C(0x05FE2AEB), UINT32_C(0x0F529DFD)}, + {UINT32_C(0x9951B6FB), UINT32_C(0x7EFFEA9E), UINT32_C(0x336B9A2B), + UINT32_C(0x18C60266), UINT32_C(0x6C8D0EEC), UINT32_C(0xB78A5EE1), + UINT32_C(0x46ED0B23), UINT32_C(0x68C17FE4)}}, + }, + { + {{UINT32_C(0x96B3222E), UINT32_C(0xF707FAD5), UINT32_C(0x0223F804), + UINT32_C(0xD6AF6161), UINT32_C(0x4F43A0E9), UINT32_C(0x13FFDC74), + UINT32_C(0x3347F487), UINT32_C(0x6A3B70E9)}, + {UINT32_C(0x6A4AF4F5), UINT32_C(0xBDDF02A4), UINT32_C(0xE4C69950), + UINT32_C(0x61B451E1), UINT32_C(0xF9E3BB99), UINT32_C(0xFF854590), + UINT32_C(0x7CD54C54), UINT32_C(0x46EB1F69)}}, + {{UINT32_C(0x8E6848D3), UINT32_C(0x70E643B6), UINT32_C(0x848C2587), + UINT32_C(0xC58B8519), UINT32_C(0xEDF4A38E), UINT32_C(0x2F195C54), + UINT32_C(0x3D2A52E8), UINT32_C(0x206E6A32)}, + {UINT32_C(0x417595BF), UINT32_C(0x234845B5), UINT32_C(0xFF5AE3CB), + UINT32_C(0x90354373), UINT32_C(0x89C0E555), UINT32_C(0x13BE31CE), + UINT32_C(0xCC67E26F), UINT32_C(0x2D18AA43)}}, + {{UINT32_C(0xF041BD17), UINT32_C(0xC74EE8C4), UINT32_C(0xC2B3CC64), + UINT32_C(0x655CF527), UINT32_C(0x160FF053), UINT32_C(0x6735CF0A), + UINT32_C(0x04218A0D), UINT32_C(0x35DAB9EB)}, + {UINT32_C(0xCBC34E46), UINT32_C(0x32BB2E9A), UINT32_C(0x7D190342), + UINT32_C(0xF780CEAF), UINT32_C(0x9F0DA1A4), UINT32_C(0x161C0C1A), + UINT32_C(0xE7642FD6), UINT32_C(0x7B198C9E)}}, + {{UINT32_C(0x122FD0B4), UINT32_C(0x936C763E), UINT32_C(0xA7E0C435), + UINT32_C(0xA3819ED9), UINT32_C(0xCAAE6D7B), UINT32_C(0x86228B04), + UINT32_C(0x7A3C65B4), UINT32_C(0x2E116018)}, + {UINT32_C(0xD4EB0345), UINT32_C(0xF55BB1F3), UINT32_C(0x0630B569), + UINT32_C(0x858A0BF4), UINT32_C(0xCB78A626), UINT32_C(0x8CC22657), + UINT32_C(0xB45E3005), UINT32_C(0x7CD93BDE)}}, + {{UINT32_C(0x98E517AB), UINT32_C(0xCAA1F459), UINT32_C(0xB34A6F5C), + UINT32_C(0x36E60281), UINT32_C(0x0B46F47F), UINT32_C(0x877A49F3), + UINT32_C(0x9E7BE761), UINT32_C(0x0179824B)}, + {UINT32_C(0xD455D9C0), UINT32_C(0x6830A2B2), UINT32_C(0x7BA31962), + UINT32_C(0xB734BA0A), UINT32_C(0x065C3B51), UINT32_C(0x344665A4), + UINT32_C(0x562E7F1D), UINT32_C(0x0B1D2210)}}, + {{UINT32_C(0x0B2E22E8), UINT32_C(0x289BAFCA), UINT32_C(0x83390107), + UINT32_C(0x038929A0), UINT32_C(0x0683E782), UINT32_C(0x968A014D), + UINT32_C(0x53D34463), UINT32_C(0x5A1AD5C8)}, + {UINT32_C(0x9527B2CA), UINT32_C(0xA2613334), UINT32_C(0x310B745F), + UINT32_C(0xE8471271), UINT32_C(0x31387F59), UINT32_C(0x49C81A26), + UINT32_C(0x0343C691), UINT32_C(0x1B955AF7)}}, + {{UINT32_C(0xA4A9FCA4), UINT32_C(0x069328AD), UINT32_C(0x624FCB94), + UINT32_C(0x14EF09A7), UINT32_C(0xE3E0CECD), UINT32_C(0x21C76F0D), + UINT32_C(0x6C1BCE0F), UINT32_C(0x5F470B86)}, + {UINT32_C(0xB15BC8B4), UINT32_C(0x79319A3F), UINT32_C(0xDB06AFA1), + UINT32_C(0xB1407CB1), UINT32_C(0x911116E0), UINT32_C(0xD69E9E09), + UINT32_C(0x0756579E), UINT32_C(0x6E77524E)}}, + {{UINT32_C(0xE2D851D5), UINT32_C(0xD3EC5EBC), UINT32_C(0x03B63143), + UINT32_C(0xC888BC23), UINT32_C(0xDB0C357F), UINT32_C(0x5F3DE41E), + UINT32_C(0xC3D47D37), UINT32_C(0x646FFBD3)}, + {UINT32_C(0x0692639B), UINT32_C(0xE53F8BEB), UINT32_C(0xD4FBC3D4), + UINT32_C(0x7E194E37), UINT32_C(0x452B2A2E), UINT32_C(0xE1988A22), + UINT32_C(0xB013F9E1), UINT32_C(0x5D359A15)}}, + {{UINT32_C(0xB2A6627D), UINT32_C(0xA48160A7), UINT32_C(0x3CE8789E), + UINT32_C(0x5EFDC848), UINT32_C(0xB1CD14EE), UINT32_C(0x264CBFF1), + UINT32_C(0x44D84222), UINT32_C(0x288823D4)}, + {UINT32_C(0x3A6DB1F8), UINT32_C(0x2F091B23), UINT32_C(0xCEA89B44), + UINT32_C(0xBFD737B5), UINT32_C(0x17F5E969), UINT32_C(0x682AB86C), + UINT32_C(0xABB0FA87), UINT32_C(0x7653005C)}}, + {{UINT32_C(0xD4B8A43A), UINT32_C(0x619C2629), UINT32_C(0xB6DAF943), + UINT32_C(0xBFDAF433), UINT32_C(0x6D640DB8), UINT32_C(0xDC7AA1EE), + UINT32_C(0x3B08D55C), UINT32_C(0x35ADEEA8)}, + {UINT32_C(0xD7AF5382), UINT32_C(0x30935454), UINT32_C(0x3D68A24A), + UINT32_C(0x1F9C51A1), UINT32_C(0x78BDBEA9), UINT32_C(0xDBD13CFC), + UINT32_C(0x31210A3F), UINT32_C(0x003B6D99)}}, + {{UINT32_C(0x9C2B515D), UINT32_C(0xD4547A32), UINT32_C(0xFECDAAA9), + UINT32_C(0x4AF29AA8), UINT32_C(0xE401D5AD), UINT32_C(0x85C80ECD), + UINT32_C(0x8AA315A1), UINT32_C(0x2830332D)}, + {UINT32_C(0x71DCE198), UINT32_C(0x56758823), UINT32_C(0x6ACBDEE3), + UINT32_C(0x55AC9D10), UINT32_C(0x575CF4BB), UINT32_C(0xF6D468CF), + UINT32_C(0x576B5C4A), UINT32_C(0x46E4FA98)}}, + {{UINT32_C(0x20D859EF), UINT32_C(0xAD20F820), UINT32_C(0x2A5462B0), + UINT32_C(0x38091588), UINT32_C(0x2135DA7D), UINT32_C(0x35F45C9F), + UINT32_C(0xF7F20DBD), UINT32_C(0x6B426F91)}, + {UINT32_C(0xF96E77D2), UINT32_C(0x4A0D8CBE), UINT32_C(0xCC51D3F4), + UINT32_C(0x8FC36F5B), UINT32_C(0xBE16A0A8), UINT32_C(0x7A1870DD), + UINT32_C(0x114DB780), UINT32_C(0x29C3E2B3)}}, + {{UINT32_C(0x21779E6E), UINT32_C(0xFF692A4C), UINT32_C(0xA6026EC1), + UINT32_C(0x698231AB), UINT32_C(0xEF03E21B), UINT32_C(0xDAB0D835), + UINT32_C(0xC846D56F), UINT32_C(0x770BFFAC)}, + {UINT32_C(0x3B8B0747), UINT32_C(0xCD28722D), UINT32_C(0x32AE95E5), + UINT32_C(0x3DEFE040), UINT32_C(0x0F9857D6), UINT32_C(0x6F5D816A), + UINT32_C(0xFC630F5E), UINT32_C(0x2E483FED)}}, + {{UINT32_C(0x967C7140), UINT32_C(0xDBF82EC4), UINT32_C(0x0D20A2A5), + UINT32_C(0x6265CAD1), UINT32_C(0x5862DEFE), UINT32_C(0x1509652B), + UINT32_C(0x94A284E5), UINT32_C(0x699DD939)}, + {UINT32_C(0x0B2CC732), UINT32_C(0xC0116646), UINT32_C(0x94C3EF86), + UINT32_C(0x583FE012), UINT32_C(0xCD353430), UINT32_C(0xCD5DAEA8), + UINT32_C(0xC7ADA62B), UINT32_C(0x2B39A746)}}, + {{UINT32_C(0xE4257BBC), UINT32_C(0xF449B989), UINT32_C(0xA90DCCE6), + UINT32_C(0x95BA21BA), UINT32_C(0x93CA4ACD), UINT32_C(0xDD53AD5C), + UINT32_C(0x0BB4213B), UINT32_C(0x7FCF2738)}, + {UINT32_C(0xC2E7E54E), UINT32_C(0x0E57C1C0), UINT32_C(0xA1A0E975), + UINT32_C(0xD1769DAE), UINT32_C(0xC3B6E13B), UINT32_C(0x68F62C4E), + UINT32_C(0x781242D8), UINT32_C(0x75152F9A)}}, + {{UINT32_C(0x24B8B820), UINT32_C(0x4D582768), UINT32_C(0x5BBD9F84), + UINT32_C(0x36E37AC4), UINT32_C(0xDA076F12), UINT32_C(0x1F34414A), + UINT32_C(0x3E0333C6), UINT32_C(0x08A77C28)}, + {UINT32_C(0xD9193382), UINT32_C(0xBB1F017D), UINT32_C(0x83A5612D), + UINT32_C(0x56E9AA24), UINT32_C(0xD0B4554F), UINT32_C(0x6959B02B), + UINT32_C(0xE4559B52), UINT32_C(0x2479BC56)}}, + }, + { + {{UINT32_C(0x0F570A8E), UINT32_C(0x96D631C6), UINT32_C(0xD714B807), + UINT32_C(0xE3F566A3), UINT32_C(0xEF7E1550), UINT32_C(0x564DD512), + UINT32_C(0x79FA2F58), UINT32_C(0x1C5CF24A)}, + {UINT32_C(0x897958DB), UINT32_C(0x973BA599), UINT32_C(0x11A9CBB1), + UINT32_C(0x93951D17), UINT32_C(0xA37A969A), UINT32_C(0x86BA17F6), + UINT32_C(0xA069B195), UINT32_C(0x4807CAC7)}}, + {{UINT32_C(0x6665B35E), UINT32_C(0xB64AC0D4), UINT32_C(0x7EF72C68), + UINT32_C(0xBA9CD394), UINT32_C(0x9C4CBC44), UINT32_C(0x838807B2), + UINT32_C(0x82770197), UINT32_C(0x2675D268)}, + {UINT32_C(0x17087FA9), UINT32_C(0xBFC2F137), UINT32_C(0xE7B79B31), + UINT32_C(0x811E644B), UINT32_C(0xC963A061), UINT32_C(0x597CE23F), + UINT32_C(0x2EA0DEB0), UINT32_C(0x40BC32E4)}}, + {{UINT32_C(0x27C85959), UINT32_C(0xC0AEFB50), UINT32_C(0x058E0FDD), + UINT32_C(0x76D1087E), UINT32_C(0x7E51A6F8), UINT32_C(0x6ADA5AAF), + UINT32_C(0x054A058D), UINT32_C(0x424B16E0)}, + {UINT32_C(0x63AF9766), UINT32_C(0x9A2C20A9), UINT32_C(0x3CF18DAB), + UINT32_C(0x4C1CB532), UINT32_C(0x6C5D6A00), UINT32_C(0x599CD929), + UINT32_C(0x8AA311BF), UINT32_C(0x57C39BAE)}}, + {{UINT32_C(0xCD987F02), UINT32_C(0x3FDF5B46), UINT32_C(0x353175C4), + UINT32_C(0x57755078), UINT32_C(0xCD578394), UINT32_C(0x80223EC0), + UINT32_C(0xAEB7D278), UINT32_C(0x04BBA6AC)}, + {UINT32_C(0x8688BFB2), UINT32_C(0xD27FD2BE), UINT32_C(0xC27A62E5), + UINT32_C(0xB2F80278), UINT32_C(0x339429D8), UINT32_C(0x8BA6FB07), + UINT32_C(0x3AB70AA0), UINT32_C(0x57737FF6)}}, + {{UINT32_C(0x8EAEB3C9), UINT32_C(0x0140E47F), UINT32_C(0x735AC8EA), + UINT32_C(0xB91C9798), UINT32_C(0x83D4EFAA), UINT32_C(0x325E0312), + UINT32_C(0xD9C5888E), UINT32_C(0x1E7DA3BE)}, + {UINT32_C(0xF7F1EB13), UINT32_C(0xA210CDA6), UINT32_C(0x936EA9E9), + UINT32_C(0xEDC1F6B3), UINT32_C(0x1B097F65), UINT32_C(0x46E831C4), + UINT32_C(0x1939A0AE), UINT32_C(0x00857601)}}, + {{UINT32_C(0x1F68BB40), UINT32_C(0x7C26F711), UINT32_C(0x39DDBE6D), + UINT32_C(0xEA69C845), UINT32_C(0xE5316F22), UINT32_C(0x590BF426), + UINT32_C(0xCC2DF9C9), UINT32_C(0x40CDC921)}, + {UINT32_C(0xF3F991C6), UINT32_C(0x28A32DDE), UINT32_C(0x5356CA78), + UINT32_C(0xD75B59E6), UINT32_C(0xD1F5F318), UINT32_C(0xB5DD3861), + UINT32_C(0xE7929834), UINT32_C(0x09EB1A2D)}}, + {{UINT32_C(0xDBC0370D), UINT32_C(0x701F9A2D), UINT32_C(0x2870B59D), + UINT32_C(0x559D0FAF), UINT32_C(0x55367B5D), UINT32_C(0xE89E5DF0), + UINT32_C(0x74005A58), UINT32_C(0x22BBD4FC)}, + {UINT32_C(0x99CDC76B), UINT32_C(0x7ACED1E4), UINT32_C(0xE3C219D3), + UINT32_C(0xD41C827C), UINT32_C(0x8221D91F), UINT32_C(0x5AF3F2AE), + UINT32_C(0xE5B6BC98), UINT32_C(0x6D62C990)}}, + {{UINT32_C(0x7FFC9D0F), UINT32_C(0x23B2A0BF), UINT32_C(0x974CA299), + UINT32_C(0xED98F71D), UINT32_C(0x151D559B), UINT32_C(0x10F8C07A), + UINT32_C(0x8E949C62), UINT32_C(0x40E46FC3)}, + {UINT32_C(0xBBE55338), UINT32_C(0x0CF53E34), UINT32_C(0x115520D4), + UINT32_C(0xF2D6CF26), UINT32_C(0x590B4E23), UINT32_C(0x915FF09A), + UINT32_C(0xBEDC75F2), UINT32_C(0x072E4233)}}, + {{UINT32_C(0x997E9BFA), UINT32_C(0xB67A6B60), UINT32_C(0x973BC3E7), + UINT32_C(0xE7686AC9), UINT32_C(0x0B228320), UINT32_C(0x9525B449), + UINT32_C(0x7ADE8F19), UINT32_C(0x6C727583)}, + {UINT32_C(0x062FF3D5), UINT32_C(0x3D064298), UINT32_C(0x07E22768), + UINT32_C(0x5483826C), UINT32_C(0x1F7A64A4), UINT32_C(0xF4ADE921), + UINT32_C(0xBD92EB25), UINT32_C(0x70BDDCF7)}}, + {{UINT32_C(0x5D8A9E36), UINT32_C(0xA8DB3611), UINT32_C(0xFA81065A), + UINT32_C(0xAA6A5F33), UINT32_C(0x366DDA90), UINT32_C(0x8EC120A3), + UINT32_C(0xD8A15CF7), UINT32_C(0x2AA0AB25)}, + {UINT32_C(0xA0DFFB9C), UINT32_C(0x5E11E169), UINT32_C(0x118408A7), + UINT32_C(0x8C7572E9), UINT32_C(0x35833ADF), UINT32_C(0x4EEFD13E), + UINT32_C(0xFC2C1811), UINT32_C(0x2C6732E8)}}, + {{UINT32_C(0xB1537DF6), UINT32_C(0x15D063F9), UINT32_C(0x0414FCFD), + UINT32_C(0x864176B3), UINT32_C(0x8FF9E32E), UINT32_C(0x9C0A194C), + UINT32_C(0xDDE1540B), UINT32_C(0x4DB14C6F)}, + {UINT32_C(0x31F6493F), UINT32_C(0xFAA4AED4), UINT32_C(0xD3C41A46), + UINT32_C(0x2C479F1D), UINT32_C(0x8E5E85A2), UINT32_C(0xC3119667), + UINT32_C(0x84E9A76C), UINT32_C(0x7E567C80)}}, + {{UINT32_C(0x689A6B95), UINT32_C(0xB9E2C92A), UINT32_C(0x3B635B01), + UINT32_C(0xCCEAC383), UINT32_C(0x34AAB952), UINT32_C(0x04FEA465), + UINT32_C(0x63B5CF63), UINT32_C(0x772E5027)}, + {UINT32_C(0x25830581), UINT32_C(0xCB94F5D2), UINT32_C(0xC77FB7DE), + UINT32_C(0x791004AF), UINT32_C(0x5140E4AE), UINT32_C(0x53273C33), + UINT32_C(0xA524419F), UINT32_C(0x0C2D329E)}}, + {{UINT32_C(0xB307B0E4), UINT32_C(0xB7CEDA36), UINT32_C(0x0F8F9667), + UINT32_C(0x12DF7FD0), UINT32_C(0xBF62BD94), UINT32_C(0x74274002), + UINT32_C(0xC436C319), UINT32_C(0x6765C73D)}, + {UINT32_C(0xF6EEC946), UINT32_C(0x79B64CE5), UINT32_C(0xDAB258B6), + UINT32_C(0x3B1B4B43), UINT32_C(0xEE1F8B84), UINT32_C(0x377819A3), + UINT32_C(0x76D0EB1F), UINT32_C(0x1F45F1D6)}}, + {{UINT32_C(0x58C953AD), UINT32_C(0xCC5BF9B3), UINT32_C(0x7BAD1D2C), + UINT32_C(0x8303250F), UINT32_C(0xF164972B), UINT32_C(0xBCA7BC36), + UINT32_C(0xB1DFDA64), UINT32_C(0x2CACF8A9)}, + {UINT32_C(0xD4E2A06F), UINT32_C(0xB03A59B9), UINT32_C(0x1B7FB8FD), + UINT32_C(0xFED68E68), UINT32_C(0x7E747AE6), UINT32_C(0x08F75A52), + UINT32_C(0x37A4420B), UINT32_C(0x3299EA6B)}}, + {{UINT32_C(0x932E5BA6), UINT32_C(0x49A00BE6), UINT32_C(0x56114C4B), + UINT32_C(0x49212505), UINT32_C(0x376183C7), UINT32_C(0x786B7D31), + UINT32_C(0xDD8A5EAF), UINT32_C(0x01F9E229)}, + {UINT32_C(0x53094AD4), UINT32_C(0xE9B8E990), UINT32_C(0xBFAEDFA8), + UINT32_C(0x2EDA305C), UINT32_C(0x7F9E3BC8), UINT32_C(0x34443726), + UINT32_C(0x6B55B3C3), UINT32_C(0x1729519C)}}, + {{UINT32_C(0x50A597D6), UINT32_C(0xEA5A68C0), UINT32_C(0xF1E86D1B), + UINT32_C(0xA65147D4), UINT32_C(0x8B47CDEB), UINT32_C(0x554FA36B), + UINT32_C(0x9F24FFED), UINT32_C(0x7F38364B)}, + {UINT32_C(0x1D2A8E2B), UINT32_C(0x657C7E05), UINT32_C(0xE3F64D62), + UINT32_C(0x8270F1A7), UINT32_C(0x953AF5A2), UINT32_C(0xFD258B59), + UINT32_C(0x43510AA3), UINT32_C(0x6DE01141)}}, + }, + { + {{UINT32_C(0x0D7A5CBE), UINT32_C(0x48390428), UINT32_C(0xDE441E5E), + UINT32_C(0xD37E8C1F), UINT32_C(0x0DE31C8C), UINT32_C(0x908C88B8), + UINT32_C(0x0ACD87CE), UINT32_C(0x7C0E24BB)}, + {UINT32_C(0x25ECCCE8), UINT32_C(0x4A781177), UINT32_C(0xCBDA746F), + UINT32_C(0xC06C2F7A), UINT32_C(0xAB565DD4), UINT32_C(0xDB9E9A08), + UINT32_C(0xBE776F5B), UINT32_C(0x1E9B44C0)}}, + {{UINT32_C(0x85B54ABC), UINT32_C(0x7CFD4E50), UINT32_C(0xE7A44F8B), + UINT32_C(0x41A4A4DC), UINT32_C(0xA4422576), UINT32_C(0x751C5052), + UINT32_C(0xD56B6CB1), UINT32_C(0x534FE0B2)}, + {UINT32_C(0xD5D767D0), UINT32_C(0x22DAA5CD), UINT32_C(0x0AF8E22C), + UINT32_C(0x9C1999AB), UINT32_C(0x99259068), UINT32_C(0xC70C0932), + UINT32_C(0xFD0839F0), UINT32_C(0x459D212E)}}, + {{UINT32_C(0xFD32D79B), UINT32_C(0xA207E7DE), UINT32_C(0x410B479F), + UINT32_C(0xA7B54991), UINT32_C(0xD68E5CDC), UINT32_C(0x806912B6), + UINT32_C(0x92AB8B64), UINT32_C(0x1CB7B68C)}, + {UINT32_C(0xDF98339F), UINT32_C(0x3DB85378), UINT32_C(0x83EA7A18), + UINT32_C(0xA24101DC), UINT32_C(0xE25522C5), UINT32_C(0x8892367C), + UINT32_C(0x7753A2C3), UINT32_C(0x491A8BB3)}}, + {{UINT32_C(0x8C7875A7), UINT32_C(0x571C547E), UINT32_C(0xE9747C13), + UINT32_C(0x7E5F23E4), UINT32_C(0x1058548D), UINT32_C(0x00F3BBB2), + UINT32_C(0xE2397102), UINT32_C(0x7081F172)}, + {UINT32_C(0x6B573034), UINT32_C(0xB4351B8A), UINT32_C(0xC1A094F0), + UINT32_C(0xB35A4F44), UINT32_C(0xAE951E96), UINT32_C(0xE2C1DAED), + UINT32_C(0xB9DAA081), UINT32_C(0x5CF2A742)}}, + {{UINT32_C(0x9828ED9F), UINT32_C(0xB4F0D3F0), UINT32_C(0xA9251386), + UINT32_C(0x6DB312FB), UINT32_C(0x537203F2), UINT32_C(0xC9A4583F), + UINT32_C(0x9CE76D40), UINT32_C(0x5E099639)}, + {UINT32_C(0xC9F8CEA8), UINT32_C(0x3381B894), UINT32_C(0x626E07E8), + UINT32_C(0x8242DAF8), UINT32_C(0x6077DFD9), UINT32_C(0x64A0B68C), + UINT32_C(0x563CF051), UINT32_C(0x3CC462C0)}}, + {{UINT32_C(0x87AF4A45), UINT32_C(0x8937364C), UINT32_C(0x2DE0FD60), + UINT32_C(0x8C4ACBFA), UINT32_C(0x472A5D8A), UINT32_C(0xF10AED11), + UINT32_C(0x5380C2E6), UINT32_C(0x3F5674B5)}, + {UINT32_C(0x2BF8A452), UINT32_C(0x8F4FD0F5), UINT32_C(0xC7390418), + UINT32_C(0xB436E388), UINT32_C(0xE6EE9406), UINT32_C(0xAFAB7B7C), + UINT32_C(0x951739BA), UINT32_C(0x4F623177)}}, + {{UINT32_C(0xA9B50F2A), UINT32_C(0x90B0ED35), UINT32_C(0xAC6CF217), + UINT32_C(0x46DC3F91), UINT32_C(0x2C7B119C), UINT32_C(0x2F142031), + UINT32_C(0x07D79225), UINT32_C(0x55A93CBC)}, + {UINT32_C(0xB304A642), UINT32_C(0x45E0DD7D), UINT32_C(0xD572D446), + UINT32_C(0xB743DFCD), UINT32_C(0xAC74B368), UINT32_C(0x867B02EB), + UINT32_C(0x169B94B0), UINT32_C(0x67B2B86C)}}, + {{UINT32_C(0x483CFEDB), UINT32_C(0x18396DA7), UINT32_C(0x8A3A07C2), + UINT32_C(0x6C6E0370), UINT32_C(0xAB554998), UINT32_C(0xF32A1AFE), + UINT32_C(0x87D1C136), UINT32_C(0x408C9119)}, + {UINT32_C(0x4BBE0B78), UINT32_C(0x755F6325), UINT32_C(0xD1178550), + UINT32_C(0xDC4A7319), UINT32_C(0xB3B9E459), UINT32_C(0x44B49813), + UINT32_C(0x4C3D3620), UINT32_C(0x0294B9A9)}}, + {{UINT32_C(0x067FA6FF), UINT32_C(0x6480F6FE), UINT32_C(0xF307A52E), + UINT32_C(0x67891400), UINT32_C(0x7F865DA8), UINT32_C(0x9F846EF8), + UINT32_C(0xAE02F671), UINT32_C(0x318DAC55)}, + {UINT32_C(0xE288A317), UINT32_C(0x91119652), UINT32_C(0x038C61B8), + UINT32_C(0x4D7CF2B8), UINT32_C(0x5154C1A8), UINT32_C(0x098F80DD), + UINT32_C(0xD239A2D4), UINT32_C(0x10C04F87)}}, + {{UINT32_C(0x5CA6F183), UINT32_C(0x13460926), UINT32_C(0xD52001ED), + UINT32_C(0x5E97AD18), UINT32_C(0xE14843DF), UINT32_C(0x7DCD2477), + UINT32_C(0x98A30426), UINT32_C(0x27DAB276)}, + {UINT32_C(0xE120D80C), UINT32_C(0x7939CAE3), UINT32_C(0x51E5B81A), + UINT32_C(0xC9F46466), UINT32_C(0xE2E49D52), UINT32_C(0xED620322), + UINT32_C(0xFA172BBB), UINT32_C(0x3C0F5A2E)}}, + {{UINT32_C(0x5DB1196B), UINT32_C(0xBFFE8742), UINT32_C(0x49B7214E), + UINT32_C(0xCD45F8ED), UINT32_C(0xC35F5C33), UINT32_C(0x923ABA47), + UINT32_C(0x83F3EE48), UINT32_C(0x16ED1F10)}, + {UINT32_C(0x99274930), UINT32_C(0x042E6DF0), UINT32_C(0xC5F8EA16), + UINT32_C(0xE8AE1DCF), UINT32_C(0xF02EA2B2), UINT32_C(0x004462CB), + UINT32_C(0xD284B04E), UINT32_C(0x427F9381)}}, + {{UINT32_C(0x75EFACC5), UINT32_C(0x4CD481F8), UINT32_C(0x21C83368), + UINT32_C(0xD98C3FD4), UINT32_C(0x3894CE88), UINT32_C(0x4335E7C8), + UINT32_C(0x955A298C), UINT32_C(0x18321F87)}, + {UINT32_C(0xD1716E18), UINT32_C(0x073DD00A), UINT32_C(0xFE0BFE61), + UINT32_C(0x66D82A5F), UINT32_C(0x2310C532), UINT32_C(0x7D869E20), + UINT32_C(0x19BF4704), UINT32_C(0x29A376FB)}}, + {{UINT32_C(0xC149B5B0), UINT32_C(0xA1B12B35), UINT32_C(0x1E828959), + UINT32_C(0x3411B231), UINT32_C(0x560D99FB), UINT32_C(0x56417519), + UINT32_C(0xEBB52124), UINT32_C(0x4E0EB143)}, + {UINT32_C(0x6AEF3801), UINT32_C(0x7B594B5E), UINT32_C(0x9ECB536E), + UINT32_C(0x00AEE12E), UINT32_C(0x56E23145), UINT32_C(0x6BF0FB29), + UINT32_C(0x61AE8E98), UINT32_C(0x2B2D83B9)}}, + {{UINT32_C(0x6AC27F2D), UINT32_C(0x9CB3E2E8), UINT32_C(0x5A6280AA), + UINT32_C(0x82BACA96), UINT32_C(0x2C6B7C8F), UINT32_C(0xCBC6C01B), + UINT32_C(0xD0C01ABD), UINT32_C(0x390511BC)}, + {UINT32_C(0x49551C0D), UINT32_C(0xB322D972), UINT32_C(0x7B6489C8), + UINT32_C(0x7905E82E), UINT32_C(0x40EEC20D), UINT32_C(0x4DD0CE8B), + UINT32_C(0x2409298A), UINT32_C(0x5C0B3EE7)}}, + {{UINT32_C(0xB635FB99), UINT32_C(0x4418D685), UINT32_C(0x3ACE8B39), + UINT32_C(0x652EA608), UINT32_C(0x46FC4047), UINT32_C(0xE586FBDC), + UINT32_C(0xD8CC13D8), UINT32_C(0x3C832D34)}, + {UINT32_C(0xF7AA54A1), UINT32_C(0x14CC9F23), UINT32_C(0x07153B9F), + UINT32_C(0x80D094E6), UINT32_C(0x6A2EED8E), UINT32_C(0x0776E540), + UINT32_C(0x77249085), UINT32_C(0x03CC3BFC)}}, + {{UINT32_C(0x1308C1A8), UINT32_C(0x5F8F281F), UINT32_C(0xD1AFC4B7), + UINT32_C(0x31C8E737), UINT32_C(0x41AE8EF2), UINT32_C(0x67785298), + UINT32_C(0xFD028A4B), UINT32_C(0x17716086)}, + {UINT32_C(0xF922E100), UINT32_C(0x1A2083E0), UINT32_C(0xD53FE691), + UINT32_C(0xD67EC9D1), UINT32_C(0xECCA8DEB), UINT32_C(0x2DF8B6ED), + UINT32_C(0xBCCC999E), UINT32_C(0x3B595EE4)}}, + }, + { + {{UINT32_C(0x5A4B8C04), UINT32_C(0x11F03F89), UINT32_C(0x7DAE8E6B), + UINT32_C(0x254C3648), UINT32_C(0x637CDB83), UINT32_C(0xAB6EAAF1), + UINT32_C(0xFDDED8F6), UINT32_C(0x41F52243)}, + {UINT32_C(0xBBDF3270), UINT32_C(0x487078E1), UINT32_C(0x339CEA28), + UINT32_C(0x98853B49), UINT32_C(0xAB3EDE57), UINT32_C(0x8AF0522B), + UINT32_C(0x85EB4CC0), UINT32_C(0x734D711F)}}, + {{UINT32_C(0xF86BA644), UINT32_C(0xFD1F46AD), UINT32_C(0xA3299855), + UINT32_C(0xA5332B97), UINT32_C(0xD9493634), UINT32_C(0x61BE90DB), + UINT32_C(0xC2705911), UINT32_C(0x308F09B1)}, + {UINT32_C(0x0B7918A5), UINT32_C(0xD59F1B1A), UINT32_C(0xCF6399E6), + UINT32_C(0x9CF333D0), UINT32_C(0xFBB26B6B), UINT32_C(0xD09C63CD), + UINT32_C(0xA6536647), UINT32_C(0x76C27913)}}, + {{UINT32_C(0xAAAB555C), UINT32_C(0x3DF1811F), UINT32_C(0x886C828B), + UINT32_C(0x60853351), UINT32_C(0xF1E87F41), UINT32_C(0xF6CA7707), + UINT32_C(0x7D7082E6), UINT32_C(0x5B4F6EDF)}, + {UINT32_C(0x3F672DE7), UINT32_C(0xADE518E0), UINT32_C(0x022541B2), + UINT32_C(0x00ED0B84), UINT32_C(0x618E8969), UINT32_C(0x04FE5DD6), + UINT32_C(0xDB9CCA4D), UINT32_C(0x2F5F5C65)}}, + {{UINT32_C(0x96BDAE2C), UINT32_C(0x00B69B45), UINT32_C(0x770604C4), + UINT32_C(0x06DB22CF), UINT32_C(0x856585C3), UINT32_C(0xC2EB7F8F), + UINT32_C(0x0413C614), UINT32_C(0x6E322539)}, + {UINT32_C(0x70A46872), UINT32_C(0x22C09EA8), UINT32_C(0x1FF23734), + UINT32_C(0x143E73BC), UINT32_C(0x575C20B4), UINT32_C(0xCAC5E2DD), + UINT32_C(0x3FEBE787), UINT32_C(0x225E5390)}}, + {{UINT32_C(0xBE9C512D), UINT32_C(0x594FEA4E), UINT32_C(0x92CB73AE), + UINT32_C(0x58507092), UINT32_C(0xB0CE2096), UINT32_C(0xFD8EFC7D), + UINT32_C(0xE031D6AB), UINT32_C(0x3B58C199)}, + {UINT32_C(0x479F23E4), UINT32_C(0x55DA1CBD), UINT32_C(0xA6DB6137), + UINT32_C(0x060C6BB5), UINT32_C(0x6864488E), UINT32_C(0xD8319CF8), + UINT32_C(0x21B02EDA), UINT32_C(0x6C15A31B)}}, + {{UINT32_C(0x8CA7084D), UINT32_C(0x13C48372), UINT32_C(0xA171ECE5), + UINT32_C(0xF7554E59), UINT32_C(0x23A97699), UINT32_C(0x7425C5D8), + UINT32_C(0x71E1120E), UINT32_C(0x6F2C68DA)}, + {UINT32_C(0x24324B64), UINT32_C(0x9591B9B6), UINT32_C(0xC02AC704), + UINT32_C(0x2DA33472), UINT32_C(0x81EE1295), UINT32_C(0xC5DE7FC9), + UINT32_C(0x5D6E93C6), UINT32_C(0x6A646A44)}}, + {{UINT32_C(0xA39D6554), UINT32_C(0x48684061), UINT32_C(0xC3DF57B6), + UINT32_C(0xB70ABF61), UINT32_C(0x58B9EEE3), UINT32_C(0x9824AFD6), + UINT32_C(0x3A14A733), UINT32_C(0x46EBE9D1)}, + {UINT32_C(0xD74F8E94), UINT32_C(0x8E70F95D), UINT32_C(0x6AFCA4E2), + UINT32_C(0xA9D922A2), UINT32_C(0x6988CC16), UINT32_C(0x519A9753), + UINT32_C(0xD545AF8A), UINT32_C(0x711DEF16)}}, + {{UINT32_C(0x811A2BF7), UINT32_C(0x362A5D95), UINT32_C(0x566B90CE), + UINT32_C(0x42A84A33), UINT32_C(0x7C41EC87), UINT32_C(0x25CBC760), + UINT32_C(0xD4B7DBEE), UINT32_C(0x6B77E39C)}, + {UINT32_C(0x833015A4), UINT32_C(0xA98B8201), UINT32_C(0xC31B26F4), + UINT32_C(0xE412E217), UINT32_C(0xE0090782), UINT32_C(0x518BE8F0), + UINT32_C(0x3DB51D4E), UINT32_C(0x08D9F4B6)}}, + {{UINT32_C(0x297D421E), UINT32_C(0x2C80CE87), UINT32_C(0xADBA1498), + UINT32_C(0x2FD137F8), UINT32_C(0x2899AA14), UINT32_C(0xA2ED3D47), + UINT32_C(0xFE4F365A), UINT32_C(0x2AC924A5)}, + {UINT32_C(0x666DC0A0), UINT32_C(0xAC0389B7), UINT32_C(0x8ABF3D9E), + UINT32_C(0x3CC99739), UINT32_C(0xDFBFF83A), UINT32_C(0x33060DB6), + UINT32_C(0x0339C3B8), UINT32_C(0x54EEE215)}}, + {{UINT32_C(0x820F7E4D), UINT32_C(0x06C3A4F5), UINT32_C(0x08C3D311), + UINT32_C(0x86F083E2), UINT32_C(0xFE4B0476), UINT32_C(0x47E29984), + UINT32_C(0xCA7DF6CF), UINT32_C(0x218F52E2)}, + {UINT32_C(0xBF2C2084), UINT32_C(0x59317E26), UINT32_C(0x289A10CF), + UINT32_C(0xEA9C865B), UINT32_C(0x2074FEA3), UINT32_C(0x7AA1E50B), + UINT32_C(0x4B3EFC31), UINT32_C(0x708A1D8C)}}, + {{UINT32_C(0x864817D7), UINT32_C(0x34C5C63E), UINT32_C(0xD89E995B), + UINT32_C(0x0F614043), UINT32_C(0x975E2A03), UINT32_C(0x60CE8BCE), + UINT32_C(0x78493E0C), UINT32_C(0x70916E29)}, + {UINT32_C(0x216782C6), UINT32_C(0xBD0748F9), UINT32_C(0xED32FB72), + UINT32_C(0x0051C65A), UINT32_C(0x4DD64705), UINT32_C(0x9DC5F558), + UINT32_C(0xEEC14B50), UINT32_C(0x674F1A63)}}, + {{UINT32_C(0xDB633FD1), UINT32_C(0x73D6E68E), UINT32_C(0xF52F9537), + UINT32_C(0x7B5F8303), UINT32_C(0x88A74CFB), UINT32_C(0x980FDDDC), + UINT32_C(0x47FC32D1), UINT32_C(0x6419C18F)}, + {UINT32_C(0x870B5D59), UINT32_C(0x93727B4C), UINT32_C(0xCF28021D), + UINT32_C(0x4BCE05DE), UINT32_C(0xAB4F0CE5), UINT32_C(0x3C059B47), + UINT32_C(0xB85FFDBB), UINT32_C(0x77CA7F67)}}, + {{UINT32_C(0xC525088E), UINT32_C(0xDBEADDCE), UINT32_C(0x390D2221), + UINT32_C(0x561E12BE), UINT32_C(0xD9BA7AF0), UINT32_C(0xCD224FC1), + UINT32_C(0x394DC073), UINT32_C(0x03744552)}, + {UINT32_C(0x21BB6B6E), UINT32_C(0xCFC67B49), UINT32_C(0x1B5F8E6A), + UINT32_C(0xD234FD8D), UINT32_C(0x40B7F8B0), UINT32_C(0x6DDBC18B), + UINT32_C(0xDAACCC74), UINT32_C(0x79F40857)}}, + {{UINT32_C(0x9DD71B9C), UINT32_C(0x30E5F990), UINT32_C(0x291124EF), + UINT32_C(0x00FCBFA5), UINT32_C(0x49B8C570), UINT32_C(0xBE595A25), + UINT32_C(0xBC094446), UINT32_C(0x5B4B8141)}, + {UINT32_C(0x469191B6), UINT32_C(0xB22B4F04), UINT32_C(0xD73C4D38), + UINT32_C(0x10845AC8), UINT32_C(0xED0C8224), UINT32_C(0x39C9F0FB), + UINT32_C(0xF5813BEE), UINT32_C(0x7E009DFB)}}, + {{UINT32_C(0xA61D09C0), UINT32_C(0xA47C2989), UINT32_C(0x59E55A9C), + UINT32_C(0x3706F456), UINT32_C(0xEA0259B9), UINT32_C(0x2373976F), + UINT32_C(0x077D20CC), UINT32_C(0x13FC0E09)}, + {UINT32_C(0xE78D29CF), UINT32_C(0xBB24DD05), UINT32_C(0x822CFA02), + UINT32_C(0xD8757A67), UINT32_C(0x3C55A4C6), UINT32_C(0x36CA7486), + UINT32_C(0x3EEABBE1), UINT32_C(0x4234E689)}}, + {{UINT32_C(0xB46BDB51), UINT32_C(0xA2F54D14), UINT32_C(0x675BB770), + UINT32_C(0x8A530B78), UINT32_C(0xDE9F1F8B), UINT32_C(0x617D7E8E), + UINT32_C(0x2DCC4712), UINT32_C(0x799B3E44)}, + {UINT32_C(0xB486FE8C), UINT32_C(0x658A31D8), UINT32_C(0x163D4AF0), + UINT32_C(0x45BAFC29), UINT32_C(0xA5289C8D), UINT32_C(0x3A2C7F66), + UINT32_C(0xB91FF3DB), UINT32_C(0x4ECC3C7D)}}, + }, + { + {{UINT32_C(0xDF4DFD43), UINT32_C(0x738CF1C7), UINT32_C(0xE987084C), + UINT32_C(0x72943A2D), UINT32_C(0x2491FF24), UINT32_C(0xEA21C05F), + UINT32_C(0xDA050094), UINT32_C(0x3D3F4ED7)}, + {UINT32_C(0x61C4054D), UINT32_C(0xF90644E4), UINT32_C(0x3A50E82A), + UINT32_C(0x25379214), UINT32_C(0xC7DEF970), UINT32_C(0x47EDB006), + UINT32_C(0x0F53F307), UINT32_C(0x0F8F031C)}}, + {{UINT32_C(0x724976D5), UINT32_C(0x50FEB6D8), UINT32_C(0xF40C7720), + UINT32_C(0x57AA499F), UINT32_C(0x0DAAF428), UINT32_C(0x6B80AC54), + UINT32_C(0x1F6FC276), UINT32_C(0x7AC6845E)}, + {UINT32_C(0x17A4B9C5), UINT32_C(0x8EC7FAB1), UINT32_C(0xED0C8F97), + UINT32_C(0x8336DD62), UINT32_C(0xB7B7104E), UINT32_C(0x6014A510), + UINT32_C(0xA2911C30), UINT32_C(0x4991A03B)}}, + {{UINT32_C(0xCBCC9BA3), UINT32_C(0x6D353975), UINT32_C(0xC4564492), + UINT32_C(0x23E97E28), UINT32_C(0xF8AEED3E), UINT32_C(0xDF432FDA), + UINT32_C(0x6F6B472C), UINT32_C(0x11DB40DD)}, + {UINT32_C(0x95AA0174), UINT32_C(0x5B87005B), UINT32_C(0x89D9F1A8), + UINT32_C(0x1DB41080), UINT32_C(0x689DF208), UINT32_C(0x5A6BC444), + UINT32_C(0xBF38FF8D), UINT32_C(0x16153F87)}}, + {{UINT32_C(0xFFD3C814), UINT32_C(0xD217003F), UINT32_C(0xFD50AF95), + UINT32_C(0x1ADE64C3), UINT32_C(0x9FFB8BEB), UINT32_C(0x1936332C), + UINT32_C(0xD70CD8D8), UINT32_C(0x6EE322DC)}, + {UINT32_C(0xF2A60976), UINT32_C(0xE40A0419), UINT32_C(0xEF93B05B), + UINT32_C(0xA62F6FA1), UINT32_C(0x596575FF), UINT32_C(0x5978206C), + UINT32_C(0xB68BFE5C), UINT32_C(0x5CDCA200)}}, + {{UINT32_C(0xB7949E33), UINT32_C(0x3FB16AED), UINT32_C(0x40304A1B), + UINT32_C(0x34538928), UINT32_C(0x3BCA4239), UINT32_C(0x7FA35A34), + UINT32_C(0xEE76919E), UINT32_C(0x22FD1AEF)}, + {UINT32_C(0x0F6A5D50), UINT32_C(0x1F8FE6A4), UINT32_C(0x26BBA46B), + UINT32_C(0x27CC704F), UINT32_C(0x3420CC52), UINT32_C(0x230FD0CA), + UINT32_C(0xB3A83D85), UINT32_C(0x3E9E4DA4)}}, + {{UINT32_C(0x7F5CC75E), UINT32_C(0x1D82390E), UINT32_C(0x49D0A605), + UINT32_C(0x70256245), UINT32_C(0x4FF4BC44), UINT32_C(0x5B877813), + UINT32_C(0xB5EC02E4), UINT32_C(0x28E6A057)}, + {UINT32_C(0x2E89FB84), UINT32_C(0xBC7A10DA), UINT32_C(0x20E1EA00), + UINT32_C(0x3AF182E5), UINT32_C(0x9C507274), UINT32_C(0x4B590FFA), + UINT32_C(0xAA7FD65B), UINT32_C(0x26BA94D6)}}, + {{UINT32_C(0x238CC195), UINT32_C(0xC02CC77C), UINT32_C(0xA97EE3E4), + UINT32_C(0x3F175C97), UINT32_C(0xDFA1F9DC), UINT32_C(0x8A28FA23), + UINT32_C(0x1F968D15), UINT32_C(0x35CAC0FF)}, + {UINT32_C(0x37C7C773), UINT32_C(0x0FC41B33), UINT32_C(0xBC999443), + UINT32_C(0x71E06B10), UINT32_C(0x2C87B0A4), UINT32_C(0x073A1ABA), + UINT32_C(0x9E5E8B70), UINT32_C(0x29F29B12)}}, + {{UINT32_C(0xE491FE70), UINT32_C(0xAA25F348), UINT32_C(0xC1713992), + UINT32_C(0x9371F94B), UINT32_C(0x4FA08818), UINT32_C(0x674B478C), + UINT32_C(0xB1407431), UINT32_C(0x6F3C31FE)}, + {UINT32_C(0xD93DD5E1), UINT32_C(0xBB7D37FB), UINT32_C(0x7E04EE7A), + UINT32_C(0xE34A40B8), UINT32_C(0xF3C33528), UINT32_C(0xCF82360D), + UINT32_C(0x01477712), UINT32_C(0x0A3B8FF5)}}, + {{UINT32_C(0x6B718511), UINT32_C(0xA4591471), UINT32_C(0xD2FD6B9B), + UINT32_C(0x7B0CE8DE), UINT32_C(0x6845DBEF), UINT32_C(0xC42544FA), + UINT32_C(0x63AF476A), UINT32_C(0x456A6985)}, + {UINT32_C(0x9CDE4E74), UINT32_C(0x5DD611F6), UINT32_C(0x2B346AEB), + UINT32_C(0x86095683), UINT32_C(0x6E75B3D7), UINT32_C(0xD15C5DA0), + UINT32_C(0xC72D5D2C), UINT32_C(0x220FFD73)}}, + {{UINT32_C(0xD2ED888F), UINT32_C(0x478DA345), UINT32_C(0xE04CBCC7), + UINT32_C(0xA69D4FB9), UINT32_C(0xB3F1179D), UINT32_C(0xA427150A), + UINT32_C(0xD5CEA78A), UINT32_C(0x1DD3B8C2)}, + {UINT32_C(0xB8628A22), UINT32_C(0x9462EFF0), UINT32_C(0xB2CB44A5), + UINT32_C(0xB2FFFF4A), UINT32_C(0x24039BA8), UINT32_C(0x8234A3FF), + UINT32_C(0x916DE889), UINT32_C(0x01BE7202)}}, + {{UINT32_C(0x6DFCEF0B), UINT32_C(0x51066985), UINT32_C(0xDF20CDEE), + UINT32_C(0x25729D98), UINT32_C(0x9693E5EF), UINT32_C(0x872FD39D), + UINT32_C(0x2D859635), UINT32_C(0x72D03AE1)}, + {UINT32_C(0xDACAEB82), UINT32_C(0x3F28F84E), UINT32_C(0xCB5284D7), + UINT32_C(0x9EB40FD6), UINT32_C(0xC5F54041), UINT32_C(0x66C2DCA6), + UINT32_C(0x1C1F2461), UINT32_C(0x4BDBA382)}}, + {{UINT32_C(0x0E0ED176), UINT32_C(0xE5342197), UINT32_C(0xA225A47F), + UINT32_C(0xF588547A), UINT32_C(0x1FEB2259), UINT32_C(0xC83B54ED), + UINT32_C(0x92F3733D), UINT32_C(0x1B037913)}, + {UINT32_C(0x2271ECFA), UINT32_C(0x935C9782), UINT32_C(0x53CFE07C), + UINT32_C(0x5F7E94A6), UINT32_C(0x1B40CA19), UINT32_C(0xBFF5B0E6), + UINT32_C(0x459445E1), UINT32_C(0x36C7851D)}}, + {{UINT32_C(0x588C9748), UINT32_C(0xB6547971), UINT32_C(0x11970562), + UINT32_C(0xCFD8E81B), UINT32_C(0x702FE4FA), UINT32_C(0x41333C80), + UINT32_C(0x962A993B), UINT32_C(0x2F153C8C)}, + {UINT32_C(0x8BDA48AC), UINT32_C(0x028BBD6A), UINT32_C(0xFE1DB02A), + UINT32_C(0x7B076F88), UINT32_C(0x078FB3FC), UINT32_C(0xC9560400), + UINT32_C(0x035907EA), UINT32_C(0x5DCC0946)}}, + {{UINT32_C(0xA6233F1C), UINT32_C(0x93D7CF33), UINT32_C(0xDF2A187C), + UINT32_C(0x03184BC4), UINT32_C(0xE83DAC32), UINT32_C(0x291149BC), + UINT32_C(0xFAEDF216), UINT32_C(0x575F4279)}, + {UINT32_C(0x086FC141), UINT32_C(0x101427B4), UINT32_C(0xD288562E), + UINT32_C(0xC924F2AE), UINT32_C(0xEEF5799A), UINT32_C(0xDB610463), + UINT32_C(0x6A09661D), UINT32_C(0x20F18767)}}, + {{UINT32_C(0xF59D0C20), UINT32_C(0xE39BB775), UINT32_C(0x723A4EF2), + UINT32_C(0x18DA90E2), UINT32_C(0xF56B381B), UINT32_C(0x8E747A7B), + UINT32_C(0xF98F26DC), UINT32_C(0x7EF67224)}, + {UINT32_C(0xE1F94B99), UINT32_C(0xB1373AF5), UINT32_C(0x0C3B6AA8), + UINT32_C(0x1076FBA6), UINT32_C(0xA3A7811C), UINT32_C(0x7FCD0017), + UINT32_C(0x46554E7E), UINT32_C(0x6D1A6973)}}, + {{UINT32_C(0xB9CED2C2), UINT32_C(0xE5734077), UINT32_C(0x1F770914), + UINT32_C(0xC94D17F8), UINT32_C(0x1CD248EB), UINT32_C(0x58B47BCB), + UINT32_C(0x24804B6F), UINT32_C(0x2E06538C)}, + {UINT32_C(0x32E7CA19), UINT32_C(0x275D933F), UINT32_C(0x1FC9241E), + UINT32_C(0x1B982B49), UINT32_C(0x3986B6AC), UINT32_C(0x8B8A6ED5), + UINT32_C(0x35B4EA6A), UINT32_C(0x17568221)}}, + }, + { + {{UINT32_C(0xE796327F), UINT32_C(0x090AD05A), UINT32_C(0xAD21DD4B), + UINT32_C(0xA78DAE5E), UINT32_C(0x9C2F8CBE), UINT32_C(0x8EEC9EDB), + UINT32_C(0x653E0F2D), UINT32_C(0x33E375E0)}, + {UINT32_C(0x8D67AC72), UINT32_C(0xDA19EFF2), UINT32_C(0x2737AB8C), + UINT32_C(0xBFC7E62B), UINT32_C(0x4CF53C12), UINT32_C(0xBBF8BD1D), + UINT32_C(0x45C6D555), UINT32_C(0x5ABFE23F)}}, + {{UINT32_C(0x0DE39342), UINT32_C(0x32460B33), UINT32_C(0xB8977067), + UINT32_C(0x3567454A), UINT32_C(0xF954592C), UINT32_C(0x10A1E47D), + UINT32_C(0x4DD019C4), UINT32_C(0x4DE8C6EF)}, + {UINT32_C(0x1BDAAAFA), UINT32_C(0x1F1D296B), UINT32_C(0x3A75AD99), + UINT32_C(0x4E6B8E8F), UINT32_C(0xA27FE061), UINT32_C(0x259015E1), + UINT32_C(0x9F320632), UINT32_C(0x6B6A4820)}}, + {{UINT32_C(0xA0B5E605), UINT32_C(0x8AA089AF), UINT32_C(0x1B4058FD), + UINT32_C(0x1D6C1EEE), UINT32_C(0xB4E89BEF), UINT32_C(0x1D920534), + UINT32_C(0x16163340), UINT32_C(0x722A3A35)}, + {UINT32_C(0xF33B49B2), UINT32_C(0xA3B9178C), UINT32_C(0x65558E90), + UINT32_C(0xFF8FE9BB), UINT32_C(0x9794EFAE), UINT32_C(0x94766BC0), + UINT32_C(0xFDFAEB42), UINT32_C(0x79A1EFA2)}}, + {{UINT32_C(0xBCB6D558), UINT32_C(0x2FE44B97), UINT32_C(0xDB8B0A79), + UINT32_C(0xB4F4F402), UINT32_C(0x247C32E5), UINT32_C(0xF53D8AB1), + UINT32_C(0x4DA4C009), UINT32_C(0x3B883CE5)}, + {UINT32_C(0x2EC9F1C6), UINT32_C(0xB46168BD), UINT32_C(0x6B8FE01A), + UINT32_C(0xD40BDE7B), UINT32_C(0xCDFE509F), UINT32_C(0x60A5C168), + UINT32_C(0x23BE249E), UINT32_C(0x3314D878)}}, + {{UINT32_C(0x4D9F5769), UINT32_C(0x02511A85), UINT32_C(0xB49D6A8E), + UINT32_C(0x8398F9BD), UINT32_C(0x5D2D7135), UINT32_C(0xE8D773F3), + UINT32_C(0x9DECC331), UINT32_C(0x09B3B8AB)}, + {UINT32_C(0x584C11D9), UINT32_C(0x8D2B269B), UINT32_C(0x6B6B86A9), + UINT32_C(0xF7661944), UINT32_C(0xC7659AF7), UINT32_C(0x719A3620), + UINT32_C(0x37C27DBE), UINT32_C(0x3CFC8DF0)}}, + {{UINT32_C(0x1145B14B), UINT32_C(0x5EE0BE06), UINT32_C(0x23193ED6), + UINT32_C(0xAC6950E4), UINT32_C(0xDF244C7F), UINT32_C(0x7291C44C), + UINT32_C(0x43D744EA), UINT32_C(0x4650C162)}, + {UINT32_C(0x34A084D8), UINT32_C(0x60B92D3F), UINT32_C(0x376E5414), + UINT32_C(0xBBD44A0E), UINT32_C(0x0980F36C), UINT32_C(0x5C0E488A), + UINT32_C(0xD7991A09), UINT32_C(0x4E53FCCA)}}, + {{UINT32_C(0x367B55C2), UINT32_C(0x7A2ADBCF), UINT32_C(0x1FED467E), + UINT32_C(0x96A88B75), UINT32_C(0xFB263845), UINT32_C(0x8E75E37E), + UINT32_C(0xEB508DD0), UINT32_C(0x4C2E47B8)}, + {UINT32_C(0xB19FCD14), UINT32_C(0x20BF51DE), UINT32_C(0x14CB67D0), + UINT32_C(0xD9071749), UINT32_C(0x29EBDA7C), UINT32_C(0xEC90714B), + UINT32_C(0x634C0F2E), UINT32_C(0x4ACADAA6)}}, + {{UINT32_C(0xEC715EC9), UINT32_C(0xA516B9B8), UINT32_C(0x42B8A87B), + UINT32_C(0xC7DCA263), UINT32_C(0xDA27B456), UINT32_C(0x2CE450C9), + UINT32_C(0x00A8819F), UINT32_C(0x3C974812)}, + {UINT32_C(0xECDED574), UINT32_C(0xF4822C23), UINT32_C(0x19FA48D4), + UINT32_C(0xFA737FAD), UINT32_C(0x45D718E0), UINT32_C(0xE34B2F2A), + UINT32_C(0xBEA7B540), UINT32_C(0x1D6F19FE)}}, + {{UINT32_C(0x98E24789), UINT32_C(0xADC8FCE7), UINT32_C(0x45869609), + UINT32_C(0xFE2F890C), UINT32_C(0x78A35C19), UINT32_C(0x6466E03C), + UINT32_C(0xC1F34AA9), UINT32_C(0x24C70FED)}, + {UINT32_C(0x57747DD1), UINT32_C(0x89530F75), UINT32_C(0x2B8CDE2D), + UINT32_C(0x343DE05B), UINT32_C(0x35CC8D5A), UINT32_C(0xC33134E3), + UINT32_C(0xAC9B4F2B), UINT32_C(0x3CCEFC38)}}, + {{UINT32_C(0xEF923364), UINT32_C(0x84C904B8), UINT32_C(0xBDDD31D8), + UINT32_C(0x46E1FECF), UINT32_C(0xFAE79B6B), UINT32_C(0xA8126DD6), + UINT32_C(0xFBF05C9A), UINT32_C(0x4A53C034)}, + {UINT32_C(0xBE8F255F), UINT32_C(0x44CA3ACB), UINT32_C(0xEC319885), + UINT32_C(0x6F0FD374), UINT32_C(0xF1836DC2), UINT32_C(0xADBCB4AA), + UINT32_C(0x65187EE9), UINT32_C(0x6CC3A596)}}, + {{UINT32_C(0xB397B5E7), UINT32_C(0x941E7821), UINT32_C(0xFEE2A9D5), + UINT32_C(0xD3457371), UINT32_C(0x66382F60), UINT32_C(0x9F69BE44), + UINT32_C(0xA1F49E9B), UINT32_C(0x6DCEAD04)}, + {UINT32_C(0x3BF21647), UINT32_C(0xDC6BC23B), UINT32_C(0xB5271BE9), + UINT32_C(0x1500FD7F), UINT32_C(0xF23FDF3D), UINT32_C(0x9B0994DD), + UINT32_C(0x45065CF7), UINT32_C(0x38A2ECEB)}}, + {{UINT32_C(0x0DCA8BF4), UINT32_C(0x2667CEFE), UINT32_C(0xE46EB469), + UINT32_C(0x8227ACB3), UINT32_C(0xA75C5B8B), UINT32_C(0x4C20677D), + UINT32_C(0xB36ACDFE), UINT32_C(0x224FC5B4)}, + {UINT32_C(0x7A6A01D3), UINT32_C(0xA0007E14), UINT32_C(0xF8A64EED), + UINT32_C(0x15C79558), UINT32_C(0x93DEDC09), UINT32_C(0xFB58A76A), + UINT32_C(0x26F10A98), UINT32_C(0x2057DDDC)}}, + {{UINT32_C(0xBDB27AE4), UINT32_C(0x1FF658AE), UINT32_C(0xDDD96647), + UINT32_C(0x7F30DF57), UINT32_C(0xC7294313), UINT32_C(0x63490B8D), + UINT32_C(0x5435869E), UINT32_C(0x0EAEC573)}, + {UINT32_C(0xDF115B78), UINT32_C(0x85F05C49), UINT32_C(0x62992F5D), + UINT32_C(0x95739C0C), UINT32_C(0x2B573963), UINT32_C(0x72F14319), + UINT32_C(0x86328FF4), UINT32_C(0x05600E64)}}, + {{UINT32_C(0xEAB0F425), UINT32_C(0x9BE7331F), UINT32_C(0x74447C20), + UINT32_C(0x2E4CF5AA), UINT32_C(0x66243D2A), UINT32_C(0x9B26F512), + UINT32_C(0x84AB5627), UINT32_C(0x77C96722)}, + {UINT32_C(0x601673B4), UINT32_C(0xEC545427), UINT32_C(0x2F127AF7), + UINT32_C(0xEF6A34FB), UINT32_C(0xE2DFD269), UINT32_C(0x519559C1), + UINT32_C(0x8258E37A), UINT32_C(0x34D7D754)}}, + {{UINT32_C(0x5E8B5281), UINT32_C(0xC113747B), UINT32_C(0xE04D779B), + UINT32_C(0x0C085456), UINT32_C(0x1CCBCFC6), UINT32_C(0x3E326052), + UINT32_C(0x2A37D19F), UINT32_C(0x5C954CC1)}, + {UINT32_C(0x9124435B), UINT32_C(0xB1A4A5B3), UINT32_C(0x18ED98E7), + UINT32_C(0x5E8B8D41), UINT32_C(0x144A3793), UINT32_C(0xC973D969), + UINT32_C(0x88DD8B49), UINT32_C(0x0CB98CC8)}}, + {{UINT32_C(0xB48D04DF), UINT32_C(0x0E0233B2), UINT32_C(0x7BEAA4A5), + UINT32_C(0x1B3916E0), UINT32_C(0xB672BE8C), UINT32_C(0xA24A4BE4), + UINT32_C(0x845AB94D), UINT32_C(0x7A61506D)}, + {UINT32_C(0xE7F4CA3B), UINT32_C(0x160DFA0F), UINT32_C(0xD84C1148), + UINT32_C(0xA9562C89), UINT32_C(0x92A276EB), UINT32_C(0x52979B95), + UINT32_C(0x924E86E9), UINT32_C(0x17869B53)}}, + }, + { + {{UINT32_C(0x1A86D0D8), UINT32_C(0x5D39F478), UINT32_C(0xFB8BC8A9), + UINT32_C(0xDE5932DA), UINT32_C(0x2F5B4B70), UINT32_C(0xD706C6D7), + UINT32_C(0x8A36AFC2), UINT32_C(0x53F450FC)}, + {UINT32_C(0x1E550B3B), UINT32_C(0xE1DC3540), UINT32_C(0x8B7EB6D2), + UINT32_C(0x475507DC), UINT32_C(0xDFA2E5F7), UINT32_C(0xF803F78A), + UINT32_C(0xC48097FF), UINT32_C(0x40B5F263)}}, + {{UINT32_C(0x226CDB1F), UINT32_C(0x336FB00E), UINT32_C(0x88215C40), + UINT32_C(0xDDC1BB02), UINT32_C(0x73C07FD0), UINT32_C(0x6C4DD40E), + UINT32_C(0x8F7D15E7), UINT32_C(0x4D0D2E49)}, + {UINT32_C(0xD2061402), UINT32_C(0xAF96E9B3), UINT32_C(0x1372FCF8), + UINT32_C(0x15A3084A), UINT32_C(0x307B02D6), UINT32_C(0x91B571E6), + UINT32_C(0x53AE7705), UINT32_C(0x2239592F)}}, + {{UINT32_C(0xC20B6645), UINT32_C(0x7D8615A1), UINT32_C(0xC7C4465B), + UINT32_C(0xF4875767), UINT32_C(0x861702AB), UINT32_C(0xF6D3E718), + UINT32_C(0x131F726A), UINT32_C(0x7F014A53)}, + {UINT32_C(0xDAAB77CA), UINT32_C(0x30809F8F), UINT32_C(0x28F944D3), + UINT32_C(0x7CE8DC61), UINT32_C(0x9AEEF6A1), UINT32_C(0xF915111D), + UINT32_C(0x206902FD), UINT32_C(0x246D7CC8)}}, + {{UINT32_C(0xEF806225), UINT32_C(0x7677488B), UINT32_C(0xF4C75EAE), + UINT32_C(0x994C8104), UINT32_C(0x4E0C8988), UINT32_C(0x17586D4E), + UINT32_C(0x90E33A2A), UINT32_C(0x70E52580)}, + {UINT32_C(0x022D2FED), UINT32_C(0xB993F26A), UINT32_C(0x689FBFBD), + UINT32_C(0x955C130D), UINT32_C(0xA3612E8E), UINT32_C(0x0D3D1C63), + UINT32_C(0xB91A8DE6), UINT32_C(0x423D73E1)}}, + {{UINT32_C(0x3027164F), UINT32_C(0x7274BE08), UINT32_C(0x42FDB769), + UINT32_C(0xDE907B49), UINT32_C(0xB697060D), UINT32_C(0x61D74449), + UINT32_C(0x26602CC9), UINT32_C(0x18A5FDC2)}, + {UINT32_C(0x049CAF4A), UINT32_C(0xB08DC02B), UINT32_C(0x78DBA1F1), + UINT32_C(0xC84AF485), UINT32_C(0x7178E4DF), UINT32_C(0x0A5B3519), + UINT32_C(0x5B26D0FE), UINT32_C(0x6EC7A7A5)}}, + {{UINT32_C(0x88554F05), UINT32_C(0xDEF1782F), UINT32_C(0xD8D6DF47), + UINT32_C(0xB73E7333), UINT32_C(0x90E9C67A), UINT32_C(0x1DDF9022), + UINT32_C(0xD56181AC), UINT32_C(0x5D217B51)}, + {UINT32_C(0xE27F90EE), UINT32_C(0x7A338C7B), UINT32_C(0x0D84A177), + UINT32_C(0xB97CCD2A), UINT32_C(0x7C5E3FA9), UINT32_C(0x3E101601), + UINT32_C(0x30FF0918), UINT32_C(0x2706E77C)}}, + {{UINT32_C(0x72A7CB9F), UINT32_C(0x1BD1274F), UINT32_C(0x0622DB90), + UINT32_C(0x8B60357A), UINT32_C(0x2151BB23), UINT32_C(0x0140E14A), + UINT32_C(0xE9A30C4C), UINT32_C(0x358D7DDA)}, + {UINT32_C(0x89BFB2C6), UINT32_C(0x3B153060), UINT32_C(0xB6757C69), + UINT32_C(0x47462C79), UINT32_C(0xB43EF986), UINT32_C(0x2B22239D), + UINT32_C(0x0B774DE3), UINT32_C(0x6793671F)}}, + {{UINT32_C(0xF6F8EDC6), UINT32_C(0x99EDB02E), UINT32_C(0xC4257DD9), + UINT32_C(0x24432760), UINT32_C(0x0336EED2), UINT32_C(0x4FDD7301), + UINT32_C(0xF6C6506B), UINT32_C(0x44879709)}, + {UINT32_C(0x13F18D89), UINT32_C(0x107C7DE2), UINT32_C(0xA5701FBD), + UINT32_C(0x71C71DFB), UINT32_C(0xC7DE3E0B), UINT32_C(0x97017E24), + UINT32_C(0xFC9EDDC2), UINT32_C(0x0F8D7E09)}}, + {{UINT32_C(0x3897E01D), UINT32_C(0x7A0BB3B1), UINT32_C(0xC5892BDE), + UINT32_C(0x7FD4F504), UINT32_C(0xAB752928), UINT32_C(0x2EA9AA77), + UINT32_C(0x9078B466), UINT32_C(0x19A82F55)}, + {UINT32_C(0x55A0F0D9), UINT32_C(0xEF2842C5), UINT32_C(0x15B6F2B4), + UINT32_C(0x5501EEE9), UINT32_C(0x942AA4B4), UINT32_C(0x9665EA6F), + UINT32_C(0x0E707C32), UINT32_C(0x015F41F4)}}, + {{UINT32_C(0x9C6B6FD6), UINT32_C(0x1B4D6A91), UINT32_C(0x68217AFC), + UINT32_C(0xCFD2CEE9), UINT32_C(0xBBC9284D), UINT32_C(0xC5076256), + UINT32_C(0xAC36547B), UINT32_C(0x4C7F4EEF)}, + {UINT32_C(0x65EE1907), UINT32_C(0xAB1AAD2C), UINT32_C(0xBAC25425), + UINT32_C(0xBCFE8C77), UINT32_C(0xC9048A35), UINT32_C(0x38BA0F85), + UINT32_C(0x60A035F6), UINT32_C(0x300E6AC4)}}, + {{UINT32_C(0x34707CC6), UINT32_C(0xA8EDBC5E), UINT32_C(0x56ADFC16), + UINT32_C(0x3DA6BC51), UINT32_C(0xCA8B6F3F), UINT32_C(0x5C7CB5E1), + UINT32_C(0x2D612DFA), UINT32_C(0x76E4A028)}, + {UINT32_C(0x64F49D39), UINT32_C(0x75AB66FD), UINT32_C(0xC387A739), + UINT32_C(0x5AF9879D), UINT32_C(0x3E9EDBCF), UINT32_C(0x83964808), + UINT32_C(0x7F4C4FFE), UINT32_C(0x555D8BBD)}}, + {{UINT32_C(0x3C5590B0), UINT32_C(0xAAE8A2FE), UINT32_C(0x8AB34213), + UINT32_C(0x461C6CCC), UINT32_C(0x9E719B77), UINT32_C(0xB2F3E822), + UINT32_C(0x663188BB), UINT32_C(0x25B8FCA8)}, + {UINT32_C(0x72548131), UINT32_C(0xAA7A047B), UINT32_C(0x189FA6F0), + UINT32_C(0x0878FFEE), UINT32_C(0xCE3E17C3), UINT32_C(0x9E7FB402), + UINT32_C(0x44418277), UINT32_C(0x6F260D93)}}, + {{UINT32_C(0xB703B647), UINT32_C(0x0EF1C290), UINT32_C(0x651673E4), + UINT32_C(0x995009FA), UINT32_C(0xBE46362D), UINT32_C(0x661F76D7), + UINT32_C(0x23E56E7A), UINT32_C(0x74B00FD1)}, + {UINT32_C(0xA1A50E4B), UINT32_C(0x9557D0AB), UINT32_C(0x587688CE), + UINT32_C(0xC5A1CF95), UINT32_C(0x7AE08ECA), UINT32_C(0x2A14D1B2), + UINT32_C(0x3C23D507), UINT32_C(0x2DA8816C)}}, + {{UINT32_C(0xB9934883), UINT32_C(0x51CB405F), UINT32_C(0x01A6864B), + UINT32_C(0xC99A67D4), UINT32_C(0x6CDFFFC3), UINT32_C(0xCCF62233), + UINT32_C(0x98FE0B79), UINT32_C(0x2938F9F9)}, + {UINT32_C(0x39A5AA28), UINT32_C(0x77666911), UINT32_C(0x2427BFC0), + UINT32_C(0xDF56CBB5), UINT32_C(0x189EB66D), UINT32_C(0xA39BE968), + UINT32_C(0xA64FD2AB), UINT32_C(0x71E6E105)}}, + {{UINT32_C(0x60F9D20B), UINT32_C(0xA0C6F795), UINT32_C(0x765670CC), + UINT32_C(0xE06DC8BB), UINT32_C(0xA67275E0), UINT32_C(0x9FA1DD58), + UINT32_C(0xE2D23BBB), UINT32_C(0x0F7F670D)}, + {UINT32_C(0x33FB15EA), UINT32_C(0xF8F07CF3), UINT32_C(0x723A0271), + UINT32_C(0x1D09B592), UINT32_C(0x4E6FCAAB), UINT32_C(0xF1402923), + UINT32_C(0xAE301940), UINT32_C(0x05BE1273)}}, + {{UINT32_C(0x114AFD1E), UINT32_C(0x2D83906C), UINT32_C(0xC88E5761), + UINT32_C(0x091474FD), UINT32_C(0xEF9E4F9B), UINT32_C(0xAFF18EEB), + UINT32_C(0xF4E646ED), UINT32_C(0x136ECAE5)}, + {UINT32_C(0xEB01808F), UINT32_C(0xEF4526D0), UINT32_C(0x940C0AEC), + UINT32_C(0x3923EBBA), UINT32_C(0xA437F460), UINT32_C(0xAB34160C), + UINT32_C(0x421AD57C), UINT32_C(0x7A46966E)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj_any.op3 + * https://eprint.iacr.org/2015/1060 Alg 3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *a = const_a; + const limb_t *b3 = const_b3; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_TestParamSet_square(t0, X); + fiat_id_GostR3410_2001_TestParamSet_square(t1, Y); + fiat_id_GostR3410_2001_TestParamSet_square(t2, Z); + fiat_id_GostR3410_2001_TestParamSet_mul(t3, X, Y); + fiat_id_GostR3410_2001_TestParamSet_add(t3, t3, t3); + fiat_id_GostR3410_2001_TestParamSet_mul(t4, Y, Z); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, X, Z); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, a, Z3); + fiat_id_GostR3410_2001_TestParamSet_mul(Y3, b3, t2); + fiat_id_GostR3410_2001_TestParamSet_add(Y3, X3, Y3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Y3); + fiat_id_GostR3410_2001_TestParamSet_add(Y3, t1, Y3); + fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Y3); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, b3, Z3); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2); + fiat_id_GostR3410_2001_TestParamSet_sub(t3, t0, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t3, a, t3); + fiat_id_GostR3410_2001_TestParamSet_add(t3, t3, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, t0, t0); + fiat_id_GostR3410_2001_TestParamSet_add(t0, Z3, t0); + fiat_id_GostR3410_2001_TestParamSet_add(t0, t0, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t0, t3); + fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_TestParamSet_add(t2, t4, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t2, t3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t2, t1); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, Z3); +} + +/*- + * 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_any.op3 + * https://eprint.iacr.org/2015/1060 Alg 2 + */ +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, t4, t5; + /* constants */ + const limb_t *a = const_a; + const limb_t *b3 = const_b3; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_GostR3410_2001_TestParamSet_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_GostR3410_2001_TestParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_TestParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_TestParamSet_add(t3, X2, Y2); + fiat_id_GostR3410_2001_TestParamSet_add(t4, X1, Y1); + fiat_id_GostR3410_2001_TestParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_TestParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_TestParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(t4, X2, Z1); + fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, X1); + fiat_id_GostR3410_2001_TestParamSet_mul(t5, Y2, Z1); + fiat_id_GostR3410_2001_TestParamSet_add(t5, t5, Y1); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, a, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, b3, Z1); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, X3, Z3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, t1, Z3); + fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, Z1); + fiat_id_GostR3410_2001_TestParamSet_mul(t4, b3, t4); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t2); + fiat_id_GostR3410_2001_TestParamSet_sub(t2, t0, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2); + fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t1, t4); + fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t5, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t3, t1); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t5, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, t0); + + /* if P is inf, throw all that away and take Q */ + fiat_id_GostR3410_2001_TestParamSet_selectznz(R->X, nz, Q->X, X3); + fiat_id_GostR3410_2001_TestParamSet_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_GostR3410_2001_TestParamSet_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj_any.op3 + * https://eprint.iacr.org/2015/1060 Alg 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, t4, t5; + /* constants */ + const limb_t *a = const_a; + const limb_t *b3 = const_b3; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_GostR3410_2001_TestParamSet_mul(t0, X1, X2); + fiat_id_GostR3410_2001_TestParamSet_mul(t1, Y1, Y2); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, Z1, Z2); + fiat_id_GostR3410_2001_TestParamSet_add(t3, X1, Y1); + fiat_id_GostR3410_2001_TestParamSet_add(t4, X2, Y2); + fiat_id_GostR3410_2001_TestParamSet_mul(t3, t3, t4); + fiat_id_GostR3410_2001_TestParamSet_add(t4, t0, t1); + fiat_id_GostR3410_2001_TestParamSet_sub(t3, t3, t4); + fiat_id_GostR3410_2001_TestParamSet_add(t4, X1, Z1); + fiat_id_GostR3410_2001_TestParamSet_add(t5, X2, Z2); + fiat_id_GostR3410_2001_TestParamSet_mul(t4, t4, t5); + fiat_id_GostR3410_2001_TestParamSet_add(t5, t0, t2); + fiat_id_GostR3410_2001_TestParamSet_sub(t4, t4, t5); + fiat_id_GostR3410_2001_TestParamSet_add(t5, Y1, Z1); + fiat_id_GostR3410_2001_TestParamSet_add(X3, Y2, Z2); + fiat_id_GostR3410_2001_TestParamSet_mul(t5, t5, X3); + fiat_id_GostR3410_2001_TestParamSet_add(X3, t1, t2); + fiat_id_GostR3410_2001_TestParamSet_sub(t5, t5, X3); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, a, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, b3, t2); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, X3, Z3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, t1, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, t1, Z3); + fiat_id_GostR3410_2001_TestParamSet_mul(Y3, X3, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t0, t0); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t4, b3, t4); + fiat_id_GostR3410_2001_TestParamSet_add(t1, t1, t2); + fiat_id_GostR3410_2001_TestParamSet_sub(t2, t0, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t2, a, t2); + fiat_id_GostR3410_2001_TestParamSet_add(t4, t4, t2); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t1, t4); + fiat_id_GostR3410_2001_TestParamSet_add(Y3, Y3, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t5, t4); + fiat_id_GostR3410_2001_TestParamSet_mul(X3, t3, X3); + fiat_id_GostR3410_2001_TestParamSet_sub(X3, X3, t0); + fiat_id_GostR3410_2001_TestParamSet_mul(t0, t3, t1); + fiat_id_GostR3410_2001_TestParamSet_mul(Z3, t5, Z3); + fiat_id_GostR3410_2001_TestParamSet_add(Z3, Z3, t0); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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[32], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 32) 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(char out[52], const unsigned char in[32]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 51; 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(char out[257], const unsigned char in[32]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 257; 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; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32], + const unsigned char b[32], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[257] = {0}; + char bnaf[257] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 256; i >= 0; i--) { + if (!is_inf) point_double(&Q, &Q); + if ((d = bnaf[i])) { + if ((is_neg = d < 0) != flipped) { + fiat_id_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y); + 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.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_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_GostR3410_2001_TestParamSet_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_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[32], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[52] = {0}; + pt_prj_t Q, lut; + 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[51] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 50; 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_GostR3410_2001_TestParamSet_selectznz(lut.X, diff, lut.X, + precomp[j].X); + fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, diff, lut.Y, + precomp[j].Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Z, diff, lut.Z, + precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_TestParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, is_neg, lut.Y, + out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_GostR3410_2001_TestParamSet_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, scalar[0] & 1, lut.X, + Q.X); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, scalar[0] & 1, lut.Y, + Q.Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, scalar[0] & 1, lut.Z, + Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_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[32]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[52] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 1; i >= 0; i--) { + for (j = 0; i != 1 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 27; j++) { + if (j * 2 + i > 51) continue; + d = rnaf[j * 2 + 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_GostR3410_2001_TestParamSet_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_GostR3410_2001_TestParamSet_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_GostR3410_2001_TestParamSet_opp(out->Y, lut.Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(lut.Y, is_neg, lut.Y, + out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_GostR3410_2001_TestParamSet_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.X, scalar[0] & 1, R.X, Q.X); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Y, scalar[0] & 1, R.Y, Q.Y); + fiat_id_GostR3410_2001_TestParamSet_selectznz(Q.Z, scalar[0] & 1, R.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_GostR3410_2001_TestParamSet_inv(Q.Z, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_mul(out->X, Q.X, Q.Z); + fiat_id_GostR3410_2001_TestParamSet_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[32], unsigned char outy[32], + const unsigned char a[32], const unsigned char b[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.Y, P.Y); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.X, inx); + fiat_id_GostR3410_2001_TestParamSet_from_bytes(P.Y, iny); + fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_TestParamSet_to_montgomery(P.Y, P.Y); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.X, P.X); + fiat_id_GostR3410_2001_TestParamSet_from_montgomery(P.Y, P.Y); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outx, P.X); + fiat_id_GostR3410_2001_TestParamSet_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[32] = {0}; + + int + point_mul_two_id_GostR3410_2001_TestParamSet(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[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_GostR3410_2001_TestParamSet(const EC_GROUP *group, EC_POINT *r, + const EC_POINT *q, const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_GostR3410_2001_TestParamSet(const EC_GROUP *group, + EC_POINT *r, const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + 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, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, 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__ */ diff --git a/ecp_id_tc26_gost_3410_2012_256_paramSetA.c b/ecp_id_tc26_gost_3410_2012_256_paramSetA.c new file mode 100644 index 0000000..ad1c5f2 --- /dev/null +++ b/ecp_id_tc26_gost_3410_2012_256_paramSetA.c @@ -0,0 +1,8998 @@ +/* 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 5 +/* Field elements */ +typedef uint64_t fe_t[LIMB_CNT]; +typedef uint64_t limb_t; + +#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_256_paramSetA_carry_add(c, a, b) \ + fiat_id_tc26_gost_3410_2012_256_paramSetA_add(c, a, b); \ + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry(c, c) +#define fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(c, a, b) \ + fiat_id_tc26_gost_3410_2012_256_paramSetA_sub(c, a, b); \ + fiat_id_tc26_gost_3410_2012_256_paramSetA_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 id_tc26_gost_3410_2012_256_paramSetA 64 5 '2^256 - 617' */ +/* curve description: id_tc26_gost_3410_2012_256_paramSetA */ +/* machine_wordsize = 64 (from "64") */ +/* requested operations: (all) */ +/* n = 5 (from "5") */ +/* s-c = 2^256 - [(1, 617)] (from "2^256 - 617") */ +/* tight_bounds_multiplier = 1.1 (from "") */ +/* */ +/* Computed values: */ +/* carry_chain = [0, 1, 2, 3, 4, 0, 1] */ +/* eval z = z[0] + (z[1] << 52) + (z[2] << 103) + (z[3] << 154) + (z[4] << 205) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1; +typedef signed char fiat_id_tc26_gost_3410_2012_256_paramSetA_int1; +typedef signed __int128 fiat_id_tc26_gost_3410_2012_256_paramSetA_int128; +typedef unsigned __int128 fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_addcarryx_u52( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + uint64_t x1; + uint64_t x2; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT64_C(0xfffffffffffff)); + x3 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x1 >> 52); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_subborrowx_u52( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + int64_t x1; + fiat_id_tc26_gost_3410_2012_256_paramSetA_int1 x2; + uint64_t x3; + x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_int1)(x1 >> 52); + x3 = (x1 & UINT64_C(0xfffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_addcarryx_u51( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + uint64_t x1; + uint64_t x2; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT64_C(0x7ffffffffffff)); + x3 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x1 >> 51); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_subborrowx_u51( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + int64_t x1; + fiat_id_tc26_gost_3410_2012_256_paramSetA_int1 x2; + uint64_t x3; + x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_int1)(x1 >> 51); + x3 = (x1 & UINT64_C(0x7ffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_cmovznz_u64( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, + uint64_t arg2, uint64_t arg3) { + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x1; + uint64_t x2; + uint64_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_int1)(0x0 - x1) & + UINT64_C(0xffffffffffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * arg2: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul( + uint64_t out1[5], const uint64_t arg1[5], const uint64_t arg2[5]) { + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x1; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x2; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x3; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x4; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x5; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x6; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x7; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x8; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x9; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x10; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x11; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x12; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x13; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x14; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x15; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x16; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x17; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x18; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x19; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x20; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x21; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x22; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x23; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x24; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x25; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x26; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x27; + uint64_t x28; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x29; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x30; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x31; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x32; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x33; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x34; + uint64_t x35; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x36; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x37; + uint64_t x38; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x39; + uint64_t x40; + uint64_t x41; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x42; + uint64_t x43; + uint64_t x44; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x45; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x46; + uint64_t x47; + uint64_t x48; + uint64_t x49; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x50; + uint64_t x51; + uint64_t x52; + x1 = (UINT16_C(0x269) * + ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[4]) * + (arg2[4]))); + x2 = (UINT16_C(0x269) * + ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[4]) * + (arg2[3]))); + x3 = (UINT16_C(0x269) * + ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[4]) * + (arg2[2]))); + x4 = (UINT16_C(0x269) * + (((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[4]) * + (arg2[1])) * + 0x2)); + x5 = (UINT16_C(0x269) * + ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[3]) * + (arg2[4]))); + x6 = (UINT16_C(0x269) * + ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[3]) * + (arg2[3]))); + x7 = (UINT16_C(0x269) * + (((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[3]) * + (arg2[2])) * + 0x2)); + x8 = (UINT16_C(0x269) * + ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[2]) * + (arg2[4]))); + x9 = (UINT16_C(0x269) * + (((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[2]) * + (arg2[3])) * + 0x2)); + x10 = (UINT16_C(0x269) * + (((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[1]) * + (arg2[4])) * + 0x2)); + x11 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[4]) * + (arg2[0])); + x12 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[3]) * + ((arg2[1]) * 0x2)); + x13 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[3]) * + (arg2[0])); + x14 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[2]) * + ((arg2[2]) * 0x2)); + x15 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[2]) * + ((arg2[1]) * 0x2)); + x16 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[2]) * + (arg2[0])); + x17 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[1]) * + ((arg2[3]) * 0x2)); + x18 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[1]) * + ((arg2[2]) * 0x2)); + x19 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[1]) * + ((arg2[1]) * 0x2)); + x20 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[1]) * + (arg2[0])); + x21 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[0]) * + (arg2[4])); + x22 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[0]) * + (arg2[3])); + x23 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[0]) * + (arg2[2])); + x24 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[0]) * + (arg2[1])); + x25 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[0]) * + (arg2[0])); + x26 = (x25 + (x10 + (x9 + (x7 + x4)))); + x27 = (x26 >> 52); + x28 = (uint64_t)(x26 & UINT64_C(0xfffffffffffff)); + x29 = (x21 + (x17 + (x14 + (x12 + x11)))); + x30 = (x22 + (x18 + (x15 + (x13 + x1)))); + x31 = (x23 + (x19 + (x16 + (x5 + x2)))); + x32 = (x24 + (x20 + (x8 + (x6 + x3)))); + x33 = (x27 + x32); + x34 = (x33 >> 51); + x35 = (uint64_t)(x33 & UINT64_C(0x7ffffffffffff)); + x36 = (x34 + x31); + x37 = (x36 >> 51); + x38 = (uint64_t)(x36 & UINT64_C(0x7ffffffffffff)); + x39 = (x37 + x30); + x40 = (uint64_t)(x39 >> 51); + x41 = (uint64_t)(x39 & UINT64_C(0x7ffffffffffff)); + x42 = (x40 + x29); + x43 = (uint64_t)(x42 >> 51); + x44 = (uint64_t)(x42 & UINT64_C(0x7ffffffffffff)); + x45 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)UINT16_C(0x269) * + x43); + x46 = (x28 + x45); + x47 = (uint64_t)(x46 >> 52); + x48 = (uint64_t)(x46 & UINT64_C(0xfffffffffffff)); + x49 = (x47 + x35); + x50 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x49 >> 51); + x51 = (x49 & UINT64_C(0x7ffffffffffff)); + x52 = (x50 + x38); + out1[0] = x48; + out1[1] = x51; + out1[2] = x52; + out1[3] = x41; + out1[4] = x44; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square( + uint64_t out1[5], const uint64_t arg1[5]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x9; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x10; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x11; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x12; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x13; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x14; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x15; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x16; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x17; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x18; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x19; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x20; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x21; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x22; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x23; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x24; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x25; + uint64_t x26; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x27; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x28; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x29; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x30; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x31; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x32; + uint64_t x33; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x34; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x35; + uint64_t x36; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x37; + uint64_t x38; + uint64_t x39; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x40; + uint64_t x41; + uint64_t x42; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x43; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128 x44; + uint64_t x45; + uint64_t x46; + uint64_t x47; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x48; + uint64_t x49; + uint64_t x50; + x1 = ((arg1[4]) * UINT16_C(0x269)); + x2 = (x1 * 0x2); + x3 = ((arg1[4]) * 0x2); + x4 = ((arg1[3]) * UINT16_C(0x269)); + x5 = (x4 * 0x2); + x6 = ((arg1[3]) * 0x2); + x7 = ((arg1[2]) * 0x2); + x8 = ((arg1[1]) * 0x2); + x9 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[4]) * x1); + x10 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[3]) * x2); + x11 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[3]) * x4); + x12 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[2]) * x2); + x13 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[2]) * + (x5 * 0x2)); + x14 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[2]) * + ((arg1[2]) * 0x2)); + x15 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[1]) * + (x2 * 0x2)); + x16 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[1]) * + (x6 * 0x2)); + x17 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[1]) * + (x7 * 0x2)); + x18 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[1]) * + ((arg1[1]) * 0x2)); + x19 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[0]) * x3); + x20 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[0]) * x6); + x21 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[0]) * x7); + x22 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[0]) * x8); + x23 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)(arg1[0]) * + (arg1[0])); + x24 = (x23 + (x15 + x13)); + x25 = (x24 >> 52); + x26 = (uint64_t)(x24 & UINT64_C(0xfffffffffffff)); + x27 = (x19 + (x16 + x14)); + x28 = (x20 + (x17 + x9)); + x29 = (x21 + (x18 + x10)); + x30 = (x22 + (x12 + x11)); + x31 = (x25 + x30); + x32 = (x31 >> 51); + x33 = (uint64_t)(x31 & UINT64_C(0x7ffffffffffff)); + x34 = (x32 + x29); + x35 = (x34 >> 51); + x36 = (uint64_t)(x34 & UINT64_C(0x7ffffffffffff)); + x37 = (x35 + x28); + x38 = (uint64_t)(x37 >> 51); + x39 = (uint64_t)(x37 & UINT64_C(0x7ffffffffffff)); + x40 = (x38 + x27); + x41 = (uint64_t)(x40 >> 51); + x42 = (uint64_t)(x40 & UINT64_C(0x7ffffffffffff)); + x43 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint128)UINT16_C(0x269) * + x41); + x44 = (x26 + x43); + x45 = (uint64_t)(x44 >> 52); + x46 = (uint64_t)(x44 & UINT64_C(0xfffffffffffff)); + x47 = (x45 + x33); + x48 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x47 >> 51); + x49 = (x47 & UINT64_C(0x7ffffffffffff)); + x50 = (x48 + x36); + out1[0] = x46; + out1[1] = x49; + out1[2] = x50; + out1[3] = x39; + out1[4] = x42; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_carry reduces a field element. + * Postconditions: + * eval out1 mod m = eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_carry( + uint64_t out1[5], const uint64_t arg1[5]) { + 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; + x1 = (arg1[0]); + x2 = ((x1 >> 52) + (arg1[1])); + x3 = ((x2 >> 51) + (arg1[2])); + x4 = ((x3 >> 51) + (arg1[3])); + x5 = ((x4 >> 51) + (arg1[4])); + x6 = ((x1 & UINT64_C(0xfffffffffffff)) + (UINT16_C(0x269) * (x5 >> 51))); + x7 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x6 >> 52) + + (x2 & UINT64_C(0x7ffffffffffff))); + x8 = (x6 & UINT64_C(0xfffffffffffff)); + x9 = (x7 & UINT64_C(0x7ffffffffffff)); + x10 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x7 >> 51) + + (x3 & UINT64_C(0x7ffffffffffff))); + x11 = (x4 & UINT64_C(0x7ffffffffffff)); + x12 = (x5 & UINT64_C(0x7ffffffffffff)); + out1[0] = x8; + out1[1] = x9; + out1[2] = x10; + out1[3] = x11; + out1[4] = x12; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_add adds two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 + eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * arg2: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_add( + uint64_t out1[5], const uint64_t arg1[5], const uint64_t arg2[5]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + 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])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_sub subtracts two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 - eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * arg2: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_sub( + uint64_t out1[5], const uint64_t arg1[5], const uint64_t arg2[5]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + x1 = ((UINT64_C(0x1ffffffffffb2e) + (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])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_opp negates a field element. + * Postconditions: + * eval out1 mod m = -eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_opp( + uint64_t out1[5], const uint64_t arg1[5]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + x1 = (UINT64_C(0x1ffffffffffb2e) - (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])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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]] + * arg3: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + uint64_t out1[5], fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, + const uint64_t arg2[5], const uint64_t arg3[5]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u64(&x1, arg1, (arg2[0]), + (arg3[0])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u64(&x2, arg1, (arg2[1]), + (arg3[1])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u64(&x3, arg1, (arg2[2]), + (arg3[2])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u64(&x4, arg1, (arg2[3]), + (arg3[3])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u64(&x5, arg1, (arg2[4]), + (arg3[4])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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..31] + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * 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]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes( + uint8_t out1[32], const uint64_t arg1[5]) { + uint64_t x1; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x2; + uint64_t x3; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x4; + uint64_t x5; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x6; + uint64_t x7; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x8; + uint64_t x9; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x10; + uint64_t x11; + uint64_t x12; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x13; + uint64_t x14; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x15; + uint64_t x16; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x17; + uint64_t x18; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x19; + uint64_t x20; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x21; + uint64_t x22; + uint64_t x23; + uint64_t x24; + uint64_t x25; + uint64_t x26; + uint8_t x27; + uint64_t x28; + uint8_t x29; + uint64_t x30; + uint8_t x31; + uint64_t x32; + uint8_t x33; + uint64_t x34; + uint8_t x35; + uint8_t x36; + uint8_t x37; + uint64_t x38; + uint64_t x39; + uint8_t x40; + uint64_t x41; + uint8_t x42; + uint64_t x43; + uint8_t x44; + uint64_t x45; + uint8_t x46; + uint64_t x47; + uint8_t x48; + uint8_t x49; + uint8_t x50; + uint64_t x51; + uint64_t x52; + uint8_t x53; + uint64_t x54; + uint8_t x55; + uint64_t x56; + uint8_t x57; + uint64_t x58; + uint8_t x59; + uint64_t x60; + uint8_t x61; + uint64_t x62; + uint8_t x63; + uint8_t x64; + uint8_t x65; + uint64_t x66; + uint64_t x67; + uint8_t x68; + uint64_t x69; + uint8_t x70; + uint64_t x71; + uint8_t x72; + uint64_t x73; + uint8_t x74; + uint64_t x75; + uint8_t x76; + uint8_t x77; + uint8_t x78; + uint64_t x79; + uint64_t x80; + uint8_t x81; + uint64_t x82; + uint8_t x83; + uint64_t x84; + uint8_t x85; + uint64_t x86; + uint8_t x87; + uint64_t x88; + uint8_t x89; + uint8_t x90; + uint8_t x91; + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u52( + &x1, &x2, 0x0, (arg1[0]), UINT64_C(0xffffffffffd97)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u51( + &x3, &x4, x2, (arg1[1]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u51( + &x5, &x6, x4, (arg1[2]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u51( + &x7, &x8, x6, (arg1[3]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u51( + &x9, &x10, x8, (arg1[4]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u64( + &x11, x10, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u52( + &x12, &x13, 0x0, x1, (x11 & UINT64_C(0xffffffffffd97))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u51( + &x14, &x15, x13, x3, (x11 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u51( + &x16, &x17, x15, x5, (x11 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u51( + &x18, &x19, x17, x7, (x11 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u51( + &x20, &x21, x19, x9, (x11 & UINT64_C(0x7ffffffffffff))); + x22 = (x20 << 5); + x23 = (x18 << 2); + x24 = (x16 << 7); + x25 = (x14 << 4); + x26 = (x12 >> 8); + x27 = (uint8_t)(x12 & UINT8_C(0xff)); + x28 = (x26 >> 8); + x29 = (uint8_t)(x26 & UINT8_C(0xff)); + x30 = (x28 >> 8); + x31 = (uint8_t)(x28 & UINT8_C(0xff)); + x32 = (x30 >> 8); + x33 = (uint8_t)(x30 & UINT8_C(0xff)); + x34 = (x32 >> 8); + x35 = (uint8_t)(x32 & UINT8_C(0xff)); + x36 = (uint8_t)(x34 >> 8); + x37 = (uint8_t)(x34 & UINT8_C(0xff)); + x38 = (x36 + x25); + x39 = (x38 >> 8); + x40 = (uint8_t)(x38 & UINT8_C(0xff)); + x41 = (x39 >> 8); + x42 = (uint8_t)(x39 & UINT8_C(0xff)); + x43 = (x41 >> 8); + x44 = (uint8_t)(x41 & UINT8_C(0xff)); + x45 = (x43 >> 8); + x46 = (uint8_t)(x43 & UINT8_C(0xff)); + x47 = (x45 >> 8); + x48 = (uint8_t)(x45 & UINT8_C(0xff)); + x49 = (uint8_t)(x47 >> 8); + x50 = (uint8_t)(x47 & UINT8_C(0xff)); + x51 = (x49 + x24); + x52 = (x51 >> 8); + x53 = (uint8_t)(x51 & UINT8_C(0xff)); + x54 = (x52 >> 8); + x55 = (uint8_t)(x52 & UINT8_C(0xff)); + x56 = (x54 >> 8); + x57 = (uint8_t)(x54 & UINT8_C(0xff)); + x58 = (x56 >> 8); + x59 = (uint8_t)(x56 & UINT8_C(0xff)); + x60 = (x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + x64 = (uint8_t)(x62 >> 8); + x65 = (uint8_t)(x62 & UINT8_C(0xff)); + x66 = (x64 + x23); + x67 = (x66 >> 8); + x68 = (uint8_t)(x66 & UINT8_C(0xff)); + x69 = (x67 >> 8); + x70 = (uint8_t)(x67 & UINT8_C(0xff)); + x71 = (x69 >> 8); + x72 = (uint8_t)(x69 & UINT8_C(0xff)); + x73 = (x71 >> 8); + x74 = (uint8_t)(x71 & UINT8_C(0xff)); + x75 = (x73 >> 8); + x76 = (uint8_t)(x73 & UINT8_C(0xff)); + x77 = (uint8_t)(x75 >> 8); + x78 = (uint8_t)(x75 & UINT8_C(0xff)); + x79 = (x77 + x22); + x80 = (x79 >> 8); + x81 = (uint8_t)(x79 & UINT8_C(0xff)); + x82 = (x80 >> 8); + x83 = (uint8_t)(x80 & UINT8_C(0xff)); + x84 = (x82 >> 8); + x85 = (uint8_t)(x82 & UINT8_C(0xff)); + x86 = (x84 >> 8); + x87 = (uint8_t)(x84 & UINT8_C(0xff)); + x88 = (x86 >> 8); + x89 = (uint8_t)(x86 & UINT8_C(0xff)); + x90 = (uint8_t)(x88 >> 8); + x91 = (uint8_t)(x88 & UINT8_C(0xff)); + out1[0] = x27; + out1[1] = x29; + out1[2] = x31; + out1[3] = x33; + out1[4] = x35; + out1[5] = x37; + out1[6] = x40; + out1[7] = x42; + out1[8] = x44; + out1[9] = x46; + out1[10] = x48; + out1[11] = x50; + out1[12] = x53; + out1[13] = x55; + out1[14] = x57; + out1[15] = x59; + out1[16] = x61; + out1[17] = x63; + out1[18] = x65; + out1[19] = x68; + out1[20] = x70; + out1[21] = x72; + out1[22] = x74; + out1[23] = x76; + out1[24] = x78; + out1[25] = x81; + out1[26] = x83; + out1[27] = x85; + out1[28] = x87; + out1[29] = x89; + out1[30] = x91; + out1[31] = x90; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_from_bytes( + uint64_t out1[5], const uint8_t arg1[32]) { + 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; + uint8_t x34; + uint64_t x35; + uint64_t x36; + uint64_t x37; + uint64_t x38; + uint64_t x39; + uint64_t x40; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x41; + uint64_t x42; + uint64_t x43; + uint8_t x44; + uint64_t x45; + uint64_t x46; + uint8_t x47; + uint64_t x48; + uint64_t x49; + x1 = ((uint64_t)(arg1[31]) << 43); + x2 = ((uint64_t)(arg1[30]) << 35); + x3 = ((uint64_t)(arg1[29]) << 27); + x4 = ((uint64_t)(arg1[28]) << 19); + x5 = ((uint64_t)(arg1[27]) << 11); + x6 = ((uint64_t)(arg1[26]) << 3); + x7 = ((uint64_t)(arg1[25]) << 46); + x8 = ((uint64_t)(arg1[24]) << 38); + x9 = ((uint64_t)(arg1[23]) << 30); + x10 = ((uint64_t)(arg1[22]) << 22); + x11 = ((uint64_t)(arg1[21]) << 14); + x12 = ((uint64_t)(arg1[20]) << 6); + x13 = ((uint64_t)(arg1[19]) << 49); + x14 = ((uint64_t)(arg1[18]) << 41); + x15 = ((uint64_t)(arg1[17]) << 33); + x16 = ((uint64_t)(arg1[16]) << 25); + x17 = ((uint64_t)(arg1[15]) << 17); + x18 = ((uint64_t)(arg1[14]) << 9); + x19 = ((uint64_t)(arg1[13]) * 0x2); + x20 = ((uint64_t)(arg1[12]) << 44); + x21 = ((uint64_t)(arg1[11]) << 36); + x22 = ((uint64_t)(arg1[10]) << 28); + x23 = ((uint64_t)(arg1[9]) << 20); + x24 = ((uint64_t)(arg1[8]) << 12); + x25 = ((uint64_t)(arg1[7]) << 4); + x26 = ((uint64_t)(arg1[6]) << 48); + x27 = ((uint64_t)(arg1[5]) << 40); + x28 = ((uint64_t)(arg1[4]) << 32); + x29 = ((uint64_t)(arg1[3]) << 24); + x30 = ((uint64_t)(arg1[2]) << 16); + x31 = ((uint64_t)(arg1[1]) << 8); + x32 = (arg1[0]); + x33 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + x26)))))); + x34 = (uint8_t)(x33 >> 52); + x35 = (x33 & UINT64_C(0xfffffffffffff)); + x36 = (x6 + (x5 + (x4 + (x3 + (x2 + x1))))); + x37 = (x12 + (x11 + (x10 + (x9 + (x8 + x7))))); + x38 = (x19 + (x18 + (x17 + (x16 + (x15 + (x14 + x13)))))); + x39 = (x25 + (x24 + (x23 + (x22 + (x21 + x20))))); + x40 = (x34 + x39); + x41 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x40 >> 51); + x42 = (x40 & UINT64_C(0x7ffffffffffff)); + x43 = (x41 + x38); + x44 = (uint8_t)(x43 >> 51); + x45 = (x43 & UINT64_C(0x7ffffffffffff)); + x46 = (x44 + x37); + x47 = (uint8_t)(x46 >> 51); + x48 = (x46 & UINT64_C(0x7ffffffffffff)); + x49 = (x47 + x36); + out1[0] = x35; + out1[1] = x42; + out1[2] = x45; + out1[3] = x48; + out1[4] = x49; +} + +/* 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_256_paramSetA/fe_inv.op3 + * custom repunit addition chain + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t16, t164, t2, t246, t32, t4, t64, t8, t80, t82; + + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t2, acc, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t4, acc, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t4); + for (i = 0; i < 3; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t8, acc, t4); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t8); + for (i = 0; i < 7; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t16, acc, t8); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t16); + for (i = 0; i < 15; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t32, acc, t16); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t32); + for (i = 0; i < 31; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t64, acc, t32); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t64); + for (i = 0; i < 15; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t80, acc, t16); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t80); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t82, acc, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t82); + for (i = 0; i < 81; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t164, acc, t82); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t164); + for (i = 0; i < 81; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t246, acc, t82); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t246); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(acc, acc, t2); + for (i = 0; i < 3; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(output, acc, t1); +} + +/* curve coefficient constants */ + +static const limb_t const_one[5] = { + UINT64_C(0x0000000000000001), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000)}; + +static const limb_t const_d[5] = { + UINT64_C(0x0002C32D6DC7BFFB), UINT64_C(0x0002897009AF7E52), + UINT64_C(0x0005AA3026573BEC), UINT64_C(0x0006A055E2F0E73E), + UINT64_C(0x0000302FB5BE0C1F)}; + +static const limb_t const_S[5] = { + UINT64_C(0x00074F34A48E0ECD), UINT64_C(0x00075DA3FD94206B), + UINT64_C(0x00029573F66A3104), UINT64_C(0x000057EA8743C630), + UINT64_C(0x0003F3F412907CF8)}; + +static const limb_t const_T[5] = { + UINT64_C(0x000075DCE7A14AAA), UINT64_C(0x0005C192AC47EA63), + UINT64_C(0x0000F1B2B10E89FC), UINT64_C(0x0007C563A5D2D135), + UINT64_C(0x00000807F39FACAF)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[14][16] = { + { + {{UINT64_C(0x000000000000000D), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000), UINT64_C(0x0000000000000000), + UINT64_C(0x0000000000000000)}, + {UINT64_C(0x000B2592DBA300E7), UINT64_C(0x0003E87F22E81F92), + UINT64_C(0x00060EC939CFDF1B), UINT64_C(0x0006CD212230E3EA), + UINT64_C(0x00030650F195523A)}, + {UINT64_C(0x0000E8752747155F), UINT64_C(0x0002CE74C5C99A73), + UINT64_C(0x0006C037EF8E5465), UINT64_C(0x00006AAEBC7B92EB), + UINT64_C(0x0007521C44952CFD)}}, + {{UINT64_C(0x000A63D93451134C), UINT64_C(0x0003F7A46C1C4CA7), + UINT64_C(0x0002AF35693661CE), UINT64_C(0x0005313F13E9CC60), + UINT64_C(0x00054E15958A5D97)}, + {UINT64_C(0x0004525DDCDB5791), UINT64_C(0x000736AACCCB7BC8), + UINT64_C(0x000174F4885153CF), UINT64_C(0x0000CB27666A2367), + UINT64_C(0x00016BDEBB39E143)}, + {UINT64_C(0x000C732788CBC030), UINT64_C(0x0005C721E676D06F), + UINT64_C(0x00024101FDBBCCE2), UINT64_C(0x00059473AE8CD7CA), + UINT64_C(0x000586898AC013B2)}}, + {{UINT64_C(0x000A894E457058AD), UINT64_C(0x00047D7F48E61013), + UINT64_C(0x00035B4A672FE227), UINT64_C(0x0002A23302C060B2), + UINT64_C(0x0000F011D09FB149)}, + {UINT64_C(0x000FB80EB0B22BCC), UINT64_C(0x000606DA3C1FAC0B), + UINT64_C(0x00049BB0CE05B2EE), UINT64_C(0x000513F1BE099F41), + UINT64_C(0x0002AEE30C375862)}, + {UINT64_C(0x0004ED5422831C0C), UINT64_C(0x0007ED2E735EF7E7), + UINT64_C(0x0006F38521F75F30), UINT64_C(0x00040F086DBFA045), + UINT64_C(0x0002BA6DCB264756)}}, + {{UINT64_C(0x000E66CD5DB0B356), UINT64_C(0x00068408F9A4857D), + UINT64_C(0x0001F32E8FC1FD9F), UINT64_C(0x0006283C082BF3EE), + UINT64_C(0x0007B28870E5B67C)}, + {UINT64_C(0x000FE1FDB8EFDCBE), UINT64_C(0x0003F21273425384), + UINT64_C(0x0005870EEC15951B), UINT64_C(0x0006C844F52108D5), + UINT64_C(0x0001CD6F3261AFA2)}, + {UINT64_C(0x000712D2BEAA7E64), UINT64_C(0x0006CA4E1492A890), + UINT64_C(0x0001F6F63F92C63C), UINT64_C(0x0007E2FFA1F1C544), + UINT64_C(0x0002725A45A8E238)}}, + {{UINT64_C(0x0003E27F874C6781), UINT64_C(0x000080BDDC3E44D5), + UINT64_C(0x0005AFC7A11A0693), UINT64_C(0x0001B7278AA23AFD), + UINT64_C(0x0004D7CF0D085A3B)}, + {UINT64_C(0x000D80090DD1AE96), UINT64_C(0x0002433971543626), + UINT64_C(0x000276F2FB600A27), UINT64_C(0x0005E6BA3FC73B39), + UINT64_C(0x0005F6DBA95D6230)}, + {UINT64_C(0x000E7885A2499A0E), UINT64_C(0x0004547B7F6C185E), + UINT64_C(0x000003DCACBBA1C5), UINT64_C(0x000642667D8CF12B), + UINT64_C(0x0002EA8E4237A0D7)}}, + {{UINT64_C(0x000FDE7B60226F30), UINT64_C(0x0006E61454CC4C1B), + UINT64_C(0x000479C4C24E0377), UINT64_C(0x0000B58C33813041), + UINT64_C(0x0002403059A551B8)}, + {UINT64_C(0x000F0EF2E06AE25F), UINT64_C(0x00065B351500FA13), + UINT64_C(0x0004884D79149E34), UINT64_C(0x00020A52F78F4D69), + UINT64_C(0x00052A46E43D1E6F)}, + {UINT64_C(0x000D0ECC557F4E9D), UINT64_C(0x0007D12B76DDBF72), + UINT64_C(0x00001E35D93266D1), UINT64_C(0x00060EC982223C71), + UINT64_C(0x0001388A4FBA5CC2)}}, + {{UINT64_C(0x000288DD0895A16C), UINT64_C(0x000602071D0EFE2E), + UINT64_C(0x0007DEA3E3BA4068), UINT64_C(0x00049DB99EA55E0F), + UINT64_C(0x00057C4FBA5BF59F)}, + {UINT64_C(0x00015BEBA4E2B732), UINT64_C(0x0001F7F8E714E8B3), + UINT64_C(0x0000A952EF156C40), UINT64_C(0x00017371509C8E81), + UINT64_C(0x000362B2B97378ED)}, + {UINT64_C(0x000A85D2D8D51136), UINT64_C(0x0005F222A81C7F67), + UINT64_C(0x0007182E92B465DA), UINT64_C(0x00037F522C4E8E6D), + UINT64_C(0x0004310842F64A2B)}}, + {{UINT64_C(0x0005A383213DC33C), UINT64_C(0x0007E9B816CD42C6), + UINT64_C(0x0007FA8AE87087AA), UINT64_C(0x0004E55F40D4A3EE), + UINT64_C(0x0004F6D263536B6D)}, + {UINT64_C(0x00020F67059F55A3), UINT64_C(0x00007763EEA276D3), + UINT64_C(0x00019A17F705B71A), UINT64_C(0x0005944E63EB82FE), + UINT64_C(0x0007650A0DC5D1CB)}, + {UINT64_C(0x000FCD65DD4C828B), UINT64_C(0x0004CA6637691EA4), + UINT64_C(0x0003CCA5D1052701), UINT64_C(0x000712031F0647A6), + UINT64_C(0x00021CFF42584B2A)}}, + {{UINT64_C(0x0006C8A92F922362), UINT64_C(0x00044311FB926B9A), + UINT64_C(0x00024A255F064898), UINT64_C(0x0004502C0490E488), + UINT64_C(0x000181B9C7BE07A7)}, + {UINT64_C(0x000AC7EB3F012FCF), UINT64_C(0x00066FE14D676159), + UINT64_C(0x0000E913992C9940), UINT64_C(0x0005A66B28860B80), + UINT64_C(0x0004FA013BB9A8C7)}, + {UINT64_C(0x0000AD18CD3393AB), UINT64_C(0x000615E7DB492BCF), + UINT64_C(0x00065C59E4108193), UINT64_C(0x00001C03C21B9CD4), + UINT64_C(0x00053FD4D84C40B2)}}, + {{UINT64_C(0x0003FC89A2C6B0CB), UINT64_C(0x0000F3FE6593C6B3), + UINT64_C(0x00033E7B9EFD7774), UINT64_C(0x000202569ACD3FD6), + UINT64_C(0x000304E71BD74A19)}, + {UINT64_C(0x00070B3E67C53736), UINT64_C(0x00062C9877C0935F), + UINT64_C(0x00005596CE3DED78), UINT64_C(0x000065742F67B602), + UINT64_C(0x0001F8FD1E49E6FF)}, + {UINT64_C(0x000C98D8B880CCBF), UINT64_C(0x0002C564715F7115), + UINT64_C(0x0003131E65C288F0), UINT64_C(0x00032E11B2E67FC3), + UINT64_C(0x000306235C4203E9)}}, + {{UINT64_C(0x0002EE57BC2F49E9), UINT64_C(0x00072B3E30AC4A02), + UINT64_C(0x00007DB1E3840852), UINT64_C(0x0001DD33D665342A), + UINT64_C(0x0001A7633225AEB5)}, + {UINT64_C(0x000B7F7B5B762A44), UINT64_C(0x000331A035435FA2), + UINT64_C(0x00067E3DC1DDB9A7), UINT64_C(0x0004B831B6E64D06), + UINT64_C(0x0006F2281134099E)}, + {UINT64_C(0x000B980EF7392E55), UINT64_C(0x0000B89E617A9CA2), + UINT64_C(0x0007ABA1A8BE9857), UINT64_C(0x00039ACA46853BD7), + UINT64_C(0x00075B4D3E20EED0)}}, + {{UINT64_C(0x000250EDAC297799), UINT64_C(0x0005F2C18C18BF27), + UINT64_C(0x0001CA515336C8CA), UINT64_C(0x000559E66BDEB0DF), + UINT64_C(0x0001DEEDAD609A8E)}, + {UINT64_C(0x000955E31C58DEDB), UINT64_C(0x000669D9C0842B27), + UINT64_C(0x0006DEB790D54552), UINT64_C(0x0003F019C46019DA), + UINT64_C(0x000471F509C91C79)}, + {UINT64_C(0x000732102C57B4C9), UINT64_C(0x0006A2A9C28278B1), + UINT64_C(0x0002324651BB700F), UINT64_C(0x00035DAF397E77FD), + UINT64_C(0x000663BBD174F83C)}}, + {{UINT64_C(0x000B929354FC042F), UINT64_C(0x00011C492ECCD647), + UINT64_C(0x00009741F291BEF2), UINT64_C(0x0001B4C7302C0158), + UINT64_C(0x00053AE1A0A0CF65)}, + {UINT64_C(0x0003EF8B2C9BC0FD), UINT64_C(0x00002CC7CA0F574C), + UINT64_C(0x0006D4B65A91C0C0), UINT64_C(0x00037510A240479F), + UINT64_C(0x0000C64FA252A385)}, + {UINT64_C(0x000A88BD59ED7C65), UINT64_C(0x0007ADDAE9CF1B08), + UINT64_C(0x00019BA0F9C07F82), UINT64_C(0x000678DB16C95452), + UINT64_C(0x000056623A2D43CD)}}, + {{UINT64_C(0x000B7E8A540D0BB7), UINT64_C(0x000584F51D57A3A5), + UINT64_C(0x0001D8F204E79366), UINT64_C(0x00050AB42D36BB78), + UINT64_C(0x0001F1939E53C5F0)}, + {UINT64_C(0x0006F36130EDF74C), UINT64_C(0x0004F887F8A3C1AE), + UINT64_C(0x000287BA42F1A8B2), UINT64_C(0x00059F26236FEDC0), + UINT64_C(0x0004E7E15665AB6B)}, + {UINT64_C(0x000BEF0A5861C3BC), UINT64_C(0x0001C09CD88554A1), + UINT64_C(0x00061D92810426B4), UINT64_C(0x0000B7288E75D464), + UINT64_C(0x0006309911A5EDED)}}, + {{UINT64_C(0x00085B811B64F095), UINT64_C(0x0005D8DFEF0DA78A), + UINT64_C(0x0000FAC6BD61618C), UINT64_C(0x0004BAAA6C8B2729), + UINT64_C(0x0004B56E9D2ABD89)}, + {UINT64_C(0x00043E639CD4D3BA), UINT64_C(0x00074DEABEABDB28), + UINT64_C(0x0007E3FBA43ED6F6), UINT64_C(0x0003AEE8B7AFF1C3), + UINT64_C(0x0003F53F79D2EE85)}, + {UINT64_C(0x000D24432D4F4AA5), UINT64_C(0x00078D7CF1ED698D), + UINT64_C(0x0004FF1A468ED10E), UINT64_C(0x000401D16C0D8D9F), + UINT64_C(0x0002F258FE117334)}}, + {{UINT64_C(0x000FB19D593A119F), UINT64_C(0x000573B9C8EF8EF8), + UINT64_C(0x0003D940302F6503), UINT64_C(0x000182EF3D826EE0), + UINT64_C(0x0003F7471C590F65)}, + {UINT64_C(0x000299B06DAA3C6C), UINT64_C(0x0007746E79EDD442), + UINT64_C(0x0003AC79E8C5E3A4), UINT64_C(0x0007EEC70EB2D955), + UINT64_C(0x000725068BB9E5F2)}, + {UINT64_C(0x0002BC325E5A930B), UINT64_C(0x000107F46E629456), + UINT64_C(0x000640B07B73E5D1), UINT64_C(0x00001279DBE60561), + UINT64_C(0x000225709C5657E7)}}, + }, + { + {{UINT64_C(0x0000192B0CEABA3B), UINT64_C(0x0000C849471353C7), + UINT64_C(0x0007933577181965), UINT64_C(0x000142C9EA69016E), + UINT64_C(0x0004567E065866D3)}, + {UINT64_C(0x000B6B66959B52D6), UINT64_C(0x000430844ADC8F3E), + UINT64_C(0x0006380BD764FFC3), UINT64_C(0x00016D901A803EAC), + UINT64_C(0x000086B9A477DC01)}, + {UINT64_C(0x00023367321E8B93), UINT64_C(0x00032EA758921A81), + UINT64_C(0x0004882218493C4B), UINT64_C(0x000363B5842D9A7D), + UINT64_C(0x00015A99D8110971)}}, + {{UINT64_C(0x000300698CE29666), UINT64_C(0x0004EECA6154042B), + UINT64_C(0x000166B994CFB4CC), UINT64_C(0x0004ACF422430E4C), + UINT64_C(0x000025F72D8D2619)}, + {UINT64_C(0x000675E071BC36F8), UINT64_C(0x0004DFF904D1F8C7), + UINT64_C(0x0003D505499703DF), UINT64_C(0x00020099265EDEB5), + UINT64_C(0x0003CC88B51F7700)}, + {UINT64_C(0x0007D2FCAA25E5B3), UINT64_C(0x000265D6E2479291), + UINT64_C(0x000011547C45B8FB), UINT64_C(0x0007BB46D4B019E2), + UINT64_C(0x00056F6CD9966342)}}, + {{UINT64_C(0x000716456F1AF846), UINT64_C(0x0006EC66D0F766DB), + UINT64_C(0x00046A2790A7CDEB), UINT64_C(0x0007D9FE58069E97), + UINT64_C(0x0006F455E4C8BAF4)}, + {UINT64_C(0x0002DE3D52161A5B), UINT64_C(0x0001322EF1230B3D), + UINT64_C(0x000064226A5D94E2), UINT64_C(0x0004F0C2721E80E3), + UINT64_C(0x00055430C4FD1472)}, + {UINT64_C(0x000F3FE53622B34E), UINT64_C(0x000400E37E2F6B5E), + UINT64_C(0x000786904CA5BE13), UINT64_C(0x000447C21E951630), + UINT64_C(0x00030E6760567848)}}, + {{UINT64_C(0x000B726FC584B729), UINT64_C(0x000414D51BCE0A43), + UINT64_C(0x000618F6813D930C), UINT64_C(0x00040A56D66C1756), + UINT64_C(0x0003D984C56008C4)}, + {UINT64_C(0x000EB2683ACBED46), UINT64_C(0x000652CB350659D6), + UINT64_C(0x00013634382FCA77), UINT64_C(0x0002F5D25E61B8FF), + UINT64_C(0x0000B4620F79B12A)}, + {UINT64_C(0x0001E7A57930B5B8), UINT64_C(0x00073653EC2B76D1), + UINT64_C(0x000613302FE0B30D), UINT64_C(0x0000A6C4E5761F63), + UINT64_C(0x0006ADF86A72CC92)}}, + {{UINT64_C(0x00019186A824FDD7), UINT64_C(0x00011924F7F2750C), + UINT64_C(0x00029AD4044367A7), UINT64_C(0x0007E9538B9DECCA), + UINT64_C(0x000280D45D483E14)}, + {UINT64_C(0x000BB52AB225DCB5), UINT64_C(0x00028B165CB1E4DA), + UINT64_C(0x0005BC09B05FCBE4), UINT64_C(0x000381D12C463328), + UINT64_C(0x00076D0B0F76F027)}, + {UINT64_C(0x000FEDF306C25C01), UINT64_C(0x0003FECB41117000), + UINT64_C(0x0002FD6A35E50E23), UINT64_C(0x000337ED65B03733), + UINT64_C(0x0000574ECBAE7CDC)}}, + {{UINT64_C(0x0006DB58E6ED0D33), UINT64_C(0x0006B3191FF18B0A), + UINT64_C(0x0003EA3B063F5E91), UINT64_C(0x00046C617AC41DAE), + UINT64_C(0x00055B8985867163)}, + {UINT64_C(0x000FE332D0609F49), UINT64_C(0x00029E2B6C0590BB), + UINT64_C(0x00027B083A8281E3), UINT64_C(0x00023F54A6691576), + UINT64_C(0x0001F9B2324B7AF4)}, + {UINT64_C(0x000B28B2B17C7FE4), UINT64_C(0x0006080357FBA43E), + UINT64_C(0x000615C5B81FBEF7), UINT64_C(0x0003954270A7909A), + UINT64_C(0x0001A2F47D0A04EB)}}, + {{UINT64_C(0x000BA17581986197), UINT64_C(0x00034870F30008DA), + UINT64_C(0x00013CA300CCA469), UINT64_C(0x0000B162692148B6), + UINT64_C(0x0003F7CF95609F4D)}, + {UINT64_C(0x000BAE83E74F002F), UINT64_C(0x00069841112F14B8), + UINT64_C(0x00078C4EFE35A991), UINT64_C(0x00060BCE9ED310B3), + UINT64_C(0x000754449FD8083C)}, + {UINT64_C(0x000AF607F5B16E11), UINT64_C(0x000353A2B8ACC91E), + UINT64_C(0x0000EF1D9E0EF391), UINT64_C(0x0004541CFF0EA8DF), + UINT64_C(0x00016AEAE7B3F2F0)}}, + {{UINT64_C(0x0004D0C351D81066), UINT64_C(0x0000558E4F8F8B3B), + UINT64_C(0x00016AB2E6954DA6), UINT64_C(0x0001322A57507762), + UINT64_C(0x000048180B80AB80)}, + {UINT64_C(0x0008458BFFCB303A), UINT64_C(0x00022F59A0891BA3), + UINT64_C(0x00015FD6CA3084EF), UINT64_C(0x000096545EB531A3), + UINT64_C(0x0006E575563BC013)}, + {UINT64_C(0x00051F33B08869E8), UINT64_C(0x00026605DC18D15D), + UINT64_C(0x00055CAC08CDE2C6), UINT64_C(0x000688FFA5C8BAE7), + UINT64_C(0x0001B5E984904B9C)}}, + {{UINT64_C(0x0006B8B443814972), UINT64_C(0x00055FB9A76E0CC9), + UINT64_C(0x00009CE2AAB60A30), UINT64_C(0x0003EF83A2F57151), + UINT64_C(0x00054D67D9A4F513)}, + {UINT64_C(0x0007BECDA40A587F), UINT64_C(0x00066610E3756505), + UINT64_C(0x000667AED7C671A5), UINT64_C(0x00045C3E37289FA8), + UINT64_C(0x0003EE1DEB8BF15F)}, + {UINT64_C(0x00036DA9491A8276), UINT64_C(0x0007F3BA7F45D5F3), + UINT64_C(0x0005491780986582), UINT64_C(0x00017D2A21BAB7FA), + UINT64_C(0x00002173C231405F)}}, + {{UINT64_C(0x000F3DB9923407C2), UINT64_C(0x00034756D5DCF8D4), + UINT64_C(0x00012004CC7C2A34), UINT64_C(0x000333FE8258F7D8), + UINT64_C(0x00022BB7C7E2AFDF)}, + {UINT64_C(0x0000F405EE8CE31C), UINT64_C(0x0000EAD90D22334E), + UINT64_C(0x00033D2A3C4C1541), UINT64_C(0x0000C208CD2F4BA6), + UINT64_C(0x000531D1A514C9B5)}, + {UINT64_C(0x0009F9F19D9C76D2), UINT64_C(0x00050FDE66CC4397), + UINT64_C(0x00007E0C2178203B), UINT64_C(0x0002A55E72D96E80), + UINT64_C(0x0003C184A5AB3FAA)}}, + {{UINT64_C(0x0001563D94E10FCD), UINT64_C(0x0002F2A35D0DB543), + UINT64_C(0x0006E7768E05CFD7), UINT64_C(0x000275C5FC14D586), + UINT64_C(0x000433EC2F348324)}, + {UINT64_C(0x0004D3D54C94DA0B), UINT64_C(0x000794DDFDB2EE1E), + UINT64_C(0x000682353D05BB00), UINT64_C(0x00062D8667C93A51), + UINT64_C(0x0004DADCA5A8CE84)}, + {UINT64_C(0x0008950DCBA27A08), UINT64_C(0x00059BB3D4E3ABE9), + UINT64_C(0x0003822C18A53312), UINT64_C(0x000244B26BFD9780), + UINT64_C(0x00021363F385A671)}}, + {{UINT64_C(0x0008D4A03FC03231), UINT64_C(0x00023E2A19529871), + UINT64_C(0x0007E6F5F8C1E22D), UINT64_C(0x0005603802B4085E), + UINT64_C(0x0003FFA733F66BE0)}, + {UINT64_C(0x000CC0D81C2C08E7), UINT64_C(0x00018D23FC4F115C), + UINT64_C(0x00003051462BF328), UINT64_C(0x0004DB5D451FA8EB), + UINT64_C(0x00010ACD436DB7AA)}, + {UINT64_C(0x000316FC2858C718), UINT64_C(0x0001C94A21AE0F16), + UINT64_C(0x0007FCCA25487FEF), UINT64_C(0x00075860E5CD985C), + UINT64_C(0x0005097BC8151C25)}}, + {{UINT64_C(0x000DD0D0A35B9B1D), UINT64_C(0x00069BAAA4B56FF0), + UINT64_C(0x0004C778899053BE), UINT64_C(0x00002FDC9FA10ADD), + UINT64_C(0x0007A47AFD52F5E3)}, + {UINT64_C(0x000E3285C26BE9BF), UINT64_C(0x00033A7071D32E1A), + UINT64_C(0x0005D4D66BCC2FAF), UINT64_C(0x00048588A74F8EA8), + UINT64_C(0x00067F167FCDC66E)}, + {UINT64_C(0x0008784A422379C4), UINT64_C(0x0007470006E5302B), + UINT64_C(0x000021E9843D3B99), UINT64_C(0x0003D41527492DDA), + UINT64_C(0x0006326EC5940067)}}, + {{UINT64_C(0x000FF43284BB2391), UINT64_C(0x00053CD58E6D70AA), + UINT64_C(0x0006AE6FA42E6DDF), UINT64_C(0x00028B006426C7D9), + UINT64_C(0x00052B4EB53AA929)}, + {UINT64_C(0x0005CDDE09C1B9A5), UINT64_C(0x0000A96E981F65EC), + UINT64_C(0x0001B2C7538B9E62), UINT64_C(0x000441A392439DEB), + UINT64_C(0x0006A2B722DC6381)}, + {UINT64_C(0x000900CFD32A9792), UINT64_C(0x0001A7B4A6CF54D6), + UINT64_C(0x0003CBAB4ADCD36D), UINT64_C(0x0007B9C1AA60B86D), + UINT64_C(0x0000702520E53679)}}, + {{UINT64_C(0x000C9A305D7834CB), UINT64_C(0x0005B7B9FE0CCCE7), + UINT64_C(0x000016A6095A241B), UINT64_C(0x0004B712FDF75B13), + UINT64_C(0x0002C53655BBD91A)}, + {UINT64_C(0x0008A6ED2314DDC8), UINT64_C(0x0007DA70CDF279E7), + UINT64_C(0x0006D2D0C3606E50), UINT64_C(0x0003283DAAA8966F), + UINT64_C(0x0006EF64B4E41560)}, + {UINT64_C(0x00042A16ECAEB238), UINT64_C(0x0005A981B79EAFF2), + UINT64_C(0x0005427BFC071A2B), UINT64_C(0x00049349A5AB5626), + UINT64_C(0x00041BC86960BD2C)}}, + {{UINT64_C(0x000ABCDBE3A9E5D5), UINT64_C(0x000405363A4B3483), + UINT64_C(0x000120CFBB24A873), UINT64_C(0x0005AAE474A462D0), + UINT64_C(0x00035D540394697D)}, + {UINT64_C(0x000A64659EFE52C3), UINT64_C(0x0004DB773D047E7A), + UINT64_C(0x0002162ABB1CFD3D), UINT64_C(0x00015B391C39D9D5), + UINT64_C(0x00045B7D89DC266B)}, + {UINT64_C(0x000B2D1FBC9FC441), UINT64_C(0x00012722CD49F3E8), + UINT64_C(0x0004A0CFFD68110C), UINT64_C(0x0001B6ECFF11A156), + UINT64_C(0x0007D2F58CE5E926)}}, + }, + { + {{UINT64_C(0x000E1788C8C3CC62), UINT64_C(0x00043FD128363765), + UINT64_C(0x00069AE472062EAB), UINT64_C(0x00035D256FE91217), + UINT64_C(0x00067910C5563600)}, + {UINT64_C(0x000F768B1233A3DB), UINT64_C(0x0007DF4C7CD2EA86), + UINT64_C(0x0002CAE86EF8DA2A), UINT64_C(0x0002329535DE9283), + UINT64_C(0x0005A07C9F89C3C4)}, + {UINT64_C(0x000054FF768F9CA3), UINT64_C(0x00043D9E4B66B860), + UINT64_C(0x0007DF913CA8B203), UINT64_C(0x000719B3B558DDAA), + UINT64_C(0x00049B2BB9B923F3)}}, + {{UINT64_C(0x000890BE7F18CD54), UINT64_C(0x00044AEBC732FC6C), + UINT64_C(0x0000F98B4946A855), UINT64_C(0x00012B28B7A38B2D), + UINT64_C(0x00030C9FAD322292)}, + {UINT64_C(0x0009D307A4D23D40), UINT64_C(0x00056FC224E7F4C7), + UINT64_C(0x00054A676DE6F4D3), UINT64_C(0x0006E886B5E9AB59), + UINT64_C(0x0005165D23A85BC8)}, + {UINT64_C(0x000ED25967873511), UINT64_C(0x0006C6A9C182B080), + UINT64_C(0x0006978A72802608), UINT64_C(0x0006BF34B9518468), + UINT64_C(0x0006871D973DF84B)}}, + {{UINT64_C(0x000F875D00421E67), UINT64_C(0x00042EDCCB1C82C1), + UINT64_C(0x000048FC0A2E1BB9), UINT64_C(0x000733FCF9823770), + UINT64_C(0x00049255AE9DEDFF)}, + {UINT64_C(0x000B76A27F806A6B), UINT64_C(0x0002C8618FECD22F), + UINT64_C(0x0007CA416389DB51), UINT64_C(0x00072B231F4E3DF8), + UINT64_C(0x00037E6C81D4C8A3)}, + {UINT64_C(0x000315AE714C164A), UINT64_C(0x0000651074CD146C), + UINT64_C(0x00070A110B6FA83C), UINT64_C(0x000292BEB2445915), + UINT64_C(0x0007BAE86E66340A)}}, + {{UINT64_C(0x0005A42303FA5032), UINT64_C(0x00079C0EED4C5482), + UINT64_C(0x00070FAF28317AA9), UINT64_C(0x000252F900BCA786), + UINT64_C(0x0004C6DF6AC32D72)}, + {UINT64_C(0x000899EF622C1092), UINT64_C(0x00024300EA163F80), + UINT64_C(0x0005D78541F9C58D), UINT64_C(0x0000A82CF29A5335), + UINT64_C(0x00057651841E4857)}, + {UINT64_C(0x0002DDAF4534E914), UINT64_C(0x0005C3F8E3CEDF3D), + UINT64_C(0x0007E428DFE30ABB), UINT64_C(0x0000CFA8EF984856), + UINT64_C(0x0007F54DE1239314)}}, + {{UINT64_C(0x0003E194BB770B21), UINT64_C(0x0005FE5004F0D44C), + UINT64_C(0x00000E420E05B0CD), UINT64_C(0x0007F4C1EB04ADEA), + UINT64_C(0x00042CF75F5849CB)}, + {UINT64_C(0x000DFBFF2F58474E), UINT64_C(0x000023E38CACC0A2), + UINT64_C(0x0007940AAA1D2AEF), UINT64_C(0x00066B3671EF7D12), + UINT64_C(0x0002262304E8FD69)}, + {UINT64_C(0x0008190A96FA31A5), UINT64_C(0x000342B2840B29B6), + UINT64_C(0x000692023CF41B60), UINT64_C(0x000438CCB9AD9326), + UINT64_C(0x0006A74AEEF91383)}}, + {{UINT64_C(0x00018FBC15EE9825), UINT64_C(0x000471ADE4E86042), + UINT64_C(0x000460985BA9C276), UINT64_C(0x0000273A2CD2F02D), + UINT64_C(0x0003D497885E0289)}, + {UINT64_C(0x000FB3F88C29D5D7), UINT64_C(0x00006A92797F73B7), + UINT64_C(0x00040AF0BB921EC0), UINT64_C(0x00056F0E3B22C834), + UINT64_C(0x0002624649A67166)}, + {UINT64_C(0x00027A77B2D5B395), UINT64_C(0x000485B55DD21EC2), + UINT64_C(0x00018F0DD390533C), UINT64_C(0x0002C22DC574DCED), + UINT64_C(0x0002023C88609399)}}, + {{UINT64_C(0x0000652B6A1715E4), UINT64_C(0x00010936CCCDBCBB), + UINT64_C(0x00075D99584830CC), UINT64_C(0x00013967DE55AE9B), + UINT64_C(0x000497B11ABB2BA5)}, + {UINT64_C(0x00029098D0D4B7BF), UINT64_C(0x000148C12832BF02), + UINT64_C(0x0001ACF592227FC4), UINT64_C(0x000361B3459461F5), + UINT64_C(0x00017789D92B4734)}, + {UINT64_C(0x00051C79B949CE9C), UINT64_C(0x0003A90D40F0533B), + UINT64_C(0x0000FF1DE7855E3C), UINT64_C(0x00063C0B316F0292), + UINT64_C(0x00079EE9916B16AB)}}, + {{UINT64_C(0x000BAF756382E001), UINT64_C(0x00074E66D14AA815), + UINT64_C(0x0005B5DA0DFB4345), UINT64_C(0x0006A98DDBA8EDB0), + UINT64_C(0x00036757B46A7CB2)}, + {UINT64_C(0x000D2030D203D167), UINT64_C(0x0003C138F45B97D2), + UINT64_C(0x0000D68249398DBC), UINT64_C(0x00024992D9AC907A), + UINT64_C(0x00054B2D81985107)}, + {UINT64_C(0x000C135EB42B443B), UINT64_C(0x000459E57D3F091F), + UINT64_C(0x0007365731E3CB09), UINT64_C(0x00037913422A2661), + UINT64_C(0x00022EB791C1E99D)}}, + {{UINT64_C(0x000DBBF41597ABD7), UINT64_C(0x00047A1841FA5CB7), + UINT64_C(0x0005DFFB8D0489BA), UINT64_C(0x000207F59D5AFDD6), + UINT64_C(0x0005862958391C33)}, + {UINT64_C(0x00023D6607BF974F), UINT64_C(0x000447A73195D140), + UINT64_C(0x0001CEA4FE1AACB4), UINT64_C(0x00009432CE509804), + UINT64_C(0x0002E2C660E2C2A9)}, + {UINT64_C(0x00076405764963F7), UINT64_C(0x0007B075E1B18E3F), + UINT64_C(0x0003C86F3DB152BE), UINT64_C(0x000717D762BDBB19), + UINT64_C(0x00009430702D8371)}}, + {{UINT64_C(0x000AF7F915E85486), UINT64_C(0x0000B0BBC2BBB069), + UINT64_C(0x0004A8AC30D65B82), UINT64_C(0x0001A98BB8FFCCD1), + UINT64_C(0x0000A60C0955A82C)}, + {UINT64_C(0x00028B7AA8D6E8B3), UINT64_C(0x000599AA3AFD1F06), + UINT64_C(0x000495C8A53271EA), UINT64_C(0x00010D4AB4581526), + UINT64_C(0x00005A91911011B4)}, + {UINT64_C(0x00091E63537A8EAF), UINT64_C(0x0004DDC52ABAE41E), + UINT64_C(0x0003DD0926FDA797), UINT64_C(0x00053806DE4C5BB3), + UINT64_C(0x0005E6F1B98E4E5F)}}, + {{UINT64_C(0x000ED0D0E611D440), UINT64_C(0x00028F43B4F900C1), + UINT64_C(0x0004C3467D15A321), UINT64_C(0x0003FA40B92F63A1), + UINT64_C(0x0004EB1D7C0F97C7)}, + {UINT64_C(0x000F31CB2B424218), UINT64_C(0x00028FC2CBD4B770), + UINT64_C(0x000049E2E21B9426), UINT64_C(0x0004FBA6C0CA6B59), + UINT64_C(0x0000910A8BCBADA6)}, + {UINT64_C(0x000062AA84E5A1E8), UINT64_C(0x00055785384B963C), + UINT64_C(0x000718EE20099ACE), UINT64_C(0x0001AAE6F92CB06B), + UINT64_C(0x0005C36213B6B09F)}}, + {{UINT64_C(0x00042CD518E7BB1F), UINT64_C(0x000621C5EDE20FF0), + UINT64_C(0x000784AA45E52004), UINT64_C(0x0001EF5EE32943D1), + UINT64_C(0x00020EB45F6DCE70)}, + {UINT64_C(0x0001A99725161F74), UINT64_C(0x0000C92D8DE52D6B), + UINT64_C(0x0004943C545783B6), UINT64_C(0x0000F2A34F6C04CA), + UINT64_C(0x0004BA95172EB757)}, + {UINT64_C(0x00058B38359EEF2E), UINT64_C(0x00072A003FEEF0E3), + UINT64_C(0x0005A1A497C5B5E4), UINT64_C(0x0007346A30D5043D), + UINT64_C(0x0004DCC170CE73B1)}}, + {{UINT64_C(0x0007FCA11D67A5F5), UINT64_C(0x00051F99020E8DA7), + UINT64_C(0x00032448AD151580), UINT64_C(0x0002D682339FD143), + UINT64_C(0x0005C59954328210)}, + {UINT64_C(0x000065B65920EA67), UINT64_C(0x00064F016ACC8DB2), + UINT64_C(0x0002B54FD32DCADE), UINT64_C(0x0007514AC407F433), + UINT64_C(0x0006FB8E73CDEC87)}, + {UINT64_C(0x0008D3F0CEB6FEF4), UINT64_C(0x000008CD1DAF58F2), + UINT64_C(0x0005E29BD86720C8), UINT64_C(0x0001F89E2EA7D372), + UINT64_C(0x0000F12D2FEBC32E)}}, + {{UINT64_C(0x00074C08FE9F6EBB), UINT64_C(0x00019BC5A03773E2), + UINT64_C(0x0002DC6D42FDA236), UINT64_C(0x00026B76B5DD35AA), + UINT64_C(0x0004AC140E7698BA)}, + {UINT64_C(0x00007B671BE5225C), UINT64_C(0x00075E4E1423B035), + UINT64_C(0x0005C5078EE3FB12), UINT64_C(0x00018FE0631F18BA), + UINT64_C(0x00049C97C216ADA7)}, + {UINT64_C(0x000288CA79DE3FDD), UINT64_C(0x0005F95B9694502C), + UINT64_C(0x0007A90B27755E7B), UINT64_C(0x0000D6B962A5D7B4), + UINT64_C(0x0002B73E8EABF5E7)}}, + {{UINT64_C(0x000CF4B90C4F175B), UINT64_C(0x00038B2E4ADFE275), + UINT64_C(0x00051C55B83D6C95), UINT64_C(0x00055A2D1264C7D4), + UINT64_C(0x00062E83FE154821)}, + {UINT64_C(0x0008971A5D058482), UINT64_C(0x0000037DDD623E19), + UINT64_C(0x00032867F2B615A5), UINT64_C(0x000623016E6AEBA8), + UINT64_C(0x00012A36AB822905)}, + {UINT64_C(0x000120EE148C51AE), UINT64_C(0x00040334FADAA4FB), + UINT64_C(0x000334965ACA2453), UINT64_C(0x0006D3E8020844BE), + UINT64_C(0x00067F6DE44BCF25)}}, + {{UINT64_C(0x000105D43C9E9178), UINT64_C(0x0004721A89809540), + UINT64_C(0x0006FC38C213B1E4), UINT64_C(0x0002647D42F65B1A), + UINT64_C(0x0000376348D66B34)}, + {UINT64_C(0x000C9949B00A3DA8), UINT64_C(0x0000A0919FC02F1D), + UINT64_C(0x00028254055C25E6), UINT64_C(0x0001D9499A0AE6F5), + UINT64_C(0x0001AACE22F92850)}, + {UINT64_C(0x0000AD0E76427572), UINT64_C(0x0004C84545B77E18), + UINT64_C(0x000288F5B54FDDB7), UINT64_C(0x00038ED121222ABA), + UINT64_C(0x0003A0976AA7E43F)}}, + }, + { + {{UINT64_C(0x00081FCF9F18835D), UINT64_C(0x000431F4C3B0D6B0), + UINT64_C(0x0004948FEC6A3648), UINT64_C(0x0004A9B64ED01851), + UINT64_C(0x0005A8976BDBA97F)}, + {UINT64_C(0x000B16BF1437E1C3), UINT64_C(0x00037D028CF83551), + UINT64_C(0x0001D4890BE8B6E0), UINT64_C(0x00014CEE0109B29D), + UINT64_C(0x0001D11B49FC55FA)}, + {UINT64_C(0x000FF921373DC1C7), UINT64_C(0x00038DE820056599), + UINT64_C(0x0000120CE481802B), UINT64_C(0x0006FFC1F2C088F4), + UINT64_C(0x0001EE2D0C6B1DF4)}}, + {{UINT64_C(0x00000FF81329CB03), UINT64_C(0x00068780226033B3), + UINT64_C(0x0006A2545BA20041), UINT64_C(0x0005B2BDDF462150), + UINT64_C(0x0003958DB9028FB7)}, + {UINT64_C(0x000C6BC63284596C), UINT64_C(0x000348523D1DBF57), + UINT64_C(0x00046E3F936916F1), UINT64_C(0x0005F78F7E010886), + UINT64_C(0x0004BAEFBF32EDCF)}, + {UINT64_C(0x0006B10E2C0DA1C1), UINT64_C(0x000039C183458580), + UINT64_C(0x00012DB6C7B007C5), UINT64_C(0x0003F3B7176CF39B), + UINT64_C(0x0003C1F7265871AC)}}, + {{UINT64_C(0x00085B51F8BCFE19), UINT64_C(0x00014E262925BD43), + UINT64_C(0x00012F59369D7DEC), UINT64_C(0x0005891E437C785D), + UINT64_C(0x000079EFC6B4ADC9)}, + {UINT64_C(0x00057113F86AEFDE), UINT64_C(0x00031D2A3CBB809F), + UINT64_C(0x00033DCF8AE19C6C), UINT64_C(0x00002213DF3BA392), + UINT64_C(0x0002650EDFE84235)}, + {UINT64_C(0x0004FEF6E8E8730E), UINT64_C(0x0002E2C593B029F4), + UINT64_C(0x0002D3E99D33A67F), UINT64_C(0x00014E290C55B9BF), + UINT64_C(0x0004403429D2BE3D)}}, + {{UINT64_C(0x000409570F86A1D1), UINT64_C(0x00022B63BCCD0F01), + UINT64_C(0x0004F7D7B94F1868), UINT64_C(0x0001450E62B7DF7C), + UINT64_C(0x000694DAA72BBCAC)}, + {UINT64_C(0x000F24FC804E499A), UINT64_C(0x0001C5150B7A2ED2), + UINT64_C(0x0004AA24EEC36D37), UINT64_C(0x0002132213761A03), + UINT64_C(0x00075A13822D103C)}, + {UINT64_C(0x000067187C39EB19), UINT64_C(0x0007765373B31B66), + UINT64_C(0x00029CEAE18E4D79), UINT64_C(0x0002C737CC0BD795), + UINT64_C(0x0003193EDEEA0158)}}, + {{UINT64_C(0x0005B52C3101E326), UINT64_C(0x0007176502D653B5), + UINT64_C(0x0001FD26BF9CB194), UINT64_C(0x0004FB67EADB3779), + UINT64_C(0x0004D0C770A8ACCF)}, + {UINT64_C(0x00011F79B7B344FC), UINT64_C(0x00006663499E87A4), + UINT64_C(0x000450DAEF594E13), UINT64_C(0x00078C2F195A18D1), + UINT64_C(0x0007978E36566E63)}, + {UINT64_C(0x0002EB14A8C94333), UINT64_C(0x0001C2F764E483AE), + UINT64_C(0x00031C462060C077), UINT64_C(0x0003EF30123095CE), + UINT64_C(0x00021B6A8AF629FF)}}, + {{UINT64_C(0x0006C49C35F232E3), UINT64_C(0x0000B80EEFEC6616), + UINT64_C(0x000680164DFC3701), UINT64_C(0x00072FF54666B634), + UINT64_C(0x00068AB4AFC182CD)}, + {UINT64_C(0x000176EF0C655243), UINT64_C(0x00019A1EE66FD2EB), + UINT64_C(0x0006AF04A498FFA9), UINT64_C(0x0002514F98E20D4A), + UINT64_C(0x0001A0821E95F930)}, + {UINT64_C(0x000D58CC3800FE7F), UINT64_C(0x00050C9E092A5673), + UINT64_C(0x00051CB3347178DD), UINT64_C(0x0002C9C1FB2FE677), + UINT64_C(0x00015EE68A8526B0)}}, + {{UINT64_C(0x000CD72A8856201E), UINT64_C(0x00038E8C397ED335), + UINT64_C(0x0000B8E2262FC710), UINT64_C(0x000027DC02E17AF3), + UINT64_C(0x0006A5F450F30E8E)}, + {UINT64_C(0x000B680DE0C07AE0), UINT64_C(0x00054D907D909686), + UINT64_C(0x000757C2922B0737), UINT64_C(0x000660842FC9A0BA), + UINT64_C(0x0003FC7B58E7239A)}, + {UINT64_C(0x0004651B7E8AE200), UINT64_C(0x000484D3CB6C7A8E), + UINT64_C(0x0002F474BA01A0C0), UINT64_C(0x00044AA7003C772D), + UINT64_C(0x0000371F52FFC53B)}}, + {{UINT64_C(0x0005C3B547E0B571), UINT64_C(0x000209CCABD0AB4B), + UINT64_C(0x0002D25C9DBF3DB1), UINT64_C(0x000032A6A6DE8522), + UINT64_C(0x00017A0AD8ECF369)}, + {UINT64_C(0x0009010B6E71332D), UINT64_C(0x0007B69ECC73F71C), + UINT64_C(0x0000FFC2CCAF6490), UINT64_C(0x00064FDB227E8E46), + UINT64_C(0x00055085B8768622)}, + {UINT64_C(0x00039AD933E2C137), UINT64_C(0x000171F8E3C0681B), + UINT64_C(0x0001BCC516668190), UINT64_C(0x00063314F511F47A), + UINT64_C(0x0002FE194634EA7D)}}, + {{UINT64_C(0x000FE52986682B6C), UINT64_C(0x0007C7793C6CFA0B), + UINT64_C(0x0002F120DB9FC778), UINT64_C(0x00056B1B5D1B696B), + UINT64_C(0x0006F7B105C7285D)}, + {UINT64_C(0x000F08F3C79E5FA2), UINT64_C(0x0006714A9E5021DE), + UINT64_C(0x000556DFCA302233), UINT64_C(0x00036A6272A322E0), + UINT64_C(0x0007958876DF034E)}, + {UINT64_C(0x0001B28B59F70354), UINT64_C(0x0007AB27CE51E80D), + UINT64_C(0x0000567BCD43D179), UINT64_C(0x00041EF880C69F63), + UINT64_C(0x00057CCC9DA97DCC)}}, + {{UINT64_C(0x00006BDC7393E9B9), UINT64_C(0x00056D46935E2D25), + UINT64_C(0x00040C99AE846E20), UINT64_C(0x000277C2A48B7D6B), + UINT64_C(0x0006F9657DBA5EC0)}, + {UINT64_C(0x000E84FD78E1468C), UINT64_C(0x0001F647949AC006), + UINT64_C(0x000373B20611C903), UINT64_C(0x00015E6FAFF6FA2A), + UINT64_C(0x00053520AB3070E2)}, + {UINT64_C(0x000CC15CC69411F0), UINT64_C(0x000552FB8719E7D5), + UINT64_C(0x0007C3B5010848F9), UINT64_C(0x0000E8AF5525076D), + UINT64_C(0x00058459D1B894E4)}}, + {{UINT64_C(0x000B9009E3531F14), UINT64_C(0x0000237005679DB2), + UINT64_C(0x0007BF223FD5732A), UINT64_C(0x0006429263F091F4), + UINT64_C(0x0007493705D2ADC2)}, + {UINT64_C(0x000793C60C5EACBA), UINT64_C(0x000332F859C4D8EE), + UINT64_C(0x0000D090DF892E4A), UINT64_C(0x00041A3040EC7085), + UINT64_C(0x0001F585E3FC2C2A)}, + {UINT64_C(0x00084D3FD3FF468A), UINT64_C(0x00038C0475145DFA), + UINT64_C(0x00056070E08A4838), UINT64_C(0x0002AC8E15465366), + UINT64_C(0x0000F1485199EC2C)}}, + {{UINT64_C(0x000012693C9129E3), UINT64_C(0x00011009F59E7410), + UINT64_C(0x0005E068432FB821), UINT64_C(0x000509F6A285BC64), + UINT64_C(0x00064B88E6E8B8A6)}, + {UINT64_C(0x000739F7074FD4A7), UINT64_C(0x00032712493D3F9E), + UINT64_C(0x0002E3550E33660D), UINT64_C(0x0006EE093485A6A5), + UINT64_C(0x0004CAE5F8CDBF10)}, + {UINT64_C(0x000BB27495CF7ED3), UINT64_C(0x00001CEB73051EC2), + UINT64_C(0x000686DC320D7C1D), UINT64_C(0x0007C5AD5EC9F58E), + UINT64_C(0x0001B98ED417D210)}}, + {{UINT64_C(0x000BCF4C24A4C93E), UINT64_C(0x00002415C387FA3B), + UINT64_C(0x0004B3C58228DDFC), UINT64_C(0x0002037F66598FCF), + UINT64_C(0x000793FF104F8F35)}, + {UINT64_C(0x000F1F6A9319DCA8), UINT64_C(0x0007F0E26C6BFDCF), + UINT64_C(0x00024F06F6521950), UINT64_C(0x0001BF65931AAD98), + UINT64_C(0x0004DA8B59BE0CB7)}, + {UINT64_C(0x000C49B7018AF82E), UINT64_C(0x0000264DF5E55202), + UINT64_C(0x00004C1B40891F09), UINT64_C(0x00037D39139B0395), + UINT64_C(0x000545CEBFF22B6C)}}, + {{UINT64_C(0x0000535E19606923), UINT64_C(0x000389F3CEB25CB9), + UINT64_C(0x000771A87A5F04FF), UINT64_C(0x000712E80B91B905), + UINT64_C(0x00001F1EA4402629)}, + {UINT64_C(0x0003A2CFFE51751A), UINT64_C(0x0001780B59BF2F57), + UINT64_C(0x00033B2134560E7F), UINT64_C(0x0000C2FD87484CD4), + UINT64_C(0x0000C1E827BF8C54)}, + {UINT64_C(0x000BB159A554E7F7), UINT64_C(0x000679D0F2669B49), + UINT64_C(0x0007C8AF96EB162D), UINT64_C(0x000739F8391987C4), + UINT64_C(0x0004FD6BA815924D)}}, + {{UINT64_C(0x000CD58A76375AB1), UINT64_C(0x0000E0B8DB7493B2), + UINT64_C(0x0001F26DC2178BD2), UINT64_C(0x000267C3B843A318), + UINT64_C(0x0003B57558845D7B)}, + {UINT64_C(0x00062248E93DA9D4), UINT64_C(0x0001B750D5841F57), + UINT64_C(0x0005825717C4CDF9), UINT64_C(0x000395BD7231BF89), + UINT64_C(0x0005BB6B5E2E6AF9)}, + {UINT64_C(0x0009C6B9394024E3), UINT64_C(0x00075C5446BE7237), + UINT64_C(0x00065E6C801E7BB5), UINT64_C(0x00002DB2F90A55CC), + UINT64_C(0x00045DBB4D1CCBDE)}}, + {{UINT64_C(0x00053CBFDBE0980A), UINT64_C(0x0001407AA377A7AD), + UINT64_C(0x0001290C47515626), UINT64_C(0x0006B6C6AB3118E7), + UINT64_C(0x0002C22D483E81D6)}, + {UINT64_C(0x00012ACDC7AE7440), UINT64_C(0x00069C66640BC7A6), + UINT64_C(0x00002A4F768809CC), UINT64_C(0x00014168BEC8D796), + UINT64_C(0x000052716E75E07B)}, + {UINT64_C(0x0001BB2F947F80B6), UINT64_C(0x000073A86D41B9DC), + UINT64_C(0x0000F191E9DE78B6), UINT64_C(0x00065DF33E390DB9), + UINT64_C(0x00003308F79176BD)}}, + }, + { + {{UINT64_C(0x000BA39C423A0F8A), UINT64_C(0x0006FF2C4C49644C), + UINT64_C(0x000527B0CF9945D1), UINT64_C(0x000462BF78F17E13), + UINT64_C(0x000072F5DF073B45)}, + {UINT64_C(0x000A52B0C9431B86), UINT64_C(0x00007413199BDB5A), + UINT64_C(0x0006FF18C34250CB), UINT64_C(0x0005F22C96AC669A), + UINT64_C(0x00009930CFA11CAD)}, + {UINT64_C(0x00049D54A46B4F00), UINT64_C(0x0001AA620DEF496D), + UINT64_C(0x0001FF21C12D3280), UINT64_C(0x0006DA8184B69B09), + UINT64_C(0x000387F6AA984BF6)}}, + {{UINT64_C(0x0001654E2D2F5512), UINT64_C(0x00078F8B53D7341A), + UINT64_C(0x0000470E5BC40FE6), UINT64_C(0x0006C2A23BF4231D), + UINT64_C(0x00008AD4AC154BD4)}, + {UINT64_C(0x00025588B0E427F0), UINT64_C(0x00004B7426292145), + UINT64_C(0x0004EFE16DBDD657), UINT64_C(0x000737056241360D), + UINT64_C(0x000503BBEF8BB0A2)}, + {UINT64_C(0x000E71495D3F3EE8), UINT64_C(0x0003B55E84166513), + UINT64_C(0x0005A32066E89C7A), UINT64_C(0x00060FD619143FDC), + UINT64_C(0x0007AF54E13C9A0B)}}, + {{UINT64_C(0x000F35F2359ED4D4), UINT64_C(0x0006DAD5A1EDD9F7), + UINT64_C(0x00033E72BB06FA4C), UINT64_C(0x0004CB0BF2699447), + UINT64_C(0x00078ADC100A9438)}, + {UINT64_C(0x00058677010F1D44), UINT64_C(0x0000EE3DA34D7805), + UINT64_C(0x0003C19261DBCE0E), UINT64_C(0x0000BE1D2B1915F1), + UINT64_C(0x0004C27417301A56)}, + {UINT64_C(0x00010519E74F0FD3), UINT64_C(0x000667928B6E2AED), + UINT64_C(0x000112B7D96F8351), UINT64_C(0x00025AC5C3C73843), + UINT64_C(0x00064F071A913A63)}}, + {{UINT64_C(0x000134221F75E904), UINT64_C(0x0001E877FC436184), + UINT64_C(0x0001043119533F1B), UINT64_C(0x00036E12894B6885), + UINT64_C(0x0001A97DC3A85DD9)}, + {UINT64_C(0x0005B0E5800AD26D), UINT64_C(0x0003C8403B9B7909), + UINT64_C(0x000578BF28F187B8), UINT64_C(0x0006F76A622B025F), + UINT64_C(0x00001A581506806A)}, + {UINT64_C(0x000B1B3A779043A2), UINT64_C(0x0002BD2CCEFC7D40), + UINT64_C(0x0006880561392822), UINT64_C(0x000470820DC7AD05), + UINT64_C(0x0000A8A6DFE39EFC)}}, + {{UINT64_C(0x0003B4AE7341A857), UINT64_C(0x0006F61AE4525D94), + UINT64_C(0x00047463C3F47708), UINT64_C(0x00013CE30C0E6CD4), + UINT64_C(0x0001A4D6B43BC1E8)}, + {UINT64_C(0x000448110CF677D7), UINT64_C(0x0002B26F500047C8), + UINT64_C(0x0000A9EDEE30B5CA), UINT64_C(0x00074CEAB89A5F26), + UINT64_C(0x00069DC9E784890E)}, + {UINT64_C(0x0002384FEB025EE8), UINT64_C(0x000760169DF0E4ED), + UINT64_C(0x000679A94C441675), UINT64_C(0x0006E39A8B9E9323), + UINT64_C(0x0004F60517E33211)}}, + {{UINT64_C(0x000D1F112D03827C), UINT64_C(0x0003E266C25B8CB9), + UINT64_C(0x0004DDAE5E9A861A), UINT64_C(0x0003FDDD5A19E3FC), + UINT64_C(0x000525AC4177127A)}, + {UINT64_C(0x0005E3FBAF1DE590), UINT64_C(0x00006D0AC9D49EBF), + UINT64_C(0x00071A842BB0750F), UINT64_C(0x00030A965193BEB1), + UINT64_C(0x00000074F0F13CF1)}, + {UINT64_C(0x000569358B8229BF), UINT64_C(0x0004D8605014C12D), + UINT64_C(0x00067CF8F3ABB9E2), UINT64_C(0x0001913D15FE7E56), + UINT64_C(0x0004E005335EB124)}}, + {{UINT64_C(0x000DB4B52128B9C8), UINT64_C(0x000286D98EC1991F), + UINT64_C(0x00057D6985B266D5), UINT64_C(0x0000D63A8186A6CA), + UINT64_C(0x0003E458C6D43002)}, + {UINT64_C(0x000FAC1001DCF643), UINT64_C(0x0001A63A60E69551), + UINT64_C(0x000770074385A527), UINT64_C(0x000716E487ACFCBE), + UINT64_C(0x0003AFC421F39471)}, + {UINT64_C(0x0001FF85BA0DD581), UINT64_C(0x000185663E421B6B), + UINT64_C(0x0003D0CC19588A5B), UINT64_C(0x00050A4ED90A0BD8), + UINT64_C(0x0001ADEA0DFB4B55)}}, + {{UINT64_C(0x000F8CD682890618), UINT64_C(0x0001B4C0FC4BF1B7), + UINT64_C(0x0004593054904595), UINT64_C(0x00044163E1D05297), + UINT64_C(0x0004FF913B7848EE)}, + {UINT64_C(0x00044061A1C77BF2), UINT64_C(0x000118C6EAF78CBE), + UINT64_C(0x000121317990C4B0), UINT64_C(0x00014F94111D4DBF), + UINT64_C(0x00050FC488F73A1C)}, + {UINT64_C(0x0003F8A423FF3B98), UINT64_C(0x00057AB9DDB49662), + UINT64_C(0x000307128F5CD0A4), UINT64_C(0x0005C206361126E4), + UINT64_C(0x00058F1A9B6F58C2)}}, + {{UINT64_C(0x00026D3D15CAFC7E), UINT64_C(0x00011891BC41E2F2), + UINT64_C(0x0006F04870D432A4), UINT64_C(0x000745C21E77AAA6), + UINT64_C(0x0003DAC061530272)}, + {UINT64_C(0x0001DAF75081BEA5), UINT64_C(0x00056D5195DD18E2), + UINT64_C(0x0001DCAC8C45410E), UINT64_C(0x0004D2DA16F980D8), + UINT64_C(0x00063744829E7170)}, + {UINT64_C(0x000DF1C42FA10272), UINT64_C(0x0000741CA2FAA037), + UINT64_C(0x0000467C87311FE7), UINT64_C(0x000523429446FA40), + UINT64_C(0x00068BD1A87367D1)}}, + {{UINT64_C(0x000C458B0171251B), UINT64_C(0x0001FE9DE818F3CF), + UINT64_C(0x00054A1370707A2C), UINT64_C(0x000062F84AA462F0), + UINT64_C(0x0007CF5A9BF230F7)}, + {UINT64_C(0x00054404A1098FC2), UINT64_C(0x0002411906266825), + UINT64_C(0x0000A193956A70E8), UINT64_C(0x0000FE137D04BC1F), + UINT64_C(0x0004E42D21EFFD81)}, + {UINT64_C(0x000F2EAC10355E39), UINT64_C(0x00054F7E065688EB), + UINT64_C(0x0001A95E0CA9F2C6), UINT64_C(0x0007E704C61469A2), + UINT64_C(0x0007B68ADBD82DC6)}}, + {{UINT64_C(0x000899180C1E2363), UINT64_C(0x0007958932146E24), + UINT64_C(0x00043C3BDBE7E084), UINT64_C(0x00059983B137251C), + UINT64_C(0x000181505C38246A)}, + {UINT64_C(0x0000FD89855EFABB), UINT64_C(0x0003B63D1B15E2DE), + UINT64_C(0x000255391D67495A), UINT64_C(0x0004DD2784B95163), + UINT64_C(0x000512AAAA077953)}, + {UINT64_C(0x000F74E51E9D1E14), UINT64_C(0x0007A0923F8922E5), + UINT64_C(0x000481DF01D3BA5E), UINT64_C(0x00078147FE69A25E), + UINT64_C(0x0002677F7C367D95)}}, + {{UINT64_C(0x000C31AE3ACBF754), UINT64_C(0x00015B533DE0199D), + UINT64_C(0x00037F5398951F25), UINT64_C(0x0007F6D8289614BF), + UINT64_C(0x0007A746B03A9AD8)}, + {UINT64_C(0x000A5E8B067361B9), UINT64_C(0x000753D2A11E2709), + UINT64_C(0x00068EB1296DD194), UINT64_C(0x0007F60FCC2F2F13), + UINT64_C(0x000241ECD0A2E455)}, + {UINT64_C(0x000AB9A10A22A500), UINT64_C(0x0001B6D59F5E169E), + UINT64_C(0x00031BBC448574D5), UINT64_C(0x0004717C01E2B0BB), + UINT64_C(0x0003D21E8ACA1878)}}, + {{UINT64_C(0x000499194C8B1C66), UINT64_C(0x00023DD23CF4A5FF), + UINT64_C(0x000260F22A1F1E67), UINT64_C(0x00046F48D856E7A8), + UINT64_C(0x00027B4E0522C56B)}, + {UINT64_C(0x000197955EC21F63), UINT64_C(0x0004F7579537C60A), + UINT64_C(0x0001EED38E27A397), UINT64_C(0x000642709A47DD6D), + UINT64_C(0x0000CEC4BAE6CE94)}, + {UINT64_C(0x0007E224BD3DE334), UINT64_C(0x0002BC2A4E547CE3), + UINT64_C(0x0006C9441E441A2F), UINT64_C(0x00066ABBA46DB7C3), + UINT64_C(0x0007D6D7B2C94D89)}}, + {{UINT64_C(0x00094A1B918036C4), UINT64_C(0x0007000DC73238D4), + UINT64_C(0x00077504C3F1AB6E), UINT64_C(0x0004E6A5D5C7C6A1), + UINT64_C(0x0003821648B33D3A)}, + {UINT64_C(0x00081E39CDB93F79), UINT64_C(0x0004EBBC689100FB), + UINT64_C(0x0001DD37C191E986), UINT64_C(0x000036795A799602), + UINT64_C(0x000041C1B41711DB)}, + {UINT64_C(0x000A4A21AC6CAF3D), UINT64_C(0x000744CF7594E6F1), + UINT64_C(0x000030561165E9A9), UINT64_C(0x00074B8AB965B245), + UINT64_C(0x000244902E385A94)}}, + {{UINT64_C(0x000464BD11AFA1E1), UINT64_C(0x0002E00B44F4A68C), + UINT64_C(0x0006C58D5152071B), UINT64_C(0x0007CC78F1BEA1EE), + UINT64_C(0x0003D52810ACC281)}, + {UINT64_C(0x000C04B80D28DBA4), UINT64_C(0x0007C5EAA4A27BFF), + UINT64_C(0x00066248F5BFC255), UINT64_C(0x0006BDB404771492), + UINT64_C(0x00019FA7BB5E292E)}, + {UINT64_C(0x0006358792FF5820), UINT64_C(0x0003BB145A4D0D14), + UINT64_C(0x000647A0D099804C), UINT64_C(0x0001CE6985BBEA5D), + UINT64_C(0x00071F7ADDB5DEC0)}}, + {{UINT64_C(0x000FF792012E3AD1), UINT64_C(0x000318FC42C34144), + UINT64_C(0x00018AA9596D5383), UINT64_C(0x0004A1E0677AA264), + UINT64_C(0x0007C9D08A010323)}, + {UINT64_C(0x000B38DA3FFA9D8B), UINT64_C(0x0007B37A58DB49D5), + UINT64_C(0x0003CAB96E3D6DD9), UINT64_C(0x0004877EC3C59320), + UINT64_C(0x0005F79E6AB22005)}, + {UINT64_C(0x000D9227D42E392D), UINT64_C(0x000383E4A65149E3), + UINT64_C(0x0001FC4C8988D7D7), UINT64_C(0x0000301C333E8D0D), + UINT64_C(0x000566D13B877137)}}, + }, + { + {{UINT64_C(0x0002819CD64EC5D5), UINT64_C(0x000718864EB85DEA), + UINT64_C(0x0000B38F635D18B2), UINT64_C(0x0000FA0D19EC1914), + UINT64_C(0x0007FC6E0B53A132)}, + {UINT64_C(0x000681A57637B42A), UINT64_C(0x00009516D77453A8), + UINT64_C(0x00041747D2AFF787), UINT64_C(0x000484C8CAA8775B), + UINT64_C(0x00069B6EDB5BEB15)}, + {UINT64_C(0x000F673ED008533F), UINT64_C(0x00005983AE2E9902), + UINT64_C(0x000696120C054601), UINT64_C(0x0002DD10C21D3665), + UINT64_C(0x0003650B63683F24)}}, + {{UINT64_C(0x0001C85E071E87C9), UINT64_C(0x00038E791D5639BC), + UINT64_C(0x0007EB7B3E0A3BD5), UINT64_C(0x00067F05BA2C2992), + UINT64_C(0x0005A217D19B8E87)}, + {UINT64_C(0x0009CC57757E7DC9), UINT64_C(0x0004C152B026BBF3), + UINT64_C(0x0007CE941D2BB495), UINT64_C(0x00022801029CDB1F), + UINT64_C(0x00015E56AA9988B8)}, + {UINT64_C(0x0001F20BB815BF7F), UINT64_C(0x00045BBFD494947D), + UINT64_C(0x000752E00CADD615), UINT64_C(0x00030A1ADE235D5B), + UINT64_C(0x00004F475EAAC468)}}, + {{UINT64_C(0x0005DEC978DC22CC), UINT64_C(0x00069E99CC23AF7D), + UINT64_C(0x0001A491C445CF0B), UINT64_C(0x0001A2B80570EAF4), + UINT64_C(0x000519998F23DA17)}, + {UINT64_C(0x00033F2D4F6DFC80), UINT64_C(0x0003473C4B91929A), + UINT64_C(0x000657675912C778), UINT64_C(0x00027483C8C74BA9), + UINT64_C(0x00045AEDD79F572E)}, + {UINT64_C(0x0005B55CF68CF232), UINT64_C(0x0005978D5F58C198), + UINT64_C(0x000463464AA8D74F), UINT64_C(0x00000768A84F1143), + UINT64_C(0x0004D85E72D498F7)}}, + {{UINT64_C(0x00065396EB5E1B7C), UINT64_C(0x0003AD9BC86D4A9D), + UINT64_C(0x0007D80AED5F83A2), UINT64_C(0x0007BF7E181211DD), + UINT64_C(0x00053259A33A1C38)}, + {UINT64_C(0x0004ED7967092AA9), UINT64_C(0x00037E220CEFD1A7), + UINT64_C(0x0007D56552E4BE39), UINT64_C(0x000467E0E1384212), + UINT64_C(0x0007CB81AF42B8E6)}, + {UINT64_C(0x000F60010D427117), UINT64_C(0x0003FE077DD17DAC), + UINT64_C(0x0003D70C978E0E1D), UINT64_C(0x0004EC475F514EFA), + UINT64_C(0x000678A033281D8A)}}, + {{UINT64_C(0x0001DDD15D89D0DA), UINT64_C(0x0005AE12E0DC3F81), + UINT64_C(0x00021725313E6CD1), UINT64_C(0x00058E25DD51CD68), + UINT64_C(0x00051CC1640E208C)}, + {UINT64_C(0x000A5BFACD788203), UINT64_C(0x00076782156DA54A), + UINT64_C(0x0006546FAACEBFB5), UINT64_C(0x0000751697EBD387), + UINT64_C(0x000403792F66F908)}, + {UINT64_C(0x0001ED1BA791D84F), UINT64_C(0x0007C0C66505B59A), + UINT64_C(0x0003039E8770455C), UINT64_C(0x000176EBE864CCC6), + UINT64_C(0x0000A9D7490BB5E2)}}, + {{UINT64_C(0x000ADBB841243625), UINT64_C(0x00070EF045AE92E4), + UINT64_C(0x0003ED707AC6DC1C), UINT64_C(0x0002EC569D895E88), + UINT64_C(0x0007A1F82B8A9F9B)}, + {UINT64_C(0x000480ED4CC26515), UINT64_C(0x0007142FB964F1D8), + UINT64_C(0x0002D589D76131D9), UINT64_C(0x0002041F5E307B5D), + UINT64_C(0x0004DC0C8DC698E2)}, + {UINT64_C(0x000639BA125B4EB0), UINT64_C(0x0006735AE5885BC9), + UINT64_C(0x000402130AA29EFE), UINT64_C(0x0006483ECF5F928A), + UINT64_C(0x0005C0C2A7450215)}}, + {{UINT64_C(0x00011E1BA90F4D05), UINT64_C(0x0003C4ACA739B18D), + UINT64_C(0x0006DA6C4D05BB4B), UINT64_C(0x0006C9D11A68C07A), + UINT64_C(0x0007E4FF60853DCC)}, + {UINT64_C(0x000FC3B1EAB98C72), UINT64_C(0x000194A565C0D2C0), + UINT64_C(0x0006774E78078878), UINT64_C(0x0002845C8FBE34B8), + UINT64_C(0x0003FA8FFB470A30)}, + {UINT64_C(0x000DF02100A29B8E), UINT64_C(0x0001EDB288FCEFEF), + UINT64_C(0x0003A1F05EE527CB), UINT64_C(0x0000800DA11B67CF), + UINT64_C(0x0000F28747F25BA7)}}, + {{UINT64_C(0x000AB1FE778D5AC8), UINT64_C(0x0007AC5F7720F73D), + UINT64_C(0x0001F29E35DE087B), UINT64_C(0x0006594AE6F4B147), + UINT64_C(0x0003BD0E462820EB)}, + {UINT64_C(0x00046E4EE5708B31), UINT64_C(0x0005F6D4A65795AD), + UINT64_C(0x00065A6A14FD4DBD), UINT64_C(0x0005175D21ECC1C7), + UINT64_C(0x0007FE00455D7273)}, + {UINT64_C(0x0007B6F8CC74B2E7), UINT64_C(0x000741AB0632D05A), + UINT64_C(0x00049D46261751F0), UINT64_C(0x0006736BD5AEA112), + UINT64_C(0x00069AD164B202C5)}}, + {{UINT64_C(0x00012BDCF8236C6C), UINT64_C(0x000367FF9D0F9B9A), + UINT64_C(0x0003F319B67073D2), UINT64_C(0x000760E8B33BDBA0), + UINT64_C(0x00056660C3661195)}, + {UINT64_C(0x0006A7EA308B1685), UINT64_C(0x0006C261A0B19E51), + UINT64_C(0x0004E083123A5FB3), UINT64_C(0x00047A0C38DD3BA2), + UINT64_C(0x00053C6D2A152664)}, + {UINT64_C(0x000FAF64FB917431), UINT64_C(0x000565756E7FAAF4), + UINT64_C(0x0003D721A24A3704), UINT64_C(0x00013317369CBD42), + UINT64_C(0x00016612511B5AA0)}}, + {{UINT64_C(0x000E652B12074C2E), UINT64_C(0x00059D0BAF050179), + UINT64_C(0x00003B5736856800), UINT64_C(0x000647959933E44E), + UINT64_C(0x0003D56153518775)}, + {UINT64_C(0x0000F380F6F1A960), UINT64_C(0x0001ACBBE16F804F), + UINT64_C(0x0002997050169D92), UINT64_C(0x0006923F3FB9A04C), + UINT64_C(0x000760D8364CDE1D)}, + {UINT64_C(0x00087864C2C7818E), UINT64_C(0x00065BCE2C21225E), + UINT64_C(0x0000829D71C17447), UINT64_C(0x000624DD657FE09E), + UINT64_C(0x000078584F6FEFD9)}}, + {{UINT64_C(0x0006D584A0FE7A46), UINT64_C(0x00069D33D6A2E6E8), + UINT64_C(0x00067E621C9A0CE7), UINT64_C(0x00077A830F59FBFF), + UINT64_C(0x00014C1BD946B545)}, + {UINT64_C(0x0001B2A1355A4052), UINT64_C(0x000675CBE17382B6), + UINT64_C(0x000641AF5CC81253), UINT64_C(0x0005EB097D44D21F), + UINT64_C(0x00009FC2AAAE02CC)}, + {UINT64_C(0x000D414D936E58DD), UINT64_C(0x0000B296AC88EB92), + UINT64_C(0x00076AB84DD6056C), UINT64_C(0x000685E1AB03C5DC), + UINT64_C(0x00028348D45F6358)}}, + {{UINT64_C(0x00016CC86D940FFC), UINT64_C(0x0006FA98A7F59E71), + UINT64_C(0x00029CA45E235967), UINT64_C(0x0001DDB48758B49F), + UINT64_C(0x00061464300AF54F)}, + {UINT64_C(0x00043C3AC9312B0D), UINT64_C(0x000064FC92BC9377), + UINT64_C(0x000239F95BD3C366), UINT64_C(0x0000529C3D8CF33A), + UINT64_C(0x000181E4547EBD24)}, + {UINT64_C(0x000E16213D8C28C0), UINT64_C(0x000231D13CE48188), + UINT64_C(0x0007F4B9BEA03675), UINT64_C(0x0004042E3AC3D778), + UINT64_C(0x0001EAA475E87AA7)}}, + {{UINT64_C(0x0001DAA732854120), UINT64_C(0x0002D8C6031F046B), + UINT64_C(0x00048CA4CD8BA89E), UINT64_C(0x00006937503A6724), + UINT64_C(0x00061B37A983648E)}, + {UINT64_C(0x00013AC756B13B17), UINT64_C(0x0007F99EB1FE63B2), + UINT64_C(0x00012EF62AA29F91), UINT64_C(0x000275A63AC0B82C), + UINT64_C(0x00041F85AC1748DC)}, + {UINT64_C(0x0003C3A345E37216), UINT64_C(0x0000BC95899511A0), + UINT64_C(0x00067984E11988E2), UINT64_C(0x0003790C6A6BD91C), + UINT64_C(0x0004AE8857A370C0)}}, + {{UINT64_C(0x00059767D1DC7159), UINT64_C(0x00059021E287D705), + UINT64_C(0x00059EECEC3BE7D9), UINT64_C(0x0001EAA18D4EADD0), + UINT64_C(0x00065A975E23F03E)}, + {UINT64_C(0x000A95AFCF439414), UINT64_C(0x00015B75C723F702), + UINT64_C(0x0000BF98929522FB), UINT64_C(0x0003085D78E648C0), + UINT64_C(0x00037D7D62CA4475)}, + {UINT64_C(0x0004A0DA8919F5F5), UINT64_C(0x000367D06413644F), + UINT64_C(0x000354956C041EA1), UINT64_C(0x00010755634E2C5D), + UINT64_C(0x000170791147DD80)}}, + {{UINT64_C(0x000827F7944FE6CC), UINT64_C(0x00001C751F20EF72), + UINT64_C(0x00035F7CA3D66415), UINT64_C(0x0005210C82C852BA), + UINT64_C(0x00004C02A5485650)}, + {UINT64_C(0x0003B5BDD64B5C0A), UINT64_C(0x0004689EBDCCFF34), + UINT64_C(0x00070E43EECF0D36), UINT64_C(0x0006DE61D82DCC84), + UINT64_C(0x00012E98D82A7298)}, + {UINT64_C(0x0001E9E5518D471A), UINT64_C(0x0007A1BB46DE49D9), + UINT64_C(0x00035B2927B223D1), UINT64_C(0x0001CCAE464874F4), + UINT64_C(0x00039DDDEF590E1E)}}, + {{UINT64_C(0x00024A7A1C775995), UINT64_C(0x0007157DD78B8376), + UINT64_C(0x000135892F3211E4), UINT64_C(0x00068F7235FB1FF7), + UINT64_C(0x0007B084D8E8F5BA)}, + {UINT64_C(0x00047354D60A9B5C), UINT64_C(0x0005528D484B558C), + UINT64_C(0x0005EA409EB39DEF), UINT64_C(0x0001301D88A26EAB), + UINT64_C(0x0003E8EEEA1E9E16)}, + {UINT64_C(0x0007E18F66EB4040), UINT64_C(0x0003D687AAC18DF1), + UINT64_C(0x000043407B1B01C5), UINT64_C(0x00076026A3612E1D), + UINT64_C(0x00036AC22C1DA7F0)}}, + }, + { + {{UINT64_C(0x000A1DB3FDA77DAC), UINT64_C(0x0004D9593DB5C4FA), + UINT64_C(0x0002D0C711ADB1E7), UINT64_C(0x0004FA1FD3056EC4), + UINT64_C(0x0001AEA89A06C580)}, + {UINT64_C(0x0000B6E56502BC8A), UINT64_C(0x00030FB5DA75A109), + UINT64_C(0x00061CCC955CD549), UINT64_C(0x00072ED7E235BE62), + UINT64_C(0x0004FFC550D2C672)}, + {UINT64_C(0x0001401B07FD2FC2), UINT64_C(0x0001363A97814A08), + UINT64_C(0x00040A250BB0D833), UINT64_C(0x0003FDC7EADB00FF), + UINT64_C(0x0006D0C5F0015D6E)}}, + {{UINT64_C(0x0006C4A3C3DD75D0), UINT64_C(0x00035FB0DFF6D283), + UINT64_C(0x00008EC03452D8B5), UINT64_C(0x0000660AA38D2E81), + UINT64_C(0x00070999FB1B3622)}, + {UINT64_C(0x00076C0468E5E93B), UINT64_C(0x000691D7E3FC4A00), + UINT64_C(0x00049CB4185CDAF8), UINT64_C(0x00016C0C829B0E8D), + UINT64_C(0x0006AA160D0C7282)}, + {UINT64_C(0x0005FA2B7F6BD2E2), UINT64_C(0x000158DA48E6F8A3), + UINT64_C(0x000604218B1883CE), UINT64_C(0x0000CFFE74536FDE), + UINT64_C(0x00005D042AB776AA)}}, + {{UINT64_C(0x00027DD79FD8B383), UINT64_C(0x0004E3C07F0FC4F0), + UINT64_C(0x00071E194BBE44D0), UINT64_C(0x000516439A5B3612), + UINT64_C(0x0003F479BE23976A)}, + {UINT64_C(0x000D07783284BAF3), UINT64_C(0x00044583E7D6E11C), + UINT64_C(0x0001D132C130CABE), UINT64_C(0x000625DDBFB712E6), + UINT64_C(0x00070A1B85622B32)}, + {UINT64_C(0x00034C89E9034A6C), UINT64_C(0x00078F18070D16D9), + UINT64_C(0x0005C48940FE1968), UINT64_C(0x0007B463D52BFF8C), + UINT64_C(0x0004F9CB24AA3CA3)}}, + {{UINT64_C(0x0000210FBD862AF4), UINT64_C(0x00042D00326CF364), + UINT64_C(0x0005909CDA828553), UINT64_C(0x000765038B375968), + UINT64_C(0x00061244E59E8942)}, + {UINT64_C(0x000316B2C8856415), UINT64_C(0x0002A4748F779AB3), + UINT64_C(0x000239C5E875089A), UINT64_C(0x00036401DD98269B), + UINT64_C(0x00011DDAE2A7E2F2)}, + {UINT64_C(0x000E9134B0007750), UINT64_C(0x0005EF4908EA5F8B), + UINT64_C(0x00079BE217CC5E96), UINT64_C(0x0000599ECA99A489), + UINT64_C(0x0004C47BBF939482)}}, + {{UINT64_C(0x00003A337C362E13), UINT64_C(0x0007780615B15DD1), + UINT64_C(0x000773A3946A0160), UINT64_C(0x000700FAAF105D15), + UINT64_C(0x0001A74BE2B6494D)}, + {UINT64_C(0x0005CA35FE3DB4CB), UINT64_C(0x00071DF8C08DEDDD), + UINT64_C(0x0005F7E4ACF08CA7), UINT64_C(0x00036F543C236FDD), + UINT64_C(0x00069ABF13BDA30B)}, + {UINT64_C(0x000D0BDB4C5FE93D), UINT64_C(0x0002B22A4FA5285B), + UINT64_C(0x0006FA80F65CB79E), UINT64_C(0x000379BFA1F4BF5E), + UINT64_C(0x00046594A6F4C0D4)}}, + {{UINT64_C(0x0007305A30FD1F79), UINT64_C(0x0001C6FFD9905695), + UINT64_C(0x0004645BE794D673), UINT64_C(0x000342101D707890), + UINT64_C(0x0001BB588F62A0A3)}, + {UINT64_C(0x000105A272D17F2A), UINT64_C(0x0007B3D6FA991E49), + UINT64_C(0x000227280611E9A7), UINT64_C(0x0001A93AAA75915F), + UINT64_C(0x00023FA441B3482E)}, + {UINT64_C(0x00049C1150A4394C), UINT64_C(0x00040C4F9BAC625E), + UINT64_C(0x000019D525AD587E), UINT64_C(0x0004FF7128EF9688), + UINT64_C(0x0004FD444389AB05)}}, + {{UINT64_C(0x000238E42AD5EEEC), UINT64_C(0x0005DE60189ED21B), + UINT64_C(0x0001C3ED84BF7F92), UINT64_C(0x00051D4CE9A6E138), + UINT64_C(0x0004D7509030CE74)}, + {UINT64_C(0x00014535B829610F), UINT64_C(0x0006763BE3F420BB), + UINT64_C(0x000224420EC61552), UINT64_C(0x0001D944B492451E), + UINT64_C(0x00043B7C34AD7E8B)}, + {UINT64_C(0x0008748FB4B47D51), UINT64_C(0x0005ABB8E9B2C218), + UINT64_C(0x0001F774AE8AEF2A), UINT64_C(0x0004E251530C1540), + UINT64_C(0x0002C17E01A2CD3E)}}, + {{UINT64_C(0x000A5AEDEE07B0B0), UINT64_C(0x0005F89D3947B76A), + UINT64_C(0x0002BB62F90E7DE8), UINT64_C(0x000654A1AF24BC3B), + UINT64_C(0x0003546F95E0EE6F)}, + {UINT64_C(0x00085679601B8BC5), UINT64_C(0x0004BB095D71C7D0), + UINT64_C(0x00053ECC1C751399), UINT64_C(0x00041FE3795CBDE2), + UINT64_C(0x0006EA98F1D1D81D)}, + {UINT64_C(0x00064ED26F676ADD), UINT64_C(0x0005A7A5BEE185B3), + UINT64_C(0x000130CC8FEC6AE2), UINT64_C(0x000629FDE7C00F10), + UINT64_C(0x000585D5A1CBFA57)}}, + {{UINT64_C(0x000AE0784632D10F), UINT64_C(0x00027BFA28563B52), + UINT64_C(0x0004DECE15823B3A), UINT64_C(0x00010DA131FF58A7), + UINT64_C(0x00048DEFFB0FE190)}, + {UINT64_C(0x000C811EC58F82EA), UINT64_C(0x000326DA9E04E555), + UINT64_C(0x00071F177799421B), UINT64_C(0x0003E3A474D3E8B8), + UINT64_C(0x0003D5D6D4DE3CEF)}, + {UINT64_C(0x000D9FFAF07322DD), UINT64_C(0x000628E14EB89510), + UINT64_C(0x00075D001D2380EC), UINT64_C(0x00050D7E5EF7D399), + UINT64_C(0x00079765D0A00A45)}}, + {{UINT64_C(0x00090F5A32267E76), UINT64_C(0x00019A1B8E57CC65), + UINT64_C(0x00048B29601AC029), UINT64_C(0x00069FA23DE54FFB), + UINT64_C(0x00002FCBE3187F20)}, + {UINT64_C(0x000125C2704C278B), UINT64_C(0x00028493D1EF2120), + UINT64_C(0x00054F9AD9FF374B), UINT64_C(0x0006985537375711), + UINT64_C(0x00007534EB65121D)}, + {UINT64_C(0x0004BD9A12979647), UINT64_C(0x000788B5BC284E24), + UINT64_C(0x0004CBD296C6FF6B), UINT64_C(0x0007FA0CD5EE5D70), + UINT64_C(0x0002BC98A33DCE4E)}}, + {{UINT64_C(0x000753D51E36094F), UINT64_C(0x00011309101DCED4), + UINT64_C(0x0000279505A1BAA2), UINT64_C(0x0006AEDE7A85AAE1), + UINT64_C(0x000037AE84B6FE0A)}, + {UINT64_C(0x0007739A4BFF6011), UINT64_C(0x000710D32F9567E8), + UINT64_C(0x00040FE60EC00E34), UINT64_C(0x0000E77282D60FC2), + UINT64_C(0x00012AF7C9905886)}, + {UINT64_C(0x00010065259DAB06), UINT64_C(0x00002C1EC736FA56), + UINT64_C(0x00041E7AC35292DC), UINT64_C(0x0000DDF0A6E3C65E), + UINT64_C(0x00060CA6ABEF89FE)}}, + {{UINT64_C(0x000C71B130D21942), UINT64_C(0x000650CBCD04857A), + UINT64_C(0x00003A21705F79DE), UINT64_C(0x000441B7586ABB4B), + UINT64_C(0x00044FFAB824B35E)}, + {UINT64_C(0x0004FC14956E331F), UINT64_C(0x0002DF101A872454), + UINT64_C(0x0001ACAC797EC78F), UINT64_C(0x0006FBE58D90CBB2), + UINT64_C(0x0002083D4F2ED3D2)}, + {UINT64_C(0x0002485E01980997), UINT64_C(0x000679010A4C7EE8), + UINT64_C(0x00057361E75E0DF0), UINT64_C(0x0000548EBB7B0F63), + UINT64_C(0x0000ADFA873F0ADC)}}, + {{UINT64_C(0x000CEBAD25601C16), UINT64_C(0x00040CF38C58593E), + UINT64_C(0x000548AC165085FC), UINT64_C(0x00000EC8D84A3956), + UINT64_C(0x0006990D99B70E27)}, + {UINT64_C(0x0002D6F54C35029C), UINT64_C(0x000194EECC0B8D55), + UINT64_C(0x000599D2C75B688B), UINT64_C(0x000646453AC905E4), + UINT64_C(0x0003DAEFFC1F7F77)}, + {UINT64_C(0x0002FB3C155DFF91), UINT64_C(0x000666676455E39E), + UINT64_C(0x000094B59579A3D7), UINT64_C(0x000131163E64B240), + UINT64_C(0x0002BE896BAC1C14)}}, + {{UINT64_C(0x0005372C822B631C), UINT64_C(0x0002C792A5D553F9), + UINT64_C(0x00079A45AF14B5DB), UINT64_C(0x0005728AC606211C), + UINT64_C(0x00059EF170252365)}, + {UINT64_C(0x0000B216D3837D4E), UINT64_C(0x00049608E9DA7038), + UINT64_C(0x00071C88398BEB38), UINT64_C(0x0001D39322C696DB), + UINT64_C(0x0003270FEE25BE63)}, + {UINT64_C(0x000F312227C8BD36), UINT64_C(0x0006EA625A52C28E), + UINT64_C(0x00022DD277705C08), UINT64_C(0x0002D9A720B669E6), + UINT64_C(0x00075102EDD2BA08)}}, + {{UINT64_C(0x000CA132F90FE15B), UINT64_C(0x0007F9D119339816), + UINT64_C(0x0006E56945E2B2A2), UINT64_C(0x0004514FE66AAADD), + UINT64_C(0x00017AF1BC738FB9)}, + {UINT64_C(0x0004346FAA16001E), UINT64_C(0x0001C1A89BB2AE60), + UINT64_C(0x0001399CEC955395), UINT64_C(0x0003C0BBC0A6E99B), + UINT64_C(0x00064D29AE483CCC)}, + {UINT64_C(0x00040ACC3E0904B8), UINT64_C(0x00036DC23E8EE05E), + UINT64_C(0x00066D427ADA3210), UINT64_C(0x00011F6E098F35F7), + UINT64_C(0x00039151730A7BBA)}}, + {{UINT64_C(0x00091ADA9145C93C), UINT64_C(0x00024194BA72DF78), + UINT64_C(0x0003678D46D1C849), UINT64_C(0x000389372773D592), + UINT64_C(0x00018C36FC253B2C)}, + {UINT64_C(0x0005F6DDFD39F849), UINT64_C(0x0002633241A26C74), + UINT64_C(0x000474A8B991D2BE), UINT64_C(0x0002CE50E2C4FE43), + UINT64_C(0x000293E1C206D813)}, + {UINT64_C(0x000F47D948A0883B), UINT64_C(0x000489F014B14B93), + UINT64_C(0x0006D2AC8A2E3258), UINT64_C(0x0000CE310A0B2212), + UINT64_C(0x0001253D16B5D0A2)}}, + }, + { + {{UINT64_C(0x0001FC6BA4B27045), UINT64_C(0x00038F66C4585DD0), + UINT64_C(0x00044510A543BBBA), UINT64_C(0x0001FFA25BB30E5E), + UINT64_C(0x0002D3C1BD993CDE)}, + {UINT64_C(0x000A2BB5F0A56D1F), UINT64_C(0x00026C278F22FDAC), + UINT64_C(0x0000972239E1602A), UINT64_C(0x0006D636075CCB7A), + UINT64_C(0x000255FEE96DB6F1)}, + {UINT64_C(0x000D53D8C21D2AC3), UINT64_C(0x00073D8BC6569D5D), + UINT64_C(0x000611171F31EC1E), UINT64_C(0x0007BF39C3FB085A), + UINT64_C(0x00078CDD196C484E)}}, + {{UINT64_C(0x0007AA3E7172E704), UINT64_C(0x00041E6CDC54B308), + UINT64_C(0x0000B05762F3EFE5), UINT64_C(0x000444BD48FEF0C8), + UINT64_C(0x0004428AB2D08617)}, + {UINT64_C(0x000BDD2F9B4370E5), UINT64_C(0x0002F2670834C4F7), + UINT64_C(0x0003BB1958A52A76), UINT64_C(0x00047CD537305248), + UINT64_C(0x0001EFD0574CCBFF)}, + {UINT64_C(0x000AEB5EF88DCA62), UINT64_C(0x000117EAA2E61A6B), + UINT64_C(0x0004FCBB9750C8D0), UINT64_C(0x000495792CD27339), + UINT64_C(0x0001B23C157916F6)}}, + {{UINT64_C(0x0007891B674E71F0), UINT64_C(0x0007C4F6FCAD4468), + UINT64_C(0x000476D6C5509A66), UINT64_C(0x0005F5A8B9CC77CD), + UINT64_C(0x0004199343D1FC80)}, + {UINT64_C(0x0003F18F3D8F0055), UINT64_C(0x000752C7D8BA3224), + UINT64_C(0x000436F715E78E8E), UINT64_C(0x0001036795BF501D), + UINT64_C(0x000236B8319E54B6)}, + {UINT64_C(0x0002E41C100EDD83), UINT64_C(0x00058577EB7BBD8B), + UINT64_C(0x0001F51303AAC160), UINT64_C(0x0005DC3CA305853E), + UINT64_C(0x00072B9415F81A28)}}, + {{UINT64_C(0x0005265E75BE3284), UINT64_C(0x0007167FAA26A5DF), + UINT64_C(0x000123D1A2FDB52D), UINT64_C(0x00061BBE43A46D84), + UINT64_C(0x000261B8D88701BD)}, + {UINT64_C(0x000C87F87048B464), UINT64_C(0x00053BAEC34F322B), + UINT64_C(0x0004DC58AFE19A7D), UINT64_C(0x000090CE2820F2C2), + UINT64_C(0x0006C48AC43ECD33)}, + {UINT64_C(0x000B402CCF1F1A30), UINT64_C(0x000429DB8F417641), + UINT64_C(0x000249FD2DC1A2A4), UINT64_C(0x00049F1F51516171), + UINT64_C(0x00065C94E325A506)}}, + {{UINT64_C(0x0005D0EAFD053602), UINT64_C(0x0000B2EB6445EFF1), + UINT64_C(0x0003EBD9F65805D5), UINT64_C(0x0003CA4B8EBF6A36), + UINT64_C(0x00078BFD685BE998)}, + {UINT64_C(0x000F64B891DDF860), UINT64_C(0x000529576B60556C), + UINT64_C(0x0001B37FD3E24669), UINT64_C(0x0000033818EEF5C8), + UINT64_C(0x0002B11EBF7E5937)}, + {UINT64_C(0x0003152B742C702B), UINT64_C(0x0006632B1ECD6036), + UINT64_C(0x0007923AFB88728F), UINT64_C(0x0006244DA1C3448B), + UINT64_C(0x0000AD2FB0196EC3)}}, + {{UINT64_C(0x000AD563EB3B07A3), UINT64_C(0x0001213A17B47AC3), + UINT64_C(0x00053EC21980E6FC), UINT64_C(0x0002C4ACC165507F), + UINT64_C(0x0007A622F28DA7BE)}, + {UINT64_C(0x000C8F45E5659E8D), UINT64_C(0x0002A78FCB23CE95), + UINT64_C(0x00024430FD4597D0), UINT64_C(0x000347620F5EDF93), + UINT64_C(0x0003DC647EA1BA77)}, + {UINT64_C(0x0007F8F8703A7DCA), UINT64_C(0x000795C87DAACF66), + UINT64_C(0x00007534BD87B9EE), UINT64_C(0x0005099B2C521F78), + UINT64_C(0x000273750C74E81D)}}, + {{UINT64_C(0x00024EDC3D8ABF8E), UINT64_C(0x000300DFA97BDDE9), + UINT64_C(0x000446C6F830946C), UINT64_C(0x00068F06F4ACDD60), + UINT64_C(0x00018F286BEDB687)}, + {UINT64_C(0x0003287C7040CAF8), UINT64_C(0x0005A30953D9648B), + UINT64_C(0x0004C0CED1BF2F16), UINT64_C(0x0005022BA173833A), + UINT64_C(0x000471670E5DD4C8)}, + {UINT64_C(0x000575C7D920A1FA), UINT64_C(0x000028011ACAA137), + UINT64_C(0x000267F433A9BB5D), UINT64_C(0x0000C0E4B91042B4), + UINT64_C(0x0001740F314FE330)}}, + {{UINT64_C(0x0009146BFD90884A), UINT64_C(0x00024724AE1312FD), + UINT64_C(0x0000CC37AB3544BD), UINT64_C(0x0002E4F30E1D877C), + UINT64_C(0x00078F98059C7CDB)}, + {UINT64_C(0x00080EF557A2B367), UINT64_C(0x00034596D52275E4), + UINT64_C(0x0003D07B43BC2723), UINT64_C(0x000485142DA02EA6), + UINT64_C(0x00052ED77068B052)}, + {UINT64_C(0x00050C37F84E0B1E), UINT64_C(0x0007F90DAF676333), + UINT64_C(0x000014A034E40FE3), UINT64_C(0x0001A1CCC5B06FA4), + UINT64_C(0x0002B57B6AAF5AFB)}}, + {{UINT64_C(0x0005A1EC835F93D9), UINT64_C(0x00027C73660ABD19), + UINT64_C(0x00051ED4ACB98418), UINT64_C(0x0005934D9A8C4481), + UINT64_C(0x000056DCE5E599B7)}, + {UINT64_C(0x000D82F2893E91E9), UINT64_C(0x00007DB2ED2F5FC8), + UINT64_C(0x000470BFB2A14A2D), UINT64_C(0x000243357800B12B), + UINT64_C(0x0001586B880D973F)}, + {UINT64_C(0x0002894A1AEE30F0), UINT64_C(0x00000A56EEFC3625), + UINT64_C(0x000328B708D399DB), UINT64_C(0x0001E0245E856F01), + UINT64_C(0x000331A120A8FA38)}}, + {{UINT64_C(0x0000B01B89AE8C48), UINT64_C(0x000160C2BE55859D), + UINT64_C(0x00032ED748BC62AF), UINT64_C(0x0003A96EF5B049CB), + UINT64_C(0x0007D5C6C7C53881)}, + {UINT64_C(0x000F575F2E610488), UINT64_C(0x00050DD2D252D63F), + UINT64_C(0x00032900A6CAB78A), UINT64_C(0x00052436AFB000AE), + UINT64_C(0x0001058C522E70B4)}, + {UINT64_C(0x000C32E693EA545B), UINT64_C(0x000363FF953257C4), + UINT64_C(0x0006BB224E619CF6), UINT64_C(0x0004725D9B6CC315), + UINT64_C(0x00028D022032739E)}}, + {{UINT64_C(0x000130FFBDDA7B5B), UINT64_C(0x00008B75F47AA474), + UINT64_C(0x000704583AA71B9F), UINT64_C(0x000003F123BF1718), + UINT64_C(0x0000C86888DA8826)}, + {UINT64_C(0x0001E99131EE0CC8), UINT64_C(0x00015BD0E81C213F), + UINT64_C(0x00060DB057C2D8C7), UINT64_C(0x0003931F8CDBD796), + UINT64_C(0x0000B711D1643ABA)}, + {UINT64_C(0x000CAE2E3BD0339C), UINT64_C(0x000535FE10F2B9B9), + UINT64_C(0x0003BAC64D32897B), UINT64_C(0x0002E04FBE091647), + UINT64_C(0x00069D6BFB6020F3)}}, + {{UINT64_C(0x0003BF20FBF44C75), UINT64_C(0x0003DFDF8AA48E71), + UINT64_C(0x000755E830F9348A), UINT64_C(0x0004DCF2FBC753A0), + UINT64_C(0x000563C950DED5E7)}, + {UINT64_C(0x00095173064904B2), UINT64_C(0x0001AD16621A4F26), + UINT64_C(0x0000190EBCA98F19), UINT64_C(0x00025C88E57E353D), + UINT64_C(0x0007235C78DDE09A)}, + {UINT64_C(0x000AB2477B99C193), UINT64_C(0x000787D92E572642), + UINT64_C(0x000254AE25CB36B6), UINT64_C(0x00014FF7F61A68BA), + UINT64_C(0x0002AE23C86DA540)}}, + {{UINT64_C(0x000AA69FC65B55EE), UINT64_C(0x000602BFEB958D5E), + UINT64_C(0x00041B4D60AAC3E7), UINT64_C(0x0006E4587652A12A), + UINT64_C(0x000538D39DB42EA9)}, + {UINT64_C(0x000A78E9FAE803AA), UINT64_C(0x00050F1F50C82CCF), + UINT64_C(0x0000690C7B716417), UINT64_C(0x00009E9B33D5B1F8), + UINT64_C(0x00046AD0D9B59A8E)}, + {UINT64_C(0x000E0FB21CA97546), UINT64_C(0x000796398B48AA4B), + UINT64_C(0x0005BFE2E571682E), UINT64_C(0x00079B204C96268F), + UINT64_C(0x00036514FC4F006A)}}, + {{UINT64_C(0x000AB6ADDA89E077), UINT64_C(0x000456219E30B23F), + UINT64_C(0x00073DF2B5B296A7), UINT64_C(0x0007416CF096B608), + UINT64_C(0x000506FAF22F148F)}, + {UINT64_C(0x0004D01231B41F08), UINT64_C(0x00004E0DE454C9D9), + UINT64_C(0x0001C359EA53295F), UINT64_C(0x0005C16FFE73D620), + UINT64_C(0x0001FD9A40888D64)}, + {UINT64_C(0x00082DD110EAA0DA), UINT64_C(0x0002885D3B8FB45F), + UINT64_C(0x0007AAD0C23075A0), UINT64_C(0x000013BF01DF39A9), + UINT64_C(0x000025FFC049C3BB)}}, + {{UINT64_C(0x000188B1DC7CFBB3), UINT64_C(0x00073B99A1AD10BA), + UINT64_C(0x000799A4C5F58A95), UINT64_C(0x0005036A5F90050D), + UINT64_C(0x0007A61558C47079)}, + {UINT64_C(0x0008E5B50FC0616E), UINT64_C(0x0006BE2B98B6BAB1), + UINT64_C(0x000214A72D8A4D1E), UINT64_C(0x000761E21C815E1A), + UINT64_C(0x0003D750B6148769)}, + {UINT64_C(0x000A9F7E8D06E7C1), UINT64_C(0x000028F98763EEF5), + UINT64_C(0x00079EA1FD1DE978), UINT64_C(0x00021613CA3BB40B), + UINT64_C(0x00070E4362C5401C)}}, + {{UINT64_C(0x0009D08B1089B486), UINT64_C(0x000165F2FBD68266), + UINT64_C(0x00035E25AA132009), UINT64_C(0x00044F5F944F1D77), + UINT64_C(0x00025F71B14DA654)}, + {UINT64_C(0x000BD353769CE1F9), UINT64_C(0x0006FA3F3DDDC54C), + UINT64_C(0x0002B84C2EC34B40), UINT64_C(0x0002BC5399680FE7), + UINT64_C(0x00077DF80D7D51A4)}, + {UINT64_C(0x0004E2691B0328F3), UINT64_C(0x00050F4537961493), + UINT64_C(0x00044E2C41C84DCA), UINT64_C(0x00052B780EFDCD69), + UINT64_C(0x0005376F2A050E19)}}, + }, + { + {{UINT64_C(0x000DA03985F38262), UINT64_C(0x00037D5F62914A3C), + UINT64_C(0x000793B68F7811A9), UINT64_C(0x00032B90BCD39CE3), + UINT64_C(0x00075AA44FE7E19C)}, + {UINT64_C(0x000F05AB91A2B12A), UINT64_C(0x00059AF4F8982C00), + UINT64_C(0x00048CCE588AE51A), UINT64_C(0x00049E4C670BBE65), + UINT64_C(0x0006B3D82691A651)}, + {UINT64_C(0x0008F5698465745B), UINT64_C(0x00075BE3EB74331D), + UINT64_C(0x000737D69788EE86), UINT64_C(0x00062141377DCE86), + UINT64_C(0x0006EFBEF11283CC)}}, + {{UINT64_C(0x000FB2D42C8285AF), UINT64_C(0x0006FD40664A5490), + UINT64_C(0x00057F0694D97426), UINT64_C(0x0002A7A28B3356DA), + UINT64_C(0x00028920886AF6EC)}, + {UINT64_C(0x000A8C24C0BF2760), UINT64_C(0x00068C3EC242BF3A), + UINT64_C(0x0000CE0D0E1B7F97), UINT64_C(0x00061C58FABECF34), + UINT64_C(0x00004CA319E801FD)}, + {UINT64_C(0x000325DE46C5736B), UINT64_C(0x000468915384C263), + UINT64_C(0x0006347A5799363C), UINT64_C(0x0007210BB1344417), + UINT64_C(0x00011E398C2404CC)}}, + {{UINT64_C(0x0006351562580ED8), UINT64_C(0x0006220AA1C9D62B), + UINT64_C(0x0001CDF640634049), UINT64_C(0x0002FA7088B01B0A), + UINT64_C(0x00019ACCA28277EE)}, + {UINT64_C(0x000C65B688EBF493), UINT64_C(0x0005B03149C63AE5), + UINT64_C(0x0006AFA8197C4FD1), UINT64_C(0x0002D0DA5C748E78), + UINT64_C(0x000662C002D4D15F)}, + {UINT64_C(0x0001118B8CBBB7E7), UINT64_C(0x0004CBAB82FD2BF5), + UINT64_C(0x0002348B0CE469A5), UINT64_C(0x00023EB3398A797E), + UINT64_C(0x0004E228589713E3)}}, + {{UINT64_C(0x0000B4E4D027C85C), UINT64_C(0x0000D803053DA772), + UINT64_C(0x00065984BB60A337), UINT64_C(0x0007DC2376F7272A), + UINT64_C(0x0000E9430E355BA4)}, + {UINT64_C(0x000A8E389D48606F), UINT64_C(0x00021F690AA2DBC8), + UINT64_C(0x000142274ABC9F41), UINT64_C(0x00072BF593710713), + UINT64_C(0x0002FD7F4AE2EE22)}, + {UINT64_C(0x000BF1C20DDD2691), UINT64_C(0x0005411630C2A271), + UINT64_C(0x0002D6C2990BAF6C), UINT64_C(0x00016E01E690E20C), + UINT64_C(0x0000E8F8FFA954EC)}}, + {{UINT64_C(0x0005A3AB6DAFDFD3), UINT64_C(0x0000D9D486BDD09A), + UINT64_C(0x0002D2E51B7C9711), UINT64_C(0x00017CE407134280), + UINT64_C(0x0003AD3997FA1672)}, + {UINT64_C(0x0003D8F172453802), UINT64_C(0x0002317FA3185EC2), + UINT64_C(0x0000BA91852E2031), UINT64_C(0x0005EC464B3ED108), + UINT64_C(0x00057C6D8CF0E0FD)}, + {UINT64_C(0x0008CA2766DB4A5B), UINT64_C(0x00073D443B130A20), + UINT64_C(0x00058BF472C3BA39), UINT64_C(0x0006F5CC0907C053), + UINT64_C(0x0003FC5C6F14BD87)}}, + {{UINT64_C(0x0004B65645E73CF6), UINT64_C(0x0007C5AB1C053774), + UINT64_C(0x0005018E4FF1FC18), UINT64_C(0x000769511D97D00F), + UINT64_C(0x0006AD6BD6EAA9E9)}, + {UINT64_C(0x00046576871857E4), UINT64_C(0x000215AA0839B591), + UINT64_C(0x0004E1CAA9F6A2CA), UINT64_C(0x0007AB0F33E726C5), + UINT64_C(0x00067F4BE171AA28)}, + {UINT64_C(0x0006531996604B7F), UINT64_C(0x000453BF42EC79D2), + UINT64_C(0x00032113012CCEA4), UINT64_C(0x00006D0B5464300F), + UINT64_C(0x0002176B1E5D6D50)}}, + {{UINT64_C(0x0001D3C100DC72D5), UINT64_C(0x0003654CB2834C97), + UINT64_C(0x0005E965AC7DA69D), UINT64_C(0x00078DC0DD9AE1DD), + UINT64_C(0x00019E21FECCAAF3)}, + {UINT64_C(0x00013C3FDF2B1672), UINT64_C(0x000619ED60AD922A), + UINT64_C(0x0006A134A3138156), UINT64_C(0x000074D7A0EB94F4), + UINT64_C(0x000655B9265AD61E)}, + {UINT64_C(0x00091D8E2767E0B1), UINT64_C(0x00065AEFAC257813), + UINT64_C(0x00038076D1470BE1), UINT64_C(0x0003C981EA0EB22B), + UINT64_C(0x00015A7A2D75B203)}}, + {{UINT64_C(0x000CC309EA9DA550), UINT64_C(0x000167109F6B7EEA), + UINT64_C(0x00036256E39C62A5), UINT64_C(0x00023FE04A59A8D0), + UINT64_C(0x00048F3DCFC704E4)}, + {UINT64_C(0x000DD13D87BC3FD8), UINT64_C(0x0001E1039D0C27A5), + UINT64_C(0x00013884321DFE6C), UINT64_C(0x00018DF5EB967D7E), + UINT64_C(0x00027626CDA767FD)}, + {UINT64_C(0x00081A4C254FE9AA), UINT64_C(0x00039710CABEFE25), + UINT64_C(0x0001FE4ED0D3AF13), UINT64_C(0x00036B4C87AE2C9F), + UINT64_C(0x00011248B666F136)}}, + {{UINT64_C(0x000E797C4CCA0B46), UINT64_C(0x000549315E592B39), + UINT64_C(0x000446B1DF8247A1), UINT64_C(0x00030ED36C5BB7F3), + UINT64_C(0x0002AA80BB30E10E)}, + {UINT64_C(0x000987E78A6334CD), UINT64_C(0x00021A51601C5BC5), + UINT64_C(0x00056CB555352F37), UINT64_C(0x000225D060DB2429), + UINT64_C(0x000385DB17BD6237)}, + {UINT64_C(0x0002ED3E680A5E84), UINT64_C(0x0005712851DFAB33), + UINT64_C(0x00039A12254B9A45), UINT64_C(0x000216D42F43EEBB), + UINT64_C(0x000357331598DA83)}}, + {{UINT64_C(0x000F7C1D3279D8A5), UINT64_C(0x00043F72163137B9), + UINT64_C(0x00042C3FE876167F), UINT64_C(0x0003B0E73C83522A), + UINT64_C(0x0001DB409981C582)}, + {UINT64_C(0x000122CD3118D65B), UINT64_C(0x00071763F291C87A), + UINT64_C(0x000561465C8B3331), UINT64_C(0x0004944F4C61C7FD), + UINT64_C(0x0002AAC9443A36DB)}, + {UINT64_C(0x0004D4FA4218C372), UINT64_C(0x00076C45E03C77EB), + UINT64_C(0x000072FB97E90D33), UINT64_C(0x0005082CF2079905), + UINT64_C(0x0002FE26BFD54FFA)}}, + {{UINT64_C(0x0007D19A42E4631A), UINT64_C(0x0006571B981A6AEC), + UINT64_C(0x0004D393AE74429A), UINT64_C(0x000446A87D160168), + UINT64_C(0x0003AF53BFC0F685)}, + {UINT64_C(0x0002D55D97B6EB19), UINT64_C(0x00039E6461F719F3), + UINT64_C(0x000190259D2C913D), UINT64_C(0x0003C976B6FBF37A), + UINT64_C(0x00019F876AD4BC35)}, + {UINT64_C(0x000EDF4304B4688B), UINT64_C(0x0000C939FCAC59CD), + UINT64_C(0x00056BFC00BE589D), UINT64_C(0x0004B4C590A12AC7), + UINT64_C(0x0007EF9566506AD0)}}, + {{UINT64_C(0x000A585FE0E0C2E0), UINT64_C(0x00018D0780A3AD5B), + UINT64_C(0x0006DD4F15327657), UINT64_C(0x00009AB856FE2440), + UINT64_C(0x000750F36E6E9B65)}, + {UINT64_C(0x0008B6024E61BB41), UINT64_C(0x0006393F246B2AD3), + UINT64_C(0x000446AF58B6CA59), UINT64_C(0x00000520765881CA), + UINT64_C(0x00061089ABFD62AB)}, + {UINT64_C(0x000633226585ECE4), UINT64_C(0x00076BF57CC213CB), + UINT64_C(0x000484A01C226640), UINT64_C(0x00033C1F700F8FBA), + UINT64_C(0x0000B0E1B3037271)}}, + {{UINT64_C(0x00054E468A9EFE70), UINT64_C(0x000608519FBFBF2D), + UINT64_C(0x0005333558A69061), UINT64_C(0x0004D0D77DF73B72), + UINT64_C(0x0005963DB206A396)}, + {UINT64_C(0x000394333A1E85F3), UINT64_C(0x000353C23C03493E), + UINT64_C(0x0000C828A97CB1A5), UINT64_C(0x00078C43450120ED), + UINT64_C(0x000555DF3569380F)}, + {UINT64_C(0x00042EFA777C3D87), UINT64_C(0x0006535188CEB3F6), + UINT64_C(0x000711F155E76C84), UINT64_C(0x0000E3BA9883F418), + UINT64_C(0x00057A3C7F7ECCF3)}}, + {{UINT64_C(0x000B073EF993682F), UINT64_C(0x00033F05FA3CCE30), + UINT64_C(0x00068B17D4A39381), UINT64_C(0x0004A922A545C066), + UINT64_C(0x0006F6DAE315DA70)}, + {UINT64_C(0x00014D0E6682401A), UINT64_C(0x0007CCF46A4DD19B), + UINT64_C(0x00075F65E59EC735), UINT64_C(0x0001444919609445), + UINT64_C(0x00056DEA40CFB96B)}, + {UINT64_C(0x00016AF62D5F1A62), UINT64_C(0x00031733B90868F3), + UINT64_C(0x0006590B06472897), UINT64_C(0x00049790ACFA5796), + UINT64_C(0x0003AB09B226B35A)}}, + {{UINT64_C(0x000329065372355E), UINT64_C(0x0007AB688B6A2989), + UINT64_C(0x00045AC32571E188), UINT64_C(0x0005840E91DC5D76), + UINT64_C(0x0000A0DFC537909E)}, + {UINT64_C(0x0005F472964EF0CE), UINT64_C(0x0003D2FA150C40C5), + UINT64_C(0x0007CBF1211260FB), UINT64_C(0x0003709955BA6654), + UINT64_C(0x000217DBDD3D5D0D)}, + {UINT64_C(0x000A1158C12DB2A4), UINT64_C(0x0004C90A2B817CA8), + UINT64_C(0x00061F4B5B3A38EC), UINT64_C(0x000380423D6EF40B), + UINT64_C(0x00000B4B0EF2C8F0)}}, + {{UINT64_C(0x00028D6E002BCA29), UINT64_C(0x0007A3997D7D546A), + UINT64_C(0x0005D8C776975959), UINT64_C(0x0000317399D2025E), + UINT64_C(0x000754B217E301A9)}, + {UINT64_C(0x0002CDE1681E8828), UINT64_C(0x000380F9FC21B2AB), + UINT64_C(0x00003AD0F0DC0117), UINT64_C(0x0003D01C67CEC59B), + UINT64_C(0x00039049C45C39C8)}, + {UINT64_C(0x0000CE99521AEEAB), UINT64_C(0x0003B4C67C5B669C), + UINT64_C(0x0000E043A30EE5B7), UINT64_C(0x0003F0C4E94F62CF), + UINT64_C(0x0001AB4F30E0A8F5)}}, + }, + { + {{UINT64_C(0x000DC91F212AB480), UINT64_C(0x0005945E1877E8EC), + UINT64_C(0x00013573E60D6704), UINT64_C(0x00069D9C4A961CA2), + UINT64_C(0x0003DE09EC8A48AF)}, + {UINT64_C(0x000E81E566BFFA33), UINT64_C(0x00033E06B06E4111), + UINT64_C(0x0002D32A23297AFD), UINT64_C(0x0005F9BFCE126AC6), + UINT64_C(0x0001FF61C1A88D8E)}, + {UINT64_C(0x0008D3EC31CFC3EE), UINT64_C(0x000046D8793EAB63), + UINT64_C(0x0000C143A50BCCDC), UINT64_C(0x0006EAB8519D9BAD), + UINT64_C(0x00074830BD46D5B4)}}, + {{UINT64_C(0x0000574A2032B148), UINT64_C(0x0004328CBA692C33), + UINT64_C(0x000232F42D123335), UINT64_C(0x000181DEF8EAD0DD), + UINT64_C(0x000451E2578C52D5)}, + {UINT64_C(0x000695C6731F0527), UINT64_C(0x0005CD46B5C17880), + UINT64_C(0x00015EAA924D0904), UINT64_C(0x00007F6FB72E84D0), + UINT64_C(0x0000CEB928AFDBBD)}, + {UINT64_C(0x0004D3626FF5B12C), UINT64_C(0x00051FE69CA7F94B), + UINT64_C(0x000772203CEE99E4), UINT64_C(0x0005F1FAC7E8C081), + UINT64_C(0x0003E578A1665444)}}, + {{UINT64_C(0x000B298801B1FE77), UINT64_C(0x0002586B0CE008AC), + UINT64_C(0x00045E778DC50E87), UINT64_C(0x0000FDCB5F3CC8F7), + UINT64_C(0x00017C5D39EFC586)}, + {UINT64_C(0x0002A41D8771BA87), UINT64_C(0x0004C8102431A7BA), + UINT64_C(0x0000B390AB74C50C), UINT64_C(0x0002C546F7C05D4D), + UINT64_C(0x0006AAD492B3116F)}, + {UINT64_C(0x0008FF03C1367A73), UINT64_C(0x0002A4A748616572), + UINT64_C(0x000605B500CB4A72), UINT64_C(0x0005C39BB9BB5B8B), + UINT64_C(0x000569FE03A16B9F)}}, + {{UINT64_C(0x000275341CBCADF6), UINT64_C(0x000430EFD84DCC71), + UINT64_C(0x00022B997FAB00F0), UINT64_C(0x00030C5632CF0693), + UINT64_C(0x0002A0826D840314)}, + {UINT64_C(0x000C11CD5CF6EE57), UINT64_C(0x0001257E6308FBB1), + UINT64_C(0x0002F7CE59284FB8), UINT64_C(0x00057DD9BDD3EF59), + UINT64_C(0x0003452936337369)}, + {UINT64_C(0x000530B11F6BDDA7), UINT64_C(0x0007A51865D93007), + UINT64_C(0x00076B5BC60F0AC9), UINT64_C(0x000212F031E350EA), + UINT64_C(0x000075AED0A2ADAE)}}, + {{UINT64_C(0x000AD78B391BD2D5), UINT64_C(0x0003A11ABEA7FF04), + UINT64_C(0x00046A25F0F350A4), UINT64_C(0x0001543CC7EF57AB), + UINT64_C(0x00069223D8309EB4)}, + {UINT64_C(0x000B33AD1F86A15A), UINT64_C(0x00036B112A03501B), + UINT64_C(0x000344A2066D4EF2), UINT64_C(0x00055436BD4B9A9D), + UINT64_C(0x00041A71A942A508)}, + {UINT64_C(0x0006FF9618F443D0), UINT64_C(0x0000F3000CB2F1BA), + UINT64_C(0x00022C2897DAADE0), UINT64_C(0x0004F604C596FCBC), + UINT64_C(0x000585C83B55AFF4)}}, + {{UINT64_C(0x00084B6AF7D110A1), UINT64_C(0x0001EFC9DBBC4234), + UINT64_C(0x000796661C37007B), UINT64_C(0x00010DB07259FC43), + UINT64_C(0x000202355E8495E8)}, + {UINT64_C(0x000DA5E823077C6C), UINT64_C(0x0003C9503E1777C0), + UINT64_C(0x0001A5E4F1DED645), UINT64_C(0x0000DE482043B271), + UINT64_C(0x0004B4CCC6B33E65)}, + {UINT64_C(0x00011797174CD365), UINT64_C(0x000242D89859CD09), + UINT64_C(0x0000714A4593BD77), UINT64_C(0x00051B9197490AE5), + UINT64_C(0x0006E6A726266AD0)}}, + {{UINT64_C(0x0006163606CF5614), UINT64_C(0x0003B9BA82C96535), + UINT64_C(0x000075E66F7CF6D4), UINT64_C(0x000411E3154EC181), + UINT64_C(0x00029B40D6F2E74B)}, + {UINT64_C(0x0005D2E429379A65), UINT64_C(0x00008B1A72434343), + UINT64_C(0x00041E8D9808E74A), UINT64_C(0x0004F14CB75EB689), + UINT64_C(0x0004F434008C1B41)}, + {UINT64_C(0x00067B260BE03B58), UINT64_C(0x0001EEF4691ADD3A), + UINT64_C(0x0002850460D0C4EE), UINT64_C(0x0005AFCC1FFDAA08), + UINT64_C(0x0003AB9267B9F6DC)}}, + {{UINT64_C(0x000B5389B777649D), UINT64_C(0x0001F24DBD666B73), + UINT64_C(0x00036DFB5DE2A31F), UINT64_C(0x0005EB994849E227), + UINT64_C(0x0004279FBFCC1BD4)}, + {UINT64_C(0x000B7EA950A7028F), UINT64_C(0x000732F69E7CF7DE), + UINT64_C(0x00066069E71F3D7B), UINT64_C(0x00028033D27359B1), + UINT64_C(0x000183D3130F9EED)}, + {UINT64_C(0x000D74EA5E42F626), UINT64_C(0x0004B6BC58EA9C64), + UINT64_C(0x0003C2C8FEA82634), UINT64_C(0x0002CE04C5B571DD), + UINT64_C(0x0001E397436718BF)}}, + {{UINT64_C(0x000B7484714F9403), UINT64_C(0x0004FC7BF02108DB), + UINT64_C(0x0003678FA400AD90), UINT64_C(0x00028EF7C8AC0FE1), + UINT64_C(0x000504A42505BDEF)}, + {UINT64_C(0x000A0A066ABF7FBB), UINT64_C(0x00072AEC8D4433CE), + UINT64_C(0x0002A0384B583EC1), UINT64_C(0x0002AB91E995640C), + UINT64_C(0x000169BC2751E588)}, + {UINT64_C(0x0009EB12660357B5), UINT64_C(0x00077A9937FD5E5F), + UINT64_C(0x00021FF5CE16F36C), UINT64_C(0x0001C906DF80DF41), + UINT64_C(0x0000CC48BA3DF0EA)}}, + {{UINT64_C(0x000E23A04EED9E35), UINT64_C(0x0004ADC00E39212A), + UINT64_C(0x00017453A70FE352), UINT64_C(0x0006D407B1DB39B2), + UINT64_C(0x0005D825F613189B)}, + {UINT64_C(0x00040B93828FA640), UINT64_C(0x00017C0D3D748E6A), + UINT64_C(0x0003E2BC36916CA3), UINT64_C(0x00026F60A9DD3D92), + UINT64_C(0x0002CB47886C390F)}, + {UINT64_C(0x0008E7468212D22E), UINT64_C(0x0005E3F127FB8644), + UINT64_C(0x0006C85DFBC55D78), UINT64_C(0x0007DFDFC6C531F3), + UINT64_C(0x000674E26E15BF6B)}}, + {{UINT64_C(0x000742AB1CE45F49), UINT64_C(0x000352695906DAC7), + UINT64_C(0x00067D9DD8206042), UINT64_C(0x0002A8F523687321), + UINT64_C(0x000209C2CC3DF3F2)}, + {UINT64_C(0x000582E07DACB336), UINT64_C(0x000659136B8B103E), + UINT64_C(0x00075BFAC5E74BD0), UINT64_C(0x00030FA01037A173), + UINT64_C(0x00027A6E9B54A029)}, + {UINT64_C(0x00010636DC94228F), UINT64_C(0x000334F99AD2D208), + UINT64_C(0x000210CE39BF48FB), UINT64_C(0x0005CE98A1D2F02D), + UINT64_C(0x0007E987948C2C36)}}, + {{UINT64_C(0x00060BD25865CC5A), UINT64_C(0x000717975E64B3FD), + UINT64_C(0x000791116DD316E7), UINT64_C(0x000027FC70709E15), + UINT64_C(0x000014CE5C4B9FED)}, + {UINT64_C(0x000FCB5EE438E62F), UINT64_C(0x0003918BFDF256E1), + UINT64_C(0x000122BF1C544888), UINT64_C(0x00014620D1E4D6BE), + UINT64_C(0x00031786B5D1AA6E)}, + {UINT64_C(0x000D8369134DE3F1), UINT64_C(0x000358E513D33827), + UINT64_C(0x0001AD06806E9F25), UINT64_C(0x0007751294480EB8), + UINT64_C(0x00070E23870117F1)}}, + {{UINT64_C(0x00006F3BCD1B2F70), UINT64_C(0x0000FA5C78F50611), + UINT64_C(0x000411C55245B3EE), UINT64_C(0x0004944F3F6FC1FB), + UINT64_C(0x000044A8C001AA25)}, + {UINT64_C(0x000D4183C7441852), UINT64_C(0x000055D95E60582E), + UINT64_C(0x0007BCDE3E7457F2), UINT64_C(0x00008C8DB0B27127), + UINT64_C(0x000151434B629450)}, + {UINT64_C(0x000E723B7F1ECEB3), UINT64_C(0x0004AD5542379FD9), + UINT64_C(0x0007AD503D0F9616), UINT64_C(0x0007C70002B01072), + UINT64_C(0x00014758CEF08E44)}}, + {{UINT64_C(0x000C404279D4475B), UINT64_C(0x00069FDFED5F482D), + UINT64_C(0x0004DDA9A420B9DE), UINT64_C(0x000442DE4FB067AC), + UINT64_C(0x00011575126C1A87)}, + {UINT64_C(0x0000D4A13CE38DD3), UINT64_C(0x00055443D3A075FC), + UINT64_C(0x0002D0CC46239CD5), UINT64_C(0x00037A0D9341BE9F), + UINT64_C(0x0007D72576A16B0E)}, + {UINT64_C(0x00018F1C0EA31782), UINT64_C(0x00017F5C99216478), + UINT64_C(0x00070B5287151CE4), UINT64_C(0x00069D184D521E3F), + UINT64_C(0x00050B904149AB2A)}}, + {{UINT64_C(0x000B9757956238BE), UINT64_C(0x000719EF66129C48), + UINT64_C(0x0003A4A2018A1497), UINT64_C(0x00060697B014C86D), + UINT64_C(0x0004211842CFCBB6)}, + {UINT64_C(0x00000FC466BA4129), UINT64_C(0x0005C2C02129FAE5), + UINT64_C(0x0007CC7E722EDDB4), UINT64_C(0x000463EFB0DEA9BC), + UINT64_C(0x0005CEAB5704312E)}, + {UINT64_C(0x0003CB3EF741A489), UINT64_C(0x000447C22A9AC8F6), + UINT64_C(0x00070DC1AC662C00), UINT64_C(0x000643FBD84746C4), + UINT64_C(0x00047AC14BC4BE7F)}}, + {{UINT64_C(0x0001F0ED4EAB4BF3), UINT64_C(0x0003BDBDE234EFD5), + UINT64_C(0x0007F9817DB30238), UINT64_C(0x0005F1CA682E32C5), + UINT64_C(0x0004EA29A4CB0AC2)}, + {UINT64_C(0x000119149BBD8CE2), UINT64_C(0x00053B67849C8636), + UINT64_C(0x0000EE5D57DDF5A8), UINT64_C(0x0004ACD87314DB39), + UINT64_C(0x00050B40A053EECC)}, + {UINT64_C(0x000A4EC0C58B1A27), UINT64_C(0x0004144223834F69), + UINT64_C(0x00006C3A5FA7A66C), UINT64_C(0x0001E7C747C08629), + UINT64_C(0x0006C75F05A9CE16)}}, + }, + { + {{UINT64_C(0x000DA9D6805AB8BD), UINT64_C(0x000551D3DA5834BB), + UINT64_C(0x00044E2A3C850244), UINT64_C(0x00003C161B738B16), + UINT64_C(0x00016FA62C9D5E85)}, + {UINT64_C(0x0002A0101ADD9A68), UINT64_C(0x00005F00A8B73A3E), + UINT64_C(0x0002700C6352EA8B), UINT64_C(0x00058F72766D9CF5), + UINT64_C(0x0000786CDD193DF0)}, + {UINT64_C(0x0008EF307292DAA3), UINT64_C(0x00078A0B85552DDA), + UINT64_C(0x0002B5E21BAB14CA), UINT64_C(0x00042FBE2B9E130A), + UINT64_C(0x0006A1FF64B8DFE0)}}, + {{UINT64_C(0x000C37A44368992F), UINT64_C(0x000503AD37567295), + UINT64_C(0x00022D6E783EB997), UINT64_C(0x00073209A3FE24D5), + UINT64_C(0x00061BEA701A085E)}, + {UINT64_C(0x000F79A9906695E1), UINT64_C(0x0006563AA33BECCA), + UINT64_C(0x0006D9C258571274), UINT64_C(0x0002082E0EFF1CF3), + UINT64_C(0x00006858AC5958CD)}, + {UINT64_C(0x00073B5DF922B953), UINT64_C(0x0007D833BB16576F), + UINT64_C(0x0002D7E0952EDC43), UINT64_C(0x0004C40B62DE9061), + UINT64_C(0x0006802A03BBC4A8)}}, + {{UINT64_C(0x000AA4FF9CD029FB), UINT64_C(0x0006A8F58A61B495), + UINT64_C(0x00076DE5AEDD2889), UINT64_C(0x000418E79FA28A81), + UINT64_C(0x0004AC6187BA7E86)}, + {UINT64_C(0x000BB424077E0F78), UINT64_C(0x0006BE304793DFB9), + UINT64_C(0x0001D1A8E8B74E8C), UINT64_C(0x000400EE04CA634E), + UINT64_C(0x0000D23EE5F7A76A)}, + {UINT64_C(0x000E8C82769B883D), UINT64_C(0x00061FF0A44B7C0C), + UINT64_C(0x00071C3F9C0C1C14), UINT64_C(0x0001A72BC400F4FB), + UINT64_C(0x000063C977E0C2A2)}}, + {{UINT64_C(0x000B7EA553156CDE), UINT64_C(0x0004F77ED1DA0116), + UINT64_C(0x0005313D6AB54554), UINT64_C(0x00068205E8633D72), + UINT64_C(0x0004C0F6F5D7AA5B)}, + {UINT64_C(0x0002AC03322F3ABE), UINT64_C(0x00013B9DB1E063DB), + UINT64_C(0x0001653067E1D575), UINT64_C(0x00068FA0726EBED0), + UINT64_C(0x00056D9BF5F7ACB5)}, + {UINT64_C(0x0008092305F9E607), UINT64_C(0x00050ADE9DDED289), + UINT64_C(0x000677C866291C9D), UINT64_C(0x0000A00D6AD82313), + UINT64_C(0x000204C6129E7A63)}}, + {{UINT64_C(0x000CC52FB8AA29BE), UINT64_C(0x00001FD5EBA86F95), + UINT64_C(0x0003EDEE7EE1584C), UINT64_C(0x0007A98D872F3541), + UINT64_C(0x00041BB59C74740D)}, + {UINT64_C(0x000B91A314979A22), UINT64_C(0x000445CC55FA6E68), + UINT64_C(0x00029A9728593F50), UINT64_C(0x0003D453E9BB2BF4), + UINT64_C(0x000458E9C150C319)}, + {UINT64_C(0x0008B902F4166F58), UINT64_C(0x00008BF4504AEFA7), + UINT64_C(0x000507F7245632D2), UINT64_C(0x00046F4236C007FE), + UINT64_C(0x0005F8B80AB194EF)}}, + {{UINT64_C(0x000E0E279B58D515), UINT64_C(0x000494C3FDFB0D3E), + UINT64_C(0x0006ADD516425B77), UINT64_C(0x0000C99F3F472FC4), + UINT64_C(0x00023C04A4713378)}, + {UINT64_C(0x00033C225C70B892), UINT64_C(0x0005DEF1B82B20A8), + UINT64_C(0x00062D4704CA33EF), UINT64_C(0x00001505BB87DFBE), + UINT64_C(0x00018D6306B777E3)}, + {UINT64_C(0x000A6436A9F762A4), UINT64_C(0x000102ABB9E7477D), + UINT64_C(0x00004BD6FA6C8FD0), UINT64_C(0x0002E4FAD22E39A3), + UINT64_C(0x0007D2D079A6B2DA)}}, + {{UINT64_C(0x000B537BD4E0A6B1), UINT64_C(0x00064415199F9972), + UINT64_C(0x0002D496FA892827), UINT64_C(0x00029834D9583EE0), + UINT64_C(0x0001F325BFC1AEE2)}, + {UINT64_C(0x000BE9617256C790), UINT64_C(0x0002301EF1F61C9F), + UINT64_C(0x0002A218C8615200), UINT64_C(0x00060780EED8C6E7), + UINT64_C(0x0004A46B99106694)}, + {UINT64_C(0x00037B99B0CAB13C), UINT64_C(0x00078242AB738B41), + UINT64_C(0x00018258BBD69E1C), UINT64_C(0x00043D3E9A166688), + UINT64_C(0x00055321313F52D3)}}, + {{UINT64_C(0x00067501A6250F6D), UINT64_C(0x000051135CC1DB41), + UINT64_C(0x0005B70CAFF3B24D), UINT64_C(0x0007AF6469DAB79A), + UINT64_C(0x0005A486101FF730)}, + {UINT64_C(0x000B81D6FB3B7613), UINT64_C(0x000705F8371DE858), + UINT64_C(0x0004616EECCC6DE2), UINT64_C(0x0003B624C3D98F88), + UINT64_C(0x0002580784E014F7)}, + {UINT64_C(0x0003C6B7855856C3), UINT64_C(0x0002ACC5BCB17705), + UINT64_C(0x0004E8DA7BC00D1D), UINT64_C(0x0006A7AF33BBD40A), + UINT64_C(0x0004CA608C42E191)}}, + {{UINT64_C(0x00014957F896B8DD), UINT64_C(0x0002EE29ED7F94C7), + UINT64_C(0x00006C535FD580D1), UINT64_C(0x0007EE5C2C854B58), + UINT64_C(0x000390B6176CC0A5)}, + {UINT64_C(0x000D8E851115F82F), UINT64_C(0x00057712C2473469), + UINT64_C(0x0005FED753D7DE49), UINT64_C(0x000100E99106EB96), + UINT64_C(0x00032A5894C01232)}, + {UINT64_C(0x0003F3BD2CBCD3E4), UINT64_C(0x00051B2182A69BC1), + UINT64_C(0x00047F72BDF9D1E5), UINT64_C(0x0004386BB2531556), + UINT64_C(0x0006251703B0886A)}}, + {{UINT64_C(0x000DA5B8DDCC32C8), UINT64_C(0x0004B6E439859BAC), + UINT64_C(0x000565788B32A991), UINT64_C(0x0007DA2C259D0EFC), + UINT64_C(0x00026E2BCA2F2403)}, + {UINT64_C(0x00036BD2B233B8DF), UINT64_C(0x000025EC957D6035), + UINT64_C(0x000421C4260564F0), UINT64_C(0x00024C08F5533B05), + UINT64_C(0x0004195603852EB3)}, + {UINT64_C(0x0007B58166F4C3F1), UINT64_C(0x000262CCAD523D27), + UINT64_C(0x0002167831F73FA9), UINT64_C(0x0002330A70233315), + UINT64_C(0x0001E997E60115B3)}}, + {{UINT64_C(0x000B11A8A180A2DD), UINT64_C(0x000740DE93A3B1BB), + UINT64_C(0x0001A75730E8D6F7), UINT64_C(0x0002787677BCD20B), + UINT64_C(0x0002C62508D0E0E3)}, + {UINT64_C(0x000193FF85DC4853), UINT64_C(0x0006FF8B716F7C95), + UINT64_C(0x0005695A400F15D0), UINT64_C(0x0006FCEA3FD445A5), + UINT64_C(0x0006827935BB527C)}, + {UINT64_C(0x000E756880792D5C), UINT64_C(0x00017C4CBFDCB6F6), + UINT64_C(0x0003621A1F5AD47B), UINT64_C(0x00008ACFEC1E2F0B), + UINT64_C(0x000680EE7BD4FDC9)}}, + {{UINT64_C(0x000B22617017AD54), UINT64_C(0x0006D79A05652478), + UINT64_C(0x00078436BB1A4FC2), UINT64_C(0x000588C3017ACA81), + UINT64_C(0x000721CFE104D7FC)}, + {UINT64_C(0x00058F6241221394), UINT64_C(0x0003B5CC42F98968), + UINT64_C(0x0005B8C26DF7368C), UINT64_C(0x000258033A96E20A), + UINT64_C(0x0006CDFD92327819)}, + {UINT64_C(0x000D5F316E441B95), UINT64_C(0x0007262AFF6C2AD0), + UINT64_C(0x000615C867B8A858), UINT64_C(0x0002304A98935CF1), + UINT64_C(0x0001C346C9D50FBE)}}, + {{UINT64_C(0x000B8D64E6633E8B), UINT64_C(0x0004415800321D6A), + UINT64_C(0x000112873DB9D153), UINT64_C(0x0007454E53F98187), + UINT64_C(0x0006D9C7B5E085F8)}, + {UINT64_C(0x0008054C9FC0114A), UINT64_C(0x00060A1D43700A51), + UINT64_C(0x0007F536F76DCA7B), UINT64_C(0x00059A4ADEA37323), + UINT64_C(0x0006F027E38F2362)}, + {UINT64_C(0x000304C8AA59BE30), UINT64_C(0x0007FE5A68FCF77D), + UINT64_C(0x0006BDE087AB92A0), UINT64_C(0x000025E8F669E08C), + UINT64_C(0x00018E93C6B2C356)}}, + {{UINT64_C(0x0004A344E63D4ACA), UINT64_C(0x0007C308BC5ED73E), + UINT64_C(0x0003A32DEAF4E9FA), UINT64_C(0x0004472F4E854593), + UINT64_C(0x000047D341D3DDFD)}, + {UINT64_C(0x0007532D39E9B3BB), UINT64_C(0x000217DF5A0A7433), + UINT64_C(0x00074975495E1565), UINT64_C(0x0002821D2EEF04CF), + UINT64_C(0x00054FC7406A916F)}, + {UINT64_C(0x000913F345C8BBFF), UINT64_C(0x0006989D1646C723), + UINT64_C(0x00027764F8A16ACB), UINT64_C(0x000008C125AF8D5F), + UINT64_C(0x0006800FE91196F4)}}, + {{UINT64_C(0x00082C098B00AA79), UINT64_C(0x000770B1C497ACD1), + UINT64_C(0x000344FD551B8CCE), UINT64_C(0x00023F33BE497F56), + UINT64_C(0x0002EAF897898B65)}, + {UINT64_C(0x0007F51FA8DC697B), UINT64_C(0x00074CE3069BBE12), + UINT64_C(0x0004C428EA0209F5), UINT64_C(0x00002F2D8D0BB62C), + UINT64_C(0x00004E256AFA4C76)}, + {UINT64_C(0x00001D22BDE52262), UINT64_C(0x0006DE17872B5135), + UINT64_C(0x00066D4BFED89F63), UINT64_C(0x000389FDDE527F9D), + UINT64_C(0x0000EB2F6E615478)}}, + {{UINT64_C(0x000C58D612641095), UINT64_C(0x00054CA77FCC5570), + UINT64_C(0x0001DA1FC218000A), UINT64_C(0x00037F0150DC6C3C), + UINT64_C(0x00022955963EF643)}, + {UINT64_C(0x0009C17EB03D6EA7), UINT64_C(0x0002DDDAC1318776), + UINT64_C(0x0004E4B91FA27202), UINT64_C(0x0001E2352AB304E3), + UINT64_C(0x00060A0E261D6691)}, + {UINT64_C(0x000B576743FFBA33), UINT64_C(0x0005A197F3AFDA0C), + UINT64_C(0x000429DD4FCB8A3F), UINT64_C(0x0001AF629993F4B3), + UINT64_C(0x00045EB119867A22)}}, + }, + { + {{UINT64_C(0x000AC144EF178112), UINT64_C(0x000094A0264CAF23), + UINT64_C(0x0004A0AC5A24DEFD), UINT64_C(0x0007C7625D1D184E), + UINT64_C(0x0005737B194A6A86)}, + {UINT64_C(0x0008F38EC35EE99B), UINT64_C(0x0006D9BAA844775F), + UINT64_C(0x00046F84DF77B762), UINT64_C(0x0002544D6FE58FDC), + UINT64_C(0x00077B72BB7289FB)}, + {UINT64_C(0x000DD166D7288C6E), UINT64_C(0x0001C67A51DA413C), + UINT64_C(0x0006973C6FAD10E1), UINT64_C(0x00031DE5E5EDA939), + UINT64_C(0x000393F71ED28892)}}, + {{UINT64_C(0x000B1C84EECF7E6B), UINT64_C(0x00056A60AC35BAB2), + UINT64_C(0x0002F06DF1910A93), UINT64_C(0x0000618DC5FAEB06), + UINT64_C(0x0001D49317BBBDF6)}, + {UINT64_C(0x000493F2A36F71D9), UINT64_C(0x00040122E257F266), + UINT64_C(0x00007974D73D3705), UINT64_C(0x0001276FD01A753E), + UINT64_C(0x000756654735EC6A)}, + {UINT64_C(0x0007DB79632DD089), UINT64_C(0x0001FE3FA5F4A3F7), + UINT64_C(0x0001716E3C167A6F), UINT64_C(0x00053B6AA21FEB09), + UINT64_C(0x00023EC2880EEB4A)}}, + {{UINT64_C(0x00025A84454FFE86), UINT64_C(0x000780F2E547DCDF), + UINT64_C(0x000701A2C14FDED4), UINT64_C(0x0004B8A116F259A3), + UINT64_C(0x000695574E1284BB)}, + {UINT64_C(0x000D30440055360D), UINT64_C(0x00003410B657F1F4), + UINT64_C(0x0006EE23795C3521), UINT64_C(0x0004C9A2F7E3A24B), + UINT64_C(0x0000FD8B32023BD7)}, + {UINT64_C(0x000AE6F82F35FF69), UINT64_C(0x0003F3D6F04FB2C4), + UINT64_C(0x00005F2596E4AACD), UINT64_C(0x0007F09E9725486A), + UINT64_C(0x00062C57118684FB)}}, + {{UINT64_C(0x00071AB6451B13D2), UINT64_C(0x000619FA9ABFE206), + UINT64_C(0x0004C28E4E8FA08C), UINT64_C(0x0002CEE0DAC526F3), + UINT64_C(0x0005F61B37975A6F)}, + {UINT64_C(0x00015634247F1514), UINT64_C(0x00043246C09599E2), + UINT64_C(0x000502B5C89D4562), UINT64_C(0x00055B6E5B70BD64), + UINT64_C(0x0000924E7D2DA3A4)}, + {UINT64_C(0x000DC2A7C58A69B5), UINT64_C(0x0007579FCF83B046), + UINT64_C(0x000490212587ACC9), UINT64_C(0x00042C0D4FB52DDA), + UINT64_C(0x0006EA269EA5E4FF)}}, + {{UINT64_C(0x000FAB3168E74931), UINT64_C(0x000009FC282310C8), + UINT64_C(0x0002E357A087E03B), UINT64_C(0x0002E82B3F54812E), + UINT64_C(0x0000A1378335E998)}, + {UINT64_C(0x0009E98B211CF746), UINT64_C(0x000294635069D795), + UINT64_C(0x00066C9A8A94C197), UINT64_C(0x00049DBA942CC086), + UINT64_C(0x00038BE03A6F71F4)}, + {UINT64_C(0x000D42F0FB6C56DF), UINT64_C(0x0003D1EF830454E8), + UINT64_C(0x000225CD3F51B513), UINT64_C(0x00002F23E7710F71), + UINT64_C(0x0007ED09816C213D)}}, + {{UINT64_C(0x000475A30D2F95C3), UINT64_C(0x0006534DABA67C75), + UINT64_C(0x0005FFF4349E9DCF), UINT64_C(0x0005741BFE20E51E), + UINT64_C(0x0007C9C06E28F6DB)}, + {UINT64_C(0x0004C91D367D647C), UINT64_C(0x0005DB920659E98B), + UINT64_C(0x0006E2DC6EDEAE13), UINT64_C(0x00045FADDDCD7438), + UINT64_C(0x0006A3D3CCDD5BDE)}, + {UINT64_C(0x000030AFB5D712D2), UINT64_C(0x0004232A6E545B6F), + UINT64_C(0x0006CC8095D31E5A), UINT64_C(0x0005E95D17B4F93D), + UINT64_C(0x000640826F938DB4)}}, + {{UINT64_C(0x00054E864AE39A36), UINT64_C(0x00075453A7420C12), + UINT64_C(0x0007550FC0647586), UINT64_C(0x0000CE261F056DAC), + UINT64_C(0x0006EC06688237F9)}, + {UINT64_C(0x00009D858855A118), UINT64_C(0x00035D6E1CAC4C58), + UINT64_C(0x00051BC56EDB0309), UINT64_C(0x00056720925976FA), + UINT64_C(0x0003095195EC98C0)}, + {UINT64_C(0x00028453ABBCD94C), UINT64_C(0x0000442BD67826FA), + UINT64_C(0x00027091B2C7D123), UINT64_C(0x00053D5CE098F2DF), + UINT64_C(0x00033B91CBED8C33)}}, + {{UINT64_C(0x00031BB1AEC4EB7B), UINT64_C(0x000404BD71986FBA), + UINT64_C(0x000789F140F41C34), UINT64_C(0x00046319EC635090), + UINT64_C(0x00062555BCEF03FC)}, + {UINT64_C(0x000B7957AF9DF20B), UINT64_C(0x00061499B0C64744), + UINT64_C(0x0005A1460AB6F031), UINT64_C(0x000254B48FE3B63C), + UINT64_C(0x000138DA1B0B8458)}, + {UINT64_C(0x0008FC31F72B00C5), UINT64_C(0x00009260DAF93E82), + UINT64_C(0x0007724F21722EEC), UINT64_C(0x00065104B46DE00D), + UINT64_C(0x0005C74C4AADE4A1)}}, + {{UINT64_C(0x000C942D7E200CDA), UINT64_C(0x0004DCCF2C9062F8), + UINT64_C(0x00033C6DC30EF168), UINT64_C(0x0005876E586F49F0), + UINT64_C(0x0005C625124B23D5)}, + {UINT64_C(0x000AF942F3B8567F), UINT64_C(0x00068DD426ED4B8D), + UINT64_C(0x00074CE2434E2244), UINT64_C(0x0005BC01452BAF26), + UINT64_C(0x00068D340AA53E01)}, + {UINT64_C(0x00062BADB88E1FEE), UINT64_C(0x00001B7927E30590), + UINT64_C(0x0007FB96EBA04357), UINT64_C(0x00063C4C5B983654), + UINT64_C(0x0003CB27C00B0E03)}}, + {{UINT64_C(0x0003A8ABA3BA06D8), UINT64_C(0x0005183A547A5052), + UINT64_C(0x0002FA684E05B048), UINT64_C(0x00037DC680820759), + UINT64_C(0x0003A758E398D110)}, + {UINT64_C(0x000AE41D00F8BBE3), UINT64_C(0x0007C91843988CEE), + UINT64_C(0x00008AC196646158), UINT64_C(0x0004F9CA63F0D300), + UINT64_C(0x0004AE71F5595151)}, + {UINT64_C(0x0009C5C331E75B70), UINT64_C(0x000034AEB589633E), + UINT64_C(0x0003A2AFA63836A6), UINT64_C(0x00071AA62CA57C97), + UINT64_C(0x0002588D39981664)}}, + {{UINT64_C(0x0002F5861915F134), UINT64_C(0x0002E22B903AD5D1), + UINT64_C(0x0004B62079B373C7), UINT64_C(0x0006E593A78A5789), + UINT64_C(0x0006ACFA4114B928)}, + {UINT64_C(0x000845994C9F8482), UINT64_C(0x00018D23FF32CC4E), + UINT64_C(0x0001EF02A3741210), UINT64_C(0x0003A1F60A318F68), + UINT64_C(0x00074BBE122C022E)}, + {UINT64_C(0x000235F03B8817CF), UINT64_C(0x0004136EC580474B), + UINT64_C(0x00030B5BE4C70BFD), UINT64_C(0x0006771287C6A491), + UINT64_C(0x0004EE10D834F1D6)}}, + {{UINT64_C(0x0009238C49B5B594), UINT64_C(0x0006D951D5930D4A), + UINT64_C(0x00052C92A1704BF4), UINT64_C(0x00058049C0061E24), + UINT64_C(0x0003414A1DFBD8A0)}, + {UINT64_C(0x0003B17B475F899E), UINT64_C(0x0000A207F4C1C87F), + UINT64_C(0x00005DAC41647336), UINT64_C(0x000017D58BC6FE28), + UINT64_C(0x00006090A9CB1708)}, + {UINT64_C(0x0000E353DF9AED9F), UINT64_C(0x000211A100A66400), + UINT64_C(0x000537F1DBBF53C6), UINT64_C(0x00061176C39FF089), + UINT64_C(0x0000ED4DD7183518)}}, + {{UINT64_C(0x000D4A93DE96CDC1), UINT64_C(0x0001C832B89CB8A0), + UINT64_C(0x000203277525319E), UINT64_C(0x0004CEE0F6725575), + UINT64_C(0x00070ED69AF9BF53)}, + {UINT64_C(0x000C17F8BAA5AAC7), UINT64_C(0x0006AF4ABBDC969F), + UINT64_C(0x0003A0E69B82101E), UINT64_C(0x0006234479D6A63E), + UINT64_C(0x0002BF20728C2007)}, + {UINT64_C(0x00063FEF01AE2A02), UINT64_C(0x0001C86F09FC4AF4), + UINT64_C(0x00069A1DE168EBCE), UINT64_C(0x00063F996EFB8433), + UINT64_C(0x00072A687DA051BD)}}, + {{UINT64_C(0x000A8952F3FB5F0C), UINT64_C(0x00022194DC688FAE), + UINT64_C(0x0006F9F5064736BF), UINT64_C(0x0007A6A4D691B9DB), + UINT64_C(0x0007F5B139E354FB)}, + {UINT64_C(0x0000B63808606E6E), UINT64_C(0x0005E413F0FE0384), + UINT64_C(0x00024FB74A712242), UINT64_C(0x00027B1CB73DDC68), + UINT64_C(0x0006285935149BF9)}, + {UINT64_C(0x000D30A9D3AC7820), UINT64_C(0x0002B97ED3978DF1), + UINT64_C(0x0003681BAB9F5289), UINT64_C(0x0000D844B826D276), + UINT64_C(0x000784A758F5FDDE)}}, + {{UINT64_C(0x0005EF9827213EE3), UINT64_C(0x00042F84E4310A41), + UINT64_C(0x0004A5143748EB06), UINT64_C(0x0003190974F9FF92), + UINT64_C(0x0005016A42C2EB4B)}, + {UINT64_C(0x00000CB993776C25), UINT64_C(0x0005E9694BF91DF4), + UINT64_C(0x00056BC66736D688), UINT64_C(0x0002EC931ADE934B), + UINT64_C(0x0001A9C364E091BF)}, + {UINT64_C(0x000E211DC7632283), UINT64_C(0x00035BE411AEEFD3), + UINT64_C(0x00015DAFEBCCAC46), UINT64_C(0x00037714AEB785FD), + UINT64_C(0x0006253CC0A245FF)}}, + {{UINT64_C(0x00029AF81A0D1BD2), UINT64_C(0x00003B61C799BE14), + UINT64_C(0x0001C03C6426B11A), UINT64_C(0x0007F386EC4C5C3C), + UINT64_C(0x0000B2BC5FE81F9E)}, + {UINT64_C(0x000AD04EE82724D3), UINT64_C(0x0005B1D7846B04CA), + UINT64_C(0x00033D35B52BC659), UINT64_C(0x000135A47CD22439), + UINT64_C(0x0007D7B6CAEA433E)}, + {UINT64_C(0x000850D32772E3DB), UINT64_C(0x000582BED8E87C91), + UINT64_C(0x000198367AE74473), UINT64_C(0x0002F5A5839CEAE9), + UINT64_C(0x0002B8174D7564F2)}}, + }, + { + {{UINT64_C(0x0005F71E4CC72DC5), UINT64_C(0x000729408117FF19), + UINT64_C(0x000309B7A677423D), UINT64_C(0x0004839F84C2AB89), + UINT64_C(0x00008A95BA320E5D)}, + {UINT64_C(0x00078965FDB1CB39), UINT64_C(0x0005F0C0D8298F25), + UINT64_C(0x00055C4EEDD50E22), UINT64_C(0x00023DC216E90B73), + UINT64_C(0x000797D03A50DC08)}, + {UINT64_C(0x000D4CA0AD220D40), UINT64_C(0x00028CD933850D3B), + UINT64_C(0x0004D7EE3B9C333B), UINT64_C(0x0002966D4130006D), + UINT64_C(0x0000FBD61D1E8F9C)}}, + {{UINT64_C(0x00009E516DAADA87), UINT64_C(0x0004EC925BC0EEEE), + UINT64_C(0x0006EFFBA132BCEB), UINT64_C(0x000724D09DAD4807), + UINT64_C(0x000452C79585B373)}, + {UINT64_C(0x000F1401F95C5FB5), UINT64_C(0x0005A1CE98BCB0CF), + UINT64_C(0x000216304328D3D2), UINT64_C(0x0004BF1910725FC2), + UINT64_C(0x0004002028E1F6C0)}, + {UINT64_C(0x000BCA6D33FB4AF5), UINT64_C(0x000699B08CFF3D9E), + UINT64_C(0x0000EA0CDC3C332C), UINT64_C(0x000630F4F9EAC5C7), + UINT64_C(0x000780B9E89D8FFA)}}, + {{UINT64_C(0x000CF75D097A1682), UINT64_C(0x00032545E3AC653A), + UINT64_C(0x00029DB14F338894), UINT64_C(0x000351894CA83CAE), + UINT64_C(0x000318CEC53A3C6A)}, + {UINT64_C(0x000F2E2D2A2EA810), UINT64_C(0x00054DDA2C9BB050), + UINT64_C(0x000290BE850E8961), UINT64_C(0x000287BC5EBC0BFC), + UINT64_C(0x00062D4620BB48F9)}, + {UINT64_C(0x0005A0F8E756C417), UINT64_C(0x0004937AF0050D8E), + UINT64_C(0x0003DF98E8FBE4F8), UINT64_C(0x00073EF8BBA04BAC), + UINT64_C(0x0003743A4A505CD5)}}, + {{UINT64_C(0x000AC304DDD850C1), UINT64_C(0x000116AE8E058E54), + UINT64_C(0x0003E025C2CAAABC), UINT64_C(0x0006FC6FE28AC49A), + UINT64_C(0x00016E67A015DEA5)}, + {UINT64_C(0x0000CF3F158429CD), UINT64_C(0x000480063B01884B), + UINT64_C(0x000363368F078BE2), UINT64_C(0x000504AB7790BA1A), + UINT64_C(0x0006710350B446FA)}, + {UINT64_C(0x000D8B8DE6397785), UINT64_C(0x000188CD6C441A62), + UINT64_C(0x0004AD0920B22E3C), UINT64_C(0x0005021ECF3C72DE), + UINT64_C(0x0003D133001D1ED5)}}, + {{UINT64_C(0x000B60A8C5FAF1CD), UINT64_C(0x0004C53C423A845B), + UINT64_C(0x000520A9E9FA2A69), UINT64_C(0x00027D388A1F08D1), + UINT64_C(0x000032396160EC47)}, + {UINT64_C(0x00038139094FAD75), UINT64_C(0x0003CD9876593CD5), + UINT64_C(0x00071333878088E4), UINT64_C(0x000201E8433445E6), + UINT64_C(0x000112302E7408FF)}, + {UINT64_C(0x000CBFE63FC06EE2), UINT64_C(0x00027425B1F20DEB), + UINT64_C(0x000457B85B95B8B5), UINT64_C(0x00076DF4D98AEAFE), + UINT64_C(0x0004EC884BB0909D)}}, + {{UINT64_C(0x000560BECBEEDE54), UINT64_C(0x000355F2A19E2A7B), + UINT64_C(0x0003AC869895D894), UINT64_C(0x0001B3A88FAF6472), + UINT64_C(0x00030150F70F46D2)}, + {UINT64_C(0x000C4423AB869B40), UINT64_C(0x0003A52F86375064), + UINT64_C(0x00012F5BC0F20340), UINT64_C(0x0006CA222C7412D4), + UINT64_C(0x00032F1254041880)}, + {UINT64_C(0x0002B2DBAB6499A6), UINT64_C(0x00011049F2328790), + UINT64_C(0x000696584124F8E2), UINT64_C(0x000142AB6165955E), + UINT64_C(0x00063E346DAEF2ED)}}, + {{UINT64_C(0x000D39355730C824), UINT64_C(0x0003FC8CAC7D5529), + UINT64_C(0x00051C9605C77F3A), UINT64_C(0x0007A2A90B74D60C), + UINT64_C(0x0006FA2B0304B184)}, + {UINT64_C(0x0004EB3441C3FCC1), UINT64_C(0x0002CACCC532F441), + UINT64_C(0x0005E09ACF224276), UINT64_C(0x00058A77259116FC), + UINT64_C(0x0000BDC2A63D5387)}, + {UINT64_C(0x000F8EFB7463FFE8), UINT64_C(0x0001057CA428A821), + UINT64_C(0x0004ED380A470ED0), UINT64_C(0x00076F49D6CEF5F0), + UINT64_C(0x0003F9D2D6743030)}}, + {{UINT64_C(0x0000AF30896CC3EF), UINT64_C(0x000201D4DF630DBA), + UINT64_C(0x00052E42F5AFF8BF), UINT64_C(0x00000EB77C14ACF5), + UINT64_C(0x0003CA2DFB8C5EDF)}, + {UINT64_C(0x000B5A205B171808), UINT64_C(0x0004C56363842D6C), + UINT64_C(0x000292D70469611A), UINT64_C(0x0006D916356CD45A), + UINT64_C(0x0006B0027CD19FAB)}, + {UINT64_C(0x00022B2713528A82), UINT64_C(0x0006E7BE33E7CEF0), + UINT64_C(0x000009FC8141F131), UINT64_C(0x0000150A7927D149), + UINT64_C(0x0003B14B0DA7FF44)}}, + {{UINT64_C(0x00032EFED0F84103), UINT64_C(0x00019069CDCE6F9F), + UINT64_C(0x0005C6ACB2ABA640), UINT64_C(0x0006C2B81330E238), + UINT64_C(0x0003A809BBA9B370)}, + {UINT64_C(0x0004BE6C8B688B18), UINT64_C(0x0001351C261FED04), + UINT64_C(0x0002C96D1BC48370), UINT64_C(0x0001E95E38FF6352), + UINT64_C(0x0007BEAD8D5751AA)}, + {UINT64_C(0x00098F021AA4DB09), UINT64_C(0x00078CD1DC9071DF), + UINT64_C(0x000605F5C2A08E6A), UINT64_C(0x0002E7D15E83EE69), + UINT64_C(0x0000E6B2FF6D9875)}}, + {{UINT64_C(0x0004DE5A07C4323E), UINT64_C(0x0002D406347B7064), + UINT64_C(0x0005AA73A0846C15), UINT64_C(0x0000B5C4D6C73A87), + UINT64_C(0x0002AA137FBF2494)}, + {UINT64_C(0x0004685341C33279), UINT64_C(0x000082B2B0E321E2), + UINT64_C(0x0005643452806D72), UINT64_C(0x000626BA7990B3AF), + UINT64_C(0x0007CF53B95B4365)}, + {UINT64_C(0x00013532346149FF), UINT64_C(0x0005947C275C07F1), + UINT64_C(0x00034F1270EB410F), UINT64_C(0x000514A7C01BF670), + UINT64_C(0x000407161B0257A8)}}, + {{UINT64_C(0x00054B5C52AC8719), UINT64_C(0x0002D86CBEB0D6B0), + UINT64_C(0x0004F84A08F1266B), UINT64_C(0x0004D65F37B998EF), + UINT64_C(0x0006C27CE40B4135)}, + {UINT64_C(0x0007BF812153FC77), UINT64_C(0x0005CDDD65D79B11), + UINT64_C(0x00054A7071923FF6), UINT64_C(0x00034FBFFF7FA918), + UINT64_C(0x000261A5361256A4)}, + {UINT64_C(0x000B13BCE19AAFB7), UINT64_C(0x0006D3B746CE4B8F), + UINT64_C(0x00053A3635869292), UINT64_C(0x0007909536E7719B), + UINT64_C(0x000008EB20D956CC)}}, + {{UINT64_C(0x00065CF97D492C5D), UINT64_C(0x00029D9BCEE03B91), + UINT64_C(0x0006041F5A49C183), UINT64_C(0x0002F8117A3A828F), + UINT64_C(0x000369E3DAD33DF2)}, + {UINT64_C(0x000D5176A425F79F), UINT64_C(0x000343D6AB0DE966), + UINT64_C(0x00064EFB5C97C515), UINT64_C(0x0002BF9162998A39), + UINT64_C(0x00050EF13FEEC9EB)}, + {UINT64_C(0x00039C0CFD97E85B), UINT64_C(0x000770E1CCBB013E), + UINT64_C(0x0005F03BD9F7D9C2), UINT64_C(0x000690F1EE2F80E3), + UINT64_C(0x00071787D1339A82)}}, + {{UINT64_C(0x000F7F42B80EB7F2), UINT64_C(0x000544C8293F8329), + UINT64_C(0x000122DA47640B5D), UINT64_C(0x0000FEAFA087BC4E), + UINT64_C(0x00059F0BB3B97004)}, + {UINT64_C(0x0002AA28745CD9B5), UINT64_C(0x0007BC8D5CD03005), + UINT64_C(0x0001422C4B7A9189), UINT64_C(0x000282692E6090A7), + UINT64_C(0x0000867B47D33593)}, + {UINT64_C(0x0003413E422FA5A2), UINT64_C(0x0006887164EBB90B), + UINT64_C(0x00065C5E1BFDB4A4), UINT64_C(0x0004B98C578628EE), + UINT64_C(0x0004E5352F622184)}}, + {{UINT64_C(0x0002549D88E38B2F), UINT64_C(0x0004908DEAD628D9), + UINT64_C(0x000073E0A2E146D7), UINT64_C(0x000664C6FFF36209), + UINT64_C(0x000130159F64A292)}, + {UINT64_C(0x000B964E8ECBEDBE), UINT64_C(0x00030E5C798B68B0), + UINT64_C(0x0004BFD953930A67), UINT64_C(0x0007CA03ABB678FB), + UINT64_C(0x00033FEF5B3D5B01)}, + {UINT64_C(0x00098E12CCF396A9), UINT64_C(0x0003A8CA995F3788), + UINT64_C(0x0007482D4E5FAAC6), UINT64_C(0x00031D5A37583FCA), + UINT64_C(0x0006D982702EDC91)}}, + {{UINT64_C(0x000BE837A054ACCB), UINT64_C(0x0004ECB51A8EF070), + UINT64_C(0x0002F2D57B4FCF60), UINT64_C(0x0004C1513045FB2B), + UINT64_C(0x00047770E3380A5B)}, + {UINT64_C(0x000425BEF82D311B), UINT64_C(0x00002005D68620DC), + UINT64_C(0x0007325F0CD3FBE0), UINT64_C(0x0004EEFB9471E0EC), + UINT64_C(0x00028F8C67917260)}, + {UINT64_C(0x000B0A66B88E76E6), UINT64_C(0x0000F3A2C9DA4F2E), + UINT64_C(0x0001EA49E958D92A), UINT64_C(0x000026E1BDBB6E03), + UINT64_C(0x0005029291E8FB70)}}, + {{UINT64_C(0x000E54C9AEAECCC3), UINT64_C(0x000361674AC1790E), + UINT64_C(0x0006F9F28B87D9E7), UINT64_C(0x00018B8D2B452066), + UINT64_C(0x0007DB9345D70FBC)}, + {UINT64_C(0x000F3DF99A78836C), UINT64_C(0x0004914D0D5AE148), + UINT64_C(0x000571EBD41C1239), UINT64_C(0x0005A51875241CFB), + UINT64_C(0x0007336AA1FEBF60)}, + {UINT64_C(0x000A212F131FA1A5), UINT64_C(0x0000D92E88DEBB89), + UINT64_C(0x000558BFDAECA4D2), UINT64_C(0x000269A780A65DC8), + UINT64_C(0x0007265543B97C9D)}}, + }, + { + {{UINT64_C(0x0009BE522B9D7F04), UINT64_C(0x0004BC705622740B), + UINT64_C(0x0007E15EA4E4D172), UINT64_C(0x00038BD4A6FDEDBC), + UINT64_C(0x0005E8C142089478)}, + {UINT64_C(0x00048C72EDCC8AA4), UINT64_C(0x0006C5E6065406FA), + UINT64_C(0x0006AF3701C24620), UINT64_C(0x00042EA0F2E70B8F), + UINT64_C(0x00033DFF74481155)}, + {UINT64_C(0x000852E6A6E72D7C), UINT64_C(0x00042B699FEF3BF1), + UINT64_C(0x0005907EE2406991), UINT64_C(0x0004D36621FDF916), + UINT64_C(0x0006D7911C011B7B)}}, + {{UINT64_C(0x000EBFE9B94F7A12), UINT64_C(0x0004824A85A9AC4B), + UINT64_C(0x00014EEF07D3D55D), UINT64_C(0x000513B829B2AE5C), + UINT64_C(0x0006011380B7D9CC)}, + {UINT64_C(0x000A21168961EEA8), UINT64_C(0x00063CBB9BA57577), + UINT64_C(0x0006606B05EF2134), UINT64_C(0x0006B72A1D536E54), + UINT64_C(0x000661849203E9CC)}, + {UINT64_C(0x0004C06869AEA3D6), UINT64_C(0x00021F578255BAF7), + UINT64_C(0x00067D1096E12882), UINT64_C(0x00050B150BD416A4), + UINT64_C(0x0002910322AC87CD)}}, + {{UINT64_C(0x000644D63DB19259), UINT64_C(0x000547C0FCA86C59), + UINT64_C(0x0007A198D5D3FAEE), UINT64_C(0x0001E28699860365), + UINT64_C(0x0000EFE6732ABA42)}, + {UINT64_C(0x000888204C12F590), UINT64_C(0x0001C8E5F2BFF85C), + UINT64_C(0x0001772AF32270BC), UINT64_C(0x0005D962EAAB3158), + UINT64_C(0x0001A34AB97418FB)}, + {UINT64_C(0x0008D80BBC8528CC), UINT64_C(0x000241D41B76D92E), + UINT64_C(0x0004513FE5B63EE3), UINT64_C(0x00062D1B5DE35CE4), + UINT64_C(0x0005157C5E57C598)}}, + {{UINT64_C(0x000BDB25BE3A9FD2), UINT64_C(0x000302ED2946793F), + UINT64_C(0x00012C506EF80331), UINT64_C(0x0006D13E5DECA318), + UINT64_C(0x00001A5DF0E20F25)}, + {UINT64_C(0x000BC9FC9FF75DF0), UINT64_C(0x0000BF1C056F5479), + UINT64_C(0x00036E0E95E2CF70), UINT64_C(0x00058A068DA69D3D), + UINT64_C(0x0001555FC948F50D)}, + {UINT64_C(0x000998A0950C1A1C), UINT64_C(0x0005358898A6636E), + UINT64_C(0x0001CC47B1220D25), UINT64_C(0x0007E929E197B7F1), + UINT64_C(0x0006FE5D94BC2454)}}, + {{UINT64_C(0x000EABC2EB1D0B59), UINT64_C(0x0007A05C59336123), + UINT64_C(0x0007918FF8448B64), UINT64_C(0x00057A94A01CAB48), + UINT64_C(0x0002FF15B4CC7487)}, + {UINT64_C(0x00008799019AECD9), UINT64_C(0x0003D8F58AC75312), + UINT64_C(0x0000D4A7DF2730C1), UINT64_C(0x0005E75D83B3FAC3), + UINT64_C(0x0007180E7E60D802)}, + {UINT64_C(0x0005AEF92672CCE1), UINT64_C(0x0006637504959CA3), + UINT64_C(0x00053E5589BFA337), UINT64_C(0x0003A21A8478ED35), + UINT64_C(0x0002DD36E5AC50F9)}}, + {{UINT64_C(0x00062DF8E260C004), UINT64_C(0x0004DE30E71B999A), + UINT64_C(0x00045C3FA066284D), UINT64_C(0x000331D9BB25623D), + UINT64_C(0x000202123595AEC6)}, + {UINT64_C(0x00047A9FF0131346), UINT64_C(0x0003A150D3AAC3F1), + UINT64_C(0x00029452C6C88616), UINT64_C(0x0007CA8D3EC1A917), + UINT64_C(0x0006EEC72C9A0BF5)}, + {UINT64_C(0x000F10845A21F448), UINT64_C(0x00001AAE742835C2), + UINT64_C(0x00025E4CFB83A17F), UINT64_C(0x0007BF8EB92AF3AB), + UINT64_C(0x000699BE9783E779)}}, + {{UINT64_C(0x0001DC9C52A66972), UINT64_C(0x0002C0B904C59FBA), + UINT64_C(0x0006C89144084C6D), UINT64_C(0x00014AB65019CF29), + UINT64_C(0x00006EA2401AC315)}, + {UINT64_C(0x000ADC23F3836291), UINT64_C(0x0002F1AD8C01F7C1), + UINT64_C(0x000205DF0C8922CF), UINT64_C(0x0001751FC5AEB310), + UINT64_C(0x0006F64DB4075476)}, + {UINT64_C(0x000F82F426A80AE1), UINT64_C(0x00013C4A6E62FC16), + UINT64_C(0x0001FBCDF27E0B34), UINT64_C(0x00078E30B91EF3E6), + UINT64_C(0x000059CBEA565341)}}, + {{UINT64_C(0x00062CB978126A51), UINT64_C(0x0004E2E7313211FE), + UINT64_C(0x00066E6E57EED552), UINT64_C(0x00009AE384794AC9), + UINT64_C(0x00077726F8AB9C55)}, + {UINT64_C(0x0006D6C6C9E72C58), UINT64_C(0x00069723C749EA4F), + UINT64_C(0x0005631BCF116547), UINT64_C(0x0004E31FAB9D03A6), + UINT64_C(0x0002B7F538841EE2)}, + {UINT64_C(0x000BD957A2809D3C), UINT64_C(0x000317F1DC4351FD), + UINT64_C(0x000701BA3438D796), UINT64_C(0x00009FBD6563EC5D), + UINT64_C(0x0003E98ABE5B2F47)}}, + {{UINT64_C(0x000AE4190E276A10), UINT64_C(0x0001FFB966B8121D), + UINT64_C(0x0004FEEDA4D78B7E), UINT64_C(0x0005DB20D5551162), + UINT64_C(0x00030DC06EF26E4D)}, + {UINT64_C(0x000A970255208159), UINT64_C(0x0001A104788B4AEF), + UINT64_C(0x00004D4C840BE3BE), UINT64_C(0x0006BD8A71949A6C), + UINT64_C(0x000651C9FF191728)}, + {UINT64_C(0x000A44663267D2A4), UINT64_C(0x0001FC0CAB11E883), + UINT64_C(0x000785A12DE63089), UINT64_C(0x00006EC9E0189600), + UINT64_C(0x000375BF7E8AB1B8)}}, + {{UINT64_C(0x000BFFBBC3B4CE41), UINT64_C(0x0003376A2003A823), + UINT64_C(0x000091EBF7910590), UINT64_C(0x00061FB8363DCA05), + UINT64_C(0x00042807BC01AD4E)}, + {UINT64_C(0x000ACF6D9A5C7646), UINT64_C(0x000560F4B3AE3DC2), + UINT64_C(0x000183CCAE76BD95), UINT64_C(0x00065764DB513046), + UINT64_C(0x000214F42294E850)}, + {UINT64_C(0x0000F3EDC763536B), UINT64_C(0x0004E9D5EF6B046E), + UINT64_C(0x000150D442C37994), UINT64_C(0x0001B54E80DE1472), + UINT64_C(0x00007A1D71EDF00C)}}, + {{UINT64_C(0x00087407DBA8E90B), UINT64_C(0x0007E1C66322205F), + UINT64_C(0x0004FAC245ACCD04), UINT64_C(0x0002B13B4E297D86), + UINT64_C(0x000323B2D23AEDAE)}, + {UINT64_C(0x0009941B92E19A5C), UINT64_C(0x000195BC242E04DB), + UINT64_C(0x0007CBD2DF69FF04), UINT64_C(0x0007CA419CC6C1BA), + UINT64_C(0x0002904A1B8DDF4F)}, + {UINT64_C(0x00040957907BF307), UINT64_C(0x00015C68151C4FE7), + UINT64_C(0x0003DD3F01FB8E0F), UINT64_C(0x0003D31C808FC101), + UINT64_C(0x00066F1F09C544BB)}}, + {{UINT64_C(0x0003F8A6A6C266C9), UINT64_C(0x0001000A75D2D728), + UINT64_C(0x000149100C338128), UINT64_C(0x00048CB6ED6D33B4), + UINT64_C(0x00069B7380105C27)}, + {UINT64_C(0x000BBCA015BD1302), UINT64_C(0x000453E91EF883C4), + UINT64_C(0x000087A2C55564F3), UINT64_C(0x00028661DD26634D), + UINT64_C(0x0000504737350EB4)}, + {UINT64_C(0x0003AE59A5B3D5E2), UINT64_C(0x0001545256AA2218), + UINT64_C(0x00064A0782A0BF22), UINT64_C(0x000365507C34B4AA), + UINT64_C(0x00032799B2146183)}}, + {{UINT64_C(0x0003D6DBFB2DFB8B), UINT64_C(0x00022DF9277F3ECF), + UINT64_C(0x0000C42749A48685), UINT64_C(0x0001B0E7B30B31B5), + UINT64_C(0x00075EBF4439768D)}, + {UINT64_C(0x00039F41CE757E5C), UINT64_C(0x0007F8600191731B), + UINT64_C(0x0006B2813E3967F5), UINT64_C(0x00015D1CE8E34A7E), + UINT64_C(0x00072FBC1F6F13D8)}, + {UINT64_C(0x0004F6CF2E028861), UINT64_C(0x00020F869603ABDE), + UINT64_C(0x00042A4AA3F9DAAB), UINT64_C(0x0004A8C0AC2A2950), + UINT64_C(0x0004B1809E50B53C)}}, + {{UINT64_C(0x00062DDA4C355837), UINT64_C(0x0002F17314E1EE8D), + UINT64_C(0x00078EBCB6E2323E), UINT64_C(0x0004543455D081FD), + UINT64_C(0x000791C9DA3066C1)}, + {UINT64_C(0x0007AEA83D07CA0E), UINT64_C(0x000601D3C4BBCA6C), + UINT64_C(0x000438ECD2EB6B9E), UINT64_C(0x0005FE33D87D61C1), + UINT64_C(0x0002C2CD6F6EF8D2)}, + {UINT64_C(0x0002DAEC4B332C81), UINT64_C(0x000600000F256A01), + UINT64_C(0x000647117D50194B), UINT64_C(0x0002A7D5456F092C), + UINT64_C(0x000398A204AC0606)}}, + {{UINT64_C(0x00076419370EC4A0), UINT64_C(0x00012369939759B2), + UINT64_C(0x00023B2960FD0EE0), UINT64_C(0x0007AF17DB515E9B), + UINT64_C(0x0002CC3165DDFC91)}, + {UINT64_C(0x0005EE1C6281CBB1), UINT64_C(0x00060699623D7D65), + UINT64_C(0x0000F3D85C23D284), UINT64_C(0x000018587E7669D1), + UINT64_C(0x000227AAF5D77845)}, + {UINT64_C(0x000153114ADB9FC3), UINT64_C(0x000164F7102A9765), + UINT64_C(0x0006E7834D58BEE3), UINT64_C(0x0006F111F5E5ACB0), + UINT64_C(0x000162CF7ADDFFCA)}}, + {{UINT64_C(0x00055D7C37A14EAC), UINT64_C(0x0005223EE335640C), + UINT64_C(0x000291B30C58F170), UINT64_C(0x00023A4EB047D54F), + UINT64_C(0x0002C3DDA0AF63CB)}, + {UINT64_C(0x000C4C6EF153A948), UINT64_C(0x00004C4867916BA5), + UINT64_C(0x00035BE98811B8E0), UINT64_C(0x0004F3937F720308), + UINT64_C(0x00041AC616B68B67)}, + {UINT64_C(0x000D47D0742C184D), UINT64_C(0x00063D7733EDA001), + UINT64_C(0x000609767EC0E926), UINT64_C(0x0006C3F5D59B36D0), + UINT64_C(0x0004B14DD7938C89)}}, + }}; + +/*- + * 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_256_paramSetA_carry_square(t0, X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(t1, Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(t2, Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(t3, t2, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(X3, X, Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(Y3, X3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(T3, Y3, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(Z3, T3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(Y3, t0, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t2, Y3, t3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t3, t0, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(X3, Z3, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, Z3, t3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Z3, t2, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t2, d, T2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t2, T1, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(X3, X1, Y1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(Y3, X2, Y2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t3, T3, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(T3, t3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(t3, Z1, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(Z3, Z1, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t1, t1, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(X3, T3, Z3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Y3, t3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, T3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t2, d, T2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t2, T1, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t3, Z1, Z2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(X3, X1, Y1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(Y3, X2, Y2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(Z3, T3, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(T3, Z3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(Z3, t3, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(t3, t3, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t1, t1, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(X3, T3, Z3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Y3, t3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, T3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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, t1; + /* 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_256_paramSetA_carry_add(t0, Z1, Y1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t1, Z1, Y1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, S, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Y3, Z1, T3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Z3, X3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t1, t1, T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(t0, T3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_carry_sub(T3, X1, T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(Y3, T3, S); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(X3, T3, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Z3, Y1, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(T3, T3, S); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Y3, Y1, T3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Y3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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[32], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 32) 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(char out[52], const unsigned char in[32]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 51; 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(char out[257], const unsigned char in[32]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 257; 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; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32], + const unsigned char b[32], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[257] = {0}; + char bnaf[257] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 256; 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_256_paramSetA_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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[32], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[52] = {0}; + pt_prj_t Q, lut; + 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[51] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.T, diff, Q.T, + precomp[j].T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 50; 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_256_paramSetA_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + lut.T, diff, lut.T, precomp[j].T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_256_paramSetA_opp(out->X, lut.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_opp(out->T, lut.T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(lut.X, is_neg, + lut.X, out->X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_opp(lut.X, precomp[0].X); + fe_copy(lut.Y, precomp[0].Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.T, scalar[0] & 1, + lut.T, Q.T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.Z, scalar[0] & 1, + lut.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_256_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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[32]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[52] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + 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 = 3; i >= 0; i--) { + for (j = 0; i != 3 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 14; j++) { + if (j * 4 + i > 51) continue; + d = rnaf[j * 4 + 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_256_paramSetA_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + lut.T, diff, lut.T, lut_cmb[j][k].T); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_256_paramSetA_opp(out->X, lut.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_opp(out->T, lut.T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(lut.X, is_neg, + lut.X, out->X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_opp(lut.X, lut_cmb[0][0].X); + fe_copy(lut.Y, lut_cmb[0][0].Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_opp(lut.T, lut_cmb[0][0].T); + point_add_mixed(&R, &Q, &lut); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.X, scalar[0] & 1, R.X, + Q.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.Y, scalar[0] & 1, R.Y, + Q.Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.T, scalar[0] & 1, R.T, + Q.T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[32], unsigned char outy[32], + const unsigned char a[32], const unsigned char b[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_tc26_gost_3410_2012_256_paramSetA_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_256_paramSetA_from_bytes(P.Y, iny); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_tc26_gost_3410_2012_256_paramSetA_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_256_paramSetA_from_bytes(P.Y, iny); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[32] = {0}; + + int + point_mul_two_id_tc26_gost_3410_2012_256_paramSetA( + 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[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_tc26_gost_3410_2012_256_paramSetA(const EC_GROUP *group, + EC_POINT *r, + const EC_POINT *q, + const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_tc26_gost_3410_2012_256_paramSetA(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + 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, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, 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 11 +/* Field elements */ +typedef uint32_t fe_t[LIMB_CNT]; +typedef uint32_t limb_t; + +#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_256_paramSetA_carry_add(c, a, b) \ + fiat_id_tc26_gost_3410_2012_256_paramSetA_add(c, a, b); \ + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry(c, c) +#define fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(c, a, b) \ + fiat_id_tc26_gost_3410_2012_256_paramSetA_sub(c, a, b); \ + fiat_id_tc26_gost_3410_2012_256_paramSetA_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 id_tc26_gost_3410_2012_256_paramSetA 32 '(auto)' '2^256 - 617' */ +/* curve description: id_tc26_gost_3410_2012_256_paramSetA */ +/* machine_wordsize = 32 (from "32") */ +/* requested operations: (all) */ +/* n = 11 (from "(auto)") */ +/* s-c = 2^256 - [(1, 617)] (from "2^256 - 617") */ +/* tight_bounds_multiplier = 1.1 (from "") */ +/* */ +/* Computed values: */ +/* carry_chain = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0, 1] */ +/* eval z = z[0] + (z[1] << 24) + (z[2] << 47) + (z[3] << 70) + (z[4] << 94) + (z[5] << 117) + (z[6] << 140) + (z[7] << 163) + (z[8] << 187) + (z[9] << 210) + (z[10] << 233) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1; +typedef signed char fiat_id_tc26_gost_3410_2012_256_paramSetA_int1; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u24 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^24 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^24⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffff] + * arg3: [0x0 ~> 0xffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u24( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint32_t x1; + uint32_t x2; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT32_C(0xffffff)); + x3 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x1 >> 24); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u24 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^24 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^24⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffff] + * arg3: [0x0 ~> 0xffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u24( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int32_t x1; + fiat_id_tc26_gost_3410_2012_256_paramSetA_int1 x2; + uint32_t x3; + x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_int1)(x1 >> 24); + x3 = (x1 & UINT32_C(0xffffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_addcarryx_u23( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint32_t x1; + uint32_t x2; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT32_C(0x7fffff)); + x3 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x1 >> 23); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_subborrowx_u23( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int32_t x1; + fiat_id_tc26_gost_3410_2012_256_paramSetA_int1 x2; + uint32_t x3; + x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_int1)(x1 >> 23); + x3 = (x1 & UINT32_C(0x7fffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_cmovznz_u32( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, + uint32_t arg2, uint32_t arg3) { + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x1; + uint32_t x2; + uint32_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_int1)(0x0 - x1) & + UINT32_C(0xffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + * arg2: [[0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + * Output Bounds: + * out1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul( + uint32_t out1[11], const uint32_t arg1[11], const uint32_t arg2[11]) { + 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; + uint32_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; + uint32_t x137; + uint64_t x138; + uint64_t x139; + uint32_t x140; + uint64_t x141; + uint64_t x142; + uint32_t x143; + uint64_t x144; + uint64_t x145; + uint32_t x146; + uint64_t x147; + uint64_t x148; + uint32_t x149; + uint64_t x150; + uint64_t x151; + uint32_t x152; + uint64_t x153; + uint64_t x154; + uint32_t x155; + uint64_t x156; + uint64_t x157; + uint32_t x158; + uint64_t x159; + uint64_t x160; + uint32_t x161; + uint64_t x162; + uint32_t x163; + uint32_t x164; + uint64_t x165; + uint64_t x166; + uint32_t x167; + uint32_t x168; + uint32_t x169; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x170; + uint32_t x171; + uint32_t x172; + x1 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[10]))); + x2 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[9]))); + x3 = (UINT16_C(0x269) * (((uint64_t)(arg1[10]) * (arg2[8])) * 0x2)); + x4 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[7]))); + x5 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[6]))); + x6 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[5]))); + x7 = (UINT16_C(0x269) * (((uint64_t)(arg1[10]) * (arg2[4])) * 0x2)); + x8 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[3]))); + x9 = (UINT16_C(0x269) * ((uint64_t)(arg1[10]) * (arg2[2]))); + x10 = (UINT16_C(0x269) * (((uint64_t)(arg1[10]) * (arg2[1])) * 0x2)); + x11 = (UINT16_C(0x269) * ((uint64_t)(arg1[9]) * (arg2[10]))); + x12 = (UINT16_C(0x269) * (((uint64_t)(arg1[9]) * (arg2[9])) * 0x2)); + x13 = (UINT16_C(0x269) * (((uint64_t)(arg1[9]) * (arg2[8])) * 0x2)); + x14 = (UINT16_C(0x269) * ((uint64_t)(arg1[9]) * (arg2[7]))); + x15 = (UINT16_C(0x269) * ((uint64_t)(arg1[9]) * (arg2[6]))); + x16 = (UINT16_C(0x269) * (((uint64_t)(arg1[9]) * (arg2[5])) * 0x2)); + x17 = (UINT16_C(0x269) * (((uint64_t)(arg1[9]) * (arg2[4])) * 0x2)); + x18 = (UINT16_C(0x269) * ((uint64_t)(arg1[9]) * (arg2[3]))); + x19 = (UINT16_C(0x269) * (((uint64_t)(arg1[9]) * (arg2[2])) * 0x2)); + x20 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[10])) * 0x2)); + x21 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[9])) * 0x2)); + x22 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[8])) * 0x2)); + x23 = (UINT16_C(0x269) * ((uint64_t)(arg1[8]) * (arg2[7]))); + x24 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[6])) * 0x2)); + x25 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[5])) * 0x2)); + x26 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[4])) * 0x2)); + x27 = (UINT16_C(0x269) * (((uint64_t)(arg1[8]) * (arg2[3])) * 0x2)); + x28 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[10]))); + x29 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[9]))); + x30 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[8]))); + x31 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[7]))); + x32 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[6]))); + x33 = (UINT16_C(0x269) * ((uint64_t)(arg1[7]) * (arg2[5]))); + x34 = (UINT16_C(0x269) * (((uint64_t)(arg1[7]) * (arg2[4])) * 0x2)); + x35 = (UINT16_C(0x269) * ((uint64_t)(arg1[6]) * (arg2[10]))); + x36 = (UINT16_C(0x269) * ((uint64_t)(arg1[6]) * (arg2[9]))); + x37 = (UINT16_C(0x269) * (((uint64_t)(arg1[6]) * (arg2[8])) * 0x2)); + x38 = (UINT16_C(0x269) * ((uint64_t)(arg1[6]) * (arg2[7]))); + x39 = (UINT16_C(0x269) * ((uint64_t)(arg1[6]) * (arg2[6]))); + x40 = (UINT16_C(0x269) * (((uint64_t)(arg1[6]) * (arg2[5])) * 0x2)); + x41 = (UINT16_C(0x269) * ((uint64_t)(arg1[5]) * (arg2[10]))); + x42 = (UINT16_C(0x269) * (((uint64_t)(arg1[5]) * (arg2[9])) * 0x2)); + x43 = (UINT16_C(0x269) * (((uint64_t)(arg1[5]) * (arg2[8])) * 0x2)); + x44 = (UINT16_C(0x269) * ((uint64_t)(arg1[5]) * (arg2[7]))); + x45 = (UINT16_C(0x269) * (((uint64_t)(arg1[5]) * (arg2[6])) * 0x2)); + x46 = (UINT16_C(0x269) * (((uint64_t)(arg1[4]) * (arg2[10])) * 0x2)); + x47 = (UINT16_C(0x269) * (((uint64_t)(arg1[4]) * (arg2[9])) * 0x2)); + x48 = (UINT16_C(0x269) * (((uint64_t)(arg1[4]) * (arg2[8])) * 0x2)); + x49 = (UINT16_C(0x269) * (((uint64_t)(arg1[4]) * (arg2[7])) * 0x2)); + x50 = (UINT16_C(0x269) * ((uint64_t)(arg1[3]) * (arg2[10]))); + x51 = (UINT16_C(0x269) * ((uint64_t)(arg1[3]) * (arg2[9]))); + x52 = (UINT16_C(0x269) * (((uint64_t)(arg1[3]) * (arg2[8])) * 0x2)); + x53 = (UINT16_C(0x269) * ((uint64_t)(arg1[2]) * (arg2[10]))); + x54 = (UINT16_C(0x269) * (((uint64_t)(arg1[2]) * (arg2[9])) * 0x2)); + x55 = (UINT16_C(0x269) * (((uint64_t)(arg1[1]) * (arg2[10])) * 0x2)); + x56 = ((uint64_t)(arg1[10]) * (arg2[0])); + x57 = ((uint64_t)(arg1[9]) * ((arg2[1]) * 0x2)); + x58 = ((uint64_t)(arg1[9]) * (arg2[0])); + x59 = ((uint64_t)(arg1[8]) * ((arg2[2]) * 0x2)); + x60 = ((uint64_t)(arg1[8]) * ((arg2[1]) * 0x2)); + x61 = ((uint64_t)(arg1[8]) * (arg2[0])); + x62 = ((uint64_t)(arg1[7]) * (arg2[3])); + x63 = ((uint64_t)(arg1[7]) * (arg2[2])); + x64 = ((uint64_t)(arg1[7]) * (arg2[1])); + x65 = ((uint64_t)(arg1[7]) * (arg2[0])); + x66 = ((uint64_t)(arg1[6]) * ((arg2[4]) * 0x2)); + x67 = ((uint64_t)(arg1[6]) * (arg2[3])); + x68 = ((uint64_t)(arg1[6]) * (arg2[2])); + x69 = ((uint64_t)(arg1[6]) * ((arg2[1]) * 0x2)); + x70 = ((uint64_t)(arg1[6]) * (arg2[0])); + x71 = ((uint64_t)(arg1[5]) * ((arg2[5]) * 0x2)); + x72 = ((uint64_t)(arg1[5]) * ((arg2[4]) * 0x2)); + x73 = ((uint64_t)(arg1[5]) * (arg2[3])); + x74 = ((uint64_t)(arg1[5]) * ((arg2[2]) * 0x2)); + x75 = ((uint64_t)(arg1[5]) * ((arg2[1]) * 0x2)); + x76 = ((uint64_t)(arg1[5]) * (arg2[0])); + x77 = ((uint64_t)(arg1[4]) * ((arg2[6]) * 0x2)); + x78 = ((uint64_t)(arg1[4]) * ((arg2[5]) * 0x2)); + x79 = ((uint64_t)(arg1[4]) * ((arg2[4]) * 0x2)); + x80 = ((uint64_t)(arg1[4]) * ((arg2[3]) * 0x2)); + x81 = ((uint64_t)(arg1[4]) * ((arg2[2]) * 0x2)); + x82 = ((uint64_t)(arg1[4]) * ((arg2[1]) * 0x2)); + x83 = ((uint64_t)(arg1[4]) * (arg2[0])); + x84 = ((uint64_t)(arg1[3]) * (arg2[7])); + x85 = ((uint64_t)(arg1[3]) * (arg2[6])); + x86 = ((uint64_t)(arg1[3]) * (arg2[5])); + x87 = ((uint64_t)(arg1[3]) * ((arg2[4]) * 0x2)); + x88 = ((uint64_t)(arg1[3]) * (arg2[3])); + x89 = ((uint64_t)(arg1[3]) * (arg2[2])); + x90 = ((uint64_t)(arg1[3]) * (arg2[1])); + x91 = ((uint64_t)(arg1[3]) * (arg2[0])); + x92 = ((uint64_t)(arg1[2]) * ((arg2[8]) * 0x2)); + x93 = ((uint64_t)(arg1[2]) * (arg2[7])); + x94 = ((uint64_t)(arg1[2]) * (arg2[6])); + x95 = ((uint64_t)(arg1[2]) * ((arg2[5]) * 0x2)); + x96 = ((uint64_t)(arg1[2]) * ((arg2[4]) * 0x2)); + x97 = ((uint64_t)(arg1[2]) * (arg2[3])); + x98 = ((uint64_t)(arg1[2]) * (arg2[2])); + x99 = ((uint64_t)(arg1[2]) * ((arg2[1]) * 0x2)); + x100 = ((uint64_t)(arg1[2]) * (arg2[0])); + x101 = ((uint64_t)(arg1[1]) * ((arg2[9]) * 0x2)); + x102 = ((uint64_t)(arg1[1]) * ((arg2[8]) * 0x2)); + x103 = ((uint64_t)(arg1[1]) * (arg2[7])); + x104 = ((uint64_t)(arg1[1]) * ((arg2[6]) * 0x2)); + x105 = ((uint64_t)(arg1[1]) * ((arg2[5]) * 0x2)); + x106 = ((uint64_t)(arg1[1]) * ((arg2[4]) * 0x2)); + x107 = ((uint64_t)(arg1[1]) * (arg2[3])); + x108 = ((uint64_t)(arg1[1]) * ((arg2[2]) * 0x2)); + x109 = ((uint64_t)(arg1[1]) * ((arg2[1]) * 0x2)); + x110 = ((uint64_t)(arg1[1]) * (arg2[0])); + x111 = ((uint64_t)(arg1[0]) * (arg2[10])); + x112 = ((uint64_t)(arg1[0]) * (arg2[9])); + x113 = ((uint64_t)(arg1[0]) * (arg2[8])); + x114 = ((uint64_t)(arg1[0]) * (arg2[7])); + x115 = ((uint64_t)(arg1[0]) * (arg2[6])); + x116 = ((uint64_t)(arg1[0]) * (arg2[5])); + x117 = ((uint64_t)(arg1[0]) * (arg2[4])); + x118 = ((uint64_t)(arg1[0]) * (arg2[3])); + x119 = ((uint64_t)(arg1[0]) * (arg2[2])); + x120 = ((uint64_t)(arg1[0]) * (arg2[1])); + x121 = ((uint64_t)(arg1[0]) * (arg2[0])); + x122 = + (x121 + + (x55 + + (x54 + (x52 + (x49 + (x45 + (x40 + (x34 + (x27 + (x19 + x10)))))))))); + x123 = (x122 >> 24); + x124 = (uint32_t)(x122 & UINT32_C(0xffffff)); + x125 = + (x111 + + (x101 + + (x92 + (x84 + (x77 + (x71 + (x66 + (x62 + (x59 + (x57 + x56)))))))))); + x126 = + (x112 + + (x102 + + (x93 + (x85 + (x78 + (x72 + (x67 + (x63 + (x60 + (x58 + x1)))))))))); + x127 = + (x113 + + (x103 + + (x94 + (x86 + (x79 + (x73 + (x68 + (x64 + (x61 + (x11 + x2)))))))))); + x128 = + (x114 + + (x104 + + (x95 + (x87 + (x80 + (x74 + (x69 + (x65 + (x20 + (x12 + x3)))))))))); + x129 = + (x115 + + (x105 + + (x96 + (x88 + (x81 + (x75 + (x70 + (x28 + (x21 + (x13 + x4)))))))))); + x130 = + (x116 + + (x106 + + (x97 + (x89 + (x82 + (x76 + (x35 + (x29 + (x22 + (x14 + x5)))))))))); + x131 = + (x117 + + (x107 + + (x98 + (x90 + (x83 + (x41 + (x36 + (x30 + (x23 + (x15 + x6)))))))))); + x132 = + (x118 + + (x108 + + (x99 + (x91 + (x46 + (x42 + (x37 + (x31 + (x24 + (x16 + x7)))))))))); + x133 = + (x119 + + (x109 + + (x100 + (x50 + (x47 + (x43 + (x38 + (x32 + (x25 + (x17 + x8)))))))))); + x134 = + (x120 + + (x110 + + (x53 + (x51 + (x48 + (x44 + (x39 + (x33 + (x26 + (x18 + x9)))))))))); + x135 = (x123 + x134); + x136 = (x135 >> 23); + x137 = (uint32_t)(x135 & UINT32_C(0x7fffff)); + x138 = (x136 + x133); + x139 = (x138 >> 23); + x140 = (uint32_t)(x138 & UINT32_C(0x7fffff)); + x141 = (x139 + x132); + x142 = (x141 >> 24); + x143 = (uint32_t)(x141 & UINT32_C(0xffffff)); + x144 = (x142 + x131); + x145 = (x144 >> 23); + x146 = (uint32_t)(x144 & UINT32_C(0x7fffff)); + x147 = (x145 + x130); + x148 = (x147 >> 23); + x149 = (uint32_t)(x147 & UINT32_C(0x7fffff)); + x150 = (x148 + x129); + x151 = (x150 >> 23); + x152 = (uint32_t)(x150 & UINT32_C(0x7fffff)); + x153 = (x151 + x128); + x154 = (x153 >> 24); + x155 = (uint32_t)(x153 & UINT32_C(0xffffff)); + x156 = (x154 + x127); + x157 = (x156 >> 23); + x158 = (uint32_t)(x156 & UINT32_C(0x7fffff)); + x159 = (x157 + x126); + x160 = (x159 >> 23); + x161 = (uint32_t)(x159 & UINT32_C(0x7fffff)); + x162 = (x160 + x125); + x163 = (uint32_t)(x162 >> 23); + x164 = (uint32_t)(x162 & UINT32_C(0x7fffff)); + x165 = ((uint64_t)UINT16_C(0x269) * x163); + x166 = (x124 + x165); + x167 = (uint32_t)(x166 >> 24); + x168 = (uint32_t)(x166 & UINT32_C(0xffffff)); + x169 = (x167 + x137); + x170 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x169 >> 23); + x171 = (x169 & UINT32_C(0x7fffff)); + x172 = (x170 + x140); + out1[0] = x168; + out1[1] = x171; + out1[2] = x172; + out1[3] = x143; + out1[4] = x146; + out1[5] = x149; + out1[6] = x152; + out1[7] = x155; + out1[8] = x158; + out1[9] = x161; + out1[10] = x164; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + * Output Bounds: + * out1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square( + uint32_t out1[11], const uint32_t arg1[11]) { + 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; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_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; + uint32_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; + uint32_t x102; + uint64_t x103; + uint64_t x104; + uint32_t x105; + uint64_t x106; + uint64_t x107; + uint32_t x108; + uint64_t x109; + uint64_t x110; + uint32_t x111; + uint64_t x112; + uint64_t x113; + uint32_t x114; + uint64_t x115; + uint64_t x116; + uint32_t x117; + uint64_t x118; + uint64_t x119; + uint32_t x120; + uint64_t x121; + uint64_t x122; + uint32_t x123; + uint64_t x124; + uint64_t x125; + uint32_t x126; + uint64_t x127; + uint32_t x128; + uint32_t x129; + uint64_t x130; + uint64_t x131; + uint32_t x132; + uint32_t x133; + uint32_t x134; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x135; + uint32_t x136; + uint32_t x137; + x1 = ((uint64_t)(arg1[10]) * UINT16_C(0x269)); + x2 = (x1 * 0x2); + x3 = ((arg1[10]) * 0x2); + x4 = ((uint64_t)(arg1[9]) * UINT16_C(0x269)); + x5 = (x4 * 0x2); + x6 = ((arg1[9]) * 0x2); + x7 = ((uint64_t)(arg1[8]) * UINT16_C(0x269)); + x8 = (x7 * 0x2); + x9 = ((arg1[8]) * 0x2); + x10 = ((uint64_t)(arg1[7]) * UINT16_C(0x269)); + x11 = (x10 * 0x2); + x12 = ((arg1[7]) * 0x2); + x13 = ((uint64_t)(arg1[6]) * UINT16_C(0x269)); + x14 = (x13 * 0x2); + x15 = ((arg1[6]) * 0x2); + x16 = ((arg1[5]) * 0x2); + x17 = ((arg1[4]) * 0x2); + x18 = ((arg1[3]) * 0x2); + x19 = ((arg1[2]) * 0x2); + x20 = ((arg1[1]) * 0x2); + x21 = ((arg1[10]) * x1); + x22 = ((arg1[9]) * x2); + x23 = ((arg1[9]) * (x4 * 0x2)); + x24 = ((arg1[8]) * (x2 * 0x2)); + x25 = ((arg1[8]) * (x5 * 0x2)); + x26 = ((arg1[8]) * (x7 * 0x2)); + x27 = ((arg1[7]) * x2); + x28 = ((arg1[7]) * x5); + x29 = ((arg1[7]) * x8); + x30 = ((arg1[7]) * x10); + x31 = ((arg1[6]) * x2); + x32 = ((arg1[6]) * x5); + x33 = ((arg1[6]) * (x8 * 0x2)); + x34 = ((arg1[6]) * x11); + x35 = ((arg1[6]) * x13); + x36 = ((arg1[5]) * x2); + x37 = ((arg1[5]) * (x5 * 0x2)); + x38 = ((arg1[5]) * (x8 * 0x2)); + x39 = ((arg1[5]) * x11); + x40 = ((arg1[5]) * (x14 * 0x2)); + x41 = ((uint64_t)(arg1[5]) * ((arg1[5]) * 0x2)); + x42 = ((arg1[4]) * (x2 * 0x2)); + x43 = ((arg1[4]) * (x5 * 0x2)); + x44 = ((arg1[4]) * (x8 * 0x2)); + x45 = ((arg1[4]) * (x11 * 0x2)); + x46 = ((uint64_t)(arg1[4]) * (x15 * 0x2)); + x47 = ((uint64_t)(arg1[4]) * (x16 * 0x2)); + x48 = ((uint64_t)(arg1[4]) * ((arg1[4]) * 0x2)); + x49 = ((arg1[3]) * x2); + x50 = ((arg1[3]) * x5); + x51 = ((arg1[3]) * (x8 * 0x2)); + x52 = ((uint64_t)(arg1[3]) * x12); + x53 = ((uint64_t)(arg1[3]) * x15); + x54 = ((uint64_t)(arg1[3]) * x16); + x55 = ((uint64_t)(arg1[3]) * (x17 * 0x2)); + x56 = ((uint64_t)(arg1[3]) * (arg1[3])); + x57 = ((arg1[2]) * x2); + x58 = ((arg1[2]) * (x5 * 0x2)); + x59 = ((uint64_t)(arg1[2]) * (x9 * 0x2)); + x60 = ((uint64_t)(arg1[2]) * x12); + x61 = ((uint64_t)(arg1[2]) * x15); + x62 = ((uint64_t)(arg1[2]) * (x16 * 0x2)); + x63 = ((uint64_t)(arg1[2]) * (x17 * 0x2)); + x64 = ((uint64_t)(arg1[2]) * x18); + x65 = ((uint64_t)(arg1[2]) * (arg1[2])); + x66 = ((arg1[1]) * (x2 * 0x2)); + x67 = ((uint64_t)(arg1[1]) * (x6 * 0x2)); + x68 = ((uint64_t)(arg1[1]) * (x9 * 0x2)); + x69 = ((uint64_t)(arg1[1]) * x12); + x70 = ((uint64_t)(arg1[1]) * (x15 * 0x2)); + x71 = ((uint64_t)(arg1[1]) * (x16 * 0x2)); + x72 = ((uint64_t)(arg1[1]) * (x17 * 0x2)); + x73 = ((uint64_t)(arg1[1]) * x18); + x74 = ((uint64_t)(arg1[1]) * (x19 * 0x2)); + x75 = ((uint64_t)(arg1[1]) * ((arg1[1]) * 0x2)); + x76 = ((uint64_t)(arg1[0]) * x3); + x77 = ((uint64_t)(arg1[0]) * x6); + x78 = ((uint64_t)(arg1[0]) * x9); + x79 = ((uint64_t)(arg1[0]) * x12); + x80 = ((uint64_t)(arg1[0]) * x15); + x81 = ((uint64_t)(arg1[0]) * x16); + x82 = ((uint64_t)(arg1[0]) * x17); + x83 = ((uint64_t)(arg1[0]) * x18); + x84 = ((uint64_t)(arg1[0]) * x19); + x85 = ((uint64_t)(arg1[0]) * x20); + x86 = ((uint64_t)(arg1[0]) * (arg1[0])); + x87 = (x86 + (x66 + (x58 + (x51 + (x45 + x40))))); + x88 = (x87 >> 24); + x89 = (uint32_t)(x87 & UINT32_C(0xffffff)); + x90 = (x76 + (x67 + (x59 + (x52 + (x46 + x41))))); + x91 = (x77 + (x68 + (x60 + (x53 + (x47 + x21))))); + x92 = (x78 + (x69 + (x61 + (x54 + (x48 + x22))))); + x93 = (x79 + (x70 + (x62 + (x55 + (x24 + x23))))); + x94 = (x80 + (x71 + (x63 + (x56 + (x27 + x25))))); + x95 = (x81 + (x72 + (x64 + (x31 + (x28 + x26))))); + x96 = (x82 + (x73 + (x65 + (x36 + (x32 + x29))))); + x97 = (x83 + (x74 + (x42 + (x37 + (x33 + x30))))); + x98 = (x84 + (x75 + (x49 + (x43 + (x38 + x34))))); + x99 = (x85 + (x57 + (x50 + (x44 + (x39 + x35))))); + x100 = (x88 + x99); + x101 = (x100 >> 23); + x102 = (uint32_t)(x100 & UINT32_C(0x7fffff)); + x103 = (x101 + x98); + x104 = (x103 >> 23); + x105 = (uint32_t)(x103 & UINT32_C(0x7fffff)); + x106 = (x104 + x97); + x107 = (x106 >> 24); + x108 = (uint32_t)(x106 & UINT32_C(0xffffff)); + x109 = (x107 + x96); + x110 = (x109 >> 23); + x111 = (uint32_t)(x109 & UINT32_C(0x7fffff)); + x112 = (x110 + x95); + x113 = (x112 >> 23); + x114 = (uint32_t)(x112 & UINT32_C(0x7fffff)); + x115 = (x113 + x94); + x116 = (x115 >> 23); + x117 = (uint32_t)(x115 & UINT32_C(0x7fffff)); + x118 = (x116 + x93); + x119 = (x118 >> 24); + x120 = (uint32_t)(x118 & UINT32_C(0xffffff)); + x121 = (x119 + x92); + x122 = (x121 >> 23); + x123 = (uint32_t)(x121 & UINT32_C(0x7fffff)); + x124 = (x122 + x91); + x125 = (x124 >> 23); + x126 = (uint32_t)(x124 & UINT32_C(0x7fffff)); + x127 = (x125 + x90); + x128 = (uint32_t)(x127 >> 23); + x129 = (uint32_t)(x127 & UINT32_C(0x7fffff)); + x130 = ((uint64_t)UINT16_C(0x269) * x128); + x131 = (x89 + x130); + x132 = (uint32_t)(x131 >> 24); + x133 = (uint32_t)(x131 & UINT32_C(0xffffff)); + x134 = (x132 + x102); + x135 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x134 >> 23); + x136 = (x134 & UINT32_C(0x7fffff)); + x137 = (x135 + x105); + out1[0] = x133; + out1[1] = x136; + out1[2] = x137; + out1[3] = x108; + out1[4] = x111; + out1[5] = x114; + out1[6] = x117; + out1[7] = x120; + out1[8] = x123; + out1[9] = x126; + out1[10] = x129; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_carry reduces a field element. + * Postconditions: + * eval out1 mod m = eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + * Output Bounds: + * out1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_carry( + uint32_t out1[11], const uint32_t arg1[11]) { + 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; + x1 = (arg1[0]); + x2 = ((x1 >> 24) + (arg1[1])); + x3 = ((x2 >> 23) + (arg1[2])); + x4 = ((x3 >> 23) + (arg1[3])); + x5 = ((x4 >> 24) + (arg1[4])); + x6 = ((x5 >> 23) + (arg1[5])); + x7 = ((x6 >> 23) + (arg1[6])); + x8 = ((x7 >> 23) + (arg1[7])); + x9 = ((x8 >> 24) + (arg1[8])); + x10 = ((x9 >> 23) + (arg1[9])); + x11 = ((x10 >> 23) + (arg1[10])); + x12 = ((x1 & UINT32_C(0xffffff)) + (UINT16_C(0x269) * (x11 >> 23))); + x13 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x12 >> 24) + + (x2 & UINT32_C(0x7fffff))); + x14 = (x12 & UINT32_C(0xffffff)); + x15 = (x13 & UINT32_C(0x7fffff)); + x16 = ((fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x13 >> 23) + + (x3 & UINT32_C(0x7fffff))); + x17 = (x4 & UINT32_C(0xffffff)); + x18 = (x5 & UINT32_C(0x7fffff)); + x19 = (x6 & UINT32_C(0x7fffff)); + x20 = (x7 & UINT32_C(0x7fffff)); + x21 = (x8 & UINT32_C(0xffffff)); + x22 = (x9 & UINT32_C(0x7fffff)); + x23 = (x10 & UINT32_C(0x7fffff)); + x24 = (x11 & UINT32_C(0x7fffff)); + out1[0] = x14; + out1[1] = x15; + out1[2] = x16; + out1[3] = x17; + out1[4] = x18; + out1[5] = x19; + out1[6] = x20; + out1[7] = x21; + out1[8] = x22; + out1[9] = x23; + out1[10] = x24; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_add adds two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 + eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * arg2: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_add( + uint32_t out1[11], const uint32_t arg1[11], const uint32_t arg2[11]) { + 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; + 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])); + 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; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_sub subtracts two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 - eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * arg2: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_sub( + uint32_t out1[11], const uint32_t arg1[11], const uint32_t arg2[11]) { + 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; + x1 = ((UINT32_C(0x1fffb2e) + (arg1[0])) - (arg2[0])); + x2 = ((UINT32_C(0xfffffe) + (arg1[1])) - (arg2[1])); + x3 = ((UINT32_C(0xfffffe) + (arg1[2])) - (arg2[2])); + x4 = ((UINT32_C(0x1fffffe) + (arg1[3])) - (arg2[3])); + x5 = ((UINT32_C(0xfffffe) + (arg1[4])) - (arg2[4])); + x6 = ((UINT32_C(0xfffffe) + (arg1[5])) - (arg2[5])); + x7 = ((UINT32_C(0xfffffe) + (arg1[6])) - (arg2[6])); + x8 = ((UINT32_C(0x1fffffe) + (arg1[7])) - (arg2[7])); + x9 = ((UINT32_C(0xfffffe) + (arg1[8])) - (arg2[8])); + x10 = ((UINT32_C(0xfffffe) + (arg1[9])) - (arg2[9])); + x11 = ((UINT32_C(0xfffffe) + (arg1[10])) - (arg2[10])); + 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; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_opp negates a field element. + * Postconditions: + * eval out1 mod m = -eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x34ccccb], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664], [0x0 ~> 0x1a66664]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_opp( + uint32_t out1[11], const uint32_t arg1[11]) { + 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; + x1 = (UINT32_C(0x1fffb2e) - (arg1[0])); + x2 = (UINT32_C(0xfffffe) - (arg1[1])); + x3 = (UINT32_C(0xfffffe) - (arg1[2])); + x4 = (UINT32_C(0x1fffffe) - (arg1[3])); + x5 = (UINT32_C(0xfffffe) - (arg1[4])); + x6 = (UINT32_C(0xfffffe) - (arg1[5])); + x7 = (UINT32_C(0xfffffe) - (arg1[6])); + x8 = (UINT32_C(0x1fffffe) - (arg1[7])); + x9 = (UINT32_C(0xfffffe) - (arg1[8])); + x10 = (UINT32_C(0xfffffe) - (arg1[9])); + x11 = (UINT32_C(0xfffffe) - (arg1[10])); + 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; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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]] + * arg3: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + uint32_t out1[11], fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 arg1, + const uint32_t arg2[11], const uint32_t arg3[11]) { + 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; + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x1, arg1, (arg2[0]), + (arg3[0])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x2, arg1, (arg2[1]), + (arg3[1])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x3, arg1, (arg2[2]), + (arg3[2])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x4, arg1, (arg2[3]), + (arg3[3])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x5, arg1, (arg2[4]), + (arg3[4])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x6, arg1, (arg2[5]), + (arg3[5])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x7, arg1, (arg2[6]), + (arg3[6])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x8, arg1, (arg2[7]), + (arg3[7])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x9, arg1, (arg2[8]), + (arg3[8])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x10, arg1, (arg2[9]), + (arg3[9])); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32( + &x11, arg1, (arg2[10]), (arg3[10])); + 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; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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..31] + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + * 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]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes( + uint8_t out1[32], const uint32_t arg1[11]) { + uint32_t x1; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x2; + uint32_t x3; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x4; + uint32_t x5; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x6; + uint32_t x7; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x8; + uint32_t x9; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x10; + uint32_t x11; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x12; + uint32_t x13; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x14; + uint32_t x15; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x16; + uint32_t x17; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x18; + uint32_t x19; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x20; + uint32_t x21; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x22; + uint32_t x23; + uint32_t x24; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x25; + uint32_t x26; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x27; + uint32_t x28; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x29; + uint32_t x30; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x31; + uint32_t x32; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x33; + uint32_t x34; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x35; + uint32_t x36; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x37; + uint32_t x38; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x39; + uint32_t x40; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x41; + uint32_t x42; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x43; + uint32_t x44; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x45; + uint32_t x46; + uint32_t x47; + uint32_t x48; + uint32_t x49; + uint32_t x50; + uint32_t x51; + uint32_t x52; + uint32_t x53; + uint32_t x54; + uint32_t x55; + uint8_t x56; + uint8_t x57; + uint8_t x58; + uint8_t x59; + uint32_t x60; + uint8_t x61; + uint8_t x62; + uint8_t x63; + uint32_t x64; + uint32_t x65; + uint8_t x66; + uint32_t x67; + uint8_t x68; + uint8_t x69; + uint8_t x70; + uint32_t x71; + uint32_t x72; + uint8_t x73; + uint32_t x74; + uint8_t x75; + uint8_t x76; + uint8_t x77; + uint32_t x78; + uint32_t x79; + uint8_t x80; + uint32_t x81; + uint8_t x82; + uint8_t x83; + uint8_t x84; + uint32_t x85; + uint32_t x86; + uint8_t x87; + uint32_t x88; + uint8_t x89; + uint8_t x90; + uint8_t x91; + uint32_t x92; + uint32_t x93; + uint8_t x94; + uint32_t x95; + uint8_t x96; + uint8_t x97; + uint8_t x98; + uint32_t x99; + uint32_t x100; + uint8_t x101; + uint32_t x102; + uint8_t x103; + uint8_t x104; + uint8_t x105; + uint32_t x106; + uint32_t x107; + uint8_t x108; + uint32_t x109; + uint8_t x110; + uint8_t x111; + uint8_t x112; + uint32_t x113; + uint32_t x114; + uint8_t x115; + uint32_t x116; + uint8_t x117; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x118; + uint8_t x119; + uint32_t x120; + uint32_t x121; + uint8_t x122; + uint8_t x123; + uint8_t x124; + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u24( + &x1, &x2, 0x0, (arg1[0]), UINT32_C(0xfffd97)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u23( + &x3, &x4, x2, (arg1[1]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u23( + &x5, &x6, x4, (arg1[2]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u24( + &x7, &x8, x6, (arg1[3]), UINT32_C(0xffffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u23( + &x9, &x10, x8, (arg1[4]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u23( + &x11, &x12, x10, (arg1[5]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u23( + &x13, &x14, x12, (arg1[6]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u24( + &x15, &x16, x14, (arg1[7]), UINT32_C(0xffffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u23( + &x17, &x18, x16, (arg1[8]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u23( + &x19, &x20, x18, (arg1[9]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_subborrowx_u23( + &x21, &x22, x20, (arg1[10]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_cmovznz_u32(&x23, x22, 0x0, + UINT32_C(0xffffffff)); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u24( + &x24, &x25, 0x0, x1, (x23 & UINT32_C(0xfffd97))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u23( + &x26, &x27, x25, x3, (x23 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u23( + &x28, &x29, x27, x5, (x23 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u24( + &x30, &x31, x29, x7, (x23 & UINT32_C(0xffffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u23( + &x32, &x33, x31, x9, (x23 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u23( + &x34, &x35, x33, x11, (x23 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u23( + &x36, &x37, x35, x13, (x23 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u24( + &x38, &x39, x37, x15, (x23 & UINT32_C(0xffffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u23( + &x40, &x41, x39, x17, (x23 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u23( + &x42, &x43, x41, x19, (x23 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_256_paramSetA_addcarryx_u23( + &x44, &x45, x43, x21, (x23 & UINT32_C(0x7fffff))); + x46 = (x44 * (uint32_t)0x2); + x47 = (x42 << 2); + x48 = (x40 << 3); + x49 = (x38 << 3); + x50 = (x36 << 4); + x51 = (x34 << 5); + x52 = (x32 << 6); + x53 = (x30 << 6); + x54 = (x28 << 7); + x55 = (x24 >> 8); + x56 = (uint8_t)(x24 & UINT8_C(0xff)); + x57 = (uint8_t)(x55 >> 8); + x58 = (uint8_t)(x55 & UINT8_C(0xff)); + x59 = (uint8_t)(x57 & UINT8_C(0xff)); + x60 = (x26 >> 8); + x61 = (uint8_t)(x26 & UINT8_C(0xff)); + x62 = (uint8_t)(x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + x64 = (x62 + x54); + x65 = (x64 >> 8); + x66 = (uint8_t)(x64 & UINT8_C(0xff)); + x67 = (x65 >> 8); + x68 = (uint8_t)(x65 & UINT8_C(0xff)); + x69 = (uint8_t)(x67 >> 8); + x70 = (uint8_t)(x67 & UINT8_C(0xff)); + x71 = (x69 + x53); + x72 = (x71 >> 8); + x73 = (uint8_t)(x71 & UINT8_C(0xff)); + x74 = (x72 >> 8); + x75 = (uint8_t)(x72 & UINT8_C(0xff)); + x76 = (uint8_t)(x74 >> 8); + x77 = (uint8_t)(x74 & UINT8_C(0xff)); + x78 = (x76 + x52); + x79 = (x78 >> 8); + x80 = (uint8_t)(x78 & UINT8_C(0xff)); + x81 = (x79 >> 8); + x82 = (uint8_t)(x79 & UINT8_C(0xff)); + x83 = (uint8_t)(x81 >> 8); + x84 = (uint8_t)(x81 & UINT8_C(0xff)); + x85 = (x83 + x51); + x86 = (x85 >> 8); + x87 = (uint8_t)(x85 & UINT8_C(0xff)); + x88 = (x86 >> 8); + x89 = (uint8_t)(x86 & UINT8_C(0xff)); + x90 = (uint8_t)(x88 >> 8); + x91 = (uint8_t)(x88 & UINT8_C(0xff)); + x92 = (x90 + x50); + x93 = (x92 >> 8); + x94 = (uint8_t)(x92 & UINT8_C(0xff)); + x95 = (x93 >> 8); + x96 = (uint8_t)(x93 & UINT8_C(0xff)); + x97 = (uint8_t)(x95 >> 8); + x98 = (uint8_t)(x95 & UINT8_C(0xff)); + x99 = (x97 + x49); + x100 = (x99 >> 8); + x101 = (uint8_t)(x99 & UINT8_C(0xff)); + x102 = (x100 >> 8); + x103 = (uint8_t)(x100 & UINT8_C(0xff)); + x104 = (uint8_t)(x102 >> 8); + x105 = (uint8_t)(x102 & UINT8_C(0xff)); + x106 = (x104 + x48); + x107 = (x106 >> 8); + x108 = (uint8_t)(x106 & UINT8_C(0xff)); + x109 = (x107 >> 8); + x110 = (uint8_t)(x107 & UINT8_C(0xff)); + x111 = (uint8_t)(x109 >> 8); + x112 = (uint8_t)(x109 & UINT8_C(0xff)); + x113 = (x111 + x47); + x114 = (x113 >> 8); + x115 = (uint8_t)(x113 & UINT8_C(0xff)); + x116 = (x114 >> 8); + x117 = (uint8_t)(x114 & UINT8_C(0xff)); + x118 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x116 >> 8); + x119 = (uint8_t)(x116 & UINT8_C(0xff)); + x120 = (x118 + x46); + x121 = (x120 >> 8); + x122 = (uint8_t)(x120 & UINT8_C(0xff)); + x123 = (uint8_t)(x121 >> 8); + x124 = (uint8_t)(x121 & UINT8_C(0xff)); + out1[0] = x56; + out1[1] = x58; + out1[2] = x59; + out1[3] = x61; + out1[4] = x63; + out1[5] = x66; + out1[6] = x68; + out1[7] = x70; + out1[8] = x73; + out1[9] = x75; + out1[10] = x77; + out1[11] = x80; + out1[12] = x82; + out1[13] = x84; + out1[14] = x87; + out1[15] = x89; + out1[16] = x91; + out1[17] = x94; + out1[18] = x96; + out1[19] = x98; + out1[20] = x101; + out1[21] = x103; + out1[22] = x105; + out1[23] = x108; + out1[24] = x110; + out1[25] = x112; + out1[26] = x115; + out1[27] = x117; + out1[28] = x119; + out1[29] = x122; + out1[30] = x124; + out1[31] = x123; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_256_paramSetA_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]] + * Output Bounds: + * out1: [[0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x1199999], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc], [0x0 ~> 0x8ccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_from_bytes( + uint32_t out1[11], const uint8_t arg1[32]) { + 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; + uint8_t x29; + uint32_t x30; + uint32_t x31; + uint8_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; + fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1 x45; + uint32_t x46; + uint32_t x47; + uint8_t x48; + uint32_t x49; + uint32_t x50; + uint8_t x51; + uint32_t x52; + uint32_t x53; + uint8_t x54; + uint32_t x55; + uint32_t x56; + uint8_t x57; + uint32_t x58; + uint32_t x59; + uint8_t x60; + uint32_t x61; + uint32_t x62; + uint8_t x63; + uint32_t x64; + uint32_t x65; + uint8_t x66; + uint32_t x67; + uint32_t x68; + uint8_t x69; + uint32_t x70; + uint32_t x71; + x1 = ((uint32_t)(arg1[31]) << 15); + x2 = ((uint32_t)(arg1[30]) << 7); + x3 = ((uint32_t)(arg1[29]) << 22); + x4 = ((uint32_t)(arg1[28]) << 14); + x5 = ((uint32_t)(arg1[27]) << 6); + x6 = ((uint32_t)(arg1[26]) << 21); + x7 = ((uint32_t)(arg1[25]) << 13); + x8 = ((uint32_t)(arg1[24]) << 5); + x9 = ((uint32_t)(arg1[23]) << 21); + x10 = ((uint32_t)(arg1[22]) << 13); + x11 = ((uint32_t)(arg1[21]) << 5); + x12 = ((uint32_t)(arg1[20]) << 20); + x13 = ((uint32_t)(arg1[19]) << 12); + x14 = ((uint32_t)(arg1[18]) << 4); + x15 = ((uint32_t)(arg1[17]) << 19); + x16 = ((uint32_t)(arg1[16]) << 11); + x17 = ((uint32_t)(arg1[15]) << 3); + x18 = ((uint32_t)(arg1[14]) << 18); + x19 = ((uint32_t)(arg1[13]) << 10); + x20 = ((uint32_t)(arg1[12]) << 2); + x21 = ((uint32_t)(arg1[11]) << 18); + x22 = ((uint32_t)(arg1[10]) << 10); + x23 = ((uint32_t)(arg1[9]) << 2); + x24 = ((uint32_t)(arg1[8]) << 17); + x25 = ((uint32_t)(arg1[7]) << 9); + x26 = ((uint32_t)(arg1[6]) * 0x2); + x27 = ((uint32_t)(arg1[5]) << 16); + x28 = ((uint32_t)(arg1[4]) << 8); + x29 = (arg1[3]); + x30 = ((uint32_t)(arg1[2]) << 16); + x31 = ((uint32_t)(arg1[1]) << 8); + x32 = (arg1[0]); + x33 = (x32 + (x31 + x30)); + x34 = (x33 & UINT32_C(0xffffff)); + x35 = (x2 + x1); + x36 = (x5 + (x4 + x3)); + x37 = (x8 + (x7 + x6)); + x38 = (x11 + (x10 + x9)); + x39 = (x14 + (x13 + x12)); + x40 = (x17 + (x16 + x15)); + x41 = (x20 + (x19 + x18)); + x42 = (x23 + (x22 + x21)); + x43 = (x26 + (x25 + x24)); + x44 = (x29 + (x28 + x27)); + x45 = (fiat_id_tc26_gost_3410_2012_256_paramSetA_uint1)(x44 >> 23); + x46 = (x44 & UINT32_C(0x7fffff)); + x47 = (x45 + x43); + x48 = (uint8_t)(x47 >> 23); + x49 = (x47 & UINT32_C(0x7fffff)); + x50 = (x48 + x42); + x51 = (uint8_t)(x50 >> 24); + x52 = (x50 & UINT32_C(0xffffff)); + x53 = (x51 + x41); + x54 = (uint8_t)(x53 >> 23); + x55 = (x53 & UINT32_C(0x7fffff)); + x56 = (x54 + x40); + x57 = (uint8_t)(x56 >> 23); + x58 = (x56 & UINT32_C(0x7fffff)); + x59 = (x57 + x39); + x60 = (uint8_t)(x59 >> 23); + x61 = (x59 & UINT32_C(0x7fffff)); + x62 = (x60 + x38); + x63 = (uint8_t)(x62 >> 24); + x64 = (x62 & UINT32_C(0xffffff)); + x65 = (x63 + x37); + x66 = (uint8_t)(x65 >> 23); + x67 = (x65 & UINT32_C(0x7fffff)); + x68 = (x66 + x36); + x69 = (uint8_t)(x68 >> 23); + x70 = (x68 & UINT32_C(0x7fffff)); + x71 = (x69 + x35); + out1[0] = x34; + out1[1] = x46; + out1[2] = x49; + out1[3] = x52; + out1[4] = x55; + out1[5] = x58; + out1[6] = x61; + out1[7] = x64; + out1[8] = x67; + out1[9] = x70; + out1[10] = x71; +} + +/* 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_256_paramSetA/fe_inv.op3 + * custom repunit addition chain + */ +static void fiat_id_tc26_gost_3410_2012_256_paramSetA_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t16, t164, t2, t246, t32, t4, t64, t8, t80, t82; + + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t2, acc, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t4, acc, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t4); + for (i = 0; i < 3; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t8, acc, t4); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t8); + for (i = 0; i < 7; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t16, acc, t8); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t16); + for (i = 0; i < 15; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t32, acc, t16); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t32); + for (i = 0; i < 31; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t64, acc, t32); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t64); + for (i = 0; i < 15; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t80, acc, t16); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t80); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t82, acc, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t82); + for (i = 0; i < 81; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t164, acc, t82); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t164); + for (i = 0; i < 81; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t246, acc, t82); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, t246); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(acc, acc, t2); + for (i = 0; i < 3; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(output, acc, t1); +} + +/* curve coefficient constants */ + +static const limb_t const_one[11] = { + 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)}; + +static const limb_t const_d[11] = { + UINT32_C(0x00C7BFFB), UINT32_C(0x00432D6D), UINT32_C(0x006FCA45), + UINT32_C(0x005C026B), UINT32_C(0x0077D8A2), UINT32_C(0x0040995C), + UINT32_C(0x004FAD51), UINT32_C(0x00F17873), UINT32_C(0x007F502A), + UINT32_C(0x002DF060), UINT32_C(0x000302FB)}; + +static const limb_t const_S[11] = { + UINT32_C(0x008E0ECD), UINT32_C(0x004F34A4), UINT32_C(0x00040D6E), + UINT32_C(0x0068FF65), UINT32_C(0x006209D7), UINT32_C(0x004FD9A8), + UINT32_C(0x000C14AB), UINT32_C(0x0043A1E3), UINT32_C(0x00602BF5), + UINT32_C(0x001483E7), UINT32_C(0x003F3F41)}; + +static const limb_t const_T[11] = { + UINT32_C(0x00A14AAA), UINT32_C(0x0075DCE7), UINT32_C(0x007D4C60), + UINT32_C(0x0064AB11), UINT32_C(0x0013F970), UINT32_C(0x004AC43A), + UINT32_C(0x004D478D), UINT32_C(0x00D2E968), UINT32_C(0x003FE2B1), + UINT32_C(0x001CFD65), UINT32_C(0x0000807F)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[14][16] = { + { + {{UINT32_C(0x0000000D), 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(0x00A300E7), UINT32_C(0x002592DB), UINT32_C(0x0003F256), + UINT32_C(0x001FC8BA), UINT32_C(0x003E36FA), UINT32_C(0x0024E73F), + UINT32_C(0x007AB076), UINT32_C(0x00911871), UINT32_C(0x006B6690), + UINT32_C(0x000CAA91), UINT32_C(0x0030650F)}, + {UINT32_C(0x0047155F), UINT32_C(0x00687527), UINT32_C(0x00334E61), + UINT32_C(0x009D3172), UINT32_C(0x0028CAB3), UINT32_C(0x005FBE39), + UINT32_C(0x003AF601), UINT32_C(0x005E3DC9), UINT32_C(0x00743557), + UINT32_C(0x0024A967), UINT32_C(0x007521C4)}}, + {{UINT32_C(0x0051134C), UINT32_C(0x0063D934), UINT32_C(0x000994F4), + UINT32_C(0x00E91B07), UINT32_C(0x00439CFD), UINT32_C(0x0055A4D9), + UINT32_C(0x00181579), UINT32_C(0x0089F4E6), UINT32_C(0x005E989F), + UINT32_C(0x002C52EC), UINT32_C(0x0054E159)}, + {UINT32_C(0x00DB5791), UINT32_C(0x00525DDC), UINT32_C(0x006F7908), + UINT32_C(0x00AAB332), UINT32_C(0x00279FCD), UINT32_C(0x00522145), + UINT32_C(0x0059CBA7), UINT32_C(0x00B33511), UINT32_C(0x000C6593), + UINT32_C(0x0059CF0A), UINT32_C(0x0016BDEB)}, + {UINT32_C(0x00CBC030), UINT32_C(0x00732788), UINT32_C(0x005A0DF8), + UINT32_C(0x00C8799D), UINT32_C(0x0019C571), UINT32_C(0x0007F6EF), + UINT32_C(0x00729208), UINT32_C(0x00D7466B), UINT32_C(0x004ACA39), + UINT32_C(0x0056009D), UINT32_C(0x00586898)}}, + {{UINT32_C(0x007058AD), UINT32_C(0x00094E45), UINT32_C(0x00420275), + UINT32_C(0x005FD239), UINT32_C(0x00444F1F), UINT32_C(0x00299CBF), + UINT32_C(0x002C9ADA), UINT32_C(0x00816030), UINT32_C(0x00255119), + UINT32_C(0x0004FD8A), UINT32_C(0x000F011D)}, + {UINT32_C(0x00B22BCC), UINT32_C(0x00380EB0), UINT32_C(0x0075817F), + UINT32_C(0x00B68F07), UINT32_C(0x0065DD81), UINT32_C(0x00433816), + UINT32_C(0x005064DD), UINT32_C(0x00DF04CF), UINT32_C(0x000A89F8), + UINT32_C(0x0061BAC3), UINT32_C(0x002AEE30)}, + {UINT32_C(0x00831C0C), UINT32_C(0x006D5422), UINT32_C(0x005EFCE9), + UINT32_C(0x004B9CD7), UINT32_C(0x003E61FB), UINT32_C(0x001487DD), + UINT32_C(0x0011779C), UINT32_C(0x0036DFD0), UINT32_C(0x005A0784), + UINT32_C(0x0059323A), UINT32_C(0x002BA6DC)}}, + {{UINT32_C(0x00B0B356), UINT32_C(0x0066CD5D), UINT32_C(0x0010AFBC), + UINT32_C(0x00023E69), UINT32_C(0x007B3FA1), UINT32_C(0x003A3F07), + UINT32_C(0x007B8F99), UINT32_C(0x000415F9), UINT32_C(0x0073141E), + UINT32_C(0x00072DB3), UINT32_C(0x007B2887)}, + {UINT32_C(0x00EFDCBE), UINT32_C(0x0061FDB8), UINT32_C(0x004A709F), + UINT32_C(0x00849CD0), UINT32_C(0x002A36FC), UINT32_C(0x003BB056), + UINT32_C(0x00356C38), UINT32_C(0x007A9084), UINT32_C(0x000B6422), + UINT32_C(0x00130D7D), UINT32_C(0x001CD6F3)}, + {UINT32_C(0x00AA7E64), UINT32_C(0x0012D2BE), UINT32_C(0x0055120E), + UINT32_C(0x00938524), UINT32_C(0x000C79B2), UINT32_C(0x0058FE4B), + UINT32_C(0x00510FB7), UINT32_C(0x00D0F8E2), UINT32_C(0x0063F17F), + UINT32_C(0x002D4711), UINT32_C(0x002725A4)}}, + {{UINT32_C(0x004C6781), UINT32_C(0x00627F87), UINT32_C(0x00489AA7), + UINT32_C(0x002F770F), UINT32_C(0x000D2620), UINT32_C(0x001E8468), + UINT32_C(0x003F6D7E), UINT32_C(0x00C5511D), UINT32_C(0x006CDB93), + UINT32_C(0x006842D1), UINT32_C(0x004D7CF0)}, + {UINT32_C(0x00D1AE96), UINT32_C(0x0000090D), UINT32_C(0x0006C4DB), + UINT32_C(0x00CE5C55), UINT32_C(0x00144E90), UINT32_C(0x004BED80), + UINT32_C(0x004E53B7), UINT32_C(0x001FE39D), UINT32_C(0x0042F35D), + UINT32_C(0x004AEB11), UINT32_C(0x005F6DBA)}, + {UINT32_C(0x00499A0E), UINT32_C(0x007885A2), UINT32_C(0x00030BDC), + UINT32_C(0x001EDFDB), UINT32_C(0x00438B15), UINT32_C(0x0072B2EE), + UINT32_C(0x004AC01E), UINT32_C(0x003EC678), UINT32_C(0x005F2133), + UINT32_C(0x0011BD06), UINT32_C(0x002EA8E4)}}, + {{UINT32_C(0x00226F30), UINT32_C(0x005E7B60), UINT32_C(0x0009837F), + UINT32_C(0x00851533), UINT32_C(0x0006EFB9), UINT32_C(0x00130938), + UINT32_C(0x001063CE), UINT32_C(0x0019C098), UINT32_C(0x00605AC6), + UINT32_C(0x004D2A8D), UINT32_C(0x00240305)}, + {UINT32_C(0x006AE25F), UINT32_C(0x000EF2E0), UINT32_C(0x001F427E), + UINT32_C(0x00CD4540), UINT32_C(0x003C6996), UINT32_C(0x0035E452), + UINT32_C(0x005A6442), UINT32_C(0x007BC7A6), UINT32_C(0x003D0529), + UINT32_C(0x0021E8F3), UINT32_C(0x0052A46E)}, + {UINT32_C(0x007F4E9D), UINT32_C(0x000ECC55), UINT32_C(0x0037EE5A), + UINT32_C(0x004ADDB7), UINT32_C(0x004DA3F4), UINT32_C(0x005764C9), + UINT32_C(0x001C40F1), UINT32_C(0x00C1111E), UINT32_C(0x000B0764), + UINT32_C(0x007DD2E6), UINT32_C(0x001388A4)}}, + {{UINT32_C(0x0095A16C), UINT32_C(0x0008DD08), UINT32_C(0x005FC5C5), + UINT32_C(0x0081C743), UINT32_C(0x0000D180), UINT32_C(0x000F8EE9), + UINT32_C(0x0003FEF5), UINT32_C(0x00CF52AF), UINT32_C(0x007E4EDC), + UINT32_C(0x0052DFAC), UINT32_C(0x0057C4FB)}, + {UINT32_C(0x00E2B732), UINT32_C(0x005BEBA4), UINT32_C(0x001D1662), + UINT32_C(0x00FE39C5), UINT32_C(0x0058807D), UINT32_C(0x004BBC55), + UINT32_C(0x0020454A), UINT32_C(0x00A84E47), UINT32_C(0x0034B9B8), + UINT32_C(0x004B9BC7), UINT32_C(0x00362B2B)}, + {UINT32_C(0x00D51136), UINT32_C(0x0005D2D8), UINT32_C(0x000FECF5), + UINT32_C(0x0088AA07), UINT32_C(0x004BB57C), UINT32_C(0x003A4AD1), + UINT32_C(0x001B78C1), UINT32_C(0x00162747), UINT32_C(0x002DBFA9), + UINT32_C(0x0017B251), UINT32_C(0x00431084)}}, + {{UINT32_C(0x003DC33C), UINT32_C(0x00238321), UINT32_C(0x002858CB), + UINT32_C(0x006E05B3), UINT32_C(0x000F55FA), UINT32_C(0x002BA1C2), + UINT32_C(0x007BBFD4), UINT32_C(0x00A06A51), UINT32_C(0x003672AF), + UINT32_C(0x001A9B5B), UINT32_C(0x004F6D26)}, + {UINT32_C(0x009F55A3), UINT32_C(0x000F6705), UINT32_C(0x004EDA64), + UINT32_C(0x00D8FBA8), UINT32_C(0x006E341D), UINT32_C(0x005FDC16), + UINT32_C(0x003F8CD0), UINT32_C(0x0031F5C1), UINT32_C(0x002ECA27), + UINT32_C(0x006E2E8E), UINT32_C(0x007650A0)}, + {UINT32_C(0x004C828B), UINT32_C(0x004D65DD), UINT32_C(0x0023D49F), + UINT32_C(0x00998DDA), UINT32_C(0x004E0332), UINT32_C(0x00174414), + UINT32_C(0x00699E65), UINT32_C(0x008F8323), UINT32_C(0x002B8901), + UINT32_C(0x0012C259), UINT32_C(0x0021CFF4)}}, + {{UINT32_C(0x00922362), UINT32_C(0x0048A92F), UINT32_C(0x004D734D), + UINT32_C(0x00C47EE4), UINT32_C(0x00113110), UINT32_C(0x00157C19), + UINT32_C(0x00221251), UINT32_C(0x00024872), UINT32_C(0x001E2816), + UINT32_C(0x003DF03D), UINT32_C(0x00181B9C)}, + {UINT32_C(0x00012FCF), UINT32_C(0x0047EB3F), UINT32_C(0x006C2B35), + UINT32_C(0x00F85359), UINT32_C(0x0032819B), UINT32_C(0x004E64B2), + UINT32_C(0x00600748), UINT32_C(0x00944305), UINT32_C(0x001ED335), + UINT32_C(0x005DCD46), UINT32_C(0x004FA013)}, + {UINT32_C(0x003393AB), UINT32_C(0x002D18CD), UINT32_C(0x002579E1), + UINT32_C(0x0079F6D2), UINT32_C(0x00032785), UINT32_C(0x00679042), + UINT32_C(0x003532E2), UINT32_C(0x00E10DCE), UINT32_C(0x00480E01), + UINT32_C(0x00426205), UINT32_C(0x0053FD4D)}}, + {{UINT32_C(0x00C6B0CB), UINT32_C(0x007C89A2), UINT32_C(0x0078D667), + UINT32_C(0x00FF9964), UINT32_C(0x006EE83C), UINT32_C(0x006E7BF5), + UINT32_C(0x007599F3), UINT32_C(0x004D669F), UINT32_C(0x0065012B), + UINT32_C(0x005EBA50), UINT32_C(0x00304E71)}, + {UINT32_C(0x00C53736), UINT32_C(0x000B3E67), UINT32_C(0x00126BEE), + UINT32_C(0x00261DF0), UINT32_C(0x005AF18B), UINT32_C(0x005B38F7), + UINT32_C(0x000082AC), UINT32_C(0x0017B3DB), UINT32_C(0x007C32BA), + UINT32_C(0x00724F37), UINT32_C(0x001F8FD1)}, + {UINT32_C(0x0080CCBF), UINT32_C(0x0018D8B8), UINT32_C(0x006E22B9), + UINT32_C(0x00591C57), UINT32_C(0x0011E0B1), UINT32_C(0x0079970A), + UINT32_C(0x0070D898), UINT32_C(0x00D9733F), UINT32_C(0x00259708), + UINT32_C(0x0062101F), UINT32_C(0x00306235)}}, + {{UINT32_C(0x002F49E9), UINT32_C(0x006E57BC), UINT32_C(0x00094045), + UINT32_C(0x00CF8C2B), UINT32_C(0x0010A5CA), UINT32_C(0x00478E10), + UINT32_C(0x000A83ED), UINT32_C(0x00EB329A), UINT32_C(0x0054EE99), + UINT32_C(0x00112D75), UINT32_C(0x001A7633)}, + {UINT32_C(0x00762A44), UINT32_C(0x007F7B5B), UINT32_C(0x006BF456), + UINT32_C(0x00680D50), UINT32_C(0x00734ECC), UINT32_C(0x00770776), + UINT32_C(0x0041B3F1), UINT32_C(0x00DB7326), UINT32_C(0x007A5C18), + UINT32_C(0x0009A04C), UINT32_C(0x006F2281)}, + {UINT32_C(0x00392E55), UINT32_C(0x00180EF7), UINT32_C(0x00539457), + UINT32_C(0x0027985E), UINT32_C(0x0030AE2E), UINT32_C(0x0006A2FA), + UINT32_C(0x0075FD5D), UINT32_C(0x0023429D), UINT32_C(0x0041CD65), + UINT32_C(0x00710776), UINT32_C(0x0075B4D3)}}, + {{UINT32_C(0x00297799), UINT32_C(0x0050EDAC), UINT32_C(0x0017E4E4), + UINT32_C(0x00B06306), UINT32_C(0x0011957C), UINT32_C(0x00454CDB), + UINT32_C(0x0037CE52), UINT32_C(0x0035EF58), UINT32_C(0x003AACF3), + UINT32_C(0x006B04D4), UINT32_C(0x001DEEDA)}, + {UINT32_C(0x0058DEDB), UINT32_C(0x0055E31C), UINT32_C(0x000564F2), + UINT32_C(0x00767021), UINT32_C(0x000AA59A), UINT32_C(0x005E4355), + UINT32_C(0x0076B6F5), UINT32_C(0x00E2300C), UINT32_C(0x0065F80C), + UINT32_C(0x004E48E3), UINT32_C(0x00471F50)}, + {UINT32_C(0x0057B4C9), UINT32_C(0x0032102C), UINT32_C(0x004F162E), + UINT32_C(0x00AA70A0), UINT32_C(0x00601FA8), UINT32_C(0x001946ED), + UINT32_C(0x007F5192), UINT32_C(0x009CBF3B), UINT32_C(0x0071AED7), + UINT32_C(0x000BA7C1), UINT32_C(0x00663BBD)}}, + {{UINT32_C(0x00FC042F), UINT32_C(0x00129354), UINT32_C(0x001AC8F7), + UINT32_C(0x00124BB3), UINT32_C(0x007DE447), UINT32_C(0x0007CA46), + UINT32_C(0x005604BA), UINT32_C(0x00981600), UINT32_C(0x0014DA63), + UINT32_C(0x0005067B), UINT32_C(0x0053AE1A)}, + {UINT32_C(0x009BC0FD), UINT32_C(0x006F8B2C), UINT32_C(0x006AE987), + UINT32_C(0x0031F283), UINT32_C(0x0001800B), UINT32_C(0x00596A47), + UINT32_C(0x0067F6A5), UINT32_C(0x00512023), UINT32_C(0x0015BA88), + UINT32_C(0x0012951C), UINT32_C(0x000C64FA)}, + {UINT32_C(0x00ED7C65), UINT32_C(0x0008BD59), UINT32_C(0x00636115), + UINT32_C(0x0076BA73), UINT32_C(0x007F05EB), UINT32_C(0x0003E701), + UINT32_C(0x00148CDD), UINT32_C(0x008B64AA), UINT32_C(0x00373C6D), + UINT32_C(0x00516A1E), UINT32_C(0x00056623)}}, + {{UINT32_C(0x000D0BB7), UINT32_C(0x007E8A54), UINT32_C(0x007474B6), + UINT32_C(0x003D4755), UINT32_C(0x0026CD61), UINT32_C(0x0048139E), + UINT32_C(0x005E0EC7), UINT32_C(0x00169B5D), UINT32_C(0x0042855A), + UINT32_C(0x00729E2F), UINT32_C(0x001F1939)}, + {UINT32_C(0x00EDF74C), UINT32_C(0x00736130), UINT32_C(0x007835CD), + UINT32_C(0x0021FE28), UINT32_C(0x0051653E), UINT32_C(0x00690BC6), + UINT32_C(0x0070143D), UINT32_C(0x0011B7F6), UINT32_C(0x002ECF93), + UINT32_C(0x00332D5B), UINT32_C(0x004E7E15)}, + {UINT32_C(0x0061C3BC), UINT32_C(0x006F0A58), UINT32_C(0x002A9437), + UINT32_C(0x00273621), UINT32_C(0x004D6870), UINT32_C(0x004A0410), + UINT32_C(0x001930EC), UINT32_C(0x00473AEA), UINT32_C(0x00345B94), + UINT32_C(0x000D2F6F), UINT32_C(0x00630991)}}, + {{UINT32_C(0x0064F095), UINT32_C(0x005B811B), UINT32_C(0x0034F150), + UINT32_C(0x0037FBC3), UINT32_C(0x00431976), UINT32_C(0x001AF585), + UINT32_C(0x004A47D6), UINT32_C(0x00364593), UINT32_C(0x00265D55), + UINT32_C(0x006955EC), UINT32_C(0x004B56E9)}, + {UINT32_C(0x00D4D3BA), UINT32_C(0x003E639C), UINT32_C(0x007B6508), + UINT32_C(0x007AAFAA), UINT32_C(0x002DEDD3), UINT32_C(0x006E90FB), + UINT32_C(0x0070FF1F), UINT32_C(0x005BD7F8), UINT32_C(0x0015D774), + UINT32_C(0x004E9774), UINT32_C(0x003F53F7)}, + {UINT32_C(0x004F4AA5), UINT32_C(0x0024432D), UINT32_C(0x002D31BA), + UINT32_C(0x005F3C7B), UINT32_C(0x00221DE3), UINT32_C(0x00691A3B), + UINT32_C(0x0067E7F8), UINT32_C(0x00B606C6), UINT32_C(0x005200E8), + UINT32_C(0x00708B99), UINT32_C(0x002F258F)}}, + {{UINT32_C(0x003A119F), UINT32_C(0x00319D59), UINT32_C(0x0071DF1F), + UINT32_C(0x00EE723B), UINT32_C(0x004A075C), UINT32_C(0x0000C0BD), + UINT32_C(0x00381ECA), UINT32_C(0x009EC137), UINT32_C(0x0014C177), + UINT32_C(0x0062C87B), UINT32_C(0x003F7471)}, + {UINT32_C(0x00AA3C6C), UINT32_C(0x0019B06D), UINT32_C(0x003A8845), + UINT32_C(0x001B9E7B), UINT32_C(0x004749DD), UINT32_C(0x0067A317), + UINT32_C(0x00555D63), UINT32_C(0x0087596C), UINT32_C(0x004BF763), + UINT32_C(0x005DCF2F), UINT32_C(0x00725068)}, + {UINT32_C(0x005A930B), UINT32_C(0x003C325E), UINT32_C(0x00528AC5), + UINT32_C(0x00FD1B98), UINT32_C(0x004BA241), UINT32_C(0x0041EDCF), + UINT32_C(0x00587205), UINT32_C(0x00EDF302), UINT32_C(0x001C093C), + UINT32_C(0x0062B2BF), UINT32_C(0x00225709)}}, + }, + { + {{UINT32_C(0x00EABA3B), UINT32_C(0x00192B0C), UINT32_C(0x006A78E0), + UINT32_C(0x001251C4), UINT32_C(0x0032CA32), UINT32_C(0x0055DC60), + UINT32_C(0x005BBC99), UINT32_C(0x00F53480), UINT32_C(0x004CA164), + UINT32_C(0x0032C336), UINT32_C(0x004567E0)}, + {UINT32_C(0x009B52D6), UINT32_C(0x006B6695), UINT32_C(0x0011E7D6), + UINT32_C(0x002112B7), UINT32_C(0x007F870C), UINT32_C(0x002F5D93), + UINT32_C(0x002B31C0), UINT32_C(0x000D401F), UINT32_C(0x0004B6C8), + UINT32_C(0x0023BEE0), UINT32_C(0x00086B9A)}, + {UINT32_C(0x001E8B93), UINT32_C(0x00336732), UINT32_C(0x00435024), + UINT32_C(0x00A9D624), UINT32_C(0x007896CB), UINT32_C(0x00086124), + UINT32_C(0x001F6441), UINT32_C(0x00C216CD), UINT32_C(0x0045B1DA), + UINT32_C(0x0040884B), UINT32_C(0x0015A99D)}}, + {{UINT32_C(0x00E29666), UINT32_C(0x0000698C), UINT32_C(0x00008566), + UINT32_C(0x00B29855), UINT32_C(0x0069993B), UINT32_C(0x0066533E), + UINT32_C(0x00130B35), UINT32_C(0x00112187), UINT32_C(0x0066567A), + UINT32_C(0x006C6930), UINT32_C(0x00025F72)}, + {UINT32_C(0x00BC36F8), UINT32_C(0x0075E071), UINT32_C(0x003F18EC), + UINT32_C(0x00FE4134), UINT32_C(0x0007BF37), UINT32_C(0x0015265C), + UINT32_C(0x002D5EA8), UINT32_C(0x00932F6F), UINT32_C(0x0001004C), + UINT32_C(0x0028FBB8), UINT32_C(0x003CC88B)}, + {UINT32_C(0x0025E5B3), UINT32_C(0x0052FCAA), UINT32_C(0x0072522F), + UINT32_C(0x0075B891), UINT32_C(0x0071F699), UINT32_C(0x0051F116), + UINT32_C(0x0078808A), UINT32_C(0x006A580C), UINT32_C(0x000BDDA3), + UINT32_C(0x004CB31A), UINT32_C(0x0056F6CD)}}, + {{UINT32_C(0x001AF846), UINT32_C(0x0016456F), UINT32_C(0x006CDB6E), + UINT32_C(0x0019B43D), UINT32_C(0x001BD7BB), UINT32_C(0x001E429F), + UINT32_C(0x0025E351), UINT32_C(0x002C034F), UINT32_C(0x0053ECFF), + UINT32_C(0x002645D7), UINT32_C(0x006F455E)}, + {UINT32_C(0x00161A5B), UINT32_C(0x005E3D52), UINT32_C(0x006167A5), + UINT32_C(0x008BBC48), UINT32_C(0x0029C44C), UINT32_C(0x0009A976), + UINT32_C(0x0038C321), UINT32_C(0x00390F40), UINT32_C(0x004A7861), + UINT32_C(0x0027E8A3), UINT32_C(0x0055430C)}, + {UINT32_C(0x0022B34E), UINT32_C(0x003FE536), UINT32_C(0x006D6BDE), + UINT32_C(0x0038DF8B), UINT32_C(0x007C2700), UINT32_C(0x00413296), + UINT32_C(0x000C3C34), UINT32_C(0x000F4A8B), UINT32_C(0x002223E1), + UINT32_C(0x0002B3C2), UINT32_C(0x0030E676)}}, + {{UINT32_C(0x0084B729), UINT32_C(0x00726FC5), UINT32_C(0x00414876), + UINT32_C(0x003546F3), UINT32_C(0x00261905), UINT32_C(0x005A04F6), + UINT32_C(0x0055B0C7), UINT32_C(0x006B360B), UINT32_C(0x0012052B), + UINT32_C(0x002B0046), UINT32_C(0x003D984C)}, + {UINT32_C(0x00CBED46), UINT32_C(0x0032683A), UINT32_C(0x004B3ADD), + UINT32_C(0x00B2CD41), UINT32_C(0x0014EF94), UINT32_C(0x0050E0BF), + UINT32_C(0x003FC9B1), UINT32_C(0x002F30DC), UINT32_C(0x00297AE9), + UINT32_C(0x007BCD89), UINT32_C(0x000B4620)}, + {UINT32_C(0x0030B5B8), UINT32_C(0x0067A579), UINT32_C(0x006EDA23), + UINT32_C(0x0094FB0A), UINT32_C(0x00661BCD), UINT32_C(0x0040BF82), + UINT32_C(0x0058F099), UINT32_C(0x0072BB0F), UINT32_C(0x00485362), + UINT32_C(0x00539664), UINT32_C(0x006ADF86)}}, + {{UINT32_C(0x0024FDD7), UINT32_C(0x001186A8), UINT32_C(0x004EA183), + UINT32_C(0x00493DFC), UINT32_C(0x004F4E46), UINT32_C(0x0050110D), + UINT32_C(0x003294D6), UINT32_C(0x00C5CEF6), UINT32_C(0x0053F4A9), + UINT32_C(0x006A41F0), UINT32_C(0x00280D45)}, + {UINT32_C(0x0025DCB5), UINT32_C(0x00352AB2), UINT32_C(0x003C9B57), + UINT32_C(0x00C5972C), UINT32_C(0x0017C8A2), UINT32_C(0x0026C17F), + UINT32_C(0x004A2DE0), UINT32_C(0x00962319), UINT32_C(0x001DC0E8), + UINT32_C(0x007BB781), UINT32_C(0x0076D0B0)}, + {UINT32_C(0x00C25C01), UINT32_C(0x006DF306), UINT32_C(0x002E001F), + UINT32_C(0x00B2D044), UINT32_C(0x001C46FF), UINT32_C(0x0028D794), + UINT32_C(0x004CD7EB), UINT32_C(0x00B2D81B), UINT32_C(0x00719BF6), + UINT32_C(0x005D73E6), UINT32_C(0x000574EC)}}, + {{UINT32_C(0x00ED0D33), UINT32_C(0x005B58E6), UINT32_C(0x0031614D), + UINT32_C(0x00C647FC), UINT32_C(0x003D23AC), UINT32_C(0x006C18FD), + UINT32_C(0x006B9F51), UINT32_C(0x00BD620E), UINT32_C(0x000E3630), + UINT32_C(0x002C338B), UINT32_C(0x0055B898)}, + {UINT32_C(0x00609F49), UINT32_C(0x006332D0), UINT32_C(0x0032177F), + UINT32_C(0x008ADB01), UINT32_C(0x0003C6A7), UINT32_C(0x0020EA0A), + UINT32_C(0x005D93D8), UINT32_C(0x0053348A), UINT32_C(0x00511FAA), + UINT32_C(0x00125BD7), UINT32_C(0x001F9B23)}, + {UINT32_C(0x007C7FE4), UINT32_C(0x0028B2B1), UINT32_C(0x007487D6), + UINT32_C(0x0000D5FE), UINT32_C(0x007DEF82), UINT32_C(0x0016E07E), + UINT32_C(0x0026B0AE), UINT32_C(0x003853C8), UINT32_C(0x002DCAA1), + UINT32_C(0x00685027), UINT32_C(0x001A2F47)}}, + {{UINT32_C(0x00986197), UINT32_C(0x00217581), UINT32_C(0x00011B57), + UINT32_C(0x001C3CC0), UINT32_C(0x0048D2D2), UINT32_C(0x000C0332), + UINT32_C(0x002D89E5), UINT32_C(0x003490A4), UINT32_C(0x003458B1), + UINT32_C(0x002B04FA), UINT32_C(0x003F7CF9)}, + {UINT32_C(0x004F002F), UINT32_C(0x002E83E7), UINT32_C(0x00629717), + UINT32_C(0x0010444B), UINT32_C(0x005323A6), UINT32_C(0x003BF8D6), + UINT32_C(0x002CFC62), UINT32_C(0x004F6988), UINT32_C(0x007305E7), + UINT32_C(0x007EC041), UINT32_C(0x00754449)}, + {UINT32_C(0x00B16E11), UINT32_C(0x007607F5), UINT32_C(0x001923D5), + UINT32_C(0x00E8AE2B), UINT32_C(0x006722D4), UINT32_C(0x0076783B), + UINT32_C(0x0037C778), UINT32_C(0x007F8754), UINT32_C(0x00422A0E), + UINT32_C(0x003D9F97), UINT32_C(0x0016AEAE)}}, + {{UINT32_C(0x00D81066), UINT32_C(0x0050C351), UINT32_C(0x00716769), + UINT32_C(0x006393E3), UINT32_C(0x001B4C15), UINT32_C(0x004B9A55), + UINT32_C(0x00588B55), UINT32_C(0x002BA83B), UINT32_C(0x00009915), + UINT32_C(0x005C055C), UINT32_C(0x00048180)}, + {UINT32_C(0x00CB303A), UINT32_C(0x00458BFF), UINT32_C(0x00237470), + UINT32_C(0x00D66822), UINT32_C(0x0009DE8B), UINT32_C(0x005B28C2), + UINT32_C(0x0068CAFE), UINT32_C(0x002F5A98), UINT32_C(0x004C4B2A), + UINT32_C(0x0031DE00), UINT32_C(0x006E5755)}, + {UINT32_C(0x008869E8), UINT32_C(0x001F33B0), UINT32_C(0x001A2BAA), + UINT32_C(0x00817706), UINT32_C(0x00458C99), UINT32_C(0x00302337), + UINT32_C(0x0039EAE5), UINT32_C(0x00D2E45D), UINT32_C(0x0073447F), + UINT32_C(0x0024825C), UINT32_C(0x001B5E98)}}, + {{UINT32_C(0x00814972), UINT32_C(0x0038B443), UINT32_C(0x0041992D), + UINT32_C(0x00EE69DB), UINT32_C(0x00146157), UINT32_C(0x000AAAD8), + UINT32_C(0x005444E7), UINT32_C(0x00D17AB8), UINT32_C(0x004DF7C1), + UINT32_C(0x004D27A8), UINT32_C(0x0054D67D)}, + {UINT32_C(0x000A587F), UINT32_C(0x003ECDA4), UINT32_C(0x002CA0AF), + UINT32_C(0x008438DD), UINT32_C(0x00634B99), UINT32_C(0x003B5F19), + UINT32_C(0x006A333D), UINT32_C(0x001B944F), UINT32_C(0x007E2E1F), + UINT32_C(0x005C5F8A), UINT32_C(0x003EE1DE)}, + {UINT32_C(0x001A8276), UINT32_C(0x006DA949), UINT32_C(0x003ABE66), + UINT32_C(0x00EE9FD1), UINT32_C(0x004B05FC), UINT32_C(0x005E0261), + UINT32_C(0x007EAA48), UINT32_C(0x0010DD5B), UINT32_C(0x007CBE95), + UINT32_C(0x00118A02), UINT32_C(0x0002173C)}}, + {{UINT32_C(0x003407C2), UINT32_C(0x003DB992), UINT32_C(0x001F1A9E), + UINT32_C(0x00D5B577), UINT32_C(0x005468D1), UINT32_C(0x001331F0), + UINT32_C(0x00760900), UINT32_C(0x00412C7B), UINT32_C(0x007D99FF), + UINT32_C(0x003F157E), UINT32_C(0x0022BB7C)}, + {UINT32_C(0x008CE31C), UINT32_C(0x007405EE), UINT32_C(0x004669C1), + UINT32_C(0x00B64348), UINT32_C(0x002A823A), UINT32_C(0x0028F130), + UINT32_C(0x006999E9), UINT32_C(0x006697A5), UINT32_C(0x00546104), + UINT32_C(0x0028A64D), UINT32_C(0x00531D1A)}, + {UINT32_C(0x009C76D2), UINT32_C(0x0079F19D), UINT32_C(0x000872F3), + UINT32_C(0x00F799B3), UINT32_C(0x00407743), UINT32_C(0x003085E0), + UINT32_C(0x002003F0), UINT32_C(0x00396CB7), UINT32_C(0x002952AF), + UINT32_C(0x002D59FD), UINT32_C(0x003C184A)}}, + {{UINT32_C(0x00E10FCD), UINT32_C(0x00563D94), UINT32_C(0x0036A862), + UINT32_C(0x00A8D743), UINT32_C(0x001FAEBC), UINT32_C(0x005A3817), + UINT32_C(0x0061B73B), UINT32_C(0x00FE0A6A), UINT32_C(0x00113AE2), + UINT32_C(0x0079A419), UINT32_C(0x00433EC2)}, + {UINT32_C(0x0094DA0B), UINT32_C(0x0053D54C), UINT32_C(0x005DC3C9), + UINT32_C(0x00377F6C), UINT32_C(0x007601E5), UINT32_C(0x0054F416), + UINT32_C(0x00147411), UINT32_C(0x0033E49D), UINT32_C(0x001316C3), + UINT32_C(0x002D4674), UINT32_C(0x004DADCA)}, + {UINT32_C(0x00A27A08), UINT32_C(0x00150DCB), UINT32_C(0x00757D31), + UINT32_C(0x00ECF538), UINT32_C(0x00662566), UINT32_C(0x00306294), + UINT32_C(0x00601C11), UINT32_C(0x0035FECB), UINT32_C(0x00452259), + UINT32_C(0x001C2D33), UINT32_C(0x0021363F)}}, + {{UINT32_C(0x00C03231), UINT32_C(0x0054A03F), UINT32_C(0x00530E31), + UINT32_C(0x008A8654), UINT32_C(0x00445A8F), UINT32_C(0x0057E307), + UINT32_C(0x0017BF37), UINT32_C(0x00015A04), UINT32_C(0x0002B01C), + UINT32_C(0x001FB35F), UINT32_C(0x003FFA73)}, + {UINT32_C(0x002C08E7), UINT32_C(0x0040D81C), UINT32_C(0x00622B99), + UINT32_C(0x0048FF13), UINT32_C(0x00665063), UINT32_C(0x004518AF), + UINT32_C(0x003AC182), UINT32_C(0x00A28FD4), UINT32_C(0x002A6DAE), + UINT32_C(0x001B6DBD), UINT32_C(0x0010ACD4)}, + {UINT32_C(0x0058C718), UINT32_C(0x0016FC28), UINT32_C(0x0041E2C6), + UINT32_C(0x0052886B), UINT32_C(0x007FDE72), UINT32_C(0x00289521), + UINT32_C(0x00173FE6), UINT32_C(0x0072E6CC), UINT32_C(0x0017AC30), + UINT32_C(0x0040A8E1), UINT32_C(0x005097BC)}}, + {{UINT32_C(0x005B9B1D), UINT32_C(0x0050D0A3), UINT32_C(0x002DFE1B), + UINT32_C(0x00EAA92D), UINT32_C(0x00277DA6), UINT32_C(0x00622641), + UINT32_C(0x0037663B), UINT32_C(0x004FD085), UINT32_C(0x000C17EE), + UINT32_C(0x006A97AF), UINT32_C(0x007A47AF)}, + {UINT32_C(0x006BE9BF), UINT32_C(0x003285C2), UINT32_C(0x0065C35C), + UINT32_C(0x009C1C74), UINT32_C(0x005F5ECE), UINT32_C(0x0059AF30), + UINT32_C(0x002A2EA6), UINT32_C(0x0053A7C7), UINT32_C(0x003A42C4), + UINT32_C(0x007E6E33), UINT32_C(0x0067F167)}, + {UINT32_C(0x002379C4), UINT32_C(0x00784A42), UINT32_C(0x00260570), + UINT32_C(0x00C001B9), UINT32_C(0x007733D1), UINT32_C(0x002610F4), + UINT32_C(0x0076810F), UINT32_C(0x0093A496), UINT32_C(0x001DEA0A), + UINT32_C(0x002CA003), UINT32_C(0x006326EC)}}, + {{UINT32_C(0x00BB2391), UINT32_C(0x00743284), UINT32_C(0x002E155F), + UINT32_C(0x0035639B), UINT32_C(0x005BBF4F), UINT32_C(0x003E90B9), + UINT32_C(0x00767573), UINT32_C(0x00321363), UINT32_C(0x00254580), + UINT32_C(0x0029D549), UINT32_C(0x0052B4EB)}, + {UINT32_C(0x00C1B9A5), UINT32_C(0x004DDE09), UINT32_C(0x006CBD8B), + UINT32_C(0x005BA607), UINT32_C(0x003CC42A), UINT32_C(0x001D4E2E), + UINT32_C(0x007ACD96), UINT32_C(0x00C921CE), UINT32_C(0x000620D1), + UINT32_C(0x0016E31C), UINT32_C(0x006A2B72)}, + {UINT32_C(0x002A9792), UINT32_C(0x0000CFD3), UINT32_C(0x006A9AD2), + UINT32_C(0x00ED29B3), UINT32_C(0x0026DA69), UINT32_C(0x002D2B73), + UINT32_C(0x001B5E5D), UINT32_C(0x00D5305C), UINT32_C(0x0067DCE0), + UINT32_C(0x000729B3), UINT32_C(0x00070252)}}, + {{UINT32_C(0x007834CB), UINT32_C(0x001A305D), UINT32_C(0x00199CF9), + UINT32_C(0x00EE7F83), UINT32_C(0x0048376D), UINT32_C(0x00182568), + UINT32_C(0x0044C0B5), UINT32_C(0x007EFBAD), UINT32_C(0x006A5B89), + UINT32_C(0x002DDEC8), UINT32_C(0x002C5365)}, + {UINT32_C(0x0014DDC8), UINT32_C(0x0026ED23), UINT32_C(0x004F3CF1), + UINT32_C(0x009C337C), UINT32_C(0x005CA1F6), UINT32_C(0x00430D81), + UINT32_C(0x001BF696), UINT32_C(0x00D5544B), UINT32_C(0x0001941E), + UINT32_C(0x002720AB), UINT32_C(0x006EF64B)}, + {UINT32_C(0x00AEB238), UINT32_C(0x002A16EC), UINT32_C(0x0055FE48), + UINT32_C(0x00606DE7), UINT32_C(0x0034576A), UINT32_C(0x006FF01C), + UINT32_C(0x0009AA13), UINT32_C(0x00D2D5AB), UINT32_C(0x003249A4), + UINT32_C(0x004B05E9), UINT32_C(0x0041BC86)}}, + {{UINT32_C(0x00A9E5D5), UINT32_C(0x003CDBE3), UINT32_C(0x00669075), + UINT32_C(0x004D8E92), UINT32_C(0x0050E701), UINT32_C(0x003EEC92), + UINT32_C(0x00340906), UINT32_C(0x003A5231), UINT32_C(0x0076D572), + UINT32_C(0x001CA34B), UINT32_C(0x0035D540)}, + {UINT32_C(0x00FE52C3), UINT32_C(0x0064659E), UINT32_C(0x000FCF54), + UINT32_C(0x00DDCF41), UINT32_C(0x007A7B36), UINT32_C(0x002AEC73), + UINT32_C(0x007550B1), UINT32_C(0x008E1CEC), UINT32_C(0x002CAD9C), + UINT32_C(0x004EE133), UINT32_C(0x0045B7D8)}, + {UINT32_C(0x009FC441), UINT32_C(0x002D1FBC), UINT32_C(0x003E7D16), + UINT32_C(0x00C8B352), UINT32_C(0x00221849), UINT32_C(0x003FF5A0), + UINT32_C(0x0055A506), UINT32_C(0x007F88D0), UINT32_C(0x0018DB76), + UINT32_C(0x00672F49), UINT32_C(0x007D2F58)}}, + }, + { + {{UINT32_C(0x00C3CC62), UINT32_C(0x001788C8), UINT32_C(0x0046ECBC), + UINT32_C(0x00F44A0D), UINT32_C(0x005D570F), UINT32_C(0x0011C818), + UINT32_C(0x0005F4D7), UINT32_C(0x00B7F489), UINT32_C(0x0001AE92), + UINT32_C(0x002AB1B0), UINT32_C(0x0067910C)}, + {UINT32_C(0x0033A3DB), UINT32_C(0x00768B12), UINT32_C(0x005D50DE), + UINT32_C(0x00D31F34), UINT32_C(0x003455F7), UINT32_C(0x0021BBE3), + UINT32_C(0x0020D657), UINT32_C(0x009AEF49), UINT32_C(0x0011194A), + UINT32_C(0x007C4E1E), UINT32_C(0x005A07C9)}, + {UINT32_C(0x008F9CA3), UINT32_C(0x0054FF76), UINT32_C(0x00570C00), + UINT32_C(0x006792D9), UINT32_C(0x0064070F), UINT32_C(0x0044F2A2), + UINT32_C(0x006ABEFC), UINT32_C(0x00DAAC6E), UINT32_C(0x004F8CD9), + UINT32_C(0x004DC91F), UINT32_C(0x0049B2BB)}}, + {{UINT32_C(0x0018CD54), UINT32_C(0x0010BE7F), UINT32_C(0x005F8D91), + UINT32_C(0x00BAF1CC), UINT32_C(0x0050AB12), UINT32_C(0x002D251A), + UINT32_C(0x004B47CC), UINT32_C(0x005BD1C5), UINT32_C(0x00489594), + UINT32_C(0x00699114), UINT32_C(0x0030C9FA)}, + {UINT32_C(0x00D23D40), UINT32_C(0x005307A4), UINT32_C(0x007E98F3), + UINT32_C(0x00F08939), UINT32_C(0x0069A75B), UINT32_C(0x001DB79B), + UINT32_C(0x00566A53), UINT32_C(0x005AF4D5), UINT32_C(0x00237443), + UINT32_C(0x001D42DE), UINT32_C(0x005165D2)}, + {UINT32_C(0x00873511), UINT32_C(0x00525967), UINT32_C(0x0056101D), + UINT32_C(0x00AA7060), UINT32_C(0x004C11B1), UINT32_C(0x0029CA00), + UINT32_C(0x001A34BC), UINT32_C(0x005CA8C2), UINT32_C(0x002F5F9A), + UINT32_C(0x0039EFC2), UINT32_C(0x006871D9)}}, + {{UINT32_C(0x00421E67), UINT32_C(0x00075D00), UINT32_C(0x0010583F), + UINT32_C(0x00B732C7), UINT32_C(0x0037730B), UINT32_C(0x007028B8), + UINT32_C(0x005C0247), UINT32_C(0x007CC11B), UINT32_C(0x007F99FE), + UINT32_C(0x0074EF6F), UINT32_C(0x0049255A)}, + {UINT32_C(0x00806A6B), UINT32_C(0x0076A27F), UINT32_C(0x001A45F6), + UINT32_C(0x001863FB), UINT32_C(0x0036A2B2), UINT32_C(0x00058E27), + UINT32_C(0x007E3E52), UINT32_C(0x008FA71E), UINT32_C(0x000F9591), + UINT32_C(0x000EA645), UINT32_C(0x0037E6C8)}, + {UINT32_C(0x004C164A), UINT32_C(0x0015AE71), UINT32_C(0x00228D86), + UINT32_C(0x00441D33), UINT32_C(0x00507819), UINT32_C(0x00442DBE), + UINT32_C(0x00457850), UINT32_C(0x0059222C), UINT32_C(0x0029495F), + UINT32_C(0x007331A0), UINT32_C(0x007BAE86)}}, + {{UINT32_C(0x00FA5032), UINT32_C(0x00242303), UINT32_C(0x000A904B), + UINT32_C(0x0003BB53), UINT32_C(0x007553E7), UINT32_C(0x003CA0C5), + UINT32_C(0x0061B87D), UINT32_C(0x00805E53), UINT32_C(0x0049297C), + UINT32_C(0x0056196B), UINT32_C(0x004C6DF6)}, + {UINT32_C(0x002C1092), UINT32_C(0x0019EF62), UINT32_C(0x0047F011), + UINT32_C(0x00C03A85), UINT32_C(0x000B1A90), UINT32_C(0x001507E7), + UINT32_C(0x004D6EBC), UINT32_C(0x00794D29), UINT32_C(0x005C5416), + UINT32_C(0x0020F242), UINT32_C(0x00576518)}, + {UINT32_C(0x0034E914), UINT32_C(0x005DAF45), UINT32_C(0x005BE7A5), + UINT32_C(0x00FE38F3), UINT32_C(0x00157770), UINT32_C(0x00237F8C), + UINT32_C(0x0015BF21), UINT32_C(0x0077CC24), UINT32_C(0x005067D4), + UINT32_C(0x00091C98), UINT32_C(0x007F54DE)}}, + {{UINT32_C(0x00770B21), UINT32_C(0x006194BB), UINT32_C(0x001A8987), + UINT32_C(0x0094013C), UINT32_C(0x00619B7F), UINT32_C(0x00083816), + UINT32_C(0x007A8072), UINT32_C(0x00F58256), UINT32_C(0x002FFA60), + UINT32_C(0x007AC24E), UINT32_C(0x0042CF75)}, + {UINT32_C(0x0058474E), UINT32_C(0x007BFF2F), UINT32_C(0x0018145B), + UINT32_C(0x00F8E32B), UINT32_C(0x0055DE08), UINT32_C(0x002AA874), + UINT32_C(0x0044BCA0), UINT32_C(0x0038F7BE), UINT32_C(0x0027359B), + UINT32_C(0x002747EB), UINT32_C(0x00226230)}, + {UINT32_C(0x00FA31A5), UINT32_C(0x00190A96), UINT32_C(0x006536D0), + UINT32_C(0x00ACA102), UINT32_C(0x0036C0D0), UINT32_C(0x0008F3D0), + UINT32_C(0x0049B490), UINT32_C(0x005CD6C9), UINT32_C(0x000E1C66), + UINT32_C(0x0077C89C), UINT32_C(0x006A74AE)}}, + {{UINT32_C(0x00EE9825), UINT32_C(0x000FBC15), UINT32_C(0x000C0843), + UINT32_C(0x006B793A), UINT32_C(0x0004ED1C), UINT32_C(0x00616EA7), + UINT32_C(0x000B6304), UINT32_C(0x00166978), UINT32_C(0x0024139D), + UINT32_C(0x0042F014), UINT32_C(0x003D4978)}, + {UINT32_C(0x0029D5D7), UINT32_C(0x0033F88C), UINT32_C(0x006E76FF), + UINT32_C(0x00A49E5F), UINT32_C(0x003D801A), UINT32_C(0x0042EE48), + UINT32_C(0x000D2057), UINT32_C(0x001D9164), UINT32_C(0x001AB787), + UINT32_C(0x004D338B), UINT32_C(0x00262464)}, + {UINT32_C(0x00D5B395), UINT32_C(0x007A77B2), UINT32_C(0x0043D844), + UINT32_C(0x006D5774), UINT32_C(0x00267921), UINT32_C(0x00374E41), + UINT32_C(0x003B4C78), UINT32_C(0x00E2BA6E), UINT32_C(0x00656116), + UINT32_C(0x0043049C), UINT32_C(0x002023C8)}}, + {{UINT32_C(0x001715E4), UINT32_C(0x00652B6A), UINT32_C(0x00379760), + UINT32_C(0x004DB333), UINT32_C(0x00619842), UINT32_C(0x00656120), + UINT32_C(0x0026FAEC), UINT32_C(0x00EF2AD7), UINT32_C(0x00149CB3), + UINT32_C(0x0055D95D), UINT32_C(0x00497B11)}, + {UINT32_C(0x00D4B7BF), UINT32_C(0x001098D0), UINT32_C(0x0057E045), + UINT32_C(0x00304A0C), UINT32_C(0x007F8852), UINT32_C(0x00564889), + UINT32_C(0x007D4D67), UINT32_C(0x00A2CA30), UINT32_C(0x0051B0D9), + UINT32_C(0x00495A39), UINT32_C(0x0017789D)}, + {UINT32_C(0x0049CE9C), UINT32_C(0x001C79B9), UINT32_C(0x000A676A), + UINT32_C(0x0043503C), UINT32_C(0x003C78EA), UINT32_C(0x00779E15), + UINT32_C(0x002487F8), UINT32_C(0x0098B781), UINT32_C(0x002F1E05), + UINT32_C(0x000B58B5), UINT32_C(0x0079EE99)}}, + {{UINT32_C(0x0082E001), UINT32_C(0x002F7563), UINT32_C(0x005502B7), + UINT32_C(0x0099B452), UINT32_C(0x00068BD3), UINT32_C(0x006837ED), + UINT32_C(0x006C2DAE), UINT32_C(0x00EDD476), UINT32_C(0x004B54C6), + UINT32_C(0x002353E5), UINT32_C(0x0036757B)}, + {UINT32_C(0x0003D167), UINT32_C(0x002030D2), UINT32_C(0x0072FA5A), + UINT32_C(0x004E3D16), UINT32_C(0x001B78F0), UINT32_C(0x000924E6), + UINT32_C(0x001E86B4), UINT32_C(0x006CD648), UINT32_C(0x001D24C9), + UINT32_C(0x000CC288), UINT32_C(0x0054B2D8)}, + {UINT32_C(0x002B443B), UINT32_C(0x00135EB4), UINT32_C(0x006123F8), + UINT32_C(0x00795F4F), UINT32_C(0x00161316), UINT32_C(0x005CC78F), + UINT32_C(0x001879B2), UINT32_C(0x00A11513), UINT32_C(0x0075BC89), + UINT32_C(0x000E0F4C), UINT32_C(0x0022EB79)}}, + {{UINT32_C(0x0097ABD7), UINT32_C(0x003BF415), UINT32_C(0x004B96FB), + UINT32_C(0x0086107E), UINT32_C(0x0013751E), UINT32_C(0x006E3412), + UINT32_C(0x0075AEFF), UINT32_C(0x00CEAD7E), UINT32_C(0x004D03FA), + UINT32_C(0x0041C8E1), UINT32_C(0x00586295)}, + {UINT32_C(0x00BF974F), UINT32_C(0x003D6607), UINT32_C(0x003A2804), + UINT32_C(0x00E9CC65), UINT32_C(0x00596911), UINT32_C(0x0013F86A), + UINT32_C(0x00010E75), UINT32_C(0x0067284C), UINT32_C(0x00244A19), + UINT32_C(0x00071615), UINT32_C(0x002E2C66)}, + {UINT32_C(0x004963F7), UINT32_C(0x00640576), UINT32_C(0x0031C7EE), + UINT32_C(0x001D786C), UINT32_C(0x00257DEC), UINT32_C(0x003CF6C5), + UINT32_C(0x00465E43), UINT32_C(0x00B15EDD), UINT32_C(0x00478BEB), + UINT32_C(0x00016C1B), UINT32_C(0x00094307)}}, + {{UINT32_C(0x00E85486), UINT32_C(0x0077F915), UINT32_C(0x00760D35), + UINT32_C(0x002EF0AE), UINT32_C(0x0037042C), UINT32_C(0x0030C359), + UINT32_C(0x00346545), UINT32_C(0x00DC7FE6), UINT32_C(0x0030D4C5), + UINT32_C(0x004AAD41), UINT32_C(0x000A60C0)}, + {UINT32_C(0x00D6E8B3), UINT32_C(0x000B7AA8), UINT32_C(0x0023E0C5), + UINT32_C(0x006A8EBF), UINT32_C(0x0063D566), UINT32_C(0x002294C9), + UINT32_C(0x0049A4AE), UINT32_C(0x005A2C0A), UINT32_C(0x005086A5), + UINT32_C(0x0008808D), UINT32_C(0x0005A919)}, + {UINT32_C(0x007A8EAF), UINT32_C(0x001E6353), UINT32_C(0x005C83D2), + UINT32_C(0x00714AAE), UINT32_C(0x004F2F37), UINT32_C(0x00249BF6), + UINT32_C(0x006CDEE8), UINT32_C(0x006F262D), UINT32_C(0x007E9C03), + UINT32_C(0x004C7272), UINT32_C(0x005E6F1B)}}, + {{UINT32_C(0x0011D440), UINT32_C(0x0050D0E6), UINT32_C(0x0020183D), + UINT32_C(0x00D0ED3E), UINT32_C(0x004642A3), UINT32_C(0x0019F456), + UINT32_C(0x0068661A), UINT32_C(0x005C97B1), UINT32_C(0x001DFD20), + UINT32_C(0x00607CBE), UINT32_C(0x004EB1D7)}, + {UINT32_C(0x00424218), UINT32_C(0x0031CB2B), UINT32_C(0x0016EE1E), + UINT32_C(0x00F0B2F5), UINT32_C(0x00284CA3), UINT32_C(0x000B886E), + UINT32_C(0x0056424F), UINT32_C(0x00606535), UINT32_C(0x001A7DD3), + UINT32_C(0x005E5D6D), UINT32_C(0x000910A8)}, + {UINT32_C(0x00E5A1E8), UINT32_C(0x0062AA84), UINT32_C(0x0072C780), + UINT32_C(0x00E14E12), UINT32_C(0x00359D55), UINT32_C(0x00388026), + UINT32_C(0x001AF8C7), UINT32_C(0x007C9658), UINT32_C(0x007CD573), + UINT32_C(0x001DB584), UINT32_C(0x005C3621)}}, + {{UINT32_C(0x00E7BB1F), UINT32_C(0x002CD518), UINT32_C(0x0041FE08), + UINT32_C(0x00717B78), UINT32_C(0x00400988), UINT32_C(0x00291794), + UINT32_C(0x00747C25), UINT32_C(0x007194A1), UINT32_C(0x0040F7AF), + UINT32_C(0x007B6E73), UINT32_C(0x0020EB45)}, + {UINT32_C(0x00161F74), UINT32_C(0x00299725), UINT32_C(0x0025AD63), + UINT32_C(0x004B6379), UINT32_C(0x00076C32), UINT32_C(0x0071515E), + UINT32_C(0x0032A4A1), UINT32_C(0x00A7B602), UINT32_C(0x005C7951), + UINT32_C(0x003975BA), UINT32_C(0x004BA951)}, + {UINT32_C(0x009EEF2E), UINT32_C(0x000B3835), UINT32_C(0x005E1C6B), + UINT32_C(0x00800FFB), UINT32_C(0x006BC9CA), UINT32_C(0x00125F16), + UINT32_C(0x000F6D0D), UINT32_C(0x00186A82), UINT32_C(0x00479A35), + UINT32_C(0x0006739D), UINT32_C(0x004DCC17)}}, + {{UINT32_C(0x0067A5F5), UINT32_C(0x007CA11D), UINT32_C(0x0051B4EF), + UINT32_C(0x00E64083), UINT32_C(0x002B0147), UINT32_C(0x0022B454), + UINT32_C(0x0050D922), UINT32_C(0x0019CFE8), UINT32_C(0x00416B41), + UINT32_C(0x00219410), UINT32_C(0x005C5995)}, + {UINT32_C(0x0020EA67), UINT32_C(0x0065B659), UINT32_C(0x0011B640), + UINT32_C(0x00C05AB3), UINT32_C(0x0015BD93), UINT32_C(0x003F4CB7), + UINT32_C(0x000CD5AA), UINT32_C(0x006203FA), UINT32_C(0x001FA8A5), + UINT32_C(0x001E6F64), UINT32_C(0x006FB8E7)}, + {UINT32_C(0x00B6FEF4), UINT32_C(0x0053F0CE), UINT32_C(0x006B1E51), + UINT32_C(0x0033476B), UINT32_C(0x00419002), UINT32_C(0x006F619C), + UINT32_C(0x005CAF14), UINT32_C(0x001753E9), UINT32_C(0x0038FC4F), + UINT32_C(0x007F5E19), UINT32_C(0x000F12D2)}}, + {{UINT32_C(0x009F6EBB), UINT32_C(0x004C08FE), UINT32_C(0x006E7C4E), + UINT32_C(0x00F1680D), UINT32_C(0x00446C66), UINT32_C(0x00350BF6), + UINT32_C(0x006A96E3), UINT32_C(0x005AEE9A), UINT32_C(0x006935BB), + UINT32_C(0x0073B4C5), UINT32_C(0x004AC140)}, + {UINT32_C(0x00E5225C), UINT32_C(0x007B671B), UINT32_C(0x007606A0), + UINT32_C(0x00938508), UINT32_C(0x007625D7), UINT32_C(0x001E3B8F), + UINT32_C(0x002EAE28), UINT32_C(0x00318F8C), UINT32_C(0x001CC7F0), + UINT32_C(0x0010B56D), UINT32_C(0x0049C97C)}, + {UINT32_C(0x00DE3FDD), UINT32_C(0x0008CA79), UINT32_C(0x000A0585), + UINT32_C(0x0056E5A5), UINT32_C(0x003CF77E), UINT32_C(0x002C9DD5), + UINT32_C(0x006D3D48), UINT32_C(0x00B152EB), UINT32_C(0x001C6B5C), + UINT32_C(0x00755FAF), UINT32_C(0x002B73E8)}}, + {{UINT32_C(0x004F175B), UINT32_C(0x0074B90C), UINT32_C(0x007C4EB9), + UINT32_C(0x00CB92B7), UINT32_C(0x00592AE2), UINT32_C(0x0056E0F5), + UINT32_C(0x007528E2), UINT32_C(0x00893263), UINT32_C(0x0006AD16), + UINT32_C(0x0070AA41), UINT32_C(0x0062E83F)}, + {UINT32_C(0x00058482), UINT32_C(0x00171A5D), UINT32_C(0x0047C331), + UINT32_C(0x00DF7758), UINT32_C(0x002B4A00), UINT32_C(0x001FCAD8), + UINT32_C(0x006A1943), UINT32_C(0x00B73575), UINT32_C(0x00171180), + UINT32_C(0x005C1148), UINT32_C(0x0012A36A)}, + {UINT32_C(0x008C51AE), UINT32_C(0x0020EE14), UINT32_C(0x00549F62), + UINT32_C(0x00CD3EB6), UINT32_C(0x0048A700), UINT32_C(0x00596B28), + UINT32_C(0x002F99A4), UINT32_C(0x00010422), UINT32_C(0x001769F4), + UINT32_C(0x00225E79), UINT32_C(0x0067F6DE)}}, + {{UINT32_C(0x009E9178), UINT32_C(0x0005D43C), UINT32_C(0x0012A802), + UINT32_C(0x0086A260), UINT32_C(0x0063C91C), UINT32_C(0x0063084E), + UINT32_C(0x0046B7E1), UINT32_C(0x00A17B2D), UINT32_C(0x0051323E), + UINT32_C(0x0046B359), UINT32_C(0x00037634)}, + {UINT32_C(0x000A3DA8), UINT32_C(0x001949B0), UINT32_C(0x0005E3B9), + UINT32_C(0x002467F0), UINT32_C(0x004BCC28), UINT32_C(0x00501570), + UINT32_C(0x003D5412), UINT32_C(0x00CD0573), UINT32_C(0x0040ECA4), + UINT32_C(0x0017C942), UINT32_C(0x001AACE2)}, + {UINT32_C(0x00427572), UINT32_C(0x002D0E76), UINT32_C(0x006FC301), + UINT32_C(0x0011516D), UINT32_C(0x003B6F32), UINT32_C(0x0056D53F), + UINT32_C(0x002E9447), UINT32_C(0x00909115), UINT32_C(0x007DC768), + UINT32_C(0x00553F21), UINT32_C(0x003A0976)}}, + }, + { + {{UINT32_C(0x0018835D), UINT32_C(0x001FCF9F), UINT32_C(0x001AD610), + UINT32_C(0x007D30EC), UINT32_C(0x006C910C), UINT32_C(0x003FB1A8), + UINT32_C(0x001464A4), UINT32_C(0x0027680C), UINT32_C(0x007E54DB), + UINT32_C(0x005EDD4B), UINT32_C(0x005A8976)}, + {UINT32_C(0x0037E1C3), UINT32_C(0x0016BF14), UINT32_C(0x0006AA36), + UINT32_C(0x0040A33E), UINT32_C(0x006DC0DF), UINT32_C(0x00242FA2), + UINT32_C(0x00274EA4), UINT32_C(0x000084D9), UINT32_C(0x0068A677), + UINT32_C(0x004FE2AF), UINT32_C(0x001D11B4)}, + {UINT32_C(0x003DC1C7), UINT32_C(0x00792137), UINT32_C(0x002CB33F), + UINT32_C(0x007A0801), UINT32_C(0x000056E3), UINT32_C(0x00339206), + UINT32_C(0x003D0090), UINT32_C(0x00F96044), UINT32_C(0x00537FE0), + UINT32_C(0x006358EF), UINT32_C(0x001EE2D0)}}, + {{UINT32_C(0x0029CB03), UINT32_C(0x000FF813), UINT32_C(0x00067660), + UINT32_C(0x00E00898), UINT32_C(0x000083A1), UINT32_C(0x00516E88), + UINT32_C(0x00543512), UINT32_C(0x00EFA310), UINT32_C(0x005ED95E), + UINT32_C(0x0048147D), UINT32_C(0x003958DB)}, + {UINT32_C(0x0084596C), UINT32_C(0x006BC632), UINT32_C(0x0037EAF8), + UINT32_C(0x00148F47), UINT32_C(0x002DE2D2), UINT32_C(0x007E4DA4), + UINT32_C(0x0021A371), UINT32_C(0x00BF0084), UINT32_C(0x003EFBC7), + UINT32_C(0x0079976E), UINT32_C(0x004BAEFB)}, + {UINT32_C(0x000DA1C1), UINT32_C(0x00310E2C), UINT32_C(0x0030B00D), + UINT32_C(0x007060D1), UINT32_C(0x000F8A0E), UINT32_C(0x005B1EC0), + UINT32_C(0x0066C96D), UINT32_C(0x008BB679), UINT32_C(0x0031F9DB), + UINT32_C(0x0032C38D), UINT32_C(0x003C1F72)}}, + {{UINT32_C(0x00BCFE19), UINT32_C(0x005B51F8), UINT32_C(0x0037A870), + UINT32_C(0x00898A49), UINT32_C(0x007BD853), UINT32_C(0x0064DA75), + UINT32_C(0x0017497A), UINT32_C(0x0021BE3C), UINT32_C(0x0026C48F), + UINT32_C(0x0035A56E), UINT32_C(0x00079EFC)}, + {UINT32_C(0x006AEFDE), UINT32_C(0x007113F8), UINT32_C(0x007013EA), + UINT32_C(0x004A8F2E), UINT32_C(0x0038D8C7), UINT32_C(0x003E2B86), + UINT32_C(0x006499EE), UINT32_C(0x00EF9DD1), UINT32_C(0x00541109), + UINT32_C(0x007F4211), UINT32_C(0x002650ED)}, + {UINT32_C(0x00E8730E), UINT32_C(0x007EF6E8), UINT32_C(0x00053E89), + UINT32_C(0x00B164EC), UINT32_C(0x004CFEB8), UINT32_C(0x002674CE), + UINT32_C(0x006FD69F), UINT32_C(0x00862ADC), UINT32_C(0x0074A714), + UINT32_C(0x004E95F1), UINT32_C(0x00440342)}}, + {{UINT32_C(0x0086A1D1), UINT32_C(0x0009570F), UINT32_C(0x0021E028), + UINT32_C(0x00D8EF33), UINT32_C(0x0030D08A), UINT32_C(0x005EE53C), + UINT32_C(0x005F27BE), UINT32_C(0x00315BEF), UINT32_C(0x0030A287), + UINT32_C(0x00395DE5), UINT32_C(0x00694DAA)}, + {UINT32_C(0x004E499A), UINT32_C(0x0024FC80), UINT32_C(0x0045DA5E), + UINT32_C(0x004542DE), UINT32_C(0x005A6E71), UINT32_C(0x0013BB0D), + UINT32_C(0x0000E551), UINT32_C(0x0009BB0D), UINT32_C(0x00710991), + UINT32_C(0x00116881), UINT32_C(0x0075A138)}, + {UINT32_C(0x0039EB19), UINT32_C(0x0067187C), UINT32_C(0x00636CC0), + UINT32_C(0x0094DCEC), UINT32_C(0x001AF3DD), UINT32_C(0x002B8639), + UINT32_C(0x006554E7), UINT32_C(0x00E605EB), UINT32_C(0x0061639B), + UINT32_C(0x0077500A), UINT32_C(0x003193ED)}}, + {{UINT32_C(0x0001E326), UINT32_C(0x00352C31), UINT32_C(0x004A76AB), + UINT32_C(0x00D940B5), UINT32_C(0x006329C5), UINT32_C(0x001AFE72), + UINT32_C(0x005E4FE9), UINT32_C(0x00F56D9B), UINT32_C(0x003E7DB3), + UINT32_C(0x00054566), UINT32_C(0x004D0C77)}, + {UINT32_C(0x00B344FC), UINT32_C(0x001F79B7), UINT32_C(0x0050F482), + UINT32_C(0x0098D267), UINT32_C(0x001C2619), UINT32_C(0x006BBD65), + UINT32_C(0x00346286), UINT32_C(0x008CAD0C), UINT32_C(0x000FC617), + UINT32_C(0x0032B373), UINT32_C(0x007978E3)}, + {UINT32_C(0x00C94333), UINT32_C(0x006B14A8), UINT32_C(0x001075C5), + UINT32_C(0x00BDD939), UINT32_C(0x0000EE70), UINT32_C(0x00188183), + UINT32_C(0x007398E2), UINT32_C(0x0009184A), UINT32_C(0x007DF798), + UINT32_C(0x0057B14F), UINT32_C(0x0021B6A8)}}, + {{UINT32_C(0x00F232E3), UINT32_C(0x00449C35), UINT32_C(0x000CC2CD), + UINT32_C(0x0003BBFB), UINT32_C(0x006E022E), UINT32_C(0x005937F0), + UINT32_C(0x000D3400), UINT32_C(0x00A3335B), UINT32_C(0x003797FA), + UINT32_C(0x007E0C16), UINT32_C(0x0068AB4A)}, + {UINT32_C(0x00655243), UINT32_C(0x0076EF0C), UINT32_C(0x007A5D62), + UINT32_C(0x0087B99B), UINT32_C(0x007F5266), UINT32_C(0x00129263), + UINT32_C(0x0052B578), UINT32_C(0x00CC7106), UINT32_C(0x004128A7), + UINT32_C(0x0074AFC9), UINT32_C(0x001A0821)}, + {UINT32_C(0x0000FE7F), UINT32_C(0x0058CC38), UINT32_C(0x004ACE7A), + UINT32_C(0x0027824A), UINT32_C(0x0071BB43), UINT32_C(0x004CD1C5), + UINT32_C(0x001DE8E5), UINT32_C(0x00FD97F3), UINT32_C(0x004164E0), + UINT32_C(0x00542935), UINT32_C(0x0015EE68)}}, + {{UINT32_C(0x0056201E), UINT32_C(0x00572A88), UINT32_C(0x005A66B9), + UINT32_C(0x00A30E5F), UINT32_C(0x000E20E3), UINT32_C(0x000898BF), + UINT32_C(0x003CC5C7), UINT32_C(0x000170BD), UINT32_C(0x003813EE), + UINT32_C(0x00079874), UINT32_C(0x006A5F45)}, + {UINT32_C(0x00C07AE0), UINT32_C(0x00680DE0), UINT32_C(0x0012D0D6), + UINT32_C(0x00641F64), UINT32_C(0x000E6F53), UINT32_C(0x000A48AC), + UINT32_C(0x002EBABE), UINT32_C(0x0017E4D0), UINT32_C(0x006B3042), + UINT32_C(0x0047391C), UINT32_C(0x003FC7B5)}, + {UINT32_C(0x008AE200), UINT32_C(0x00651B7E), UINT32_C(0x000F51C8), + UINT32_C(0x0034F2DB), UINT32_C(0x00418121), UINT32_C(0x0052E806), + UINT32_C(0x004B57A3), UINT32_C(0x00801E3B), UINT32_C(0x006E2553), + UINT32_C(0x0017FE29), UINT32_C(0x000371F5)}}, + {{UINT32_C(0x00E0B571), UINT32_C(0x0043B547), UINT32_C(0x0015696B), + UINT32_C(0x00732AF4), UINT32_C(0x007B6282), UINT32_C(0x007276FC), + UINT32_C(0x00489692), UINT32_C(0x00536F42), UINT32_C(0x00241953), + UINT32_C(0x0047679B), UINT32_C(0x0017A0AD)}, + {UINT32_C(0x0071332D), UINT32_C(0x00010B6E), UINT32_C(0x007EE392), + UINT32_C(0x00A7B31C), UINT32_C(0x004921ED), UINT32_C(0x000B32BD), + UINT32_C(0x001187FE), UINT32_C(0x00913F47), UINT32_C(0x000B27ED), + UINT32_C(0x0043B431), UINT32_C(0x0055085B)}, + {UINT32_C(0x00E2C137), UINT32_C(0x001AD933), UINT32_C(0x000D0367), + UINT32_C(0x007E38F0), UINT32_C(0x0003205C), UINT32_C(0x0014599A), + UINT32_C(0x001E8DE6), UINT32_C(0x007A88FA), UINT32_C(0x0077198A), + UINT32_C(0x0031A753), UINT32_C(0x002FE194)}}, + {{UINT32_C(0x00682B6C), UINT32_C(0x00652986), UINT32_C(0x001F417F), + UINT32_C(0x00DE4F1B), UINT32_C(0x000EF1F1), UINT32_C(0x00036E7F), + UINT32_C(0x005AD789), UINT32_C(0x00AE8DB4), UINT32_C(0x0076B58D), + UINT32_C(0x002E3942), UINT32_C(0x006F7B10)}, + {UINT32_C(0x009E5FA2), UINT32_C(0x0008F3C7), UINT32_C(0x00043BDE), + UINT32_C(0x0052A794), UINT32_C(0x0044679C), UINT32_C(0x007F28C0), + UINT32_C(0x00382AB6), UINT32_C(0x00395191), UINT32_C(0x0039B531), + UINT32_C(0x0036F81A), UINT32_C(0x00795887)}, + {UINT32_C(0x00F70354), UINT32_C(0x00328B59), UINT32_C(0x003D01A3), + UINT32_C(0x00C9F394), UINT32_C(0x0022F3EA), UINT32_C(0x006F350F), + UINT32_C(0x0058C2B3), UINT32_C(0x0040634F), UINT32_C(0x00320F7C), + UINT32_C(0x006D4BEE), UINT32_C(0x0057CCC9)}}, + {{UINT32_C(0x0093E9B9), UINT32_C(0x006BDC73), UINT32_C(0x0045A4A0), + UINT32_C(0x0051A4D7), UINT32_C(0x005C415B), UINT32_C(0x0066BA11), + UINT32_C(0x005AE064), UINT32_C(0x005245BE), UINT32_C(0x00013BE1), + UINT32_C(0x006DD2F6), UINT32_C(0x006F9657)}, + {UINT32_C(0x00E1468C), UINT32_C(0x0004FD78), UINT32_C(0x005800DD), + UINT32_C(0x0091E526), UINT32_C(0x0012067D), UINT32_C(0x00481847), + UINT32_C(0x000A9B9D), UINT32_C(0x00D7FB7D), UINT32_C(0x0008AF37), + UINT32_C(0x00598387), UINT32_C(0x0053520A)}, + {UINT32_C(0x009411F0), UINT32_C(0x00415CC6), UINT32_C(0x003CFAB9), + UINT32_C(0x00BEE1C6), UINT32_C(0x0011F354), UINT32_C(0x00540421), + UINT32_C(0x005B7E1D), UINT32_C(0x00AA9283), UINT32_C(0x00107457), + UINT32_C(0x000DC4A7), UINT32_C(0x0058459D)}}, + {{UINT32_C(0x00531F14), UINT32_C(0x001009E3), UINT32_C(0x0073B657), + UINT32_C(0x00DC0159), UINT32_C(0x00665408), UINT32_C(0x0008FF55), + UINT32_C(0x007D3DF9), UINT32_C(0x0031F848), UINT32_C(0x000B2149), + UINT32_C(0x002E956E), UINT32_C(0x00749370)}, + {UINT32_C(0x005EACBA), UINT32_C(0x0013C60C), UINT32_C(0x001B1DCF), + UINT32_C(0x00BE1671), UINT32_C(0x005C94CC), UINT32_C(0x00437E24), + UINT32_C(0x00214684), UINT32_C(0x00207638), UINT32_C(0x002A0D18), + UINT32_C(0x001FE161), UINT32_C(0x001F585E)}, + {UINT32_C(0x00FF468A), UINT32_C(0x004D3FD3), UINT32_C(0x000BBF50), + UINT32_C(0x00011D45), UINT32_C(0x001070E3), UINT32_C(0x00438229), + UINT32_C(0x0059AB03), UINT32_C(0x000AA329), UINT32_C(0x00315647), + UINT32_C(0x000CCF61), UINT32_C(0x000F1485)}}, + {{UINT32_C(0x009129E3), UINT32_C(0x0012693C), UINT32_C(0x004E8200), + UINT32_C(0x00027D67), UINT32_C(0x00704244), UINT32_C(0x00210CBE), + UINT32_C(0x00192F03), UINT32_C(0x005142DE), UINT32_C(0x001A84FB), + UINT32_C(0x003745C5), UINT32_C(0x0064B88E)}, + {UINT32_C(0x004FD4A7), UINT32_C(0x0039F707), UINT32_C(0x0027F3CE), + UINT32_C(0x00C4924F), UINT32_C(0x004C1AC9), UINT32_C(0x005438CD), + UINT32_C(0x0029571A), UINT32_C(0x009A42D3), UINT32_C(0x00437704), + UINT32_C(0x00466DF8), UINT32_C(0x004CAE5F)}, + {UINT32_C(0x00CF7ED3), UINT32_C(0x00327495), UINT32_C(0x0023D857), + UINT32_C(0x003ADCC1), UINT32_C(0x00783A07), UINT32_C(0x0070C835), + UINT32_C(0x0063B436), UINT32_C(0x00AF64FA), UINT32_C(0x0043E2D6), + UINT32_C(0x0020BE90), UINT32_C(0x001B98ED)}}, + {{UINT32_C(0x00A4C93E), UINT32_C(0x004F4C24), UINT32_C(0x007F4777), + UINT32_C(0x000570E1), UINT32_C(0x003BF809), UINT32_C(0x001608A3), + UINT32_C(0x0073E59E), UINT32_C(0x00B32CC7), UINT32_C(0x005501BF), + UINT32_C(0x00027C79), UINT32_C(0x00793FF1)}, + {UINT32_C(0x0019DCA8), UINT32_C(0x001F6A93), UINT32_C(0x007FB9FE), + UINT32_C(0x00389B1A), UINT32_C(0x0032A1FC), UINT32_C(0x001BD948), + UINT32_C(0x00661278), UINT32_C(0x00C98D56), UINT32_C(0x005CDFB2), + UINT32_C(0x004DF065), UINT32_C(0x004DA8B5)}, + {UINT32_C(0x008AF82E), UINT32_C(0x0049B701), UINT32_C(0x002A4058), + UINT32_C(0x00937D79), UINT32_C(0x003E1209), UINT32_C(0x006D0224), + UINT32_C(0x00654260), UINT32_C(0x0089CD81), UINT32_C(0x0031BE9C), + UINT32_C(0x007F915B), UINT32_C(0x00545CEB)}}, + {{UINT32_C(0x00606923), UINT32_C(0x00535E19), UINT32_C(0x004B9720), + UINT32_C(0x007CF3AC), UINT32_C(0x0009FEE2), UINT32_C(0x0021E97C), + UINT32_C(0x00417B8D), UINT32_C(0x0005C8DC), UINT32_C(0x00278974), + UINT32_C(0x00220131), UINT32_C(0x0001F1EA)}, + {UINT32_C(0x0051751A), UINT32_C(0x0022CFFE), UINT32_C(0x0065EAE7), + UINT32_C(0x0002D66F), UINT32_C(0x001CFE5E), UINT32_C(0x0004D158), + UINT32_C(0x003519D9), UINT32_C(0x00C3A426), UINT32_C(0x0050617E), + UINT32_C(0x003DFC62), UINT32_C(0x000C1E82)}, + {UINT32_C(0x0054E7F7), UINT32_C(0x003159A5), UINT32_C(0x00536937), + UINT32_C(0x00743C99), UINT32_C(0x002C5B9E), UINT32_C(0x003E5BAC), + UINT32_C(0x00713E45), UINT32_C(0x001C8CC3), UINT32_C(0x00379CFC), + UINT32_C(0x0040AC92), UINT32_C(0x004FD6BA)}}, + {{UINT32_C(0x00375AB1), UINT32_C(0x00558A76), UINT32_C(0x00127659), + UINT32_C(0x002E36DD), UINT32_C(0x0017A438), UINT32_C(0x0037085E), + UINT32_C(0x00460F93), UINT32_C(0x00DC21D1), UINT32_C(0x006D33E1), + UINT32_C(0x004422EB), UINT32_C(0x003B5755)}, + {UINT32_C(0x003DA9D4), UINT32_C(0x002248E9), UINT32_C(0x0003EAEC), + UINT32_C(0x00D43561), UINT32_C(0x001BF26D), UINT32_C(0x005C5F13), + UINT32_C(0x00626C12), UINT32_C(0x00B918DF), UINT32_C(0x0065CADE), + UINT32_C(0x00717357), UINT32_C(0x005BB6B5)}, + {UINT32_C(0x004024E3), UINT32_C(0x0046B939), UINT32_C(0x004E46F3), + UINT32_C(0x001511AF), UINT32_C(0x00776BD7), UINT32_C(0x00320079), + UINT32_C(0x007332F3), UINT32_C(0x007C852A), UINT32_C(0x007816D9), + UINT32_C(0x0068E65E), UINT32_C(0x0045DBB4)}}, + {{UINT32_C(0x00E0980A), UINT32_C(0x003CBFDB), UINT32_C(0x0074F5AA), + UINT32_C(0x001EA8DD), UINT32_C(0x002C4C50), UINT32_C(0x00311D45), + UINT32_C(0x0039C948), UINT32_C(0x0055988C), UINT32_C(0x005B5B63), + UINT32_C(0x0041F40E), UINT32_C(0x002C22D4)}, + {UINT32_C(0x00AE7440), UINT32_C(0x002ACDC7), UINT32_C(0x0078F4C2), + UINT32_C(0x00199902), UINT32_C(0x001399A7), UINT32_C(0x003DDA20), + UINT32_C(0x00658152), UINT32_C(0x005F646B), UINT32_C(0x006CA0B4), + UINT32_C(0x0073AF03), UINT32_C(0x00052716)}, + {UINT32_C(0x007F80B6), UINT32_C(0x003B2F94), UINT32_C(0x00373B83), + UINT32_C(0x00EA1B50), UINT32_C(0x00716C1C), UINT32_C(0x0047A779), + UINT32_C(0x006E478C), UINT32_C(0x009F1C86), UINT32_C(0x00772EF9), + UINT32_C(0x003C8BB5), UINT32_C(0x0003308F)}}, + }, + { + {{UINT32_C(0x003A0F8A), UINT32_C(0x00239C42), UINT32_C(0x002C8997), + UINT32_C(0x00CB1312), UINT32_C(0x000BA3BF), UINT32_C(0x00433E65), + UINT32_C(0x0004E93D), UINT32_C(0x00BC78BF), UINT32_C(0x0016315F), + UINT32_C(0x007839DA), UINT32_C(0x00072F5D)}, + {UINT32_C(0x00431B86), UINT32_C(0x0052B0C9), UINT32_C(0x007B6B54), + UINT32_C(0x0004C666), UINT32_C(0x0021961D), UINT32_C(0x00630D09), + UINT32_C(0x0026B7F8), UINT32_C(0x004B5633), UINT32_C(0x0036F916), + UINT32_C(0x007D08E5), UINT32_C(0x0009930C)}, + {UINT32_C(0x006B4F00), UINT32_C(0x001D54A4), UINT32_C(0x00692DA9), + UINT32_C(0x0098837B), UINT32_C(0x0065006A), UINT32_C(0x000704B4), + UINT32_C(0x00424FF9), UINT32_C(0x00C25B4D), UINT32_C(0x005B6D40), + UINT32_C(0x0054C25F), UINT32_C(0x00387F6A)}}, + {{UINT32_C(0x002F5512), UINT32_C(0x00654E2D), UINT32_C(0x00668342), + UINT32_C(0x00E2D4F5), UINT32_C(0x001FCDE3), UINT32_C(0x00396F10), + UINT32_C(0x00474238), UINT32_C(0x001DFA11), UINT32_C(0x00536151), + UINT32_C(0x0060AA5E), UINT32_C(0x0008AD4A)}, + {UINT32_C(0x00E427F0), UINT32_C(0x005588B0), UINT32_C(0x002428A4), + UINT32_C(0x00DD098A), UINT32_C(0x002CAE12), UINT32_C(0x0005B6F7), + UINT32_C(0x0003677F), UINT32_C(0x00B1209B), UINT32_C(0x000B9B82), + UINT32_C(0x007C5D85), UINT32_C(0x00503BBE)}, + {UINT32_C(0x003F3EE8), UINT32_C(0x0071495D), UINT32_C(0x004CA27C), + UINT32_C(0x0057A105), UINT32_C(0x0038F4ED), UINT32_C(0x00019BA2), + UINT32_C(0x00772D19), UINT32_C(0x000C8A1F), UINT32_C(0x002F07EB), + UINT32_C(0x0009E4D0), UINT32_C(0x007AF54E)}}, + {{UINT32_C(0x009ED4D4), UINT32_C(0x0035F235), UINT32_C(0x003B3EFE), + UINT32_C(0x00B5687B), UINT32_C(0x007499B6), UINT32_C(0x004AEC1B), + UINT32_C(0x0011D9F3), UINT32_C(0x00F934CA), UINT32_C(0x00626585), + UINT32_C(0x000054A1), UINT32_C(0x0078ADC1)}, + {UINT32_C(0x000F1D44), UINT32_C(0x00067701), UINT32_C(0x002F00AB), + UINT32_C(0x008F68D3), UINT32_C(0x001C1C3B), UINT32_C(0x0049876F), + UINT32_C(0x007C5E0C), UINT32_C(0x00958C8A), UINT32_C(0x00585F0E), + UINT32_C(0x003980D2), UINT32_C(0x004C2741)}, + {UINT32_C(0x004F0FD3), UINT32_C(0x000519E7), UINT32_C(0x00455DA2), + UINT32_C(0x00E4A2DB), UINT32_C(0x0006A399), UINT32_C(0x005F65BE), + UINT32_C(0x0010C895), UINT32_C(0x00E1E39C), UINT32_C(0x000D2D62), + UINT32_C(0x005489D3), UINT32_C(0x0064F071)}}, + {{UINT32_C(0x0075E904), UINT32_C(0x0034221F), UINT32_C(0x006C3082), + UINT32_C(0x001DFF10), UINT32_C(0x007E367A), UINT32_C(0x0044654C), + UINT32_C(0x00214821), UINT32_C(0x0044A5B4), UINT32_C(0x0065B709), + UINT32_C(0x001D42EE), UINT32_C(0x001A97DC)}, + {UINT32_C(0x000AD26D), UINT32_C(0x0030E580), UINT32_C(0x006F212B), + UINT32_C(0x00100EE6), UINT32_C(0x000F70F2), UINT32_C(0x007CA3C6), + UINT32_C(0x0017EBC5), UINT32_C(0x00311581), UINT32_C(0x002B7BB5), + UINT32_C(0x00283403), UINT32_C(0x0001A581)}, + {UINT32_C(0x009043A2), UINT32_C(0x001B3A77), UINT32_C(0x000FA816), + UINT32_C(0x004B33BF), UINT32_C(0x005044AF), UINT32_C(0x001584E4), + UINT32_C(0x00417440), UINT32_C(0x0006E3D6), UINT32_C(0x00723841), + UINT32_C(0x007F1CF7), UINT32_C(0x000A8A6D)}}, + {{UINT32_C(0x0041A857), UINT32_C(0x0034AE73), UINT32_C(0x004BB287), + UINT32_C(0x0086B914), UINT32_C(0x006E11BD), UINT32_C(0x000F0FD1), + UINT32_C(0x003523A3), UINT32_C(0x00860736), UINT32_C(0x00209E71), + UINT32_C(0x0021DE0F), UINT32_C(0x001A4D6B)}, + {UINT32_C(0x00F677D7), UINT32_C(0x0048110C), UINT32_C(0x0008F908), + UINT32_C(0x009BD400), UINT32_C(0x006B94AC), UINT32_C(0x0037B8C2), + UINT32_C(0x0049854F), UINT32_C(0x005C4D2F), UINT32_C(0x003BA675), + UINT32_C(0x003C2448), UINT32_C(0x0069DC9E)}, + {UINT32_C(0x00025EE8), UINT32_C(0x00384FEB), UINT32_C(0x001C9DA4), + UINT32_C(0x0005A77C), UINT32_C(0x002CEBD8), UINT32_C(0x00253110), + UINT32_C(0x0048F3CD), UINT32_C(0x0045CF49), UINT32_C(0x004771CD), + UINT32_C(0x003F1990), UINT32_C(0x004F6051)}}, + {{UINT32_C(0x0003827C), UINT32_C(0x001F112D), UINT32_C(0x0071973A), + UINT32_C(0x0099B096), UINT32_C(0x000C34F8), UINT32_C(0x00397A6A), + UINT32_C(0x007F26ED), UINT32_C(0x00AD0CF1), UINT32_C(0x0069FEEE), + UINT32_C(0x000BB893), UINT32_C(0x00525AC4)}, + {UINT32_C(0x001DE590), UINT32_C(0x0063FBAF), UINT32_C(0x0013D7EB), + UINT32_C(0x0042B275), UINT32_C(0x006A1E1B), UINT32_C(0x0010AEC1), + UINT32_C(0x002C78D4), UINT32_C(0x0028C9DF), UINT32_C(0x0045854B), + UINT32_C(0x000789E7), UINT32_C(0x0000074F)}, + {UINT32_C(0x008229BF), UINT32_C(0x0069358B), UINT32_C(0x001825AA), + UINT32_C(0x00181405), UINT32_C(0x0073C536), UINT32_C(0x0063CEAE), + UINT32_C(0x0015B3E7), UINT32_C(0x008AFF3F), UINT32_C(0x0010C89E), + UINT32_C(0x001AF589), UINT32_C(0x004E0053)}}, + {{UINT32_C(0x0028B9C8), UINT32_C(0x0034B521), UINT32_C(0x003323FB), + UINT32_C(0x00B663B0), UINT32_C(0x004DAAA1), UINT32_C(0x002616C9), + UINT32_C(0x0032ABEB), UINT32_C(0x0040C353), UINT32_C(0x00086B1D), + UINT32_C(0x0036A180), UINT32_C(0x003E458C)}, + {UINT32_C(0x00DCF643), UINT32_C(0x002C1001), UINT32_C(0x0052AA3F), + UINT32_C(0x008E9839), UINT32_C(0x004A4E69), UINT32_C(0x001D0E16), + UINT32_C(0x002FBB80), UINT32_C(0x0043D67E), UINT32_C(0x00478B72), + UINT32_C(0x000F9CA3), UINT32_C(0x003AFC42)}, + {UINT32_C(0x000DD581), UINT32_C(0x007F85BA), UINT32_C(0x00436D63), + UINT32_C(0x00598F90), UINT32_C(0x0014B661), UINT32_C(0x00306562), + UINT32_C(0x00761E86), UINT32_C(0x006C8505), UINT32_C(0x00568527), + UINT32_C(0x006FDA5A), UINT32_C(0x001ADEA0)}}, + {{UINT32_C(0x00890618), UINT32_C(0x000CD682), UINT32_C(0x007E36FF), + UINT32_C(0x00303F12), UINT32_C(0x000B2A6D), UINT32_C(0x00415241), + UINT32_C(0x0025E2C9), UINT32_C(0x00F0E829), UINT32_C(0x003A20B1), + UINT32_C(0x005BC247), UINT32_C(0x004FF913)}, + {UINT32_C(0x00C77BF2), UINT32_C(0x004061A1), UINT32_C(0x007197C8), + UINT32_C(0x0031BABD), UINT32_C(0x00096046), UINT32_C(0x0045E643), + UINT32_C(0x006FC909), UINT32_C(0x00088EA6), UINT32_C(0x0070A7CA), + UINT32_C(0x0047B9D0), UINT32_C(0x0050FC48)}, + {UINT32_C(0x00FF3B98), UINT32_C(0x0078A423), UINT32_C(0x0012CC47), + UINT32_C(0x00AE776D), UINT32_C(0x0021495E), UINT32_C(0x004A3D73), + UINT32_C(0x00391838), UINT32_C(0x001B0893), UINT32_C(0x000AE103), + UINT32_C(0x005B7AC6), UINT32_C(0x0058F1A9)}}, + {{UINT32_C(0x00CAFC7E), UINT32_C(0x006D3D15), UINT32_C(0x003C5E44), + UINT32_C(0x00246F10), UINT32_C(0x00654846), UINT32_C(0x0021C350), + UINT32_C(0x0029B782), UINT32_C(0x000F3BD5), UINT32_C(0x004BA2E1), + UINT32_C(0x000A9813), UINT32_C(0x003DAC06)}, + {UINT32_C(0x0081BEA5), UINT32_C(0x005AF750), UINT32_C(0x00231C43), + UINT32_C(0x00546577), UINT32_C(0x00021D5B), UINT32_C(0x00323115), + UINT32_C(0x00360EE5), UINT32_C(0x000B7CC0), UINT32_C(0x0042696D), + UINT32_C(0x0014F38B), UINT32_C(0x00637448)}, + {UINT32_C(0x00A10272), UINT32_C(0x0071C42F), UINT32_C(0x005406FB), + UINT32_C(0x000728BE), UINT32_C(0x003FCE1D), UINT32_C(0x00721CC4), + UINT32_C(0x00100233), UINT32_C(0x004A237D), UINT32_C(0x004691A1), + UINT32_C(0x00439B3E), UINT32_C(0x0068BD1A)}}, + {{UINT32_C(0x0071251B), UINT32_C(0x00458B01), UINT32_C(0x001E79F8), + UINT32_C(0x00A77A06), UINT32_C(0x0074587F), UINT32_C(0x004DC1C1), + UINT32_C(0x003C2A50), UINT32_C(0x00255231), UINT32_C(0x005C317C), + UINT32_C(0x005F9187), UINT32_C(0x007CF5A9)}, + {UINT32_C(0x00098FC2), UINT32_C(0x004404A1), UINT32_C(0x004D04AA), + UINT32_C(0x00464189), UINT32_C(0x0061D090), UINT32_C(0x004E55A9), + UINT32_C(0x0007C50C), UINT32_C(0x00BE825E), UINT32_C(0x00047F09), + UINT32_C(0x000F7FEC), UINT32_C(0x004E42D2)}, + {UINT32_C(0x00355E39), UINT32_C(0x002EAC10), UINT32_C(0x00511D7E), + UINT32_C(0x00DF8195), UINT32_C(0x00658D53), UINT32_C(0x007832A7), + UINT32_C(0x00688D4A), UINT32_C(0x00630A34), UINT32_C(0x001BF382), + UINT32_C(0x005EC16E), UINT32_C(0x007B68AD)}}, + {{UINT32_C(0x001E2363), UINT32_C(0x0019180C), UINT32_C(0x000DC491), + UINT32_C(0x00624C85), UINT32_C(0x004109E5), UINT32_C(0x006F6F9F), + UINT32_C(0x004721E1), UINT32_C(0x00D89B92), UINT32_C(0x002ACCC1), + UINT32_C(0x0061C123), UINT32_C(0x00181505)}, + {UINT32_C(0x005EFABB), UINT32_C(0x007D8985), UINT32_C(0x003C5BC1), + UINT32_C(0x008F46C5), UINT32_C(0x0012B4ED), UINT32_C(0x0064759D), + UINT32_C(0x0058D2A9), UINT32_C(0x00C25CA8), UINT32_C(0x004E6E93), + UINT32_C(0x00503BCA), UINT32_C(0x00512AAA)}, + {UINT32_C(0x009D1E14), UINT32_C(0x0074E51E), UINT32_C(0x00245CBE), + UINT32_C(0x00248FE2), UINT32_C(0x0074BDE8), UINT32_C(0x007C074E), + UINT32_C(0x0017A40E), UINT32_C(0x00FF34D1), UINT32_C(0x0057C0A3), + UINT32_C(0x0061B3EC), UINT32_C(0x002677F7)}}, + {{UINT32_C(0x00CBF754), UINT32_C(0x0031AE3A), UINT32_C(0x000333B8), + UINT32_C(0x00D4CF78), UINT32_C(0x003E4A56), UINT32_C(0x004E6254), + UINT32_C(0x002FDBFA), UINT32_C(0x00144B0A), UINT32_C(0x0063FB6C), + UINT32_C(0x0001D4D6), UINT32_C(0x007A746B)}, + {UINT32_C(0x007361B9), UINT32_C(0x005E8B06), UINT32_C(0x0044E134), + UINT32_C(0x00F4A847), UINT32_C(0x002329D4), UINT32_C(0x0044A5B7), + UINT32_C(0x0044F475), UINT32_C(0x00E61797), UINT32_C(0x0057FB07), + UINT32_C(0x00051722), UINT32_C(0x00241ECD)}, + {UINT32_C(0x0022A500), UINT32_C(0x0039A10A), UINT32_C(0x0042D3D5), + UINT32_C(0x00B567D7), UINT32_C(0x0069AA6D), UINT32_C(0x00711215), + UINT32_C(0x002ED8DD), UINT32_C(0x0000F158), UINT32_C(0x006238BE), + UINT32_C(0x005650C3), UINT32_C(0x003D21E8)}}, + {{UINT32_C(0x008B1C66), UINT32_C(0x0019194C), UINT32_C(0x0014BFE9), + UINT32_C(0x00748F3D), UINT32_C(0x003CCE8F), UINT32_C(0x0048A87C), + UINT32_C(0x006A1307), UINT32_C(0x006C2B73), UINT32_C(0x002E37A4), + UINT32_C(0x0029162B), UINT32_C(0x0027B4E0)}, + {UINT32_C(0x00C21F63), UINT32_C(0x0017955E), UINT32_C(0x0078C143), + UINT32_C(0x00D5E54D), UINT32_C(0x00472F3D), UINT32_C(0x004E389E), + UINT32_C(0x005B4F76), UINT32_C(0x004D23EE), UINT32_C(0x00532138), + UINT32_C(0x00573674), UINT32_C(0x000CEC4B)}, + {UINT32_C(0x003DE334), UINT32_C(0x006224BD), UINT32_C(0x000F9C6F), + UINT32_C(0x000A9395), UINT32_C(0x00345EAF), UINT32_C(0x00107910), + UINT32_C(0x0070F64A), UINT32_C(0x00D236DB), UINT32_C(0x0027355D), + UINT32_C(0x00164A6C), UINT32_C(0x007D6D7B)}}, + {{UINT32_C(0x008036C4), UINT32_C(0x004A1B91), UINT32_C(0x00471A92), + UINT32_C(0x000371CC), UINT32_C(0x0056DDC0), UINT32_C(0x00130FC6), + UINT32_C(0x00287BA8), UINT32_C(0x00EAE3E3), UINT32_C(0x006A7352), + UINT32_C(0x004599E9), UINT32_C(0x00382164)}, + {UINT32_C(0x00B93F79), UINT32_C(0x001E39CD), UINT32_C(0x00201F70), + UINT32_C(0x00EF1A24), UINT32_C(0x00530D3A), UINT32_C(0x005F0647), + UINT32_C(0x00008EE9), UINT32_C(0x00AD3CCB), UINT32_C(0x006C1B3C), + UINT32_C(0x0020B88E), UINT32_C(0x00041C1B)}, + {UINT32_C(0x006CAF3D), UINT32_C(0x004A21AC), UINT32_C(0x001CDE34), + UINT32_C(0x0033DD65), UINT32_C(0x005353D1), UINT32_C(0x00584597), + UINT32_C(0x00114182), UINT32_C(0x005CB2D9), UINT32_C(0x0053A5C5), + UINT32_C(0x0071C2D4), UINT32_C(0x00244902)}}, + {{UINT32_C(0x00AFA1E1), UINT32_C(0x0064BD11), UINT32_C(0x0014D188), + UINT32_C(0x0002D13D), UINT32_C(0x000E36B8), UINT32_C(0x00354548), + UINT32_C(0x007BB62C), UINT32_C(0x0078DF50), UINT32_C(0x0007E63C), + UINT32_C(0x00056614), UINT32_C(0x003D5281)}, + {UINT32_C(0x0028DBA4), UINT32_C(0x0004B80D), UINT32_C(0x004F7FF8), + UINT32_C(0x007AA928), UINT32_C(0x0004ABF1), UINT32_C(0x0023D6FF), + UINT32_C(0x0024B312), UINT32_C(0x00023B8A), UINT32_C(0x003B5EDA), + UINT32_C(0x005AF149), UINT32_C(0x0019FA7B)}, + {UINT32_C(0x00FF5820), UINT32_C(0x00358792), UINT32_C(0x0021A28C), + UINT32_C(0x00C51693), UINT32_C(0x000098EE), UINT32_C(0x00034266), + UINT32_C(0x0017723D), UINT32_C(0x00C2DDF5), UINT32_C(0x0000E734), + UINT32_C(0x006DAEF6), UINT32_C(0x0071F7AD)}}, + {{UINT32_C(0x002E3AD1), UINT32_C(0x00779201), UINT32_C(0x0068289F), + UINT32_C(0x003F10B0), UINT32_C(0x002706C6), UINT32_C(0x002565B5), + UINT32_C(0x00190C55), UINT32_C(0x0033BD51), UINT32_C(0x000E50F0), + UINT32_C(0x00500819), UINT32_C(0x007C9D08)}, + {UINT32_C(0x00FA9D8B), UINT32_C(0x0038DA3F), UINT32_C(0x00693AB6), + UINT32_C(0x00DE9636), UINT32_C(0x005BB3EC), UINT32_C(0x0065B8F5), + UINT32_C(0x00481E55), UINT32_C(0x0061E2C9), UINT32_C(0x001643BF), + UINT32_C(0x00559100), UINT32_C(0x005F79E6)}, + {UINT32_C(0x002E392D), UINT32_C(0x001227D4), UINT32_C(0x00293C7B), + UINT32_C(0x00F92994), UINT32_C(0x002FAEE0), UINT32_C(0x00322623), + UINT32_C(0x00434FE2), UINT32_C(0x00199F46), UINT32_C(0x005C180E), + UINT32_C(0x005C3B89), UINT32_C(0x00566D13)}}, + }, + { + {{UINT32_C(0x004EC5D5), UINT32_C(0x00019CD6), UINT32_C(0x000BBD45), + UINT32_C(0x002193AE), UINT32_C(0x003165C6), UINT32_C(0x003D8D74), + UINT32_C(0x0045059C), UINT32_C(0x008CF60C), UINT32_C(0x00487D06), + UINT32_C(0x005A9D09), UINT32_C(0x007FC6E0)}, + {UINT32_C(0x0037B42A), UINT32_C(0x0001A576), UINT32_C(0x000A750D), + UINT32_C(0x0045B5DD), UINT32_C(0x006F0E25), UINT32_C(0x001F4ABF), + UINT32_C(0x0056E0BA), UINT32_C(0x0065543B), UINT32_C(0x00564264), + UINT32_C(0x005ADF58), UINT32_C(0x0069B6ED)}, + {UINT32_C(0x0008533F), UINT32_C(0x00673ED0), UINT32_C(0x0053205E), + UINT32_C(0x0060EB8B), UINT32_C(0x000C0216), UINT32_C(0x00483015), + UINT32_C(0x001974B0), UINT32_C(0x00610E9B), UINT32_C(0x00116E88), + UINT32_C(0x001B41F9), UINT32_C(0x003650B6)}}, + {{UINT32_C(0x001E87C9), UINT32_C(0x00485E07), UINT32_C(0x00473783), + UINT32_C(0x009E4755), UINT32_C(0x0077AAE3), UINT32_C(0x006CF828), + UINT32_C(0x0064BF5B), UINT32_C(0x00DD1614), UINT32_C(0x001F3F82), + UINT32_C(0x000CDC74), UINT32_C(0x005A217D)}, + {UINT32_C(0x007E7DC9), UINT32_C(0x004C5775), UINT32_C(0x00577E73), + UINT32_C(0x0054AC09), UINT32_C(0x00692B30), UINT32_C(0x005074AE), + UINT32_C(0x0047FE74), UINT32_C(0x00814E6D), UINT32_C(0x00611400), + UINT32_C(0x0054CC45), UINT32_C(0x0015E56A)}, + {UINT32_C(0x0015BF7F), UINT32_C(0x00720BB8), UINT32_C(0x00128FA3), + UINT32_C(0x00EFF525), UINT32_C(0x002C2B16), UINT32_C(0x000032B7), + UINT32_C(0x0056FA97), UINT32_C(0x006F11AE), UINT32_C(0x0021850D), + UINT32_C(0x00755623), UINT32_C(0x0004F475)}}, + {{UINT32_C(0x00DC22CC), UINT32_C(0x005EC978), UINT32_C(0x0075EFAB), + UINT32_C(0x00A67308), UINT32_C(0x001E17A7), UINT32_C(0x00471117), + UINT32_C(0x003D0D24), UINT32_C(0x0002B875), UINT32_C(0x005CD15C), + UINT32_C(0x00791ED0), UINT32_C(0x00519998)}, + {UINT32_C(0x006DFC80), UINT32_C(0x003F2D4F), UINT32_C(0x00325346), + UINT32_C(0x00CF12E4), UINT32_C(0x000EF0D1), UINT32_C(0x001D644B), + UINT32_C(0x006A72BB), UINT32_C(0x00E463A5), UINT32_C(0x00393A41), + UINT32_C(0x003CFAB9), UINT32_C(0x0045AEDD)}, + {UINT32_C(0x008CF232), UINT32_C(0x00355CF6), UINT32_C(0x0018330B), + UINT32_C(0x00E357D6), UINT32_C(0x002E9F65), UINT32_C(0x00192AA3), + UINT32_C(0x0050E31A), UINT32_C(0x00542788), UINT32_C(0x005C03B4), + UINT32_C(0x0016A4C7), UINT32_C(0x004D85E7)}}, + {{UINT32_C(0x005E1B7C), UINT32_C(0x005396EB), UINT32_C(0x002953AC), + UINT32_C(0x0066F21B), UINT32_C(0x000744EB), UINT32_C(0x002BB57E), + UINT32_C(0x00777EC0), UINT32_C(0x000C0908), UINT32_C(0x0063DFBF), + UINT32_C(0x0019D0E1), UINT32_C(0x0053259A)}, + {UINT32_C(0x00092AA9), UINT32_C(0x006D7967), UINT32_C(0x007A34E9), + UINT32_C(0x0088833B), UINT32_C(0x007C72DF), UINT32_C(0x00154B92), + UINT32_C(0x0004BEAB), UINT32_C(0x00709C21), UINT32_C(0x001A33F0), + UINT32_C(0x007A15C7), UINT32_C(0x007CB81A)}, + {UINT32_C(0x00427117), UINT32_C(0x0060010D), UINT32_C(0x002FB59E), + UINT32_C(0x0081DF74), UINT32_C(0x001C3AFF), UINT32_C(0x00325E38), + UINT32_C(0x003E9EB8), UINT32_C(0x00AFA8A7), UINT32_C(0x002A7623), + UINT32_C(0x001940EC), UINT32_C(0x00678A03)}}, + {{UINT32_C(0x0089D0DA), UINT32_C(0x005DD15D), UINT32_C(0x0007F023), + UINT32_C(0x0084B837), UINT32_C(0x0059A36B), UINT32_C(0x0014C4F9), + UINT32_C(0x005A10B9), UINT32_C(0x00EEA8E6), UINT32_C(0x0032C712), + UINT32_C(0x00207104), UINT32_C(0x0051CC16)}, + {UINT32_C(0x00788203), UINT32_C(0x005BFACD), UINT32_C(0x0034A954), + UINT32_C(0x00E0855B), UINT32_C(0x007F6BD9), UINT32_C(0x003EAB3A), + UINT32_C(0x0061F2A3), UINT32_C(0x004BF5E9), UINT32_C(0x00203A8B), + UINT32_C(0x007B37C8), UINT32_C(0x00403792)}, + {UINT32_C(0x0091D84F), UINT32_C(0x006D1BA7), UINT32_C(0x0036B343), + UINT32_C(0x00319941), UINT32_C(0x000AB9F0), UINT32_C(0x007A1DC1), + UINT32_C(0x0031981C), UINT32_C(0x00F43266), UINT32_C(0x0008BB75), + UINT32_C(0x00485DAF), UINT32_C(0x000A9D74)}}, + {{UINT32_C(0x00243625), UINT32_C(0x005BB841), UINT32_C(0x00525C95), + UINT32_C(0x00BC116B), UINT32_C(0x003839C3), UINT32_C(0x0041EB1B), + UINT32_C(0x00221F6B), UINT32_C(0x004EC4AF), UINT32_C(0x006D762B), + UINT32_C(0x005C54FC), UINT32_C(0x007A1F82)}, + {UINT32_C(0x00C26515), UINT32_C(0x0000ED4C), UINT32_C(0x001E3B09), + UINT32_C(0x000BEE59), UINT32_C(0x0063B3C5), UINT32_C(0x00275D84), + UINT32_C(0x005756AC), UINT32_C(0x00AF183D), UINT32_C(0x0009020F), + UINT32_C(0x006E34C7), UINT32_C(0x004DC0C8)}, + {UINT32_C(0x005B4EB0), UINT32_C(0x0039BA12), UINT32_C(0x000B792C), + UINT32_C(0x00D6B962), UINT32_C(0x003DFD9C), UINT32_C(0x004C2A8A), + UINT32_C(0x0022A010), UINT32_C(0x0067AFC9), UINT32_C(0x0057241F), + UINT32_C(0x003A2810), UINT32_C(0x005C0C2A)}}, + {{UINT32_C(0x000F4D05), UINT32_C(0x001E1BA9), UINT32_C(0x003631A2), + UINT32_C(0x002B29CE), UINT32_C(0x007696F1), UINT32_C(0x00313416), + UINT32_C(0x001EB6D3), UINT32_C(0x008D3460), UINT32_C(0x003364E8), + UINT32_C(0x000429EE), UINT32_C(0x007E4FF6)}, + {UINT32_C(0x00B98C72), UINT32_C(0x0043B1EA), UINT32_C(0x001A581F), + UINT32_C(0x00295970), UINT32_C(0x0010F065), UINT32_C(0x0039E01E), + UINT32_C(0x002E33BA), UINT32_C(0x0047DF1A), UINT32_C(0x0041422E), + UINT32_C(0x005A3851), UINT32_C(0x003FA8FF)}, + {UINT32_C(0x00A29B8E), UINT32_C(0x00702100), UINT32_C(0x001DFDFB), + UINT32_C(0x006CA23F), UINT32_C(0x004F967B), UINT32_C(0x00417B94), + UINT32_C(0x0073DD0F), UINT32_C(0x00D08DB3), UINT32_C(0x001C4006), + UINT32_C(0x003F92DD), UINT32_C(0x000F2874)}}, + {{UINT32_C(0x008D5AC8), UINT32_C(0x0031FE77), UINT32_C(0x001EE7B5), + UINT32_C(0x0017DDC8), UINT32_C(0x0010F7EB), UINT32_C(0x0078D778), + UINT32_C(0x0051CF94), UINT32_C(0x00737A58), UINT32_C(0x002F2CA5), + UINT32_C(0x00314107), UINT32_C(0x003BD0E4)}, + {UINT32_C(0x00708B31), UINT32_C(0x006E4EE5), UINT32_C(0x0072B5A8), + UINT32_C(0x00B52995), UINT32_C(0x001B7B7D), UINT32_C(0x002853F5), + UINT32_C(0x0071F2D3), UINT32_C(0x0090F660), UINT32_C(0x004E8BAE), + UINT32_C(0x002AEB93), UINT32_C(0x007FE004)}, + {UINT32_C(0x0074B2E7), UINT32_C(0x0036F8CC), UINT32_C(0x005A0B4F), + UINT32_C(0x006AC18C), UINT32_C(0x0023E1D0), UINT32_C(0x0018985D), + UINT32_C(0x0044A4EA), UINT32_C(0x00EAD750), UINT32_C(0x001739B5), + UINT32_C(0x00259016), UINT32_C(0x0069AD16)}}, + {{UINT32_C(0x00236C6C), UINT32_C(0x002BDCF8), UINT32_C(0x00737342), + UINT32_C(0x00FFE743), UINT32_C(0x0067A4D9), UINT32_C(0x0066D9C1), + UINT32_C(0x00681F98), UINT32_C(0x00599DED), UINT32_C(0x0057B074), + UINT32_C(0x001B308C), UINT32_C(0x0056660C)}, + {UINT32_C(0x008B1685), UINT32_C(0x0027EA30), UINT32_C(0x0033CA2D), + UINT32_C(0x0098682C), UINT32_C(0x003F67B0), UINT32_C(0x000C48E9), + UINT32_C(0x0068A704), UINT32_C(0x001C6E9D), UINT32_C(0x00123D06), + UINT32_C(0x0050A933), UINT32_C(0x0053C6D2)}, + {UINT32_C(0x00917431), UINT32_C(0x002F64FB), UINT32_C(0x00755E9F), + UINT32_C(0x005D5B9F), UINT32_C(0x006E0959), UINT32_C(0x00068928), + UINT32_C(0x00509EB9), UINT32_C(0x009B4E5E), UINT32_C(0x0000998B), + UINT32_C(0x0008DAD5), UINT32_C(0x00166125)}}, + {{UINT32_C(0x00074C2E), UINT32_C(0x00652B12), UINT32_C(0x00202F3C), + UINT32_C(0x0042EBC1), UINT32_C(0x00500167), UINT32_C(0x005CDA15), + UINT32_C(0x001381DA), UINT32_C(0x00CC99F2), UINT32_C(0x005723CA), + UINT32_C(0x001A8C3B), UINT32_C(0x003D5615)}, + {UINT32_C(0x00F1A960), UINT32_C(0x007380F6), UINT32_C(0x007009E1), + UINT32_C(0x002EF85B), UINT32_C(0x003B246B), UINT32_C(0x0041405A), + UINT32_C(0x001314CB), UINT32_C(0x009FDCD0), UINT32_C(0x0077491F), + UINT32_C(0x003266F0), UINT32_C(0x00760D83)}, + {UINT32_C(0x00C7818E), UINT32_C(0x007864C2), UINT32_C(0x00244BD0), + UINT32_C(0x00F38B08), UINT32_C(0x00688F96), UINT32_C(0x0075C705), + UINT32_C(0x00278414), UINT32_C(0x00B2BFF0), UINT32_C(0x0067126E), + UINT32_C(0x007B7F7E), UINT32_C(0x00078584)}}, + {{UINT32_C(0x00FE7A46), UINT32_C(0x005584A0), UINT32_C(0x005CDD0D), + UINT32_C(0x004CF5A8), UINT32_C(0x0019CFA7), UINT32_C(0x00087268), + UINT32_C(0x007FF3F3), UINT32_C(0x0087ACFD), UINT32_C(0x0017BD41), + UINT32_C(0x004A35AA), UINT32_C(0x0014C1BD)}, + {UINT32_C(0x005A4052), UINT32_C(0x0032A135), UINT32_C(0x007056C3), + UINT32_C(0x0072F85C), UINT32_C(0x0024A79D), UINT32_C(0x003D7320), + UINT32_C(0x0007F20D), UINT32_C(0x00BEA269), UINT32_C(0x0032F584), + UINT32_C(0x00557016), UINT32_C(0x0009FC2A)}, + {UINT32_C(0x006E58DD), UINT32_C(0x00414D93), UINT32_C(0x001D725A), + UINT32_C(0x00A5AB22), UINT32_C(0x000AD82C), UINT32_C(0x00613758), + UINT32_C(0x00773B55), UINT32_C(0x00D581E2), UINT32_C(0x006342F0), + UINT32_C(0x0022FB1A), UINT32_C(0x0028348D)}}, + {{UINT32_C(0x00940FFC), UINT32_C(0x006CC86D), UINT32_C(0x0033CE22), + UINT32_C(0x00A629FD), UINT32_C(0x0032CFBE), UINT32_C(0x0011788D), + UINT32_C(0x0027D4E5), UINT32_C(0x0043AC5A), UINT32_C(0x003CEEDA), + UINT32_C(0x000057AA), UINT32_C(0x00614643)}, + {UINT32_C(0x00312B0D), UINT32_C(0x003C3AC9), UINT32_C(0x00126EE8), + UINT32_C(0x003F24AF), UINT32_C(0x0006CC19), UINT32_C(0x00656F4F), + UINT32_C(0x004E91CF), UINT32_C(0x001EC679), UINT32_C(0x0010294E), + UINT32_C(0x0023F5E9), UINT32_C(0x00181E45)}, + {UINT32_C(0x008C28C0), UINT32_C(0x0016213D), UINT32_C(0x0010311C), + UINT32_C(0x00744F39), UINT32_C(0x006CEA8C), UINT32_C(0x0066FA80), + UINT32_C(0x005E3FA5), UINT32_C(0x001D61EB), UINT32_C(0x001E0217), + UINT32_C(0x002F43D5), UINT32_C(0x001EAA47)}}, + {{UINT32_C(0x00854120), UINT32_C(0x005AA732), UINT32_C(0x00608D63), + UINT32_C(0x003180C7), UINT32_C(0x00513CB6), UINT32_C(0x0013362E), + UINT32_C(0x00492465), UINT32_C(0x00A81D33), UINT32_C(0x0038349B), + UINT32_C(0x004C1B24), UINT32_C(0x0061B37A)}, + {UINT32_C(0x00B13B17), UINT32_C(0x003AC756), UINT32_C(0x004C7642), + UINT32_C(0x0067AC7F), UINT32_C(0x003F23FE), UINT32_C(0x0058AA8A), + UINT32_C(0x000B0977), UINT32_C(0x001D605C), UINT32_C(0x00713AD3), + UINT32_C(0x0060BA46), UINT32_C(0x0041F85A)}, + {UINT32_C(0x00E37216), UINT32_C(0x0043A345), UINT32_C(0x00223407), + UINT32_C(0x00256265), UINT32_C(0x0011C42F), UINT32_C(0x00138466), + UINT32_C(0x004733CC), UINT32_C(0x003535EC), UINT32_C(0x0001BC86), + UINT32_C(0x003D1B86), UINT32_C(0x004AE885)}}, + {{UINT32_C(0x00DC7159), UINT32_C(0x001767D1), UINT32_C(0x007AE0AB), + UINT32_C(0x000878A1), UINT32_C(0x004FB364), UINT32_C(0x0033B0EF), + UINT32_C(0x00742CF7), UINT32_C(0x00C6A756), UINT32_C(0x0078F550), + UINT32_C(0x00711F81), UINT32_C(0x0065A975)}, + {UINT32_C(0x00439414), UINT32_C(0x0015AFCF), UINT32_C(0x007EE055), + UINT32_C(0x00DD71C8), UINT32_C(0x0045F656), UINT32_C(0x00624A54), + UINT32_C(0x003005FC), UINT32_C(0x00BC7324), UINT32_C(0x0055842E), + UINT32_C(0x00165223), UINT32_C(0x0037D7D6)}, + {UINT32_C(0x0019F5F5), UINT32_C(0x0020DA89), UINT32_C(0x006C89E9), + UINT32_C(0x00F41904), UINT32_C(0x003D42D9), UINT32_C(0x0055B010), + UINT32_C(0x00175AA4), UINT32_C(0x00B1A716), UINT32_C(0x000083AA), + UINT32_C(0x000A3EEC), UINT32_C(0x00170791)}}, + {{UINT32_C(0x004FE6CC), UINT32_C(0x0027F794), UINT32_C(0x001DEE50), + UINT32_C(0x001D47C8), UINT32_C(0x00482A07), UINT32_C(0x00728F59), + UINT32_C(0x002E9AFB), UINT32_C(0x00416429), UINT32_C(0x00429086), + UINT32_C(0x002A42B2), UINT32_C(0x0004C02A)}, + {UINT32_C(0x004B5C0A), UINT32_C(0x0035BDD6), UINT32_C(0x001FE687), + UINT32_C(0x0027AF73), UINT32_C(0x001A6D1A), UINT32_C(0x000FBB3C), + UINT32_C(0x00213872), UINT32_C(0x00EC16E6), UINT32_C(0x00636F30), + UINT32_C(0x00415394), UINT32_C(0x0012E98D)}, + {UINT32_C(0x008D471A), UINT32_C(0x0069E551), UINT32_C(0x00493B23), + UINT32_C(0x006ED1B7), UINT32_C(0x0047A3E8), UINT32_C(0x00249EC8), + UINT32_C(0x003D1AD9), UINT32_C(0x0023243A), UINT32_C(0x0078E657), + UINT32_C(0x007AC870), UINT32_C(0x0039DDDE)}}, + {{UINT32_C(0x00775995), UINT32_C(0x004A7A1C), UINT32_C(0x00706EC4), + UINT32_C(0x005F75E2), UINT32_C(0x0023C9C5), UINT32_C(0x0024BCC8), + UINT32_C(0x007DC9AC), UINT32_C(0x001AFD8F), UINT32_C(0x006B47B9), + UINT32_C(0x004747AD), UINT32_C(0x007B084D)}, + {UINT32_C(0x000A9B5C), UINT32_C(0x007354D6), UINT32_C(0x006AB188), + UINT32_C(0x00A35212), UINT32_C(0x003BDF54), UINT32_C(0x00027ACE), + UINT32_C(0x002AEF52), UINT32_C(0x00C45137), UINT32_C(0x0058980E), + UINT32_C(0x0050F4F0), UINT32_C(0x003E8EEE)}, + {UINT32_C(0x00EB4040), UINT32_C(0x00618F66), UINT32_C(0x0031BE2F), + UINT32_C(0x00A1EAB0), UINT32_C(0x00038AF5), UINT32_C(0x0001EC6C), + UINT32_C(0x0007421A), UINT32_C(0x0051B097), UINT32_C(0x0043B013), + UINT32_C(0x0060ED3F), UINT32_C(0x0036AC22)}}, + }, + { + {{UINT32_C(0x00A77DAC), UINT32_C(0x001DB3FD), UINT32_C(0x00389F54), + UINT32_C(0x00564F6D), UINT32_C(0x0063CF36), UINT32_C(0x001C46B6), + UINT32_C(0x00311686), UINT32_C(0x00E982B7), UINT32_C(0x00027D0F), + UINT32_C(0x0050362C), UINT32_C(0x001AEA89)}, + {UINT32_C(0x0002BC8A), UINT32_C(0x0036E565), UINT32_C(0x00342121), + UINT32_C(0x00ED769D), UINT32_C(0x002A92C3), UINT32_C(0x00325573), + UINT32_C(0x0018B0E6), UINT32_C(0x00F11ADF), UINT32_C(0x004B976B), + UINT32_C(0x00069633), UINT32_C(0x004FFC55)}, + {UINT32_C(0x00FD2FC2), UINT32_C(0x00401B07), UINT32_C(0x00294102), + UINT32_C(0x008EA5E0), UINT32_C(0x0030664D), UINT32_C(0x00142EC3), + UINT32_C(0x003FE051), UINT32_C(0x00F56D80), UINT32_C(0x0039FEE3), + UINT32_C(0x00000AEB), UINT32_C(0x006D0C5F)}}, + {{UINT32_C(0x00DD75D0), UINT32_C(0x0044A3C3), UINT32_C(0x005A506D), + UINT32_C(0x00EC37FD), UINT32_C(0x00316AD7), UINT32_C(0x0000D14B), + UINT32_C(0x00204476), UINT32_C(0x0051C697), UINT32_C(0x00083305), + UINT32_C(0x0058D9B1), UINT32_C(0x0070999F)}, + {UINT32_C(0x00E5E93B), UINT32_C(0x006C0468), UINT32_C(0x0009400E), + UINT32_C(0x0075F8FF), UINT32_C(0x0035F1A4), UINT32_C(0x00506173), + UINT32_C(0x002364E5), UINT32_C(0x00414D87), UINT32_C(0x0008B606), + UINT32_C(0x00686394), UINT32_C(0x006AA160)}, + {UINT32_C(0x006BD2E2), UINT32_C(0x007A2B7F), UINT32_C(0x005F146B), + UINT32_C(0x00369239), UINT32_C(0x00079C56), UINT32_C(0x00062C62), + UINT32_C(0x0077B021), UINT32_C(0x003A29B7), UINT32_C(0x002867FF), + UINT32_C(0x0055BBB5), UINT32_C(0x0005D042)}}, + {{UINT32_C(0x00D8B383), UINT32_C(0x007DD79F), UINT32_C(0x00789E04), + UINT32_C(0x00F01FC3), UINT32_C(0x0009A138), UINT32_C(0x00652EF9), + UINT32_C(0x0004B8F0), UINT32_C(0x00CD2D9B), UINT32_C(0x002A8B21), + UINT32_C(0x00711CBB), UINT32_C(0x003F479B)}, + {UINT32_C(0x0084BAF3), UINT32_C(0x00077832), UINT32_C(0x005C239A), + UINT32_C(0x0060F9F5), UINT32_C(0x00157D11), UINT32_C(0x004B04C3), + UINT32_C(0x00398E89), UINT32_C(0x00DFDB89), UINT32_C(0x004B12EE), + UINT32_C(0x002B1159), UINT32_C(0x0070A1B8)}, + {UINT32_C(0x00034A6C), UINT32_C(0x004C89E9), UINT32_C(0x0022DB26), + UINT32_C(0x00C601C3), UINT32_C(0x0032D1E3), UINT32_C(0x002503F8), + UINT32_C(0x00632E24), UINT32_C(0x00EA95FF), UINT32_C(0x000FDA31), + UINT32_C(0x002551E5), UINT32_C(0x004F9CB2)}}, + {{UINT32_C(0x00862AF4), UINT32_C(0x00210FBD), UINT32_C(0x001E6C80), + UINT32_C(0x00400C9B), UINT32_C(0x000AA70B), UINT32_C(0x00736A0A), + UINT32_C(0x005A2C84), UINT32_C(0x00C59BAC), UINT32_C(0x000BB281), + UINT32_C(0x002CF44A), UINT32_C(0x0061244E)}, + {UINT32_C(0x00856415), UINT32_C(0x0016B2C8), UINT32_C(0x00735666), + UINT32_C(0x001D23DD), UINT32_C(0x001134A9), UINT32_C(0x0017A1D4), + UINT32_C(0x0026D1CE), UINT32_C(0x00EECC13), UINT32_C(0x0049B200), + UINT32_C(0x00153F17), UINT32_C(0x0011DDAE)}, + {UINT32_C(0x00007750), UINT32_C(0x001134B0), UINT32_C(0x004BF17D), + UINT32_C(0x00D2423A), UINT32_C(0x003D2D7B), UINT32_C(0x00085F31), + UINT32_C(0x00227CDF), UINT32_C(0x00654CD2), UINT32_C(0x00082CCF), + UINT32_C(0x007C9CA4), UINT32_C(0x004C47BB)}}, + {{UINT32_C(0x00362E13), UINT32_C(0x003A337C), UINT32_C(0x002BBA20), + UINT32_C(0x0001856C), UINT32_C(0x0002C1DE), UINT32_C(0x000E51A8), + UINT32_C(0x00457B9D), UINT32_C(0x0057882E), UINT32_C(0x0037807D), + UINT32_C(0x0015B24A), UINT32_C(0x001A74BE)}, + {UINT32_C(0x003DB4CB), UINT32_C(0x004A35FE), UINT32_C(0x003DBBAB), + UINT32_C(0x007E3023), UINT32_C(0x00194FC7), UINT32_C(0x0012B3C2), + UINT32_C(0x00776FBF), UINT32_C(0x001E11B7), UINT32_C(0x002DB7AA), + UINT32_C(0x001DED18), UINT32_C(0x0069ABF1)}, + {UINT32_C(0x005FE93D), UINT32_C(0x000BDB4C), UINT32_C(0x00250B7A), + UINT32_C(0x008A93E9), UINT32_C(0x006F3CAC), UINT32_C(0x0003D972), + UINT32_C(0x0057B7D4), UINT32_C(0x00D0FA5F), UINT32_C(0x0051BCDF), + UINT32_C(0x0037A606), UINT32_C(0x0046594A)}}, + {{UINT32_C(0x00FD1F79), UINT32_C(0x00305A30), UINT32_C(0x000AD2AE), + UINT32_C(0x00BFF664), UINT32_C(0x002CE671), UINT32_C(0x006F9E53), + UINT32_C(0x00242322), UINT32_C(0x000EB83C), UINT32_C(0x000DA108), + UINT32_C(0x007B1505), UINT32_C(0x001BB588)}, + {UINT32_C(0x00D17F2A), UINT32_C(0x0005A272), UINT32_C(0x0023C922), + UINT32_C(0x00F5BEA6), UINT32_C(0x00534FEC), UINT32_C(0x00201847), + UINT32_C(0x0057D139), UINT32_C(0x00553AC8), UINT32_C(0x0038D49D), + UINT32_C(0x000D9A41), UINT32_C(0x0023FA44)}, + {UINT32_C(0x00A4394C), UINT32_C(0x001C1150), UINT32_C(0x000C4BC9), + UINT32_C(0x0013E6EB), UINT32_C(0x0030FD03), UINT32_C(0x005496B5), + UINT32_C(0x002200CE), UINT32_C(0x009477CB), UINT32_C(0x00167FB8), + UINT32_C(0x001C4D58), UINT32_C(0x004FD444)}}, + {{UINT32_C(0x00D5EEEC), UINT32_C(0x0038E42A), UINT32_C(0x005A4364), + UINT32_C(0x00980627), UINT32_C(0x007F2577), UINT32_C(0x003612FD), + UINT32_C(0x004E0E1F), UINT32_C(0x0074D370), UINT32_C(0x00528EA6), + UINT32_C(0x00018673), UINT32_C(0x004D7509)}, + {UINT32_C(0x0029610F), UINT32_C(0x004535B8), UINT32_C(0x00041762), + UINT32_C(0x008EF8FD), UINT32_C(0x002AA59D), UINT32_C(0x00083B18), + UINT32_C(0x00479122), UINT32_C(0x005A4922), UINT32_C(0x002CECA2), + UINT32_C(0x00256BF4), UINT32_C(0x0043B7C3)}, + {UINT32_C(0x00B47D51), UINT32_C(0x00748FB4), UINT32_C(0x00584310), + UINT32_C(0x00EE3A6C), UINT32_C(0x005E556A), UINT32_C(0x0052BA2B), + UINT32_C(0x00500FBB), UINT32_C(0x00A9860A), UINT32_C(0x007A7128), + UINT32_C(0x000D1669), UINT32_C(0x002C17E0)}}, + {{UINT32_C(0x0007B0B0), UINT32_C(0x005AEDEE), UINT32_C(0x0076ED54), + UINT32_C(0x00274E51), UINT32_C(0x007BD17E), UINT32_C(0x000BE439), + UINT32_C(0x000ED5DB), UINT32_C(0x00D7925E), UINT32_C(0x003F2A50), + UINT32_C(0x002F0773), UINT32_C(0x003546F9)}, + {UINT32_C(0x001B8BC5), UINT32_C(0x00567960), UINT32_C(0x0038FA10), + UINT32_C(0x00C2575C), UINT32_C(0x0027332E), UINT32_C(0x003071D4), + UINT32_C(0x0078A9F6), UINT32_C(0x00BCAE5E), UINT32_C(0x00760FF1), + UINT32_C(0x000E8EC0), UINT32_C(0x006EA98F)}, + {UINT32_C(0x00676ADD), UINT32_C(0x004ED26F), UINT32_C(0x0030B66C), + UINT32_C(0x00E96FB8), UINT32_C(0x0055C569), UINT32_C(0x00323FB1), + UINT32_C(0x00440986), UINT32_C(0x00F3E007), UINT32_C(0x005F14FE), + UINT32_C(0x000E5FD2), UINT32_C(0x00585D5A)}}, + {{UINT32_C(0x0032D10F), UINT32_C(0x00607846), UINT32_C(0x00476A55), + UINT32_C(0x00FE8A15), UINT32_C(0x0076749E), UINT32_C(0x00385608), + UINT32_C(0x0029E6F6), UINT32_C(0x0098FFAC), UINT32_C(0x004086D0), + UINT32_C(0x00587F0C), UINT32_C(0x0048DEFF)}, + {UINT32_C(0x008F82EA), UINT32_C(0x00011EC5), UINT32_C(0x001CAAB9), + UINT32_C(0x00B6A781), UINT32_C(0x000436C9), UINT32_C(0x005DDE65), + UINT32_C(0x002E38F8), UINT32_C(0x003A69F4), UINT32_C(0x003DF1D2), + UINT32_C(0x0026F1E7), UINT32_C(0x003D5D6D)}, + {UINT32_C(0x007322DD), UINT32_C(0x001FFAF0), UINT32_C(0x0012A21B), + UINT32_C(0x003853AE), UINT32_C(0x0001D98A), UINT32_C(0x0000748E), + UINT32_C(0x00667AE8), UINT32_C(0x002F7BE9), UINT32_C(0x001686BF), + UINT32_C(0x00050052), UINT32_C(0x0079765D)}}, + {{UINT32_C(0x00267E76), UINT32_C(0x000F5A32), UINT32_C(0x00798CB2), + UINT32_C(0x0086E395), UINT32_C(0x00005266), UINT32_C(0x0025806B), + UINT32_C(0x007EE459), UINT32_C(0x001EF2A7), UINT32_C(0x00034FD1), + UINT32_C(0x0018C3F9), UINT32_C(0x0002FCBE)}, + {UINT32_C(0x004C278B), UINT32_C(0x0025C270), UINT32_C(0x00642402), + UINT32_C(0x0024F47B), UINT32_C(0x006E96A1), UINT32_C(0x006B67FC), + UINT32_C(0x00446A7C), UINT32_C(0x009B9BAB), UINT32_C(0x00774C2A), + UINT32_C(0x005B2890), UINT32_C(0x0007534E)}, + {UINT32_C(0x00979647), UINT32_C(0x003D9A12), UINT32_C(0x0009C489), + UINT32_C(0x002D6F0A), UINT32_C(0x007ED7E2), UINT32_C(0x004A5B1B), + UINT32_C(0x005C265E), UINT32_C(0x006AF72E), UINT32_C(0x003BFD06), + UINT32_C(0x0019EE72), UINT32_C(0x002BC98A)}}, + {{UINT32_C(0x0036094F), UINT32_C(0x0053D51E), UINT32_C(0x0039DA8E), + UINT32_C(0x00C24407), UINT32_C(0x00754444), UINT32_C(0x00541686), + UINT32_C(0x0038413C), UINT32_C(0x003D42D5), UINT32_C(0x002B576F), + UINT32_C(0x0025B7F0), UINT32_C(0x00037AE8)}, + {UINT32_C(0x00FF6011), UINT32_C(0x00739A4B), UINT32_C(0x002CFD0E), + UINT32_C(0x0034CBE5), UINT32_C(0x001C69C4), UINT32_C(0x00183B00), + UINT32_C(0x0070A07F), UINT32_C(0x00416B07), UINT32_C(0x001873B9), + UINT32_C(0x004C82C4), UINT32_C(0x0012AF7C)}, + {UINT32_C(0x009DAB06), UINT32_C(0x00006525), UINT32_C(0x005F4AC2), + UINT32_C(0x0007B1CD), UINT32_C(0x0025B80B), UINT32_C(0x006B0D4A), + UINT32_C(0x0017A0F3), UINT32_C(0x005371E3), UINT32_C(0x00786EF8), + UINT32_C(0x005F7C4F), UINT32_C(0x0060CA6A)}}, + {{UINT32_C(0x00D21942), UINT32_C(0x0071B130), UINT32_C(0x0010AF58), + UINT32_C(0x0032F341), UINT32_C(0x0073BD94), UINT32_C(0x0005C17D), + UINT32_C(0x0052C1D1), UINT32_C(0x00AC355D), UINT32_C(0x007A20DB), + UINT32_C(0x0041259A), UINT32_C(0x0044FFAB)}, + {UINT32_C(0x006E331F), UINT32_C(0x007C1495), UINT32_C(0x00648A89), + UINT32_C(0x00C406A1), UINT32_C(0x000F1EB7), UINT32_C(0x0031E5FB), + UINT32_C(0x006C8D65), UINT32_C(0x00C6C865), UINT32_C(0x004B7DF2), + UINT32_C(0x0079769E), UINT32_C(0x002083D4)}, + {UINT32_C(0x00980997), UINT32_C(0x00485E01), UINT32_C(0x000FDD04), + UINT32_C(0x00404293), UINT32_C(0x001BE19E), UINT32_C(0x00079D78), + UINT32_C(0x0058EB9B), UINT32_C(0x005DBD87), UINT32_C(0x00702A47), + UINT32_C(0x0039F856), UINT32_C(0x000ADFA8)}}, + {{UINT32_C(0x00601C16), UINT32_C(0x006BAD25), UINT32_C(0x000B27D9), + UINT32_C(0x003CE316), UINT32_C(0x000BF903), UINT32_C(0x00305942), + UINT32_C(0x0055AA45), UINT32_C(0x006C251C), UINT32_C(0x001C0764), + UINT32_C(0x004DB871), UINT32_C(0x006990D9)}, + {UINT32_C(0x0035029C), UINT32_C(0x0056F54C), UINT32_C(0x0071AAA5), + UINT32_C(0x003BB302), UINT32_C(0x00511665), UINT32_C(0x004B1D6D), + UINT32_C(0x00792CCE), UINT32_C(0x009D6482), UINT32_C(0x005F2322), + UINT32_C(0x0060FBFB), UINT32_C(0x003DAEFF)}, + {UINT32_C(0x005DFF91), UINT32_C(0x007B3C15), UINT32_C(0x003C73C5), + UINT32_C(0x0099D915), UINT32_C(0x0047AF99), UINT32_C(0x005655E6), + UINT32_C(0x001004A5), UINT32_C(0x001F3259), UINT32_C(0x0050988B), + UINT32_C(0x005D60E0), UINT32_C(0x002BE896)}}, + {{UINT32_C(0x002B631C), UINT32_C(0x00372C82), UINT32_C(0x002A7F2A), + UINT32_C(0x00E4A975), UINT32_C(0x006BB6B1), UINT32_C(0x0016BC52), + UINT32_C(0x00473CD2), UINT32_C(0x00630310), UINT32_C(0x0016B945), + UINT32_C(0x0001291B), UINT32_C(0x0059EF17)}, + {UINT32_C(0x00837D4E), UINT32_C(0x003216D3), UINT32_C(0x004E0701), + UINT32_C(0x00823A76), UINT32_C(0x00567125), UINT32_C(0x0020E62F), + UINT32_C(0x0036F8E4), UINT32_C(0x0091634B), UINT32_C(0x000CE9C9), + UINT32_C(0x00712DF3), UINT32_C(0x003270FE)}, + {UINT32_C(0x00C8BD36), UINT32_C(0x00312227), UINT32_C(0x005851DE), + UINT32_C(0x00989694), UINT32_C(0x003811BA), UINT32_C(0x0049DDC1), + UINT32_C(0x0079916E), UINT32_C(0x00905B34), UINT32_C(0x00216CD3), + UINT32_C(0x006E95D0), UINT32_C(0x0075102E)}}, + {{UINT32_C(0x000FE15B), UINT32_C(0x002132F9), UINT32_C(0x007302D9), + UINT32_C(0x0074464C), UINT32_C(0x006545FE), UINT32_C(0x0025178A), + UINT32_C(0x0037772B), UINT32_C(0x00F33555), UINT32_C(0x006628A7), + UINT32_C(0x00639C7D), UINT32_C(0x0017AF1B)}, + {UINT32_C(0x0016001E), UINT32_C(0x00346FAA), UINT32_C(0x0055CC08), + UINT32_C(0x006A26EC), UINT32_C(0x00272A70), UINT32_C(0x0073B255), + UINT32_C(0x0066C9CC), UINT32_C(0x00E05374), UINT32_C(0x0031E05D), + UINT32_C(0x007241E6), UINT32_C(0x0064D29A)}, + {UINT32_C(0x000904B8), UINT32_C(0x000ACC3E), UINT32_C(0x005C0BC8), + UINT32_C(0x00708FA3), UINT32_C(0x006420DB), UINT32_C(0x0009EB68), + UINT32_C(0x007DF36A), UINT32_C(0x0004C79A), UINT32_C(0x00688FB7), + UINT32_C(0x001853DD), UINT32_C(0x00391517)}}, + {{UINT32_C(0x0045C93C), UINT32_C(0x001ADA91), UINT32_C(0x005BEF12), + UINT32_C(0x00652E9C), UINT32_C(0x00109290), UINT32_C(0x00351B47), + UINT32_C(0x00649B3C), UINT32_C(0x0093B9EA), UINT32_C(0x0031C49B), + UINT32_C(0x006129D9), UINT32_C(0x0018C36F)}, + {UINT32_C(0x0039F849), UINT32_C(0x0076DDFD), UINT32_C(0x004D8E8B), + UINT32_C(0x00CC9068), UINT32_C(0x00257C98), UINT32_C(0x0022E647), + UINT32_C(0x0010E3A5), UINT32_C(0x0071627F), UINT32_C(0x004D6728), + UINT32_C(0x001036C0), UINT32_C(0x00293E1C)}, + {UINT32_C(0x00A0883B), UINT32_C(0x0047D948), UINT32_C(0x0029727E), + UINT32_C(0x007C052C), UINT32_C(0x0064B122), UINT32_C(0x003228B8), + UINT32_C(0x0004B695), UINT32_C(0x00850591), UINT32_C(0x00086718), + UINT32_C(0x0035AE85), UINT32_C(0x001253D1)}}, + }, + { + {{UINT32_C(0x00B27045), UINT32_C(0x007C6BA4), UINT32_C(0x000BBA03), + UINT32_C(0x00D9B116), UINT32_C(0x007774E3), UINT32_C(0x0042950E), + UINT32_C(0x0017A228), UINT32_C(0x002DD987), UINT32_C(0x0078FFD1), + UINT32_C(0x006CC9E6), UINT32_C(0x002D3C1B)}, + {UINT32_C(0x00A56D1F), UINT32_C(0x002BB5F0), UINT32_C(0x005FB594), + UINT32_C(0x0009E3C8), UINT32_C(0x0040549B), UINT32_C(0x0008E785), + UINT32_C(0x005E84B9), UINT32_C(0x0003AE65), UINT32_C(0x00476B1B), + UINT32_C(0x004B6DB7), UINT32_C(0x00255FEE)}, + {UINT32_C(0x001D2AC3), UINT32_C(0x0053D8C2), UINT32_C(0x0053ABBA), + UINT32_C(0x0062F195), UINT32_C(0x00583DCF), UINT32_C(0x005C7CC7), + UINT32_C(0x0016B088), UINT32_C(0x00E1FD84), UINT32_C(0x003BDF9C), + UINT32_C(0x004B6242), UINT32_C(0x0078CDD1)}}, + {{UINT32_C(0x0072E704), UINT32_C(0x002A3E71), UINT32_C(0x0016610F), + UINT32_C(0x009B3715), UINT32_C(0x005FCB07), UINT32_C(0x005D8BCF), + UINT32_C(0x00320582), UINT32_C(0x00A47F78), UINT32_C(0x005E225E), + UINT32_C(0x00168430), UINT32_C(0x004428AB)}, + {UINT32_C(0x004370E5), UINT32_C(0x005D2F9B), UINT32_C(0x00189EF7), + UINT32_C(0x0099C20D), UINT32_C(0x0054ECBC), UINT32_C(0x00656294), + UINT32_C(0x00121DD8), UINT32_C(0x009B9829), UINT32_C(0x007E3E6A), + UINT32_C(0x003A665F), UINT32_C(0x001EFD05)}, + {UINT32_C(0x008DCA62), UINT32_C(0x006B5EF8), UINT32_C(0x00434D75), + UINT32_C(0x00FAA8B9), UINT32_C(0x0011A045), UINT32_C(0x006E5D43), + UINT32_C(0x004E67E5), UINT32_C(0x00966939), UINT32_C(0x005A4ABC), + UINT32_C(0x002BC8B7), UINT32_C(0x001B23C1)}}, + {{UINT32_C(0x004E71F0), UINT32_C(0x00091B67), UINT32_C(0x00288D0F), + UINT32_C(0x003DBF2B), UINT32_C(0x0034CDF1), UINT32_C(0x005B1542), + UINT32_C(0x007363B6), UINT32_C(0x005CE63B), UINT32_C(0x0002FAD4), + UINT32_C(0x001E8FE4), UINT32_C(0x00419934)}, + {UINT32_C(0x008F0055), UINT32_C(0x00718F3D), UINT32_C(0x00464487), + UINT32_C(0x00B1F62E), UINT32_C(0x001D1DD4), UINT32_C(0x005C579E), + UINT32_C(0x000761B7), UINT32_C(0x00CADFA8), UINT32_C(0x005881B3), + UINT32_C(0x000CF2A5), UINT32_C(0x00236B83)}, + {UINT32_C(0x000EDD83), UINT32_C(0x00641C10), UINT32_C(0x0077B165), + UINT32_C(0x005DFADE), UINT32_C(0x0002C161), UINT32_C(0x004C0EAB), + UINT32_C(0x004F8FA8), UINT32_C(0x005182C2), UINT32_C(0x0022EE1E), + UINT32_C(0x002FC0D1), UINT32_C(0x0072B941)}}, + {{UINT32_C(0x00BE3284), UINT32_C(0x00265E75), UINT32_C(0x0054BBEA), + UINT32_C(0x009FEA89), UINT32_C(0x006A5BC5), UINT32_C(0x00468BF6), + UINT32_C(0x0061091E), UINT32_C(0x0021D236), UINT32_C(0x00770DDF), + UINT32_C(0x0044380D), UINT32_C(0x00261B8D)}, + {UINT32_C(0x0048B464), UINT32_C(0x0007F870), UINT32_C(0x00664579), + UINT32_C(0x00EBB0D3), UINT32_C(0x0034FB4E), UINT32_C(0x0062BF86), + UINT32_C(0x0030A6E2), UINT32_C(0x00141079), UINT32_C(0x004C4867), + UINT32_C(0x0021F669), UINT32_C(0x006C48AC)}, + {UINT32_C(0x001F1A30), UINT32_C(0x00402CCF), UINT32_C(0x002EC836), + UINT32_C(0x0076E3D0), UINT32_C(0x0045490A), UINT32_C(0x0074B706), + UINT32_C(0x005C524F), UINT32_C(0x00A8A8B0), UINT32_C(0x001A4F8F), + UINT32_C(0x00192D28), UINT32_C(0x0065C94E)}}, + {{UINT32_C(0x00053602), UINT32_C(0x0050EAFD), UINT32_C(0x003DFE2B), + UINT32_C(0x00BAD911), UINT32_C(0x000BAA2C), UINT32_C(0x0067D960), + UINT32_C(0x000D9F5E), UINT32_C(0x00C75FB5), UINT32_C(0x0061E525), + UINT32_C(0x0042DF4C), UINT32_C(0x0078BFD6)}, + {UINT32_C(0x00DDF860), UINT32_C(0x0064B891), UINT32_C(0x000AAD9E), + UINT32_C(0x0055DAD8), UINT32_C(0x000CD34A), UINT32_C(0x007F4F89), + UINT32_C(0x00720D9B), UINT32_C(0x000C777A), UINT32_C(0x005C019C), + UINT32_C(0x007BF2C9), UINT32_C(0x002B11EB)}, + {UINT32_C(0x002C702B), UINT32_C(0x00152B74), UINT32_C(0x002C06C6), + UINT32_C(0x00CAC7B3), UINT32_C(0x00651F98), UINT32_C(0x006BEE21), + UINT32_C(0x0022FC91), UINT32_C(0x00D0E1A2), UINT32_C(0x000F1226), + UINT32_C(0x0000CB76), UINT32_C(0x000AD2FB)}}, + {{UINT32_C(0x003B07A3), UINT32_C(0x005563EB), UINT32_C(0x000F5875), + UINT32_C(0x004E85ED), UINT32_C(0x004DF848), UINT32_C(0x00086603), + UINT32_C(0x001FE9F6), UINT32_C(0x0060B2A8), UINT32_C(0x00796256), + UINT32_C(0x00146D3D), UINT32_C(0x007A622F)}, + {UINT32_C(0x00659E8D), UINT32_C(0x000F45E5), UINT32_C(0x0079D2B9), + UINT32_C(0x00E3F2C8), UINT32_C(0x002FA0A9), UINT32_C(0x0043F516), + UINT32_C(0x0064D221), UINT32_C(0x0007AF6F), UINT32_C(0x005DA3B1), + UINT32_C(0x00750DD3), UINT32_C(0x003DC647)}, + {UINT32_C(0x003A7DCA), UINT32_C(0x0078F870), UINT32_C(0x0059ECCF), + UINT32_C(0x00721F6A), UINT32_C(0x0073DDE5), UINT32_C(0x0052F61E), + UINT32_C(0x005E03A9), UINT32_C(0x0096290F), UINT32_C(0x007684CD), + UINT32_C(0x0063A740), UINT32_C(0x00273750)}}, + {{UINT32_C(0x008ABF8E), UINT32_C(0x004EDC3D), UINT32_C(0x007BBD24), + UINT32_C(0x0037EA5E), UINT32_C(0x0028D8C0), UINT32_C(0x001BE0C2), + UINT32_C(0x00582236), UINT32_C(0x007A566E), UINT32_C(0x001F4783), + UINT32_C(0x005F6DB4), UINT32_C(0x0018F286)}, + {UINT32_C(0x0040CAF8), UINT32_C(0x00287C70), UINT32_C(0x002C9166), + UINT32_C(0x00C254F6), UINT32_C(0x005E2D68), UINT32_C(0x003B46FC), + UINT32_C(0x004EA606), UINT32_C(0x00D0B9C1), UINT32_C(0x00228115), + UINT32_C(0x0072EEA6), UINT32_C(0x00471670)}, + {UINT32_C(0x0020A1FA), UINT32_C(0x0075C7D9), UINT32_C(0x005426EA), + UINT32_C(0x000046B2), UINT32_C(0x0076BA0A), UINT32_C(0x0050CEA6), + UINT32_C(0x002D133F), UINT32_C(0x005C8821), UINT32_C(0x00406072), + UINT32_C(0x000A7F19), UINT32_C(0x001740F3)}}, + {{UINT32_C(0x0090884A), UINT32_C(0x00146BFD), UINT32_C(0x00625FB2), + UINT32_C(0x00C92B84), UINT32_C(0x00097A91), UINT32_C(0x005EACD5), + UINT32_C(0x005F0661), UINT32_C(0x00870EC3), UINT32_C(0x006D7279), + UINT32_C(0x002CE3E6), UINT32_C(0x0078F980)}, + {UINT32_C(0x00A2B367), UINT32_C(0x000EF557), UINT32_C(0x004EBC90), + UINT32_C(0x0065B548), UINT32_C(0x004E46D1), UINT32_C(0x006D0EF0), + UINT32_C(0x00299E83), UINT32_C(0x0016D017), UINT32_C(0x004A428A), + UINT32_C(0x00034582), UINT32_C(0x0052ED77)}, + {UINT32_C(0x004E0B1E), UINT32_C(0x000C37F8), UINT32_C(0x006C666A), + UINT32_C(0x00436BD9), UINT32_C(0x001FC7FE), UINT32_C(0x0000D390), + UINT32_C(0x006900A5), UINT32_C(0x0062D837), UINT32_C(0x006CD0E6), + UINT32_C(0x00557AD7), UINT32_C(0x002B57B6)}}, + {{UINT32_C(0x005F93D9), UINT32_C(0x0021EC83), UINT32_C(0x0057A32B), + UINT32_C(0x001CD982), UINT32_C(0x0008309F), UINT32_C(0x0052B2E6), + UINT32_C(0x002068F6), UINT32_C(0x00CD4622), UINT32_C(0x005EC9A6), + UINT32_C(0x002F2CCD), UINT32_C(0x00056DCE)}, + {UINT32_C(0x003E91E9), UINT32_C(0x0002F289), UINT32_C(0x006BF91B), + UINT32_C(0x006CBB4B), UINT32_C(0x00145A1F), UINT32_C(0x007ECA85), + UINT32_C(0x004AE385), UINT32_C(0x00BC0058), UINT32_C(0x007D219A), + UINT32_C(0x00406CB9), UINT32_C(0x001586B8)}, + {UINT32_C(0x00EE30F0), UINT32_C(0x00094A1A), UINT32_C(0x0006C4A5), + UINT32_C(0x0095BBBF), UINT32_C(0x0033B602), UINT32_C(0x005C234E), + UINT32_C(0x00405945), UINT32_C(0x002F42B7), UINT32_C(0x0060F012), + UINT32_C(0x000547D1), UINT32_C(0x00331A12)}}, + {{UINT32_C(0x00AE8C48), UINT32_C(0x00301B89), UINT32_C(0x0030B3A1), + UINT32_C(0x0030AF95), UINT32_C(0x00455E58), UINT32_C(0x005D22F1), + UINT32_C(0x0072D976), UINT32_C(0x007AD824), UINT32_C(0x0005D4B7), + UINT32_C(0x003E29C4), UINT32_C(0x007D5C6C)}, + {UINT32_C(0x00610488), UINT32_C(0x00575F2E), UINT32_C(0x005AC7FE), + UINT32_C(0x0074B494), UINT32_C(0x006F1543), UINT32_C(0x00029B2A), + UINT32_C(0x002B9948), UINT32_C(0x0057D800), UINT32_C(0x0052921B), + UINT32_C(0x00117385), UINT32_C(0x001058C5)}, + {UINT32_C(0x00EA545B), UINT32_C(0x0032E693), UINT32_C(0x004AF898), + UINT32_C(0x00FFE54C), UINT32_C(0x0039ECD8), UINT32_C(0x00093986), + UINT32_C(0x004575D9), UINT32_C(0x00CDB661), UINT32_C(0x007A392E), + UINT32_C(0x0001939C), UINT32_C(0x0028D022)}}, + {{UINT32_C(0x00DA7B5B), UINT32_C(0x0030FFBD), UINT32_C(0x00548E82), + UINT32_C(0x00DD7D1E), UINT32_C(0x00373E22), UINT32_C(0x0060EA9C), + UINT32_C(0x00463822), UINT32_C(0x0091DF8B), UINT32_C(0x001801F8), + UINT32_C(0x0046D441), UINT32_C(0x000C8688)}, + {UINT32_C(0x00EE0CC8), UINT32_C(0x00699131), UINT32_C(0x000427E3), + UINT32_C(0x00F43A07), UINT32_C(0x00318E56), UINT32_C(0x00415F0B), + UINT32_C(0x0065B06D), UINT32_C(0x00C66DEB), UINT32_C(0x0069C98F), + UINT32_C(0x000B21D5), UINT32_C(0x000B711D)}, + {UINT32_C(0x00D0339C), UINT32_C(0x002E2E3B), UINT32_C(0x00573739), + UINT32_C(0x007F843C), UINT32_C(0x0012F74D), UINT32_C(0x001934CA), + UINT32_C(0x0011DDD6), UINT32_C(0x00DF048B), UINT32_C(0x004D7027), + UINT32_C(0x005B0107), UINT32_C(0x0069D6BF)}}, + {{UINT32_C(0x00F44C75), UINT32_C(0x003F20FB), UINT32_C(0x0011CE27), + UINT32_C(0x00F7E2A9), UINT32_C(0x006914F7), UINT32_C(0x0020C3E4), + UINT32_C(0x00683AAF), UINT32_C(0x007DE3A9), UINT32_C(0x001E6E79), + UINT32_C(0x0006F6AF), UINT32_C(0x00563C95)}, + {UINT32_C(0x004904B2), UINT32_C(0x00517306), UINT32_C(0x0049E4D2), + UINT32_C(0x00459886), UINT32_C(0x001E326B), UINT32_C(0x003AF2A6), + UINT32_C(0x004F40C8), UINT32_C(0x0072BF1A), UINT32_C(0x00692E44), + UINT32_C(0x0046EF04), UINT32_C(0x007235C7)}, + {UINT32_C(0x0099C193), UINT32_C(0x0032477B), UINT32_C(0x0064C855), + UINT32_C(0x00F64B95), UINT32_C(0x006D6DE1), UINT32_C(0x0038972C), + UINT32_C(0x002E92A5), UINT32_C(0x00FB0D34), UINT32_C(0x0000A7FB), + UINT32_C(0x00436D2A), UINT32_C(0x002AE23C)}}, + {{UINT32_C(0x005B55EE), UINT32_C(0x00269FC6), UINT32_C(0x0031ABD5), + UINT32_C(0x00AFFAE5), UINT32_C(0x0007CF80), UINT32_C(0x003582AB), + UINT32_C(0x004AA0DA), UINT32_C(0x003B2950), UINT32_C(0x0027722C), + UINT32_C(0x006DA175), UINT32_C(0x00538D39)}, + {UINT32_C(0x00E803AA), UINT32_C(0x0078E9FA), UINT32_C(0x000599F4), + UINT32_C(0x00C7D432), UINT32_C(0x00482F43), UINT32_C(0x0031EDC5), + UINT32_C(0x007E0348), UINT32_C(0x0099EAD8), UINT32_C(0x00384F4D), + UINT32_C(0x004DACD4), UINT32_C(0x0046AD0D)}, + {UINT32_C(0x00A97546), UINT32_C(0x000FB21C), UINT32_C(0x0015497C), + UINT32_C(0x008E62D2), UINT32_C(0x00505DE5), UINT32_C(0x000B95C5), + UINT32_C(0x0023EDFF), UINT32_C(0x00264B13), UINT32_C(0x002BCD90), + UINT32_C(0x00627803), UINT32_C(0x0036514F)}}, + {{UINT32_C(0x0089E077), UINT32_C(0x0036ADDA), UINT32_C(0x001647F5), + UINT32_C(0x0088678C), UINT32_C(0x002D4F15), UINT32_C(0x004AD6CA), + UINT32_C(0x000239EF), UINT32_C(0x00784B5B), UINT32_C(0x003FA0B6), + UINT32_C(0x001178A4), UINT32_C(0x00506FAF)}, + {UINT32_C(0x00B41F08), UINT32_C(0x00501231), UINT32_C(0x00193B29), + UINT32_C(0x00837915), UINT32_C(0x0052BE13), UINT32_C(0x0067A94C), + UINT32_C(0x00080E1A), UINT32_C(0x00FF39EB), UINT32_C(0x0012E0B7), + UINT32_C(0x0004446B), UINT32_C(0x001FD9A4)}, + {UINT32_C(0x00EAA0DA), UINT32_C(0x002DD110), UINT32_C(0x00768BF0), + UINT32_C(0x00174EE3), UINT32_C(0x006B40A2), UINT32_C(0x004308C1), + UINT32_C(0x006A7D56), UINT32_C(0x0080EF9C), UINT32_C(0x006C09DF), + UINT32_C(0x00024E1D), UINT32_C(0x00025FFC)}}, + {{UINT32_C(0x007CFBB3), UINT32_C(0x0008B1DC), UINT32_C(0x00221743), + UINT32_C(0x00E6686B), UINT32_C(0x00152BCE), UINT32_C(0x001317D6), + UINT32_C(0x00437CCD), UINT32_C(0x002FC802), UINT32_C(0x006681B5), + UINT32_C(0x00462383), UINT32_C(0x007A6155)}, + {UINT32_C(0x00C0616E), UINT32_C(0x0065B50F), UINT32_C(0x00575631), + UINT32_C(0x008AE62D), UINT32_C(0x001A3DAF), UINT32_C(0x001CB629), + UINT32_C(0x000690A5), UINT32_C(0x000E40AF), UINT32_C(0x0027B0F1), + UINT32_C(0x0030A43B), UINT32_C(0x003D750B)}, + {UINT32_C(0x0006E7C1), UINT32_C(0x001F7E8D), UINT32_C(0x007DDEB5), + UINT32_C(0x003E61D8), UINT32_C(0x0052F00A), UINT32_C(0x0007F477), + UINT32_C(0x0002FCF5), UINT32_C(0x00E51DDA), UINT32_C(0x00710B09), + UINT32_C(0x00162A00), UINT32_C(0x0070E436)}}, + {{UINT32_C(0x0089B486), UINT32_C(0x00508B10), UINT32_C(0x00504CD3), + UINT32_C(0x007CBEF5), UINT32_C(0x00401259), UINT32_C(0x0016A84C), + UINT32_C(0x005DDAF1), UINT32_C(0x00CA278E), UINT32_C(0x005227AF), + UINT32_C(0x000A6D32), UINT32_C(0x0025F71B)}, + {UINT32_C(0x009CE1F9), UINT32_C(0x00535376), UINT32_C(0x0038A997), + UINT32_C(0x008FCF77), UINT32_C(0x001681BE), UINT32_C(0x0030BB0D), + UINT32_C(0x0079D5C2), UINT32_C(0x00CCB407), UINT32_C(0x00115E29), + UINT32_C(0x006BEA8D), UINT32_C(0x0077DF80)}, + {UINT32_C(0x000328F3), UINT32_C(0x0062691B), UINT32_C(0x00429269), + UINT32_C(0x00D14DE5), UINT32_C(0x001B9543), UINT32_C(0x00310721), + UINT32_C(0x005A6271), UINT32_C(0x00077EE6), UINT32_C(0x006695BC), + UINT32_C(0x00502870), UINT32_C(0x005376F2)}}, + }, + { + {{UINT32_C(0x00F38262), UINT32_C(0x00203985), UINT32_C(0x0029479B), + UINT32_C(0x0057D8A4), UINT32_C(0x002352DF), UINT32_C(0x005A3DE0), + UINT32_C(0x0038FC9D), UINT32_C(0x005E69CE), UINT32_C(0x007195C8), + UINT32_C(0x007F3F0C), UINT32_C(0x0075AA44)}, + {UINT32_C(0x00A2B12A), UINT32_C(0x0005AB91), UINT32_C(0x0005801E), + UINT32_C(0x00BD3E26), UINT32_C(0x004A3566), UINT32_C(0x0039622B), + UINT32_C(0x00196466), UINT32_C(0x003385DF), UINT32_C(0x00464F26), + UINT32_C(0x00348D32), UINT32_C(0x006B3D82)}, + {UINT32_C(0x0065745B), UINT32_C(0x00756984), UINT32_C(0x000663B1), + UINT32_C(0x00F8FADD), UINT32_C(0x005D0DD6), UINT32_C(0x005A5E23), + UINT32_C(0x0021B9BE), UINT32_C(0x009BBEE7), UINT32_C(0x003310A0), + UINT32_C(0x0008941E), UINT32_C(0x006EFBEF)}}, + {{UINT32_C(0x008285AF), UINT32_C(0x0032D42C), UINT32_C(0x004A921F), + UINT32_C(0x00501992), UINT32_C(0x00684DBF), UINT32_C(0x001A5365), + UINT32_C(0x0036ABF8), UINT32_C(0x004599AB), UINT32_C(0x003153D1), + UINT32_C(0x004357B7), UINT32_C(0x00289208)}, + {UINT32_C(0x00BF2760), UINT32_C(0x000C24C0), UINT32_C(0x0057E755), + UINT32_C(0x000FB090), UINT32_C(0x007F2FA3), UINT32_C(0x0034386D), + UINT32_C(0x004D0670), UINT32_C(0x007D5F67), UINT32_C(0x00770E2C), + UINT32_C(0x004F400F), UINT32_C(0x0004CA31)}, + {UINT32_C(0x00C5736B), UINT32_C(0x0025DE46), UINT32_C(0x00184C66), + UINT32_C(0x002454E1), UINT32_C(0x006C791A), UINT32_C(0x00695E64), + UINT32_C(0x0005F1A3), UINT32_C(0x00D89A22), UINT32_C(0x00339085), + UINT32_C(0x00612026), UINT32_C(0x0011E398)}}, + {{UINT32_C(0x00580ED8), UINT32_C(0x00351562), UINT32_C(0x003AC56C), + UINT32_C(0x0082A872), UINT32_C(0x00009388), UINT32_C(0x0059018D), + UINT32_C(0x00428E6F), UINT32_C(0x0044580D), UINT32_C(0x00397D38), + UINT32_C(0x001413BF), UINT32_C(0x0019ACCA)}, + {UINT32_C(0x00EBF493), UINT32_C(0x0065B688), UINT32_C(0x00475CB8), + UINT32_C(0x000C5271), UINT32_C(0x001FA36C), UINT32_C(0x002065F1), + UINT32_C(0x001E357D), UINT32_C(0x002E3A47), UINT32_C(0x007D686D), + UINT32_C(0x0016A68A), UINT32_C(0x00662C00)}, + {UINT32_C(0x00BBB7E7), UINT32_C(0x00118B8C), UINT32_C(0x00257EA2), + UINT32_C(0x00EAE0BF), UINT32_C(0x00534B32), UINT32_C(0x002C3391), + UINT32_C(0x005F91A4), UINT32_C(0x009CC53C), UINT32_C(0x000D1F59), + UINT32_C(0x0044B89F), UINT32_C(0x004E2285)}}, + {{UINT32_C(0x0027C85C), UINT32_C(0x0034E4D0), UINT32_C(0x0034EE41), + UINT32_C(0x0000C14F), UINT32_C(0x00466E36), UINT32_C(0x0012ED82), + UINT32_C(0x004AB2CC), UINT32_C(0x00BB7B93), UINT32_C(0x0013EE11), + UINT32_C(0x0071AADD), UINT32_C(0x000E9430)}, + {UINT32_C(0x0048606F), UINT32_C(0x000E389D), UINT32_C(0x005B7915), + UINT32_C(0x00DA42A8), UINT32_C(0x003E8287), UINT32_C(0x001D2AF2), + UINT32_C(0x0044CA11), UINT32_C(0x00C9B883), UINT32_C(0x000B95FA), + UINT32_C(0x00571771), UINT32_C(0x002FD7F4)}, + {UINT32_C(0x00DD2691), UINT32_C(0x0071C20D), UINT32_C(0x00544E37), + UINT32_C(0x00458C30), UINT32_C(0x005ED950), UINT32_C(0x000A642E), + UINT32_C(0x000316B6), UINT32_C(0x00F34871), UINT32_C(0x0030B700), + UINT32_C(0x007D4AA7), UINT32_C(0x000E8F8F)}}, + {{UINT32_C(0x00AFDFD3), UINT32_C(0x0023AB6D), UINT32_C(0x003A134B), + UINT32_C(0x007521AF), UINT32_C(0x002E2236), UINT32_C(0x00146DF2), + UINT32_C(0x00201697), UINT32_C(0x000389A1), UINT32_C(0x0048BE72), + UINT32_C(0x003FD0B3), UINT32_C(0x003AD399)}, + {UINT32_C(0x00453802), UINT32_C(0x0058F172), UINT32_C(0x000BD847), + UINT32_C(0x005FE8C6), UINT32_C(0x0040628C), UINT32_C(0x004614B8), + UINT32_C(0x004205D4), UINT32_C(0x00259F68), UINT32_C(0x0076F623), + UINT32_C(0x00678707), UINT32_C(0x0057C6D8)}, + {UINT32_C(0x00DB4A5B), UINT32_C(0x004A2766), UINT32_C(0x00614411), + UINT32_C(0x00510EC4), UINT32_C(0x007473CF), UINT32_C(0x0051CB0E), + UINT32_C(0x0014EC5F), UINT32_C(0x000483E0), UINT32_C(0x001F7AE6), + UINT32_C(0x0078A5EC), UINT32_C(0x003FC5C6)}}, + {{UINT32_C(0x00E73CF6), UINT32_C(0x00365645), UINT32_C(0x0026EE89), + UINT32_C(0x006AC701), UINT32_C(0x007831F1), UINT32_C(0x00393FC7), + UINT32_C(0x0003E80C), UINT32_C(0x008ECBE8), UINT32_C(0x0027B4A8), + UINT32_C(0x0037554F), UINT32_C(0x006AD6BD)}, + {UINT32_C(0x001857E4), UINT32_C(0x00657687), UINT32_C(0x0036B228), + UINT32_C(0x006A820E), UINT32_C(0x00459485), UINT32_C(0x002AA7DA), + UINT32_C(0x0031670E), UINT32_C(0x0099F393), UINT32_C(0x0023D587), + UINT32_C(0x000B8D51), UINT32_C(0x0067F4BE)}, + {UINT32_C(0x00604B7F), UINT32_C(0x00531996), UINT32_C(0x000F3A4C), + UINT32_C(0x00EFD0BB), UINT32_C(0x001D4914), UINT32_C(0x004C04B3), + UINT32_C(0x0003D908), UINT32_C(0x00AA3218), UINT32_C(0x00403685), + UINT32_C(0x0072EB6A), UINT32_C(0x002176B1)}}, + {{UINT32_C(0x00DC72D5), UINT32_C(0x0053C100), UINT32_C(0x006992E3), + UINT32_C(0x00532CA0), UINT32_C(0x004D3AD9), UINT32_C(0x0016B1F6), + UINT32_C(0x00776F4B), UINT32_C(0x006ECD70), UINT32_C(0x004FC6E0), + UINT32_C(0x00766557), UINT32_C(0x0019E21F)}, + {UINT32_C(0x002B1672), UINT32_C(0x003C3FDF), UINT32_C(0x00324542), + UINT32_C(0x007B582B), UINT32_C(0x0002AD86), UINT32_C(0x00528C4E), + UINT32_C(0x003D3509), UINT32_C(0x00D075CA), UINT32_C(0x00783A6B), + UINT32_C(0x0032D6B0), UINT32_C(0x00655B92)}, + {UINT32_C(0x0067E0B1), UINT32_C(0x001D8E27), UINT32_C(0x002F0272), + UINT32_C(0x00BBEB09), UINT32_C(0x0017C396), UINT32_C(0x005B451C), + UINT32_C(0x000ADC03), UINT32_C(0x00F50759), UINT32_C(0x000DE4C0), + UINT32_C(0x006BAD90), UINT32_C(0x0015A7A2)}}, + {{UINT32_C(0x009DA550), UINT32_C(0x004309EA), UINT32_C(0x006FDD59), + UINT32_C(0x00C427DA), UINT32_C(0x00454A59), UINT32_C(0x005B8E71), + UINT32_C(0x00341B12), UINT32_C(0x00252CD4), UINT32_C(0x00111FF0), + UINT32_C(0x007E3827), UINT32_C(0x0048F3DC)}, + {UINT32_C(0x00BC3FD8), UINT32_C(0x00513D87), UINT32_C(0x0004F4BB), + UINT32_C(0x0040E743), UINT32_C(0x007CD878), UINT32_C(0x0010C877), + UINT32_C(0x005F89C4), UINT32_C(0x00F5CB3E), UINT32_C(0x0074C6FA), + UINT32_C(0x006D3B3F), UINT32_C(0x0027626C)}, + {UINT32_C(0x004FE9AA), UINT32_C(0x001A4C25), UINT32_C(0x005FC4B0), + UINT32_C(0x00C432AF), UINT32_C(0x005E26E5), UINT32_C(0x003B434E), + UINT32_C(0x0027CFF2), UINT32_C(0x0043D716), UINT32_C(0x0059B5A6), + UINT32_C(0x00333789), UINT32_C(0x0011248B)}}, + {{UINT32_C(0x00CA0B46), UINT32_C(0x00797C4C), UINT32_C(0x0025673C), + UINT32_C(0x004C5796), UINT32_C(0x000F4352), UINT32_C(0x00477E09), + UINT32_C(0x007CE235), UINT32_C(0x00B62DDB), UINT32_C(0x00398769), + UINT32_C(0x00598708), UINT32_C(0x002AA80B)}, + {UINT32_C(0x006334CD), UINT32_C(0x0007E78A), UINT32_C(0x000B78B3), + UINT32_C(0x00945807), UINT32_C(0x005E6E86), UINT32_C(0x005554D4), + UINT32_C(0x000A6B65), UINT32_C(0x00306D92), UINT32_C(0x005D12E8), + UINT32_C(0x003DEB11), UINT32_C(0x00385DB1)}, + {UINT32_C(0x000A5E84), UINT32_C(0x006D3E68), UINT32_C(0x00756665), + UINT32_C(0x004A1477), UINT32_C(0x00348B5C), UINT32_C(0x0048952E), + UINT32_C(0x002EDCD0), UINT32_C(0x0017A1F7), UINT32_C(0x000D0B6A), + UINT32_C(0x002CC6D4), UINT32_C(0x00357331)}}, + {{UINT32_C(0x0079D8A5), UINT32_C(0x007C1D32), UINT32_C(0x0026F73E), + UINT32_C(0x00DC858C), UINT32_C(0x002CFF0F), UINT32_C(0x007FA1D8), + UINT32_C(0x000AA161), UINT32_C(0x009E41A9), UINT32_C(0x0009D873), + UINT32_C(0x004C0E2C), UINT32_C(0x001DB409)}, + {UINT32_C(0x0018D65B), UINT32_C(0x0022CD31), UINT32_C(0x00390F42), + UINT32_C(0x00D8FCA4), UINT32_C(0x006663C5), UINT32_C(0x0019722C), + UINT32_C(0x007F6B0A), UINT32_C(0x00A630E3), UINT32_C(0x006E4A27), + UINT32_C(0x0021D1B6), UINT32_C(0x002AAC94)}, + {UINT32_C(0x0018C372), UINT32_C(0x0054FA42), UINT32_C(0x000EFD69), + UINT32_C(0x0011780F), UINT32_C(0x001A67DB), UINT32_C(0x006E5FA4), + UINT32_C(0x00414397), UINT32_C(0x007903CC), UINT32_C(0x006A8416), + UINT32_C(0x007EAA7F), UINT32_C(0x002FE26B)}}, + {{UINT32_C(0x00E4631A), UINT32_C(0x00519A42), UINT32_C(0x004D5D8F), + UINT32_C(0x00C6E606), UINT32_C(0x00053595), UINT32_C(0x004EB9D1), + UINT32_C(0x005A269C), UINT32_C(0x003E8B00), UINT32_C(0x00162354), + UINT32_C(0x007E07B4), UINT32_C(0x003AF53B)}, + {UINT32_C(0x00B6EB19), UINT32_C(0x00555D97), UINT32_C(0x00633E65), + UINT32_C(0x0099187D), UINT32_C(0x00227AE7), UINT32_C(0x001674B2), + UINT32_C(0x005E8C81), UINT32_C(0x005B7DF9), UINT32_C(0x0055E4BB), + UINT32_C(0x0056A5E1), UINT32_C(0x0019F876)}, + {UINT32_C(0x00B4688B), UINT32_C(0x005F4304), UINT32_C(0x000B39BD), + UINT32_C(0x004E7F2B), UINT32_C(0x00313A32), UINT32_C(0x007002F9), + UINT32_C(0x0031EB5F), UINT32_C(0x00C85095), UINT32_C(0x00425A62), + UINT32_C(0x00328356), UINT32_C(0x007EF956)}}, + {{UINT32_C(0x00E0C2E0), UINT32_C(0x00585FE0), UINT32_C(0x0075AB74), + UINT32_C(0x0041E028), UINT32_C(0x006CAE63), UINT32_C(0x003C54C9), + UINT32_C(0x001036EA), UINT32_C(0x002B7F12), UINT32_C(0x00144D5C), + UINT32_C(0x007374DB), UINT32_C(0x00750F36)}, + {UINT32_C(0x0061BB41), UINT32_C(0x0036024E), UINT32_C(0x00655A71), + UINT32_C(0x004FC91A), UINT32_C(0x0014B38E), UINT32_C(0x003D62DB), + UINT32_C(0x0072A235), UINT32_C(0x003B2C40), UINT32_C(0x002C0290), + UINT32_C(0x005FEB15), UINT32_C(0x0061089A)}, + {UINT32_C(0x0085ECE4), UINT32_C(0x00332265), UINT32_C(0x0042796C), + UINT32_C(0x00FD5F30), UINT32_C(0x004C81DA), UINT32_C(0x00007089), + UINT32_C(0x006EA425), UINT32_C(0x00B807C7), UINT32_C(0x00459E0F), + UINT32_C(0x00181B93), UINT32_C(0x000B0E1B)}}, + {{UINT32_C(0x009EFE70), UINT32_C(0x004E468A), UINT32_C(0x0077E5AA), + UINT32_C(0x001467EF), UINT32_C(0x0020C382), UINT32_C(0x0055629A), + UINT32_C(0x005CA999), UINT32_C(0x00BEFB9D), UINT32_C(0x005A686B), + UINT32_C(0x0010351C), UINT32_C(0x005963DB)}, + {UINT32_C(0x001E85F3), UINT32_C(0x0014333A), UINT32_C(0x006927C7), + UINT32_C(0x00F08F00), UINT32_C(0x00634AD4), UINT32_C(0x0022A5F2), + UINT32_C(0x003B4641), UINT32_C(0x00A28090), UINT32_C(0x003FC621), + UINT32_C(0x002B49C0), UINT32_C(0x00555DF3)}, + {UINT32_C(0x007C3D87), UINT32_C(0x002EFA77), UINT32_C(0x00567EC8), + UINT32_C(0x00D46233), UINT32_C(0x00590994), UINT32_C(0x0045579D), + UINT32_C(0x0006388F), UINT32_C(0x004C41FA), UINT32_C(0x004C71DD), + UINT32_C(0x007BF667), UINT32_C(0x0057A3C7)}}, + {{UINT32_C(0x0093682F), UINT32_C(0x00073EF9), UINT32_C(0x0019C616), + UINT32_C(0x00C17E8F), UINT32_C(0x002702CF), UINT32_C(0x005F528E), + UINT32_C(0x0019B458), UINT32_C(0x0052A2E0), UINT32_C(0x00425491), + UINT32_C(0x0018AED3), UINT32_C(0x006F6DAE)}, + {UINT32_C(0x0082401A), UINT32_C(0x004D0E66), UINT32_C(0x003A3362), + UINT32_C(0x003D1A93), UINT32_C(0x000E6BF3), UINT32_C(0x0017967B), + UINT32_C(0x00117AFB), UINT32_C(0x008CB04A), UINT32_C(0x002CA224), + UINT32_C(0x00067DCB), UINT32_C(0x0056DEA4)}, + {UINT32_C(0x005F1A62), UINT32_C(0x006AF62D), UINT32_C(0x000D1E62), + UINT32_C(0x00CCEE42), UINT32_C(0x00512EC5), UINT32_C(0x002C191C), + UINT32_C(0x0065B2C8), UINT32_C(0x00567D2B), UINT32_C(0x006A4BC8), + UINT32_C(0x0011359A), UINT32_C(0x003AB09B)}}, + {{UINT32_C(0x0072355E), UINT32_C(0x00290653), UINT32_C(0x00453126), + UINT32_C(0x00DA22DA), UINT32_C(0x004311EA), UINT32_C(0x000C95C7), + UINT32_C(0x005DA2D6), UINT32_C(0x0048EE2E), UINT32_C(0x007AC207), + UINT32_C(0x0029BC84), UINT32_C(0x000A0DFC)}, + {UINT32_C(0x004EF0CE), UINT32_C(0x00747296), UINT32_C(0x000818AB), + UINT32_C(0x00BE8543), UINT32_C(0x0041F6F4), UINT32_C(0x00448449), + UINT32_C(0x00153E5F), UINT32_C(0x00AADD33), UINT32_C(0x0035B84C), + UINT32_C(0x0069EAE8), UINT32_C(0x00217DBD)}, + {UINT32_C(0x002DB2A4), UINT32_C(0x001158C1), UINT32_C(0x002F9514), + UINT32_C(0x00428AE0), UINT32_C(0x0071D932), UINT32_C(0x002D6CE8), + UINT32_C(0x0002F0FA), UINT32_C(0x001EB77A), UINT32_C(0x0041C021), + UINT32_C(0x00779647), UINT32_C(0x0000B4B0)}}, + {{UINT32_C(0x002BCA29), UINT32_C(0x000D6E00), UINT32_C(0x002A8D45), + UINT32_C(0x00E65F5F), UINT32_C(0x0032B3E8), UINT32_C(0x001DDA5D), + UINT32_C(0x0017AEC6), UINT32_C(0x00CCE901), UINT32_C(0x002418B9), + UINT32_C(0x003F180D), UINT32_C(0x00754B21)}, + {UINT32_C(0x001E8828), UINT32_C(0x004DE168), UINT32_C(0x00365565), + UINT32_C(0x003E7F08), UINT32_C(0x00022EE0), UINT32_C(0x0043C370), + UINT32_C(0x0066C1D6), UINT32_C(0x0033E762), UINT32_C(0x0021E80E), + UINT32_C(0x0022E1CE), UINT32_C(0x0039049C)}, + {UINT32_C(0x001AEEAB), UINT32_C(0x004E9952), UINT32_C(0x006CD381), + UINT32_C(0x00319F16), UINT32_C(0x004B6EED), UINT32_C(0x000E8C3B), + UINT32_C(0x0033C702), UINT32_C(0x0074A7B1), UINT32_C(0x0055F862), + UINT32_C(0x00070547), UINT32_C(0x001AB4F3)}}, + }, + { + {{UINT32_C(0x002AB480), UINT32_C(0x00491F21), UINT32_C(0x007D1D9B), + UINT32_C(0x0017861D), UINT32_C(0x004E0965), UINT32_C(0x004F9835), + UINT32_C(0x002889AB), UINT32_C(0x00254B0E), UINT32_C(0x003F4ECE), + UINT32_C(0x00645245), UINT32_C(0x003DE09E)}, + {UINT32_C(0x00BFFA33), UINT32_C(0x0001E566), UINT32_C(0x0048223D), + UINT32_C(0x0081AC1B), UINT32_C(0x0075FACF), UINT32_C(0x00288CA5), + UINT32_C(0x00319699), UINT32_C(0x00E70935), UINT32_C(0x003AFCDF), + UINT32_C(0x000D446C), UINT32_C(0x001FF61C)}, + {UINT32_C(0x00CFC3EE), UINT32_C(0x0053EC31), UINT32_C(0x00556C71), + UINT32_C(0x00B61E4F), UINT32_C(0x0019B811), UINT32_C(0x000E942F), + UINT32_C(0x006B460A), UINT32_C(0x0028CECD), UINT32_C(0x0053755C), + UINT32_C(0x006A36AD), UINT32_C(0x0074830B)}}, + {{UINT32_C(0x0032B148), UINT32_C(0x00574A20), UINT32_C(0x00258660), + UINT32_C(0x00A32E9A), UINT32_C(0x00666B0C), UINT32_C(0x0050B448), + UINT32_C(0x00375197), UINT32_C(0x007C7568), UINT32_C(0x0054C0EF), + UINT32_C(0x003C6296), UINT32_C(0x00451E25)}, + {UINT32_C(0x001F0527), UINT32_C(0x0015C673), UINT32_C(0x002F100D), + UINT32_C(0x0051AD70), UINT32_C(0x00120973), UINT32_C(0x002A4934), + UINT32_C(0x00340AF5), UINT32_C(0x00DB9742), UINT32_C(0x00743FB7), + UINT32_C(0x00457EDD), UINT32_C(0x000CEB92)}, + {UINT32_C(0x00F5B12C), UINT32_C(0x0053626F), UINT32_C(0x007F2969), + UINT32_C(0x00F9A729), UINT32_C(0x0033C947), UINT32_C(0x0000F3BA), + UINT32_C(0x00207B91), UINT32_C(0x0063F460), UINT32_C(0x0012F8FD), + UINT32_C(0x000B32A2), UINT32_C(0x003E578A)}}, + {{UINT32_C(0x00B1FE77), UINT32_C(0x00298801), UINT32_C(0x00011596), + UINT32_C(0x001AC338), UINT32_C(0x001D0E96), UINT32_C(0x005E3714), + UINT32_C(0x003DE2F3), UINT32_C(0x00AF9E64), UINT32_C(0x00187EE5), + UINT32_C(0x004F7E2C), UINT32_C(0x0017C5D3)}, + {UINT32_C(0x0071BA87), UINT32_C(0x00241D87), UINT32_C(0x0034F745), + UINT32_C(0x0004090C), UINT32_C(0x000A1932), UINT32_C(0x0042ADD3), + UINT32_C(0x0053459C), UINT32_C(0x007BE02E), UINT32_C(0x003D62A3), + UINT32_C(0x0015988B), UINT32_C(0x006AAD49)}, + {UINT32_C(0x00367A73), UINT32_C(0x007F03C1), UINT32_C(0x002CAE51), + UINT32_C(0x0029D218), UINT32_C(0x0014E4A9), UINT32_C(0x0054032D), + UINT32_C(0x0062F02D), UINT32_C(0x00DCDDAD), UINT32_C(0x007EE1CD), + UINT32_C(0x001D0B5C), UINT32_C(0x00569FE0)}}, + {{UINT32_C(0x00BCADF6), UINT32_C(0x0075341C), UINT32_C(0x00398E24), + UINT32_C(0x003BF613), UINT32_C(0x0001E10C), UINT32_C(0x0065FEAC), + UINT32_C(0x0024D15C), UINT32_C(0x00196783), UINT32_C(0x0051862B), + UINT32_C(0x006C2018), UINT32_C(0x002A0826)}, + {UINT32_C(0x00F6EE57), UINT32_C(0x0011CD5C), UINT32_C(0x001F7638), + UINT32_C(0x005F98C2), UINT32_C(0x001F7049), UINT32_C(0x003964A1), + UINT32_C(0x005657BE), UINT32_C(0x00DEE9F7), UINT32_C(0x0026BEEC), + UINT32_C(0x00319B9B), UINT32_C(0x00345293)}, + {UINT32_C(0x006BDDA7), UINT32_C(0x0030B11F), UINT32_C(0x002600EA), + UINT32_C(0x00461976), UINT32_C(0x001593E9), UINT32_C(0x006F183C), + UINT32_C(0x003ABB5A), UINT32_C(0x0018F1A8), UINT32_C(0x00390978), + UINT32_C(0x0005156D), UINT32_C(0x00075AED)}}, + {{UINT32_C(0x001BD2D5), UINT32_C(0x00578B39), UINT32_C(0x007FE095), + UINT32_C(0x0046AFA9), UINT32_C(0x002148E8), UINT32_C(0x0017C3CD), + UINT32_C(0x006AE351), UINT32_C(0x0063F7AB), UINT32_C(0x0050AA1E), + UINT32_C(0x004184F5), UINT32_C(0x0069223D)}, + {UINT32_C(0x0086A15A), UINT32_C(0x0033AD1F), UINT32_C(0x006A0376), + UINT32_C(0x00C44A80), UINT32_C(0x001DE4DA), UINT32_C(0x000819B5), + UINT32_C(0x00275A25), UINT32_C(0x005EA5CD), UINT32_C(0x0022AA1B), + UINT32_C(0x004A1528), UINT32_C(0x0041A71A)}, + {UINT32_C(0x00F443D0), UINT32_C(0x007F9618), UINT32_C(0x005E374D), + UINT32_C(0x00C0032C), UINT32_C(0x005BC03C), UINT32_C(0x00225F6A), + UINT32_C(0x002F1161), UINT32_C(0x0062CB7E), UINT32_C(0x00527B02), + UINT32_C(0x005AAD7F), UINT32_C(0x00585C83)}}, + {{UINT32_C(0x00D110A1), UINT32_C(0x004B6AF7), UINT32_C(0x00084690), + UINT32_C(0x00F276EF), UINT32_C(0x0000F67B), UINT32_C(0x001870DC), + UINT32_C(0x0010FCB3), UINT32_C(0x00392CFE), UINT32_C(0x002086D8), + UINT32_C(0x007424AF), UINT32_C(0x00202355)}, + {UINT32_C(0x00077C6C), UINT32_C(0x0025E823), UINT32_C(0x006EF81B), + UINT32_C(0x00540F85), UINT32_C(0x002C8AF2), UINT32_C(0x0013C77B), + UINT32_C(0x001C4D2F), UINT32_C(0x001021D9), UINT32_C(0x00146F24), + UINT32_C(0x003599F3), UINT32_C(0x004B4CCC)}, + {UINT32_C(0x004CD365), UINT32_C(0x00179717), UINT32_C(0x0039A122), + UINT32_C(0x00B62616), UINT32_C(0x007AEE90), UINT32_C(0x0029164E), + UINT32_C(0x0039438A), UINT32_C(0x00CBA485), UINT32_C(0x00428DC8), + UINT32_C(0x00313356), UINT32_C(0x006E6A72)}}, + {{UINT32_C(0x00CF5614), UINT32_C(0x00163606), UINT32_C(0x002CA6AC), + UINT32_C(0x006EA0B2), UINT32_C(0x006DA8EE), UINT32_C(0x0019BDF3), + UINT32_C(0x006043AF), UINT32_C(0x008AA760), UINT32_C(0x002E08F1), + UINT32_C(0x0037973A), UINT32_C(0x0029B40D)}, + {UINT32_C(0x00379A65), UINT32_C(0x0052E429), UINT32_C(0x0068686B), + UINT32_C(0x00C69C90), UINT32_C(0x004E9422), UINT32_C(0x00366023), + UINT32_C(0x002260F4), UINT32_C(0x005BAF5B), UINT32_C(0x000678A6), + UINT32_C(0x000460DA), UINT32_C(0x004F4340)}, + {UINT32_C(0x00E03B58), UINT32_C(0x007B260B), UINT32_C(0x005BA74C), + UINT32_C(0x00BD1A46), UINT32_C(0x0009DC7B), UINT32_C(0x00118343), + UINT32_C(0x00021428), UINT32_C(0x000FFED5), UINT32_C(0x0072D7E6), + UINT32_C(0x003DCFB6), UINT32_C(0x003AB926)}}, + {{UINT32_C(0x0077649D), UINT32_C(0x005389B7), UINT32_C(0x004D6E76), + UINT32_C(0x00936F59), UINT32_C(0x00463E7C), UINT32_C(0x006D778A), + UINT32_C(0x0009DB6F), UINT32_C(0x00A424F1), UINT32_C(0x0052F5CC), + UINT32_C(0x007E60DE), UINT32_C(0x004279FB)}, + {UINT32_C(0x00A7028F), UINT32_C(0x007EA950), UINT32_C(0x001EFBD6), + UINT32_C(0x00BDA79F), UINT32_C(0x007AF7CC), UINT32_C(0x00279C7C), + UINT32_C(0x006C7303), UINT32_C(0x00E939AC), UINT32_C(0x00354019), + UINT32_C(0x00187CF7), UINT32_C(0x00183D31)}, + {UINT32_C(0x0042F626), UINT32_C(0x0074EA5E), UINT32_C(0x00538C9A), + UINT32_C(0x00AF163A), UINT32_C(0x004C692D), UINT32_C(0x0023FAA0), + UINT32_C(0x00775E16), UINT32_C(0x0062DAB8), UINT32_C(0x007D6702), + UINT32_C(0x001B38C5), UINT32_C(0x001E3974)}}, + {{UINT32_C(0x004F9403), UINT32_C(0x00748471), UINT32_C(0x00211B76), + UINT32_C(0x001EFC08), UINT32_C(0x005B213F), UINT32_C(0x003E9002), + UINT32_C(0x00785B3C), UINT32_C(0x00E45607), UINT32_C(0x003D477B), + UINT32_C(0x00282DEF), UINT32_C(0x00504A42)}, + {UINT32_C(0x00BF7FBB), UINT32_C(0x000A066A), UINT32_C(0x000679D4), + UINT32_C(0x00BB2351), UINT32_C(0x007D83CA), UINT32_C(0x00612D60), + UINT32_C(0x00031501), UINT32_C(0x00F4CAB2), UINT32_C(0x002155C8), + UINT32_C(0x003A8F2C), UINT32_C(0x00169BC2)}, + {UINT32_C(0x000357B5), UINT32_C(0x006B1266), UINT32_C(0x002BCBF3), + UINT32_C(0x00A64DFF), UINT32_C(0x0066D9DE), UINT32_C(0x0057385B), + UINT32_C(0x005050FF), UINT32_C(0x006FC06F), UINT32_C(0x0028E483), + UINT32_C(0x0051EF87), UINT32_C(0x000CC48B)}}, + {{UINT32_C(0x00ED9E35), UINT32_C(0x0023A04E), UINT32_C(0x0024255C), + UINT32_C(0x0070038E), UINT32_C(0x0046A52B), UINT32_C(0x004E9C3F), + UINT32_C(0x006C8BA2), UINT32_C(0x00D8ED9C), UINT32_C(0x006F6A03), + UINT32_C(0x003098C4), UINT32_C(0x005D825F)}, + {UINT32_C(0x008FA640), UINT32_C(0x000B9382), UINT32_C(0x0011CD48), + UINT32_C(0x00034F5D), UINT32_C(0x0059465F), UINT32_C(0x0070DA45), + UINT32_C(0x00649F15), UINT32_C(0x0054EE9E), UINT32_C(0x003D37B0), + UINT32_C(0x004361C8), UINT32_C(0x002CB478)}, + {UINT32_C(0x0012D22E), UINT32_C(0x00674682), UINT32_C(0x0070C891), + UINT32_C(0x00FC49FE), UINT32_C(0x003AF178), UINT32_C(0x0077EF15), + UINT32_C(0x007CF642), UINT32_C(0x00E36298), UINT32_C(0x002FEFEF), + UINT32_C(0x0070ADFB), UINT32_C(0x00674E26)}}, + {{UINT32_C(0x00E45F49), UINT32_C(0x0042AB1C), UINT32_C(0x005B58EE), + UINT32_C(0x009A5641), UINT32_C(0x004084D4), UINT32_C(0x00776081), + UINT32_C(0x004873EC), UINT32_C(0x0091B439), UINT32_C(0x0049547A), + UINT32_C(0x0061EF9F), UINT32_C(0x00209C2C)}, + {UINT32_C(0x00ACB336), UINT32_C(0x0002E07D), UINT32_C(0x006207CB), + UINT32_C(0x0044DAE2), UINT32_C(0x0017A196), UINT32_C(0x006B179D), + UINT32_C(0x005CFADF), UINT32_C(0x00081BD0), UINT32_C(0x002587D0), + UINT32_C(0x005AA501), UINT32_C(0x0027A6E9)}, + {UINT32_C(0x0094228F), UINT32_C(0x000636DC), UINT32_C(0x005A4102), + UINT32_C(0x003E66B4), UINT32_C(0x0011F6CD), UINT32_C(0x0038E6FD), + UINT32_C(0x000B5086), UINT32_C(0x0050E978), UINT32_C(0x005AE74C), + UINT32_C(0x00246161), UINT32_C(0x007E9879)}}, + {{UINT32_C(0x0065CC5A), UINT32_C(0x000BD258), UINT32_C(0x00167FAC), + UINT32_C(0x00E5D799), UINT32_C(0x002DCFC5), UINT32_C(0x0045B74C), + UINT32_C(0x00057C88), UINT32_C(0x0038384F), UINT32_C(0x003413FE), + UINT32_C(0x00625CFF), UINT32_C(0x00014CE5)}, + {UINT32_C(0x0038E62F), UINT32_C(0x004B5EE4), UINT32_C(0x004ADC3F), + UINT32_C(0x0062FF7C), UINT32_C(0x001110E4), UINT32_C(0x007C7151), + UINT32_C(0x002F8915), UINT32_C(0x0068F26B), UINT32_C(0x0038A310), + UINT32_C(0x002E8D53), UINT32_C(0x0031786B)}, + {UINT32_C(0x004DE3F1), UINT32_C(0x00036913), UINT32_C(0x006704FB), + UINT32_C(0x003944F4), UINT32_C(0x003E4AD6), UINT32_C(0x001A01BA), + UINT32_C(0x002E0D68), UINT32_C(0x004A2407), UINT32_C(0x0047BA89), + UINT32_C(0x003808BF), UINT32_C(0x0070E238)}}, + {{UINT32_C(0x001B2F70), UINT32_C(0x006F3BCD), UINT32_C(0x0020C220), + UINT32_C(0x00971E3D), UINT32_C(0x0067DC3E), UINT32_C(0x00154916), + UINT32_C(0x007EE08E), UINT32_C(0x009FB7E0), UINT32_C(0x00164A27), + UINT32_C(0x00000D51), UINT32_C(0x00044A8C)}, + {UINT32_C(0x00441852), UINT32_C(0x004183C7), UINT32_C(0x000B05DA), + UINT32_C(0x00765798), UINT32_C(0x002FE415), UINT32_C(0x0078F9D1), + UINT32_C(0x0049FDE6), UINT32_C(0x00D85938), UINT32_C(0x00404646), + UINT32_C(0x005B14A2), UINT32_C(0x00151434)}, + {UINT32_C(0x001ECEB3), UINT32_C(0x00723B7F), UINT32_C(0x0073FB3C), + UINT32_C(0x0055508D), UINT32_C(0x002C2D2B), UINT32_C(0x0040F43E), + UINT32_C(0x001CBD6A), UINT32_C(0x00015808), UINT32_C(0x0013E380), + UINT32_C(0x00778472), UINT32_C(0x0014758C)}}, + {{UINT32_C(0x00D4475B), UINT32_C(0x00404279), UINT32_C(0x006905B8), + UINT32_C(0x00F7FB57), UINT32_C(0x0073BDA7), UINT32_C(0x00269082), + UINT32_C(0x006B26ED), UINT32_C(0x0027D833), UINT32_C(0x001E216F), + UINT32_C(0x001360D4), UINT32_C(0x00115751)}, + {UINT32_C(0x00E38DD3), UINT32_C(0x0054A13C), UINT32_C(0x000EBF81), + UINT32_C(0x0010F4E8), UINT32_C(0x0039AB55), UINT32_C(0x0031188E), + UINT32_C(0x0027D686), UINT32_C(0x00C9A0DF), UINT32_C(0x0039BD06), + UINT32_C(0x00350B58), UINT32_C(0x007D7257)}, + {UINT32_C(0x00A31782), UINT32_C(0x000F1C0E), UINT32_C(0x002C8F03), + UINT32_C(0x00D72648), UINT32_C(0x0039C85F), UINT32_C(0x004A1C54), + UINT32_C(0x000FF85A), UINT32_C(0x0026A90F), UINT32_C(0x002B4E8C), + UINT32_C(0x000A4D59), UINT32_C(0x0050B904)}}, + {{UINT32_C(0x006238BE), UINT32_C(0x00175795), UINT32_C(0x00538917), + UINT32_C(0x007BD984), UINT32_C(0x00292FC6), UINT32_C(0x00080628), + UINT32_C(0x001B5D25), UINT32_C(0x00D80A64), UINT32_C(0x005B034B), + UINT32_C(0x00167E5D), UINT32_C(0x00421184)}, + {UINT32_C(0x00BA4129), UINT32_C(0x000FC466), UINT32_C(0x003F5CA0), + UINT32_C(0x00B0084A), UINT32_C(0x003B6970), UINT32_C(0x0079C8BB), + UINT32_C(0x006F3E63), UINT32_C(0x00D86F54), UINT32_C(0x003A31F7), + UINT32_C(0x00382189), UINT32_C(0x005CEAB5)}, + {UINT32_C(0x0041A489), UINT32_C(0x004B3EF7), UINT32_C(0x00591EC7), + UINT32_C(0x00F08AA6), UINT32_C(0x00580111), UINT32_C(0x0006B198), + UINT32_C(0x0031386E), UINT32_C(0x00EC23A3), UINT32_C(0x007F21FD), + UINT32_C(0x005E25F3), UINT32_C(0x0047AC14)}}, + {{UINT32_C(0x00AB4BF3), UINT32_C(0x0070ED4E), UINT32_C(0x001DFAA3), + UINT32_C(0x006F788D), UINT32_C(0x000470EF), UINT32_C(0x0005F6CC), + UINT32_C(0x00317FCC), UINT32_C(0x00341719), UINT32_C(0x000AF8E5), + UINT32_C(0x00265856), UINT32_C(0x004EA29A)}, + {UINT32_C(0x00BD8CE2), UINT32_C(0x0019149B), UINT32_C(0x0010C6C2), + UINT32_C(0x00D9E127), UINT32_C(0x006B514E), UINT32_C(0x00755F77), + UINT32_C(0x004E4772), UINT32_C(0x00398A6D), UINT32_C(0x0032566C), + UINT32_C(0x00029F76), UINT32_C(0x0050B40A)}, + {UINT32_C(0x008B1A27), UINT32_C(0x004EC0C5), UINT32_C(0x0069ED34), + UINT32_C(0x001088E0), UINT32_C(0x004CD905), UINT32_C(0x00697E9E), + UINT32_C(0x000A4361), UINT32_C(0x00A3E043), UINT32_C(0x0058F3E3), + UINT32_C(0x002D4E70), UINT32_C(0x006C75F0)}}, + }, + { + {{UINT32_C(0x005AB8BD), UINT32_C(0x0029D680), UINT32_C(0x0006977B), + UINT32_C(0x0074F696), UINT32_C(0x00048954), UINT32_C(0x0028F214), + UINT32_C(0x0045A271), UINT32_C(0x000DB9C5), UINT32_C(0x00141E0B), + UINT32_C(0x0064EAF4), UINT32_C(0x0016FA62)}, + {UINT32_C(0x00DD9A68), UINT32_C(0x0020101A), UINT32_C(0x006747C5), + UINT32_C(0x00C02A2D), UINT32_C(0x00551617), UINT32_C(0x00318D4B), + UINT32_C(0x003D5380), UINT32_C(0x003B36CE), UINT32_C(0x0042C7B9), + UINT32_C(0x0068C9EF), UINT32_C(0x000786CD)}, + {UINT32_C(0x0092DAA3), UINT32_C(0x006F3072), UINT32_C(0x0025BB51), + UINT32_C(0x0082E155), UINT32_C(0x002995E2), UINT32_C(0x00086EAC), + UINT32_C(0x004295AF), UINT32_C(0x0015CF09), UINT32_C(0x000217DF), + UINT32_C(0x0025C6FF), UINT32_C(0x006A1FF6)}}, + {{UINT32_C(0x0068992F), UINT32_C(0x0037A443), UINT32_C(0x004E52B8), + UINT32_C(0x00EB4DD5), UINT32_C(0x00732F40), UINT32_C(0x0039E0FA), + UINT32_C(0x0035516B), UINT32_C(0x00D1FF12), UINT32_C(0x007B9904), + UINT32_C(0x0000D042), UINT32_C(0x0061BEA7)}, + {UINT32_C(0x006695E1), UINT32_C(0x0079A990), UINT32_C(0x007D995E), + UINT32_C(0x008EA8CE), UINT32_C(0x0024E995), UINT32_C(0x0009615C), + UINT32_C(0x003CF6CE), UINT32_C(0x00077F8E), UINT32_C(0x00350417), + UINT32_C(0x0062CAC6), UINT32_C(0x0006858A)}, + {UINT32_C(0x0022B953), UINT32_C(0x003B5DF9), UINT32_C(0x004AEDEE), + UINT32_C(0x000CEEC5), UINT32_C(0x003887F6), UINT32_C(0x000254BB), + UINT32_C(0x001856BF), UINT32_C(0x00B16F48), UINT32_C(0x00226205), + UINT32_C(0x001DDE25), UINT32_C(0x006802A0)}}, + {{UINT32_C(0x00D029FB), UINT32_C(0x0024FF9C), UINT32_C(0x003692B5), + UINT32_C(0x003D6298), UINT32_C(0x005113AA), UINT32_C(0x0016BB74), + UINT32_C(0x00207B6F), UINT32_C(0x00CFD145), UINT32_C(0x001A0C73), + UINT32_C(0x003DD3F4), UINT32_C(0x004AC618)}, + {UINT32_C(0x007E0F78), UINT32_C(0x00342407), UINT32_C(0x007BF737), + UINT32_C(0x008C11E4), UINT32_C(0x001D19AF), UINT32_C(0x0023A2DD), + UINT32_C(0x00538E8D), UINT32_C(0x00026531), UINT32_C(0x002A0077), + UINT32_C(0x002FBD3B), UINT32_C(0x000D23EE)}, + {UINT32_C(0x009B883D), UINT32_C(0x000C8276), UINT32_C(0x006F819D), + UINT32_C(0x00FC2912), UINT32_C(0x00382987), UINT32_C(0x007E7030), + UINT32_C(0x003EF8E1), UINT32_C(0x00E2007A), UINT32_C(0x0008D395), + UINT32_C(0x003F0615), UINT32_C(0x00063C97)}}, + {{UINT32_C(0x00156CDE), UINT32_C(0x007EA553), UINT32_C(0x004022D6), + UINT32_C(0x00DFB476), UINT32_C(0x000AA93D), UINT32_C(0x0075AAD5), + UINT32_C(0x005CA989), UINT32_C(0x00F4319E), UINT32_C(0x006F4102), + UINT32_C(0x002EBD52), UINT32_C(0x004C0F6F)}, + {UINT32_C(0x002F3ABE), UINT32_C(0x002C0332), UINT32_C(0x000C7B65), + UINT32_C(0x00E76C78), UINT32_C(0x002AEA4E), UINT32_C(0x00419F87), + UINT32_C(0x00340B29), UINT32_C(0x0039375F), UINT32_C(0x005747D0), + UINT32_C(0x002FBD65), UINT32_C(0x0056D9BF)}, + {UINT32_C(0x00F9E607), UINT32_C(0x00092305), UINT32_C(0x005A5130), + UINT32_C(0x00B7A777), UINT32_C(0x00393B42), UINT32_C(0x002198A4), + UINT32_C(0x0044F3BE), UINT32_C(0x00B56C11), UINT32_C(0x000C5006), + UINT32_C(0x0014F3D3), UINT32_C(0x00204C61)}}, + {{UINT32_C(0x00AA29BE), UINT32_C(0x00452FB8), UINT32_C(0x000DF2B9), + UINT32_C(0x00F57AEA), UINT32_C(0x00309807), UINT32_C(0x0039FB85), + UINT32_C(0x00505F6F), UINT32_C(0x00C3979A), UINT32_C(0x0037D4C6), + UINT32_C(0x0063A3A0), UINT32_C(0x0041BB59)}, + {UINT32_C(0x00979A22), UINT32_C(0x0011A314), UINT32_C(0x004DCD17), + UINT32_C(0x0073157E), UINT32_C(0x007EA111), UINT32_C(0x005CA164), + UINT32_C(0x007D14D4), UINT32_C(0x00F4DD95), UINT32_C(0x0065EA29), + UINT32_C(0x000A8618), UINT32_C(0x00458E9C)}, + {UINT32_C(0x00166F58), UINT32_C(0x003902F4), UINT32_C(0x005DF4F1), + UINT32_C(0x00FD1412), UINT32_C(0x0065A422), UINT32_C(0x005C9158), + UINT32_C(0x007FA83F), UINT32_C(0x001B6003), UINT32_C(0x003E37A1), + UINT32_C(0x00558CA7), UINT32_C(0x005F8B80)}}, + {{UINT32_C(0x0058D515), UINT32_C(0x000E279B), UINT32_C(0x0061A7DC), + UINT32_C(0x0030FF7E), UINT32_C(0x0036EF25), UINT32_C(0x00545909), + UINT32_C(0x0071356E), UINT32_C(0x009FA397), UINT32_C(0x006064CF), + UINT32_C(0x0023899B), UINT32_C(0x0023C04A)}, + {UINT32_C(0x0070B892), UINT32_C(0x003C225C), UINT32_C(0x00641506), + UINT32_C(0x00BC6E0A), UINT32_C(0x0067DF77), UINT32_C(0x001C1328), + UINT32_C(0x006FB16A), UINT32_C(0x00DDC3EF), UINT32_C(0x000C0A82), + UINT32_C(0x0035BBBF), UINT32_C(0x0018D630)}, + {UINT32_C(0x00F762A4), UINT32_C(0x006436A9), UINT32_C(0x0068EFB4), + UINT32_C(0x00AAEE79), UINT32_C(0x001FA040), UINT32_C(0x005BE9B2), + UINT32_C(0x0068C25E), UINT32_C(0x0069171C), UINT32_C(0x0069727D), + UINT32_C(0x004D3596), UINT32_C(0x007D2D07)}}, + {{UINT32_C(0x00E0A6B1), UINT32_C(0x00537BD4), UINT32_C(0x00732E56), + UINT32_C(0x00054667), UINT32_C(0x00504F91), UINT32_C(0x005BEA24), + UINT32_C(0x003816A4), UINT32_C(0x006CAC1F), UINT32_C(0x00094C1A), + UINT32_C(0x007E0D77), UINT32_C(0x001F325B)}, + {UINT32_C(0x0056C790), UINT32_C(0x00696172), UINT32_C(0x004393F7), + UINT32_C(0x0007BC7D), UINT32_C(0x0024008C), UINT32_C(0x00632185), + UINT32_C(0x0039D510), UINT32_C(0x00776C63), UINT32_C(0x005303C0), + UINT32_C(0x00488334), UINT32_C(0x004A46B9)}, + {UINT32_C(0x00CAB13C), UINT32_C(0x007B99B0), UINT32_C(0x00716826), + UINT32_C(0x0090AADC), UINT32_C(0x003C39E0), UINT32_C(0x0062EF5A), + UINT32_C(0x00220C12), UINT32_C(0x004D0B33), UINT32_C(0x004E1E9F), + UINT32_C(0x0009FA96), UINT32_C(0x00553213)}}, + {{UINT32_C(0x00250F6D), UINT32_C(0x007501A6), UINT32_C(0x003B682C), + UINT32_C(0x0044D730), UINT32_C(0x00649A14), UINT32_C(0x0032BFCE), + UINT32_C(0x0066ADB8), UINT32_C(0x0034ED5B), UINT32_C(0x0043D7B2), + UINT32_C(0x0000FFB9), UINT32_C(0x005A4861)}, + {UINT32_C(0x003B7613), UINT32_C(0x0001D6FB), UINT32_C(0x003D0B17), + UINT32_C(0x007E0DC7), UINT32_C(0x005BC5C1), UINT32_C(0x003BB331), + UINT32_C(0x0062230B), UINT32_C(0x0061ECC7), UINT32_C(0x005DDB12), + UINT32_C(0x002700A7), UINT32_C(0x00258078)}, + {UINT32_C(0x005856C3), UINT32_C(0x0046B785), UINT32_C(0x002EE0A7), + UINT32_C(0x00316F2C), UINT32_C(0x001A3AAB), UINT32_C(0x0069EF00), + UINT32_C(0x0002A746), UINT32_C(0x0099DDEA), UINT32_C(0x004753D7), + UINT32_C(0x0062170C), UINT32_C(0x004CA608)}}, + {{UINT32_C(0x0096B8DD), UINT32_C(0x004957F8), UINT32_C(0x007298E2), + UINT32_C(0x008A7B5F), UINT32_C(0x0001A2BB), UINT32_C(0x004D7F56), + UINT32_C(0x00560362), UINT32_C(0x001642A5), UINT32_C(0x0017F72E), + UINT32_C(0x003B6605), UINT32_C(0x00390B61)}, + {UINT32_C(0x0015F82F), UINT32_C(0x000E8511), UINT32_C(0x00668D3B), + UINT32_C(0x00C4B091), UINT32_C(0x003C935D), UINT32_C(0x005D4F5F), + UINT32_C(0x0065AFF6), UINT32_C(0x00C88375), UINT32_C(0x00488074), + UINT32_C(0x00260091), UINT32_C(0x0032A589)}, + {UINT32_C(0x00BCD3E4), UINT32_C(0x0073BD2C), UINT32_C(0x00537827), + UINT32_C(0x00C860A9), UINT32_C(0x0023CB46), UINT32_C(0x004AF7E7), + UINT32_C(0x0055A3FB), UINT32_C(0x00D9298A), UINT32_C(0x002A1C35), + UINT32_C(0x001D8443), UINT32_C(0x00625170)}}, + {{UINT32_C(0x00CC32C8), UINT32_C(0x0025B8DD), UINT32_C(0x0033759B), + UINT32_C(0x00B90E61), UINT32_C(0x0053232D), UINT32_C(0x00622CCA), + UINT32_C(0x003F2B2B), UINT32_C(0x0012CE87), UINT32_C(0x000FED16), + UINT32_C(0x00517920), UINT32_C(0x0026E2BC)}, + {UINT32_C(0x0033B8DF), UINT32_C(0x006BD2B2), UINT32_C(0x002C06A6), + UINT32_C(0x007B255F), UINT32_C(0x0049E009), UINT32_C(0x00109815), + UINT32_C(0x0041610E), UINT32_C(0x007AA99D), UINT32_C(0x004D2604), + UINT32_C(0x001C2975), UINT32_C(0x00419560)}, + {UINT32_C(0x00F4C3F1), UINT32_C(0x00358166), UINT32_C(0x0047A4EF), + UINT32_C(0x00B32B54), UINT32_C(0x007F5298), UINT32_C(0x0060C7DC), + UINT32_C(0x004550B3), UINT32_C(0x00381199), UINT32_C(0x004D1985), + UINT32_C(0x003008AD), UINT32_C(0x001E997E)}}, + {{UINT32_C(0x0080A2DD), UINT32_C(0x0011A8A1), UINT32_C(0x00763776), + UINT32_C(0x0037A4E8), UINT32_C(0x002DEFD0), UINT32_C(0x005CC3A3), + UINT32_C(0x0002CD3A), UINT32_C(0x003BDE69), UINT32_C(0x000D3C3B), + UINT32_C(0x00468707), UINT32_C(0x002C6250)}, + {UINT32_C(0x00DC4853), UINT32_C(0x0013FF85), UINT32_C(0x006F92A3), + UINT32_C(0x00E2DC5B), UINT32_C(0x002BA1BF), UINT32_C(0x0069003C), + UINT32_C(0x00696B4A), UINT32_C(0x001FEA22), UINT32_C(0x00737E75), + UINT32_C(0x002DDA93), UINT32_C(0x00682793)}, + {UINT32_C(0x00792D5C), UINT32_C(0x00756880), UINT32_C(0x0016DEDC), + UINT32_C(0x00132FF7), UINT32_C(0x0028F65F), UINT32_C(0x00687D6B), + UINT32_C(0x0042DB10), UINT32_C(0x00F60F17), UINT32_C(0x00244567), + UINT32_C(0x005EA7EE), UINT32_C(0x00680EE7)}}, + {{UINT32_C(0x0017AD54), UINT32_C(0x00226170), UINT32_C(0x00248F16), + UINT32_C(0x00E68159), UINT32_C(0x001F85B5), UINT32_C(0x005AEC69), + UINT32_C(0x00207C21), UINT32_C(0x0080BD65), UINT32_C(0x0072C461), + UINT32_C(0x000826BF), UINT32_C(0x00721CFE)}, + {UINT32_C(0x00221394), UINT32_C(0x000F6241), UINT32_C(0x00312D0B), + UINT32_C(0x007310BE), UINT32_C(0x006D18ED), UINT32_C(0x0009B7DC), + UINT32_C(0x0002ADC6), UINT32_C(0x009D4B71), UINT32_C(0x00652C01), + UINT32_C(0x001193C0), UINT32_C(0x006CDFD9)}, + {UINT32_C(0x00441B95), UINT32_C(0x005F316E), UINT32_C(0x00055A1A), + UINT32_C(0x008ABFDB), UINT32_C(0x0050B1C9), UINT32_C(0x00219EE2), + UINT32_C(0x003C70AE), UINT32_C(0x004C49AE), UINT32_C(0x00791825), + UINT32_C(0x004EA87D), UINT32_C(0x001C346C)}}, + {{UINT32_C(0x00633E8B), UINT32_C(0x000D64E6), UINT32_C(0x0043AD57), + UINT32_C(0x0056000C), UINT32_C(0x0022A710), UINT32_C(0x001CF6E7), + UINT32_C(0x0061C894), UINT32_C(0x0029FCC0), UINT32_C(0x0063A2A7), + UINT32_C(0x002F042F), UINT32_C(0x006D9C7B)}, + {UINT32_C(0x00C0114A), UINT32_C(0x00054C9F), UINT32_C(0x00014A30), + UINT32_C(0x008750DC), UINT32_C(0x0014F782), UINT32_C(0x005BDDB7), + UINT32_C(0x0048FFA9), UINT32_C(0x006F51B9), UINT32_C(0x000ACD25), + UINT32_C(0x001C791B), UINT32_C(0x006F027E)}, + {UINT32_C(0x0059BE30), UINT32_C(0x0004C8AA), UINT32_C(0x001EEFA6), + UINT32_C(0x00969A3F), UINT32_C(0x002541FF), UINT32_C(0x00021EAE), + UINT32_C(0x002335EF), UINT32_C(0x007B34F0), UINT32_C(0x005812F4), + UINT32_C(0x0035961A), UINT32_C(0x0018E93C)}}, + {{UINT32_C(0x003D4ACA), UINT32_C(0x002344E6), UINT32_C(0x005AE7C9), + UINT32_C(0x00C22F17), UINT32_C(0x0053F5F0), UINT32_C(0x0037ABD3), + UINT32_C(0x0064DD19), UINT32_C(0x00A742A2), UINT32_C(0x00762397), + UINT32_C(0x000E9EEF), UINT32_C(0x00047D34)}, + {UINT32_C(0x00E9B3BB), UINT32_C(0x00532D39), UINT32_C(0x004E866E), + UINT32_C(0x00F7D682), UINT32_C(0x002ACA85), UINT32_C(0x00552578), + UINT32_C(0x0033FA4B), UINT32_C(0x00977782), UINT32_C(0x003D410E), + UINT32_C(0x0003548B), UINT32_C(0x0054FC74)}, + {UINT32_C(0x00C8BBFF), UINT32_C(0x0013F345), UINT32_C(0x0058E472), + UINT32_C(0x00274591), UINT32_C(0x005597A6), UINT32_C(0x0013E285), + UINT32_C(0x0057D3BB), UINT32_C(0x0092D7C6), UINT32_C(0x00500460), + UINT32_C(0x00488CB7), UINT32_C(0x006800FE)}}, + {{UINT32_C(0x0000AA79), UINT32_C(0x002C098B), UINT32_C(0x00759A30), + UINT32_C(0x002C7125), UINT32_C(0x00199DDC), UINT32_C(0x0075546E), + UINT32_C(0x00559A27), UINT32_C(0x00DF24BF), UINT32_C(0x00151F99), + UINT32_C(0x003C4C5B), UINT32_C(0x002EAF89)}, + {UINT32_C(0x00DC697B), UINT32_C(0x00751FA8), UINT32_C(0x0077C24F), + UINT32_C(0x0038C1A6), UINT32_C(0x0013EBD3), UINT32_C(0x0023A808), + UINT32_C(0x000B2621), UINT32_C(0x00C685DB), UINT32_C(0x00581796), + UINT32_C(0x0057D263), UINT32_C(0x0004E256)}, + {UINT32_C(0x00E52262), UINT32_C(0x001D22BD), UINT32_C(0x006A26A0), + UINT32_C(0x0085E1CA), UINT32_C(0x003EC7B7), UINT32_C(0x002FFB62), + UINT32_C(0x0067736A), UINT32_C(0x00EF293F), UINT32_C(0x0061C4FE), + UINT32_C(0x00730AA3), UINT32_C(0x000EB2F6)}}, + {{UINT32_C(0x00641095), UINT32_C(0x0058D612), UINT32_C(0x000AAE18), + UINT32_C(0x0029DFF3), UINT32_C(0x00001553), UINT32_C(0x007F0860), + UINT32_C(0x000F0ED0), UINT32_C(0x00A86E36), UINT32_C(0x000DBF80), + UINT32_C(0x0031F7B2), UINT32_C(0x00229559)}, + {UINT32_C(0x003D6EA7), UINT32_C(0x00417EB0), UINT32_C(0x0030EED3), + UINT32_C(0x0076B04C), UINT32_C(0x006404B7), UINT32_C(0x00647E89), + UINT32_C(0x0038E725), UINT32_C(0x00955982), UINT32_C(0x0044F11A), + UINT32_C(0x0030EB34), UINT32_C(0x0060A0E2)}, + {UINT32_C(0x00FFBA33), UINT32_C(0x00576743), UINT32_C(0x007B4196), + UINT32_C(0x0065FCEB), UINT32_C(0x00147F68), UINT32_C(0x00753F2E), + UINT32_C(0x002CE14E), UINT32_C(0x004CC9FA), UINT32_C(0x0008D7B1), + UINT32_C(0x004C33D1), UINT32_C(0x0045EB11)}}, + }, + { + {{UINT32_C(0x00178112), UINT32_C(0x004144EF), UINT32_C(0x0015E475), + UINT32_C(0x00280993), UINT32_C(0x003DFA25), UINT32_C(0x00316893), + UINT32_C(0x0013A505), UINT32_C(0x002E8E8C), UINT32_C(0x001BE3B1), + UINT32_C(0x004A5354), UINT32_C(0x005737B1)}, + {UINT32_C(0x005EE99B), UINT32_C(0x00738EC3), UINT32_C(0x000EEBF1), + UINT32_C(0x006EAA11), UINT32_C(0x006EC5B6), UINT32_C(0x00137DDE), + UINT32_C(0x0077237C), UINT32_C(0x00B7F2C7), UINT32_C(0x006D2A26), + UINT32_C(0x005B944F), UINT32_C(0x0077B72B)}, + {UINT32_C(0x00288C6E), UINT32_C(0x005166D7), UINT32_C(0x0048279B), + UINT32_C(0x009E9476), UINT32_C(0x0021C271), UINT32_C(0x0071BEB4), + UINT32_C(0x004E74B9), UINT32_C(0x00F2F6D4), UINT32_C(0x00498EF2), + UINT32_C(0x00769444), UINT32_C(0x00393F71)}}, + {{UINT32_C(0x00CF7E6B), UINT32_C(0x001C84EE), UINT32_C(0x00375656), + UINT32_C(0x00982B0D), UINT32_C(0x0015275A), UINT32_C(0x0037C644), + UINT32_C(0x00419783), UINT32_C(0x00E2FD75), UINT32_C(0x005830C6), + UINT32_C(0x003DDDEF), UINT32_C(0x001D4931)}, + {UINT32_C(0x006F71D9), UINT32_C(0x0013F2A3), UINT32_C(0x007E4CC9), + UINT32_C(0x0048B895), UINT32_C(0x006E0B00), UINT32_C(0x00535CF4), + UINT32_C(0x004F83CB), UINT32_C(0x00E80D3A), UINT32_C(0x002893B7), + UINT32_C(0x0039AF63), UINT32_C(0x00756654)}, + {UINT32_C(0x002DD089), UINT32_C(0x005B7963), UINT32_C(0x00147EEF), + UINT32_C(0x008FE97D), UINT32_C(0x0074DE7F), UINT32_C(0x0038F059), + UINT32_C(0x00424B8B), UINT32_C(0x00510FF5), UINT32_C(0x002A9DB5), + UINT32_C(0x0040775A), UINT32_C(0x0023EC28)}}, + {{UINT32_C(0x004FFE86), UINT32_C(0x005A8445), UINT32_C(0x007B9BE4), + UINT32_C(0x003CB951), UINT32_C(0x003DA9E0), UINT32_C(0x000B053F), + UINT32_C(0x0068F80D), UINT32_C(0x008B792C), UINT32_C(0x006E5C50), + UINT32_C(0x00709425), UINT32_C(0x00695574)}, + {UINT32_C(0x0055360D), UINT32_C(0x00304400), UINT32_C(0x007E3E9A), + UINT32_C(0x00042D95), UINT32_C(0x006A420D), UINT32_C(0x000DE570), + UINT32_C(0x0012F771), UINT32_C(0x007BF1D1), UINT32_C(0x005E64D1), + UINT32_C(0x001011DE), UINT32_C(0x000FD8B3)}, + {UINT32_C(0x0035FF69), UINT32_C(0x0066F82F), UINT32_C(0x00765895), + UINT32_C(0x00F5BC13), UINT32_C(0x00559AFC), UINT32_C(0x00165B92), + UINT32_C(0x001A82F9), UINT32_C(0x004B92A4), UINT32_C(0x006FF84F), + UINT32_C(0x000C3427), UINT32_C(0x0062C571)}}, + {{UINT32_C(0x001B13D2), UINT32_C(0x001AB645), UINT32_C(0x007C40CE), + UINT32_C(0x007EA6AF), UINT32_C(0x00411986), UINT32_C(0x00393A3E), + UINT32_C(0x003CE614), UINT32_C(0x006D6293), UINT32_C(0x003D6770), + UINT32_C(0x003CBAD3), UINT32_C(0x005F61B3)}, + {UINT32_C(0x007F1514), UINT32_C(0x00563424), UINT32_C(0x00333C42), + UINT32_C(0x0091B025), UINT32_C(0x000AC50C), UINT32_C(0x00572275), + UINT32_C(0x00592815), UINT32_C(0x002DB85E), UINT32_C(0x0012ADB7), + UINT32_C(0x00696D1D), UINT32_C(0x000924E7)}, + {UINT32_C(0x008A69B5), UINT32_C(0x0042A7C5), UINT32_C(0x007608DB), + UINT32_C(0x00E7F3E0), UINT32_C(0x005993D5), UINT32_C(0x0004961E), + UINT32_C(0x0076A481), UINT32_C(0x00A7DA96), UINT32_C(0x007E1606), + UINT32_C(0x00752F27), UINT32_C(0x006EA269)}}, + {{UINT32_C(0x00E74931), UINT32_C(0x002B3168), UINT32_C(0x0062191F), + UINT32_C(0x007F0A08), UINT32_C(0x00407602), UINT32_C(0x005E821F), + UINT32_C(0x004B971A), UINT32_C(0x009FAA40), UINT32_C(0x00617415), + UINT32_C(0x0019AF4C), UINT32_C(0x000A1378)}, + {UINT32_C(0x001CF746), UINT32_C(0x00698B21), UINT32_C(0x003AF2B3), + UINT32_C(0x0018D41A), UINT32_C(0x00032EA5), UINT32_C(0x006A2A53), + UINT32_C(0x0021B364), UINT32_C(0x004A1660), UINT32_C(0x00524EDD), + UINT32_C(0x00537B8F), UINT32_C(0x0038BE03)}, + {UINT32_C(0x006C56DF), UINT32_C(0x0042F0FB), UINT32_C(0x000A9D1A), + UINT32_C(0x007BE0C1), UINT32_C(0x006A26F4), UINT32_C(0x0034FD46), + UINT32_C(0x005C512E), UINT32_C(0x00F3B887), UINT32_C(0x00741791), + UINT32_C(0x000B6109), UINT32_C(0x007ED098)}}, + {{UINT32_C(0x002F95C3), UINT32_C(0x0075A30D), UINT32_C(0x004F8EA8), + UINT32_C(0x00D36AE9), UINT32_C(0x003B9F94), UINT32_C(0x0050D27A), + UINT32_C(0x0047AFFF), UINT32_C(0x00FF1072), UINT32_C(0x006EBA0D), + UINT32_C(0x007147B6), UINT32_C(0x007C9C06)}, + {UINT32_C(0x007D647C), UINT32_C(0x00491D36), UINT32_C(0x003D3169), + UINT32_C(0x00E48196), UINT32_C(0x005C2776), UINT32_C(0x0071BB7A), + UINT32_C(0x000E3716), UINT32_C(0x00EEE6BA), UINT32_C(0x007A2FD6), + UINT32_C(0x0066EADE), UINT32_C(0x006A3D3C)}, + {UINT32_C(0x00D712D2), UINT32_C(0x0030AFB5), UINT32_C(0x000B6DE0), + UINT32_C(0x00CA9B95), UINT32_C(0x003CB508), UINT32_C(0x0002574C), + UINT32_C(0x004F7664), UINT32_C(0x008BDA7C), UINT32_C(0x0052F4AE), + UINT32_C(0x007C9C6D), UINT32_C(0x00640826)}}, + {{UINT32_C(0x00E39A36), UINT32_C(0x004E864A), UINT32_C(0x0041824A), + UINT32_C(0x0014E9D0), UINT32_C(0x006B0DD5), UINT32_C(0x003F0191), + UINT32_C(0x006B3AA8), UINT32_C(0x000F82B6), UINT32_C(0x00646713), + UINT32_C(0x004411BF), UINT32_C(0x006EC066)}, + {UINT32_C(0x0055A118), UINT32_C(0x001D8588), UINT32_C(0x00098B01), + UINT32_C(0x005B872B), UINT32_C(0x000612D7), UINT32_C(0x0015BB6C), + UINT32_C(0x003EA8DE), UINT32_C(0x00492CBB), UINT32_C(0x0002B390), + UINT32_C(0x002F64C6), UINT32_C(0x00309519)}, + {UINT32_C(0x00BCD94C), UINT32_C(0x000453AB), UINT32_C(0x0004DF45), + UINT32_C(0x000AF59E), UINT32_C(0x00224611), UINT32_C(0x0046CB1F), + UINT32_C(0x0037D384), UINT32_C(0x00704C79), UINT32_C(0x004E9EAE), + UINT32_C(0x005F6C61), UINT32_C(0x0033B91C)}}, + {{UINT32_C(0x00C4EB7B), UINT32_C(0x001BB1AE), UINT32_C(0x000DF746), + UINT32_C(0x002F5C66), UINT32_C(0x00386901), UINT32_C(0x004503D0), + UINT32_C(0x00243C4F), UINT32_C(0x00F631A8), UINT32_C(0x0072318C), + UINT32_C(0x0067781F), UINT32_C(0x0062555B)}, + {UINT32_C(0x009DF20B), UINT32_C(0x007957AF), UINT32_C(0x0048E896), + UINT32_C(0x00266C31), UINT32_C(0x00606385), UINT32_C(0x00182ADB), + UINT32_C(0x000F2D0A), UINT32_C(0x0047F1DB), UINT32_C(0x00612A5A), + UINT32_C(0x00585C22), UINT32_C(0x00138DA1)}, + {UINT32_C(0x002B00C5), UINT32_C(0x007C31F7), UINT32_C(0x0027D051), + UINT32_C(0x009836BE), UINT32_C(0x005DD824), UINT32_C(0x003C85C8), + UINT32_C(0x00037B92), UINT32_C(0x005A36F0), UINT32_C(0x00072882), + UINT32_C(0x00556F25), UINT32_C(0x005C74C4)}}, + {{UINT32_C(0x00200CDA), UINT32_C(0x00142D7E), UINT32_C(0x000C5F19), + UINT32_C(0x0033CB24), UINT32_C(0x0062D137), UINT32_C(0x00370C3B), + UINT32_C(0x007C19E3), UINT32_C(0x002C37A4), UINT32_C(0x0056C3B7), + UINT32_C(0x0012591E), UINT32_C(0x005C6251)}, + {UINT32_C(0x00B8567F), UINT32_C(0x007942F3), UINT32_C(0x002971B5), + UINT32_C(0x007509BB), UINT32_C(0x004489A3), UINT32_C(0x00090D38), + UINT32_C(0x0049BA67), UINT32_C(0x00A295D7), UINT32_C(0x0006DE00), + UINT32_C(0x005529F0), UINT32_C(0x0068D340)}, + {UINT32_C(0x008E1FEE), UINT32_C(0x002BADB8), UINT32_C(0x0060B20C), + UINT32_C(0x00DE49F8), UINT32_C(0x0006AE06), UINT32_C(0x005BAE81), + UINT32_C(0x00153FDC), UINT32_C(0x002DCC1B), UINT32_C(0x000F1E26), + UINT32_C(0x00005870), UINT32_C(0x003CB27C)}}, + {{UINT32_C(0x00BA06D8), UINT32_C(0x0028ABA3), UINT32_C(0x004A0A47), + UINT32_C(0x000E951E), UINT32_C(0x00609146), UINT32_C(0x00213816), + UINT32_C(0x005657D3), UINT32_C(0x00404103), UINT32_C(0x0041BEE3), + UINT32_C(0x001CC688), UINT32_C(0x003A758E)}, + {UINT32_C(0x00F8BBE3), UINT32_C(0x00641D00), UINT32_C(0x00119DD5), + UINT32_C(0x004610E6), UINT32_C(0x0042B1F2), UINT32_C(0x00065991), + UINT32_C(0x00400456), UINT32_C(0x0031F869), UINT32_C(0x00467CE5), + UINT32_C(0x002ACA8A), UINT32_C(0x004AE71F)}, + {UINT32_C(0x00E75B70), UINT32_C(0x0045C331), UINT32_C(0x002C67D3), + UINT32_C(0x002BAD62), UINT32_C(0x006D4C0D), UINT32_C(0x003E98E0), + UINT32_C(0x0025DD15), UINT32_C(0x001652BE), UINT32_C(0x00138D53), + UINT32_C(0x004CC0B3), UINT32_C(0x002588D3)}}, + {{UINT32_C(0x0015F134), UINT32_C(0x00758619), UINT32_C(0x005ABA25), + UINT32_C(0x008AE40E), UINT32_C(0x00678EB8), UINT32_C(0x0001E6CD), + UINT32_C(0x006265B1), UINT32_C(0x00D3C52B), UINT32_C(0x002372C9), + UINT32_C(0x0008A5C9), UINT32_C(0x006ACFA4)}, + {UINT32_C(0x009F8482), UINT32_C(0x0045994C), UINT32_C(0x005989D0), + UINT32_C(0x0048FFCC), UINT32_C(0x00242063), UINT32_C(0x000A8DD0), + UINT32_C(0x005A0F78), UINT32_C(0x000518C7), UINT32_C(0x0039D0FB), + UINT32_C(0x00116011), UINT32_C(0x0074BBE1)}, + {UINT32_C(0x008817CF), UINT32_C(0x0035F03B), UINT32_C(0x0008E964), + UINT32_C(0x00DBB160), UINT32_C(0x0017FB04), UINT32_C(0x006F931C), + UINT32_C(0x0024585A), UINT32_C(0x0043E352), UINT32_C(0x005B3B89), + UINT32_C(0x0041A78E), UINT32_C(0x004EE10D)}}, + {{UINT32_C(0x00B5B594), UINT32_C(0x00238C49), UINT32_C(0x0061A952), + UINT32_C(0x00547564), UINT32_C(0x0017E9B6), UINT32_C(0x004A85C1), + UINT32_C(0x00092964), UINT32_C(0x00E0030F), UINT32_C(0x0002C024), + UINT32_C(0x006FDEC5), UINT32_C(0x003414A1)}, + {UINT32_C(0x005F899E), UINT32_C(0x00317B47), UINT32_C(0x00390FE7), + UINT32_C(0x0081FD30), UINT32_C(0x00666C28), UINT32_C(0x00310591), + UINT32_C(0x000A02ED), UINT32_C(0x00C5E37F), UINT32_C(0x00200BEA), + UINT32_C(0x004E58B8), UINT32_C(0x0006090A)}, + {UINT32_C(0x009AED9F), UINT32_C(0x006353DF), UINT32_C(0x004C8001), + UINT32_C(0x00684029), UINT32_C(0x00278C84), UINT32_C(0x00476EFD), + UINT32_C(0x002269BF), UINT32_C(0x0061CFF8), UINT32_C(0x006308BB), + UINT32_C(0x0038C1A8), UINT32_C(0x000ED4DD)}}, + {{UINT32_C(0x0096CDC1), UINT32_C(0x004A93DE), UINT32_C(0x0017141A), + UINT32_C(0x000CAE27), UINT32_C(0x00633C72), UINT32_C(0x001DD494), + UINT32_C(0x005D5019), UINT32_C(0x007B392A), UINT32_C(0x004E6770), + UINT32_C(0x0057CDFA), UINT32_C(0x0070ED69)}, + {UINT32_C(0x00A5AAC7), UINT32_C(0x0017F8BA), UINT32_C(0x0012D3F8), + UINT32_C(0x00D2AEF7), UINT32_C(0x00203DAB), UINT32_C(0x001A6E08), + UINT32_C(0x000F9D07), UINT32_C(0x003CEB53), UINT32_C(0x001F11A2), + UINT32_C(0x00146100), UINT32_C(0x002BF207)}, + {UINT32_C(0x00AE2A02), UINT32_C(0x003FEF01), UINT32_C(0x00095E8C), + UINT32_C(0x001BC27F), UINT32_C(0x00579C72), UINT32_C(0x007785A3), + UINT32_C(0x000CF4D0), UINT32_C(0x00B77DC2), UINT32_C(0x00771FCC), + UINT32_C(0x006D028D), UINT32_C(0x0072A687)}}, + {{UINT32_C(0x00FB5F0C), UINT32_C(0x000952F3), UINT32_C(0x0011F5D5), + UINT32_C(0x0065371A), UINT32_C(0x006D7E88), UINT32_C(0x0054191C), + UINT32_C(0x0076F7CF), UINT32_C(0x006B48DC), UINT32_C(0x006FD352), + UINT32_C(0x004F1AA7), UINT32_C(0x007F5B13)}, + {UINT32_C(0x00606E6E), UINT32_C(0x00363808), UINT32_C(0x00407081), + UINT32_C(0x0004FC3F), UINT32_C(0x00448579), UINT32_C(0x005D29C4), + UINT32_C(0x001A127D), UINT32_C(0x005B9EEE), UINT32_C(0x00653D8E), + UINT32_C(0x0028A4DF), UINT32_C(0x00628593)}, + {UINT32_C(0x00AC7820), UINT32_C(0x0030A9D3), UINT32_C(0x0071BE3A), + UINT32_C(0x005FB4E5), UINT32_C(0x002512AE), UINT32_C(0x006EAE7D), + UINT32_C(0x001D9B40), UINT32_C(0x005C1369), UINT32_C(0x00786C22), + UINT32_C(0x0047AFEE), UINT32_C(0x00784A75)}}, + {{UINT32_C(0x00213EE3), UINT32_C(0x006F9827), UINT32_C(0x0021482B), + UINT32_C(0x00E1390C), UINT32_C(0x00560D0B), UINT32_C(0x0050DD23), + UINT32_C(0x0064A528), UINT32_C(0x00BA7CFF), UINT32_C(0x002D8C84), + UINT32_C(0x0016175A), UINT32_C(0x005016A4)}, + {UINT32_C(0x00776C25), UINT32_C(0x000CB993), UINT32_C(0x0023BE80), + UINT32_C(0x005A52FE), UINT32_C(0x002D117A), UINT32_C(0x00199CDB), + UINT32_C(0x0052EB5E), UINT32_C(0x008D6F49), UINT32_C(0x007D7649), + UINT32_C(0x0027048D), UINT32_C(0x001A9C36)}, + {UINT32_C(0x00632283), UINT32_C(0x00211DC7), UINT32_C(0x005DFA7C), + UINT32_C(0x00F9046B), UINT32_C(0x00588CD6), UINT32_C(0x003FAF32), + UINT32_C(0x007F4AED), UINT32_C(0x00575BC2), UINT32_C(0x007DBB8A), + UINT32_C(0x0005122F), UINT32_C(0x006253CC)}}, + {{UINT32_C(0x000D1BD2), UINT32_C(0x001AF81A), UINT32_C(0x0037C285), + UINT32_C(0x00D871E6), UINT32_C(0x0062340E), UINT32_C(0x0071909A), + UINT32_C(0x000F0E01), UINT32_C(0x0076262E), UINT32_C(0x007BF9C3), + UINT32_C(0x007F40FC), UINT32_C(0x000B2BC5)}, + {UINT32_C(0x002724D3), UINT32_C(0x00504EE8), UINT32_C(0x00609955), + UINT32_C(0x0075E11A), UINT32_C(0x000CB36C), UINT32_C(0x0056D4AF), + UINT32_C(0x000E59E9), UINT32_C(0x003E6912), UINT32_C(0x00789AD2), + UINT32_C(0x00575219), UINT32_C(0x007D7B6C)}, + {UINT32_C(0x0072E3DB), UINT32_C(0x0050D327), UINT32_C(0x000F9230), + UINT32_C(0x00AFB63A), UINT32_C(0x0008E760), UINT32_C(0x0059EB9D), + UINT32_C(0x003A4CC1), UINT32_C(0x00C1CE75), UINT32_C(0x00497AD2), + UINT32_C(0x006BAB27), UINT32_C(0x002B8174)}}, + }, + { + {{UINT32_C(0x00C72DC5), UINT32_C(0x00771E4C), UINT32_C(0x007FE32B), + UINT32_C(0x00502045), UINT32_C(0x00047BCA), UINT32_C(0x005E99DD), + UINT32_C(0x0062584D), UINT32_C(0x00C26155), UINT32_C(0x007641CF), + UINT32_C(0x00519072), UINT32_C(0x0008A95B)}, + {UINT32_C(0x00B1CB39), UINT32_C(0x000965FD), UINT32_C(0x0031E4AF), + UINT32_C(0x0030360A), UINT32_C(0x001C457C), UINT32_C(0x003BB754), + UINT32_C(0x005CEAE2), UINT32_C(0x000B7485), UINT32_C(0x00211EE1), + UINT32_C(0x005286E0), UINT32_C(0x00797D03)}, + {UINT32_C(0x00220D40), UINT32_C(0x004CA0AD), UINT32_C(0x0021A77A), + UINT32_C(0x00364CE1), UINT32_C(0x006676A3), UINT32_C(0x0038EE70), + UINT32_C(0x001B66BF), UINT32_C(0x00A09800), UINT32_C(0x00714B36), + UINT32_C(0x0068F47C), UINT32_C(0x000FBD61)}}, + {{UINT32_C(0x00AADA87), UINT32_C(0x001E516D), UINT32_C(0x001DDDC1), + UINT32_C(0x002496F0), UINT32_C(0x0079D73B), UINT32_C(0x006E84CA), + UINT32_C(0x0001F77F), UINT32_C(0x004ED6A4), UINT32_C(0x004F9268), + UINT32_C(0x002C2D9B), UINT32_C(0x00452C79)}, + {UINT32_C(0x005C5FB5), UINT32_C(0x001401F9), UINT32_C(0x001619FE), + UINT32_C(0x0073A62F), UINT32_C(0x0027A568), UINT32_C(0x00410CA3), + UINT32_C(0x007090B1), UINT32_C(0x0088392F), UINT32_C(0x00025F8C), + UINT32_C(0x00470FB6), UINT32_C(0x00400202)}, + {UINT32_C(0x00FB4AF5), UINT32_C(0x004A6D33), UINT32_C(0x0067B3D7), + UINT32_C(0x006C233F), UINT32_C(0x006659A6), UINT32_C(0x003370F0), + UINT32_C(0x0071C750), UINT32_C(0x007CF562), UINT32_C(0x006B187A), + UINT32_C(0x0044EC7F), UINT32_C(0x00780B9E)}}, + {{UINT32_C(0x007A1682), UINT32_C(0x00775D09), UINT32_C(0x000CA759), + UINT32_C(0x005178EB), UINT32_C(0x001128C9), UINT32_C(0x00453CCE), + UINT32_C(0x002B94ED), UINT32_C(0x00A6541E), UINT32_C(0x0029A8C4), + UINT32_C(0x0029D1E3), UINT32_C(0x00318CEC)}, + {UINT32_C(0x002EA810), UINT32_C(0x002E2D2A), UINT32_C(0x00760A1E), + UINT32_C(0x00768B26), UINT32_C(0x0012C353), UINT32_C(0x007A143A), + UINT32_C(0x007F1485), UINT32_C(0x002F5E05), UINT32_C(0x006543DE), + UINT32_C(0x0005DA47), UINT32_C(0x0062D462)}, + {UINT32_C(0x0056C417), UINT32_C(0x0020F8E7), UINT32_C(0x0021B1CB), + UINT32_C(0x00DEBC01), UINT32_C(0x0049F124), UINT32_C(0x0063A3EF), + UINT32_C(0x006B1EFC), UINT32_C(0x005DD025), UINT32_C(0x00579F7C), + UINT32_C(0x005282E6), UINT32_C(0x003743A4)}}, + {{UINT32_C(0x00D850C1), UINT32_C(0x004304DD), UINT32_C(0x0031CA95), + UINT32_C(0x00ABA381), UINT32_C(0x00557845), UINT32_C(0x00170B2A), + UINT32_C(0x00269F01), UINT32_C(0x00F14562), UINT32_C(0x00177E37), + UINT32_C(0x0000AEF5), UINT32_C(0x0016E67A)}, + {UINT32_C(0x008429CD), UINT32_C(0x004F3F15), UINT32_C(0x00310961), + UINT32_C(0x00018EC0), UINT32_C(0x0017C520), UINT32_C(0x005A3C1E), + UINT32_C(0x00069B19), UINT32_C(0x00BBC85D), UINT32_C(0x006A8255), + UINT32_C(0x0005A237), UINT32_C(0x00671035)}, + {UINT32_C(0x00397785), UINT32_C(0x000B8DE6), UINT32_C(0x00034C5B), + UINT32_C(0x00335B11), UINT32_C(0x005C7862), UINT32_C(0x002482C8), + UINT32_C(0x0037A568), UINT32_C(0x00679E39), UINT32_C(0x0056810F), + UINT32_C(0x0000E8F6), UINT32_C(0x003D1330)}}, + {{UINT32_C(0x00FAF1CD), UINT32_C(0x0060A8C5), UINT32_C(0x00508B76), + UINT32_C(0x004F108E), UINT32_C(0x0054D331), UINT32_C(0x0027A7E8), + UINT32_C(0x00346905), UINT32_C(0x00450F84), UINT32_C(0x001D3E9C), + UINT32_C(0x000B0762), UINT32_C(0x00032396)}, + {UINT32_C(0x004FAD75), UINT32_C(0x00013909), UINT32_C(0x00279AA7), + UINT32_C(0x00661D96), UINT32_C(0x0011C8F3), UINT32_C(0x004E1E02), + UINT32_C(0x0079B899), UINT32_C(0x00219A22), UINT32_C(0x007D00F4), + UINT32_C(0x0073A047), UINT32_C(0x00112302)}, + {UINT32_C(0x00C06EE2), UINT32_C(0x003FE63F), UINT32_C(0x0041BD79), + UINT32_C(0x00096C7C), UINT32_C(0x00716A9D), UINT32_C(0x00616E56), + UINT32_C(0x003FA2BD), UINT32_C(0x006CC575), UINT32_C(0x0077B6FA), + UINT32_C(0x005D8484), UINT32_C(0x004EC884)}}, + {{UINT32_C(0x00EEDE54), UINT32_C(0x0060BECB), UINT32_C(0x00454F6A), + UINT32_C(0x007CA867), UINT32_C(0x003128D5), UINT32_C(0x001A6257), + UINT32_C(0x001C9D64), UINT32_C(0x0047D7B2), UINT32_C(0x0048D9D4), + UINT32_C(0x00387A36), UINT32_C(0x0030150F)}, + {UINT32_C(0x00869B40), UINT32_C(0x004423AB), UINT32_C(0x006A0C98), + UINT32_C(0x004BE18D), UINT32_C(0x000680E9), UINT32_C(0x006F03C8), + UINT32_C(0x0035097A), UINT32_C(0x00163A09), UINT32_C(0x00036511), + UINT32_C(0x002020C4), UINT32_C(0x0032F125)}, + {UINT32_C(0x006499A6), UINT32_C(0x0032DBAB), UINT32_C(0x0050F205), + UINT32_C(0x00127C8C), UINT32_C(0x0071C444), UINT32_C(0x00610493), + UINT32_C(0x0057B4B2), UINT32_C(0x00B0B2CA), UINT32_C(0x0034A155), + UINT32_C(0x006D7797), UINT32_C(0x0063E346)}}, + {{UINT32_C(0x0030C824), UINT32_C(0x00393557), UINT32_C(0x002AA53A), + UINT32_C(0x00232B1F), UINT32_C(0x007E74FF), UINT32_C(0x0058171D), + UINT32_C(0x000328E4), UINT32_C(0x0085BA6B), UINT32_C(0x0013D154), + UINT32_C(0x0018258C), UINT32_C(0x006FA2B0)}, + {UINT32_C(0x00C3FCC1), UINT32_C(0x006B3441), UINT32_C(0x005E8829), + UINT32_C(0x00B3314C), UINT32_C(0x0004ECB2), UINT32_C(0x006B3C89), + UINT32_C(0x003F2F04), UINT32_C(0x0092C88B), UINT32_C(0x001EC53B), + UINT32_C(0x0031EA9C), UINT32_C(0x000BDC2A)}, + {UINT32_C(0x0063FFE8), UINT32_C(0x000EFB74), UINT32_C(0x0015043F), + UINT32_C(0x005F290A), UINT32_C(0x001DA041), UINT32_C(0x0060291C), + UINT32_C(0x007C2769), UINT32_C(0x00EB677A), UINT32_C(0x0043B7A4), + UINT32_C(0x0033A181), UINT32_C(0x003F9D2D)}}, + {{UINT32_C(0x006CC3EF), UINT32_C(0x002F3089), UINT32_C(0x0061B741), + UINT32_C(0x007537D8), UINT32_C(0x00717E80), UINT32_C(0x000BD6BF), + UINT32_C(0x003D6972), UINT32_C(0x00BE0A56), UINT32_C(0x007C075B), + UINT32_C(0x005C62F6), UINT32_C(0x003CA2DF)}, + {UINT32_C(0x00171808), UINT32_C(0x005A205B), UINT32_C(0x0005AD96), + UINT32_C(0x0058D8E1), UINT32_C(0x00423531), UINT32_C(0x005C11A5), + UINT32_C(0x00169496), UINT32_C(0x001AB66A), UINT32_C(0x002F6C8B), + UINT32_C(0x00668CFD), UINT32_C(0x006B0027)}, + {UINT32_C(0x00528A82), UINT32_C(0x002B2713), UINT32_C(0x0079DE04), + UINT32_C(0x00EF8CF9), UINT32_C(0x006263B9), UINT32_C(0x00720507), + UINT32_C(0x0052404F), UINT32_C(0x003C93E8), UINT32_C(0x00100A85), + UINT32_C(0x006D3FFA), UINT32_C(0x003B14B0)}}, + {{UINT32_C(0x00F84103), UINT32_C(0x002EFED0), UINT32_C(0x004DF3E6), + UINT32_C(0x001A7373), UINT32_C(0x004C8064), UINT32_C(0x0032CAAE), + UINT32_C(0x000E2E35), UINT32_C(0x00099871), UINT32_C(0x0043615C), + UINT32_C(0x005D4D9B), UINT32_C(0x003A809B)}, + {UINT32_C(0x00688B18), UINT32_C(0x003E6C8B), UINT32_C(0x007DA089), + UINT32_C(0x00470987), UINT32_C(0x0006E04D), UINT32_C(0x00346F12), + UINT32_C(0x0054964B), UINT32_C(0x001C7FB1), UINT32_C(0x0028F4AF), + UINT32_C(0x006ABA8D), UINT32_C(0x007BEAD8)}, + {UINT32_C(0x00A4DB09), UINT32_C(0x000F021A), UINT32_C(0x000E3BF3), + UINT32_C(0x00347724), UINT32_C(0x001CD5E3), UINT32_C(0x00570A82), + UINT32_C(0x001A702F), UINT32_C(0x00AF41F7), UINT32_C(0x005573E8), + UINT32_C(0x007B6CC3), UINT32_C(0x000E6B2F)}}, + {{UINT32_C(0x00C4323E), UINT32_C(0x005E5A07), UINT32_C(0x006E0C89), + UINT32_C(0x00018D1E), UINT32_C(0x00582AB5), UINT32_C(0x004E8211), + UINT32_C(0x0021ED53), UINT32_C(0x006B639D), UINT32_C(0x00505AE2), + UINT32_C(0x007DF924), UINT32_C(0x002AA137)}, + {UINT32_C(0x00C33279), UINT32_C(0x00685341), UINT32_C(0x00643C48), + UINT32_C(0x00ACAC38), UINT32_C(0x005AE420), UINT32_C(0x00514A01), + UINT32_C(0x006BEB21), UINT32_C(0x003CC859), UINT32_C(0x0017135D), + UINT32_C(0x004ADA1B), UINT32_C(0x007CF53B)}, + {UINT32_C(0x006149FF), UINT32_C(0x00353234), UINT32_C(0x0000FE22), + UINT32_C(0x001F09D7), UINT32_C(0x00021F65), UINT32_C(0x0049C3AD), + UINT32_C(0x001C1A78), UINT32_C(0x00E00DFB), UINT32_C(0x00228A53), + UINT32_C(0x005812BD), UINT32_C(0x00407161)}}, + {{UINT32_C(0x00AC8719), UINT32_C(0x004B5C52), UINT32_C(0x001AD60A), + UINT32_C(0x001B2FAC), UINT32_C(0x004CD6B6), UINT32_C(0x002823C4), + UINT32_C(0x003BE7C2), UINT32_C(0x009BDCCC), UINT32_C(0x00566B2F), + UINT32_C(0x00205A09), UINT32_C(0x006C27CE)}, + {UINT32_C(0x0053FC77), UINT32_C(0x003F8121), UINT32_C(0x0073622F), + UINT32_C(0x00775975), UINT32_C(0x007FED73), UINT32_C(0x0041C648), + UINT32_C(0x00462A53), UINT32_C(0x00FFBFD4), UINT32_C(0x0011A7DF), + UINT32_C(0x003092B5), UINT32_C(0x00261A53)}, + {UINT32_C(0x009AAFB7), UINT32_C(0x0013BCE1), UINT32_C(0x004971F6), + UINT32_C(0x00EDD1B3), UINT32_C(0x002525B4), UINT32_C(0x0058D61A), + UINT32_C(0x0066E9D1), UINT32_C(0x009B73B8), UINT32_C(0x0033C84A), + UINT32_C(0x0006CAB6), UINT32_C(0x00008EB2)}}, + {{UINT32_C(0x00492C5D), UINT32_C(0x005CF97D), UINT32_C(0x0007722C), + UINT32_C(0x0066F3B8), UINT32_C(0x000306A7), UINT32_C(0x007D6927), + UINT32_C(0x0023F020), UINT32_C(0x00BD1D41), UINT32_C(0x00497C08), + UINT32_C(0x005699EF), UINT32_C(0x00369E3D)}, + {UINT32_C(0x0025F79F), UINT32_C(0x005176A4), UINT32_C(0x003D2CDA), + UINT32_C(0x00F5AAC3), UINT32_C(0x000A2AD0), UINT32_C(0x006D725F), + UINT32_C(0x000E7277), UINT32_C(0x00B14CC5), UINT32_C(0x002D5FC8), + UINT32_C(0x007F764F), UINT32_C(0x0050EF13)}, + {UINT32_C(0x0097E85B), UINT32_C(0x001C0CFD), UINT32_C(0x006027C7), + UINT32_C(0x0038732E), UINT32_C(0x003385DC), UINT32_C(0x006F67DF), + UINT32_C(0x0038EF81), UINT32_C(0x00F717C0), UINT32_C(0x000B4878), + UINT32_C(0x00099CD4), UINT32_C(0x0071787D)}}, + {{UINT32_C(0x000EB7F2), UINT32_C(0x007F42B8), UINT32_C(0x0070653E), + UINT32_C(0x00320A4F), UINT32_C(0x0016BB51), UINT32_C(0x00691D90), + UINT32_C(0x00138916), UINT32_C(0x00D043DE), UINT32_C(0x00107F57), + UINT32_C(0x001DCB80), UINT32_C(0x0059F0BB)}, + {UINT32_C(0x005CD9B5), UINT32_C(0x002A2874), UINT32_C(0x000600A5), + UINT32_C(0x00235734), UINT32_C(0x002313EF), UINT32_C(0x00312DEA), + UINT32_C(0x0029CA11), UINT32_C(0x00973048), UINT32_C(0x004D4134), + UINT32_C(0x003E99AC), UINT32_C(0x000867B4)}, + {UINT32_C(0x002FA5A2), UINT32_C(0x00413E42), UINT32_C(0x00772166), + UINT32_C(0x001C593A), UINT32_C(0x006949A2), UINT32_C(0x00786FF6), + UINT32_C(0x003BB2E2), UINT32_C(0x002BC314), UINT32_C(0x00125CC6), + UINT32_C(0x007B110C), UINT32_C(0x004E5352)}}, + {{UINT32_C(0x00E38B2F), UINT32_C(0x00549D88), UINT32_C(0x00451B24), + UINT32_C(0x00237AB5), UINT32_C(0x000DAF24), UINT32_C(0x00028B85), + UINT32_C(0x0002439F), UINT32_C(0x007FF9B1), UINT32_C(0x004B3263), + UINT32_C(0x007B2514), UINT32_C(0x00130159)}, + {UINT32_C(0x00CBEDBE), UINT32_C(0x00164E8E), UINT32_C(0x006D1617), + UINT32_C(0x00971E62), UINT32_C(0x0014CEC3), UINT32_C(0x00654E4C), + UINT32_C(0x003EE5FE), UINT32_C(0x00D5DB3C), UINT32_C(0x0007E501), + UINT32_C(0x0059EAD8), UINT32_C(0x0033FEF5)}, + {UINT32_C(0x00F396A9), UINT32_C(0x000E12CC), UINT32_C(0x0066F113), + UINT32_C(0x0032A657), UINT32_C(0x00558CEA), UINT32_C(0x0035397E), + UINT32_C(0x0072BA41), UINT32_C(0x001BAC1F), UINT32_C(0x00458EAD), + UINT32_C(0x000176E4), UINT32_C(0x006D9827)}}, + {{UINT32_C(0x0054ACCB), UINT32_C(0x006837A0), UINT32_C(0x005E0E17), + UINT32_C(0x002D46A3), UINT32_C(0x001EC13B), UINT32_C(0x0055ED3F), + UINT32_C(0x004AD796), UINT32_C(0x009822FD), UINT32_C(0x006E60A8), + UINT32_C(0x0019C052), UINT32_C(0x0047770E)}, + {UINT32_C(0x002D311B), UINT32_C(0x0025BEF8), UINT32_C(0x00441B88), + UINT32_C(0x000175A1), UINT32_C(0x0077C008), UINT32_C(0x007C334F), + UINT32_C(0x003B3992), UINT32_C(0x00CA38F0), UINT32_C(0x0002777D), + UINT32_C(0x003C8B93), UINT32_C(0x0028F8C6)}, + {UINT32_C(0x008E76E6), UINT32_C(0x000A66B8), UINT32_C(0x0049E5D6), + UINT32_C(0x00E8B276), UINT32_C(0x0032543C), UINT32_C(0x0027A563), + UINT32_C(0x0000CF52), UINT32_C(0x00DEDDB7), UINT32_C(0x00401370), + UINT32_C(0x000F47DB), UINT32_C(0x00502929)}}, + {{UINT32_C(0x00AECCC3), UINT32_C(0x0054C9AE), UINT32_C(0x002F21DC), + UINT32_C(0x0059D2B0), UINT32_C(0x0033CED8), UINT32_C(0x004A2E1F), + UINT32_C(0x0019B7CF), UINT32_C(0x0095A290), UINT32_C(0x0070C5C6), + UINT32_C(0x002EB87D), UINT32_C(0x007DB934)}, + {UINT32_C(0x0078836C), UINT32_C(0x003DF99A), UINT32_C(0x005C291E), + UINT32_C(0x00534356), UINT32_C(0x00247324), UINT32_C(0x002F5070), + UINT32_C(0x003EEB8F), UINT32_C(0x003A920E), UINT32_C(0x0002D28C), + UINT32_C(0x000FF5FB), UINT32_C(0x007336AA)}, + {UINT32_C(0x001FA1A5), UINT32_C(0x00212F13), UINT32_C(0x00577134), + UINT32_C(0x004BA237), UINT32_C(0x0049A436), UINT32_C(0x007F6BB2), + UINT32_C(0x00722AC5), UINT32_C(0x00C0532E), UINT32_C(0x007534D3), + UINT32_C(0x001DCBE4), UINT32_C(0x00726554)}}, + }, + { + {{UINT32_C(0x009D7F04), UINT32_C(0x003E522B), UINT32_C(0x004E8173), + UINT32_C(0x001C1588), UINT32_C(0x0022E52F), UINT32_C(0x007A9393), + UINT32_C(0x006F3F0A), UINT32_C(0x00537EF6), UINT32_C(0x0061C5EA), + UINT32_C(0x001044A3), UINT32_C(0x005E8C14)}, + {UINT32_C(0x00CC8AA4), UINT32_C(0x000C72ED), UINT32_C(0x0000DF49), + UINT32_C(0x00798195), UINT32_C(0x000C41B1), UINT32_C(0x005C0709), + UINT32_C(0x0063F579), UINT32_C(0x00797385), UINT32_C(0x00561750), + UINT32_C(0x0022408A), UINT32_C(0x0033DFF7)}, + {UINT32_C(0x00E72D7C), UINT32_C(0x0052E6A6), UINT32_C(0x00677E30), + UINT32_C(0x00DA67FB), UINT32_C(0x0053230A), UINT32_C(0x007B8901), + UINT32_C(0x0045AC83), UINT32_C(0x0010FEFC), UINT32_C(0x006E69B3), + UINT32_C(0x006008DB), UINT32_C(0x006D7911)}}, + {{UINT32_C(0x004F7A12), UINT32_C(0x003FE9B9), UINT32_C(0x0035897D), + UINT32_C(0x0092A16A), UINT32_C(0x002ABB20), UINT32_C(0x003C1F4F), + UINT32_C(0x00170A77), UINT32_C(0x0014D957), UINT32_C(0x003289DC), + UINT32_C(0x0005BECE), UINT32_C(0x00601138)}, + {UINT32_C(0x0061EEA8), UINT32_C(0x00211689), UINT32_C(0x002EAEF4), + UINT32_C(0x002EE6E9), UINT32_C(0x0042698F), UINT32_C(0x002C17BC), + UINT32_C(0x00153303), UINT32_C(0x000EA9B7), UINT32_C(0x00335B95), + UINT32_C(0x00101F4E), UINT32_C(0x00661849)}, + {UINT32_C(0x00AEA3D6), UINT32_C(0x00406869), UINT32_C(0x00375EE9), + UINT32_C(0x00D5E095), UINT32_C(0x00510487), UINT32_C(0x00425B84), + UINT32_C(0x002933E8), UINT32_C(0x0085EA0B), UINT32_C(0x0036858A), + UINT32_C(0x0015643E), UINT32_C(0x00291032)}}, + {{UINT32_C(0x00B19259), UINT32_C(0x0044D63D), UINT32_C(0x000D8B2C), + UINT32_C(0x00F03F2A), UINT32_C(0x0075DD51), UINT32_C(0x0063574F), + UINT32_C(0x00597D0C), UINT32_C(0x004CC301), UINT32_C(0x0008F143), + UINT32_C(0x001955D2), UINT32_C(0x000EFE67)}, + {UINT32_C(0x0012F590), UINT32_C(0x0008204C), UINT32_C(0x007F0B91), + UINT32_C(0x00397CAF), UINT32_C(0x00617872), UINT32_C(0x002BCC89), + UINT32_C(0x00560BB9), UINT32_C(0x00755598), UINT32_C(0x006EECB1), + UINT32_C(0x004BA0C7), UINT32_C(0x001A34AB)}, + {UINT32_C(0x008528CC), UINT32_C(0x00580BBC), UINT32_C(0x005B25D1), + UINT32_C(0x007506DD), UINT32_C(0x007DC690), UINT32_C(0x007F96D8), + UINT32_C(0x00392289), UINT32_C(0x00AEF1AE), UINT32_C(0x0063168D), + UINT32_C(0x0072BE2C), UINT32_C(0x005157C5)}}, + {{UINT32_C(0x003A9FD2), UINT32_C(0x005B25BE), UINT32_C(0x004F27F7), + UINT32_C(0x00BB4A51), UINT32_C(0x000662C0), UINT32_C(0x0041BBE0), + UINT32_C(0x00460962), UINT32_C(0x002EF651), UINT32_C(0x0017689F), + UINT32_C(0x00071079), UINT32_C(0x0001A5DF)}, + {UINT32_C(0x00F75DF0), UINT32_C(0x0049FC9F), UINT32_C(0x006A8F37), + UINT32_C(0x00C7015B), UINT32_C(0x001EE02F), UINT32_C(0x003A578B), + UINT32_C(0x004F5B70), UINT32_C(0x0046D34E), UINT32_C(0x0036C503), + UINT32_C(0x004A47A8), UINT32_C(0x001555FC)}, + {UINT32_C(0x000C1A1C), UINT32_C(0x0018A095), UINT32_C(0x004C6DD3), + UINT32_C(0x00622629), UINT32_C(0x001A4B4D), UINT32_C(0x001EC488), + UINT32_C(0x007C4E62), UINT32_C(0x00F0CBDB), UINT32_C(0x0053F494), + UINT32_C(0x0025E122), UINT32_C(0x006FE5D9)}}, + {{UINT32_C(0x001D0B59), UINT32_C(0x002BC2EB), UINT32_C(0x006C247D), + UINT32_C(0x0017164C), UINT32_C(0x0016C9E8), UINT32_C(0x003FE112), + UINT32_C(0x00523C8C), UINT32_C(0x00500E55), UINT32_C(0x001EBD4A), + UINT32_C(0x002663A4), UINT32_C(0x002FF15B)}, + {UINT32_C(0x009AECD9), UINT32_C(0x00079901), UINT32_C(0x006A6241), + UINT32_C(0x003D62B1), UINT32_C(0x006182F6), UINT32_C(0x001F7C9C), + UINT32_C(0x0030C6A5), UINT32_C(0x00C1D9FD), UINT32_C(0x000AF3AE), + UINT32_C(0x007306C0), UINT32_C(0x007180E7)}, + {UINT32_C(0x0072CCE1), UINT32_C(0x002EF926), UINT32_C(0x0033946B), + UINT32_C(0x00DD4125), UINT32_C(0x00466F98), UINT32_C(0x005626FE), + UINT32_C(0x004D69F2), UINT32_C(0x00423C76), UINT32_C(0x0065D10D), + UINT32_C(0x002D6287), UINT32_C(0x002DD36E)}}, + {{UINT32_C(0x0060C004), UINT32_C(0x002DF8E2), UINT32_C(0x0073334C), + UINT32_C(0x008C39C6), UINT32_C(0x00509B37), UINT32_C(0x007E8198), + UINT32_C(0x000F62E1), UINT32_C(0x00DD92B1), UINT32_C(0x001998EC), + UINT32_C(0x002CAD76), UINT32_C(0x00202123)}, + {UINT32_C(0x00131346), UINT32_C(0x007A9FF0), UINT32_C(0x00587E28), + UINT32_C(0x005434EA), UINT32_C(0x000C2CE8), UINT32_C(0x004B1B22), + UINT32_C(0x0045D4A2), UINT32_C(0x009F60D4), UINT32_C(0x0057E546), + UINT32_C(0x0064D05F), UINT32_C(0x006EEC72)}, + {UINT32_C(0x0021F448), UINT32_C(0x0010845A), UINT32_C(0x0006B85E), + UINT32_C(0x00AB9D0A), UINT32_C(0x0042FE06), UINT32_C(0x0033EE0E), + UINT32_C(0x006AD2F2), UINT32_C(0x005C9579), UINT32_C(0x0067DFC7), + UINT32_C(0x003C1F3B), UINT32_C(0x00699BE9)}}, + {{UINT32_C(0x00A66972), UINT32_C(0x005C9C52), UINT32_C(0x0033F743), + UINT32_C(0x002E4131), UINT32_C(0x0018DAB0), UINT32_C(0x00451021), + UINT32_C(0x004A7644), UINT32_C(0x00280CE7), UINT32_C(0x0054A55B), + UINT32_C(0x0000D618), UINT32_C(0x0006EA24)}, + {UINT32_C(0x00836291), UINT32_C(0x005C23F3), UINT32_C(0x003EF835), + UINT32_C(0x006B6300), UINT32_C(0x00459EBC), UINT32_C(0x007C3224), + UINT32_C(0x0044102E), UINT32_C(0x00E2D759), UINT32_C(0x0058BA8F), + UINT32_C(0x00203AA3), UINT32_C(0x006F64DB)}, + {UINT32_C(0x00A80AE1), UINT32_C(0x0002F426), UINT32_C(0x005F82DF), + UINT32_C(0x00129B98), UINT32_C(0x0016684F), UINT32_C(0x0037C9F8), + UINT32_C(0x00798FDE), UINT32_C(0x005C8F79), UINT32_C(0x0007C718), + UINT32_C(0x0052B29A), UINT32_C(0x00059CBE)}}, + {{UINT32_C(0x00126A51), UINT32_C(0x002CB978), UINT32_C(0x00423FCC), + UINT32_C(0x00B9CC4C), UINT32_C(0x002AA538), UINT32_C(0x00395FBB), + UINT32_C(0x00327373), UINT32_C(0x00C23CA5), UINT32_C(0x00544D71), + UINT32_C(0x00455CE2), UINT32_C(0x0077726F)}, + {UINT32_C(0x00E72C58), UINT32_C(0x0056C6C9), UINT32_C(0x003D49ED), + UINT32_C(0x00C8F1D2), UINT32_C(0x004A8FA5), UINT32_C(0x006F3C45), + UINT32_C(0x0069AB18), UINT32_C(0x00D5CE81), UINT32_C(0x000A718F), + UINT32_C(0x004420F7), UINT32_C(0x002B7F53)}, + {UINT32_C(0x00809D3C), UINT32_C(0x005957A2), UINT32_C(0x006A3FB7), + UINT32_C(0x00FC7710), UINT32_C(0x002F2CC5), UINT32_C(0x0068D0E3), + UINT32_C(0x0017780D), UINT32_C(0x00B2B1F6), UINT32_C(0x001C4FDE), + UINT32_C(0x0072D97A), UINT32_C(0x003E98AB)}}, + {{UINT32_C(0x00276A10), UINT32_C(0x0064190E), UINT32_C(0x000243B5), + UINT32_C(0x00EE59AE), UINT32_C(0x0016FC7F), UINT32_C(0x0036935E), + UINT32_C(0x0058A7F7), UINT32_C(0x006AAA88), UINT32_C(0x0036ED90), + UINT32_C(0x00779372), UINT32_C(0x0030DC06)}, + {UINT32_C(0x00208159), UINT32_C(0x00170255), UINT32_C(0x00695DF5), + UINT32_C(0x00411E22), UINT32_C(0x00477C68), UINT32_C(0x0032102F), + UINT32_C(0x001B026A), UINT32_C(0x0038CA4D), UINT32_C(0x00235EC5), + UINT32_C(0x0078C8B9), UINT32_C(0x00651C9F)}, + {UINT32_C(0x0067D2A4), UINT32_C(0x00446632), UINT32_C(0x003D1074), + UINT32_C(0x00032AC4), UINT32_C(0x0061127F), UINT32_C(0x0004B798), + UINT32_C(0x00003C2D), UINT32_C(0x00F00C4B), UINT32_C(0x00603764), + UINT32_C(0x0074558D), UINT32_C(0x00375BF7)}}, + {{UINT32_C(0x00B4CE41), UINT32_C(0x007FBBC3), UINT32_C(0x00750477), + UINT32_C(0x00DA8800), UINT32_C(0x000B20CD), UINT32_C(0x002FDE44), + UINT32_C(0x0001448F), UINT32_C(0x001B1EE5), UINT32_C(0x003B0FDC), + UINT32_C(0x00600D6A), UINT32_C(0x0042807B)}, + {UINT32_C(0x005C7646), UINT32_C(0x004F6D9A), UINT32_C(0x0047B855), + UINT32_C(0x003D2CEB), UINT32_C(0x007B2B58), UINT32_C(0x0032B9DA), + UINT32_C(0x00118C1E), UINT32_C(0x006DA898), UINT32_C(0x00432BB2), + UINT32_C(0x0014A742), UINT32_C(0x00214F42)}, + {UINT32_C(0x0063536B), UINT32_C(0x0073EDC7), UINT32_C(0x00608DC1), + UINT32_C(0x00757BDA), UINT32_C(0x0073293A), UINT32_C(0x00510B0D), + UINT32_C(0x001C8A86), UINT32_C(0x00406F0A), UINT32_C(0x0030DAA7), + UINT32_C(0x000F6F80), UINT32_C(0x0007A1D7)}}, + {{UINT32_C(0x00A8E90B), UINT32_C(0x007407DB), UINT32_C(0x00440BF0), + UINT32_C(0x007198C8), UINT32_C(0x001A09F8), UINT32_C(0x000916B3), + UINT32_C(0x0061A7D6), UINT32_C(0x00A714BE), UINT32_C(0x0039589D), + UINT32_C(0x0011D76D), UINT32_C(0x00323B2D)}, + {UINT32_C(0x00E19A5C), UINT32_C(0x00141B92), UINT32_C(0x00409B73), + UINT32_C(0x006F090B), UINT32_C(0x007E0865), UINT32_C(0x004B7DA7), + UINT32_C(0x006EBE5E), UINT32_C(0x00CE6360), UINT32_C(0x003FE520), + UINT32_C(0x005C6EFA), UINT32_C(0x002904A1)}, + {UINT32_C(0x007BF307), UINT32_C(0x00095790), UINT32_C(0x0009FCE8), + UINT32_C(0x001A0547), UINT32_C(0x001C1E57), UINT32_C(0x007C07EE), + UINT32_C(0x00405EE9), UINT32_C(0x004047E0), UINT32_C(0x006DE98E), + UINT32_C(0x004E2A25), UINT32_C(0x0066F1F0)}}, + {{UINT32_C(0x00C266C9), UINT32_C(0x0078A6A6), UINT32_C(0x005AE507), + UINT32_C(0x00029D74), UINT32_C(0x00025040), UINT32_C(0x004030CE), + UINT32_C(0x006D0A48), UINT32_C(0x0076B699), UINT32_C(0x001E465B), + UINT32_C(0x000082E1), UINT32_C(0x0069B738)}, + {UINT32_C(0x00BD1302), UINT32_C(0x003CA015), UINT32_C(0x00107897), + UINT32_C(0x00FA47BE), UINT32_C(0x0049E714), UINT32_C(0x000B1555), + UINT32_C(0x0053443D), UINT32_C(0x00EE9331), UINT32_C(0x00514330), + UINT32_C(0x0039A875), UINT32_C(0x00050473)}, + {UINT32_C(0x00B3D5E2), UINT32_C(0x002E59A5), UINT32_C(0x00444307), + UINT32_C(0x001495AA), UINT32_C(0x007E4455), UINT32_C(0x001E0A82), + UINT32_C(0x002AB250), UINT32_C(0x003E1A5A), UINT32_C(0x000DB2A8), + UINT32_C(0x0010A30C), UINT32_C(0x0032799B)}}, + {{UINT32_C(0x002DFB8B), UINT32_C(0x0056DBFB), UINT32_C(0x0067D9E7), + UINT32_C(0x007E49DF), UINT32_C(0x000D0A8B), UINT32_C(0x001D2692), + UINT32_C(0x006D4621), UINT32_C(0x00D98598), UINT32_C(0x0034D873), + UINT32_C(0x0021CBB4), UINT32_C(0x0075EBF4)}, + {UINT32_C(0x00757E5C), UINT32_C(0x001F41CE), UINT32_C(0x002E6367), + UINT32_C(0x00180064), UINT32_C(0x004FEBFE), UINT32_C(0x0004F8E5), + UINT32_C(0x001FB594), UINT32_C(0x007471A5), UINT32_C(0x0060AE8E), + UINT32_C(0x007B789E), UINT32_C(0x0072FBC1)}, + {UINT32_C(0x00028861), UINT32_C(0x0076CF2E), UINT32_C(0x00757BC9), + UINT32_C(0x00E1A580), UINT32_C(0x00355683), UINT32_C(0x002A8FE7), + UINT32_C(0x00542152), UINT32_C(0x00561514), UINT32_C(0x00725460), + UINT32_C(0x007285A9), UINT32_C(0x004B1809)}}, + {{UINT32_C(0x00355837), UINT32_C(0x002DDA4C), UINT32_C(0x003DD1AC), + UINT32_C(0x005CC538), UINT32_C(0x00647CBC), UINT32_C(0x0072DB88), + UINT32_C(0x007F7C75), UINT32_C(0x002AE840), UINT32_C(0x00062A1A), + UINT32_C(0x00518336), UINT32_C(0x00791C9D)}, + {UINT32_C(0x0007CA0E), UINT32_C(0x002EA83D), UINT32_C(0x00794D8F), + UINT32_C(0x0074F12E), UINT32_C(0x00573D80), UINT32_C(0x00334BAD), + UINT32_C(0x007061C7), UINT32_C(0x00EC3EB0), UINT32_C(0x004AFF19), + UINT32_C(0x007B77C6), UINT32_C(0x002C2CD6)}, + {UINT32_C(0x00332C81), UINT32_C(0x005AEC4B), UINT32_C(0x002D4025), + UINT32_C(0x000003C9), UINT32_C(0x00329780), UINT32_C(0x0045F540), + UINT32_C(0x004B3238), UINT32_C(0x00A2B784), UINT32_C(0x001953EA), + UINT32_C(0x00256030), UINT32_C(0x00398A20)}}, + {{UINT32_C(0x000EC4A0), UINT32_C(0x00641937), UINT32_C(0x006B364E), + UINT32_C(0x00DA64E5), UINT32_C(0x001DC048), UINT32_C(0x002583F4), + UINT32_C(0x0026D1D9), UINT32_C(0x00EDA8AF), UINT32_C(0x0047D78B), + UINT32_C(0x002EEFE4), UINT32_C(0x002CC316)}, + {UINT32_C(0x0081CBB1), UINT32_C(0x006E1C62), UINT32_C(0x002FACAB), + UINT32_C(0x00A6588F), UINT32_C(0x00250981), UINT32_C(0x0061708F), + UINT32_C(0x0074479E), UINT32_C(0x003F3B34), UINT32_C(0x00140C2C), + UINT32_C(0x002EBBC2), UINT32_C(0x00227AAF)}, + {UINT32_C(0x00DB9FC3), UINT32_C(0x0053114A), UINT32_C(0x0052ECA2), + UINT32_C(0x003DC40A), UINT32_C(0x007DC659), UINT32_C(0x000D3562), + UINT32_C(0x002C373C), UINT32_C(0x00FAF2D6), UINT32_C(0x002B7888), + UINT32_C(0x0056EFFE), UINT32_C(0x00162CF7)}}, + {{UINT32_C(0x00A14EAC), UINT32_C(0x005D7C37), UINT32_C(0x002C818A), + UINT32_C(0x008FB8CD), UINT32_C(0x0062E148), UINT32_C(0x004C3163), + UINT32_C(0x0053D48D), UINT32_C(0x005823EA), UINT32_C(0x002D1D27), + UINT32_C(0x00057B1E), UINT32_C(0x002C3DDA)}, + {UINT32_C(0x0053A948), UINT32_C(0x004C6EF1), UINT32_C(0x002D74B8), + UINT32_C(0x001219E4), UINT32_C(0x0071C013), UINT32_C(0x00262046), + UINT32_C(0x00421ADF), UINT32_C(0x00BFB901), UINT32_C(0x001E79C9), + UINT32_C(0x0035B45B), UINT32_C(0x0041AC61)}, + {UINT32_C(0x002C184D), UINT32_C(0x0047D074), UINT32_C(0x0034003A), + UINT32_C(0x005DCCFB), UINT32_C(0x00524D8F), UINT32_C(0x0059FB03), + UINT32_C(0x0034304B), UINT32_C(0x00EACD9B), UINT32_C(0x002761FA), + UINT32_C(0x003C9C64), UINT32_C(0x004B14DD)}}, + }}; + +/*- + * 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_256_paramSetA_carry_square(t0, X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(t1, Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(t2, Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(t3, t2, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(X3, X, Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_square(Y3, X3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(T3, Y3, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(Z3, T3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(Y3, t0, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t2, Y3, t3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t3, t0, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(X3, Z3, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, Z3, t3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Z3, t2, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t2, d, T2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t2, T1, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(X3, X1, Y1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(Y3, X2, Y2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t3, T3, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(T3, t3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(t3, Z1, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(Z3, Z1, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t1, t1, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(X3, T3, Z3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Y3, t3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, T3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t2, d, T2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t2, T1, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t3, Z1, Z2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(X3, X1, Y1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(Y3, X2, Y2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(Z3, T3, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(T3, Z3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(Z3, t3, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(t3, t3, t2); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t1, t1, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(X3, T3, Z3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Y3, t3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, T3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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, t1; + /* 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_256_paramSetA_carry_add(t0, Z1, Y1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(t1, Z1, Y1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, S, t0); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Y3, Z1, T3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Z3, X3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(t1, t1, T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(t0, T3, t1); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_carry_sub(T3, X1, T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_add(Y3, T3, S); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(X3, T3, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Z3, Y1, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_sub(T3, T3, S); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Y3, Y1, T3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(T3, X3, Y3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(Y3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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[32], int idx) { + int widx, rshift; + + widx = idx >> 3; + rshift = idx & 0x7; + + if (idx < 0 || widx >= 32) 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(char out[52], const unsigned char in[32]) { + int i; + char window, d; + + window = (in[0] & (DRADIX_WNAF - 1)) | 1; + for (i = 0; i < 51; 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(char out[257], const unsigned char in[32]) { + int i; + char window, d; + + window = in[0] & (DRADIX_WNAF - 1); + for (i = 0; i < 257; 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; + } +} + +/*- + * Simulateous scalar multiplication: interleaved "textbook" wnaf. + * NB: not constant time + */ +static void var_smul_wnaf_two(pt_aff_t *out, const unsigned char a[32], + const unsigned char b[32], const pt_aff_t *P) { + int i, d, is_neg, is_inf = 1, flipped = 0; + char anaf[257] = {0}; + char bnaf[257] = {0}; + pt_prj_t Q; + pt_prj_t precomp[DRADIX / 2]; + + precomp_wnaf(precomp, P); + scalar_wnaf(anaf, a); + scalar_wnaf(bnaf, b); + + for (i = 256; 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_256_paramSetA_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_opp(Q.X, Q.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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[32], + const pt_aff_t *P) { + int i, j, d, diff, is_neg; + char rnaf[52] = {0}; + pt_prj_t Q, lut; + 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[51] - 1) >> 1; + for (j = 0; j < DRADIX / 2; j++) { + diff = (1 - (-(d ^ j) >> (8 * sizeof(int) - 1))) & 1; + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.T, diff, Q.T, + precomp[j].T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.Z, diff, Q.Z, + precomp[j].Z); + } + + for (i = 50; 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_256_paramSetA_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + lut.T, diff, lut.T, precomp[j].T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_256_paramSetA_opp(out->X, lut.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_opp(out->T, lut.T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(lut.X, is_neg, + lut.X, out->X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_opp(lut.X, precomp[0].X); + fe_copy(lut.Y, precomp[0].Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.T, scalar[0] & 1, + lut.T, Q.T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.Z, scalar[0] & 1, + lut.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_256_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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[32]) { + int i, j, k, d, diff, is_neg = 0; + char rnaf[52] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + 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 = 3; i >= 0; i--) { + for (j = 0; i != 3 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 14; j++) { + if (j * 4 + i > 51) continue; + d = rnaf[j * 4 + 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_256_paramSetA_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz( + lut.T, diff, lut.T, lut_cmb[j][k].T); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_256_paramSetA_opp(out->X, lut.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_opp(out->T, lut.T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(lut.X, is_neg, + lut.X, out->X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_opp(lut.X, lut_cmb[0][0].X); + fe_copy(lut.Y, lut_cmb[0][0].Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_opp(lut.T, lut_cmb[0][0].T); + point_add_mixed(&R, &Q, &lut); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.X, scalar[0] & 1, R.X, + Q.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.Y, scalar[0] & 1, R.Y, + Q.Y); + fiat_id_tc26_gost_3410_2012_256_paramSetA_selectznz(Q.T, scalar[0] & 1, R.T, + Q.T); + fiat_id_tc26_gost_3410_2012_256_paramSetA_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_256_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_256_paramSetA_carry_mul(out->Y, Q.Y, Q.Z); +} + +static void point_mul_two(unsigned char outx[32], unsigned char outy[32], + const unsigned char a[32], const unsigned char b[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_tc26_gost_3410_2012_256_paramSetA_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_256_paramSetA_from_bytes(P.Y, iny); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outy, P.Y); +} + +static void point_mul_g(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32]) { + pt_aff_t P; + + /* fixed scmul function */ + fixed_smul_cmb(&P, scalar); + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outy, P.Y); +} + +static void point_mul(unsigned char outx[32], unsigned char outy[32], + const unsigned char scalar[32], + const unsigned char inx[32], + const unsigned char iny[32]) { + pt_aff_t P; + + fiat_id_tc26_gost_3410_2012_256_paramSetA_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_256_paramSetA_from_bytes(P.Y, iny); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_256_paramSetA_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[32] = {0}; + + int + point_mul_two_id_tc26_gost_3410_2012_256_paramSetA( + 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[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(n, b_n, 32) != 32 || BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_id_tc26_gost_3410_2012_256_paramSetA(const EC_GROUP *group, + EC_POINT *r, + const EC_POINT *q, + const BIGNUM *m, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_m[32]; + 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, 32) != 32 || BN_bn2lebinpad(y, b_y, 32) != 32 || + BN_bn2lebinpad(m, b_m, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, y) == NULL || + !EC_POINT_set_affine_coordinates(group, r, x, y, ctx)) + goto err; + } + ret = 1; +err: + BN_CTX_end(ctx); + return ret; +} + + int + point_mul_g_id_tc26_gost_3410_2012_256_paramSetA(const EC_GROUP *group, + EC_POINT *r, + const BIGNUM *n, + BN_CTX *ctx) { + int ret = 0; + unsigned char b_x[32]; + unsigned char b_y[32]; + unsigned char b_n[32]; + 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, 32) != 32) + 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, 32) == 0 && + CRYPTO_memcmp(const_zb, b_y, 32) == 0) { + if (!EC_POINT_set_to_infinity(group, r)) goto err; + } else { + /* otherwise, pack the bytes into the result */ + if (BN_lebin2bn(b_x, 32, x) == NULL || + BN_lebin2bn(b_y, 32, 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__ */ diff --git a/ecp_id_tc26_gost_3410_2012_512_paramSetA.c b/ecp_id_tc26_gost_3410_2012_512_paramSetA.c new file mode 100644 index 0000000..6947a8a --- /dev/null +++ b/ecp_id_tc26_gost_3410_2012_512_paramSetA.c @@ -0,0 +1,12604 @@ +/* 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; + +#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_paramSetA_carry_add(c, a, b) \ + fiat_id_tc26_gost_3410_2012_512_paramSetA_add(c, a, b); \ + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry(c, c) +#define fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(c, a, b) \ + fiat_id_tc26_gost_3410_2012_512_paramSetA_sub(c, a, b); \ + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry(c, c) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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 id_tc26_gost_3410_2012_512_paramSetA 64 '(auto)' '2^512 - 569' */ +/* curve description: id_tc26_gost_3410_2012_512_paramSetA */ +/* 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.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) */ + +#include +typedef unsigned char fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1; +typedef signed char fiat_id_tc26_gost_3410_2012_512_paramSetA_int1; +typedef signed __int128 fiat_id_tc26_gost_3410_2012_512_paramSetA_int128; +typedef unsigned __int128 fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_addcarryx_u52( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + uint64_t x1; + uint64_t x2; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT64_C(0xfffffffffffff)); + x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x1 >> 52); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_subborrowx_u52( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + int64_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetA_int1 x2; + uint64_t x3; + x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_int1)(x1 >> 52); + x3 = (x1 & UINT64_C(0xfffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_addcarryx_u51( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + uint64_t x1; + uint64_t x2; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT64_C(0x7ffffffffffff)); + x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x1 >> 51); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_subborrowx_u51( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + int64_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetA_int1 x2; + uint64_t x3; + x1 = ((int64_t)(arg2 - (int64_t)arg1) - (int64_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_int1)(x1 >> 51); + x3 = (x1 & UINT64_C(0x7ffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_cmovznz_u64( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 arg1, + uint64_t arg2, uint64_t arg3) { + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x1; + uint64_t x2; + uint64_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_int1)(0x0 - x1) & + UINT64_C(0xffffffffffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * arg2: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul( + uint64_t out1[10], const uint64_t arg1[10], const uint64_t arg2[10]) { + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x1; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x2; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x3; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x4; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x5; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x6; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x7; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x8; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x9; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x10; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x11; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x12; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x13; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x14; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x15; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x16; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x17; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x18; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x19; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x20; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x21; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x22; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x23; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x24; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x25; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x26; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x27; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x28; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x29; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x30; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x31; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x32; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x33; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x34; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x35; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x36; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x37; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x38; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x39; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x40; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x41; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x42; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x43; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x44; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x45; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x46; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x47; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x48; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x49; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x50; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x51; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x52; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x53; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x54; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x55; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x56; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x57; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x58; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x59; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x60; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x61; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x62; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x63; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x64; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x65; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x66; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x67; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x68; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x69; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x70; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x71; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x72; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x73; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x74; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x75; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x76; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x77; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x78; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x79; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x80; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x81; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x82; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x83; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x84; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x85; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x86; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x87; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x88; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x89; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x90; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x91; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x92; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x93; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x94; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x95; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x96; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x97; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x98; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x99; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x100; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x101; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x102; + uint64_t x103; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x104; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x105; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x106; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x107; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x108; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x109; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x110; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x111; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x112; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x113; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x114; + uint64_t x115; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x116; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x117; + uint64_t x118; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x119; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x120; + uint64_t x121; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x122; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x123; + uint64_t x124; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x125; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x126; + uint64_t x127; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x128; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x129; + uint64_t x130; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x131; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x132; + uint64_t x133; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x134; + uint64_t x135; + uint64_t x136; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x137; + uint64_t x138; + uint64_t x139; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x140; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x141; + uint64_t x142; + uint64_t x143; + uint64_t x144; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x145; + uint64_t x146; + uint64_t x147; + x1 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[9]) * + (arg2[9]))); + x2 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[9]) * + (arg2[8]))); + x3 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[9]) * + (arg2[7]))); + x4 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[9]) * + (arg2[6])) * + 0x2)); + x5 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[9]) * + (arg2[5]))); + x6 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[9]) * + (arg2[4]))); + x7 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[9]) * + (arg2[3]))); + x8 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[9]) * + (arg2[2]))); + x9 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[9]) * + (arg2[1])) * + 0x2)); + x10 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * + (arg2[9]))); + x11 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * + (arg2[8]))); + x12 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * + (arg2[7])) * + 0x2)); + x13 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * + (arg2[6])) * + 0x2)); + x14 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * + (arg2[5]))); + x15 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * + (arg2[4]))); + x16 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * + (arg2[3]))); + x17 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * + (arg2[2])) * + 0x2)); + x18 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + (arg2[9]))); + x19 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + (arg2[8])) * + 0x2)); + x20 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + (arg2[7])) * + 0x2)); + x21 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + (arg2[6])) * + 0x2)); + x22 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + (arg2[5]))); + x23 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + (arg2[4]))); + x24 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + (arg2[3])) * + 0x2)); + x25 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (arg2[9])) * + 0x2)); + x26 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (arg2[8])) * + 0x2)); + x27 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (arg2[7])) * + 0x2)); + x28 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (arg2[6])) * + 0x2)); + x29 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (arg2[5]))); + x30 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (arg2[4])) * + 0x2)); + x31 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * + (arg2[9]))); + x32 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * + (arg2[8]))); + x33 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * + (arg2[7]))); + x34 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * + (arg2[6]))); + x35 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * + (arg2[5]))); + x36 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (arg2[9]))); + x37 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (arg2[8]))); + x38 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (arg2[7]))); + x39 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (arg2[6])) * + 0x2)); + x40 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + (arg2[9]))); + x41 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + (arg2[8]))); + x42 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + (arg2[7])) * + 0x2)); + x43 = (UINT16_C(0x239) * + ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + (arg2[9]))); + x44 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + (arg2[8])) * + 0x2)); + x45 = (UINT16_C(0x239) * + (((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + (arg2[9])) * + 0x2)); + x46 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[9]) * + (arg2[0])); + x47 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * + ((arg2[1]) * 0x2)); + x48 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * + (arg2[0])); + x49 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + ((arg2[2]) * 0x2)); + x50 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + ((arg2[1]) * 0x2)); + x51 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + (arg2[0])); + x52 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + ((arg2[3]) * 0x2)); + x53 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + ((arg2[2]) * 0x2)); + x54 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + ((arg2[1]) * 0x2)); + x55 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (arg2[0])); + x56 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * + (arg2[4])); + x57 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * + (arg2[3])); + x58 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * + (arg2[2])); + x59 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * + (arg2[1])); + x60 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * + (arg2[0])); + x61 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (arg2[5])); + x62 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (arg2[4])); + x63 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (arg2[3])); + x64 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (arg2[2])); + x65 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + ((arg2[1]) * 0x2)); + x66 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (arg2[0])); + x67 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + ((arg2[6]) * 0x2)); + x68 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + (arg2[5])); + x69 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + (arg2[4])); + x70 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + (arg2[3])); + x71 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + ((arg2[2]) * 0x2)); + x72 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + ((arg2[1]) * 0x2)); + x73 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + (arg2[0])); + x74 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + ((arg2[7]) * 0x2)); + x75 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + ((arg2[6]) * 0x2)); + x76 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + (arg2[5])); + x77 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + (arg2[4])); + x78 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + ((arg2[3]) * 0x2)); + x79 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + ((arg2[2]) * 0x2)); + x80 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + ((arg2[1]) * 0x2)); + x81 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + (arg2[0])); + x82 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + ((arg2[8]) * 0x2)); + x83 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + ((arg2[7]) * 0x2)); + x84 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + ((arg2[6]) * 0x2)); + x85 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + (arg2[5])); + x86 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + ((arg2[4]) * 0x2)); + x87 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + ((arg2[3]) * 0x2)); + x88 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + ((arg2[2]) * 0x2)); + x89 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + ((arg2[1]) * 0x2)); + x90 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + (arg2[0])); + x91 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * + (arg2[9])); + x92 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * + (arg2[8])); + x93 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * + (arg2[7])); + x94 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * + (arg2[6])); + x95 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * + (arg2[5])); + x96 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * + (arg2[4])); + x97 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * + (arg2[3])); + x98 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * + (arg2[2])); + x99 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * + (arg2[1])); + x100 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_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_paramSetA_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_paramSetA_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 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_uint128 x19; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x20; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x21; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x22; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x23; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x24; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x25; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x26; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x27; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x28; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x29; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x30; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x31; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x32; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x33; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x34; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x35; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x36; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x37; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x38; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x39; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x40; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x41; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x42; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x43; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x44; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x45; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x46; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x47; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x48; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x49; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x50; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x51; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x52; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x53; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x54; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x55; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x56; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x57; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x58; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x59; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x60; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x61; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x62; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x63; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x64; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x65; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x66; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x67; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x68; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x69; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x70; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x71; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x72; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x73; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x74; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x75; + uint64_t x76; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x77; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x78; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x79; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x80; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x81; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x82; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x83; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x84; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x85; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x86; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x87; + uint64_t x88; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x89; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x90; + uint64_t x91; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x92; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x93; + uint64_t x94; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x95; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x96; + uint64_t x97; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x98; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x99; + uint64_t x100; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x101; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x102; + uint64_t x103; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x104; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x105; + uint64_t x106; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x107; + uint64_t x108; + uint64_t x109; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x110; + uint64_t x111; + uint64_t x112; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x113; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128 x114; + uint64_t x115; + uint64_t x116; + uint64_t x117; + fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_uint128)(arg1[9]) * x1); + x20 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * x2); + x21 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[8]) * x4); + x22 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * x2); + x23 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + (x5 * 0x2)); + x24 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[7]) * + (x7 * 0x2)); + x25 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (x2 * 0x2)); + x26 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (x5 * 0x2)); + x27 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (x8 * 0x2)); + x28 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[6]) * + (x10 * 0x2)); + x29 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * x2); + x30 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * x5); + x31 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * x8); + x32 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * x11); + x33 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[5]) * x13); + x34 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * x2); + x35 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * x5); + x36 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * x8); + x37 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (x11 * 0x2)); + x38 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * x14); + x39 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[4]) * + (arg1[4])); + x40 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * x2); + x41 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * x5); + x42 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + (x8 * 0x2)); + x43 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + (x12 * 0x2)); + x44 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * x14); + x45 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * x15); + x46 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[3]) * + (arg1[3])); + x47 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * x2); + x48 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + (x5 * 0x2)); + x49 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + (x9 * 0x2)); + x50 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + (x12 * 0x2)); + x51 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * x14); + x52 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * x15); + x53 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + (x16 * 0x2)); + x54 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[2]) * + ((arg1[2]) * 0x2)); + x55 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + (x2 * 0x2)); + x56 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + (x6 * 0x2)); + x57 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + (x9 * 0x2)); + x58 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + (x12 * 0x2)); + x59 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * x14); + x60 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + (x15 * 0x2)); + x61 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + (x16 * 0x2)); + x62 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + (x17 * 0x2)); + x63 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[1]) * + ((arg1[1]) * 0x2)); + x64 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * x3); + x65 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * x6); + x66 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * x9); + x67 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * x12); + x68 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * x14); + x69 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * x15); + x70 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * x16); + x71 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * x17); + x72 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_uint128)(arg1[0]) * x18); + x73 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_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_paramSetA_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_paramSetA_carry reduces a field element. + * Postconditions: + * eval out1 mod m = eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_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_paramSetA_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_paramSetA_add adds two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 + eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * arg2: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_sub subtracts two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 - eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * arg2: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_opp negates a field element. + * Postconditions: + * eval out1 mod m = -eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_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_paramSetA_selectznz( + uint64_t out1[10], fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_cmovznz_u64(&x1, arg1, (arg2[0]), + (arg3[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u64(&x2, arg1, (arg2[1]), + (arg3[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u64(&x3, arg1, (arg2[2]), + (arg3[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u64(&x4, arg1, (arg2[3]), + (arg3[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u64(&x5, arg1, (arg2[4]), + (arg3[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u64(&x6, arg1, (arg2[5]), + (arg3[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u64(&x7, arg1, (arg2[6]), + (arg3[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u64(&x8, arg1, (arg2[7]), + (arg3[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u64(&x9, arg1, (arg2[8]), + (arg3[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_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 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * 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_paramSetA_to_bytes( + uint8_t out1[64], const uint64_t arg1[10]) { + uint64_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x2; + uint64_t x3; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x4; + uint64_t x5; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x6; + uint64_t x7; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x8; + uint64_t x9; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x10; + uint64_t x11; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x12; + uint64_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x14; + uint64_t x15; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x16; + uint64_t x17; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x18; + uint64_t x19; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x20; + uint64_t x21; + uint64_t x22; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x23; + uint64_t x24; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x25; + uint64_t x26; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x27; + uint64_t x28; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x29; + uint64_t x30; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x31; + uint64_t x32; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x33; + uint64_t x34; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x35; + uint64_t x36; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x37; + uint64_t x38; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x39; + uint64_t x40; + fiat_id_tc26_gost_3410_2012_512_paramSetA_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; + uint64_t x50; + uint8_t x51; + uint64_t x52; + uint8_t x53; + uint64_t x54; + uint8_t x55; + uint64_t x56; + uint8_t x57; + uint64_t x58; + uint8_t x59; + uint8_t x60; + uint8_t x61; + uint64_t x62; + uint64_t x63; + uint8_t x64; + uint64_t x65; + uint8_t x66; + uint64_t x67; + uint8_t x68; + uint64_t x69; + uint8_t x70; + uint64_t x71; + uint8_t x72; + uint8_t x73; + uint8_t x74; + uint64_t x75; + uint64_t x76; + uint8_t x77; + uint64_t x78; + uint8_t x79; + uint64_t x80; + uint8_t x81; + uint64_t x82; + uint8_t x83; + uint64_t x84; + uint8_t x85; + uint64_t x86; + uint8_t x87; + uint8_t x88; + uint8_t x89; + uint64_t x90; + uint64_t x91; + uint8_t x92; + uint64_t x93; + uint8_t x94; + uint64_t x95; + uint8_t x96; + uint64_t x97; + uint8_t x98; + uint64_t x99; + uint8_t x100; + uint8_t x101; + uint8_t x102; + uint64_t x103; + uint64_t x104; + uint8_t x105; + uint64_t x106; + uint8_t x107; + uint64_t x108; + uint8_t x109; + uint64_t x110; + uint8_t x111; + uint64_t x112; + uint8_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; + uint8_t x128; + uint64_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; + uint8_t x141; + uint64_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; + uint8_t x156; + uint64_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; + uint8_t x169; + uint64_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; + uint8_t x182; + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u52( + &x1, &x2, 0x0, (arg1[0]), UINT64_C(0xffffffffffdc7)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u51( + &x3, &x4, x2, (arg1[1]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u51( + &x5, &x6, x4, (arg1[2]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u51( + &x7, &x8, x6, (arg1[3]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u51( + &x9, &x10, x8, (arg1[4]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u52( + &x11, &x12, x10, (arg1[5]), UINT64_C(0xfffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u51( + &x13, &x14, x12, (arg1[6]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u51( + &x15, &x16, x14, (arg1[7]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u51( + &x17, &x18, x16, (arg1[8]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u51( + &x19, &x20, x18, (arg1[9]), UINT64_C(0x7ffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u64( + &x21, x20, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u52( + &x22, &x23, 0x0, x1, (x21 & UINT64_C(0xffffffffffdc7))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u51( + &x24, &x25, x23, x3, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u51( + &x26, &x27, x25, x5, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u51( + &x28, &x29, x27, x7, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u51( + &x30, &x31, x29, x9, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u52( + &x32, &x33, x31, x11, (x21 & UINT64_C(0xfffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u51( + &x34, &x35, x33, x13, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u51( + &x36, &x37, x35, x15, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u51( + &x38, &x39, x37, x17, (x21 & UINT64_C(0x7ffffffffffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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 = (x22 >> 8); + x51 = (uint8_t)(x22 & UINT8_C(0xff)); + x52 = (x50 >> 8); + x53 = (uint8_t)(x50 & UINT8_C(0xff)); + x54 = (x52 >> 8); + x55 = (uint8_t)(x52 & UINT8_C(0xff)); + x56 = (x54 >> 8); + x57 = (uint8_t)(x54 & UINT8_C(0xff)); + x58 = (x56 >> 8); + x59 = (uint8_t)(x56 & UINT8_C(0xff)); + x60 = (uint8_t)(x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (x60 + x49); + x63 = (x62 >> 8); + x64 = (uint8_t)(x62 & UINT8_C(0xff)); + x65 = (x63 >> 8); + x66 = (uint8_t)(x63 & UINT8_C(0xff)); + x67 = (x65 >> 8); + x68 = (uint8_t)(x65 & UINT8_C(0xff)); + x69 = (x67 >> 8); + x70 = (uint8_t)(x67 & UINT8_C(0xff)); + x71 = (x69 >> 8); + x72 = (uint8_t)(x69 & UINT8_C(0xff)); + x73 = (uint8_t)(x71 >> 8); + x74 = (uint8_t)(x71 & UINT8_C(0xff)); + x75 = (x73 + x48); + x76 = (x75 >> 8); + x77 = (uint8_t)(x75 & UINT8_C(0xff)); + x78 = (x76 >> 8); + x79 = (uint8_t)(x76 & UINT8_C(0xff)); + x80 = (x78 >> 8); + x81 = (uint8_t)(x78 & UINT8_C(0xff)); + x82 = (x80 >> 8); + x83 = (uint8_t)(x80 & UINT8_C(0xff)); + x84 = (x82 >> 8); + x85 = (uint8_t)(x82 & UINT8_C(0xff)); + x86 = (x84 >> 8); + x87 = (uint8_t)(x84 & UINT8_C(0xff)); + x88 = (uint8_t)(x86 >> 8); + x89 = (uint8_t)(x86 & UINT8_C(0xff)); + x90 = (x88 + x47); + x91 = (x90 >> 8); + x92 = (uint8_t)(x90 & UINT8_C(0xff)); + x93 = (x91 >> 8); + x94 = (uint8_t)(x91 & UINT8_C(0xff)); + x95 = (x93 >> 8); + x96 = (uint8_t)(x93 & UINT8_C(0xff)); + x97 = (x95 >> 8); + x98 = (uint8_t)(x95 & UINT8_C(0xff)); + x99 = (x97 >> 8); + x100 = (uint8_t)(x97 & UINT8_C(0xff)); + x101 = (uint8_t)(x99 >> 8); + x102 = (uint8_t)(x99 & UINT8_C(0xff)); + x103 = (x101 + x46); + x104 = (x103 >> 8); + x105 = (uint8_t)(x103 & UINT8_C(0xff)); + x106 = (x104 >> 8); + x107 = (uint8_t)(x104 & UINT8_C(0xff)); + x108 = (x106 >> 8); + x109 = (uint8_t)(x106 & UINT8_C(0xff)); + x110 = (x108 >> 8); + x111 = (uint8_t)(x108 & UINT8_C(0xff)); + x112 = (x110 >> 8); + x113 = (uint8_t)(x110 & UINT8_C(0xff)); + x114 = (uint8_t)(x112 >> 8); + x115 = (uint8_t)(x112 & UINT8_C(0xff)); + x116 = (uint8_t)(x114 & UINT8_C(0xff)); + x117 = (x32 >> 8); + x118 = (uint8_t)(x32 & UINT8_C(0xff)); + x119 = (x117 >> 8); + x120 = (uint8_t)(x117 & UINT8_C(0xff)); + x121 = (x119 >> 8); + x122 = (uint8_t)(x119 & UINT8_C(0xff)); + x123 = (x121 >> 8); + x124 = (uint8_t)(x121 & UINT8_C(0xff)); + x125 = (x123 >> 8); + x126 = (uint8_t)(x123 & UINT8_C(0xff)); + x127 = (uint8_t)(x125 >> 8); + x128 = (uint8_t)(x125 & UINT8_C(0xff)); + x129 = (x127 + x45); + x130 = (x129 >> 8); + x131 = (uint8_t)(x129 & UINT8_C(0xff)); + x132 = (x130 >> 8); + x133 = (uint8_t)(x130 & UINT8_C(0xff)); + x134 = (x132 >> 8); + x135 = (uint8_t)(x132 & UINT8_C(0xff)); + x136 = (x134 >> 8); + x137 = (uint8_t)(x134 & UINT8_C(0xff)); + x138 = (x136 >> 8); + x139 = (uint8_t)(x136 & UINT8_C(0xff)); + x140 = (uint8_t)(x138 >> 8); + x141 = (uint8_t)(x138 & UINT8_C(0xff)); + x142 = (x140 + x44); + x143 = (x142 >> 8); + x144 = (uint8_t)(x142 & UINT8_C(0xff)); + x145 = (x143 >> 8); + x146 = (uint8_t)(x143 & UINT8_C(0xff)); + x147 = (x145 >> 8); + x148 = (uint8_t)(x145 & UINT8_C(0xff)); + x149 = (x147 >> 8); + x150 = (uint8_t)(x147 & UINT8_C(0xff)); + x151 = (x149 >> 8); + x152 = (uint8_t)(x149 & UINT8_C(0xff)); + x153 = (x151 >> 8); + x154 = (uint8_t)(x151 & UINT8_C(0xff)); + x155 = (uint8_t)(x153 >> 8); + x156 = (uint8_t)(x153 & UINT8_C(0xff)); + x157 = (x155 + x43); + x158 = (x157 >> 8); + x159 = (uint8_t)(x157 & UINT8_C(0xff)); + x160 = (x158 >> 8); + x161 = (uint8_t)(x158 & UINT8_C(0xff)); + x162 = (x160 >> 8); + x163 = (uint8_t)(x160 & UINT8_C(0xff)); + x164 = (x162 >> 8); + x165 = (uint8_t)(x162 & UINT8_C(0xff)); + x166 = (x164 >> 8); + x167 = (uint8_t)(x164 & UINT8_C(0xff)); + x168 = (uint8_t)(x166 >> 8); + x169 = (uint8_t)(x166 & UINT8_C(0xff)); + x170 = (x168 + x42); + x171 = (x170 >> 8); + x172 = (uint8_t)(x170 & UINT8_C(0xff)); + x173 = (x171 >> 8); + x174 = (uint8_t)(x171 & UINT8_C(0xff)); + x175 = (x173 >> 8); + x176 = (uint8_t)(x173 & UINT8_C(0xff)); + x177 = (x175 >> 8); + x178 = (uint8_t)(x175 & UINT8_C(0xff)); + x179 = (x177 >> 8); + x180 = (uint8_t)(x177 & UINT8_C(0xff)); + x181 = (uint8_t)(x179 >> 8); + x182 = (uint8_t)(x179 & UINT8_C(0xff)); + out1[0] = x51; + out1[1] = x53; + out1[2] = x55; + out1[3] = x57; + out1[4] = x59; + out1[5] = x61; + out1[6] = x64; + out1[7] = x66; + out1[8] = x68; + out1[9] = x70; + out1[10] = x72; + out1[11] = x74; + out1[12] = x77; + out1[13] = x79; + out1[14] = x81; + out1[15] = x83; + out1[16] = x85; + out1[17] = x87; + out1[18] = x89; + out1[19] = x92; + out1[20] = x94; + out1[21] = x96; + out1[22] = x98; + out1[23] = x100; + out1[24] = x102; + out1[25] = x105; + out1[26] = x107; + out1[27] = x109; + out1[28] = x111; + out1[29] = x113; + out1[30] = x115; + out1[31] = x116; + out1[32] = x118; + out1[33] = x120; + out1[34] = x122; + out1[35] = x124; + out1[36] = x126; + out1[37] = x128; + out1[38] = x131; + out1[39] = x133; + out1[40] = x135; + out1[41] = x137; + out1[42] = x139; + out1[43] = x141; + out1[44] = x144; + out1[45] = x146; + out1[46] = x148; + out1[47] = x150; + out1[48] = x152; + out1[49] = x154; + out1[50] = x156; + out1[51] = x159; + out1[52] = x161; + out1[53] = x163; + out1[54] = x165; + out1[55] = x167; + out1[56] = x169; + out1[57] = x172; + out1[58] = x174; + out1[59] = x176; + out1[60] = x178; + out1[61] = x180; + out1[62] = x182; + out1[63] = x181; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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; + uint8_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; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x78; + uint64_t x79; + uint64_t x80; + uint8_t x81; + uint64_t x82; + uint64_t x83; + uint8_t x84; + uint64_t x85; + uint64_t x86; + uint64_t x87; + uint8_t x88; + uint64_t x89; + uint64_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x91; + uint64_t x92; + uint64_t x93; + uint8_t x94; + uint64_t x95; + uint64_t x96; + uint8_t x97; + uint64_t x98; + uint64_t x99; + 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 = (x64 + (x63 + (x62 + (x61 + (x60 + (x59 + x58)))))); + x66 = (uint8_t)(x65 >> 52); + x67 = (x65 & UINT64_C(0xfffffffffffff)); + x68 = (x6 + (x5 + (x4 + (x3 + (x2 + x1))))); + x69 = (x12 + (x11 + (x10 + (x9 + (x8 + x7))))); + x70 = (x19 + (x18 + (x17 + (x16 + (x15 + (x14 + x13)))))); + x71 = (x25 + (x24 + (x23 + (x22 + (x21 + x20))))); + x72 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + x26)))))); + x73 = (x38 + (x37 + (x36 + (x35 + (x34 + x33))))); + x74 = (x44 + (x43 + (x42 + (x41 + (x40 + x39))))); + x75 = (x51 + (x50 + (x49 + (x48 + (x47 + (x46 + x45)))))); + x76 = (x57 + (x56 + (x55 + (x54 + (x53 + x52))))); + x77 = (x66 + x76); + x78 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x77 >> 51); + x79 = (x77 & UINT64_C(0x7ffffffffffff)); + x80 = (x78 + x75); + x81 = (uint8_t)(x80 >> 51); + x82 = (x80 & UINT64_C(0x7ffffffffffff)); + x83 = (x81 + x74); + x84 = (uint8_t)(x83 >> 51); + x85 = (x83 & UINT64_C(0x7ffffffffffff)); + x86 = (x84 + x73); + x87 = (x86 & UINT64_C(0x7ffffffffffff)); + x88 = (uint8_t)(x72 >> 52); + x89 = (x72 & UINT64_C(0xfffffffffffff)); + x90 = (x88 + x71); + x91 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x90 >> 51); + x92 = (x90 & UINT64_C(0x7ffffffffffff)); + x93 = (x91 + x70); + x94 = (uint8_t)(x93 >> 51); + x95 = (x93 & UINT64_C(0x7ffffffffffff)); + x96 = (x94 + x69); + x97 = (uint8_t)(x96 >> 51); + x98 = (x96 & UINT64_C(0x7ffffffffffff)); + x99 = (x97 + x68); + out1[0] = x67; + out1[1] = x79; + out1[2] = x82; + out1[3] = x85; + out1[4] = x87; + out1[5] = x89; + out1[6] = x92; + out1[7] = x95; + out1[8] = x98; + out1[9] = x99; +} + +/* 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_paramSetA/fe_inv.op3 + * custom repunit addition chain + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_carry_square(acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t2, acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t3, acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t3); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t6, acc, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t6); + for (i = 0; i < 5; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t12, acc, t6); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t12); + for (i = 0; i < 11; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t24, acc, t12); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t24); + for (i = 0; i < 23; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t48, acc, t24); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t48); + for (i = 0; i < 47; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t96, acc, t48); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t96); + for (i = 0; i < 5; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t102, acc, t6); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t102); + for (i = 0; i < 95; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t198, acc, t96); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t198); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t200, acc, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t200); + for (i = 0; i < 199; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t400, acc, t200); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t400); + for (i = 0; i < 101; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t502, acc, t102); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t502); + for (i = 0; i < 3; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(acc, acc, t3); + for (i = 0; i < 4; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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_b[10] = { + UINT64_C(0x000190785A71C760), UINT64_C(0x00054EBEE4761503), + UINT64_C(0x0001B521BB0C5DF3), UINT64_C(0x0001D8532D15D004), + UINT64_C(0x000771E584879869), UINT64_C(0x000D081CFD0B6265), + UINT64_C(0x00074761CB0E879B), UINT64_C(0x0004CFE3B469704A), + UINT64_C(0x0001B7706F42CAD9), UINT64_C(0x0007461282EF6FE4)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[12][16] = { + { + {{UINT64_C(0x0000000000000003), 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(0x000589CB5215F2A4), UINT64_C(0x0005FC235F5B889A), + UINT64_C(0x00047483D30051FC), UINT64_C(0x0005BA4F5D79A943), + UINT64_C(0x0006F8B135F27E81), UINT64_C(0x000064FDCBEFA921), + UINT64_C(0x00013ACF1ABC1778), UINT64_C(0x0004A8A1CD9CBC39), + UINT64_C(0x0002B8E986E205B8), UINT64_C(0x0003A81E7F43D41B)}}, + {{UINT64_C(0x000134687CCB87C3), UINT64_C(0x0003A10544E8416E), + UINT64_C(0x00061120F5D8AB9F), UINT64_C(0x0004D75D92CBD5EC), + UINT64_C(0x00021E94205A696E), UINT64_C(0x000291D5F488FBA5), + UINT64_C(0x0004C096168A1174), UINT64_C(0x00034ACFF09B62AD), + UINT64_C(0x00019FAD4E4D776D), UINT64_C(0x00050FF8D5938951)}, + {UINT64_C(0x000CD7EC518D90D6), UINT64_C(0x000711A4FB6C7125), + UINT64_C(0x000298DBA98C6CDE), UINT64_C(0x00005BBAB3EB0BFA), + UINT64_C(0x00008E9D7BF33E26), UINT64_C(0x00019E3F333F7EB3), + UINT64_C(0x00048D7F84FBFA38), UINT64_C(0x00076B7309883C74), + UINT64_C(0x0000DFCC0DD3C626), UINT64_C(0x0001E5AE220BF623)}}, + {{UINT64_C(0x000AEA0CE47F1E5F), UINT64_C(0x0006DA872DC7D9E3), + UINT64_C(0x0004026E133CB612), UINT64_C(0x0001D4C81CBDD5C9), + UINT64_C(0x000116A46100FB10), UINT64_C(0x000C71645B8C9FFB), + UINT64_C(0x0006AFE06F1C1484), UINT64_C(0x0000B6FF2FF4E6C1), + UINT64_C(0x0000A642376D824E), UINT64_C(0x0002B4540E895C56)}, + {UINT64_C(0x000BB3B92706CBC6), UINT64_C(0x0005700DE178E056), + UINT64_C(0x000197807544BFFA), UINT64_C(0x000706F69DD298A6), + UINT64_C(0x000205A8622A4E8B), UINT64_C(0x000109A43ED36596), + UINT64_C(0x00049AB5B2BD5C17), UINT64_C(0x000515CF2C048D7F), + UINT64_C(0x000651FD0ECDF273), UINT64_C(0x0003C6B66DABD057)}}, + {{UINT64_C(0x000ABFC1B7D256E0), UINT64_C(0x00022DFADD1D6E68), + UINT64_C(0x00033EEC39057D08), UINT64_C(0x00075EC5CD3B3AFE), + UINT64_C(0x000073336BE8A8F9), UINT64_C(0x000528C313659874), + UINT64_C(0x000045D76D6402E5), UINT64_C(0x0007B1F5060389E6), + UINT64_C(0x0005D713A16A99F2), UINT64_C(0x0003C394B1ED6CB5)}, + {UINT64_C(0x000A8C1A38755E5A), UINT64_C(0x0005CA589C9447E1), + UINT64_C(0x0002D738BA7D236E), UINT64_C(0x00005E7DB74C629B), + UINT64_C(0x000062E362468963), UINT64_C(0x000EBFCB8EE6AF9E), + UINT64_C(0x000193EA82E68F84), UINT64_C(0x00003CAA0E7EFC3A), + UINT64_C(0x00054937BC67C142), UINT64_C(0x000432F67FAB85C5)}}, + {{UINT64_C(0x000C34CEE53642A2), UINT64_C(0x00048BA44E987AEF), + UINT64_C(0x0007CFBA481AC93A), UINT64_C(0x000252C52E6724E2), + UINT64_C(0x00069C1386DDE181), UINT64_C(0x0003FE183213C47A), + UINT64_C(0x0006C13A8DC37861), UINT64_C(0x0004546EA0F50627), + UINT64_C(0x0007B6C23C692349), UINT64_C(0x0004307D8079E6F2)}, + {UINT64_C(0x000812879D2E3C8E), UINT64_C(0x000191C73044FE47), + UINT64_C(0x00077218289340D5), UINT64_C(0x0005DA711BBBFF71), + UINT64_C(0x0001C57405B59E36), UINT64_C(0x000C7F1B91C21105), + UINT64_C(0x000066E23EF3A609), UINT64_C(0x00012EB6D5C73D15), + UINT64_C(0x00020C3294080ED7), UINT64_C(0x00033ABC6BDE0FD2)}}, + {{UINT64_C(0x00002EE1E7135C5B), UINT64_C(0x000147440718098F), + UINT64_C(0x000742216A0AD24C), UINT64_C(0x000209FAE0414762), + UINT64_C(0x0007523CACA53442), UINT64_C(0x0002240ADDECED0B), + UINT64_C(0x00023970F6F47640), UINT64_C(0x000799A6033CA82E), + UINT64_C(0x00013F8D7EBD8951), UINT64_C(0x0003167F9B05B77B)}, + {UINT64_C(0x00084059554ECF79), UINT64_C(0x0005753C6736FF73), + UINT64_C(0x000619A371C7BA90), UINT64_C(0x00007A6287324180), + UINT64_C(0x00037396508E43B1), UINT64_C(0x000B92328505DD45), + UINT64_C(0x00055C92400C6EE2), UINT64_C(0x0002654406A9F655), + UINT64_C(0x0003AF03185F59DF), UINT64_C(0x0000C9632A02E2DE)}}, + {{UINT64_C(0x00082288639F2EBD), UINT64_C(0x0004E3BE5A9F335C), + UINT64_C(0x0000475B64CDF3D5), UINT64_C(0x00003AD875B443CE), + UINT64_C(0x0005A22CF276D7D8), UINT64_C(0x00059A094CC2E917), + UINT64_C(0x0002CAA724BAEBC5), UINT64_C(0x0001CB230407F535), + UINT64_C(0x00043A679D215417), UINT64_C(0x00032069427B390F)}, + {UINT64_C(0x00005AAE7CCDEA72), UINT64_C(0x000227E312EBD77B), + UINT64_C(0x0006C48359C093AD), UINT64_C(0x00066AE122001431), + UINT64_C(0x0002A7685789D1A1), UINT64_C(0x000DDDC9B1721593), + UINT64_C(0x0002EB3A73075BAE), UINT64_C(0x00010D483A062D6E), + UINT64_C(0x000414E1A10675C2), UINT64_C(0x0003FC179BB802A2)}}, + {{UINT64_C(0x000FA7D670E14D45), UINT64_C(0x0005B60822C15C07), + UINT64_C(0x0006E1C8DC8B953D), UINT64_C(0x0003AA1F0C09E3C3), + UINT64_C(0x0004C494E672EDE4), UINT64_C(0x00061EB986E7C9B9), + UINT64_C(0x0003EDBB8C82ECC2), UINT64_C(0x0007B7E098625DE1), + UINT64_C(0x0001652C34790E48), UINT64_C(0x000181E9C44FB652)}, + {UINT64_C(0x00026B7BFCB41422), UINT64_C(0x0004420662645444), + UINT64_C(0x0005427FA987FF52), UINT64_C(0x0005B9040DF26326), + UINT64_C(0x000334DEEC131B7C), UINT64_C(0x0009976A9AEB37C6), + UINT64_C(0x0005DE6BDA0EE26F), UINT64_C(0x00046CD4B8DA22BF), + UINT64_C(0x0001A9277ED46EDA), UINT64_C(0x00048FE9C8EA98F0)}}, + {{UINT64_C(0x00069292A4F09AE6), UINT64_C(0x00059EEEC0228FDC), + UINT64_C(0x0002E6A2EB99E1C1), UINT64_C(0x00028B36B1CB7EDC), + UINT64_C(0x0007C4D51AEABB6E), UINT64_C(0x00040FA7C5F982AC), + UINT64_C(0x0000A163AFAB5A89), UINT64_C(0x000436DC36654D6F), + UINT64_C(0x0006E7E4EFBDBA76), UINT64_C(0x000469D46D1AEC82)}, + {UINT64_C(0x0003F3770683CF55), UINT64_C(0x0007581899AFCAA5), + UINT64_C(0x00021BB9291EC382), UINT64_C(0x000725C1812F5867), + UINT64_C(0x00010D68EF013EA6), UINT64_C(0x000D8AD6CCEEDD36), + UINT64_C(0x0004145477456E2A), UINT64_C(0x000350F4CCCDD3ED), + UINT64_C(0x0006D247F4FCCCBC), UINT64_C(0x0002C35AD24695CC)}}, + {{UINT64_C(0x0000563E3BB2C9A3), UINT64_C(0x0004731F28271C7E), + UINT64_C(0x00006474AEE84E9A), UINT64_C(0x00079618BA66931E), + UINT64_C(0x0005DEEC306DF549), UINT64_C(0x000A49F4075B243E), + UINT64_C(0x00072F449585855D), UINT64_C(0x000031C0CC652EF1), + UINT64_C(0x00003DDAA420F12A), UINT64_C(0x00027047A35D3C45)}, + {UINT64_C(0x0008D45AEA9F97DE), UINT64_C(0x00031B40D05861EA), + UINT64_C(0x00022DF5AC218686), UINT64_C(0x000237062CC05B46), + UINT64_C(0x000511B267DD6BA7), UINT64_C(0x000818297550A398), + UINT64_C(0x000702FE7A56CB70), UINT64_C(0x00053C7D673599DE), + UINT64_C(0x0003ED45D15B6C15), UINT64_C(0x0001806F568245B9)}}, + {{UINT64_C(0x0009351072DB2170), UINT64_C(0x00033196A2CEF459), + UINT64_C(0x0006744E6383FCEF), UINT64_C(0x0005C51252A32D28), + UINT64_C(0x00005FA2110CC455), UINT64_C(0x0004B8063421A324), + UINT64_C(0x0007D30325E5137D), UINT64_C(0x0002AFA7F320E835), + UINT64_C(0x00011A9719C3D5ED), UINT64_C(0x0006DFED78D57C93)}, + {UINT64_C(0x000CD2B1C06C89E0), UINT64_C(0x00005887BE69BEF0), + UINT64_C(0x00023A5834EEE4F0), UINT64_C(0x00064984FA6CCD98), + UINT64_C(0x00006FB77FDF3397), UINT64_C(0x0001EBEBCE68907A), + UINT64_C(0x0006784C0935BED2), UINT64_C(0x00050FF3F3DFF454), + UINT64_C(0x0004036C327922ED), UINT64_C(0x00008DE3F2C6A92E)}}, + {{UINT64_C(0x0006E03B0A49FC14), UINT64_C(0x0002D86C93A83EE0), + UINT64_C(0x0004A7F892C15148), UINT64_C(0x0002FC12A44E72B1), + UINT64_C(0x0000F1222DB270EC), UINT64_C(0x0005C305D53F498F), + UINT64_C(0x0005C15989BD840C), UINT64_C(0x0005FD28651837A4), + UINT64_C(0x0001F44FE46C7F06), UINT64_C(0x00025B96CDAFE605)}, + {UINT64_C(0x0009FDD223F15C01), UINT64_C(0x0007578682CC2965), + UINT64_C(0x0006222B764EE30D), UINT64_C(0x0002695A8C2DDC09), + UINT64_C(0x0003EED3043E0B4D), UINT64_C(0x000DF4BA29380423), + UINT64_C(0x000799CE51DCFEE3), UINT64_C(0x0001DC423C4607A6), + UINT64_C(0x000353F2E08F2F67), UINT64_C(0x0002DE3BCB26FB64)}}, + {{UINT64_C(0x000121C2DFF5C5F8), UINT64_C(0x0002C6372966E3BB), + UINT64_C(0x00040EDCBB6FAE3D), UINT64_C(0x00045E8590C45B65), + UINT64_C(0x00057F2556A1008A), UINT64_C(0x000D2C63669622C2), + UINT64_C(0x00053762BBDA6A4D), UINT64_C(0x000638814A3C0C15), + UINT64_C(0x0006306A8C676FEC), UINT64_C(0x00039FEA5B5F2932)}, + {UINT64_C(0x00045B18CC6F6BD4), UINT64_C(0x000572570661CF49), + UINT64_C(0x0003DB3E7E6325C0), UINT64_C(0x0000D4366AC3C833), + UINT64_C(0x0000BA40102D6C2B), UINT64_C(0x000D88CD5627BDAA), + UINT64_C(0x0001A191F2BD95D8), UINT64_C(0x0007B490EB1F6E2E), + UINT64_C(0x0001854754C42C14), UINT64_C(0x0004F9B402BCF150)}}, + {{UINT64_C(0x00062710FFD6E4C3), UINT64_C(0x00075F168936C9E7), + UINT64_C(0x0005EBCC23DECE92), UINT64_C(0x0006A533FC0618A4), + UINT64_C(0x00006276D8296DCC), UINT64_C(0x000C6FDBE7DDD556), + UINT64_C(0x0005F77BF0F1421B), UINT64_C(0x00021327FBB8BE4C), + UINT64_C(0x00039F51E09D0F1B), UINT64_C(0x00036B0DC0560BD1)}, + {UINT64_C(0x00090F866EA9C581), UINT64_C(0x0001BB6C84E218AF), + UINT64_C(0x00016801E510D5D1), UINT64_C(0x00048969111EF218), + UINT64_C(0x00032F01F97E8EAC), UINT64_C(0x000846529FDA255F), + UINT64_C(0x00003E0DA43E7BC5), UINT64_C(0x0005377E9AD3A533), + UINT64_C(0x00054F1C41B443CC), UINT64_C(0x0001E2C9C182A7B8)}}, + {{UINT64_C(0x0006822BBEC85A6F), UINT64_C(0x00037FF627207C7D), + UINT64_C(0x000099E1EDB38619), UINT64_C(0x00024EABAAEF4727), + UINT64_C(0x0001634583C11813), UINT64_C(0x0005BF27EB8FC0B2), + UINT64_C(0x0002C5E6D68AED81), UINT64_C(0x00051011E59FEFC1), + UINT64_C(0x0005BDE68E16008B), UINT64_C(0x00001CDB6AC4A926)}, + {UINT64_C(0x000F9C8354532F1F), UINT64_C(0x0003B7D13F24D465), + UINT64_C(0x0001EE14FAFB642C), UINT64_C(0x0003086537C154F6), + UINT64_C(0x000498FB21A3549B), UINT64_C(0x000D5F9768C501AF), + UINT64_C(0x0007358BD9264583), UINT64_C(0x00020604DE0C73BC), + UINT64_C(0x0004C1EFB4D90397), UINT64_C(0x000316FD7FD552FA)}}, + {{UINT64_C(0x000DF775325B2BEF), UINT64_C(0x0007C981BDB56B5B), + UINT64_C(0x00030415FEF5D1EB), UINT64_C(0x00066427FB342115), + UINT64_C(0x00039F275DCEB907), UINT64_C(0x000FC52CB944765D), + UINT64_C(0x00063BA40ACC8623), UINT64_C(0x000217B5022687A4), + UINT64_C(0x0003782EE74343F6), UINT64_C(0x0006E344AF9791BC)}, + {UINT64_C(0x0006A094A3D00C90), UINT64_C(0x0000A8C2AF5A4ED6), + UINT64_C(0x0002593EB8606459), UINT64_C(0x0006BB706B63F1A3), + UINT64_C(0x0001AC9ABD940E22), UINT64_C(0x000A8AFEAB077BE2), + UINT64_C(0x000053C3E6DE9695), UINT64_C(0x00035197B6C50B68), + UINT64_C(0x0005F05ED56144C6), UINT64_C(0x0005D16C6B2F7A7D)}}, + }, + { + {{UINT64_C(0x0009697EFB5343B1), UINT64_C(0x00030F79CEE2F4D7), + UINT64_C(0x0007C57239C2BFFF), UINT64_C(0x0005E177E6306573), + UINT64_C(0x00058AECAB18B5E4), UINT64_C(0x000C2D8B42DA873F), + UINT64_C(0x00067CEC60F40D7C), UINT64_C(0x0001CD069631374B), + UINT64_C(0x00053BF89F276A0A), UINT64_C(0x000211BC2F82ABCC)}, + {UINT64_C(0x000F42F918BECCB0), UINT64_C(0x00050BCCFB9278C6), + UINT64_C(0x000521F422BE023A), UINT64_C(0x000247E206708DFF), + UINT64_C(0x000603F8EAFA08E8), UINT64_C(0x0001C8FA49E8E7A9), + UINT64_C(0x0000ED2F247FA8F2), UINT64_C(0x00054F2BD90FC41F), + UINT64_C(0x000613E3F3A0E141), UINT64_C(0x00058F502829C1A3)}}, + {{UINT64_C(0x000FA958A02414EA), UINT64_C(0x0005694D8B531753), + UINT64_C(0x0002596B7F70E2D2), UINT64_C(0x0006F58C437031E9), + UINT64_C(0x0005E52B9AB2FC87), UINT64_C(0x00047681FFAD52A2), + UINT64_C(0x00054CFD109661E6), UINT64_C(0x0002642E41E026F7), + UINT64_C(0x00015A4C0B3E2C49), UINT64_C(0x00012DBAB3D25C66)}, + {UINT64_C(0x000F66D444F2C6A3), UINT64_C(0x000465ABD7FBD63E), + UINT64_C(0x000346682E14F62C), UINT64_C(0x0007D1BFDC2BDD7C), + UINT64_C(0x00014B50150CDD7D), UINT64_C(0x000F1BAD6F065607), + UINT64_C(0x0001B669F08E4917), UINT64_C(0x0007147465D09FD0), + UINT64_C(0x0002E2E3DF8C1CE5), UINT64_C(0x0003E168C6A9219B)}}, + {{UINT64_C(0x00026E66F048E71C), UINT64_C(0x00021DA6DDB4379F), + UINT64_C(0x0006A446FCD70668), UINT64_C(0x0000ED5A782862E2), + UINT64_C(0x000600DB452AEA1A), UINT64_C(0x00070E2B0EE96B31), + UINT64_C(0x000272BCDA0E468B), UINT64_C(0x0006754F74551E8E), + UINT64_C(0x00030B2901255489), UINT64_C(0x00018BA394D8F24B)}, + {UINT64_C(0x000EF5DAB92AD60C), UINT64_C(0x0007A4E353682E4C), + UINT64_C(0x0004D92B14F64543), UINT64_C(0x0006FB1C445C4562), + UINT64_C(0x00005F0C73553832), UINT64_C(0x000F219585C811FA), + UINT64_C(0x00002373528CE90C), UINT64_C(0x0005AEFE0F86FFD6), + UINT64_C(0x000065686EF3DFA1), UINT64_C(0x0004BCFCBABBE76F)}}, + {{UINT64_C(0x000A04E942DB5726), UINT64_C(0x0004E0A8E957D2EB), + UINT64_C(0x000042171E8C74B0), UINT64_C(0x0002CD5D9C992A32), + UINT64_C(0x00021775A666DF3B), UINT64_C(0x0009B1719FCE5AFD), + UINT64_C(0x00070479A5510650), UINT64_C(0x00076CA597F5197E), + UINT64_C(0x0002FF8004DC7298), UINT64_C(0x000427FBA3F2118F)}, + {UINT64_C(0x000B2B7F0F1BC525), UINT64_C(0x0004F49FDAF0E9F8), + UINT64_C(0x000119E1F8B31D5C), UINT64_C(0x00002C2E70F7717A), + UINT64_C(0x000547EB13E64F24), UINT64_C(0x00061C10285CB68B), + UINT64_C(0x00027F33F80AC82B), UINT64_C(0x00007A73F720ACD1), + UINT64_C(0x0000FA4783E28EA8), UINT64_C(0x0005E1B01569FE4A)}}, + {{UINT64_C(0x000C8833182EEC18), UINT64_C(0x0005188EE3CCBD7D), + UINT64_C(0x000145800FA7D3B9), UINT64_C(0x00015F410C821BF2), + UINT64_C(0x0006D6985D22BB97), UINT64_C(0x000ACE8A202EEB11), + UINT64_C(0x000000D3BC5FFCBC), UINT64_C(0x0005A94DE37C5B1E), + UINT64_C(0x0006A3E90AE676A0), UINT64_C(0x0003DC3E9B9DEA03)}, + {UINT64_C(0x000ADDB18897A653), UINT64_C(0x00028BB1348E369A), + UINT64_C(0x0000E0EF15D097A0), UINT64_C(0x000369538A36A67C), + UINT64_C(0x0004F11787ECB811), UINT64_C(0x000DAB579DC3F6E7), + UINT64_C(0x00051EEDC98205E1), UINT64_C(0x000296B14C5B057C), + UINT64_C(0x0006A6B518D5A499), UINT64_C(0x0004B973FBCAD781)}}, + {{UINT64_C(0x00092403168F568C), UINT64_C(0x00050C76745944DA), + UINT64_C(0x00045586DDAA3849), UINT64_C(0x0002424F7A393AE3), + UINT64_C(0x0003613FCF452DAE), UINT64_C(0x000483477F08760D), + UINT64_C(0x0006DE9C9C30A9F7), UINT64_C(0x0006DE3DC9E26B78), + UINT64_C(0x00072E8A269F2328), UINT64_C(0x0001A0904E3E62B3)}, + {UINT64_C(0x000F53CF7A63B520), UINT64_C(0x00016E19E79779D7), + UINT64_C(0x0003BA73148BC41B), UINT64_C(0x0000A0B9CB876955), + UINT64_C(0x0002C3678483C9E4), UINT64_C(0x0001717604F49F0C), + UINT64_C(0x0006DA52AE47D9A6), UINT64_C(0x00018A068DEAD248), + UINT64_C(0x0000A45F44D54D0B), UINT64_C(0x000201738C7D6750)}}, + {{UINT64_C(0x000BFD50B6C0ED05), UINT64_C(0x0003B59B6181691D), + UINT64_C(0x00036E5595022312), UINT64_C(0x0006371166F016C4), + UINT64_C(0x0000D2463D93685C), UINT64_C(0x0000FB99CEC22230), + UINT64_C(0x000662B7CA84328B), UINT64_C(0x0005B058F277AA90), + UINT64_C(0x000744C6285E6BE8), UINT64_C(0x00044924B43A399C)}, + {UINT64_C(0x0009FE2EF5756858), UINT64_C(0x0002609FAC19675C), + UINT64_C(0x0001EDB73C43A527), UINT64_C(0x00018040218709B5), + UINT64_C(0x00038E60561A169C), UINT64_C(0x000716A3DE9C2728), + UINT64_C(0x0001312CD53738AB), UINT64_C(0x00003A5EADF12479), + UINT64_C(0x0004F1C4C30A626A), UINT64_C(0x00017077F028932B)}}, + {{UINT64_C(0x0005E4B52DDE7879), UINT64_C(0x0000DD824234AF86), + UINT64_C(0x0007E33F8D4E4720), UINT64_C(0x0007DE0000448CDA), + UINT64_C(0x00033984E740002A), UINT64_C(0x000C47E6A3586EA2), + UINT64_C(0x00044D0958EBE073), UINT64_C(0x00001246801B8077), + UINT64_C(0x0002F9FC5AA5757F), UINT64_C(0x0001A2DCE0976101)}, + {UINT64_C(0x000660A83163C88F), UINT64_C(0x000537D8B7F6309C), + UINT64_C(0x00008DD86923D2DE), UINT64_C(0x0001EDCB48974621), + UINT64_C(0x00006C01F610F051), UINT64_C(0x0008C9E7599C4A9D), + UINT64_C(0x00036EA13E261953), UINT64_C(0x0003ED8BC32C0F96), + UINT64_C(0x000755A3B7B81967), UINT64_C(0x00013DE89A6B4D9D)}}, + {{UINT64_C(0x000CA6E0EB363C7F), UINT64_C(0x0005F55CE82062CB), + UINT64_C(0x00054C8A253358D0), UINT64_C(0x0002C5D656290FF8), + UINT64_C(0x00057F5B9325F1DA), UINT64_C(0x0001FEF7C4623421), + UINT64_C(0x000751B35DC509CC), UINT64_C(0x0000D577E46356BC), + UINT64_C(0x0001AE1750B963E0), UINT64_C(0x000101926AD538C7)}, + {UINT64_C(0x000ADB8B609BBDFF), UINT64_C(0x00071752C179ED60), + UINT64_C(0x0001F4F46D3CDA68), UINT64_C(0x0006AB70B8479B34), + UINT64_C(0x00025F7ED7DEE309), UINT64_C(0x000DDC2D9609A612), + UINT64_C(0x0004E68BAF1E467F), UINT64_C(0x00040F9B19D3CBE2), + UINT64_C(0x00037E8C1EC0C6A4), UINT64_C(0x0003125691C2193B)}}, + {{UINT64_C(0x00067DA2BD46C9EA), UINT64_C(0x00026B6CAB294387), + UINT64_C(0x0001D6166D7C9065), UINT64_C(0x00062BF47248BD53), + UINT64_C(0x0002E90A5DD8639A), UINT64_C(0x0003936168470E19), + UINT64_C(0x000528F76D8AF696), UINT64_C(0x0006ED2117C0F595), + UINT64_C(0x00053A94B0075896), UINT64_C(0x00029EA83F539A1E)}, + {UINT64_C(0x0002028A9BD76B91), UINT64_C(0x0004FD251AA0E6F2), + UINT64_C(0x0005AC8CC0D23EFF), UINT64_C(0x000128939573B39C), + UINT64_C(0x000672B16EA38AE5), UINT64_C(0x0004D9266E6063F1), + UINT64_C(0x000059E6A8535CE8), UINT64_C(0x0000599ECB0EF8DD), + UINT64_C(0x0007013D35E8201F), UINT64_C(0x0002C65B4B7CFED7)}}, + {{UINT64_C(0x0008F58A1E3612AD), UINT64_C(0x0003A9FB96EDB71F), + UINT64_C(0x0001F18D41C781FC), UINT64_C(0x00018367EBB23895), + UINT64_C(0x0005D1FCD3BE526A), UINT64_C(0x000A42281101E568), + UINT64_C(0x0005BABB0531BAFA), UINT64_C(0x0000A5F2A706F2D0), + UINT64_C(0x00004127B930A594), UINT64_C(0x0000EB497CC34685)}, + {UINT64_C(0x00073B79A1945681), UINT64_C(0x000752EA80F8AC71), + UINT64_C(0x0006302573AC640B), UINT64_C(0x00078867625480E5), + UINT64_C(0x0007079395B2C6EF), UINT64_C(0x000C10FF5DD268D7), + UINT64_C(0x00057909D9F5E805), UINT64_C(0x0003A161EE637F23), + UINT64_C(0x00076AA86D84AD92), UINT64_C(0x0001EF085DE6C3AC)}}, + {{UINT64_C(0x000C311C4599BCA4), UINT64_C(0x00071D198CA022EA), + UINT64_C(0x0007BCCA6C1EA7A9), UINT64_C(0x0005A91F6CE54B62), + UINT64_C(0x00040F2F68ADFDE8), UINT64_C(0x0006DA7F20DC869C), + UINT64_C(0x00059DD3EE431C99), UINT64_C(0x000714D6993F24A2), + UINT64_C(0x0007C5152642D91F), UINT64_C(0x0002F4E11F2CC27F)}, + {UINT64_C(0x000A8ACA2FD26CFD), UINT64_C(0x0002EB39C4AC80BE), + UINT64_C(0x0005BFAD35FC99F2), UINT64_C(0x0002BFAB444638F8), + UINT64_C(0x000355F04D6D03C9), UINT64_C(0x000EB7D307BB548E), + UINT64_C(0x00045256FDC37CFF), UINT64_C(0x000455EACB7CD74C), + UINT64_C(0x0005F5BC0A0265A1), UINT64_C(0x0004E4B55474C1FB)}}, + {{UINT64_C(0x000405C3B4CBBA99), UINT64_C(0x0003A2CFD9BA8CE7), + UINT64_C(0x0004D38F33BA729F), UINT64_C(0x00058368002B41A8), + UINT64_C(0x0001EB778063FAFA), UINT64_C(0x00000CB2D95428C0), + UINT64_C(0x0007A5F40E6F6248), UINT64_C(0x00066402E02185E2), + UINT64_C(0x0002874AE640E9BA), UINT64_C(0x00025092EF1270C6)}, + {UINT64_C(0x0004F5A43B7EA260), UINT64_C(0x00024FC17540A356), + UINT64_C(0x0001076B47F9F931), UINT64_C(0x0002FB78183398A6), + UINT64_C(0x000229276794FECA), UINT64_C(0x0001B56FD26AC511), + UINT64_C(0x00013652FDA2807D), UINT64_C(0x0000AD7AC8AF8820), + UINT64_C(0x00059580D670358C), UINT64_C(0x0007B37AB910DB85)}}, + {{UINT64_C(0x000E7AAFAA81120D), UINT64_C(0x0001EFCC9131C28F), + UINT64_C(0x0000F04662F79A92), UINT64_C(0x00018481A743283F), + UINT64_C(0x0003227CCC1B0051), UINT64_C(0x000889F9DEBDBBB6), + UINT64_C(0x00026E53C8DB36F4), UINT64_C(0x00040E757FC7CCB6), + UINT64_C(0x000796C1E48AF493), UINT64_C(0x0005CD8E286C308F)}, + {UINT64_C(0x000FEEF26280024C), UINT64_C(0x00008656CE73F334), + UINT64_C(0x000047F19B4CCB60), UINT64_C(0x0003E09FD007DE6A), + UINT64_C(0x0006DFDC10446128), UINT64_C(0x0001C5059DDF7FB5), + UINT64_C(0x0000C6D4835DEC52), UINT64_C(0x0001ECDEF9FA549E), + UINT64_C(0x00004A50331A27BB), UINT64_C(0x0007445C7A2F53C4)}}, + {{UINT64_C(0x000919F3EC9CCC4F), UINT64_C(0x0005F2F6CF149577), + UINT64_C(0x00060C560F67551A), UINT64_C(0x0007E358E045685B), + UINT64_C(0x00070CCBF13484CF), UINT64_C(0x000C37725A783FCF), + UINT64_C(0x00054AB9E7EE7B1E), UINT64_C(0x0003333BAB51E43A), + UINT64_C(0x000017DC7BC018D7), UINT64_C(0x00003CA4BCFA7DD5)}, + {UINT64_C(0x0003E1A7A3069435), UINT64_C(0x000480EFF4E48BC7), + UINT64_C(0x00062115BD5D5E69), UINT64_C(0x0007096DD6C931AD), + UINT64_C(0x0002608249CB7A58), UINT64_C(0x0008A26364C8096A), + UINT64_C(0x0003C1F2D4A059E3), UINT64_C(0x00010E330E128864), + UINT64_C(0x0003B581FC1DE5C7), UINT64_C(0x000588DBEAEEB225)}}, + {{UINT64_C(0x0003AC2924B671D6), UINT64_C(0x00027D78B698A45A), + UINT64_C(0x00015C6FF89B42E6), UINT64_C(0x000480FF26EC1381), + UINT64_C(0x0000CC4426AAA245), UINT64_C(0x000FB55D009EF0BB), + UINT64_C(0x000298CBBB4ADE83), UINT64_C(0x000718B823375BD8), + UINT64_C(0x0007751B44E5F80F), UINT64_C(0x00059A1E5D2A4A5C)}, + {UINT64_C(0x000CB0EE2657342C), UINT64_C(0x00055C4B6D401505), + UINT64_C(0x00056E99CE0E1574), UINT64_C(0x00002F6CB06EAD80), + UINT64_C(0x000476059C9E6EB0), UINT64_C(0x000C60BC1D3204D4), + UINT64_C(0x00050DC61142023B), UINT64_C(0x000726C34A8A210F), + UINT64_C(0x0005C72290CE928B), UINT64_C(0x0004DFA0CEB1B72D)}}, + }, + { + {{UINT64_C(0x000247F93F2BDD27), UINT64_C(0x0007C93034C92904), + UINT64_C(0x00027DAD72E4B40B), UINT64_C(0x00014E25E82ABBD1), + UINT64_C(0x00060E4F42A6C475), UINT64_C(0x000DC708D6D66CCB), + UINT64_C(0x00036DB87A4B6343), UINT64_C(0x0003C58123691EAF), + UINT64_C(0x0004DAD470664927), UINT64_C(0x0006A82E32F9C5E6)}, + {UINT64_C(0x0002A35EDD030037), UINT64_C(0x000219F0D4AE2250), + UINT64_C(0x0003A7450131A667), UINT64_C(0x00061472E2C5CAD3), + UINT64_C(0x0000BDF65BE7AF81), UINT64_C(0x0007F887A21C419E), + UINT64_C(0x00048915425E3C2E), UINT64_C(0x00046299A3659CE9), + UINT64_C(0x00044FD643C6825F), UINT64_C(0x00041408EE3F7EE7)}}, + {{UINT64_C(0x0001D71DC21EAB28), UINT64_C(0x00065A53D38F953D), + UINT64_C(0x00032DEB59D8023C), UINT64_C(0x0004054571AECBAF), + UINT64_C(0x0006227C20ADC1B1), UINT64_C(0x0004052B60ED5E09), + UINT64_C(0x0007D536170CE49B), UINT64_C(0x000133F69C75D93C), + UINT64_C(0x000631A47E596690), UINT64_C(0x0007BE94B2BCFA10)}, + {UINT64_C(0x000D3D75C6EDBD10), UINT64_C(0x0002F0C1700CF75C), + UINT64_C(0x0000880BD06AC9F8), UINT64_C(0x0007F4DE75015506), + UINT64_C(0x0004F7D9218E4531), UINT64_C(0x000525D094B57596), + UINT64_C(0x000303BA4ADC93BE), UINT64_C(0x000781A6DDE92BB0), + UINT64_C(0x0000145A33FB664A), UINT64_C(0x0003075364E801EA)}}, + {{UINT64_C(0x000B5C724B664A37), UINT64_C(0x0002503E28109C51), + UINT64_C(0x00025B829904E428), UINT64_C(0x00069506DB016812), + UINT64_C(0x0004A750C8A64E1B), UINT64_C(0x000B87DB220A7C57), + UINT64_C(0x00031EFD957F4D41), UINT64_C(0x000049A333D86B06), + UINT64_C(0x0001D8EAEB6440B9), UINT64_C(0x000276C32B4CE41C)}, + {UINT64_C(0x0008857C83EF71E8), UINT64_C(0x0005E721B3AB9D6B), + UINT64_C(0x00017EACB90E5F00), UINT64_C(0x0005C3E831C481C5), + UINT64_C(0x0007C0B8197E5462), UINT64_C(0x000DBDC919F92AA9), + UINT64_C(0x0002200849E9CAEE), UINT64_C(0x0004BE6C719C5906), + UINT64_C(0x0004E280855B1920), UINT64_C(0x0005C5B91DB6D1EA)}}, + {{UINT64_C(0x000424B6E394CF88), UINT64_C(0x0003C2C97C04AC74), + UINT64_C(0x00063ADB5E77144A), UINT64_C(0x0005D883FF8E6B47), + UINT64_C(0x0004F87D0A1CC558), UINT64_C(0x000BB8A228CF7739), + UINT64_C(0x0004B3A03FA0D71F), UINT64_C(0x000753D34ABABB8E), + UINT64_C(0x000562AB4C8CB943), UINT64_C(0x0001CEBF9BBC430C)}, + {UINT64_C(0x0007223CBD30A33E), UINT64_C(0x0007335C7215C6C3), + UINT64_C(0x000603E2856D2862), UINT64_C(0x0002A848E65B42A0), + UINT64_C(0x0004218F69174E09), UINT64_C(0x0005FFA3227A0A23), + UINT64_C(0x00005B5868C2514B), UINT64_C(0x0004938AFADAD730), + UINT64_C(0x0007660F9A69E6DE), UINT64_C(0x00065102D85E579B)}}, + {{UINT64_C(0x000D8ADCE1ED036C), UINT64_C(0x00075B271EA827E2), + UINT64_C(0x00076B7F6030D0B9), UINT64_C(0x0001CF9A9998A24D), + UINT64_C(0x0003EAAA8D599E8C), UINT64_C(0x000926867BCB228B), + UINT64_C(0x0005C256FF24300F), UINT64_C(0x0002D2C9DDD6690E), + UINT64_C(0x000318EC38CFD857), UINT64_C(0x00040F4D05884680)}, + {UINT64_C(0x000BA16121F40EA5), UINT64_C(0x0003E1A3C8625ED4), + UINT64_C(0x0003A030ED90ADCB), UINT64_C(0x00051906502C4E1E), + UINT64_C(0x00056353D129BB9B), UINT64_C(0x00097E025B071B0B), + UINT64_C(0x0007FEFDDBE2C9B0), UINT64_C(0x0005B33FC31E9599), + UINT64_C(0x0004B5E596C70338), UINT64_C(0x0001C9B00B315DC4)}}, + {{UINT64_C(0x000607DBC162717D), UINT64_C(0x0000D1169F3006DA), + UINT64_C(0x0000DD28C7A17F77), UINT64_C(0x000575B9A5BE6190), + UINT64_C(0x0001608A9002E304), UINT64_C(0x0008355DA341F5E9), + UINT64_C(0x0006F9C8170EE63C), UINT64_C(0x00014428C0115E5D), + UINT64_C(0x00023A2E2E57272F), UINT64_C(0x000688C75933F079)}, + {UINT64_C(0x000FF6A2CDB10A3C), UINT64_C(0x00011BFAEC3923D3), + UINT64_C(0x00042ED75727E176), UINT64_C(0x00014FA777DC3A6C), + UINT64_C(0x000160BDE1742549), UINT64_C(0x000AB16C591470C7), + UINT64_C(0x00028D130B66A9E4), UINT64_C(0x00047E950B4F11C5), + UINT64_C(0x000135717CA7A661), UINT64_C(0x000654B545B4E06F)}}, + {{UINT64_C(0x00021C7F20682330), UINT64_C(0x0006E09BA4DD4E28), + UINT64_C(0x0005ED0838CEDFB5), UINT64_C(0x00046FAAD6213185), + UINT64_C(0x00042F098929C355), UINT64_C(0x0002587008E96E6D), + UINT64_C(0x000705A22499C027), UINT64_C(0x0000D8B3B0087A17), + UINT64_C(0x0003A94A483422C6), UINT64_C(0x0003D967C7D3D6FD)}, + {UINT64_C(0x0009965DB7927E5D), UINT64_C(0x0005AB719C5CAE45), + UINT64_C(0x00033CCD1F896812), UINT64_C(0x0001AE9A7A4BA5D3), + UINT64_C(0x00072043806DB7CF), UINT64_C(0x0008763B930B883A), + UINT64_C(0x0002E90170B740E5), UINT64_C(0x00058F5C1631E156), + UINT64_C(0x0000C3D179B466C2), UINT64_C(0x0005E600D05FAA9D)}}, + {{UINT64_C(0x0001BDEA3D7E7C27), UINT64_C(0x0000D69B04E78772), + UINT64_C(0x0006FD1A96FF1C3D), UINT64_C(0x000704C7BCD74C67), + UINT64_C(0x0006587D24D60D0B), UINT64_C(0x0009A72FB4EDBDF3), + UINT64_C(0x0005F66F2FC11A22), UINT64_C(0x0005C07A5C028CB3), + UINT64_C(0x000427DC53252FD7), UINT64_C(0x00000C0FE0D5E259)}, + {UINT64_C(0x00015C9DCE11A938), UINT64_C(0x0002F708542BA021), + UINT64_C(0x0006DAB5EC8723B2), UINT64_C(0x0003151DBC6DBEA3), + UINT64_C(0x000309C003EEA187), UINT64_C(0x000986E93A4AD727), + UINT64_C(0x0005A27640EB41AD), UINT64_C(0x00064B4B969CE91A), + UINT64_C(0x00058AD60A48BA18), UINT64_C(0x0007DE07E6483D46)}}, + {{UINT64_C(0x0001C747EC0357A9), UINT64_C(0x00053CBE4FDF72AE), + UINT64_C(0x0001FB453499F9E9), UINT64_C(0x0004C4167C9B02FD), + UINT64_C(0x000127DCADD50EB4), UINT64_C(0x000805FB4E216AE0), + UINT64_C(0x00029FAA52099B86), UINT64_C(0x00047C3F68455806), + UINT64_C(0x0001B9FA50F58DBC), UINT64_C(0x0003BD919AFF02A8)}, + {UINT64_C(0x0000E4A059AF4846), UINT64_C(0x0007E18DF861A61A), + UINT64_C(0x0006C2588CE7246D), UINT64_C(0x000662D80DEF8736), + UINT64_C(0x00067C77B3EBB3CB), UINT64_C(0x000DB319339B4754), + UINT64_C(0x0002F3DAFE1D02AD), UINT64_C(0x0001AB8E0CEDA23A), + UINT64_C(0x0000839E55FF286D), UINT64_C(0x000427E6A937B04C)}}, + {{UINT64_C(0x0009CD5E8F10490A), UINT64_C(0x000770DEE503609F), + UINT64_C(0x0002F4D1F9822AF0), UINT64_C(0x000209D7D6C6D432), + UINT64_C(0x000577EE861AD61E), UINT64_C(0x000D96564BC24BF1), + UINT64_C(0x0007205D262B6DBF), UINT64_C(0x0003C7E6251A1A93), + UINT64_C(0x00013FC13A41D60E), UINT64_C(0x000213F2333B026A)}, + {UINT64_C(0x0008E0F9A2F3F058), UINT64_C(0x00052D3E4E010B53), + UINT64_C(0x00048FB0F03593BF), UINT64_C(0x0007400230A674D3), + UINT64_C(0x0007D42DE3498D1B), UINT64_C(0x00088D98507324A9), + UINT64_C(0x0006FEBD72D5E2AE), UINT64_C(0x00023587543DE864), + UINT64_C(0x0006101B209DB09C), UINT64_C(0x0007176D895A251A)}}, + {{UINT64_C(0x0005B6A111C3F2A8), UINT64_C(0x000287D5A1A25472), + UINT64_C(0x0004C3C87F77626A), UINT64_C(0x0007EAFB9945BB03), + UINT64_C(0x0000B01EC3BD3FD6), UINT64_C(0x0003CFA14713C9F7), + UINT64_C(0x00055DC5C2B54DF9), UINT64_C(0x00040CB8F2FD4F74), + UINT64_C(0x0002B2C21AAD7697), UINT64_C(0x0006A800C6F15DE5)}, + {UINT64_C(0x00087EBAC501C1CD), UINT64_C(0x0004B94A8B9744A9), + UINT64_C(0x00071EA1C4951821), UINT64_C(0x0002F01B39CE1A3C), + UINT64_C(0x0005D4D68C89745D), UINT64_C(0x000CDC8D00E9F950), + UINT64_C(0x0004C2450A80D882), UINT64_C(0x0002B0D6F20496F6), + UINT64_C(0x0000E2B53712BC8E), UINT64_C(0x0004FB508F36E069)}}, + {{UINT64_C(0x0009905B853D75DD), UINT64_C(0x0002202313A58A10), + UINT64_C(0x00047F9FAA6A8086), UINT64_C(0x0006997CD94C68DB), + UINT64_C(0x00053560DF08CE67), UINT64_C(0x00058B243F1C8213), + UINT64_C(0x00023330F3EAC431), UINT64_C(0x00029615BF1FDC4B), + UINT64_C(0x0000E02FFE4339AB), UINT64_C(0x0006701924C686EC)}, + {UINT64_C(0x00028B574C85D822), UINT64_C(0x00023BDBC197A77D), + UINT64_C(0x0000CA80105F893D), UINT64_C(0x0004A4B3F8BA0A40), + UINT64_C(0x0006606848556101), UINT64_C(0x0002691001720525), + UINT64_C(0x000492966DED5935), UINT64_C(0x0004330B122DF4B0), + UINT64_C(0x0003F277BB31C2EC), UINT64_C(0x000415C4C2A49A50)}}, + {{UINT64_C(0x00067B9FED7E7EA9), UINT64_C(0x0000C6210735C315), + UINT64_C(0x000015C61BE12C57), UINT64_C(0x00031A65953D8E09), + UINT64_C(0x0000C16E4265E92A), UINT64_C(0x00038511318F2F8F), + UINT64_C(0x0006D2553216EB6C), UINT64_C(0x00014C8A2AC5A158), + UINT64_C(0x000155D5D24C02F3), UINT64_C(0x00028479C9ACA656)}, + {UINT64_C(0x0007F082D316A5DE), UINT64_C(0x0003727A88716E25), + UINT64_C(0x000759E99508C576), UINT64_C(0x000268F8E924CE60), + UINT64_C(0x0006584B44F67E86), UINT64_C(0x00010FC03061696C), + UINT64_C(0x000111F962EADA3C), UINT64_C(0x000287220D2E4A6F), + UINT64_C(0x0003DB8A5947F03E), UINT64_C(0x00063C396A142480)}}, + {{UINT64_C(0x0008D64DDD35262C), UINT64_C(0x0000E4419BEEDCBC), + UINT64_C(0x0002644C710FD7DF), UINT64_C(0x0002B9FD57D1EDA6), + UINT64_C(0x0001B443D6794EE2), UINT64_C(0x00066E8A571BA2F0), + UINT64_C(0x0002A7DDA194FF52), UINT64_C(0x0000F1F9B9EB114E), + UINT64_C(0x0002D0C71939AF7D), UINT64_C(0x0007B1CF36555692)}, + {UINT64_C(0x000E6FC6E690E6C9), UINT64_C(0x00025FE13962D085), + UINT64_C(0x00057EF392B58263), UINT64_C(0x0000601F80D88963), + UINT64_C(0x0000F77167FACF40), UINT64_C(0x0005C1EB1F4AF8D3), + UINT64_C(0x0004E45CA91A75A3), UINT64_C(0x0007A538AF4D39AB), + UINT64_C(0x0002FC7EF186BF83), UINT64_C(0x0002BB96633B032F)}}, + {{UINT64_C(0x000A511387235D97), UINT64_C(0x0000C5AEBD7CD669), + UINT64_C(0x0001E2B79B37FC76), UINT64_C(0x000633A0ED45A1B2), + UINT64_C(0x00002A485310156D), UINT64_C(0x000CF71C1E86A953), + UINT64_C(0x000380A9470BDE9B), UINT64_C(0x0006C3A16CD16C98), + UINT64_C(0x0003FD675030BD33), UINT64_C(0x0005733732E1E8BD)}, + {UINT64_C(0x0005DC87E99B96E0), UINT64_C(0x00061EEB65283A4A), + UINT64_C(0x00066868AD05A9F6), UINT64_C(0x0003149FA1801E6C), + UINT64_C(0x00009D644B39DFC5), UINT64_C(0x00088AA6A5735E82), + UINT64_C(0x000329D82B26F648), UINT64_C(0x00038BF5BA7C68AD), + UINT64_C(0x0000C5080B2DF90F), UINT64_C(0x00038D1F9AC2EAFD)}}, + {{UINT64_C(0x000DB14BDA7C7B66), UINT64_C(0x0000C49B073976FE), + UINT64_C(0x000594F284FFA26E), UINT64_C(0x000082CF489F3922), + UINT64_C(0x00052C957BF245F7), UINT64_C(0x0006E308A2AB1201), + UINT64_C(0x000099B40ACA95A7), UINT64_C(0x0002815B6839730D), + UINT64_C(0x0000B4295FDA8783), UINT64_C(0x00056F95752DE2DE)}, + {UINT64_C(0x000F056FEC9E88EA), UINT64_C(0x0007747F406F4246), + UINT64_C(0x000125F62E04125C), UINT64_C(0x000286A0E4919620), + UINT64_C(0x000691348CCDE24C), UINT64_C(0x0000010E5ED700B6), + UINT64_C(0x0000B69D2C21F3C6), UINT64_C(0x00073767577F6F02), + UINT64_C(0x0005344DA12140FD), UINT64_C(0x00063AC1FFD1B34E)}}, + }, + { + {{UINT64_C(0x00073DCFA4CC1F6E), UINT64_C(0x000058B4C7ED3A6B), + UINT64_C(0x00044FC7BBBB4D1C), UINT64_C(0x00073AA6DD4CD996), + UINT64_C(0x000603CE62F0768C), UINT64_C(0x000DDF011F0B6AB3), + UINT64_C(0x0003E05089170D90), UINT64_C(0x0005874DCC299BE8), + UINT64_C(0x0001472869B59056), UINT64_C(0x000509DDD9B76FFE)}, + {UINT64_C(0x000EF415076C2F66), UINT64_C(0x00011E95B1CD79BE), + UINT64_C(0x00072B66656ECB77), UINT64_C(0x0000C32231A4FA37), + UINT64_C(0x000078B2D3568104), UINT64_C(0x00071892DBCB8007), + UINT64_C(0x00003A0D60762137), UINT64_C(0x0001972E82FD7568), + UINT64_C(0x0003B928B40F35C4), UINT64_C(0x00008D70A3EF6199)}}, + {{UINT64_C(0x000AFC3506C0703F), UINT64_C(0x000624FB1C5785C2), + UINT64_C(0x0000AABC82587858), UINT64_C(0x0004C835073ADCF9), + UINT64_C(0x000687A3E10BEBEC), UINT64_C(0x000594AAE6A6AE1A), + UINT64_C(0x00065326690F40A8), UINT64_C(0x0000FAAF35DCEA85), + UINT64_C(0x0000F2D71EE73779), UINT64_C(0x00066971F9CF6697)}, + {UINT64_C(0x000438C3AE869675), UINT64_C(0x00058F4A97CCECEE), + UINT64_C(0x00038C0DA4EAB715), UINT64_C(0x0002EFF5EC967DA5), + UINT64_C(0x0004EC8C45F8A0B7), UINT64_C(0x0001A00E90F5CDF1), + UINT64_C(0x00008DEA644831E0), UINT64_C(0x000344FDFCB694A6), + UINT64_C(0x0001645897F09A36), UINT64_C(0x0003CD2366934F24)}}, + {{UINT64_C(0x0003A9CBC10E78A2), UINT64_C(0x0005680C903EE3AA), + UINT64_C(0x0006148C4134D494), UINT64_C(0x0000B708AB89AB5E), + UINT64_C(0x0004077F94E08257), UINT64_C(0x0006E5183D078408), + UINT64_C(0x000100C1D80D49CE), UINT64_C(0x00077E3B5B1FD1E9), + UINT64_C(0x0001D5173866042B), UINT64_C(0x0002EC241DBE6604)}, + {UINT64_C(0x000D707611B80741), UINT64_C(0x000004EDC429B806), + UINT64_C(0x00025B85B91E12D5), UINT64_C(0x0005A874EFD18EE2), + UINT64_C(0x000679D292E2E5E8), UINT64_C(0x0007C4E1CF9D2493), + UINT64_C(0x00007FEC8151F6C5), UINT64_C(0x0007077C6CE7BCBD), + UINT64_C(0x0004E603D2D1C045), UINT64_C(0x000120DC52FC4C28)}}, + {{UINT64_C(0x00024CAB433F1EE9), UINT64_C(0x00029390B5399AC6), + UINT64_C(0x0000A140735E1061), UINT64_C(0x0006209FAAABDAEB), + UINT64_C(0x000313939B1E27F8), UINT64_C(0x00071218CE90C274), + UINT64_C(0x00004D454CA99B52), UINT64_C(0x000244DC876EE217), + UINT64_C(0x0007B9AEDFF13E10), UINT64_C(0x0007C60093FD8081)}, + {UINT64_C(0x000DA5DEA4CAF297), UINT64_C(0x00068C8666E24B9C), + UINT64_C(0x0002429BB8CB157C), UINT64_C(0x00075FA673A5EDA2), + UINT64_C(0x000374A3EAD4DEAA), UINT64_C(0x000BDA91FD4D7B4C), + UINT64_C(0x000219669647B2DF), UINT64_C(0x0003EDAFFBB15EF4), + UINT64_C(0x00024CF5BC63EF28), UINT64_C(0x00027124899C9A4B)}}, + {{UINT64_C(0x00040B019B1261D0), UINT64_C(0x0000B4F4F45584EA), + UINT64_C(0x00010867C36FE3B7), UINT64_C(0x0001B956EFC67D1C), + UINT64_C(0x00060551212213FD), UINT64_C(0x00045B1AC4D20479), + UINT64_C(0x00031E79405F14E6), UINT64_C(0x00054F01E909A81E), + UINT64_C(0x00001536D9DE39DB), UINT64_C(0x0000B62D820D6FE3)}, + {UINT64_C(0x0003F4243CF34066), UINT64_C(0x00024F7957E1D750), + UINT64_C(0x000080B613A16A90), UINT64_C(0x0004FFBB7D0412AA), + UINT64_C(0x00048AADB4617EEB), UINT64_C(0x0005590404BF6350), + UINT64_C(0x0005FB0DEC254DD3), UINT64_C(0x0006E456239D68DC), + UINT64_C(0x0006AA0BAC97FBC4), UINT64_C(0x0007C0F318810C9E)}}, + {{UINT64_C(0x00095C2255EB8676), UINT64_C(0x0002EEBEE04E7BD1), + UINT64_C(0x00047162E07D3E1B), UINT64_C(0x00019CBB802D7D2F), + UINT64_C(0x0004D5BCA1F2FE81), UINT64_C(0x000636275F6E3CD0), + UINT64_C(0x000074C1065AE748), UINT64_C(0x00000ED33D724610), + UINT64_C(0x000382AAE71C671F), UINT64_C(0x00050F862E56FE82)}, + {UINT64_C(0x000F0C6FE0519997), UINT64_C(0x0004AF7A837FAD03), + UINT64_C(0x00029E2DCFC7D836), UINT64_C(0x0000D7429D3F9BC8), + UINT64_C(0x0002062ED538B7FE), UINT64_C(0x00048D96CEDB79F1), + UINT64_C(0x00035E77C26028A3), UINT64_C(0x0002BEBC515C0C05), + UINT64_C(0x0001137EC9DBE5EA), UINT64_C(0x0004EF0306F592B4)}}, + {{UINT64_C(0x00045CFFCC0FA82B), UINT64_C(0x000147CD2A7BCEF8), + UINT64_C(0x0004A7DF37A543F3), UINT64_C(0x0000E83C08C7DB26), + UINT64_C(0x000433C19A259924), UINT64_C(0x000060A2CC17C1B7), + UINT64_C(0x00048887C01708A7), UINT64_C(0x0004F7B43946A5B5), + UINT64_C(0x0000318DA056D31F), UINT64_C(0x0005816FA3E55B23)}, + {UINT64_C(0x00028F1B6BE8EDBD), UINT64_C(0x0002FAEDDF5DD2E3), + UINT64_C(0x0004F7E40BA33E35), UINT64_C(0x00065C3B855FC053), + UINT64_C(0x0001874EF8C8D7C7), UINT64_C(0x0009EE69935EB5BD), + UINT64_C(0x0005209285BDCD9B), UINT64_C(0x00065CD4AD193A52), + UINT64_C(0x0007AF07028EFAD4), UINT64_C(0x0003D64202012D6B)}}, + {{UINT64_C(0x000B9243B209436A), UINT64_C(0x0004A9127BF30A58), + UINT64_C(0x0006E0E94A1E2713), UINT64_C(0x0004376EAD2B248D), + UINT64_C(0x000767EEA5E05823), UINT64_C(0x0009BF8F74216C3F), + UINT64_C(0x00024B8202C21037), UINT64_C(0x00013B0257209206), + UINT64_C(0x0002F0B8A9C57E63), UINT64_C(0x0001559540A76AA1)}, + {UINT64_C(0x00066AF801F7DD9E), UINT64_C(0x00075AFD2B0FB2AA), + UINT64_C(0x00055CB5FD0A01A3), UINT64_C(0x000139A9A848804F), + UINT64_C(0x0004DB6F2563F825), UINT64_C(0x0001293E77720431), + UINT64_C(0x0005D00E9E6814E5), UINT64_C(0x00033A3B82EBAE98), + UINT64_C(0x00032C37E6C66CBB), UINT64_C(0x000690013DADC456)}}, + {{UINT64_C(0x000272465B8B5D7D), UINT64_C(0x000720DB646ED253), + UINT64_C(0x0002AB65B7565858), UINT64_C(0x00014AD6B607866E), + UINT64_C(0x000598494CC47B43), UINT64_C(0x000001AE0D244024), + UINT64_C(0x00029E1DE544546D), UINT64_C(0x0002D87A26EE67AB), + UINT64_C(0x0002767B394A967D), UINT64_C(0x0005DD104AA8F32A)}, + {UINT64_C(0x00068115CF22CDAC), UINT64_C(0x0006E7DA3BE129A8), + UINT64_C(0x00037A31451A8758), UINT64_C(0x00039CB3690F9258), + UINT64_C(0x00069351BF30A237), UINT64_C(0x000943CB31F201C2), + UINT64_C(0x00056D93FDE091B5), UINT64_C(0x0007A6DAFB6FE56C), + UINT64_C(0x00076EBD371AC14C), UINT64_C(0x00022219B02515D5)}}, + {{UINT64_C(0x0007126658D45F84), UINT64_C(0x0005F94089210333), + UINT64_C(0x0000DF0B1374230F), UINT64_C(0x0000C22084A59475), + UINT64_C(0x0005B56056BEF979), UINT64_C(0x0003B18C16D005D1), + UINT64_C(0x00009A3D6108A669), UINT64_C(0x0002B5446C86171D), + UINT64_C(0x0003C25E4502353F), UINT64_C(0x0002AF979DDD05A1)}, + {UINT64_C(0x000CE57EA911389C), UINT64_C(0x00060CBCB1000CD6), + UINT64_C(0x0002AEF497970566), UINT64_C(0x0003002606F34647), + UINT64_C(0x0005BAC30DE7C37E), UINT64_C(0x000ACE8DDCA7F508), + UINT64_C(0x0004C49914338529), UINT64_C(0x000201F520B0AA42), + UINT64_C(0x0003ACEB18EE94D1), UINT64_C(0x00043292408A3327)}}, + {{UINT64_C(0x00071CFCF4149893), UINT64_C(0x0002FF24B716F1CF), + UINT64_C(0x0002E9DD42D79E81), UINT64_C(0x0005F2E12A9D3787), + UINT64_C(0x0000B67ABBDD6226), UINT64_C(0x000E14AD866F075E), + UINT64_C(0x0000DF8C5452E7ED), UINT64_C(0x000179D614E61B47), + UINT64_C(0x0005F5E532D764C5), UINT64_C(0x000134C30CA43904)}, + {UINT64_C(0x0008A3D8E0E5028B), UINT64_C(0x0002AD02FF65DB2D), + UINT64_C(0x000024B54F477366), UINT64_C(0x0004DF76000BEBD4), + UINT64_C(0x0001BABEBBC5B492), UINT64_C(0x000293A99B9A4E9E), + UINT64_C(0x0006DA8EC81880DF), UINT64_C(0x0004D62443F19541), + UINT64_C(0x0007788BC32D12B7), UINT64_C(0x00053D73A62F6A5D)}}, + {{UINT64_C(0x0008D1269BFE5E8B), UINT64_C(0x0000FE4C7CBD9622), + UINT64_C(0x0003CF67B2F4ACFF), UINT64_C(0x0006A8A24518F03D), + UINT64_C(0x000347DAE1827AD4), UINT64_C(0x000F291ACCCDE5C5), + UINT64_C(0x0000C9C96024DBC2), UINT64_C(0x0006E1493787400F), + UINT64_C(0x0004557C49C13B5E), UINT64_C(0x0001BBD5022E461F)}, + {UINT64_C(0x00029EF080397D2A), UINT64_C(0x0007D3AEFB96A5DA), + UINT64_C(0x0005CE903FC41243), UINT64_C(0x0007ACF27A77BE2F), + UINT64_C(0x00069367C2BB5B2D), UINT64_C(0x000EA380A0F28EC9), + UINT64_C(0x0004D091094729F5), UINT64_C(0x0000568ED1C33BAF), + UINT64_C(0x0006FFC9FEC1754C), UINT64_C(0x00079AF250E87C71)}}, + {{UINT64_C(0x0001B7181A9FE1E7), UINT64_C(0x0004BF3195C7079A), + UINT64_C(0x00004C65A8623BD7), UINT64_C(0x000293D8EC50869E), + UINT64_C(0x00061ECDC77A17C7), UINT64_C(0x00024A53FBCEF78C), + UINT64_C(0x0006DE143AB5A0EC), UINT64_C(0x0004F508E8AD0226), + UINT64_C(0x0006DB9363078A38), UINT64_C(0x0002687048D33591)}, + {UINT64_C(0x00002320E24E6A1C), UINT64_C(0x000313A5A33B1564), + UINT64_C(0x00032A7B146533BC), UINT64_C(0x00071698E42DC91D), + UINT64_C(0x00013FC72B6E6862), UINT64_C(0x000192B68047991B), + UINT64_C(0x00077CB246D0CF66), UINT64_C(0x00019BF6E968E141), + UINT64_C(0x00022BEFB71228A7), UINT64_C(0x0007A8BE0F3AB802)}}, + {{UINT64_C(0x0004ADD37A15BAF2), UINT64_C(0x0002BA4932A7035A), + UINT64_C(0x0007F27F93062C33), UINT64_C(0x0001E46147E6199F), + UINT64_C(0x0004849455CB21C9), UINT64_C(0x000DF6C55755F760), + UINT64_C(0x00062C25D51F8005), UINT64_C(0x00018D552106AE65), + UINT64_C(0x00036D4A8E15A67D), UINT64_C(0x0002EAE18E596E61)}, + {UINT64_C(0x000A03842DB9836A), UINT64_C(0x00048F98CEFB00D3), + UINT64_C(0x0005190809ADF2BA), UINT64_C(0x0002DFB56F0A20D0), + UINT64_C(0x00027970FAA41846), UINT64_C(0x000A481D0AD15C42), + UINT64_C(0x000613F431F58DB3), UINT64_C(0x00007B1DF30C2753), + UINT64_C(0x000724A12A33FE21), UINT64_C(0x00061257C4C8D5D9)}}, + {{UINT64_C(0x0006B38283640BFC), UINT64_C(0x00071A8876D2D39B), + UINT64_C(0x0000F57FF4B7C4D2), UINT64_C(0x00048165C6651FA6), + UINT64_C(0x000261CAB432E4D9), UINT64_C(0x0003A33A1024655B), + UINT64_C(0x00016A80FB002EFE), UINT64_C(0x0007F53959DC0BF4), + UINT64_C(0x000327B19C41762A), UINT64_C(0x0003AEB118550BD1)}, + {UINT64_C(0x000194446473FAA4), UINT64_C(0x00056252C5E6D79B), + UINT64_C(0x000385407B1E32BE), UINT64_C(0x0004F62D3BA2C380), + UINT64_C(0x0006709FC90E66D9), UINT64_C(0x000BF2EFEC69E52A), + UINT64_C(0x00025E53D4588CB4), UINT64_C(0x000767AF079A8486), + UINT64_C(0x0006B1B2BCF33774), UINT64_C(0x00054711D18A6446)}}, + {{UINT64_C(0x0002F65D12A437F5), UINT64_C(0x0004C193BB16BB5C), + UINT64_C(0x00044CB11429B380), UINT64_C(0x000575B1D96C4371), + UINT64_C(0x0004792169D089CC), UINT64_C(0x000A44E79CFC086D), + UINT64_C(0x0007F7A9AA829C6C), UINT64_C(0x0000E51AD40E415B), + UINT64_C(0x0003741299AE5AB0), UINT64_C(0x00034773AD27F4C8)}, + {UINT64_C(0x0001088846755E86), UINT64_C(0x0007C43CEE739306), + UINT64_C(0x0006DFB006FC973D), UINT64_C(0x00075D11ABB97E3F), + UINT64_C(0x0006CE4EAD9FD40A), UINT64_C(0x00090DE95E0B71B8), + UINT64_C(0x000677FB1CA2400F), UINT64_C(0x0001D6A9EAC1F91B), + UINT64_C(0x0004B5A0DEA254E4), UINT64_C(0x00031843DB8ACA4B)}}, + }, + { + {{UINT64_C(0x00040F0FEE5191D7), UINT64_C(0x0007AD757B218666), + UINT64_C(0x00025B684155AF20), UINT64_C(0x00029F4B5C485180), + UINT64_C(0x0007D8377347091F), UINT64_C(0x000A22940AF54A77), + UINT64_C(0x0003BDF6CB1B3734), UINT64_C(0x000579D05F06E011), + UINT64_C(0x00032F87199B836F), UINT64_C(0x000467CDC3E7620A)}, + {UINT64_C(0x00099269E81CAEA9), UINT64_C(0x00060FAD5B89DD61), + UINT64_C(0x0005D82009E159C4), UINT64_C(0x000543570882A388), + UINT64_C(0x0005742B11F41567), UINT64_C(0x00005532CC1A04CF), + UINT64_C(0x0007E7D67CA82018), UINT64_C(0x00030811921ED542), + UINT64_C(0x00033B0153C0A9D2), UINT64_C(0x000027EEDE45D652)}}, + {{UINT64_C(0x00054628B564DD25), UINT64_C(0x000278E72161A60B), + UINT64_C(0x0002875070456F4D), UINT64_C(0x0000A471C5023AE6), + UINT64_C(0x00053142CC156044), UINT64_C(0x000EB689710B36EE), + UINT64_C(0x000749FE221A7A5D), UINT64_C(0x0005CE289B236184), + UINT64_C(0x00064A9332E96DFA), UINT64_C(0x00019F74B7F23AA6)}, + {UINT64_C(0x000047C80E1C6849), UINT64_C(0x00032C0409EB2702), + UINT64_C(0x0005472D7A3265A6), UINT64_C(0x00007486A002948B), + UINT64_C(0x0005B35D6DCD0117), UINT64_C(0x000F09583142990E), + UINT64_C(0x00020994F45554BA), UINT64_C(0x0002A8A2ED9245E6), + UINT64_C(0x0001FCB7F2469865), UINT64_C(0x0003ABDD4F76D182)}}, + {{UINT64_C(0x0007EF170E5B61C6), UINT64_C(0x00072FD9870DA526), + UINT64_C(0x00052A5CE07FB8A2), UINT64_C(0x000641090CDA363A), + UINT64_C(0x0001F046CD11B1C9), UINT64_C(0x000C5ACA2B42DE77), + UINT64_C(0x0003FA2D3D3A78D1), UINT64_C(0x00022EE52A68BA15), + UINT64_C(0x0006ED9A8FFEDB9E), UINT64_C(0x000628597175CF09)}, + {UINT64_C(0x0007233FAD040661), UINT64_C(0x0002DBF1724897C1), + UINT64_C(0x00058AF887383FF2), UINT64_C(0x0001A82F626A8BA1), + UINT64_C(0x000663B0E734D3AD), UINT64_C(0x00041A94CEBE29A8), + UINT64_C(0x0000EBE98973931D), UINT64_C(0x0007653DABE4C434), + UINT64_C(0x00077F080BA025B1), UINT64_C(0x0001349D8D6D5053)}}, + {{UINT64_C(0x000BE1C7FB3EA365), UINT64_C(0x0000DEC547480E21), + UINT64_C(0x0003063031574C24), UINT64_C(0x0004A1A78E047579), + UINT64_C(0x000606500AB9A488), UINT64_C(0x00027F5C522D4690), + UINT64_C(0x0001EDD9FF35555F), UINT64_C(0x00027FDC2B282190), + UINT64_C(0x000683CED2B98C75), UINT64_C(0x000650923C157066)}, + {UINT64_C(0x00092C9AF39CBACB), UINT64_C(0x0007D3858C2DD00B), + UINT64_C(0x00031E676BBB7275), UINT64_C(0x0003AA2D98F4F933), + UINT64_C(0x0003DCA9CE27A62B), UINT64_C(0x000A07F50B9E690F), + UINT64_C(0x000051DF1C1BCD4A), UINT64_C(0x0003517B8AC99CFD), + UINT64_C(0x0006367C0179F6E0), UINT64_C(0x0002CE5C968BCB6D)}}, + {{UINT64_C(0x000200C339FA6063), UINT64_C(0x0002D8C7E4167214), + UINT64_C(0x00043F59D8D68BBE), UINT64_C(0x00020ABF6635C5FA), + UINT64_C(0x000676FC3B2B32D8), UINT64_C(0x000EBE9FD818DFC0), + UINT64_C(0x0006D7A4486F3794), UINT64_C(0x000684F5E2DF04E3), + UINT64_C(0x00032590E104D8CA), UINT64_C(0x0007F86F511DEAF5)}, + {UINT64_C(0x00034E941C93C058), UINT64_C(0x00034819A8DA6A22), + UINT64_C(0x000164AD4449303E), UINT64_C(0x00042BE59CA73B0D), + UINT64_C(0x00014B7F6EA0A455), UINT64_C(0x00098C54814B4ED9), + UINT64_C(0x0004C74E9049A134), UINT64_C(0x0001859C7C28787A), + UINT64_C(0x0002BF6FCC75D79D), UINT64_C(0x0007A8E2129CEB51)}}, + {{UINT64_C(0x00018E8A6D68977A), UINT64_C(0x000202BA27C4F548), + UINT64_C(0x000765E7CECDA47B), UINT64_C(0x000363DB05A69000), + UINT64_C(0x0005F96506BEB7D3), UINT64_C(0x00089C30791266ED), + UINT64_C(0x00077E5CAB5C1F29), UINT64_C(0x0006E87E942A7A13), + UINT64_C(0x0001FD90D57F757B), UINT64_C(0x0007B1FF16E524CF)}, + {UINT64_C(0x0005EA5BBEA59591), UINT64_C(0x000427E51D91AE1C), + UINT64_C(0x00070FC7F83A8541), UINT64_C(0x00069E9D31A36625), + UINT64_C(0x00030C2ED2385F4C), UINT64_C(0x00095E9CEDC7EC18), + UINT64_C(0x0004DF297D2AB731), UINT64_C(0x0007FD32EE0B4C2F), + UINT64_C(0x0006423F55007B50), UINT64_C(0x000582AFCEAF6692)}}, + {{UINT64_C(0x000132229C4BE432), UINT64_C(0x000062BDAF1A965D), + UINT64_C(0x0002C1A7663C1E53), UINT64_C(0x00038DAE7DCFB8CC), + UINT64_C(0x00072695BB1282ED), UINT64_C(0x0006EC32706E7F8F), + UINT64_C(0x0004FDED61E285BE), UINT64_C(0x0003D1D5A48B6110), + UINT64_C(0x000552ACEEFD0F10), UINT64_C(0x00011D10445A68E0)}, + {UINT64_C(0x000CB3E30A36F50F), UINT64_C(0x0004A7B7557E35AE), + UINT64_C(0x00066CFBF15B4D97), UINT64_C(0x0000508B08233B2E), + UINT64_C(0x0003F31FB5C7AE10), UINT64_C(0x000E6621F3031E22), + UINT64_C(0x000482990F4ECDC4), UINT64_C(0x000484D2AA8A0F24), + UINT64_C(0x00009D4CF9C0A36A), UINT64_C(0x0001CC385C527853)}}, + {{UINT64_C(0x000A4792A9EEE2A9), UINT64_C(0x00072FA6FDF2C7C6), + UINT64_C(0x0007C7826E4812BE), UINT64_C(0x0006F6D236CF8FD6), + UINT64_C(0x00073F81409D27AF), UINT64_C(0x0006499E587E37BE), + UINT64_C(0x0001D910B9037DCA), UINT64_C(0x00076B6BA2C2DD1C), + UINT64_C(0x0000C40F587E10E9), UINT64_C(0x0003A0C39693B06A)}, + {UINT64_C(0x000B22437DF0A661), UINT64_C(0x000740D926C3CA81), + UINT64_C(0x0004D6FC409922D3), UINT64_C(0x0006C8B0A63EBE3B), + UINT64_C(0x0007A7E09C658E92), UINT64_C(0x000EE849F67956DF), + UINT64_C(0x00009ACED8E8FE8F), UINT64_C(0x0001CD4640F2626A), + UINT64_C(0x0000370AE99E0EF4), UINT64_C(0x000081E0D1461BE8)}}, + {{UINT64_C(0x00073065330BAB74), UINT64_C(0x0001574E266A5243), + UINT64_C(0x0002D1F64CEC7BBF), UINT64_C(0x0005B4B35FD5F97F), + UINT64_C(0x0006E328070806B7), UINT64_C(0x000194194F915C7A), + UINT64_C(0x00073D3745896020), UINT64_C(0x0005E613BB39AE2A), + UINT64_C(0x00011D507ABCADE1), UINT64_C(0x0002EAF0689489D1)}, + {UINT64_C(0x000058D096BDB2AB), UINT64_C(0x00069969F77F9CB1), + UINT64_C(0x00039B6125B8F829), UINT64_C(0x00044A07AEC2D0C6), + UINT64_C(0x000504B4F3946022), UINT64_C(0x00080D0DFA735E99), + UINT64_C(0x0002BC6CCE0171E5), UINT64_C(0x0003D83527837207), + UINT64_C(0x00066CBA871AC0F9), UINT64_C(0x00024A295AAEBA6A)}}, + {{UINT64_C(0x000D2B933FA0DA3A), UINT64_C(0x00079892AF905B11), + UINT64_C(0x00021863855AA63A), UINT64_C(0x00052D86FEC679D3), + UINT64_C(0x000791B1FDE46EBE), UINT64_C(0x000AF24DC2D97724), + UINT64_C(0x000430197793B4EF), UINT64_C(0x0001355100B792D4), + UINT64_C(0x00067BC1C675D49F), UINT64_C(0x00013F553362D7E5)}, + {UINT64_C(0x0004977612BCB0EB), UINT64_C(0x0003E50B8F31A3A8), + UINT64_C(0x0007CD4AF5A9CB24), UINT64_C(0x0002D3E56A2C0F66), + UINT64_C(0x0002D65C455CD2EF), UINT64_C(0x0002086963C9C7D0), + UINT64_C(0x000145D5C4A9FFAE), UINT64_C(0x000619BAC8505C4A), + UINT64_C(0x000027E3A7AE4A7A), UINT64_C(0x0000B67AD3689936)}}, + {{UINT64_C(0x000CC7D3BF4762C0), UINT64_C(0x0001F746EDBE329E), + UINT64_C(0x0001DF8B85050FA2), UINT64_C(0x0003BD3B0F568385), + UINT64_C(0x000180BF161ABAC6), UINT64_C(0x0000215CE0594FA0), + UINT64_C(0x00047C0CB6A73218), UINT64_C(0x0000DBAEA7BF27D7), + UINT64_C(0x0002F869F09063DD), UINT64_C(0x00054D9BA9522E09)}, + {UINT64_C(0x0002FE8D87A17CE0), UINT64_C(0x00057E4AC584E74A), + UINT64_C(0x0002DAC318271EF4), UINT64_C(0x0002423F79D4DEB2), + UINT64_C(0x0003E960755CCBC4), UINT64_C(0x000D266A7438DBF6), + UINT64_C(0x000477E42DA16918), UINT64_C(0x0006B11A646B2B6A), + UINT64_C(0x000431429BD1F7B7), UINT64_C(0x0006ED79801CF551)}}, + {{UINT64_C(0x000C2F5AD403D304), UINT64_C(0x00000E16E8839A82), + UINT64_C(0x0006E1D15D839778), UINT64_C(0x0005F5B10106BB12), + UINT64_C(0x0005C19D486DD5C6), UINT64_C(0x000719C29C1E59DF), + UINT64_C(0x000659479542B834), UINT64_C(0x0007ACDE37B973BE), + UINT64_C(0x0003482AD9321747), UINT64_C(0x000505ADD6521552)}, + {UINT64_C(0x000F913FC1522D09), UINT64_C(0x00037BFD0D4ABC49), + UINT64_C(0x00001FA1DDC7C8F2), UINT64_C(0x000557253E6A7DB6), + UINT64_C(0x0006E4F330384051), UINT64_C(0x000EB36BC2271684), + UINT64_C(0x0006E60BC26E1F0F), UINT64_C(0x00054A6E03B188FB), + UINT64_C(0x0003C21955E62B44), UINT64_C(0x00029C4483BA7D4D)}}, + {{UINT64_C(0x000670CC3896EBA5), UINT64_C(0x000259CFB18CBAE2), + UINT64_C(0x0006699793CC03B7), UINT64_C(0x0006E571D3FF8F29), + UINT64_C(0x00001EB92283238D), UINT64_C(0x000F5DE25A4C21F7), + UINT64_C(0x00021DA151657372), UINT64_C(0x0005351A570D55D1), + UINT64_C(0x0005E3C40430A85A), UINT64_C(0x0001A3FAEB0F9878)}, + {UINT64_C(0x00041F28CA0920E8), UINT64_C(0x0000528AA3286F64), + UINT64_C(0x000550CD85825A5A), UINT64_C(0x0006A07132346430), + UINT64_C(0x0006248B435552B3), UINT64_C(0x000C51E8492A342A), + UINT64_C(0x000238B2E633EAE5), UINT64_C(0x00077EFF4FF5E3AF), + UINT64_C(0x000737FE3C5938DC), UINT64_C(0x0003E7F342587F14)}}, + {{UINT64_C(0x0000469EA4F316A5), UINT64_C(0x0000CFF01ADFC8EC), + UINT64_C(0x000752DEE0AF6B42), UINT64_C(0x0000FBD7A1DB547A), + UINT64_C(0x00071529F9CBFCB7), UINT64_C(0x0002EEF2C4E55DE9), + UINT64_C(0x00068B08FC158B20), UINT64_C(0x0005BA1440B0CD47), + UINT64_C(0x000770690268EB1C), UINT64_C(0x0004FEA766326EEE)}, + {UINT64_C(0x0007E31940932215), UINT64_C(0x0006F953571E0D10), + UINT64_C(0x000325DB7CA114C1), UINT64_C(0x0003346F1BDB76FF), + UINT64_C(0x0004B2D608C398A0), UINT64_C(0x000880C15A6358CD), + UINT64_C(0x00003A12DA7DAE1C), UINT64_C(0x00012A98295624DC), + UINT64_C(0x0003F435F64DA03F), UINT64_C(0x00077E682761BD79)}}, + {{UINT64_C(0x000725EBE3550E60), UINT64_C(0x00009759E82357AA), + UINT64_C(0x000707477FAC3456), UINT64_C(0x00056FDC23023B2E), + UINT64_C(0x00051E1365B47E4D), UINT64_C(0x000B5D849F58CA94), + UINT64_C(0x000685BF93742A36), UINT64_C(0x0001A1BC548F6279), + UINT64_C(0x000344BB9DE268D0), UINT64_C(0x0005FDFB2BC3DEF5)}, + {UINT64_C(0x000848AFB0499C56), UINT64_C(0x00010DC37ABCFDEA), + UINT64_C(0x0006C1811764BA4D), UINT64_C(0x0002A308A7745FCC), + UINT64_C(0x00074CBB9E51FB1A), UINT64_C(0x000AC8D6F8659635), + UINT64_C(0x000154D1F4F69089), UINT64_C(0x00028051B6633DBB), + UINT64_C(0x0003335687BF4293), UINT64_C(0x0005ED908B0510A4)}}, + {{UINT64_C(0x0004904C9668E6CD), UINT64_C(0x00079071B2B92E94), + UINT64_C(0x0001E7AE6FF7AF6A), UINT64_C(0x0002127FE63573CD), + UINT64_C(0x0000D3D1E41CDAC6), UINT64_C(0x00011204952E81CE), + UINT64_C(0x000271F8C2A453E2), UINT64_C(0x0001B69F9248DB24), + UINT64_C(0x000379D0353FB400), UINT64_C(0x0001295BB193D08F)}, + {UINT64_C(0x000E90DA27BA514F), UINT64_C(0x0003159CBE1F9C35), + UINT64_C(0x0005521CD6FEB8F3), UINT64_C(0x0005119F047F6EB1), + UINT64_C(0x0004D5D0948D614B), UINT64_C(0x0006892CA0E25568), + UINT64_C(0x0000FD25BBE0A6E7), UINT64_C(0x00021564372435F1), + UINT64_C(0x00027D8B49CAD04C), UINT64_C(0x00007D5A2C89462D)}}, + }, + { + {{UINT64_C(0x000F514B71EBBDCC), UINT64_C(0x0004035582F1B252), + UINT64_C(0x0002A1C7C414989A), UINT64_C(0x0007743F23DC3274), + UINT64_C(0x000791E243AE6EF8), UINT64_C(0x0009076C398D3FDA), + UINT64_C(0x00055D23854865C6), UINT64_C(0x00067630F1F7A188), + UINT64_C(0x0004FEF4830113F0), UINT64_C(0x0006EF4DC0128B39)}, + {UINT64_C(0x000AE1F76A7AB992), UINT64_C(0x0003D7ABB33C7671), + UINT64_C(0x0007A82D28545FE8), UINT64_C(0x00034AB6DCB3D487), + UINT64_C(0x0007701ECE7EE900), UINT64_C(0x000E400E5BC2A1A4), + UINT64_C(0x000693EAE58F5DF2), UINT64_C(0x00037BBA5ED12DB3), + UINT64_C(0x0005ED5B1E21C1B3), UINT64_C(0x000641DC0D967E8B)}}, + {{UINT64_C(0x00054C95BB0652B1), UINT64_C(0x00046F4FED58813D), + UINT64_C(0x00050815BA4C242F), UINT64_C(0x0003C70A5ADB1CBD), + UINT64_C(0x00018471501C557F), UINT64_C(0x00061B89E1DB46F5), + UINT64_C(0x00030130047B6C15), UINT64_C(0x00024E7E179F958E), + UINT64_C(0x00029B81AFD116BD), UINT64_C(0x0001F1C0E6F5B495)}, + {UINT64_C(0x00023C05D2947309), UINT64_C(0x000077CE6739DA7A), + UINT64_C(0x0007175E6FC632C3), UINT64_C(0x00079215145A49EE), + UINT64_C(0x0005582902E4AEC2), UINT64_C(0x0003D193BC0C12D2), + UINT64_C(0x0005BA6F099A5DF0), UINT64_C(0x000403F8EF0B4955), + UINT64_C(0x000642EB7C8A43A1), UINT64_C(0x0005D32BCC2F8B89)}}, + {{UINT64_C(0x00017EB1EE4CB1A1), UINT64_C(0x0006638C230FE375), + UINT64_C(0x00023DCF4460C9F8), UINT64_C(0x0002497719F0A400), + UINT64_C(0x00040836988B5191), UINT64_C(0x0004916DE1D1C20D), + UINT64_C(0x0001141194F546D7), UINT64_C(0x00002179582ACA27), + UINT64_C(0x0004DBC84C72F8E0), UINT64_C(0x00023C1DFC8EFD14)}, + {UINT64_C(0x00070B7F76ADAF26), UINT64_C(0x0003C6CEB8B1DA8A), + UINT64_C(0x0003FD11262FDAE0), UINT64_C(0x0002770D8C7E9FB3), + UINT64_C(0x0006D3BD713575D9), UINT64_C(0x0007838C17F3658C), + UINT64_C(0x00077F30784494CF), UINT64_C(0x0001CE5F8562296E), + UINT64_C(0x0005C03FBD4434BB), UINT64_C(0x0001FF536CDDE62E)}}, + {{UINT64_C(0x0001172A96A1E7D6), UINT64_C(0x0001098F9CBA5BBC), + UINT64_C(0x00074F5479589BDA), UINT64_C(0x0003E78B80CE763C), + UINT64_C(0x00045042B492B949), UINT64_C(0x000135B01953B25D), + UINT64_C(0x000564A958658405), UINT64_C(0x00073391FC7A30CF), + UINT64_C(0x00051DA995FAF2AC), UINT64_C(0x00008899D026CFE6)}, + {UINT64_C(0x0002EF92641119A3), UINT64_C(0x0007CFCD3D8E8348), + UINT64_C(0x000251D519AA1667), UINT64_C(0x0007524C025888AD), + UINT64_C(0x0002847F5CB47F5C), UINT64_C(0x0000C637101A1799), + UINT64_C(0x000684496C314774), UINT64_C(0x0005DF9F71863B37), + UINT64_C(0x0003099895A2F373), UINT64_C(0x0000333CA2E94544)}}, + {{UINT64_C(0x00070CCF02ECB2CC), UINT64_C(0x000105EF4D0A506E), + UINT64_C(0x00007BF7A4DE2CA0), UINT64_C(0x0006DAB36E4422DE), + UINT64_C(0x0005261AD9D05DF0), UINT64_C(0x000C9FCA9FCF1803), + UINT64_C(0x00077F743B9F8F4A), UINT64_C(0x00054F8CFD871DBE), + UINT64_C(0x00008369A88F23E3), UINT64_C(0x0004DE24D800793E)}, + {UINT64_C(0x00080D00BBD99113), UINT64_C(0x000705E433C3D50A), + UINT64_C(0x0000CC78397E7790), UINT64_C(0x00033741085A403B), + UINT64_C(0x0006E31F0AE64239), UINT64_C(0x0004B8AE3CC6DEFC), + UINT64_C(0x0007FC3C4D4BFA22), UINT64_C(0x0005A85FF42BA85E), + UINT64_C(0x0005E2879D483F75), UINT64_C(0x000111B21C595B57)}}, + {{UINT64_C(0x000B69E54FB31425), UINT64_C(0x0007670DB77E68C9), + UINT64_C(0x000200548E67C390), UINT64_C(0x0007E58E7DA1316B), + UINT64_C(0x00065C0A1A2EC1E9), UINT64_C(0x000566CC8A93BAED), + UINT64_C(0x00034140BA9D29BD), UINT64_C(0x00066D8BC0434EC9), + UINT64_C(0x000545F0A0BE9D95), UINT64_C(0x0005D43571D5259A)}, + {UINT64_C(0x000CB66450379E4A), UINT64_C(0x0002EA896E3D63C2), + UINT64_C(0x0000A1CBC3C15620), UINT64_C(0x0004F3A6795DCE0B), + UINT64_C(0x0007A3F6DAC83AC6), UINT64_C(0x0005EC06F01B9BAD), + UINT64_C(0x0006468A896619D3), UINT64_C(0x0003C2FAACC2C60B), + UINT64_C(0x0006858F9F24FF57), UINT64_C(0x00011A6265D8A36E)}}, + {{UINT64_C(0x00041C66E40F1A90), UINT64_C(0x0004E4F0180E78EF), + UINT64_C(0x0003FB530CA47EAF), UINT64_C(0x0007ABB19E0A2FA0), + UINT64_C(0x00041ABDD6CB403F), UINT64_C(0x000DAB4EEE08EF52), + UINT64_C(0x00023FC4E743BC92), UINT64_C(0x0005B913456A7476), + UINT64_C(0x0001C85ADE3AC4F1), UINT64_C(0x0004C1EA18C4581B)}, + {UINT64_C(0x000AC8C9F1F7F0A6), UINT64_C(0x0007E11A1C557ED2), + UINT64_C(0x0000E1E16CCE15D8), UINT64_C(0x000132838704418A), + UINT64_C(0x0002E6AFA3B1E448), UINT64_C(0x000D76FF3FBC3F61), + UINT64_C(0x00015097A2812475), UINT64_C(0x0000F295A5BC66CB), + UINT64_C(0x0002FF9986FD6334), UINT64_C(0x000792181517F379)}}, + {{UINT64_C(0x000593BFA181F4DE), UINT64_C(0x00076E78859CC727), + UINT64_C(0x0000768CDCBCFB1D), UINT64_C(0x0002B147828E8906), + UINT64_C(0x0004D189BBDFAF3E), UINT64_C(0x000F4188F2DE5620), + UINT64_C(0x0005541E2603D86E), UINT64_C(0x00068B0163E24EF2), + UINT64_C(0x000732F7A222EC67), UINT64_C(0x00030102005758D0)}, + {UINT64_C(0x000965B8766CC610), UINT64_C(0x0006CED5C6750EC9), + UINT64_C(0x0002510890A11A94), UINT64_C(0x00050A335E380C21), + UINT64_C(0x0002D3AAA4B5ABB1), UINT64_C(0x000C3DEBF83FD12E), + UINT64_C(0x00042A5B613A963D), UINT64_C(0x00048A5474D5B2CC), + UINT64_C(0x0006DBC324E377DF), UINT64_C(0x0004A450113CC47F)}}, + {{UINT64_C(0x00082FD2D666BA94), UINT64_C(0x000307B3C69374F1), + UINT64_C(0x00030E4DCCADA50B), UINT64_C(0x00025121DD5AF46E), + UINT64_C(0x0005DAE113DE717D), UINT64_C(0x000F540F6A242AF7), + UINT64_C(0x0001984B2DEE5FE8), UINT64_C(0x000751006703C07F), + UINT64_C(0x0003C4BED0C06C42), UINT64_C(0x0006834E2CFEAF97)}, + {UINT64_C(0x00079EF331F8BE0C), UINT64_C(0x0006C58FB2C0D852), + UINT64_C(0x000642C225B2131C), UINT64_C(0x0003F1F2DD654AF1), + UINT64_C(0x0003F6D400299A16), UINT64_C(0x000A1D524B709913), + UINT64_C(0x0007F61D15FA8CD7), UINT64_C(0x00007D279176192A), + UINT64_C(0x0004CB0573788091), UINT64_C(0x00017B43566C1463)}}, + {{UINT64_C(0x0007A50D58E645CD), UINT64_C(0x000717BFEFCEFD32), + UINT64_C(0x00021533C2082002), UINT64_C(0x0000B6C97BE84215), + UINT64_C(0x0003D9526234147F), UINT64_C(0x000736AFD37F86C3), + UINT64_C(0x0001446C15A309FC), UINT64_C(0x00049F6A2E32732D), + UINT64_C(0x0005A7F6B6BD0310), UINT64_C(0x00049050A86F7F6E)}, + {UINT64_C(0x000478A084486F70), UINT64_C(0x0004B485E454FFE6), + UINT64_C(0x00005134AC546D22), UINT64_C(0x00045EC4A7C0DB13), + UINT64_C(0x0003AB8CCE7A0B15), UINT64_C(0x000601A238F1B5B3), + UINT64_C(0x00063D63F830D881), UINT64_C(0x0000F2D0A86F5488), + UINT64_C(0x00077A07AB5A6307), UINT64_C(0x0001A0E97FE656C5)}}, + {{UINT64_C(0x0002B8E72C38FDE6), UINT64_C(0x0001650DDE9F2E2E), + UINT64_C(0x00028EF99CEB5566), UINT64_C(0x00041C64DDA06D6A), + UINT64_C(0x00005CB89B26AD37), UINT64_C(0x000A5F15A5F8AF03), + UINT64_C(0x00025505F3937C0E), UINT64_C(0x000159B4CD9043F4), + UINT64_C(0x000343C00F6BA0DB), UINT64_C(0x00047E9671AB1CFB)}, + {UINT64_C(0x0007DE9E2086ECD6), UINT64_C(0x0000A7B07155978A), + UINT64_C(0x00026C99DCA72BC9), UINT64_C(0x0004F4F2C6EB2ED1), + UINT64_C(0x00074C9CE7C64240), UINT64_C(0x000A4D876B2764B2), + UINT64_C(0x0005394454615D25), UINT64_C(0x000481776CCE078B), + UINT64_C(0x000186A538247AB1), UINT64_C(0x000333D9943B1146)}}, + {{UINT64_C(0x00084973CEDC2791), UINT64_C(0x0002950F48F39EEB), + UINT64_C(0x0000EF6F70D1EFF2), UINT64_C(0x0004D3D6FD70FEAF), + UINT64_C(0x000638ED86C3A27D), UINT64_C(0x000F9B23D52DAEF5), + UINT64_C(0x0007DCA2C6212A71), UINT64_C(0x0003A72278C541D8), + UINT64_C(0x0000D206D53E4F6B), UINT64_C(0x0007CC2FD213C6D8)}, + {UINT64_C(0x0009C9835F59129E), UINT64_C(0x0007F4A22C2FB8AC), + UINT64_C(0x0000EB9FBBDAB0AF), UINT64_C(0x000397BE0B58FC49), + UINT64_C(0x0000D58A5D14AA83), UINT64_C(0x000CBCDEEF3C688F), + UINT64_C(0x0007F56D84202AE6), UINT64_C(0x0001AACDE92E0055), + UINT64_C(0x0006A0198A5DD4EF), UINT64_C(0x00009072B8CFBB20)}}, + {{UINT64_C(0x000F7FEC5A5D3591), UINT64_C(0x0003CC91186CC1D7), + UINT64_C(0x0000539F22D56CB3), UINT64_C(0x00014418785A7E75), + UINT64_C(0x0007DD55510142B3), UINT64_C(0x00027C9298FBB5F7), + UINT64_C(0x0002E6839156F4F1), UINT64_C(0x00006806E7AF3BDD), + UINT64_C(0x00017FEEBFA3E11C), UINT64_C(0x0005E3B668C8CF1E)}, + {UINT64_C(0x0002E308DB4D3ABB), UINT64_C(0x0002519214DBB309), + UINT64_C(0x00053F1D5795FB73), UINT64_C(0x00006C5A6BA835DE), + UINT64_C(0x0007282B5833FF0C), UINT64_C(0x0007CA1C54F0B679), + UINT64_C(0x00067F8A25FBF269), UINT64_C(0x00006A247708AB5B), + UINT64_C(0x000271FDD248BDC5), UINT64_C(0x00001617D43FC96F)}}, + {{UINT64_C(0x000530DC05A439D4), UINT64_C(0x0002C89DF13D212F), + UINT64_C(0x00006CD963D870CE), UINT64_C(0x00070E6A17E094DF), + UINT64_C(0x0005335D7B440052), UINT64_C(0x0005D20A7FC5B6E6), + UINT64_C(0x0000816C1BD2E991), UINT64_C(0x00015BFD4D6A50B8), + UINT64_C(0x000611290ED60372), UINT64_C(0x000252141FDE02E6)}, + {UINT64_C(0x000EE270D2D5D91D), UINT64_C(0x00064864D00DF773), + UINT64_C(0x0002CDF8C5BDD29E), UINT64_C(0x0004B4D19D843238), + UINT64_C(0x0001E7349DF960FB), UINT64_C(0x000AB7E45A9B26DB), + UINT64_C(0x0002D5282F6EE449), UINT64_C(0x0004F9B215872CD1), + UINT64_C(0x0002F931EDC40DD7), UINT64_C(0x0004C76A77256A9F)}}, + {{UINT64_C(0x0006A781358C169E), UINT64_C(0x000093BAB2A31F43), + UINT64_C(0x0002C0B13C7E6C0A), UINT64_C(0x00035E6DBE645073), + UINT64_C(0x00027A3CF6B52BB2), UINT64_C(0x0007090F7CD7F0B6), + UINT64_C(0x00049B2C3B592E30), UINT64_C(0x0002359164A5EB6A), + UINT64_C(0x0004DC6C9A544458), UINT64_C(0x0007423068D875B5)}, + {UINT64_C(0x00059D79EBA27F83), UINT64_C(0x0005D19F0CBC111F), + UINT64_C(0x000753952EB35496), UINT64_C(0x00062897B4108C18), + UINT64_C(0x0006D7F09D866E46), UINT64_C(0x0005897E202402FA), + UINT64_C(0x0001D12E39D2981C), UINT64_C(0x0004D1F9BD50FDDC), + UINT64_C(0x00060754737FA4EC), UINT64_C(0x0004B66C109681C2)}}, + {{UINT64_C(0x00091EB3450A8B6F), UINT64_C(0x0006E67784D11649), + UINT64_C(0x00052A0A75E83A4C), UINT64_C(0x0000C7EF54A33FAB), + UINT64_C(0x0007E4B1F177CCAC), UINT64_C(0x000B1572C584C7B2), + UINT64_C(0x0003F88F3DDE8AF6), UINT64_C(0x00055A76B8A9FEC4), + UINT64_C(0x0004D726D797ABF3), UINT64_C(0x000063A37056B2C1)}, + {UINT64_C(0x000BEC5B8D4113B1), UINT64_C(0x0004AF1E78531E4F), + UINT64_C(0x0003A706B01EA69E), UINT64_C(0x000114C7197A503E), + UINT64_C(0x00068D6405B730D6), UINT64_C(0x00037F60FB050D8E), + UINT64_C(0x0002625FCDD6414D), UINT64_C(0x0000A66900D00C7B), + UINT64_C(0x0007AADE957078F1), UINT64_C(0x000708B1373BF752)}}, + }, + { + {{UINT64_C(0x000C3BAB92C31CE5), UINT64_C(0x00002134ECD1DE22), + UINT64_C(0x000610E7706C8F42), UINT64_C(0x0004D37D742251A7), + UINT64_C(0x0003F0AD3A1A8A28), UINT64_C(0x0005B53175168302), + UINT64_C(0x0007812CA56B0662), UINT64_C(0x0006DBA3FECD0E65), + UINT64_C(0x000488903D3A2C5C), UINT64_C(0x000356F226A3070C)}, + {UINT64_C(0x000C6272379969A8), UINT64_C(0x000030E999753799), + UINT64_C(0x00006FA2FD45CF73), UINT64_C(0x0005B8B69287AF76), + UINT64_C(0x0005213C07A81179), UINT64_C(0x0008D822B335452D), + UINT64_C(0x000011E080D0121B), UINT64_C(0x000337047AED499C), + UINT64_C(0x0005F3F0DAE82068), UINT64_C(0x000287D13EDC6853)}}, + {{UINT64_C(0x000890BAE3CD0A60), UINT64_C(0x0007CFCB31DC10E6), + UINT64_C(0x00042A0AD557A444), UINT64_C(0x0005E3E8DEDD318E), + UINT64_C(0x0004B768FB3B1B2D), UINT64_C(0x000A74BE0F89CA10), + UINT64_C(0x0003022817A331F0), UINT64_C(0x000398531778D3CE), + UINT64_C(0x0003F92B536499CA), UINT64_C(0x00039BBC19367C44)}, + {UINT64_C(0x0003D17E79CF10DA), UINT64_C(0x00041C136308597C), + UINT64_C(0x0001C7CFCC962C3F), UINT64_C(0x0005F7010BF5A11D), + UINT64_C(0x00018E8314AB3E4C), UINT64_C(0x000B784160490F36), + UINT64_C(0x00002C72D731F23C), UINT64_C(0x00059E1083EF050E), + UINT64_C(0x00029D7C307711F7), UINT64_C(0x00028978EEF174D0)}}, + {{UINT64_C(0x0000B2EDE471ED48), UINT64_C(0x00049FF7F87A8FDE), + UINT64_C(0x000407DAC8E66330), UINT64_C(0x00017A99137DCD53), + UINT64_C(0x000413D5BA8A3E49), UINT64_C(0x00069E2849ED7ACF), + UINT64_C(0x00011A49582E3C16), UINT64_C(0x0003EF82C8E245ED), + UINT64_C(0x0002209E0B7EA09E), UINT64_C(0x000640B26788B817)}, + {UINT64_C(0x000FB77EC4895293), UINT64_C(0x000521EE12FEC7C5), + UINT64_C(0x0006B87272F0F4BE), UINT64_C(0x000743571A70D3FA), + UINT64_C(0x00012A853508E676), UINT64_C(0x000C8E90D720C744), + UINT64_C(0x0004E53325BF55D5), UINT64_C(0x00022141D2FC04DE), + UINT64_C(0x0002C08E37CCB8A9), UINT64_C(0x0005B2FF2928CA19)}}, + {{UINT64_C(0x00093112664E6955), UINT64_C(0x000318FAC599B3B0), + UINT64_C(0x0004E86FFA5DC372), UINT64_C(0x00011CEA6B7ED8B5), + UINT64_C(0x00032C5BB4D4B3E4), UINT64_C(0x00012FAB789556A8), + UINT64_C(0x0005FD6D51C50C39), UINT64_C(0x0001F53B8DF4EB2C), + UINT64_C(0x0003DC5A71DF97A9), UINT64_C(0x000202CBFD6A2695)}, + {UINT64_C(0x000A8D3B3805ED4E), UINT64_C(0x0006E97BF7B19A75), + UINT64_C(0x000020C8EF1A157A), UINT64_C(0x0000DDAD96ECC141), + UINT64_C(0x000634B69890E950), UINT64_C(0x000BCFBDA6464E18), + UINT64_C(0x00057A50EC40E5E7), UINT64_C(0x000369C5C34E75A1), + UINT64_C(0x0001DDDA57109D52), UINT64_C(0x000109C8DA359727)}}, + {{UINT64_C(0x000DC858E40E2D09), UINT64_C(0x0006583010E4FCF5), + UINT64_C(0x0005616E9FBECEE8), UINT64_C(0x0004CC7EC96FFCA8), + UINT64_C(0x0005436EDC94F6C0), UINT64_C(0x0001BFB47EC04EC2), + UINT64_C(0x000353148F9B2046), UINT64_C(0x0002E68773E2D458), + UINT64_C(0x000128904A0917E3), UINT64_C(0x0007E5A730228042)}, + {UINT64_C(0x000447DEFB88BB4F), UINT64_C(0x00012D87179A012D), + UINT64_C(0x0002379DFC6577E4), UINT64_C(0x000646EB1BA5867E), + UINT64_C(0x0004927A6707CB7F), UINT64_C(0x000F2F4B5DD2C056), + UINT64_C(0x000148E5C0EB9590), UINT64_C(0x000022E829ADA8D2), + UINT64_C(0x00066C299B36127A), UINT64_C(0x000208ACAE17BA18)}}, + {{UINT64_C(0x0003FD0BE2AFDA6A), UINT64_C(0x00079A3A05AFE09A), + UINT64_C(0x00024431B9238AF6), UINT64_C(0x000196CDCEEABC5D), + UINT64_C(0x0005CD6BA856B384), UINT64_C(0x0003376ABB9C7D13), + UINT64_C(0x0000E28403D233B1), UINT64_C(0x0001E3E601F20B20), + UINT64_C(0x000553A7F33316D7), UINT64_C(0x00077A41CF9D1895)}, + {UINT64_C(0x00018114833694B4), UINT64_C(0x00066ACE25DEC0AC), + UINT64_C(0x000000AD04607BBE), UINT64_C(0x0001C2BBD9D88ED5), + UINT64_C(0x000207EF8CDA325D), UINT64_C(0x0008C36267211FB6), + UINT64_C(0x0004148ABE972485), UINT64_C(0x00032559C1C5BC5F), + UINT64_C(0x0000D7CC34EB0616), UINT64_C(0x0006CFEBFC675164)}}, + {{UINT64_C(0x0006391786A18B11), UINT64_C(0x00072B22981C2BBC), + UINT64_C(0x00064B2DCDABB7B4), UINT64_C(0x000307055034DD3A), + UINT64_C(0x00051C4CAE5629B9), UINT64_C(0x0007AAF27949F035), + UINT64_C(0x0002346889D53C01), UINT64_C(0x0006F67E4A19CA62), + UINT64_C(0x000331666606352F), UINT64_C(0x0005374DF049C2AC)}, + {UINT64_C(0x0002B2B3139457D6), UINT64_C(0x000351A98E4D4EB2), + UINT64_C(0x0003DC00C4EBC1E7), UINT64_C(0x00017CA9107B252F), + UINT64_C(0x0007D9A4523CFBEB), UINT64_C(0x00037F677495611A), + UINT64_C(0x00032ACDFB65FA6E), UINT64_C(0x000005C03EBCCAC4), + UINT64_C(0x00044D67340F21A9), UINT64_C(0x0006F83F5FED3656)}}, + {{UINT64_C(0x000E79AA3546F16F), UINT64_C(0x0000A94AF4903B11), + UINT64_C(0x0005BFBC2B88E83A), UINT64_C(0x0001616214CA6D22), + UINT64_C(0x0002F33B14AC87D4), UINT64_C(0x000DC3668AC17EC3), + UINT64_C(0x0003F9A5CD0FA18C), UINT64_C(0x00012136A765687B), + UINT64_C(0x000477263FD5ADD5), UINT64_C(0x00047574A89B0A9F)}, + {UINT64_C(0x00086FD1F3EC5E19), UINT64_C(0x0001A0517754F902), + UINT64_C(0x0003FBB71A4EF414), UINT64_C(0x00060C166C23D6D5), + UINT64_C(0x0003CB4401A452C9), UINT64_C(0x00084139B2A26F87), + UINT64_C(0x000194184853F0AF), UINT64_C(0x000725C3E883547A), + UINT64_C(0x00007311B46CFE9E), UINT64_C(0x0006272C00057E36)}}, + {{UINT64_C(0x00091526FAFA38D9), UINT64_C(0x00013C7B17BEB483), + UINT64_C(0x0005FBC53CC1E78B), UINT64_C(0x0000C1040CBB5D8E), + UINT64_C(0x0003A0AF18FC9ADE), UINT64_C(0x0007BC9B9B737A51), + UINT64_C(0x00058EAEC3E9FED9), UINT64_C(0x0000D346CF710790), + UINT64_C(0x0003BE2B75105FA1), UINT64_C(0x0004D079255CE7B8)}, + {UINT64_C(0x00006C7D92D0825D), UINT64_C(0x00027A8C0386749E), + UINT64_C(0x0001C5B09D0FC792), UINT64_C(0x0002C2B760A9C963), + UINT64_C(0x0001524437DB7579), UINT64_C(0x0001B37F4B60ABD4), + UINT64_C(0x0007FE579406D534), UINT64_C(0x0002739C0C35BD00), + UINT64_C(0x00051086E45FFF04), UINT64_C(0x0003F4C9935FE354)}}, + {{UINT64_C(0x0004E5D268BD8A83), UINT64_C(0x000377586FC26AA0), + UINT64_C(0x00030113A02CBC64), UINT64_C(0x000692EB25CA12F0), + UINT64_C(0x0001A47E293F9D79), UINT64_C(0x000DD2612D416AA9), + UINT64_C(0x00019FAC853D7BDD), UINT64_C(0x00001B9C4E8811EC), + UINT64_C(0x000164570C0AABCB), UINT64_C(0x0002DBCACCC287E8)}, + {UINT64_C(0x00027EADFBCEA391), UINT64_C(0x000406BA866FB97C), + UINT64_C(0x000250E70AA28457), UINT64_C(0x0000CE5D6B77F502), + UINT64_C(0x0007E1FE982DC604), UINT64_C(0x00077DC8CD9AEDE3), + UINT64_C(0x0006EECC4E8C56CC), UINT64_C(0x000529E001D51C07), + UINT64_C(0x0000D42CF53B5E54), UINT64_C(0x00059F46F2041F90)}}, + {{UINT64_C(0x000A993579C46A7C), UINT64_C(0x0003FADB3C50214A), + UINT64_C(0x0007552587801072), UINT64_C(0x00008E9ED9922E64), + UINT64_C(0x0001D65D1FE863B0), UINT64_C(0x000B68B2D984977E), + UINT64_C(0x00026F8BCC4EF71E), UINT64_C(0x0004580D2CF9C07C), + UINT64_C(0x0005F7DB9F7C5608), UINT64_C(0x00039723A14ADB8F)}, + {UINT64_C(0x0001FC8374852517), UINT64_C(0x0004EFCD85E78688), + UINT64_C(0x0005BA5C6E340E04), UINT64_C(0x0002AD5541C4F7E0), + UINT64_C(0x0007AFEAD74D7911), UINT64_C(0x000772EEA94A657C), + UINT64_C(0x000372BB0B3340C5), UINT64_C(0x0002DFFC3FE428C3), + UINT64_C(0x0007780B19634458), UINT64_C(0x000396C2E8AD8E1B)}}, + {{UINT64_C(0x000A0DC2AEA8D665), UINT64_C(0x000497C1A0EAAB74), + UINT64_C(0x00034918630C5E96), UINT64_C(0x00021960961A8492), + UINT64_C(0x00056059C4ACA995), UINT64_C(0x000FDDE1D84A2BCA), + UINT64_C(0x0003E28D6D947C37), UINT64_C(0x00059FA17EA39CB1), + UINT64_C(0x0002B2B829872434), UINT64_C(0x0001AD4DAEAA9FE2)}, + {UINT64_C(0x000F2E4853E5AF32), UINT64_C(0x0004693D39964BD6), + UINT64_C(0x0006A84B327FFE47), UINT64_C(0x0002F3C1238E197A), + UINT64_C(0x0003790974398BDF), UINT64_C(0x000FF31F3581AF07), + UINT64_C(0x0004C239726330EE), UINT64_C(0x0002C366AFC8A963), + UINT64_C(0x0005B30D24500CBF), UINT64_C(0x0007D9C6B29592A1)}}, + {{UINT64_C(0x000E71DDD57E8296), UINT64_C(0x000346C03100FF87), + UINT64_C(0x00046A920C6C7EF3), UINT64_C(0x00017883AE0679DA), + UINT64_C(0x0007371362C409A2), UINT64_C(0x0003F3FD0398532B), + UINT64_C(0x00047C47A292C97E), UINT64_C(0x0003E20A94F0DAB2), + UINT64_C(0x000615A39700E27A), UINT64_C(0x0004DD4F52D80B70)}, + {UINT64_C(0x000D8189C3E7FF9B), UINT64_C(0x0006A323F12ACCE3), + UINT64_C(0x000218561CEBE916), UINT64_C(0x000582DFFA5B6244), + UINT64_C(0x00017E86803253FE), UINT64_C(0x000F6E066437E671), + UINT64_C(0x00003379D07B3571), UINT64_C(0x00028E80792D0F88), + UINT64_C(0x0003ADB5E00F7D48), UINT64_C(0x0004490947B64CC1)}}, + {{UINT64_C(0x000966BA117EB5A0), UINT64_C(0x0003EAD0F9635F78), + UINT64_C(0x0001127434D7F565), UINT64_C(0x000166F7EFE73A42), + UINT64_C(0x0006E1EB3EE2C95B), UINT64_C(0x0002169A44ADD28F), + UINT64_C(0x0007D099F80F5E40), UINT64_C(0x00001673EEDC2717), + UINT64_C(0x0006D35CE7C87042), UINT64_C(0x0001F1659FA895C4)}, + {UINT64_C(0x0000CDA418AFEEA2), UINT64_C(0x00022BB4CD3D78EA), + UINT64_C(0x0007CCB3C8415D6C), UINT64_C(0x00072FAD0144A08F), + UINT64_C(0x0006AD7BD312743A), UINT64_C(0x0009717E7E313571), + UINT64_C(0x00030507C307B184), UINT64_C(0x00037E8A184867EE), + UINT64_C(0x0005A0F950ED5715), UINT64_C(0x00035FB26907AA86)}}, + {{UINT64_C(0x00087069CFCD15C6), UINT64_C(0x0005E74CAE8DD69A), + UINT64_C(0x00077415248EC6CF), UINT64_C(0x00039CFB19D98136), + UINT64_C(0x0004102ADA4617F0), UINT64_C(0x00091344A9950D43), + UINT64_C(0x0007F37FAA893404), UINT64_C(0x0000894C6ED07059), + UINT64_C(0x0001CBD2D8C191AE), UINT64_C(0x0005E7D0A8D6C1FB)}, + {UINT64_C(0x000D8A6DCD86A648), UINT64_C(0x00069DFB00FAC67A), + UINT64_C(0x00055E4E4A8BF53E), UINT64_C(0x00052C3F21F19F1A), + UINT64_C(0x000199681E75B076), UINT64_C(0x000B461379ABA50E), + UINT64_C(0x00027C35B013932E), UINT64_C(0x0003E43D98DC3C8B), + UINT64_C(0x0005299D0D27C3FF), UINT64_C(0x000501003FB5C76B)}}, + {{UINT64_C(0x0002584D9F215747), UINT64_C(0x0007BE751EE9975B), + UINT64_C(0x0006739CFFA040AB), UINT64_C(0x00021F693AB51286), + UINT64_C(0x0004378F5B99BA03), UINT64_C(0x00092021DCD03E29), + UINT64_C(0x00029C3D833529D1), UINT64_C(0x0003218DAA201C66), + UINT64_C(0x00068DD2830252B2), UINT64_C(0x0000C547881361FE)}, + {UINT64_C(0x0004DA1DDF2727C5), UINT64_C(0x000141088C10F286), + UINT64_C(0x00033EFA65C7AD64), UINT64_C(0x000309E225C521F2), + UINT64_C(0x000165C50DA477FD), UINT64_C(0x0006A39D52AC02AF), + UINT64_C(0x000583FDD7E42212), UINT64_C(0x00049409EBFF68E5), + UINT64_C(0x0003F0AC36D8B5F7), UINT64_C(0x0007F9BFC22F82AF)}}, + }, + { + {{UINT64_C(0x0002372DBC024334), UINT64_C(0x0003AC04780C37E6), + UINT64_C(0x0000B462B14E1199), UINT64_C(0x000789AB88A9152C), + UINT64_C(0x0004669A83086007), UINT64_C(0x0002875233E2BB95), + UINT64_C(0x000164D14E6DD133), UINT64_C(0x0007834C96D7F2E1), + UINT64_C(0x0000376AF8A1FB72), UINT64_C(0x00025E655DD42C55)}, + {UINT64_C(0x000BC3F8D59BD4F8), UINT64_C(0x0004295AE12759FE), + UINT64_C(0x0001710B8788649D), UINT64_C(0x00063FB5252144E8), + UINT64_C(0x0000FB67B48BFB15), UINT64_C(0x000EF2243C620B1A), + UINT64_C(0x00043471BAB61989), UINT64_C(0x000297865EB6854C), + UINT64_C(0x00041EC649B840B6), UINT64_C(0x0000DBB860FE03FD)}}, + {{UINT64_C(0x000F3F668337995A), UINT64_C(0x0000D23F1A076787), + UINT64_C(0x000559B19C7D6F35), UINT64_C(0x0001F5D63B1D816A), + UINT64_C(0x0004919133B61F8E), UINT64_C(0x00031862225D9C14), + UINT64_C(0x0003C6604EA7EF2F), UINT64_C(0x00062AF2D864BE9B), + UINT64_C(0x0004E75593316CB0), UINT64_C(0x0006270C9215DEE8)}, + {UINT64_C(0x00079DDB43AE991A), UINT64_C(0x0000D9D288C5279D), + UINT64_C(0x00010A5CE9E2122D), UINT64_C(0x0006627C1899977C), + UINT64_C(0x0004545C3F73568F), UINT64_C(0x00041DA4E722FDD7), + UINT64_C(0x0001D1CA3BA6C0E4), UINT64_C(0x000154DDB8B11262), + UINT64_C(0x00076A8BBB916CBA), UINT64_C(0x000264F61CEB449C)}}, + {{UINT64_C(0x000C03E88F01C0CF), UINT64_C(0x0002DE2458CBF5D8), + UINT64_C(0x00059AB57877E3A8), UINT64_C(0x000022BA99E9FF36), + UINT64_C(0x0006E3D7F3651BA4), UINT64_C(0x00091A76C49112C9), + UINT64_C(0x00033BFF09F31D44), UINT64_C(0x00037DF6585ECCB8), + UINT64_C(0x00031E08F635DFAB), UINT64_C(0x00061B6BEEA111BC)}, + {UINT64_C(0x000EC7C8AED31D53), UINT64_C(0x0001C2D420733AED), + UINT64_C(0x00028A0A574AB6AC), UINT64_C(0x0000C07A2A7F50B8), + UINT64_C(0x000146FAE597AF65), UINT64_C(0x000BFB422415D9A7), + UINT64_C(0x0003B3FAF595D88B), UINT64_C(0x00016FABFA94B1DD), + UINT64_C(0x00077BD9F4E1A511), UINT64_C(0x0001ED87CB724465)}}, + {{UINT64_C(0x000213F3A12FADCB), UINT64_C(0x00073702A45BFCC2), + UINT64_C(0x00005344B6A0BE9D), UINT64_C(0x0005780B5541C989), + UINT64_C(0x0004689EA1E50219), UINT64_C(0x0005B3C5CE5DF752), + UINT64_C(0x000187B449599429), UINT64_C(0x0004F3F92602410B), + UINT64_C(0x00008266C08FAD01), UINT64_C(0x00006449FDC76A08)}, + {UINT64_C(0x0001290134E207CC), UINT64_C(0x0005FC0BF00CD133), + UINT64_C(0x0005093E94846544), UINT64_C(0x0001904D36A7E4E0), + UINT64_C(0x0006CFB29FCB4C43), UINT64_C(0x00021A5E794AD08A), + UINT64_C(0x00049AF3B74BD0CA), UINT64_C(0x0003D12DD54A42E0), + UINT64_C(0x00020F8191FC6C17), UINT64_C(0x0005271ACF2BEF13)}}, + {{UINT64_C(0x0003973D23C5FC40), UINT64_C(0x00022C79CF716759), + UINT64_C(0x000698E37C807E96), UINT64_C(0x00061499D8A20942), + UINT64_C(0x0003CA6565D1591A), UINT64_C(0x000376C82319132C), + UINT64_C(0x0000AB592C414D58), UINT64_C(0x00078DCD766F3A9F), + UINT64_C(0x000235326903A314), UINT64_C(0x0001C533CF655AFB)}, + {UINT64_C(0x000417ABAE4343FF), UINT64_C(0x0000CC1BEBE8BA73), + UINT64_C(0x00035CFD9C4CD9EB), UINT64_C(0x000525DDECFE78DD), + UINT64_C(0x0004018B732A3EA9), UINT64_C(0x0004158841836B35), + UINT64_C(0x00013A9FC11821AB), UINT64_C(0x0001A62E3E9F6760), + UINT64_C(0x00019D2F382BFC5A), UINT64_C(0x00048B8C5EE1498A)}}, + {{UINT64_C(0x00067BC07969E710), UINT64_C(0x00056FE1647FF971), + UINT64_C(0x00056B9EC60E5571), UINT64_C(0x0004FF5FF4D6D59D), + UINT64_C(0x00048349FDBC6F40), UINT64_C(0x0000EDA3EDA8889B), + UINT64_C(0x0000C724742965C9), UINT64_C(0x0004CA3A42627635), + UINT64_C(0x00047141B8D6F392), UINT64_C(0x0003D2FEDEAA1C29)}, + {UINT64_C(0x000716C803508620), UINT64_C(0x0004F95142A62BB6), + UINT64_C(0x000486FEE8AA4AD7), UINT64_C(0x0007AEE5F2F7D145), + UINT64_C(0x00073A3D7B302EEA), UINT64_C(0x000C31B194B33CB5), + UINT64_C(0x0005E8F7E9DB0F29), UINT64_C(0x00026804A1976839), + UINT64_C(0x000224312A20168B), UINT64_C(0x0004C6397AFDC614)}}, + {{UINT64_C(0x000B366A0560CD66), UINT64_C(0x0005ACD26E6E7D4B), + UINT64_C(0x0001A29126E560EF), UINT64_C(0x00077D0A85F35263), + UINT64_C(0x00066BB4F7909A61), UINT64_C(0x000089487A0F6CA2), + UINT64_C(0x00004201AC59EC89), UINT64_C(0x0003517D862DA268), + UINT64_C(0x0004E06334DCBFC2), UINT64_C(0x000542129BF06EDC)}, + {UINT64_C(0x0009AC6AC40ECFAD), UINT64_C(0x0004A4A6435450F2), + UINT64_C(0x0003884DC2B01CE7), UINT64_C(0x00033DFEBB566E48), + UINT64_C(0x000578290964FDAC), UINT64_C(0x00023B7A353BC889), + UINT64_C(0x0005060A08B7EE8B), UINT64_C(0x0007AB7A129FEBF9), + UINT64_C(0x000546502F940252), UINT64_C(0x0001DBB0164F28EF)}}, + {{UINT64_C(0x00018A4A75F64304), UINT64_C(0x00046FFF5757186A), + UINT64_C(0x000114066ED84642), UINT64_C(0x0002551CC10C6D4D), + UINT64_C(0x000402FACD10897C), UINT64_C(0x00015C0E2DCC992B), + UINT64_C(0x00040E8F0EBF60EE), UINT64_C(0x000060EB6563E9C6), + UINT64_C(0x0003B809A3126313), UINT64_C(0x00017A66BDC55746)}, + {UINT64_C(0x0009062DED579427), UINT64_C(0x00044A5F128A6E10), + UINT64_C(0x000151DC6DCB8F89), UINT64_C(0x000141A87B41F52E), + UINT64_C(0x0000D7A6A002BD72), UINT64_C(0x000E8B9C9303AC1F), + UINT64_C(0x0001834AD28690AA), UINT64_C(0x00032ADCC504A8B7), + UINT64_C(0x0000A927B2B2E93B), UINT64_C(0x0002A737885EE993)}}, + {{UINT64_C(0x0006BCF992E8B9F6), UINT64_C(0x00040A05E593A37A), + UINT64_C(0x0003A56755FA1A2F), UINT64_C(0x0003C89364FAE34E), + UINT64_C(0x0007E77DBC3D88C6), UINT64_C(0x0002ED2A5FAC8E6E), + UINT64_C(0x0005FAFA89C46962), UINT64_C(0x0004DBFA31641429), + UINT64_C(0x0000DB79C8D1176F), UINT64_C(0x00019941D0C3522A)}, + {UINT64_C(0x00041A75E1C8E526), UINT64_C(0x0004C6B783802833), + UINT64_C(0x0001B562BAFECB1F), UINT64_C(0x0003E09662D4B955), + UINT64_C(0x00036C04E510554C), UINT64_C(0x000E4C0F87B4805F), + UINT64_C(0x00073B95C41A7C5A), UINT64_C(0x00010377BD353B8C), + UINT64_C(0x0000E2A301E84DD8), UINT64_C(0x0004AA08670DB7E8)}}, + {{UINT64_C(0x00056A0D36E91A81), UINT64_C(0x0007AE104EAE22F7), + UINT64_C(0x000377C28F77E9A6), UINT64_C(0x00077E662A50D752), + UINT64_C(0x0000806A44DC69B2), UINT64_C(0x0007C6E8FEC3651E), + UINT64_C(0x0003B809BA19FDFE), UINT64_C(0x0002B748E1AF6B23), + UINT64_C(0x00013D51330F00A4), UINT64_C(0x000054847211A69E)}, + {UINT64_C(0x00012FB021D29481), UINT64_C(0x0006FA2B27174477), + UINT64_C(0x0003C6438378319E), UINT64_C(0x0000FFD2B056F1C6), + UINT64_C(0x0004D77E75145534), UINT64_C(0x00020A7895D994A3), + UINT64_C(0x0003166E20D7EAB2), UINT64_C(0x0006B6D0CB136A52), + UINT64_C(0x0002B5C30551AFC3), UINT64_C(0x00068443D6142CD4)}}, + {{UINT64_C(0x000408A9351DFB46), UINT64_C(0x0006B998F97E7968), + UINT64_C(0x0005B54EB77BAE87), UINT64_C(0x0001D1547584B3F6), + UINT64_C(0x0000DEC5666F2759), UINT64_C(0x00097223408D9F44), + UINT64_C(0x0004E4F55A177F66), UINT64_C(0x000008514532470B), + UINT64_C(0x0000856C14AE04B3), UINT64_C(0x00061CA70F3895B4)}, + {UINT64_C(0x000253C057F4BB69), UINT64_C(0x0001163F0D6F162A), + UINT64_C(0x00016E781BFFB4F3), UINT64_C(0x0001F13813403F57), + UINT64_C(0x000720EC959BE2A5), UINT64_C(0x00004CAD26FC8BC3), + UINT64_C(0x0004430E9FD18B54), UINT64_C(0x000127BC205199CF), + UINT64_C(0x0006E3D5CCB5D82C), UINT64_C(0x0002C08FFC17839E)}}, + {{UINT64_C(0x00038FAE0545EF38), UINT64_C(0x00053E6BB230EB0F), + UINT64_C(0x0003612B0393816C), UINT64_C(0x00073B82CB17AA32), + UINT64_C(0x000164306BE664B8), UINT64_C(0x0007DECB1BEAB083), + UINT64_C(0x0003ABA14AB6DFEF), UINT64_C(0x0006698C134B72CB), + UINT64_C(0x00048700868CEFB6), UINT64_C(0x0004DC5186706827)}, + {UINT64_C(0x000D284BA53E67E8), UINT64_C(0x0004F1D7F1CDA504), + UINT64_C(0x000763E8AAD17850), UINT64_C(0x0003EE3C7D2B43AB), + UINT64_C(0x0005EDDBD6D373C5), UINT64_C(0x000F6B7396FD7F7F), + UINT64_C(0x0006367A99D09B8F), UINT64_C(0x0001571A1CD21578), + UINT64_C(0x0007236B9994F1FA), UINT64_C(0x00062AA7DCD740A8)}}, + {{UINT64_C(0x000895A1FD8F0DA1), UINT64_C(0x0000940D048284D5), + UINT64_C(0x0007059173020EB7), UINT64_C(0x00034CBCC3643F29), + UINT64_C(0x00054D38DFC9A9C7), UINT64_C(0x00004D0D54222865), + UINT64_C(0x0007AC3D3F2E7588), UINT64_C(0x0004BD1D9A8CC40C), + UINT64_C(0x0004BA573C79363A), UINT64_C(0x0003B77EA3C0F6CE)}, + {UINT64_C(0x0004EA2FC4B8BA7C), UINT64_C(0x0001ADDAEDBD593B), + UINT64_C(0x0007B6AB6C9FFEBE), UINT64_C(0x000246C34D52441A), + UINT64_C(0x000664D1C2133D2A), UINT64_C(0x0005A8FCC6F82245), + UINT64_C(0x0003C821241B7620), UINT64_C(0x0007ABB29F71AC83), + UINT64_C(0x0000126E955FDD3A), UINT64_C(0x000483EA750D326E)}}, + {{UINT64_C(0x0003FD366EBA1606), UINT64_C(0x0002D9ABAF3B8EC5), + UINT64_C(0x00011FB79452ADD0), UINT64_C(0x0004D367D2541244), + UINT64_C(0x00014C5A74A4D2BE), UINT64_C(0x000BD9255862125B), + UINT64_C(0x00053C3CF655527E), UINT64_C(0x000040AA6D6CB56E), + UINT64_C(0x0005F328C422C551), UINT64_C(0x000635823C8498F1)}, + {UINT64_C(0x000B8D2832D1E4F0), UINT64_C(0x0002253CC89289E1), + UINT64_C(0x0004AFE460B4CFA4), UINT64_C(0x00047F33AFB8FB72), + UINT64_C(0x0003147C7881EF17), UINT64_C(0x000B142D32392AC5), + UINT64_C(0x0002DB71D8F10037), UINT64_C(0x000445CB1A7CD1AC), + UINT64_C(0x0005320C19EF8761), UINT64_C(0x0006956661FEB75C)}}, + {{UINT64_C(0x0008A4F6E3E57DAD), UINT64_C(0x00052E3220306CD3), + UINT64_C(0x00016C04A243039F), UINT64_C(0x0006F0BB18CACDCB), + UINT64_C(0x000061BCDE864EC1), UINT64_C(0x00029F6788292DC0), + UINT64_C(0x000022F1DB885727), UINT64_C(0x00058B87F88D42DB), + UINT64_C(0x00067E1B4B34B7CE), UINT64_C(0x00065DB9E57B9F40)}, + {UINT64_C(0x000DB97A65B73FBC), UINT64_C(0x0005DDAD4615047A), + UINT64_C(0x0003254BA8C48789), UINT64_C(0x0007BDDF93DDA4BB), + UINT64_C(0x0002C0DF753CF13C), UINT64_C(0x000F1261EE450629), + UINT64_C(0x0001AFB00BDE3B73), UINT64_C(0x0007AD40F78FD9B6), + UINT64_C(0x000275243D6431D9), UINT64_C(0x000670BF2C9CC698)}}, + {{UINT64_C(0x0009312A3CA8CBBC), UINT64_C(0x0000D499C81D0092), + UINT64_C(0x0001F9D05BE7A579), UINT64_C(0x000262C322C0431E), + UINT64_C(0x00078231853C844C), UINT64_C(0x00046A359E9EA4F7), + UINT64_C(0x000490A7B54A0D2C), UINT64_C(0x0005AAE046C3E758), + UINT64_C(0x00059A6FF1C516DC), UINT64_C(0x0005C2CEC2165D95)}, + {UINT64_C(0x000912BFF9FC238B), UINT64_C(0x0007FEBB522D20DD), + UINT64_C(0x00070A32C9786B85), UINT64_C(0x0003419D9DCB4F51), + UINT64_C(0x0006464E7100B7D1), UINT64_C(0x0001B5E3520C4AE3), + UINT64_C(0x00019B50C7D74FC7), UINT64_C(0x0003ECE80D56DEDC), + UINT64_C(0x00031A0A04910717), UINT64_C(0x0002DC124F80EA68)}}, + }, + { + {{UINT64_C(0x0007FC3E471A068B), UINT64_C(0x0001F9C0BD1E7FDA), + UINT64_C(0x0005B816710E054C), UINT64_C(0x000641A4989CA761), + UINT64_C(0x0005868FBF10DBFA), UINT64_C(0x000AB68C9F619D52), + UINT64_C(0x000610CC30529BEC), UINT64_C(0x000627D1E7BB0ABB), + UINT64_C(0x000312A648EFC13F), UINT64_C(0x000720DB474C9967)}, + {UINT64_C(0x00088A74ECFAC532), UINT64_C(0x0000CA6C465E54E3), + UINT64_C(0x00063BCCC230DDCA), UINT64_C(0x000545133A54D8A3), + UINT64_C(0x000289A2A21D7DAD), UINT64_C(0x00064142FD2154C0), + UINT64_C(0x0000AE8DE8498437), UINT64_C(0x0000FEE6A05C9CA4), + UINT64_C(0x0005A712CADD4BD3), UINT64_C(0x00073C7C0CB9DC7E)}}, + {{UINT64_C(0x00014BC20D8FC866), UINT64_C(0x0001B713C72B026C), + UINT64_C(0x0002BB1B00DD97B0), UINT64_C(0x0003DDF6D5D77C14), + UINT64_C(0x0000018D34DBE288), UINT64_C(0x000B37E4BE21CFC1), + UINT64_C(0x00042460ABD75619), UINT64_C(0x00048564EF06DBBE), + UINT64_C(0x0001D0F8F700CFDF), UINT64_C(0x00050BF2E57EF201)}, + {UINT64_C(0x0000E7551324C838), UINT64_C(0x00013E348DFFE7EF), + UINT64_C(0x0005667611C90CF1), UINT64_C(0x00054F8E74F0FE54), + UINT64_C(0x00046065CFEC47E4), UINT64_C(0x00020F5CA7131E31), + UINT64_C(0x00056BCD632BBD22), UINT64_C(0x0004068611AE97FE), + UINT64_C(0x000342E9BF1AE60D), UINT64_C(0x00059284EE40F315)}}, + {{UINT64_C(0x000695C423B1830F), UINT64_C(0x000061319340E99D), + UINT64_C(0x00056EECAD0FDEF4), UINT64_C(0x0001851799B6AF30), + UINT64_C(0x000574BFEEC6CF78), UINT64_C(0x00090695389CAC68), + UINT64_C(0x0004AD41B7692D45), UINT64_C(0x00067399705E0A02), + UINT64_C(0x0004D01C657BFE93), UINT64_C(0x0007AE346F356E78)}, + {UINT64_C(0x0005ED517D1CECA6), UINT64_C(0x0004FA192E057F98), + UINT64_C(0x00028B4C280516A2), UINT64_C(0x0000F57015483B8B), + UINT64_C(0x000381A2B0925CBA), UINT64_C(0x0007EC4E45D3BCA9), + UINT64_C(0x0005E6AE14D94280), UINT64_C(0x00044AA8A233553A), + UINT64_C(0x000188ECFCF3FD6B), UINT64_C(0x00056CD6831AF6A1)}}, + {{UINT64_C(0x000BAD665FBBA51D), UINT64_C(0x0005CE5627119792), + UINT64_C(0x000013618EFFC45B), UINT64_C(0x00059C97725250C5), + UINT64_C(0x00034D2A31C26543), UINT64_C(0x000FC7D8B33901C2), + UINT64_C(0x0004049BB70B6E8C), UINT64_C(0x000298E4AB70ACB4), + UINT64_C(0x00024A67CAB12D0F), UINT64_C(0x0000658DD54DD249)}, + {UINT64_C(0x00018A1BE3CECA73), UINT64_C(0x0007CB9EB76F08C8), + UINT64_C(0x0001B277825030CD), UINT64_C(0x0005EE5C3A83FB88), + UINT64_C(0x000520DD7C104236), UINT64_C(0x0000B4C8EAC628F4), + UINT64_C(0x00067414680C3CBD), UINT64_C(0x000634E9A20A30CC), + UINT64_C(0x0006FCA2CD50A25E), UINT64_C(0x0003207EC54AE849)}}, + {{UINT64_C(0x000A7C2C9FA19751), UINT64_C(0x00032EAC1838C0AE), + UINT64_C(0x000704308B256AC4), UINT64_C(0x0002462B6C4B26A1), + UINT64_C(0x0002E3D83A96467F), UINT64_C(0x000FE8591432EB6A), + UINT64_C(0x0003FD27EAF7B31A), UINT64_C(0x00058F724E26D47B), + UINT64_C(0x00076136F099E12E), UINT64_C(0x000558F5CDCDEAA6)}, + {UINT64_C(0x0006ED04F333B165), UINT64_C(0x000634F9F9299870), + UINT64_C(0x0006E7943903D73C), UINT64_C(0x00005689249D8E40), + UINT64_C(0x00043B4AC0439BF3), UINT64_C(0x000553178FDF6D63), + UINT64_C(0x000439F7375523D2), UINT64_C(0x0005F10CB0346B4A), + UINT64_C(0x00004E0AE314DF84), UINT64_C(0x00069471AB5DFADA)}}, + {{UINT64_C(0x0000E9501E9FAFE7), UINT64_C(0x0001ED4A26197388), + UINT64_C(0x0005CAA03225B2DC), UINT64_C(0x0003498CF6071DD5), + UINT64_C(0x00002CF8D255A84E), UINT64_C(0x000FA75C0885DE81), + UINT64_C(0x00030965CE1A47CB), UINT64_C(0x00011FB194A95BB0), + UINT64_C(0x0004800A95408A73), UINT64_C(0x0002EEA35FCE3212)}, + {UINT64_C(0x00087C5B9DE51934), UINT64_C(0x00036D95402D7411), + UINT64_C(0x00037FB02C63558B), UINT64_C(0x0006A1232CBC6C08), + UINT64_C(0x0005C0E468414E24), UINT64_C(0x0007F99C0CCF2D15), + UINT64_C(0x000094592332F465), UINT64_C(0x0002AB96A524CF72), + UINT64_C(0x0007E87F1D99C378), UINT64_C(0x0000207DD0DD808E)}}, + {{UINT64_C(0x000ECD9FF97D4931), UINT64_C(0x0001D4B8B850BE44), + UINT64_C(0x0006C1F7D66BFB33), UINT64_C(0x000286B0E020CE70), + UINT64_C(0x00057D2D930A9035), UINT64_C(0x000F70CD43EF78D8), + UINT64_C(0x0005595A2E3FB21C), UINT64_C(0x0002B23212C03281), + UINT64_C(0x0006BE2A6AB3CEFB), UINT64_C(0x0007B13ACF77F80E)}, + {UINT64_C(0x000CB860BC601AFD), UINT64_C(0x0006ACF4F99A1471), + UINT64_C(0x0006698A5886492B), UINT64_C(0x000245BF72D02C00), + UINT64_C(0x00067720650A5EB3), UINT64_C(0x000D9E8B3198D8BE), + UINT64_C(0x00072728DEA3F720), UINT64_C(0x0000B079DF1DF966), + UINT64_C(0x000764E77F92B823), UINT64_C(0x00004721437DFB0D)}}, + {{UINT64_C(0x0008C47E3E9972F3), UINT64_C(0x0005F6800BF3F5AC), + UINT64_C(0x00040B8943EC9A82), UINT64_C(0x00018C3DE68795BC), + UINT64_C(0x000798ACD9D5C188), UINT64_C(0x000626A89DFFB9C7), + UINT64_C(0x0000A446A1E585FF), UINT64_C(0x00003F9D6C0F2522), + UINT64_C(0x00045DA3E3E5843E), UINT64_C(0x0001DF8788F4C149)}, + {UINT64_C(0x00002D1EA1F1D567), UINT64_C(0x0007D2CEB46D5CF9), + UINT64_C(0x0000AE8762EDBE19), UINT64_C(0x0004D34041C698A3), + UINT64_C(0x0002249A52FB7AFB), UINT64_C(0x0001AA28A184F6D0), + UINT64_C(0x0004AEDC54AC0233), UINT64_C(0x0001A52FA2FE3789), + UINT64_C(0x000684CDB10852C6), UINT64_C(0x000006A488535FB8)}}, + {{UINT64_C(0x000B69CD208922BD), UINT64_C(0x000113C0A2CDC098), + UINT64_C(0x00034EB1527C9342), UINT64_C(0x0002E33524A72273), + UINT64_C(0x0005D54F4B29D1BB), UINT64_C(0x000935E2895D6B59), + UINT64_C(0x00002467FF51247E), UINT64_C(0x00064A19BE2B9B33), + UINT64_C(0x0000CA9B34B3CC48), UINT64_C(0x0001C1179DC502AF)}, + {UINT64_C(0x00030DD196A35DEC), UINT64_C(0x0004F43012319797), + UINT64_C(0x0003AD2F85C0A8FE), UINT64_C(0x000767B8C3625127), + UINT64_C(0x0007156D91446AF4), UINT64_C(0x000A52B80B684D9E), + UINT64_C(0x000493C29A3C9396), UINT64_C(0x00060B66E8B18710), + UINT64_C(0x00073CE5C6E23F4E), UINT64_C(0x0000C0E9CF09DBEA)}}, + {{UINT64_C(0x000D847204E88E6A), UINT64_C(0x00014392C2DBD5D4), + UINT64_C(0x0003647F5392D642), UINT64_C(0x00005CD6B4397528), + UINT64_C(0x0003CA804BE0E6E6), UINT64_C(0x000AFA2DEBF9BDF0), + UINT64_C(0x0003B70844F7F77A), UINT64_C(0x00055FD54AED8423), + UINT64_C(0x0001E87463CB4E23), UINT64_C(0x0001BCB9D95AA334)}, + {UINT64_C(0x0008AD95903A42F5), UINT64_C(0x0002B77C076B1514), + UINT64_C(0x00004EA8D39728A1), UINT64_C(0x00006196D1EAC34C), + UINT64_C(0x00021AD5CD908FB5), UINT64_C(0x0009231E8FBDFA13), + UINT64_C(0x0006F53F72D12265), UINT64_C(0x0004EEB89634BD92), + UINT64_C(0x000467E16722B0C0), UINT64_C(0x000322B4828C8354)}}, + {{UINT64_C(0x000749D2D2151628), UINT64_C(0x00017DB343621D73), + UINT64_C(0x000165CD9CF505C3), UINT64_C(0x0006EF002B6F7508), + UINT64_C(0x0006A5B3F2EBD640), UINT64_C(0x00088918A6F47361), + UINT64_C(0x00024A4CC1F89F3D), UINT64_C(0x0002A883A0915ACB), + UINT64_C(0x0000B430E4311864), UINT64_C(0x0002E5AFD5631755)}, + {UINT64_C(0x000E6600C23AF414), UINT64_C(0x0004A68A06127530), + UINT64_C(0x0000119CF5DBEFF9), UINT64_C(0x00031BD59339EC9D), + UINT64_C(0x0007AFB0A0652755), UINT64_C(0x0004E54D473D5D91), + UINT64_C(0x0006663BBC911425), UINT64_C(0x00060CD99F4A6814), + UINT64_C(0x0004D70E317492DC), UINT64_C(0x00057C676F34207B)}}, + {{UINT64_C(0x000FA45FEB394F79), UINT64_C(0x0002595780239750), + UINT64_C(0x0006DAEAFB6AF370), UINT64_C(0x0004F71BE680332B), + UINT64_C(0x0007A2B88BEC444F), UINT64_C(0x0006D282845556D8), + UINT64_C(0x0003A48753C8FEB2), UINT64_C(0x0005314A5E71A50D), + UINT64_C(0x00064B67D3BEDF37), UINT64_C(0x00049BB87F9AA6E0)}, + {UINT64_C(0x000F9E3C83D99F56), UINT64_C(0x0002AFD6DA547B1C), + UINT64_C(0x000799EBA75D7647), UINT64_C(0x00017702967C6572), + UINT64_C(0x00036DAA4C258B87), UINT64_C(0x0005BAA7744D42CE), + UINT64_C(0x0006706FA16409C8), UINT64_C(0x0003833BD25E3852), + UINT64_C(0x0005B9B25E71D72C), UINT64_C(0x0000851A32EE02B9)}}, + {{UINT64_C(0x00096C7F5422B60A), UINT64_C(0x0000A451DBBE6CC7), + UINT64_C(0x0004DFB70D71B03F), UINT64_C(0x00047A85B6A73205), + UINT64_C(0x000552D4E655E4A4), UINT64_C(0x00026F31F95A9399), + UINT64_C(0x0001C446539B5383), UINT64_C(0x000544DB6B46DF8B), + UINT64_C(0x0003348ADD036467), UINT64_C(0x0000AA2D0D6935D7)}, + {UINT64_C(0x0007D5B7A1E58219), UINT64_C(0x0004617A5AB605AC), + UINT64_C(0x0006A6AF7E81B995), UINT64_C(0x00042EE78EACBEE0), + UINT64_C(0x00049DD85014D117), UINT64_C(0x0009591FD9314E76), + UINT64_C(0x0005DB569F458EB8), UINT64_C(0x00051D4F2503D183), + UINT64_C(0x00063FBB28BA6AD3), UINT64_C(0x0006D3AC67CC821C)}}, + {{UINT64_C(0x000DB3F243061D75), UINT64_C(0x0006D73931E621F2), + UINT64_C(0x0000B17170E27A4D), UINT64_C(0x00004483B525B3B3), + UINT64_C(0x0000CEC6BF188345), UINT64_C(0x00028C93F5247B6F), + UINT64_C(0x0004A6511A5DEF06), UINT64_C(0x00076B62AEAC63B1), + UINT64_C(0x00074A604ED95C71), UINT64_C(0x00009EFCC184826A)}, + {UINT64_C(0x0008BAC2B060443D), UINT64_C(0x000344E9D3B2EEA9), + UINT64_C(0x00020435D407DCEB), UINT64_C(0x00022E3643D85699), + UINT64_C(0x0001A1F508400E9C), UINT64_C(0x000D7CC9B1AC0494), + UINT64_C(0x0004C1AD9E2EB052), UINT64_C(0x00009FBD9B150459), + UINT64_C(0x000369468497704F), UINT64_C(0x0003FF2AC90D8014)}}, + {{UINT64_C(0x000F26B79E392352), UINT64_C(0x0002B957BF938557), + UINT64_C(0x000715D0978BD2B2), UINT64_C(0x00045531E667D86D), + UINT64_C(0x00038962FCA00EDE), UINT64_C(0x000DC1791F176B3F), + UINT64_C(0x000743403651C9FA), UINT64_C(0x0004ABD020A84523), + UINT64_C(0x0006DECB17845C69), UINT64_C(0x0003DF12469D37F5)}, + {UINT64_C(0x000FA8419C8A9D27), UINT64_C(0x000768869058EE8E), + UINT64_C(0x0000D174A1CB1143), UINT64_C(0x00070F67326B9037), + UINT64_C(0x00026979FA59E935), UINT64_C(0x000F4AA12B6BC96F), + UINT64_C(0x000606751117A342), UINT64_C(0x00047A115AF10FB7), + UINT64_C(0x0006DF7816619F79), UINT64_C(0x00072158DA5671BF)}}, + {{UINT64_C(0x000ECAFE87CBB23D), UINT64_C(0x000512A524D4D77C), + UINT64_C(0x0005FF1AF3F9CDCC), UINT64_C(0x0005A5222E7CCBCA), + UINT64_C(0x00037F25D366C5D3), UINT64_C(0x000DEE9CD4A0BD44), + UINT64_C(0x0001BA906B38FE5F), UINT64_C(0x0002479A4422043C), + UINT64_C(0x0007F85530950F05), UINT64_C(0x00026843F9CA979A)}, + {UINT64_C(0x000E6EBFB1D7D79A), UINT64_C(0x0001962262421C26), + UINT64_C(0x000749C75E0896B7), UINT64_C(0x00072656E0591FB4), + UINT64_C(0x00048C25570B4B5D), UINT64_C(0x000C0F6689F57006), + UINT64_C(0x000106B77BE98B19), UINT64_C(0x00070FD9ADA250C6), + UINT64_C(0x0004B2AC835CA2CF), UINT64_C(0x0005FD38C57539D3)}}, + }, + { + {{UINT64_C(0x00078CF823118058), UINT64_C(0x000084E70B90249E), + UINT64_C(0x000340E63640803E), UINT64_C(0x000259F3BA46031B), + UINT64_C(0x0004025A533D8FB6), UINT64_C(0x00021525975D8B46), + UINT64_C(0x00016415CB875BF3), UINT64_C(0x00037D3C94CF88C2), + UINT64_C(0x0001303423D046C3), UINT64_C(0x00064D6CA6CF50E4)}, + {UINT64_C(0x0001C4F51365236C), UINT64_C(0x00074C650114C6D7), + UINT64_C(0x00030B74EB231DBC), UINT64_C(0x000108DDE7A79F07), + UINT64_C(0x0005C84883DAAC53), UINT64_C(0x000F4FFFB87D65C4), + UINT64_C(0x0003A077D6424776), UINT64_C(0x00074EF17A8FF930), + UINT64_C(0x0001C70531DAACC1), UINT64_C(0x0004FDAB70943349)}}, + {{UINT64_C(0x000D10852C9532B6), UINT64_C(0x000043AAC71DC676), + UINT64_C(0x0000699B3F568856), UINT64_C(0x00062AA64E24D6D0), + UINT64_C(0x0000AC30CB5E809D), UINT64_C(0x0003DF891FADF9D0), + UINT64_C(0x0002E8AEFD6E009D), UINT64_C(0x000763BB5C596056), + UINT64_C(0x00027648417EC3B3), UINT64_C(0x00026FFF568DBEC6)}, + {UINT64_C(0x00046866CD52C51B), UINT64_C(0x00074EBD129DAF5E), + UINT64_C(0x0007E8A44CB2D0FF), UINT64_C(0x0001754AF2E0C3E1), + UINT64_C(0x00075DF74CCBA4EB), UINT64_C(0x0007015D1AC6F756), + UINT64_C(0x0007CC58CB459B84), UINT64_C(0x0004431C9AFC9478), + UINT64_C(0x0001496EF18E492E), UINT64_C(0x00040F52B9782D09)}}, + {{UINT64_C(0x0005432D2ABFAEFB), UINT64_C(0x000219E9F74B6891), + UINT64_C(0x000772FBB5A56EDD), UINT64_C(0x0003F9B32B854A6E), + UINT64_C(0x0000E23A82F7F4DB), UINT64_C(0x00079910F350CA56), + UINT64_C(0x0002F2CBD94634FD), UINT64_C(0x00062DE8463F621C), + UINT64_C(0x00018A84A27F47AC), UINT64_C(0x000492918B0A6CFC)}, + {UINT64_C(0x000917028ABF0C6C), UINT64_C(0x0005885BCB7EC09C), + UINT64_C(0x00007B7029F86047), UINT64_C(0x0004E980E40CB14D), + UINT64_C(0x0002414620471CAF), UINT64_C(0x000638833F454BE0), + UINT64_C(0x0007530E1D810E0C), UINT64_C(0x00007BC1509E4C84), + UINT64_C(0x000234FE03106A25), UINT64_C(0x0007B3C1744922CE)}}, + {{UINT64_C(0x0001D6F26560D816), UINT64_C(0x000761F53B7DED62), + UINT64_C(0x0003F63729C380A1), UINT64_C(0x0000D9AABEB1F8E4), + UINT64_C(0x0002FC799030E923), UINT64_C(0x00090EB9E83FC112), + UINT64_C(0x000276A6C7B64189), UINT64_C(0x0005C92C57117936), + UINT64_C(0x0003A76769F60AB1), UINT64_C(0x0000214C6BFF3AB2)}, + {UINT64_C(0x000F91FA223FB871), UINT64_C(0x00072F8E905BA3A7), + UINT64_C(0x00054D9829B0E1C4), UINT64_C(0x000041AADCD2F042), + UINT64_C(0x0006B33B8DBF5DAC), UINT64_C(0x0005E138CA79ABDB), + UINT64_C(0x0007F91015FD64B0), UINT64_C(0x0003E42D44B48D18), + UINT64_C(0x0003070F61FC98CE), UINT64_C(0x0003ECFBC333B9A7)}}, + {{UINT64_C(0x000A1C5F63F4003A), UINT64_C(0x00073E65E07CAEF9), + UINT64_C(0x0007EE53E05454BD), UINT64_C(0x0002832BB0CB8A80), + UINT64_C(0x0007F92B5F28C3C9), UINT64_C(0x000B198CFA188FC6), + UINT64_C(0x0001B4972BD5EA15), UINT64_C(0x0003371055BFF265), + UINT64_C(0x00040289DB496278), UINT64_C(0x000037FB8AEF99C7)}, + {UINT64_C(0x0003E8BA240F2657), UINT64_C(0x000507715E41F403), + UINT64_C(0x00000AC5E34F938B), UINT64_C(0x00010AC246A10935), + UINT64_C(0x00035E92D9586CD7), UINT64_C(0x000A927B7C112162), + UINT64_C(0x0001E320A6A23B35), UINT64_C(0x0002AEA76305FB4D), + UINT64_C(0x00027FC7B4E55E7B), UINT64_C(0x0007F605FDDB3012)}}, + {{UINT64_C(0x0007B3BEE04C4C80), UINT64_C(0x0005EC1698F3E6D0), + UINT64_C(0x00058683E8514BF8), UINT64_C(0x00003490978C1C15), + UINT64_C(0x0003FD63AD3797AF), UINT64_C(0x00078C4971CAD19E), + UINT64_C(0x0006E7EC2A846823), UINT64_C(0x00077586A76BAADD), + UINT64_C(0x00022BF1CA7743E1), UINT64_C(0x000719DBF8CE1E82)}, + {UINT64_C(0x000E187887A1EB86), UINT64_C(0x0006E15CE17F34FE), + UINT64_C(0x000165A9C070F6B8), UINT64_C(0x000235BE0B50B7A1), + UINT64_C(0x0000701631632860), UINT64_C(0x0001520CD1B97E69), + UINT64_C(0x000324D126195433), UINT64_C(0x000695BD1FBD3083), + UINT64_C(0x0007D0E98F84E4E6), UINT64_C(0x000076D0FD61BE2C)}}, + {{UINT64_C(0x0001C135C074F082), UINT64_C(0x0001B1C98964C70E), + UINT64_C(0x00070F16F51C63DE), UINT64_C(0x00065C546121FD21), + UINT64_C(0x0006E0EA00711AC1), UINT64_C(0x00019C4ED64CA43A), + UINT64_C(0x0007B5F5DE4D83CD), UINT64_C(0x0004A3289E196D3B), + UINT64_C(0x000379BD42718428), UINT64_C(0x00028B586AD8AC43)}, + {UINT64_C(0x00081CF90B74F2A0), UINT64_C(0x0002D685FCE339CF), + UINT64_C(0x00029BACF289048F), UINT64_C(0x00031B11C9F022B9), + UINT64_C(0x000723747A599137), UINT64_C(0x00008CAE4A9C10E7), + UINT64_C(0x000252D22A179598), UINT64_C(0x000462BF1945C2A5), + UINT64_C(0x0005E7BF4B6F8B7E), UINT64_C(0x0004A5CC544E7A94)}}, + {{UINT64_C(0x0002CE082C195DF7), UINT64_C(0x0000B2902F1DD4F4), + UINT64_C(0x0002EBCE1E8E6C3E), UINT64_C(0x0003DBB93DD984FC), + UINT64_C(0x000294BCFA46D91A), UINT64_C(0x000E47F5EB6C49F2), + UINT64_C(0x00027D01A275F685), UINT64_C(0x0002A8AB31F7A7C5), + UINT64_C(0x000065DEDCCEB9FE), UINT64_C(0x0007EE40D2F05D3F)}, + {UINT64_C(0x000AA9F92E841F87), UINT64_C(0x00025B8A866BCAA0), + UINT64_C(0x000456616AD0616E), UINT64_C(0x000019C95CBF2929), + UINT64_C(0x00018B84E8563743), UINT64_C(0x000D9BBA3F123075), + UINT64_C(0x0003C88C52754F28), UINT64_C(0x0002A84A28E16C62), + UINT64_C(0x00006C4CBF9BD1BE), UINT64_C(0x00014E2ED761883C)}}, + {{UINT64_C(0x000DD43327A5EC62), UINT64_C(0x00037A88C2CE8F10), + UINT64_C(0x00079FB7AF273687), UINT64_C(0x0005C217AE2F9294), + UINT64_C(0x0007B658E58E2D4D), UINT64_C(0x0001B9F8E201BDE2), + UINT64_C(0x00003AF8B1C4F58C), UINT64_C(0x000023F0302D4943), + UINT64_C(0x0000F016949D42FE), UINT64_C(0x0005DA77793E30DF)}, + {UINT64_C(0x0009A4A03292A077), UINT64_C(0x0005E38597159B13), + UINT64_C(0x000438CD4AA3B94B), UINT64_C(0x00039E50FBBA527D), + UINT64_C(0x00032E5CFA99121B), UINT64_C(0x000CE6179D42746B), + UINT64_C(0x000201FC90B2780E), UINT64_C(0x0002129922687B60), + UINT64_C(0x0001410E58988022), UINT64_C(0x0005E3F21AE57B91)}}, + {{UINT64_C(0x000EE44D178CCA07), UINT64_C(0x0002290775707084), + UINT64_C(0x000256E01D88B556), UINT64_C(0x0001EF98ED0CEE11), + UINT64_C(0x0003BD6824481F73), UINT64_C(0x000BAAFD1FEBD7AB), + UINT64_C(0x0006C5370AC07A93), UINT64_C(0x00039FFED4B7C601), + UINT64_C(0x00039A6B4153D857), UINT64_C(0x00077A6BC55E5234)}, + {UINT64_C(0x000816AA9A09968B), UINT64_C(0x0007BDB9C7F2EAF9), + UINT64_C(0x00032ACE09E1CBDC), UINT64_C(0x000522E8C19D3EEB), + UINT64_C(0x0003827A069B97BD), UINT64_C(0x0006716F9981A71A), + UINT64_C(0x000554503B7BA012), UINT64_C(0x000074637BF2E394), + UINT64_C(0x000615A2194548E8), UINT64_C(0x000006C523A794B4)}}, + {{UINT64_C(0x000A0B318735C445), UINT64_C(0x00055C3BC1A59729), + UINT64_C(0x000355C87CF06A80), UINT64_C(0x0000ABBB95628B32), + UINT64_C(0x00073A2D28549A3A), UINT64_C(0x000CC8F16C0B5FB6), + UINT64_C(0x0005190FEF2C780C), UINT64_C(0x000485C8686725FF), + UINT64_C(0x000212610F06DB7C), UINT64_C(0x000186C78ED4F0AC)}, + {UINT64_C(0x00051A0699ABFB29), UINT64_C(0x0004079D38322CB8), + UINT64_C(0x0004E0C463922EE4), UINT64_C(0x0005EC25735A7F4C), + UINT64_C(0x00030ACD8B3755D5), UINT64_C(0x0004533C09F622E8), + UINT64_C(0x00065BD64578113C), UINT64_C(0x000011679C79532B), + UINT64_C(0x000270C486D96F98), UINT64_C(0x00064FCDA161257D)}}, + {{UINT64_C(0x000A95E15137A104), UINT64_C(0x000184008DF11135), + UINT64_C(0x00005609A6FCBD2E), UINT64_C(0x0004EDFE7BC6F8F9), + UINT64_C(0x00053CA3D1760E75), UINT64_C(0x000EA2FB5A31F0F3), + UINT64_C(0x00077ABE20D50F91), UINT64_C(0x0007C0E34B46F175), + UINT64_C(0x0007A94E7592DB90), UINT64_C(0x000249BEAED5FC42)}, + {UINT64_C(0x000F85AF26A73A5A), UINT64_C(0x0002B83D21F3C411), + UINT64_C(0x000069FD92DFF608), UINT64_C(0x000407178D3E9436), + UINT64_C(0x0000D6C1A603C407), UINT64_C(0x000C556CBD53BF39), + UINT64_C(0x0000802C8ABE0ADC), UINT64_C(0x00024A5E6F60B0DA), + UINT64_C(0x0007DB9843929DA3), UINT64_C(0x0001FF410E9D19C7)}}, + {{UINT64_C(0x00094E812DBE8C32), UINT64_C(0x0006D33ED80BCDA2), + UINT64_C(0x00002D936BC7580C), UINT64_C(0x00043D349744E6D4), + UINT64_C(0x00020A0DEB1F77B4), UINT64_C(0x00031B3519BBF1AA), + UINT64_C(0x0007A520ED4CEF61), UINT64_C(0x000043394E7A87E8), + UINT64_C(0x00040764584AEB95), UINT64_C(0x0003155C9B8CCF57)}, + {UINT64_C(0x000C17DA9E28ADF8), UINT64_C(0x0003424BBFF78B37), + UINT64_C(0x0003CC6A19FFC5FF), UINT64_C(0x0002CB497A44C566), + UINT64_C(0x00022DDAD26DE223), UINT64_C(0x000AC080F18A0065), + UINT64_C(0x000575057C11015D), UINT64_C(0x00078021729DE91B), + UINT64_C(0x0005796ED9E76DA3), UINT64_C(0x0006FE4AB6E74734)}}, + {{UINT64_C(0x0005F849D235CCE0), UINT64_C(0x000436E70A0D70E1), + UINT64_C(0x00035E68AA2BDD02), UINT64_C(0x0003E7FE63874EA2), + UINT64_C(0x00026C88F7884563), UINT64_C(0x000FCD9BAE21D5B1), + UINT64_C(0x0005C69101494E3A), UINT64_C(0x00037DB907EEE3A2), + UINT64_C(0x00064C59AE199A08), UINT64_C(0x00039423CE12F5BB)}, + {UINT64_C(0x0000AAAF7EEE09F7), UINT64_C(0x0004C5314B2C4D75), + UINT64_C(0x0003EC74B3A6D36C), UINT64_C(0x000620CA51245767), + UINT64_C(0x00044F419AE83224), UINT64_C(0x00080A722E02A693), + UINT64_C(0x0007A360EBC5DBD9), UINT64_C(0x000381727BCF6E58), + UINT64_C(0x000617B700F3ADF6), UINT64_C(0x0000FA1A09F64950)}}, + {{UINT64_C(0x00096F84C0BDFF5B), UINT64_C(0x0006E5B26C5065BB), + UINT64_C(0x0001952942E39562), UINT64_C(0x000653E9892230FF), + UINT64_C(0x0000F763C13E4999), UINT64_C(0x0009F0784B215E56), + UINT64_C(0x000270D42201B3A3), UINT64_C(0x00045740B9AF7F09), + UINT64_C(0x000229B251B5D908), UINT64_C(0x000657F560FDA230)}, + {UINT64_C(0x00031EFD1B4B981B), UINT64_C(0x0007B1F5B3F7B1EA), + UINT64_C(0x000170AF323B8DC9), UINT64_C(0x00055F77521B9F83), + UINT64_C(0x0003B381A7CCCC0F), UINT64_C(0x00086767112D35DD), + UINT64_C(0x0000C15A5CC603CB), UINT64_C(0x00026C0095FA28DE), + UINT64_C(0x0005178C03D1D4CC), UINT64_C(0x0006A499CD28196A)}}, + {{UINT64_C(0x0009617A9ECA8281), UINT64_C(0x0002F03DC8FC403F), + UINT64_C(0x0005A200AB22733A), UINT64_C(0x000402BA3A81D989), + UINT64_C(0x0006690A4DAA9371), UINT64_C(0x0001CC8F6D90CC2C), + UINT64_C(0x000293AC50B59125), UINT64_C(0x0004D1A882B9D469), + UINT64_C(0x00014C4DF2707168), UINT64_C(0x0005A3C384944E0D)}, + {UINT64_C(0x000B2CD4D51F74FF), UINT64_C(0x00021EB289F478F1), + UINT64_C(0x0004BF9CA3A7AC0A), UINT64_C(0x0003DB4F626C2310), + UINT64_C(0x0005CBF13B00CCC4), UINT64_C(0x00029073A697E0B9), + UINT64_C(0x0002C5D67FD6CD73), UINT64_C(0x0005D10BAA363615), + UINT64_C(0x000051A608EA619E), UINT64_C(0x0004155A6B02D3FB)}}, + }, + { + {{UINT64_C(0x000B63BE2E2471B6), UINT64_C(0x000793F7C56B8C12), + UINT64_C(0x00003A61A28C6343), UINT64_C(0x00073E8EF4E8B82C), + UINT64_C(0x000770A1A8474CE7), UINT64_C(0x000B2231CECAFDB4), + UINT64_C(0x0006E5A738D66F01), UINT64_C(0x0002489688C31B78), + UINT64_C(0x00060068F8F76B83), UINT64_C(0x0003D6F5D74A6F06)}, + {UINT64_C(0x0002EEDB0339BF8A), UINT64_C(0x0006213ECE2A8CBB), + UINT64_C(0x0006876AC31EC71D), UINT64_C(0x0001ADFE07733CDB), + UINT64_C(0x000192FE0B2619CE), UINT64_C(0x00000B3F7CB6D64F), + UINT64_C(0x000193DD7BC97D28), UINT64_C(0x0005572F38C9E619), + UINT64_C(0x000117122583880C), UINT64_C(0x0003F2E95F7AD5BD)}}, + {{UINT64_C(0x0005C60618A27AB4), UINT64_C(0x00041A118681EEDE), + UINT64_C(0x000264B9365ED5C1), UINT64_C(0x000257E09A79B510), + UINT64_C(0x0007087B4DFA9B18), UINT64_C(0x000BC4BD3F5B7665), + UINT64_C(0x00047988ECDAA2B4), UINT64_C(0x00038D5A0D231327), + UINT64_C(0x00061EBA028CB516), UINT64_C(0x00034DFCB32D1C33)}, + {UINT64_C(0x0007BF2B53E6F733), UINT64_C(0x0007363F62FE6A5D), + UINT64_C(0x00009E88E9E4BBC7), UINT64_C(0x00053137DF685DF0), + UINT64_C(0x0000D26EEFA89EB2), UINT64_C(0x00060E84ECFF317A), + UINT64_C(0x000562FC49406706), UINT64_C(0x0004010FC39B719E), + UINT64_C(0x00059BF4CE26C533), UINT64_C(0x00016B0A194ADE86)}}, + {{UINT64_C(0x00025D428CB55AB4), UINT64_C(0x000349C469FB2C47), + UINT64_C(0x00011112758D3875), UINT64_C(0x0005BBB75049ADD3), + UINT64_C(0x00013E42E4FC95BB), UINT64_C(0x00063D2C733F5E50), + UINT64_C(0x00071ECB0DB2E6CD), UINT64_C(0x00047F5C9C428E03), + UINT64_C(0x0000C8ACA14009B2), UINT64_C(0x0000FEBA85C091ED)}, + {UINT64_C(0x000319368C78D149), UINT64_C(0x0000A97A3731C17E), + UINT64_C(0x0005734AA19A7BF7), UINT64_C(0x0004110947FCD175), + UINT64_C(0x00027E988A2F1542), UINT64_C(0x0001405032878E0A), + UINT64_C(0x00035BAF2C56A5E2), UINT64_C(0x000539BA8560A8C0), + UINT64_C(0x0006BE84D2118DA9), UINT64_C(0x0005E0476ABA3F5B)}}, + {{UINT64_C(0x0003AA4CC1DD3F97), UINT64_C(0x00063185FB6A0D5E), + UINT64_C(0x0007EAE973FA7134), UINT64_C(0x0000D566EB4BA56E), + UINT64_C(0x000432A20DAAF7BF), UINT64_C(0x000C99D6D0DE97D6), + UINT64_C(0x00040CD8D71B4231), UINT64_C(0x00061DBA01336D9F), + UINT64_C(0x00010DC031C5661D), UINT64_C(0x0007DBFCC3C94CE7)}, + {UINT64_C(0x00092DCF6D493BCC), UINT64_C(0x00008741DFAF5D31), + UINT64_C(0x0002E2A67554DF10), UINT64_C(0x0005119B1E5ADE23), + UINT64_C(0x000501601DB80686), UINT64_C(0x00016AF164683AA7), + UINT64_C(0x00013250FB11AA12), UINT64_C(0x00070A10DFF37326), + UINT64_C(0x0000F9D812FF4EAB), UINT64_C(0x00002035714DCE83)}}, + {{UINT64_C(0x0007CA219AED5320), UINT64_C(0x0000DC5D44C110A5), + UINT64_C(0x000211982529953C), UINT64_C(0x000330BE049F485C), + UINT64_C(0x0006B006A9948E28), UINT64_C(0x0000B04E018D4DC0), + UINT64_C(0x000215F49B9F8FF2), UINT64_C(0x00079CE3A3D8E522), + UINT64_C(0x0006EDC3EA4A4987), UINT64_C(0x0006F9FD6811BC4F)}, + {UINT64_C(0x000FEF3CB3BE843C), UINT64_C(0x0005B9E17892CE3D), + UINT64_C(0x0005168AA844E7A9), UINT64_C(0x000600B2314595D6), + UINT64_C(0x000477B0AFD0F4F6), UINT64_C(0x00053D8F4E812FCD), + UINT64_C(0x00049909798B2B0F), UINT64_C(0x0000B0BD698B1D5E), + UINT64_C(0x000009B704E143DF), UINT64_C(0x00043C8ABB658E21)}}, + {{UINT64_C(0x0009311B2D0959AA), UINT64_C(0x000408C67EBE4373), + UINT64_C(0x0004708398C93D1C), UINT64_C(0x0005CEEB3BA4DF18), + UINT64_C(0x00059663D0C68975), UINT64_C(0x000D6F23DB87CD7A), + UINT64_C(0x0007FE452E537133), UINT64_C(0x000067D1FF579E76), + UINT64_C(0x000678700E4625F3), UINT64_C(0x000512B5A1BD51F9)}, + {UINT64_C(0x000E28A401845C37), UINT64_C(0x0005334538459412), + UINT64_C(0x000415EEBEE74BD9), UINT64_C(0x00014AFBBC227A22), + UINT64_C(0x000214A015E7D9E7), UINT64_C(0x000139325A047952), + UINT64_C(0x00029504D6930EAE), UINT64_C(0x0005D1BCA17818E8), + UINT64_C(0x0002DD22238F7A8E), UINT64_C(0x0004F8349B5B0ED3)}}, + {{UINT64_C(0x00034C0AE7DDF681), UINT64_C(0x0007688311AB02D5), + UINT64_C(0x0002EB0E8A6E1F1D), UINT64_C(0x0005FF8BCF6AAEB8), + UINT64_C(0x0002CAD1E56904C4), UINT64_C(0x000FA16935A53E47), + UINT64_C(0x00002881197DC9DD), UINT64_C(0x0005C925AAAF6DA8), + UINT64_C(0x0006034B84FE7D23), UINT64_C(0x0005D6AE622F2E8E)}, + {UINT64_C(0x00065068FCC0ACD6), UINT64_C(0x000070B371C8C2DF), + UINT64_C(0x0003DA0FCB5BFD98), UINT64_C(0x0005B4F3426521A8), + UINT64_C(0x000689F815FC00FE), UINT64_C(0x0002E666CEEBA0E2), + UINT64_C(0x0001E39832C0990E), UINT64_C(0x000574558F79940A), + UINT64_C(0x00076D485F8B12D9), UINT64_C(0x000156F30CEE05D5)}}, + {{UINT64_C(0x0007D87AFB920C3D), UINT64_C(0x0002A9E23A083533), + UINT64_C(0x0001543E5ED3B5D9), UINT64_C(0x0000B974928CFC56), + UINT64_C(0x0002CF48F5FC7EE6), UINT64_C(0x000CE1C3C95C8368), + UINT64_C(0x000333FD6C3D7D3F), UINT64_C(0x00044589E3099078), + UINT64_C(0x0001F34D2E96B01D), UINT64_C(0x00017EAC450F370E)}, + {UINT64_C(0x0001B2713A497273), UINT64_C(0x00030B002E865A54), + UINT64_C(0x000182D7C612D473), UINT64_C(0x00026397A5C46946), + UINT64_C(0x000187CB68D83F11), UINT64_C(0x00077ADF60174A14), + UINT64_C(0x0002BC33B9BC9135), UINT64_C(0x00036AD6BE31C9F9), + UINT64_C(0x0001AC5D650B5D13), UINT64_C(0x0003F43A72E4D5E3)}}, + {{UINT64_C(0x000EF6C11E20B6EA), UINT64_C(0x0005905102070C81), + UINT64_C(0x00024652608509D4), UINT64_C(0x000205B6D7FBB6A0), + UINT64_C(0x00032589FE0677BD), UINT64_C(0x00085D8055C79F1F), + UINT64_C(0x00004E43893D83E7), UINT64_C(0x00013EDB219CA7D3), + UINT64_C(0x0007BF9B35859660), UINT64_C(0x0005DF7DCB816251)}, + {UINT64_C(0x0001EF55471D4356), UINT64_C(0x000540AF79AD9A97), + UINT64_C(0x00060EB528DDF6D9), UINT64_C(0x000328BCC97D7964), + UINT64_C(0x000706B99B540A23), UINT64_C(0x0007753141D6BF4E), + UINT64_C(0x000256E51FDE35B1), UINT64_C(0x0005324363DCFDED), + UINT64_C(0x0004E0FE9820F921), UINT64_C(0x000368ECFA81C767)}}, + {{UINT64_C(0x000AE3882AC0F8F0), UINT64_C(0x00023952C3BBED16), + UINT64_C(0x0002208B0CCB771B), UINT64_C(0x00032499978C3D1E), + UINT64_C(0x0000B08DEF9DE24A), UINT64_C(0x00014733B64362CB), + UINT64_C(0x00044CEB44FBCD29), UINT64_C(0x00062081D15BFA79), + UINT64_C(0x000612FF02BEFFD5), UINT64_C(0x00016207454BB815)}, + {UINT64_C(0x000E140447F99D22), UINT64_C(0x0004415B5CE2B9E2), + UINT64_C(0x000497FECE7E53B5), UINT64_C(0x0003BBA75954C646), + UINT64_C(0x00075267384AD185), UINT64_C(0x000BE077D1B86BB1), + UINT64_C(0x0000A186FFAE61F0), UINT64_C(0x0007E20C811F4FAE), + UINT64_C(0x0004F69AD42F56BF), UINT64_C(0x00006F7B76AEA2AF)}}, + {{UINT64_C(0x000BEDEC2A48D51F), UINT64_C(0x00040C00234C90E7), + UINT64_C(0x0003BC8777CA6ECC), UINT64_C(0x0000D79570C70B74), + UINT64_C(0x000157D50E130D10), UINT64_C(0x0003932A1F3A8446), + UINT64_C(0x000520C248ECB88C), UINT64_C(0x00073A8FF16D17F0), + UINT64_C(0x0006B070CCE2E887), UINT64_C(0x00006F6D81DF9ECD)}, + {UINT64_C(0x0007C3E53178DAC6), UINT64_C(0x0000802C2D20978A), + UINT64_C(0x0005CC0D9E0C57C8), UINT64_C(0x0000A2DB47B4AA42), + UINT64_C(0x0000D0C16DEAE477), UINT64_C(0x00030AECB867C0D4), + UINT64_C(0x0006545EF5ADABE6), UINT64_C(0x0006207530AC956A), + UINT64_C(0x0004B667DB2FBFC5), UINT64_C(0x0007231A93C94578)}}, + {{UINT64_C(0x0006EE7B285AAF99), UINT64_C(0x000184C97496A4CA), + UINT64_C(0x0000E820762561C8), UINT64_C(0x0003069976AB441A), + UINT64_C(0x0002F2D34AB64E3A), UINT64_C(0x0008DA8798C4984C), + UINT64_C(0x00018E10EC261ED8), UINT64_C(0x0005572CDE59EF3B), + UINT64_C(0x0005243583492A31), UINT64_C(0x000553EBD5BD4F76)}, + {UINT64_C(0x00003CD44541889B), UINT64_C(0x0000A15FD3B46A03), + UINT64_C(0x0002445DDC01C49C), UINT64_C(0x0000FF7AB524990D), + UINT64_C(0x00067DD44CEF1BC4), UINT64_C(0x00011A6A854E822E), + UINT64_C(0x00020922345D9089), UINT64_C(0x00004F8BE8B1C52C), + UINT64_C(0x000334AD5EA9B90D), UINT64_C(0x0004E5FE9C90028A)}}, + {{UINT64_C(0x000068C177996387), UINT64_C(0x000019B13C995F39), + UINT64_C(0x00065BFEAB3691E1), UINT64_C(0x0003CEAA9FF90919), + UINT64_C(0x00070CE531ADC5B6), UINT64_C(0x000E2CEBFDBB5331), + UINT64_C(0x0000D202455F41D3), UINT64_C(0x000671180605FF9D), + UINT64_C(0x00011AD81B928580), UINT64_C(0x00028FC16864D6F0)}, + {UINT64_C(0x000A61CD60DAEB8D), UINT64_C(0x000365700D8B7834), + UINT64_C(0x00057BC9FDF724EE), UINT64_C(0x0001F7A1B9F925AF), + UINT64_C(0x0007AA4AEFCA0359), UINT64_C(0x00034A27F50833A0), + UINT64_C(0x0000ED7927DFB95D), UINT64_C(0x0007B8F116040DEA), + UINT64_C(0x000117F98382AC39), UINT64_C(0x00020171F463D451)}}, + {{UINT64_C(0x00059264A9F49C09), UINT64_C(0x00044F0F00815067), + UINT64_C(0x000151E20E3CE2F3), UINT64_C(0x0003CB10A0F261AA), + UINT64_C(0x00019DAE7938AAE9), UINT64_C(0x000FA6C983FECF4D), + UINT64_C(0x0000A4A7CA460046), UINT64_C(0x00069CD684FAA9A3), + UINT64_C(0x0005962FD31973AC), UINT64_C(0x0001A315E3CE66B5)}, + {UINT64_C(0x0001EE33900F6430), UINT64_C(0x00064BE92C2C1CDD), + UINT64_C(0x00011FCA5905D7B7), UINT64_C(0x0001664E4C15055D), + UINT64_C(0x000124F50846C1DD), UINT64_C(0x0005A95B64C89DD6), + UINT64_C(0x000635C7B470A25B), UINT64_C(0x00044199D92D72BC), + UINT64_C(0x000317D8CC4D6593), UINT64_C(0x0004A1E8E879471E)}}, + {{UINT64_C(0x00070F53D415523F), UINT64_C(0x00008843EE85FF0C), + UINT64_C(0x0001E10C523BB14C), UINT64_C(0x0004756E413F0932), + UINT64_C(0x0003DE85A220DF46), UINT64_C(0x000E272251866340), + UINT64_C(0x00008C97549ABE3D), UINT64_C(0x0003998C7C359F9D), + UINT64_C(0x00018EC0C21FA45C), UINT64_C(0x0007A6A308E8E50C)}, + {UINT64_C(0x0002370A35276C0F), UINT64_C(0x0002729B26DBEA22), + UINT64_C(0x0000D95854453918), UINT64_C(0x0000FEBB57C7378F), + UINT64_C(0x0002E3F0D283969D), UINT64_C(0x000875CC00175050), + UINT64_C(0x00050E7B3F62B00A), UINT64_C(0x0006E1A11C5C2BEA), + UINT64_C(0x0003461785DC962F), UINT64_C(0x00006A29E20D62BD)}}, + {{UINT64_C(0x000537C77DAC5528), UINT64_C(0x00008C1BE92F83C6), + UINT64_C(0x000611D61F939CC5), UINT64_C(0x00067A47050E3CE6), + UINT64_C(0x0006FC68EE4297A6), UINT64_C(0x00076CC8299AC1F1), + UINT64_C(0x000798EF7F4F028F), UINT64_C(0x0003D929F2A08907), + UINT64_C(0x0007F626DB8181AE), UINT64_C(0x00038C7518A169E3)}, + {UINT64_C(0x0003C2C303DDCFAE), UINT64_C(0x0005A51351AFA1EB), + UINT64_C(0x00033D8168A6178F), UINT64_C(0x0002BAE4B7BD921A), + UINT64_C(0x00079BB0E6C13360), UINT64_C(0x0002FEC8223E6E6A), + UINT64_C(0x00057EB3E02985A1), UINT64_C(0x0006A5F6F23E337D), + UINT64_C(0x0000B51AD9A8DF7E), UINT64_C(0x0007C85F9D74F60E)}}, + }, + { + {{UINT64_C(0x000373002424FC6B), UINT64_C(0x000265A533B8CF47), + UINT64_C(0x00015EAD4A0AE37C), UINT64_C(0x00022EEEA45AEA56), + UINT64_C(0x0005CA0E0AF3AAE5), UINT64_C(0x000216AD75D115B7), + UINT64_C(0x0002B2885E63BCC1), UINT64_C(0x00001DEB58FCEA8C), + UINT64_C(0x00050D28722A0E55), UINT64_C(0x00016C1C97050E66)}, + {UINT64_C(0x000BACBCDEEAFAB6), UINT64_C(0x000210A7858140DE), + UINT64_C(0x0006E228E5AB34EE), UINT64_C(0x00038068E28B5065), + UINT64_C(0x0002BDB4015D78E6), UINT64_C(0x000E7DF0E5A47C2C), + UINT64_C(0x000091791C6E0564), UINT64_C(0x00047E8BA82005E7), + UINT64_C(0x0002E2976DD2714D), UINT64_C(0x00029F182BE6C8A5)}}, + {{UINT64_C(0x000D83B94CB40D60), UINT64_C(0x000182EE55A47AB2), + UINT64_C(0x0002A9A2A11F16C0), UINT64_C(0x00050CC737555D01), + UINT64_C(0x000189A2DA48966B), UINT64_C(0x000A973CE36E61C1), + UINT64_C(0x0004AF3A17E7233F), UINT64_C(0x00045CB6428ED4F1), + UINT64_C(0x0001768287382675), UINT64_C(0x0000C6B22C10147C)}, + {UINT64_C(0x000401DB5A4C6A3E), UINT64_C(0x00023EE16B73E10C), + UINT64_C(0x0002FEA5C8440A34), UINT64_C(0x00018E7129952281), + UINT64_C(0x0001A31C2F9C5948), UINT64_C(0x0006685938AF9BD8), + UINT64_C(0x0002F4C9F4721C11), UINT64_C(0x0006D88254B2B220), + UINT64_C(0x00007BC40460348E), UINT64_C(0x0001773137A2404B)}}, + {{UINT64_C(0x000C6B4D1144D64A), UINT64_C(0x0006D90E0E79B31D), + UINT64_C(0x00068DA0056E18D5), UINT64_C(0x0005340F7E02D070), + UINT64_C(0x0001D5DF828F1380), UINT64_C(0x000636F195DCDB2B), + UINT64_C(0x0000E7E7E014119C), UINT64_C(0x0007B435A9FBE2C0), + UINT64_C(0x00076EB85EA1EFBB), UINT64_C(0x00022AA0A0C698A1)}, + {UINT64_C(0x000B9CB571CA9CF0), UINT64_C(0x0004B86CE22A5E6D), + UINT64_C(0x0006E4462F85131B), UINT64_C(0x0002F155E75A2EED), + UINT64_C(0x00063F764F24AC73), UINT64_C(0x000FFA94474DEF2E), + UINT64_C(0x0004A1B60F2E7A47), UINT64_C(0x00063EE08D47164B), + UINT64_C(0x0005ECDC6B2A7E48), UINT64_C(0x00071C6910C71824)}}, + {{UINT64_C(0x0007813E229F97CB), UINT64_C(0x00043ADE3B460997), + UINT64_C(0x0005E8C96137590A), UINT64_C(0x000484EEC3127431), + UINT64_C(0x0003A512D58F34EC), UINT64_C(0x000B47722D5ECC77), + UINT64_C(0x00076E35AE2C410D), UINT64_C(0x000142A4F3860A59), + UINT64_C(0x0005AD2423E3E88D), UINT64_C(0x00032A4A2C6376BD)}, + {UINT64_C(0x0009DB45FC2C575A), UINT64_C(0x0007CF11E987B02F), + UINT64_C(0x000329AE7B16D79A), UINT64_C(0x0006BA1FDDBA003F), + UINT64_C(0x00072F40C3D1D0E1), UINT64_C(0x000A2168272DEAEB), + UINT64_C(0x00040B3BC5E98BE4), UINT64_C(0x0005426244ED0D94), + UINT64_C(0x000610D19F336894), UINT64_C(0x0001EC5B0CD24773)}}, + {{UINT64_C(0x000126DC95FF47CB), UINT64_C(0x0006D821C64139FD), + UINT64_C(0x00036D6653EA637C), UINT64_C(0x0005A97F942DD0FF), + UINT64_C(0x00000318724B076A), UINT64_C(0x000ED3C1F9BBE805), + UINT64_C(0x0002E76961D49FCA), UINT64_C(0x000759A40326E7D9), + UINT64_C(0x0002641EFF076C29), UINT64_C(0x00006CA5347A2017)}, + {UINT64_C(0x00010765B5C69CBC), UINT64_C(0x0001782241147DAD), + UINT64_C(0x000104E6A5297609), UINT64_C(0x0006495BFD0C4503), + UINT64_C(0x0006B9D0D10CA297), UINT64_C(0x00034803A8F4A7B8), + UINT64_C(0x00069B1A0E7F94AF), UINT64_C(0x00076E9131740435), + UINT64_C(0x00079E1647538E00), UINT64_C(0x000381FB07DCC831)}}, + {{UINT64_C(0x0000623E19A529B0), UINT64_C(0x0002A1F34419A0BA), + UINT64_C(0x0007450BB7C4CEEC), UINT64_C(0x000724D0766E901A), + UINT64_C(0x0006FDCF27272EFB), UINT64_C(0x000E99E1E2856702), + UINT64_C(0x0006AF1B534CF0E7), UINT64_C(0x00024538A8F87630), + UINT64_C(0x0002DBFF74B7F80D), UINT64_C(0x0006689E4424A84F)}, + {UINT64_C(0x000A25CFDE9D7DDB), UINT64_C(0x00025B06D5477447), + UINT64_C(0x00040103EF10F2A9), UINT64_C(0x0000589A19B6B3E8), + UINT64_C(0x0001001736EC3E24), UINT64_C(0x000B77124673C96A), + UINT64_C(0x00053B0645C3104F), UINT64_C(0x00066AEE9346C15C), + UINT64_C(0x000336D117178F21), UINT64_C(0x0004C8732602283A)}}, + {{UINT64_C(0x000B072ABBE3BA75), UINT64_C(0x00015A08F89BDB09), + UINT64_C(0x00034F423F9E09E0), UINT64_C(0x0001EF27A09841EF), + UINT64_C(0x00065B203436FF75), UINT64_C(0x00018864D568B13F), + UINT64_C(0x00069449D057FB4C), UINT64_C(0x000005868A6A3CD5), + UINT64_C(0x0007932D29BB522B), UINT64_C(0x0001069BF48AA2B7)}, + {UINT64_C(0x000EE21FDCDDE7C7), UINT64_C(0x0006CAF6E905C045), + UINT64_C(0x00031A72930255A6), UINT64_C(0x00076FCF5F4A6F74), + UINT64_C(0x00001AA0517A0131), UINT64_C(0x00040DDFF2E11FAF), + UINT64_C(0x0004A5512DFF3F02), UINT64_C(0x00055F08A9212CD2), + UINT64_C(0x000519761093F184), UINT64_C(0x00027B6A1B2A1EF7)}}, + {{UINT64_C(0x000EA5C61B6DBC4E), UINT64_C(0x00051A4DCC7D6792), + UINT64_C(0x0003357B7EAF7670), UINT64_C(0x000554E802A50353), + UINT64_C(0x00072BF41E70B24F), UINT64_C(0x000049E5C8DA1177), + UINT64_C(0x00037C5CB7FD16BA), UINT64_C(0x0003803F2EEEF15D), + UINT64_C(0x000146D4B548675B), UINT64_C(0x0000E11A2717E6B2)}, + {UINT64_C(0x000C794070988A0A), UINT64_C(0x0002A32EF7BCEEB5), + UINT64_C(0x00050C772349C586), UINT64_C(0x0000FA8C6654583D), + UINT64_C(0x000385E544F610DF), UINT64_C(0x000C27780562C065), + UINT64_C(0x0004D0E5952E5D7A), UINT64_C(0x00022358D60920AE), + UINT64_C(0x000647D3BCA69083), UINT64_C(0x000663401832196F)}}, + {{UINT64_C(0x0002E9B7160E3961), UINT64_C(0x0000CFDD2754F2C2), + UINT64_C(0x000737ED6627095B), UINT64_C(0x0000907EAC442E04), + UINT64_C(0x0004BFDDFD6D0E23), UINT64_C(0x0009C97A7D587EEF), + UINT64_C(0x000543F2822FAFB5), UINT64_C(0x0003FDF6AF5D7A19), + UINT64_C(0x0000FC963721698D), UINT64_C(0x000179F21E6577FB)}, + {UINT64_C(0x00025DABF637CE7B), UINT64_C(0x0000DEF29AADAC3D), + UINT64_C(0x0001737E91658123), UINT64_C(0x000249402C7B4BC4), + UINT64_C(0x0001F964C1BA2B35), UINT64_C(0x0006547130478601), + UINT64_C(0x00004A763BB9F26E), UINT64_C(0x0002DEE0532A3ABA), + UINT64_C(0x0000FB73209B3189), UINT64_C(0x000323CB18309CBF)}}, + {{UINT64_C(0x000F430885B15B6B), UINT64_C(0x00075D059AEC5A1E), + UINT64_C(0x0004453A277EFFCE), UINT64_C(0x00064F823D9E2950), + UINT64_C(0x00073827A14B9299), UINT64_C(0x0001C133BA90B752), + UINT64_C(0x0002FE7DB431EADF), UINT64_C(0x0007321007818326), + UINT64_C(0x00071653A5874521), UINT64_C(0x000797A5565F102D)}, + {UINT64_C(0x00036CFD54EEA72C), UINT64_C(0x0000808016DA4E23), + UINT64_C(0x0003D2134B084DFE), UINT64_C(0x00011B5581647A89), + UINT64_C(0x00052FAD726D60BB), UINT64_C(0x000DCFDB5420868A), + UINT64_C(0x000750548DD329FF), UINT64_C(0x00019FE6DA0749CC), + UINT64_C(0x00005B85FA39A2C1), UINT64_C(0x00023AE3BBD89F61)}}, + {{UINT64_C(0x000CA8883C4EF58F), UINT64_C(0x0006E759199F54FA), + UINT64_C(0x00055E8867F4288D), UINT64_C(0x000225E439FE7035), + UINT64_C(0x00040EE9678BC4D1), UINT64_C(0x000E0C8FEC05A2E2), + UINT64_C(0x000586D8C13D487A), UINT64_C(0x00008B4A7E530498), + UINT64_C(0x0001E781B4E18C6D), UINT64_C(0x00017D763BE7083C)}, + {UINT64_C(0x000A451105CF54F0), UINT64_C(0x000637BF27522C26), + UINT64_C(0x0006042AB901CB43), UINT64_C(0x0000F3A157D77CEC), + UINT64_C(0x00040B5652E5D030), UINT64_C(0x0003F395A2C01F02), + UINT64_C(0x00041B950FC573CA), UINT64_C(0x0007DED4FDDEA439), + UINT64_C(0x00012CAC59609158), UINT64_C(0x0000EC63DC4F41D8)}}, + {{UINT64_C(0x000027B04D23C68B), UINT64_C(0x000525B4F2B59AFC), + UINT64_C(0x0001473B3791B81E), UINT64_C(0x0004234680C59597), + UINT64_C(0x00049B5B1E7B7404), UINT64_C(0x000CA846EE9B6288), + UINT64_C(0x0002F4D705212A30), UINT64_C(0x000435199A6D217F), + UINT64_C(0x0002C022FF19EE1F), UINT64_C(0x0003594F8F0758A9)}, + {UINT64_C(0x000968170931C47A), UINT64_C(0x000621AD96C9DEDE), + UINT64_C(0x0001F40DB9806854), UINT64_C(0x0006535786069F3A), + UINT64_C(0x0002BAAF09744048), UINT64_C(0x000CE1A02746C6D1), + UINT64_C(0x000159007061AA2D), UINT64_C(0x000679FCA2D81FCD), + UINT64_C(0x000418AC9FB46B4D), UINT64_C(0x000308BE060423D1)}}, + {{UINT64_C(0x0000C4AC87AF9AD9), UINT64_C(0x0000CDECE641A609), + UINT64_C(0x0001E12CC58F8FCD), UINT64_C(0x000510A219809940), + UINT64_C(0x0006DA7CEA8384F8), UINT64_C(0x000AB5F0694566E0), + UINT64_C(0x0001CC9EE803A140), UINT64_C(0x0000F9FBB28BDD1E), + UINT64_C(0x0007F4EFEB56B1DE), UINT64_C(0x000277916C4688BF)}, + {UINT64_C(0x000D23553900C111), UINT64_C(0x0002646A893D2545), + UINT64_C(0x0003F85DED9F79E4), UINT64_C(0x0003D6EBC7956C87), + UINT64_C(0x00042C8421E33668), UINT64_C(0x0000CE0FCEE92113), + UINT64_C(0x00062F37FB71D455), UINT64_C(0x0002B5C2D8B8E0D9), + UINT64_C(0x0001F89A7B791F03), UINT64_C(0x00026E0534AAFC55)}}, + {{UINT64_C(0x0002995D9382FB5B), UINT64_C(0x0007C05714B2BDCD), + UINT64_C(0x00055EFDFFD811CA), UINT64_C(0x0000C43B6FA2E22F), + UINT64_C(0x0003930FE770F72D), UINT64_C(0x00082F4073A9EB83), + UINT64_C(0x00028C90A8534165), UINT64_C(0x00020C6D2C543EAE), + UINT64_C(0x0003F98A8E8F71B7), UINT64_C(0x0007B8FB4D43C48C)}, + {UINT64_C(0x000C54F1DA463909), UINT64_C(0x000482EC99C805E1), + UINT64_C(0x000301F27ED477A1), UINT64_C(0x0005CA99320599DA), + UINT64_C(0x0003F84676223EB7), UINT64_C(0x00001D5F50BC87AC), + UINT64_C(0x0006D360C6473C45), UINT64_C(0x00078FE24EB5EF6D), + UINT64_C(0x0003E18E1D8C918F), UINT64_C(0x0000BAAA9526A788)}}, + {{UINT64_C(0x0003CFAC186FC15D), UINT64_C(0x0004079422F8115B), + UINT64_C(0x00015745819F82E6), UINT64_C(0x0003618BCA6799CF), + UINT64_C(0x000147DCBEB05016), UINT64_C(0x0008E01C4060F0AE), + UINT64_C(0x0006DD9C9ABCADD5), UINT64_C(0x00055C9418FA0C56), + UINT64_C(0x0004ADEDA517CF14), UINT64_C(0x0000A4AEB8D1A937)}, + {UINT64_C(0x0004727D18C04C1D), UINT64_C(0x000459FEB8D4258F), + UINT64_C(0x000134BF4171D346), UINT64_C(0x000686442480B1AF), + UINT64_C(0x000739A7BBB7AB37), UINT64_C(0x000F61BC7DC00473), + UINT64_C(0x0003746597B948CE), UINT64_C(0x000125EAB46F1D2B), + UINT64_C(0x000033F4805B72AE), UINT64_C(0x000584748C0B9409)}}, + {{UINT64_C(0x00092A49D3069003), UINT64_C(0x0005840D8AF17ED6), + UINT64_C(0x000174B6F581B1E5), UINT64_C(0x000163189D301971), + UINT64_C(0x0000018D239951ED), UINT64_C(0x0009B7C92C641D5C), + UINT64_C(0x000289C88DD6E0A4), UINT64_C(0x0000CE7ED79D24F4), + UINT64_C(0x0007F5A09563A4B9), UINT64_C(0x0007A4A25F6B4D5C)}, + {UINT64_C(0x00002966A02D81D0), UINT64_C(0x00079C7EA96452D3), + UINT64_C(0x0007C34AB0AA795A), UINT64_C(0x00050A1B57CC0E57), + UINT64_C(0x0007DE8829195BCB), UINT64_C(0x0006242A9B8D0EC5), + UINT64_C(0x0005DD50FAD307D9), UINT64_C(0x0001B700B637CA0B), + UINT64_C(0x0003455689EBE7C1), UINT64_C(0x0002782C47D2932F)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 6 + * ASSERT: a = -3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(t0, X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(t1, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(t2, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t3, X, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, t3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t4, Y, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, X, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, b, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(X3, X3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, t2, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t2, t2, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, b, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Z3, Z3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Z3, Z3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t0, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t0, t0, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t0, t4, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, t0, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, Z3); +} + +/*- + * out1 = (arg1 == 0) ? 0 : nz + * NB: this is not a "mod p equiv" 0, but literal 0 + * NB: this is not a real Fiat function, just named that way for consistency. + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_nonzero(limb_t *out1, + const fe_t arg1) { + limb_t x1 = 0; + int i; + + for (i = 0; i < LIMB_CNT; i++) x1 |= arg1[i]; + *out1 = x1; +} + +/*- + * 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.op3 + * https://eprint.iacr.org/2015/1060 Alg 5 + * ASSERT: a = -3 + */ +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, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t4, Y2, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, t4, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, X2, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, Y3, X1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, b, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, X3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Z3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, b, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, Z1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t2, t1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t0, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, t4, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t2, t0, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(X3, t3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, t4, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, t1); + + /* if P is inf, throw all that away and take Q */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(R->X, nz, Q->X, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 4 + * ASSERT: a = -3 + */ +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, t4, t5; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t2, Z1, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, Y1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t5, Y2, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t4, t4, t5); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t5, t1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t4, t4, t5); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, X1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, X2, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(X3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, b, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, X3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Z3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, b, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, t2, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t2, t1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t0, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, t4, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t2, t0, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(X3, t3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, t4, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, t1); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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(char out[103], const unsigned char in[64]) { + int i; + char 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(char out[513], const unsigned char in[64]) { + int i; + char 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; + } +} + +/*- + * Simulateous 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; + char anaf[513] = {0}; + char bnaf[513] = {0}; + pt_prj_t Q; + 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_paramSetA_opp(Q.Y, Q.Y); + 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.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_paramSetA_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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; + char rnaf[103] = {0}; + pt_prj_t Q, lut; + 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_paramSetA_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_opp(out->Y, lut.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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; + char rnaf[103] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 9; i >= 0; i--) { + for (j = 0; i != 9 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 12; j++) { + if (j * 10 + i > 102) continue; + d = rnaf[j * 10 + 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_paramSetA_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_opp(out->Y, lut.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.X, scalar[0] & 1, R.X, + Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.Y, scalar[0] & 1, R.Y, + Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.Z, scalar[0] & 1, R.Z, + Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(out->Y, Q.Y, Q.Z); +} + +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_paramSetA_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetA_from_bytes(P.Y, iny); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_tc26_gost_3410_2012_512_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_to_bytes(outy, P.Y); +} + +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_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_to_bytes(outy, P.Y); +} + +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_paramSetA_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetA_from_bytes(P.Y, iny); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_tc26_gost_3410_2012_512_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[64] = {0}; + + int + point_mul_two_id_tc26_gost_3410_2012_512_paramSetA( + 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; +} + + int + point_mul_id_tc26_gost_3410_2012_512_paramSetA(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; +} + + int + point_mul_g_id_tc26_gost_3410_2012_512_paramSetA(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; + +#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_paramSetA_carry_add(c, a, b) \ + fiat_id_tc26_gost_3410_2012_512_paramSetA_add(c, a, b); \ + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry(c, c) +#define fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(c, a, b) \ + fiat_id_tc26_gost_3410_2012_512_paramSetA_sub(c, a, b); \ + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry(c, c) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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 id_tc26_gost_3410_2012_512_paramSetA 32 '(auto)' '2^512 - 569' */ +/* curve description: id_tc26_gost_3410_2012_512_paramSetA */ +/* 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.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) */ + +#include +typedef unsigned char fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1; +typedef signed char fiat_id_tc26_gost_3410_2012_512_paramSetA_int1; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_addcarryx_u22( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint32_t x1; + uint32_t x2; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT32_C(0x3fffff)); + x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x1 >> 22); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_subborrowx_u22( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int32_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetA_int1 x2; + uint32_t x3; + x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_int1)(x1 >> 22); + x3 = (x1 & UINT32_C(0x3fffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_addcarryx_u23( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint32_t x1; + uint32_t x2; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x3; + x1 = ((arg1 + arg2) + arg3); + x2 = (x1 & UINT32_C(0x7fffff)); + x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x1 >> 23); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_subborrowx_u23( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int32_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetA_int1 x2; + uint32_t x3; + x1 = ((int32_t)(arg2 - arg1) - (int32_t)arg3); + x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_int1)(x1 >> 23); + x3 = (x1 & UINT32_C(0x7fffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_cmovznz_u32( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 arg1, + uint32_t arg2, uint32_t arg3) { + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x1; + uint32_t x2; + uint32_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_tc26_gost_3410_2012_512_paramSetA_int1)(0x0 - x1) & + UINT32_C(0xffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * arg2: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_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_paramSetA_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_paramSetA_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 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_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_paramSetA_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_paramSetA_carry reduces a field element. + * Postconditions: + * eval out1 mod m = eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_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_paramSetA_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_paramSetA_add adds two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 + eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * arg2: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_sub subtracts two field elements. + * Postconditions: + * eval out1 mod m = (eval arg1 - eval arg2) mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * arg2: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_opp negates a field element. + * Postconditions: + * eval out1 mod m = -eval arg1 mod m + * + * Input Bounds: + * arg1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_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_paramSetA_selectznz( + uint32_t out1[23], fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_cmovznz_u32(&x1, arg1, (arg2[0]), + (arg3[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32(&x2, arg1, (arg2[1]), + (arg3[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32(&x3, arg1, (arg2[2]), + (arg3[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32(&x4, arg1, (arg2[3]), + (arg3[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32(&x5, arg1, (arg2[4]), + (arg3[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32(&x6, arg1, (arg2[5]), + (arg3[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32(&x7, arg1, (arg2[6]), + (arg3[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32(&x8, arg1, (arg2[7]), + (arg3[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32(&x9, arg1, (arg2[8]), + (arg3[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32(&x10, arg1, (arg2[9]), + (arg3[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x11, arg1, (arg2[10]), (arg3[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x12, arg1, (arg2[11]), (arg3[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x13, arg1, (arg2[12]), (arg3[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x14, arg1, (arg2[13]), (arg3[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x15, arg1, (arg2[14]), (arg3[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x16, arg1, (arg2[15]), (arg3[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x17, arg1, (arg2[16]), (arg3[16])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x18, arg1, (arg2[17]), (arg3[17])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x19, arg1, (arg2[18]), (arg3[18])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x20, arg1, (arg2[19]), (arg3[19])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x21, arg1, (arg2[20]), (arg3[20])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32( + &x22, arg1, (arg2[21]), (arg3[21])); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_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 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * 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_paramSetA_to_bytes( + uint8_t out1[64], const uint32_t arg1[23]) { + uint32_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x2; + uint32_t x3; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x4; + uint32_t x5; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x6; + uint32_t x7; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x8; + uint32_t x9; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x10; + uint32_t x11; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x12; + uint32_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x14; + uint32_t x15; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x16; + uint32_t x17; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x18; + uint32_t x19; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x20; + uint32_t x21; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x22; + uint32_t x23; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x24; + uint32_t x25; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x26; + uint32_t x27; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x28; + uint32_t x29; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x30; + uint32_t x31; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x32; + uint32_t x33; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x34; + uint32_t x35; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x36; + uint32_t x37; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x38; + uint32_t x39; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x40; + uint32_t x41; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x42; + uint32_t x43; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x44; + uint32_t x45; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x46; + uint32_t x47; + uint32_t x48; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x49; + uint32_t x50; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x51; + uint32_t x52; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x53; + uint32_t x54; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x55; + uint32_t x56; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x57; + uint32_t x58; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x59; + uint32_t x60; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x61; + uint32_t x62; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x63; + uint32_t x64; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x65; + uint32_t x66; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x67; + uint32_t x68; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x69; + uint32_t x70; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x71; + uint32_t x72; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x73; + uint32_t x74; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x75; + uint32_t x76; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x77; + uint32_t x78; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x79; + uint32_t x80; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x81; + uint32_t x82; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x83; + uint32_t x84; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x85; + uint32_t x86; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x87; + uint32_t x88; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x89; + uint32_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x91; + uint32_t x92; + fiat_id_tc26_gost_3410_2012_512_paramSetA_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; + uint32_t x114; + uint8_t x115; + uint8_t x116; + uint8_t x117; + uint32_t x118; + uint32_t x119; + uint8_t x120; + uint32_t x121; + uint8_t x122; + uint8_t x123; + uint8_t x124; + uint32_t x125; + uint32_t x126; + uint8_t x127; + uint32_t x128; + uint8_t x129; + uint8_t x130; + uint8_t x131; + uint32_t x132; + uint32_t x133; + uint8_t x134; + uint32_t x135; + uint8_t x136; + uint8_t x137; + uint8_t x138; + uint32_t x139; + uint32_t x140; + uint8_t x141; + uint8_t x142; + uint8_t x143; + uint8_t x144; + uint32_t x145; + uint8_t x146; + uint8_t x147; + uint8_t x148; + uint32_t x149; + uint32_t x150; + uint8_t x151; + uint32_t x152; + uint8_t x153; + uint8_t x154; + uint8_t x155; + uint32_t x156; + uint32_t x157; + uint8_t x158; + uint32_t x159; + uint8_t x160; + uint8_t x161; + uint8_t x162; + uint32_t x163; + uint32_t x164; + uint8_t x165; + uint32_t x166; + uint8_t x167; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x168; + uint8_t x169; + uint32_t x170; + uint32_t x171; + uint8_t x172; + uint8_t x173; + uint8_t x174; + uint32_t x175; + uint32_t x176; + uint8_t x177; + uint32_t x178; + uint8_t x179; + uint8_t x180; + uint8_t x181; + uint32_t x182; + uint32_t x183; + uint8_t x184; + uint32_t x185; + uint8_t x186; + uint8_t x187; + uint8_t x188; + uint32_t x189; + uint32_t x190; + uint8_t x191; + uint32_t x192; + uint8_t x193; + uint8_t x194; + uint8_t x195; + uint32_t x196; + uint32_t x197; + uint8_t x198; + uint8_t x199; + uint8_t x200; + uint8_t x201; + uint32_t x202; + uint8_t x203; + uint8_t x204; + uint8_t x205; + uint32_t x206; + uint32_t x207; + uint8_t x208; + uint32_t x209; + uint8_t x210; + uint8_t x211; + uint8_t x212; + uint32_t x213; + uint32_t x214; + uint8_t x215; + uint32_t x216; + uint8_t x217; + uint8_t x218; + uint8_t x219; + uint32_t x220; + uint32_t x221; + uint8_t x222; + uint32_t x223; + uint8_t x224; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x225; + uint8_t x226; + uint32_t x227; + uint32_t x228; + uint8_t x229; + uint8_t x230; + uint8_t x231; + uint32_t x232; + uint32_t x233; + uint8_t x234; + uint32_t x235; + uint8_t x236; + uint8_t x237; + uint8_t x238; + uint32_t x239; + uint32_t x240; + uint8_t x241; + uint32_t x242; + uint8_t x243; + uint8_t x244; + uint8_t x245; + uint32_t x246; + uint32_t x247; + uint8_t x248; + uint32_t x249; + uint8_t x250; + uint8_t x251; + uint8_t x252; + uint32_t x253; + uint32_t x254; + uint8_t x255; + uint8_t x256; + uint8_t x257; + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u23( + &x1, &x2, 0x0, (arg1[0]), UINT32_C(0x7ffdc7)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x3, &x4, x2, (arg1[1]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x5, &x6, x4, (arg1[2]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u23( + &x7, &x8, x6, (arg1[3]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x9, &x10, x8, (arg1[4]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x11, &x12, x10, (arg1[5]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x13, &x14, x12, (arg1[6]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u23( + &x15, &x16, x14, (arg1[7]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x17, &x18, x16, (arg1[8]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x19, &x20, x18, (arg1[9]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x21, &x22, x20, (arg1[10]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u23( + &x23, &x24, x22, (arg1[11]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x25, &x26, x24, (arg1[12]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x27, &x28, x26, (arg1[13]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x29, &x30, x28, (arg1[14]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u23( + &x31, &x32, x30, (arg1[15]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x33, &x34, x32, (arg1[16]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x35, &x36, x34, (arg1[17]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x37, &x38, x36, (arg1[18]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u23( + &x39, &x40, x38, (arg1[19]), UINT32_C(0x7fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x41, &x42, x40, (arg1[20]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x43, &x44, x42, (arg1[21]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_subborrowx_u22( + &x45, &x46, x44, (arg1[22]), UINT32_C(0x3fffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_cmovznz_u32(&x47, x46, 0x0, + UINT32_C(0xffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u23( + &x48, &x49, 0x0, x1, (x47 & UINT32_C(0x7ffdc7))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x50, &x51, x49, x3, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x52, &x53, x51, x5, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u23( + &x54, &x55, x53, x7, (x47 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x56, &x57, x55, x9, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x58, &x59, x57, x11, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x60, &x61, x59, x13, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u23( + &x62, &x63, x61, x15, (x47 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x64, &x65, x63, x17, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x66, &x67, x65, x19, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x68, &x69, x67, x21, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u23( + &x70, &x71, x69, x23, (x47 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x72, &x73, x71, x25, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x74, &x75, x73, x27, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x76, &x77, x75, x29, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u23( + &x78, &x79, x77, x31, (x47 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x80, &x81, x79, x33, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x82, &x83, x81, x35, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x84, &x85, x83, x37, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u23( + &x86, &x87, x85, x39, (x47 & UINT32_C(0x7fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x88, &x89, x87, x41, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_addcarryx_u22( + &x90, &x91, x89, x43, (x47 & UINT32_C(0x3fffff))); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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 = (x48 >> 8); + x115 = (uint8_t)(x48 & UINT8_C(0xff)); + x116 = (uint8_t)(x114 >> 8); + x117 = (uint8_t)(x114 & UINT8_C(0xff)); + x118 = (x116 + x113); + x119 = (x118 >> 8); + x120 = (uint8_t)(x118 & UINT8_C(0xff)); + x121 = (x119 >> 8); + x122 = (uint8_t)(x119 & UINT8_C(0xff)); + x123 = (uint8_t)(x121 >> 8); + x124 = (uint8_t)(x121 & UINT8_C(0xff)); + x125 = (x123 + x112); + x126 = (x125 >> 8); + x127 = (uint8_t)(x125 & UINT8_C(0xff)); + x128 = (x126 >> 8); + x129 = (uint8_t)(x126 & UINT8_C(0xff)); + x130 = (uint8_t)(x128 >> 8); + x131 = (uint8_t)(x128 & UINT8_C(0xff)); + x132 = (x130 + x111); + x133 = (x132 >> 8); + x134 = (uint8_t)(x132 & UINT8_C(0xff)); + x135 = (x133 >> 8); + x136 = (uint8_t)(x133 & UINT8_C(0xff)); + x137 = (uint8_t)(x135 >> 8); + x138 = (uint8_t)(x135 & UINT8_C(0xff)); + x139 = (x137 + x110); + x140 = (x139 >> 8); + x141 = (uint8_t)(x139 & UINT8_C(0xff)); + x142 = (uint8_t)(x140 >> 8); + x143 = (uint8_t)(x140 & UINT8_C(0xff)); + x144 = (uint8_t)(x142 & UINT8_C(0xff)); + x145 = (x58 >> 8); + x146 = (uint8_t)(x58 & UINT8_C(0xff)); + x147 = (uint8_t)(x145 >> 8); + x148 = (uint8_t)(x145 & UINT8_C(0xff)); + x149 = (x147 + x109); + x150 = (x149 >> 8); + x151 = (uint8_t)(x149 & UINT8_C(0xff)); + x152 = (x150 >> 8); + x153 = (uint8_t)(x150 & UINT8_C(0xff)); + x154 = (uint8_t)(x152 >> 8); + x155 = (uint8_t)(x152 & UINT8_C(0xff)); + x156 = (x154 + x108); + x157 = (x156 >> 8); + x158 = (uint8_t)(x156 & UINT8_C(0xff)); + x159 = (x157 >> 8); + x160 = (uint8_t)(x157 & UINT8_C(0xff)); + x161 = (uint8_t)(x159 >> 8); + x162 = (uint8_t)(x159 & UINT8_C(0xff)); + x163 = (x161 + x107); + x164 = (x163 >> 8); + x165 = (uint8_t)(x163 & UINT8_C(0xff)); + x166 = (x164 >> 8); + x167 = (uint8_t)(x164 & UINT8_C(0xff)); + x168 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x166 >> 8); + x169 = (uint8_t)(x166 & UINT8_C(0xff)); + x170 = (x168 + x106); + x171 = (x170 >> 8); + x172 = (uint8_t)(x170 & UINT8_C(0xff)); + x173 = (uint8_t)(x171 >> 8); + x174 = (uint8_t)(x171 & UINT8_C(0xff)); + x175 = (x173 + x105); + x176 = (x175 >> 8); + x177 = (uint8_t)(x175 & UINT8_C(0xff)); + x178 = (x176 >> 8); + x179 = (uint8_t)(x176 & UINT8_C(0xff)); + x180 = (uint8_t)(x178 >> 8); + x181 = (uint8_t)(x178 & UINT8_C(0xff)); + x182 = (x180 + x104); + x183 = (x182 >> 8); + x184 = (uint8_t)(x182 & UINT8_C(0xff)); + x185 = (x183 >> 8); + x186 = (uint8_t)(x183 & UINT8_C(0xff)); + x187 = (uint8_t)(x185 >> 8); + x188 = (uint8_t)(x185 & UINT8_C(0xff)); + x189 = (x187 + x103); + x190 = (x189 >> 8); + x191 = (uint8_t)(x189 & UINT8_C(0xff)); + x192 = (x190 >> 8); + x193 = (uint8_t)(x190 & UINT8_C(0xff)); + x194 = (uint8_t)(x192 >> 8); + x195 = (uint8_t)(x192 & UINT8_C(0xff)); + x196 = (x194 + x102); + x197 = (x196 >> 8); + x198 = (uint8_t)(x196 & UINT8_C(0xff)); + x199 = (uint8_t)(x197 >> 8); + x200 = (uint8_t)(x197 & UINT8_C(0xff)); + x201 = (uint8_t)(x199 & UINT8_C(0xff)); + x202 = (x76 >> 8); + x203 = (uint8_t)(x76 & UINT8_C(0xff)); + x204 = (uint8_t)(x202 >> 8); + x205 = (uint8_t)(x202 & UINT8_C(0xff)); + x206 = (x204 + x101); + x207 = (x206 >> 8); + x208 = (uint8_t)(x206 & UINT8_C(0xff)); + x209 = (x207 >> 8); + x210 = (uint8_t)(x207 & UINT8_C(0xff)); + x211 = (uint8_t)(x209 >> 8); + x212 = (uint8_t)(x209 & UINT8_C(0xff)); + x213 = (x211 + x100); + x214 = (x213 >> 8); + x215 = (uint8_t)(x213 & UINT8_C(0xff)); + x216 = (x214 >> 8); + x217 = (uint8_t)(x214 & UINT8_C(0xff)); + x218 = (uint8_t)(x216 >> 8); + x219 = (uint8_t)(x216 & UINT8_C(0xff)); + x220 = (x218 + x99); + x221 = (x220 >> 8); + x222 = (uint8_t)(x220 & UINT8_C(0xff)); + x223 = (x221 >> 8); + x224 = (uint8_t)(x221 & UINT8_C(0xff)); + x225 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x223 >> 8); + x226 = (uint8_t)(x223 & UINT8_C(0xff)); + x227 = (x225 + x98); + x228 = (x227 >> 8); + x229 = (uint8_t)(x227 & UINT8_C(0xff)); + x230 = (uint8_t)(x228 >> 8); + x231 = (uint8_t)(x228 & UINT8_C(0xff)); + x232 = (x230 + x97); + x233 = (x232 >> 8); + x234 = (uint8_t)(x232 & UINT8_C(0xff)); + x235 = (x233 >> 8); + x236 = (uint8_t)(x233 & UINT8_C(0xff)); + x237 = (uint8_t)(x235 >> 8); + x238 = (uint8_t)(x235 & UINT8_C(0xff)); + x239 = (x237 + x96); + x240 = (x239 >> 8); + x241 = (uint8_t)(x239 & UINT8_C(0xff)); + x242 = (x240 >> 8); + x243 = (uint8_t)(x240 & UINT8_C(0xff)); + x244 = (uint8_t)(x242 >> 8); + x245 = (uint8_t)(x242 & UINT8_C(0xff)); + x246 = (x244 + x95); + x247 = (x246 >> 8); + x248 = (uint8_t)(x246 & UINT8_C(0xff)); + x249 = (x247 >> 8); + x250 = (uint8_t)(x247 & UINT8_C(0xff)); + x251 = (uint8_t)(x249 >> 8); + x252 = (uint8_t)(x249 & UINT8_C(0xff)); + x253 = (x251 + x94); + x254 = (x253 >> 8); + x255 = (uint8_t)(x253 & UINT8_C(0xff)); + x256 = (uint8_t)(x254 >> 8); + x257 = (uint8_t)(x254 & UINT8_C(0xff)); + out1[0] = x115; + out1[1] = x117; + out1[2] = x120; + out1[3] = x122; + out1[4] = x124; + out1[5] = x127; + out1[6] = x129; + out1[7] = x131; + out1[8] = x134; + out1[9] = x136; + out1[10] = x138; + out1[11] = x141; + out1[12] = x143; + out1[13] = x144; + out1[14] = x146; + out1[15] = x148; + out1[16] = x151; + out1[17] = x153; + out1[18] = x155; + out1[19] = x158; + out1[20] = x160; + out1[21] = x162; + out1[22] = x165; + out1[23] = x167; + out1[24] = x169; + out1[25] = x172; + out1[26] = x174; + out1[27] = x177; + out1[28] = x179; + out1[29] = x181; + out1[30] = x184; + out1[31] = x186; + out1[32] = x188; + out1[33] = x191; + out1[34] = x193; + out1[35] = x195; + out1[36] = x198; + out1[37] = x200; + out1[38] = x201; + out1[39] = x203; + out1[40] = x205; + out1[41] = x208; + out1[42] = x210; + out1[43] = x212; + out1[44] = x215; + out1[45] = x217; + out1[46] = x219; + out1[47] = x222; + out1[48] = x224; + out1[49] = x226; + out1[50] = x229; + out1[51] = x231; + out1[52] = x234; + out1[53] = x236; + out1[54] = x238; + out1[55] = x241; + out1[56] = x243; + out1[57] = x245; + out1[58] = x248; + out1[59] = x250; + out1[60] = x252; + out1[61] = x255; + out1[62] = x257; + out1[63] = x256; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetA_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 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x66; + uint32_t x67; + uint32_t x68; + uint32_t x69; + uint32_t x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + uint32_t x82; + uint32_t x83; + uint32_t x84; + uint32_t x85; + uint32_t x86; + uint32_t x87; + uint32_t x88; + uint32_t x89; + uint32_t x90; + uint8_t x91; + uint32_t x92; + uint32_t x93; + uint8_t x94; + uint32_t x95; + uint32_t x96; + uint8_t x97; + uint32_t x98; + uint32_t x99; + uint32_t x100; + uint8_t x101; + uint32_t x102; + uint32_t x103; + uint8_t x104; + uint32_t x105; + uint32_t x106; + uint8_t x107; + uint32_t x108; + uint32_t x109; + uint8_t x110; + uint32_t x111; + uint32_t x112; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x113; + uint32_t x114; + uint32_t x115; + uint8_t x116; + uint32_t x117; + uint32_t x118; + uint8_t x119; + uint32_t x120; + uint32_t x121; + uint8_t x122; + uint32_t x123; + uint32_t x124; + uint32_t x125; + uint8_t x126; + uint32_t x127; + uint32_t x128; + uint8_t x129; + uint32_t x130; + uint32_t x131; + uint8_t x132; + uint32_t x133; + uint32_t x134; + uint8_t x135; + uint32_t x136; + uint32_t x137; + fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1 x138; + uint32_t x139; + uint32_t x140; + uint8_t x141; + uint32_t x142; + uint32_t x143; + uint8_t x144; + uint32_t x145; + uint32_t x146; + uint8_t x147; + uint32_t x148; + uint32_t x149; + 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 = (x64 + (x63 + x62)); + x66 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x65 >> 23); + x67 = (x65 & UINT32_C(0x7fffff)); + x68 = (x2 + x1); + x69 = (x5 + (x4 + x3)); + x70 = (x8 + (x7 + x6)); + x71 = (x11 + (x10 + x9)); + x72 = (x13 + x12); + x73 = (x16 + (x15 + x14)); + x74 = (x19 + (x18 + x17)); + x75 = (x22 + (x21 + x20)); + x76 = (x25 + (x24 + x23)); + x77 = (x27 + x26); + x78 = (x30 + (x29 + x28)); + x79 = (x33 + (x32 + x31)); + x80 = (x36 + (x35 + x34)); + x81 = (x38 + x37); + x82 = (x41 + (x40 + x39)); + x83 = (x44 + (x43 + x42)); + x84 = (x47 + (x46 + x45)); + x85 = (x50 + (x49 + x48)); + x86 = (x52 + x51); + x87 = (x55 + (x54 + x53)); + x88 = (x58 + (x57 + x56)); + x89 = (x61 + (x60 + x59)); + x90 = (x66 + x89); + x91 = (uint8_t)(x90 >> 22); + x92 = (x90 & UINT32_C(0x3fffff)); + x93 = (x91 + x88); + x94 = (uint8_t)(x93 >> 22); + x95 = (x93 & UINT32_C(0x3fffff)); + x96 = (x94 + x87); + x97 = (uint8_t)(x96 >> 23); + x98 = (x96 & UINT32_C(0x7fffff)); + x99 = (x97 + x86); + x100 = (x99 & UINT32_C(0x3fffff)); + x101 = (uint8_t)(x85 >> 22); + x102 = (x85 & UINT32_C(0x3fffff)); + x103 = (x101 + x84); + x104 = (uint8_t)(x103 >> 22); + x105 = (x103 & UINT32_C(0x3fffff)); + x106 = (x104 + x83); + x107 = (uint8_t)(x106 >> 23); + x108 = (x106 & UINT32_C(0x7fffff)); + x109 = (x107 + x82); + x110 = (uint8_t)(x109 >> 22); + x111 = (x109 & UINT32_C(0x3fffff)); + x112 = (x110 + x81); + x113 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x112 >> 22); + x114 = (x112 & UINT32_C(0x3fffff)); + x115 = (x113 + x80); + x116 = (uint8_t)(x115 >> 22); + x117 = (x115 & UINT32_C(0x3fffff)); + x118 = (x116 + x79); + x119 = (uint8_t)(x118 >> 23); + x120 = (x118 & UINT32_C(0x7fffff)); + x121 = (x119 + x78); + x122 = (uint8_t)(x121 >> 22); + x123 = (x121 & UINT32_C(0x3fffff)); + x124 = (x122 + x77); + x125 = (x124 & UINT32_C(0x3fffff)); + x126 = (uint8_t)(x76 >> 22); + x127 = (x76 & UINT32_C(0x3fffff)); + x128 = (x126 + x75); + x129 = (uint8_t)(x128 >> 23); + x130 = (x128 & UINT32_C(0x7fffff)); + x131 = (x129 + x74); + x132 = (uint8_t)(x131 >> 22); + x133 = (x131 & UINT32_C(0x3fffff)); + x134 = (x132 + x73); + x135 = (uint8_t)(x134 >> 22); + x136 = (x134 & UINT32_C(0x3fffff)); + x137 = (x135 + x72); + x138 = (fiat_id_tc26_gost_3410_2012_512_paramSetA_uint1)(x137 >> 22); + x139 = (x137 & UINT32_C(0x3fffff)); + x140 = (x138 + x71); + x141 = (uint8_t)(x140 >> 23); + x142 = (x140 & UINT32_C(0x7fffff)); + x143 = (x141 + x70); + x144 = (uint8_t)(x143 >> 22); + x145 = (x143 & UINT32_C(0x3fffff)); + x146 = (x144 + x69); + x147 = (uint8_t)(x146 >> 22); + x148 = (x146 & UINT32_C(0x3fffff)); + x149 = (x147 + x68); + out1[0] = x67; + out1[1] = x92; + out1[2] = x95; + out1[3] = x98; + out1[4] = x100; + out1[5] = x102; + out1[6] = x105; + out1[7] = x108; + out1[8] = x111; + out1[9] = x114; + out1[10] = x117; + out1[11] = x120; + out1[12] = x123; + out1[13] = x125; + out1[14] = x127; + out1[15] = x130; + out1[16] = x133; + out1[17] = x136; + out1[18] = x139; + out1[19] = x142; + out1[20] = x145; + out1[21] = x148; + out1[22] = x149; +} + +/* 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_paramSetA/fe_inv.op3 + * custom repunit addition chain + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_carry_square(acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t2, acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t3, acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t3); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t6, acc, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t6); + for (i = 0; i < 5; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t12, acc, t6); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t12); + for (i = 0; i < 11; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t24, acc, t12); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t24); + for (i = 0; i < 23; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t48, acc, t24); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t48); + for (i = 0; i < 47; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t96, acc, t48); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t96); + for (i = 0; i < 5; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t102, acc, t6); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t102); + for (i = 0; i < 95; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t198, acc, t96); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t198); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t200, acc, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t200); + for (i = 0; i < 199; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t400, acc, t200); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t400); + for (i = 0; i < 101; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t502, acc, t102); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, t502); + for (i = 0; i < 3; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(acc, acc, t3); + for (i = 0; i < 4; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(acc, acc, t1); + for (i = 0; i < 2; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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_b[23] = { + UINT32_C(0x0071C760), UINT32_C(0x0020F0B4), UINT32_C(0x000A818C), + UINT32_C(0x007DC8EC), UINT32_C(0x003E753A), UINT32_C(0x001D862E), + UINT32_C(0x00036A43), UINT32_C(0x00457401), UINT32_C(0x002C2996), + UINT32_C(0x00398693), UINT32_C(0x00396121), UINT32_C(0x00132F71), + UINT32_C(0x000FD0B6), UINT32_C(0x002F4207), UINT32_C(0x0030E879), + UINT32_C(0x0051D872), UINT32_C(0x0025C12B), UINT32_C(0x003E3B46), + UINT32_C(0x0015B333), UINT32_C(0x00037A16), UINT32_C(0x00321B77), + UINT32_C(0x0005DEDF), UINT32_C(0x003A3094)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[11][16] = { + { + {{UINT32_C(0x00000003), 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(0x0015F2A4), UINT32_C(0x001396A4), UINT32_C(0x00044D2C), + UINT32_C(0x0046BEB7), UINT32_C(0x003F97F0), UINT32_C(0x00298028), + UINT32_C(0x0038E907), UINT32_C(0x005E6A50), UINT32_C(0x001D27AE), + UINT32_C(0x0027E81B), UINT32_C(0x002C4D7C), UINT32_C(0x00490EF8), + UINT32_C(0x001CBEFA), UINT32_C(0x0020193F), UINT32_C(0x002BC177), + UINT32_C(0x004EB3C6), UINT32_C(0x0032F0E4), UINT32_C(0x000A1CD9), + UINT32_C(0x000B712A), UINT32_C(0x004C3710), UINT32_C(0x000DAB8E), + UINT32_C(0x003E87A8), UINT32_C(0x001D40F3)}}, + {{UINT32_C(0x004B87C3), UINT32_C(0x0028D0F9), UINT32_C(0x0020B709), + UINT32_C(0x000A89D0), UINT32_C(0x0033EE84), UINT32_C(0x003AEC55), + UINT32_C(0x000C2241), UINT32_C(0x0032F57B), UINT32_C(0x002BAEC9), + UINT32_C(0x002696E9), UINT32_C(0x00250816), UINT32_C(0x005D2A1E), + UINT32_C(0x001F488F), UINT32_C(0x0010A475), UINT32_C(0x0028A117), + UINT32_C(0x00302585), UINT32_C(0x002D8AB6), UINT32_C(0x002CFF09), + UINT32_C(0x002EDAD2), UINT32_C(0x006A726B), UINT32_C(0x002899FA), + UINT32_C(0x002B2712), UINT32_C(0x00287FC6)}, + {UINT32_C(0x000D90D6), UINT32_C(0x002FD8A3), UINT32_C(0x003892E6), + UINT32_C(0x0049F6D8), UINT32_C(0x001BDC46), UINT32_C(0x0014C636), + UINT32_C(0x002531B7), UINT32_C(0x007AC2FE), UINT32_C(0x002DDD59), + UINT32_C(0x0033E260), UINT32_C(0x00275EFC), UINT32_C(0x0075988E), + UINT32_C(0x003333F7), UINT32_C(0x0020678F), UINT32_C(0x000FBFA3), + UINT32_C(0x00235FE1), UINT32_C(0x0020F1D2), UINT32_C(0x00373098), + UINT32_C(0x000C4DDA), UINT32_C(0x00606E9E), UINT32_C(0x00118DFC), + UINT32_C(0x000417EC), UINT32_C(0x000F2D71)}}, + {{UINT32_C(0x007F1E5F), UINT32_C(0x001419C8), UINT32_C(0x002CF1D7), + UINT32_C(0x000E5B8F), UINT32_C(0x00025B6A), UINT32_C(0x00099E5B), + UINT32_C(0x001804DC), UINT32_C(0x002F7572), UINT32_C(0x002A640E), + UINT32_C(0x000FB103), UINT32_C(0x00291840), UINT32_C(0x007FD916), + UINT32_C(0x0005B8C9), UINT32_C(0x00131C59), UINT32_C(0x0031C148), + UINT32_C(0x002BF81B), UINT32_C(0x00139B07), UINT32_C(0x002FF2FF), + UINT32_C(0x00049C2D), UINT32_C(0x0011BB6C), UINT32_C(0x002B0A64), + UINT32_C(0x001D12B8), UINT32_C(0x0015A2A0)}, + {UINT32_C(0x0006CBC6), UINT32_C(0x0027724E), UINT32_C(0x00302B5D), + UINT32_C(0x001BC2F1), UINT32_C(0x003F55C0), UINT32_C(0x003AA25F), + UINT32_C(0x00232F00), UINT32_C(0x0074A629), UINT32_C(0x00037B4E), + UINT32_C(0x0024E8BE), UINT32_C(0x002A188A), UINT32_C(0x002CB205), + UINT32_C(0x0003ED36), UINT32_C(0x001C4269), UINT32_C(0x002BD5C1), + UINT32_C(0x0026AD6C), UINT32_C(0x001235FE), UINT32_C(0x001CF2C0), + UINT32_C(0x0024E745), UINT32_C(0x0068766F), UINT32_C(0x002BE51F), + UINT32_C(0x001B57A0), UINT32_C(0x001E35B3)}}, + {{UINT32_C(0x005256E0), UINT32_C(0x003F836F), UINT32_C(0x00373455), + UINT32_C(0x0075BA3A), UINT32_C(0x002108B7), UINT32_C(0x001C82BE), + UINT32_C(0x00267DD8), UINT32_C(0x004ECEBF), UINT32_C(0x002F62E6), + UINT32_C(0x000A8F9E), UINT32_C(0x000CDAFA), UINT32_C(0x0043A073), + UINT32_C(0x00313659), UINT32_C(0x00154A30), UINT32_C(0x0016402E), + UINT32_C(0x001175DB), UINT32_C(0x000E2798), UINT32_C(0x001F5060), + UINT32_C(0x0033E5EC), UINT32_C(0x001D0B54), UINT32_C(0x001ADD71), + UINT32_C(0x0023DAD9), UINT32_C(0x001E1CA5)}, + {UINT32_C(0x00755E5A), UINT32_C(0x00183470), UINT32_C(0x0023F0D4), + UINT32_C(0x00313928), UINT32_C(0x002DD729), UINT32_C(0x001D3E91), + UINT32_C(0x0035AE71), UINT32_C(0x005318A6), UINT32_C(0x002F3EDB), + UINT32_C(0x00289630), UINT32_C(0x0038D891), UINT32_C(0x007CF062), + UINT32_C(0x0038EE6A), UINT32_C(0x0013AFF2), UINT32_C(0x002E68F8), + UINT32_C(0x0064FAA0), UINT32_C(0x003BF0E8), UINT32_C(0x000AA0E7), + UINT32_C(0x0002840F), UINT32_C(0x003DE33E), UINT32_C(0x0022D493), + UINT32_C(0x003F570B), UINT32_C(0x002197B3)}}, + {{UINT32_C(0x003642A2), UINT32_C(0x00299DCA), UINT32_C(0x003D77E1), + UINT32_C(0x00489D30), UINT32_C(0x0027522E), UINT32_C(0x00240D64), + UINT32_C(0x002F9F74), UINT32_C(0x0019C938), UINT32_C(0x00296297), + UINT32_C(0x001E1814), UINT32_C(0x0004E1B7), UINT32_C(0x0023D69C), + UINT32_C(0x0003213C), UINT32_C(0x0004FF86), UINT32_C(0x001C3786), + UINT32_C(0x00304EA3), UINT32_C(0x0014189F), UINT32_C(0x0006EA0F), + UINT32_C(0x00069315), UINT32_C(0x0011E349), UINT32_C(0x00397B6C), + UINT32_C(0x0000F3CD), UINT32_C(0x002183EC)}, + {UINT32_C(0x002E3C8E), UINT32_C(0x00250F3A), UINT32_C(0x003F23C0), + UINT32_C(0x000E6089), UINT32_C(0x001AA647), UINT32_C(0x001449A0), + UINT32_C(0x001EE430), UINT32_C(0x006EFFDC), UINT32_C(0x002D388D), + UINT32_C(0x0019E36B), UINT32_C(0x001D016D), UINT32_C(0x000829C5), + UINT32_C(0x00391C21), UINT32_C(0x00271FC6), UINT32_C(0x002F3A60), + UINT32_C(0x0019B88F), UINT32_C(0x001CF454), UINT32_C(0x002B6D5C), + UINT32_C(0x001DAE4B), UINT32_C(0x0014A040), UINT32_C(0x002920C3), + UINT32_C(0x0017BC1F), UINT32_C(0x0019D5E3)}}, + {{UINT32_C(0x00135C5B), UINT32_C(0x001DC3CE), UINT32_C(0x0004C781), + UINT32_C(0x00080E30), UINT32_C(0x0009851D), UINT32_C(0x00350569), + UINT32_C(0x002E8442), UINT32_C(0x001051D8), UINT32_C(0x0004FD70), + UINT32_C(0x00134424), UINT32_C(0x000F2B29), UINT32_C(0x00685F52), + UINT32_C(0x002DDECE), UINT32_C(0x00008902), UINT32_C(0x002F4764), + UINT32_C(0x000E5C3D), UINT32_C(0x0032A0B9), UINT32_C(0x001A6033), + UINT32_C(0x0012A3E6), UINT32_C(0x006BF5EC), UINT32_C(0x003D93F8), + UINT32_C(0x00360B6E), UINT32_C(0x0018B3FC)}, + {UINT32_C(0x004ECF79), UINT32_C(0x0000B2AA), UINT32_C(0x003FB9C2), + UINT32_C(0x0078CE6D), UINT32_C(0x001215D4), UINT32_C(0x0038E3DD), + UINT32_C(0x000C3346), UINT32_C(0x004C9060), UINT32_C(0x003D3143), + UINT32_C(0x00243B10), UINT32_C(0x00259423), UINT32_C(0x006A2B73), + UINT32_C(0x0028505D), UINT32_C(0x000AE48C), UINT32_C(0x0000C6EE), + UINT32_C(0x00572490), UINT32_C(0x0027D956), UINT32_C(0x0014406A), + UINT32_C(0x0033BE99), UINT32_C(0x0018C2FA), UINT32_C(0x002F3AF0), + UINT32_C(0x001405C5), UINT32_C(0x00064B19)}}, + {{UINT32_C(0x001F2EBD), UINT32_C(0x000510C7), UINT32_C(0x0019AE41), + UINT32_C(0x007CB53E), UINT32_C(0x003AB38E), UINT32_C(0x003266F9), + UINT32_C(0x00208EB6), UINT32_C(0x006D10F3), UINT32_C(0x001D6C3A), + UINT32_C(0x002D7D80), UINT32_C(0x000B3C9D), UINT32_C(0x0048BDA2), + UINT32_C(0x0014CC2E), UINT32_C(0x00156682), UINT32_C(0x000BAEBC), + UINT32_C(0x0032A9C9), UINT32_C(0x001FD4D5), UINT32_C(0x00323040), + UINT32_C(0x00282E72), UINT32_C(0x003CE90A), UINT32_C(0x0007C3A6), + UINT32_C(0x0004F672), UINT32_C(0x0019034A)}, + {UINT32_C(0x004DEA72), UINT32_C(0x00355CF9), UINT32_C(0x002BBD82), + UINT32_C(0x004625D7), UINT32_C(0x0035A89F), UINT32_C(0x002CE049), + UINT32_C(0x001D8906), UINT32_C(0x0000050C), UINT32_C(0x00357091), + UINT32_C(0x001D1A1C), UINT32_C(0x001A15E2), UINT32_C(0x002C9AA7), + UINT32_C(0x001B1721), UINT32_C(0x003B7772), UINT32_C(0x003075BA), + UINT32_C(0x003ACE9C), UINT32_C(0x0018B5B9), UINT32_C(0x001483A0), + UINT32_C(0x002B8443), UINT32_C(0x000D0833), UINT32_C(0x0011414E), + UINT32_C(0x00377005), UINT32_C(0x001FE0BC)}}, + {{UINT32_C(0x00614D45), UINT32_C(0x000FACE1), UINT32_C(0x002E03FD), + UINT32_C(0x00104582), UINT32_C(0x0027B6D8), UINT32_C(0x002E45CA), + UINT32_C(0x003DC391), UINT32_C(0x000278F0), UINT32_C(0x00150F86), + UINT32_C(0x002EDE47), UINT32_C(0x0025399C), UINT32_C(0x004DCCC4), + UINT32_C(0x00186E7C), UINT32_C(0x000987AE), UINT32_C(0x00082ECC), + UINT32_C(0x007B6EE3), UINT32_C(0x00097785), UINT32_C(0x003E0986), + UINT32_C(0x001C91ED), UINT32_C(0x0061A3C8), UINT32_C(0x00291652), + UINT32_C(0x00089F6C), UINT32_C(0x000C0F4E)}, + {UINT32_C(0x00341422), UINT32_C(0x0016F7F9), UINT32_C(0x002A2213), + UINT32_C(0x000CC4C8), UINT32_C(0x002A5108), UINT32_C(0x0014C3FF), + UINT32_C(0x002A84FF), UINT32_C(0x007C98C9), UINT32_C(0x001C8206), + UINT32_C(0x0031B7CB), UINT32_C(0x0037BB04), UINT32_C(0x003E3334), + UINT32_C(0x0029AEB3), UINT32_C(0x003E65DA), UINT32_C(0x0020EE26), + UINT32_C(0x00779AF6), UINT32_C(0x00288AFE), UINT32_C(0x000D4B8D), + UINT32_C(0x001DB51B), UINT32_C(0x003BF6A3), UINT32_C(0x00381A92), + UINT32_C(0x0011D531), UINT32_C(0x00247F4E)}}, + {{UINT32_C(0x00709AE6), UINT32_C(0x00252549), UINT32_C(0x0007EE34), + UINT32_C(0x005D8045), UINT32_C(0x0038367B), UINT32_C(0x0035CCF0), + UINT32_C(0x0005CD45), UINT32_C(0x0072DFB7), UINT32_C(0x00059B58), + UINT32_C(0x002BB6E5), UINT32_C(0x003546BA), UINT32_C(0x001567C4), + UINT32_C(0x003C5F98), UINT32_C(0x002503E9), UINT32_C(0x003AB5A8), + UINT32_C(0x002858EB), UINT32_C(0x001535BC), UINT32_C(0x002DC366), + UINT32_C(0x0034ED0D), UINT32_C(0x00277DED), UINT32_C(0x00016E7E), + UINT32_C(0x001A35D9), UINT32_C(0x00234EA3)}, + {UINT32_C(0x0003CF55), UINT32_C(0x0026EE0D), UINT32_C(0x0025529F), + UINT32_C(0x0031335F), UINT32_C(0x00305D60), UINT32_C(0x00148F61), + UINT32_C(0x00343772), UINT32_C(0x004BD619), UINT32_C(0x0012E0C0), + UINT32_C(0x0013EA6E), UINT32_C(0x001A3BC0), UINT32_C(0x0069B10D), + UINT32_C(0x002CCEED), UINT32_C(0x002B62B5), UINT32_C(0x003456E2), + UINT32_C(0x0005151D), UINT32_C(0x00374FB6), UINT32_C(0x000F4CCC), + UINT32_C(0x001978D4), UINT32_C(0x003FA7E6), UINT32_C(0x00266D24), + UINT32_C(0x00248D2B), UINT32_C(0x00161AD6)}}, + {{UINT32_C(0x0032C9A3), UINT32_C(0x002C7C77), UINT32_C(0x000E3F02), + UINT32_C(0x003E504E), UINT32_C(0x001351CC), UINT32_C(0x00177427), + UINT32_C(0x0020C8E9), UINT32_C(0x0019A4C7), UINT32_C(0x000B0C5D), + UINT32_C(0x001F549F), UINT32_C(0x003B0C1B), UINT32_C(0x0021F5DE), + UINT32_C(0x000075B2), UINT32_C(0x0036927D), UINT32_C(0x00185855), + UINT32_C(0x004BD125), UINT32_C(0x0014BBC7), UINT32_C(0x001C0CC6), + UINT32_C(0x0022540C), UINT32_C(0x00552107), UINT32_C(0x002283DD), + UINT32_C(0x0006BA78), UINT32_C(0x0013823D)}, + {UINT32_C(0x001F97DE), UINT32_C(0x0028B5D5), UINT32_C(0x0030F546), + UINT32_C(0x0001A0B0), UINT32_C(0x0010CC6D), UINT32_C(0x001610C3), + UINT32_C(0x00245BEB), UINT32_C(0x003016D1), UINT32_C(0x001B8316), + UINT32_C(0x0016BA74), UINT32_C(0x002C99F7), UINT32_C(0x001CC511), + UINT32_C(0x0017550A), UINT32_C(0x0002060A), UINT32_C(0x00256CB7), + UINT32_C(0x0040BF9E), UINT32_C(0x0016677B), UINT32_C(0x0007D673), + UINT32_C(0x00182B4F), UINT32_C(0x002E8ADB), UINT32_C(0x001CBED4), + UINT32_C(0x002D048B), UINT32_C(0x000C037A)}}, + {{UINT32_C(0x005B2170), UINT32_C(0x002A20E5), UINT32_C(0x003A2CC9), + UINT32_C(0x002D459D), UINT32_C(0x001DECC6), UINT32_C(0x0031C1FE), + UINT32_C(0x000CE89C), UINT32_C(0x0028CB4A), UINT32_C(0x00228929), + UINT32_C(0x000C455B), UINT32_C(0x00288443), UINT32_C(0x0019205F), + UINT32_C(0x0023421A), UINT32_C(0x00352E01), UINT32_C(0x001E5137), + UINT32_C(0x0074C0C9), UINT32_C(0x0003A0D7), UINT32_C(0x003A7F32), + UINT32_C(0x002BDAAB), UINT32_C(0x0038CE1E), UINT32_C(0x000991A9), + UINT32_C(0x0031AAF9), UINT32_C(0x0036FF6B)}, + {UINT32_C(0x006C89E0), UINT32_C(0x00256380), UINT32_C(0x001F7866), + UINT32_C(0x000F7CD3), UINT32_C(0x001E0162), UINT32_C(0x001A7772), + UINT32_C(0x000474B0), UINT32_C(0x001B3366), UINT32_C(0x0024C27D), + UINT32_C(0x0033397C), UINT32_C(0x002DDFF7), UINT32_C(0x0003D06F), + UINT32_C(0x003CE689), UINT32_C(0x00087AFA), UINT32_C(0x00135BED), + UINT32_C(0x001E1302), UINT32_C(0x003FD153), UINT32_C(0x003F3F3D), + UINT32_C(0x0005DB43), UINT32_C(0x006193C9), UINT32_C(0x00174036), + UINT32_C(0x00258D52), UINT32_C(0x00046F1F)}}, + {{UINT32_C(0x0049FC14), UINT32_C(0x00007614), UINT32_C(0x001F7037), + UINT32_C(0x00592750), UINT32_C(0x00290B61), UINT32_C(0x000960A8), + UINT32_C(0x00194FF1), UINT32_C(0x00139CAC), UINT32_C(0x003E0952), + UINT32_C(0x00270EC5), UINT32_C(0x00088B6C), UINT32_C(0x004C78F1), + UINT32_C(0x001D53F4), UINT32_C(0x003170C1), UINT32_C(0x001BD840), + UINT32_C(0x00705662), UINT32_C(0x0020DE92), UINT32_C(0x00128651), + UINT32_C(0x003E0D7F), UINT32_C(0x007F2363), UINT32_C(0x00029F44), + UINT32_C(0x001B5FCC), UINT32_C(0x0012DCB6)}, + {UINT32_C(0x00715C01), UINT32_C(0x003BA447), UINT32_C(0x0014B2CF), + UINT32_C(0x000D0598), UINT32_C(0x0021BD5E), UINT32_C(0x003B2771), + UINT32_C(0x001C4456), UINT32_C(0x000B7702), UINT32_C(0x0034AD46), + UINT32_C(0x0020B4D4), UINT32_C(0x0034C10F), UINT32_C(0x00211BEE), + UINT32_C(0x00229380), UINT32_C(0x000F7D2E), UINT32_C(0x001DCFEE), + UINT32_C(0x00667394), UINT32_C(0x00181E9B), UINT32_C(0x000423C4), + UINT32_C(0x001ECE77), UINT32_C(0x00170479), UINT32_C(0x0032353F), + UINT32_C(0x00164DF6), UINT32_C(0x0016F1DE)}}, + {{UINT32_C(0x0075C5F8), UINT32_C(0x000385BF), UINT32_C(0x0031DD89), + UINT32_C(0x006E52CD), UINT32_C(0x0007AB18), UINT32_C(0x001DB7D7), + UINT32_C(0x00181DB9), UINT32_C(0x003116D9), UINT32_C(0x002F42C8), + UINT32_C(0x001008A8), UINT32_C(0x000955A8), UINT32_C(0x0016157F), + UINT32_C(0x00366962), UINT32_C(0x00374B18), UINT32_C(0x003DA6A4), + UINT32_C(0x004DD8AE), UINT32_C(0x00303056), UINT32_C(0x000814A3), + UINT32_C(0x001FD98E), UINT32_C(0x0054633B), UINT32_C(0x00196306), + UINT32_C(0x0036BE52), UINT32_C(0x001CFF52)}, + {UINT32_C(0x006F6BD4), UINT32_C(0x00363198), UINT32_C(0x0027A4A2), + UINT32_C(0x002E0CC3), UINT32_C(0x003815C9), UINT32_C(0x003F3192), + UINT32_C(0x0037B67C), UINT32_C(0x0030F20C), UINT32_C(0x002A1B35), + UINT32_C(0x0016C2B1), UINT32_C(0x0010040B), UINT32_C(0x006D50BA), + UINT32_C(0x0015627B), UINT32_C(0x00236233), UINT32_C(0x002BD95D), + UINT32_C(0x0068647C), UINT32_C(0x003DB8B8), UINT32_C(0x00090EB1), + UINT32_C(0x001829ED), UINT32_C(0x003AA621), UINT32_C(0x00281854), + UINT32_C(0x000579E2), UINT32_C(0x0027CDA0)}}, + {{UINT32_C(0x0056E4C3), UINT32_C(0x000E21FF), UINT32_C(0x0024F3B1), + UINT32_C(0x002D126D), UINT32_C(0x00125D7C), UINT32_C(0x0011EF67), + UINT32_C(0x000BD798), UINT32_C(0x00018629), UINT32_C(0x001299FE), + UINT32_C(0x0016DCCD), UINT32_C(0x001DB60A), UINT32_C(0x002AB062), + UINT32_C(0x003E7DDD), UINT32_C(0x002F1BF6), UINT32_C(0x000F1421), + UINT32_C(0x007DDEFC), UINT32_C(0x0022F932), UINT32_C(0x00327FBB), + UINT32_C(0x001E3684), UINT32_C(0x000F04E8), UINT32_C(0x0028B9F5), + UINT32_C(0x0000AC17), UINT32_C(0x001B586E)}, + {UINT32_C(0x0029C581), UINT32_C(0x001F0CDD), UINT32_C(0x000C57C8), + UINT32_C(0x005909C4), UINT32_C(0x003A26ED), UINT32_C(0x0032886A), + UINT32_C(0x0002D003), UINT32_C(0x0047BC86), UINT32_C(0x0004B488), + UINT32_C(0x0028EAC9), UINT32_C(0x00007E5F), UINT32_C(0x002AFB2F), + UINT32_C(0x0029FDA2), UINT32_C(0x00161194), UINT32_C(0x0003E7BC), + UINT32_C(0x000F8369), UINT32_C(0x000E94CC), UINT32_C(0x0037E9AD), + UINT32_C(0x0007994D), UINT32_C(0x00620DA2), UINT32_C(0x001C54F1), + UINT32_C(0x0003054F), UINT32_C(0x000F164E)}}, + {{UINT32_C(0x00485A6F), UINT32_C(0x0004577D), UINT32_C(0x003E3EB4), + UINT32_C(0x006C4E40), UINT32_C(0x00032DFF), UINT32_C(0x0036D9C3), + UINT32_C(0x003133C3), UINT32_C(0x003BD1C9), UINT32_C(0x002755D5), + UINT32_C(0x00118134), UINT32_C(0x001160F0), UINT32_C(0x00059163), + UINT32_C(0x003EB8FC), UINT32_C(0x00056FC9), UINT32_C(0x0028AED8), + UINT32_C(0x003179B5), UINT32_C(0x003FBF05), UINT32_C(0x00011E59), + UINT32_C(0x00011744), UINT32_C(0x003470B0), UINT32_C(0x00135BDE), + UINT32_C(0x00158952), UINT32_C(0x0000E6DB)}, + {UINT32_C(0x00532F1F), UINT32_C(0x003906A8), UINT32_C(0x002A32FC), + UINT32_C(0x00227E49), UINT32_C(0x00058EDF), UINT32_C(0x003D7DB2), + UINT32_C(0x0023DC29), UINT32_C(0x0070553D), UINT32_C(0x0004329B), + UINT32_C(0x003549B6), UINT32_C(0x003EC868), UINT32_C(0x000D7C98), + UINT32_C(0x00368C50), UINT32_C(0x000F57E5), UINT32_C(0x00126458), + UINT32_C(0x004D62F6), UINT32_C(0x0031CEF3), UINT32_C(0x00204DE0), + UINT32_C(0x00072E81), UINT32_C(0x007DA6C8), UINT32_C(0x003D4C1E), + UINT32_C(0x003FAAA5), UINT32_C(0x0018B7EB)}}, + {{UINT32_C(0x005B2BEF), UINT32_C(0x002EEA64), UINT32_C(0x0035ADEF), + UINT32_C(0x00037B6A), UINT32_C(0x003D7F26), UINT32_C(0x003F7AE8), + UINT32_C(0x0016082B), UINT32_C(0x004D0845), UINT32_C(0x003213FD), + UINT32_C(0x002B907C), UINT32_C(0x0009D773), UINT32_C(0x0032EB9F), + UINT32_C(0x000B9447), UINT32_C(0x000FF14B), UINT32_C(0x002CC862), + UINT32_C(0x000EE902), UINT32_C(0x001A1E93), UINT32_C(0x003B5022), + UINT32_C(0x0007EC85), UINT32_C(0x00773A1A), UINT32_C(0x001E3782), + UINT32_C(0x001F2F23), UINT32_C(0x00371A25)}, + {UINT32_C(0x00500C90), UINT32_C(0x00012947), UINT32_C(0x00276B35), + UINT32_C(0x00055EB4), UINT32_C(0x000B22A3), UINT32_C(0x001C3032), + UINT32_C(0x0034B27D), UINT32_C(0x0058FC68), UINT32_C(0x001DB835), + UINT32_C(0x0000E22D), UINT32_C(0x0026AF65), UINT32_C(0x005F11AC), + UINT32_C(0x002AB077), UINT32_C(0x0016A2BF), UINT32_C(0x002DE969), + UINT32_C(0x0014F0F9), UINT32_C(0x00142DA0), UINT32_C(0x00197B6C), + UINT32_C(0x00098CD4), UINT32_C(0x0076AB0A), UINT32_C(0x003EDF05), + UINT32_C(0x00165EF4), UINT32_C(0x002E8B63)}}, + }, + { + {{UINT32_C(0x0043FF72), UINT32_C(0x00371016), UINT32_C(0x00088C3D), + UINT32_C(0x003D3831), UINT32_C(0x0029E105), UINT32_C(0x000874C9), + UINT32_C(0x0028AD35), UINT32_C(0x0050A745), UINT32_C(0x00129E17), + UINT32_C(0x0006826F), UINT32_C(0x0003A7E7), UINT32_C(0x005A9957), + UINT32_C(0x003F5A11), UINT32_C(0x001E0D75), UINT32_C(0x00132E4A), + UINT32_C(0x001CACF1), UINT32_C(0x00106741), UINT32_C(0x0035B4A8), + UINT32_C(0x0038B784), UINT32_C(0x007346F0), UINT32_C(0x003DB373), + UINT32_C(0x001CED8B), UINT32_C(0x003B3CAB)}, + {UINT32_C(0x0005ACA1), UINT32_C(0x0003F976), UINT32_C(0x000C0B13), + UINT32_C(0x007066AA), UINT32_C(0x0037D80F), UINT32_C(0x00150B30), + UINT32_C(0x0022F326), UINT32_C(0x0034AEAA), UINT32_C(0x0008FECE), + UINT32_C(0x0038E83F), UINT32_C(0x003A6384), UINT32_C(0x0015A868), + UINT32_C(0x000D1591), UINT32_C(0x00111853), UINT32_C(0x0007CCDC), + UINT32_C(0x00088671), UINT32_C(0x000325D9), UINT32_C(0x0030192A), + UINT32_C(0x0001A7CA), UINT32_C(0x00363760), UINT32_C(0x001F97E8), + UINT32_C(0x002C79F3), UINT32_C(0x001B4F8F)}}, + {{UINT32_C(0x006A80D4), UINT32_C(0x0039A871), UINT32_C(0x001DED13), + UINT32_C(0x003F5D25), UINT32_C(0x0009BD11), UINT32_C(0x0015E36E), + UINT32_C(0x000EE574), UINT32_C(0x006F2527), UINT32_C(0x0004BD44), + UINT32_C(0x003A9039), UINT32_C(0x00158327), UINT32_C(0x0007B459), + UINT32_C(0x002C3FC0), UINT32_C(0x002902E4), UINT32_C(0x002368B3), + UINT32_C(0x0054306B), UINT32_C(0x002E6771), UINT32_C(0x0000025A), + UINT32_C(0x00359E84), UINT32_C(0x00753A6D), UINT32_C(0x001F1043), + UINT32_C(0x00198B2D), UINT32_C(0x001D7912)}, + {UINT32_C(0x007E5CCB), UINT32_C(0x000738A9), UINT32_C(0x00164BE0), + UINT32_C(0x001D6B62), UINT32_C(0x000EF92E), UINT32_C(0x00280CB8), + UINT32_C(0x0037C2AD), UINT32_C(0x00569D4A), UINT32_C(0x00279D0C), + UINT32_C(0x002F59F7), UINT32_C(0x003DAC74), UINT32_C(0x0042978C), + UINT32_C(0x0010DA80), UINT32_C(0x00217A9D), UINT32_C(0x00336498), + UINT32_C(0x00239BFB), UINT32_C(0x00367CF4), UINT32_C(0x00002665), + UINT32_C(0x0012FC23), UINT32_C(0x006B55F4), UINT32_C(0x0008389E), + UINT32_C(0x0010C55C), UINT32_C(0x003917A5)}}, + {{UINT32_C(0x000B001B), UINT32_C(0x0036253F), UINT32_C(0x00364099), + UINT32_C(0x00403910), UINT32_C(0x002FD274), UINT32_C(0x00240152), + UINT32_C(0x002222A5), UINT32_C(0x00038A33), UINT32_C(0x0015B0C3), + UINT32_C(0x001BA804), UINT32_C(0x000B91C9), UINT32_C(0x001E1D50), + UINT32_C(0x002C6A3F), UINT32_C(0x0002DA6D), UINT32_C(0x0031CDE7), + UINT32_C(0x005F8ABA), UINT32_C(0x0032F16C), UINT32_C(0x0005F59E), + UINT32_C(0x0027FB7F), UINT32_C(0x003F4395), UINT32_C(0x0005567B), + UINT32_C(0x00037388), UINT32_C(0x0031BC7C)}, + {UINT32_C(0x0021EB64), UINT32_C(0x000F56D8), UINT32_C(0x00063940), + UINT32_C(0x007222D6), UINT32_C(0x002072C6), UINT32_C(0x002E61E2), + UINT32_C(0x0016F379), UINT32_C(0x0027EADF), UINT32_C(0x003A6BD2), + UINT32_C(0x002F0B3A), UINT32_C(0x002FFAE6), UINT32_C(0x007DBBB0), + UINT32_C(0x00003399), UINT32_C(0x0015CF91), UINT32_C(0x00284363), + UINT32_C(0x003DC09B), UINT32_C(0x00305937), UINT32_C(0x001A75E2), + UINT32_C(0x0028D44C), UINT32_C(0x0052188E), UINT32_C(0x003F5117), + UINT32_C(0x002A7B19), UINT32_C(0x000F38A9)}}, + {{UINT32_C(0x0068B2E0), UINT32_C(0x0017FFC5), UINT32_C(0x0027AFC3), + UINT32_C(0x000A45A1), UINT32_C(0x001227B7), UINT32_C(0x000976FE), + UINT32_C(0x003CC399), UINT32_C(0x00111C12), UINT32_C(0x0021CDEC), + UINT32_C(0x000290FA), UINT32_C(0x000E0DC4), UINT32_C(0x004B8791), + UINT32_C(0x003123B8), UINT32_C(0x00257E85), UINT32_C(0x0031095C), + UINT32_C(0x00009042), UINT32_C(0x002E0671), UINT32_C(0x002EDE50), + UINT32_C(0x002522AF), UINT32_C(0x002113DA), UINT32_C(0x002136C8), + UINT32_C(0x003A4426), UINT32_C(0x00375E38)}, + {UINT32_C(0x004B72D7), UINT32_C(0x00317636), UINT32_C(0x002C6B14), + UINT32_C(0x0023C200), UINT32_C(0x00229CA0), UINT32_C(0x0018AB4E), + UINT32_C(0x0038DE7C), UINT32_C(0x0071C6F7), UINT32_C(0x0006D850), + UINT32_C(0x0007F5A9), UINT32_C(0x001ADEAD), UINT32_C(0x00171F68), + UINT32_C(0x0018927F), UINT32_C(0x001A4C5E), UINT32_C(0x0000DDCC), + UINT32_C(0x0038263E), UINT32_C(0x003C1F7F), UINT32_C(0x001B3C9A), + UINT32_C(0x003488F3), UINT32_C(0x0023C421), UINT32_C(0x002F2417), + UINT32_C(0x00068EDA), UINT32_C(0x00073EC6)}}, + {{UINT32_C(0x00740829), UINT32_C(0x003BBE8D), UINT32_C(0x00073E98), + UINT32_C(0x00356FAD), UINT32_C(0x003B7DDB), UINT32_C(0x002DC94B), + UINT32_C(0x0030C9A3), UINT32_C(0x001B8A3C), UINT32_C(0x0023BCCD), + UINT32_C(0x0003F076), UINT32_C(0x003A8A39), UINT32_C(0x0067C926), + UINT32_C(0x00057C86), UINT32_C(0x0027A91E), UINT32_C(0x0006BFD0), + UINT32_C(0x00268025), UINT32_C(0x0026C695), UINT32_C(0x0030F65C), + UINT32_C(0x0007A146), UINT32_C(0x001C03BD), UINT32_C(0x001A48A6), + UINT32_C(0x00327209), UINT32_C(0x00331030)}, + {UINT32_C(0x004BBAF6), UINT32_C(0x0014ED13), UINT32_C(0x00201E53), + UINT32_C(0x0019209B), UINT32_C(0x0018CD1E), UINT32_C(0x000DEF6D), + UINT32_C(0x00038012), UINT32_C(0x0045882E), UINT32_C(0x003736AB), + UINT32_C(0x001E713A), UINT32_C(0x002C4DFB), UINT32_C(0x003F0EEF), + UINT32_C(0x002CFF2D), UINT32_C(0x003250F5), UINT32_C(0x00078ABA), + UINT32_C(0x00678753), UINT32_C(0x00056E90), UINT32_C(0x00198BB5), + UINT32_C(0x003CE0AD), UINT32_C(0x007FA3C4), UINT32_C(0x00393AC2), + UINT32_C(0x00207404), UINT32_C(0x001C83C6)}}, + {{UINT32_C(0x0006EF83), UINT32_C(0x0015F1B3), UINT32_C(0x0012AA0F), + UINT32_C(0x0014518C), UINT32_C(0x002839B7), UINT32_C(0x000D1D3A), + UINT32_C(0x0004C1BA), UINT32_C(0x005F75C2), UINT32_C(0x000D10B9), + UINT32_C(0x0013D894), UINT32_C(0x000DB952), UINT32_C(0x000B1478), + UINT32_C(0x000CB9AA), UINT32_C(0x0011AD2E), UINT32_C(0x002894C3), + UINT32_C(0x0011DD4E), UINT32_C(0x000303E2), UINT32_C(0x001EEC21), + UINT32_C(0x001A194B), UINT32_C(0x005970C2), UINT32_C(0x00271263), + UINT32_C(0x0037CD83), UINT32_C(0x0000E91B)}, + {UINT32_C(0x0002F7FB), UINT32_C(0x0037D3D0), UINT32_C(0x00167E4D), + UINT32_C(0x002B340E), UINT32_C(0x0029810C), UINT32_C(0x000F2744), + UINT32_C(0x000500A9), UINT32_C(0x0077B334), UINT32_C(0x0033BBF3), + UINT32_C(0x0035F681), UINT32_C(0x002A089F), UINT32_C(0x0005BD0A), + UINT32_C(0x0034B55C), UINT32_C(0x001C94F6), UINT32_C(0x003E80FE), + UINT32_C(0x0012E6AD), UINT32_C(0x002E5578), UINT32_C(0x000FCD23), + UINT32_C(0x003D81BB), UINT32_C(0x000E9FC4), UINT32_C(0x002DCA2E), + UINT32_C(0x00163735), UINT32_C(0x00331F02)}}, + {{UINT32_C(0x006924AC), UINT32_C(0x0035ADA0), UINT32_C(0x001100A8), + UINT32_C(0x00267DEA), UINT32_C(0x00271C3D), UINT32_C(0x0028011C), + UINT32_C(0x0033F146), UINT32_C(0x00380BD9), UINT32_C(0x001E9B99), + UINT32_C(0x0038A9B3), UINT32_C(0x0023055C), UINT32_C(0x00402C40), + UINT32_C(0x000E057B), UINT32_C(0x002F5047), UINT32_C(0x0030ABB8), + UINT32_C(0x00177283), UINT32_C(0x00151E5A), UINT32_C(0x0026A491), + UINT32_C(0x00346A9D), UINT32_C(0x006A2686), UINT32_C(0x0010AE09), + UINT32_C(0x0031479F), UINT32_C(0x003F9361)}, + {UINT32_C(0x0022A729), UINT32_C(0x001A0AB6), UINT32_C(0x003A1834), + UINT32_C(0x004ADEAE), UINT32_C(0x0025C51B), UINT32_C(0x00380B76), + UINT32_C(0x00109BCA), UINT32_C(0x00326C1B), UINT32_C(0x002680D8), + UINT32_C(0x003F48F6), UINT32_C(0x000DCE07), UINT32_C(0x000D0CDC), + UINT32_C(0x0024513C), UINT32_C(0x001AAF42), UINT32_C(0x000F88A1), + UINT32_C(0x007680CC), UINT32_C(0x00032E52), UINT32_C(0x00028B7A), + UINT32_C(0x0028F444), UINT32_C(0x0013B5EA), UINT32_C(0x000BE2FE), + UINT32_C(0x00382F79), UINT32_C(0x0026D469)}}, + {{UINT32_C(0x002EF810), UINT32_C(0x003D7CA9), UINT32_C(0x0012A7CA), + UINT32_C(0x0066ED19), UINT32_C(0x003B6782), UINT32_C(0x001A688B), + UINT32_C(0x00057236), UINT32_C(0x003AB1DD), UINT32_C(0x002DCA9F), + UINT32_C(0x00318D65), UINT32_C(0x002C3201), UINT32_C(0x002651F2), + UINT32_C(0x0002585A), UINT32_C(0x00110B33), UINT32_C(0x002FC48F), + UINT32_C(0x0027FF7F), UINT32_C(0x000C314B), UINT32_C(0x00306B0F), + UINT32_C(0x002BCD62), UINT32_C(0x000E5451), UINT32_C(0x00372C81), + UINT32_C(0x0008B694), UINT32_C(0x001640E1)}, + {UINT32_C(0x005D5544), UINT32_C(0x00050CE4), UINT32_C(0x0017634F), + UINT32_C(0x0013A04A), UINT32_C(0x00106FDB), UINT32_C(0x001DFA5D), + UINT32_C(0x002B04EB), UINT32_C(0x0049FF7C), UINT32_C(0x0026E744), + UINT32_C(0x003D42A5), UINT32_C(0x002B0FD6), UINT32_C(0x0076FAC0), + UINT32_C(0x003ACF9E), UINT32_C(0x000B293A), UINT32_C(0x00120F10), + UINT32_C(0x0056D4D7), UINT32_C(0x003229A1), UINT32_C(0x001C7884), + UINT32_C(0x003CE57D), UINT32_C(0x003C86A7), UINT32_C(0x001588C1), + UINT32_C(0x0000D548), UINT32_C(0x0011BB4A)}}, + {{UINT32_C(0x0036250B), UINT32_C(0x00274CE1), UINT32_C(0x003F5FE8), + UINT32_C(0x00112AFF), UINT32_C(0x0004D6DD), UINT32_C(0x0037A903), + UINT32_C(0x00211DC3), UINT32_C(0x0030C9D5), UINT32_C(0x003F5472), + UINT32_C(0x00198593), UINT32_C(0x000093E8), UINT32_C(0x001F8BFF), + UINT32_C(0x0000C9FF), UINT32_C(0x003D63D2), UINT32_C(0x00003D23), + UINT32_C(0x00153CAB), UINT32_C(0x003CA8E7), UINT32_C(0x000F7F9C), + UINT32_C(0x0017381E), UINT32_C(0x003B2121), UINT32_C(0x0006A36E), + UINT32_C(0x0020DF0D), UINT32_C(0x002DCC34)}, + {UINT32_C(0x001DDE59), UINT32_C(0x00100B9E), UINT32_C(0x001387EC), + UINT32_C(0x001F5F47), UINT32_C(0x0037E7AF), UINT32_C(0x00193274), + UINT32_C(0x002F43DE), UINT32_C(0x0018E845), UINT32_C(0x002C7EEB), + UINT32_C(0x0031E7AD), UINT32_C(0x0003754D), UINT32_C(0x00107B6F), + UINT32_C(0x0006C7A7), UINT32_C(0x002EFA28), UINT32_C(0x00230679), + UINT32_C(0x003BA29A), UINT32_C(0x003EB83E), UINT32_C(0x000E3477), + UINT32_C(0x00312658), UINT32_C(0x006C10E6), UINT32_C(0x00372B67), + UINT32_C(0x000F6596), UINT32_C(0x00380597)}}, + {{UINT32_C(0x00555AFE), UINT32_C(0x000C7849), UINT32_C(0x00042F9D), + UINT32_C(0x0007EDFA), UINT32_C(0x000C752B), UINT32_C(0x00137CA0), + UINT32_C(0x002A9FBE), UINT32_C(0x00565768), UINT32_C(0x00015078), + UINT32_C(0x0037865E), UINT32_C(0x0022585A), UINT32_C(0x005C7329), + UINT32_C(0x00230050), UINT32_C(0x002EAD2B), UINT32_C(0x001FFAB6), + UINT32_C(0x007012D8), UINT32_C(0x00118E18), UINT32_C(0x0031CBE8), + UINT32_C(0x0034B659), UINT32_C(0x000C9258), UINT32_C(0x00123325), + UINT32_C(0x001F45F2), UINT32_C(0x002B0B5E)}, + {UINT32_C(0x0063E131), UINT32_C(0x002CEABB), UINT32_C(0x0003CF06), + UINT32_C(0x005C2801), UINT32_C(0x0014448A), UINT32_C(0x001F4570), + UINT32_C(0x001DE032), UINT32_C(0x007965E9), UINT32_C(0x001C2619), + UINT32_C(0x001A84C4), UINT32_C(0x003CA51E), UINT32_C(0x005F8927), + UINT32_C(0x001ED00E), UINT32_C(0x0018ABCE), UINT32_C(0x00282492), + UINT32_C(0x002A4526), UINT32_C(0x001D6653), UINT32_C(0x000D9615), + UINT32_C(0x0011E6F0), UINT32_C(0x00671D54), UINT32_C(0x00340830), + UINT32_C(0x001EF0D7), UINT32_C(0x002FBB7B)}}, + {{UINT32_C(0x00348880), UINT32_C(0x0032B440), UINT32_C(0x003867FD), + UINT32_C(0x0041325C), UINT32_C(0x000CDBC2), UINT32_C(0x00065444), + UINT32_C(0x0028F475), UINT32_C(0x001DA4B4), UINT32_C(0x00109841), + UINT32_C(0x003B0866), UINT32_C(0x001E6A77), UINT32_C(0x005D249E), + UINT32_C(0x0039C59B), UINT32_C(0x003A6F13), UINT32_C(0x0038A7E4), + UINT32_C(0x005AE286), UINT32_C(0x002F9473), UINT32_C(0x00023261), + UINT32_C(0x003A0DB2), UINT32_C(0x001E7F01), UINT32_C(0x0036BF40), + UINT32_C(0x000E2AEC), UINT32_C(0x000C8DE1)}, + {UINT32_C(0x0053791C), UINT32_C(0x0025ADBE), UINT32_C(0x001DF305), + UINT32_C(0x005CB9A7), UINT32_C(0x002A8658), UINT32_C(0x00101F47), + UINT32_C(0x00329A71), UINT32_C(0x006E7F78), UINT32_C(0x003CB686), + UINT32_C(0x002818C0), UINT32_C(0x0013DEA8), UINT32_C(0x0001AD5E), + UINT32_C(0x002F79EF), UINT32_C(0x002D66C0), UINT32_C(0x001DABD2), + UINT32_C(0x00602B71), UINT32_C(0x002903C7), UINT32_C(0x00385466), + UINT32_C(0x001CDB64), UINT32_C(0x0075CE9A), UINT32_C(0x002430BD), + UINT32_C(0x00176946), UINT32_C(0x000E2BC5)}}, + {{UINT32_C(0x007C9263), UINT32_C(0x002D6DC4), UINT32_C(0x003D3ACD), + UINT32_C(0x003EBF76), UINT32_C(0x003E1EFB), UINT32_C(0x002E4716), + UINT32_C(0x000F0DD6), UINT32_C(0x003B4748), UINT32_C(0x00073A35), + UINT32_C(0x003EB153), UINT32_C(0x003DBAE5), UINT32_C(0x00091752), + UINT32_C(0x00152A69), UINT32_C(0x003A6B6D), UINT32_C(0x00190CE0), + UINT32_C(0x000C4F96), UINT32_C(0x002AEE5B), UINT32_C(0x002D6E94), + UINT32_C(0x00298B92), UINT32_C(0x002FC509), UINT32_C(0x000EA268), + UINT32_C(0x000701E4), UINT32_C(0x003CBD22)}, + {UINT32_C(0x0068BB5F), UINT32_C(0x003E426A), UINT32_C(0x000ABA98), + UINT32_C(0x0063696E), UINT32_C(0x000CA3AE), UINT32_C(0x0030D3D9), + UINT32_C(0x000E9E5C), UINT32_C(0x0046B796), UINT32_C(0x00098D02), + UINT32_C(0x001C097A), UINT32_C(0x00322587), UINT32_C(0x004192A0), + UINT32_C(0x00117CF5), UINT32_C(0x0019B330), UINT32_C(0x001C614E), + UINT32_C(0x007DC495), UINT32_C(0x0010F1B4), UINT32_C(0x00303802), + UINT32_C(0x0039F211), UINT32_C(0x00330A82), UINT32_C(0x002DD8DA), + UINT32_C(0x002D36F2), UINT32_C(0x00017BC2)}}, + {{UINT32_C(0x0049325F), UINT32_C(0x003DB33B), UINT32_C(0x0029EBF5), + UINT32_C(0x001C7997), UINT32_C(0x0033F6E9), UINT32_C(0x0030C1AD), + UINT32_C(0x00361DDF), UINT32_C(0x0034088E), UINT32_C(0x002A26DB), + UINT32_C(0x00050A8F), UINT32_C(0x002D5CB6), UINT32_C(0x002B3ACD), + UINT32_C(0x002F102C), UINT32_C(0x001D8F3E), UINT32_C(0x0036E06F), + UINT32_C(0x005F6B74), UINT32_C(0x0003DC5F), UINT32_C(0x003135D7), + UINT32_C(0x0038E39F), UINT32_C(0x007B5A1E), UINT32_C(0x000355D0), + UINT32_C(0x0016256E), UINT32_C(0x00091FAA)}, + {UINT32_C(0x004EEA23), UINT32_C(0x002F50B1), UINT32_C(0x001CBFB6), + UINT32_C(0x0077CA4A), UINT32_C(0x002E434E), UINT32_C(0x003F8B6D), + UINT32_C(0x0033265D), UINT32_C(0x006DC04A), UINT32_C(0x0017B7FE), + UINT32_C(0x00156470), UINT32_C(0x001C0AB3), UINT32_C(0x002B82A3), + UINT32_C(0x0025ED15), UINT32_C(0x00345415), UINT32_C(0x00006AE3), + UINT32_C(0x006A18D6), UINT32_C(0x000651B4), UINT32_C(0x00324AF0), + UINT32_C(0x0019FD45), UINT32_C(0x00756504), UINT32_C(0x000D0EB8), + UINT32_C(0x001080DF), UINT32_C(0x00117135)}}, + {{UINT32_C(0x0002201B), UINT32_C(0x002573D3), UINT32_C(0x002B796D), + UINT32_C(0x000F77C6), UINT32_C(0x001FA05B), UINT32_C(0x0004EA6D), + UINT32_C(0x003790D1), UINT32_C(0x004517CB), UINT32_C(0x003D97B6), + UINT32_C(0x0015B191), UINT32_C(0x00311E57), UINT32_C(0x0037CE58), + UINT32_C(0x00151409), UINT32_C(0x000D6BCF), UINT32_C(0x000C5CA5), + UINT32_C(0x0063737A), UINT32_C(0x00299B77), UINT32_C(0x000C37E1), + UINT32_C(0x000F27AA), UINT32_C(0x0057C9C2), UINT32_C(0x0030EDD0), + UINT32_C(0x003C12B9), UINT32_C(0x003AE308)}, + {UINT32_C(0x00154AEB), UINT32_C(0x0008F6CC), UINT32_C(0x001668D8), + UINT32_C(0x004663DD), UINT32_C(0x000D8D93), UINT32_C(0x001CE5F0), + UINT32_C(0x0021BF83), UINT32_C(0x006BAE95), UINT32_C(0x002855B3), + UINT32_C(0x00335B55), UINT32_C(0x001408AA), UINT32_C(0x0004E3E5), + UINT32_C(0x0028E855), UINT32_C(0x0014E502), UINT32_C(0x0008E67D), + UINT32_C(0x006EDAAA), UINT32_C(0x001D9F0F), UINT32_C(0x0009DC94), + UINT32_C(0x003A18E2), UINT32_C(0x0007FA8E), UINT32_C(0x003E00BB), + UINT32_C(0x002A56FF), UINT32_C(0x00038554)}}, + {{UINT32_C(0x007A0037), UINT32_C(0x003D491D), UINT32_C(0x003C391C), + UINT32_C(0x006294C3), UINT32_C(0x00303F10), UINT32_C(0x0026A8E1), + UINT32_C(0x0028D44A), UINT32_C(0x004CD241), UINT32_C(0x001AC12E), + UINT32_C(0x0032802C), UINT32_C(0x0017518C), UINT32_C(0x004B7FF7), + UINT32_C(0x00184785), UINT32_C(0x000C137F), UINT32_C(0x0020C5E6), + UINT32_C(0x002E88CB), UINT32_C(0x00109C0D), UINT32_C(0x003AF23C), + UINT32_C(0x0037A943), UINT32_C(0x00209953), UINT32_C(0x0015B4E0), + UINT32_C(0x00069845), UINT32_C(0x00093EA8)}, + {UINT32_C(0x0004A991), UINT32_C(0x003F0551), UINT32_C(0x000D6C31), + UINT32_C(0x006F47D6), UINT32_C(0x00007E9B), UINT32_C(0x0027E38C), + UINT32_C(0x0033BB37), UINT32_C(0x0013496D), UINT32_C(0x001A3F2A), + UINT32_C(0x0014FCBA), UINT32_C(0x002722F6), UINT32_C(0x005676F1), + UINT32_C(0x00213E52), UINT32_C(0x003DF1C7), UINT32_C(0x00228B30), + UINT32_C(0x006856C0), UINT32_C(0x0022A73D), UINT32_C(0x0000B650), + UINT32_C(0x000EABEB), UINT32_C(0x00714726), UINT32_C(0x00128875), + UINT32_C(0x000EB41C), UINT32_C(0x0018CA4B)}}, + {{UINT32_C(0x007BD9EC), UINT32_C(0x001763E0), UINT32_C(0x003A0DDC), + UINT32_C(0x00731C43), UINT32_C(0x00293989), UINT32_C(0x00347EFA), + UINT32_C(0x00115B21), UINT32_C(0x003B45B4), UINT32_C(0x000DA37F), + UINT32_C(0x002C87D5), UINT32_C(0x001C53C2), UINT32_C(0x007822F8), + UINT32_C(0x0008496E), UINT32_C(0x003D3CB7), UINT32_C(0x0008A383), + UINT32_C(0x00735A84), UINT32_C(0x000876BD), UINT32_C(0x00141FF0), + UINT32_C(0x003567B3), UINT32_C(0x00785465), UINT32_C(0x0030D346), + UINT32_C(0x0032C983), UINT32_C(0x0016542B)}, + {UINT32_C(0x00175998), UINT32_C(0x00105962), UINT32_C(0x0027690D), + UINT32_C(0x0053CEA1), UINT32_C(0x0027FE4A), UINT32_C(0x000377CE), + UINT32_C(0x00029F12), UINT32_C(0x00791342), UINT32_C(0x001CD5D3), + UINT32_C(0x0024804D), UINT32_C(0x00318CBD), UINT32_C(0x000AC20C), + UINT32_C(0x002261A2), UINT32_C(0x00017C07), UINT32_C(0x0006AED6), + UINT32_C(0x0001AE5E), UINT32_C(0x00230EA0), UINT32_C(0x00390D91), + UINT32_C(0x0009C7FB), UINT32_C(0x002F102A), UINT32_C(0x00291350), + UINT32_C(0x003DA578), UINT32_C(0x0013E6DE)}}, + }, + { + {{UINT32_C(0x005C8DD6), UINT32_C(0x002A3738), UINT32_C(0x00365D8C), + UINT32_C(0x0063DB9C), UINT32_C(0x00113081), UINT32_C(0x002F34E7), + UINT32_C(0x003E646D), UINT32_C(0x0019B42D), UINT32_C(0x0006CC4B), + UINT32_C(0x0037967A), UINT32_C(0x0037B63A), UINT32_C(0x00346973), + UINT32_C(0x00175BB7), UINT32_C(0x001BAEA5), UINT32_C(0x002D90D6), + UINT32_C(0x00235EC5), UINT32_C(0x0022B7D3), UINT32_C(0x0006C0A7), + UINT32_C(0x000D9373), UINT32_C(0x003362B4), UINT32_C(0x00167362), + UINT32_C(0x00228FA8), UINT32_C(0x002DC7CC)}, + {UINT32_C(0x00772F9B), UINT32_C(0x00383B30), UINT32_C(0x001FE31B), + UINT32_C(0x0039283D), UINT32_C(0x0030E99D), UINT32_C(0x0019398C), + UINT32_C(0x000E05D7), UINT32_C(0x001CB0B3), UINT32_C(0x0031A3E1), + UINT32_C(0x00335E57), UINT32_C(0x003D185F), UINT32_C(0x004F30A8), + UINT32_C(0x002CC2DA), UINT32_C(0x003CB4EE), UINT32_C(0x000D7F61), + UINT32_C(0x006B8EDA), UINT32_C(0x0020C99D), UINT32_C(0x00342D58), + UINT32_C(0x003BCF21), UINT32_C(0x00043EE8), UINT32_C(0x003937C7), + UINT32_C(0x002B2687), UINT32_C(0x003099B7)}}, + {{UINT32_C(0x006F3863), UINT32_C(0x00216888), UINT32_C(0x00117F80), + UINT32_C(0x003AECB0), UINT32_C(0x003CB3C3), UINT32_C(0x0009172C), + UINT32_C(0x00351EE1), UINT32_C(0x000AD459), UINT32_C(0x00342449), + UINT32_C(0x000A95A1), UINT32_C(0x00362F69), UINT32_C(0x0044683C), + UINT32_C(0x0012100A), UINT32_C(0x000038C6), UINT32_C(0x0003DA8C), + UINT32_C(0x004920F7), UINT32_C(0x001F5E72), UINT32_C(0x003F8B01), + UINT32_C(0x001B2E28), UINT32_C(0x007828AE), UINT32_C(0x003B1AA3), + UINT32_C(0x002304AF), UINT32_C(0x002983E5)}, + {UINT32_C(0x0059F3AD), UINT32_C(0x0005EBDB), UINT32_C(0x0038F715), + UINT32_C(0x007427DF), UINT32_C(0x0035EE7F), UINT32_C(0x001A4B0D), + UINT32_C(0x0014E6C7), UINT32_C(0x00699A32), UINT32_C(0x00015674), + UINT32_C(0x003DC67D), UINT32_C(0x0001CDA8), UINT32_C(0x003C45B2), + UINT32_C(0x001BE065), UINT32_C(0x000C2772), UINT32_C(0x002184E2), + UINT32_C(0x005C0469), UINT32_C(0x0024F0B3), UINT32_C(0x002374A4), + UINT32_C(0x0031DE85), UINT32_C(0x006B53DE), UINT32_C(0x000F651C), + UINT32_C(0x003071EB), UINT32_C(0x0029A433)}}, + {{UINT32_C(0x0030A82F), UINT32_C(0x000EF962), UINT32_C(0x00227761), + UINT32_C(0x006D7F9E), UINT32_C(0x000081BE), UINT32_C(0x000FEE69), + UINT32_C(0x000752C8), UINT32_C(0x00748DEE), UINT32_C(0x00387116), + UINT32_C(0x00287C41), UINT32_C(0x00027434), UINT32_C(0x00664A85), + UINT32_C(0x001D3DE1), UINT32_C(0x003D565F), UINT32_C(0x003B7ED9), + UINT32_C(0x0065C3BB), UINT32_C(0x0023180A), UINT32_C(0x000E41D1), + UINT32_C(0x001016CD), UINT32_C(0x0065F0C5), UINT32_C(0x0017A834), + UINT32_C(0x0000A4AB), UINT32_C(0x001FC477)}, + {UINT32_C(0x004855D4), UINT32_C(0x001D815B), UINT32_C(0x00366682), + UINT32_C(0x004FEE42), UINT32_C(0x001DD612), UINT32_C(0x0025BA93), + UINT32_C(0x000E1804), UINT32_C(0x0007B46D), UINT32_C(0x00079E19), + UINT32_C(0x00263779), UINT32_C(0x001FDFA2), UINT32_C(0x0078741F), + UINT32_C(0x0037B69E), UINT32_C(0x0018E0A2), UINT32_C(0x0037F5D9), + UINT32_C(0x000C71E4), UINT32_C(0x001F6109), UINT32_C(0x0002A965), + UINT32_C(0x00358A62), UINT32_C(0x00790CBB), UINT32_C(0x001FC664), + UINT32_C(0x00027F06), UINT32_C(0x0026A40A)}}, + {{UINT32_C(0x0060807F), UINT32_C(0x003DF3AE), UINT32_C(0x000BE26F), + UINT32_C(0x005110E1), UINT32_C(0x003B1A48), UINT32_C(0x00326EEB), + UINT32_C(0x001E337A), UINT32_C(0x0030A675), UINT32_C(0x003F5F8B), + UINT32_C(0x000CD0BA), UINT32_C(0x002297FB), UINT32_C(0x000379BD), + UINT32_C(0x0015C430), UINT32_C(0x003FE28A), UINT32_C(0x00280CE2), + UINT32_C(0x0010A09A), UINT32_C(0x000BB43D), UINT32_C(0x003BF3E8), + UINT32_C(0x000D2A25), UINT32_C(0x00553C3D), UINT32_C(0x003A4814), + UINT32_C(0x0023D406), UINT32_C(0x00130434)}, + {UINT32_C(0x00012725), UINT32_C(0x00034675), UINT32_C(0x0030625E), + UINT32_C(0x0068204C), UINT32_C(0x00007FF0), UINT32_C(0x000353D6), + UINT32_C(0x00374D41), UINT32_C(0x002B0AEC), UINT32_C(0x002D4C90), + UINT32_C(0x0023B516), UINT32_C(0x003D5FE1), UINT32_C(0x001BF1AF), + UINT32_C(0x0026188F), UINT32_C(0x000277E9), UINT32_C(0x0009EDC0), + UINT32_C(0x00419F60), UINT32_C(0x003B901E), UINT32_C(0x00036C9A), + UINT32_C(0x001C2868), UINT32_C(0x0039BD67), UINT32_C(0x001E1FAC), + UINT32_C(0x0018E5C8), UINT32_C(0x000D5B85)}}, + {{UINT32_C(0x000B4E46), UINT32_C(0x001C91BB), UINT32_C(0x000E149E), + UINT32_C(0x000CF26B), UINT32_C(0x00239A61), UINT32_C(0x001413C1), + UINT32_C(0x0039D982), UINT32_C(0x0031DC48), UINT32_C(0x000CB5E3), + UINT32_C(0x00177633), UINT32_C(0x003594BF), UINT32_C(0x00220B88), + UINT32_C(0x003EE0E1), UINT32_C(0x0001C29C), UINT32_C(0x00332288), + UINT32_C(0x001AC903), UINT32_C(0x002EA788), UINT32_C(0x002CF324), + UINT32_C(0x000A068A), UINT32_C(0x00192C4F), UINT32_C(0x003620B1), + UINT32_C(0x003A15B7), UINT32_C(0x001846FF)}, + {UINT32_C(0x0037EA0F), UINT32_C(0x000E365F), UINT32_C(0x000AB7DB), + UINT32_C(0x0073FC69), UINT32_C(0x0030E576), UINT32_C(0x001F51C5), + UINT32_C(0x003E4C0F), UINT32_C(0x007734A2), UINT32_C(0x000B6D61), + UINT32_C(0x0007F20A), UINT32_C(0x0016676C), UINT32_C(0x000742AB), + UINT32_C(0x0024CACD), UINT32_C(0x00263F7C), UINT32_C(0x001FBB60), + UINT32_C(0x005126DE), UINT32_C(0x001B0843), UINT32_C(0x0027E640), + UINT32_C(0x002B6416), UINT32_C(0x000E461C), UINT32_C(0x0035712F), + UINT32_C(0x00021FD4), UINT32_C(0x003DFB53)}}, + {{UINT32_C(0x0078AFC0), UINT32_C(0x00344524), UINT32_C(0x00032570), + UINT32_C(0x005274D4), UINT32_C(0x001BE8C7), UINT32_C(0x0000F7FC), + UINT32_C(0x003A3CD2), UINT32_C(0x00224B02), UINT32_C(0x003CB849), + UINT32_C(0x00318F23), UINT32_C(0x000B31C5), UINT32_C(0x00172883), + UINT32_C(0x000E290F), UINT32_C(0x00058FCA), UINT32_C(0x0029D5B9), + UINT32_C(0x000EE887), UINT32_C(0x0008C23A), UINT32_C(0x000B4641), + UINT32_C(0x0019F308), UINT32_C(0x00368406), UINT32_C(0x003235C5), + UINT32_C(0x000F6048), UINT32_C(0x00334FC7)}, + {UINT32_C(0x00721229), UINT32_C(0x0028E47C), UINT32_C(0x0006F2DC), + UINT32_C(0x006E7CFF), UINT32_C(0x00184C72), UINT32_C(0x003AF41E), + UINT32_C(0x000EC9A0), UINT32_C(0x0008E682), UINT32_C(0x00294028), + UINT32_C(0x0010CBE0), UINT32_C(0x00325E8D), UINT32_C(0x00229C6E), + UINT32_C(0x0007AE13), UINT32_C(0x0012B92A), UINT32_C(0x001A6F8B), + UINT32_C(0x00445E9E), UINT32_C(0x0038E62B), UINT32_C(0x000CCE4E), + UINT32_C(0x0016D227), UINT32_C(0x005AEC2B), UINT32_C(0x002CB9C3), + UINT32_C(0x000E9EE2), UINT32_C(0x00151064)}}, + {{UINT32_C(0x00219F11), UINT32_C(0x000EEE99), UINT32_C(0x000F0E81), + UINT32_C(0x0014202D), UINT32_C(0x0017D47D), UINT32_C(0x0013E996), + UINT32_C(0x001FC4D3), UINT32_C(0x007153BF), UINT32_C(0x003B0646), + UINT32_C(0x003CCDA8), UINT32_C(0x002DB80C), UINT32_C(0x005A6567), + UINT32_C(0x00301938), UINT32_C(0x000B2A1D), UINT32_C(0x002C1CD4), + UINT32_C(0x0036D153), UINT32_C(0x00002DE7), UINT32_C(0x001C0718), + UINT32_C(0x001398D4), UINT32_C(0x001C18B0), UINT32_C(0x000531C6), + UINT32_C(0x00270891), UINT32_C(0x001D12C0)}, + {UINT32_C(0x006BF552), UINT32_C(0x00379C8C), UINT32_C(0x00124703), + UINT32_C(0x001685D6), UINT32_C(0x000B4D76), UINT32_C(0x00354333), + UINT32_C(0x003FD16E), UINT32_C(0x0078F567), UINT32_C(0x00228610), + UINT32_C(0x002410D3), UINT32_C(0x0037EE2A), UINT32_C(0x002FF2A5), + UINT32_C(0x001EA65B), UINT32_C(0x003FE56C), UINT32_C(0x00086D94), + UINT32_C(0x0016F8D9), UINT32_C(0x00253D0C), UINT32_C(0x00110729), + UINT32_C(0x00251056), UINT32_C(0x00771AF9), UINT32_C(0x00330BB2), + UINT32_C(0x0030D723), UINT32_C(0x0010B52C)}}, + {{UINT32_C(0x0059EEDD), UINT32_C(0x00224DDB), UINT32_C(0x00224843), + UINT32_C(0x00062307), UINT32_C(0x001C385D), UINT32_C(0x00214646), + UINT32_C(0x002E9EF9), UINT32_C(0x00069FC2), UINT32_C(0x0034E86C), + UINT32_C(0x002DE7F8), UINT32_C(0x0011547F), UINT32_C(0x00592112), + UINT32_C(0x003BA86D), UINT32_C(0x003E5946), UINT32_C(0x001999D6), + UINT32_C(0x0019972E), UINT32_C(0x000BEC90), UINT32_C(0x001A2575), + UINT32_C(0x000C3FB3), UINT32_C(0x0016B2B8), UINT32_C(0x000F91C3), + UINT32_C(0x003BE22B), UINT32_C(0x00259437)}, + {UINT32_C(0x00511BD4), UINT32_C(0x00114679), UINT32_C(0x003320B0), + UINT32_C(0x006912DE), UINT32_C(0x00209607), UINT32_C(0x0010EA82), + UINT32_C(0x001756FD), UINT32_C(0x0067C9A7), UINT32_C(0x00386F00), + UINT32_C(0x0019C5A2), UINT32_C(0x000C1F54), UINT32_C(0x0060CBC7), + UINT32_C(0x001DA7B9), UINT32_C(0x00063F18), UINT32_C(0x003D8253), + UINT32_C(0x006757E9), UINT32_C(0x001F28E4), UINT32_C(0x003F4512), + UINT32_C(0x0015BA1B), UINT32_C(0x00296BBE), UINT32_C(0x001E7448), + UINT32_C(0x0027173C), UINT32_C(0x00385C41)}}, + {{UINT32_C(0x001A30EE), UINT32_C(0x003F8DAD), UINT32_C(0x000A157B), + UINT32_C(0x002E76B6), UINT32_C(0x0003B33B), UINT32_C(0x00067B4F), + UINT32_C(0x00338572), UINT32_C(0x004A7886), UINT32_C(0x000AF814), + UINT32_C(0x00231F5B), UINT32_C(0x003A7866), UINT32_C(0x001BC9D8), + UINT32_C(0x002EC718), UINT32_C(0x000F7210), UINT32_C(0x0038A200), + UINT32_C(0x0024BD8B), UINT32_C(0x0025403D), UINT32_C(0x002338A0), + UINT32_C(0x00197FC8), UINT32_C(0x007EFFC4), UINT32_C(0x002C8ED2), + UINT32_C(0x002F359C), UINT32_C(0x0007199C)}, + {UINT32_C(0x003AA840), UINT32_C(0x001FEBA5), UINT32_C(0x00204035), + UINT32_C(0x001437DE), UINT32_C(0x0030877E), UINT32_C(0x001DC9D8), + UINT32_C(0x0022F529), UINT32_C(0x004AA308), UINT32_C(0x0008CF16), + UINT32_C(0x00227F26), UINT32_C(0x0030EA93), UINT32_C(0x00444D20), + UINT32_C(0x000FC049), UINT32_C(0x0025FECC), UINT32_C(0x00366A3B), + UINT32_C(0x0075F2C6), UINT32_C(0x002D58DE), UINT32_C(0x00037A47), + UINT32_C(0x001143E7), UINT32_C(0x0066F889), UINT32_C(0x001AA585), + UINT32_C(0x0008637C), UINT32_C(0x00285D24)}}, + {{UINT32_C(0x001684FD), UINT32_C(0x0026202E), UINT32_C(0x00229298), + UINT32_C(0x0038BA17), UINT32_C(0x001143E4), UINT32_C(0x0004C67B), + UINT32_C(0x0009A1D3), UINT32_C(0x00359003), UINT32_C(0x0000CF20), + UINT32_C(0x003C8E67), UINT32_C(0x0025DDF6), UINT32_C(0x00167020), + UINT32_C(0x000C3320), UINT32_C(0x0032FD4F), UINT32_C(0x001D4DDD), + UINT32_C(0x002ABE07), UINT32_C(0x0015D694), UINT32_C(0x002025E4), + UINT32_C(0x0024B490), UINT32_C(0x00237C45), UINT32_C(0x000F2232), + UINT32_C(0x00172623), UINT32_C(0x003F2420)}, + {UINT32_C(0x0031C43A), UINT32_C(0x002504F9), UINT32_C(0x002A5346), + UINT32_C(0x00085709), UINT32_C(0x00181464), UINT32_C(0x0016AE98), + UINT32_C(0x0005937D), UINT32_C(0x007E227E), UINT32_C(0x0021E344), + UINT32_C(0x002D37F2), UINT32_C(0x003BABA8), UINT32_C(0x0076BA1E), + UINT32_C(0x001E9354), UINT32_C(0x001FB1CD), UINT32_C(0x002FA365), + UINT32_C(0x0037F2A0), UINT32_C(0x00150FF4), UINT32_C(0x0001D5DC), + UINT32_C(0x003D537E), UINT32_C(0x003F0F28), UINT32_C(0x002C7BEA), + UINT32_C(0x003C8613), UINT32_C(0x0032181B)}}, + {{UINT32_C(0x004FDBFF), UINT32_C(0x00279110), UINT32_C(0x0014218E), + UINT32_C(0x006FF570), UINT32_C(0x000BEE6D), UINT32_C(0x001AC4BF), + UINT32_C(0x00168284), UINT32_C(0x00204FD9), UINT32_C(0x0009E49A), + UINT32_C(0x00375F6C), UINT32_C(0x00188591), UINT32_C(0x00711953), + UINT32_C(0x003F4432), UINT32_C(0x00196529), UINT32_C(0x00394538), + UINT32_C(0x0018F2F6), UINT32_C(0x002CA7B0), UINT32_C(0x00013757), + UINT32_C(0x001F2763), UINT32_C(0x001F675A), UINT32_C(0x002051A1), + UINT32_C(0x003E27EB), UINT32_C(0x001862D5)}, + {UINT32_C(0x00762CA4), UINT32_C(0x0008C476), UINT32_C(0x00324E43), + UINT32_C(0x002A5BED), UINT32_C(0x002FCB16), UINT32_C(0x003A2EC2), + UINT32_C(0x000DAC89), UINT32_C(0x001B1EA8), UINT32_C(0x00270A0C), + UINT32_C(0x000F92C4), UINT32_C(0x00137059), UINT32_C(0x0002C67B), + UINT32_C(0x001DE35A), UINT32_C(0x0003AEB0), UINT32_C(0x0032086D), + UINT32_C(0x00622727), UINT32_C(0x003663F6), UINT32_C(0x00143F44), + UINT32_C(0x0007E1A6), UINT32_C(0x0052B971), UINT32_C(0x002A4520), + UINT32_C(0x003B35C1), UINT32_C(0x000E5F13)}}, + {{UINT32_C(0x00377631), UINT32_C(0x00160066), UINT32_C(0x003F8625), + UINT32_C(0x0008A975), UINT32_C(0x0011C7DC), UINT32_C(0x002AC5AE), + UINT32_C(0x001D6AD4), UINT32_C(0x00457D6D), UINT32_C(0x000D9162), + UINT32_C(0x0029BE2C), UINT32_C(0x0023E49C), UINT32_C(0x003CE982), + UINT32_C(0x0029BD3F), UINT32_C(0x002FA98A), UINT32_C(0x000AAF8F), + UINT32_C(0x0051BA4C), UINT32_C(0x000AAA3A), UINT32_C(0x00035AC4), + UINT32_C(0x00326C9D), UINT32_C(0x0001BBF9), UINT32_C(0x00259EE8), + UINT32_C(0x00363291), UINT32_C(0x00354D7C)}, + {UINT32_C(0x0004BACF), UINT32_C(0x00021298), UINT32_C(0x000BD9F4), + UINT32_C(0x0043D1FD), UINT32_C(0x00144099), UINT32_C(0x0031DC66), + UINT32_C(0x0038FF58), UINT32_C(0x001EDFDE), UINT32_C(0x000CDE37), + UINT32_C(0x0011D4F2), UINT32_C(0x001830F3), UINT32_C(0x0066B396), + UINT32_C(0x002B5740), UINT32_C(0x0000FE1B), UINT32_C(0x0018CA75), + UINT32_C(0x000543A1), UINT32_C(0x0001F8BB), UINT32_C(0x003AD189), + UINT32_C(0x002324CF), UINT32_C(0x004D2C11), UINT32_C(0x002F4CEB), + UINT32_C(0x00158CE7), UINT32_C(0x000CC8E6)}}, + {{UINT32_C(0x0001F545), UINT32_C(0x000BAFC9), UINT32_C(0x00256984), + UINT32_C(0x005BA1BD), UINT32_C(0x00186CC4), UINT32_C(0x00354258), + UINT32_C(0x002C995A), UINT32_C(0x00634432), UINT32_C(0x001C8DFD), + UINT32_C(0x0006A9F8), UINT32_C(0x003413FA), UINT32_C(0x00407583), + UINT32_C(0x00364359), UINT32_C(0x00360343), UINT32_C(0x0004E81D), + UINT32_C(0x0023B9E2), UINT32_C(0x00044AAC), UINT32_C(0x003E4F02), + UINT32_C(0x000253E4), UINT32_C(0x004E1D95), UINT32_C(0x0008B230), + UINT32_C(0x00045AB3), UINT32_C(0x00036815)}, + {UINT32_C(0x003912F5), UINT32_C(0x0038574B), UINT32_C(0x0004AD86), + UINT32_C(0x00463316), UINT32_C(0x000037D8), UINT32_C(0x001023FC), + UINT32_C(0x00031DE0), UINT32_C(0x007EC789), UINT32_C(0x000081EF), + UINT32_C(0x002ABA70), UINT32_C(0x00355BFB), UINT32_C(0x00306CB6), + UINT32_C(0x00146C52), UINT32_C(0x000D5AD0), UINT32_C(0x003681F1), + UINT32_C(0x0063A37A), UINT32_C(0x001B646E), UINT32_C(0x000A931F), + UINT32_C(0x0023DD86), UINT32_C(0x006F9AFA), UINT32_C(0x0008A0BB), + UINT32_C(0x0011BD6F), UINT32_C(0x00169519)}}, + {{UINT32_C(0x00183D98), UINT32_C(0x003953F2), UINT32_C(0x00003F5C), + UINT32_C(0x001D61CC), UINT32_C(0x0029E894), UINT32_C(0x0008FD62), + UINT32_C(0x00124F02), UINT32_C(0x005D5510), UINT32_C(0x002CBB48), + UINT32_C(0x0027C8EC), UINT32_C(0x002DA8A4), UINT32_C(0x00506092), + UINT32_C(0x000D2ECA), UINT32_C(0x00080CB3), UINT32_C(0x00370B1F), + UINT32_C(0x00264230), UINT32_C(0x00254B5D), UINT32_C(0x0030D35B), + UINT32_C(0x00237E95), UINT32_C(0x003D3219), UINT32_C(0x000F1EE0), + UINT32_C(0x0016F356), UINT32_C(0x000433B4)}, + {UINT32_C(0x002EDDFD), UINT32_C(0x0028836F), UINT32_C(0x0004B480), + UINT32_C(0x00268786), UINT32_C(0x002F536C), UINT32_C(0x002AF788), + UINT32_C(0x003B32BC), UINT32_C(0x003B16D5), UINT32_C(0x002C983E), + UINT32_C(0x00009C26), UINT32_C(0x00267D08), UINT32_C(0x0020E60C), + UINT32_C(0x000ECF45), UINT32_C(0x00278142), UINT32_C(0x001746F3), + UINT32_C(0x0054A790), UINT32_C(0x0035C6AA), UINT32_C(0x00272DAC), + UINT32_C(0x002BA52D), UINT32_C(0x0038B5A4), UINT32_C(0x003725B3), + UINT32_C(0x003565DC), UINT32_C(0x001FF559)}}, + {{UINT32_C(0x0065D9D6), UINT32_C(0x00344FC2), UINT32_C(0x0000870B), + UINT32_C(0x00699985), UINT32_C(0x002A5C08), UINT32_C(0x002D5249), + UINT32_C(0x002CB5FE), UINT32_C(0x007C94CD), UINT32_C(0x001208B8), + UINT32_C(0x00034BB9), UINT32_C(0x000F21F9), UINT32_C(0x0010B487), + UINT32_C(0x001D773A), UINT32_C(0x0037E3B0), UINT32_C(0x002176D0), + UINT32_C(0x0052166E), UINT32_C(0x002F70E0), UINT32_C(0x001BED82), + UINT32_C(0x00286120), UINT32_C(0x007331ED), UINT32_C(0x001507E2), + UINT32_C(0x003FD862), UINT32_C(0x000A5BC5)}, + {UINT32_C(0x00763783), UINT32_C(0x0011EC7B), UINT32_C(0x0006ECDB), + UINT32_C(0x00596D37), UINT32_C(0x002D6D59), UINT32_C(0x001FB1F1), + UINT32_C(0x0010DD1F), UINT32_C(0x003F277E), UINT32_C(0x00091B7A), + UINT32_C(0x003FFE47), UINT32_C(0x0003D49D), UINT32_C(0x0071AF1E), + UINT32_C(0x00173FA2), UINT32_C(0x001B76EC), UINT32_C(0x001D5248), + UINT32_C(0x0059BE83), UINT32_C(0x003F4D6A), UINT32_C(0x001CE0D3), + UINT32_C(0x003FDBAF), UINT32_C(0x00554CAA), UINT32_C(0x002FAF76), + UINT32_C(0x0004DD7D), UINT32_C(0x0025BFE6)}}, + {{UINT32_C(0x0078E507), UINT32_C(0x003B0516), UINT32_C(0x00239513), + UINT32_C(0x0026B945), UINT32_C(0x002F7EA4), UINT32_C(0x00258DAA), + UINT32_C(0x002CA54E), UINT32_C(0x0038F70D), UINT32_C(0x0000EA33), + UINT32_C(0x002CC019), UINT32_C(0x00322C57), UINT32_C(0x007E5F7D), + UINT32_C(0x001BD5E1), UINT32_C(0x002300D9), UINT32_C(0x000A82FB), + UINT32_C(0x007B959B), UINT32_C(0x00200D1E), UINT32_C(0x001F252C), + UINT32_C(0x0021984A), UINT32_C(0x0015C036), UINT32_C(0x0016A72F), + UINT32_C(0x00003E13), UINT32_C(0x0015AA73)}, + {UINT32_C(0x007C9D6A), UINT32_C(0x003E1441), UINT32_C(0x0011A00F), + UINT32_C(0x0079A490), UINT32_C(0x0012D007), UINT32_C(0x003C8625), + UINT32_C(0x001E5649), UINT32_C(0x004491D7), UINT32_C(0x00076136), + UINT32_C(0x003E7528), UINT32_C(0x00353C0B), UINT32_C(0x0008E4BD), + UINT32_C(0x003422E8), UINT32_C(0x00338BFD), UINT32_C(0x0027F2D6), + UINT32_C(0x00772362), UINT32_C(0x00359B33), UINT32_C(0x003A501D), + UINT32_C(0x00154AFF), UINT32_C(0x0049526D), UINT32_C(0x002761DE), + UINT32_C(0x00309735), UINT32_C(0x00060B95)}}, + }, + { + {{UINT32_C(0x00523B9F), UINT32_C(0x001A6BE6), UINT32_C(0x00036EDD), + UINT32_C(0x0076AA2F), UINT32_C(0x003FD0E2), UINT32_C(0x00385A57), + UINT32_C(0x00098667), UINT32_C(0x0013DD67), UINT32_C(0x0012B434), + UINT32_C(0x00000973), UINT32_C(0x003CF995), UINT32_C(0x0045926B), + UINT32_C(0x0002CF3D), UINT32_C(0x001B1027), UINT32_C(0x003876F6), + UINT32_C(0x0039998A), UINT32_C(0x00398D3B), UINT32_C(0x000598D3), + UINT32_C(0x0009E59F), UINT32_C(0x003DA91C), UINT32_C(0x0027F8FE), + UINT32_C(0x001992EF), UINT32_C(0x001BD1E4)}, + {UINT32_C(0x005E09D8), UINT32_C(0x0027291C), UINT32_C(0x00042E2C), + UINT32_C(0x005186A7), UINT32_C(0x00151430), UINT32_C(0x002A705A), + UINT32_C(0x00312685), UINT32_C(0x001C5CD7), UINT32_C(0x002BC485), + UINT32_C(0x0006B1B4), UINT32_C(0x003ED133), UINT32_C(0x006BA1BB), + UINT32_C(0x0012B561), UINT32_C(0x001C6829), UINT32_C(0x0038F88D), + UINT32_C(0x000FAFDF), UINT32_C(0x003A8F9C), UINT32_C(0x003B8278), + UINT32_C(0x00075330), UINT32_C(0x00723D70), UINT32_C(0x0013971C), + UINT32_C(0x0002A3A0), UINT32_C(0x0032D46E)}}, + {{UINT32_C(0x004A84E3), UINT32_C(0x000F993B), UINT32_C(0x0038E50F), + UINT32_C(0x006F9D6C), UINT32_C(0x00222DDA), UINT32_C(0x00201C17), + UINT32_C(0x003D690B), UINT32_C(0x00685E56), UINT32_C(0x003AE821), + UINT32_C(0x00160832), UINT32_C(0x00267374), UINT32_C(0x0014A440), + UINT32_C(0x00286466), UINT32_C(0x0037B81C), UINT32_C(0x0034FB56), + UINT32_C(0x000A60A9), UINT32_C(0x00361F71), UINT32_C(0x002768E5), + UINT32_C(0x002D9ADF), UINT32_C(0x00351ED3), UINT32_C(0x0026B155), + UINT32_C(0x002ACF8B), UINT32_C(0x000CAB49)}, + {UINT32_C(0x002E7818), UINT32_C(0x00050DDB), UINT32_C(0x002F8281), + UINT32_C(0x000426DB), UINT32_C(0x003BF6C0), UINT32_C(0x002F18B3), + UINT32_C(0x000FDF15), UINT32_C(0x004326C8), UINT32_C(0x0034A233), + UINT32_C(0x003F8BB5), UINT32_C(0x00252744), UINT32_C(0x005D0622), + UINT32_C(0x000600E0), UINT32_C(0x000C538E), UINT32_C(0x002B9B96), + UINT32_C(0x00240977), UINT32_C(0x00266E45), UINT32_C(0x000ED85F), + UINT32_C(0x0016D56E), UINT32_C(0x005934A8), UINT32_C(0x000DE008), + UINT32_C(0x000B7A70), UINT32_C(0x00333A6E)}}, + {{UINT32_C(0x0062AA91), UINT32_C(0x0004AD0D), UINT32_C(0x00290514), + UINT32_C(0x0035EF4E), UINT32_C(0x003F0059), UINT32_C(0x0036F603), + UINT32_C(0x001E8A95), UINT32_C(0x004E5E21), UINT32_C(0x003AAAD3), + UINT32_C(0x001864B4), UINT32_C(0x00314695), UINT32_C(0x0061F315), + UINT32_C(0x003E5320), UINT32_C(0x000A6A70), UINT32_C(0x00312DDA), + UINT32_C(0x000CA432), UINT32_C(0x00089AF4), UINT32_C(0x0027EE81), + UINT32_C(0x003314B2), UINT32_C(0x00569617), UINT32_C(0x00369C83), + UINT32_C(0x00333762), UINT32_C(0x0004C25B)}, + {UINT32_C(0x0029163B), UINT32_C(0x0010F6C4), UINT32_C(0x003CFA87), + UINT32_C(0x00413607), UINT32_C(0x0004D631), UINT32_C(0x0029CC9A), + UINT32_C(0x0009B191), UINT32_C(0x0012E650), UINT32_C(0x0007576E), + UINT32_C(0x002FAEF9), UINT32_C(0x001E71A7), UINT32_C(0x006D93A4), + UINT32_C(0x00110BDB), UINT32_C(0x003C8A96), UINT32_C(0x000AB70A), + UINT32_C(0x00161FF3), UINT32_C(0x00309EAC), UINT32_C(0x000887FB), + UINT32_C(0x00199FC7), UINT32_C(0x007B0C04), UINT32_C(0x00030951), + UINT32_C(0x00138445), UINT32_C(0x002C19E3)}}, + {{UINT32_C(0x001D9920), UINT32_C(0x0035A7F8), UINT32_C(0x0026F037), + UINT32_C(0x00352EE6), UINT32_C(0x0036FF52), UINT32_C(0x000DA4B7), + UINT32_C(0x000D5800), UINT32_C(0x0012D75B), UINT32_C(0x001E4378), + UINT32_C(0x0006FB97), UINT32_C(0x003489D8), UINT32_C(0x007291B9), + UINT32_C(0x002611FF), UINT32_C(0x0029220F), UINT32_C(0x003180AF), + UINT32_C(0x003B64F1), UINT32_C(0x0029D493), UINT32_C(0x0029061E), + UINT32_C(0x00287F20), UINT32_C(0x000A8410), UINT32_C(0x003B766F), + UINT32_C(0x00194E12), UINT32_C(0x001C9672)}, + {UINT32_C(0x002BEBD9), UINT32_C(0x0034C959), UINT32_C(0x00372BCE), + UINT32_C(0x0077E3FE), UINT32_C(0x002A76EF), UINT32_C(0x003B1215), + UINT32_C(0x0017D01E), UINT32_C(0x001F6D6E), UINT32_C(0x001AF581), + UINT32_C(0x002135B9), UINT32_C(0x0023AE9B), UINT32_C(0x00643EE2), + UINT32_C(0x00309B0B), UINT32_C(0x00149E24), UINT32_C(0x002B829C), + UINT32_C(0x0014D460), UINT32_C(0x0035AAB8), UINT32_C(0x001D64A4), + UINT32_C(0x003C4123), UINT32_C(0x005FD0BE), UINT32_C(0x002680CE), + UINT32_C(0x0032FC91), UINT32_C(0x000D5EFA)}}, + {{UINT32_C(0x0042107B), UINT32_C(0x002D79CB), UINT32_C(0x000E25C7), + UINT32_C(0x0015D835), UINT32_C(0x0025EACC), UINT32_C(0x0038E784), + UINT32_C(0x00133C3A), UINT32_C(0x0009780F), UINT32_C(0x0007A2B3), + UINT32_C(0x003A0803), UINT32_C(0x00381D55), UINT32_C(0x00282268), + UINT32_C(0x0020B921), UINT32_C(0x0037F7AC), UINT32_C(0x0013B76D), + UINT32_C(0x003CE92F), UINT32_C(0x0025ECD4), UINT32_C(0x0030B106), + UINT32_C(0x001D9F81), UINT32_C(0x006798C4), UINT32_C(0x000CF158), + UINT32_C(0x003CAF9C), UINT32_C(0x003824DB)}, + {UINT32_C(0x007F6848), UINT32_C(0x0034A534), UINT32_C(0x0001B343), + UINT32_C(0x006BF10C), UINT32_C(0x0008FCF1), UINT32_C(0x000025F0), + UINT32_C(0x00105280), UINT32_C(0x0058FEE9), UINT32_C(0x0006B688), + UINT32_C(0x001BEC79), UINT32_C(0x003D6BC7), UINT32_C(0x001DBC3E), + UINT32_C(0x00298412), UINT32_C(0x002CAF5F), UINT32_C(0x003C0536), + UINT32_C(0x006D0ED6), UINT32_C(0x002790F7), UINT32_C(0x0016B380), + UINT32_C(0x000EA2CC), UINT32_C(0x007F2385), UINT32_C(0x001FC33E), + UINT32_C(0x0001295D), UINT32_C(0x002EC02F)}}, + {{UINT32_C(0x001F7939), UINT32_C(0x002AC3E2), UINT32_C(0x001660F9), + UINT32_C(0x00663A40), UINT32_C(0x001A8A13), UINT32_C(0x0023C8EF), + UINT32_C(0x003AB7B7), UINT32_C(0x0039E16F), UINT32_C(0x001FA47B), + UINT32_C(0x0025AB8D), UINT32_C(0x00384015), UINT32_C(0x003CE1A6), + UINT32_C(0x0005F145), UINT32_C(0x000C1E4B), UINT32_C(0x001A72DB), + UINT32_C(0x00203492), UINT32_C(0x003DE59E), UINT32_C(0x0010CD81), + UINT32_C(0x002D2FAE), UINT32_C(0x0021F48A), UINT32_C(0x001C1285), + UINT32_C(0x002EC41B), UINT32_C(0x001E8B07)}, + {UINT32_C(0x0018D1F3), UINT32_C(0x002EC53A), UINT32_C(0x00190D62), + UINT32_C(0x0018FCFD), UINT32_C(0x000A3EE7), UINT32_C(0x0039D235), + UINT32_C(0x00217FF2), UINT32_C(0x00142817), UINT32_C(0x002FB4F7), + UINT32_C(0x001BB01D), UINT32_C(0x000BF067), UINT32_C(0x0052C1A1), + UINT32_C(0x001029DF), UINT32_C(0x003B77AC), UINT32_C(0x001C5446), + UINT32_C(0x000A8528), UINT32_C(0x00076849), UINT32_C(0x0024957C), + UINT32_C(0x00255F16), UINT32_C(0x00464713), UINT32_C(0x0014A68E), + UINT32_C(0x002A0E25), UINT32_C(0x0027874C)}}, + {{UINT32_C(0x00165C60), UINT32_C(0x000F1947), UINT32_C(0x00358DAC), + UINT32_C(0x003112AB), UINT32_C(0x003CED7D), UINT32_C(0x0007D95D), + UINT32_C(0x001BFB25), UINT32_C(0x0038039B), UINT32_C(0x002C49B9), + UINT32_C(0x00226B1D), UINT32_C(0x00307B50), UINT32_C(0x002A8A6B), + UINT32_C(0x003A8D6F), UINT32_C(0x002D72F9), UINT32_C(0x002F321D), + UINT32_C(0x00530076), UINT32_C(0x002D8361), UINT32_C(0x002D2B58), + UINT32_C(0x0032030C), UINT32_C(0x0032F5E5), UINT32_C(0x00164CE3), + UINT32_C(0x0026D5D1), UINT32_C(0x0020444C)}, + {UINT32_C(0x002ABBE4), UINT32_C(0x003519D8), UINT32_C(0x00151482), + UINT32_C(0x00773260), UINT32_C(0x0034B1AD), UINT32_C(0x00250B9E), + UINT32_C(0x00302049), UINT32_C(0x00385164), UINT32_C(0x003E74F7), + UINT32_C(0x0023B51F), UINT32_C(0x001A3158), UINT32_C(0x00527F9C), + UINT32_C(0x003CABD3), UINT32_C(0x002F9178), UINT32_C(0x0006BAE5), + UINT32_C(0x00600F3B), UINT32_C(0x002DF1B8), UINT32_C(0x000D590F), + UINT32_C(0x00194149), UINT32_C(0x005DE8B8), UINT32_C(0x002325D5), + UINT32_C(0x003EDBFF), UINT32_C(0x000AAFE1)}}, + {{UINT32_C(0x001A50FC), UINT32_C(0x00280217), UINT32_C(0x003A5F1B), + UINT32_C(0x00412D41), UINT32_C(0x00285345), UINT32_C(0x002DBBAD), + UINT32_C(0x000FF377), UINT32_C(0x0059899D), UINT32_C(0x0029B472), + UINT32_C(0x00072A4A), UINT32_C(0x0028DC22), UINT32_C(0x001611B6), + UINT32_C(0x003C3760), UINT32_C(0x0001466B), UINT32_C(0x003D8FA9), + UINT32_C(0x00573081), UINT32_C(0x0013FB11), UINT32_C(0x00203758), + UINT32_C(0x002E6367), UINT32_C(0x00482CF9), UINT32_C(0x003178F6), + UINT32_C(0x001073E8), UINT32_C(0x001997C3)}, + {UINT32_C(0x0073FDFD), UINT32_C(0x002EFF90), UINT32_C(0x0014EBAD), + UINT32_C(0x000F3618), UINT32_C(0x00162A1A), UINT32_C(0x00270E47), + UINT32_C(0x0010A3E7), UINT32_C(0x00345497), UINT32_C(0x002C126D), + UINT32_C(0x0036F8A6), UINT32_C(0x00166505), UINT32_C(0x0005C77A), + UINT32_C(0x00197ED6), UINT32_C(0x00192ECC), UINT32_C(0x00233375), + UINT32_C(0x003E0030), UINT32_C(0x000D5706), UINT32_C(0x0009709A), + UINT32_C(0x003D8884), UINT32_C(0x00244795), UINT32_C(0x000B3F0C), + UINT32_C(0x002420C0), UINT32_C(0x00286796)}}, + {{UINT32_C(0x000CAAE5), UINT32_C(0x00094457), UINT32_C(0x00152528), + UINT32_C(0x001E3DB2), UINT32_C(0x0005EC25), UINT32_C(0x000BF941), + UINT32_C(0x002A007F), UINT32_C(0x00504FD8), UINT32_C(0x003ED863), + UINT32_C(0x003A902A), UINT32_C(0x0014F2EA), UINT32_C(0x0015DB81), + UINT32_C(0x00280472), UINT32_C(0x003D790F), UINT32_C(0x00349779), + UINT32_C(0x006EB09F), UINT32_C(0x00209701), UINT32_C(0x00377E4F), + UINT32_C(0x002E600B), UINT32_C(0x00152371), UINT32_C(0x000BA435), + UINT32_C(0x001FEF62), UINT32_C(0x0027E7F6)}, + {UINT32_C(0x00599CB9), UINT32_C(0x001549AA), UINT32_C(0x0013AF70), + UINT32_C(0x00234B56), UINT32_C(0x00248CC3), UINT32_C(0x0032259C), + UINT32_C(0x00203D97), UINT32_C(0x006AA891), UINT32_C(0x0005CEFE), + UINT32_C(0x00199005), UINT32_C(0x001990D3), UINT32_C(0x00334DF5), + UINT32_C(0x001B0BB0), UINT32_C(0x0011DD6C), UINT32_C(0x0038F1E0), + UINT32_C(0x004EE490), UINT32_C(0x003C3321), UINT32_C(0x001F139B), + UINT32_C(0x0006C59B), UINT32_C(0x00195C36), UINT32_C(0x00013ED7), + UINT32_C(0x00020142), UINT32_C(0x0034FF5C)}}, + {{UINT32_C(0x002C93FF), UINT32_C(0x000319F9), UINT32_C(0x00002CB9), + UINT32_C(0x002D18F3), UINT32_C(0x001DCA23), UINT32_C(0x000C5093), + UINT32_C(0x001EFF04), UINT32_C(0x0075CFF0), UINT32_C(0x00064EA8), + UINT32_C(0x0004571C), UINT32_C(0x0019B187), UINT32_C(0x0053F3E7), + UINT32_C(0x002BFCD9), UINT32_C(0x00100147), UINT32_C(0x00381877), + UINT32_C(0x0032E5D6), UINT32_C(0x002EC006), UINT32_C(0x00238ED2), + UINT32_C(0x0032C67B), UINT32_C(0x00001663), UINT32_C(0x003C176A), + UINT32_C(0x0014E21C), UINT32_C(0x00399D5E)}, + {UINT32_C(0x004E0B57), UINT32_C(0x001C2F95), UINT32_C(0x00363DC0), + UINT32_C(0x0009DC71), UINT32_C(0x00151A34), UINT32_C(0x003159C5), + UINT32_C(0x00201355), UINT32_C(0x00455C7C), UINT32_C(0x00070906), + UINT32_C(0x002195FD), UINT32_C(0x001CE30A), UINT32_C(0x0073CADB), + UINT32_C(0x0005C318), UINT32_C(0x00037022), UINT32_C(0x00053E6C), + UINT32_C(0x0078D811), UINT32_C(0x002D5455), UINT32_C(0x000B37E3), + UINT32_C(0x003A1081), UINT32_C(0x005948E6), UINT32_C(0x0032F5E3), + UINT32_C(0x003F1006), UINT32_C(0x0029C6C7)}}, + {{UINT32_C(0x006A53F5), UINT32_C(0x00234585), UINT32_C(0x003B1248), + UINT32_C(0x0031E22D), UINT32_C(0x0014C277), UINT32_C(0x001E4E41), + UINT32_C(0x000C1028), UINT32_C(0x004CFB54), UINT32_C(0x000EA3E8), + UINT32_C(0x00091AA9), UINT32_C(0x0026A9C7), UINT32_C(0x003266E7), + UINT32_C(0x002E72A8), UINT32_C(0x002340FE), UINT32_C(0x00306573), + UINT32_C(0x006B9E9A), UINT32_C(0x0035D59F), UINT32_C(0x001DB09E), + UINT32_C(0x0005F131), UINT32_C(0x0002A91F), UINT32_C(0x003D10FA), + UINT32_C(0x002D44C4), UINT32_C(0x001A9029)}, + {UINT32_C(0x004DC2D6), UINT32_C(0x000485AA), UINT32_C(0x00357F02), + UINT32_C(0x00109ABD), UINT32_C(0x00277446), UINT32_C(0x002B2567), + UINT32_C(0x003C69A7), UINT32_C(0x0031AA5D), UINT32_C(0x00308E0D), + UINT32_C(0x000CDB91), UINT32_C(0x001A3AB7), UINT32_C(0x0043A830), + UINT32_C(0x002FC1D1), UINT32_C(0x001FA04C), UINT32_C(0x002B3C22), + UINT32_C(0x00400E6C), UINT32_C(0x00088655), UINT32_C(0x000D2E38), + UINT32_C(0x002BEDE7), UINT32_C(0x0041F67A), UINT32_C(0x002EB40A), + UINT32_C(0x00263E54), UINT32_C(0x000736A8)}}, + {{UINT32_C(0x00524DB7), UINT32_C(0x00329BD6), UINT32_C(0x002BC43F), + UINT32_C(0x00407E56), UINT32_C(0x0006BA61), UINT32_C(0x001A5FC7), + UINT32_C(0x000FC681), UINT32_C(0x001A5E17), UINT32_C(0x002AD8E2), + UINT32_C(0x003C1B1E), UINT32_C(0x003028BA), UINT32_C(0x002CE10A), + UINT32_C(0x0013F30E), UINT32_C(0x001966B5), UINT32_C(0x001C1DF1), + UINT32_C(0x00540907), UINT32_C(0x0029361C), UINT32_C(0x000E7B5C), + UINT32_C(0x00303DDE), UINT32_C(0x0059FB60), UINT32_C(0x00151554), + UINT32_C(0x002838BD), UINT32_C(0x003D9CFA)}, + {UINT32_C(0x002063F9), UINT32_C(0x002731CA), UINT32_C(0x002003F0), + UINT32_C(0x0079F9F9), UINT32_C(0x00347AC8), UINT32_C(0x0021973A), + UINT32_C(0x001280CE), UINT32_C(0x00323A60), UINT32_C(0x00098D3C), + UINT32_C(0x00306D49), UINT32_C(0x000109EC), UINT32_C(0x00511419), + UINT32_C(0x0010C7B4), UINT32_C(0x001D2E21), UINT32_C(0x003991C3), + UINT32_C(0x003C5990), UINT32_C(0x001DB860), UINT32_C(0x0014EC41), + UINT32_C(0x00088BAC), UINT32_C(0x00448C44), UINT32_C(0x00084966), + UINT32_C(0x0031E904), UINT32_C(0x000524F2)}}, + {{UINT32_C(0x0049E3D3), UINT32_C(0x00181A3B), UINT32_C(0x0011AA50), + UINT32_C(0x007021E5), UINT32_C(0x00316EC7), UINT32_C(0x0029A769), + UINT32_C(0x003F4C5A), UINT32_C(0x006AA0ED), UINT32_C(0x003E7379), + UINT32_C(0x00150459), UINT32_C(0x0035CBC7), UINT32_C(0x005DEBB1), + UINT32_C(0x00053C63), UINT32_C(0x000AA5E3), UINT32_C(0x0013545F), + UINT32_C(0x00019A93), UINT32_C(0x0029934B), UINT32_C(0x000A94D0), + UINT32_C(0x00260B29), UINT32_C(0x00298F53), UINT32_C(0x00377D15), + UINT32_C(0x0029F246), UINT32_C(0x002F33B2)}, + {UINT32_C(0x0066FE62), UINT32_C(0x001037AD), UINT32_C(0x00370077), + UINT32_C(0x00421175), UINT32_C(0x001E861C), UINT32_C(0x00033773), + UINT32_C(0x002BFEA4), UINT32_C(0x0000380F), UINT32_C(0x0001544C), + UINT32_C(0x00272751), UINT32_C(0x003FB134), UINT32_C(0x0039C926), + UINT32_C(0x002CAB64), UINT32_C(0x0026F1D5), UINT32_C(0x00273824), + UINT32_C(0x004BDF14), UINT32_C(0x001E4097), UINT32_C(0x00281D77), + UINT32_C(0x00273464), UINT32_C(0x0005EB84), UINT32_C(0x002942CD), + UINT32_C(0x003938B5), UINT32_C(0x00333CCF)}}, + {{UINT32_C(0x000B8466), UINT32_C(0x00335B47), UINT32_C(0x001C7C5F), + UINT32_C(0x00130B87), UINT32_C(0x0002C697), UINT32_C(0x0011F099), + UINT32_C(0x001909FC), UINT32_C(0x007C440B), UINT32_C(0x0006E6CD), + UINT32_C(0x003604F5), UINT32_C(0x000A3664), UINT32_C(0x000E9448), + UINT32_C(0x00375564), UINT32_C(0x00100ABB), UINT32_C(0x000A2BD1), + UINT32_C(0x00610611), UINT32_C(0x000B0919), UINT32_C(0x00192DA1), + UINT32_C(0x000CA6A0), UINT32_C(0x0022EC21), UINT32_C(0x0010021B), + UINT32_C(0x0014AC0F), UINT32_C(0x003C3561)}, + {UINT32_C(0x001DE844), UINT32_C(0x000339F0), UINT32_C(0x00338277), + UINT32_C(0x0039E865), UINT32_C(0x000C918F), UINT32_C(0x001B9202), + UINT32_C(0x0039DB51), UINT32_C(0x0035E972), UINT32_C(0x00269806), + UINT32_C(0x001A4703), UINT32_C(0x00128E3F), UINT32_C(0x0059736B), + UINT32_C(0x0009133A), UINT32_C(0x000988FA), UINT32_C(0x003F5D17), + UINT32_C(0x0075D549), UINT32_C(0x0035AF8B), UINT32_C(0x000EBF87), + UINT32_C(0x002B5241), UINT32_C(0x001A47E1), UINT32_C(0x003FAD0B), + UINT32_C(0x003F031A), UINT32_C(0x0000856D)}}, + {{UINT32_C(0x007BA242), UINT32_C(0x003F139F), UINT32_C(0x0011DEFD), + UINT32_C(0x0023DE43), UINT32_C(0x00295AA0), UINT32_C(0x003AB6CE), + UINT32_C(0x0000492A), UINT32_C(0x00038F1C), UINT32_C(0x001F3BEB), + UINT32_C(0x000DEADE), UINT32_C(0x003039CC), UINT32_C(0x00546C46), + UINT32_C(0x000F8C59), UINT32_C(0x00364F5D), UINT32_C(0x00278A38), + UINT32_C(0x0003D22C), UINT32_C(0x000FDC4B), UINT32_C(0x0001BEAF), + UINT32_C(0x00025B08), UINT32_C(0x0008F72C), UINT32_C(0x0027C5E7), + UINT32_C(0x00252A05), UINT32_C(0x00107A50)}, + {UINT32_C(0x000EBA8F), UINT32_C(0x0027A1D4), UINT32_C(0x003EF3A3), + UINT32_C(0x007BCF49), UINT32_C(0x003D3105), UINT32_C(0x0023E6FD), + UINT32_C(0x00359B97), UINT32_C(0x0028F42A), UINT32_C(0x003E23D6), + UINT32_C(0x00178851), UINT32_C(0x0037642F), UINT32_C(0x0042E04B), + UINT32_C(0x00376AFD), UINT32_C(0x00198F42), UINT32_C(0x002F89CF), + UINT32_C(0x000E495C), UINT32_C(0x002116C6), UINT32_C(0x00369883), + UINT32_C(0x0005445E), UINT32_C(0x0028D909), UINT32_C(0x001123BE), + UINT32_C(0x00395238), UINT32_C(0x000BDBC0)}}, + {{UINT32_C(0x0079A5E7), UINT32_C(0x001C3E7B), UINT32_C(0x00184F53), + UINT32_C(0x003BBC86), UINT32_C(0x0010D687), UINT32_C(0x00038850), + UINT32_C(0x0038E20E), UINT32_C(0x003E53AE), UINT32_C(0x0004A94C), + UINT32_C(0x002AEB4D), UINT32_C(0x003AEB1A), UINT32_C(0x00448BCC), + UINT32_C(0x0004DB71), UINT32_C(0x0003778D), UINT32_C(0x003944F0), + UINT32_C(0x000CC500), UINT32_C(0x00008E46), UINT32_C(0x000F5C40), + UINT32_C(0x00110507), UINT32_C(0x001F1E48), UINT32_C(0x003628D5), + UINT32_C(0x00052A96), UINT32_C(0x003B94D2)}, + {UINT32_C(0x0004ABCF), UINT32_C(0x000A3BC2), UINT32_C(0x0001C80A), + UINT32_C(0x007BDA93), UINT32_C(0x000ECD4F), UINT32_C(0x003F215D), + UINT32_C(0x000EBBE2), UINT32_C(0x005395FC), UINT32_C(0x00074168), + UINT32_C(0x0022A24A), UINT32_C(0x001A1B35), UINT32_C(0x0077FFE0), + UINT32_C(0x003C9950), UINT32_C(0x0028A73C), UINT32_C(0x001AC592), + UINT32_C(0x0023CB0D), UINT32_C(0x003F12D3), UINT32_C(0x0030ED1B), + UINT32_C(0x002E878C), UINT32_C(0x003BA03C), UINT32_C(0x003CDBA8), + UINT32_C(0x0021E634), UINT32_C(0x000F8610)}}, + }, + { + {{UINT32_C(0x00374EA0), UINT32_C(0x003D49A3), UINT32_C(0x001F7E76), + UINT32_C(0x001D6B9E), UINT32_C(0x002592C5), UINT32_C(0x000E14A2), + UINT32_C(0x00190C56), UINT32_C(0x0063DAE2), UINT32_C(0x0039CB00), + UINT32_C(0x001A96B0), UINT32_C(0x001112B0), UINT32_C(0x00125D57), + UINT32_C(0x003E073B), UINT32_C(0x003BA300), UINT32_C(0x0010434F), + UINT32_C(0x00584798), UINT32_C(0x00328C4D), UINT32_C(0x002C908E), + UINT32_C(0x003F37C6), UINT32_C(0x0050852E), UINT32_C(0x000E2E46), + UINT32_C(0x003A1A63), UINT32_C(0x001C643D)}, + {UINT32_C(0x00147D83), UINT32_C(0x000590DE), UINT32_C(0x001A30E1), + UINT32_C(0x003223D8), UINT32_C(0x00092F2B), UINT32_C(0x002B60EE), + UINT32_C(0x00044972), UINT32_C(0x0024B04F), UINT32_C(0x000F8784), + UINT32_C(0x00015A35), UINT32_C(0x001E5404), UINT32_C(0x003B76C0), + UINT32_C(0x0024ECFE), UINT32_C(0x00101933), UINT32_C(0x0029FDFB), + UINT32_C(0x00224043), UINT32_C(0x00059771), UINT32_C(0x0035FA07), + UINT32_C(0x00044AFE), UINT32_C(0x00168A97), UINT32_C(0x001D4795), + UINT32_C(0x0016C054), UINT32_C(0x00202B01)}}, + {{UINT32_C(0x0063E7A6), UINT32_C(0x0034C8D6), UINT32_C(0x00280787), + UINT32_C(0x001A7385), UINT32_C(0x003ABD2E), UINT32_C(0x00185E3E), + UINT32_C(0x0000C346), UINT32_C(0x0075FF68), UINT32_C(0x00117390), + UINT32_C(0x00234323), UINT32_C(0x00327433), UINT32_C(0x003FED4A), + UINT32_C(0x003946EE), UINT32_C(0x00036FEB), UINT32_C(0x000C0F57), + UINT32_C(0x00359C4A), UINT32_C(0x00092D1D), UINT32_C(0x0001A134), + UINT32_C(0x002AD6D7), UINT32_C(0x0012395F), UINT32_C(0x003F988A), + UINT32_C(0x001ACCFF), UINT32_C(0x002123C1)}, + {UINT32_C(0x002D5A19), UINT32_C(0x00156939), UINT32_C(0x00222C1A), + UINT32_C(0x00619366), UINT32_C(0x0016036D), UINT32_C(0x0033459B), + UINT32_C(0x00062D47), UINT32_C(0x004B8C12), UINT32_C(0x001B95CF), + UINT32_C(0x00117F5F), UINT32_C(0x003F80DA), UINT32_C(0x00050A50), + UINT32_C(0x003942D5), UINT32_C(0x00385EAE), UINT32_C(0x0033AB22), + UINT32_C(0x00537468), UINT32_C(0x000DFF4B), UINT32_C(0x001879D6), + UINT32_C(0x002388A7), UINT32_C(0x000FCEA6), UINT32_C(0x00375E35), + UINT32_C(0x003398B3), UINT32_C(0x003F30BA)}}, + {{UINT32_C(0x003598D4), UINT32_C(0x0019A9A3), UINT32_C(0x003A267B), + UINT32_C(0x002B12CC), UINT32_C(0x003839D5), UINT32_C(0x003B8D33), + UINT32_C(0x0025BF3A), UINT32_C(0x00438430), UINT32_C(0x00189C5B), + UINT32_C(0x003F2C8B), UINT32_C(0x003A8177), UINT32_C(0x007055A3), + UINT32_C(0x002E6730), UINT32_C(0x00341821), UINT32_C(0x002142DE), + UINT32_C(0x0010BC51), UINT32_C(0x000D1EA0), UINT32_C(0x0015FEF0), + UINT32_C(0x00329B9B), UINT32_C(0x000508A4), UINT32_C(0x0001C1B9), + UINT32_C(0x001FF600), UINT32_C(0x00328E8E)}, + {UINT32_C(0x00717603), UINT32_C(0x0033F89C), UINT32_C(0x0025C76B), + UINT32_C(0x0018607B), UINT32_C(0x001303E9), UINT32_C(0x000F2CB5), + UINT32_C(0x000F8CE4), UINT32_C(0x0011128F), UINT32_C(0x00216CE5), + UINT32_C(0x003B4AEC), UINT32_C(0x0027F704), UINT32_C(0x005A2623), + UINT32_C(0x002A1412), UINT32_C(0x0037E07D), UINT32_C(0x0007F5BF), + UINT32_C(0x006BFF5F), UINT32_C(0x0000D2EA), UINT32_C(0x0028D09E), + UINT32_C(0x0030FECE), UINT32_C(0x007CE886), UINT32_C(0x00163AD8), + UINT32_C(0x00007318), UINT32_C(0x002C4F8D)}}, + {{UINT32_C(0x0022EF26), UINT32_C(0x0011DF21), UINT32_C(0x001A21E7), + UINT32_C(0x0067A5B1), UINT32_C(0x00327468), UINT32_C(0x0031BA5C), + UINT32_C(0x00156DC9), UINT32_C(0x001E7E4E), UINT32_C(0x003FB583), + UINT32_C(0x001EB61F), UINT32_C(0x002ABBA4), UINT32_C(0x0040FEC8), + UINT32_C(0x0004C5FF), UINT32_C(0x0010F939), UINT32_C(0x003D4DA2), + UINT32_C(0x005C0941), UINT32_C(0x0013C311), UINT32_C(0x000BA027), + UINT32_C(0x001845CC), UINT32_C(0x006FF264), UINT32_C(0x0038AC88), + UINT32_C(0x003463D6), UINT32_C(0x000EADB9)}, + {UINT32_C(0x000B056C), UINT32_C(0x00288DB2), UINT32_C(0x001C02CF), + UINT32_C(0x000BB175), UINT32_C(0x0018F094), UINT32_C(0x0027806D), + UINT32_C(0x00355563), UINT32_C(0x0054C2AD), UINT32_C(0x001CCE8E), + UINT32_C(0x002E2B85), UINT32_C(0x00073F85), UINT32_C(0x006D02CB), + UINT32_C(0x0033434A), UINT32_C(0x003DA80B), UINT32_C(0x001550B8), + UINT32_C(0x0053A65C), UINT32_C(0x003624AD), UINT32_C(0x00078142), + UINT32_C(0x0017BFE5), UINT32_C(0x002EF056), UINT32_C(0x00126C8F), + UINT32_C(0x00377035), UINT32_C(0x003C5FD9)}}, + {{UINT32_C(0x00692F52), UINT32_C(0x002D345A), UINT32_C(0x001014B5), + UINT32_C(0x004A6F1C), UINT32_C(0x00279FEB), UINT32_C(0x00057359), + UINT32_C(0x0005EE89), UINT32_C(0x000B0567), UINT32_C(0x002B38D3), + UINT32_C(0x00243C26), UINT32_C(0x0000FE1B), UINT32_C(0x001499CE), + UINT32_C(0x00326C87), UINT32_C(0x003808D0), UINT32_C(0x0024E577), + UINT32_C(0x00559968), UINT32_C(0x0014EF5F), UINT32_C(0x00091017), + UINT32_C(0x000A4B95), UINT32_C(0x0079EB0D), UINT32_C(0x000498F0), + UINT32_C(0x002F7F3A), UINT32_C(0x00024E38)}, + {UINT32_C(0x000590D7), UINT32_C(0x000C5AFF), UINT32_C(0x0021F7AF), + UINT32_C(0x00667CCB), UINT32_C(0x0038AC0E), UINT32_C(0x0023A769), + UINT32_C(0x003E7C3D), UINT32_C(0x0052FB04), UINT32_C(0x002DE7EC), + UINT32_C(0x002F29F5), UINT32_C(0x0023207B), UINT32_C(0x000CDF9D), + UINT32_C(0x002B4365), UINT32_C(0x003A2FBF), UINT32_C(0x0011FB18), + UINT32_C(0x0063AFCF), UINT32_C(0x0015B1DD), UINT32_C(0x0033B40C), + UINT32_C(0x00012F31), UINT32_C(0x00087C46), UINT32_C(0x00099C9E), + UINT32_C(0x0016BC64), UINT32_C(0x0032AD86)}}, + {{UINT32_C(0x00483715), UINT32_C(0x00368333), UINT32_C(0x00246073), + UINT32_C(0x005FB045), UINT32_C(0x003A117A), UINT32_C(0x002FBC81), + UINT32_C(0x0009FFFF), UINT32_C(0x003826CF), UINT32_C(0x00040665), + UINT32_C(0x00248D34), UINT32_C(0x0020F6F7), UINT32_C(0x0064C39E), + UINT32_C(0x000DDC2A), UINT32_C(0x0027F7AD), UINT32_C(0x002A0468), + UINT32_C(0x004233A3), UINT32_C(0x0039012C), UINT32_C(0x001733DF), + UINT32_C(0x002EFFEF), UINT32_C(0x00799097), UINT32_C(0x001FF171), + UINT32_C(0x0018ED19), UINT32_C(0x0026CCEE)}, + {UINT32_C(0x0046E82C), UINT32_C(0x003D6F41), UINT32_C(0x001B2A06), + UINT32_C(0x001FF2C3), UINT32_C(0x003F0F50), UINT32_C(0x0001A930), + UINT32_C(0x003BF063), UINT32_C(0x002EE18D), UINT32_C(0x001CCFE3), + UINT32_C(0x0036F969), UINT32_C(0x00149AD4), UINT32_C(0x0016E5BE), + UINT32_C(0x001F9762), UINT32_C(0x0022D061), UINT32_C(0x0012E3B7), + UINT32_C(0x0003E984), UINT32_C(0x003B3250), UINT32_C(0x0038C6B2), + UINT32_C(0x00159530), UINT32_C(0x0073861F), UINT32_C(0x00251136), + UINT32_C(0x00123D52), UINT32_C(0x0027A418)}}, + {{UINT32_C(0x003F3D56), UINT32_C(0x0035580A), UINT32_C(0x00315B32), + UINT32_C(0x00683B54), UINT32_C(0x002E6B1B), UINT32_C(0x0030E284), + UINT32_C(0x001A147C), UINT32_C(0x0057017E), UINT32_C(0x003F1CE4), + UINT32_C(0x000739F3), UINT32_C(0x000BE2D0), UINT32_C(0x00237229), + UINT32_C(0x0035DB98), UINT32_C(0x00013B31), UINT32_C(0x000885D5), + UINT32_C(0x00734416), UINT32_C(0x002BCB46), UINT32_C(0x0025B709), + UINT32_C(0x001F5588), UINT32_C(0x007AFB72), UINT32_C(0x000A3B67), + UINT32_C(0x002F51E5), UINT32_C(0x0037F6D4)}, + {UINT32_C(0x0058DC2B), UINT32_C(0x003BC578), UINT32_C(0x003EFB94), + UINT32_C(0x007AB5C0), UINT32_C(0x0033698C), UINT32_C(0x00384E73), + UINT32_C(0x0018C54E), UINT32_C(0x0006017C), UINT32_C(0x00169895), + UINT32_C(0x0032C34C), UINT32_C(0x001B77D2), UINT32_C(0x00668DCD), + UINT32_C(0x0029D00C), UINT32_C(0x0035521D), UINT32_C(0x000871E7), + UINT32_C(0x000881E9), UINT32_C(0x003F9CC2), UINT32_C(0x00273AEA), + UINT32_C(0x000AFA2B), UINT32_C(0x00519C25), UINT32_C(0x00284813), + UINT32_C(0x002F3204), UINT32_C(0x003A63D7)}}, + {{UINT32_C(0x00024391), UINT32_C(0x003BA776), UINT32_C(0x00033874), + UINT32_C(0x0034FBCF), UINT32_C(0x00303978), UINT32_C(0x00022D87), + UINT32_C(0x0005FC7A), UINT32_C(0x004D7ABB), UINT32_C(0x003F68E7), + UINT32_C(0x0017EC8C), UINT32_C(0x00051303), UINT32_C(0x006259DA), + UINT32_C(0x0021F4E5), UINT32_C(0x00121632), UINT32_C(0x0031BBFE), + UINT32_C(0x0079B8A1), UINT32_C(0x003AE333), UINT32_C(0x0006A0FC), + UINT32_C(0x00055308), UINT32_C(0x00601907), UINT32_C(0x002EA623), + UINT32_C(0x003B33BA), UINT32_C(0x00349F3F)}, + {UINT32_C(0x0001E557), UINT32_C(0x000C8304), UINT32_C(0x0002EDBE), + UINT32_C(0x001EFF0A), UINT32_C(0x003B6349), UINT32_C(0x00228976), + UINT32_C(0x00317095), UINT32_C(0x00482B44), UINT32_C(0x002287BF), + UINT32_C(0x00244B82), UINT32_C(0x003CFA63), UINT32_C(0x001D099B), + UINT32_C(0x0023EB12), UINT32_C(0x00188057), UINT32_C(0x000D5E10), + UINT32_C(0x005205C6), UINT32_C(0x002A8F5F), UINT32_C(0x002AB102), + UINT32_C(0x00151E7A), UINT32_C(0x0031464E), UINT32_C(0x0016ACF5), + UINT32_C(0x003C570E), UINT32_C(0x003D5498)}}, + {{UINT32_C(0x00528A5E), UINT32_C(0x001D1A41), UINT32_C(0x001D0B03), + UINT32_C(0x006E975C), UINT32_C(0x000C8044), UINT32_C(0x0026C6AB), + UINT32_C(0x001E178A), UINT32_C(0x0066B411), UINT32_C(0x00047104), + UINT32_C(0x00204D14), UINT32_C(0x00228536), UINT32_C(0x000D099C), + UINT32_C(0x000838AB), UINT32_C(0x001BC3DC), UINT32_C(0x0029FCE8), + UINT32_C(0x00029FD9), UINT32_C(0x002E687A), UINT32_C(0x003E8AE4), + UINT32_C(0x002DD424), UINT32_C(0x00432788), UINT32_C(0x0008979F), + UINT32_C(0x0039EDD9), UINT32_C(0x001751D6)}, + {UINT32_C(0x00492D65), UINT32_C(0x001A7DE1), UINT32_C(0x0014FD58), + UINT32_C(0x000C2887), UINT32_C(0x00170FFC), UINT32_C(0x0002CD82), + UINT32_C(0x000C7EB0), UINT32_C(0x007BC59A), UINT32_C(0x00027399), + UINT32_C(0x0007595A), UINT32_C(0x0006B074), UINT32_C(0x00362BD4), + UINT32_C(0x001D090F), UINT32_C(0x0005CC42), UINT32_C(0x00350E6D), + UINT32_C(0x000520BA), UINT32_C(0x003511C8), UINT32_C(0x00263B84), + UINT32_C(0x0012CB4B), UINT32_C(0x00395148), UINT32_C(0x001557BE), + UINT32_C(0x001A47CB), UINT32_C(0x00314464)}}, + {{UINT32_C(0x0043F2F2), UINT32_C(0x00194797), UINT32_C(0x00164AF2), + UINT32_C(0x0039D872), UINT32_C(0x000104A3), UINT32_C(0x0016929A), + UINT32_C(0x00282C81), UINT32_C(0x005F9C2C), UINT32_C(0x002A5D4B), + UINT32_C(0x003192B8), UINT32_C(0x002E15CB), UINT32_C(0x004F6E26), + UINT32_C(0x001DBE42), UINT32_C(0x0011C09D), UINT32_C(0x0036F64F), + UINT32_C(0x004483FB), UINT32_C(0x00060CCE), UINT32_C(0x003148C2), + UINT32_C(0x001EE90A), UINT32_C(0x003E6042), UINT32_C(0x002E64B1), + UINT32_C(0x002C44F1), UINT32_C(0x002F2B60)}, + {UINT32_C(0x005DC792), UINT32_C(0x00397CAD), UINT32_C(0x0018311A), + UINT32_C(0x000DB83D), UINT32_C(0x003A7FE0), UINT32_C(0x0036E2B7), + UINT32_C(0x00208A0B), UINT32_C(0x00725417), UINT32_C(0x00055265), + UINT32_C(0x0028A5C2), UINT32_C(0x002D7738), UINT32_C(0x0008626D), + UINT32_C(0x00267142), UINT32_C(0x00335A17), UINT32_C(0x003E2E6A), + UINT32_C(0x0023C202), UINT32_C(0x001CEC16), UINT32_C(0x0007C3CA), + UINT32_C(0x0026178F), UINT32_C(0x007AF6B1), UINT32_C(0x003EC4B0), + UINT32_C(0x000A5C59), UINT32_C(0x0005CC1B)}}, + {{UINT32_C(0x006D6CE3), UINT32_C(0x003CDDFA), UINT32_C(0x003536DB), + UINT32_C(0x003AFD9F), UINT32_C(0x00097B34), UINT32_C(0x0005ECD4), + UINT32_C(0x0034AA4D), UINT32_C(0x003B05FC), UINT32_C(0x0009BBAD), + UINT32_C(0x003FDCEE), UINT32_C(0x0033D997), UINT32_C(0x0003C160), + UINT32_C(0x003B6D37), UINT32_C(0x00315C67), UINT32_C(0x002362F6), + UINT32_C(0x001A9401), UINT32_C(0x0014E9AD), UINT32_C(0x0033DA3E), + UINT32_C(0x001BCD3C), UINT32_C(0x002D9F1B), UINT32_C(0x0030DD6A), + UINT32_C(0x003EC5E7), UINT32_C(0x00308176)}, + {UINT32_C(0x003069BB), UINT32_C(0x0021C759), UINT32_C(0x0015A982), + UINT32_C(0x000433F9), UINT32_C(0x000F0415), UINT32_C(0x0019193B), + UINT32_C(0x000CB74A), UINT32_C(0x00550A79), UINT32_C(0x002D6049), + UINT32_C(0x00207DAA), UINT32_C(0x000496F6), UINT32_C(0x00492EB6), + UINT32_C(0x003490BF), UINT32_C(0x003D7E1A), UINT32_C(0x0029D71A), + UINT32_C(0x001A99C6), UINT32_C(0x003442EC), UINT32_C(0x001FE876), + UINT32_C(0x00307A44), UINT32_C(0x005B4A4F), UINT32_C(0x000DC29C), + UINT32_C(0x0038C4EF), UINT32_C(0x002E915D)}}, + {{UINT32_C(0x000BEB8C), UINT32_C(0x00061A56), UINT32_C(0x000D8268), + UINT32_C(0x00421E9B), UINT32_C(0x001AD305), UINT32_C(0x002C0C54), + UINT32_C(0x002B4A5F), UINT32_C(0x003DF358), UINT32_C(0x001523F3), + UINT32_C(0x0028B368), UINT32_C(0x00276FD0), UINT32_C(0x00442093), + UINT32_C(0x000817D3), UINT32_C(0x002AE36B), UINT32_C(0x003C22DE), + UINT32_C(0x0058669C), UINT32_C(0x000D7F6C), UINT32_C(0x00279A1A), + UINT32_C(0x000D107C), UINT32_C(0x0021DE92), UINT32_C(0x00246CC9), + UINT32_C(0x0034B4A4), UINT32_C(0x000EFACA)}, + {UINT32_C(0x00694EEC), UINT32_C(0x003C5044), UINT32_C(0x0016ECB7), + UINT32_C(0x00412A48), UINT32_C(0x0017E21D), UINT32_C(0x001C1E82), + UINT32_C(0x002BA6CD), UINT32_C(0x001CF647), UINT32_C(0x00306F34), + UINT32_C(0x00146470), UINT32_C(0x00196674), UINT32_C(0x001418A3), + UINT32_C(0x002CFE68), UINT32_C(0x0026B0A5), UINT32_C(0x000747E1), + UINT32_C(0x0000076E), UINT32_C(0x002C52FE), UINT32_C(0x00381158), + UINT32_C(0x003CB4BD), UINT32_C(0x000E909B), UINT32_C(0x0009F542), + UINT32_C(0x000CB347), UINT32_C(0x0016D579)}}, + {{UINT32_C(0x0069D866), UINT32_C(0x0027D233), UINT32_C(0x0035A8F4), + UINT32_C(0x006BC550), UINT32_C(0x0018DA15), UINT32_C(0x0030CE9E), + UINT32_C(0x0015D2E1), UINT32_C(0x005388CB), UINT32_C(0x0032AC42), + UINT32_C(0x001EDFA9), UINT32_C(0x00041ADC), UINT32_C(0x000232D9), + UINT32_C(0x00278158), UINT32_C(0x003B9C91), UINT32_C(0x001DD2A0), + UINT32_C(0x0033F780), UINT32_C(0x003E5C50), UINT32_C(0x00075CF3), + UINT32_C(0x0015E7C2), UINT32_C(0x00440ADA), UINT32_C(0x0016D15D), + UINT32_C(0x000586C1), UINT32_C(0x002A016C)}, + {UINT32_C(0x004AE04A), UINT32_C(0x003E7BC9), UINT32_C(0x00096110), + UINT32_C(0x00066932), UINT32_C(0x001B3038), UINT32_C(0x001A7311), + UINT32_C(0x002F1AEF), UINT32_C(0x0068EA21), UINT32_C(0x00095E5D), + UINT32_C(0x0009883B), UINT32_C(0x00033990), UINT32_C(0x0024C0B3), + UINT32_C(0x0029A84D), UINT32_C(0x0005EBA4), UINT32_C(0x00311E64), + UINT32_C(0x0013FEAE), UINT32_C(0x0008156B), UINT32_C(0x002F4EE6), + UINT32_C(0x000DF329), UINT32_C(0x001AE70A), UINT32_C(0x002847DD), + UINT32_C(0x0018E0D7), UINT32_C(0x002BD42E)}}, + {{UINT32_C(0x000B9710), UINT32_C(0x001F475F), UINT32_C(0x000999F5), + UINT32_C(0x0032B55C), UINT32_C(0x002E7C12), UINT32_C(0x00264CED), + UINT32_C(0x00094F0A), UINT32_C(0x005A4E16), UINT32_C(0x000BECA0), + UINT32_C(0x00349B97), UINT32_C(0x003CE972), UINT32_C(0x002B59D3), + UINT32_C(0x002F203F), UINT32_C(0x000F211F), UINT32_C(0x003B07F1), + UINT32_C(0x00786C83), UINT32_C(0x0001D952), UINT32_C(0x002B793E), + UINT32_C(0x0033C2B1), UINT32_C(0x005E8A36), UINT32_C(0x0036E5E2), + UINT32_C(0x00156A46), UINT32_C(0x00362C8F)}, + {UINT32_C(0x00317544), UINT32_C(0x000AEC08), UINT32_C(0x003109AC), + UINT32_C(0x004EC46A), UINT32_C(0x00214545), UINT32_C(0x00338B7B), + UINT32_C(0x0016C802), UINT32_C(0x004E4271), UINT32_C(0x003A07D9), + UINT32_C(0x00019D25), UINT32_C(0x00198775), UINT32_C(0x0049A8C4), + UINT32_C(0x00215656), UINT32_C(0x0009570A), UINT32_C(0x0004BCC8), + UINT32_C(0x006ED97E), UINT32_C(0x003721B2), UINT32_C(0x001AB6C7), + UINT32_C(0x00219EDF), UINT32_C(0x004291B1), UINT32_C(0x0021788D), + UINT32_C(0x003CA653), UINT32_C(0x002C51F0)}}, + {{UINT32_C(0x00549A73), UINT32_C(0x001585E0), UINT32_C(0x001219AF), + UINT32_C(0x00278B73), UINT32_C(0x000AB916), UINT32_C(0x003FB445), + UINT32_C(0x003FC327), UINT32_C(0x00487904), UINT32_C(0x0008835A), + UINT32_C(0x0013EBDD), UINT32_C(0x002B6722), UINT32_C(0x005F61F3), + UINT32_C(0x0033C0B6), UINT32_C(0x00387E43), UINT32_C(0x000DC4FF), + UINT32_C(0x00220AA8), UINT32_C(0x002411BD), UINT32_C(0x002D9844), + UINT32_C(0x003BD35D), UINT32_C(0x000878BC), UINT32_C(0x001548F6), + UINT32_C(0x003F932E), UINT32_C(0x00189EAF)}, + {UINT32_C(0x00243BBC), UINT32_C(0x00080398), UINT32_C(0x0010A82F), + UINT32_C(0x006AB89B), UINT32_C(0x00021339), UINT32_C(0x00291FC3), + UINT32_C(0x00145BA0), UINT32_C(0x005378D0), UINT32_C(0x0015B299), + UINT32_C(0x00057581), UINT32_C(0x002112C0), UINT32_C(0x00642C8E), + UINT32_C(0x003981D5), UINT32_C(0x0020F113), UINT32_C(0x00354642), + UINT32_C(0x007C7721), UINT32_C(0x000CEDDA), UINT32_C(0x00220C78), + UINT32_C(0x000FA861), UINT32_C(0x004B62AA), UINT32_C(0x000C4398), + UINT32_C(0x001A528A), UINT32_C(0x001FA9C0)}}, + {{UINT32_C(0x00213FA6), UINT32_C(0x00303120), UINT32_C(0x002AB912), + UINT32_C(0x00604140), UINT32_C(0x0025C250), UINT32_C(0x003C2A6C), + UINT32_C(0x00322291), UINT32_C(0x0013477E), UINT32_C(0x001F06C8), + UINT32_C(0x003B3F6A), UINT32_C(0x00283A23), UINT32_C(0x0038B2D8), + UINT32_C(0x0029DD45), UINT32_C(0x002EBAA8), UINT32_C(0x001B3724), + UINT32_C(0x00678E35), UINT32_C(0x00096D14), UINT32_C(0x0027B787), + UINT32_C(0x0007AA23), UINT32_C(0x0025F092), UINT32_C(0x002170F1), + UINT32_C(0x001BC371), UINT32_C(0x003AED1A)}, + {UINT32_C(0x00425B32), UINT32_C(0x00286AA0), UINT32_C(0x00023581), + UINT32_C(0x006EE73F), UINT32_C(0x001E5A3B), UINT32_C(0x0030D82F), + UINT32_C(0x002D1CA8), UINT32_C(0x006A5FF6), UINT32_C(0x001470F9), + UINT32_C(0x00161816), UINT32_C(0x002350CB), UINT32_C(0x00113D17), + UINT32_C(0x003F9A5E), UINT32_C(0x003C7C27), UINT32_C(0x00276EA7), + UINT32_C(0x000CC5E8), UINT32_C(0x003022F0), UINT32_C(0x00293E6C), + UINT32_C(0x001948B1), UINT32_C(0x00043775), UINT32_C(0x003051DB), + UINT32_C(0x003D4E8F), UINT32_C(0x0016EAD0)}}, + }, + { + {{UINT32_C(0x000E7229), UINT32_C(0x001A6628), UINT32_C(0x003C1B89), + UINT32_C(0x001DEF3A), UINT32_C(0x0005F8AB), UINT32_C(0x00178896), + UINT32_C(0x00120D1F), UINT32_C(0x00035812), UINT32_C(0x002204C7), + UINT32_C(0x0025B252), UINT32_C(0x002627D9), UINT32_C(0x00295A6A), + UINT32_C(0x00064F84), UINT32_C(0x002DD46E), UINT32_C(0x0018C55B), + UINT32_C(0x0076AC5A), UINT32_C(0x0024BECB), UINT32_C(0x000D610A), + UINT32_C(0x003CF93D), UINT32_C(0x0025BA10), UINT32_C(0x0001D8FF), + UINT32_C(0x00111DC7), UINT32_C(0x001BA971)}, + {UINT32_C(0x00079874), UINT32_C(0x002A9BC0), UINT32_C(0x000AE07A), + UINT32_C(0x002B976D), UINT32_C(0x0037698A), UINT32_C(0x001EFD5D), + UINT32_C(0x00355FBE), UINT32_C(0x000FC35F), UINT32_C(0x003A64A2), + UINT32_C(0x0037BE03), UINT32_C(0x002E85B5), UINT32_C(0x001D3118), + UINT32_C(0x0027921A), UINT32_C(0x000C7471), UINT32_C(0x002BCAB5), + UINT32_C(0x0033AB97), UINT32_C(0x0001C915), UINT32_C(0x0019A901), + UINT32_C(0x001D2E71), UINT32_C(0x002A197E), UINT32_C(0x00115A8D), + UINT32_C(0x0024BF73), UINT32_C(0x0003CC85)}}, + {{UINT32_C(0x002895B2), UINT32_C(0x00320735), UINT32_C(0x000CFB47), + UINT32_C(0x003DB761), UINT32_C(0x0024C433), UINT32_C(0x0013E23C), + UINT32_C(0x002BF3DF), UINT32_C(0x0050A160), UINT32_C(0x000ED8DF), + UINT32_C(0x00023DC8), UINT32_C(0x0022ADA6), UINT32_C(0x0055A62F), + UINT32_C(0x00118219), UINT32_C(0x00055FC7), UINT32_C(0x0016FC9A), + UINT32_C(0x0019CDAC), UINT32_C(0x001F6533), UINT32_C(0x0039DEF8), + UINT32_C(0x00365EB0), UINT32_C(0x001DE6A4), UINT32_C(0x002EC097), + UINT32_C(0x0014ABA8), UINT32_C(0x003B186E)}, + {UINT32_C(0x0076F84F), UINT32_C(0x000A6360), UINT32_C(0x00389AFC), + UINT32_C(0x007F347C), UINT32_C(0x0010F3A6), UINT32_C(0x0020172F), + UINT32_C(0x002456C5), UINT32_C(0x0074D6FD), UINT32_C(0x003EBC5A), + UINT32_C(0x0015702D), UINT32_C(0x002C322D), UINT32_C(0x0062EC4A), + UINT32_C(0x001C6321), UINT32_C(0x001ECEE0), UINT32_C(0x000C4DCD), + UINT32_C(0x00385F54), UINT32_C(0x0015A2F6), UINT32_C(0x003EA398), + UINT32_C(0x00154A9E), UINT32_C(0x0035549D), UINT32_C(0x002902A3), + UINT32_C(0x000E87D8), UINT32_C(0x002197A4)}}, + {{UINT32_C(0x000E5E61), UINT32_C(0x0004D26C), UINT32_C(0x0006E668), + UINT32_C(0x00001B95), UINT32_C(0x0022CEB8), UINT32_C(0x002AD340), + UINT32_C(0x00178FFF), UINT32_C(0x0068E92D), UINT32_C(0x001CE560), + UINT32_C(0x00314785), UINT32_C(0x003C340C), UINT32_C(0x000E0359), + UINT32_C(0x0012093F), UINT32_C(0x00126D05), UINT32_C(0x0001A73F), + UINT32_C(0x006AADBB), UINT32_C(0x002D01CE), UINT32_C(0x001E4C4C), + UINT32_C(0x0019B1E1), UINT32_C(0x001E252E), UINT32_C(0x0027C32F), + UINT32_C(0x0027F7C8), UINT32_C(0x00274554)}, + {UINT32_C(0x0047C011), UINT32_C(0x0016AC83), UINT32_C(0x001C5FD0), + UINT32_C(0x002B42DE), UINT32_C(0x00108C9B), UINT32_C(0x003E5C82), + UINT32_C(0x001F47C2), UINT32_C(0x0067643D), UINT32_C(0x00253B0C), + UINT32_C(0x003B23F4), UINT32_C(0x00285E6A), UINT32_C(0x0000127F), + UINT32_C(0x001AFEDD), UINT32_C(0x001639C8), UINT32_C(0x0035C65D), + UINT32_C(0x003890F9), UINT32_C(0x0026D0AD), UINT32_C(0x0024695D), + UINT32_C(0x0033FF31), UINT32_C(0x00166142), UINT32_C(0x0032EBDF), + UINT32_C(0x000D509E), UINT32_C(0x00190DE4)}}, + {{UINT32_C(0x005E3F2E), UINT32_C(0x0010C08C), UINT32_C(0x0010E26F), + UINT32_C(0x0025A315), UINT32_C(0x0009E64F), UINT32_C(0x00002605), + UINT32_C(0x003601E3), UINT32_C(0x00634D76), UINT32_C(0x003BFCD4), + UINT32_C(0x00123253), UINT32_C(0x001D94E0), UINT32_C(0x003E9F61), + UINT32_C(0x0025A1E6), UINT32_C(0x00075853), UINT32_C(0x001EC114), + UINT32_C(0x00470547), UINT32_C(0x003E437A), UINT32_C(0x0019ED05), + UINT32_C(0x00061623), UINT32_C(0x0038D391), UINT32_C(0x0031CCDE), + UINT32_C(0x003374B4), UINT32_C(0x0007C7B9)}, + {UINT32_C(0x00512F62), UINT32_C(0x002E17FE), UINT32_C(0x0036CB08), + UINT32_C(0x001BDB9E), UINT32_C(0x00394D71), UINT32_C(0x002A7EF7), + UINT32_C(0x002E6818), UINT32_C(0x005F5A88), UINT32_C(0x00311E36), + UINT32_C(0x002A6BB1), UINT32_C(0x0019CD43), UINT32_C(0x0045542F), + UINT32_C(0x002B8CEA), UINT32_C(0x000FA346), UINT32_C(0x002E1A7A), + UINT32_C(0x000BD16F), UINT32_C(0x00245C8D), UINT32_C(0x00314F13), + UINT32_C(0x000FFBE8), UINT32_C(0x0056B54A), UINT32_C(0x00382922), + UINT32_C(0x0035F251), UINT32_C(0x003ACEB3)}}, + {{UINT32_C(0x003E11B5), UINT32_C(0x0002716B), UINT32_C(0x002750E4), + UINT32_C(0x003740A5), UINT32_C(0x00338906), UINT32_C(0x0013B5F0), + UINT32_C(0x0027CFAE), UINT32_C(0x004AA6D3), UINT32_C(0x0039E3B9), + UINT32_C(0x002D1B9F), UINT32_C(0x000035D9), UINT32_C(0x001E459B), + UINT32_C(0x000CF781), UINT32_C(0x0020167F), UINT32_C(0x001BB777), + UINT32_C(0x0038BA4C), UINT32_C(0x0028F2E3), UINT32_C(0x0037D8D5), + UINT32_C(0x001ECF87), UINT32_C(0x004E758A), UINT32_C(0x002AA667), + UINT32_C(0x002E97A6), UINT32_C(0x00352507)}, + {UINT32_C(0x00283BBD), UINT32_C(0x00263775), UINT32_C(0x000C63C9), + UINT32_C(0x00001EE4), UINT32_C(0x003ACBBF), UINT32_C(0x00162A58), + UINT32_C(0x0007B4FE), UINT32_C(0x00351728), UINT32_C(0x001973F1), + UINT32_C(0x002770E0), UINT32_C(0x003116FA), UINT32_C(0x0046EBBD), + UINT32_C(0x002C2896), UINT32_C(0x0036E872), UINT32_C(0x0013137C), + UINT32_C(0x002F444F), UINT32_C(0x003B3375), UINT32_C(0x0003C6AB), + UINT32_C(0x000FCBE7), UINT32_C(0x006D9063), UINT32_C(0x0020E15A), + UINT32_C(0x000D5454), UINT32_C(0x0037BDB0)}}, + {{UINT32_C(0x00439E00), UINT32_C(0x001E43D1), UINT32_C(0x003DE476), + UINT32_C(0x00148953), UINT32_C(0x0025C9E8), UINT32_C(0x001B6D92), + UINT32_C(0x000AA405), UINT32_C(0x0040CB85), UINT32_C(0x00310A15), + UINT32_C(0x003D0034), UINT32_C(0x001ACFB7), UINT32_C(0x00171502), + UINT32_C(0x0034B2C2), UINT32_C(0x0027FB5D), UINT32_C(0x003B0085), + UINT32_C(0x00344898), UINT32_C(0x003CA33C), UINT32_C(0x001BAF56), + UINT32_C(0x00021B32), UINT32_C(0x00448603), UINT32_C(0x00091BA6), + UINT32_C(0x000BAFC4), UINT32_C(0x0013D5A4)}, + {UINT32_C(0x00780D50), UINT32_C(0x0004D808), UINT32_C(0x002F1F9D), + UINT32_C(0x006E9B4E), UINT32_C(0x001EDD73), UINT32_C(0x000A2602), + UINT32_C(0x0032564D), UINT32_C(0x000A5962), UINT32_C(0x002D65F0), + UINT32_C(0x001FF6E8), UINT32_C(0x00263DE7), UINT32_C(0x0028B02D), + UINT32_C(0x000E0A8D), UINT32_C(0x002AE55E), UINT32_C(0x002EAA0B), + UINT32_C(0x00508B9C), UINT32_C(0x002CA2CC), UINT32_C(0x0039B8A4), + UINT32_C(0x000CF2D9), UINT32_C(0x002B0C05), UINT32_C(0x0036C4C9), + UINT32_C(0x00115406), UINT32_C(0x003A4458)}}, + {{UINT32_C(0x001A9FEF), UINT32_C(0x0017C5B8), UINT32_C(0x0014F927), + UINT32_C(0x0033E7CA), UINT32_C(0x001DE04B), UINT32_C(0x0021489F), + UINT32_C(0x003223E7), UINT32_C(0x007F4816), UINT32_C(0x0016233A), + UINT32_C(0x000E408A), UINT32_C(0x0025911C), UINT32_C(0x006CFEEF), + UINT32_C(0x00162D98), UINT32_C(0x001FB3B2), UINT32_C(0x000CAFE2), + UINT32_C(0x00140C69), UINT32_C(0x00373513), UINT32_C(0x0005EFAF), + UINT32_C(0x00318C8D), UINT32_C(0x001ED26D), UINT32_C(0x0023E013), + UINT32_C(0x000E235E), UINT32_C(0x002D6FB0)}, + {UINT32_C(0x004D9693), UINT32_C(0x0018038F), UINT32_C(0x001CF661), + UINT32_C(0x002F57EB), UINT32_C(0x001E346F), UINT32_C(0x0030F7B0), + UINT32_C(0x001DD4F8), UINT32_C(0x002D4964), UINT32_C(0x003D7230), + UINT32_C(0x000FA730), UINT32_C(0x001D142C), UINT32_C(0x002276EA), + UINT32_C(0x001BA178), UINT32_C(0x001466BF), UINT32_C(0x000BF8C5), + UINT32_C(0x0040D605), UINT32_C(0x002D85AB), UINT32_C(0x001F11D4), + UINT32_C(0x0016C7D7), UINT32_C(0x000AA5D0), UINT32_C(0x00359550), + UINT32_C(0x0029A075), UINT32_C(0x00122CA4)}}, + {{UINT32_C(0x0072B845), UINT32_C(0x001BEE64), UINT32_C(0x0030577D), + UINT32_C(0x006BAF51), UINT32_C(0x0024885D), UINT32_C(0x002BA5B1), + UINT32_C(0x00236704), UINT32_C(0x000346DC), UINT32_C(0x002A639E), + UINT32_C(0x003AF226), UINT32_C(0x002EA89E), UINT32_C(0x0026AF84), + UINT32_C(0x00004D4C), UINT32_C(0x0003640E), UINT32_C(0x001D8986), + UINT32_C(0x000E2826), UINT32_C(0x000D1018), UINT32_C(0x002CB972), + UINT32_C(0x0009688A), UINT32_C(0x000489A0), UINT32_C(0x002E4F56), + UINT32_C(0x003DD33C), UINT32_C(0x003609BA)}, + {UINT32_C(0x001692AF), UINT32_C(0x002C1F96), UINT32_C(0x003792D8), + UINT32_C(0x00069079), UINT32_C(0x0016ED4A), UINT32_C(0x003B5304), + UINT32_C(0x000FA6CC), UINT32_C(0x0018593E), UINT32_C(0x0000C409), + UINT32_C(0x0004E36E), UINT32_C(0x0003E4B0), UINT32_C(0x0018A207), + UINT32_C(0x00146BF4), UINT32_C(0x001CBDA5), UINT32_C(0x0011B878), + UINT32_C(0x0062A10E), UINT32_C(0x0002D181), UINT32_C(0x001D3599), + UINT32_C(0x00185943), UINT32_C(0x00609AB4), UINT32_C(0x002218D4), + UINT32_C(0x003653F8), UINT32_C(0x0019F9FD)}}, + {{UINT32_C(0x002ED6C7), UINT32_C(0x003C5236), UINT32_C(0x00186569), + UINT32_C(0x00428772), UINT32_C(0x003A69E3), UINT32_C(0x00087BF9), + UINT32_C(0x003E9E5F), UINT32_C(0x003AE8B4), UINT32_C(0x003504F3), + UINT32_C(0x000A8276), UINT32_C(0x003C584F), UINT32_C(0x0069143D), + UINT32_C(0x002C8325), UINT32_C(0x000FFE9F), UINT32_C(0x00191129), + UINT32_C(0x00319B36), UINT32_C(0x00115E02), UINT32_C(0x0016E07A), + UINT32_C(0x002FA414), UINT32_C(0x0014619E), UINT32_C(0x0012CD22), + UINT32_C(0x002D0E0D), UINT32_C(0x00125784)}, + {UINT32_C(0x00642A65), UINT32_C(0x00203D55), UINT32_C(0x0016C315), + UINT32_C(0x003CF7A9), UINT32_C(0x003071DE), UINT32_C(0x00106DAE), + UINT32_C(0x000B2C7D), UINT32_C(0x0047BA31), UINT32_C(0x002CA388), + UINT32_C(0x0029FBFC), UINT32_C(0x00390EAC), UINT32_C(0x0057CD61), + UINT32_C(0x0021CF36), UINT32_C(0x0034A05C), UINT32_C(0x00008B13), + UINT32_C(0x00793DB5), UINT32_C(0x0017E8E7), UINT32_C(0x0035D12F), + UINT32_C(0x003D6716), UINT32_C(0x004C990F), UINT32_C(0x003B6448), + UINT32_C(0x000A7F2C), UINT32_C(0x0025B5C5)}}, + {{UINT32_C(0x005E98D9), UINT32_C(0x0026DFA6), UINT32_C(0x000864C2), + UINT32_C(0x002E69DF), UINT32_C(0x00364C2C), UINT32_C(0x000D5FD3), + UINT32_C(0x001356CE), UINT32_C(0x00454A4C), UINT32_C(0x003B0302), + UINT32_C(0x0016D23C), UINT32_C(0x000B4AAA), UINT32_C(0x0057F380), + UINT32_C(0x0007CFAC), UINT32_C(0x0027103B), UINT32_C(0x000CAA2B), + UINT32_C(0x005B3BDE), UINT32_C(0x000D252E), UINT32_C(0x002FC387), + UINT32_C(0x001B39E0), UINT32_C(0x003C0113), UINT32_C(0x0009ADA1), + UINT32_C(0x002D5182), UINT32_C(0x00029B37)}, + {UINT32_C(0x003B5C86), UINT32_C(0x002985B6), UINT32_C(0x00193F46), + UINT32_C(0x007D3FF4), UINT32_C(0x0017EA07), UINT32_C(0x003167A4), + UINT32_C(0x0028ECD5), UINT32_C(0x00102560), UINT32_C(0x0014D8CD), + UINT32_C(0x0009D70A), UINT32_C(0x0036C65B), UINT32_C(0x0077810C), + UINT32_C(0x0038B843), UINT32_C(0x000AAA4F), UINT32_C(0x000423CC), + UINT32_C(0x00609B5A), UINT32_C(0x000B047D), UINT32_C(0x0032FCF2), + UINT32_C(0x00341089), UINT32_C(0x002F82CA), UINT32_C(0x0012D7A7), + UINT32_C(0x002D3F89), UINT32_C(0x00189DD5)}}, + {{UINT32_C(0x0066582F), UINT32_C(0x00257453), UINT32_C(0x00210314), + UINT32_C(0x0062A225), UINT32_C(0x00165C3B), UINT32_C(0x002E6592), + UINT32_C(0x002F1436), UINT32_C(0x005EE3F8), UINT32_C(0x0007F555), + UINT32_C(0x0020F441), UINT32_C(0x0034ED55), UINT32_C(0x00308313), + UINT32_C(0x0034A8DF), UINT32_C(0x0019301D), UINT32_C(0x00173FDB), + UINT32_C(0x00144214), UINT32_C(0x0019892A), UINT32_C(0x0027897A), + UINT32_C(0x0021A061), UINT32_C(0x007D24B8), UINT32_C(0x0037F3B1), + UINT32_C(0x00248CC2), UINT32_C(0x00373DB3)}, + {UINT32_C(0x000BF27A), UINT32_C(0x0039D46B), UINT32_C(0x001AD6FE), + UINT32_C(0x00475AC8), UINT32_C(0x00063B06), UINT32_C(0x00233FD2), + UINT32_C(0x0035C0AF), UINT32_C(0x006C6594), UINT32_C(0x002F3CD2), + UINT32_C(0x0015DF1B), UINT32_C(0x002DF565), UINT32_C(0x0022D72E), + UINT32_C(0x0004B112), UINT32_C(0x00022C9B), UINT32_C(0x00217D30), + UINT32_C(0x00586404), UINT32_C(0x00175C8A), UINT32_C(0x003CD70E), + UINT32_C(0x003F9D96), UINT32_C(0x007351B7), UINT32_C(0x00328F89), + UINT32_C(0x00339645), UINT32_C(0x00147D37)}}, + {{UINT32_C(0x0006ACC7), UINT32_C(0x0017F7BC), UINT32_C(0x00043BCE), + UINT32_C(0x00259C1D), UINT32_C(0x002CDB37), UINT32_C(0x0007238C), + UINT32_C(0x00375E6F), UINT32_C(0x00022971), UINT32_C(0x001B4942), + UINT32_C(0x003E301A), UINT32_C(0x00389E0C), UINT32_C(0x0014070B), + UINT32_C(0x0029DEFC), UINT32_C(0x002DDAC4), UINT32_C(0x00236616), + UINT32_C(0x0000A23A), UINT32_C(0x003BA71B), UINT32_C(0x00230957), + UINT32_C(0x002229EB), UINT32_C(0x0073C8F9), UINT32_C(0x0025DF6A), + UINT32_C(0x002BADCB), UINT32_C(0x000F1344)}, + {UINT32_C(0x001BEE3F), UINT32_C(0x001FA015), UINT32_C(0x000CFE6E), + UINT32_C(0x006FB0F7), UINT32_C(0x003C54F5), UINT32_C(0x003503D8), + UINT32_C(0x000B28FC), UINT32_C(0x0001F5C0), UINT32_C(0x00104298), + UINT32_C(0x003AF43A), UINT32_C(0x003A5408), UINT32_C(0x0018DAC0), + UINT32_C(0x0032EE35), UINT32_C(0x0031C65F), UINT32_C(0x000B31F5), + UINT32_C(0x0018B829), UINT32_C(0x000133FD), UINT32_C(0x00280CF1), + UINT32_C(0x00206DF2), UINT32_C(0x0009D76F), UINT32_C(0x001DC987), + UINT32_C(0x00365635), UINT32_C(0x0014E280)}}, + {{UINT32_C(0x0052A016), UINT32_C(0x0006F577), UINT32_C(0x001C0241), + UINT32_C(0x005E5024), UINT32_C(0x000DA944), UINT32_C(0x000855A1), + UINT32_C(0x002A89F3), UINT32_C(0x000E86B5), UINT32_C(0x000CEF59), + UINT32_C(0x003E508E), UINT32_C(0x00384B7E), UINT32_C(0x0032AAA5), + UINT32_C(0x0018FF8F), UINT32_C(0x002CD18E), UINT32_C(0x00040821), + UINT32_C(0x00189644), UINT32_C(0x002DEB40), UINT32_C(0x00132C27), + UINT32_C(0x000B3030), UINT32_C(0x0054A603), UINT32_C(0x0006BBED), + UINT32_C(0x0031D103), UINT32_C(0x002F003F)}, + {UINT32_C(0x001E656D), UINT32_C(0x002FF583), UINT32_C(0x0012A61F), + UINT32_C(0x00346DBE), UINT32_C(0x002A6FB1), UINT32_C(0x0011FD3B), + UINT32_C(0x0001276C), UINT32_C(0x006148C0), UINT32_C(0x00016501), + UINT32_C(0x000C96D4), UINT32_C(0x003DB630), UINT32_C(0x00492C8D), + UINT32_C(0x00057FDE), UINT32_C(0x000CF96C), UINT32_C(0x000164CA), + UINT32_C(0x004FCB96), UINT32_C(0x00385504), UINT32_C(0x003E5188), + UINT32_C(0x00286382), UINT32_C(0x0041E093), UINT32_C(0x0002DAB5), + UINT32_C(0x0010BB0F), UINT32_C(0x0000784C)}}, + {{UINT32_C(0x0075746D), UINT32_C(0x003F9D7D), UINT32_C(0x002D54D0), + UINT32_C(0x000CA2BA), UINT32_C(0x0034E004), UINT32_C(0x00145EDC), + UINT32_C(0x0024946A), UINT32_C(0x002B2267), UINT32_C(0x0029D5D7), + UINT32_C(0x001BD561), UINT32_C(0x00040FF1), UINT32_C(0x007A8818), + UINT32_C(0x000347CA), UINT32_C(0x00368968), UINT32_C(0x003DFBFD), + UINT32_C(0x0045E779), UINT32_C(0x0028CB15), UINT32_C(0x0006FE47), + UINT32_C(0x002AE3AD), UINT32_C(0x000C1917), UINT32_C(0x001A6E74), + UINT32_C(0x000C0AAF), UINT32_C(0x001EAD78)}, + {UINT32_C(0x0013957A), UINT32_C(0x000B13A3), UINT32_C(0x002FC29D), + UINT32_C(0x00318258), UINT32_C(0x000316AF), UINT32_C(0x00159186), + UINT32_C(0x002F9ACE), UINT32_C(0x002617A1), UINT32_C(0x002DA110), + UINT32_C(0x0024827F), UINT32_C(0x0014B7E3), UINT32_C(0x005A1108), + UINT32_C(0x002AD5AB), UINT32_C(0x001F8CD8), UINT32_C(0x00280CBB), + UINT32_C(0x000F3352), UINT32_C(0x0021699D), UINT32_C(0x003D79ED), + UINT32_C(0x000F2342), UINT32_C(0x000A46DF), UINT32_C(0x000765C5), + UINT32_C(0x001562AA), UINT32_C(0x001933BE)}}, + {{UINT32_C(0x00771DC4), UINT32_C(0x00105963), UINT32_C(0x0013309E), + UINT32_C(0x002D5F9C), UINT32_C(0x003816E4), UINT32_C(0x00183FD1), + UINT32_C(0x0024CC65), UINT32_C(0x004C32C8), UINT32_C(0x00023344), + UINT32_C(0x00127581), UINT32_C(0x00170A08), UINT32_C(0x003E271B), + UINT32_C(0x00376C4A), UINT32_C(0x00378FA8), UINT32_C(0x0038BD67), + UINT32_C(0x006DD9F1), UINT32_C(0x0013CB77), UINT32_C(0x00110A9A), + UINT32_C(0x0011B015), UINT32_C(0x003AB2F7), UINT32_C(0x00203C14), + UINT32_C(0x0037D1D9), UINT32_C(0x0017F513)}, + {UINT32_C(0x00383DC1), UINT32_C(0x0032B2DC), UINT32_C(0x003F0168), + UINT32_C(0x00279081), UINT32_C(0x001E4F82), UINT32_C(0x00183A42), + UINT32_C(0x000BFB80), UINT32_C(0x005A12C9), UINT32_C(0x00186FCD), + UINT32_C(0x002E7365), UINT32_C(0x0026CDDE), UINT32_C(0x007856A6), + UINT32_C(0x00241080), UINT32_C(0x000BB921), UINT32_C(0x003E1A85), + UINT32_C(0x0062D604), UINT32_C(0x000BB5D8), UINT32_C(0x0026B482), + UINT32_C(0x0019F5D5), UINT32_C(0x0028F3DC), UINT32_C(0x00143FEB), + UINT32_C(0x003E5ADA), UINT32_C(0x00253DEF)}}, + {{UINT32_C(0x006BA123), UINT32_C(0x000A781D), UINT32_C(0x000B7D51), + UINT32_C(0x00740F38), UINT32_C(0x002940F6), UINT32_C(0x00157C6F), + UINT32_C(0x003E02CE), UINT32_C(0x007207C6), UINT32_C(0x001B64BC), + UINT32_C(0x00372F37), UINT32_C(0x003A87CB), UINT32_C(0x002D7712), + UINT32_C(0x001B97D4), UINT32_C(0x00391CB2), UINT32_C(0x003AB655), + UINT32_C(0x00002E6F), UINT32_C(0x002C7D2F), UINT32_C(0x002AA52F), + UINT32_C(0x0032378F), UINT32_C(0x0072D63D), UINT32_C(0x0038FA33), + UINT32_C(0x003C9DB3), UINT32_C(0x0008013D)}, + {UINT32_C(0x0002066C), UINT32_C(0x0035DFEF), UINT32_C(0x001BC43F), + UINT32_C(0x0029FB46), UINT32_C(0x0013F28B), UINT32_C(0x002A9E1C), + UINT32_C(0x00316CE9), UINT32_C(0x002537F0), UINT32_C(0x002F07AC), + UINT32_C(0x0037B3FA), UINT32_C(0x000BB76B), UINT32_C(0x0049349E), + UINT32_C(0x00330713), UINT32_C(0x002755E1), UINT32_C(0x002928A9), + UINT32_C(0x00636D8A), UINT32_C(0x0036549D), UINT32_C(0x00119414), + UINT32_C(0x002CF725), UINT32_C(0x0037181E), UINT32_C(0x0001A2BC), + UINT32_C(0x0019DA46), UINT32_C(0x003B690A)}}, + }, + { + {{UINT32_C(0x0032A280), UINT32_C(0x001CB2CC), UINT32_C(0x000F9796), + UINT32_C(0x00007D75), UINT32_C(0x001AF2EB), UINT32_C(0x003C758A), + UINT32_C(0x003A6728), UINT32_C(0x0043B3E9), UINT32_C(0x00188CE5), + UINT32_C(0x0029D0A4), UINT32_C(0x000113A0), UINT32_C(0x0022343F), + UINT32_C(0x000890D8), UINT32_C(0x0012176A), UINT32_C(0x002971B0), + UINT32_C(0x00785A55), UINT32_C(0x0001C0B7), UINT32_C(0x00273262), + UINT32_C(0x002D06D6), UINT32_C(0x0006C271), UINT32_C(0x001E07EA), + UINT32_C(0x003A1542), UINT32_C(0x0026C181)}, + {UINT32_C(0x00414498), UINT32_C(0x0014CB47), UINT32_C(0x000FFCA6), + UINT32_C(0x002D51CC), UINT32_C(0x000008D4), UINT32_C(0x00244EA0), + UINT32_C(0x002F062C), UINT32_C(0x000336A8), UINT32_C(0x00150722), + UINT32_C(0x0019F588), UINT32_C(0x000CB860), UINT32_C(0x00604BC3), + UINT32_C(0x0008902B), UINT32_C(0x003D5ADC), UINT32_C(0x00088D53), + UINT32_C(0x000A2728), UINT32_C(0x003852C8), UINT32_C(0x001CE562), + UINT32_C(0x003D7474), UINT32_C(0x000E17F9), UINT32_C(0x000ADBDE), + UINT32_C(0x0002F321), UINT32_C(0x002B5370)}}, + {{UINT32_C(0x00720956), UINT32_C(0x0012FE7D), UINT32_C(0x003A4010), + UINT32_C(0x0005E1F1), UINT32_C(0x002FCF68), UINT32_C(0x0001CA0D), + UINT32_C(0x001F9A09), UINT32_C(0x00476576), UINT32_C(0x001BBE6F), + UINT32_C(0x00157A43), UINT32_C(0x00041B45), UINT32_C(0x0069B21A), + UINT32_C(0x0011A874), UINT32_C(0x00237329), UINT32_C(0x0010ABF2), + UINT32_C(0x004A1BCF), UINT32_C(0x00248B43), UINT32_C(0x0039B567), + UINT32_C(0x00162490), UINT32_C(0x002F2BDB), UINT32_C(0x00296C0C), + UINT32_C(0x000A4FEE), UINT32_C(0x0004AD98)}, + {UINT32_C(0x004454EB), UINT32_C(0x002C8099), UINT32_C(0x0010E84D), + UINT32_C(0x002E2241), UINT32_C(0x003207CA), UINT32_C(0x000F5910), + UINT32_C(0x0003F04F), UINT32_C(0x00392613), UINT32_C(0x000ADE9F), + UINT32_C(0x003DBD57), UINT32_C(0x0030B86D), UINT32_C(0x0009CC16), + UINT32_C(0x000A209A), UINT32_C(0x003C2AFA), UINT32_C(0x00035E76), + UINT32_C(0x005F940A), UINT32_C(0x002B2161), UINT32_C(0x000C7D9D), + UINT32_C(0x00363B77), UINT32_C(0x0077A201), UINT32_C(0x00399B44), + UINT32_C(0x0008E94D), UINT32_C(0x00008286)}}, + {{UINT32_C(0x002B92BC), UINT32_C(0x0006153E), UINT32_C(0x0000F8C6), + UINT32_C(0x005F1B6C), UINT32_C(0x0003BA49), UINT32_C(0x001A925E), + UINT32_C(0x000F9BBA), UINT32_C(0x00055F92), UINT32_C(0x002FBD92), + UINT32_C(0x002177A5), UINT32_C(0x003FB8F5), UINT32_C(0x005D4BF2), + UINT32_C(0x002146D4), UINT32_C(0x0036976B), UINT32_C(0x0022B1BA), + UINT32_C(0x0032F949), UINT32_C(0x000965FD), UINT32_C(0x001E9F3E), + UINT32_C(0x002DA23B), UINT32_C(0x00107070), UINT32_C(0x00398A1E), + UINT32_C(0x00069BFE), UINT32_C(0x002FDDC0)}, + {UINT32_C(0x0072B741), UINT32_C(0x003D395C), UINT32_C(0x003A9B25), + UINT32_C(0x00294646), UINT32_C(0x00021148), UINT32_C(0x0015DA45), + UINT32_C(0x00113C40), UINT32_C(0x00419E05), UINT32_C(0x003F3B62), + UINT32_C(0x001F8475), UINT32_C(0x0006EE22), UINT32_C(0x0066BC79), + UINT32_C(0x0008B7CC), UINT32_C(0x00023931), UINT32_C(0x00167FA8), + UINT32_C(0x003BD93E), UINT32_C(0x0039EE3D), UINT32_C(0x001DFEEA), + UINT32_C(0x001FDCFE), UINT32_C(0x00613DB2), UINT32_C(0x00160B1F), + UINT32_C(0x001970FE), UINT32_C(0x0023B0DD)}}, + {{UINT32_C(0x0023C1BA), UINT32_C(0x002E5121), UINT32_C(0x002C52E9), + UINT32_C(0x007811E3), UINT32_C(0x0001A384), UINT32_C(0x002EABE1), + UINT32_C(0x0024FBC8), UINT32_C(0x0045D98F), UINT32_C(0x001C8207), + UINT32_C(0x0033DA7A), UINT32_C(0x0030B201), UINT32_C(0x0023DFB3), + UINT32_C(0x0014CD7A), UINT32_C(0x000B9A13), UINT32_C(0x0029ED72), + UINT32_C(0x003FDD61), UINT32_C(0x002FAEDB), UINT32_C(0x0016FDA9), + UINT32_C(0x0006A7E0), UINT32_C(0x003CCE59), UINT32_C(0x00059683), + UINT32_C(0x0034B4B3), UINT32_C(0x00344F10)}, + {UINT32_C(0x0064F192), UINT32_C(0x00121A7B), UINT32_C(0x001023D3), + UINT32_C(0x004802FA), UINT32_C(0x000C0C74), UINT32_C(0x003436B0), + UINT32_C(0x0028F327), UINT32_C(0x00104D43), UINT32_C(0x000B6D47), + UINT32_C(0x003D9F11), UINT32_C(0x0038A86E), UINT32_C(0x0024B31C), + UINT32_C(0x000D71F6), UINT32_C(0x0001075B), UINT32_C(0x00131E0B), + UINT32_C(0x006451D8), UINT32_C(0x0023646D), UINT32_C(0x00185996), + UINT32_C(0x00143B48), UINT32_C(0x0076F1C1), UINT32_C(0x000E8DA3), + UINT32_C(0x002EB768), UINT32_C(0x003FBF6F)}}, + {{UINT32_C(0x004D2204), UINT32_C(0x002A5EA9), UINT32_C(0x00019369), + UINT32_C(0x0070CD74), UINT32_C(0x001A76B1), UINT32_C(0x003815C4), + UINT32_C(0x002E68F7), UINT32_C(0x005398A8), UINT32_C(0x0020AB8F), + UINT32_C(0x00185D53), UINT32_C(0x00168C1D), UINT32_C(0x00274E1A), + UINT32_C(0x000524F2), UINT32_C(0x003D9B1A), UINT32_C(0x0012E5AB), + UINT32_C(0x004C1050), UINT32_C(0x0032ABC0), UINT32_C(0x0025971D), + UINT32_C(0x003AC08F), UINT32_C(0x002F1AFC), UINT32_C(0x001407B9), + UINT32_C(0x00277B2E), UINT32_C(0x001B1F71)}, + {UINT32_C(0x000D2E98), UINT32_C(0x0030B33B), UINT32_C(0x003037E7), + UINT32_C(0x00425F13), UINT32_C(0x002EBDC3), UINT32_C(0x001D9BE6), + UINT32_C(0x00111CD4), UINT32_C(0x007D7418), UINT32_C(0x001F1C08), + UINT32_C(0x0027B843), UINT32_C(0x002D41E6), UINT32_C(0x004D0FDD), + UINT32_C(0x00162312), UINT32_C(0x000A0EB8), UINT32_C(0x0004819A), + UINT32_C(0x001E097B), UINT32_C(0x0000A336), UINT32_C(0x000C49B4), + UINT32_C(0x001F6549), UINT32_C(0x0065532D), UINT32_C(0x00175C84), + UINT32_C(0x0008B3CF), UINT32_C(0x001D68D8)}}, + {{UINT32_C(0x007E2EF2), UINT32_C(0x000CB9A8), UINT32_C(0x000968E6), + UINT32_C(0x00367210), UINT32_C(0x00079EA4), UINT32_C(0x00115BCE), + UINT32_C(0x002F228C), UINT32_C(0x007BE5BF), UINT32_C(0x003C8A27), + UINT32_C(0x000C8607), UINT32_C(0x00319827), UINT32_C(0x006BF356), + UINT32_C(0x00222BCA), UINT32_C(0x002D52EC), UINT32_C(0x001634C9), + UINT32_C(0x00422BB5), UINT32_C(0x0020B569), UINT32_C(0x002745C9), + UINT32_C(0x002547E2), UINT32_C(0x00692CC6), UINT32_C(0x00366369), + UINT32_C(0x000C2F45), UINT32_C(0x002DCB38)}, + {UINT32_C(0x00432E57), UINT32_C(0x003BCE51), UINT32_C(0x002F50A1), + UINT32_C(0x00010E21), UINT32_C(0x000B5704), UINT32_C(0x003603EC), + UINT32_C(0x003DC6B0), UINT32_C(0x001D3C66), UINT32_C(0x003E876A), + UINT32_C(0x001D2475), UINT32_C(0x003D0CFE), UINT32_C(0x00752FD6), + UINT32_C(0x001389EE), UINT32_C(0x002682A3), UINT32_C(0x00006DE0), + UINT32_C(0x00466661), UINT32_C(0x0025CA0B), UINT32_C(0x003A47DE), + UINT32_C(0x001DBDDD), UINT32_C(0x00584C8D), UINT32_C(0x00097729), + UINT32_C(0x003A3D36), UINT32_C(0x0026D79A)}}, + {{UINT32_C(0x0046DC32), UINT32_C(0x0039E30E), UINT32_C(0x001A553F), + UINT32_C(0x00631635), UINT32_C(0x00137523), UINT32_C(0x0011F122), + UINT32_C(0x0002887F), UINT32_C(0x0039C6A2), UINT32_C(0x003D3F52), + UINT32_C(0x000E5C16), UINT32_C(0x001B4338), UINT32_C(0x001104AD), + UINT32_C(0x0026AD2E), UINT32_C(0x000C1BE9), UINT32_C(0x000082A2), + UINT32_C(0x0036D7B0), UINT32_C(0x003E62E1), UINT32_C(0x002AC82D), + UINT32_C(0x00354EEE), UINT32_C(0x001B7162), UINT32_C(0x002F1507), + UINT32_C(0x00064946), UINT32_C(0x002B777F)}, + {UINT32_C(0x00755CF4), UINT32_C(0x002F3F9D), UINT32_C(0x0027FBE0), + UINT32_C(0x00250D1C), UINT32_C(0x003AD66C), UINT32_C(0x00220A36), + UINT32_C(0x00324DD9), UINT32_C(0x000FD4E3), UINT32_C(0x002FB653), + UINT32_C(0x001407E0), UINT32_C(0x0007BD23), UINT32_C(0x001BCA1B), + UINT32_C(0x0023529D), UINT32_C(0x000512E2), UINT32_C(0x00322089), + UINT32_C(0x0052FB0B), UINT32_C(0x00159218), UINT32_C(0x000A2629), + UINT32_C(0x001ECC37), UINT32_C(0x000D691D), UINT32_C(0x001CDC35), + UINT32_C(0x0025DECE), UINT32_C(0x0008B229)}}, + {{UINT32_C(0x00042A2E), UINT32_C(0x0002BECD), UINT32_C(0x000CE644), + UINT32_C(0x007EB2C8), UINT32_C(0x000CDB86), UINT32_C(0x0038243C), + UINT32_C(0x0013980F), UINT32_C(0x007DB14B), UINT32_C(0x003AF52F), + UINT32_C(0x0034D34E), UINT32_C(0x00328903), UINT32_C(0x0012E910), + UINT32_C(0x002F165C), UINT32_C(0x001F951B), UINT32_C(0x003DCC69), + UINT32_C(0x006A2790), UINT32_C(0x001419B1), UINT32_C(0x003CD6D6), + UINT32_C(0x000A88DC), UINT32_C(0x0065E513), UINT32_C(0x00038EAB), + UINT32_C(0x000DA64E), UINT32_C(0x001E4802)}, + {UINT32_C(0x00411E28), UINT32_C(0x0038A31B), UINT32_C(0x000EA13F), + UINT32_C(0x00692375), UINT32_C(0x003972E4), UINT32_C(0x003C7618), + UINT32_C(0x0030675C), UINT32_C(0x000471A7), UINT32_C(0x001EAA31), + UINT32_C(0x000332B8), UINT32_C(0x000BA219), UINT32_C(0x005949F6), + UINT32_C(0x000721E9), UINT32_C(0x000B0539), UINT32_C(0x00351BFD), + UINT32_C(0x006AF8C8), UINT32_C(0x001749B7), UINT32_C(0x001B4221), + UINT32_C(0x00346E9F), UINT32_C(0x001D138C), UINT32_C(0x00315C0E), + UINT32_C(0x003AE1BD), UINT32_C(0x001E5845)}}, + {{UINT32_C(0x0073DD11), UINT32_C(0x0038D066), UINT32_C(0x003B6E1E), + UINT32_C(0x0058D879), UINT32_C(0x003FC188), UINT32_C(0x0026EA01), + UINT32_C(0x003A5E72), UINT32_C(0x003EAE27), UINT32_C(0x0017EC7B), + UINT32_C(0x0021435A), UINT32_C(0x0030A0EF), UINT32_C(0x00226F77), + UINT32_C(0x00319511), UINT32_C(0x000EECC9), UINT32_C(0x00184FB1), + UINT32_C(0x00485367), UINT32_C(0x0012DBCE), UINT32_C(0x00296D94), + UINT32_C(0x001ECEF1), UINT32_C(0x0048A6EF), UINT32_C(0x000C1378), + UINT32_C(0x000486F3), UINT32_C(0x00294CB6)}, + {UINT32_C(0x00659E15), UINT32_C(0x0021AFE5), UINT32_C(0x00035B7D), + UINT32_C(0x0014905A), UINT32_C(0x00190940), UINT32_C(0x0028A11C), + UINT32_C(0x003C2EC5), UINT32_C(0x0061D9FF), UINT32_C(0x003C91F9), + UINT32_C(0x000C24F9), UINT32_C(0x0021D20C), UINT32_C(0x0069147F), + UINT32_C(0x002C2485), UINT32_C(0x001F02A6), UINT32_C(0x001E436B), + UINT32_C(0x0070B5EC), UINT32_C(0x003C8887), UINT32_C(0x000479C4), + UINT32_C(0x00329212), UINT32_C(0x00023848), UINT32_C(0x000FD9D8), + UINT32_C(0x001CA129), UINT32_C(0x002842CB)}}, + {{UINT32_C(0x007B92F5), UINT32_C(0x0037A067), UINT32_C(0x000074AF), + UINT32_C(0x005B2F28), UINT32_C(0x000CBF5F), UINT32_C(0x00077719), + UINT32_C(0x0015F2E0), UINT32_C(0x0016A3E7), UINT32_C(0x001CEB10), + UINT32_C(0x0022F6C6), UINT32_C(0x003D1FA9), UINT32_C(0x004CD931), + UINT32_C(0x001D7522), UINT32_C(0x001781A9), UINT32_C(0x003443CE), + UINT32_C(0x006FA88B), UINT32_C(0x001564BA), UINT32_C(0x00110D1F), + UINT32_C(0x0012896B), UINT32_C(0x000B6064), UINT32_C(0x00253009), + UINT32_C(0x0007C604), UINT32_C(0x003E79C8)}, + {UINT32_C(0x0022EAC3), UINT32_C(0x001D3CBB), UINT32_C(0x001660EB), + UINT32_C(0x00530D25), UINT32_C(0x001DDD46), UINT32_C(0x0038675B), + UINT32_C(0x00270FCB), UINT32_C(0x0070D781), UINT32_C(0x0036DB98), + UINT32_C(0x0010E11B), UINT32_C(0x0019CA07), UINT32_C(0x004B0308), + UINT32_C(0x003E92E0), UINT32_C(0x00039F79), UINT32_C(0x002FAD1D), + UINT32_C(0x0017B8FE), UINT32_C(0x001C8122), UINT32_C(0x0013FAE1), + UINT32_C(0x00095301), UINT32_C(0x003B1103), UINT32_C(0x00031A89), + UINT32_C(0x001447C4), UINT32_C(0x0009D34F)}}, + {{UINT32_C(0x007C8A6B), UINT32_C(0x002A2FE8), UINT32_C(0x0035E593), + UINT32_C(0x004E1D4D), UINT32_C(0x0015A0B8), UINT32_C(0x0020842D), + UINT32_C(0x0018D50D), UINT32_C(0x001081D4), UINT32_C(0x00126A85), + UINT32_C(0x0005E191), UINT32_C(0x001BEF59), UINT32_C(0x005AA8B6), + UINT32_C(0x003A3A60), UINT32_C(0x000ABF90), UINT32_C(0x0006196E), + UINT32_C(0x00150E95), UINT32_C(0x000CB2DC), UINT32_C(0x000DDCD3), + UINT32_C(0x003E2A72), UINT32_C(0x00582EAB), UINT32_C(0x0035F095), + UINT32_C(0x0010E8B9), UINT32_C(0x002F9603)}, + {UINT32_C(0x00381ED7), UINT32_C(0x000655D9), UINT32_C(0x00270A8E), + UINT32_C(0x00048245), UINT32_C(0x00309CD3), UINT32_C(0x0017ED44), + UINT32_C(0x001D450E), UINT32_C(0x000312BA), UINT32_C(0x0005985D), + UINT32_C(0x00358C0C), UINT32_C(0x002A7087), UINT32_C(0x0072F6C5), + UINT32_C(0x00198D4B), UINT32_C(0x00266DA7), UINT32_C(0x0030D13D), + UINT32_C(0x00164FAF), UINT32_C(0x001B3D2A), UINT32_C(0x00054328), + UINT32_C(0x00297C8D), UINT32_C(0x0024974D), UINT32_C(0x000C4C24), + UINT32_C(0x00233778), UINT32_C(0x000A3C4F)}}, + {{UINT32_C(0x0019EECE), UINT32_C(0x00162127), UINT32_C(0x001040AF), + UINT32_C(0x001C475E), UINT32_C(0x00239506), UINT32_C(0x0009AF50), + UINT32_C(0x001C9807), UINT32_C(0x003FA8CC), UINT32_C(0x003128F6), + UINT32_C(0x00045734), UINT32_C(0x001442AC), UINT32_C(0x0047E27E), + UINT32_C(0x003215CF), UINT32_C(0x00140684), UINT32_C(0x0023566D), + UINT32_C(0x0062EA4E), UINT32_C(0x0026B67A), UINT32_C(0x00295AF8), + UINT32_C(0x0006E548), UINT32_C(0x0040F0F6), UINT32_C(0x003FA25A), + UINT32_C(0x003841B6), UINT32_C(0x0034374F)}, + {UINT32_C(0x0011DBC4), UINT32_C(0x001EE6DB), UINT32_C(0x00351C56), + UINT32_C(0x003D4083), UINT32_C(0x001009D6), UINT32_C(0x003E9349), + UINT32_C(0x00010A11), UINT32_C(0x00382D27), UINT32_C(0x003D7132), + UINT32_C(0x001999FC), UINT32_C(0x003911D4), UINT32_C(0x0045D805), + UINT32_C(0x0001B235), UINT32_C(0x00258644), UINT32_C(0x001B1DA8), + UINT32_C(0x007D367D), UINT32_C(0x002106B2), UINT32_C(0x00096B2D), + UINT32_C(0x001A078D), UINT32_C(0x007CE535), UINT32_C(0x003C6BB8), + UINT32_C(0x0021FC86), UINT32_C(0x00388E7F)}}, + {{UINT32_C(0x003C849A), UINT32_C(0x00339DA9), UINT32_C(0x0001B56C), + UINT32_C(0x0018B48F), UINT32_C(0x0036B241), UINT32_C(0x001C3E99), + UINT32_C(0x001DC79F), UINT32_C(0x006E4794), UINT32_C(0x0014AD70), + UINT32_C(0x0020AF6F), UINT32_C(0x00286589), UINT32_C(0x0000AA9B), + UINT32_C(0x00287B90), UINT32_C(0x0036D3BA), UINT32_C(0x002CB788), + UINT32_C(0x0036DAF5), UINT32_C(0x000DA427), UINT32_C(0x0003CD59), + UINT32_C(0x00026B18), UINT32_C(0x002DA542), UINT32_C(0x0010AEF9), + UINT32_C(0x003EA11A), UINT32_C(0x003453B3)}, + {UINT32_C(0x001D0091), UINT32_C(0x0020390C), UINT32_C(0x002D251A), + UINT32_C(0x0043EFFA), UINT32_C(0x00284188), UINT32_C(0x00326C4E), + UINT32_C(0x001965D5), UINT32_C(0x0052E6EE), UINT32_C(0x0000616F), + UINT32_C(0x002561A4), UINT32_C(0x003AD411), UINT32_C(0x0036D206), + UINT32_C(0x000E1BD3), UINT32_C(0x001392B2), UINT32_C(0x002A8475), + UINT32_C(0x0066EFA5), UINT32_C(0x0037E866), UINT32_C(0x001BBD62), + UINT32_C(0x001D1550), UINT32_C(0x0032E625), UINT32_C(0x00302306), + UINT32_C(0x001E0DDA), UINT32_C(0x001CF60C)}}, + {{UINT32_C(0x0023F415), UINT32_C(0x0034D9CF), UINT32_C(0x0024E53D), + UINT32_C(0x000875AF), UINT32_C(0x00052504), UINT32_C(0x003FD275), + UINT32_C(0x0030C106), UINT32_C(0x006F3F46), UINT32_C(0x000B6725), + UINT32_C(0x001DB8D9), UINT32_C(0x0028E8F0), UINT32_C(0x00172728), + UINT32_C(0x0028DA5A), UINT32_C(0x0032E926), UINT32_C(0x002D0A85), + UINT32_C(0x000530D4), UINT32_C(0x0035DC87), UINT32_C(0x002D07D2), + UINT32_C(0x003F882E), UINT32_C(0x005C838F), UINT32_C(0x0026F2BF), + UINT32_C(0x003EEE58), UINT32_C(0x00071443)}, + {UINT32_C(0x002CB0FF), UINT32_C(0x003E64EA), UINT32_C(0x0018EDB8), + UINT32_C(0x003B4182), UINT32_C(0x001FC937), UINT32_C(0x002AAFB7), + UINT32_C(0x002EA0F1), UINT32_C(0x0049D653), UINT32_C(0x000F4A39), + UINT32_C(0x000B926E), UINT32_C(0x0010CA2F), UINT32_C(0x002208C8), + UINT32_C(0x0039DE49), UINT32_C(0x000161ED), UINT32_C(0x0007EAFC), + UINT32_C(0x00514FED), UINT32_C(0x00039404), UINT32_C(0x0018883A), + UINT32_C(0x00023262), UINT32_C(0x0016E9C1), UINT32_C(0x003C573A), + UINT32_C(0x002FB6FD), UINT32_C(0x00386202)}}, + {{UINT32_C(0x005D99DB), UINT32_C(0x00001D29), UINT32_C(0x000AF82D), + UINT32_C(0x00444767), UINT32_C(0x0015C5E2), UINT32_C(0x002A81B3), + UINT32_C(0x0024A5EF), UINT32_C(0x006F6AF5), UINT32_C(0x001EBBCB), + UINT32_C(0x00305276), UINT32_C(0x001A7F7A), UINT32_C(0x006B1587), + UINT32_C(0x0010BC41), UINT32_C(0x00233733), UINT32_C(0x0015633F), + UINT32_C(0x006476A7), UINT32_C(0x00104F63), UINT32_C(0x001F393B), + UINT32_C(0x00255507), UINT32_C(0x00708297), UINT32_C(0x000DB54C), + UINT32_C(0x001A8A1D), UINT32_C(0x001A9756)}, + {UINT32_C(0x0033896F), UINT32_C(0x00011688), UINT32_C(0x001FBDA0), + UINT32_C(0x002D7B5B), UINT32_C(0x00345043), UINT32_C(0x000409DD), + UINT32_C(0x0023A47B), UINT32_C(0x0018CE42), UINT32_C(0x00005C57), + UINT32_C(0x0010E46C), UINT32_C(0x0016395D), UINT32_C(0x0029A5E5), + UINT32_C(0x00063854), UINT32_C(0x002F12A1), UINT32_C(0x00013E1B), + UINT32_C(0x00407727), UINT32_C(0x001EEAAC), UINT32_C(0x0039D044), + UINT32_C(0x0023C5C8), UINT32_C(0x003BB777), UINT32_C(0x00206B48), + UINT32_C(0x0020CD62), UINT32_C(0x002C7DE1)}}, + {{UINT32_C(0x00431425), UINT32_C(0x003E66AF), UINT32_C(0x0039AA06), + UINT32_C(0x0061F4D9), UINT32_C(0x001789C9), UINT32_C(0x002ECAAC), + UINT32_C(0x0003F0C7), UINT32_C(0x0019C0FC), UINT32_C(0x00131E10), + UINT32_C(0x001FDEC5), UINT32_C(0x00375C20), UINT32_C(0x0038CDA3), + UINT32_C(0x0019FA41), UINT32_C(0x00339E14), UINT32_C(0x002C2643), + UINT32_C(0x0060E1EB), UINT32_C(0x001F88C5), UINT32_C(0x002C520C), + UINT32_C(0x000ED4A1), UINT32_C(0x0009B12C), UINT32_C(0x003385E8), + UINT32_C(0x0007CEC0), UINT32_C(0x0025145A)}, + {UINT32_C(0x000C4BBC), UINT32_C(0x001CA76E), UINT32_C(0x00053791), + UINT32_C(0x0071B24B), UINT32_C(0x002AEE0E), UINT32_C(0x003D38BC), + UINT32_C(0x0014DF23), UINT32_C(0x00714100), UINT32_C(0x002621B3), + UINT32_C(0x003EA6E9), UINT32_C(0x003351FD), UINT32_C(0x002F67A6), + UINT32_C(0x003DD342), UINT32_C(0x002B6916), UINT32_C(0x0018E95C), + UINT32_C(0x004F0EF0), UINT32_C(0x00063803), UINT32_C(0x0031C884), + UINT32_C(0x0029F497), UINT32_C(0x0076FCD3), UINT32_C(0x0008E8DE), + UINT32_C(0x00375097), UINT32_C(0x0034BF55)}}, + }, + { + {{UINT32_C(0x00101002), UINT32_C(0x003E5E72), UINT32_C(0x0008B02E), + UINT32_C(0x0050FB59), UINT32_C(0x0018AB92), UINT32_C(0x003EE716), + UINT32_C(0x00097228), UINT32_C(0x0049BDB3), UINT32_C(0x003AF4F6), + UINT32_C(0x003EC3F2), UINT32_C(0x000A2168), UINT32_C(0x002E9535), + UINT32_C(0x001B90E4), UINT32_C(0x002BA88C), UINT32_C(0x00326E95), + UINT32_C(0x003FEB7E), UINT32_C(0x002017BC), UINT32_C(0x000D0EEE), + UINT32_C(0x0014761F), UINT32_C(0x0047526E), UINT32_C(0x00180227), + UINT32_C(0x000611B5), UINT32_C(0x0035BCC9)}, + {UINT32_C(0x0065BB6C), UINT32_C(0x00254EB1), UINT32_C(0x00213662), + UINT32_C(0x000C625D), UINT32_C(0x00291EF8), UINT32_C(0x00123964), + UINT32_C(0x003C6A2D), UINT32_C(0x003CEFF9), UINT32_C(0x00263687), + UINT32_C(0x0011917B), UINT32_C(0x000E22CF), UINT32_C(0x002846F8), + UINT32_C(0x0034AE34), UINT32_C(0x001EA233), UINT32_C(0x001EA70A), + UINT32_C(0x001C002F), UINT32_C(0x0008295D), UINT32_C(0x00358F85), + UINT32_C(0x001292A5), UINT32_C(0x006FF9AD), UINT32_C(0x0006C51D), + UINT32_C(0x0010C570), UINT32_C(0x003F9016)}}, + {{UINT32_C(0x00520C83), UINT32_C(0x0011B38F), UINT32_C(0x003659FA), + UINT32_C(0x004B70A4), UINT32_C(0x002D7D78), UINT32_C(0x00317E0C), + UINT32_C(0x002BCC8A), UINT32_C(0x00170479), UINT32_C(0x003049C8), + UINT32_C(0x0035330F), UINT32_C(0x00292CAC), UINT32_C(0x00659C79), + UINT32_C(0x000953DA), UINT32_C(0x002839AC), UINT32_C(0x000EEC75), + UINT32_C(0x0034FE7A), UINT32_C(0x003DA567), UINT32_C(0x003E416C), + UINT32_C(0x00007AD5), UINT32_C(0x00787665), UINT32_C(0x0023F8AC), + UINT32_C(0x0022688F), UINT32_C(0x002F4735)}, + {UINT32_C(0x0048FDB2), UINT32_C(0x001EC71C), UINT32_C(0x003D8930), + UINT32_C(0x00650536), UINT32_C(0x0022A057), UINT32_C(0x0034D941), + UINT32_C(0x0033DA64), UINT32_C(0x002D8AF7), UINT32_C(0x0015A74D), + UINT32_C(0x0002EE4D), UINT32_C(0x0020F500), UINT32_C(0x00050ADE), + UINT32_C(0x0021DCE1), UINT32_C(0x00006CC2), UINT32_C(0x00004AF7), + UINT32_C(0x00385379), UINT32_C(0x0014D7FD), UINT32_C(0x0035F5DC), + UINT32_C(0x002CE71C), UINT32_C(0x004F1273), UINT32_C(0x00235AF5), + UINT32_C(0x00073649), UINT32_C(0x001C5B77)}}, + {{UINT32_C(0x002D1D21), UINT32_C(0x003D3AFA), UINT32_C(0x003484FE), + UINT32_C(0x003B8AEF), UINT32_C(0x0028E325), UINT32_C(0x00180681), + UINT32_C(0x0008D952), UINT32_C(0x0004222B), UINT32_C(0x002EC06C), + UINT32_C(0x00196929), UINT32_C(0x0003F38C), UINT32_C(0x004A5049), + UINT32_C(0x000D9B6D), UINT32_C(0x001C481B), UINT32_C(0x003A16BA), + UINT32_C(0x007F7383), UINT32_C(0x0016E539), UINT32_C(0x003CB657), + UINT32_C(0x000CB3E0), UINT32_C(0x0017CB6E), UINT32_C(0x00282B60), + UINT32_C(0x00168672), UINT32_C(0x0021396D)}, + {UINT32_C(0x00230B59), UINT32_C(0x002A3F7A), UINT32_C(0x002CEDD4), + UINT32_C(0x0046B9E4), UINT32_C(0x0010DAFC), UINT32_C(0x0030ED59), + UINT32_C(0x0034B350), UINT32_C(0x004C3909), UINT32_C(0x000D0E93), + UINT32_C(0x003A3458), UINT32_C(0x00030157), UINT32_C(0x003E191D), + UINT32_C(0x002A17A1), UINT32_C(0x001C795E), UINT32_C(0x00019E14), + UINT32_C(0x00448635), UINT32_C(0x00364727), UINT32_C(0x002B17DB), + UINT32_C(0x00013693), UINT32_C(0x0050F600), UINT32_C(0x0013ADED), + UINT32_C(0x00267B88), UINT32_C(0x0012E874)}}, + {{UINT32_C(0x00491237), UINT32_C(0x000A3228), UINT32_C(0x0006A16F), + UINT32_C(0x002BCC52), UINT32_C(0x002A58B0), UINT32_C(0x00223C2F), + UINT32_C(0x000ECF49), UINT32_C(0x00310D98), UINT32_C(0x000E07C8), + UINT32_C(0x0027A178), UINT32_C(0x002F51C1), UINT32_C(0x001D757E), + UINT32_C(0x003D1406), UINT32_C(0x003F45BF), UINT32_C(0x003C049A), + UINT32_C(0x00247F57), UINT32_C(0x001B4EA7), UINT32_C(0x002C3AA4), + UINT32_C(0x0000C59A), UINT32_C(0x002C0BF5), UINT32_C(0x0004E1EC), + UINT32_C(0x003B5C4F), UINT32_C(0x002ED5BD)}, + {UINT32_C(0x000DA809), UINT32_C(0x003F3B14), UINT32_C(0x00317876), + UINT32_C(0x004FBBD1), UINT32_C(0x00145987), UINT32_C(0x0034043D), + UINT32_C(0x0004E8DF), UINT32_C(0x0040B9A8), UINT32_C(0x003FB500), + UINT32_C(0x00102180), UINT32_C(0x00002AD5), UINT32_C(0x000948B6), + UINT32_C(0x0024E856), UINT32_C(0x001346B2), UINT32_C(0x001224DE), + UINT32_C(0x00780CFE), UINT32_C(0x003527A8), UINT32_C(0x0015A63D), + UINT32_C(0x00350B6B), UINT32_C(0x0019D0B1), UINT32_C(0x00125F42), + UINT32_C(0x000C970B), UINT32_C(0x0030D16C)}}, + {{UINT32_C(0x005B8DD0), UINT32_C(0x002EFE9A), UINT32_C(0x002160B2), + UINT32_C(0x006C25E9), UINT32_C(0x003648EE), UINT32_C(0x000F0498), + UINT32_C(0x002E36A5), UINT32_C(0x0048709D), UINT32_C(0x003F3212), + UINT32_C(0x0032A4D7), UINT32_C(0x0037EA02), UINT32_C(0x003554EF), + UINT32_C(0x00080AFA), UINT32_C(0x0009F4D8), UINT32_C(0x000A370E), + UINT32_C(0x0074C856), UINT32_C(0x00302B5C), UINT32_C(0x000F4BED), + UINT32_C(0x00286A2A), UINT32_C(0x001B7967), UINT32_C(0x001EA28E), + UINT32_C(0x0005C511), UINT32_C(0x0036A76A)}, + {UINT32_C(0x00470560), UINT32_C(0x002A01F5), UINT32_C(0x0000571A), + UINT32_C(0x0049D849), UINT32_C(0x001EC4A9), UINT32_C(0x0032B83B), + UINT32_C(0x001A8DF4), UINT32_C(0x00495FB3), UINT32_C(0x000BD33C), + UINT32_C(0x000857FC), UINT32_C(0x00128475), UINT32_C(0x003B8705), + UINT32_C(0x00243166), UINT32_C(0x001BCEBA), UINT32_C(0x0028F42F), + UINT32_C(0x00530ED6), UINT32_C(0x001D8A5C), UINT32_C(0x001FC74F), + UINT32_C(0x002D4804), UINT32_C(0x000367B6), UINT32_C(0x000327AF), + UINT32_C(0x002863D0), UINT32_C(0x000900E7)}}, + {{UINT32_C(0x00780229), UINT32_C(0x001EF630), UINT32_C(0x000510ED), + UINT32_C(0x006460B5), UINT32_C(0x000A8636), UINT32_C(0x00358DE6), + UINT32_C(0x001EAE5F), UINT32_C(0x0054B5EB), UINT32_C(0x0024DDD6), + UINT32_C(0x003EDDBF), UINT32_C(0x00373B40), UINT32_C(0x0026ABAC), + UINT32_C(0x003A5597), UINT32_C(0x002BE3A2), UINT32_C(0x00167777), + UINT32_C(0x0045D31B), UINT32_C(0x0032440D), UINT32_C(0x0015429F), + UINT32_C(0x003A681A), UINT32_C(0x001D0AA3), UINT32_C(0x0036BA5B), + UINT32_C(0x0025EA57), UINT32_C(0x00343F81)}, + {UINT32_C(0x0013FCD6), UINT32_C(0x0032B515), UINT32_C(0x00205A39), + UINT32_C(0x006417AA), UINT32_C(0x00188962), UINT32_C(0x0030F077), + UINT32_C(0x0030D896), UINT32_C(0x00618839), UINT32_C(0x000924CE), + UINT32_C(0x00313575), UINT32_C(0x002445E3), UINT32_C(0x0004EECA), + UINT32_C(0x002B4A7C), UINT32_C(0x0009D939), UINT32_C(0x0013DD92), + UINT32_C(0x0023A94B), UINT32_C(0x0022A525), UINT32_C(0x002EC641), + UINT32_C(0x000F31A9), UINT32_C(0x001D3493), UINT32_C(0x003DF626), + UINT32_C(0x003C1521), UINT32_C(0x000E392E)}}, + {{UINT32_C(0x0066600B), UINT32_C(0x0004FDF8), UINT32_C(0x0007D4BD), + UINT32_C(0x0026B138), UINT32_C(0x002EA81D), UINT32_C(0x00333EF4), + UINT32_C(0x0015A59C), UINT32_C(0x0051B0C0), UINT32_C(0x0035D122), + UINT32_C(0x003DA6C3), UINT32_C(0x003E2C86), UINT32_C(0x003CB4B4), + UINT32_C(0x00044B44), UINT32_C(0x003424DE), UINT32_C(0x001D32E6), + UINT32_C(0x002521D8), UINT32_C(0x003CCEC2), UINT32_C(0x000276F5), + UINT32_C(0x00220217), UINT32_C(0x00008BA1), UINT32_C(0x000321CB), + UINT32_C(0x00286E09), UINT32_C(0x0004C3E0)}, + {UINT32_C(0x002B8D50), UINT32_C(0x002E3BC1), UINT32_C(0x000F2753), + UINT32_C(0x007FCE93), UINT32_C(0x003EF16C), UINT32_C(0x0035426B), + UINT32_C(0x00206746), UINT32_C(0x007FCFC3), UINT32_C(0x003C1D6C), + UINT32_C(0x0037F851), UINT32_C(0x0014034B), UINT32_C(0x005C71B5), + UINT32_C(0x002AA534), UINT32_C(0x003695A5), UINT32_C(0x001CC377), + UINT32_C(0x004B40F1), UINT32_C(0x003B0DD3), UINT32_C(0x0003CC25), + UINT32_C(0x00296BD9), UINT32_C(0x0076050E), UINT32_C(0x0030853C), + UINT32_C(0x0023CDDF), UINT32_C(0x0005051F)}}, + {{UINT32_C(0x001FAC05), UINT32_C(0x0038BF66), UINT32_C(0x00106AE1), + UINT32_C(0x005F6C39), UINT32_C(0x002BCFD1), UINT32_C(0x0012C446), + UINT32_C(0x002014B7), UINT32_C(0x0022CDD4), UINT32_C(0x002C0E46), + UINT32_C(0x000068BA), UINT32_C(0x0009B619), UINT32_C(0x00112EBA), + UINT32_C(0x001134DE), UINT32_C(0x00382BD9), UINT32_C(0x0038AB24), + UINT32_C(0x003EFC51), UINT32_C(0x00125A98), UINT32_C(0x00166AE1), + UINT32_C(0x001204D8), UINT32_C(0x00395F99), UINT32_C(0x0022EC93), + UINT32_C(0x000C2334), UINT32_C(0x000F0DB3)}, + {UINT32_C(0x0065FB58), UINT32_C(0x0026949F), UINT32_C(0x00284E96), + UINT32_C(0x000E9B6C), UINT32_C(0x003DCCC0), UINT32_C(0x00276266), + UINT32_C(0x0011C074), UINT32_C(0x0006165B), UINT32_C(0x003618B9), + UINT32_C(0x000C1873), UINT32_C(0x00210655), UINT32_C(0x0068168F), + UINT32_C(0x002A5321), UINT32_C(0x00130FA1), UINT32_C(0x00288227), + UINT32_C(0x00405D32), UINT32_C(0x002C76A2), UINT32_C(0x003544A1), + UINT32_C(0x0021FFEE), UINT32_C(0x00372D2B), UINT32_C(0x001A438E), + UINT32_C(0x002F5590), UINT32_C(0x001BBD78)}}, + {{UINT32_C(0x000324B7), UINT32_C(0x0005A62F), UINT32_C(0x003F767B), + UINT32_C(0x006E0320), UINT32_C(0x0000FF7D), UINT32_C(0x001365D4), + UINT32_C(0x0034C36F), UINT32_C(0x000AC0F4), UINT32_C(0x00037C47), + UINT32_C(0x00022A9D), UINT32_C(0x001C6BCF), UINT32_C(0x000C25F1), + UINT32_C(0x0019449E), UINT32_C(0x00272780), UINT32_C(0x00107BA2), + UINT32_C(0x003A5F5D), UINT32_C(0x0010F210), UINT32_C(0x001A8365), + UINT32_C(0x000FA62A), UINT32_C(0x000EEFAD), UINT32_C(0x00080B72), + UINT32_C(0x003ABCCF), UINT32_C(0x00019B10)}, + {UINT32_C(0x0076B572), UINT32_C(0x003D6F9E), UINT32_C(0x000ADEC4), + UINT32_C(0x00516D49), UINT32_C(0x003E0BD1), UINT32_C(0x00139E71), + UINT32_C(0x00339678), UINT32_C(0x006ABDF0), UINT32_C(0x0038E886), + UINT32_C(0x002299CE), UINT32_C(0x00367195), UINT32_C(0x0043A05B), + UINT32_C(0x00361D28), UINT32_C(0x000796D9), UINT32_C(0x00373012), + UINT32_C(0x001EC4D3), UINT32_C(0x001008A0), UINT32_C(0x002E74DD), + UINT32_C(0x003C82F9), UINT32_C(0x004054A4), UINT32_C(0x0032570C), + UINT32_C(0x00101897), UINT32_C(0x00118C2D)}}, + {{UINT32_C(0x00462F42), UINT32_C(0x00057E48), UINT32_C(0x001278B3), + UINT32_C(0x0026CC97), UINT32_C(0x001E327A), UINT32_C(0x001598F9), + UINT32_C(0x003DEF1B), UINT32_C(0x00079209), UINT32_C(0x0033F716), + UINT32_C(0x003B919D), UINT32_C(0x003706F3), UINT32_C(0x00399A35), + UINT32_C(0x0036C21D), UINT32_C(0x00323DF4), UINT32_C(0x000A940E), + UINT32_C(0x000D518E), UINT32_C(0x000D882E), UINT32_C(0x003C191A), + UINT32_C(0x00244FC8), UINT32_C(0x0005C226), UINT32_C(0x000509F7), + UINT32_C(0x000F698A), UINT32_C(0x00007583)}, + {UINT32_C(0x007336DD), UINT32_C(0x002AE10E), UINT32_C(0x00262EEC), + UINT32_C(0x0040454E), UINT32_C(0x003352A6), UINT32_C(0x002A34DE), + UINT32_C(0x0033BCE4), UINT32_C(0x0024FD39), UINT32_C(0x001319FB), + UINT32_C(0x001AE5AA), UINT32_C(0x00315D5B), UINT32_C(0x002C46BE), + UINT32_C(0x001DF5A0), UINT32_C(0x002C4B31), UINT32_C(0x0034A43A), + UINT32_C(0x004D4DD6), UINT32_C(0x000116D9), UINT32_C(0x000E599A), + UINT32_C(0x0033B481), UINT32_C(0x0072C084), UINT32_C(0x003602A6), + UINT32_C(0x000FA6A0), UINT32_C(0x00193096)}}, + {{UINT32_C(0x001FA23E), UINT32_C(0x0017DD44), UINT32_C(0x002B9851), + UINT32_C(0x0078D9BF), UINT32_C(0x00300461), UINT32_C(0x000E650F), + UINT32_C(0x0003235A), UINT32_C(0x001E10FD), UINT32_C(0x00191997), + UINT32_C(0x00347E5B), UINT32_C(0x000EF26D), UINT32_C(0x00722710), + UINT32_C(0x00091296), UINT32_C(0x0000DAC3), UINT32_C(0x00364C90), + UINT32_C(0x00153FD5), UINT32_C(0x00386DE4), UINT32_C(0x0010D8C8), + UINT32_C(0x001F9824), UINT32_C(0x000ADEC8), UINT32_C(0x003F9D31), + UINT32_C(0x0022F161), UINT32_C(0x000FB294)}, + {UINT32_C(0x007CFE80), UINT32_C(0x002929EF), UINT32_C(0x001E66B0), + UINT32_C(0x003A9598), UINT32_C(0x00040870), UINT32_C(0x00110507), + UINT32_C(0x0002B8C7), UINT32_C(0x00218FE2), UINT32_C(0x0024A402), + UINT32_C(0x00082D52), UINT32_C(0x0014DAF9), UINT32_C(0x003244A6), + UINT32_C(0x000583BF), UINT32_C(0x00215F1C), UINT32_C(0x0035F85B), + UINT32_C(0x000DE2B3), UINT32_C(0x0004BC8F), UINT32_C(0x000E7228), + UINT32_C(0x002E9933), UINT32_C(0x0007BDB8), UINT32_C(0x001F7F0F), + UINT32_C(0x003332AF), UINT32_C(0x00156268)}}, + {{UINT32_C(0x0002E3E7), UINT32_C(0x0025FA60), UINT32_C(0x001FB4E6), + UINT32_C(0x0016C3C6), UINT32_C(0x00247D0E), UINT32_C(0x002D8D5E), + UINT32_C(0x0006A675), UINT32_C(0x00149DD3), UINT32_C(0x0014833C), + UINT32_C(0x002071D1), UINT32_C(0x00267269), UINT32_C(0x005E8399), + UINT32_C(0x0015D1BF), UINT32_C(0x002573DB), UINT32_C(0x000E94C4), + UINT32_C(0x0053F0CB), UINT32_C(0x000E6C01), UINT32_C(0x002C9873), + UINT32_C(0x0003E40E), UINT32_C(0x002DC625), UINT32_C(0x000EE009), + UINT32_C(0x0037B3C1), UINT32_C(0x00314D3B)}, + {UINT32_C(0x0012F52A), UINT32_C(0x00212A59), UINT32_C(0x0039A45C), + UINT32_C(0x000237A1), UINT32_C(0x0002467E), UINT32_C(0x003AD286), + UINT32_C(0x0014E2EE), UINT32_C(0x0079D3D0), UINT32_C(0x001D7205), + UINT32_C(0x0019A1C3), UINT32_C(0x001A753E), UINT32_C(0x00648E5B), + UINT32_C(0x001DA22B), UINT32_C(0x0032CBC7), UINT32_C(0x001A0350), + UINT32_C(0x0051025A), UINT32_C(0x003A3047), UINT32_C(0x001814DC), + UINT32_C(0x0015F660), UINT32_C(0x00384509), UINT32_C(0x0028C315), + UINT32_C(0x0014D207), UINT32_C(0x001BFC3C)}}, + {{UINT32_C(0x000BF619), UINT32_C(0x001B0A4A), UINT32_C(0x002F5B04), + UINT32_C(0x00066718), UINT32_C(0x000F956B), UINT32_C(0x00148057), + UINT32_C(0x003D7C40), UINT32_C(0x002D779F), UINT32_C(0x000D96BA), + UINT32_C(0x0034F9E9), UINT32_C(0x000ABC81), UINT32_C(0x00612100), + UINT32_C(0x00094453), UINT32_C(0x001A7A84), UINT32_C(0x00395C2A), + UINT32_C(0x001CCF9C), UINT32_C(0x001909AB), UINT32_C(0x000127F4), + UINT32_C(0x003CC47F), UINT32_C(0x0053B36F), UINT32_C(0x001168B8), + UINT32_C(0x003E681B), UINT32_C(0x0033586A)}, + {UINT32_C(0x003405C5), UINT32_C(0x0014C1F8), UINT32_C(0x00217C04), + UINT32_C(0x0044F686), UINT32_C(0x003B975D), UINT32_C(0x001566BE), + UINT32_C(0x000C3966), UINT32_C(0x00442F22), UINT32_C(0x002EEC1C), + UINT32_C(0x001FBB59), UINT32_C(0x002C7F08), UINT32_C(0x005C2547), + UINT32_C(0x002E399A), UINT32_C(0x00357E26), UINT32_C(0x00182B2F), + UINT32_C(0x00428509), UINT32_C(0x0001036A), UINT32_C(0x000C10BF), + UINT32_C(0x0038CF9D), UINT32_C(0x0037AD35), UINT32_C(0x000ED96E), + UINT32_C(0x001A6435), UINT32_C(0x003E4F02)}}, + {{UINT32_C(0x0041EB8E), UINT32_C(0x000024BF), UINT32_C(0x003694DF), + UINT32_C(0x00511BE5), UINT32_C(0x000A954F), UINT32_C(0x00206AB1), + UINT32_C(0x003CF939), UINT32_C(0x00513701), UINT32_C(0x000E6080), + UINT32_C(0x002108CE), UINT32_C(0x0020017E), UINT32_C(0x00105B07), + UINT32_C(0x0011EE5F), UINT32_C(0x003E26E6), UINT32_C(0x000DCD93), + UINT32_C(0x0008016D), UINT32_C(0x003FE138), UINT32_C(0x0003D710), + UINT32_C(0x002881A3), UINT32_C(0x002E6638), UINT32_C(0x0013554C), + UINT32_C(0x001A9737), UINT32_C(0x002F29B7)}, + {UINT32_C(0x0072FA30), UINT32_C(0x003860AB), UINT32_C(0x002A3A9B), + UINT32_C(0x0046D4D4), UINT32_C(0x002C8E1C), UINT32_C(0x000B27C5), + UINT32_C(0x002FB5F3), UINT32_C(0x006E389E), UINT32_C(0x0032BF68), + UINT32_C(0x002F2032), UINT32_C(0x003D0E8B), UINT32_C(0x005EFF1B), + UINT32_C(0x000E77F7), UINT32_C(0x0032D4D9), UINT32_C(0x000EE3B7), + UINT32_C(0x002DD781), UINT32_C(0x002C515F), UINT32_C(0x001196A0), + UINT32_C(0x003C1961), UINT32_C(0x00484EBE), UINT32_C(0x0007BCF4), + UINT32_C(0x002FA36A), UINT32_C(0x00385130)}}, + {{UINT32_C(0x000B2CC6), UINT32_C(0x000E1DAF), UINT32_C(0x003ADA49), + UINT32_C(0x0067C22D), UINT32_C(0x002135BF), UINT32_C(0x0034F418), + UINT32_C(0x002F97CB), UINT32_C(0x003D4E4F), UINT32_C(0x00389246), + UINT32_C(0x000605C0), UINT32_C(0x0005A49F), UINT32_C(0x00289A5C), + UINT32_C(0x0019305F), UINT32_C(0x002BDB2B), UINT32_C(0x0037F1CC), + UINT32_C(0x007C489D), UINT32_C(0x001CC3B8), UINT32_C(0x0022BE49), + UINT32_C(0x0004F6FE), UINT32_C(0x004CDB36), UINT32_C(0x001ECD22), + UINT32_C(0x00347FCC), UINT32_C(0x00121B6E)}, + {UINT32_C(0x0038250C), UINT32_C(0x003A9B9A), UINT32_C(0x0031B884), + UINT32_C(0x0038B4E2), UINT32_C(0x002903F8), UINT32_C(0x000D4406), + UINT32_C(0x0003337E), UINT32_C(0x000571CA), UINT32_C(0x0020FC99), + UINT32_C(0x002BEC49), UINT32_C(0x0004A324), UINT32_C(0x0063E39A), + UINT32_C(0x00248D5A), UINT32_C(0x0034EE85), UINT32_C(0x0012C541), + UINT32_C(0x0036DF11), UINT32_C(0x001A9D56), UINT32_C(0x00114AD8), + UINT32_C(0x002B0978), UINT32_C(0x004376FE), UINT32_C(0x0019DA75), + UINT32_C(0x0036CC96), UINT32_C(0x002821E1)}}, + {{UINT32_C(0x003C6DB0), UINT32_C(0x00394096), UINT32_C(0x0015D4D8), + UINT32_C(0x00624F58), UINT32_C(0x003A01CB), UINT32_C(0x002C9112), + UINT32_C(0x003A878F), UINT32_C(0x00184B32), UINT32_C(0x001888A3), + UINT32_C(0x00026E10), UINT32_C(0x000E5D54), UINT32_C(0x0055695D), + UINT32_C(0x0004DC05), UINT32_C(0x001B0A95), UINT32_C(0x00230372), + UINT32_C(0x000B124E), UINT32_C(0x0011DE6A), UINT32_C(0x000F2458), + UINT32_C(0x002C9259), UINT32_C(0x00290AC1), UINT32_C(0x0020440B), + UINT32_C(0x00114828), UINT32_C(0x002B166A)}, + {UINT32_C(0x0032B46D), UINT32_C(0x00207B45), UINT32_C(0x000473C9), + UINT32_C(0x007FBBBF), UINT32_C(0x0015AFF8), UINT32_C(0x0039EB60), + UINT32_C(0x0035D816), UINT32_C(0x000B1D9F), UINT32_C(0x0037A1A2), + UINT32_C(0x000D8711), UINT32_C(0x0002DFDE), UINT32_C(0x001CBEC4), + UINT32_C(0x002A1716), UINT32_C(0x003B7011), UINT32_C(0x002CED5F), + UINT32_C(0x006BA8F2), UINT32_C(0x0002B544), UINT32_C(0x000C2201), + UINT32_C(0x001B97B2), UINT32_C(0x0068B05E), UINT32_C(0x002ECFAD), + UINT32_C(0x0014D41E), UINT32_C(0x00319D72)}}, + }, + { + {{UINT32_C(0x00000297), UINT32_C(0x0028EE9D), UINT32_C(0x0025F457), + UINT32_C(0x003A1C7F), UINT32_C(0x003D187E), UINT32_C(0x0016AAC2), + UINT32_C(0x0018DA90), UINT32_C(0x0032CC34), UINT32_C(0x0000C9FE), + UINT32_C(0x00083A39), UINT32_C(0x000ABFD1), UINT32_C(0x00056518), + UINT32_C(0x0020E915), UINT32_C(0x0037F36C), UINT32_C(0x001C3CE8), + UINT32_C(0x0016154B), UINT32_C(0x000D8F76), UINT32_C(0x001349C7), + UINT32_C(0x002C5B2D), UINT32_C(0x00302ADF), UINT32_C(0x00347C0F), + UINT32_C(0x001AD83E), UINT32_C(0x00337C01)}, + {UINT32_C(0x0044DBD8), UINT32_C(0x00161F8E), UINT32_C(0x003A4EAF), + UINT32_C(0x007E41EE), UINT32_C(0x0020D593), UINT32_C(0x002B1752), + UINT32_C(0x0008C520), UINT32_C(0x000F746C), UINT32_C(0x00251428), + UINT32_C(0x00336F1A), UINT32_C(0x002F850D), UINT32_C(0x00363B2F), + UINT32_C(0x003C91B4), UINT32_C(0x00373CAD), UINT32_C(0x00114941), + UINT32_C(0x007F0C1B), UINT32_C(0x000AB3AA), UINT32_C(0x000B5CDA), + UINT32_C(0x003A4CD6), UINT32_C(0x0013C09D), UINT32_C(0x003CFDAB), + UINT32_C(0x0030F023), UINT32_C(0x002F9D40)}}, + {{UINT32_C(0x0016AB0F), UINT32_C(0x0002549A), UINT32_C(0x00324067), + UINT32_C(0x001CAA0D), UINT32_C(0x001D43DA), UINT32_C(0x002D4798), + UINT32_C(0x002FABBD), UINT32_C(0x00524E09), UINT32_C(0x003E65A7), + UINT32_C(0x000E6579), UINT32_C(0x0006B2BA), UINT32_C(0x007B52B6), + UINT32_C(0x0017769B), UINT32_C(0x0013CA17), UINT32_C(0x00179C6F), + UINT32_C(0x005068DF), UINT32_C(0x00329383), UINT32_C(0x001C707E), + UINT32_C(0x001906BF), UINT32_C(0x0076817B), UINT32_C(0x0010ED4F), + UINT32_C(0x00185468), UINT32_C(0x003C4A19)}, + {UINT32_C(0x003A29A3), UINT32_C(0x0007D7E2), UINT32_C(0x000C6BC2), + UINT32_C(0x007A5479), UINT32_C(0x0001F1CF), UINT32_C(0x0039F9E1), + UINT32_C(0x00044B37), UINT32_C(0x005AA886), UINT32_C(0x002CDE04), + UINT32_C(0x002B1FD3), UINT32_C(0x003036AE), UINT32_C(0x004BC454), + UINT32_C(0x000E6063), UINT32_C(0x003E513C), UINT32_C(0x00142E11), + UINT32_C(0x006EB792), UINT32_C(0x002A88A8), UINT32_C(0x003EE121), + UINT32_C(0x000CAFA1), UINT32_C(0x0069BADD), UINT32_C(0x003F3982), + UINT32_C(0x001A3478), UINT32_C(0x00051F0B)}}, + {{UINT32_C(0x0065CD56), UINT32_C(0x002C822B), UINT32_C(0x002F6B9C), + UINT32_C(0x000A1BB8), UINT32_C(0x000AAF79), UINT32_C(0x000EA4D3), + UINT32_C(0x00077BC8), UINT32_C(0x004E72DE), UINT32_C(0x00344B0B), + UINT32_C(0x001E3ED5), UINT32_C(0x0038E0C9), UINT32_C(0x00798666), + UINT32_C(0x002C7240), UINT32_C(0x00033538), UINT32_C(0x003C3C44), + UINT32_C(0x00400702), UINT32_C(0x00200573), UINT32_C(0x003E2A4D), + UINT32_C(0x0004ADF5), UINT32_C(0x007BCBC6), UINT32_C(0x001D81E3), + UINT32_C(0x000E60C8), UINT32_C(0x0033E777)}, + {UINT32_C(0x0034AD00), UINT32_C(0x001B4772), UINT32_C(0x0003423A), + UINT32_C(0x003B4DC7), UINT32_C(0x0020F3E4), UINT32_C(0x0039B171), + UINT32_C(0x00127CDB), UINT32_C(0x003DCC1F), UINT32_C(0x002BC848), + UINT32_C(0x00370405), UINT32_C(0x00012BF7), UINT32_C(0x002C5599), + UINT32_C(0x0014AB0C), UINT32_C(0x00103733), UINT32_C(0x0002C167), + UINT32_C(0x0072597A), UINT32_C(0x001A940B), UINT32_C(0x000AA67E), + UINT32_C(0x0027936D), UINT32_C(0x006B2D36), UINT32_C(0x00236515), + UINT32_C(0x003318C3), UINT32_C(0x0000665D)}}, + {{UINT32_C(0x007BF246), UINT32_C(0x0038A54E), UINT32_C(0x0017A2C6), + UINT32_C(0x002DF25B), UINT32_C(0x0022DEB2), UINT32_C(0x003B118A), + UINT32_C(0x00285430), UINT32_C(0x007EDA78), UINT32_C(0x0020F2EC), + UINT32_C(0x002DC0F9), UINT32_C(0x000824DC), UINT32_C(0x0035CC91), + UINT32_C(0x002C8632), UINT32_C(0x001D44DC), UINT32_C(0x0018CA86), + UINT32_C(0x004A0FAD), UINT32_C(0x002945F8), UINT32_C(0x0002D0D5), + UINT32_C(0x001B8CB7), UINT32_C(0x002990A6), UINT32_C(0x0019DEB1), + UINT32_C(0x0025B0F2), UINT32_C(0x000568B1)}, + {UINT32_C(0x001B65CD), UINT32_C(0x000CDCF7), UINT32_C(0x000C0170), + UINT32_C(0x00180F0B), UINT32_C(0x0016BD33), UINT32_C(0x002FFA3C), + UINT32_C(0x00040868), UINT32_C(0x005D604E), UINT32_C(0x00100FF9), + UINT32_C(0x00336B67), UINT32_C(0x003FF1A5), UINT32_C(0x0066724B), + UINT32_C(0x003B381E), UINT32_C(0x002868B1), UINT32_C(0x0010D47B), + UINT32_C(0x00776DC4), UINT32_C(0x00246BA9), UINT32_C(0x002AD2CD), + UINT32_C(0x002AAF38), UINT32_C(0x000D0446), UINT32_C(0x002F27BB), + UINT32_C(0x002943E1), UINT32_C(0x000F4F81)}}, + {{UINT32_C(0x003D4A9C), UINT32_C(0x00024A6D), UINT32_C(0x0014B9E1), + UINT32_C(0x0052698E), UINT32_C(0x0030AB88), UINT32_C(0x003B378D), + UINT32_C(0x003E866C), UINT32_C(0x006C9349), UINT32_C(0x00290E01), + UINT32_C(0x001477AD), UINT32_C(0x0000E581), UINT32_C(0x001E06CC), + UINT32_C(0x00310918), UINT32_C(0x003193C5), UINT32_C(0x002B6332), + UINT32_C(0x005EA944), UINT32_C(0x001F5E4B), UINT32_C(0x0014F9B3), + UINT32_C(0x000E2522), UINT32_C(0x004FCF6F), UINT32_C(0x002A3D76), + UINT32_C(0x00048DB9), UINT32_C(0x001D02E8)}, + {UINT32_C(0x0037AF28), UINT32_C(0x0029FE6C), UINT32_C(0x0009EDFC), + UINT32_C(0x0027B89F), UINT32_C(0x00301D20), UINT32_C(0x0032442E), + UINT32_C(0x00200E28), UINT32_C(0x002D5E74), UINT32_C(0x0012B052), + UINT32_C(0x003A45F3), UINT32_C(0x00317F8E), UINT32_C(0x001621A4), + UINT32_C(0x0017C898), UINT32_C(0x00337293), UINT32_C(0x0017DFB5), + UINT32_C(0x0071E94B), UINT32_C(0x001F139A), UINT32_C(0x001769A4), + UINT32_C(0x003BA6FF), UINT32_C(0x005D3122), UINT32_C(0x002F863F), + UINT32_C(0x000395F4), UINT32_C(0x00259438)}}, + {{UINT32_C(0x00698800), UINT32_C(0x003C6A37), UINT32_C(0x0021F1BB), + UINT32_C(0x004E8C9D), UINT32_C(0x00033DB6), UINT32_C(0x000A7B27), + UINT32_C(0x000E7C3D), UINT32_C(0x00611E5A), UINT32_C(0x0008E6DC), + UINT32_C(0x001B99B7), UINT32_C(0x00011169), UINT32_C(0x000C1DEC), + UINT32_C(0x002423CA), UINT32_C(0x00017B20), UINT32_C(0x000AB665), + UINT32_C(0x002626D4), UINT32_C(0x0023799A), UINT32_C(0x002806DE), + UINT32_C(0x003692DB), UINT32_C(0x002B1EC8), UINT32_C(0x000E1414), + UINT32_C(0x0026B167), UINT32_C(0x00169029)}, + {UINT32_C(0x0013B973), UINT32_C(0x003B4AF9), UINT32_C(0x0031ACC0), + UINT32_C(0x00393363), UINT32_C(0x000B4D81), UINT32_C(0x0015A3AE), + UINT32_C(0x002B3D90), UINT32_C(0x001BCC23), UINT32_C(0x000CC79D), + UINT32_C(0x003E07EC), UINT32_C(0x002EE5FF), UINT32_C(0x0045B99C), + UINT32_C(0x0001C279), UINT32_C(0x001A54B4), UINT32_C(0x00175534), + UINT32_C(0x004FEA24), UINT32_C(0x0010F58E), UINT32_C(0x00343EB1), + UINT32_C(0x0039ED8E), UINT32_C(0x0022AE96), UINT32_C(0x0023467E), + UINT32_C(0x00318A7F), UINT32_C(0x0029E05C)}}, + {{UINT32_C(0x006B581B), UINT32_C(0x002F4135), UINT32_C(0x0007FED7), + UINT32_C(0x0060C57B), UINT32_C(0x003393FD), UINT32_C(0x00093667), + UINT32_C(0x0004FA1F), UINT32_C(0x0054919F), UINT32_C(0x00229F53), + UINT32_C(0x001AB18E), UINT32_C(0x0011D07D), UINT32_C(0x0002443C), + UINT32_C(0x002AA483), UINT32_C(0x0008DA57), UINT32_C(0x0038A821), + UINT32_C(0x007861E9), UINT32_C(0x0024D8C3), UINT32_C(0x00309579), + UINT32_C(0x002A1002), UINT32_C(0x007B324A), UINT32_C(0x00291FD3), + UINT32_C(0x002937C2), UINT32_C(0x00310CCC)}, + {UINT32_C(0x007B71A6), UINT32_C(0x003EB7A5), UINT32_C(0x00395509), + UINT32_C(0x003F58C6), UINT32_C(0x002932CB), UINT32_C(0x003417F8), + UINT32_C(0x000AD82F), UINT32_C(0x00251085), UINT32_C(0x0006F21E), + UINT32_C(0x001588B0), UINT32_C(0x000C136A), UINT32_C(0x004E6BB6), + UINT32_C(0x000C7C60), UINT32_C(0x0015A2FF), UINT32_C(0x001965F4), + UINT32_C(0x006B3224), UINT32_C(0x00280D4B), UINT32_C(0x000374E1), + UINT32_C(0x00187558), UINT32_C(0x007A1057), UINT32_C(0x0001A4DB), + UINT32_C(0x00392A05), UINT32_C(0x002B7342)}}, + {{UINT32_C(0x00102D12), UINT32_C(0x00157E1D), UINT32_C(0x003819E1), + UINT32_C(0x000436EA), UINT32_C(0x0033F4FE), UINT32_C(0x0004D63C), + UINT32_C(0x003A559C), UINT32_C(0x005758F8), UINT32_C(0x0032A48C), + UINT32_C(0x0036F300), UINT32_C(0x003C06D5), UINT32_C(0x004AC77E), + UINT32_C(0x0012DD43), UINT32_C(0x001CDBEB), UINT32_C(0x000CBE11), + UINT32_C(0x0003CB34), UINT32_C(0x003F6859), UINT32_C(0x00144DCF), + UINT32_C(0x000BDC01), UINT32_C(0x0038921F), UINT32_C(0x00161041), + UINT32_C(0x000B8BE6), UINT32_C(0x002AC248)}, + {UINT32_C(0x0067DD3E), UINT32_C(0x0036DB63), UINT32_C(0x0037BA32), + UINT32_C(0x000AF959), UINT32_C(0x0025B293), UINT32_C(0x0010059F), + UINT32_C(0x0035780D), UINT32_C(0x0046380C), UINT32_C(0x0018452D), + UINT32_C(0x002B5B67), UINT32_C(0x0016B7B2), UINT32_C(0x007AF664), + UINT32_C(0x003C1F41), UINT32_C(0x00097E6F), UINT32_C(0x003205A1), + UINT32_C(0x00725EFF), UINT32_C(0x003E2E86), UINT32_C(0x0038F16D), + UINT32_C(0x000B458E), UINT32_C(0x00385D51), UINT32_C(0x00006670), + UINT32_C(0x0008BCC1), UINT32_C(0x00098C17)}}, + {{UINT32_C(0x006DBF88), UINT32_C(0x002D6BB0), UINT32_C(0x003DFE61), + UINT32_C(0x003DF76A), UINT32_C(0x00035BAA), UINT32_C(0x000984CF), + UINT32_C(0x00054134), UINT32_C(0x00556ECD), UINT32_C(0x001F1973), + UINT32_C(0x0006D2EA), UINT32_C(0x002F57DA), UINT32_C(0x0024A56A), + UINT32_C(0x002A7755), UINT32_C(0x000305FD), UINT32_C(0x001C8FD6), + UINT32_C(0x00481CAF), UINT32_C(0x003D0B45), UINT32_C(0x000D68BC), + UINT32_C(0x0039248B), UINT32_C(0x00290881), UINT32_C(0x001C8DB5), + UINT32_C(0x000250CE), UINT32_C(0x000A5C50)}, + {UINT32_C(0x005313E5), UINT32_C(0x002F268C), UINT32_C(0x001D3B3E), + UINT32_C(0x001FE5D2), UINT32_C(0x0006955A), UINT32_C(0x00336B39), + UINT32_C(0x00290B6C), UINT32_C(0x00183F14), UINT32_C(0x0025ED57), + UINT32_C(0x0006E18E), UINT32_C(0x00245AB9), UINT32_C(0x000AFADF), + UINT32_C(0x001B239A), UINT32_C(0x003D1824), UINT32_C(0x00286527), + UINT32_C(0x00619C72), UINT32_C(0x00341914), UINT32_C(0x00191683), + UINT32_C(0x00365835), UINT32_C(0x006A9C8D), UINT32_C(0x000DCB56), + UINT32_C(0x003D7D6F), UINT32_C(0x00312DA6)}}, + {{UINT32_C(0x002A34A8), UINT32_C(0x0011A273), UINT32_C(0x002EF0E7), + UINT32_C(0x0056ED5F), UINT32_C(0x0022B29F), UINT32_C(0x003BC53B), + UINT32_C(0x00374AF6), UINT32_C(0x001209F7), UINT32_C(0x00087894), + UINT32_C(0x001D51AC), UINT32_C(0x001C55D9), UINT32_C(0x0007EA51), + UINT32_C(0x0027A416), UINT32_C(0x002199BF), UINT32_C(0x00398181), + UINT32_C(0x0050725A), UINT32_C(0x00016D8B), UINT32_C(0x00185F36), + UINT32_C(0x0022B389), UINT32_C(0x00670F14), UINT32_C(0x003EE89C), + UINT32_C(0x00208598), UINT32_C(0x0037FA4E)}, + {UINT32_C(0x002CBD11), UINT32_C(0x0025CA10), UINT32_C(0x0025A5C4), + UINT32_C(0x0073CCEA), UINT32_C(0x001D4A0C), UINT32_C(0x003E1189), + UINT32_C(0x0012D18F), UINT32_C(0x00202D6B), UINT32_C(0x0005142A), + UINT32_C(0x000673EF), UINT32_C(0x00230DED), UINT32_C(0x005C9EF1), + UINT32_C(0x00199F43), UINT32_C(0x000951F1), UINT32_C(0x0001FA9B), + UINT32_C(0x0042FDCE), UINT32_C(0x003CF250), UINT32_C(0x00333B05), + UINT32_C(0x003487E6), UINT32_C(0x001A46EF), UINT32_C(0x0009221A), + UINT32_C(0x001601FA), UINT32_C(0x000A8F97)}}, + {{UINT32_C(0x0029B1A4), UINT32_C(0x001A205E), UINT32_C(0x0010D45B), + UINT32_C(0x00009969), UINT32_C(0x003B86E1), UINT32_C(0x00263695), + UINT32_C(0x0038303F), UINT32_C(0x000F276E), UINT32_C(0x003DD7EE), + UINT32_C(0x0003D7B5), UINT32_C(0x0019C4B1), UINT32_C(0x003248D5), + UINT32_C(0x0021E8FE), UINT32_C(0x000FC768), UINT32_C(0x001F35EC), + UINT32_C(0x002FB73B), UINT32_C(0x001B945A), UINT32_C(0x00164C1B), + UINT32_C(0x002F277F), UINT32_C(0x005EAE78), UINT32_C(0x00071711), + UINT32_C(0x000C61BB), UINT32_C(0x000AB2C0)}, + {UINT32_C(0x0016DF7A), UINT32_C(0x0015DC01), UINT32_C(0x002BA091), + UINT32_C(0x0011F44E), UINT32_C(0x000B08D7), UINT32_C(0x002E9923), + UINT32_C(0x00092787), UINT32_C(0x002ADBB4), UINT32_C(0x003D7AA5), + UINT32_C(0x0009E226), UINT32_C(0x002384F8), UINT32_C(0x003614F7), + UINT32_C(0x003BEA0C), UINT32_C(0x002456BB), UINT32_C(0x00107C57), + UINT32_C(0x004A575C), UINT32_C(0x000760C6), UINT32_C(0x0034DEA3), + UINT32_C(0x002C29AE), UINT32_C(0x007702EC), UINT32_C(0x000797DD), + UINT32_C(0x002C2EC2), UINT32_C(0x000B53B4)}}, + {{UINT32_C(0x004E14DC), UINT32_C(0x000DCCE7), UINT32_C(0x00268B67), + UINT32_C(0x00671423), UINT32_C(0x000C36E7), UINT32_C(0x002EF482), + UINT32_C(0x0002A811), UINT32_C(0x004F450D), UINT32_C(0x0019D6E8), + UINT32_C(0x00379047), UINT32_C(0x0024CF74), UINT32_C(0x0017F363), + UINT32_C(0x00242D1C), UINT32_C(0x000034DF), UINT32_C(0x002AEC5D), + UINT32_C(0x0016D8E1), UINT32_C(0x0015B2FA), UINT32_C(0x00347EF8), + UINT32_C(0x00075A03), UINT32_C(0x006AFAC1), UINT32_C(0x0010C4CC), + UINT32_C(0x00216803), UINT32_C(0x001AA96E)}, + {UINT32_C(0x0057B948), UINT32_C(0x002E3492), UINT32_C(0x002E8BEB), + UINT32_C(0x00500CA7), UINT32_C(0x002A1860), UINT32_C(0x001B6814), + UINT32_C(0x0019C85F), UINT32_C(0x0061C4ED), UINT32_C(0x002EF6B7), + UINT32_C(0x0038C2BF), UINT32_C(0x003C380D), UINT32_C(0x0011C0C0), + UINT32_C(0x0011337C), UINT32_C(0x0015C779), UINT32_C(0x00136724), + UINT32_C(0x00050BF7), UINT32_C(0x0005558D), UINT32_C(0x002EC289), + UINT32_C(0x003637CA), UINT32_C(0x004B8113), UINT32_C(0x001A69CC), + UINT32_C(0x00301379), UINT32_C(0x003F1AD7)}}, + {{UINT32_C(0x0012C055), UINT32_C(0x000EB55E), UINT32_C(0x000D7834), + UINT32_C(0x0027B02C), UINT32_C(0x003B78F0), UINT32_C(0x0010001F), + UINT32_C(0x002DD1EC), UINT32_C(0x0044CC9D), UINT32_C(0x003F406F), + UINT32_C(0x002BBD9B), UINT32_C(0x003D495E), UINT32_C(0x002D8896), + UINT32_C(0x0030CB6A), UINT32_C(0x001B5E53), UINT32_C(0x002AD9F8), + UINT32_C(0x001E75BF), UINT32_C(0x000F94EA), UINT32_C(0x00057B4C), + UINT32_C(0x00370072), UINT32_C(0x0014B385), UINT32_C(0x0005ACED), + UINT32_C(0x002C28F0), UINT32_C(0x003AB7D9)}, + {UINT32_C(0x0020CF13), UINT32_C(0x00225C38), UINT32_C(0x002B6293), + UINT32_C(0x0013F808), UINT32_C(0x00344CB9), UINT32_C(0x0033719D), + UINT32_C(0x002FE2B6), UINT32_C(0x00282CB5), UINT32_C(0x00175559), + UINT32_C(0x000403EA), UINT32_C(0x00359279), UINT32_C(0x005D8812), + UINT32_C(0x000B1A40), UINT32_C(0x003EE682), UINT32_C(0x0016E724), + UINT32_C(0x002FB1C5), UINT32_C(0x002F6BEE), UINT32_C(0x0022778B), + UINT32_C(0x0019AEA3), UINT32_C(0x003D80A9), UINT32_C(0x0032D9D1), + UINT32_C(0x003BF23F), UINT32_C(0x002DBA08)}}, + {{UINT32_C(0x00475A5B), UINT32_C(0x000AF126), UINT32_C(0x000E8D05), + UINT32_C(0x0037AAD9), UINT32_C(0x003350FF), UINT32_C(0x003B6DF1), + UINT32_C(0x000C70D2), UINT32_C(0x0031341A), UINT32_C(0x00166A1F), + UINT32_C(0x003D3DBE), UINT32_C(0x0021F7E8), UINT32_C(0x006D14A1), + UINT32_C(0x0039D159), UINT32_C(0x001EFA80), UINT32_C(0x0032B317), + UINT32_C(0x0024939B), UINT32_C(0x001C82DD), UINT32_C(0x00061D7A), + UINT32_C(0x00147571), UINT32_C(0x004FFE3E), UINT32_C(0x000965DE), + UINT32_C(0x0028C381), UINT32_C(0x000DFE6C)}, + {UINT32_C(0x0035EAA0), UINT32_C(0x0009123B), UINT32_C(0x0032E9E6), + UINT32_C(0x00084111), UINT32_C(0x0000F226), UINT32_C(0x003CD924), + UINT32_C(0x000ABC8B), UINT32_C(0x00538B5D), UINT32_C(0x00023291), + UINT32_C(0x000DB4A0), UINT32_C(0x00010030), UINT32_C(0x00328332), + UINT32_C(0x001A2589), UINT32_C(0x00233EA0), UINT32_C(0x0017BE31), + UINT32_C(0x00586460), UINT32_C(0x0012777E), UINT32_C(0x002D359E), + UINT32_C(0x000D0BCC), UINT32_C(0x00245915), UINT32_C(0x000F3FAB), + UINT32_C(0x00232DCC), UINT32_C(0x0026CC0F)}}, + {{UINT32_C(0x006107A0), UINT32_C(0x00348213), UINT32_C(0x001DB8EE), + UINT32_C(0x003152F3), UINT32_C(0x0029336E), UINT32_C(0x001572BD), + UINT32_C(0x002314E4), UINT32_C(0x0050D309), UINT32_C(0x002101EA), + UINT32_C(0x0000EDBA), UINT32_C(0x0011643A), UINT32_C(0x002A8161), + UINT32_C(0x00169D2D), UINT32_C(0x00105B84), UINT32_C(0x0007A268), + UINT32_C(0x00602253), UINT32_C(0x000EAF07), UINT32_C(0x000BF9C0), + UINT32_C(0x001F44D9), UINT32_C(0x0000BADF), UINT32_C(0x000B6708), + UINT32_C(0x000F4EDA), UINT32_C(0x0027E80B)}, + {UINT32_C(0x0079EA50), UINT32_C(0x0012030F), UINT32_C(0x00175D43), + UINT32_C(0x005CD824), UINT32_C(0x00334D4F), UINT32_C(0x002AEE35), + UINT32_C(0x0021CFB0), UINT32_C(0x00199622), UINT32_C(0x000CA221), + UINT32_C(0x0007BC44), UINT32_C(0x0029CBBF), UINT32_C(0x0019F06C), + UINT32_C(0x0034ECA6), UINT32_C(0x0027BE0E), UINT32_C(0x002FE495), + UINT32_C(0x00705DBB), UINT32_C(0x002F6511), UINT32_C(0x000D66C8), + UINT32_C(0x000C392A), UINT32_C(0x0014BBEE), UINT32_C(0x0007F420), + UINT32_C(0x0020EF1F), UINT32_C(0x002DD2C3)}}, + {{UINT32_C(0x001F311E), UINT32_C(0x0035E164), UINT32_C(0x000D7E33), + UINT32_C(0x004EE0A2), UINT32_C(0x001B027B), UINT32_C(0x003AF8A9), + UINT32_C(0x000897E1), UINT32_C(0x004E7636), UINT32_C(0x002CFEBD), + UINT32_C(0x00349E23), UINT32_C(0x003A2005), UINT32_C(0x0033A740), + UINT32_C(0x000273B7), UINT32_C(0x00018397), UINT32_C(0x0002783F), + UINT32_C(0x00201E98), UINT32_C(0x0009D39F), UINT32_C(0x000A5722), + UINT32_C(0x002D49F8), UINT32_C(0x00798C09), UINT32_C(0x000C4014), + UINT32_C(0x0007D8C3), UINT32_C(0x002F570F)}, + {UINT32_C(0x00477116), UINT32_C(0x00161163), UINT32_C(0x002DF7BB), + UINT32_C(0x001DD1D7), UINT32_C(0x003A92DB), UINT32_C(0x0036ACFC), + UINT32_C(0x00211278), UINT32_C(0x0055790C), UINT32_C(0x000B98E9), + UINT32_C(0x002EB711), UINT32_C(0x0009D7B7), UINT32_C(0x003CD366), + UINT32_C(0x000622E0), UINT32_C(0x000D9307), UINT32_C(0x0001BD5F), + UINT32_C(0x0073A35F), UINT32_C(0x003FC1C3), UINT32_C(0x0025C15B), + UINT32_C(0x00359419), UINT32_C(0x006A6138), UINT32_C(0x002A142D), + UINT32_C(0x000BBEDD), UINT32_C(0x0008A742)}}, + }, + { + {{UINT32_C(0x00020495), UINT32_C(0x0029C46F), UINT32_C(0x0015C863), + UINT32_C(0x001A9BE1), UINT32_C(0x002541BC), UINT32_C(0x003083D6), + UINT32_C(0x000E2B6E), UINT32_C(0x004DEA6D), UINT32_C(0x00233C05), + UINT32_C(0x00093178), UINT32_C(0x00300C16), UINT32_C(0x0047A8A8), + UINT32_C(0x003EEE62), UINT32_C(0x003A3FFE), UINT32_C(0x002D8A6E), + UINT32_C(0x003747DF), UINT32_C(0x0023EBEC), UINT32_C(0x003A703F), + UINT32_C(0x00057635), UINT32_C(0x004C2FF0), UINT32_C(0x0013DB65), + UINT32_C(0x0028F19D), UINT32_C(0x00333AB2)}, + {UINT32_C(0x0000A454), UINT32_C(0x0003242C), UINT32_C(0x00263770), + UINT32_C(0x0070C7F5), UINT32_C(0x0007B940), UINT32_C(0x00062CBB), + UINT32_C(0x000BB7CC), UINT32_C(0x00001E3F), UINT32_C(0x00107BEF), + UINT32_C(0x0024BD77), UINT32_C(0x0003307A), UINT32_C(0x003C6EC5), + UINT32_C(0x00357523), UINT32_C(0x003FE203), UINT32_C(0x002F4B77), + UINT32_C(0x0039AB29), UINT32_C(0x00009871), UINT32_C(0x003024E6), + UINT32_C(0x001EAE16), UINT32_C(0x003F3D08), UINT32_C(0x0029A969), + UINT32_C(0x001642E9), UINT32_C(0x003925FE)}}, + {{UINT32_C(0x000C8333), UINT32_C(0x00134BA7), UINT32_C(0x0009B871), + UINT32_C(0x0004CDC4), UINT32_C(0x00289CA0), UINT32_C(0x001FC8D2), + UINT32_C(0x0039D91B), UINT32_C(0x0038FC3D), UINT32_C(0x0019773B), + UINT32_C(0x0006D4DF), UINT32_C(0x0006221A), UINT32_C(0x004F1A1C), + UINT32_C(0x0010AF9E), UINT32_C(0x0018553A), UINT32_C(0x00130550), + UINT32_C(0x00111A01), UINT32_C(0x003C7519), UINT32_C(0x00287566), + UINT32_C(0x001644E8), UINT32_C(0x0041602D), UINT32_C(0x0032CDC1), + UINT32_C(0x001C2B40), UINT32_C(0x0030A48F)}, + {UINT32_C(0x0042DCF0), UINT32_C(0x0008B28F), UINT32_C(0x003EC6F9), + UINT32_C(0x006A8D26), UINT32_C(0x0034DBA9), UINT32_C(0x002BD050), + UINT32_C(0x003FE19C), UINT32_C(0x0030096C), UINT32_C(0x0013965D), + UINT32_C(0x00010C86), UINT32_C(0x003C6698), UINT32_C(0x00731549), + UINT32_C(0x000AAA24), UINT32_C(0x0010C344), UINT32_C(0x003F7448), + UINT32_C(0x000C5964), UINT32_C(0x0019616E), UINT32_C(0x0035336F), + UINT32_C(0x000723D5), UINT32_C(0x00244786), UINT32_C(0x002452D1), + UINT32_C(0x001F0B6A), UINT32_C(0x0031D0BC)}}, + {{UINT32_C(0x001ABEAE), UINT32_C(0x00140094), UINT32_C(0x0025F718), + UINT32_C(0x001FFB06), UINT32_C(0x002CE72A), UINT32_C(0x000678CF), + UINT32_C(0x0007D404), UINT32_C(0x0073CB92), UINT32_C(0x000A9FC4), + UINT32_C(0x000668BB), UINT32_C(0x0027BD0D), UINT32_C(0x002BDE2E), + UINT32_C(0x003EDD2C), UINT32_C(0x00154AE6), UINT32_C(0x00290863), + UINT32_C(0x00334512), UINT32_C(0x001E546A), UINT32_C(0x002467D8), + UINT32_C(0x0006CBDB), UINT32_C(0x002139AD), UINT32_C(0x001CED3F), + UINT32_C(0x00217DC2), UINT32_C(0x001F626B)}, + {UINT32_C(0x00390DFD), UINT32_C(0x0002F8B3), UINT32_C(0x000E30AF), + UINT32_C(0x0005D7A3), UINT32_C(0x001EFA22), UINT32_C(0x002CAFDB), + UINT32_C(0x00004971), UINT32_C(0x002EFBEA), UINT32_C(0x001F4ACB), + UINT32_C(0x00302B99), UINT32_C(0x001DFC66), UINT32_C(0x007364F2), + UINT32_C(0x00371C65), UINT32_C(0x0028108D), UINT32_C(0x003C66ED), + UINT32_C(0x005D7568), UINT32_C(0x00212DC4), UINT32_C(0x0011A56E), + UINT32_C(0x0034EE5A), UINT32_C(0x0031E1D4), UINT32_C(0x003CF9C2), + UINT32_C(0x003EB41F), UINT32_C(0x003C84A7)}}, + {{UINT32_C(0x007FF718), UINT32_C(0x00032692), UINT32_C(0x002F052E), + UINT32_C(0x00755B72), UINT32_C(0x003D2345), UINT32_C(0x0038E6DD), + UINT32_C(0x0025DC5A), UINT32_C(0x0065158E), UINT32_C(0x0035F9E0), + UINT32_C(0x0019A28C), UINT32_C(0x00178B35), UINT32_C(0x0044D5B8), + UINT32_C(0x0039CE59), UINT32_C(0x00379216), UINT32_C(0x00098649), + UINT32_C(0x00105E9E), UINT32_C(0x0037A436), UINT32_C(0x0035A4A6), + UINT32_C(0x00087244), UINT32_C(0x002AA631), UINT32_C(0x001E9EDB), + UINT32_C(0x000A2622), UINT32_C(0x001D1531)}, + {UINT32_C(0x003C8CB9), UINT32_C(0x003D6118), UINT32_C(0x00179E49), + UINT32_C(0x002B0C0C), UINT32_C(0x0039C364), UINT32_C(0x002CA57A), + UINT32_C(0x003F8C54), UINT32_C(0x001FB453), UINT32_C(0x003C0C82), + UINT32_C(0x003B2FF0), UINT32_C(0x003A2B7F), UINT32_C(0x0058C732), + UINT32_C(0x000C6E03), UINT32_C(0x0030EAAB), UINT32_C(0x002A43FC), + UINT32_C(0x0029DF25), UINT32_C(0x00002B4F), UINT32_C(0x0022A3CA), + UINT32_C(0x00104844), UINT32_C(0x004A0B3B), UINT32_C(0x001849CB), + UINT32_C(0x001C4653), UINT32_C(0x002F1596)}}, + {{UINT32_C(0x001D4A19), UINT32_C(0x0035FDF4), UINT32_C(0x000F8F5B), + UINT32_C(0x003FF4B0), UINT32_C(0x00157527), UINT32_C(0x0015F4FF), + UINT32_C(0x00337DA4), UINT32_C(0x002BC44F), UINT32_C(0x00223C67), + UINT32_C(0x001B663C), UINT32_C(0x00281B4B), UINT32_C(0x0078BDF6), + UINT32_C(0x000D0B3B), UINT32_C(0x00099BBB), UINT32_C(0x002A4438), + UINT32_C(0x00512DEC), UINT32_C(0x0007055E), UINT32_C(0x002AF2F0), + UINT32_C(0x002C9105), UINT32_C(0x0023E635), UINT32_C(0x001CB35B), + UINT32_C(0x0028C1C2), UINT32_C(0x002DE4D1)}, + {UINT32_C(0x00140ADA), UINT32_C(0x0011EC68), UINT32_C(0x0018DFDD), + UINT32_C(0x006F5E0E), UINT32_C(0x00185618), UINT32_C(0x000B38F8), + UINT32_C(0x0003AC86), UINT32_C(0x00345A9C), UINT32_C(0x0018811B), + UINT32_C(0x0034EF90), UINT32_C(0x00309FA7), UINT32_C(0x002657B1), + UINT32_C(0x0026A02F), UINT32_C(0x003FB112), UINT32_C(0x003E8E9A), + UINT32_C(0x004E6284), UINT32_C(0x00310F7A), UINT32_C(0x0013E7DA), + UINT32_C(0x0014C174), UINT32_C(0x0038C1FC), UINT32_C(0x0026EC4A), + UINT32_C(0x0018C688), UINT32_C(0x002A438F)}}, + {{UINT32_C(0x004F0ACF), UINT32_C(0x001C15FB), UINT32_C(0x003CD5C1), + UINT32_C(0x000D2292), UINT32_C(0x0025B6A8), UINT32_C(0x00221999), + UINT32_C(0x0016BA08), UINT32_C(0x00792A56), UINT32_C(0x00215FF2), + UINT32_C(0x002B39F1), UINT32_C(0x000F2F96), UINT32_C(0x00025D28), + UINT32_C(0x0029609E), UINT32_C(0x00351C7F), UINT32_C(0x000A603D), + UINT32_C(0x003F3CD9), UINT32_C(0x00024C3B), UINT32_C(0x000C25E9), + UINT32_C(0x002157FF), UINT32_C(0x003E3F6F), UINT32_C(0x0015898B), + UINT32_C(0x0007923F), UINT32_C(0x0011A75F)}, + {UINT32_C(0x001B8989), UINT32_C(0x0036B95E), UINT32_C(0x000B28EB), + UINT32_C(0x006F0F0E), UINT32_C(0x001BB501), UINT32_C(0x0029744C), + UINT32_C(0x002C2A82), UINT32_C(0x006278D2), UINT32_C(0x0006D540), + UINT32_C(0x00338072), UINT32_C(0x0023F135), UINT32_C(0x006B3C7F), + UINT32_C(0x003F9CA2), UINT32_C(0x003069ED), UINT32_C(0x001454A7), + UINT32_C(0x001CEA39), UINT32_C(0x000EDAE9), UINT32_C(0x002BF356), + UINT32_C(0x003B1BD9), UINT32_C(0x00073EF3), UINT32_C(0x003041D7), + UINT32_C(0x00096064), UINT32_C(0x00142C76)}}, + {{UINT32_C(0x0068FFC6), UINT32_C(0x003C11C5), UINT32_C(0x0031DD2F), + UINT32_C(0x002086BC), UINT32_C(0x00213A20), UINT32_C(0x000198C3), + UINT32_C(0x003C70AA), UINT32_C(0x0064A691), UINT32_C(0x003F88A6), + UINT32_C(0x0010B222), UINT32_C(0x001133AE), UINT32_C(0x0000D81A), + UINT32_C(0x0008B4F2), UINT32_C(0x0037B644), UINT32_C(0x0020B08F), + UINT32_C(0x002B77A7), UINT32_C(0x000AEF1B), UINT32_C(0x002AB9A7), + UINT32_C(0x001FFD9C), UINT32_C(0x002D2887), UINT32_C(0x001829D4), + UINT32_C(0x00291E60), UINT32_C(0x0024DD09)}, + {UINT32_C(0x005A1EE9), UINT32_C(0x000858BD), UINT32_C(0x0006666A), + UINT32_C(0x00665E27), UINT32_C(0x001E2D76), UINT32_C(0x00151594), + UINT32_C(0x003CBB31), UINT32_C(0x00274D76), UINT32_C(0x00385369), + UINT32_C(0x002D97F4), UINT32_C(0x00213614), UINT32_C(0x005429E7), + UINT32_C(0x001A6A17), UINT32_C(0x00022689), UINT32_C(0x0007C22E), + UINT32_C(0x000CB237), UINT32_C(0x003B33BC), UINT32_C(0x003A2CF2), + UINT32_C(0x001014A7), UINT32_C(0x004AFB82), UINT32_C(0x003DB97C), + UINT32_C(0x0016FCCC), UINT32_C(0x001D22CE)}}, + {{UINT32_C(0x00583D1F), UINT32_C(0x001CAB29), UINT32_C(0x0021DFFC), + UINT32_C(0x00579859), UINT32_C(0x00239960), UINT32_C(0x00287022), + UINT32_C(0x000FBF8A), UINT32_C(0x00522225), UINT32_C(0x00084A9F), + UINT32_C(0x0024948B), UINT32_C(0x002CC83C), UINT32_C(0x0067C4AC), + UINT32_C(0x0034836D), UINT32_C(0x00216546), UINT32_C(0x00364159), + UINT32_C(0x003ADB5A), UINT32_C(0x0003CEB5), UINT32_C(0x00345B44), + UINT32_C(0x002138FD), UINT32_C(0x001743CA), UINT32_C(0x00069ABD), + UINT32_C(0x0023EC4A), UINT32_C(0x00050B88)}, + {UINT32_C(0x006438C3), UINT32_C(0x00369425), UINT32_C(0x00279B67), + UINT32_C(0x000D0143), UINT32_C(0x001F364D), UINT32_C(0x00177C5D), + UINT32_C(0x00095B66), UINT32_C(0x002B4C4F), UINT32_C(0x002C159D), + UINT32_C(0x0004AD5B), UINT32_C(0x00177C82), UINT32_C(0x0033A0E4), + UINT32_C(0x003ACCD6), UINT32_C(0x0034623F), UINT32_C(0x000F5D74), + UINT32_C(0x00680AEF), UINT32_C(0x002D31E0), UINT32_C(0x000BB398), + UINT32_C(0x00233354), UINT32_C(0x00253484), UINT32_C(0x00385E50), + UINT32_C(0x000F78CF), UINT32_C(0x000322BA)}}, + {{UINT32_C(0x00724124), UINT32_C(0x0030C69A), UINT32_C(0x00310E26), + UINT32_C(0x00278477), UINT32_C(0x0012FFD4), UINT32_C(0x0005570F), + UINT32_C(0x003EBD03), UINT32_C(0x006F51F4), UINT32_C(0x00043A21), + UINT32_C(0x001A4CEA), UINT32_C(0x00172D44), UINT32_C(0x00696C4A), + UINT32_C(0x003FA9A1), UINT32_C(0x0026633B), UINT32_C(0x0005F2B7), + UINT32_C(0x0002C7C4), UINT32_C(0x0003A452), UINT32_C(0x003F240B), + UINT32_C(0x003CBC7E), UINT32_C(0x00074F43), UINT32_C(0x002F68A2), + UINT32_C(0x000623F6), UINT32_C(0x001D4282)}, + {UINT32_C(0x0014B428), UINT32_C(0x003E7D33), UINT32_C(0x002520C7), + UINT32_C(0x0041CCF2), UINT32_C(0x00233BAB), UINT32_C(0x001589F9), + UINT32_C(0x000D2E6E), UINT32_C(0x001FFD7C), UINT32_C(0x001DCFD2), + UINT32_C(0x00390FFE), UINT32_C(0x00031026), UINT32_C(0x00772372), + UINT32_C(0x0010F507), UINT32_C(0x0039D935), UINT32_C(0x0011504F), + UINT32_C(0x0041B316), UINT32_C(0x001B31F1), UINT32_C(0x00309FCB), + UINT32_C(0x002D1468), UINT32_C(0x00238297), UINT32_C(0x001B6605), + UINT32_C(0x001B59F9), UINT32_C(0x000B6C96)}}, + {{UINT32_C(0x0043F6C2), UINT32_C(0x000763DF), UINT32_C(0x00308091), + UINT32_C(0x006DDCFF), UINT32_C(0x002FC758), UINT32_C(0x001EFF60), + UINT32_C(0x0018180E), UINT32_C(0x005F0A71), UINT32_C(0x001E4437), + UINT32_C(0x000EADD7), UINT32_C(0x0012CA06), UINT32_C(0x0024EF90), + UINT32_C(0x00188475), UINT32_C(0x0018B6D9), UINT32_C(0x001DEA6E), + UINT32_C(0x0044FC14), UINT32_C(0x003D1458), UINT32_C(0x0031E96A), + UINT32_C(0x000E2DAF), UINT32_C(0x00628BB3), UINT32_C(0x002A2193), + UINT32_C(0x00011F06), UINT32_C(0x000C91E9)}, + {UINT32_C(0x00482FED), UINT32_C(0x002528F8), UINT32_C(0x002FD25C), + UINT32_C(0x00261308), UINT32_C(0x00139233), UINT32_C(0x00302E3F), + UINT32_C(0x002A13B0), UINT32_C(0x007DEDA6), UINT32_C(0x0011FB4F), + UINT32_C(0x0008FBA1), UINT32_C(0x00196CC9), UINT32_C(0x0051E7E4), + UINT32_C(0x0005A421), UINT32_C(0x003784E4), UINT32_C(0x00174AFF), + UINT32_C(0x004725BC), UINT32_C(0x0004CD05), UINT32_C(0x0026FA6B), + UINT32_C(0x001805BF), UINT32_C(0x0017519D), UINT32_C(0x001A7B71), + UINT32_C(0x00280018), UINT32_C(0x0026EC17)}}, + {{UINT32_C(0x001C205B), UINT32_C(0x002CCC69), UINT32_C(0x0030F0E5), + UINT32_C(0x00192A4E), UINT32_C(0x003D1B67), UINT32_C(0x0020DAE2), + UINT32_C(0x000769DE), UINT32_C(0x001BFA4D), UINT32_C(0x000B7649), + UINT32_C(0x000C1B2B), UINT32_C(0x0038C90F), UINT32_C(0x001D0BF8), + UINT32_C(0x000577CB), UINT32_C(0x00190B4F), UINT32_C(0x003E238F), + UINT32_C(0x0052DFF8), UINT32_C(0x0010D0F0), UINT32_C(0x000218C9), + UINT32_C(0x0013F89C), UINT32_C(0x00714803), UINT32_C(0x003A6F8C), + UINT32_C(0x00353B6D), UINT32_C(0x002FFEEA)}, + {UINT32_C(0x0030C7D2), UINT32_C(0x000CA103), UINT32_C(0x0021611C), + UINT32_C(0x00188899), UINT32_C(0x001F54E9), UINT32_C(0x00010620), + UINT32_C(0x000AE01A), UINT32_C(0x007A2DB9), UINT32_C(0x002A9401), + UINT32_C(0x00209C63), UINT32_C(0x00389F5D), UINT32_C(0x00196FFF), + UINT32_C(0x002CE291), UINT32_C(0x00340A01), UINT32_C(0x003FF906), + UINT32_C(0x002C42FC), UINT32_C(0x0037C6A3), UINT32_C(0x001146A7), + UINT32_C(0x00044BAD), UINT32_C(0x0063D883), UINT32_C(0x000BAB16), + UINT32_C(0x001FF085), UINT32_C(0x00140B79)}}, + {{UINT32_C(0x0032C0E7), UINT32_C(0x00208DFF), UINT32_C(0x002F6660), + UINT32_C(0x0070C915), UINT32_C(0x002D9AF5), UINT32_C(0x0012AB64), + UINT32_C(0x0015326E), UINT32_C(0x001E8920), UINT32_C(0x0031383C), + UINT32_C(0x000E45C6), UINT32_C(0x003FF494), UINT32_C(0x00792407), + UINT32_C(0x0021A39A), UINT32_C(0x003EFC30), UINT32_C(0x0008C932), + UINT32_C(0x0031D0D5), UINT32_C(0x0013E9B1), UINT32_C(0x0016F25F), + UINT32_C(0x00251F58), UINT32_C(0x001D0CCC), UINT32_C(0x00189479), + UINT32_C(0x001E2A1D), UINT32_C(0x001548E8)}, + {UINT32_C(0x007ED4E4), UINT32_C(0x003831E3), UINT32_C(0x0036B65B), + UINT32_C(0x00173DB0), UINT32_C(0x0030B4B3), UINT32_C(0x003B0A38), + UINT32_C(0x00176695), UINT32_C(0x0022F024), UINT32_C(0x002DC536), + UINT32_C(0x0026D641), UINT32_C(0x003845E6), UINT32_C(0x006AE213), + UINT32_C(0x000F1253), UINT32_C(0x0035B8B4), UINT32_C(0x002D1D2C), + UINT32_C(0x0026072B), UINT32_C(0x000C4DFF), UINT32_C(0x00098C06), + UINT32_C(0x003973E5), UINT32_C(0x006E815F), UINT32_C(0x0035E739), + UINT32_C(0x0004E25A), UINT32_C(0x00323E06)}}, + {{UINT32_C(0x0018218E), UINT32_C(0x001C5A05), UINT32_C(0x00156FEA), + UINT32_C(0x000DEF36), UINT32_C(0x003405AB), UINT32_C(0x000C8D8A), + UINT32_C(0x003D4CE6), UINT32_C(0x0036C6B1), UINT32_C(0x0026347B), + UINT32_C(0x002BEC62), UINT32_C(0x00135B49), UINT32_C(0x004ED20D), + UINT32_C(0x002BCE15), UINT32_C(0x000A503C), UINT32_C(0x0030279F), + UINT32_C(0x00124E30), UINT32_C(0x003AF38A), UINT32_C(0x0008EB83), + UINT32_C(0x00141065), UINT32_C(0x004DF4DC), UINT32_C(0x00176DD3), + UINT32_C(0x000FCB73), UINT32_C(0x000229CD)}, + {UINT32_C(0x0004041C), UINT32_C(0x003CAB13), UINT32_C(0x0029B3E4), + UINT32_C(0x001B70DE), UINT32_C(0x00009B3A), UINT32_C(0x002C70AC), + UINT32_C(0x00272EDA), UINT32_C(0x0010407E), UINT32_C(0x000645F0), + UINT32_C(0x001E2E70), UINT32_C(0x000502A8), UINT32_C(0x00794831), + UINT32_C(0x003AE5DE), UINT32_C(0x002799EA), UINT32_C(0x001CAFA4), + UINT32_C(0x006E7B51), UINT32_C(0x0008984E), UINT32_C(0x0012EF3F), + UINT32_C(0x000025E7), UINT32_C(0x000DDA10), UINT32_C(0x00119536), + UINT32_C(0x003D6D8D), UINT32_C(0x0006C12F)}}, + {{UINT32_C(0x00435EE4), UINT32_C(0x000163D6), UINT32_C(0x00377C11), + UINT32_C(0x003BD7D6), UINT32_C(0x002E05F5), UINT32_C(0x001FBA80), + UINT32_C(0x00107C07), UINT32_C(0x00681A61), UINT32_C(0x0005189C), + UINT32_C(0x0002C249), UINT32_C(0x003607CD), UINT32_C(0x000957D6), + UINT32_C(0x003F952A), UINT32_C(0x0008ECBA), UINT32_C(0x001E29E1), + UINT32_C(0x0033462B), UINT32_C(0x0022898D), UINT32_C(0x001AABD5), + UINT32_C(0x002E885C), UINT32_C(0x000A2647), UINT32_C(0x0037A37C), + UINT32_C(0x00297E79), UINT32_C(0x002A2CA3)}, + {UINT32_C(0x002C1A17), UINT32_C(0x00158B61), UINT32_C(0x0016816F), + UINT32_C(0x0053A5A8), UINT32_C(0x001547B2), UINT32_C(0x0030AC66), + UINT32_C(0x00202C4C), UINT32_C(0x00274C07), UINT32_C(0x000D322E), + UINT32_C(0x0004A3E0), UINT32_C(0x000F7BC7), UINT32_C(0x00102196), + UINT32_C(0x000C81FB), UINT32_C(0x00358316), UINT32_C(0x00063F2B), + UINT32_C(0x007FF11C), UINT32_C(0x0025FFE3), UINT32_C(0x00256744), + UINT32_C(0x002E91A0), UINT32_C(0x0064976E), UINT32_C(0x0038C948), + UINT32_C(0x00396FAC), UINT32_C(0x0037CF6E)}}, + {{UINT32_C(0x00794F1D), UINT32_C(0x002B6A50), UINT32_C(0x00120AE4), + UINT32_C(0x001CEC0F), UINT32_C(0x00383F87), UINT32_C(0x00216277), + UINT32_C(0x00286CEA), UINT32_C(0x00103D5A), UINT32_C(0x002AA574), + UINT32_C(0x003D3491), UINT32_C(0x0022931D), UINT32_C(0x00489498), + UINT32_C(0x0032EEF4), UINT32_C(0x000CA2AA), UINT32_C(0x00080A27), + UINT32_C(0x007FA661), UINT32_C(0x00094E9A), UINT32_C(0x003EE29E), + UINT32_C(0x002AC21C), UINT32_C(0x001CE359), UINT32_C(0x003330FC), + UINT32_C(0x001C6ADE), UINT32_C(0x00187790)}, + {UINT32_C(0x00340EF5), UINT32_C(0x000BDD62), UINT32_C(0x00333909), + UINT32_C(0x0039146A), UINT32_C(0x0038BB2E), UINT32_C(0x00030F37), + UINT32_C(0x00143B07), UINT32_C(0x0031CC3D), UINT32_C(0x002B5B5C), + UINT32_C(0x00005892), UINT32_C(0x00052BD0), UINT32_C(0x000A282B), + UINT32_C(0x0030D9C5), UINT32_C(0x001004FC), UINT32_C(0x0038922A), + UINT32_C(0x000241A2), UINT32_C(0x000053C3), UINT32_C(0x002C02CA), + UINT32_C(0x002D4F8F), UINT32_C(0x004AB17B), UINT32_C(0x003667C0), + UINT32_C(0x0004EF7E), UINT32_C(0x000080E4)}}, + {{UINT32_C(0x005FA89B), UINT32_C(0x001D2F7D), UINT32_C(0x0019B385), + UINT32_C(0x0053B863), UINT32_C(0x0022E414), UINT32_C(0x0011C620), + UINT32_C(0x001F0CA5), UINT32_C(0x001B475A), UINT32_C(0x003E5B07), + UINT32_C(0x0020C305), UINT32_C(0x0018A591), UINT32_C(0x007DE564), + UINT32_C(0x001F654F), UINT32_C(0x003F1044), UINT32_C(0x000D7B16), + UINT32_C(0x004E51E7), UINT32_C(0x00267972), UINT32_C(0x002A42F3), + UINT32_C(0x000159C2), UINT32_C(0x0016007C), UINT32_C(0x000F9CA8), + UINT32_C(0x00021184), UINT32_C(0x0007FCE7)}, + {UINT32_C(0x00045B0F), UINT32_C(0x000002C5), UINT32_C(0x0033642B), + UINT32_C(0x0038378F), UINT32_C(0x001F29A8), UINT32_C(0x0018130B), + UINT32_C(0x00340B0B), UINT32_C(0x007667B7), UINT32_C(0x0038B986), + UINT32_C(0x00218A5C), UINT32_C(0x0020D3E4), UINT32_C(0x002B84EB), + UINT32_C(0x001DBF61), UINT32_C(0x0006E45C), UINT32_C(0x000C2528), + UINT32_C(0x003D5B87), UINT32_C(0x003B9631), UINT32_C(0x0016FFC9), + UINT32_C(0x002577D8), UINT32_C(0x00084014), UINT32_C(0x00326179), + UINT32_C(0x002B97FC), UINT32_C(0x0017D9B9)}}, + }, + { + {{UINT32_C(0x0024FC6B), UINT32_C(0x00260048), UINT32_C(0x0027A39B), + UINT32_C(0x004A6771), UINT32_C(0x002F8996), UINT32_C(0x00250571), + UINT32_C(0x0022BD5A), UINT32_C(0x0016BA95), UINT32_C(0x00177752), + UINT32_C(0x003AAE54), UINT32_C(0x000382BC), UINT32_C(0x002DBDCA), + UINT32_C(0x00175D11), UINT32_C(0x000485AB), UINT32_C(0x00263BCC), + UINT32_C(0x002CA217), UINT32_C(0x0033AA31), UINT32_C(0x001EB58F), + UINT32_C(0x001CAA07), UINT32_C(0x00439150), UINT32_C(0x003350D2), + UINT32_C(0x002E0A1C), UINT32_C(0x000B60E4)}, + {UINT32_C(0x006AFAB6), UINT32_C(0x001979BD), UINT32_C(0x00206F5D), + UINT32_C(0x004F0B02), UINT32_C(0x001DC842), UINT32_C(0x0032D59A), + UINT32_C(0x001DC451), UINT32_C(0x0022D419), UINT32_C(0x00003471), + UINT32_C(0x00178E67), UINT32_C(0x002D0057), UINT32_C(0x006162BD), + UINT32_C(0x000E5A47), UINT32_C(0x00139F7C), UINT32_C(0x0006E056), + UINT32_C(0x00245E47), UINT32_C(0x0000179C), UINT32_C(0x0028BA82), + UINT32_C(0x00229B1F), UINT32_C(0x003B6E93), UINT32_C(0x0012AE29), + UINT32_C(0x0017CD91), UINT32_C(0x0014F8C1)}}, + {{UINT32_C(0x00340D60), UINT32_C(0x00077299), UINT32_C(0x003D596C), + UINT32_C(0x005CAB48), UINT32_C(0x0018060B), UINT32_C(0x00108F8B), + UINT32_C(0x00155345), UINT32_C(0x00555740), UINT32_C(0x0006639B), + UINT32_C(0x000966BA), UINT32_C(0x0028B692), UINT32_C(0x000E0989), + UINT32_C(0x000E36E6), UINT32_C(0x003EA5CF), UINT32_C(0x003E7233), + UINT32_C(0x002BCE85), UINT32_C(0x003B53C6), UINT32_C(0x000B6428), + UINT32_C(0x000CEB17), UINT32_C(0x001439C1), UINT32_C(0x003E1768), + UINT32_C(0x00182028), UINT32_C(0x00063591)}, + {UINT32_C(0x004C6A3E), UINT32_C(0x0003B6B4), UINT32_C(0x00308620), + UINT32_C(0x0042D6E7), UINT32_C(0x000688FB), UINT32_C(0x00242205), + UINT32_C(0x0015FD4B), UINT32_C(0x006548A0), UINT32_C(0x00073894), + UINT32_C(0x00059483), UINT32_C(0x00070BE7), UINT32_C(0x005EC1A3), + UINT32_C(0x00138AF9), UINT32_C(0x00059A16), UINT32_C(0x000721C1), + UINT32_C(0x003D327D), UINT32_C(0x000AC881), UINT32_C(0x0008254B), + UINT32_C(0x00291DB6), UINT32_C(0x00202301), UINT32_C(0x002587BC), + UINT32_C(0x002F4480), UINT32_C(0x000BB989)}}, + {{UINT32_C(0x0044D64A), UINT32_C(0x00169A22), UINT32_C(0x00198EE3), + UINT32_C(0x001C1CF3), UINT32_C(0x001ABB64), UINT32_C(0x0002B70C), + UINT32_C(0x000D1B40), UINT32_C(0x0000B41C), UINT32_C(0x001A07BF), + UINT32_C(0x0031380A), UINT32_C(0x0037E0A3), UINT32_C(0x005959D5), + UINT32_C(0x00195DCD), UINT32_C(0x00318DBC), UINT32_C(0x00014119), + UINT32_C(0x0039F9F8), UINT32_C(0x002F8B00), UINT32_C(0x00035A9F), + UINT32_C(0x001F77ED), UINT32_C(0x0042F50F), UINT32_C(0x0010F6EB), + UINT32_C(0x00018D31), UINT32_C(0x00115505)}, + {UINT32_C(0x004A9CF0), UINT32_C(0x00396AE3), UINT32_C(0x002F36DC), + UINT32_C(0x0059C454), UINT32_C(0x002372E1), UINT32_C(0x0017C289), + UINT32_C(0x001DC88C), UINT32_C(0x00568BBB), UINT32_C(0x0038AAF3), + UINT32_C(0x000AC735), UINT32_C(0x001D93C9), UINT32_C(0x0079763F), + UINT32_C(0x000474DE), UINT32_C(0x001FFEA5), UINT32_C(0x0032E7A4), + UINT32_C(0x00286D83), UINT32_C(0x001C592E), UINT32_C(0x002E08D4), + UINT32_C(0x003C918F), UINT32_C(0x00635953), UINT32_C(0x00125ECD), + UINT32_C(0x00218E30), UINT32_C(0x0038E348)}}, + {{UINT32_C(0x001F97CB), UINT32_C(0x00027C45), UINT32_C(0x0004CBBC), + UINT32_C(0x003C768C), UINT32_C(0x002150EB), UINT32_C(0x00309BAC), + UINT32_C(0x001BD192), UINT32_C(0x00449D0C), UINT32_C(0x00027761), + UINT32_C(0x00334EC9), UINT32_C(0x0004B563), UINT32_C(0x0063BBA5), + UINT32_C(0x0022D5EC), UINT32_C(0x0036D1DC), UINT32_C(0x0022C410), + UINT32_C(0x005B8D6B), UINT32_C(0x00182967), UINT32_C(0x002A4F38), + UINT32_C(0x00111A50), UINT32_C(0x00211F1F), UINT32_C(0x001EDAD2), + UINT32_C(0x0018C6ED), UINT32_C(0x00195251)}, + {UINT32_C(0x002C575A), UINT32_C(0x00368BF8), UINT32_C(0x001817CE), + UINT32_C(0x0023D30F), UINT32_C(0x00335F3C), UINT32_C(0x003D8B6B), + UINT32_C(0x0036535C), UINT32_C(0x006E800F), UINT32_C(0x001D0FEE), + UINT32_C(0x001D0E1D), UINT32_C(0x001030F4), UINT32_C(0x00575F2F), + UINT32_C(0x000272DE), UINT32_C(0x0012885A), UINT32_C(0x001E98BE), + UINT32_C(0x0002CEF1), UINT32_C(0x00343652), UINT32_C(0x0026244E), + UINT32_C(0x00112950), UINT32_C(0x000CF99B), UINT32_C(0x0039E10D), + UINT32_C(0x0019A48E), UINT32_C(0x000F62D8)}}, + {{UINT32_C(0x007F47CB), UINT32_C(0x000DB92B), UINT32_C(0x001CFE89), + UINT32_C(0x00438C82), UINT32_C(0x002F9B60), UINT32_C(0x0029F531), + UINT32_C(0x0036DACC), UINT32_C(0x000B743F), UINT32_C(0x0014BFCA), + UINT32_C(0x003076AB), UINT32_C(0x00061C92), UINT32_C(0x00402803), + UINT32_C(0x001F9BBE), UINT32_C(0x002BB4F0), UINT32_C(0x001D49FC), + UINT32_C(0x0039DA58), UINT32_C(0x001B9F65), UINT32_C(0x001A4032), + UINT32_C(0x001853D6), UINT32_C(0x0077F83B), UINT32_C(0x000BA641), + UINT32_C(0x0028F440), UINT32_C(0x00036529)}, + {UINT32_C(0x00469CBC), UINT32_C(0x000ECB6B), UINT32_C(0x003ED688), + UINT32_C(0x00448228), UINT32_C(0x000125E0), UINT32_C(0x001294BB), + UINT32_C(0x003209CD), UINT32_C(0x00431140), UINT32_C(0x0024ADFE), + UINT32_C(0x000A297C), UINT32_C(0x00343443), UINT32_C(0x003DC6B9), + UINT32_C(0x003A8F4A), UINT32_C(0x003CD200), UINT32_C(0x0027F94A), + UINT32_C(0x0026C683), UINT32_C(0x001010D7), UINT32_C(0x00291317), + UINT32_C(0x001C01DB), UINT32_C(0x00323A9C), UINT32_C(0x0018F9E1), + UINT32_C(0x000FB990), UINT32_C(0x001C0FD8)}}, + {{UINT32_C(0x002529B0), UINT32_C(0x00047C33), UINT32_C(0x00105D03), + UINT32_C(0x00668833), UINT32_C(0x001D8A87), UINT32_C(0x001BE267), + UINT32_C(0x002E8A17), UINT32_C(0x001BA406), UINT32_C(0x0012683B), + UINT32_C(0x0032EFBE), UINT32_C(0x0033C9C9), UINT32_C(0x003816FD), + UINT32_C(0x001E2856), UINT32_C(0x001FA678), UINT32_C(0x0034CF0E), + UINT32_C(0x002BC6D4), UINT32_C(0x0021D8C3), UINT32_C(0x00138A8F), + UINT32_C(0x00301A91), UINT32_C(0x007BA5BF), UINT32_C(0x0027ADBF), + UINT32_C(0x00084950), UINT32_C(0x003344F2)}, + {UINT32_C(0x001D7DDB), UINT32_C(0x000B9FBD), UINT32_C(0x003A23D1), + UINT32_C(0x000DAA8E), UINT32_C(0x0015296C), UINT32_C(0x00378879), + UINT32_C(0x00080207), UINT32_C(0x006DACFA), UINT32_C(0x002C4D0C), + UINT32_C(0x0003E240), UINT32_C(0x0005CDBB), UINT32_C(0x004B5100), + UINT32_C(0x0024673C), UINT32_C(0x003EDDC4), UINT32_C(0x001C3104), + UINT32_C(0x004EC191), UINT32_C(0x001B0572), UINT32_C(0x002EE934), + UINT32_C(0x001E439A), UINT32_C(0x0008B8BC), UINT32_C(0x001D336D), + UINT32_C(0x000C0450), UINT32_C(0x00264399)}}, + {{UINT32_C(0x0063BA75), UINT32_C(0x000E5577), UINT32_C(0x002D84D8), + UINT32_C(0x0011F137), UINT32_C(0x003C0568), UINT32_C(0x001FCF04), + UINT32_C(0x00369E84), UINT32_C(0x0026107B), UINT32_C(0x003793D0), + UINT32_C(0x002FF753), UINT32_C(0x00080D0D), UINT32_C(0x0009FE5B), + UINT32_C(0x000D568B), UINT32_C(0x00306219), UINT32_C(0x00057FB4), + UINT32_C(0x00251274), UINT32_C(0x0028F357), UINT32_C(0x001868A6), + UINT32_C(0x00245601), UINT32_C(0x00694DDA), UINT32_C(0x001BF932), + UINT32_C(0x00291545), UINT32_C(0x000834DF)}, + {UINT32_C(0x005DE7C7), UINT32_C(0x00043FB9), UINT32_C(0x002022F7), + UINT32_C(0x006DD20B), UINT32_C(0x0034DB2B), UINT32_C(0x0009812A), + UINT32_C(0x000634E5), UINT32_C(0x00529BDD), UINT32_C(0x0037E7AF), + UINT32_C(0x0020131E), UINT32_C(0x0028145E), UINT32_C(0x007D781A), + UINT32_C(0x003F2E11), UINT32_C(0x00090377), UINT32_C(0x001FF3F0), + UINT32_C(0x0029544B), UINT32_C(0x0004B34A), UINT32_C(0x00308A92), + UINT32_C(0x00230957), UINT32_C(0x0030849F), UINT32_C(0x003BD197), + UINT32_C(0x0036543D), UINT32_C(0x0013DB50)}}, + {{UINT32_C(0x006DBC4E), UINT32_C(0x000B8C36), UINT32_C(0x0033C975), + UINT32_C(0x001B98FA), UINT32_C(0x000E1469), UINT32_C(0x003F57BB), + UINT32_C(0x00366AF6), UINT32_C(0x002940D4), UINT32_C(0x002A7401), + UINT32_C(0x000B24FA), UINT32_C(0x003D079C), UINT32_C(0x000BBF2B), + UINT32_C(0x001C8DA1), UINT32_C(0x00281279), UINT32_C(0x003FD16B), + UINT32_C(0x005F172D), UINT32_C(0x003BC575), UINT32_C(0x0003F2EE), + UINT32_C(0x000EB6E0), UINT32_C(0x0025AA43), UINT32_C(0x0019146D), + UINT32_C(0x000E2FCD), UINT32_C(0x000708D1)}, + {UINT32_C(0x00188A0A), UINT32_C(0x003280E1), UINT32_C(0x00375AE3), + UINT32_C(0x005DEF79), UINT32_C(0x0030CA8C), UINT32_C(0x0011A4E2), + UINT32_C(0x001A18EE), UINT32_C(0x0015160F), UINT32_C(0x003D4633), + UINT32_C(0x00210DF1), UINT32_C(0x0039513D), UINT32_C(0x00032B85), + UINT32_C(0x0000562C), UINT32_C(0x002B09DE), UINT32_C(0x0012E5D7), + UINT32_C(0x00343965), UINT32_C(0x002482BA), UINT32_C(0x00358D60), + UINT32_C(0x00210688), UINT32_C(0x001DE534), UINT32_C(0x0037E47D), + UINT32_C(0x00306432), UINT32_C(0x00331A00)}}, + {{UINT32_C(0x000E3961), UINT32_C(0x00136E2C), UINT32_C(0x00396117), + UINT32_C(0x003A4EA9), UINT32_C(0x002B633F), UINT32_C(0x00331384), + UINT32_C(0x000E6FDA), UINT32_C(0x00110B81), UINT32_C(0x00083F56), + UINT32_C(0x0010E231), UINT32_C(0x00377F5B), UINT32_C(0x00777CBF), + UINT32_C(0x0027D587), UINT32_C(0x0016725E), UINT32_C(0x0022FAFB), + UINT32_C(0x0050FCA0), UINT32_C(0x0035E866), UINT32_C(0x001F6AF5), + UINT32_C(0x00131AFF), UINT32_C(0x0031B90B), UINT32_C(0x003D8FC9), + UINT32_C(0x003CCAEF), UINT32_C(0x000BCF90)}, + {UINT32_C(0x0037CE7B), UINT32_C(0x003B57EC), UINT32_C(0x00161E92), + UINT32_C(0x0065355B), UINT32_C(0x0024637B), UINT32_C(0x0008B2C0), + UINT32_C(0x0002E6FD), UINT32_C(0x001ED2F1), UINT32_C(0x0024A016), + UINT32_C(0x0022B354), UINT32_C(0x0019306E), UINT32_C(0x003009F9), + UINT32_C(0x00130478), UINT32_C(0x0039951C), UINT32_C(0x003B9F26), + UINT32_C(0x00129D8E), UINT32_C(0x0028EAE8), UINT32_C(0x002E0532), + UINT32_C(0x002312B7), UINT32_C(0x001904D9), UINT32_C(0x001F8FB7), + UINT32_C(0x00306139), UINT32_C(0x00191E58)}}, + {{UINT32_C(0x00315B6B), UINT32_C(0x0006110B), UINT32_C(0x002D0F7A), + UINT32_C(0x000B35D8), UINT32_C(0x0039DD74), UINT32_C(0x0013BF7F), + UINT32_C(0x00088A74), UINT32_C(0x00678A54), UINT32_C(0x0027C11E), + UINT32_C(0x0039299C), UINT32_C(0x0009E852), UINT32_C(0x003A9738), + UINT32_C(0x003BA90B), UINT32_C(0x003C704C), UINT32_C(0x00031EAD), + UINT32_C(0x003F9F6D), UINT32_C(0x00060C99), UINT32_C(0x00210078), + UINT32_C(0x000A43CC), UINT32_C(0x001D2C3A), UINT32_C(0x0016F165), + UINT32_C(0x002CBE20), UINT32_C(0x003CBD2A)}, + {UINT32_C(0x006EA72C), UINT32_C(0x0019FAA9), UINT32_C(0x0027119B), + UINT32_C(0x00002DB4), UINT32_C(0x003FC202), UINT32_C(0x00258426), + UINT32_C(0x0017A426), UINT32_C(0x00591EA2), UINT32_C(0x000DAAC0), + UINT32_C(0x00160BB2), UINT32_C(0x002B5C9B), UINT32_C(0x0034552F), + UINT32_C(0x00354208), UINT32_C(0x003F73F6), UINT32_C(0x001D329F), + UINT32_C(0x00541523), UINT32_C(0x001D2733), UINT32_C(0x003E6DA0), + UINT32_C(0x00058267), UINT32_C(0x002FD1CD), UINT32_C(0x003085B8), + UINT32_C(0x0037B13E), UINT32_C(0x0011D71D)}}, + {{UINT32_C(0x004EF58F), UINT32_C(0x00111078), UINT32_C(0x002A7D65), + UINT32_C(0x0032333E), UINT32_C(0x0011BB9D), UINT32_C(0x0033FA14), + UINT32_C(0x001ABD10), UINT32_C(0x007F9C0D), UINT32_C(0x0012F21C), + UINT32_C(0x003C4D14), UINT32_C(0x003A59E2), UINT32_C(0x0017140E), + UINT32_C(0x003EC05A), UINT32_C(0x002B8323), UINT32_C(0x0013D487), + UINT32_C(0x0061B630), UINT32_C(0x000C1262), UINT32_C(0x0034A7E5), + UINT32_C(0x0018DA22), UINT32_C(0x000DA70C), UINT32_C(0x001E1E78), + UINT32_C(0x0037CE10), UINT32_C(0x000BEBB1)}, + {UINT32_C(0x004F54F0), UINT32_C(0x000A220B), UINT32_C(0x00161352), + UINT32_C(0x007E4EA4), UINT32_C(0x002878DE), UINT32_C(0x001C80E5), + UINT32_C(0x000C0855), UINT32_C(0x0075DF3B), UINT32_C(0x0039D0AB), + UINT32_C(0x001D0301), UINT32_C(0x001594B9), UINT32_C(0x0078140B), + UINT32_C(0x001A2C01), UINT32_C(0x0028FCE5), UINT32_C(0x003C573C), + UINT32_C(0x0006E543), UINT32_C(0x003A90E6), UINT32_C(0x002D4FDD), + UINT32_C(0x0022B1F7), UINT32_C(0x0062CB04), UINT32_C(0x002C12CA), + UINT32_C(0x00389E83), UINT32_C(0x0007631E)}}, + {{UINT32_C(0x0023C68B), UINT32_C(0x000F609A), UINT32_C(0x000D7E01), + UINT32_C(0x0069E56B), UINT32_C(0x0003D496), UINT32_C(0x001BC8DC), + UINT32_C(0x00328E76), UINT32_C(0x00316565), UINT32_C(0x0011A340), + UINT32_C(0x00374048), UINT32_C(0x0016C79E), UINT32_C(0x0014449B), + UINT32_C(0x002EE9B6), UINT32_C(0x00032A11), UINT32_C(0x001212A3), + UINT32_C(0x003D35C1), UINT32_C(0x003485FD), UINT32_C(0x001199A6), + UINT32_C(0x001C3F0D), UINT32_C(0x0017F8CF), UINT32_C(0x0014AC02), + UINT32_C(0x001E0EB1), UINT32_C(0x001ACA7C)}, + {UINT32_C(0x0031C47A), UINT32_C(0x00102E12), UINT32_C(0x002F6F4B), + UINT32_C(0x005B2D93), UINT32_C(0x000A9886), UINT32_C(0x001CC034), + UINT32_C(0x0023E81B), UINT32_C(0x0001A7CE), UINT32_C(0x0029ABC3), + UINT32_C(0x0004048C), UINT32_C(0x002BC25D), UINT32_C(0x00368ABA), + UINT32_C(0x0002746C), UINT32_C(0x00373868), UINT32_C(0x00061AA2), + UINT32_C(0x0056401C), UINT32_C(0x00207F34), UINT32_C(0x001FCA2D), + UINT32_C(0x00169B9E), UINT32_C(0x0064FDA3), UINT32_C(0x0028C18A), + UINT32_C(0x000C0847), UINT32_C(0x001845F0)}}, + {{UINT32_C(0x002F9AD9), UINT32_C(0x0009590F), UINT32_C(0x00130486), + UINT32_C(0x0059CC83), UINT32_C(0x0039A337), UINT32_C(0x0022C7C7), + UINT32_C(0x0003C259), UINT32_C(0x00602650), UINT32_C(0x0008510C), + UINT32_C(0x00384F8A), UINT32_C(0x001F3AA0), UINT32_C(0x003706DA), + UINT32_C(0x00069456), UINT32_C(0x0002AD7C), UINT32_C(0x00003A14), + UINT32_C(0x007327BA), UINT32_C(0x002F7478), UINT32_C(0x001FBB28), + UINT32_C(0x0023BC3E), UINT32_C(0x007F5AB5), UINT32_C(0x001FFF4E), + UINT32_C(0x00188D11), UINT32_C(0x0013BC8B)}, + {UINT32_C(0x0000C111), UINT32_C(0x0006AA72), UINT32_C(0x0012A2E9), + UINT32_C(0x0055127A), UINT32_C(0x003C8991), UINT32_C(0x0036CFBC), + UINT32_C(0x0037F0BB), UINT32_C(0x00655B21), UINT32_C(0x002B75E3), + UINT32_C(0x00336687), UINT32_C(0x00210878), UINT32_C(0x00089C2C), + UINT32_C(0x003CEE92), UINT32_C(0x00143383), UINT32_C(0x00371D45), + UINT32_C(0x000BCDFE), UINT32_C(0x00238367), UINT32_C(0x001C2D8B), + UINT32_C(0x003E06AD), UINT32_C(0x0053DBC8), UINT32_C(0x002A9F89), + UINT32_C(0x002955F8), UINT32_C(0x00137029)}}, + {{UINT32_C(0x0002FB5B), UINT32_C(0x0032BB27), UINT32_C(0x001EE694), + UINT32_C(0x002E2965), UINT32_C(0x00395F01), UINT32_C(0x003FEC08), + UINT32_C(0x003ABDFB), UINT32_C(0x0068B88B), UINT32_C(0x00221DB7), + UINT32_C(0x000F72D1), UINT32_C(0x0003F9DC), UINT32_C(0x005C1B93), + UINT32_C(0x00073A9E), UINT32_C(0x00160BD0), UINT32_C(0x00053416), + UINT32_C(0x0023242A), UINT32_C(0x0010FAB9), UINT32_C(0x0006D2C5), + UINT32_C(0x00236E83), UINT32_C(0x0054747B), UINT32_C(0x00063F98), + UINT32_C(0x001A8789), UINT32_C(0x003DC7DA)}, + {UINT32_C(0x00463909), UINT32_C(0x0029E3B4), UINT32_C(0x0002F0E2), + UINT32_C(0x00593390), UINT32_C(0x0034320B), UINT32_C(0x003F6A3B), + UINT32_C(0x002603E4), UINT32_C(0x00016676), UINT32_C(0x00254C99), + UINT32_C(0x0023EB7B), UINT32_C(0x00119D88), UINT32_C(0x003D63F8), + UINT32_C(0x00350BC8), UINT32_C(0x00140757), UINT32_C(0x002473C4), + UINT32_C(0x0034D831), UINT32_C(0x0017BDB7), UINT32_C(0x003E24EB), + UINT32_C(0x00231FE3), UINT32_C(0x0070EC64), UINT32_C(0x00043E18), + UINT32_C(0x002A4D4F), UINT32_C(0x0005D554)}}, + {{UINT32_C(0x006FC15D), UINT32_C(0x001F5830), UINT32_C(0x0008AD9E), + UINT32_C(0x002845F0), UINT32_C(0x001CD01E), UINT32_C(0x0000CFC1), + UINT32_C(0x0032AE8B), UINT32_C(0x0019E673), UINT32_C(0x0030C5E5), + UINT32_C(0x00050166), UINT32_C(0x00372FAC), UINT32_C(0x00057147), + UINT32_C(0x0004060F), UINT32_C(0x00163807), UINT32_C(0x002BCADD), + UINT32_C(0x00376726), UINT32_C(0x0028315B), UINT32_C(0x0009418F), + UINT32_C(0x001E2957), UINT32_C(0x006D28BE), UINT32_C(0x001BCADE), + UINT32_C(0x0031A352), UINT32_C(0x00052575)}, + {UINT32_C(0x00404C1D), UINT32_C(0x0024FA31), UINT32_C(0x0012C7A3), + UINT32_C(0x007D71A8), UINT32_C(0x0028D167), UINT32_C(0x0020B8E9), + UINT32_C(0x0032697E), UINT32_C(0x00202C6B), UINT32_C(0x00032212), + UINT32_C(0x003AB37D), UINT32_C(0x0029EEED), UINT32_C(0x00239F39), + UINT32_C(0x0007DC00), UINT32_C(0x003BD86F), UINT32_C(0x003B948C), + UINT32_C(0x005D1965), UINT32_C(0x003C74AD), UINT32_C(0x001EAB46), + UINT32_C(0x00255C49), UINT32_C(0x002402DB), UINT32_C(0x0004833F), + UINT32_C(0x00181728), UINT32_C(0x002C23A4)}}, + {{UINT32_C(0x00069003), UINT32_C(0x001493A6), UINT32_C(0x003F6B49), + UINT32_C(0x001B15E2), UINT32_C(0x003CB610), UINT32_C(0x003AC0D8), + UINT32_C(0x0012E96D), UINT32_C(0x004C065C), UINT32_C(0x00318C4E), + UINT32_C(0x00151ED2), UINT32_C(0x002348E6), UINT32_C(0x006AE001), + UINT32_C(0x0012C641), UINT32_C(0x00126DF2), UINT32_C(0x001D6E0A), + UINT32_C(0x00227223), UINT32_C(0x003493D1), UINT32_C(0x0027ED79), + UINT32_C(0x00097233), UINT32_C(0x0004AB1D), UINT32_C(0x002E7F5A), + UINT32_C(0x003ED69A), UINT32_C(0x003D2512)}, + {UINT32_C(0x002D81D0), UINT32_C(0x0012CD40), UINT32_C(0x00296981), + UINT32_C(0x007D52C8), UINT32_C(0x002B5E71), UINT32_C(0x0018553C), + UINT32_C(0x003F8695), UINT32_C(0x00730395), UINT32_C(0x00050DAB), + UINT32_C(0x0015BCBA), UINT32_C(0x00220A46), UINT32_C(0x00762FDE), + UINT32_C(0x0029B8D0), UINT32_C(0x0025890A), UINT32_C(0x002D307D), + UINT32_C(0x0077543E), UINT32_C(0x001F282E), UINT32_C(0x00300B63), + UINT32_C(0x000F826D), UINT32_C(0x00344F5F), UINT32_C(0x0017B455), + UINT32_C(0x000FA526), UINT32_C(0x0013C162)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 6 + * ASSERT: a = -3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(t0, X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(t1, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_square(t2, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t3, X, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, t3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t4, Y, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, X, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, b, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(X3, X3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, t2, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t2, t2, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, b, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Z3, Z3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Z3, Z3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t0, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t0, t0, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t0, t4, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, t0, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, Z3); +} + +/*- + * out1 = (arg1 == 0) ? 0 : nz + * NB: this is not a "mod p equiv" 0, but literal 0 + * NB: this is not a real Fiat function, just named that way for consistency. + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetA_nonzero(limb_t *out1, + const fe_t arg1) { + limb_t x1 = 0; + int i; + + for (i = 0; i < LIMB_CNT; i++) x1 |= arg1[i]; + *out1 = x1; +} + +/*- + * 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.op3 + * https://eprint.iacr.org/2015/1060 Alg 5 + * ASSERT: a = -3 + */ +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, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t4, Y2, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, t4, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, X2, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, Y3, X1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, b, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, X3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Z3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, b, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, Z1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t2, t1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t0, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, t4, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t2, t0, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(X3, t3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, t4, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, t1); + + /* if P is inf, throw all that away and take Q */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(R->X, nz, Q->X, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 4 + * ASSERT: a = -3 + */ +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, t4, t5; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t2, Z1, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t3, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t4, Y1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t5, Y2, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t4, t4, t5); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t5, t1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t4, t4, t5); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, X1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, X2, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(X3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, b, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, X3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Z3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(X3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, b, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, t2, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t2, t1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t1, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(t0, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, t4, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t2, t0, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Y3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(X3, t3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_sub(X3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(Z3, t4, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(t1, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_add(Z3, Z3, t1); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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(char out[103], const unsigned char in[64]) { + int i; + char 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(char out[513], const unsigned char in[64]) { + int i; + char 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; + } +} + +/*- + * Simulateous 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; + char anaf[513] = {0}; + char bnaf[513] = {0}; + pt_prj_t Q; + 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_paramSetA_opp(Q.Y, Q.Y); + 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.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_paramSetA_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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; + char rnaf[103] = {0}; + pt_prj_t Q, lut; + 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_paramSetA_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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_paramSetA_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_opp(out->Y, lut.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_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; + char rnaf[103] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 10; i >= 0; i--) { + for (j = 0; i != 10 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 11; j++) { + if (j * 11 + i > 102) continue; + d = rnaf[j * 11 + 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_paramSetA_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_opp(out->Y, lut.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.X, scalar[0] & 1, R.X, + Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.Y, scalar[0] & 1, R.Y, + Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetA_selectznz(Q.Z, scalar[0] & 1, R.Z, + Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetA_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetA_carry_mul(out->Y, Q.Y, Q.Z); +} + +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_paramSetA_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetA_from_bytes(P.Y, iny); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_tc26_gost_3410_2012_512_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_to_bytes(outy, P.Y); +} + +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_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_to_bytes(outy, P.Y); +} + +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_paramSetA_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetA_from_bytes(P.Y, iny); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_tc26_gost_3410_2012_512_paramSetA_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetA_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[64] = {0}; + + int + point_mul_two_id_tc26_gost_3410_2012_512_paramSetA( + 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; +} + + int + point_mul_id_tc26_gost_3410_2012_512_paramSetA(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; +} + + int + point_mul_g_id_tc26_gost_3410_2012_512_paramSetA(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__ */ diff --git a/ecp_id_tc26_gost_3410_2012_512_paramSetB.c b/ecp_id_tc26_gost_3410_2012_512_paramSetB.c new file mode 100644 index 0000000..e305747 --- /dev/null +++ b/ecp_id_tc26_gost_3410_2012_512_paramSetB.c @@ -0,0 +1,22321 @@ +/* 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 8 +/* Field elements */ +typedef uint64_t fe_t[LIMB_CNT]; +typedef uint64_t limb_t; + +#define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) +#define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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: word_by_word_montgomery --static id_tc26_gost_3410_2012_512_paramSetB 64 '2^511 + 111' */ +/* curve description: id_tc26_gost_3410_2012_512_paramSetB */ +/* machine_wordsize = 64 (from "64") */ +/* requested operations: (all) */ +/* m = 0x8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f (from "2^511 + 111") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (m), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ +/* */ +/* Computed values: */ +/* eval z = z[0] + (z[1] << 64) + (z[2] << 128) + (z[3] << 192) + (z[4] << 256) + (z[5] << 0x140) + (z[6] << 0x180) + (z[7] << 0x1c0) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1; +typedef signed char fiat_id_tc26_gost_3410_2012_512_paramSetB_int1; +typedef signed __int128 fiat_id_tc26_gost_3410_2012_512_paramSetB_int128; +typedef unsigned __int128 fiat_id_tc26_gost_3410_2012_512_paramSetB_uint128; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^64 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint128 x1; + uint64_t x2; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x3; + x1 = ((arg1 + (fiat_id_tc26_gost_3410_2012_512_paramSetB_uint128)arg2) + + arg3); + x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^64 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffffffffffff] + * arg3: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 arg1, uint64_t arg2, + uint64_t arg3) { + fiat_id_tc26_gost_3410_2012_512_paramSetB_int128 x1; + fiat_id_tc26_gost_3410_2012_512_paramSetB_int1 x2; + uint64_t x3; + x1 = ((arg2 - (fiat_id_tc26_gost_3410_2012_512_paramSetB_int128)arg1) - + arg3); + x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetB_int1)(x1 >> 64); + x3 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64 is a multiplication, returning the full double-width result. + * Postconditions: + * out1 = (arg1 * arg2) mod 2^64 + * out2 = ⌊arg1 * arg2 / 2^64⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0xffffffffffffffff] + * arg2: [0x0 ~> 0xffffffffffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + * out2: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(uint64_t *out1, + uint64_t *out2, + uint64_t arg1, + uint64_t arg2) { + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint128 x1; + uint64_t x2; + uint64_t x3; + x1 = ((fiat_id_tc26_gost_3410_2012_512_paramSetB_uint128)arg1 * arg2); + x2 = (uint64_t)(x1 & UINT64_C(0xffffffffffffffff)); + x3 = (uint64_t)(x1 >> 64); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_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_paramSetB_cmovznz_u64( + uint64_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 arg1, + uint64_t arg2, uint64_t arg3) { + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1; + uint64_t x2; + uint64_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_tc26_gost_3410_2012_512_paramSetB_int1)(0x0 - x1) & + UINT64_C(0xffffffffffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_mul multiplies two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_mul( + uint64_t out1[8], const uint64_t arg1[8], const uint64_t arg2[8]) { + 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x26; + uint64_t x27; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x28; + uint64_t x29; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x30; + uint64_t x31; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x32; + uint64_t x33; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x34; + uint64_t x35; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x36; + uint64_t x37; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x47; + uint64_t x48; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x49; + uint64_t x50; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x51; + uint64_t x52; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x53; + uint64_t x54; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x55; + uint64_t x56; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x57; + uint64_t x58; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x59; + uint64_t x60; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x61; + uint64_t x62; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x81; + uint64_t x82; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x83; + uint64_t x84; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x85; + uint64_t x86; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x87; + uint64_t x88; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x89; + uint64_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x91; + uint64_t x92; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x93; + uint64_t x94; + uint64_t x95; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x96; + uint64_t x97; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x98; + uint64_t x99; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x100; + uint64_t x101; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x102; + uint64_t x103; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x104; + uint64_t x105; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x106; + uint64_t x107; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x108; + uint64_t x109; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x110; + uint64_t x111; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x112; + uint64_t x113; + uint64_t x114; + uint64_t x115; + uint64_t x116; + uint64_t x117; + uint64_t x118; + uint64_t x119; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x120; + uint64_t x121; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x122; + uint64_t x123; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x124; + uint64_t x125; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x126; + uint64_t x127; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x128; + uint64_t x129; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x130; + uint64_t x131; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x132; + uint64_t x133; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x134; + uint64_t x135; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x155; + uint64_t x156; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x157; + uint64_t x158; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x159; + uint64_t x160; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x161; + uint64_t x162; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x163; + uint64_t x164; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x165; + uint64_t x166; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x167; + uint64_t x168; + uint64_t x169; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x170; + uint64_t x171; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x172; + uint64_t x173; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x174; + uint64_t x175; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x176; + uint64_t x177; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x178; + uint64_t x179; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x180; + uint64_t x181; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x182; + uint64_t x183; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x184; + uint64_t x185; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x194; + uint64_t x195; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x196; + uint64_t x197; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x198; + uint64_t x199; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x200; + uint64_t x201; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x202; + uint64_t x203; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x204; + uint64_t x205; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x206; + uint64_t x207; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x208; + uint64_t x209; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x229; + uint64_t x230; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x231; + uint64_t x232; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x233; + uint64_t x234; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x235; + uint64_t x236; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x237; + uint64_t x238; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x239; + uint64_t x240; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x241; + uint64_t x242; + uint64_t x243; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x244; + uint64_t x245; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x246; + uint64_t x247; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x248; + uint64_t x249; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x250; + uint64_t x251; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x252; + uint64_t x253; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x254; + uint64_t x255; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x256; + uint64_t x257; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x258; + uint64_t x259; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x260; + uint64_t x261; + uint64_t x262; + uint64_t x263; + uint64_t x264; + uint64_t x265; + uint64_t x266; + uint64_t x267; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x268; + uint64_t x269; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x270; + uint64_t x271; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x272; + uint64_t x273; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x274; + uint64_t x275; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x276; + uint64_t x277; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x278; + uint64_t x279; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x280; + uint64_t x281; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x282; + uint64_t x283; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x303; + uint64_t x304; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x305; + uint64_t x306; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x307; + uint64_t x308; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x309; + uint64_t x310; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x311; + uint64_t x312; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x313; + uint64_t x314; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x315; + uint64_t x316; + uint64_t x317; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x318; + uint64_t x319; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x320; + uint64_t x321; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x322; + uint64_t x323; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x324; + uint64_t x325; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x326; + uint64_t x327; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x328; + uint64_t x329; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x330; + uint64_t x331; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x332; + uint64_t x333; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x334; + uint64_t x335; + uint64_t x336; + uint64_t x337; + uint64_t x338; + uint64_t x339; + uint64_t x340; + uint64_t x341; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x342; + uint64_t x343; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x344; + uint64_t x345; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x346; + uint64_t x347; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x348; + uint64_t x349; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x350; + uint64_t x351; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x352; + uint64_t x353; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x354; + uint64_t x355; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x356; + uint64_t x357; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x377; + uint64_t x378; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x379; + uint64_t x380; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x381; + uint64_t x382; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x383; + uint64_t x384; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x385; + uint64_t x386; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x387; + uint64_t x388; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x389; + uint64_t x390; + uint64_t x391; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x392; + uint64_t x393; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x394; + uint64_t x395; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x396; + uint64_t x397; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x398; + uint64_t x399; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x400; + uint64_t x401; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x402; + uint64_t x403; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x404; + uint64_t x405; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x406; + uint64_t x407; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x408; + uint64_t x409; + uint64_t x410; + uint64_t x411; + uint64_t x412; + uint64_t x413; + uint64_t x414; + uint64_t x415; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x416; + uint64_t x417; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x418; + uint64_t x419; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x420; + uint64_t x421; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x422; + uint64_t x423; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x424; + uint64_t x425; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x426; + uint64_t x427; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x428; + uint64_t x429; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x430; + uint64_t x431; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x451; + uint64_t x452; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x453; + uint64_t x454; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x455; + uint64_t x456; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x457; + uint64_t x458; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x459; + uint64_t x460; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x461; + uint64_t x462; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x463; + uint64_t x464; + uint64_t x465; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x466; + uint64_t x467; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x468; + uint64_t x469; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x470; + uint64_t x471; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x472; + uint64_t x473; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x474; + uint64_t x475; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x476; + uint64_t x477; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x478; + uint64_t x479; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x480; + uint64_t x481; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x482; + uint64_t x483; + uint64_t x484; + uint64_t x485; + uint64_t x486; + uint64_t x487; + uint64_t x488; + uint64_t x489; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x490; + uint64_t x491; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x492; + uint64_t x493; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x494; + uint64_t x495; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x496; + uint64_t x497; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x498; + uint64_t x499; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x500; + uint64_t x501; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x502; + uint64_t x503; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x504; + uint64_t x505; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x525; + uint64_t x526; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x527; + uint64_t x528; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x529; + uint64_t x530; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x531; + uint64_t x532; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x533; + uint64_t x534; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x535; + uint64_t x536; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x537; + uint64_t x538; + uint64_t x539; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x540; + uint64_t x541; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x542; + uint64_t x543; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x544; + uint64_t x545; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x546; + uint64_t x547; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x548; + uint64_t x549; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x550; + uint64_t x551; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x552; + uint64_t x553; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x554; + uint64_t x555; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x556; + uint64_t x557; + uint64_t x558; + uint64_t x559; + uint64_t x560; + uint64_t x561; + uint64_t x562; + uint64_t x563; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x564; + uint64_t x565; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x566; + uint64_t x567; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x568; + uint64_t x569; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x570; + uint64_t x571; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x572; + uint64_t x573; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x574; + uint64_t x575; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x576; + uint64_t x577; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x578; + uint64_t x579; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x580; + uint64_t x581; + uint64_t x582; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x583; + uint64_t x584; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x585; + uint64_t x586; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x587; + uint64_t x588; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x589; + uint64_t x590; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x591; + uint64_t x592; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x593; + uint64_t x594; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x595; + uint64_t x596; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x597; + uint64_t x598; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x599; + uint64_t x600; + uint64_t x601; + uint64_t x602; + uint64_t x603; + uint64_t x604; + uint64_t x605; + uint64_t x606; + uint64_t x607; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[0]); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x9, &x10, x8, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x11, &x12, x8, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x13, &x14, x8, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x15, &x16, x8, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x17, &x18, x8, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x19, &x20, x8, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x21, &x22, x8, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x23, &x24, x8, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x25, &x26, 0x0, + x24, x21); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x27, &x28, x26, + x22, x19); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x29, &x30, x28, + x20, x17); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x31, &x32, x30, + x18, x15); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x33, &x34, x32, + x16, x13); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x35, &x36, x34, + x14, x11); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x37, &x38, x36, + x12, x9); + x39 = (x38 + x10); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x40, &x41, x23, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x42, &x43, x40, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x44, &x45, x40, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x46, &x47, 0x0, + x23, x44); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x48, &x49, x47, + x25, x45); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x50, &x51, x49, + x27, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x52, &x53, x51, + x29, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x54, &x55, x53, + x31, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x56, &x57, x55, + x33, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x58, &x59, x57, + x35, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x60, &x61, x59, + x37, x42); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x62, &x63, x61, + x39, x43); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x64, &x65, x1, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x66, &x67, x1, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x68, &x69, x1, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x70, &x71, x1, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x72, &x73, x1, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x74, &x75, x1, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x76, &x77, x1, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x78, &x79, x1, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x80, &x81, 0x0, + x79, x76); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x82, &x83, x81, + x77, x74); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x84, &x85, x83, + x75, x72); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x86, &x87, x85, + x73, x70); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x88, &x89, x87, + x71, x68); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x90, &x91, x89, + x69, x66); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x92, &x93, x91, + x67, x64); + x94 = (x93 + x65); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x95, &x96, 0x0, + x48, x78); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x97, &x98, x96, + x50, x80); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x99, &x100, x98, + x52, x82); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x101, &x102, x100, + x54, x84); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x103, &x104, x102, + x56, x86); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x105, &x106, x104, + x58, x88); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x107, &x108, x106, + x60, x90); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x109, &x110, x108, + x62, x92); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x111, &x112, x110, + x63, x94); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x113, &x114, x95, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x115, &x116, x113, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x117, &x118, x113, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x119, &x120, 0x0, + x95, x117); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x121, &x122, x120, + x97, x118); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x123, &x124, x122, + x99, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x125, &x126, x124, + x101, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x127, &x128, x126, + x103, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x129, &x130, x128, + x105, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x131, &x132, x130, + x107, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x133, &x134, x132, + x109, x115); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x135, &x136, x134, + x111, x116); + x137 = ((uint64_t)x136 + x112); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x138, &x139, x2, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x140, &x141, x2, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x142, &x143, x2, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x144, &x145, x2, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x146, &x147, x2, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x148, &x149, x2, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x150, &x151, x2, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x152, &x153, x2, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x154, &x155, 0x0, + x153, x150); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x156, &x157, x155, + x151, x148); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x158, &x159, x157, + x149, x146); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x160, &x161, x159, + x147, x144); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x162, &x163, x161, + x145, x142); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x164, &x165, x163, + x143, x140); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x166, &x167, x165, + x141, x138); + x168 = (x167 + x139); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x169, &x170, 0x0, + x121, x152); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x171, &x172, x170, + x123, x154); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x173, &x174, x172, + x125, x156); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x175, &x176, x174, + x127, x158); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x177, &x178, x176, + x129, x160); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x179, &x180, x178, + x131, x162); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x181, &x182, x180, + x133, x164); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x183, &x184, x182, + x135, x166); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x185, &x186, x184, + x137, x168); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x187, &x188, x169, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x189, &x190, x187, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x191, &x192, x187, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x193, &x194, 0x0, + x169, x191); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x195, &x196, x194, + x171, x192); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x197, &x198, x196, + x173, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x199, &x200, x198, + x175, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x201, &x202, x200, + x177, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x203, &x204, x202, + x179, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x205, &x206, x204, + x181, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x207, &x208, x206, + x183, x189); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x209, &x210, x208, + x185, x190); + x211 = ((uint64_t)x210 + x186); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x212, &x213, x3, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x214, &x215, x3, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x216, &x217, x3, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x218, &x219, x3, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x220, &x221, x3, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x222, &x223, x3, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x224, &x225, x3, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x226, &x227, x3, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x228, &x229, 0x0, + x227, x224); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x230, &x231, x229, + x225, x222); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x232, &x233, x231, + x223, x220); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x234, &x235, x233, + x221, x218); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x236, &x237, x235, + x219, x216); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x238, &x239, x237, + x217, x214); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x240, &x241, x239, + x215, x212); + x242 = (x241 + x213); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x243, &x244, 0x0, + x195, x226); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x245, &x246, x244, + x197, x228); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x247, &x248, x246, + x199, x230); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x249, &x250, x248, + x201, x232); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x251, &x252, x250, + x203, x234); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x253, &x254, x252, + x205, x236); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x255, &x256, x254, + x207, x238); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x257, &x258, x256, + x209, x240); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x259, &x260, x258, + x211, x242); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x261, &x262, x243, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x263, &x264, x261, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x265, &x266, x261, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x267, &x268, 0x0, + x243, x265); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x269, &x270, x268, + x245, x266); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x271, &x272, x270, + x247, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x273, &x274, x272, + x249, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x275, &x276, x274, + x251, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x277, &x278, x276, + x253, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x279, &x280, x278, + x255, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x281, &x282, x280, + x257, x263); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x283, &x284, x282, + x259, x264); + x285 = ((uint64_t)x284 + x260); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x286, &x287, x4, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x288, &x289, x4, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x290, &x291, x4, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x292, &x293, x4, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x294, &x295, x4, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x296, &x297, x4, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x298, &x299, x4, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x300, &x301, x4, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x302, &x303, 0x0, + x301, x298); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x304, &x305, x303, + x299, x296); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x306, &x307, x305, + x297, x294); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x308, &x309, x307, + x295, x292); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x310, &x311, x309, + x293, x290); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x312, &x313, x311, + x291, x288); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x314, &x315, x313, + x289, x286); + x316 = (x315 + x287); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x317, &x318, 0x0, + x269, x300); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x319, &x320, x318, + x271, x302); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x321, &x322, x320, + x273, x304); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x323, &x324, x322, + x275, x306); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x325, &x326, x324, + x277, x308); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x327, &x328, x326, + x279, x310); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x329, &x330, x328, + x281, x312); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x331, &x332, x330, + x283, x314); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x333, &x334, x332, + x285, x316); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x335, &x336, x317, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x337, &x338, x335, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x339, &x340, x335, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x341, &x342, 0x0, + x317, x339); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x343, &x344, x342, + x319, x340); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x345, &x346, x344, + x321, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x347, &x348, x346, + x323, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x349, &x350, x348, + x325, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x351, &x352, x350, + x327, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x353, &x354, x352, + x329, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x355, &x356, x354, + x331, x337); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x357, &x358, x356, + x333, x338); + x359 = ((uint64_t)x358 + x334); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x360, &x361, x5, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x362, &x363, x5, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x364, &x365, x5, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x366, &x367, x5, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x368, &x369, x5, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x370, &x371, x5, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x372, &x373, x5, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x374, &x375, x5, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x376, &x377, 0x0, + x375, x372); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x378, &x379, x377, + x373, x370); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x380, &x381, x379, + x371, x368); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x382, &x383, x381, + x369, x366); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x384, &x385, x383, + x367, x364); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x386, &x387, x385, + x365, x362); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x388, &x389, x387, + x363, x360); + x390 = (x389 + x361); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x391, &x392, 0x0, + x343, x374); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x393, &x394, x392, + x345, x376); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x395, &x396, x394, + x347, x378); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x397, &x398, x396, + x349, x380); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x399, &x400, x398, + x351, x382); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x401, &x402, x400, + x353, x384); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x403, &x404, x402, + x355, x386); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x405, &x406, x404, + x357, x388); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x407, &x408, x406, + x359, x390); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x409, &x410, x391, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x411, &x412, x409, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x413, &x414, x409, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x415, &x416, 0x0, + x391, x413); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x417, &x418, x416, + x393, x414); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x419, &x420, x418, + x395, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x421, &x422, x420, + x397, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x423, &x424, x422, + x399, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x425, &x426, x424, + x401, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x427, &x428, x426, + x403, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x429, &x430, x428, + x405, x411); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x431, &x432, x430, + x407, x412); + x433 = ((uint64_t)x432 + x408); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x434, &x435, x6, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x436, &x437, x6, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x438, &x439, x6, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x440, &x441, x6, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x442, &x443, x6, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x444, &x445, x6, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x446, &x447, x6, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x448, &x449, x6, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x450, &x451, 0x0, + x449, x446); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x452, &x453, x451, + x447, x444); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x454, &x455, x453, + x445, x442); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x456, &x457, x455, + x443, x440); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x458, &x459, x457, + x441, x438); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x460, &x461, x459, + x439, x436); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x462, &x463, x461, + x437, x434); + x464 = (x463 + x435); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x465, &x466, 0x0, + x417, x448); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x467, &x468, x466, + x419, x450); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x469, &x470, x468, + x421, x452); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x471, &x472, x470, + x423, x454); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x473, &x474, x472, + x425, x456); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x475, &x476, x474, + x427, x458); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x477, &x478, x476, + x429, x460); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x479, &x480, x478, + x431, x462); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x481, &x482, x480, + x433, x464); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x483, &x484, x465, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x485, &x486, x483, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x487, &x488, x483, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x489, &x490, 0x0, + x465, x487); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x491, &x492, x490, + x467, x488); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x493, &x494, x492, + x469, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x495, &x496, x494, + x471, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x497, &x498, x496, + x473, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x499, &x500, x498, + x475, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x501, &x502, x500, + x477, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x503, &x504, x502, + x479, x485); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x505, &x506, x504, + x481, x486); + x507 = ((uint64_t)x506 + x482); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x508, &x509, x7, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x510, &x511, x7, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x512, &x513, x7, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x514, &x515, x7, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x516, &x517, x7, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x518, &x519, x7, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x520, &x521, x7, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x522, &x523, x7, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x524, &x525, 0x0, + x523, x520); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x526, &x527, x525, + x521, x518); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x528, &x529, x527, + x519, x516); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x530, &x531, x529, + x517, x514); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x532, &x533, x531, + x515, x512); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x534, &x535, x533, + x513, x510); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x536, &x537, x535, + x511, x508); + x538 = (x537 + x509); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x539, &x540, 0x0, + x491, x522); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x541, &x542, x540, + x493, x524); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x543, &x544, x542, + x495, x526); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x545, &x546, x544, + x497, x528); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x547, &x548, x546, + x499, x530); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x549, &x550, x548, + x501, x532); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x551, &x552, x550, + x503, x534); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x553, &x554, x552, + x505, x536); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x555, &x556, x554, + x507, x538); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x557, &x558, x539, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x559, &x560, x557, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x561, &x562, x557, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x563, &x564, 0x0, + x539, x561); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x565, &x566, x564, + x541, x562); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x567, &x568, x566, + x543, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x569, &x570, x568, + x545, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x571, &x572, x570, + x547, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x573, &x574, x572, + x549, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x575, &x576, x574, + x551, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x577, &x578, x576, + x553, x559); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x579, &x580, x578, + x555, x560); + x581 = ((uint64_t)x580 + x556); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x582, &x583, 0x0, x565, UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x584, &x585, x583, + x567, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x586, &x587, x585, + x569, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x588, &x589, x587, + x571, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x590, &x591, x589, + x573, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x592, &x593, x591, + x575, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x594, &x595, x593, + x577, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x596, &x597, x595, x579, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x598, &x599, x597, + x581, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x600, x599, x582, + x565); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x601, x599, x584, + x567); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x602, x599, x586, + x569); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x603, x599, x588, + x571); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x604, x599, x590, + x573); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x605, x599, x592, + x575); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x606, x599, x594, + x577); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x607, x599, x596, + x579); + out1[0] = x600; + out1[1] = x601; + out1[2] = x602; + out1[3] = x603; + out1[4] = x604; + out1[5] = x605; + out1[6] = x606; + out1[7] = x607; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_square squares a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_square( + uint64_t out1[8], const uint64_t arg1[8]) { + 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x26; + uint64_t x27; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x28; + uint64_t x29; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x30; + uint64_t x31; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x32; + uint64_t x33; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x34; + uint64_t x35; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x36; + uint64_t x37; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x47; + uint64_t x48; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x49; + uint64_t x50; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x51; + uint64_t x52; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x53; + uint64_t x54; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x55; + uint64_t x56; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x57; + uint64_t x58; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x59; + uint64_t x60; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x61; + uint64_t x62; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x81; + uint64_t x82; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x83; + uint64_t x84; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x85; + uint64_t x86; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x87; + uint64_t x88; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x89; + uint64_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x91; + uint64_t x92; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x93; + uint64_t x94; + uint64_t x95; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x96; + uint64_t x97; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x98; + uint64_t x99; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x100; + uint64_t x101; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x102; + uint64_t x103; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x104; + uint64_t x105; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x106; + uint64_t x107; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x108; + uint64_t x109; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x110; + uint64_t x111; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x112; + uint64_t x113; + uint64_t x114; + uint64_t x115; + uint64_t x116; + uint64_t x117; + uint64_t x118; + uint64_t x119; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x120; + uint64_t x121; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x122; + uint64_t x123; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x124; + uint64_t x125; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x126; + uint64_t x127; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x128; + uint64_t x129; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x130; + uint64_t x131; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x132; + uint64_t x133; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x134; + uint64_t x135; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x155; + uint64_t x156; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x157; + uint64_t x158; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x159; + uint64_t x160; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x161; + uint64_t x162; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x163; + uint64_t x164; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x165; + uint64_t x166; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x167; + uint64_t x168; + uint64_t x169; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x170; + uint64_t x171; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x172; + uint64_t x173; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x174; + uint64_t x175; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x176; + uint64_t x177; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x178; + uint64_t x179; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x180; + uint64_t x181; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x182; + uint64_t x183; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x184; + uint64_t x185; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x186; + uint64_t x187; + uint64_t x188; + uint64_t x189; + uint64_t x190; + uint64_t x191; + uint64_t x192; + uint64_t x193; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x194; + uint64_t x195; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x196; + uint64_t x197; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x198; + uint64_t x199; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x200; + uint64_t x201; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x202; + uint64_t x203; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x204; + uint64_t x205; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x206; + uint64_t x207; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x208; + uint64_t x209; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x229; + uint64_t x230; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x231; + uint64_t x232; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x233; + uint64_t x234; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x235; + uint64_t x236; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x237; + uint64_t x238; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x239; + uint64_t x240; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x241; + uint64_t x242; + uint64_t x243; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x244; + uint64_t x245; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x246; + uint64_t x247; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x248; + uint64_t x249; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x250; + uint64_t x251; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x252; + uint64_t x253; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x254; + uint64_t x255; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x256; + uint64_t x257; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x258; + uint64_t x259; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x260; + uint64_t x261; + uint64_t x262; + uint64_t x263; + uint64_t x264; + uint64_t x265; + uint64_t x266; + uint64_t x267; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x268; + uint64_t x269; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x270; + uint64_t x271; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x272; + uint64_t x273; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x274; + uint64_t x275; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x276; + uint64_t x277; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x278; + uint64_t x279; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x280; + uint64_t x281; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x282; + uint64_t x283; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x303; + uint64_t x304; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x305; + uint64_t x306; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x307; + uint64_t x308; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x309; + uint64_t x310; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x311; + uint64_t x312; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x313; + uint64_t x314; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x315; + uint64_t x316; + uint64_t x317; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x318; + uint64_t x319; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x320; + uint64_t x321; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x322; + uint64_t x323; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x324; + uint64_t x325; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x326; + uint64_t x327; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x328; + uint64_t x329; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x330; + uint64_t x331; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x332; + uint64_t x333; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x334; + uint64_t x335; + uint64_t x336; + uint64_t x337; + uint64_t x338; + uint64_t x339; + uint64_t x340; + uint64_t x341; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x342; + uint64_t x343; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x344; + uint64_t x345; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x346; + uint64_t x347; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x348; + uint64_t x349; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x350; + uint64_t x351; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x352; + uint64_t x353; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x354; + uint64_t x355; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x356; + uint64_t x357; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x377; + uint64_t x378; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x379; + uint64_t x380; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x381; + uint64_t x382; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x383; + uint64_t x384; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x385; + uint64_t x386; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x387; + uint64_t x388; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x389; + uint64_t x390; + uint64_t x391; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x392; + uint64_t x393; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x394; + uint64_t x395; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x396; + uint64_t x397; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x398; + uint64_t x399; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x400; + uint64_t x401; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x402; + uint64_t x403; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x404; + uint64_t x405; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x406; + uint64_t x407; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x408; + uint64_t x409; + uint64_t x410; + uint64_t x411; + uint64_t x412; + uint64_t x413; + uint64_t x414; + uint64_t x415; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x416; + uint64_t x417; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x418; + uint64_t x419; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x420; + uint64_t x421; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x422; + uint64_t x423; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x424; + uint64_t x425; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x426; + uint64_t x427; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x428; + uint64_t x429; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x430; + uint64_t x431; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x451; + uint64_t x452; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x453; + uint64_t x454; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x455; + uint64_t x456; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x457; + uint64_t x458; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x459; + uint64_t x460; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x461; + uint64_t x462; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x463; + uint64_t x464; + uint64_t x465; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x466; + uint64_t x467; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x468; + uint64_t x469; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x470; + uint64_t x471; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x472; + uint64_t x473; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x474; + uint64_t x475; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x476; + uint64_t x477; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x478; + uint64_t x479; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x480; + uint64_t x481; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x482; + uint64_t x483; + uint64_t x484; + uint64_t x485; + uint64_t x486; + uint64_t x487; + uint64_t x488; + uint64_t x489; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x490; + uint64_t x491; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x492; + uint64_t x493; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x494; + uint64_t x495; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x496; + uint64_t x497; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x498; + uint64_t x499; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x500; + uint64_t x501; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x502; + uint64_t x503; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x504; + uint64_t x505; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x525; + uint64_t x526; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x527; + uint64_t x528; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x529; + uint64_t x530; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x531; + uint64_t x532; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x533; + uint64_t x534; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x535; + uint64_t x536; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x537; + uint64_t x538; + uint64_t x539; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x540; + uint64_t x541; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x542; + uint64_t x543; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x544; + uint64_t x545; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x546; + uint64_t x547; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x548; + uint64_t x549; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x550; + uint64_t x551; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x552; + uint64_t x553; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x554; + uint64_t x555; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x556; + uint64_t x557; + uint64_t x558; + uint64_t x559; + uint64_t x560; + uint64_t x561; + uint64_t x562; + uint64_t x563; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x564; + uint64_t x565; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x566; + uint64_t x567; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x568; + uint64_t x569; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x570; + uint64_t x571; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x572; + uint64_t x573; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x574; + uint64_t x575; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x576; + uint64_t x577; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x578; + uint64_t x579; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x580; + uint64_t x581; + uint64_t x582; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x583; + uint64_t x584; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x585; + uint64_t x586; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x587; + uint64_t x588; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x589; + uint64_t x590; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x591; + uint64_t x592; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x593; + uint64_t x594; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x595; + uint64_t x596; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x597; + uint64_t x598; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x599; + uint64_t x600; + uint64_t x601; + uint64_t x602; + uint64_t x603; + uint64_t x604; + uint64_t x605; + uint64_t x606; + uint64_t x607; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[0]); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x9, &x10, x8, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x11, &x12, x8, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x13, &x14, x8, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x15, &x16, x8, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x17, &x18, x8, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x19, &x20, x8, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x21, &x22, x8, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x23, &x24, x8, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x25, &x26, 0x0, + x24, x21); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x27, &x28, x26, + x22, x19); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x29, &x30, x28, + x20, x17); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x31, &x32, x30, + x18, x15); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x33, &x34, x32, + x16, x13); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x35, &x36, x34, + x14, x11); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x37, &x38, x36, + x12, x9); + x39 = (x38 + x10); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x40, &x41, x23, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x42, &x43, x40, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x44, &x45, x40, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x46, &x47, 0x0, + x23, x44); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x48, &x49, x47, + x25, x45); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x50, &x51, x49, + x27, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x52, &x53, x51, + x29, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x54, &x55, x53, + x31, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x56, &x57, x55, + x33, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x58, &x59, x57, + x35, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x60, &x61, x59, + x37, x42); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x62, &x63, x61, + x39, x43); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x64, &x65, x1, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x66, &x67, x1, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x68, &x69, x1, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x70, &x71, x1, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x72, &x73, x1, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x74, &x75, x1, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x76, &x77, x1, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x78, &x79, x1, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x80, &x81, 0x0, + x79, x76); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x82, &x83, x81, + x77, x74); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x84, &x85, x83, + x75, x72); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x86, &x87, x85, + x73, x70); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x88, &x89, x87, + x71, x68); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x90, &x91, x89, + x69, x66); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x92, &x93, x91, + x67, x64); + x94 = (x93 + x65); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x95, &x96, 0x0, + x48, x78); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x97, &x98, x96, + x50, x80); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x99, &x100, x98, + x52, x82); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x101, &x102, x100, + x54, x84); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x103, &x104, x102, + x56, x86); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x105, &x106, x104, + x58, x88); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x107, &x108, x106, + x60, x90); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x109, &x110, x108, + x62, x92); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x111, &x112, x110, + x63, x94); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x113, &x114, x95, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x115, &x116, x113, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x117, &x118, x113, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x119, &x120, 0x0, + x95, x117); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x121, &x122, x120, + x97, x118); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x123, &x124, x122, + x99, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x125, &x126, x124, + x101, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x127, &x128, x126, + x103, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x129, &x130, x128, + x105, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x131, &x132, x130, + x107, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x133, &x134, x132, + x109, x115); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x135, &x136, x134, + x111, x116); + x137 = ((uint64_t)x136 + x112); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x138, &x139, x2, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x140, &x141, x2, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x142, &x143, x2, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x144, &x145, x2, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x146, &x147, x2, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x148, &x149, x2, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x150, &x151, x2, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x152, &x153, x2, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x154, &x155, 0x0, + x153, x150); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x156, &x157, x155, + x151, x148); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x158, &x159, x157, + x149, x146); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x160, &x161, x159, + x147, x144); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x162, &x163, x161, + x145, x142); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x164, &x165, x163, + x143, x140); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x166, &x167, x165, + x141, x138); + x168 = (x167 + x139); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x169, &x170, 0x0, + x121, x152); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x171, &x172, x170, + x123, x154); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x173, &x174, x172, + x125, x156); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x175, &x176, x174, + x127, x158); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x177, &x178, x176, + x129, x160); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x179, &x180, x178, + x131, x162); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x181, &x182, x180, + x133, x164); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x183, &x184, x182, + x135, x166); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x185, &x186, x184, + x137, x168); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x187, &x188, x169, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x189, &x190, x187, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x191, &x192, x187, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x193, &x194, 0x0, + x169, x191); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x195, &x196, x194, + x171, x192); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x197, &x198, x196, + x173, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x199, &x200, x198, + x175, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x201, &x202, x200, + x177, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x203, &x204, x202, + x179, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x205, &x206, x204, + x181, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x207, &x208, x206, + x183, x189); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x209, &x210, x208, + x185, x190); + x211 = ((uint64_t)x210 + x186); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x212, &x213, x3, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x214, &x215, x3, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x216, &x217, x3, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x218, &x219, x3, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x220, &x221, x3, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x222, &x223, x3, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x224, &x225, x3, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x226, &x227, x3, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x228, &x229, 0x0, + x227, x224); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x230, &x231, x229, + x225, x222); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x232, &x233, x231, + x223, x220); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x234, &x235, x233, + x221, x218); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x236, &x237, x235, + x219, x216); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x238, &x239, x237, + x217, x214); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x240, &x241, x239, + x215, x212); + x242 = (x241 + x213); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x243, &x244, 0x0, + x195, x226); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x245, &x246, x244, + x197, x228); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x247, &x248, x246, + x199, x230); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x249, &x250, x248, + x201, x232); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x251, &x252, x250, + x203, x234); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x253, &x254, x252, + x205, x236); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x255, &x256, x254, + x207, x238); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x257, &x258, x256, + x209, x240); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x259, &x260, x258, + x211, x242); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x261, &x262, x243, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x263, &x264, x261, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x265, &x266, x261, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x267, &x268, 0x0, + x243, x265); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x269, &x270, x268, + x245, x266); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x271, &x272, x270, + x247, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x273, &x274, x272, + x249, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x275, &x276, x274, + x251, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x277, &x278, x276, + x253, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x279, &x280, x278, + x255, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x281, &x282, x280, + x257, x263); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x283, &x284, x282, + x259, x264); + x285 = ((uint64_t)x284 + x260); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x286, &x287, x4, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x288, &x289, x4, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x290, &x291, x4, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x292, &x293, x4, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x294, &x295, x4, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x296, &x297, x4, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x298, &x299, x4, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x300, &x301, x4, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x302, &x303, 0x0, + x301, x298); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x304, &x305, x303, + x299, x296); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x306, &x307, x305, + x297, x294); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x308, &x309, x307, + x295, x292); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x310, &x311, x309, + x293, x290); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x312, &x313, x311, + x291, x288); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x314, &x315, x313, + x289, x286); + x316 = (x315 + x287); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x317, &x318, 0x0, + x269, x300); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x319, &x320, x318, + x271, x302); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x321, &x322, x320, + x273, x304); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x323, &x324, x322, + x275, x306); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x325, &x326, x324, + x277, x308); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x327, &x328, x326, + x279, x310); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x329, &x330, x328, + x281, x312); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x331, &x332, x330, + x283, x314); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x333, &x334, x332, + x285, x316); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x335, &x336, x317, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x337, &x338, x335, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x339, &x340, x335, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x341, &x342, 0x0, + x317, x339); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x343, &x344, x342, + x319, x340); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x345, &x346, x344, + x321, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x347, &x348, x346, + x323, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x349, &x350, x348, + x325, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x351, &x352, x350, + x327, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x353, &x354, x352, + x329, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x355, &x356, x354, + x331, x337); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x357, &x358, x356, + x333, x338); + x359 = ((uint64_t)x358 + x334); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x360, &x361, x5, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x362, &x363, x5, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x364, &x365, x5, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x366, &x367, x5, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x368, &x369, x5, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x370, &x371, x5, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x372, &x373, x5, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x374, &x375, x5, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x376, &x377, 0x0, + x375, x372); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x378, &x379, x377, + x373, x370); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x380, &x381, x379, + x371, x368); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x382, &x383, x381, + x369, x366); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x384, &x385, x383, + x367, x364); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x386, &x387, x385, + x365, x362); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x388, &x389, x387, + x363, x360); + x390 = (x389 + x361); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x391, &x392, 0x0, + x343, x374); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x393, &x394, x392, + x345, x376); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x395, &x396, x394, + x347, x378); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x397, &x398, x396, + x349, x380); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x399, &x400, x398, + x351, x382); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x401, &x402, x400, + x353, x384); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x403, &x404, x402, + x355, x386); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x405, &x406, x404, + x357, x388); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x407, &x408, x406, + x359, x390); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x409, &x410, x391, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x411, &x412, x409, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x413, &x414, x409, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x415, &x416, 0x0, + x391, x413); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x417, &x418, x416, + x393, x414); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x419, &x420, x418, + x395, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x421, &x422, x420, + x397, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x423, &x424, x422, + x399, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x425, &x426, x424, + x401, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x427, &x428, x426, + x403, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x429, &x430, x428, + x405, x411); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x431, &x432, x430, + x407, x412); + x433 = ((uint64_t)x432 + x408); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x434, &x435, x6, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x436, &x437, x6, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x438, &x439, x6, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x440, &x441, x6, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x442, &x443, x6, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x444, &x445, x6, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x446, &x447, x6, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x448, &x449, x6, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x450, &x451, 0x0, + x449, x446); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x452, &x453, x451, + x447, x444); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x454, &x455, x453, + x445, x442); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x456, &x457, x455, + x443, x440); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x458, &x459, x457, + x441, x438); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x460, &x461, x459, + x439, x436); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x462, &x463, x461, + x437, x434); + x464 = (x463 + x435); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x465, &x466, 0x0, + x417, x448); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x467, &x468, x466, + x419, x450); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x469, &x470, x468, + x421, x452); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x471, &x472, x470, + x423, x454); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x473, &x474, x472, + x425, x456); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x475, &x476, x474, + x427, x458); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x477, &x478, x476, + x429, x460); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x479, &x480, x478, + x431, x462); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x481, &x482, x480, + x433, x464); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x483, &x484, x465, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x485, &x486, x483, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x487, &x488, x483, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x489, &x490, 0x0, + x465, x487); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x491, &x492, x490, + x467, x488); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x493, &x494, x492, + x469, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x495, &x496, x494, + x471, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x497, &x498, x496, + x473, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x499, &x500, x498, + x475, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x501, &x502, x500, + x477, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x503, &x504, x502, + x479, x485); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x505, &x506, x504, + x481, x486); + x507 = ((uint64_t)x506 + x482); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x508, &x509, x7, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x510, &x511, x7, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x512, &x513, x7, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x514, &x515, x7, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x516, &x517, x7, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x518, &x519, x7, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x520, &x521, x7, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x522, &x523, x7, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x524, &x525, 0x0, + x523, x520); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x526, &x527, x525, + x521, x518); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x528, &x529, x527, + x519, x516); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x530, &x531, x529, + x517, x514); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x532, &x533, x531, + x515, x512); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x534, &x535, x533, + x513, x510); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x536, &x537, x535, + x511, x508); + x538 = (x537 + x509); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x539, &x540, 0x0, + x491, x522); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x541, &x542, x540, + x493, x524); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x543, &x544, x542, + x495, x526); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x545, &x546, x544, + x497, x528); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x547, &x548, x546, + x499, x530); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x549, &x550, x548, + x501, x532); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x551, &x552, x550, + x503, x534); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x553, &x554, x552, + x505, x536); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x555, &x556, x554, + x507, x538); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x557, &x558, x539, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x559, &x560, x557, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x561, &x562, x557, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x563, &x564, 0x0, + x539, x561); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x565, &x566, x564, + x541, x562); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x567, &x568, x566, + x543, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x569, &x570, x568, + x545, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x571, &x572, x570, + x547, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x573, &x574, x572, + x549, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x575, &x576, x574, + x551, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x577, &x578, x576, + x553, x559); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x579, &x580, x578, + x555, x560); + x581 = ((uint64_t)x580 + x556); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x582, &x583, 0x0, x565, UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x584, &x585, x583, + x567, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x586, &x587, x585, + x569, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x588, &x589, x587, + x571, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x590, &x591, x589, + x573, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x592, &x593, x591, + x575, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x594, &x595, x593, + x577, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x596, &x597, x595, x579, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x598, &x599, x597, + x581, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x600, x599, x582, + x565); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x601, x599, x584, + x567); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x602, x599, x586, + x569); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x603, x599, x588, + x571); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x604, x599, x590, + x573); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x605, x599, x592, + x575); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x606, x599, x594, + x577); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x607, x599, x596, + x579); + out1[0] = x600; + out1[1] = x601; + out1[2] = x602; + out1[3] = x603; + out1[4] = x604; + out1[5] = x605; + out1[6] = x606; + out1[7] = x607; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_add adds two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_add( + uint64_t out1[8], const uint64_t arg1[8], const uint64_t arg2[8]) { + uint64_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2; + uint64_t x3; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x4; + uint64_t x5; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x6; + uint64_t x7; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x8; + uint64_t x9; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x10; + uint64_t x11; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x12; + uint64_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x14; + uint64_t x15; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x16; + uint64_t x17; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x18; + uint64_t x19; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x20; + uint64_t x21; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x22; + uint64_t x23; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x24; + uint64_t x25; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x26; + uint64_t x27; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x28; + uint64_t x29; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x30; + uint64_t x31; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x32; + uint64_t x33; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x9, &x10, x8, (arg1[4]), (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x11, &x12, x10, (arg1[5]), (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x13, &x14, x12, (arg1[6]), (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x15, &x16, x14, (arg1[7]), (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x17, &x18, 0x0, + x1, UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x19, &x20, x18, + x3, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x21, &x22, x20, + x5, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x23, &x24, x22, + x7, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x25, &x26, x24, + x9, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x27, &x28, x26, + x11, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x29, &x30, x28, + x13, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x31, &x32, x30, x15, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x33, &x34, x32, + x16, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x35, x34, x17, x1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x36, x34, x19, x3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x37, x34, x21, x5); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x38, x34, x23, x7); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x39, x34, x25, x9); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x40, x34, x27, x11); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x41, x34, x29, x13); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x42, x34, x31, x15); + out1[0] = x35; + out1[1] = x36; + out1[2] = x37; + out1[3] = x38; + out1[4] = x39; + out1[5] = x40; + out1[6] = x41; + out1[7] = x42; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_sub subtracts two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * arg2: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_sub( + uint64_t out1[8], const uint64_t arg1[8], const uint64_t arg2[8]) { + uint64_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2; + uint64_t x3; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x4; + uint64_t x5; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x6; + uint64_t x7; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x8; + uint64_t x9; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x10; + uint64_t x11; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x12; + uint64_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x14; + uint64_t x15; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x16; + uint64_t x17; + uint64_t x18; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x19; + uint64_t x20; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x21; + uint64_t x22; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x23; + uint64_t x24; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x25; + uint64_t x26; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x27; + uint64_t x28; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x29; + uint64_t x30; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x31; + uint64_t x32; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x33; + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x9, &x10, x8, (arg1[4]), (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x11, &x12, x10, (arg1[5]), (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x13, &x14, x12, (arg1[6]), (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x15, &x16, x14, (arg1[7]), (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64( + &x17, x16, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x18, &x19, 0x0, x1, (x17 & UINT8_C(0x6f))); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x20, &x21, x19, x3, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x22, &x23, x21, x5, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x24, &x25, x23, x7, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x26, &x27, x25, x9, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x28, &x29, x27, + x11, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x30, &x31, x29, + x13, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x32, &x33, x31, x15, (x17 & UINT64_C(0x8000000000000000))); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x24; + out1[4] = x26; + out1[5] = x28; + out1[6] = x30; + out1[7] = x32; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_opp negates a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_opp( + uint64_t out1[8], const uint64_t arg1[8]) { + uint64_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2; + uint64_t x3; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x4; + uint64_t x5; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x6; + uint64_t x7; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x8; + uint64_t x9; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x10; + uint64_t x11; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x12; + uint64_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x14; + uint64_t x15; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x16; + uint64_t x17; + uint64_t x18; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x19; + uint64_t x20; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x21; + uint64_t x22; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x23; + uint64_t x24; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x25; + uint64_t x26; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x27; + uint64_t x28; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x29; + uint64_t x30; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x31; + uint64_t x32; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x33; + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x1, &x2, 0x0, 0x0, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x3, &x4, x2, 0x0, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x5, &x6, x4, 0x0, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x7, &x8, x6, 0x0, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x9, &x10, x8, 0x0, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x11, &x12, x10, + 0x0, (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x13, &x14, x12, + 0x0, (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x15, &x16, x14, + 0x0, (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64( + &x17, x16, 0x0, UINT64_C(0xffffffffffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x18, &x19, 0x0, x1, (x17 & UINT8_C(0x6f))); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x20, &x21, x19, x3, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x22, &x23, x21, x5, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x24, &x25, x23, x7, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x26, &x27, x25, x9, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x28, &x29, x27, + x11, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x30, &x31, x29, + x13, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x32, &x33, x31, x15, (x17 & UINT64_C(0x8000000000000000))); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x24; + out1[4] = x26; + out1[5] = x28; + out1[6] = x30; + out1[7] = x32; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery translates a field element out of the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval out1 mod m = (eval arg1 * ((2^64)⁻¹ mod m)^8) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery( + uint64_t out1[8], const uint64_t arg1[8]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x9; + uint64_t x10; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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_paramSetB_uint1 x19; + uint64_t x20; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x21; + uint64_t x22; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x23; + uint64_t x24; + uint64_t x25; + uint64_t x26; + uint64_t x27; + uint64_t x28; + uint64_t x29; + uint64_t x30; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x31; + uint64_t x32; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x33; + uint64_t x34; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x35; + uint64_t x36; + uint64_t x37; + uint64_t x38; + uint64_t x39; + uint64_t x40; + uint64_t x41; + uint64_t x42; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x43; + uint64_t x44; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x45; + uint64_t x46; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x47; + uint64_t x48; + uint64_t x49; + uint64_t x50; + uint64_t x51; + uint64_t x52; + uint64_t x53; + uint64_t x54; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x55; + uint64_t x56; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x57; + uint64_t x58; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x59; + uint64_t x60; + uint64_t x61; + uint64_t x62; + uint64_t x63; + uint64_t x64; + uint64_t x65; + uint64_t x66; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x67; + uint64_t x68; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x69; + uint64_t x70; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x71; + uint64_t x72; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x73; + uint64_t x74; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x75; + uint64_t x76; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x77; + uint64_t x78; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x79; + uint64_t x80; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x81; + uint64_t x82; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x83; + uint64_t x84; + uint64_t x85; + uint64_t x86; + uint64_t x87; + uint64_t x88; + uint64_t x89; + uint64_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x91; + uint64_t x92; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x93; + uint64_t x94; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x95; + uint64_t x96; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x97; + uint64_t x98; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x99; + uint64_t x100; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x101; + uint64_t x102; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x103; + uint64_t x104; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x105; + uint64_t x106; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x107; + uint64_t x108; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x109; + uint64_t x110; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x111; + uint64_t x112; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x113; + uint64_t x114; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x115; + uint64_t x116; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x117; + uint64_t x118; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x119; + uint64_t x120; + uint64_t x121; + uint64_t x122; + uint64_t x123; + uint64_t x124; + uint64_t x125; + uint64_t x126; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x127; + uint64_t x128; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x129; + uint64_t x130; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x131; + uint64_t x132; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x133; + uint64_t x134; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x135; + uint64_t x136; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x137; + uint64_t x138; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x139; + uint64_t x140; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x141; + uint64_t x142; + uint64_t x143; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x144; + uint64_t x145; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x146; + uint64_t x147; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x148; + uint64_t x149; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x150; + uint64_t x151; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x152; + uint64_t x153; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x154; + uint64_t x155; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x156; + uint64_t x157; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x158; + uint64_t x159; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + x1 = (arg1[0]); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x2, &x3, x1, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x4, &x5, x2, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x6, &x7, x2, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x8, &x9, 0x0, x1, + x6); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x10, &x11, 0x0, (x9 + x7), (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x12, &x13, x10, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x14, &x15, x12, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x16, &x17, x12, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x18, &x19, 0x0, x5, + x14); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x20, &x21, 0x0, + x10, x16); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x22, &x23, 0x0, (((uint64_t)x21 + x11) + x17), (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x24, &x25, x22, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x26, &x27, x24, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x28, &x29, x24, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x30, &x31, 0x0, + (x19 + x15), x26); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x32, &x33, 0x0, + x22, x28); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x34, &x35, 0x0, (((uint64_t)x33 + x23) + x29), (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x36, &x37, x34, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x38, &x39, x36, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x40, &x41, x36, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x42, &x43, 0x0, + (x31 + x27), x38); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x44, &x45, 0x0, + x34, x40); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x46, &x47, 0x0, (((uint64_t)x45 + x35) + x41), (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x48, &x49, x46, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x50, &x51, x48, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x52, &x53, x48, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x54, &x55, 0x0, + (x43 + x39), x50); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x56, &x57, 0x0, + x46, x52); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x58, &x59, 0x0, (((uint64_t)x57 + x47) + x53), (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x60, &x61, x58, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x62, &x63, x60, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x64, &x65, x60, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x66, &x67, 0x0, + (x55 + x51), x62); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x68, &x69, 0x0, + x58, x64); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x70, &x71, 0x0, (((uint64_t)x69 + x59) + x65), (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x72, &x73, x71, x4, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x74, &x75, x73, + x18, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x76, &x77, x75, + x30, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x78, &x79, x77, + x42, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x80, &x81, x79, + x54, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x82, &x83, x81, + x66, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x84, &x85, x70, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x86, &x87, x84, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x88, &x89, x84, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x90, &x91, 0x0, + x70, x88); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x92, &x93, x91, + x72, x89); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x94, &x95, x93, + x74, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x96, &x97, x95, + x76, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x98, &x99, x97, + x78, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x100, &x101, x99, + x80, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x102, &x103, x101, + x82, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x104, &x105, x103, (x83 + (x67 + x63)), x86); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x106, &x107, 0x0, + x92, (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x108, &x109, x107, + x94, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x110, &x111, x109, + x96, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x112, &x113, x111, + x98, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x114, &x115, x113, + x100, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x116, &x117, x115, + x102, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x118, &x119, x117, + x104, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x120, &x121, x106, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x122, &x123, x120, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x124, &x125, x120, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x126, &x127, 0x0, + x106, x124); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x128, &x129, x127, + x108, x125); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x130, &x131, x129, + x110, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x132, &x133, x131, + x112, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x134, &x135, x133, + x114, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x136, &x137, x135, + x116, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x138, &x139, x137, + x118, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x140, &x141, x139, (x119 + (x105 + x87)), x122); + x142 = (x141 + x123); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x143, &x144, 0x0, x128, UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x145, &x146, x144, + x130, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x147, &x148, x146, + x132, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x149, &x150, x148, + x134, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x151, &x152, x150, + x136, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x153, &x154, x152, + x138, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x155, &x156, x154, + x140, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x157, &x158, x156, x142, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x159, &x160, x158, + 0x0, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x161, x160, x143, + x128); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x162, x160, x145, + x130); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x163, x160, x147, + x132); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x164, x160, x149, + x134); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x165, x160, x151, + x136); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x166, x160, x153, + x138); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x167, x160, x155, + x140); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x168, x160, x157, + x142); + out1[0] = x161; + out1[1] = x162; + out1[2] = x163; + out1[3] = x164; + out1[4] = x165; + out1[5] = x166; + out1[6] = x167; + out1[7] = x168; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery translates a field element into the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = eval arg1 mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery( + uint64_t out1[8], const uint64_t arg1[8]) { + 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x12; + uint64_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x14; + uint64_t x15; + uint64_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x22; + uint64_t x23; + uint64_t x24; + uint64_t x25; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x26; + uint64_t x27; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x28; + uint64_t x29; + uint64_t x30; + uint64_t x31; + uint64_t x32; + uint64_t x33; + uint64_t x34; + uint64_t x35; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x36; + uint64_t x37; + uint64_t x38; + uint64_t x39; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x40; + uint64_t x41; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x42; + uint64_t x43; + uint64_t x44; + uint64_t x45; + uint64_t x46; + uint64_t x47; + uint64_t x48; + uint64_t x49; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x50; + uint64_t x51; + uint64_t x52; + uint64_t x53; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x54; + uint64_t x55; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x56; + uint64_t x57; + uint64_t x58; + uint64_t x59; + uint64_t x60; + uint64_t x61; + uint64_t x62; + uint64_t x63; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x64; + uint64_t x65; + uint64_t x66; + uint64_t x67; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x68; + uint64_t x69; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x70; + uint64_t x71; + uint64_t x72; + uint64_t x73; + uint64_t x74; + uint64_t x75; + uint64_t x76; + uint64_t x77; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x78; + uint64_t x79; + uint64_t x80; + uint64_t x81; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x82; + uint64_t x83; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x84; + uint64_t x85; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x86; + uint64_t x87; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x88; + uint64_t x89; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x90; + uint64_t x91; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x92; + uint64_t x93; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x94; + uint64_t x95; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x96; + uint64_t x97; + uint64_t x98; + uint64_t x99; + uint64_t x100; + uint64_t x101; + uint64_t x102; + uint64_t x103; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x104; + uint64_t x105; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x106; + uint64_t x107; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x108; + uint64_t x109; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x110; + uint64_t x111; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x112; + uint64_t x113; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x114; + uint64_t x115; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x116; + uint64_t x117; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x118; + uint64_t x119; + uint64_t x120; + uint64_t x121; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x122; + uint64_t x123; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x124; + uint64_t x125; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x126; + uint64_t x127; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x128; + uint64_t x129; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x130; + uint64_t x131; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x132; + uint64_t x133; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x134; + uint64_t x135; + uint64_t x136; + uint64_t x137; + uint64_t x138; + uint64_t x139; + uint64_t x140; + uint64_t x141; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x142; + uint64_t x143; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x144; + uint64_t x145; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x146; + uint64_t x147; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x148; + uint64_t x149; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x150; + uint64_t x151; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x152; + uint64_t x153; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x154; + uint64_t x155; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x156; + uint64_t x157; + uint64_t x158; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x159; + uint64_t x160; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x161; + uint64_t x162; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x163; + uint64_t x164; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x165; + uint64_t x166; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x167; + uint64_t x168; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x169; + uint64_t x170; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x171; + uint64_t x172; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x173; + uint64_t x174; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x1, &x2, (arg1[0]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x3, &x4, x1, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x5, &x6, x3, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x7, &x8, x3, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x9, &x10, (arg1[1]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x11, &x12, 0x0, x1, + x7); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x13, &x14, 0x0, ((x12 + x2) + x8), x9); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x15, &x16, x13, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x17, &x18, x15, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x19, &x20, x15, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x21, &x22, 0x0, x6, + x17); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x23, &x24, (arg1[2]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x25, &x26, 0x0, + x13, x19); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x27, &x28, 0x0, ((x26 + (x14 + x10)) + x20), x23); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x29, &x30, x27, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x31, &x32, x29, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x33, &x34, x29, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x35, &x36, 0x0, + (x22 + x18), x31); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x37, &x38, (arg1[3]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x39, &x40, 0x0, + x27, x33); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x41, &x42, 0x0, ((x40 + (x28 + x24)) + x34), x37); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x43, &x44, x41, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x45, &x46, x43, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x47, &x48, x43, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x49, &x50, 0x0, + (x36 + x32), x45); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x51, &x52, (arg1[4]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x53, &x54, 0x0, + x41, x47); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x55, &x56, 0x0, ((x54 + (x42 + x38)) + x48), x51); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x57, &x58, x55, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x59, &x60, x57, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x61, &x62, x57, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x63, &x64, 0x0, + (x50 + x46), x59); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x65, &x66, (arg1[5]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x67, &x68, 0x0, + x55, x61); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x69, &x70, 0x0, ((x68 + (x56 + x52)) + x62), x65); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x71, &x72, x69, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x73, &x74, x71, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x75, &x76, x71, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x77, &x78, 0x0, + (x64 + x60), x73); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x79, &x80, (arg1[6]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x81, &x82, 0x0, + x69, x75); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x83, &x84, 0x0, ((x82 + (x70 + x66)) + x76), x79); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x85, &x86, x84, x5, + x80); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x87, &x88, x86, + x21, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x89, &x90, x88, + x35, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x91, &x92, x90, + x49, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x93, &x94, x92, + x63, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x95, &x96, x94, + x77, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x97, &x98, x83, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x99, &x100, x97, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x101, &x102, x97, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x103, &x104, 0x0, + x83, x101); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x105, &x106, x104, + x85, x102); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x107, &x108, x106, + x87, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x109, &x110, x108, + x89, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x111, &x112, x110, + x91, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x113, &x114, x112, + x93, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x115, &x116, x114, + x95, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x117, &x118, x116, (x96 + (x78 + x74)), x99); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x119, &x120, (arg1[7]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x121, &x122, 0x0, + x105, x119); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x123, &x124, x122, + x107, x120); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x125, &x126, x124, + x109, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x127, &x128, x126, + x111, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x129, &x130, x128, + x113, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x131, &x132, x130, + x115, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x133, &x134, x132, + x117, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x135, &x136, x121, UINT64_C(0x4e6a171024e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64( + &x137, &x138, x135, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u64(&x139, &x140, x135, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x141, &x142, 0x0, + x121, x139); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x143, &x144, x142, + x123, x140); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x145, &x146, x144, + x125, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x147, &x148, x146, + x127, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x149, &x150, x148, + x129, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x151, &x152, x150, + x131, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64(&x153, &x154, x152, + x133, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u64( + &x155, &x156, x154, (x134 + (x118 + x100)), x137); + x157 = (x156 + x138); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x158, &x159, 0x0, x143, UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x160, &x161, x159, + x145, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x162, &x163, x161, + x147, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x164, &x165, x163, + x149, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x166, &x167, x165, + x151, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x168, &x169, x167, + x153, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x170, &x171, x169, + x155, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64( + &x172, &x173, x171, x157, UINT64_C(0x8000000000000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u64(&x174, &x175, x173, + 0x0, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x176, x175, x158, + x143); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x177, x175, x160, + x145); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x178, x175, x162, + x147); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x179, x175, x164, + x149); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x180, x175, x166, + x151); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x181, x175, x168, + x153); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x182, x175, x170, + x155); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x183, x175, x172, + x157); + out1[0] = x176; + out1[1] = x177; + out1[2] = x178; + out1[3] = x179; + out1[4] = x180; + out1[5] = x181; + out1[6] = x182; + out1[7] = x183; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0 + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * Output Bounds: + * out1: [0x0 ~> 0xffffffffffffffff] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_nonzero( + uint64_t *out1, const uint64_t arg1[8]) { + uint64_t x1; + x1 = ((arg1[0]) | + ((arg1[1]) | + ((arg1[2]) | + ((arg1[3]) | + ((arg1[4]) | + ((arg1[5]) | ((arg1[6]) | ((arg1[7]) | (uint64_t)0x0)))))))); + *out1 = x1; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_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]] + * arg3: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz( + uint64_t out1[8], fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 arg1, + const uint64_t arg2[8], const uint64_t arg3[8]) { + uint64_t x1; + uint64_t x2; + uint64_t x3; + uint64_t x4; + uint64_t x5; + uint64_t x6; + uint64_t x7; + uint64_t x8; + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x1, arg1, (arg2[0]), + (arg3[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x2, arg1, (arg2[1]), + (arg3[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x3, arg1, (arg2[2]), + (arg3[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x4, arg1, (arg2[3]), + (arg3[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x5, arg1, (arg2[4]), + (arg3[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x6, arg1, (arg2[5]), + (arg3[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x7, arg1, (arg2[6]), + (arg3[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u64(&x8, arg1, (arg2[7]), + (arg3[7])); + out1[0] = x1; + out1[1] = x2; + out1[2] = x3; + out1[3] = x4; + out1[4] = x5; + out1[5] = x6; + out1[6] = x7; + out1[7] = x8; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..63] + * + * Input Bounds: + * arg1: [[0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + * 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_paramSetB_to_bytes( + uint8_t out1[64], const uint64_t arg1[8]) { + 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; + uint8_t x10; + uint64_t x11; + uint8_t x12; + uint64_t x13; + uint8_t x14; + uint64_t x15; + uint8_t x16; + uint64_t x17; + uint8_t x18; + uint64_t x19; + uint8_t x20; + uint8_t x21; + uint8_t x22; + uint8_t x23; + uint64_t x24; + uint8_t x25; + uint64_t x26; + uint8_t x27; + uint64_t x28; + uint8_t x29; + uint64_t x30; + uint8_t x31; + uint64_t x32; + uint8_t x33; + uint64_t x34; + uint8_t x35; + uint8_t x36; + uint8_t x37; + uint8_t x38; + uint64_t x39; + uint8_t x40; + uint64_t x41; + uint8_t x42; + uint64_t x43; + uint8_t x44; + uint64_t x45; + uint8_t x46; + uint64_t x47; + uint8_t x48; + uint64_t x49; + uint8_t x50; + uint8_t x51; + uint8_t x52; + uint8_t x53; + uint64_t x54; + uint8_t x55; + uint64_t x56; + uint8_t x57; + uint64_t x58; + uint8_t x59; + uint64_t x60; + uint8_t x61; + uint64_t x62; + uint8_t x63; + uint64_t x64; + uint8_t x65; + uint8_t x66; + uint8_t x67; + uint8_t x68; + uint64_t x69; + uint8_t x70; + uint64_t x71; + uint8_t x72; + uint64_t x73; + uint8_t x74; + uint64_t x75; + uint8_t x76; + uint64_t x77; + uint8_t x78; + uint64_t x79; + uint8_t x80; + uint8_t x81; + uint8_t x82; + uint8_t x83; + uint64_t x84; + uint8_t x85; + uint64_t x86; + uint8_t x87; + uint64_t x88; + uint8_t x89; + uint64_t x90; + uint8_t x91; + uint64_t x92; + uint8_t x93; + uint64_t x94; + uint8_t x95; + uint8_t x96; + uint8_t x97; + uint8_t x98; + uint64_t x99; + uint8_t x100; + uint64_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; + uint8_t x111; + uint8_t x112; + uint8_t x113; + uint64_t x114; + uint8_t x115; + uint64_t x116; + uint8_t x117; + uint64_t x118; + uint8_t x119; + uint64_t x120; + uint8_t x121; + uint64_t x122; + uint8_t x123; + uint64_t x124; + uint8_t x125; + uint8_t x126; + uint8_t x127; + x1 = (arg1[7]); + x2 = (arg1[6]); + x3 = (arg1[5]); + x4 = (arg1[4]); + x5 = (arg1[3]); + x6 = (arg1[2]); + x7 = (arg1[1]); + x8 = (arg1[0]); + x9 = (x8 >> 8); + x10 = (uint8_t)(x8 & UINT8_C(0xff)); + x11 = (x9 >> 8); + x12 = (uint8_t)(x9 & UINT8_C(0xff)); + x13 = (x11 >> 8); + x14 = (uint8_t)(x11 & UINT8_C(0xff)); + x15 = (x13 >> 8); + x16 = (uint8_t)(x13 & UINT8_C(0xff)); + x17 = (x15 >> 8); + x18 = (uint8_t)(x15 & UINT8_C(0xff)); + x19 = (x17 >> 8); + x20 = (uint8_t)(x17 & UINT8_C(0xff)); + x21 = (uint8_t)(x19 >> 8); + x22 = (uint8_t)(x19 & UINT8_C(0xff)); + x23 = (uint8_t)(x21 & UINT8_C(0xff)); + x24 = (x7 >> 8); + x25 = (uint8_t)(x7 & UINT8_C(0xff)); + x26 = (x24 >> 8); + x27 = (uint8_t)(x24 & UINT8_C(0xff)); + x28 = (x26 >> 8); + x29 = (uint8_t)(x26 & UINT8_C(0xff)); + x30 = (x28 >> 8); + x31 = (uint8_t)(x28 & UINT8_C(0xff)); + x32 = (x30 >> 8); + x33 = (uint8_t)(x30 & UINT8_C(0xff)); + x34 = (x32 >> 8); + x35 = (uint8_t)(x32 & UINT8_C(0xff)); + x36 = (uint8_t)(x34 >> 8); + x37 = (uint8_t)(x34 & UINT8_C(0xff)); + x38 = (uint8_t)(x36 & UINT8_C(0xff)); + x39 = (x6 >> 8); + x40 = (uint8_t)(x6 & UINT8_C(0xff)); + x41 = (x39 >> 8); + x42 = (uint8_t)(x39 & UINT8_C(0xff)); + x43 = (x41 >> 8); + x44 = (uint8_t)(x41 & UINT8_C(0xff)); + x45 = (x43 >> 8); + x46 = (uint8_t)(x43 & UINT8_C(0xff)); + x47 = (x45 >> 8); + x48 = (uint8_t)(x45 & UINT8_C(0xff)); + x49 = (x47 >> 8); + x50 = (uint8_t)(x47 & UINT8_C(0xff)); + x51 = (uint8_t)(x49 >> 8); + x52 = (uint8_t)(x49 & UINT8_C(0xff)); + x53 = (uint8_t)(x51 & UINT8_C(0xff)); + x54 = (x5 >> 8); + x55 = (uint8_t)(x5 & UINT8_C(0xff)); + x56 = (x54 >> 8); + x57 = (uint8_t)(x54 & UINT8_C(0xff)); + x58 = (x56 >> 8); + x59 = (uint8_t)(x56 & UINT8_C(0xff)); + x60 = (x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (x60 >> 8); + x63 = (uint8_t)(x60 & UINT8_C(0xff)); + x64 = (x62 >> 8); + x65 = (uint8_t)(x62 & UINT8_C(0xff)); + x66 = (uint8_t)(x64 >> 8); + x67 = (uint8_t)(x64 & UINT8_C(0xff)); + x68 = (uint8_t)(x66 & UINT8_C(0xff)); + x69 = (x4 >> 8); + x70 = (uint8_t)(x4 & UINT8_C(0xff)); + x71 = (x69 >> 8); + x72 = (uint8_t)(x69 & UINT8_C(0xff)); + x73 = (x71 >> 8); + x74 = (uint8_t)(x71 & UINT8_C(0xff)); + x75 = (x73 >> 8); + x76 = (uint8_t)(x73 & UINT8_C(0xff)); + x77 = (x75 >> 8); + x78 = (uint8_t)(x75 & UINT8_C(0xff)); + x79 = (x77 >> 8); + x80 = (uint8_t)(x77 & UINT8_C(0xff)); + x81 = (uint8_t)(x79 >> 8); + x82 = (uint8_t)(x79 & UINT8_C(0xff)); + x83 = (uint8_t)(x81 & UINT8_C(0xff)); + x84 = (x3 >> 8); + x85 = (uint8_t)(x3 & UINT8_C(0xff)); + x86 = (x84 >> 8); + x87 = (uint8_t)(x84 & UINT8_C(0xff)); + x88 = (x86 >> 8); + x89 = (uint8_t)(x86 & UINT8_C(0xff)); + x90 = (x88 >> 8); + x91 = (uint8_t)(x88 & UINT8_C(0xff)); + x92 = (x90 >> 8); + x93 = (uint8_t)(x90 & UINT8_C(0xff)); + x94 = (x92 >> 8); + x95 = (uint8_t)(x92 & UINT8_C(0xff)); + x96 = (uint8_t)(x94 >> 8); + x97 = (uint8_t)(x94 & UINT8_C(0xff)); + x98 = (uint8_t)(x96 & UINT8_C(0xff)); + x99 = (x2 >> 8); + x100 = (uint8_t)(x2 & UINT8_C(0xff)); + x101 = (x99 >> 8); + x102 = (uint8_t)(x99 & UINT8_C(0xff)); + x103 = (x101 >> 8); + x104 = (uint8_t)(x101 & UINT8_C(0xff)); + x105 = (x103 >> 8); + x106 = (uint8_t)(x103 & UINT8_C(0xff)); + x107 = (x105 >> 8); + x108 = (uint8_t)(x105 & UINT8_C(0xff)); + x109 = (x107 >> 8); + x110 = (uint8_t)(x107 & UINT8_C(0xff)); + x111 = (uint8_t)(x109 >> 8); + x112 = (uint8_t)(x109 & UINT8_C(0xff)); + x113 = (uint8_t)(x111 & UINT8_C(0xff)); + x114 = (x1 >> 8); + x115 = (uint8_t)(x1 & UINT8_C(0xff)); + x116 = (x114 >> 8); + x117 = (uint8_t)(x114 & UINT8_C(0xff)); + x118 = (x116 >> 8); + x119 = (uint8_t)(x116 & UINT8_C(0xff)); + x120 = (x118 >> 8); + x121 = (uint8_t)(x118 & UINT8_C(0xff)); + x122 = (x120 >> 8); + x123 = (uint8_t)(x120 & UINT8_C(0xff)); + x124 = (x122 >> 8); + x125 = (uint8_t)(x122 & UINT8_C(0xff)); + x126 = (uint8_t)(x124 >> 8); + x127 = (uint8_t)(x124 & UINT8_C(0xff)); + out1[0] = x10; + out1[1] = x12; + out1[2] = x14; + out1[3] = x16; + out1[4] = x18; + out1[5] = x20; + out1[6] = x22; + out1[7] = x23; + out1[8] = x25; + out1[9] = x27; + out1[10] = x29; + out1[11] = x31; + out1[12] = x33; + out1[13] = x35; + out1[14] = x37; + out1[15] = x38; + out1[16] = x40; + out1[17] = x42; + out1[18] = x44; + out1[19] = x46; + out1[20] = x48; + out1[21] = x50; + out1[22] = x52; + out1[23] = x53; + out1[24] = x55; + out1[25] = x57; + out1[26] = x59; + out1[27] = x61; + out1[28] = x63; + out1[29] = x65; + out1[30] = x67; + out1[31] = x68; + out1[32] = x70; + out1[33] = x72; + out1[34] = x74; + out1[35] = x76; + out1[36] = x78; + out1[37] = x80; + out1[38] = x82; + out1[39] = x83; + out1[40] = x85; + out1[41] = x87; + out1[42] = x89; + out1[43] = x91; + out1[44] = x93; + out1[45] = x95; + out1[46] = x97; + out1[47] = x98; + out1[48] = x100; + out1[49] = x102; + out1[50] = x104; + out1[51] = x106; + out1[52] = x108; + out1[53] = x110; + out1[54] = x112; + out1[55] = x113; + out1[56] = x115; + out1[57] = x117; + out1[58] = x119; + out1[59] = x121; + out1[60] = x123; + out1[61] = x125; + out1[62] = x127; + out1[63] = x126; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order. + * Preconditions: + * 0 ≤ bytes_eval arg1 < m + * Postconditions: + * eval out1 mod m = bytes_eval arg1 mod m + * 0 ≤ eval out1 < 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 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff], [0x0 ~> 0xffffffffffffffff]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_from_bytes( + uint64_t out1[8], 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; + uint8_t x8; + uint64_t x9; + uint64_t x10; + uint64_t x11; + uint64_t x12; + uint64_t x13; + uint64_t x14; + uint64_t x15; + uint8_t x16; + uint64_t x17; + uint64_t x18; + uint64_t x19; + uint64_t x20; + uint64_t x21; + uint64_t x22; + uint64_t x23; + uint8_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; + uint8_t x40; + uint64_t x41; + uint64_t x42; + uint64_t x43; + uint64_t x44; + uint64_t x45; + uint64_t x46; + uint64_t x47; + uint8_t x48; + uint64_t x49; + uint64_t x50; + uint64_t x51; + uint64_t x52; + uint64_t x53; + uint64_t x54; + uint64_t x55; + uint8_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; + uint64_t x72; + uint64_t x73; + uint64_t x74; + uint64_t x75; + uint64_t x76; + uint64_t x77; + uint64_t x78; + uint64_t x79; + x1 = ((uint64_t)(arg1[63]) << 56); + x2 = ((uint64_t)(arg1[62]) << 48); + x3 = ((uint64_t)(arg1[61]) << 40); + x4 = ((uint64_t)(arg1[60]) << 32); + x5 = ((uint64_t)(arg1[59]) << 24); + x6 = ((uint64_t)(arg1[58]) << 16); + x7 = ((uint64_t)(arg1[57]) << 8); + x8 = (arg1[56]); + x9 = ((uint64_t)(arg1[55]) << 56); + x10 = ((uint64_t)(arg1[54]) << 48); + x11 = ((uint64_t)(arg1[53]) << 40); + x12 = ((uint64_t)(arg1[52]) << 32); + x13 = ((uint64_t)(arg1[51]) << 24); + x14 = ((uint64_t)(arg1[50]) << 16); + x15 = ((uint64_t)(arg1[49]) << 8); + x16 = (arg1[48]); + x17 = ((uint64_t)(arg1[47]) << 56); + x18 = ((uint64_t)(arg1[46]) << 48); + x19 = ((uint64_t)(arg1[45]) << 40); + x20 = ((uint64_t)(arg1[44]) << 32); + x21 = ((uint64_t)(arg1[43]) << 24); + x22 = ((uint64_t)(arg1[42]) << 16); + x23 = ((uint64_t)(arg1[41]) << 8); + x24 = (arg1[40]); + x25 = ((uint64_t)(arg1[39]) << 56); + 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]) << 56); + x34 = ((uint64_t)(arg1[30]) << 48); + x35 = ((uint64_t)(arg1[29]) << 40); + x36 = ((uint64_t)(arg1[28]) << 32); + x37 = ((uint64_t)(arg1[27]) << 24); + x38 = ((uint64_t)(arg1[26]) << 16); + x39 = ((uint64_t)(arg1[25]) << 8); + x40 = (arg1[24]); + x41 = ((uint64_t)(arg1[23]) << 56); + x42 = ((uint64_t)(arg1[22]) << 48); + x43 = ((uint64_t)(arg1[21]) << 40); + x44 = ((uint64_t)(arg1[20]) << 32); + x45 = ((uint64_t)(arg1[19]) << 24); + x46 = ((uint64_t)(arg1[18]) << 16); + x47 = ((uint64_t)(arg1[17]) << 8); + x48 = (arg1[16]); + x49 = ((uint64_t)(arg1[15]) << 56); + x50 = ((uint64_t)(arg1[14]) << 48); + x51 = ((uint64_t)(arg1[13]) << 40); + x52 = ((uint64_t)(arg1[12]) << 32); + x53 = ((uint64_t)(arg1[11]) << 24); + x54 = ((uint64_t)(arg1[10]) << 16); + x55 = ((uint64_t)(arg1[9]) << 8); + x56 = (arg1[8]); + x57 = ((uint64_t)(arg1[7]) << 56); + 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 = (x64 + (x63 + (x62 + (x61 + (x60 + (x59 + (x58 + x57))))))); + x66 = (x65 & UINT64_C(0xffffffffffffffff)); + x67 = (x8 + (x7 + (x6 + (x5 + (x4 + (x3 + (x2 + x1))))))); + x68 = (x16 + (x15 + (x14 + (x13 + (x12 + (x11 + (x10 + x9))))))); + x69 = (x24 + (x23 + (x22 + (x21 + (x20 + (x19 + (x18 + x17))))))); + x70 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + (x26 + x25))))))); + x71 = (x40 + (x39 + (x38 + (x37 + (x36 + (x35 + (x34 + x33))))))); + x72 = (x48 + (x47 + (x46 + (x45 + (x44 + (x43 + (x42 + x41))))))); + x73 = (x56 + (x55 + (x54 + (x53 + (x52 + (x51 + (x50 + x49))))))); + x74 = (x73 & UINT64_C(0xffffffffffffffff)); + x75 = (x72 & UINT64_C(0xffffffffffffffff)); + x76 = (x71 & UINT64_C(0xffffffffffffffff)); + x77 = (x70 & UINT64_C(0xffffffffffffffff)); + x78 = (x69 & UINT64_C(0xffffffffffffffff)); + x79 = (x68 & UINT64_C(0xffffffffffffffff)); + out1[0] = x66; + out1[1] = x74; + out1[2] = x75; + out1[3] = x76; + out1[4] = x77; + out1[5] = x78; + out1[6] = x79; + out1[7] = x67; +} + +/* 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_paramSetB/fe_inv.op3 + * sliding window w=5 + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t13, t3; + + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t3, t1, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t13, t3, acc); + for (i = 0; i < 4; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t13, t13, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(acc, t1); + for (i = 0; i < 505; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(acc, acc, t3); + for (i = 0; i < 5; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(output, acc, t13); +} + +/* curve coefficient constants */ + +static const limb_t const_one[8] = { + UINT64_C(0xFFFFFFFFFFFFFF91), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)}; + +static const limb_t const_b[8] = { + UINT64_C(0xDBE748C318A75DD6), UINT64_C(0xC954A7809097BFC1), + UINT64_C(0x6553CD27E2D5A471), UINT64_C(0xB99B326049435CF3), + UINT64_C(0xE9EAC8A216D2C5E7), UINT64_C(0x260B45A102D0CC51), + UINT64_C(0x8636181D6C5BD56D), UINT64_C(0x638259A12C5765BC)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[14][16] = { + { + {{UINT64_C(0xFFFFFFFFFFFFFEB3), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0xFFFFFFFFFFFFFFFF), + UINT64_C(0xFFFFFFFFFFFFFFFF), UINT64_C(0x7FFFFFFFFFFFFFFF)}, + {UINT64_C(0x9F34E17E2383127B), UINT64_C(0x4C79D571CF48CEEA), + UINT64_C(0xA33463BC494E1BED), UINT64_C(0x9D80747F3A5DA27F), + UINT64_C(0xDCBD09DDC2F4174A), UINT64_C(0xE8307A8C2147B2E0), + UINT64_C(0xD1D3CCEDDBCF9AC9), UINT64_C(0x778FFEC2E98DEFF1)}}, + {{UINT64_C(0xCE514E6BB67DA584), UINT64_C(0xEB51443BE19C2094), + UINT64_C(0xC8E8F54B9B071A6E), UINT64_C(0x239C53FDBED2A243), + UINT64_C(0x67D47B7B2AE8E157), UINT64_C(0x046DE3B75550826E), + UINT64_C(0x2F7DD21E17723575), UINT64_C(0x0E6EABDD11E8E247)}, + {UINT64_C(0xF204F0D648600734), UINT64_C(0x04B3054C343D6475), + UINT64_C(0x707BD9D8F7E6D181), UINT64_C(0x535CEC326B353E20), + UINT64_C(0xA185FA95108C5FE7), UINT64_C(0x7033EBFAB573367F), + UINT64_C(0xEC54E36B46552D77), UINT64_C(0x235E6C1A729C9EBA)}}, + {{UINT64_C(0xECDCEE638B28C0DC), UINT64_C(0xD4E35B4036AE99A1), + UINT64_C(0xDACC813D464A3D2F), UINT64_C(0x8D92802ADBAF282E), + UINT64_C(0x652CFF9C7D8757F2), UINT64_C(0x2C1BCBD97F5A8471), + UINT64_C(0x010192E216C3679A), UINT64_C(0x562694967529DB85)}, + {UINT64_C(0x7480BB90D5F89B94), UINT64_C(0xE01FE3D81E46EDE6), + UINT64_C(0xC18431634E57E6F5), UINT64_C(0x5F8C688491C2DF63), + UINT64_C(0x42E01ED65FA2DC4D), UINT64_C(0x629C95CD8FF5A769), + UINT64_C(0x0E8C16376EAB4807), UINT64_C(0x1C41FB660ABD9BB6)}}, + {{UINT64_C(0x6B509B4F6ED32E5F), UINT64_C(0xC62AFB2567C95F17), + UINT64_C(0x352D4B7A5CE4762A), UINT64_C(0x331358159AFA6ACC), + UINT64_C(0x168B565406D550B2), UINT64_C(0x254DCCE0B528DF40), + UINT64_C(0x422ADB9A222C9415), UINT64_C(0x6FC0F2CE3D2F923E)}, + {UINT64_C(0x3CC0872359359CE7), UINT64_C(0x1779C0CD91A4DC50), + UINT64_C(0x1205971EC8B9922D), UINT64_C(0x199F8198C13192A7), + UINT64_C(0xA43FBDBF492DB7AA), UINT64_C(0x9E173427E82BEEC8), + UINT64_C(0x1E9014993850D54E), UINT64_C(0x603774B7F761EC57)}}, + {{UINT64_C(0x23B79C802BDEF3A9), UINT64_C(0x2217119AD19A5F2C), + UINT64_C(0x49194CE156B09A50), UINT64_C(0xEE7D88A221329201), + UINT64_C(0x1C45A959D0BBED28), UINT64_C(0x1BA5DAD5780FA0D1), + UINT64_C(0x17D7C7946959608D), UINT64_C(0x7DA394237E4E9B1F)}, + {UINT64_C(0x435F5C5547508CA7), UINT64_C(0x84583489516AD549), + UINT64_C(0x09DDC49D02BAE814), UINT64_C(0xCD566B6E260B4D97), + UINT64_C(0x8C11211EE38DF931), UINT64_C(0x7D5FC8D005D473F8), + UINT64_C(0x48C9D7CD865C76F2), UINT64_C(0x2D4517372A6D5599)}}, + {{UINT64_C(0x5F8B137B29C4EACD), UINT64_C(0x5CB8477C99075883), + UINT64_C(0xBC6736A750A641C4), UINT64_C(0xF96B6D0E81B0881D), + UINT64_C(0x8E9C2612E561FC8F), UINT64_C(0x8F742744284E20B7), + UINT64_C(0xBC8C5BE7D4DD11EE), UINT64_C(0x414709E782B2EF56)}, + {UINT64_C(0xE4D6BC0A6DF555F2), UINT64_C(0x916E0A8038EE529F), + UINT64_C(0xBBE312733414117E), UINT64_C(0x2D7BF9CD3154234A), + UINT64_C(0x79B9CFA91852E8EE), UINT64_C(0x62653E8C1BD9C07A), + UINT64_C(0x35FE04F67C7AFF7E), UINT64_C(0x746C1E87E70AE283)}}, + {{UINT64_C(0x1F5857A198366BA5), UINT64_C(0x96781D84414DECAD), + UINT64_C(0xB39DD88866CF983E), UINT64_C(0xDE1050ACCAC19B5F), + UINT64_C(0x5A58BFA88B2AA408), UINT64_C(0xA0A6E9613C440DED), + UINT64_C(0xBAAEC3DFC67D0412), UINT64_C(0x0E37C0E06759674E)}, + {UINT64_C(0x1E623E7563880D22), UINT64_C(0x3BE27CF8F0ACB4B6), + UINT64_C(0x5E6ABD4F4F69642E), UINT64_C(0x3E92D34D13CADA08), + UINT64_C(0x56C644290127C48B), UINT64_C(0x620FC35B7F3C5746), + UINT64_C(0x6870F3DEEF94C612), UINT64_C(0x219C5A5A2606F4A4)}}, + {{UINT64_C(0x0AD4ACAA1625FE00), UINT64_C(0xD7DEE6BB9BEE03FF), + UINT64_C(0x72A27D3B2E594A2C), UINT64_C(0x471EFD78AAB1C0E5), + UINT64_C(0xBDE8465E37857650), UINT64_C(0x1CA721C2BD9F5885), + UINT64_C(0x361E6F8A6073DCEF), UINT64_C(0x2BA435E30A7CF8E9)}, + {UINT64_C(0xC7B032BD1C6893FA), UINT64_C(0xFA9C30E809D4E403), + UINT64_C(0xB03AF5BD20293A47), UINT64_C(0x21EBC61BE008F02D), + UINT64_C(0x0A50151D73D59E63), UINT64_C(0x18D1A3F678D260DB), + UINT64_C(0xE8E3C3F47D79BA96), UINT64_C(0x51FAED3775A06F31)}}, + {{UINT64_C(0xECD4B979E8BCBC8B), UINT64_C(0x7529023CF803878F), + UINT64_C(0xAD84E1849A8B8850), UINT64_C(0xF1E004F8CCF88146), + UINT64_C(0x27406240C194F3F5), UINT64_C(0x175AB72FE366D6B0), + UINT64_C(0x1A44BC8513BBCC48), UINT64_C(0x7930F86912F138C6)}, + {UINT64_C(0x1943A86518E4DCD0), UINT64_C(0x747F6C7CBCE9F068), + UINT64_C(0x5A306F6454D067F7), UINT64_C(0xD1A8EF54EDB2062A), + UINT64_C(0x60E6ACAEA42F21B3), UINT64_C(0x9218654F3B2D2C26), + UINT64_C(0xEDE14471E8B2778E), UINT64_C(0x7B868D318CEE6931)}}, + {{UINT64_C(0x0957A4F6B368FF42), UINT64_C(0xF9F134FD004C85FC), + UINT64_C(0x3A6B8A4719017E1D), UINT64_C(0x673A45EA7D50A61E), + UINT64_C(0x4A26DA494E18EE86), UINT64_C(0xAF7DD8FDDF0C17A6), + UINT64_C(0xD24BF75A7E7277C3), UINT64_C(0x5EF832A1BF72613C)}, + {UINT64_C(0x2E9C8E083300EE10), UINT64_C(0xCCA04C068763AB4E), + UINT64_C(0x5F8DBC28A6B7D854), UINT64_C(0xC6CD3DE84025C222), + UINT64_C(0xEFD30CC10DFE44A5), UINT64_C(0xC2CD44421D7BE70F), + UINT64_C(0x06F8D46B45CCED5D), UINT64_C(0x2D74D0D62EF0C653)}}, + {{UINT64_C(0x151B24DFB26E78B9), UINT64_C(0xC57E81560BB1ED51), + UINT64_C(0x57BAADA59C13974B), UINT64_C(0x98336FB820CC5AF3), + UINT64_C(0x1DA5BD290C790E28), UINT64_C(0x877AA9358C6E2539), + UINT64_C(0x1673F15109AEE9D2), UINT64_C(0x519FB4EE0AEE66D8)}, + {UINT64_C(0x2B798F206AA8D898), UINT64_C(0xC3DFB5ECBA86008C), + UINT64_C(0xF780333B343A8CBF), UINT64_C(0xFF22F62AB6D2056E), + UINT64_C(0x97F3006E182EF2A6), UINT64_C(0x3C5ADB493064AC5E), + UINT64_C(0x89C8C032C9D64C70), UINT64_C(0x1A9ABDED243DB254)}}, + {{UINT64_C(0xA84B636211A375BF), UINT64_C(0x598270A6620A2252), + UINT64_C(0xB183EC9D13A0EFF8), UINT64_C(0x2F7BEBD4B755AD35), + UINT64_C(0xEBA848EDC53EFD69), UINT64_C(0x12059A246FAEC1B6), + UINT64_C(0xBA6340A47A290D7B), UINT64_C(0x2284943263DF6036)}, + {UINT64_C(0x4702BCB62AA27F19), UINT64_C(0x8DDE49209B6D66D6), + UINT64_C(0xC3D4A80BBDC2DC5D), UINT64_C(0xE51AC2D6691A8BD4), + UINT64_C(0x794853518F4211FC), UINT64_C(0x163CD093A9D14C71), + UINT64_C(0x4B38A2B189A0E099), UINT64_C(0x166732459E98054E)}}, + {{UINT64_C(0xFB44107131FBB6B8), UINT64_C(0x79A8775C42AD947A), + UINT64_C(0xA8C9E486E72D0384), UINT64_C(0x9AF7F292840A1DDB), + UINT64_C(0x07E9DB522DB1B47D), UINT64_C(0x0698669ABA81EBAD), + UINT64_C(0xA48E2F032DC06B76), UINT64_C(0x1B06024879B9161A)}, + {UINT64_C(0xD47BADE113C53A83), UINT64_C(0x9C1F4DD068727195), + UINT64_C(0x14A2FC601293376B), UINT64_C(0x8A63967EDC206930), + UINT64_C(0x5D9DFE3898E46F8B), UINT64_C(0x9199E19385CF7B41), + UINT64_C(0x3E8DF54D113D1605), UINT64_C(0x14D3C202303789E1)}}, + {{UINT64_C(0x11A727D4626710EB), UINT64_C(0x38481EC13EB613F1), + UINT64_C(0xB824F8315625E925), UINT64_C(0x3FEFE4F7D03D016B), + UINT64_C(0xCE196037BF1FE74C), UINT64_C(0xE5518F38E956E95F), + UINT64_C(0x84E24D4523E1AE46), UINT64_C(0x29D1DB5A3E0F63A1)}, + {UINT64_C(0x380BF7874FAE4F08), UINT64_C(0xB4E5D477ED8B6A7C), + UINT64_C(0xABA43C3ADC035A0D), UINT64_C(0x7B88050825134A5C), + UINT64_C(0x2DB4554865D5A8CF), UINT64_C(0x776B78B67EDE5F4D), + UINT64_C(0x4CB5848179297E21), UINT64_C(0x1E1911058BE6DBD4)}}, + {{UINT64_C(0x4D1054373E98C38E), UINT64_C(0xAE4B330CB2E8BE84), + UINT64_C(0xB1A22A3DE16CA9CD), UINT64_C(0xE78B43CB1DAF0B8D), + UINT64_C(0x509D9C345CB2B278), UINT64_C(0x9A1342B329F9FFFD), + UINT64_C(0x8159F45273A20A3F), UINT64_C(0x35043A47CA064DAD)}, + {UINT64_C(0xE000710E040E7978), UINT64_C(0x2A1DA585FAF394BB), + UINT64_C(0xF9423EE651524252), UINT64_C(0xD95CE5EF181ACF8B), + UINT64_C(0x0097A9B5613B5947), UINT64_C(0x6F088D14AB442CD0), + UINT64_C(0x4E225BACCAE96A8E), UINT64_C(0x753B77B9EE82591B)}}, + {{UINT64_C(0x41D5FEEC43969A20), UINT64_C(0xC7E1DFA25B57402C), + UINT64_C(0xC43BFFDD9C098C51), UINT64_C(0xAC5E73942954A8F5), + UINT64_C(0xD420A646B2E1308E), UINT64_C(0x13476158D7CAE952), + UINT64_C(0x6A48FA12E7B188C1), UINT64_C(0x1CF2DE71EC53C308)}, + {UINT64_C(0xAA44CF54653FB0FE), UINT64_C(0x4E05A63D450317F4), + UINT64_C(0x8B59BAA6E3AA21DA), UINT64_C(0xFA3A1CDA11F7840D), + UINT64_C(0x220F39B639DB678D), UINT64_C(0x6D497E96759CDCA0), + UINT64_C(0x0ADF3F2969FA5114), UINT64_C(0x7836181D15349213)}}, + }, + { + {{UINT64_C(0x1F11E63C5D6F9B3E), UINT64_C(0x4569A6DAA403A073), + UINT64_C(0x1B585729FE26A8BD), UINT64_C(0x2185B4E45F41FAA7), + UINT64_C(0x3887350C6E99E6E1), UINT64_C(0x92F63CA599CFFB22), + UINT64_C(0x94E93270A52F6381), UINT64_C(0x489EE2DFD0A380FC)}, + {UINT64_C(0x45F7836AB988D87D), UINT64_C(0xA44DCA0C337BEFA3), + UINT64_C(0x6F42243655657370), UINT64_C(0xE5299B33C16D6547), + UINT64_C(0x74A82B2F1E5AAB47), UINT64_C(0x795A79B9CFA92CDB), + UINT64_C(0x2EE0F1BE4981A557), UINT64_C(0x3F7A2AC5F5637DEF)}}, + {{UINT64_C(0x78CF079D3A0FEA31), UINT64_C(0xF5A54C8C6F9069B7), + UINT64_C(0x24C79868D8C02F14), UINT64_C(0x43DDB340F36B384F), + UINT64_C(0x8AF55E5EAD874F73), UINT64_C(0x29E81ACA5856DB97), + UINT64_C(0xB23D0E00702DF822), UINT64_C(0x58EF4F993D029F4B)}, + {UINT64_C(0x0B28FA62F26CA389), UINT64_C(0xD3288224ECFF83DF), + UINT64_C(0x5D8F23193FD82EB2), UINT64_C(0x68E3D3C53D1CB29F), + UINT64_C(0x8DF1A753EC26BE41), UINT64_C(0xB2074622C2C7412F), + UINT64_C(0x3A8D35048D5018F7), UINT64_C(0x0B0D2D49FD309F9B)}}, + {{UINT64_C(0xE997DD069319D09A), UINT64_C(0xF8A2189FDA1726DB), + UINT64_C(0x3AD35868266E7222), UINT64_C(0x0116610C0F42E1A2), + UINT64_C(0xF23385ACE93CC223), UINT64_C(0xE06DE4F68D221503), + UINT64_C(0x0C963EF8A36EE6D9), UINT64_C(0x13B707C8C297BB1A)}, + {UINT64_C(0x1067542415B7BEF0), UINT64_C(0x9C064518AB4ECC7E), + UINT64_C(0x324CDF0C83247132), UINT64_C(0xA9A416204CE15206), + UINT64_C(0x0641C526F0EC82B3), UINT64_C(0xD952D947F165B832), + UINT64_C(0xF6E4EF5B56C3BC3C), UINT64_C(0x528479A6EF1F3728)}}, + {{UINT64_C(0xF84BE5DCA64A2C9B), UINT64_C(0xC20AD405B92B2A9D), + UINT64_C(0xC965A45A829BA060), UINT64_C(0x5041E47FD9F58ABF), + UINT64_C(0x360FB8E29E6AEB4E), UINT64_C(0xDC3B93DEB995DDB3), + UINT64_C(0x7FB0501FFA2C89E5), UINT64_C(0x1883F0179C9B058F)}, + {UINT64_C(0x9FC09649ABF2EABC), UINT64_C(0x051F9AA2D2ADFBBE), + UINT64_C(0x000B4689F2471B9C), UINT64_C(0x2C21C96A23DB9E67), + UINT64_C(0x840F2A03D9D7C226), UINT64_C(0xE728B0702E660925), + UINT64_C(0x1ED21D55A8258042), UINT64_C(0x20DE972E8DA89F47)}}, + {{UINT64_C(0x3003BD09D3DE31B6), UINT64_C(0x6883729E83781375), + UINT64_C(0x882F56AEA7E281ED), UINT64_C(0x936861D399873D07), + UINT64_C(0x68DB9DF0E329D05A), UINT64_C(0xEFD44FB8B6ED5B00), + UINT64_C(0x095DF018DE7AFD7D), UINT64_C(0x11DD7E7431FEE4D2)}, + {UINT64_C(0x59256A82052E3502), UINT64_C(0xB12A68CD967C4F10), + UINT64_C(0xF56E1410F921E058), UINT64_C(0xF7E2CED1D9721852), + UINT64_C(0xE62F6371DE8CBE99), UINT64_C(0x51BB6086BDCF5383), + UINT64_C(0xDE865C7F05F1C9EF), UINT64_C(0x2F4D471E59C9DB82)}}, + {{UINT64_C(0x5238E20B60A83A69), UINT64_C(0xE8ED22D8241F9EE4), + UINT64_C(0x94609C9FC44B4D6B), UINT64_C(0x8CB4F484738B047F), + UINT64_C(0x1DA037763A311894), UINT64_C(0x3B2301D7FFEDBEDE), + UINT64_C(0xBE0D9731C28BFA7B), UINT64_C(0x03E672B78E73852C)}, + {UINT64_C(0xA1A4A97DAA676638), UINT64_C(0x1CC2C685473A0CAB), + UINT64_C(0x31FE11382E95739F), UINT64_C(0x090AEB0D090C8025), + UINT64_C(0x9F0A7073645B652E), UINT64_C(0xC03ABF85E83798BD), + UINT64_C(0x71FBC2D748F4C4C3), UINT64_C(0x56AE0E1E0D38C5BA)}}, + {{UINT64_C(0xDAFDB67CF2C2C6C1), UINT64_C(0xFD6B132ECF3D93C2), + UINT64_C(0xA6FD14BDAE365613), UINT64_C(0x0B5A2A4A2B04AD13), + UINT64_C(0x2AA0470A36B30288), UINT64_C(0xBC9849382A2BB583), + UINT64_C(0xC05200992DE94268), UINT64_C(0x2CD5FBBB49E1A2C3)}, + {UINT64_C(0x082C8F94AAD935D9), UINT64_C(0x20AECE5C51A9454D), + UINT64_C(0x5BE24C7E19E2401F), UINT64_C(0x7BECBAF1A327A3BB), + UINT64_C(0x39E76F20B6300E64), UINT64_C(0x5D151BA79CBC4DCE), + UINT64_C(0x07726284B5D04C2A), UINT64_C(0x4D8BD241B721A54D)}}, + {{UINT64_C(0xD28B4A8E9BB85232), UINT64_C(0x4F965F03CAD53584), + UINT64_C(0xDAE3617BDD1B0F12), UINT64_C(0xDB8660B36777B034), + UINT64_C(0xC67184DD5F952B6A), UINT64_C(0x0ADCC669CE065AD2), + UINT64_C(0x1FC9CB4677CE4665), UINT64_C(0x0A01B64D2234474A)}, + {UINT64_C(0x0A749E821D915F94), UINT64_C(0xF0D212C9425F6ECA), + UINT64_C(0x0C23D0141281CD10), UINT64_C(0x0C933FD429DB5FC8), + UINT64_C(0x80DDA2EFBA5D8406), UINT64_C(0x8C1402D5338183C4), + UINT64_C(0x6E06C3E2D4B5A7F9), UINT64_C(0x64E3E1AB8506CA5C)}}, + {{UINT64_C(0xAC11D879C94EA8D3), UINT64_C(0xDD8B6BA31F28B33F), + UINT64_C(0x647E69ADAEEAD88D), UINT64_C(0xB49B31E13933567E), + UINT64_C(0xBB12FE39EE7A3136), UINT64_C(0x28FF74A3C80837A7), + UINT64_C(0x0A932C81B75677A8), UINT64_C(0x53D93D35C29F7F54)}, + {UINT64_C(0x284971943AC6D6AE), UINT64_C(0x220B50C702D7F721), + UINT64_C(0xDA33488CC1FC3346), UINT64_C(0xDD86F1ECF9ED4655), + UINT64_C(0xAC1853B2632DB517), UINT64_C(0x3736EA466F0C3545), + UINT64_C(0x3D92A7782D45B919), UINT64_C(0x5D9F56743D09DB84)}}, + {{UINT64_C(0x00D301679AF99589), UINT64_C(0x0B5213F3C5B73D12), + UINT64_C(0x8A5A80AD39E67DBF), UINT64_C(0xE2C58969F837F8F4), + UINT64_C(0x9DDF8923D4EE1D6C), UINT64_C(0x1AE3E0AF33DF50BB), + UINT64_C(0x7FBAA73B4E518813), UINT64_C(0x1CE6C9B65F7BB71D)}, + {UINT64_C(0xB12B057D66EB4A4E), UINT64_C(0x1C88E248382599E5), + UINT64_C(0x5384C3E84E5081A6), UINT64_C(0xB7992A1C9E4ABC53), + UINT64_C(0xC0582520044BF086), UINT64_C(0xE14418EBA7DB6B58), + UINT64_C(0x312673ADC31464E1), UINT64_C(0x27DEAEFF5FEAD6E3)}}, + {{UINT64_C(0x55C37C50ADE2EA17), UINT64_C(0x1E1596544F0C5622), + UINT64_C(0x6C96793CF2BD8529), UINT64_C(0x2B5624195AF8E077), + UINT64_C(0x47F6A01952A39000), UINT64_C(0xC364F4D4163EFA85), + UINT64_C(0xD3116C3358BE9780), UINT64_C(0x4DBED7419F098FF2)}, + {UINT64_C(0xB0DD4831486D49D8), UINT64_C(0x84A0C54975913B1C), + UINT64_C(0xB4A793263E2FA892), UINT64_C(0x9E24FB33F8E1FCD2), + UINT64_C(0xE9E35346BB163DE8), UINT64_C(0x04B20FA159EA0DF0), + UINT64_C(0xB4D02BC4B8742A03), UINT64_C(0x081FA0376C2841D9)}}, + {{UINT64_C(0x514F4ACBFBA142D2), UINT64_C(0x996B6E0394E5F474), + UINT64_C(0x5223E730CE24CA53), UINT64_C(0x527581EA4F5B06A0), + UINT64_C(0x31E6DD1A6A33B429), UINT64_C(0x93A4E1C1F6375ACD), + UINT64_C(0x6C726FF3949ED4F7), UINT64_C(0x4E416E72F8F882F8)}, + {UINT64_C(0x26FEC8642FD16999), UINT64_C(0x41DF4A57ABA0E3A7), + UINT64_C(0x15E54D3FB4FAF8AC), UINT64_C(0xE4318BDC6F3F282A), + UINT64_C(0x07C320CDF014698B), UINT64_C(0x71B738303468CBCE), + UINT64_C(0x1FD1AF59D640CFD9), UINT64_C(0x0CF151AED34059EF)}}, + {{UINT64_C(0xB7107CE7A2B3DF22), UINT64_C(0xC1A4E08B90B45D70), + UINT64_C(0xC86AFB665E20257F), UINT64_C(0xDD33CC9611CE1970), + UINT64_C(0x44C20C485F20F903), UINT64_C(0x87FECE7F936A4522), + UINT64_C(0x867932E942105DEA), UINT64_C(0x31AEE1F547E2F4AB)}, + {UINT64_C(0x4CE020DF55B1D8A3), UINT64_C(0x5841BB8C9B33E4D6), + UINT64_C(0x99C6EF8407E5C052), UINT64_C(0x0F6F0DEFBB139F7B), + UINT64_C(0x5E608798366377C5), UINT64_C(0xDE403CF3101AFF93), + UINT64_C(0x164B26D14B69DBFC), UINT64_C(0x190A876646229B9E)}}, + {{UINT64_C(0xAC7B1FA185A61975), UINT64_C(0x975ACE540A3C0E98), + UINT64_C(0xB80D922D173A29D7), UINT64_C(0x71AA4F0C955E0187), + UINT64_C(0xDB3716B93556BA4D), UINT64_C(0x81E375E0248C6ECE), + UINT64_C(0x4CCE97876AFD16A4), UINT64_C(0x67A717E803564374)}, + {UINT64_C(0xE0FD3F7DE94E08C5), UINT64_C(0xDA2A587271CA98AD), + UINT64_C(0x34A8EAD7BA15DEF3), UINT64_C(0xD83A9987C8EE8AC0), + UINT64_C(0x64167A82D9CE22C6), UINT64_C(0x7EE988EDE859A064), + UINT64_C(0xD8B9D231603E188F), UINT64_C(0x40C992660248F567)}}, + {{UINT64_C(0x4059BE67387928A0), UINT64_C(0x5063C31E1412407D), + UINT64_C(0x78ABE79BC37FB4AD), UINT64_C(0xA9A4E76A0DF5F4D6), + UINT64_C(0x1F4CCCFCF0C3C9C8), UINT64_C(0x44A6D446BB2D774F), + UINT64_C(0x1B77494E4991F3D4), UINT64_C(0x41F3A74CC5908739)}, + {UINT64_C(0xB371AB6CC6B26A88), UINT64_C(0x01E7AD15454963FE), + UINT64_C(0x12A6652C43898DC2), UINT64_C(0xC9CFD8BA1EE1BBD9), + UINT64_C(0x22037206C5437711), UINT64_C(0x327F948D062E81FD), + UINT64_C(0xA2FF4F469C87B698), UINT64_C(0x1E83A7F94EB0808E)}}, + {{UINT64_C(0xE2F16272B80F91DF), UINT64_C(0xA0265684B186EBD1), + UINT64_C(0x207DAD692E7D6A85), UINT64_C(0xEFABE500F27F03D4), + UINT64_C(0xEDD0F81D0244072F), UINT64_C(0x4CA26C63944AEDEA), + UINT64_C(0xD8D01D46E874F15F), UINT64_C(0x73E39EED5A1130AE)}, + {UINT64_C(0xED9953FA0E5EC45F), UINT64_C(0x0F62DDD4B4D672DA), + UINT64_C(0x5115FE6F89507053), UINT64_C(0x58968A298354B66C), + UINT64_C(0xB37024D572ADF8E8), UINT64_C(0xD7EC1D4A4D98186B), + UINT64_C(0xB5B41AD67F418AC8), UINT64_C(0x2C0959C568B72616)}}, + }, + { + {{UINT64_C(0x1DD33DD599EF1F4E), UINT64_C(0x2F2951AF3CB93CF3), + UINT64_C(0x7BB75D5798F20535), UINT64_C(0x64C36788BF95DDDE), + UINT64_C(0x74B787C95E211976), UINT64_C(0xB464F818BE8D9E4F), + UINT64_C(0x2631F72191BEB188), UINT64_C(0x3581CB615EC2BFD7)}, + {UINT64_C(0x56A35D67C41A6EF1), UINT64_C(0x5895E76EF69A3D49), + UINT64_C(0x03192D2F8B97FDA2), UINT64_C(0x11240C0BA0A94FA9), + UINT64_C(0x4DC27F38BDDB31E7), UINT64_C(0x038AE33D69A0D11A), + UINT64_C(0x9F3A13EE857974B5), UINT64_C(0x2ACA765E0222E516)}}, + {{UINT64_C(0xFA06EFB5D2421565), UINT64_C(0xC199817D8AB1719F), + UINT64_C(0x44325F2F48C3D0C4), UINT64_C(0xDD6C11655A80BBEF), + UINT64_C(0x3079192402A61986), UINT64_C(0xEBD53E2A3A7E4B1E), + UINT64_C(0xDD3E7657C7AB55DB), UINT64_C(0x43EA2DB27A09B71B)}, + {UINT64_C(0x9002748E0A3AE7D5), UINT64_C(0x0590F7C65B23AE62), + UINT64_C(0x44EE4FA64A2305B0), UINT64_C(0x914591BDABA335D8), + UINT64_C(0x5888289FAB32FC4D), UINT64_C(0xA5FED8476E19B810), + UINT64_C(0x255C3F9917DB4A48), UINT64_C(0x0431EEB86F25750A)}}, + {{UINT64_C(0xB398FF44D0A38E64), UINT64_C(0x5FBAD7B905E41904), + UINT64_C(0xBA57597B357B82CD), UINT64_C(0x18BE4419A929E6BC), + UINT64_C(0x3F3F6D35A98B452D), UINT64_C(0x27425C5F58D546DA), + UINT64_C(0x61A1BBDAC446022B), UINT64_C(0x3EA60775689D15AF)}, + {UINT64_C(0xDD0970423F8C1B93), UINT64_C(0x951AAC5631E09914), + UINT64_C(0x99C77D0F647CCFAC), UINT64_C(0xF3CB5C7A6102DEE7), + UINT64_C(0x2C1CAACBF9484E59), UINT64_C(0x7EBD7135405766AC), + UINT64_C(0x267C325CB0C58371), UINT64_C(0x48FDF94DC2F52776)}}, + {{UINT64_C(0xF64427884EE6EE71), UINT64_C(0x49D6F157C09D8FAF), + UINT64_C(0x159F7AA23C93BF65), UINT64_C(0x992387CF0B5464C4), + UINT64_C(0xFC15173BDEDA026E), UINT64_C(0x90B860E6C989FD74), + UINT64_C(0xCC08BC0C2E98CC2D), UINT64_C(0x089D2D48C85BC472)}, + {UINT64_C(0x9087C7463953E507), UINT64_C(0x54F480A390F97B85), + UINT64_C(0x83D619939F9CC5D0), UINT64_C(0x0C55DE44C1970015), + UINT64_C(0xC45D5EA1DF669193), UINT64_C(0x5DEFF1E7FDCF23AB), + UINT64_C(0x2B38D4792A211F3D), UINT64_C(0x099279253E31284F)}}, + {{UINT64_C(0x30454C23C38EFF1A), UINT64_C(0x706FD470FEC8424E), + UINT64_C(0xA216319733467A08), UINT64_C(0x7C8A4D4380E6DB64), + UINT64_C(0x505D89BFE9AB850B), UINT64_C(0xC10CFEFF5E8DF0CB), + UINT64_C(0x3EB45DF716304B39), UINT64_C(0x3AAE23FE527C325B)}, + {UINT64_C(0x65DBB826C153DA5D), UINT64_C(0xB8EC2676FFCCCC80), + UINT64_C(0x4538FBAB1C8BA8C2), UINT64_C(0x6FA94E5266FD20CA), + UINT64_C(0x480D857EA9B7513F), UINT64_C(0xDB1C611C82814908), + UINT64_C(0x0F1F21FF53F81AA5), UINT64_C(0x20696D2DE1A47218)}}, + {{UINT64_C(0xF31AA6227AB6E8D8), UINT64_C(0x3D12F32B686BB479), + UINT64_C(0xACA48C8A3BF6E8F8), UINT64_C(0x39D4F322FCECFCC0), + UINT64_C(0xCBD2E493C8BBCADE), UINT64_C(0x18E2A8E75C695155), + UINT64_C(0x4047ED16DF022D32), UINT64_C(0x1040565ECD6CDB7C)}, + {UINT64_C(0x1B72EA4764515BD6), UINT64_C(0x0DC58AE89320C9CB), + UINT64_C(0xEE53907B5310CDBD), UINT64_C(0x7C2C62A154FE7719), + UINT64_C(0xA04150808AE9C75E), UINT64_C(0x2BFC37801E8A0123), + UINT64_C(0xBBCB26FECE6823AD), UINT64_C(0x5E4B59A0D61B79A7)}}, + {{UINT64_C(0x8C93F97590C0C1CA), UINT64_C(0x0871A9018F518A16), + UINT64_C(0x6477E523964CACE1), UINT64_C(0xE52D22C8A77046AC), + UINT64_C(0x4FE86722F9911C69), UINT64_C(0x8B03B1960E21642C), + UINT64_C(0xDD3523EFEEA31DF9), UINT64_C(0x4D4EDD43D896AE4F)}, + {UINT64_C(0xEB5C2968B8CB58A3), UINT64_C(0x5C6C5B639AF9580A), + UINT64_C(0x20759CEB3A166247), UINT64_C(0x812FBE1B0F964024), + UINT64_C(0xBB295EBA816BFC2C), UINT64_C(0x355256260BC4C607), + UINT64_C(0x411799ED7D134609), UINT64_C(0x7ECBDA128615FBAA)}}, + {{UINT64_C(0x45EB69B3E7C6C149), UINT64_C(0x9D414F65F40D6D9C), + UINT64_C(0x3FC4D2A66AD70201), UINT64_C(0x039F56D22E2EB20A), + UINT64_C(0xAE25D395CE4F7AB7), UINT64_C(0xD69AE8511B640F4F), + UINT64_C(0x912BA30CCF08596A), UINT64_C(0x7C552E1CFB7DA74A)}, + {UINT64_C(0x57F7B3CC298071AC), UINT64_C(0x7B38B1865029FCFB), + UINT64_C(0x43D0A21DDBD1AFDA), UINT64_C(0x2165A125CFDCE1D5), + UINT64_C(0xC2422D76099E931C), UINT64_C(0x3940B3F9D220528D), + UINT64_C(0xA530E1E05892DDF1), UINT64_C(0x5D1060BBC5EDB806)}}, + {{UINT64_C(0x03C39CB0DA19A7BF), UINT64_C(0x9227C95735061C5A), + UINT64_C(0xB86AE697E6733C8E), UINT64_C(0x4790AB411D91D056), + UINT64_C(0x82599E6E91944712), UINT64_C(0xE6EEAB302126986F), + UINT64_C(0xF6CF67704C7C86DD), UINT64_C(0x0962C8E081C7F520)}, + {UINT64_C(0x7275701A3E672910), UINT64_C(0xCC253D25555D4EAA), + UINT64_C(0xC87804A50F307D6F), UINT64_C(0xA6C402695E6E364D), + UINT64_C(0x5A4DB5779DE73155), UINT64_C(0x8513BC0545B03B16), + UINT64_C(0x7EDB8B9F5CB1A5DF), UINT64_C(0x5686C42AD4905C9B)}}, + {{UINT64_C(0x1B9368C4C1288660), UINT64_C(0x5F83CD353BCEFEDB), + UINT64_C(0xB4656091C33CD356), UINT64_C(0x2284D9074920232F), + UINT64_C(0x87816B0695B4CBCA), UINT64_C(0xA35A7191EF2D4546), + UINT64_C(0xF9E71B1D296E871A), UINT64_C(0x72A7B9C35330AF13)}, + {UINT64_C(0xAC61BC6F401BE940), UINT64_C(0x0634D9D70DD2350E), + UINT64_C(0xE27626F00CE45A7C), UINT64_C(0x9B38569F3493FA74), + UINT64_C(0x3F23C7036EC9DC13), UINT64_C(0x8BF8FF129C62D952), + UINT64_C(0x5D53A2D258132258), UINT64_C(0x1FC830A533A57773)}}, + {{UINT64_C(0xAE58A3B90F294E33), UINT64_C(0xF12E0FC4AEF8F84C), + UINT64_C(0x78C5BDDE649D16FF), UINT64_C(0x12645CA18827C75F), + UINT64_C(0x1288C5667F97ABED), UINT64_C(0x0CAD8E5DC1E2781E), + UINT64_C(0x24B69A1DBC92FF24), UINT64_C(0x7068305D545221B2)}, + {UINT64_C(0x7A9A3F7C40F6201C), UINT64_C(0x5B7E5FA25EFACD4C), + UINT64_C(0x85FACB2ED6275627), UINT64_C(0xDD0FBA635BBE856B), + UINT64_C(0x030826B1B2E456FD), UINT64_C(0x0FF397E85F898479), + UINT64_C(0x68ECAA4EBFAE4984), UINT64_C(0x4EB40475CAC01FD8)}}, + {{UINT64_C(0x141804F12BC4C766), UINT64_C(0xD84A76DAC8FB07C1), + UINT64_C(0x29376B5BC83676A9), UINT64_C(0x3D3A00EB3749490C), + UINT64_C(0xA5EB6CF7C5F439B6), UINT64_C(0x16266439EA156432), + UINT64_C(0x1CF83E2503161D4B), UINT64_C(0x37603F2295E3E8A3)}, + {UINT64_C(0x62EE26ECE920EDDA), UINT64_C(0xCD7734A30FC4DF7D), + UINT64_C(0x0EF3E6C9D7FBCA6B), UINT64_C(0xCF2460DA87F1873A), + UINT64_C(0x005110721895CF1C), UINT64_C(0xB92A8E934F11854B), + UINT64_C(0x985562510C665D9D), UINT64_C(0x3CD64282174A7FF2)}}, + {{UINT64_C(0x39243EA7B9F9E43F), UINT64_C(0x973D4582270D2DB1), + UINT64_C(0xEB8B50330541FF4C), UINT64_C(0xED5F52A09F309D70), + UINT64_C(0xE978FBAE123F45B6), UINT64_C(0x0A79B6930015781D), + UINT64_C(0xC5DA0CCF5C9A03FB), UINT64_C(0x1C6E4F58F16D4CE1)}, + {UINT64_C(0x09674C2E89CB89DB), UINT64_C(0xB3D147B1C94A4D96), + UINT64_C(0x936F3F8827D24C12), UINT64_C(0x44E8C741A8C4BA25), + UINT64_C(0x249A28AE920FDDE8), UINT64_C(0x274F2B4E229B2C19), + UINT64_C(0x94C203EEFF4EC64D), UINT64_C(0x53284B1F43358F20)}}, + {{UINT64_C(0xE3AB8BAADCCFF94D), UINT64_C(0xF038D9A5F97449EE), + UINT64_C(0xE4A45DCF5EF19F06), UINT64_C(0xFFF8AD9A17EF6368), + UINT64_C(0x0CEB6B85ADDF0B6E), UINT64_C(0x6C7B60B196AC1BA3), + UINT64_C(0xED84F897A25F77F8), UINT64_C(0x1EE6167155886360)}, + {UINT64_C(0x08B44F387BA18315), UINT64_C(0x8A9FFAE9F3D0E0C4), + UINT64_C(0x82807E7DE5886E61), UINT64_C(0xF15402F351E94C78), + UINT64_C(0x45969D9F96A8AF2E), UINT64_C(0xA8E0ED89F4956ACC), + UINT64_C(0xB5334DECF2D21764), UINT64_C(0x2B274E2F861C26B7)}}, + {{UINT64_C(0xC2E3A80299E77118), UINT64_C(0xFFE72B90C6DE1B4D), + UINT64_C(0xCCB21D53E29458FB), UINT64_C(0xD233AF10511F0279), + UINT64_C(0xC301B7EAB9B907B3), UINT64_C(0x59DB1F45D7B55600), + UINT64_C(0x7173318B3A386844), UINT64_C(0x403ABED7D9AB6F85)}, + {UINT64_C(0x0CFE2CFC14698FC9), UINT64_C(0x40A4198934CE5939), + UINT64_C(0x0F5FA8499ABA363C), UINT64_C(0x99C045AB8CC887D9), + UINT64_C(0x1E7563F5E8DF250B), UINT64_C(0x2624A5DCD3B78407), + UINT64_C(0x7D80CA6D1954A966), UINT64_C(0x789BD6854C8995C2)}}, + {{UINT64_C(0xBA8D937683A05A40), UINT64_C(0xDD238C0E0572668D), + UINT64_C(0x5B41446FE0AD7EAA), UINT64_C(0x6D1AD6B463F9C64D), + UINT64_C(0xF5FE99AA8830CE1C), UINT64_C(0x5BB1E7DFF2B77D66), + UINT64_C(0x7382CA41F7E63961), UINT64_C(0x56D6F922555032C4)}, + {UINT64_C(0xF9EAA991AC45C214), UINT64_C(0x2A4B717266146EA4), + UINT64_C(0x5667D61FD14553F5), UINT64_C(0x996E8D8B3F7D071A), + UINT64_C(0xCB023EA5E2229B97), UINT64_C(0xA446A954398EA3C6), + UINT64_C(0x733E3D79AAF9ABF2), UINT64_C(0x2B4FAE8E47503BBD)}}, + }, + { + {{UINT64_C(0x24E9082DEBEFDC12), UINT64_C(0x86997EA924FDCD6E), + UINT64_C(0x1512918803145F3F), UINT64_C(0xC829D42CA16A167D), + UINT64_C(0x55C0A31CFDFACB6F), UINT64_C(0x1A728DB45B93FB73), + UINT64_C(0x7A187912467A55D2), UINT64_C(0x7934C39C1E8843D3)}, + {UINT64_C(0x688D9927F35497AA), UINT64_C(0x2176E4E45A745926), + UINT64_C(0xA60F1ED74FF0DA29), UINT64_C(0xE1EF2081E66F5F74), + UINT64_C(0xCDE36E799EE53EFF), UINT64_C(0xFCD1D1BF855244FF), + UINT64_C(0xD55CDB2E464A4040), UINT64_C(0x39BC13F11E64BB0B)}}, + {{UINT64_C(0x828B353965D70320), UINT64_C(0x921019C6954FE3CC), + UINT64_C(0xC2B142C839DFC1EA), UINT64_C(0x7A619A1CBAD22A43), + UINT64_C(0xE08FA3AED827C06E), UINT64_C(0xAC645EFF88BAA42F), + UINT64_C(0x514723BA294F3582), UINT64_C(0x6FD17829AA355FD2)}, + {UINT64_C(0x6366853C11D05C79), UINT64_C(0xE225500B17D185C9), + UINT64_C(0xAEEC2174FA47EADA), UINT64_C(0x9737ECC06666332F), + UINT64_C(0xD0638BC9E33AA72A), UINT64_C(0x4889AB0DF6CF4E24), + UINT64_C(0x2912E4A0039E3190), UINT64_C(0x411CFB3CC035D955)}}, + {{UINT64_C(0xE59D745B0B3BD0D0), UINT64_C(0x62AB04F90653222F), + UINT64_C(0xE6421BB743E0EC6C), UINT64_C(0x6F3E477015E65B27), + UINT64_C(0x90FB7585D82704E6), UINT64_C(0xCF7FD882E9A129DF), + UINT64_C(0xFA8E1B9DD3D0023A), UINT64_C(0x12861B4ADE4307E5)}, + {UINT64_C(0x9DC0D3D9B86CF424), UINT64_C(0xCFC0A60FC2DBE006), + UINT64_C(0x5933BAA82B9F470A), UINT64_C(0x112F153CCAB8113B), + UINT64_C(0x1AEDA34056B279C1), UINT64_C(0x1408A037BE13DFA3), + UINT64_C(0x10D90850C06D3674), UINT64_C(0x3DB6999EAF30AE4A)}}, + {{UINT64_C(0xAB96F01356348084), UINT64_C(0x403955438C167F42), + UINT64_C(0xE1385C9F2280FEB8), UINT64_C(0x3667162576D2C4AA), + UINT64_C(0x76E313444D4D667B), UINT64_C(0x906B5973EF0B171D), + UINT64_C(0x229BCCFAEBCCA769), UINT64_C(0x36462E608A9A561C)}, + {UINT64_C(0xFD5116FD4FE428A6), UINT64_C(0xE92C088AF3846007), + UINT64_C(0x8AC5F8BE218A0D1E), UINT64_C(0x59A97369DDF329CE), + UINT64_C(0xEA2D262ECAB484D5), UINT64_C(0x6F95E17ABD10F3EC), + UINT64_C(0x6FFBEC38E08DDB7E), UINT64_C(0x55E8DE216446BB5D)}}, + {{UINT64_C(0xA5D6141A0CB565AE), UINT64_C(0x8786B494F9091FE2), + UINT64_C(0x89B1900F1D6C9279), UINT64_C(0x425AD0F5C21934C0), + UINT64_C(0xF781FBF6E2201D3E), UINT64_C(0x7210043361E0191D), + UINT64_C(0x186A39995B3E5491), UINT64_C(0x6DF058E695E49235)}, + {UINT64_C(0x82D37E0234559E42), UINT64_C(0x4AE4A8ACA0E7F1D4), + UINT64_C(0x9941A84CB34AAED2), UINT64_C(0x4DA92D325484ECE0), + UINT64_C(0x6F1FB58CEB7C740E), UINT64_C(0xEC6FAE864965B6CC), + UINT64_C(0x179E84801CEFF73B), UINT64_C(0x58ED2BB372724658)}}, + {{UINT64_C(0xD6FA5A23AC30848E), UINT64_C(0xFE58E2D353705571), + UINT64_C(0x43368F7247EF14E7), UINT64_C(0x7DDA0F48694E6BB3), + UINT64_C(0x0DFA9BF9E9B7CEF9), UINT64_C(0xA3BD4B239803203F), + UINT64_C(0x3F0EAF0DAA1B561C), UINT64_C(0x6E8678F311C56C8F)}, + {UINT64_C(0x4E574AFBB4272D39), UINT64_C(0xDD9622A926A589E0), + UINT64_C(0xCF41D02818E2B544), UINT64_C(0x7FE65A44479B717E), + UINT64_C(0x38D34C1FABDE58B1), UINT64_C(0x4A8B1A4920E02EE5), + UINT64_C(0x6C2C5AF126D927F1), UINT64_C(0x08E02884CE4D534A)}}, + {{UINT64_C(0xF47477733C9034CE), UINT64_C(0x92B208B8A8CDA587), + UINT64_C(0xDDB5A865A8A5D6F6), UINT64_C(0xE3C3150E09FFBBCA), + UINT64_C(0x120720D671780DEE), UINT64_C(0x6977608D1CB5E7E7), + UINT64_C(0x52261203DBE5697A), UINT64_C(0x1C88E9C4184E7B19)}, + {UINT64_C(0x6BE6C1909927BFC6), UINT64_C(0xA1452123F431A9E8), + UINT64_C(0x62BC5BF4B949ED5C), UINT64_C(0xD57633C02BCF732C), + UINT64_C(0xA3723F7C0AE4563A), UINT64_C(0x5449AFCE031958EA), + UINT64_C(0xE3BF9985A6580D6F), UINT64_C(0x34B0D3206B471AA6)}}, + {{UINT64_C(0xEE28E9FC46BF771F), UINT64_C(0xDCD3C06EF23B38E6), + UINT64_C(0x894E78648D62D86B), UINT64_C(0xF226C4DAC0209FC3), + UINT64_C(0xEEB85A816EC4D3B1), UINT64_C(0x837F8A033ABEC007), + UINT64_C(0x622C40BC18C1A3EA), UINT64_C(0x49A59CB2279C341A)}, + {UINT64_C(0xC3833ABAD38DC85B), UINT64_C(0xC512B7213E303976), + UINT64_C(0x80CB1ADFA43BA4BF), UINT64_C(0x6C8A15748FAD6957), + UINT64_C(0xB5305AE5A0DC03A1), UINT64_C(0xA63FE0FCA78753F7), + UINT64_C(0x81C2BCE17D4EB934), UINT64_C(0x4ED73812AD66F6FB)}}, + {{UINT64_C(0xAC25AB81CA09A5D2), UINT64_C(0x1E000EFCB6EE3D0D), + UINT64_C(0x7EDA899F148738A5), UINT64_C(0xEE70DFB44ABD3CA0), + UINT64_C(0xA9F18AF3371F70BD), UINT64_C(0xA2D64FE430E796BC), + UINT64_C(0x77E4219038943DC4), UINT64_C(0x35AEB8A206EB5CFC)}, + {UINT64_C(0x95D36C2EDA26DB57), UINT64_C(0xEEF40F183A546E88), + UINT64_C(0xAD4D846BE5D07294), UINT64_C(0x80BE6BA895158FF2), + UINT64_C(0xC15AC73FC85F84EA), UINT64_C(0xBAFC39522044951E), + UINT64_C(0xEA750E8DA14C51AE), UINT64_C(0x1817F004524FC6FA)}}, + {{UINT64_C(0x9C835DB314555CD7), UINT64_C(0x76A92FC0299196F6), + UINT64_C(0x35CDF54D6618F1A6), UINT64_C(0x4B77E5A0B3260002), + UINT64_C(0x321C2EAFA837BDB2), UINT64_C(0x559AE831D5D4A743), + UINT64_C(0x0EB18D7FE116E5CC), UINT64_C(0x3FE7D2921945E60E)}, + {UINT64_C(0x4CA61AEF649D5551), UINT64_C(0x7C3CFBFF95257CC3), + UINT64_C(0x8AF04A7466A5D03B), UINT64_C(0xA0C95ADEFC3B143A), + UINT64_C(0x515258CEA61B0143), UINT64_C(0xF1959D4B43A147BD), + UINT64_C(0xAAE3EF4C43B761E4), UINT64_C(0x731F5D9EBB8BEA3A)}}, + {{UINT64_C(0x483D5F556283C8DA), UINT64_C(0x0CE48F6FC067AF22), + UINT64_C(0xBA767432CFB3FEF8), UINT64_C(0x1AD7F214463510B2), + UINT64_C(0xDCFDB1A77D448527), UINT64_C(0x3EEFAEDD119BA281), + UINT64_C(0x9D5F25467B6597AB), UINT64_C(0x03515E65B8AE2AC1)}, + {UINT64_C(0x91A17476A768A2E9), UINT64_C(0x921B21AA1C0B8745), + UINT64_C(0xE1B0AB68D1636FB2), UINT64_C(0x35AF62C10A933BC5), + UINT64_C(0x24432C7B6CCA56F8), UINT64_C(0x88976C8FE142C3D6), + UINT64_C(0x1BAC1E5DC0EEC621), UINT64_C(0x2760B03A7EB64467)}}, + {{UINT64_C(0xCEFCAB97535D9B1E), UINT64_C(0x2DDF1964EFC85889), + UINT64_C(0x62276E0267FC56FE), UINT64_C(0xD33D4E1F9EA27125), + UINT64_C(0xD11F07263EAB0BFD), UINT64_C(0xCEF5BD00B4E5A283), + UINT64_C(0x107CB2FBA5ECFF20), UINT64_C(0x1D110BEC85321266)}, + {UINT64_C(0x5CD67BCAB9C05938), UINT64_C(0x023B2FD6EC9ED6BA), + UINT64_C(0x473FEF71C44D68BE), UINT64_C(0x6DB457A124006876), + UINT64_C(0xA56C47E35979901A), UINT64_C(0x971F5FE7006B786D), + UINT64_C(0xD894B21C8E3630E4), UINT64_C(0x56B8610DFF0AD8ED)}}, + {{UINT64_C(0xDC5748066A9AD8B6), UINT64_C(0x39B1553AA33AA074), + UINT64_C(0x55233DAA71EF2A51), UINT64_C(0x6186F6F0CCC11692), + UINT64_C(0x949F7A8D51E7F2B8), UINT64_C(0x9ED94F29BF2FF9B7), + UINT64_C(0x54ED16DA3B90382D), UINT64_C(0x065D09754014335A)}, + {UINT64_C(0x95DA36F27B737144), UINT64_C(0xE0A7C458DDD9C1E0), + UINT64_C(0x0DCE291C69B64234), UINT64_C(0xF943B7278689DEF3), + UINT64_C(0x1CB8375C24F80B28), UINT64_C(0x60EFAA298902EC28), + UINT64_C(0x036BD90F673F34AF), UINT64_C(0x687B36FB02B1A208)}}, + {{UINT64_C(0x1704A5980C031EE5), UINT64_C(0x325E60968288EC60), + UINT64_C(0x588F58A116EFC6F9), UINT64_C(0xA1EA547F2C520574), + UINT64_C(0x2633CB8F7FD9F40A), UINT64_C(0x736D8CFA3AA1C0DD), + UINT64_C(0x189E74DA92B3300E), UINT64_C(0x6C92BE1892172793)}, + {UINT64_C(0x3B67DADFC6E25307), UINT64_C(0x170BF45CCCF961F7), + UINT64_C(0xF07F48B5B2C0629E), UINT64_C(0xACB40994974F7169), + UINT64_C(0x29AD746C871177C5), UINT64_C(0x1AD449E2E3AE7857), + UINT64_C(0xAFB63CB9AE9BE21F), UINT64_C(0x0E6C676CB08FAEEC)}}, + {{UINT64_C(0xA60E0D9F60CABC21), UINT64_C(0xBDFC43CF8BA79177), + UINT64_C(0x8362D84B7BEECCF8), UINT64_C(0x0CC9E6BA29F8FBE4), + UINT64_C(0xCA90958A4801BF01), UINT64_C(0xCB84005EF13C6356), + UINT64_C(0x9CA6408B90AE5AB9), UINT64_C(0x293582F2E668357C)}, + {UINT64_C(0xAA3A680AFFCEB4F6), UINT64_C(0x19CE2D54F18508A5), + UINT64_C(0x74027BA5F430A62C), UINT64_C(0x7248CB8EDCB846D8), + UINT64_C(0x608F15E83D3779E2), UINT64_C(0x21B8A43852BB6633), + UINT64_C(0x64B4C82EA95BDE4F), UINT64_C(0x75169F73CA13D8B1)}}, + {{UINT64_C(0xDC6C53C97435D441), UINT64_C(0x621030CD630885A0), + UINT64_C(0x9F761C574CA9BBE8), UINT64_C(0x3CBD7B5189453166), + UINT64_C(0xE80014E453EED18D), UINT64_C(0xAB31FE34FD48C287), + UINT64_C(0xB908AA720B1F2C06), UINT64_C(0x2A849D2EDA592359)}, + {UINT64_C(0x688DAA1B9B7DA75A), UINT64_C(0x779B963B42D4659B), + UINT64_C(0x44BCCBE10DA7F5E1), UINT64_C(0x96F4FE4E0E283A19), + UINT64_C(0x00239F780F532628), UINT64_C(0xA8E1A47FB2BD3F1E), + UINT64_C(0x23D8F15049D504AD), UINT64_C(0x36F4D7ADA818FB1A)}}, + }, + { + {{UINT64_C(0xED7AAC766FA6665A), UINT64_C(0x593FD44FCD7ABC00), + UINT64_C(0xB70DAA5DE5940EBE), UINT64_C(0xBBD56469E6CEB5B5), + UINT64_C(0x17B54A104EC6EC19), UINT64_C(0x2411F294F288553F), + UINT64_C(0x0108208281534194), UINT64_C(0x3CFFCF3F98F85E1E)}, + {UINT64_C(0x0B82B0FD07E62220), UINT64_C(0x99B5CC1950F91B0E), + UINT64_C(0x2C60F9383AE5C675), UINT64_C(0x6A25B099F42E3EEA), + UINT64_C(0x498948A8329D208C), UINT64_C(0x45226E626A343691), + UINT64_C(0x053643F68B8E9C2D), UINT64_C(0x56E1E5644A938DA8)}}, + {{UINT64_C(0x144DA6782242A19C), UINT64_C(0x0860A384C072E8A2), + UINT64_C(0xD782A875318A08B7), UINT64_C(0xAC99802E8D318C54), + UINT64_C(0x329437A2307DA17A), UINT64_C(0x35656A126696DC0F), + UINT64_C(0xC5A9914AE2152828), UINT64_C(0x3BCBD2FC841C814B)}, + {UINT64_C(0x7D2FCF55590C6FC2), UINT64_C(0xCCCF43156197DABE), + UINT64_C(0xF4701C360E2EB665), UINT64_C(0x9D4F5A7CE9400A11), + UINT64_C(0x815C62182F49F529), UINT64_C(0x264A9BEFB015260A), + UINT64_C(0x279A03B8177E94AB), UINT64_C(0x115481E6F6E2518A)}}, + {{UINT64_C(0x2FE0C370BB65B1C1), UINT64_C(0x620FC63EAABD8550), + UINT64_C(0xA6EDA03F9660303A), UINT64_C(0xC15FD5C5802B6899), + UINT64_C(0x6DFBBCA530FD19A1), UINT64_C(0x2BC0DDA1C5394AAB), + UINT64_C(0xFC6196340CF41B04), UINT64_C(0x64DDF00E7DBCB198)}, + {UINT64_C(0x78B289F692602D0B), UINT64_C(0x123CC6A5E4A24732), + UINT64_C(0x5F2DB53B70913278), UINT64_C(0xD55AE856C27EAC92), + UINT64_C(0xCC82E112085696BA), UINT64_C(0xA421C17967F01774), + UINT64_C(0x7DEEF7FDE602BAF7), UINT64_C(0x00A730B335E94ADA)}}, + {{UINT64_C(0x586D8DC81DAC6F8B), UINT64_C(0x89A56AC618F1FE48), + UINT64_C(0x51231A77F2A8BFA5), UINT64_C(0xD36BE5FECA562E8C), + UINT64_C(0x5DFE328F9A6268D9), UINT64_C(0x3110144C781FA0B4), + UINT64_C(0x6A18A1907ACBE702), UINT64_C(0x68F941C2D70C4B5F)}, + {UINT64_C(0xCE3C1DE30A19654D), UINT64_C(0xCE96C00049AD2799), + UINT64_C(0x9AD7B0F306E913EE), UINT64_C(0x625C4FC1472A1C37), + UINT64_C(0x1E25E3AC967BBD4D), UINT64_C(0xE516CD882042C162), + UINT64_C(0x1483A10EC3197E40), UINT64_C(0x60815A8A84E5FAED)}}, + {{UINT64_C(0x3413EEA8D1313B07), UINT64_C(0x4B6C2CCF49BC14B0), + UINT64_C(0x56C78C84C33BE839), UINT64_C(0x00980F4F0DC481C6), + UINT64_C(0xA34D712C5E96BAE7), UINT64_C(0xEA386C4AEB0574F5), + UINT64_C(0x834334AB6BB4DC04), UINT64_C(0x140F220947404A42)}, + {UINT64_C(0x970B7DE3CC6F8D14), UINT64_C(0x7C9A38E9CCD6A840), + UINT64_C(0x7C1C4638A63FAF90), UINT64_C(0x36AFEA841F10834E), + UINT64_C(0xA9AA4A1515765F2A), UINT64_C(0xB20B2249D9240C98), + UINT64_C(0x20116417D03ABC25), UINT64_C(0x69B3430037A8893D)}}, + {{UINT64_C(0x710FB0751021F8CA), UINT64_C(0xF90919DD64008516), + UINT64_C(0xB0ED31722CCC8FFC), UINT64_C(0xC6ADC85B78988C41), + UINT64_C(0x1CDE6A9D0A1B81A9), UINT64_C(0x9ABC5114C80CAC9E), + UINT64_C(0x877E608243A7B1A7), UINT64_C(0x0CA1F0D151BD9782)}, + {UINT64_C(0xFBB662BB6E6AACB7), UINT64_C(0xDCAB0D7796CD1A74), + UINT64_C(0x603F2717DC56300E), UINT64_C(0x327251B0FE92F7E4), + UINT64_C(0x07E0CBED7031603A), UINT64_C(0xA0F296ECD04C19FD), + UINT64_C(0x3296BF9BB8C5E0AB), UINT64_C(0x41E72DDB49E5E7B6)}}, + {{UINT64_C(0x47E9562CCE99C0C5), UINT64_C(0x4C5FD161BA5372BF), + UINT64_C(0x05D1B7B15C808664), UINT64_C(0x9DBE76B6539F8180), + UINT64_C(0x646C3DDFDDBD7BC3), UINT64_C(0x06032B9697376739), + UINT64_C(0xB71DD971696BDA3D), UINT64_C(0x75061EB81D340FD0)}, + {UINT64_C(0x6FD064FDE6A7DCA5), UINT64_C(0x79A316508DB01DE3), + UINT64_C(0xB1B65A8DF6483911), UINT64_C(0xAF2BBE1CA9DE2C37), + UINT64_C(0x6B663C9E85CB42C5), UINT64_C(0x464FEDFEB583E78E), + UINT64_C(0x393C00F8FFDF93CB), UINT64_C(0x61CC9A6D9F96CF15)}}, + {{UINT64_C(0x40EDC986CA774807), UINT64_C(0x8B2A531C4C334C01), + UINT64_C(0x72D378C4CEB21FD6), UINT64_C(0x169C54E43833D841), + UINT64_C(0xCC830E8E82FE513F), UINT64_C(0xBDC4ECD7ABF34DD7), + UINT64_C(0xB5349484AEDD9FF5), UINT64_C(0x12D7ADB3A404055B)}, + {UINT64_C(0x88027C00637B7C24), UINT64_C(0x755587A6C0EB319D), + UINT64_C(0x3F24E32F2027178A), UINT64_C(0xB912054EA4FE8F8D), + UINT64_C(0x6AACA9115C9A68D6), UINT64_C(0x14772328235CF842), + UINT64_C(0x6D3020A80C0175F8), UINT64_C(0x587768A73E0F7418)}}, + {{UINT64_C(0x57E3A1F91154C74A), UINT64_C(0x80157FF5B85FB8E8), + UINT64_C(0xBEDB658DEE5DEFEC), UINT64_C(0x65C0AA98067E9A0E), + UINT64_C(0xAF9A507A229A5289), UINT64_C(0x6A13ACF0F954DD94), + UINT64_C(0xB5F3A18D53DC4C19), UINT64_C(0x06AEB3F585AF938F)}, + {UINT64_C(0x503F06228C9BB087), UINT64_C(0xEA19AC85E3FEA015), + UINT64_C(0xE446CD70403FB8FC), UINT64_C(0x1BDDC810DF5B398F), + UINT64_C(0x0CAF818FAD2CAEC6), UINT64_C(0x06983E52807AB004), + UINT64_C(0xA6B33E3C79428650), UINT64_C(0x182E3D46231BAE71)}}, + {{UINT64_C(0xAF54B735B309DC4B), UINT64_C(0x494F7441805890F1), + UINT64_C(0x3CCD5F0CF87271F6), UINT64_C(0x2914763B7638102B), + UINT64_C(0x3CA50D01FD258079), UINT64_C(0x6D9A3D4777CDD6A9), + UINT64_C(0xD81373B81F4A05CE), UINT64_C(0x16B258DBCCD443ED)}, + {UINT64_C(0xC9D4009FA3805FEE), UINT64_C(0x5EC56730225FA57D), + UINT64_C(0x4A51A79BAC17E4C0), UINT64_C(0xB389FBA3E7750942), + UINT64_C(0x2B137D6E1AB7E8BE), UINT64_C(0x3953702AD8C26EFE), + UINT64_C(0x6D86ED3EB79F2828), UINT64_C(0x36ECEEE86D6A62C0)}}, + {{UINT64_C(0xF97E85FB6B8B9B02), UINT64_C(0x3319D570C6F128F6), + UINT64_C(0xDAB74E23B4CA56DD), UINT64_C(0x50CA71EF81FCBB47), + UINT64_C(0xBFC19F2EAAD7F910), UINT64_C(0x96650F9BDB3772F4), + UINT64_C(0x5823F134B6F26494), UINT64_C(0x1B899B3ECBFBD2E3)}, + {UINT64_C(0xD1589C42F6CF8F8A), UINT64_C(0x3168AAF534DDB625), + UINT64_C(0x4C73053572ABDA08), UINT64_C(0x8B1C24C7F82913C3), + UINT64_C(0xD7D80F27239FBCD3), UINT64_C(0xB18B4F056B7C205D), + UINT64_C(0x2864763FD92056A6), UINT64_C(0x0B3DDC7BBCDB3022)}}, + {{UINT64_C(0x1AB037D6207F772B), UINT64_C(0xF050DD3488767BFA), + UINT64_C(0xFEF182FF79ABF05E), UINT64_C(0xAAFCFD0F4B25067B), + UINT64_C(0x1EB7623534E155B0), UINT64_C(0xA3B921C965CEF7A6), + UINT64_C(0x6CBD50B3D9216B0A), UINT64_C(0x3E298A719E578A9A)}, + {UINT64_C(0xC0DEE8511CCE9059), UINT64_C(0x397344BBEBA49DE2), + UINT64_C(0x45A60A85B08513DE), UINT64_C(0x55D314F9F0D07F9B), + UINT64_C(0xBF6D4D5112D12611), UINT64_C(0x49F9BCF130A7E8DE), + UINT64_C(0xDB0A90585435D109), UINT64_C(0x4DE5C43F0F706CF2)}}, + {{UINT64_C(0x7FF298D670B6D62B), UINT64_C(0xB2FF0AD4E67688D3), + UINT64_C(0x5E63A6B2805652BD), UINT64_C(0x32D81219AD74922A), + UINT64_C(0x77D2E3A3A9CCCC31), UINT64_C(0x031D571B2CF2EEE0), + UINT64_C(0x471653BD4FC7C9EA), UINT64_C(0x2322CC680AFC2A13)}, + {UINT64_C(0x3D152EFF08C6D70E), UINT64_C(0xBEC9CBCFBEC5DBD9), + UINT64_C(0x41BD49626496310F), UINT64_C(0xD23FC983B1A88E6B), + UINT64_C(0x5B622EDC5EF464E2), UINT64_C(0xC6500ADDFFCC97BB), + UINT64_C(0xF2CCD3EFAA783FF4), UINT64_C(0x51AD36047CE05CC1)}}, + {{UINT64_C(0x4796EE8324C48E44), UINT64_C(0xB4D448B0BBA7BC62), + UINT64_C(0x2F356E4A1C32B713), UINT64_C(0x980D6DCA32050781), + UINT64_C(0xB52B1826B5F6C099), UINT64_C(0x01F7D68DA144D7F5), + UINT64_C(0x09ABC596A23999CB), UINT64_C(0x17C069DD66246640)}, + {UINT64_C(0xB7D7F96C1F7E37A6), UINT64_C(0x57E198C0E46AAD16), + UINT64_C(0xB2088DF9D1C0DF8C), UINT64_C(0x0CC38EE43FDEC190), + UINT64_C(0x68DD1FC4FB2D9B68), UINT64_C(0x0AD94674AD1D73C0), + UINT64_C(0x9529C7DF1B92B955), UINT64_C(0x6711E3610D141F7C)}}, + {{UINT64_C(0x1B1A51593B87C175), UINT64_C(0x7F62A639029FF8F9), + UINT64_C(0xA2E37638C69ADEFB), UINT64_C(0x3AC773C658E309A0), + UINT64_C(0x9E7A85FD22EFD710), UINT64_C(0xD29E2F3DA60E5275), + UINT64_C(0xC4734B9B1163C9ED), UINT64_C(0x09D3204A9CBEEE57)}, + {UINT64_C(0xB2339F8D0B8A97AA), UINT64_C(0xC19C67A67AE97B4D), + UINT64_C(0x8C0E823F65425033), UINT64_C(0x447F972A8B186D7F), + UINT64_C(0x43385E2932A6C164), UINT64_C(0x95049508E9E78569), + UINT64_C(0x2AF8C598A074B68F), UINT64_C(0x18AC97B85CD5E2F7)}}, + {{UINT64_C(0xFAE6158901DEB288), UINT64_C(0x33F684F3885B8EA2), + UINT64_C(0x89A90618CFA425B5), UINT64_C(0x8F5D3C2EFBBF5B15), + UINT64_C(0x379803C6C2B6CB28), UINT64_C(0xFE683EA3990CE2DB), + UINT64_C(0xC1B3C21F7B6E4E0C), UINT64_C(0x6F152C2EEA3513DC)}, + {UINT64_C(0x235053389AB792CA), UINT64_C(0xC64C7F27282A67AF), + UINT64_C(0x6FCBDE656498B24F), UINT64_C(0x6FB7F7FCA1612A06), + UINT64_C(0xFD575B9F45C74402), UINT64_C(0x6EAD0805A709A516), + UINT64_C(0xCA6208AED4EF066B), UINT64_C(0x23880ECE93954E65)}}, + }, + { + {{UINT64_C(0x2B13B8B87FB1977A), UINT64_C(0xEA6510AD21B7871A), + UINT64_C(0xDBDCB0E8882483C7), UINT64_C(0x5E2E96644C379245), + UINT64_C(0x581D4429EBAF2C56), UINT64_C(0xA929CBB0CA79FCCF), + UINT64_C(0xE74D3D662009377F), UINT64_C(0x664661A5610CC0D1)}, + {UINT64_C(0x1F778C190570237A), UINT64_C(0x905AEB861769A370), + UINT64_C(0xF51B013BD6C06AEE), UINT64_C(0xDF0D890543EFB668), + UINT64_C(0xDD082BC311E4D5DA), UINT64_C(0x58AA1283D7BE0C1D), + UINT64_C(0x97F20D6B941E9230), UINT64_C(0x486C960C8BB614AD)}}, + {{UINT64_C(0x0B573B944CE9052B), UINT64_C(0x88B5C4CBD78F10E5), + UINT64_C(0xB131989B77DCA0EB), UINT64_C(0x7F405D8081E63C3B), + UINT64_C(0xCC31F1853818CA2D), UINT64_C(0x42F386A2FE177EA8), + UINT64_C(0x1B7DD56E9D888B2A), UINT64_C(0x3A6D84D3C8E873E8)}, + {UINT64_C(0xBCFEF8777E3FBCD6), UINT64_C(0x5DA67B53B36F3F68), + UINT64_C(0xE840229A5827FE5A), UINT64_C(0x17689956B989407B), + UINT64_C(0xAD6E3F87AFE27325), UINT64_C(0x62027C70DB1E1A3E), + UINT64_C(0x86A2C9097EBB4747), UINT64_C(0x47ADC4CC4A919D6B)}}, + {{UINT64_C(0x92381565A4CA0F15), UINT64_C(0x67FB0C76C08705DB), + UINT64_C(0x661DA00403BA6D54), UINT64_C(0xF875EF2477C5C4F7), + UINT64_C(0x0769B11C4157A282), UINT64_C(0x8ADB10ACFAF534C6), + UINT64_C(0x0312147B9CCD6AB2), UINT64_C(0x75390C00D67A443F)}, + {UINT64_C(0x0F5A29A021A1047C), UINT64_C(0xCABB96FB83A146B8), + UINT64_C(0x1375356A2A3F2F48), UINT64_C(0xDEAB754483C57DB4), + UINT64_C(0x1AB71412F5AFA2F1), UINT64_C(0x21D94B4873B58749), + UINT64_C(0xBA87E6D5FF2F369A), UINT64_C(0x4B3B90B6DBAE0E08)}}, + {{UINT64_C(0xB8648E3F9116F02B), UINT64_C(0xA5E5A03BCEF02B4F), + UINT64_C(0x21EB9835A70F456A), UINT64_C(0x44865319C8A7C423), + UINT64_C(0x57DB3941BCD6C0AD), UINT64_C(0x20D97A3A7D371806), + UINT64_C(0xBE61AA4F0F8A3D51), UINT64_C(0x7A6E0BBA13CB7D2B)}, + {UINT64_C(0xB3B98673EEA5D6FB), UINT64_C(0x534EB45F87B03BAC), + UINT64_C(0x6CEB244FA9508557), UINT64_C(0xA47FBAC7F209CC15), + UINT64_C(0x41EBF99D1FC65C19), UINT64_C(0xD1477A867341650F), + UINT64_C(0xC4E6EB8EB361E0F8), UINT64_C(0x68FAF82ED2B3D548)}}, + {{UINT64_C(0xB9CCA467F92B039B), UINT64_C(0x9F7180AF0E6F2A2B), + UINT64_C(0xC3084870ADA011F8), UINT64_C(0xC814D1DC882D7A38), + UINT64_C(0x3A145072D51C1D14), UINT64_C(0x595AC55BD70F8B08), + UINT64_C(0x67308D0571EFED45), UINT64_C(0x2C660B9822DBFA33)}, + {UINT64_C(0xC8EB4EECAF8F2980), UINT64_C(0xBC8F2D726145AB09), + UINT64_C(0x1A0A9D53C22D5E84), UINT64_C(0x8E6460089ECD643E), + UINT64_C(0x6C704F66B541E2D8), UINT64_C(0xEED597AA31995198), + UINT64_C(0xB9032FA3619126C2), UINT64_C(0x0CA4AEABB0A08F01)}}, + {{UINT64_C(0xF48A003DDB421144), UINT64_C(0x4A7FA5929885A445), + UINT64_C(0x040AA1C28E8FA3DB), UINT64_C(0xCE94D87491A15B11), + UINT64_C(0x79490F6DF0E875B7), UINT64_C(0x743A531D70318E86), + UINT64_C(0xE88CA2AFC4630CD1), UINT64_C(0x6E2FE529F5C5D4AD)}, + {UINT64_C(0x619A4F46FE062D25), UINT64_C(0xCE1B5FADBD747C4F), + UINT64_C(0x3C4283663D512728), UINT64_C(0x7FE8790871AFAEC7), + UINT64_C(0xB70063103DB8315E), UINT64_C(0x97A0397B7195E9B1), + UINT64_C(0x51EB939F84870127), UINT64_C(0x768A3CD7517A32EE)}}, + {{UINT64_C(0x25234FFA257E424F), UINT64_C(0x5D80ACE8AD164952), + UINT64_C(0x4B15F3867B4C0F5D), UINT64_C(0x71963894F95006BD), + UINT64_C(0x4781B77869963C75), UINT64_C(0xDECD94FBFD339850), + UINT64_C(0x1533454E11A9D79C), UINT64_C(0x3B17EC4092BFCA33)}, + {UINT64_C(0x58D0672A12A30834), UINT64_C(0x807B665B3E66F5D6), + UINT64_C(0xCD732AE8B164B077), UINT64_C(0xED26F82EF1F732BE), + UINT64_C(0x4E65CB2E75A7B899), UINT64_C(0x2EA2BE743C72F22E), + UINT64_C(0x60CD26F64068CEFE), UINT64_C(0x63734AC01FEBEFAA)}}, + {{UINT64_C(0x290E6008E7203401), UINT64_C(0x3497CEA1A67A0F47), + UINT64_C(0xB079862C641F5B86), UINT64_C(0xDF3CB4837A0D51D1), + UINT64_C(0x4CC0DCD1BC8D25B7), UINT64_C(0x1034F5FFBDFAC20F), + UINT64_C(0xC5896F316881DBFB), UINT64_C(0x2C6BD4A168A39778)}, + {UINT64_C(0x6FAB7060F5CEDBE3), UINT64_C(0xC51F3245F7141245), + UINT64_C(0xA3FFA5A4C3EF1EEF), UINT64_C(0x2FC2A0C7206172D5), + UINT64_C(0x6616FCFF094E55D7), UINT64_C(0xC3F309FF22EA071F), + UINT64_C(0x0685AADBDD267FAA), UINT64_C(0x0AE3722A6BC770C0)}}, + {{UINT64_C(0x7B11DD6AE67270FB), UINT64_C(0x0128A3510016905D), + UINT64_C(0x9CE64782BFE007A0), UINT64_C(0x7324986D7714E091), + UINT64_C(0x3E796B16269E4410), UINT64_C(0x707A148C9A97AD36), + UINT64_C(0xBE29A34087D5B9AC), UINT64_C(0x2F92E67EF0D882B4)}, + {UINT64_C(0xB9F0664257636C75), UINT64_C(0xA803EF99FB7F18EB), + UINT64_C(0x4B8A1D791E9BF04A), UINT64_C(0x4C43526D062068D6), + UINT64_C(0xCA59CFF0800F0FF9), UINT64_C(0x8BE857C3E4389A8E), + UINT64_C(0x5042CF565383EDE8), UINT64_C(0x06791C9A0E02F40E)}}, + {{UINT64_C(0x18A74ACEF5D076B4), UINT64_C(0x050C2161E41EC2CF), + UINT64_C(0xECC5823D484F2CD0), UINT64_C(0x63B7B1BDAA7C332A), + UINT64_C(0xAC6A274DABEE9CD9), UINT64_C(0xEAC874F87B7A7DB1), + UINT64_C(0x0FA4B8E8734BEA81), UINT64_C(0x1ADA0B97243D05BA)}, + {UINT64_C(0x724C084F822C8BC9), UINT64_C(0xAE697A1BA117425F), + UINT64_C(0x391728042CD06676), UINT64_C(0x87B4F92023213E25), + UINT64_C(0xCBA8C7A1FC373ED4), UINT64_C(0xDAC6B96BD2F10FD2), + UINT64_C(0xCC175798FD265CFF), UINT64_C(0x1631D89CB731090A)}}, + {{UINT64_C(0xB639A2086D19CB56), UINT64_C(0x78F0F35342A88733), + UINT64_C(0xC6BC527BE0323B20), UINT64_C(0x3406CEDD6DE64954), + UINT64_C(0xAA89168BBAF8A735), UINT64_C(0x7F68CEA02D7B04AB), + UINT64_C(0x6EAD81B25EEC36D4), UINT64_C(0x1C41724EBBCE0784)}, + {UINT64_C(0xDA5383AD831BEE83), UINT64_C(0xA8B7BEE3F3C29716), + UINT64_C(0x5B7E054035ACA35B), UINT64_C(0x8F006F3FB8F21324), + UINT64_C(0x915849F8A7B700CB), UINT64_C(0x77C5B34DA455A08B), + UINT64_C(0x13BA7C32D6D73C0B), UINT64_C(0x65D599C96936AC88)}}, + {{UINT64_C(0xF636CFE84DA5FFF8), UINT64_C(0xE5FD754ED1E6E947), + UINT64_C(0x8F960362388A72F1), UINT64_C(0x95B55A07381C1C38), + UINT64_C(0x31E1D02D1DF2F860), UINT64_C(0xC03243C712EA25F5), + UINT64_C(0x5FD87B58C28C0062), UINT64_C(0x5769E94D9D950661)}, + {UINT64_C(0xF88C7CCF6509E6E7), UINT64_C(0x8A021BABD3971A21), + UINT64_C(0x2655B4AA9B284C2F), UINT64_C(0xC3E14580C7050955), + UINT64_C(0x63B332E290E60DDF), UINT64_C(0x6AB86D32F1CD1B51), + UINT64_C(0x9896AC1113BC748E), UINT64_C(0x516D4D4A40FC1EBC)}}, + {{UINT64_C(0xC27DBB0A8F7B417D), UINT64_C(0xEE24827A770CF92D), + UINT64_C(0x22E08B645F9A2A6B), UINT64_C(0xAE739513E10F76A1), + UINT64_C(0xEC6E2D9DFF544277), UINT64_C(0x470C22B7740DB83A), + UINT64_C(0x643B7953EE4F1E82), UINT64_C(0x664094975556FB59)}, + {UINT64_C(0x4C15C4CB728114E6), UINT64_C(0xEFF1BB9F1F29EF7F), + UINT64_C(0x8E00B92A259562ED), UINT64_C(0xF28B146C9838D769), + UINT64_C(0x3D7C8FFF206622CC), UINT64_C(0xD521181D86457FAD), + UINT64_C(0xBF56F6639D9A3085), UINT64_C(0x11BA1FEDA24B415A)}}, + {{UINT64_C(0x149597F7035701C5), UINT64_C(0x055B1C4B6361CC7E), + UINT64_C(0x10DF1572C221AF72), UINT64_C(0x6941B1E9C3D3A167), + UINT64_C(0x29985CAB38D00AF6), UINT64_C(0xDD9B839119E385F7), + UINT64_C(0x65268E33F2E81932), UINT64_C(0x4FC872735C07CEF9)}, + {UINT64_C(0xE1644429EA012B70), UINT64_C(0x639FA8744BDF6ACE), + UINT64_C(0x7BAE6AFFF65480CF), UINT64_C(0xB9CA15AF606EFF3A), + UINT64_C(0x10F5918AC04C5263), UINT64_C(0x50F27E68ED3D0F98), + UINT64_C(0x647C1AD33134D7FA), UINT64_C(0x08EF017DF869EEFB)}}, + {{UINT64_C(0xD474B5FDF229A34B), UINT64_C(0x03819D4E29E0A164), + UINT64_C(0x0D24139A8D0910B9), UINT64_C(0xB4F45C8D9C2D8E8D), + UINT64_C(0x10E4BEA22F21718A), UINT64_C(0xD3D7ECDE63DA06E8), + UINT64_C(0xB2AAB06AF148B0ED), UINT64_C(0x630152B1AABD0F7A)}, + {UINT64_C(0xCF4D05C23B1563B4), UINT64_C(0xBFA58B4E6F355349), + UINT64_C(0x2FA4A29C04D1A769), UINT64_C(0xF4E15F9D1AEDA992), + UINT64_C(0x0FDABCEB877819C9), UINT64_C(0x5EDFCC1CC3EDB0A3), + UINT64_C(0x76625DC7D1DBCF40), UINT64_C(0x3E558CF02A7BD819)}}, + {{UINT64_C(0x07C7924F07A883A0), UINT64_C(0x18484807010EA080), + UINT64_C(0xDF8602FEB6B2B992), UINT64_C(0x38A2EFDCAA03AA11), + UINT64_C(0x60B0031119B2BB14), UINT64_C(0x9E12E7FE15E28BF3), + UINT64_C(0x2AC0917BBB0271CD), UINT64_C(0x24126EAE1558FAAD)}, + {UINT64_C(0x2EB303EF19170EDF), UINT64_C(0x6945946BF5779AD2), + UINT64_C(0xE4E5635A31B7DF96), UINT64_C(0x2B371D13D6AC3252), + UINT64_C(0x38E781988116C539), UINT64_C(0x76DF4A2C6C89FAF6), + UINT64_C(0xDFB6755D6F233984), UINT64_C(0x0CBF63F6D382985D)}}, + }, + { + {{UINT64_C(0x936D53BC56B39FA7), UINT64_C(0x751274EC511D5744), + UINT64_C(0xDAF4432AF29D41C2), UINT64_C(0x717A68C1014F8954), + UINT64_C(0x6D5D3F05736F4024), UINT64_C(0x52E785F812D037D9), + UINT64_C(0xC04CBA1902CA06C4), UINT64_C(0x432078069259A368)}, + {UINT64_C(0x1211482B2BE51135), UINT64_C(0x5B473F6EE4D32066), + UINT64_C(0x91991C8E4ADE99FC), UINT64_C(0x124378E84865136B), + UINT64_C(0xAF791646BFFFC5CC), UINT64_C(0xB7DBA11536D38141), + UINT64_C(0x0E8794265BD595B7), UINT64_C(0x39B7D642CACC032E)}}, + {{UINT64_C(0x76ACE7C8D756CE1D), UINT64_C(0x4BEC8290F8A89F09), + UINT64_C(0xE8FE848C690139DA), UINT64_C(0x8C5CB5CC6A541656), + UINT64_C(0x6127BB25A79F1A2B), UINT64_C(0x955551CCE17D0549), + UINT64_C(0x648A32E958E7C3FD), UINT64_C(0x366035A5A60D449C)}, + {UINT64_C(0xA4CF0CCB67A48368), UINT64_C(0xCF7D74F7BE344234), + UINT64_C(0x006DFFB48CFFCCCE), UINT64_C(0xBBC66664FB55072B), + UINT64_C(0xAA51DDD15EFD8AF6), UINT64_C(0x88D0CFD46F004C47), + UINT64_C(0xD18C2DBFD97BBB13), UINT64_C(0x5E5982001E7E68D2)}}, + {{UINT64_C(0xFF9FB488466B58D2), UINT64_C(0x153A751DA8041078), + UINT64_C(0xD7E96CB3D5817ADF), UINT64_C(0x56A7A135511775D8), + UINT64_C(0xB48FB40677E5DE7A), UINT64_C(0x4DE670FB997A6721), + UINT64_C(0x446019B586EFBADA), UINT64_C(0x403CC005FA535082)}, + {UINT64_C(0xF85BFEE2C2FA986D), UINT64_C(0xF2B77B880E0C320B), + UINT64_C(0xAEFE19728FE98FA0), UINT64_C(0x291FD9C7E8DB8196), + UINT64_C(0x7C3AB36DF579D9D0), UINT64_C(0x7F202BEF764622DD), + UINT64_C(0xDFD4DE34804CEBFF), UINT64_C(0x25CA634E683B7281)}}, + {{UINT64_C(0x2E3BCCC2EEB585DE), UINT64_C(0x728BAD6D9C7AB9D7), + UINT64_C(0xE298BC835C38CDF1), UINT64_C(0x0D88D423B610385E), + UINT64_C(0x5710F23571744E3A), UINT64_C(0xD9312CC99681CFF4), + UINT64_C(0x1C46AB4AF3D5B3BC), UINT64_C(0x48BE540BE2631926)}, + {UINT64_C(0xBFAB35A15CCDF14D), UINT64_C(0x16C3216CD778F586), + UINT64_C(0x2A60480004128BB2), UINT64_C(0x05505889A7D2E1AA), + UINT64_C(0xBE8B94BE1DE7C7B4), UINT64_C(0x53E72EBF05BB8DEC), + UINT64_C(0x1A38C5DA2870C597), UINT64_C(0x76F0E77BDD36B123)}}, + {{UINT64_C(0xC13D1E8A83B68DC3), UINT64_C(0x5F7291EFA93D168B), + UINT64_C(0xD1C56274CA88F0F6), UINT64_C(0x58EDFC8C868E3651), + UINT64_C(0x9D8F42AF70692949), UINT64_C(0x65903C3381B6E052), + UINT64_C(0xAD71B078262E1F70), UINT64_C(0x7A60D3BBC40DC22F)}, + {UINT64_C(0x6B64F0DBBA1FC54F), UINT64_C(0x6DDB148C81F84A0B), + UINT64_C(0xCFBD966253955B40), UINT64_C(0x67D49D079B35DB3B), + UINT64_C(0x6ED336DDA8EF7DB2), UINT64_C(0x7AAF4B8A03F2A331), + UINT64_C(0x9751DBE15C3873CA), UINT64_C(0x78479B108193A7ED)}}, + {{UINT64_C(0xB05EDD9A487DB2BF), UINT64_C(0xF905159158F7E778), + UINT64_C(0xBD643BE6DC23CBF4), UINT64_C(0xBCE094ECC1EA2427), + UINT64_C(0x2A3F3B4B4EB1BD95), UINT64_C(0xBA8FC9DC6F5E1428), + UINT64_C(0x7DC28C949F053047), UINT64_C(0x58117A0CC553DC91)}, + {UINT64_C(0x4888B1E8D4A6137C), UINT64_C(0x5DC05984F8DCBD03), + UINT64_C(0xAE2C8657D2F55576), UINT64_C(0x54721BEFFC4DA255), + UINT64_C(0x0A326693802C9EBF), UINT64_C(0xA33294AA91186DF0), + UINT64_C(0x716BD76FB822390D), UINT64_C(0x7F023C0B7C4AA61B)}}, + {{UINT64_C(0x6506DA35046A8017), UINT64_C(0x23083C16F785115E), + UINT64_C(0x7858113724051BBD), UINT64_C(0xCD36D48F5088EBFE), + UINT64_C(0x23F7F0A35E542ACC), UINT64_C(0x720187957D015B1E), + UINT64_C(0xA69E68D438D2D742), UINT64_C(0x36808A3B023B5C20)}, + {UINT64_C(0x660D03D61FEAB6D8), UINT64_C(0x77A1E18558D53E94), + UINT64_C(0x67425F4E74024E57), UINT64_C(0x3B9160080CC26788), + UINT64_C(0x0C7D287EE3643998), UINT64_C(0xB0D98DD127B3B31F), + UINT64_C(0xBA621971BB980CFC), UINT64_C(0x77591087404A2DE1)}}, + {{UINT64_C(0xB768C63DC15C3D38), UINT64_C(0x281AEC4D54DBA325), + UINT64_C(0xBB51D2E450C9B1F3), UINT64_C(0x086BB9BBE7268C94), + UINT64_C(0x9E0AF3510C7ED37A), UINT64_C(0xDBC8852839145AA3), + UINT64_C(0xA70373BEB1AB786C), UINT64_C(0x273AC4D90A73090A)}, + {UINT64_C(0xD618DB6AC280E9F5), UINT64_C(0x9D874643A9685A4B), + UINT64_C(0x7EF799B48A9C1951), UINT64_C(0xAEAE400CFFBA36BB), + UINT64_C(0x889119CB145DC10A), UINT64_C(0x08B052FF1BF7AE53), + UINT64_C(0xDEF76EC0E3F04B93), UINT64_C(0x35A13BB206DC2CC5)}}, + {{UINT64_C(0x97C54E1C613C9FD0), UINT64_C(0x7D4BEB4142581F50), + UINT64_C(0x9401F44A5BCA7CAF), UINT64_C(0x5FD7E0B036115D18), + UINT64_C(0x714FC514CD0DCE05), UINT64_C(0xF3B737082AB3265E), + UINT64_C(0x118FB47A8798EA8B), UINT64_C(0x79A1F4CDFE5C2BFF)}, + {UINT64_C(0xC0D3ABAA103FF4DC), UINT64_C(0xF5D504ED146D121C), + UINT64_C(0x38B7419B842CABA1), UINT64_C(0xE1730788907320F6), + UINT64_C(0x0037793BE111875F), UINT64_C(0x715042EA0AAB7249), + UINT64_C(0xF57D27EF15630B39), UINT64_C(0x3B5033305D0153CA)}}, + {{UINT64_C(0x44E75F39C8AAD5E3), UINT64_C(0x3890E8AE506B9C14), + UINT64_C(0xDDA7D91F38915D2F), UINT64_C(0x412802B85F28E467), + UINT64_C(0x08FF3E17711B51DC), UINT64_C(0x0F23C1EF81C96D4A), + UINT64_C(0x7B8E28A157511A7E), UINT64_C(0x6020037042C2BACF)}, + {UINT64_C(0x5457AA668559DC01), UINT64_C(0xDB0CBC6FBB083219), + UINT64_C(0x316C4876F981BE19), UINT64_C(0xA04412B99B98D6AC), + UINT64_C(0x20964CB82D95C876), UINT64_C(0xF643F29E51009C2C), + UINT64_C(0x5316D85A30C43DD3), UINT64_C(0x104EB0C846A82D48)}}, + {{UINT64_C(0xC05ADD9A0B183769), UINT64_C(0x14E8EC7A653E726A), + UINT64_C(0xE5311F878D457375), UINT64_C(0xCC1585A825D9120D), + UINT64_C(0x04F39BE371A945BC), UINT64_C(0xFBFAD37418298210), + UINT64_C(0x95F0BD1E3A9D2053), UINT64_C(0x1EAEEFEDC056D70E)}, + {UINT64_C(0x3274833C1E6E949A), UINT64_C(0xA38EA2CAC1D152E6), + UINT64_C(0xE77A10271B9A48BA), UINT64_C(0xD44CF88669B03ED3), + UINT64_C(0xB52D35E72D9D2B8F), UINT64_C(0xFA67F927F99BD52B), + UINT64_C(0x3910D907DF337872), UINT64_C(0x53E3909C90BF7A7F)}}, + {{UINT64_C(0xC558DB4E8FC5B40A), UINT64_C(0x330982A37511657E), + UINT64_C(0x81A476210B883053), UINT64_C(0xB1F534713F3DB1D4), + UINT64_C(0x8A2B835A0C804E24), UINT64_C(0xF8537A453012783B), + UINT64_C(0xC761FC419DC2A56A), UINT64_C(0x50369DCB2C12BE25)}, + {UINT64_C(0x19877D98CA00D808), UINT64_C(0x305586B51DA7BD8F), + UINT64_C(0x683BF46E0FB6F9E7), UINT64_C(0xF23F54577E53ECB1), + UINT64_C(0xA09A090117EE25E8), UINT64_C(0x61AF93055BAA52EC), + UINT64_C(0xC12B74BEA8104024), UINT64_C(0x6BDABBAA60A876E3)}}, + {{UINT64_C(0x0EC8ADDA438800F3), UINT64_C(0xA47197E64FBF0259), + UINT64_C(0x324E06961767F99F), UINT64_C(0x0E455BC2E440710A), + UINT64_C(0xFE2316897A5984F7), UINT64_C(0x7706D5C73CF323D8), + UINT64_C(0x6DFE4B08FFC9FB5E), UINT64_C(0x5E912EC78F9D5207)}, + {UINT64_C(0x9B71034DD7D1AC99), UINT64_C(0x5786B8AD33D5ABF4), + UINT64_C(0x70E625B7426E2B80), UINT64_C(0x71D53ABB6A33883F), + UINT64_C(0xB42DE25AAA10AA82), UINT64_C(0x709B3CDFC313C9F3), + UINT64_C(0x49F3BBC799A04BD3), UINT64_C(0x5B56D9BB3390B190)}}, + {{UINT64_C(0xA4D655E505DAE0B4), UINT64_C(0x3402DB147016EDE7), + UINT64_C(0x58D4EFC5117097DC), UINT64_C(0x4F397AFC61AE9FDC), + UINT64_C(0x3EE32FBE85DE0E4A), UINT64_C(0xE5C9410018F9DA9B), + UINT64_C(0x6248B57030778D74), UINT64_C(0x569D70C9FF879B98)}, + {UINT64_C(0x385FD4C879A7786F), UINT64_C(0x779353B992C6E962), + UINT64_C(0x9C9103FB5AA82E08), UINT64_C(0x128BD7DDEC3B37D1), + UINT64_C(0xCC0376F898AE8C82), UINT64_C(0xDD33B1A3289AFB7D), + UINT64_C(0x2B3A6BE5F1D2F3AC), UINT64_C(0x2B342E8F58C1DCA0)}}, + {{UINT64_C(0x4ADA9F0F924940FC), UINT64_C(0x636260E5BD4E799E), + UINT64_C(0x10650FC885ECD23F), UINT64_C(0x04765F0532AE8105), + UINT64_C(0x22F515E9DEEBFAF2), UINT64_C(0xFB6611B1EA6ED3BA), + UINT64_C(0x2D260305B116A647), UINT64_C(0x540A895ACEB63ED4)}, + {UINT64_C(0xA5C897EC65640BD2), UINT64_C(0x1D82AD214EB90B65), + UINT64_C(0x2A00C3C3A2BD6C71), UINT64_C(0xD9BE5D85A185CE8C), + UINT64_C(0x0FA039FEE02E9DCD), UINT64_C(0xAD1DC7C0806B50C1), + UINT64_C(0xA78992C20C6AB58F), UINT64_C(0x7D58FDA7FBE348EA)}}, + {{UINT64_C(0x07E652776F4DBDFC), UINT64_C(0xC35157C0E4E35AA2), + UINT64_C(0x9844955DFAF9CF8D), UINT64_C(0xD1832D2FE577A918), + UINT64_C(0xCDD6CCFD212A678C), UINT64_C(0x19406763262F2BC7), + UINT64_C(0x1B5FE0FC7DCF82E3), UINT64_C(0x72FCB51228083B97)}, + {UINT64_C(0x2EB13174CAE3C67A), UINT64_C(0x571DBD3528F8CB44), + UINT64_C(0x3F3514DA7B2F56B1), UINT64_C(0xC59066972E1D4CD8), + UINT64_C(0x9F9589DA3709FD27), UINT64_C(0x539CBA98DCF0E714), + UINT64_C(0xC6FDBE8236D31BAC), UINT64_C(0x22501C258860078E)}}, + }, + { + {{UINT64_C(0xB6BAA4C5E7462A35), UINT64_C(0x4CABEF232DE0E694), + UINT64_C(0xE595F2CE67A94587), UINT64_C(0x0B4D6B8065DE13EF), + UINT64_C(0x6ED1FA63B88601AA), UINT64_C(0x63DAF3EF254800DF), + UINT64_C(0x15F07C6B6EDECF60), UINT64_C(0x746CB00F49F82DF6)}, + {UINT64_C(0x4860833FF95DC407), UINT64_C(0x245FDFB1D4D68D59), + UINT64_C(0xFD7E134628C585C1), UINT64_C(0x3307AAE7AA744D74), + UINT64_C(0xAB21F1D527C71537), UINT64_C(0x1BED3B9C541ADB51), + UINT64_C(0x48E656280B804584), UINT64_C(0x10213DC396C62E82)}}, + {{UINT64_C(0xA971A3219E900795), UINT64_C(0x41151E65A28AD250), + UINT64_C(0x88FBF84CB46F0286), UINT64_C(0xCE5E34E32C5AA2BF), + UINT64_C(0xC30F0784FE74FBD6), UINT64_C(0xA19ACA519DDDC5BB), + UINT64_C(0x30CB6369D954B6AF), UINT64_C(0x20C72B2B1BA9F34A)}, + {UINT64_C(0x0D9F6CC9421721EE), UINT64_C(0x5239E3D2701F3853), + UINT64_C(0x48CF795D10A37D0D), UINT64_C(0x2822ACF8C1454415), + UINT64_C(0x9EF24913F9392C27), UINT64_C(0x9317897633F3F273), + UINT64_C(0x0AD1CAB2AADFE5DB), UINT64_C(0x2454195102019622)}}, + {{UINT64_C(0x577E8E89122FE6A1), UINT64_C(0xDFED3EF029DCABC8), + UINT64_C(0x91B0AE211F1EC613), UINT64_C(0xF4FB2E9F43EC585C), + UINT64_C(0x402F8D435AFDC7FC), UINT64_C(0x7DF6E3F43BFC6DDF), + UINT64_C(0x4B14B20B2094F2CE), UINT64_C(0x6621FA23C9F3FCE9)}, + {UINT64_C(0xC167636B61482134), UINT64_C(0xC2D96AF4BD89AA34), + UINT64_C(0x4D19C54777A1383E), UINT64_C(0x86476C72994B20EC), + UINT64_C(0xD71188DA3611027E), UINT64_C(0xEEB9CB25BFA77EA0), + UINT64_C(0x63E037067A9FFDFB), UINT64_C(0x52FBC7359E1F711D)}}, + {{UINT64_C(0x4D58058F9DCD39C8), UINT64_C(0x742DCAC8560A57E3), + UINT64_C(0x51314E8AC40593C3), UINT64_C(0xAA35CAF4BBE9F40F), + UINT64_C(0xD0D06ACC7B4DF87C), UINT64_C(0xE02B48CB897586CC), + UINT64_C(0x30AB25AB9F14AB3B), UINT64_C(0x77B9D8A22DCFFD42)}, + {UINT64_C(0xDE1678E743F00508), UINT64_C(0x2F82D94EE59D0799), + UINT64_C(0x1D68DC5F7D85FF61), UINT64_C(0xCCD286EAA577E85E), + UINT64_C(0x7820217205653CE9), UINT64_C(0x80BCF42C4B096045), + UINT64_C(0x983AC1DA8D9DC78C), UINT64_C(0x48ADE8D1757F008E)}}, + {{UINT64_C(0xFE9CADC1F131C430), UINT64_C(0xCB4FACAED4ACF7F9), + UINT64_C(0xA75B35B64B81AA0C), UINT64_C(0xDB73BF2A6132294C), + UINT64_C(0xDC1998EE35FC4FBC), UINT64_C(0x1125CF55F1A96BA6), + UINT64_C(0x800577A81AC0769D), UINT64_C(0x0AF21977E4CDAC1C)}, + {UINT64_C(0x12CAE81D91DD37F9), UINT64_C(0x81F5BAF61A432775), + UINT64_C(0x62A87C5D81CBCB7D), UINT64_C(0x781596EF2D311E47), + UINT64_C(0xADA41A240EA6CE86), UINT64_C(0x064E561D9198BFEE), + UINT64_C(0xD2EBB0D78784FC32), UINT64_C(0x60F7F749E00D527A)}}, + {{UINT64_C(0xB6220879F9F5101B), UINT64_C(0x8E51E911ED750B14), + UINT64_C(0x5A0FF85156B8B8BB), UINT64_C(0x6EFDB4CCE97F0F1B), + UINT64_C(0xEF4E3272CFEE47C1), UINT64_C(0xFB33D3FFDB73FA56), + UINT64_C(0x8702D241D5C182A7), UINT64_C(0x1342C905B061F4C9)}, + {UINT64_C(0xCCFDFF8B40B3B920), UINT64_C(0xE01ADAA1234F25BE), + UINT64_C(0x6EE2AFD9CA98B24D), UINT64_C(0x833C8017933CF022), + UINT64_C(0x9446CDC88B7E88DA), UINT64_C(0x08A83DEB0252B0C4), + UINT64_C(0x5AFAE687983B95BF), UINT64_C(0x417A1691BBF76F93)}}, + {{UINT64_C(0xF1100073E270155C), UINT64_C(0x913B27AB37D73458), + UINT64_C(0x0723B646F8799368), UINT64_C(0x891C7858B8599816), + UINT64_C(0xBDCF3C7AAD13A257), UINT64_C(0xF473BEE8106E5B5A), + UINT64_C(0xB093D48427722F06), UINT64_C(0x33895F5C8E4CF84D)}, + {UINT64_C(0x530F59FE1A92A242), UINT64_C(0x703FDC05D5444E38), + UINT64_C(0xEC6FB903A9B55C56), UINT64_C(0x102929BAECEFEF64), + UINT64_C(0x76B9B329BFC1F153), UINT64_C(0x3F794AD77A32A9E4), + UINT64_C(0x9A344BD7AD9D9F76), UINT64_C(0x1281308B8F22FE76)}}, + {{UINT64_C(0xDBAD1D0455D6DFC4), UINT64_C(0x1674C09F78FB03A6), + UINT64_C(0x10F038F004F4EB90), UINT64_C(0xD6F8CEBAC933F8C3), + UINT64_C(0x6D3018D6322E4AE8), UINT64_C(0x3C0E8DD865FB0400), + UINT64_C(0x0E04FEA5F8603F6E), UINT64_C(0x417F6C35CF3D2FBA)}, + {UINT64_C(0x4F62D458C6DBF972), UINT64_C(0x1D66CC0B3C69018C), + UINT64_C(0xDB741BC64F1297A2), UINT64_C(0x7EEDA8D5DDEC7115), + UINT64_C(0x0B5D07B39A910CA8), UINT64_C(0x5D74BC7E3D0FA9E7), + UINT64_C(0x0F3D10634DC25E76), UINT64_C(0x7BDF3F13DDD0F35E)}}, + {{UINT64_C(0xF4B8E8F949A8E647), UINT64_C(0xD2045FF4C9C7F249), + UINT64_C(0xA73E20731DFCE331), UINT64_C(0x538FE0C260186A35), + UINT64_C(0xF6931385D44D55DC), UINT64_C(0xAA0FAE8BBD2D5D5C), + UINT64_C(0xA1DF24510CE9E7B7), UINT64_C(0x453B0239F6E915DF)}, + {UINT64_C(0x92E689FD4BD5604D), UINT64_C(0x302F7B7CEA5FB1A5), + UINT64_C(0x9A065527C6C18BD5), UINT64_C(0xB6B9302338018472), + UINT64_C(0xEC4F8E47775EFE83), UINT64_C(0x5EFED6CD5D557E9F), + UINT64_C(0x883149A7F32DB82A), UINT64_C(0x32BB4DD5A83BA057)}}, + {{UINT64_C(0xB45FB2398CE494A6), UINT64_C(0x6E80D72B015A171F), + UINT64_C(0xE17A3D2B846810F0), UINT64_C(0x86A2C703C689398E), + UINT64_C(0x163CC0EAF84177D3), UINT64_C(0xCFC5453608485195), + UINT64_C(0x49ED48E3AEA228CD), UINT64_C(0x51D4CD9A5E05A3FA)}, + {UINT64_C(0xD75C938E0A28C1F0), UINT64_C(0xE18FCBDB0D986264), + UINT64_C(0x0E29546B0129A474), UINT64_C(0x718C5F10B4E6503E), + UINT64_C(0x5BFFEF16E89FFD06), UINT64_C(0xD87F3E8D7ABFEFBE), + UINT64_C(0x3E6EEBD8B05607DF), UINT64_C(0x1B3135D4030FC02D)}}, + {{UINT64_C(0x1FCA9768AFD466ED), UINT64_C(0x3711CD99DDE4FE72), + UINT64_C(0xFA6A96FBA0BC2449), UINT64_C(0xB4E3322DDF617AD1), + UINT64_C(0x652400B538997D42), UINT64_C(0xE4033FDD5869744E), + UINT64_C(0x5E56CF67F8CF5A3F), UINT64_C(0x0B68F41839950DFD)}, + {UINT64_C(0x31F316B3921A1064), UINT64_C(0x084CF2C3860AB95E), + UINT64_C(0x4FAE7CBD33A08792), UINT64_C(0x13E887AE5C2F1F4F), + UINT64_C(0x1B4D941C5A2C1393), UINT64_C(0xE7043946BFDDC322), + UINT64_C(0x2D73CD5BA801A880), UINT64_C(0x6CDC6BC245019EB0)}}, + {{UINT64_C(0x68D9AE8272A9BDDF), UINT64_C(0x3EA7B5D0C4F79A39), + UINT64_C(0x8A9E525DBFA9189D), UINT64_C(0xC4BCDB4F08088070), + UINT64_C(0xD4F1B3D0F0019D99), UINT64_C(0xCD3981D03A21C513), + UINT64_C(0x4A85B07A51146A17), UINT64_C(0x44E11FCBAC9373DE)}, + {UINT64_C(0x45C28B85406B1F1D), UINT64_C(0x7669767BA598A7AB), + UINT64_C(0xE4DC8F54CABA790E), UINT64_C(0x7259E49F4002264B), + UINT64_C(0x54142E6D78A9F0E3), UINT64_C(0xFC3843172D74E9B1), + UINT64_C(0x949A6E31471BA3C1), UINT64_C(0x2196E341269DBD46)}}, + {{UINT64_C(0xF090B2141C85C152), UINT64_C(0xC66553E02980953D), + UINT64_C(0x50050906908B9243), UINT64_C(0x489B07B818F1B4C3), + UINT64_C(0x39C781DE4A6A7071), UINT64_C(0xC3FCC6B415FAF2A8), + UINT64_C(0xC9A9D650DF30D339), UINT64_C(0x2BCF89690DC87B05)}, + {UINT64_C(0x6BD111010D36DD59), UINT64_C(0x9AFD4507AF38D4C5), + UINT64_C(0xE9A345A31FEE36E3), UINT64_C(0x141074A837454BA6), + UINT64_C(0x89747031F603533F), UINT64_C(0xAB75320E897F9FA2), + UINT64_C(0x52927CDF594481A4), UINT64_C(0x2C8FB10BBC2244A3)}}, + {{UINT64_C(0x456358B81C40C77E), UINT64_C(0x26A15EA81732ED35), + UINT64_C(0x36F26CBB9AEA6548), UINT64_C(0x6589AC51D7FAD4C1), + UINT64_C(0x4804A1BC9067988D), UINT64_C(0x633F203E4219111A), + UINT64_C(0xCD90D01C123C4BBE), UINT64_C(0x617EEF2782519788)}, + {UINT64_C(0x8A7F22A79DDFBBB9), UINT64_C(0xF8CEDC4EC8F9E873), + UINT64_C(0x547A5995F8B00FFD), UINT64_C(0xC6780AC53132F91D), + UINT64_C(0xAD7113506DD34140), UINT64_C(0x1C0A71EC83D8A3E6), + UINT64_C(0x687D67C786E0466B), UINT64_C(0x7CE57B02BD67492F)}}, + {{UINT64_C(0xEF5A0FECC4A0F3CF), UINT64_C(0xCEB2194BE3C2A79F), + UINT64_C(0x7371FF56D37AFB50), UINT64_C(0x881C254A68CFB693), + UINT64_C(0x31F411B17A5B61F5), UINT64_C(0xC2141EEB13E15910), + UINT64_C(0xD4B5D01575C6566F), UINT64_C(0x1335132C60C17F10)}, + {UINT64_C(0x49A2D9CBF9EED825), UINT64_C(0x0514441AE7C41C5A), + UINT64_C(0xCE9F19F7636BA847), UINT64_C(0x5517505744F44B74), + UINT64_C(0x0ED9CB8AD26F9DEA), UINT64_C(0xBBB248C084BD07A6), + UINT64_C(0x2C867FB19CD8A6C1), UINT64_C(0x230B41222186DB7C)}}, + {{UINT64_C(0xC59AF140BC6B2647), UINT64_C(0xCD781156D5CA9D30), + UINT64_C(0x479CFCF804C5C668), UINT64_C(0xEAC4A5C0B08BEEC5), + UINT64_C(0x8772B60E6C67636A), UINT64_C(0x99266F13631A6EF3), + UINT64_C(0x4DADE9DE0D368B05), UINT64_C(0x2F9488CBE42CB970)}, + {UINT64_C(0x4882B1D4B6FB1965), UINT64_C(0x6423BBB4AF24AD57), + UINT64_C(0xE52B487EC406CF8F), UINT64_C(0x502802ADD49D4935), + UINT64_C(0x6832E21624D5128F), UINT64_C(0x42190CD4670EAE40), + UINT64_C(0xA2D4FDB439258F40), UINT64_C(0x6127E350C5CADEEA)}}, + }, + { + {{UINT64_C(0x160D95BD896F045C), UINT64_C(0xBB8AA2C5406D8CA3), + UINT64_C(0x1B4E10B394F274E5), UINT64_C(0xE6D305446332DB6B), + UINT64_C(0x95250D6A5AAE23C5), UINT64_C(0x67458318FC831AC1), + UINT64_C(0x05D21C9B63510D9A), UINT64_C(0x2416562C20F2A3CC)}, + {UINT64_C(0x8B666C7AD6DE2B6D), UINT64_C(0xC49D98D0E54B6B3C), + UINT64_C(0x73315C3F90558A8E), UINT64_C(0x212910AD44E631C4), + UINT64_C(0x7D2EBB7EBB053E42), UINT64_C(0x396AD2614FEF86C3), + UINT64_C(0x90DA355C5E410BED), UINT64_C(0x344A24DD43C9183F)}}, + {{UINT64_C(0x509715496AC2509A), UINT64_C(0xFCAF5541FDA9F8AF), + UINT64_C(0xDDFDC6A9B3F2B1F5), UINT64_C(0xBCA36B59B7DA428B), + UINT64_C(0xB55602BE357DCA59), UINT64_C(0x803C92A1CE692E5D), + UINT64_C(0xCD723C3D6DC19967), UINT64_C(0x3EE4BC03F741820F)}, + {UINT64_C(0x70113C23BB103F3B), UINT64_C(0x35FA914436553268), + UINT64_C(0x505B79171C026E84), UINT64_C(0xA43E12561ED89D68), + UINT64_C(0xC8AE5CFBC87289BE), UINT64_C(0xD573E0CF2B9C5072), + UINT64_C(0x709B1C4B475FA7A4), UINT64_C(0x505ADF5981D07D11)}}, + {{UINT64_C(0x1BC79E6AA4AFD6AC), UINT64_C(0x156C1B3626866C93), + UINT64_C(0x6E4F2FB690A70847), UINT64_C(0x745824E0E37556C2), + UINT64_C(0x384788E85BF6585C), UINT64_C(0xAD6A726B87EFA785), + UINT64_C(0xD93A3B7E40FEB98E), UINT64_C(0x4BA6A352282EB335)}, + {UINT64_C(0x36EE7727937FA288), UINT64_C(0xF1334DD2C0513862), + UINT64_C(0x7AF1B32E30FB68F5), UINT64_C(0x2B0BAEFE3196B14D), + UINT64_C(0x5E7BA8D721E84FA0), UINT64_C(0x4DA767CD256AE375), + UINT64_C(0xA8D467F8E0F658DB), UINT64_C(0x7709039E20DB1855)}}, + {{UINT64_C(0x6155BDC4B26EE5F4), UINT64_C(0xF0CFD2B7C48A3913), + UINT64_C(0x75AABCA163BFB3E5), UINT64_C(0x9232746DC525DA22), + UINT64_C(0x5F00A6CD333F2B14), UINT64_C(0xB3216C2BF8ECA91E), + UINT64_C(0x9A1F1EE8F6E4FF19), UINT64_C(0x3C76ADCFB0074F5D)}, + {UINT64_C(0xA414BFFB45309788), UINT64_C(0x83EF3C3F86539F4F), + UINT64_C(0x0AB8CEEA576C4A69), UINT64_C(0xA01CC45813BEF0E4), + UINT64_C(0x855B7F00EA181987), UINT64_C(0xA97F14A9E30F184F), + UINT64_C(0xB17DF2F0554D467D), UINT64_C(0x29F0A944D6C8100D)}}, + {{UINT64_C(0x57796871C7D083C9), UINT64_C(0xB83CD7FF0DA74190), + UINT64_C(0xA077968F97DC4A71), UINT64_C(0xC27429EC08ACDC2D), + UINT64_C(0x04996DF62B52DFEE), UINT64_C(0x13511C3A1C182059), + UINT64_C(0xCC27218ACEFA8F7F), UINT64_C(0x0757BD45A0E51331)}, + {UINT64_C(0x05F1D65D453DD761), UINT64_C(0x71D57417F3C5F5DF), + UINT64_C(0x0C1E204338FA1AE7), UINT64_C(0xA68A6F2E36E7BB29), + UINT64_C(0x3F3CA00F221EA420), UINT64_C(0x840830F61484F503), + UINT64_C(0xA011EA6118380FC5), UINT64_C(0x63E08325D4D5F0B4)}}, + {{UINT64_C(0xAC4F176AA5352F43), UINT64_C(0x2C0A1D79F5346C89), + UINT64_C(0x3F16B2ECEA7357BC), UINT64_C(0x1FE6E8239CB644F4), + UINT64_C(0x54E68BB4E2C9912E), UINT64_C(0x82B35E8E98E581AE), + UINT64_C(0xD855E028D6611B81), UINT64_C(0x3D420591A8C7ABE1)}, + {UINT64_C(0x71326CB4A4D7C106), UINT64_C(0x5BA8407F7E21F3EA), + UINT64_C(0xD33581D740DA0D53), UINT64_C(0x7AB205460C1E7D99), + UINT64_C(0x71438057CB0075B5), UINT64_C(0x2F9AD50CCB952FEE), + UINT64_C(0xFDCF4A128B942A98), UINT64_C(0x025CFA1BD8BB5BE5)}}, + {{UINT64_C(0x2BF4ABF727BF5931), UINT64_C(0x78BD4315D080A1BA), + UINT64_C(0x1EB55607F12B24D0), UINT64_C(0xB7BC25D68E8BAB49), + UINT64_C(0x01B666AE60E68A74), UINT64_C(0x9E1E74179058E10D), + UINT64_C(0x5D2493D0AB695D1E), UINT64_C(0x714D7BB5271B7FBF)}, + {UINT64_C(0x869B52F63BD07521), UINT64_C(0x3413A47C038E8A90), + UINT64_C(0x2B7724D4C2B6D60D), UINT64_C(0xD500A48CB984B181), + UINT64_C(0xDCD8259499ED9E13), UINT64_C(0x33C480BA09397DD9), + UINT64_C(0xF98DA63DB36CB025), UINT64_C(0x0593108A0C33FD92)}}, + {{UINT64_C(0xE3BBCCB7F01AB893), UINT64_C(0x3D8D3BD26CE61B0B), + UINT64_C(0xB030CE07FC00DB91), UINT64_C(0x78ADD938AA51D38B), + UINT64_C(0x8FA757976CAF34CC), UINT64_C(0x28C34C7E494B4CCE), + UINT64_C(0xECD5F38579091116), UINT64_C(0x455FD9533512B9B1)}, + {UINT64_C(0x1D2150EF3CD57BE0), UINT64_C(0xF130B2A043CEF565), + UINT64_C(0x1146159CFA4A4082), UINT64_C(0xDE949D6AD6BB7E30), + UINT64_C(0xEB8984ED40A2A53B), UINT64_C(0xB9E72FE4B920CDBE), + UINT64_C(0xA507DDCAB43A51A9), UINT64_C(0x3EB7D79F6C7C6F7F)}}, + {{UINT64_C(0xDF75FE14DD356637), UINT64_C(0x4B21206BFBC9E9DB), + UINT64_C(0x0A33BCF3A729BB2F), UINT64_C(0xA61A363C686F49F2), + UINT64_C(0x426A460334BD498C), UINT64_C(0xE87EDA60705F7CD3), + UINT64_C(0xF9D24A5AE633E9A7), UINT64_C(0x52063D93A4325C1D)}, + {UINT64_C(0x02890EEC23EEB132), UINT64_C(0x00430E865D39DDFD), + UINT64_C(0x118E18F6A1E47638), UINT64_C(0xBB38E8C75806CD2F), + UINT64_C(0xB7E5375EF7CE9486), UINT64_C(0x73DAA9EBFDE35E82), + UINT64_C(0x117E476182070D71), UINT64_C(0x317DF0BE915BBD57)}}, + {{UINT64_C(0xF691548725B74127), UINT64_C(0x4333E7F518162D83), + UINT64_C(0xB435BEF9A429665E), UINT64_C(0xEEE9B7B720B9D358), + UINT64_C(0x436ABB8BF8D1D44F), UINT64_C(0xD1219F9ABF38B81F), + UINT64_C(0x7CEE70639035DE38), UINT64_C(0x34129008B341FFDA)}, + {UINT64_C(0x6595A1B099745C5B), UINT64_C(0x07DF297A2C0685BB), + UINT64_C(0xEE85C714998110AD), UINT64_C(0xD251E587E2A8AD4E), + UINT64_C(0x9A38F9DCEC4D02C1), UINT64_C(0x60DA566FCCDAF4C8), + UINT64_C(0x1BD9A21A90B08CA2), UINT64_C(0x6D9414AEE97F4EA0)}}, + {{UINT64_C(0xCBFAA86174973250), UINT64_C(0xC58A0F6BAB15AA60), + UINT64_C(0xC00F822DFDB7A15D), UINT64_C(0xAEA74910FA067DEF), + UINT64_C(0x3750367B81F3EFC5), UINT64_C(0x3183E3E8AFC6EC7C), + UINT64_C(0xFB62717ADA10CD9F), UINT64_C(0x40431C1D6EEC9774)}, + {UINT64_C(0x423E731005914824), UINT64_C(0xA4F7A9789DE23908), + UINT64_C(0xC151A73C7D5D18AA), UINT64_C(0x1B85B7CBED1EAC6B), + UINT64_C(0xF25CAF8C075066C4), UINT64_C(0x99508D708004809B), + UINT64_C(0x6BEDC19F212271C6), UINT64_C(0x2CCDAB3977A5AE84)}}, + {{UINT64_C(0x14203BEC23389925), UINT64_C(0xFBCA94CFCF059388), + UINT64_C(0x17626B408124F30F), UINT64_C(0x2208F6E5C1C98EB6), + UINT64_C(0x9B385200961F4C48), UINT64_C(0x1C9F33E8002E5C7A), + UINT64_C(0xC426A94058B6DD91), UINT64_C(0x6DF740E51CEC7286)}, + {UINT64_C(0xF939798687E56C60), UINT64_C(0x84425935587728F6), + UINT64_C(0x394A3A012FE267FB), UINT64_C(0xB9C6481FD451CD8E), + UINT64_C(0xA6AB4F4B5340AAC8), UINT64_C(0xD7FD96759B85FF63), + UINT64_C(0x3D3AE591AC5AEC86), UINT64_C(0x43283823B96673F7)}}, + {{UINT64_C(0x24214D2374E61BA9), UINT64_C(0xB41CFB58F69ED123), + UINT64_C(0x8E91FE0254F5F407), UINT64_C(0xFB9899364F84200B), + UINT64_C(0xAAE985CE024E62F0), UINT64_C(0x896815EDA0BB20F6), + UINT64_C(0x3536095B3DF1E5BC), UINT64_C(0x31C5AFA09E1EB847)}, + {UINT64_C(0x5C32910FC2B9B4F0), UINT64_C(0x32ABA81450DBB2E8), + UINT64_C(0x17E2B52F6AAF8A27), UINT64_C(0x142E63AC111CD6C3), + UINT64_C(0x15D5F29722B6D227), UINT64_C(0x22380A783C14CE28), + UINT64_C(0x29F4951C5249F727), UINT64_C(0x24C25987274839DE)}}, + {{UINT64_C(0x13F552E914C6CA73), UINT64_C(0xCE9659270B154556), + UINT64_C(0x330E6D5983EE34E2), UINT64_C(0xFB7B6051E8035AD6), + UINT64_C(0xC58FBCA85B2D081D), UINT64_C(0x254FEDD191D78C8E), + UINT64_C(0x0438FF98CF877F74), UINT64_C(0x479CEE4A8BB12DC9)}, + {UINT64_C(0x1855A1C37A0CBCDD), UINT64_C(0x3667FFBB000FFC35), + UINT64_C(0xC053A4BFF880E9C0), UINT64_C(0xF8E1BCC105AEFE0E), + UINT64_C(0x1AFEE0F20B65DBBC), UINT64_C(0x63ACB97B9E945F96), + UINT64_C(0xDFC8096580B8F0BA), UINT64_C(0x12A145EBE919BE03)}}, + {{UINT64_C(0x8BBD02E8C6008C86), UINT64_C(0xB7ACE6C4516BDD2F), + UINT64_C(0x914AE008E5036467), UINT64_C(0xD06CF39287987C22), + UINT64_C(0x0F78C12DC71FFCB4), UINT64_C(0xB4612FBBCBF7A3B3), + UINT64_C(0xB6E692557B711004), UINT64_C(0x68CEE9EC1EA5ED45)}, + {UINT64_C(0x45E4A8D15009FAD4), UINT64_C(0x1D303BD7B1458DF2), + UINT64_C(0x388523D9BE13EFBE), UINT64_C(0xAC9F6D4AC15147CD), + UINT64_C(0x551F34709ECFA216), UINT64_C(0x0FF1AA33AC9311F4), + UINT64_C(0x34EED866B8D84926), UINT64_C(0x6BD5ED1C72C2CC5C)}}, + {{UINT64_C(0xA283EC1A9BDD8695), UINT64_C(0x451A730BA599147A), + UINT64_C(0x9B6CC56ADA71F52B), UINT64_C(0xB1002CF577D55722), + UINT64_C(0x354328CD07A8D105), UINT64_C(0x86B04CA87A21026C), + UINT64_C(0x53BADA3D50EC9794), UINT64_C(0x0BD230C8BBC32D2B)}, + {UINT64_C(0x322E97FAF7E3C388), UINT64_C(0xA0F06207AD6FEB4F), + UINT64_C(0x3B05C04E9A128AA1), UINT64_C(0x05DE3C902214D1AB), + UINT64_C(0x632C92A7E69A562B), UINT64_C(0xE9F9DEE06BEFC0B6), + UINT64_C(0xD269F54763E05275), UINT64_C(0x04B2E1AB6C56EC35)}}, + }, + { + {{UINT64_C(0x9DB921FCFEB514D4), UINT64_C(0x00AC3CB4485F4F30), + UINT64_C(0x0DAFF6F9FED6B15B), UINT64_C(0x74C16AF59A5E67CB), + UINT64_C(0xAA73C142A8275392), UINT64_C(0xBF53E45446A65634), + UINT64_C(0x2819387F03D87479), UINT64_C(0x4BC9293DB495DDDB)}, + {UINT64_C(0x755EC69618AE902B), UINT64_C(0x147291751E9C6398), + UINT64_C(0x82396B3F29508353), UINT64_C(0x932903AE08614C4D), + UINT64_C(0xA4B24D6450BC308A), UINT64_C(0xA89DAA2F88BDA41E), + UINT64_C(0x94FC7C4684F8A09A), UINT64_C(0x1054948EB4931402)}}, + {{UINT64_C(0xF3E0BB8F8A7BA306), UINT64_C(0xC31FDE41A45240B6), + UINT64_C(0x05AD7E1AE1755B86), UINT64_C(0xDDBFC1F9BCDD1230), + UINT64_C(0x8006BDBBB4F8B744), UINT64_C(0x865829028ADE1D9A), + UINT64_C(0x8FEFE3B7078339E6), UINT64_C(0x342996F446216EA5)}, + {UINT64_C(0xE0E1B5B39B3D4651), UINT64_C(0xB2FC080CAABBE714), + UINT64_C(0xC720BD5EA522F01C), UINT64_C(0x11D0543B95F65EBE), + UINT64_C(0x0880103C484D4123), UINT64_C(0xD3F969F396976F8B), + UINT64_C(0x614855B7FDBA1CC1), UINT64_C(0x56D4EEFEB3EC4B2E)}}, + {{UINT64_C(0x029DC51C3894EB7E), UINT64_C(0xF4AAE8789D9876B7), + UINT64_C(0x0FCD3C74E2388A33), UINT64_C(0xAD4C4CF791E31014), + UINT64_C(0x34F61FF111977D22), UINT64_C(0x984416FD7AAFC8D7), + UINT64_C(0x4A4413615DAE6048), UINT64_C(0x50D2387B7B1AFA0C)}, + {UINT64_C(0xD8BE85A1BB8211DB), UINT64_C(0x195092C3DD31FED9), + UINT64_C(0x1F6FE6ABC1764C23), UINT64_C(0x6A25DE233F067D75), + UINT64_C(0x8DB614AAA244AA1D), UINT64_C(0xAB0D747325B11975), + UINT64_C(0x714067C5C036EA42), UINT64_C(0x379935D66F3B1132)}}, + {{UINT64_C(0x1E8339D48E762CB5), UINT64_C(0x1857091C0DF30209), + UINT64_C(0x2E4AC9A729523926), UINT64_C(0x5983F6D2B7D5A5BB), + UINT64_C(0xA99D8D11F31262FE), UINT64_C(0xE722945DA5CAB7C2), + UINT64_C(0x3196BFBDE8767862), UINT64_C(0x43707848A59924F6)}, + {UINT64_C(0x8F0E368AC78D8788), UINT64_C(0x50811A264BF7DA53), + UINT64_C(0x9E0CB8FEDCA664FF), UINT64_C(0xD2B8DFA082EDADD5), + UINT64_C(0x09C457724A0C48E4), UINT64_C(0x6EC46A5C22511381), + UINT64_C(0xF5810BB4313E87CC), UINT64_C(0x20C5F006AB5A6BAB)}}, + {{UINT64_C(0x76C6F60AD87A06AF), UINT64_C(0xAB7144AD78FDEBB5), + UINT64_C(0x956C36E75646A659), UINT64_C(0x5477D0F6B785E745), + UINT64_C(0xFE9FF2324594BC06), UINT64_C(0x1783B9A03039A102), + UINT64_C(0xD41E6C5A90DB0AB3), UINT64_C(0x43749FB47550121F)}, + {UINT64_C(0xB7C6D143D17CA661), UINT64_C(0xB1591F572B73135D), + UINT64_C(0xF03232C9C62DFF62), UINT64_C(0xD3D1C629CAF25761), + UINT64_C(0xF633733F4B67D224), UINT64_C(0xCFBBC0D0764EBF02), + UINT64_C(0x41CC07DD63C7EE19), UINT64_C(0x53BC8A63E8B36CB5)}}, + {{UINT64_C(0x1E9F596C74CAF7FF), UINT64_C(0x8088EF968C049872), + UINT64_C(0x3A9EA96ECE1208BF), UINT64_C(0x892C44E715DAF25D), + UINT64_C(0xAF6E1EBF5E996AE4), UINT64_C(0x0A6EEE3CBAC1A746), + UINT64_C(0x9D471CB1CAF162F6), UINT64_C(0x13F7192AE6BE08F1)}, + {UINT64_C(0xCE44C77A49FBB46D), UINT64_C(0xA7B9136F5A04A72E), + UINT64_C(0x6CA33EC42B937703), UINT64_C(0xD4B3AAB5E8685FFF), + UINT64_C(0x8EFE02B3E7207EF1), UINT64_C(0xB138C46DB83D0E5A), + UINT64_C(0xB73E636AF6C29885), UINT64_C(0x5C1E124272567A55)}}, + {{UINT64_C(0xDD967B6A15137904), UINT64_C(0x4588BAA76969B92D), + UINT64_C(0x99580A4C5E2BA269), UINT64_C(0xE80802B4915645CD), + UINT64_C(0x7246F3F2FB6591AE), UINT64_C(0x68C2F8C6CC25F464), + UINT64_C(0xB5172E904905AE3C), UINT64_C(0x6860BBDD675591B3)}, + {UINT64_C(0x68BE15C0626489DF), UINT64_C(0x65EA3D880C737BEB), + UINT64_C(0x9EF8B6CC32B5081D), UINT64_C(0xA6238BB1B16FF753), + UINT64_C(0x22191589E17264C8), UINT64_C(0xDBDAE7A3903E28DC), + UINT64_C(0xB36FCD91F2DBCB8E), UINT64_C(0x01EBFAC475D33835)}}, + {{UINT64_C(0x7B0EE204BC820AEC), UINT64_C(0x500DA7FC8568C4E8), + UINT64_C(0x992A6429B0961D29), UINT64_C(0xA3CAE853E65D7FDA), + UINT64_C(0x7B6F5E7934197E58), UINT64_C(0x90D37EACC4E849CB), + UINT64_C(0xE01D14AF0106FD33), UINT64_C(0x4BE8367980027E17)}, + {UINT64_C(0xA412BA38A85EE145), UINT64_C(0x219D461E5097CD50), + UINT64_C(0xAD42175C29ECFCDA), UINT64_C(0xB1DEF962D04FAEFA), + UINT64_C(0x5B527A4BA95983C1), UINT64_C(0x48A06C96BB20AB6D), + UINT64_C(0x7BAD34CD1FB83513), UINT64_C(0x458294DFFDF018ED)}}, + {{UINT64_C(0x1D1EBD7EA695A157), UINT64_C(0x296DD049C52D5ED9), + UINT64_C(0x8958F5B00BE33F05), UINT64_C(0x6B7F7204D37E60D7), + UINT64_C(0x446F7B95C668C85A), UINT64_C(0xB6E53B2020F60396), + UINT64_C(0x5738FF4E8E621E73), UINT64_C(0x05DBD4958CD9F00C)}, + {UINT64_C(0x645AD9D6CFECAA9D), UINT64_C(0x01CB8E093CEF6673), + UINT64_C(0x2851ED4E06D13DA7), UINT64_C(0x61FE9A95CB18DFCB), + UINT64_C(0x62CC060FF903CBFE), UINT64_C(0x121B6E4EF14B0B1B), + UINT64_C(0x8CAB6654C4DEC6F3), UINT64_C(0x718809984B40D6D4)}}, + {{UINT64_C(0xEE5CA2A49583FB84), UINT64_C(0xEF16CD074462D044), + UINT64_C(0x1C1D599921EBB18F), UINT64_C(0x66D7586B0AACAD30), + UINT64_C(0x8EDF0A452EB12D8B), UINT64_C(0x1A320A44223DE805), + UINT64_C(0x0A389DA0A0C2F092), UINT64_C(0x274FF5417E68A2D9)}, + {UINT64_C(0x6CC34B5330395E54), UINT64_C(0x881E630B8C112729), + UINT64_C(0x801E1CAD70E4C811), UINT64_C(0xA527AE8291C2E90A), + UINT64_C(0x93179BC8562AE094), UINT64_C(0xCE68A130148F4F44), + UINT64_C(0xD8CA2ED032F8CCFD), UINT64_C(0x0415FDA40527F82B)}}, + {{UINT64_C(0x9F5CA1FD25AED793), UINT64_C(0x5B95B9AA09C49711), + UINT64_C(0x386C8FBBB968168C), UINT64_C(0xC6B27D7DBDC778F4), + UINT64_C(0xBD5439A2321A9D97), UINT64_C(0xEA40A5FEDC4BA6A0), + UINT64_C(0x94913F0F962508AA), UINT64_C(0x0D2DD91AB247396E)}, + {UINT64_C(0x1F459CF117C64EFF), UINT64_C(0x02E10B550137E003), + UINT64_C(0xFC375FE460F82DFB), UINT64_C(0x9CCA9D6E4631ECED), + UINT64_C(0x575C197CE5053FDA), UINT64_C(0x2EA3ECEE0A5B9670), + UINT64_C(0xE69DECA1A6F50038), UINT64_C(0x32F452FBE8EDDA74)}}, + {{UINT64_C(0x20980611D9E4C490), UINT64_C(0x827D79F174825DDD), + UINT64_C(0xB4604E04218E0B22), UINT64_C(0x0A7E5E3A1F4F1752), + UINT64_C(0x50260245243D8298), UINT64_C(0xEBF01C841A2101B7), + UINT64_C(0x369E69AE69E1A262), UINT64_C(0x5FD078684C1C960A)}, + {UINT64_C(0xC542D34BA8F15793), UINT64_C(0x08F14B8FE393381E), + UINT64_C(0xB6E06E97F855CD9F), UINT64_C(0x47A195EDA6CEE8C0), + UINT64_C(0x8776F026B05A740D), UINT64_C(0x811D7AD6AC8EC060), + UINT64_C(0xA61E5D2729002EFB), UINT64_C(0x3D51D70E0C78E746)}}, + {{UINT64_C(0xC0D70275C99E1438), UINT64_C(0x0E95C0ECFD5EE6B2), + UINT64_C(0xE14F58B039E6733E), UINT64_C(0x057B179EB4941C24), + UINT64_C(0x5E12F07F93C0A5EF), UINT64_C(0xF600367D05E72CAB), + UINT64_C(0x89FCB008899F259F), UINT64_C(0x2654687C9C3E30E7)}, + {UINT64_C(0x85B7F9B73F148638), UINT64_C(0x8088F4F29EAEE0B4), + UINT64_C(0xA741D2703A7CAFD7), UINT64_C(0x8973A806DB5B5339), + UINT64_C(0xAAF4E75C22DDCAA9), UINT64_C(0xA2450A79CBB763CB), + UINT64_C(0xBE1B3F2A016E5E3D), UINT64_C(0x4B1061B2CCECC258)}}, + {{UINT64_C(0x2F28689AC9C8A23A), UINT64_C(0xD8FB298059341E8C), + UINT64_C(0xD3617B26375ACDAD), UINT64_C(0x314FA469513ED120), + UINT64_C(0xFEB30225E2F8DF55), UINT64_C(0x29E001AF1F639D66), + UINT64_C(0xA175DDD4DBDC9737), UINT64_C(0x6A778E4F8015C048)}, + {UINT64_C(0x4612651ECC55DBA8), UINT64_C(0xE853ADDE2B3C7B06), + UINT64_C(0x14B2D0B76E0B2E41), UINT64_C(0xCA4F0872EE804E0B), + UINT64_C(0xEA2AFCA5F893D931), UINT64_C(0x6EB018919BE51B1A), + UINT64_C(0xB0D8500D1F2769F1), UINT64_C(0x1303BA01A47FFC13)}}, + {{UINT64_C(0xBED58425B43811EA), UINT64_C(0x57D7E5364E52E1D6), + UINT64_C(0x93DE67FEBF5EF913), UINT64_C(0x2CCDA4E32713FC52), + UINT64_C(0xC5C1B6F08F1FA4BB), UINT64_C(0xA267A790A725295F), + UINT64_C(0x13BB7D112D219844), UINT64_C(0x7FAF96A275415602)}, + {UINT64_C(0x7879EDF44E4C3CE4), UINT64_C(0x9CD59A0D3BF094F7), + UINT64_C(0xD7976DEB4A882A52), UINT64_C(0x19EBBC10BA65AFBA), + UINT64_C(0xABC373502D48D187), UINT64_C(0x5D5CA6C31236B5F9), + UINT64_C(0xDFA55AC2915EAF61), UINT64_C(0x6C54515EE8735632)}}, + {{UINT64_C(0xB1CD06DEDC21B326), UINT64_C(0xD6F6F904E4AE6148), + UINT64_C(0x941B7545FA13BE52), UINT64_C(0xD527042FDF7CE61B), + UINT64_C(0x1AB4495ED9C9BBDB), UINT64_C(0xA5CBE7C5BF6582BE), + UINT64_C(0x1D0B5BA241A1DA90), UINT64_C(0x6F99305C0A810954)}, + {UINT64_C(0x866C254F40D3954D), UINT64_C(0x5DEBFF4D2E5A123D), + UINT64_C(0x14AB6FB8AD23124C), UINT64_C(0xAE3C32B6C6B13624), + UINT64_C(0x74075FF6707528BA), UINT64_C(0x55DA7227E91D5097), + UINT64_C(0x450D38486A9C3469), UINT64_C(0x15818A1E2313EBA2)}}, + }, + { + {{UINT64_C(0x27BE68B414125D01), UINT64_C(0x875491142482BF94), + UINT64_C(0xE8B709318D0C8AF2), UINT64_C(0xF38D32BF11344A8B), + UINT64_C(0xCB7CDFD163136143), UINT64_C(0x717954CDA17D7DE5), + UINT64_C(0xD65BDD447C10DF5E), UINT64_C(0x15C45F814E821D20)}, + {UINT64_C(0x7D425E66D9C326C4), UINT64_C(0xEEA0D61A1C7B4BCD), + UINT64_C(0x41A8654A8707E9C8), UINT64_C(0xBA9E8F7C0B4A8F46), + UINT64_C(0xB96A24FCF2739871), UINT64_C(0xA9BA022FFD9C9D58), + UINT64_C(0x59F7C2972C9AE418), UINT64_C(0x6B82C284B0CDD468)}}, + {{UINT64_C(0xD4C5486A58483FA2), UINT64_C(0x8F140259EDC6A022), + UINT64_C(0xE451FB0CC43116F8), UINT64_C(0x5368FE4765DF7628), + UINT64_C(0x0F0DCC6DBC70855A), UINT64_C(0x0E726D87472BFE81), + UINT64_C(0x9C64B7163C024F88), UINT64_C(0x1ABAE0D814FF6089)}, + {UINT64_C(0xC0ABA6B3B5A15618), UINT64_C(0x71FAA6DF65CE0681), + UINT64_C(0x3199E2C939A6F5BF), UINT64_C(0xD8EBFEDA85BCF47E), + UINT64_C(0xC3D57D3BC262A35F), UINT64_C(0xF0D6338E0269DFDE), + UINT64_C(0x09072E1E0E6D0BF0), UINT64_C(0x0980E2914128B1BA)}}, + {{UINT64_C(0x6A2023F84DE44CB0), UINT64_C(0xEA995754247A7D5B), + UINT64_C(0xD850D17999102324), UINT64_C(0x126FDFE2A906B038), + UINT64_C(0x4C3B3696577DF168), UINT64_C(0x9D3A9E079E3853EA), + UINT64_C(0xBC21A51E40ACE3A1), UINT64_C(0x165065A3C51DD652)}, + {UINT64_C(0xF5B255B9E4BBD96B), UINT64_C(0xC1E91F803D94F9D6), + UINT64_C(0x7DDB5BB784768FCE), UINT64_C(0x33F7ADF65CA35823), + UINT64_C(0x3667E17433097882), UINT64_C(0x5FDC3BA18F241DC1), + UINT64_C(0x41F5C737172CD7FC), UINT64_C(0x64D4116E7986FE8D)}}, + {{UINT64_C(0x2FF0F5058C89DED4), UINT64_C(0x06507852BBBD0897), + UINT64_C(0x628865211FAD2908), UINT64_C(0xB8A1362E9F5F4D13), + UINT64_C(0x83075FE66E9856FD), UINT64_C(0x06B0BA277CCEDC4D), + UINT64_C(0x09B81B5152750DD5), UINT64_C(0x12A96BB0CB59D8F1)}, + {UINT64_C(0xCA4BC3A5DB43958B), UINT64_C(0x6456C11B94C12E88), + UINT64_C(0x7EFA99FFAC330EE6), UINT64_C(0x56973CADF40AEBEC), + UINT64_C(0x62522E6BC5D73A2A), UINT64_C(0xF4538CA890F4378B), + UINT64_C(0xE5447FCB1BA585B1), UINT64_C(0x6C3F50C218376AB9)}}, + {{UINT64_C(0xC0156EB6E1720FC1), UINT64_C(0xE0F821EEFFEE4BA3), + UINT64_C(0xC0B4EF97D0B530C5), UINT64_C(0x003BB1161A47CDAA), + UINT64_C(0xA5837856464EC84B), UINT64_C(0xD65BA195E0E63A97), + UINT64_C(0xB22C0F5FA375112F), UINT64_C(0x18D81698A7F7BDC1)}, + {UINT64_C(0x5FD3C5E591E78A50), UINT64_C(0xE5EE4EB997D10A66), + UINT64_C(0xF74BD0859FA305DA), UINT64_C(0x519BC6765485E038), + UINT64_C(0x7D3E6E21DE116ECE), UINT64_C(0x10D68B8C4221F32B), + UINT64_C(0xE41D74A9565C1614), UINT64_C(0x191561DD2E728554)}}, + {{UINT64_C(0x527CD25501C9BD19), UINT64_C(0x01879769913FA68C), + UINT64_C(0xE9BF7700D76B7FCB), UINT64_C(0xCEA4EE4102B92508), + UINT64_C(0x739154CC34D015A1), UINT64_C(0xD1F1F1AC44C3F451), + UINT64_C(0x1DF5A4AA7905A732), UINT64_C(0x081AFEB8B67F7057)}, + {UINT64_C(0x8A0EDEC0671D0F79), UINT64_C(0xE99B4B79442928EE), + UINT64_C(0x4A722AC72C1557B0), UINT64_C(0x95070ED603021BBE), + UINT64_C(0x9E1E6418672C3F05), UINT64_C(0x8733726389B0C1A6), + UINT64_C(0xB67B8831008A3B13), UINT64_C(0x4F44986BB059BE83)}}, + {{UINT64_C(0x09A5B3C92CB15C97), UINT64_C(0x43E1B906F9B4777D), + UINT64_C(0x3BAB3A6466A5BC88), UINT64_C(0x276632BB7D82E655), + UINT64_C(0xD09388D1D97D5CE2), UINT64_C(0x26B0339DCA1248C5), + UINT64_C(0x05F0A24111F2A8BB), UINT64_C(0x1F498EBAB7F68A8A)}, + {UINT64_C(0x265C09CFD0DD019B), UINT64_C(0x01A0FE11958B91C2), + UINT64_C(0xF55D56ED5A389069), UINT64_C(0x9E5DE2CA1A18A889), + UINT64_C(0x4F4C9D39065A1799), UINT64_C(0xB5CB916F7213B184), + UINT64_C(0x1941E104B5D0926E), UINT64_C(0x6EC375E82E03CFB8)}}, + {{UINT64_C(0x80F444EDB57B1B5D), UINT64_C(0x2E5315E77D4EFD6C), + UINT64_C(0x9272EBA7868CC07F), UINT64_C(0x19EC814D31A8EA6E), + UINT64_C(0x9EE92D03F29FCDBF), UINT64_C(0xDBF8AB6B2E8408C3), + UINT64_C(0xA0E845FBA103D807), UINT64_C(0x2A6A6B311CA3992E)}, + {UINT64_C(0xF58B6F6C1C391D76), UINT64_C(0x9E385BB213687C07), + UINT64_C(0xF6EE205B6BAEBBF5), UINT64_C(0xB2D7D412A706C6C5), + UINT64_C(0xCFE32A97CD887640), UINT64_C(0x2783CFE9D93A1136), + UINT64_C(0x601DE429F4D34FA7), UINT64_C(0x1E433BB86EA85459)}}, + {{UINT64_C(0x8BCB9073D618AD6A), UINT64_C(0x84CDBD19996FE814), + UINT64_C(0xB1F5FFDB166793B9), UINT64_C(0x5FA22BADEDE62FB4), + UINT64_C(0xC1C1C3947019C1EB), UINT64_C(0x7A02619108AA77F0), + UINT64_C(0x026EE69DA32E5855), UINT64_C(0x5356399780B81284)}, + {UINT64_C(0xF46C064F5E0B9ABB), UINT64_C(0x39332D2CE8A0FE23), + UINT64_C(0xBD50EE1C0BE9ECC5), UINT64_C(0x9B4A4CC08DE1B166), + UINT64_C(0x4BBA7B7B56713AAF), UINT64_C(0x2CA8EF64F1C76C54), + UINT64_C(0x1022D9F4CEB309E8), UINT64_C(0x4F1375BC15A18D10)}}, + {{UINT64_C(0x09CF4EBA9198331C), UINT64_C(0x232CA52D7D60EA39), + UINT64_C(0x2C4780892FC3A96E), UINT64_C(0xC7F9A36C80CB5721), + UINT64_C(0xEDA98A0C2D8802BE), UINT64_C(0xC74130483C41B152), + UINT64_C(0x479DF24FA74D701C), UINT64_C(0x7A92C3F151869D52)}, + {UINT64_C(0xC1AB98B3F00BA577), UINT64_C(0x5A687BA4B7778354), + UINT64_C(0xF5A77B64157FB1D2), UINT64_C(0xB9F746AE81BBAFEE), + UINT64_C(0xBA33EBDC1BEE9D2D), UINT64_C(0x6FE41BC1D046655C), + UINT64_C(0x2A8CB913ACC3A496), UINT64_C(0x7CBC537D6AC2B374)}}, + {{UINT64_C(0x55C19B5E538ED4B1), UINT64_C(0x6AA0E45661891DAE), + UINT64_C(0xD77CA0C2CD971AE7), UINT64_C(0xB23434F770294F78), + UINT64_C(0x3B87D75914D25513), UINT64_C(0x2A37CFD28B94F435), + UINT64_C(0xF63B09623F3F32FF), UINT64_C(0x6387EFB998B5916A)}, + {UINT64_C(0xB2826971F35951D8), UINT64_C(0xD1DDCB0A996C5518), + UINT64_C(0xA5E88B2D3669304A), UINT64_C(0xEA5685BDC53DEDB7), + UINT64_C(0x2DD72E086A446FA0), UINT64_C(0xFA2689EFEA074FF8), + UINT64_C(0xC3430BBE7A8302C3), UINT64_C(0x098A5073E98D1CD5)}}, + {{UINT64_C(0xCF5D95C244EE6CC4), UINT64_C(0x5D5278B5CE04027F), + UINT64_C(0xEA0F4D01C1D26E0E), UINT64_C(0xA79154F3AB2E71FB), + UINT64_C(0x27BBA6EEDC59126C), UINT64_C(0x269EB8B7632BEE8F), + UINT64_C(0xD589400853BB6C55), UINT64_C(0x7698DA12222DDE2B)}, + {UINT64_C(0x826DF5A3B5D03BC6), UINT64_C(0xFAADAD56E126406F), + UINT64_C(0x2EC70B6468849D5F), UINT64_C(0x9DDF89911D799E78), + UINT64_C(0xB2AEAFC5D4DE8AC5), UINT64_C(0x7A167F8FE114AD71), + UINT64_C(0x9DCD07BC13AA2EDF), UINT64_C(0x531A5A3D6651BD12)}}, + {{UINT64_C(0xDE7CE2AD82E7C32C), UINT64_C(0x2C9908EA2D0742C3), + UINT64_C(0xDA528D69056F7C69), UINT64_C(0x1FE6E3EB704BFDCD), + UINT64_C(0x9C1EEDDF79B0F586), UINT64_C(0x0F6F81FB481E83F6), + UINT64_C(0x17DB66C0E007286E), UINT64_C(0x3607EC131802CD99)}, + {UINT64_C(0xCCB2B85C6F216120), UINT64_C(0x7B9EA544E51C2036), + UINT64_C(0xB14CD3615428771E), UINT64_C(0x978C458E03C6BD02), + UINT64_C(0xEA43C163EACEB25A), UINT64_C(0xB590D2D76B85CBB9), + UINT64_C(0x10B8EB8619C45D61), UINT64_C(0x2E5AF3E0A1FC40DE)}}, + {{UINT64_C(0x465C626190D2EA3E), UINT64_C(0x6B10583C3E11EFC6), + UINT64_C(0x1E3A113224958F6C), UINT64_C(0xCB895C3BB3336EA5), + UINT64_C(0xCA995E605F89EEA1), UINT64_C(0x725FB30B199719B0), + UINT64_C(0xC6897E80F8061D92), UINT64_C(0x56680A532CFBFB75)}, + {UINT64_C(0xA770755DD13E5E25), UINT64_C(0xC33F71B0FB78D704), + UINT64_C(0x7B2322E7A101B288), UINT64_C(0x03ED4A92C1075A9E), + UINT64_C(0xBF4359844B8CB0D4), UINT64_C(0x6C61DDF360F8188C), + UINT64_C(0x760339E14D04EA1B), UINT64_C(0x18B7FE1346CE38BC)}}, + {{UINT64_C(0x7AA91562838C109E), UINT64_C(0xBBCAE1A4EF910EAF), + UINT64_C(0xF3CAD5ADA3F53427), UINT64_C(0xF8FA6F08AA559EE9), + UINT64_C(0x35DF7AA59B872C03), UINT64_C(0x0A3C67898F1C0B48), + UINT64_C(0xE4106F6F3B1F9ABD), UINT64_C(0x51EE882B7DAA3EA0)}, + {UINT64_C(0xFAE35FE0A97C031B), UINT64_C(0x265CC7A22FB341D9), + UINT64_C(0xF99D1646F7515098), UINT64_C(0x3630DCFCA70C3101), + UINT64_C(0x0D492AE5984A7736), UINT64_C(0x1E46ACB5A65956C5), + UINT64_C(0x87E193D09C39921B), UINT64_C(0x1AA85A4B71406E88)}}, + {{UINT64_C(0x6875F76226B55827), UINT64_C(0xC6E92CB628C694F4), + UINT64_C(0xC3DA1CFB57E83283), UINT64_C(0x2DAD4640FC91E16A), + UINT64_C(0x27238EDF079E48FB), UINT64_C(0x8262F37E4676F002), + UINT64_C(0xF1DF56857E20A097), UINT64_C(0x710B88301D647DBF)}, + {UINT64_C(0xF521938F55F50EC5), UINT64_C(0x86E72C2D5A65EC57), + UINT64_C(0x72E72E109E067563), UINT64_C(0x1C572F372941350F), + UINT64_C(0x0234F61327E00FBF), UINT64_C(0xA33CCF1AE0605A65), + UINT64_C(0xFDB2433A9BE4C255), UINT64_C(0x18374CEBDD7E45CD)}}, + }, + { + {{UINT64_C(0x9E00FC840CEEC3F3), UINT64_C(0xA758AA230D2268DF), + UINT64_C(0x5C9B3794D36F482D), UINT64_C(0xEE3F79CFE90303E7), + UINT64_C(0x22573217D1BB3495), UINT64_C(0x6D5C2063D2242A7E), + UINT64_C(0x339BEDB8876A074A), UINT64_C(0x6326870395CD5AA2)}, + {UINT64_C(0xA86B4EF91B0CAE7B), UINT64_C(0x420985B43DB7D12D), + UINT64_C(0x99A3BB296B1CEED3), UINT64_C(0x2113B00F3569FA9E), + UINT64_C(0x2C5924208E8BF2D8), UINT64_C(0xF74DD63B00DB962B), + UINT64_C(0x8F0523E59758035F), UINT64_C(0x4EA1D81A448F83C0)}}, + {{UINT64_C(0x01183057AAB1F908), UINT64_C(0xAF94AE9A324AC197), + UINT64_C(0x6BF3B50D23710A59), UINT64_C(0x9B65A594C39A3428), + UINT64_C(0x345E5C522210C08A), UINT64_C(0x6D728DD623216FE9), + UINT64_C(0x9D09327B2E4F42C2), UINT64_C(0x47504F6209505F44)}, + {UINT64_C(0x24F03D12FB3AD9B5), UINT64_C(0x70E8DE3C439F3E25), + UINT64_C(0x1FE89F0EAE5A62FE), UINT64_C(0x3B518A064B98CDA2), + UINT64_C(0x725AE18CC70FF3F3), UINT64_C(0x45765C3502BA4952), + UINT64_C(0xBAA6488DA7C32E49), UINT64_C(0x5D277639C5A2E6D7)}}, + {{UINT64_C(0xE3818693BD6F5DF9), UINT64_C(0x482D93578307A5AD), + UINT64_C(0x82B507F2323D211C), UINT64_C(0x9E382A7192967D94), + UINT64_C(0x4327BB2AB3BFF973), UINT64_C(0x911FF5F4AC87D95A), + UINT64_C(0xD21289613BEF8BFB), UINT64_C(0x43E2ED58B8FA196B)}, + {UINT64_C(0x74359D2CD5D4F65F), UINT64_C(0x7FE8B0D1401FC20D), + UINT64_C(0xAA9C0EBCC012734A), UINT64_C(0x54BB07EDBC05E810), + UINT64_C(0x09744AB894C9B39B), UINT64_C(0x1B29E64A47E3E6E7), + UINT64_C(0x82082F863B728BB9), UINT64_C(0x5DA4AF1DE159E167)}}, + {{UINT64_C(0xD838425EF80E5A20), UINT64_C(0x1701F0F47AA52E54), + UINT64_C(0x2BC3E0243B0EF4D7), UINT64_C(0x13DED370BD8C9C7E), + UINT64_C(0x93A9BCB03853E414), UINT64_C(0xBA7528320B81BBA1), + UINT64_C(0xBE267CE569F51EC3), UINT64_C(0x2DD1339181D034EB)}, + {UINT64_C(0x78E02B77EAB11B6E), UINT64_C(0xDC2C14F2D67C3B1C), + UINT64_C(0x3407014C87193F9F), UINT64_C(0xA5187CAC580D2A6C), + UINT64_C(0xA76AD3CB254FB63B), UINT64_C(0x16A7A635FA5EC4B7), + UINT64_C(0x8B1E623D358A7E00), UINT64_C(0x12DED0AEE428EB45)}}, + {{UINT64_C(0xEC93FF3E42D2628B), UINT64_C(0xF3E153F84D6D15AD), + UINT64_C(0x9C1D3EE7B269AFEF), UINT64_C(0x1DC9ED6B2596D285), + UINT64_C(0x1D99A25FDA973D5C), UINT64_C(0x6D0CC657575656A3), + UINT64_C(0xB5FBD5739BE5B314), UINT64_C(0x2D0AF3814BCB4F6B)}, + {UINT64_C(0x813C697542992580), UINT64_C(0x5F35F31BD9C88B9F), + UINT64_C(0xD62AC131F1315EA8), UINT64_C(0x6898E20F20AEAF30), + UINT64_C(0x85A2C8AF733A3518), UINT64_C(0x60BB0AE042DFC623), + UINT64_C(0x5BE9C6827F5A3320), UINT64_C(0x781531140795B27B)}}, + {{UINT64_C(0xEBA2445D5BFB1A8F), UINT64_C(0x23CA73DBE3A37647), + UINT64_C(0x1D41C8EA09D6A2E8), UINT64_C(0x837CB597B9CA389A), + UINT64_C(0x66B0A05A1DAF5EF4), UINT64_C(0xD1EC0B2B79720DD3), + UINT64_C(0xA4EBD63334EC20E5), UINT64_C(0x3CBE3C4B96CB4933)}, + {UINT64_C(0x5DFBCA31EAB154BD), UINT64_C(0xA95532F9086B4B02), + UINT64_C(0xD6D5A0140ECE8177), UINT64_C(0xA2BD7647C1701606), + UINT64_C(0xA051332728947FD0), UINT64_C(0x941ADE30FB8D79A4), + UINT64_C(0xE793B659A5399FC5), UINT64_C(0x0CBA91FE7A2DAACF)}}, + {{UINT64_C(0x6EDE3A1AF5D6C8A5), UINT64_C(0x18C47EFC5B8C138E), + UINT64_C(0x997CB33C7B418D78), UINT64_C(0x5269B9B083E40686), + UINT64_C(0x85054DDC8A20DE43), UINT64_C(0x0FF62C389485BF29), + UINT64_C(0x8D769D160EF78B00), UINT64_C(0x53D4361998B54D2D)}, + {UINT64_C(0x7CAC1C68C6B6FC2F), UINT64_C(0x4F4FB16BBA127B4F), + UINT64_C(0x613B15EFB003EE2B), UINT64_C(0x51D36B347121BA05), + UINT64_C(0xA33E6C3670C1BD53), UINT64_C(0x0D786268EEF75FCD), + UINT64_C(0xEE9064EC425A7776), UINT64_C(0x640F4FE31B720CA1)}}, + {{UINT64_C(0x0D80E5DCDE5EB014), UINT64_C(0x8B87C2C5FB6F0966), + UINT64_C(0x440E812F7F7A8B3D), UINT64_C(0x4129E117D930CD64), + UINT64_C(0x19224A1FBB1AD89B), UINT64_C(0xFF6582C11B9CF977), + UINT64_C(0x0C279A282ED4B99F), UINT64_C(0x5985FA3261859FE3)}, + {UINT64_C(0xE807ADC1FD425835), UINT64_C(0xD0F0F7C652CC2AFA), + UINT64_C(0xF3B06F655C43ECC0), UINT64_C(0xC308696A5F15A3D0), + UINT64_C(0x00DC3AA797174601), UINT64_C(0x8FC6B2DE81B1A96F), + UINT64_C(0x0E4646A22071B8F4), UINT64_C(0x4D8B4DA5E92B7E14)}}, + {{UINT64_C(0xA371921925133E4D), UINT64_C(0x76EC51481211714A), + UINT64_C(0xB5C0EC5675C6B433), UINT64_C(0xE1DFD7B314240932), + UINT64_C(0x319F8E99239466CA), UINT64_C(0xA6D0F9EC35FED9C2), + UINT64_C(0x19FC4B44C41F492E), UINT64_C(0x36D24698B8CF87F2)}, + {UINT64_C(0x789735C0C74D1AAA), UINT64_C(0x0C0DBF5F6B21C410), + UINT64_C(0x157DEB3C4DCAACF0), UINT64_C(0xA7D53A569826FE13), + UINT64_C(0xB4F2E8848E151D58), UINT64_C(0x6CD528BDA51FDECE), + UINT64_C(0x7EF7FA0E6F669DBD), UINT64_C(0x5250D79D666F1F7B)}}, + {{UINT64_C(0xC33D5CC302CBADB6), UINT64_C(0xF51C5ABFC56345D9), + UINT64_C(0x0B2FED493B5E86CE), UINT64_C(0x86599A1D480D2793), + UINT64_C(0x15CA7826A8F96CB6), UINT64_C(0x0577868C5DA5D7C0), + UINT64_C(0x0292603BF8B7F740), UINT64_C(0x49C31FB585445AB2)}, + {UINT64_C(0xCFF51BEBEFDB9DA0), UINT64_C(0x1C552A239DA2096C), + UINT64_C(0x6FAC5D64416FD3D7), UINT64_C(0x7F6CD9A75F5F2D95), + UINT64_C(0x98BD5C7F1E91AB28), UINT64_C(0x95132D69DAC6FFA2), + UINT64_C(0x5611638C4C6BDC19), UINT64_C(0x79320E840DDCBF9E)}}, + {{UINT64_C(0x2B07BCB228AD172D), UINT64_C(0xFBD855539AABAAA7), + UINT64_C(0x466FF9B8715A69DA), UINT64_C(0xA5EE097A5DF8355B), + UINT64_C(0x5E81EF3694527A84), UINT64_C(0x0FD8285862E79307), + UINT64_C(0xF77154C67A0154D8), UINT64_C(0x706EA85717F87D8C)}, + {UINT64_C(0x696280B6EDF504A7), UINT64_C(0x8E2FDF940D58FD9E), + UINT64_C(0x4582C0650A6463DF), UINT64_C(0x5DC2DECD68B7389B), + UINT64_C(0x98D77559D2CFCF3C), UINT64_C(0x4E652C83E277A1EA), + UINT64_C(0x81FA94F722B153DC), UINT64_C(0x6B86C4CB27250748)}}, + {{UINT64_C(0x31FA2A569050FD42), UINT64_C(0x72FEACD1FDCEFA17), + UINT64_C(0xDC60ED6384A8F817), UINT64_C(0x584DADB824332D2E), + UINT64_C(0x44D7CF2E3C47EB6B), UINT64_C(0x905E2D0E9A6BC268), + UINT64_C(0x501FE4486EF013BE), UINT64_C(0x733E11DA999445A7)}, + {UINT64_C(0x7EBF9F56B4A90B6B), UINT64_C(0x526D56854364F578), + UINT64_C(0xBF9B3EF7BE950B53), UINT64_C(0x6C5EEE0A73D295F8), + UINT64_C(0x4A79F9A73F9CFD38), UINT64_C(0xA8C15D285C348121), + UINT64_C(0xDB33882F7BC3EEA7), UINT64_C(0x164B6C981C95C7DB)}}, + {{UINT64_C(0x99A0B2F1876E8E37), UINT64_C(0x9540376E7D53142D), + UINT64_C(0x9D87809D6F20C705), UINT64_C(0x1305C33BB0FDE5DE), + UINT64_C(0x172DFA23DF9311EB), UINT64_C(0xC55A603CB8B9A7ED), + UINT64_C(0xF4426DA9398CDDF1), UINT64_C(0x7EE621B093395515)}, + {UINT64_C(0xBBD0B9E97190296B), UINT64_C(0x244FFECC817E9802), + UINT64_C(0x572B5387071D598F), UINT64_C(0x8314EF61D2B681E2), + UINT64_C(0x8F8CA790639B8713), UINT64_C(0x81FD3C40F265F881), + UINT64_C(0x05EC87EA78DB97D0), UINT64_C(0x7C279328E4CB4B7D)}}, + {{UINT64_C(0xF385F057A3B4A536), UINT64_C(0x14C2337F4844689C), + UINT64_C(0x3523F9A98B5FFFB0), UINT64_C(0xF5E10A66A5E078C2), + UINT64_C(0xC5DDD8699EEAC34E), UINT64_C(0x16348B68ED24D386), + UINT64_C(0x90992D06EBB0A580), UINT64_C(0x001BD2DB047485A9)}, + {UINT64_C(0x871A178BDABC2B30), UINT64_C(0xEC9674EC6B5F7DC4), + UINT64_C(0xBB3B1C57AC23E5B0), UINT64_C(0x6DBB053044A658A1), + UINT64_C(0x28B031C961E53517), UINT64_C(0xC1AB8ED564182250), + UINT64_C(0xDA3FE27ED1333B9E), UINT64_C(0x4652F37C71AD4520)}}, + {{UINT64_C(0xB9C2F8947B2186CC), UINT64_C(0xFA2E5BE557CF825F), + UINT64_C(0x71A9C72326232D47), UINT64_C(0xD990D5D4EB1F6B74), + UINT64_C(0x0526A74FEE869587), UINT64_C(0xB29047B179F385E3), + UINT64_C(0xE9555EB37588AABE), UINT64_C(0x379D31BAE8EDC982)}, + {UINT64_C(0xD1354749DEC275F9), UINT64_C(0xDC58001638EAAC97), + UINT64_C(0x23B6F54D894811E9), UINT64_C(0x8A2356F8838B2AE0), + UINT64_C(0x5ECBE0750332F83F), UINT64_C(0x1DE54B95F248814B), + UINT64_C(0x3B4D634D963938AE), UINT64_C(0x4C8888A57A5F8CB0)}}, + {{UINT64_C(0xC6A93408866B8E1D), UINT64_C(0x33DCDEAC3FA8DDAC), + UINT64_C(0x7F21F9115DBEC7A8), UINT64_C(0x4C54D4CB888CF7C1), + UINT64_C(0x3FBBB373B81E81C5), UINT64_C(0x2946B9BBC50F3415), + UINT64_C(0x8EA5487B72265924), UINT64_C(0x3D570399BDEBBFEC)}, + {UINT64_C(0x86C128FF1939A079), UINT64_C(0x4B37E0819509F043), + UINT64_C(0x429912317209D23F), UINT64_C(0x22D2D20768A1134B), + UINT64_C(0xA5AF7A3834D6A734), UINT64_C(0x752A81902ED7FCBF), + UINT64_C(0x11CC587080FD1D18), UINT64_C(0x1D9ACAE3D189B4DD)}}, + }, + { + {{UINT64_C(0xE47BFD7FBD6BEAA4), UINT64_C(0x6D4E6C1256A13CBF), + UINT64_C(0x66944291955E8CFA), UINT64_C(0xA5D03765E17CB432), + UINT64_C(0xB39957CC87350701), UINT64_C(0x5442D545C31F2D8B), + UINT64_C(0xB260AC7DA27161B7), UINT64_C(0x633DBFE5272AA5A0)}, + {UINT64_C(0x6273DAA0CC5C98C5), UINT64_C(0x18117A87F7F5EE34), + UINT64_C(0x70638CFDFFC6434F), UINT64_C(0xC3F386EE540FDE06), + UINT64_C(0xA97159E3D18B02F7), UINT64_C(0x10E18495EB612449), + UINT64_C(0xD572354C3D9E5A31), UINT64_C(0x2642E9F29A2301C1)}}, + {{UINT64_C(0x01048593442143BC), UINT64_C(0x015299B112B5CE6C), + UINT64_C(0x7DB0D76F5F5AEA95), UINT64_C(0xE9E3DA6FD2FB7690), + UINT64_C(0x6E4C64AB8904CCF0), UINT64_C(0xDCBD06CCA49B6CCD), + UINT64_C(0x7258A3FCB0ABB0C1), UINT64_C(0x07DF0E9459FC214B)}, + {UINT64_C(0x58804CBF1E7CC675), UINT64_C(0x26CB78C2E80CFBF9), + UINT64_C(0xD0A31AF09AE03E99), UINT64_C(0x121F1D3D5C86A88D), + UINT64_C(0x421726042507EBB7), UINT64_C(0x1C0477822BBA126B), + UINT64_C(0xE85C59C8102027F2), UINT64_C(0x461D9C09CD8232E8)}}, + {{UINT64_C(0x97B3842A200770DE), UINT64_C(0x4647F3FE77C0536B), + UINT64_C(0x37CC9562BF7476D9), UINT64_C(0x90D29C5C2DEA54A8), + UINT64_C(0xCD666644C21BF888), UINT64_C(0xEAE36F2FC5CF18C8), + UINT64_C(0x903D889AFD93F2C5), UINT64_C(0x037ADD7EE5F67DF4)}, + {UINT64_C(0xD38FA2DC995AC5D0), UINT64_C(0x69D19EA198A2A549), + UINT64_C(0xEC7814C75E8F6D58), UINT64_C(0xDD241DB2247C0E89), + UINT64_C(0x5421BE26E5CF278B), UINT64_C(0xCF675E38EDACBA69), + UINT64_C(0x397356A121F9C045), UINT64_C(0x317C547F49E0BF07)}}, + {{UINT64_C(0x2EB59913F5C55ABA), UINT64_C(0x805C61A199485E9B), + UINT64_C(0x94D81C7EB4C7CEE9), UINT64_C(0x2DD3516FA9DEE0B1), + UINT64_C(0x4C59CC213353561D), UINT64_C(0x375C19F35EE9F7B9), + UINT64_C(0x89DE4E4127FC9486), UINT64_C(0x68487AFF24995DF5)}, + {UINT64_C(0x15B98DF06D549CB6), UINT64_C(0x4B884EDE9B4544BA), + UINT64_C(0xE2CEA2061B3D89C5), UINT64_C(0xCE8945D22648786B), + UINT64_C(0x0B209B7CF1272125), UINT64_C(0xEAB0849A2BAFF0D1), + UINT64_C(0xE5F18031E971F89E), UINT64_C(0x4379379C766B7A2F)}}, + {{UINT64_C(0xFC10C84729B51FB0), UINT64_C(0x148AE7AF1E012F1A), + UINT64_C(0x75A5A6FDA20D8DBE), UINT64_C(0x30148FCB8FA0842C), + UINT64_C(0x0A64E438126F8253), UINT64_C(0x72C3C042AECD60D4), + UINT64_C(0x6C3589C838A21DFB), UINT64_C(0x64BA45946BB0D5D0)}, + {UINT64_C(0x6E818AA1D464168A), UINT64_C(0x96C68C331743888E), + UINT64_C(0x0D52C73F0672EC8E), UINT64_C(0x56F9E940A8B446E9), + UINT64_C(0x68F43782C0E008C5), UINT64_C(0x7C0D8BFE96201134), + UINT64_C(0x66C97894B3F5942B), UINT64_C(0x08579CF989BE1E99)}}, + {{UINT64_C(0xE863C3A92828506B), UINT64_C(0x18C6E29D9DF36CD1), + UINT64_C(0xA2DF177DC2AD4DFB), UINT64_C(0xD0E200A208B5F6B6), + UINT64_C(0x6BE0AF7577B670DB), UINT64_C(0x750E92FDBD46EEB0), + UINT64_C(0x21E21B3787F96AD1), UINT64_C(0x0C4F884EC89C7708)}, + {UINT64_C(0xBCCD3155630AF761), UINT64_C(0x769F9CED19F3528A), + UINT64_C(0x2572864DBF9CAC65), UINT64_C(0xD276411CF43268F0), + UINT64_C(0x12D9FDCFA2C48843), UINT64_C(0x320A13DF7AAF1CBC), + UINT64_C(0x3D4DCB95630820CF), UINT64_C(0x5F471E2128553384)}}, + {{UINT64_C(0xC14F1D4D9C6DCC7D), UINT64_C(0x9CEA8E3ABC2EA2FA), + UINT64_C(0xD854AEC04F1DE28B), UINT64_C(0x5FAFDDCEB0EF66E2), + UINT64_C(0xD5BAF034A190ADC7), UINT64_C(0xFEB3DE5F052D641A), + UINT64_C(0xA336FD9A51F9F744), UINT64_C(0x11E7DE0F2E516669)}, + {UINT64_C(0x46B240270CD862CD), UINT64_C(0xDB3CE4A222667C9F), + UINT64_C(0xDF1BD2A28E3438CF), UINT64_C(0xC20E6ECB94E0825A), + UINT64_C(0x086782224EDF3C36), UINT64_C(0xCD547458D86E0625), + UINT64_C(0xED9FFDFAC1C8975A), UINT64_C(0x7709A34E60FF6B18)}}, + {{UINT64_C(0xEE6F55D70D6EF8BE), UINT64_C(0x6BA29662C47749F3), + UINT64_C(0x505BEBB2CB5824F0), UINT64_C(0xDAA39E017CE139AF), + UINT64_C(0xC73FFE67BA4EAAF5), UINT64_C(0x1AC8354F1216FBC5), + UINT64_C(0xFA600D707C029B38), UINT64_C(0x1DEF1E98B77E8711)}, + {UINT64_C(0x9EA77FEF2199269A), UINT64_C(0xCC5F3E27A4B5E402), + UINT64_C(0x998BF96FFE20DCF6), UINT64_C(0xCF543A7154252277), + UINT64_C(0x9D767F8771A66685), UINT64_C(0x0E1AA8F5860B1EC4), + UINT64_C(0x3979C3949437E2D0), UINT64_C(0x55CBC282855C635C)}}, + {{UINT64_C(0x798D8087DB0F28BC), UINT64_C(0x80BE50E690209D22), + UINT64_C(0x6B14A1E169AE2A50), UINT64_C(0x504AD87B21B5A02E), + UINT64_C(0xBF92B62181938DD3), UINT64_C(0x1A209438E927A712), + UINT64_C(0x3DFC548A3C613F5E), UINT64_C(0x1E6E3311A3C2CC7E)}, + {UINT64_C(0xE46AC0C4A91BB2B2), UINT64_C(0xAC89BB09DF9BA7FD), + UINT64_C(0xC87555DD04403839), UINT64_C(0xB1460C86C6BB4379), + UINT64_C(0x3AD253EF5FC6E594), UINT64_C(0xB66B2FB7393CB89B), + UINT64_C(0x1411B9FDE1BAB087), UINT64_C(0x084DD6CD22C9CE4C)}}, + {{UINT64_C(0x676D50EEE480DDEB), UINT64_C(0x588EC4BBD14909D0), + UINT64_C(0x509A74A7B5DD3FC6), UINT64_C(0xE616EEF3AA6870F2), + UINT64_C(0x76F235D998C5A7E5), UINT64_C(0x7A925C5577FFB2E6), + UINT64_C(0x0A78A158955213B7), UINT64_C(0x07B068B928FB60B7)}, + {UINT64_C(0x7610C82150380E64), UINT64_C(0x6E7C80CE282776C2), + UINT64_C(0x9F67368AEEBD3250), UINT64_C(0x932F6E9985FB7863), + UINT64_C(0x41FCC562924A519D), UINT64_C(0xC099DE16B499B4AF), + UINT64_C(0x10764D48AC9C7E76), UINT64_C(0x66C85BF9A1BABCE6)}}, + {{UINT64_C(0xB080963FF5CB951F), UINT64_C(0xD9A5580B2A16F27F), + UINT64_C(0x5840499D4FCEE6ED), UINT64_C(0x5F4704D64F3B33D4), + UINT64_C(0x02A1399382256A05), UINT64_C(0x5713E01992365A7E), + UINT64_C(0x4A2F7BA66F38944B), UINT64_C(0x14B58D5BA47662D3)}, + {UINT64_C(0xC219E3005900EFC8), UINT64_C(0x45707A504FE2DFC9), + UINT64_C(0x0CE4FACD6863DF90), UINT64_C(0xEDB31912C6BCDA9C), + UINT64_C(0x3E24A0D685B6CF7C), UINT64_C(0x6365ACDA358DDF3B), + UINT64_C(0x10FD0871F2CB0823), UINT64_C(0x51D58D3D1DAFE4C7)}}, + {{UINT64_C(0xE5B64EF4291B51D2), UINT64_C(0x70C52EDB1A7A445D), + UINT64_C(0x758D0DC9C1E8DF63), UINT64_C(0x55328AB30677FE82), + UINT64_C(0xAF4221FF7F3A1866), UINT64_C(0xDE1BA1098C04E9CA), + UINT64_C(0x26F0D0864C577D77), UINT64_C(0x6D5D3FB16D494F73)}, + {UINT64_C(0x3C0153EB451F8B8C), UINT64_C(0x6A9B03D15FD3ED6A), + UINT64_C(0xDF442C11175180C3), UINT64_C(0xB205EB514DD99376), + UINT64_C(0x28E9C5FFEB489DE3), UINT64_C(0x225CEB0944766908), + UINT64_C(0x1DB1F7E7EB193B68), UINT64_C(0x364B9E6BDF27292C)}}, + {{UINT64_C(0xDC6E723D728F33A8), UINT64_C(0x8ABEB28A3A0930B3), + UINT64_C(0x584B13CAD024D8B7), UINT64_C(0xDCDC5BB7DBDE780E), + UINT64_C(0xA2AD762B161D9801), UINT64_C(0x46EBC8A96CE5F18A), + UINT64_C(0x97A0BA527EB1CD22), UINT64_C(0x58BC4DAAE22D91D5)}, + {UINT64_C(0xC06F0B259F01D49D), UINT64_C(0x8236F2AD3533732B), + UINT64_C(0xE3DF9BF57C6C24F4), UINT64_C(0xD60FBCC76AA1E1F0), + UINT64_C(0x8DDBB9A2B70A307F), UINT64_C(0x61BB56B1C6071C49), + UINT64_C(0x8D3446D71ABF19BD), UINT64_C(0x44AF2FD846387989)}}, + {{UINT64_C(0x25ACEB4C86B1B8AE), UINT64_C(0xB5B0A7E367CFD1AA), + UINT64_C(0x87B3C5CBB0F063B4), UINT64_C(0x7F4292746F03BE41), + UINT64_C(0x412836E0D82D7749), UINT64_C(0xD9B1603B535225CC), + UINT64_C(0xCBF1A8271590B41F), UINT64_C(0x47C32D83FE159BF9)}, + {UINT64_C(0x7A147456369026E5), UINT64_C(0x4A21DAB12691A87D), + UINT64_C(0x006D3EA461818C2D), UINT64_C(0x56006BDFD548A261), + UINT64_C(0x8632A9091D7DA713), UINT64_C(0x859839DD26E387A5), + UINT64_C(0x41E4D9D97FF52CF4), UINT64_C(0x0E21329F85A8F21E)}}, + {{UINT64_C(0xDF4AF1E0626902CA), UINT64_C(0x339CD3CDEC50A5FF), + UINT64_C(0x44B2ABBA98DD7A01), UINT64_C(0x47A4DA46CC7AC1A8), + UINT64_C(0xA69253411EA0F3A8), UINT64_C(0x46F82C17C23AA0AC), + UINT64_C(0xF0394E44386897AA), UINT64_C(0x601F9A559D5AA759)}, + {UINT64_C(0x194F939FEF324E1E), UINT64_C(0x188BE442E2F35782), + UINT64_C(0x4B2FA7C15683B3DD), UINT64_C(0x9F2737A644300367), + UINT64_C(0xB72F7E8AAFDF269E), UINT64_C(0x5FFD87557A8A5232), + UINT64_C(0xA1641CF043299A6C), UINT64_C(0x1FDA30D5C4D1E057)}}, + {{UINT64_C(0x926373C4D94B7DD2), UINT64_C(0xE9882CA7FAA5C280), + UINT64_C(0x358F82F6C1D821E2), UINT64_C(0xDF9818268812649A), + UINT64_C(0x96ED450710D267E1), UINT64_C(0x72253BD1F7DF2D84), + UINT64_C(0x78F13C381F09BC6D), UINT64_C(0x023C79F015D1F353)}, + {UINT64_C(0x5E357E1A65E1924F), UINT64_C(0x827A8C8318CC9432), + UINT64_C(0x9A2FF5D68696C800), UINT64_C(0xDE825B6AE26AB439), + UINT64_C(0x34C74673A646B303), UINT64_C(0xFBFD424E50657C92), + UINT64_C(0xAAD263D91F96EEC2), UINT64_C(0x78D93F6C42FF59EC)}}, + }, + { + {{UINT64_C(0xEF807EEB4ACCAC90), UINT64_C(0xEA3708EC83EFEFD0), + UINT64_C(0xB3F56C3DAC470AEC), UINT64_C(0x0467461D4BB6B4A8), + UINT64_C(0x9E2D3152455704F7), UINT64_C(0x957F5FF695097282), + UINT64_C(0x1BBA5CCAAEADBFBC), UINT64_C(0x5D64A8B0829F221F)}, + {UINT64_C(0x63B30E25DC012583), UINT64_C(0x739D6C4D6E8E7E4B), + UINT64_C(0x4DB4BA8A108F21C6), UINT64_C(0xE4D0991D8E217429), + UINT64_C(0x0DFEC43E747D489D), UINT64_C(0x759C611C3F6623D2), + UINT64_C(0xBB3166AE1C16C550), UINT64_C(0x1097FE4146E761A6)}}, + {{UINT64_C(0x5CACE9282774936E), UINT64_C(0x7D88CE3C97A7BC86), + UINT64_C(0x7B5F9D752732B6C7), UINT64_C(0x31E096D2A9623A78), + UINT64_C(0xED0B1A7F8F2A6C6F), UINT64_C(0x47F31AC08A38C329), + UINT64_C(0x65FE20B48AE3E440), UINT64_C(0x5BB3DF728FF8D87D)}, + {UINT64_C(0x5C361D56394AF7A9), UINT64_C(0x37A958024A967882), + UINT64_C(0x02037A09C3D24749), UINT64_C(0x623CF773A9EB6A87), + UINT64_C(0x4D09B042CC9980AC), UINT64_C(0xC1EF17CA4C258646), + UINT64_C(0x054C55D4EA522FA1), UINT64_C(0x756B405D1459D247)}}, + {{UINT64_C(0xC88B5D92FF7BCBB8), UINT64_C(0x37E62C2A33BB4D7F), + UINT64_C(0x63DBECFC93850D2E), UINT64_C(0x282E18965DAF279B), + UINT64_C(0x90226257B2FD8FA2), UINT64_C(0x68215F8C69A65468), + UINT64_C(0xAEBF43D556338A49), UINT64_C(0x035A40A038D7D063)}, + {UINT64_C(0xEEEE462E61C724FC), UINT64_C(0x660F015BA58C2B0C), + UINT64_C(0x627E0736E16621D4), UINT64_C(0xD423ADA85D724668), + UINT64_C(0xF98AB83A6B777C4C), UINT64_C(0x4F5FEC825DC968EE), + UINT64_C(0x4AC7CAAADF9BE0BE), UINT64_C(0x6F7E06DCCADCF93D)}}, + {{UINT64_C(0xCF90CB74DE36D484), UINT64_C(0xD511A70F0ED61EEE), + UINT64_C(0xDBF5689E33798A5C), UINT64_C(0x81900CF3DAA5D75E), + UINT64_C(0x854460AA84CA34C5), UINT64_C(0x3C00E7B539220C74), + UINT64_C(0x4E7CE464AB33422B), UINT64_C(0x22221BD4AB536B00)}, + {UINT64_C(0x718695F4E50DFFEE), UINT64_C(0x466D642CD103C522), + UINT64_C(0xA01B70706EC72083), UINT64_C(0xD29C046DCB7675DD), + UINT64_C(0xA2AF1025605F249C), UINT64_C(0x3BD414BDEA9111DF), + UINT64_C(0x8DCEC5097D037C23), UINT64_C(0x750E0282176546F8)}}, + {{UINT64_C(0x452C27FF824344A7), UINT64_C(0x85E64CC2EC399A05), + UINT64_C(0xBE15D09E3442039C), UINT64_C(0x875022BB6A323861), + UINT64_C(0xD984BF9D61866CC9), UINT64_C(0x4007F668EE6E8271), + UINT64_C(0x090E14CCF107566D), UINT64_C(0x08C2354A1131FCD8)}, + {UINT64_C(0xF9C862998F5FFF23), UINT64_C(0x97788808AC995497), + UINT64_C(0xBF6CB8B5D43FDCB9), UINT64_C(0xC75BD147B72DFB91), + UINT64_C(0xA537A636E15359C6), UINT64_C(0x313458F393F6292F), + UINT64_C(0x096B68662BF3CE59), UINT64_C(0x5618ACC8275BB1A8)}}, + {{UINT64_C(0x434DBAD76DD4F47F), UINT64_C(0x7F24804B93A13416), + UINT64_C(0x54864638DCFDC8FB), UINT64_C(0x94D15AAB8DBB2A99), + UINT64_C(0xC60D064A3B08BE5D), UINT64_C(0x8D52AF0377113B1C), + UINT64_C(0x795F3549E649649D), UINT64_C(0x6C50A7B3A2F7B890)}, + {UINT64_C(0x1243D102BA7BE66C), UINT64_C(0xD52A9D6524A4F3D5), + UINT64_C(0x84F3A7D8D940B299), UINT64_C(0x2D0D05610A6C5F96), + UINT64_C(0x6814730955AF49E6), UINT64_C(0x1AD2CC292D484160), + UINT64_C(0xD983666441613C8C), UINT64_C(0x116D32D9E1444926)}}, + {{UINT64_C(0xBFB347E11FC8967F), UINT64_C(0xAB2F0DE9AFD35E6A), + UINT64_C(0x77C822B93D717B63), UINT64_C(0xBA49F6D5EFE76953), + UINT64_C(0xC4FF8395C3729C1E), UINT64_C(0x5E5251991792651B), + UINT64_C(0xEF736F1E220793FE), UINT64_C(0x0C1364DEADA2DF7C)}, + {UINT64_C(0xE364A0295E0A04FB), UINT64_C(0x078CF4CC02A1CB8F), + UINT64_C(0x2C6EDCEC884EB5E8), UINT64_C(0x361E83F134DA48A0), + UINT64_C(0x543FD798AE22EE07), UINT64_C(0x80A0521A72A9D550), + UINT64_C(0xCEEB2763D5D883DE), UINT64_C(0x4633AE13744C8616)}}, + {{UINT64_C(0x386138C2EFC180BF), UINT64_C(0x62884C835025C16C), + UINT64_C(0xC846079F3AEF27D9), UINT64_C(0x85AC6CC58815E30E), + UINT64_C(0x45705559D26A2BD0), UINT64_C(0xEF1649A0EEDB70C4), + UINT64_C(0x2596F146E4641EFD), UINT64_C(0x61E89F8E93C7B04A)}, + {UINT64_C(0x6EBD7C9F071CA85D), UINT64_C(0x5C9951AE1C15ACD1), + UINT64_C(0x9DE96A7C8AE934A1), UINT64_C(0x4B32645D481D190E), + UINT64_C(0x8D0E2B25A79C0B4A), UINT64_C(0x8EF7BB2ACD74DA50), + UINT64_C(0x9481D2DB07920CC8), UINT64_C(0x1BD7A22E8736C183)}}, + {{UINT64_C(0xD4F2750064FCB568), UINT64_C(0xD92CBB705C300E98), + UINT64_C(0x5A971902CAA8D9B9), UINT64_C(0xA5542DF51C4824C9), + UINT64_C(0x7B469D1BC84D2CCD), UINT64_C(0xD3FBFEBBA2566F40), + UINT64_C(0x89511F69E8FA73C0), UINT64_C(0x6FFD125BB162F797)}, + {UINT64_C(0x961C9532C0FA653C), UINT64_C(0x007BD198BDB0C77A), + UINT64_C(0x1853303BEEFC3BE3), UINT64_C(0x6D50323FC4A33E36), + UINT64_C(0x9798C97AE367E4C9), UINT64_C(0x9E146B0712A538A8), + UINT64_C(0xBFB3E8194996D58B), UINT64_C(0x5438D6F69022E072)}}, + {{UINT64_C(0xC58B1061DD4E810B), UINT64_C(0x7966E96A8FD29C69), + UINT64_C(0x7E2D9FD42E65F9B6), UINT64_C(0xA8F68084FC48055F), + UINT64_C(0x545CAE012DC5A983), UINT64_C(0xC9D198C8A2596608), + UINT64_C(0xF9D9BF5D4208B520), UINT64_C(0x1C0C3F5A7E6883FF)}, + {UINT64_C(0x06D7B98305CD4D87), UINT64_C(0x899A60E89E9F9F35), + UINT64_C(0x1465EAD55119AAC1), UINT64_C(0x3EDF1E360F329991), + UINT64_C(0x86BCB01EA0646C43), UINT64_C(0xA6EF27F3EF4EBCEB), + UINT64_C(0xEAF04AE654EB8E6B), UINT64_C(0x48051E6208227047)}}, + {{UINT64_C(0xA84EFDA5F245F1E6), UINT64_C(0x49759EF3EB80F18C), + UINT64_C(0xFB8A3A4B1142EE5C), UINT64_C(0x62907A8FB9EE65D6), + UINT64_C(0xC5FD7DC9D68D862F), UINT64_C(0x1F791D0FE1C81BAD), + UINT64_C(0xFED4DEA38C4757BA), UINT64_C(0x041A50E32FA4C20E)}, + {UINT64_C(0xB8F7EE7AF454E68E), UINT64_C(0xB68F9599CBAB4836), + UINT64_C(0x3FB9C650F1872586), UINT64_C(0xF967C7689FDDEF61), + UINT64_C(0x8A2683AF70E86E8E), UINT64_C(0xAFD29242E523AD78), + UINT64_C(0xBA4EECA59DD43A6C), UINT64_C(0x374478967BB2E1AE)}}, + {{UINT64_C(0xE5378393F86EFABC), UINT64_C(0x336470CA45F692E9), + UINT64_C(0xC5F0022C66E0FBDF), UINT64_C(0x189D81D53ECD3196), + UINT64_C(0x416D97CB771F9C1C), UINT64_C(0xBF2B6B77223448F1), + UINT64_C(0xA4F6355ABE42A9A6), UINT64_C(0x1C15439AB9956AAC)}, + {UINT64_C(0x020CA3197DBFC8B8), UINT64_C(0x25A1DFD15C7E4025), + UINT64_C(0x5CF6FAD84D06AAA0), UINT64_C(0x8221BAD8AC1B211B), + UINT64_C(0x68E7DBA3AE4C7F7B), UINT64_C(0x4C167FA9FEF7CB4B), + UINT64_C(0x207A14B8A34935DE), UINT64_C(0x1476CCBD645A14C2)}}, + {{UINT64_C(0xF0467D8954E05676), UINT64_C(0xA1987E17E04530FF), + UINT64_C(0x1E3010C22E3A997C), UINT64_C(0x4001E89FEBEF74A7), + UINT64_C(0x60C6556632572D28), UINT64_C(0x410C49D0A562BF8F), + UINT64_C(0xFE591AD0782CE10C), UINT64_C(0x272DE301C3016AA6)}, + {UINT64_C(0x7AEFA3F7D3FD089D), UINT64_C(0x5141E3CFC68CE61E), + UINT64_C(0xEC6F871E919EF2CB), UINT64_C(0x9E1F2C4FB15754CA), + UINT64_C(0x4E053A03B367A8E1), UINT64_C(0xB5447BAB7A946A07), + UINT64_C(0xCA9D154A5934AC68), UINT64_C(0x2C24448B9DCC05A4)}}, + {{UINT64_C(0xDDDCC6F77230B721), UINT64_C(0x3AB7517BD59A4D7D), + UINT64_C(0x0202A42773E75A94), UINT64_C(0xEB9CBB02F45E584C), + UINT64_C(0x879F20404D193D46), UINT64_C(0x897A3D49FD5CCEC5), + UINT64_C(0x7B22D3AD5E795234), UINT64_C(0x103A74B935E6EA1D)}, + {UINT64_C(0x83AD405EDE267F29), UINT64_C(0x9C0750BCCD4EF83E), + UINT64_C(0x1192B08CAAF8C955), UINT64_C(0xD983183C93618DC5), + UINT64_C(0x3F142E9F51FA4692), UINT64_C(0xF9242D3EA9E77124), + UINT64_C(0x044F55EAC733EFCE), UINT64_C(0x3FCE259EBFB0E74D)}}, + {{UINT64_C(0xB4A72C274E061902), UINT64_C(0x46D496858271B5ED), + UINT64_C(0xE640CD1CC565B666), UINT64_C(0xFEE64A698C432368), + UINT64_C(0x9B245FBA7C9309AA), UINT64_C(0x2489BB011FD0DCD7), + UINT64_C(0xBE612E5CB4ADB680), UINT64_C(0x7B828C731905845A)}, + {UINT64_C(0xB205C233AE7E8E5F), UINT64_C(0x67C2AC050DDE4865), + UINT64_C(0xC29416F4556BCEFF), UINT64_C(0x3A94801DE7DE42B2), + UINT64_C(0xC79768DB8E9195AD), UINT64_C(0xF701EAE5702232BD), + UINT64_C(0x7093880E769E819E), UINT64_C(0x07385CFB85575FE1)}}, + {{UINT64_C(0xBE89A89F552D7645), UINT64_C(0xC1406B554C7C1F2D), + UINT64_C(0x123A5BB39C11B663), UINT64_C(0x1925904A275B4F27), + UINT64_C(0x94D3368711F1A12B), UINT64_C(0x446FD57BD3F31833), + UINT64_C(0x0FF6FF5DA29D4040), UINT64_C(0x35355FF6AE52039A)}, + {UINT64_C(0x74B055757DE14B02), UINT64_C(0xD2E7C9637A47B576), + UINT64_C(0x0D391E9DE99D0433), UINT64_C(0xA4DC392950CCA807), + UINT64_C(0x81694449A2AF3088), UINT64_C(0x9222E26555474A7F), + UINT64_C(0xAB5C44522C2AD9EE), UINT64_C(0x5810784DF7EC7C2A)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 6 + * ASSERT: a = -3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(t0, X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(t1, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(t2, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t3, X, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, t3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t4, Y, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, X, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, b, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(X3, X3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, t2, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t2, t2, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, b, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Z3, Z3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Z3, Z3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t0, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t0, t0, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t0, t4, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, t0, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, Z3); +} + +/*- + * 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.op3 + * https://eprint.iacr.org/2015/1060 Alg 5 + * ASSERT: a = -3 + */ +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, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t4, Y2, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, t4, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, X2, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, Y3, X1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, b, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, X3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Z3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, b, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, Z1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t2, t1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t0, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, t4, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t2, t0, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(X3, t3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, t4, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, t1); + + /* if P is inf, throw all that away and take Q */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(R->X, nz, Q->X, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 4 + * ASSERT: a = -3 + */ +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, t4, t5; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t2, Z1, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, Y1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t5, Y2, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t4, t4, t5); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t5, t1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t4, t4, t5); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, X1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, X2, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(X3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, b, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, X3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Z3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, b, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, t2, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t2, t1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t0, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, t4, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t2, t0, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(X3, t3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, t4, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, t1); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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(char out[103], const unsigned char in[64]) { + int i; + char 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(char out[513], const unsigned char in[64]) { + int i; + char 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; + } +} + +/*- + * Simulateous 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; + char anaf[513] = {0}; + char bnaf[513] = {0}; + pt_prj_t Q; + 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_paramSetB_opp(Q.Y, Q.Y); + 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.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_paramSetB_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_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; + char rnaf[103] = {0}; + pt_prj_t Q, lut; + 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_paramSetB_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_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_paramSetB_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_opp(out->Y, lut.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_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; + char rnaf[103] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 7; i >= 0; i--) { + for (j = 0; i != 7 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 14; j++) { + if (j * 8 + i > 102) continue; + d = rnaf[j * 8 + 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_paramSetB_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_opp(out->Y, lut.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.X, scalar[0] & 1, R.X, + Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.Y, scalar[0] & 1, R.Y, + Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.Z, scalar[0] & 1, R.Z, + Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(out->Y, Q.Y, Q.Z); +} + +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_paramSetB_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_bytes(P.Y, iny); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery(P.X, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery(P.Y, P.Y); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery(P.X, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery(P.Y, P.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outy, P.Y); +} + +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_paramSetB_from_montgomery(P.X, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery(P.Y, P.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outy, P.Y); +} + +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_paramSetB_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_bytes(P.Y, iny); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery(P.X, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery(P.Y, P.Y); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery(P.X, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery(P.Y, P.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[64] = {0}; + + int + point_mul_two_id_tc26_gost_3410_2012_512_paramSetB( + 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; +} + + int + point_mul_id_tc26_gost_3410_2012_512_paramSetB(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; +} + + int + point_mul_g_id_tc26_gost_3410_2012_512_paramSetB(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 16 +/* Field elements */ +typedef uint32_t fe_t[LIMB_CNT]; +typedef uint32_t limb_t; + +#define fe_copy(d, s) memcpy(d, s, sizeof(fe_t)) +#define fe_set_zero(d) memset(d, 0, sizeof(fe_t)) + +/* Projective points */ +typedef struct { + fe_t X; + fe_t Y; + fe_t Z; +} pt_prj_t; + +/* Affine points */ +typedef struct { + fe_t X; + fe_t Y; +} 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: word_by_word_montgomery --static id_tc26_gost_3410_2012_512_paramSetB 32 '2^511 + 111' */ +/* curve description: id_tc26_gost_3410_2012_512_paramSetB */ +/* machine_wordsize = 32 (from "32") */ +/* requested operations: (all) */ +/* m = 0x8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006f (from "2^511 + 111") */ +/* */ +/* NOTE: In addition to the bounds specified above each function, all */ +/* functions synthesized for this Montgomery arithmetic require the */ +/* input to be strictly less than the prime modulus (m), and also */ +/* require the input to be in the unique saturated representation. */ +/* All functions also ensure that these two properties are true of */ +/* return values. */ +/* */ +/* Computed values: */ +/* eval z = z[0] + (z[1] << 32) + (z[2] << 64) + (z[3] << 96) + (z[4] << 128) + (z[5] << 160) + (z[6] << 192) + (z[7] << 224) + (z[8] << 256) + (z[9] << 0x120) + (z[10] << 0x140) + (z[11] << 0x160) + (z[12] << 0x180) + (z[13] << 0x1a0) + (z[14] << 0x1c0) + (z[15] << 0x1e0) */ +/* 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) */ + +#include +typedef unsigned char fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1; +typedef signed char fiat_id_tc26_gost_3410_2012_512_paramSetB_int1; + +#if (-1 & 3) != 3 +#error "This code only works on a two's complement system" +#endif + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32 is an addition with carry. + * Postconditions: + * out1 = (arg1 + arg2 + arg3) mod 2^32 + * out2 = ⌊(arg1 + arg2 + arg3) / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + uint64_t x1; + uint32_t x2; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x3; + x1 = ((arg1 + (uint64_t)arg2) + arg3); + x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + x3 = (fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32 is a subtraction with borrow. + * Postconditions: + * out1 = (-arg1 + arg2 + -arg3) mod 2^32 + * out2 = -⌊(-arg1 + arg2 + -arg3) / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0x1] + * arg2: [0x0 ~> 0xffffffff] + * arg3: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0x1] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 *out2, + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 arg1, uint32_t arg2, + uint32_t arg3) { + int64_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetB_int1 x2; + uint32_t x3; + x1 = ((arg2 - (int64_t)arg1) - arg3); + x2 = (fiat_id_tc26_gost_3410_2012_512_paramSetB_int1)(x1 >> 32); + x3 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + *out1 = x3; + *out2 = (fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1)(0x0 - x2); +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32 is a multiplication, returning the full double-width result. + * Postconditions: + * out1 = (arg1 * arg2) mod 2^32 + * out2 = ⌊arg1 * arg2 / 2^32⌋ + * + * Input Bounds: + * arg1: [0x0 ~> 0xffffffff] + * arg2: [0x0 ~> 0xffffffff] + * Output Bounds: + * out1: [0x0 ~> 0xffffffff] + * out2: [0x0 ~> 0xffffffff] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(uint32_t *out1, + uint32_t *out2, + uint32_t arg1, + uint32_t arg2) { + uint64_t x1; + uint32_t x2; + uint32_t x3; + x1 = ((uint64_t)arg1 * arg2); + x2 = (uint32_t)(x1 & UINT32_C(0xffffffff)); + x3 = (uint32_t)(x1 >> 32); + *out1 = x2; + *out2 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_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_paramSetB_cmovznz_u32( + uint32_t *out1, fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 arg1, + uint32_t arg2, uint32_t arg3) { + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1; + uint32_t x2; + uint32_t x3; + x1 = (!(!arg1)); + x2 = ((fiat_id_tc26_gost_3410_2012_512_paramSetB_int1)(0x0 - x1) & + UINT32_C(0xffffffff)); + x3 = ((x2 & arg3) | ((~x2) & arg2)); + *out1 = x3; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_mul multiplies two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + * 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]] + * 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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_mul( + uint32_t out1[16], const uint32_t arg1[16], const uint32_t arg2[16]) { + 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; + uint32_t x49; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x50; + uint32_t x51; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x52; + uint32_t x53; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x54; + uint32_t x55; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x56; + uint32_t x57; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x58; + uint32_t x59; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x60; + uint32_t x61; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x62; + uint32_t x63; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x64; + uint32_t x65; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x66; + uint32_t x67; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x68; + uint32_t x69; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x70; + uint32_t x71; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x72; + uint32_t x73; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x74; + uint32_t x75; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x76; + uint32_t x77; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + uint32_t x82; + uint32_t x83; + uint32_t x84; + uint32_t x85; + uint32_t x86; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x87; + uint32_t x88; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x89; + uint32_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x91; + uint32_t x92; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x93; + uint32_t x94; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x95; + uint32_t x96; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x97; + uint32_t x98; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x99; + uint32_t x100; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x101; + uint32_t x102; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x103; + uint32_t x104; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x105; + uint32_t x106; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x107; + uint32_t x108; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x109; + uint32_t x110; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x111; + uint32_t x112; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x113; + uint32_t x114; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x115; + uint32_t x116; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x117; + uint32_t x118; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x119; + uint32_t x120; + uint32_t x121; + uint32_t x122; + uint32_t x123; + uint32_t x124; + uint32_t x125; + uint32_t x126; + uint32_t x127; + uint32_t x128; + uint32_t x129; + uint32_t x130; + uint32_t x131; + uint32_t x132; + uint32_t x133; + uint32_t x134; + uint32_t x135; + uint32_t x136; + uint32_t x137; + uint32_t x138; + uint32_t x139; + uint32_t x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + uint32_t x148; + uint32_t x149; + uint32_t x150; + uint32_t x151; + uint32_t x152; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x153; + uint32_t x154; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x155; + uint32_t x156; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x157; + uint32_t x158; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x159; + uint32_t x160; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x161; + uint32_t x162; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x163; + uint32_t x164; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x165; + uint32_t x166; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x167; + uint32_t x168; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x169; + uint32_t x170; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x171; + uint32_t x172; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x173; + uint32_t x174; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x175; + uint32_t x176; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x177; + uint32_t x178; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x179; + uint32_t x180; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x181; + uint32_t x182; + uint32_t x183; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x184; + uint32_t x185; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x186; + uint32_t x187; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x188; + uint32_t x189; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x190; + uint32_t x191; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x192; + uint32_t x193; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x194; + uint32_t x195; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x196; + uint32_t x197; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x198; + uint32_t x199; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x200; + uint32_t x201; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x202; + uint32_t x203; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x204; + uint32_t x205; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x206; + uint32_t x207; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x208; + uint32_t x209; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x210; + uint32_t x211; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x212; + uint32_t x213; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x214; + uint32_t x215; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x216; + uint32_t x217; + uint32_t x218; + uint32_t x219; + uint32_t x220; + uint32_t x221; + uint32_t x222; + uint32_t x223; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x224; + uint32_t x225; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x226; + uint32_t x227; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x228; + uint32_t x229; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x230; + uint32_t x231; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x232; + uint32_t x233; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x234; + uint32_t x235; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x236; + uint32_t x237; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x238; + uint32_t x239; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x240; + uint32_t x241; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x242; + uint32_t x243; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x244; + uint32_t x245; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x246; + uint32_t x247; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x248; + uint32_t x249; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x250; + uint32_t x251; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x252; + uint32_t x253; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x254; + uint32_t x255; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x256; + uint32_t x257; + uint32_t x258; + uint32_t x259; + uint32_t x260; + uint32_t x261; + uint32_t x262; + uint32_t x263; + uint32_t x264; + uint32_t x265; + uint32_t x266; + uint32_t x267; + uint32_t x268; + uint32_t x269; + uint32_t x270; + uint32_t x271; + uint32_t x272; + uint32_t x273; + uint32_t x274; + uint32_t x275; + uint32_t x276; + uint32_t x277; + uint32_t x278; + uint32_t x279; + uint32_t x280; + uint32_t x281; + uint32_t x282; + uint32_t x283; + uint32_t x284; + uint32_t x285; + uint32_t x286; + uint32_t x287; + uint32_t x288; + uint32_t x289; + uint32_t x290; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x291; + uint32_t x292; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x293; + uint32_t x294; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x295; + uint32_t x296; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x297; + uint32_t x298; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x299; + uint32_t x300; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x301; + uint32_t x302; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x303; + uint32_t x304; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x305; + uint32_t x306; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x307; + uint32_t x308; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x309; + uint32_t x310; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x311; + uint32_t x312; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x313; + uint32_t x314; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x315; + uint32_t x316; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x317; + uint32_t x318; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x319; + uint32_t x320; + uint32_t x321; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x322; + uint32_t x323; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x324; + uint32_t x325; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x326; + uint32_t x327; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x328; + uint32_t x329; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x330; + uint32_t x331; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x332; + uint32_t x333; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x334; + uint32_t x335; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x336; + uint32_t x337; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x338; + uint32_t x339; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x340; + uint32_t x341; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x342; + uint32_t x343; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x344; + uint32_t x345; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x346; + uint32_t x347; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x348; + uint32_t x349; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x350; + uint32_t x351; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x352; + uint32_t x353; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x354; + uint32_t x355; + uint32_t x356; + uint32_t x357; + uint32_t x358; + uint32_t x359; + uint32_t x360; + uint32_t x361; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x362; + uint32_t x363; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x364; + uint32_t x365; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x366; + uint32_t x367; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x368; + uint32_t x369; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x370; + uint32_t x371; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x372; + uint32_t x373; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x374; + uint32_t x375; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x376; + uint32_t x377; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x378; + uint32_t x379; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x380; + uint32_t x381; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x382; + uint32_t x383; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x384; + uint32_t x385; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x386; + uint32_t x387; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x388; + uint32_t x389; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x390; + uint32_t x391; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x392; + uint32_t x393; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x394; + uint32_t x395; + uint32_t x396; + uint32_t x397; + uint32_t x398; + uint32_t x399; + uint32_t x400; + uint32_t x401; + uint32_t x402; + uint32_t x403; + uint32_t x404; + uint32_t x405; + uint32_t x406; + uint32_t x407; + uint32_t x408; + uint32_t x409; + uint32_t x410; + uint32_t x411; + uint32_t x412; + uint32_t x413; + uint32_t x414; + uint32_t x415; + uint32_t x416; + uint32_t x417; + uint32_t x418; + uint32_t x419; + uint32_t x420; + uint32_t x421; + uint32_t x422; + uint32_t x423; + uint32_t x424; + uint32_t x425; + uint32_t x426; + uint32_t x427; + uint32_t x428; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x429; + uint32_t x430; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x431; + uint32_t x432; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x433; + uint32_t x434; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x435; + uint32_t x436; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x437; + uint32_t x438; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x439; + uint32_t x440; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x441; + uint32_t x442; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x443; + uint32_t x444; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x445; + uint32_t x446; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x447; + uint32_t x448; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x449; + uint32_t x450; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x451; + uint32_t x452; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x453; + uint32_t x454; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x455; + uint32_t x456; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x457; + uint32_t x458; + uint32_t x459; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x460; + uint32_t x461; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x462; + uint32_t x463; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x464; + uint32_t x465; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x466; + uint32_t x467; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x468; + uint32_t x469; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x470; + uint32_t x471; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x472; + uint32_t x473; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x474; + uint32_t x475; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x476; + uint32_t x477; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x478; + uint32_t x479; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x480; + uint32_t x481; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x482; + uint32_t x483; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x484; + uint32_t x485; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x486; + uint32_t x487; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x488; + uint32_t x489; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x490; + uint32_t x491; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x492; + uint32_t x493; + uint32_t x494; + uint32_t x495; + uint32_t x496; + uint32_t x497; + uint32_t x498; + uint32_t x499; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x500; + uint32_t x501; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x502; + uint32_t x503; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x504; + uint32_t x505; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x506; + uint32_t x507; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x508; + uint32_t x509; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x510; + uint32_t x511; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x512; + uint32_t x513; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x514; + uint32_t x515; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x516; + uint32_t x517; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x518; + uint32_t x519; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x520; + uint32_t x521; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x522; + uint32_t x523; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x524; + uint32_t x525; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x526; + uint32_t x527; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x528; + uint32_t x529; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x530; + uint32_t x531; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x532; + uint32_t x533; + uint32_t x534; + uint32_t x535; + uint32_t x536; + uint32_t x537; + uint32_t x538; + uint32_t x539; + uint32_t x540; + uint32_t x541; + uint32_t x542; + uint32_t x543; + uint32_t x544; + uint32_t x545; + uint32_t x546; + uint32_t x547; + uint32_t x548; + uint32_t x549; + uint32_t x550; + uint32_t x551; + uint32_t x552; + uint32_t x553; + uint32_t x554; + uint32_t x555; + uint32_t x556; + uint32_t x557; + uint32_t x558; + uint32_t x559; + uint32_t x560; + uint32_t x561; + uint32_t x562; + uint32_t x563; + uint32_t x564; + uint32_t x565; + uint32_t x566; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x567; + uint32_t x568; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x569; + uint32_t x570; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x571; + uint32_t x572; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x573; + uint32_t x574; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x575; + uint32_t x576; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x577; + uint32_t x578; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x579; + uint32_t x580; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x581; + uint32_t x582; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x583; + uint32_t x584; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x585; + uint32_t x586; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x587; + uint32_t x588; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x589; + uint32_t x590; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x591; + uint32_t x592; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x593; + uint32_t x594; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x595; + uint32_t x596; + uint32_t x597; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x598; + uint32_t x599; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x600; + uint32_t x601; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x602; + uint32_t x603; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x604; + uint32_t x605; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x606; + uint32_t x607; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x608; + uint32_t x609; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x610; + uint32_t x611; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x612; + uint32_t x613; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x614; + uint32_t x615; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x616; + uint32_t x617; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x618; + uint32_t x619; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x620; + uint32_t x621; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x622; + uint32_t x623; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x624; + uint32_t x625; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x626; + uint32_t x627; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x628; + uint32_t x629; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x630; + uint32_t x631; + uint32_t x632; + uint32_t x633; + uint32_t x634; + uint32_t x635; + uint32_t x636; + uint32_t x637; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x638; + uint32_t x639; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x640; + uint32_t x641; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x642; + uint32_t x643; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x644; + uint32_t x645; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x646; + uint32_t x647; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x648; + uint32_t x649; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x650; + uint32_t x651; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x652; + uint32_t x653; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x654; + uint32_t x655; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x656; + uint32_t x657; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x658; + uint32_t x659; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x660; + uint32_t x661; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x662; + uint32_t x663; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x664; + uint32_t x665; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x666; + uint32_t x667; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x668; + uint32_t x669; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x670; + uint32_t x671; + uint32_t x672; + uint32_t x673; + uint32_t x674; + uint32_t x675; + uint32_t x676; + uint32_t x677; + uint32_t x678; + uint32_t x679; + uint32_t x680; + uint32_t x681; + uint32_t x682; + uint32_t x683; + uint32_t x684; + uint32_t x685; + uint32_t x686; + uint32_t x687; + uint32_t x688; + uint32_t x689; + uint32_t x690; + uint32_t x691; + uint32_t x692; + uint32_t x693; + uint32_t x694; + uint32_t x695; + uint32_t x696; + uint32_t x697; + uint32_t x698; + uint32_t x699; + uint32_t x700; + uint32_t x701; + uint32_t x702; + uint32_t x703; + uint32_t x704; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x705; + uint32_t x706; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x707; + uint32_t x708; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x709; + uint32_t x710; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x711; + uint32_t x712; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x713; + uint32_t x714; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x715; + uint32_t x716; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x717; + uint32_t x718; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x719; + uint32_t x720; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x721; + uint32_t x722; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x723; + uint32_t x724; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x725; + uint32_t x726; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x727; + uint32_t x728; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x729; + uint32_t x730; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x731; + uint32_t x732; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x733; + uint32_t x734; + uint32_t x735; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x736; + uint32_t x737; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x738; + uint32_t x739; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x740; + uint32_t x741; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x742; + uint32_t x743; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x744; + uint32_t x745; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x746; + uint32_t x747; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x748; + uint32_t x749; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x750; + uint32_t x751; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x752; + uint32_t x753; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x754; + uint32_t x755; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x756; + uint32_t x757; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x758; + uint32_t x759; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x760; + uint32_t x761; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x762; + uint32_t x763; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x764; + uint32_t x765; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x766; + uint32_t x767; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x768; + uint32_t x769; + uint32_t x770; + uint32_t x771; + uint32_t x772; + uint32_t x773; + uint32_t x774; + uint32_t x775; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x776; + uint32_t x777; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x778; + uint32_t x779; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x780; + uint32_t x781; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x782; + uint32_t x783; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x784; + uint32_t x785; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x786; + uint32_t x787; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x788; + uint32_t x789; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x790; + uint32_t x791; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x792; + uint32_t x793; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x794; + uint32_t x795; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x796; + uint32_t x797; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x798; + uint32_t x799; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x800; + uint32_t x801; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x802; + uint32_t x803; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x804; + uint32_t x805; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x806; + uint32_t x807; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x808; + uint32_t x809; + uint32_t x810; + uint32_t x811; + uint32_t x812; + uint32_t x813; + uint32_t x814; + uint32_t x815; + uint32_t x816; + uint32_t x817; + uint32_t x818; + uint32_t x819; + uint32_t x820; + uint32_t x821; + uint32_t x822; + uint32_t x823; + uint32_t x824; + uint32_t x825; + uint32_t x826; + uint32_t x827; + uint32_t x828; + uint32_t x829; + uint32_t x830; + uint32_t x831; + uint32_t x832; + uint32_t x833; + uint32_t x834; + uint32_t x835; + uint32_t x836; + uint32_t x837; + uint32_t x838; + uint32_t x839; + uint32_t x840; + uint32_t x841; + uint32_t x842; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x843; + uint32_t x844; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x845; + uint32_t x846; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x847; + uint32_t x848; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x849; + uint32_t x850; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x851; + uint32_t x852; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x853; + uint32_t x854; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x855; + uint32_t x856; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x857; + uint32_t x858; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x859; + uint32_t x860; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x861; + uint32_t x862; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x863; + uint32_t x864; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x865; + uint32_t x866; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x867; + uint32_t x868; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x869; + uint32_t x870; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x871; + uint32_t x872; + uint32_t x873; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x874; + uint32_t x875; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x876; + uint32_t x877; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x878; + uint32_t x879; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x880; + uint32_t x881; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x882; + uint32_t x883; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x884; + uint32_t x885; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x886; + uint32_t x887; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x888; + uint32_t x889; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x890; + uint32_t x891; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x892; + uint32_t x893; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x894; + uint32_t x895; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x896; + uint32_t x897; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x898; + uint32_t x899; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x900; + uint32_t x901; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x902; + uint32_t x903; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x904; + uint32_t x905; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x906; + uint32_t x907; + uint32_t x908; + uint32_t x909; + uint32_t x910; + uint32_t x911; + uint32_t x912; + uint32_t x913; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x914; + uint32_t x915; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x916; + uint32_t x917; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x918; + uint32_t x919; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x920; + uint32_t x921; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x922; + uint32_t x923; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x924; + uint32_t x925; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x926; + uint32_t x927; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x928; + uint32_t x929; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x930; + uint32_t x931; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x932; + uint32_t x933; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x934; + uint32_t x935; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x936; + uint32_t x937; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x938; + uint32_t x939; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x940; + uint32_t x941; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x942; + uint32_t x943; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x944; + uint32_t x945; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x946; + uint32_t x947; + uint32_t x948; + uint32_t x949; + uint32_t x950; + uint32_t x951; + uint32_t x952; + uint32_t x953; + uint32_t x954; + uint32_t x955; + uint32_t x956; + uint32_t x957; + uint32_t x958; + uint32_t x959; + uint32_t x960; + uint32_t x961; + uint32_t x962; + uint32_t x963; + uint32_t x964; + uint32_t x965; + uint32_t x966; + uint32_t x967; + uint32_t x968; + uint32_t x969; + uint32_t x970; + uint32_t x971; + uint32_t x972; + uint32_t x973; + uint32_t x974; + uint32_t x975; + uint32_t x976; + uint32_t x977; + uint32_t x978; + uint32_t x979; + uint32_t x980; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x981; + uint32_t x982; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x983; + uint32_t x984; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x985; + uint32_t x986; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x987; + uint32_t x988; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x989; + uint32_t x990; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x991; + uint32_t x992; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x993; + uint32_t x994; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x995; + uint32_t x996; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x997; + uint32_t x998; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x999; + uint32_t x1000; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1001; + uint32_t x1002; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1003; + uint32_t x1004; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1005; + uint32_t x1006; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1007; + uint32_t x1008; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1009; + uint32_t x1010; + uint32_t x1011; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1012; + uint32_t x1013; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1014; + uint32_t x1015; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1016; + uint32_t x1017; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1018; + uint32_t x1019; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1020; + uint32_t x1021; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1022; + uint32_t x1023; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1024; + uint32_t x1025; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1026; + uint32_t x1027; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1028; + uint32_t x1029; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1030; + uint32_t x1031; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1032; + uint32_t x1033; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1034; + uint32_t x1035; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1036; + uint32_t x1037; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1038; + uint32_t x1039; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1040; + uint32_t x1041; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1042; + uint32_t x1043; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1044; + uint32_t x1045; + uint32_t x1046; + uint32_t x1047; + uint32_t x1048; + uint32_t x1049; + uint32_t x1050; + uint32_t x1051; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1052; + uint32_t x1053; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1054; + uint32_t x1055; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1056; + uint32_t x1057; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1058; + uint32_t x1059; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1060; + uint32_t x1061; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1062; + uint32_t x1063; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1064; + uint32_t x1065; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1066; + uint32_t x1067; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1068; + uint32_t x1069; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1070; + uint32_t x1071; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1072; + uint32_t x1073; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1074; + uint32_t x1075; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1076; + uint32_t x1077; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1078; + uint32_t x1079; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1080; + uint32_t x1081; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1082; + uint32_t x1083; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1084; + uint32_t x1085; + uint32_t x1086; + uint32_t x1087; + uint32_t x1088; + uint32_t x1089; + uint32_t x1090; + uint32_t x1091; + uint32_t x1092; + uint32_t x1093; + uint32_t x1094; + uint32_t x1095; + uint32_t x1096; + uint32_t x1097; + uint32_t x1098; + uint32_t x1099; + uint32_t x1100; + uint32_t x1101; + uint32_t x1102; + uint32_t x1103; + uint32_t x1104; + uint32_t x1105; + uint32_t x1106; + uint32_t x1107; + uint32_t x1108; + uint32_t x1109; + uint32_t x1110; + uint32_t x1111; + uint32_t x1112; + uint32_t x1113; + uint32_t x1114; + uint32_t x1115; + uint32_t x1116; + uint32_t x1117; + uint32_t x1118; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1119; + uint32_t x1120; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1121; + uint32_t x1122; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1123; + uint32_t x1124; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1125; + uint32_t x1126; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1127; + uint32_t x1128; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1129; + uint32_t x1130; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1131; + uint32_t x1132; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1133; + uint32_t x1134; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1135; + uint32_t x1136; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1137; + uint32_t x1138; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1139; + uint32_t x1140; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1141; + uint32_t x1142; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1143; + uint32_t x1144; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1145; + uint32_t x1146; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1147; + uint32_t x1148; + uint32_t x1149; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1150; + uint32_t x1151; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1152; + uint32_t x1153; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1154; + uint32_t x1155; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1156; + uint32_t x1157; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1158; + uint32_t x1159; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1160; + uint32_t x1161; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1162; + uint32_t x1163; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1164; + uint32_t x1165; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1166; + uint32_t x1167; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1168; + uint32_t x1169; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1170; + uint32_t x1171; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1172; + uint32_t x1173; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1174; + uint32_t x1175; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1176; + uint32_t x1177; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1178; + uint32_t x1179; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1180; + uint32_t x1181; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1182; + uint32_t x1183; + uint32_t x1184; + uint32_t x1185; + uint32_t x1186; + uint32_t x1187; + uint32_t x1188; + uint32_t x1189; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1190; + uint32_t x1191; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1192; + uint32_t x1193; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1194; + uint32_t x1195; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1196; + uint32_t x1197; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1198; + uint32_t x1199; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1200; + uint32_t x1201; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1202; + uint32_t x1203; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1204; + uint32_t x1205; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1206; + uint32_t x1207; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1208; + uint32_t x1209; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1210; + uint32_t x1211; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1212; + uint32_t x1213; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1214; + uint32_t x1215; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1216; + uint32_t x1217; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1218; + uint32_t x1219; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1220; + uint32_t x1221; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1222; + uint32_t x1223; + uint32_t x1224; + uint32_t x1225; + uint32_t x1226; + uint32_t x1227; + uint32_t x1228; + uint32_t x1229; + uint32_t x1230; + uint32_t x1231; + uint32_t x1232; + uint32_t x1233; + uint32_t x1234; + uint32_t x1235; + uint32_t x1236; + uint32_t x1237; + uint32_t x1238; + uint32_t x1239; + uint32_t x1240; + uint32_t x1241; + uint32_t x1242; + uint32_t x1243; + uint32_t x1244; + uint32_t x1245; + uint32_t x1246; + uint32_t x1247; + uint32_t x1248; + uint32_t x1249; + uint32_t x1250; + uint32_t x1251; + uint32_t x1252; + uint32_t x1253; + uint32_t x1254; + uint32_t x1255; + uint32_t x1256; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1257; + uint32_t x1258; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1259; + uint32_t x1260; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1261; + uint32_t x1262; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1263; + uint32_t x1264; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1265; + uint32_t x1266; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1267; + uint32_t x1268; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1269; + uint32_t x1270; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1271; + uint32_t x1272; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1273; + uint32_t x1274; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1275; + uint32_t x1276; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1277; + uint32_t x1278; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1279; + uint32_t x1280; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1281; + uint32_t x1282; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1283; + uint32_t x1284; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1285; + uint32_t x1286; + uint32_t x1287; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1288; + uint32_t x1289; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1290; + uint32_t x1291; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1292; + uint32_t x1293; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1294; + uint32_t x1295; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1296; + uint32_t x1297; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1298; + uint32_t x1299; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1300; + uint32_t x1301; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1302; + uint32_t x1303; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1304; + uint32_t x1305; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1306; + uint32_t x1307; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1308; + uint32_t x1309; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1310; + uint32_t x1311; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1312; + uint32_t x1313; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1314; + uint32_t x1315; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1316; + uint32_t x1317; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1318; + uint32_t x1319; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1320; + uint32_t x1321; + uint32_t x1322; + uint32_t x1323; + uint32_t x1324; + uint32_t x1325; + uint32_t x1326; + uint32_t x1327; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1328; + uint32_t x1329; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1330; + uint32_t x1331; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1332; + uint32_t x1333; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1334; + uint32_t x1335; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1336; + uint32_t x1337; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1338; + uint32_t x1339; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1340; + uint32_t x1341; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1342; + uint32_t x1343; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1344; + uint32_t x1345; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1346; + uint32_t x1347; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1348; + uint32_t x1349; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1350; + uint32_t x1351; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1352; + uint32_t x1353; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1354; + uint32_t x1355; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1356; + uint32_t x1357; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1358; + uint32_t x1359; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1360; + uint32_t x1361; + uint32_t x1362; + uint32_t x1363; + uint32_t x1364; + uint32_t x1365; + uint32_t x1366; + uint32_t x1367; + uint32_t x1368; + uint32_t x1369; + uint32_t x1370; + uint32_t x1371; + uint32_t x1372; + uint32_t x1373; + uint32_t x1374; + uint32_t x1375; + uint32_t x1376; + uint32_t x1377; + uint32_t x1378; + uint32_t x1379; + uint32_t x1380; + uint32_t x1381; + uint32_t x1382; + uint32_t x1383; + uint32_t x1384; + uint32_t x1385; + uint32_t x1386; + uint32_t x1387; + uint32_t x1388; + uint32_t x1389; + uint32_t x1390; + uint32_t x1391; + uint32_t x1392; + uint32_t x1393; + uint32_t x1394; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1395; + uint32_t x1396; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1397; + uint32_t x1398; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1399; + uint32_t x1400; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1401; + uint32_t x1402; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1403; + uint32_t x1404; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1405; + uint32_t x1406; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1407; + uint32_t x1408; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1409; + uint32_t x1410; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1411; + uint32_t x1412; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1413; + uint32_t x1414; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1415; + uint32_t x1416; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1417; + uint32_t x1418; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1419; + uint32_t x1420; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1421; + uint32_t x1422; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1423; + uint32_t x1424; + uint32_t x1425; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1426; + uint32_t x1427; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1428; + uint32_t x1429; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1430; + uint32_t x1431; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1432; + uint32_t x1433; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1434; + uint32_t x1435; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1436; + uint32_t x1437; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1438; + uint32_t x1439; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1440; + uint32_t x1441; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1442; + uint32_t x1443; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1444; + uint32_t x1445; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1446; + uint32_t x1447; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1448; + uint32_t x1449; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1450; + uint32_t x1451; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1452; + uint32_t x1453; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1454; + uint32_t x1455; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1456; + uint32_t x1457; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1458; + uint32_t x1459; + uint32_t x1460; + uint32_t x1461; + uint32_t x1462; + uint32_t x1463; + uint32_t x1464; + uint32_t x1465; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1466; + uint32_t x1467; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1468; + uint32_t x1469; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1470; + uint32_t x1471; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1472; + uint32_t x1473; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1474; + uint32_t x1475; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1476; + uint32_t x1477; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1478; + uint32_t x1479; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1480; + uint32_t x1481; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1482; + uint32_t x1483; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1484; + uint32_t x1485; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1486; + uint32_t x1487; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1488; + uint32_t x1489; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1490; + uint32_t x1491; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1492; + uint32_t x1493; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1494; + uint32_t x1495; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1496; + uint32_t x1497; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1498; + uint32_t x1499; + uint32_t x1500; + uint32_t x1501; + uint32_t x1502; + uint32_t x1503; + uint32_t x1504; + uint32_t x1505; + uint32_t x1506; + uint32_t x1507; + uint32_t x1508; + uint32_t x1509; + uint32_t x1510; + uint32_t x1511; + uint32_t x1512; + uint32_t x1513; + uint32_t x1514; + uint32_t x1515; + uint32_t x1516; + uint32_t x1517; + uint32_t x1518; + uint32_t x1519; + uint32_t x1520; + uint32_t x1521; + uint32_t x1522; + uint32_t x1523; + uint32_t x1524; + uint32_t x1525; + uint32_t x1526; + uint32_t x1527; + uint32_t x1528; + uint32_t x1529; + uint32_t x1530; + uint32_t x1531; + uint32_t x1532; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1533; + uint32_t x1534; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1535; + uint32_t x1536; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1537; + uint32_t x1538; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1539; + uint32_t x1540; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1541; + uint32_t x1542; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1543; + uint32_t x1544; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1545; + uint32_t x1546; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1547; + uint32_t x1548; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1549; + uint32_t x1550; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1551; + uint32_t x1552; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1553; + uint32_t x1554; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1555; + uint32_t x1556; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1557; + uint32_t x1558; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1559; + uint32_t x1560; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1561; + uint32_t x1562; + uint32_t x1563; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1564; + uint32_t x1565; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1566; + uint32_t x1567; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1568; + uint32_t x1569; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1570; + uint32_t x1571; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1572; + uint32_t x1573; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1574; + uint32_t x1575; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1576; + uint32_t x1577; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1578; + uint32_t x1579; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1580; + uint32_t x1581; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1582; + uint32_t x1583; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1584; + uint32_t x1585; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1586; + uint32_t x1587; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1588; + uint32_t x1589; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1590; + uint32_t x1591; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1592; + uint32_t x1593; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1594; + uint32_t x1595; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1596; + uint32_t x1597; + uint32_t x1598; + uint32_t x1599; + uint32_t x1600; + uint32_t x1601; + uint32_t x1602; + uint32_t x1603; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1604; + uint32_t x1605; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1606; + uint32_t x1607; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1608; + uint32_t x1609; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1610; + uint32_t x1611; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1612; + uint32_t x1613; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1614; + uint32_t x1615; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1616; + uint32_t x1617; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1618; + uint32_t x1619; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1620; + uint32_t x1621; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1622; + uint32_t x1623; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1624; + uint32_t x1625; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1626; + uint32_t x1627; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1628; + uint32_t x1629; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1630; + uint32_t x1631; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1632; + uint32_t x1633; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1634; + uint32_t x1635; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1636; + uint32_t x1637; + uint32_t x1638; + uint32_t x1639; + uint32_t x1640; + uint32_t x1641; + uint32_t x1642; + uint32_t x1643; + uint32_t x1644; + uint32_t x1645; + uint32_t x1646; + uint32_t x1647; + uint32_t x1648; + uint32_t x1649; + uint32_t x1650; + uint32_t x1651; + uint32_t x1652; + uint32_t x1653; + uint32_t x1654; + uint32_t x1655; + uint32_t x1656; + uint32_t x1657; + uint32_t x1658; + uint32_t x1659; + uint32_t x1660; + uint32_t x1661; + uint32_t x1662; + uint32_t x1663; + uint32_t x1664; + uint32_t x1665; + uint32_t x1666; + uint32_t x1667; + uint32_t x1668; + uint32_t x1669; + uint32_t x1670; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1671; + uint32_t x1672; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1673; + uint32_t x1674; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1675; + uint32_t x1676; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1677; + uint32_t x1678; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1679; + uint32_t x1680; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1681; + uint32_t x1682; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1683; + uint32_t x1684; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1685; + uint32_t x1686; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1687; + uint32_t x1688; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1689; + uint32_t x1690; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1691; + uint32_t x1692; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1693; + uint32_t x1694; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1695; + uint32_t x1696; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1697; + uint32_t x1698; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1699; + uint32_t x1700; + uint32_t x1701; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1702; + uint32_t x1703; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1704; + uint32_t x1705; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1706; + uint32_t x1707; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1708; + uint32_t x1709; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1710; + uint32_t x1711; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1712; + uint32_t x1713; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1714; + uint32_t x1715; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1716; + uint32_t x1717; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1718; + uint32_t x1719; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1720; + uint32_t x1721; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1722; + uint32_t x1723; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1724; + uint32_t x1725; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1726; + uint32_t x1727; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1728; + uint32_t x1729; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1730; + uint32_t x1731; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1732; + uint32_t x1733; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1734; + uint32_t x1735; + uint32_t x1736; + uint32_t x1737; + uint32_t x1738; + uint32_t x1739; + uint32_t x1740; + uint32_t x1741; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1742; + uint32_t x1743; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1744; + uint32_t x1745; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1746; + uint32_t x1747; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1748; + uint32_t x1749; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1750; + uint32_t x1751; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1752; + uint32_t x1753; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1754; + uint32_t x1755; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1756; + uint32_t x1757; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1758; + uint32_t x1759; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1760; + uint32_t x1761; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1762; + uint32_t x1763; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1764; + uint32_t x1765; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1766; + uint32_t x1767; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1768; + uint32_t x1769; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1770; + uint32_t x1771; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1772; + uint32_t x1773; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1774; + uint32_t x1775; + uint32_t x1776; + uint32_t x1777; + uint32_t x1778; + uint32_t x1779; + uint32_t x1780; + uint32_t x1781; + uint32_t x1782; + uint32_t x1783; + uint32_t x1784; + uint32_t x1785; + uint32_t x1786; + uint32_t x1787; + uint32_t x1788; + uint32_t x1789; + uint32_t x1790; + uint32_t x1791; + uint32_t x1792; + uint32_t x1793; + uint32_t x1794; + uint32_t x1795; + uint32_t x1796; + uint32_t x1797; + uint32_t x1798; + uint32_t x1799; + uint32_t x1800; + uint32_t x1801; + uint32_t x1802; + uint32_t x1803; + uint32_t x1804; + uint32_t x1805; + uint32_t x1806; + uint32_t x1807; + uint32_t x1808; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1809; + uint32_t x1810; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1811; + uint32_t x1812; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1813; + uint32_t x1814; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1815; + uint32_t x1816; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1817; + uint32_t x1818; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1819; + uint32_t x1820; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1821; + uint32_t x1822; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1823; + uint32_t x1824; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1825; + uint32_t x1826; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1827; + uint32_t x1828; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1829; + uint32_t x1830; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1831; + uint32_t x1832; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1833; + uint32_t x1834; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1835; + uint32_t x1836; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1837; + uint32_t x1838; + uint32_t x1839; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1840; + uint32_t x1841; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1842; + uint32_t x1843; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1844; + uint32_t x1845; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1846; + uint32_t x1847; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1848; + uint32_t x1849; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1850; + uint32_t x1851; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1852; + uint32_t x1853; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1854; + uint32_t x1855; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1856; + uint32_t x1857; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1858; + uint32_t x1859; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1860; + uint32_t x1861; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1862; + uint32_t x1863; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1864; + uint32_t x1865; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1866; + uint32_t x1867; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1868; + uint32_t x1869; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1870; + uint32_t x1871; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1872; + uint32_t x1873; + uint32_t x1874; + uint32_t x1875; + uint32_t x1876; + uint32_t x1877; + uint32_t x1878; + uint32_t x1879; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1880; + uint32_t x1881; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1882; + uint32_t x1883; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1884; + uint32_t x1885; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1886; + uint32_t x1887; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1888; + uint32_t x1889; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1890; + uint32_t x1891; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1892; + uint32_t x1893; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1894; + uint32_t x1895; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1896; + uint32_t x1897; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1898; + uint32_t x1899; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1900; + uint32_t x1901; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1902; + uint32_t x1903; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1904; + uint32_t x1905; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1906; + uint32_t x1907; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1908; + uint32_t x1909; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1910; + uint32_t x1911; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1912; + uint32_t x1913; + uint32_t x1914; + uint32_t x1915; + uint32_t x1916; + uint32_t x1917; + uint32_t x1918; + uint32_t x1919; + uint32_t x1920; + uint32_t x1921; + uint32_t x1922; + uint32_t x1923; + uint32_t x1924; + uint32_t x1925; + uint32_t x1926; + uint32_t x1927; + uint32_t x1928; + uint32_t x1929; + uint32_t x1930; + uint32_t x1931; + uint32_t x1932; + uint32_t x1933; + uint32_t x1934; + uint32_t x1935; + uint32_t x1936; + uint32_t x1937; + uint32_t x1938; + uint32_t x1939; + uint32_t x1940; + uint32_t x1941; + uint32_t x1942; + uint32_t x1943; + uint32_t x1944; + uint32_t x1945; + uint32_t x1946; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1947; + uint32_t x1948; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1949; + uint32_t x1950; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1951; + uint32_t x1952; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1953; + uint32_t x1954; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1955; + uint32_t x1956; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1957; + uint32_t x1958; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1959; + uint32_t x1960; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1961; + uint32_t x1962; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1963; + uint32_t x1964; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1965; + uint32_t x1966; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1967; + uint32_t x1968; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1969; + uint32_t x1970; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1971; + uint32_t x1972; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1973; + uint32_t x1974; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1975; + uint32_t x1976; + uint32_t x1977; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1978; + uint32_t x1979; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1980; + uint32_t x1981; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1982; + uint32_t x1983; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1984; + uint32_t x1985; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1986; + uint32_t x1987; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1988; + uint32_t x1989; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1990; + uint32_t x1991; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1992; + uint32_t x1993; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1994; + uint32_t x1995; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1996; + uint32_t x1997; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1998; + uint32_t x1999; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2000; + uint32_t x2001; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2002; + uint32_t x2003; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2004; + uint32_t x2005; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2006; + uint32_t x2007; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2008; + uint32_t x2009; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2010; + uint32_t x2011; + uint32_t x2012; + uint32_t x2013; + uint32_t x2014; + uint32_t x2015; + uint32_t x2016; + uint32_t x2017; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2018; + uint32_t x2019; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2020; + uint32_t x2021; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2022; + uint32_t x2023; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2024; + uint32_t x2025; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2026; + uint32_t x2027; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2028; + uint32_t x2029; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2030; + uint32_t x2031; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2032; + uint32_t x2033; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2034; + uint32_t x2035; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2036; + uint32_t x2037; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2038; + uint32_t x2039; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2040; + uint32_t x2041; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2042; + uint32_t x2043; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2044; + uint32_t x2045; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2046; + uint32_t x2047; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2048; + uint32_t x2049; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2050; + uint32_t x2051; + uint32_t x2052; + uint32_t x2053; + uint32_t x2054; + uint32_t x2055; + uint32_t x2056; + uint32_t x2057; + uint32_t x2058; + uint32_t x2059; + uint32_t x2060; + uint32_t x2061; + uint32_t x2062; + uint32_t x2063; + uint32_t x2064; + uint32_t x2065; + uint32_t x2066; + uint32_t x2067; + uint32_t x2068; + uint32_t x2069; + uint32_t x2070; + uint32_t x2071; + uint32_t x2072; + uint32_t x2073; + uint32_t x2074; + uint32_t x2075; + uint32_t x2076; + uint32_t x2077; + uint32_t x2078; + uint32_t x2079; + uint32_t x2080; + uint32_t x2081; + uint32_t x2082; + uint32_t x2083; + uint32_t x2084; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2085; + uint32_t x2086; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2087; + uint32_t x2088; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2089; + uint32_t x2090; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2091; + uint32_t x2092; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2093; + uint32_t x2094; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2095; + uint32_t x2096; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2097; + uint32_t x2098; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2099; + uint32_t x2100; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2101; + uint32_t x2102; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2103; + uint32_t x2104; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2105; + uint32_t x2106; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2107; + uint32_t x2108; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2109; + uint32_t x2110; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2111; + uint32_t x2112; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2113; + uint32_t x2114; + uint32_t x2115; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2116; + uint32_t x2117; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2118; + uint32_t x2119; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2120; + uint32_t x2121; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2122; + uint32_t x2123; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2124; + uint32_t x2125; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2126; + uint32_t x2127; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2128; + uint32_t x2129; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2130; + uint32_t x2131; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2132; + uint32_t x2133; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2134; + uint32_t x2135; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2136; + uint32_t x2137; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2138; + uint32_t x2139; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2140; + uint32_t x2141; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2142; + uint32_t x2143; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2144; + uint32_t x2145; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2146; + uint32_t x2147; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2148; + uint32_t x2149; + uint32_t x2150; + uint32_t x2151; + uint32_t x2152; + uint32_t x2153; + uint32_t x2154; + uint32_t x2155; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2156; + uint32_t x2157; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2158; + uint32_t x2159; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2160; + uint32_t x2161; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2162; + uint32_t x2163; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2164; + uint32_t x2165; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2166; + uint32_t x2167; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2168; + uint32_t x2169; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2170; + uint32_t x2171; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2172; + uint32_t x2173; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2174; + uint32_t x2175; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2176; + uint32_t x2177; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2178; + uint32_t x2179; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2180; + uint32_t x2181; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2182; + uint32_t x2183; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2184; + uint32_t x2185; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2186; + uint32_t x2187; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2188; + uint32_t x2189; + uint32_t x2190; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2191; + uint32_t x2192; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2193; + uint32_t x2194; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2195; + uint32_t x2196; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2197; + uint32_t x2198; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2199; + uint32_t x2200; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2201; + uint32_t x2202; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2203; + uint32_t x2204; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2205; + uint32_t x2206; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2207; + uint32_t x2208; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2209; + uint32_t x2210; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2211; + uint32_t x2212; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2213; + uint32_t x2214; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2215; + uint32_t x2216; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2217; + uint32_t x2218; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2219; + uint32_t x2220; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2221; + uint32_t x2222; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2223; + uint32_t x2224; + uint32_t x2225; + uint32_t x2226; + uint32_t x2227; + uint32_t x2228; + uint32_t x2229; + uint32_t x2230; + uint32_t x2231; + uint32_t x2232; + uint32_t x2233; + uint32_t x2234; + uint32_t x2235; + uint32_t x2236; + uint32_t x2237; + uint32_t x2238; + uint32_t x2239; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[8]); + x9 = (arg1[9]); + x10 = (arg1[10]); + x11 = (arg1[11]); + x12 = (arg1[12]); + x13 = (arg1[13]); + x14 = (arg1[14]); + x15 = (arg1[15]); + x16 = (arg1[0]); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x17, &x18, x16, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x19, &x20, x16, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x21, &x22, x16, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x23, &x24, x16, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x25, &x26, x16, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x27, &x28, x16, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x29, &x30, x16, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x31, &x32, x16, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x33, &x34, x16, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x35, &x36, x16, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x37, &x38, x16, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x39, &x40, x16, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x41, &x42, x16, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x43, &x44, x16, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x45, &x46, x16, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x47, &x48, x16, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x49, &x50, 0x0, + x48, x45); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x51, &x52, x50, + x46, x43); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x53, &x54, x52, + x44, x41); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x55, &x56, x54, + x42, x39); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x57, &x58, x56, + x40, x37); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x59, &x60, x58, + x38, x35); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x61, &x62, x60, + x36, x33); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x63, &x64, x62, + x34, x31); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x65, &x66, x64, + x32, x29); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x67, &x68, x66, + x30, x27); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x69, &x70, x68, + x28, x25); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x71, &x72, x70, + x26, x23); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x73, &x74, x72, + x24, x21); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x75, &x76, x74, + x22, x19); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x77, &x78, x76, + x20, x17); + x79 = (x78 + x18); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x80, &x81, x47, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x82, &x83, x80, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x84, &x85, x80, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x86, &x87, 0x0, + x47, x84); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x88, &x89, x87, + x49, x85); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x90, &x91, x89, + x51, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x92, &x93, x91, + x53, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x94, &x95, x93, + x55, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x96, &x97, x95, + x57, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x98, &x99, x97, + x59, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x100, &x101, x99, + x61, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x102, &x103, x101, + x63, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x104, &x105, x103, + x65, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x106, &x107, x105, + x67, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x108, &x109, x107, + x69, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x110, &x111, x109, + x71, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x112, &x113, x111, + x73, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x114, &x115, x113, + x75, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x116, &x117, x115, + x77, x82); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x118, &x119, x117, + x79, x83); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x120, &x121, x1, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x122, &x123, x1, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x124, &x125, x1, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x126, &x127, x1, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x128, &x129, x1, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x130, &x131, x1, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x132, &x133, x1, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x134, &x135, x1, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x136, &x137, x1, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x138, &x139, x1, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x140, &x141, x1, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x142, &x143, x1, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x144, &x145, x1, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x146, &x147, x1, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x148, &x149, x1, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x150, &x151, x1, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x152, &x153, 0x0, + x151, x148); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x154, &x155, x153, + x149, x146); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x156, &x157, x155, + x147, x144); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x158, &x159, x157, + x145, x142); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x160, &x161, x159, + x143, x140); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x162, &x163, x161, + x141, x138); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x164, &x165, x163, + x139, x136); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x166, &x167, x165, + x137, x134); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x168, &x169, x167, + x135, x132); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x170, &x171, x169, + x133, x130); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x172, &x173, x171, + x131, x128); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x174, &x175, x173, + x129, x126); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x176, &x177, x175, + x127, x124); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x178, &x179, x177, + x125, x122); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x180, &x181, x179, + x123, x120); + x182 = (x181 + x121); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x183, &x184, 0x0, + x88, x150); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x185, &x186, x184, + x90, x152); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x187, &x188, x186, + x92, x154); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x189, &x190, x188, + x94, x156); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x191, &x192, x190, + x96, x158); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x193, &x194, x192, + x98, x160); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x195, &x196, x194, + x100, x162); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x197, &x198, x196, + x102, x164); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x199, &x200, x198, + x104, x166); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x201, &x202, x200, + x106, x168); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x203, &x204, x202, + x108, x170); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x205, &x206, x204, + x110, x172); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x207, &x208, x206, + x112, x174); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x209, &x210, x208, + x114, x176); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x211, &x212, x210, + x116, x178); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x213, &x214, x212, + x118, x180); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x215, &x216, x214, + x119, x182); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x217, &x218, x183, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x219, &x220, x217, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x221, &x222, x217, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x223, &x224, 0x0, + x183, x221); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x225, &x226, x224, + x185, x222); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x227, &x228, x226, + x187, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x229, &x230, x228, + x189, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x231, &x232, x230, + x191, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x233, &x234, x232, + x193, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x235, &x236, x234, + x195, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x237, &x238, x236, + x197, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x239, &x240, x238, + x199, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x241, &x242, x240, + x201, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x243, &x244, x242, + x203, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x245, &x246, x244, + x205, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x247, &x248, x246, + x207, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x249, &x250, x248, + x209, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x251, &x252, x250, + x211, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x253, &x254, x252, + x213, x219); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x255, &x256, x254, + x215, x220); + x257 = ((uint32_t)x256 + x216); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x258, &x259, x2, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x260, &x261, x2, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x262, &x263, x2, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x264, &x265, x2, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x266, &x267, x2, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x268, &x269, x2, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x270, &x271, x2, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x272, &x273, x2, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x274, &x275, x2, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x276, &x277, x2, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x278, &x279, x2, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x280, &x281, x2, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x282, &x283, x2, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x284, &x285, x2, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x286, &x287, x2, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x288, &x289, x2, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x290, &x291, 0x0, + x289, x286); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x292, &x293, x291, + x287, x284); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x294, &x295, x293, + x285, x282); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x296, &x297, x295, + x283, x280); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x298, &x299, x297, + x281, x278); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x300, &x301, x299, + x279, x276); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x302, &x303, x301, + x277, x274); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x304, &x305, x303, + x275, x272); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x306, &x307, x305, + x273, x270); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x308, &x309, x307, + x271, x268); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x310, &x311, x309, + x269, x266); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x312, &x313, x311, + x267, x264); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x314, &x315, x313, + x265, x262); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x316, &x317, x315, + x263, x260); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x318, &x319, x317, + x261, x258); + x320 = (x319 + x259); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x321, &x322, 0x0, + x225, x288); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x323, &x324, x322, + x227, x290); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x325, &x326, x324, + x229, x292); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x327, &x328, x326, + x231, x294); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x329, &x330, x328, + x233, x296); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x331, &x332, x330, + x235, x298); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x333, &x334, x332, + x237, x300); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x335, &x336, x334, + x239, x302); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x337, &x338, x336, + x241, x304); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x339, &x340, x338, + x243, x306); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x341, &x342, x340, + x245, x308); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x343, &x344, x342, + x247, x310); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x345, &x346, x344, + x249, x312); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x347, &x348, x346, + x251, x314); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x349, &x350, x348, + x253, x316); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x351, &x352, x350, + x255, x318); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x353, &x354, x352, + x257, x320); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x355, &x356, x321, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x357, &x358, x355, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x359, &x360, x355, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x361, &x362, 0x0, + x321, x359); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x363, &x364, x362, + x323, x360); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x365, &x366, x364, + x325, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x367, &x368, x366, + x327, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x369, &x370, x368, + x329, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x371, &x372, x370, + x331, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x373, &x374, x372, + x333, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x375, &x376, x374, + x335, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x377, &x378, x376, + x337, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x379, &x380, x378, + x339, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x381, &x382, x380, + x341, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x383, &x384, x382, + x343, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x385, &x386, x384, + x345, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x387, &x388, x386, + x347, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x389, &x390, x388, + x349, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x391, &x392, x390, + x351, x357); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x393, &x394, x392, + x353, x358); + x395 = ((uint32_t)x394 + x354); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x396, &x397, x3, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x398, &x399, x3, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x400, &x401, x3, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x402, &x403, x3, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x404, &x405, x3, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x406, &x407, x3, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x408, &x409, x3, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x410, &x411, x3, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x412, &x413, x3, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x414, &x415, x3, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x416, &x417, x3, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x418, &x419, x3, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x420, &x421, x3, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x422, &x423, x3, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x424, &x425, x3, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x426, &x427, x3, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x428, &x429, 0x0, + x427, x424); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x430, &x431, x429, + x425, x422); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x432, &x433, x431, + x423, x420); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x434, &x435, x433, + x421, x418); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x436, &x437, x435, + x419, x416); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x438, &x439, x437, + x417, x414); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x440, &x441, x439, + x415, x412); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x442, &x443, x441, + x413, x410); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x444, &x445, x443, + x411, x408); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x446, &x447, x445, + x409, x406); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x448, &x449, x447, + x407, x404); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x450, &x451, x449, + x405, x402); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x452, &x453, x451, + x403, x400); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x454, &x455, x453, + x401, x398); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x456, &x457, x455, + x399, x396); + x458 = (x457 + x397); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x459, &x460, 0x0, + x363, x426); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x461, &x462, x460, + x365, x428); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x463, &x464, x462, + x367, x430); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x465, &x466, x464, + x369, x432); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x467, &x468, x466, + x371, x434); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x469, &x470, x468, + x373, x436); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x471, &x472, x470, + x375, x438); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x473, &x474, x472, + x377, x440); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x475, &x476, x474, + x379, x442); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x477, &x478, x476, + x381, x444); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x479, &x480, x478, + x383, x446); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x481, &x482, x480, + x385, x448); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x483, &x484, x482, + x387, x450); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x485, &x486, x484, + x389, x452); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x487, &x488, x486, + x391, x454); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x489, &x490, x488, + x393, x456); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x491, &x492, x490, + x395, x458); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x493, &x494, x459, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x495, &x496, x493, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x497, &x498, x493, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x499, &x500, 0x0, + x459, x497); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x501, &x502, x500, + x461, x498); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x503, &x504, x502, + x463, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x505, &x506, x504, + x465, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x507, &x508, x506, + x467, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x509, &x510, x508, + x469, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x511, &x512, x510, + x471, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x513, &x514, x512, + x473, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x515, &x516, x514, + x475, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x517, &x518, x516, + x477, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x519, &x520, x518, + x479, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x521, &x522, x520, + x481, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x523, &x524, x522, + x483, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x525, &x526, x524, + x485, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x527, &x528, x526, + x487, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x529, &x530, x528, + x489, x495); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x531, &x532, x530, + x491, x496); + x533 = ((uint32_t)x532 + x492); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x534, &x535, x4, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x536, &x537, x4, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x538, &x539, x4, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x540, &x541, x4, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x542, &x543, x4, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x544, &x545, x4, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x546, &x547, x4, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x548, &x549, x4, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x550, &x551, x4, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x552, &x553, x4, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x554, &x555, x4, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x556, &x557, x4, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x558, &x559, x4, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x560, &x561, x4, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x562, &x563, x4, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x564, &x565, x4, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x566, &x567, 0x0, + x565, x562); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x568, &x569, x567, + x563, x560); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x570, &x571, x569, + x561, x558); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x572, &x573, x571, + x559, x556); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x574, &x575, x573, + x557, x554); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x576, &x577, x575, + x555, x552); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x578, &x579, x577, + x553, x550); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x580, &x581, x579, + x551, x548); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x582, &x583, x581, + x549, x546); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x584, &x585, x583, + x547, x544); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x586, &x587, x585, + x545, x542); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x588, &x589, x587, + x543, x540); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x590, &x591, x589, + x541, x538); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x592, &x593, x591, + x539, x536); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x594, &x595, x593, + x537, x534); + x596 = (x595 + x535); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x597, &x598, 0x0, + x501, x564); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x599, &x600, x598, + x503, x566); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x601, &x602, x600, + x505, x568); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x603, &x604, x602, + x507, x570); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x605, &x606, x604, + x509, x572); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x607, &x608, x606, + x511, x574); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x609, &x610, x608, + x513, x576); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x611, &x612, x610, + x515, x578); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x613, &x614, x612, + x517, x580); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x615, &x616, x614, + x519, x582); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x617, &x618, x616, + x521, x584); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x619, &x620, x618, + x523, x586); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x621, &x622, x620, + x525, x588); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x623, &x624, x622, + x527, x590); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x625, &x626, x624, + x529, x592); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x627, &x628, x626, + x531, x594); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x629, &x630, x628, + x533, x596); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x631, &x632, x597, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x633, &x634, x631, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x635, &x636, x631, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x637, &x638, 0x0, + x597, x635); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x639, &x640, x638, + x599, x636); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x641, &x642, x640, + x601, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x643, &x644, x642, + x603, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x645, &x646, x644, + x605, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x647, &x648, x646, + x607, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x649, &x650, x648, + x609, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x651, &x652, x650, + x611, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x653, &x654, x652, + x613, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x655, &x656, x654, + x615, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x657, &x658, x656, + x617, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x659, &x660, x658, + x619, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x661, &x662, x660, + x621, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x663, &x664, x662, + x623, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x665, &x666, x664, + x625, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x667, &x668, x666, + x627, x633); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x669, &x670, x668, + x629, x634); + x671 = ((uint32_t)x670 + x630); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x672, &x673, x5, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x674, &x675, x5, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x676, &x677, x5, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x678, &x679, x5, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x680, &x681, x5, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x682, &x683, x5, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x684, &x685, x5, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x686, &x687, x5, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x688, &x689, x5, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x690, &x691, x5, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x692, &x693, x5, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x694, &x695, x5, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x696, &x697, x5, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x698, &x699, x5, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x700, &x701, x5, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x702, &x703, x5, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x704, &x705, 0x0, + x703, x700); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x706, &x707, x705, + x701, x698); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x708, &x709, x707, + x699, x696); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x710, &x711, x709, + x697, x694); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x712, &x713, x711, + x695, x692); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x714, &x715, x713, + x693, x690); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x716, &x717, x715, + x691, x688); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x718, &x719, x717, + x689, x686); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x720, &x721, x719, + x687, x684); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x722, &x723, x721, + x685, x682); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x724, &x725, x723, + x683, x680); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x726, &x727, x725, + x681, x678); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x728, &x729, x727, + x679, x676); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x730, &x731, x729, + x677, x674); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x732, &x733, x731, + x675, x672); + x734 = (x733 + x673); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x735, &x736, 0x0, + x639, x702); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x737, &x738, x736, + x641, x704); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x739, &x740, x738, + x643, x706); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x741, &x742, x740, + x645, x708); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x743, &x744, x742, + x647, x710); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x745, &x746, x744, + x649, x712); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x747, &x748, x746, + x651, x714); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x749, &x750, x748, + x653, x716); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x751, &x752, x750, + x655, x718); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x753, &x754, x752, + x657, x720); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x755, &x756, x754, + x659, x722); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x757, &x758, x756, + x661, x724); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x759, &x760, x758, + x663, x726); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x761, &x762, x760, + x665, x728); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x763, &x764, x762, + x667, x730); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x765, &x766, x764, + x669, x732); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x767, &x768, x766, + x671, x734); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x769, &x770, x735, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x771, &x772, x769, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x773, &x774, x769, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x775, &x776, 0x0, + x735, x773); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x777, &x778, x776, + x737, x774); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x779, &x780, x778, + x739, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x781, &x782, x780, + x741, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x783, &x784, x782, + x743, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x785, &x786, x784, + x745, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x787, &x788, x786, + x747, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x789, &x790, x788, + x749, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x791, &x792, x790, + x751, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x793, &x794, x792, + x753, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x795, &x796, x794, + x755, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x797, &x798, x796, + x757, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x799, &x800, x798, + x759, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x801, &x802, x800, + x761, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x803, &x804, x802, + x763, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x805, &x806, x804, + x765, x771); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x807, &x808, x806, + x767, x772); + x809 = ((uint32_t)x808 + x768); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x810, &x811, x6, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x812, &x813, x6, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x814, &x815, x6, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x816, &x817, x6, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x818, &x819, x6, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x820, &x821, x6, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x822, &x823, x6, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x824, &x825, x6, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x826, &x827, x6, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x828, &x829, x6, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x830, &x831, x6, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x832, &x833, x6, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x834, &x835, x6, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x836, &x837, x6, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x838, &x839, x6, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x840, &x841, x6, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x842, &x843, 0x0, + x841, x838); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x844, &x845, x843, + x839, x836); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x846, &x847, x845, + x837, x834); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x848, &x849, x847, + x835, x832); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x850, &x851, x849, + x833, x830); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x852, &x853, x851, + x831, x828); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x854, &x855, x853, + x829, x826); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x856, &x857, x855, + x827, x824); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x858, &x859, x857, + x825, x822); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x860, &x861, x859, + x823, x820); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x862, &x863, x861, + x821, x818); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x864, &x865, x863, + x819, x816); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x866, &x867, x865, + x817, x814); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x868, &x869, x867, + x815, x812); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x870, &x871, x869, + x813, x810); + x872 = (x871 + x811); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x873, &x874, 0x0, + x777, x840); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x875, &x876, x874, + x779, x842); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x877, &x878, x876, + x781, x844); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x879, &x880, x878, + x783, x846); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x881, &x882, x880, + x785, x848); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x883, &x884, x882, + x787, x850); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x885, &x886, x884, + x789, x852); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x887, &x888, x886, + x791, x854); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x889, &x890, x888, + x793, x856); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x891, &x892, x890, + x795, x858); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x893, &x894, x892, + x797, x860); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x895, &x896, x894, + x799, x862); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x897, &x898, x896, + x801, x864); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x899, &x900, x898, + x803, x866); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x901, &x902, x900, + x805, x868); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x903, &x904, x902, + x807, x870); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x905, &x906, x904, + x809, x872); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x907, &x908, x873, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x909, &x910, x907, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x911, &x912, x907, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x913, &x914, 0x0, + x873, x911); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x915, &x916, x914, + x875, x912); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x917, &x918, x916, + x877, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x919, &x920, x918, + x879, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x921, &x922, x920, + x881, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x923, &x924, x922, + x883, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x925, &x926, x924, + x885, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x927, &x928, x926, + x887, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x929, &x930, x928, + x889, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x931, &x932, x930, + x891, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x933, &x934, x932, + x893, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x935, &x936, x934, + x895, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x937, &x938, x936, + x897, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x939, &x940, x938, + x899, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x941, &x942, x940, + x901, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x943, &x944, x942, + x903, x909); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x945, &x946, x944, + x905, x910); + x947 = ((uint32_t)x946 + x906); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x948, &x949, x7, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x950, &x951, x7, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x952, &x953, x7, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x954, &x955, x7, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x956, &x957, x7, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x958, &x959, x7, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x960, &x961, x7, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x962, &x963, x7, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x964, &x965, x7, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x966, &x967, x7, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x968, &x969, x7, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x970, &x971, x7, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x972, &x973, x7, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x974, &x975, x7, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x976, &x977, x7, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x978, &x979, x7, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x980, &x981, 0x0, + x979, x976); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x982, &x983, x981, + x977, x974); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x984, &x985, x983, + x975, x972); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x986, &x987, x985, + x973, x970); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x988, &x989, x987, + x971, x968); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x990, &x991, x989, + x969, x966); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x992, &x993, x991, + x967, x964); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x994, &x995, x993, + x965, x962); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x996, &x997, x995, + x963, x960); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x998, &x999, x997, + x961, x958); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1000, &x1001, + x999, x959, x956); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1002, &x1003, + x1001, x957, x954); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1004, &x1005, + x1003, x955, x952); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1006, &x1007, + x1005, x953, x950); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1008, &x1009, + x1007, x951, x948); + x1010 = (x1009 + x949); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1011, &x1012, 0x0, + x915, x978); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1013, &x1014, + x1012, x917, x980); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1015, &x1016, + x1014, x919, x982); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1017, &x1018, + x1016, x921, x984); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1019, &x1020, + x1018, x923, x986); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1021, &x1022, + x1020, x925, x988); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1023, &x1024, + x1022, x927, x990); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1025, &x1026, + x1024, x929, x992); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1027, &x1028, + x1026, x931, x994); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1029, &x1030, + x1028, x933, x996); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1031, &x1032, + x1030, x935, x998); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1033, &x1034, + x1032, x937, x1000); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1035, &x1036, + x1034, x939, x1002); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1037, &x1038, + x1036, x941, x1004); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1039, &x1040, + x1038, x943, x1006); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1041, &x1042, + x1040, x945, x1008); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1043, &x1044, + x1042, x947, x1010); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1045, &x1046, x1011, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1047, &x1048, x1045, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1049, &x1050, x1045, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1051, &x1052, 0x0, + x1011, x1049); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1053, &x1054, x1052, x1013, x1050); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1055, &x1056, + x1054, x1015, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1057, &x1058, + x1056, x1017, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1059, &x1060, + x1058, x1019, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1061, &x1062, + x1060, x1021, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1063, &x1064, + x1062, x1023, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1065, &x1066, + x1064, x1025, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1067, &x1068, + x1066, x1027, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1069, &x1070, + x1068, x1029, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1071, &x1072, + x1070, x1031, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1073, &x1074, + x1072, x1033, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1075, &x1076, + x1074, x1035, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1077, &x1078, + x1076, x1037, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1079, &x1080, + x1078, x1039, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1081, &x1082, x1080, x1041, x1047); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1083, &x1084, x1082, x1043, x1048); + x1085 = ((uint32_t)x1084 + x1044); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1086, &x1087, x8, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1088, &x1089, x8, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1090, &x1091, x8, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1092, &x1093, x8, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1094, &x1095, x8, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1096, &x1097, x8, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1098, &x1099, x8, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1100, &x1101, x8, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1102, &x1103, x8, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1104, &x1105, x8, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1106, &x1107, x8, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1108, &x1109, x8, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1110, &x1111, x8, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1112, &x1113, x8, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1114, &x1115, x8, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1116, &x1117, x8, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1118, &x1119, 0x0, + x1117, x1114); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1120, &x1121, x1119, x1115, x1112); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1122, &x1123, x1121, x1113, x1110); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1124, &x1125, x1123, x1111, x1108); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1126, &x1127, x1125, x1109, x1106); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1128, &x1129, x1127, x1107, x1104); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1130, &x1131, x1129, x1105, x1102); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1132, &x1133, x1131, x1103, x1100); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1134, &x1135, x1133, x1101, x1098); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1136, &x1137, x1135, x1099, x1096); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1138, &x1139, x1137, x1097, x1094); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1140, &x1141, x1139, x1095, x1092); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1142, &x1143, x1141, x1093, x1090); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1144, &x1145, x1143, x1091, x1088); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1146, &x1147, x1145, x1089, x1086); + x1148 = (x1147 + x1087); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1149, &x1150, 0x0, + x1053, x1116); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1151, &x1152, x1150, x1055, x1118); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1153, &x1154, x1152, x1057, x1120); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1155, &x1156, x1154, x1059, x1122); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1157, &x1158, x1156, x1061, x1124); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1159, &x1160, x1158, x1063, x1126); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1161, &x1162, x1160, x1065, x1128); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1163, &x1164, x1162, x1067, x1130); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1165, &x1166, x1164, x1069, x1132); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1167, &x1168, x1166, x1071, x1134); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1169, &x1170, x1168, x1073, x1136); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1171, &x1172, x1170, x1075, x1138); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1173, &x1174, x1172, x1077, x1140); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1175, &x1176, x1174, x1079, x1142); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1177, &x1178, x1176, x1081, x1144); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1179, &x1180, x1178, x1083, x1146); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1181, &x1182, x1180, x1085, x1148); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1183, &x1184, x1149, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1185, &x1186, x1183, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1187, &x1188, x1183, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1189, &x1190, 0x0, + x1149, x1187); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1191, &x1192, x1190, x1151, x1188); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1193, &x1194, + x1192, x1153, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1195, &x1196, + x1194, x1155, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1197, &x1198, + x1196, x1157, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1199, &x1200, + x1198, x1159, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1201, &x1202, + x1200, x1161, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1203, &x1204, + x1202, x1163, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1205, &x1206, + x1204, x1165, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1207, &x1208, + x1206, x1167, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1209, &x1210, + x1208, x1169, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1211, &x1212, + x1210, x1171, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1213, &x1214, + x1212, x1173, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1215, &x1216, + x1214, x1175, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1217, &x1218, + x1216, x1177, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1219, &x1220, x1218, x1179, x1185); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1221, &x1222, x1220, x1181, x1186); + x1223 = ((uint32_t)x1222 + x1182); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1224, &x1225, x9, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1226, &x1227, x9, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1228, &x1229, x9, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1230, &x1231, x9, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1232, &x1233, x9, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1234, &x1235, x9, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1236, &x1237, x9, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1238, &x1239, x9, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1240, &x1241, x9, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1242, &x1243, x9, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1244, &x1245, x9, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1246, &x1247, x9, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1248, &x1249, x9, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1250, &x1251, x9, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1252, &x1253, x9, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1254, &x1255, x9, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1256, &x1257, 0x0, + x1255, x1252); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1258, &x1259, x1257, x1253, x1250); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1260, &x1261, x1259, x1251, x1248); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1262, &x1263, x1261, x1249, x1246); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1264, &x1265, x1263, x1247, x1244); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1266, &x1267, x1265, x1245, x1242); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1268, &x1269, x1267, x1243, x1240); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1270, &x1271, x1269, x1241, x1238); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1272, &x1273, x1271, x1239, x1236); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1274, &x1275, x1273, x1237, x1234); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1276, &x1277, x1275, x1235, x1232); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1278, &x1279, x1277, x1233, x1230); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1280, &x1281, x1279, x1231, x1228); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1282, &x1283, x1281, x1229, x1226); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1284, &x1285, x1283, x1227, x1224); + x1286 = (x1285 + x1225); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1287, &x1288, 0x0, + x1191, x1254); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1289, &x1290, x1288, x1193, x1256); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1291, &x1292, x1290, x1195, x1258); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1293, &x1294, x1292, x1197, x1260); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1295, &x1296, x1294, x1199, x1262); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1297, &x1298, x1296, x1201, x1264); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1299, &x1300, x1298, x1203, x1266); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1301, &x1302, x1300, x1205, x1268); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1303, &x1304, x1302, x1207, x1270); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1305, &x1306, x1304, x1209, x1272); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1307, &x1308, x1306, x1211, x1274); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1309, &x1310, x1308, x1213, x1276); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1311, &x1312, x1310, x1215, x1278); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1313, &x1314, x1312, x1217, x1280); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1315, &x1316, x1314, x1219, x1282); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1317, &x1318, x1316, x1221, x1284); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1319, &x1320, x1318, x1223, x1286); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1321, &x1322, x1287, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1323, &x1324, x1321, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1325, &x1326, x1321, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1327, &x1328, 0x0, + x1287, x1325); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1329, &x1330, x1328, x1289, x1326); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1331, &x1332, + x1330, x1291, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1333, &x1334, + x1332, x1293, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1335, &x1336, + x1334, x1295, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1337, &x1338, + x1336, x1297, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1339, &x1340, + x1338, x1299, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1341, &x1342, + x1340, x1301, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1343, &x1344, + x1342, x1303, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1345, &x1346, + x1344, x1305, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1347, &x1348, + x1346, x1307, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1349, &x1350, + x1348, x1309, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1351, &x1352, + x1350, x1311, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1353, &x1354, + x1352, x1313, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1355, &x1356, + x1354, x1315, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1357, &x1358, x1356, x1317, x1323); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1359, &x1360, x1358, x1319, x1324); + x1361 = ((uint32_t)x1360 + x1320); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1362, &x1363, x10, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1364, &x1365, x10, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1366, &x1367, x10, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1368, &x1369, x10, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1370, &x1371, x10, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1372, &x1373, x10, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1374, &x1375, x10, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1376, &x1377, x10, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1378, &x1379, x10, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1380, &x1381, x10, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1382, &x1383, x10, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1384, &x1385, x10, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1386, &x1387, x10, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1388, &x1389, x10, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1390, &x1391, x10, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1392, &x1393, x10, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1394, &x1395, 0x0, + x1393, x1390); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1396, &x1397, x1395, x1391, x1388); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1398, &x1399, x1397, x1389, x1386); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1400, &x1401, x1399, x1387, x1384); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1402, &x1403, x1401, x1385, x1382); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1404, &x1405, x1403, x1383, x1380); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1406, &x1407, x1405, x1381, x1378); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1408, &x1409, x1407, x1379, x1376); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1410, &x1411, x1409, x1377, x1374); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1412, &x1413, x1411, x1375, x1372); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1414, &x1415, x1413, x1373, x1370); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1416, &x1417, x1415, x1371, x1368); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1418, &x1419, x1417, x1369, x1366); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1420, &x1421, x1419, x1367, x1364); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1422, &x1423, x1421, x1365, x1362); + x1424 = (x1423 + x1363); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1425, &x1426, 0x0, + x1329, x1392); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1427, &x1428, x1426, x1331, x1394); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1429, &x1430, x1428, x1333, x1396); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1431, &x1432, x1430, x1335, x1398); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1433, &x1434, x1432, x1337, x1400); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1435, &x1436, x1434, x1339, x1402); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1437, &x1438, x1436, x1341, x1404); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1439, &x1440, x1438, x1343, x1406); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1441, &x1442, x1440, x1345, x1408); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1443, &x1444, x1442, x1347, x1410); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1445, &x1446, x1444, x1349, x1412); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1447, &x1448, x1446, x1351, x1414); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1449, &x1450, x1448, x1353, x1416); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1451, &x1452, x1450, x1355, x1418); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1453, &x1454, x1452, x1357, x1420); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1455, &x1456, x1454, x1359, x1422); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1457, &x1458, x1456, x1361, x1424); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1459, &x1460, x1425, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1461, &x1462, x1459, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1463, &x1464, x1459, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1465, &x1466, 0x0, + x1425, x1463); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1467, &x1468, x1466, x1427, x1464); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1469, &x1470, + x1468, x1429, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1471, &x1472, + x1470, x1431, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1473, &x1474, + x1472, x1433, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1475, &x1476, + x1474, x1435, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1477, &x1478, + x1476, x1437, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1479, &x1480, + x1478, x1439, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1481, &x1482, + x1480, x1441, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1483, &x1484, + x1482, x1443, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1485, &x1486, + x1484, x1445, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1487, &x1488, + x1486, x1447, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1489, &x1490, + x1488, x1449, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1491, &x1492, + x1490, x1451, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1493, &x1494, + x1492, x1453, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1495, &x1496, x1494, x1455, x1461); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1497, &x1498, x1496, x1457, x1462); + x1499 = ((uint32_t)x1498 + x1458); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1500, &x1501, x11, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1502, &x1503, x11, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1504, &x1505, x11, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1506, &x1507, x11, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1508, &x1509, x11, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1510, &x1511, x11, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1512, &x1513, x11, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1514, &x1515, x11, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1516, &x1517, x11, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1518, &x1519, x11, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1520, &x1521, x11, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1522, &x1523, x11, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1524, &x1525, x11, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1526, &x1527, x11, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1528, &x1529, x11, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1530, &x1531, x11, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1532, &x1533, 0x0, + x1531, x1528); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1534, &x1535, x1533, x1529, x1526); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1536, &x1537, x1535, x1527, x1524); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1538, &x1539, x1537, x1525, x1522); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1540, &x1541, x1539, x1523, x1520); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1542, &x1543, x1541, x1521, x1518); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1544, &x1545, x1543, x1519, x1516); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1546, &x1547, x1545, x1517, x1514); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1548, &x1549, x1547, x1515, x1512); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1550, &x1551, x1549, x1513, x1510); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1552, &x1553, x1551, x1511, x1508); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1554, &x1555, x1553, x1509, x1506); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1556, &x1557, x1555, x1507, x1504); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1558, &x1559, x1557, x1505, x1502); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1560, &x1561, x1559, x1503, x1500); + x1562 = (x1561 + x1501); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1563, &x1564, 0x0, + x1467, x1530); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1565, &x1566, x1564, x1469, x1532); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1567, &x1568, x1566, x1471, x1534); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1569, &x1570, x1568, x1473, x1536); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1571, &x1572, x1570, x1475, x1538); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1573, &x1574, x1572, x1477, x1540); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1575, &x1576, x1574, x1479, x1542); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1577, &x1578, x1576, x1481, x1544); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1579, &x1580, x1578, x1483, x1546); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1581, &x1582, x1580, x1485, x1548); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1583, &x1584, x1582, x1487, x1550); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1585, &x1586, x1584, x1489, x1552); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1587, &x1588, x1586, x1491, x1554); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1589, &x1590, x1588, x1493, x1556); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1591, &x1592, x1590, x1495, x1558); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1593, &x1594, x1592, x1497, x1560); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1595, &x1596, x1594, x1499, x1562); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1597, &x1598, x1563, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1599, &x1600, x1597, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1601, &x1602, x1597, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1603, &x1604, 0x0, + x1563, x1601); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1605, &x1606, x1604, x1565, x1602); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1607, &x1608, + x1606, x1567, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1609, &x1610, + x1608, x1569, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1611, &x1612, + x1610, x1571, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1613, &x1614, + x1612, x1573, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1615, &x1616, + x1614, x1575, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1617, &x1618, + x1616, x1577, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1619, &x1620, + x1618, x1579, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1621, &x1622, + x1620, x1581, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1623, &x1624, + x1622, x1583, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1625, &x1626, + x1624, x1585, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1627, &x1628, + x1626, x1587, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1629, &x1630, + x1628, x1589, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1631, &x1632, + x1630, x1591, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1633, &x1634, x1632, x1593, x1599); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1635, &x1636, x1634, x1595, x1600); + x1637 = ((uint32_t)x1636 + x1596); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1638, &x1639, x12, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1640, &x1641, x12, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1642, &x1643, x12, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1644, &x1645, x12, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1646, &x1647, x12, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1648, &x1649, x12, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1650, &x1651, x12, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1652, &x1653, x12, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1654, &x1655, x12, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1656, &x1657, x12, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1658, &x1659, x12, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1660, &x1661, x12, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1662, &x1663, x12, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1664, &x1665, x12, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1666, &x1667, x12, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1668, &x1669, x12, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1670, &x1671, 0x0, + x1669, x1666); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1672, &x1673, x1671, x1667, x1664); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1674, &x1675, x1673, x1665, x1662); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1676, &x1677, x1675, x1663, x1660); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1678, &x1679, x1677, x1661, x1658); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1680, &x1681, x1679, x1659, x1656); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1682, &x1683, x1681, x1657, x1654); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1684, &x1685, x1683, x1655, x1652); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1686, &x1687, x1685, x1653, x1650); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1688, &x1689, x1687, x1651, x1648); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1690, &x1691, x1689, x1649, x1646); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1692, &x1693, x1691, x1647, x1644); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1694, &x1695, x1693, x1645, x1642); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1696, &x1697, x1695, x1643, x1640); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1698, &x1699, x1697, x1641, x1638); + x1700 = (x1699 + x1639); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1701, &x1702, 0x0, + x1605, x1668); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1703, &x1704, x1702, x1607, x1670); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1705, &x1706, x1704, x1609, x1672); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1707, &x1708, x1706, x1611, x1674); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1709, &x1710, x1708, x1613, x1676); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1711, &x1712, x1710, x1615, x1678); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1713, &x1714, x1712, x1617, x1680); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1715, &x1716, x1714, x1619, x1682); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1717, &x1718, x1716, x1621, x1684); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1719, &x1720, x1718, x1623, x1686); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1721, &x1722, x1720, x1625, x1688); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1723, &x1724, x1722, x1627, x1690); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1725, &x1726, x1724, x1629, x1692); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1727, &x1728, x1726, x1631, x1694); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1729, &x1730, x1728, x1633, x1696); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1731, &x1732, x1730, x1635, x1698); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1733, &x1734, x1732, x1637, x1700); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1735, &x1736, x1701, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1737, &x1738, x1735, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1739, &x1740, x1735, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1741, &x1742, 0x0, + x1701, x1739); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1743, &x1744, x1742, x1703, x1740); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1745, &x1746, + x1744, x1705, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1747, &x1748, + x1746, x1707, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1749, &x1750, + x1748, x1709, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1751, &x1752, + x1750, x1711, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1753, &x1754, + x1752, x1713, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1755, &x1756, + x1754, x1715, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1757, &x1758, + x1756, x1717, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1759, &x1760, + x1758, x1719, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1761, &x1762, + x1760, x1721, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1763, &x1764, + x1762, x1723, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1765, &x1766, + x1764, x1725, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1767, &x1768, + x1766, x1727, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1769, &x1770, + x1768, x1729, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1771, &x1772, x1770, x1731, x1737); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1773, &x1774, x1772, x1733, x1738); + x1775 = ((uint32_t)x1774 + x1734); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1776, &x1777, x13, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1778, &x1779, x13, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1780, &x1781, x13, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1782, &x1783, x13, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1784, &x1785, x13, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1786, &x1787, x13, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1788, &x1789, x13, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1790, &x1791, x13, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1792, &x1793, x13, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1794, &x1795, x13, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1796, &x1797, x13, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1798, &x1799, x13, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1800, &x1801, x13, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1802, &x1803, x13, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1804, &x1805, x13, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1806, &x1807, x13, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1808, &x1809, 0x0, + x1807, x1804); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1810, &x1811, x1809, x1805, x1802); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1812, &x1813, x1811, x1803, x1800); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1814, &x1815, x1813, x1801, x1798); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1816, &x1817, x1815, x1799, x1796); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1818, &x1819, x1817, x1797, x1794); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1820, &x1821, x1819, x1795, x1792); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1822, &x1823, x1821, x1793, x1790); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1824, &x1825, x1823, x1791, x1788); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1826, &x1827, x1825, x1789, x1786); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1828, &x1829, x1827, x1787, x1784); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1830, &x1831, x1829, x1785, x1782); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1832, &x1833, x1831, x1783, x1780); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1834, &x1835, x1833, x1781, x1778); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1836, &x1837, x1835, x1779, x1776); + x1838 = (x1837 + x1777); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1839, &x1840, 0x0, + x1743, x1806); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1841, &x1842, x1840, x1745, x1808); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1843, &x1844, x1842, x1747, x1810); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1845, &x1846, x1844, x1749, x1812); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1847, &x1848, x1846, x1751, x1814); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1849, &x1850, x1848, x1753, x1816); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1851, &x1852, x1850, x1755, x1818); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1853, &x1854, x1852, x1757, x1820); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1855, &x1856, x1854, x1759, x1822); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1857, &x1858, x1856, x1761, x1824); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1859, &x1860, x1858, x1763, x1826); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1861, &x1862, x1860, x1765, x1828); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1863, &x1864, x1862, x1767, x1830); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1865, &x1866, x1864, x1769, x1832); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1867, &x1868, x1866, x1771, x1834); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1869, &x1870, x1868, x1773, x1836); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1871, &x1872, x1870, x1775, x1838); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1873, &x1874, x1839, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1875, &x1876, x1873, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1877, &x1878, x1873, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1879, &x1880, 0x0, + x1839, x1877); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1881, &x1882, x1880, x1841, x1878); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1883, &x1884, + x1882, x1843, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1885, &x1886, + x1884, x1845, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1887, &x1888, + x1886, x1847, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1889, &x1890, + x1888, x1849, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1891, &x1892, + x1890, x1851, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1893, &x1894, + x1892, x1853, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1895, &x1896, + x1894, x1855, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1897, &x1898, + x1896, x1857, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1899, &x1900, + x1898, x1859, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1901, &x1902, + x1900, x1861, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1903, &x1904, + x1902, x1863, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1905, &x1906, + x1904, x1865, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1907, &x1908, + x1906, x1867, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1909, &x1910, x1908, x1869, x1875); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1911, &x1912, x1910, x1871, x1876); + x1913 = ((uint32_t)x1912 + x1872); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1914, &x1915, x14, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1916, &x1917, x14, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1918, &x1919, x14, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1920, &x1921, x14, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1922, &x1923, x14, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1924, &x1925, x14, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1926, &x1927, x14, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1928, &x1929, x14, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1930, &x1931, x14, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1932, &x1933, x14, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1934, &x1935, x14, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1936, &x1937, x14, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1938, &x1939, x14, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1940, &x1941, x14, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1942, &x1943, x14, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1944, &x1945, x14, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1946, &x1947, 0x0, + x1945, x1942); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1948, &x1949, x1947, x1943, x1940); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1950, &x1951, x1949, x1941, x1938); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1952, &x1953, x1951, x1939, x1936); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1954, &x1955, x1953, x1937, x1934); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1956, &x1957, x1955, x1935, x1932); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1958, &x1959, x1957, x1933, x1930); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1960, &x1961, x1959, x1931, x1928); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1962, &x1963, x1961, x1929, x1926); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1964, &x1965, x1963, x1927, x1924); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1966, &x1967, x1965, x1925, x1922); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1968, &x1969, x1967, x1923, x1920); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1970, &x1971, x1969, x1921, x1918); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1972, &x1973, x1971, x1919, x1916); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1974, &x1975, x1973, x1917, x1914); + x1976 = (x1975 + x1915); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1977, &x1978, 0x0, + x1881, x1944); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1979, &x1980, x1978, x1883, x1946); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1981, &x1982, x1980, x1885, x1948); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1983, &x1984, x1982, x1887, x1950); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1985, &x1986, x1984, x1889, x1952); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1987, &x1988, x1986, x1891, x1954); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1989, &x1990, x1988, x1893, x1956); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1991, &x1992, x1990, x1895, x1958); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1993, &x1994, x1992, x1897, x1960); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1995, &x1996, x1994, x1899, x1962); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1997, &x1998, x1996, x1901, x1964); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1999, &x2000, x1998, x1903, x1966); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2001, &x2002, x2000, x1905, x1968); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2003, &x2004, x2002, x1907, x1970); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2005, &x2006, x2004, x1909, x1972); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2007, &x2008, x2006, x1911, x1974); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2009, &x2010, x2008, x1913, x1976); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2011, &x2012, x1977, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2013, &x2014, x2011, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2015, &x2016, x2011, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2017, &x2018, 0x0, + x1977, x2015); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2019, &x2020, x2018, x1979, x2016); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2021, &x2022, + x2020, x1981, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2023, &x2024, + x2022, x1983, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2025, &x2026, + x2024, x1985, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2027, &x2028, + x2026, x1987, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2029, &x2030, + x2028, x1989, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2031, &x2032, + x2030, x1991, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2033, &x2034, + x2032, x1993, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2035, &x2036, + x2034, x1995, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2037, &x2038, + x2036, x1997, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2039, &x2040, + x2038, x1999, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2041, &x2042, + x2040, x2001, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2043, &x2044, + x2042, x2003, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2045, &x2046, + x2044, x2005, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2047, &x2048, x2046, x2007, x2013); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2049, &x2050, x2048, x2009, x2014); + x2051 = ((uint32_t)x2050 + x2010); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2052, &x2053, x15, + (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2054, &x2055, x15, + (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2056, &x2057, x15, + (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2058, &x2059, x15, + (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2060, &x2061, x15, + (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2062, &x2063, x15, + (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2064, &x2065, x15, + (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2066, &x2067, x15, + (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2068, &x2069, x15, + (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2070, &x2071, x15, + (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2072, &x2073, x15, + (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2074, &x2075, x15, + (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2076, &x2077, x15, + (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2078, &x2079, x15, + (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2080, &x2081, x15, + (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2082, &x2083, x15, + (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2084, &x2085, 0x0, + x2083, x2080); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2086, &x2087, x2085, x2081, x2078); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2088, &x2089, x2087, x2079, x2076); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2090, &x2091, x2089, x2077, x2074); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2092, &x2093, x2091, x2075, x2072); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2094, &x2095, x2093, x2073, x2070); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2096, &x2097, x2095, x2071, x2068); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2098, &x2099, x2097, x2069, x2066); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2100, &x2101, x2099, x2067, x2064); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2102, &x2103, x2101, x2065, x2062); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2104, &x2105, x2103, x2063, x2060); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2106, &x2107, x2105, x2061, x2058); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2108, &x2109, x2107, x2059, x2056); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2110, &x2111, x2109, x2057, x2054); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2112, &x2113, x2111, x2055, x2052); + x2114 = (x2113 + x2053); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2115, &x2116, 0x0, + x2019, x2082); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2117, &x2118, x2116, x2021, x2084); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2119, &x2120, x2118, x2023, x2086); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2121, &x2122, x2120, x2025, x2088); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2123, &x2124, x2122, x2027, x2090); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2125, &x2126, x2124, x2029, x2092); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2127, &x2128, x2126, x2031, x2094); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2129, &x2130, x2128, x2033, x2096); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2131, &x2132, x2130, x2035, x2098); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2133, &x2134, x2132, x2037, x2100); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2135, &x2136, x2134, x2039, x2102); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2137, &x2138, x2136, x2041, x2104); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2139, &x2140, x2138, x2043, x2106); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2141, &x2142, x2140, x2045, x2108); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2143, &x2144, x2142, x2047, x2110); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2145, &x2146, x2144, x2049, x2112); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2147, &x2148, x2146, x2051, x2114); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2149, &x2150, x2115, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2151, &x2152, x2149, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2153, &x2154, x2149, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2155, &x2156, 0x0, + x2115, x2153); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2157, &x2158, x2156, x2117, x2154); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2159, &x2160, + x2158, x2119, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2161, &x2162, + x2160, x2121, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2163, &x2164, + x2162, x2123, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2165, &x2166, + x2164, x2125, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2167, &x2168, + x2166, x2127, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2169, &x2170, + x2168, x2129, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2171, &x2172, + x2170, x2131, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2173, &x2174, + x2172, x2133, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2175, &x2176, + x2174, x2135, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2177, &x2178, + x2176, x2137, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2179, &x2180, + x2178, x2139, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2181, &x2182, + x2180, x2141, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2183, &x2184, + x2182, x2143, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2185, &x2186, x2184, x2145, x2151); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2187, &x2188, x2186, x2147, x2152); + x2189 = ((uint32_t)x2188 + x2148); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x2190, &x2191, 0x0, x2157, UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2192, &x2193, + x2191, x2159, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2194, &x2195, + x2193, x2161, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2196, &x2197, + x2195, x2163, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2198, &x2199, + x2197, x2165, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2200, &x2201, + x2199, x2167, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2202, &x2203, + x2201, x2169, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2204, &x2205, + x2203, x2171, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2206, &x2207, + x2205, x2173, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2208, &x2209, + x2207, x2175, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2210, &x2211, + x2209, x2177, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2212, &x2213, + x2211, x2179, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2214, &x2215, + x2213, x2181, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2216, &x2217, + x2215, x2183, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2218, &x2219, + x2217, x2185, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x2220, &x2221, x2219, x2187, UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2222, &x2223, + x2221, x2189, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2224, x2223, x2190, + x2157); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2225, x2223, x2192, + x2159); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2226, x2223, x2194, + x2161); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2227, x2223, x2196, + x2163); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2228, x2223, x2198, + x2165); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2229, x2223, x2200, + x2167); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2230, x2223, x2202, + x2169); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2231, x2223, x2204, + x2171); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2232, x2223, x2206, + x2173); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2233, x2223, x2208, + x2175); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2234, x2223, x2210, + x2177); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2235, x2223, x2212, + x2179); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2236, x2223, x2214, + x2181); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2237, x2223, x2216, + x2183); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2238, x2223, x2218, + x2185); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2239, x2223, x2220, + x2187); + out1[0] = x2224; + out1[1] = x2225; + out1[2] = x2226; + out1[3] = x2227; + out1[4] = x2228; + out1[5] = x2229; + out1[6] = x2230; + out1[7] = x2231; + out1[8] = x2232; + out1[9] = x2233; + out1[10] = x2234; + out1[11] = x2235; + out1[12] = x2236; + out1[13] = x2237; + out1[14] = x2238; + out1[15] = x2239; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_square squares a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) * eval (from_montgomery arg1)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_square( + uint32_t out1[16], const uint32_t arg1[16]) { + 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; + uint32_t x49; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x50; + uint32_t x51; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x52; + uint32_t x53; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x54; + uint32_t x55; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x56; + uint32_t x57; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x58; + uint32_t x59; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x60; + uint32_t x61; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x62; + uint32_t x63; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x64; + uint32_t x65; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x66; + uint32_t x67; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x68; + uint32_t x69; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x70; + uint32_t x71; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x72; + uint32_t x73; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x74; + uint32_t x75; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x76; + uint32_t x77; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + uint32_t x82; + uint32_t x83; + uint32_t x84; + uint32_t x85; + uint32_t x86; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x87; + uint32_t x88; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x89; + uint32_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x91; + uint32_t x92; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x93; + uint32_t x94; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x95; + uint32_t x96; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x97; + uint32_t x98; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x99; + uint32_t x100; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x101; + uint32_t x102; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x103; + uint32_t x104; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x105; + uint32_t x106; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x107; + uint32_t x108; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x109; + uint32_t x110; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x111; + uint32_t x112; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x113; + uint32_t x114; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x115; + uint32_t x116; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x117; + uint32_t x118; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x119; + uint32_t x120; + uint32_t x121; + uint32_t x122; + uint32_t x123; + uint32_t x124; + uint32_t x125; + uint32_t x126; + uint32_t x127; + uint32_t x128; + uint32_t x129; + uint32_t x130; + uint32_t x131; + uint32_t x132; + uint32_t x133; + uint32_t x134; + uint32_t x135; + uint32_t x136; + uint32_t x137; + uint32_t x138; + uint32_t x139; + uint32_t x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + uint32_t x148; + uint32_t x149; + uint32_t x150; + uint32_t x151; + uint32_t x152; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x153; + uint32_t x154; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x155; + uint32_t x156; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x157; + uint32_t x158; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x159; + uint32_t x160; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x161; + uint32_t x162; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x163; + uint32_t x164; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x165; + uint32_t x166; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x167; + uint32_t x168; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x169; + uint32_t x170; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x171; + uint32_t x172; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x173; + uint32_t x174; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x175; + uint32_t x176; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x177; + uint32_t x178; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x179; + uint32_t x180; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x181; + uint32_t x182; + uint32_t x183; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x184; + uint32_t x185; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x186; + uint32_t x187; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x188; + uint32_t x189; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x190; + uint32_t x191; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x192; + uint32_t x193; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x194; + uint32_t x195; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x196; + uint32_t x197; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x198; + uint32_t x199; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x200; + uint32_t x201; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x202; + uint32_t x203; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x204; + uint32_t x205; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x206; + uint32_t x207; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x208; + uint32_t x209; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x210; + uint32_t x211; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x212; + uint32_t x213; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x214; + uint32_t x215; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x216; + uint32_t x217; + uint32_t x218; + uint32_t x219; + uint32_t x220; + uint32_t x221; + uint32_t x222; + uint32_t x223; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x224; + uint32_t x225; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x226; + uint32_t x227; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x228; + uint32_t x229; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x230; + uint32_t x231; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x232; + uint32_t x233; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x234; + uint32_t x235; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x236; + uint32_t x237; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x238; + uint32_t x239; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x240; + uint32_t x241; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x242; + uint32_t x243; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x244; + uint32_t x245; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x246; + uint32_t x247; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x248; + uint32_t x249; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x250; + uint32_t x251; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x252; + uint32_t x253; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x254; + uint32_t x255; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x256; + uint32_t x257; + uint32_t x258; + uint32_t x259; + uint32_t x260; + uint32_t x261; + uint32_t x262; + uint32_t x263; + uint32_t x264; + uint32_t x265; + uint32_t x266; + uint32_t x267; + uint32_t x268; + uint32_t x269; + uint32_t x270; + uint32_t x271; + uint32_t x272; + uint32_t x273; + uint32_t x274; + uint32_t x275; + uint32_t x276; + uint32_t x277; + uint32_t x278; + uint32_t x279; + uint32_t x280; + uint32_t x281; + uint32_t x282; + uint32_t x283; + uint32_t x284; + uint32_t x285; + uint32_t x286; + uint32_t x287; + uint32_t x288; + uint32_t x289; + uint32_t x290; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x291; + uint32_t x292; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x293; + uint32_t x294; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x295; + uint32_t x296; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x297; + uint32_t x298; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x299; + uint32_t x300; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x301; + uint32_t x302; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x303; + uint32_t x304; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x305; + uint32_t x306; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x307; + uint32_t x308; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x309; + uint32_t x310; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x311; + uint32_t x312; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x313; + uint32_t x314; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x315; + uint32_t x316; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x317; + uint32_t x318; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x319; + uint32_t x320; + uint32_t x321; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x322; + uint32_t x323; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x324; + uint32_t x325; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x326; + uint32_t x327; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x328; + uint32_t x329; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x330; + uint32_t x331; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x332; + uint32_t x333; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x334; + uint32_t x335; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x336; + uint32_t x337; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x338; + uint32_t x339; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x340; + uint32_t x341; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x342; + uint32_t x343; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x344; + uint32_t x345; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x346; + uint32_t x347; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x348; + uint32_t x349; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x350; + uint32_t x351; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x352; + uint32_t x353; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x354; + uint32_t x355; + uint32_t x356; + uint32_t x357; + uint32_t x358; + uint32_t x359; + uint32_t x360; + uint32_t x361; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x362; + uint32_t x363; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x364; + uint32_t x365; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x366; + uint32_t x367; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x368; + uint32_t x369; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x370; + uint32_t x371; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x372; + uint32_t x373; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x374; + uint32_t x375; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x376; + uint32_t x377; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x378; + uint32_t x379; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x380; + uint32_t x381; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x382; + uint32_t x383; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x384; + uint32_t x385; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x386; + uint32_t x387; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x388; + uint32_t x389; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x390; + uint32_t x391; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x392; + uint32_t x393; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x394; + uint32_t x395; + uint32_t x396; + uint32_t x397; + uint32_t x398; + uint32_t x399; + uint32_t x400; + uint32_t x401; + uint32_t x402; + uint32_t x403; + uint32_t x404; + uint32_t x405; + uint32_t x406; + uint32_t x407; + uint32_t x408; + uint32_t x409; + uint32_t x410; + uint32_t x411; + uint32_t x412; + uint32_t x413; + uint32_t x414; + uint32_t x415; + uint32_t x416; + uint32_t x417; + uint32_t x418; + uint32_t x419; + uint32_t x420; + uint32_t x421; + uint32_t x422; + uint32_t x423; + uint32_t x424; + uint32_t x425; + uint32_t x426; + uint32_t x427; + uint32_t x428; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x429; + uint32_t x430; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x431; + uint32_t x432; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x433; + uint32_t x434; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x435; + uint32_t x436; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x437; + uint32_t x438; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x439; + uint32_t x440; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x441; + uint32_t x442; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x443; + uint32_t x444; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x445; + uint32_t x446; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x447; + uint32_t x448; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x449; + uint32_t x450; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x451; + uint32_t x452; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x453; + uint32_t x454; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x455; + uint32_t x456; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x457; + uint32_t x458; + uint32_t x459; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x460; + uint32_t x461; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x462; + uint32_t x463; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x464; + uint32_t x465; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x466; + uint32_t x467; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x468; + uint32_t x469; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x470; + uint32_t x471; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x472; + uint32_t x473; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x474; + uint32_t x475; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x476; + uint32_t x477; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x478; + uint32_t x479; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x480; + uint32_t x481; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x482; + uint32_t x483; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x484; + uint32_t x485; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x486; + uint32_t x487; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x488; + uint32_t x489; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x490; + uint32_t x491; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x492; + uint32_t x493; + uint32_t x494; + uint32_t x495; + uint32_t x496; + uint32_t x497; + uint32_t x498; + uint32_t x499; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x500; + uint32_t x501; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x502; + uint32_t x503; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x504; + uint32_t x505; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x506; + uint32_t x507; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x508; + uint32_t x509; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x510; + uint32_t x511; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x512; + uint32_t x513; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x514; + uint32_t x515; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x516; + uint32_t x517; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x518; + uint32_t x519; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x520; + uint32_t x521; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x522; + uint32_t x523; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x524; + uint32_t x525; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x526; + uint32_t x527; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x528; + uint32_t x529; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x530; + uint32_t x531; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x532; + uint32_t x533; + uint32_t x534; + uint32_t x535; + uint32_t x536; + uint32_t x537; + uint32_t x538; + uint32_t x539; + uint32_t x540; + uint32_t x541; + uint32_t x542; + uint32_t x543; + uint32_t x544; + uint32_t x545; + uint32_t x546; + uint32_t x547; + uint32_t x548; + uint32_t x549; + uint32_t x550; + uint32_t x551; + uint32_t x552; + uint32_t x553; + uint32_t x554; + uint32_t x555; + uint32_t x556; + uint32_t x557; + uint32_t x558; + uint32_t x559; + uint32_t x560; + uint32_t x561; + uint32_t x562; + uint32_t x563; + uint32_t x564; + uint32_t x565; + uint32_t x566; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x567; + uint32_t x568; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x569; + uint32_t x570; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x571; + uint32_t x572; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x573; + uint32_t x574; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x575; + uint32_t x576; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x577; + uint32_t x578; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x579; + uint32_t x580; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x581; + uint32_t x582; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x583; + uint32_t x584; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x585; + uint32_t x586; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x587; + uint32_t x588; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x589; + uint32_t x590; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x591; + uint32_t x592; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x593; + uint32_t x594; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x595; + uint32_t x596; + uint32_t x597; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x598; + uint32_t x599; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x600; + uint32_t x601; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x602; + uint32_t x603; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x604; + uint32_t x605; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x606; + uint32_t x607; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x608; + uint32_t x609; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x610; + uint32_t x611; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x612; + uint32_t x613; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x614; + uint32_t x615; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x616; + uint32_t x617; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x618; + uint32_t x619; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x620; + uint32_t x621; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x622; + uint32_t x623; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x624; + uint32_t x625; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x626; + uint32_t x627; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x628; + uint32_t x629; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x630; + uint32_t x631; + uint32_t x632; + uint32_t x633; + uint32_t x634; + uint32_t x635; + uint32_t x636; + uint32_t x637; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x638; + uint32_t x639; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x640; + uint32_t x641; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x642; + uint32_t x643; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x644; + uint32_t x645; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x646; + uint32_t x647; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x648; + uint32_t x649; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x650; + uint32_t x651; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x652; + uint32_t x653; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x654; + uint32_t x655; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x656; + uint32_t x657; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x658; + uint32_t x659; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x660; + uint32_t x661; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x662; + uint32_t x663; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x664; + uint32_t x665; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x666; + uint32_t x667; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x668; + uint32_t x669; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x670; + uint32_t x671; + uint32_t x672; + uint32_t x673; + uint32_t x674; + uint32_t x675; + uint32_t x676; + uint32_t x677; + uint32_t x678; + uint32_t x679; + uint32_t x680; + uint32_t x681; + uint32_t x682; + uint32_t x683; + uint32_t x684; + uint32_t x685; + uint32_t x686; + uint32_t x687; + uint32_t x688; + uint32_t x689; + uint32_t x690; + uint32_t x691; + uint32_t x692; + uint32_t x693; + uint32_t x694; + uint32_t x695; + uint32_t x696; + uint32_t x697; + uint32_t x698; + uint32_t x699; + uint32_t x700; + uint32_t x701; + uint32_t x702; + uint32_t x703; + uint32_t x704; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x705; + uint32_t x706; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x707; + uint32_t x708; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x709; + uint32_t x710; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x711; + uint32_t x712; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x713; + uint32_t x714; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x715; + uint32_t x716; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x717; + uint32_t x718; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x719; + uint32_t x720; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x721; + uint32_t x722; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x723; + uint32_t x724; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x725; + uint32_t x726; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x727; + uint32_t x728; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x729; + uint32_t x730; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x731; + uint32_t x732; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x733; + uint32_t x734; + uint32_t x735; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x736; + uint32_t x737; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x738; + uint32_t x739; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x740; + uint32_t x741; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x742; + uint32_t x743; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x744; + uint32_t x745; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x746; + uint32_t x747; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x748; + uint32_t x749; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x750; + uint32_t x751; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x752; + uint32_t x753; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x754; + uint32_t x755; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x756; + uint32_t x757; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x758; + uint32_t x759; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x760; + uint32_t x761; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x762; + uint32_t x763; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x764; + uint32_t x765; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x766; + uint32_t x767; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x768; + uint32_t x769; + uint32_t x770; + uint32_t x771; + uint32_t x772; + uint32_t x773; + uint32_t x774; + uint32_t x775; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x776; + uint32_t x777; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x778; + uint32_t x779; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x780; + uint32_t x781; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x782; + uint32_t x783; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x784; + uint32_t x785; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x786; + uint32_t x787; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x788; + uint32_t x789; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x790; + uint32_t x791; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x792; + uint32_t x793; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x794; + uint32_t x795; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x796; + uint32_t x797; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x798; + uint32_t x799; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x800; + uint32_t x801; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x802; + uint32_t x803; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x804; + uint32_t x805; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x806; + uint32_t x807; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x808; + uint32_t x809; + uint32_t x810; + uint32_t x811; + uint32_t x812; + uint32_t x813; + uint32_t x814; + uint32_t x815; + uint32_t x816; + uint32_t x817; + uint32_t x818; + uint32_t x819; + uint32_t x820; + uint32_t x821; + uint32_t x822; + uint32_t x823; + uint32_t x824; + uint32_t x825; + uint32_t x826; + uint32_t x827; + uint32_t x828; + uint32_t x829; + uint32_t x830; + uint32_t x831; + uint32_t x832; + uint32_t x833; + uint32_t x834; + uint32_t x835; + uint32_t x836; + uint32_t x837; + uint32_t x838; + uint32_t x839; + uint32_t x840; + uint32_t x841; + uint32_t x842; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x843; + uint32_t x844; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x845; + uint32_t x846; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x847; + uint32_t x848; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x849; + uint32_t x850; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x851; + uint32_t x852; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x853; + uint32_t x854; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x855; + uint32_t x856; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x857; + uint32_t x858; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x859; + uint32_t x860; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x861; + uint32_t x862; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x863; + uint32_t x864; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x865; + uint32_t x866; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x867; + uint32_t x868; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x869; + uint32_t x870; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x871; + uint32_t x872; + uint32_t x873; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x874; + uint32_t x875; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x876; + uint32_t x877; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x878; + uint32_t x879; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x880; + uint32_t x881; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x882; + uint32_t x883; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x884; + uint32_t x885; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x886; + uint32_t x887; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x888; + uint32_t x889; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x890; + uint32_t x891; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x892; + uint32_t x893; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x894; + uint32_t x895; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x896; + uint32_t x897; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x898; + uint32_t x899; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x900; + uint32_t x901; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x902; + uint32_t x903; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x904; + uint32_t x905; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x906; + uint32_t x907; + uint32_t x908; + uint32_t x909; + uint32_t x910; + uint32_t x911; + uint32_t x912; + uint32_t x913; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x914; + uint32_t x915; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x916; + uint32_t x917; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x918; + uint32_t x919; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x920; + uint32_t x921; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x922; + uint32_t x923; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x924; + uint32_t x925; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x926; + uint32_t x927; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x928; + uint32_t x929; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x930; + uint32_t x931; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x932; + uint32_t x933; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x934; + uint32_t x935; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x936; + uint32_t x937; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x938; + uint32_t x939; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x940; + uint32_t x941; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x942; + uint32_t x943; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x944; + uint32_t x945; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x946; + uint32_t x947; + uint32_t x948; + uint32_t x949; + uint32_t x950; + uint32_t x951; + uint32_t x952; + uint32_t x953; + uint32_t x954; + uint32_t x955; + uint32_t x956; + uint32_t x957; + uint32_t x958; + uint32_t x959; + uint32_t x960; + uint32_t x961; + uint32_t x962; + uint32_t x963; + uint32_t x964; + uint32_t x965; + uint32_t x966; + uint32_t x967; + uint32_t x968; + uint32_t x969; + uint32_t x970; + uint32_t x971; + uint32_t x972; + uint32_t x973; + uint32_t x974; + uint32_t x975; + uint32_t x976; + uint32_t x977; + uint32_t x978; + uint32_t x979; + uint32_t x980; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x981; + uint32_t x982; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x983; + uint32_t x984; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x985; + uint32_t x986; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x987; + uint32_t x988; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x989; + uint32_t x990; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x991; + uint32_t x992; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x993; + uint32_t x994; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x995; + uint32_t x996; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x997; + uint32_t x998; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x999; + uint32_t x1000; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1001; + uint32_t x1002; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1003; + uint32_t x1004; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1005; + uint32_t x1006; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1007; + uint32_t x1008; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1009; + uint32_t x1010; + uint32_t x1011; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1012; + uint32_t x1013; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1014; + uint32_t x1015; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1016; + uint32_t x1017; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1018; + uint32_t x1019; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1020; + uint32_t x1021; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1022; + uint32_t x1023; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1024; + uint32_t x1025; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1026; + uint32_t x1027; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1028; + uint32_t x1029; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1030; + uint32_t x1031; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1032; + uint32_t x1033; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1034; + uint32_t x1035; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1036; + uint32_t x1037; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1038; + uint32_t x1039; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1040; + uint32_t x1041; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1042; + uint32_t x1043; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1044; + uint32_t x1045; + uint32_t x1046; + uint32_t x1047; + uint32_t x1048; + uint32_t x1049; + uint32_t x1050; + uint32_t x1051; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1052; + uint32_t x1053; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1054; + uint32_t x1055; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1056; + uint32_t x1057; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1058; + uint32_t x1059; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1060; + uint32_t x1061; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1062; + uint32_t x1063; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1064; + uint32_t x1065; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1066; + uint32_t x1067; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1068; + uint32_t x1069; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1070; + uint32_t x1071; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1072; + uint32_t x1073; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1074; + uint32_t x1075; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1076; + uint32_t x1077; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1078; + uint32_t x1079; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1080; + uint32_t x1081; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1082; + uint32_t x1083; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1084; + uint32_t x1085; + uint32_t x1086; + uint32_t x1087; + uint32_t x1088; + uint32_t x1089; + uint32_t x1090; + uint32_t x1091; + uint32_t x1092; + uint32_t x1093; + uint32_t x1094; + uint32_t x1095; + uint32_t x1096; + uint32_t x1097; + uint32_t x1098; + uint32_t x1099; + uint32_t x1100; + uint32_t x1101; + uint32_t x1102; + uint32_t x1103; + uint32_t x1104; + uint32_t x1105; + uint32_t x1106; + uint32_t x1107; + uint32_t x1108; + uint32_t x1109; + uint32_t x1110; + uint32_t x1111; + uint32_t x1112; + uint32_t x1113; + uint32_t x1114; + uint32_t x1115; + uint32_t x1116; + uint32_t x1117; + uint32_t x1118; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1119; + uint32_t x1120; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1121; + uint32_t x1122; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1123; + uint32_t x1124; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1125; + uint32_t x1126; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1127; + uint32_t x1128; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1129; + uint32_t x1130; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1131; + uint32_t x1132; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1133; + uint32_t x1134; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1135; + uint32_t x1136; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1137; + uint32_t x1138; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1139; + uint32_t x1140; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1141; + uint32_t x1142; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1143; + uint32_t x1144; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1145; + uint32_t x1146; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1147; + uint32_t x1148; + uint32_t x1149; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1150; + uint32_t x1151; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1152; + uint32_t x1153; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1154; + uint32_t x1155; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1156; + uint32_t x1157; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1158; + uint32_t x1159; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1160; + uint32_t x1161; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1162; + uint32_t x1163; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1164; + uint32_t x1165; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1166; + uint32_t x1167; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1168; + uint32_t x1169; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1170; + uint32_t x1171; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1172; + uint32_t x1173; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1174; + uint32_t x1175; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1176; + uint32_t x1177; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1178; + uint32_t x1179; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1180; + uint32_t x1181; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1182; + uint32_t x1183; + uint32_t x1184; + uint32_t x1185; + uint32_t x1186; + uint32_t x1187; + uint32_t x1188; + uint32_t x1189; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1190; + uint32_t x1191; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1192; + uint32_t x1193; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1194; + uint32_t x1195; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1196; + uint32_t x1197; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1198; + uint32_t x1199; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1200; + uint32_t x1201; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1202; + uint32_t x1203; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1204; + uint32_t x1205; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1206; + uint32_t x1207; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1208; + uint32_t x1209; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1210; + uint32_t x1211; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1212; + uint32_t x1213; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1214; + uint32_t x1215; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1216; + uint32_t x1217; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1218; + uint32_t x1219; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1220; + uint32_t x1221; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1222; + uint32_t x1223; + uint32_t x1224; + uint32_t x1225; + uint32_t x1226; + uint32_t x1227; + uint32_t x1228; + uint32_t x1229; + uint32_t x1230; + uint32_t x1231; + uint32_t x1232; + uint32_t x1233; + uint32_t x1234; + uint32_t x1235; + uint32_t x1236; + uint32_t x1237; + uint32_t x1238; + uint32_t x1239; + uint32_t x1240; + uint32_t x1241; + uint32_t x1242; + uint32_t x1243; + uint32_t x1244; + uint32_t x1245; + uint32_t x1246; + uint32_t x1247; + uint32_t x1248; + uint32_t x1249; + uint32_t x1250; + uint32_t x1251; + uint32_t x1252; + uint32_t x1253; + uint32_t x1254; + uint32_t x1255; + uint32_t x1256; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1257; + uint32_t x1258; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1259; + uint32_t x1260; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1261; + uint32_t x1262; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1263; + uint32_t x1264; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1265; + uint32_t x1266; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1267; + uint32_t x1268; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1269; + uint32_t x1270; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1271; + uint32_t x1272; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1273; + uint32_t x1274; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1275; + uint32_t x1276; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1277; + uint32_t x1278; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1279; + uint32_t x1280; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1281; + uint32_t x1282; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1283; + uint32_t x1284; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1285; + uint32_t x1286; + uint32_t x1287; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1288; + uint32_t x1289; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1290; + uint32_t x1291; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1292; + uint32_t x1293; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1294; + uint32_t x1295; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1296; + uint32_t x1297; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1298; + uint32_t x1299; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1300; + uint32_t x1301; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1302; + uint32_t x1303; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1304; + uint32_t x1305; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1306; + uint32_t x1307; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1308; + uint32_t x1309; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1310; + uint32_t x1311; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1312; + uint32_t x1313; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1314; + uint32_t x1315; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1316; + uint32_t x1317; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1318; + uint32_t x1319; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1320; + uint32_t x1321; + uint32_t x1322; + uint32_t x1323; + uint32_t x1324; + uint32_t x1325; + uint32_t x1326; + uint32_t x1327; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1328; + uint32_t x1329; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1330; + uint32_t x1331; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1332; + uint32_t x1333; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1334; + uint32_t x1335; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1336; + uint32_t x1337; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1338; + uint32_t x1339; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1340; + uint32_t x1341; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1342; + uint32_t x1343; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1344; + uint32_t x1345; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1346; + uint32_t x1347; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1348; + uint32_t x1349; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1350; + uint32_t x1351; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1352; + uint32_t x1353; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1354; + uint32_t x1355; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1356; + uint32_t x1357; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1358; + uint32_t x1359; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1360; + uint32_t x1361; + uint32_t x1362; + uint32_t x1363; + uint32_t x1364; + uint32_t x1365; + uint32_t x1366; + uint32_t x1367; + uint32_t x1368; + uint32_t x1369; + uint32_t x1370; + uint32_t x1371; + uint32_t x1372; + uint32_t x1373; + uint32_t x1374; + uint32_t x1375; + uint32_t x1376; + uint32_t x1377; + uint32_t x1378; + uint32_t x1379; + uint32_t x1380; + uint32_t x1381; + uint32_t x1382; + uint32_t x1383; + uint32_t x1384; + uint32_t x1385; + uint32_t x1386; + uint32_t x1387; + uint32_t x1388; + uint32_t x1389; + uint32_t x1390; + uint32_t x1391; + uint32_t x1392; + uint32_t x1393; + uint32_t x1394; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1395; + uint32_t x1396; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1397; + uint32_t x1398; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1399; + uint32_t x1400; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1401; + uint32_t x1402; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1403; + uint32_t x1404; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1405; + uint32_t x1406; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1407; + uint32_t x1408; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1409; + uint32_t x1410; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1411; + uint32_t x1412; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1413; + uint32_t x1414; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1415; + uint32_t x1416; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1417; + uint32_t x1418; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1419; + uint32_t x1420; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1421; + uint32_t x1422; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1423; + uint32_t x1424; + uint32_t x1425; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1426; + uint32_t x1427; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1428; + uint32_t x1429; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1430; + uint32_t x1431; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1432; + uint32_t x1433; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1434; + uint32_t x1435; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1436; + uint32_t x1437; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1438; + uint32_t x1439; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1440; + uint32_t x1441; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1442; + uint32_t x1443; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1444; + uint32_t x1445; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1446; + uint32_t x1447; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1448; + uint32_t x1449; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1450; + uint32_t x1451; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1452; + uint32_t x1453; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1454; + uint32_t x1455; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1456; + uint32_t x1457; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1458; + uint32_t x1459; + uint32_t x1460; + uint32_t x1461; + uint32_t x1462; + uint32_t x1463; + uint32_t x1464; + uint32_t x1465; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1466; + uint32_t x1467; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1468; + uint32_t x1469; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1470; + uint32_t x1471; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1472; + uint32_t x1473; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1474; + uint32_t x1475; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1476; + uint32_t x1477; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1478; + uint32_t x1479; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1480; + uint32_t x1481; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1482; + uint32_t x1483; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1484; + uint32_t x1485; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1486; + uint32_t x1487; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1488; + uint32_t x1489; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1490; + uint32_t x1491; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1492; + uint32_t x1493; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1494; + uint32_t x1495; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1496; + uint32_t x1497; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1498; + uint32_t x1499; + uint32_t x1500; + uint32_t x1501; + uint32_t x1502; + uint32_t x1503; + uint32_t x1504; + uint32_t x1505; + uint32_t x1506; + uint32_t x1507; + uint32_t x1508; + uint32_t x1509; + uint32_t x1510; + uint32_t x1511; + uint32_t x1512; + uint32_t x1513; + uint32_t x1514; + uint32_t x1515; + uint32_t x1516; + uint32_t x1517; + uint32_t x1518; + uint32_t x1519; + uint32_t x1520; + uint32_t x1521; + uint32_t x1522; + uint32_t x1523; + uint32_t x1524; + uint32_t x1525; + uint32_t x1526; + uint32_t x1527; + uint32_t x1528; + uint32_t x1529; + uint32_t x1530; + uint32_t x1531; + uint32_t x1532; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1533; + uint32_t x1534; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1535; + uint32_t x1536; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1537; + uint32_t x1538; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1539; + uint32_t x1540; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1541; + uint32_t x1542; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1543; + uint32_t x1544; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1545; + uint32_t x1546; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1547; + uint32_t x1548; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1549; + uint32_t x1550; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1551; + uint32_t x1552; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1553; + uint32_t x1554; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1555; + uint32_t x1556; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1557; + uint32_t x1558; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1559; + uint32_t x1560; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1561; + uint32_t x1562; + uint32_t x1563; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1564; + uint32_t x1565; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1566; + uint32_t x1567; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1568; + uint32_t x1569; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1570; + uint32_t x1571; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1572; + uint32_t x1573; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1574; + uint32_t x1575; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1576; + uint32_t x1577; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1578; + uint32_t x1579; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1580; + uint32_t x1581; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1582; + uint32_t x1583; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1584; + uint32_t x1585; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1586; + uint32_t x1587; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1588; + uint32_t x1589; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1590; + uint32_t x1591; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1592; + uint32_t x1593; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1594; + uint32_t x1595; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1596; + uint32_t x1597; + uint32_t x1598; + uint32_t x1599; + uint32_t x1600; + uint32_t x1601; + uint32_t x1602; + uint32_t x1603; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1604; + uint32_t x1605; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1606; + uint32_t x1607; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1608; + uint32_t x1609; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1610; + uint32_t x1611; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1612; + uint32_t x1613; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1614; + uint32_t x1615; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1616; + uint32_t x1617; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1618; + uint32_t x1619; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1620; + uint32_t x1621; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1622; + uint32_t x1623; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1624; + uint32_t x1625; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1626; + uint32_t x1627; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1628; + uint32_t x1629; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1630; + uint32_t x1631; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1632; + uint32_t x1633; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1634; + uint32_t x1635; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1636; + uint32_t x1637; + uint32_t x1638; + uint32_t x1639; + uint32_t x1640; + uint32_t x1641; + uint32_t x1642; + uint32_t x1643; + uint32_t x1644; + uint32_t x1645; + uint32_t x1646; + uint32_t x1647; + uint32_t x1648; + uint32_t x1649; + uint32_t x1650; + uint32_t x1651; + uint32_t x1652; + uint32_t x1653; + uint32_t x1654; + uint32_t x1655; + uint32_t x1656; + uint32_t x1657; + uint32_t x1658; + uint32_t x1659; + uint32_t x1660; + uint32_t x1661; + uint32_t x1662; + uint32_t x1663; + uint32_t x1664; + uint32_t x1665; + uint32_t x1666; + uint32_t x1667; + uint32_t x1668; + uint32_t x1669; + uint32_t x1670; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1671; + uint32_t x1672; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1673; + uint32_t x1674; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1675; + uint32_t x1676; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1677; + uint32_t x1678; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1679; + uint32_t x1680; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1681; + uint32_t x1682; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1683; + uint32_t x1684; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1685; + uint32_t x1686; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1687; + uint32_t x1688; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1689; + uint32_t x1690; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1691; + uint32_t x1692; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1693; + uint32_t x1694; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1695; + uint32_t x1696; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1697; + uint32_t x1698; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1699; + uint32_t x1700; + uint32_t x1701; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1702; + uint32_t x1703; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1704; + uint32_t x1705; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1706; + uint32_t x1707; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1708; + uint32_t x1709; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1710; + uint32_t x1711; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1712; + uint32_t x1713; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1714; + uint32_t x1715; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1716; + uint32_t x1717; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1718; + uint32_t x1719; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1720; + uint32_t x1721; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1722; + uint32_t x1723; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1724; + uint32_t x1725; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1726; + uint32_t x1727; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1728; + uint32_t x1729; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1730; + uint32_t x1731; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1732; + uint32_t x1733; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1734; + uint32_t x1735; + uint32_t x1736; + uint32_t x1737; + uint32_t x1738; + uint32_t x1739; + uint32_t x1740; + uint32_t x1741; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1742; + uint32_t x1743; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1744; + uint32_t x1745; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1746; + uint32_t x1747; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1748; + uint32_t x1749; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1750; + uint32_t x1751; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1752; + uint32_t x1753; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1754; + uint32_t x1755; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1756; + uint32_t x1757; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1758; + uint32_t x1759; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1760; + uint32_t x1761; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1762; + uint32_t x1763; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1764; + uint32_t x1765; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1766; + uint32_t x1767; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1768; + uint32_t x1769; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1770; + uint32_t x1771; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1772; + uint32_t x1773; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1774; + uint32_t x1775; + uint32_t x1776; + uint32_t x1777; + uint32_t x1778; + uint32_t x1779; + uint32_t x1780; + uint32_t x1781; + uint32_t x1782; + uint32_t x1783; + uint32_t x1784; + uint32_t x1785; + uint32_t x1786; + uint32_t x1787; + uint32_t x1788; + uint32_t x1789; + uint32_t x1790; + uint32_t x1791; + uint32_t x1792; + uint32_t x1793; + uint32_t x1794; + uint32_t x1795; + uint32_t x1796; + uint32_t x1797; + uint32_t x1798; + uint32_t x1799; + uint32_t x1800; + uint32_t x1801; + uint32_t x1802; + uint32_t x1803; + uint32_t x1804; + uint32_t x1805; + uint32_t x1806; + uint32_t x1807; + uint32_t x1808; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1809; + uint32_t x1810; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1811; + uint32_t x1812; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1813; + uint32_t x1814; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1815; + uint32_t x1816; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1817; + uint32_t x1818; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1819; + uint32_t x1820; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1821; + uint32_t x1822; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1823; + uint32_t x1824; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1825; + uint32_t x1826; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1827; + uint32_t x1828; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1829; + uint32_t x1830; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1831; + uint32_t x1832; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1833; + uint32_t x1834; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1835; + uint32_t x1836; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1837; + uint32_t x1838; + uint32_t x1839; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1840; + uint32_t x1841; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1842; + uint32_t x1843; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1844; + uint32_t x1845; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1846; + uint32_t x1847; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1848; + uint32_t x1849; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1850; + uint32_t x1851; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1852; + uint32_t x1853; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1854; + uint32_t x1855; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1856; + uint32_t x1857; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1858; + uint32_t x1859; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1860; + uint32_t x1861; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1862; + uint32_t x1863; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1864; + uint32_t x1865; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1866; + uint32_t x1867; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1868; + uint32_t x1869; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1870; + uint32_t x1871; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1872; + uint32_t x1873; + uint32_t x1874; + uint32_t x1875; + uint32_t x1876; + uint32_t x1877; + uint32_t x1878; + uint32_t x1879; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1880; + uint32_t x1881; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1882; + uint32_t x1883; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1884; + uint32_t x1885; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1886; + uint32_t x1887; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1888; + uint32_t x1889; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1890; + uint32_t x1891; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1892; + uint32_t x1893; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1894; + uint32_t x1895; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1896; + uint32_t x1897; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1898; + uint32_t x1899; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1900; + uint32_t x1901; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1902; + uint32_t x1903; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1904; + uint32_t x1905; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1906; + uint32_t x1907; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1908; + uint32_t x1909; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1910; + uint32_t x1911; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1912; + uint32_t x1913; + uint32_t x1914; + uint32_t x1915; + uint32_t x1916; + uint32_t x1917; + uint32_t x1918; + uint32_t x1919; + uint32_t x1920; + uint32_t x1921; + uint32_t x1922; + uint32_t x1923; + uint32_t x1924; + uint32_t x1925; + uint32_t x1926; + uint32_t x1927; + uint32_t x1928; + uint32_t x1929; + uint32_t x1930; + uint32_t x1931; + uint32_t x1932; + uint32_t x1933; + uint32_t x1934; + uint32_t x1935; + uint32_t x1936; + uint32_t x1937; + uint32_t x1938; + uint32_t x1939; + uint32_t x1940; + uint32_t x1941; + uint32_t x1942; + uint32_t x1943; + uint32_t x1944; + uint32_t x1945; + uint32_t x1946; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1947; + uint32_t x1948; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1949; + uint32_t x1950; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1951; + uint32_t x1952; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1953; + uint32_t x1954; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1955; + uint32_t x1956; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1957; + uint32_t x1958; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1959; + uint32_t x1960; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1961; + uint32_t x1962; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1963; + uint32_t x1964; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1965; + uint32_t x1966; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1967; + uint32_t x1968; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1969; + uint32_t x1970; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1971; + uint32_t x1972; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1973; + uint32_t x1974; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1975; + uint32_t x1976; + uint32_t x1977; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1978; + uint32_t x1979; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1980; + uint32_t x1981; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1982; + uint32_t x1983; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1984; + uint32_t x1985; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1986; + uint32_t x1987; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1988; + uint32_t x1989; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1990; + uint32_t x1991; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1992; + uint32_t x1993; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1994; + uint32_t x1995; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1996; + uint32_t x1997; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x1998; + uint32_t x1999; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2000; + uint32_t x2001; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2002; + uint32_t x2003; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2004; + uint32_t x2005; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2006; + uint32_t x2007; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2008; + uint32_t x2009; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2010; + uint32_t x2011; + uint32_t x2012; + uint32_t x2013; + uint32_t x2014; + uint32_t x2015; + uint32_t x2016; + uint32_t x2017; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2018; + uint32_t x2019; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2020; + uint32_t x2021; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2022; + uint32_t x2023; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2024; + uint32_t x2025; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2026; + uint32_t x2027; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2028; + uint32_t x2029; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2030; + uint32_t x2031; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2032; + uint32_t x2033; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2034; + uint32_t x2035; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2036; + uint32_t x2037; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2038; + uint32_t x2039; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2040; + uint32_t x2041; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2042; + uint32_t x2043; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2044; + uint32_t x2045; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2046; + uint32_t x2047; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2048; + uint32_t x2049; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2050; + uint32_t x2051; + uint32_t x2052; + uint32_t x2053; + uint32_t x2054; + uint32_t x2055; + uint32_t x2056; + uint32_t x2057; + uint32_t x2058; + uint32_t x2059; + uint32_t x2060; + uint32_t x2061; + uint32_t x2062; + uint32_t x2063; + uint32_t x2064; + uint32_t x2065; + uint32_t x2066; + uint32_t x2067; + uint32_t x2068; + uint32_t x2069; + uint32_t x2070; + uint32_t x2071; + uint32_t x2072; + uint32_t x2073; + uint32_t x2074; + uint32_t x2075; + uint32_t x2076; + uint32_t x2077; + uint32_t x2078; + uint32_t x2079; + uint32_t x2080; + uint32_t x2081; + uint32_t x2082; + uint32_t x2083; + uint32_t x2084; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2085; + uint32_t x2086; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2087; + uint32_t x2088; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2089; + uint32_t x2090; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2091; + uint32_t x2092; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2093; + uint32_t x2094; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2095; + uint32_t x2096; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2097; + uint32_t x2098; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2099; + uint32_t x2100; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2101; + uint32_t x2102; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2103; + uint32_t x2104; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2105; + uint32_t x2106; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2107; + uint32_t x2108; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2109; + uint32_t x2110; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2111; + uint32_t x2112; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2113; + uint32_t x2114; + uint32_t x2115; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2116; + uint32_t x2117; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2118; + uint32_t x2119; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2120; + uint32_t x2121; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2122; + uint32_t x2123; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2124; + uint32_t x2125; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2126; + uint32_t x2127; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2128; + uint32_t x2129; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2130; + uint32_t x2131; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2132; + uint32_t x2133; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2134; + uint32_t x2135; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2136; + uint32_t x2137; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2138; + uint32_t x2139; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2140; + uint32_t x2141; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2142; + uint32_t x2143; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2144; + uint32_t x2145; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2146; + uint32_t x2147; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2148; + uint32_t x2149; + uint32_t x2150; + uint32_t x2151; + uint32_t x2152; + uint32_t x2153; + uint32_t x2154; + uint32_t x2155; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2156; + uint32_t x2157; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2158; + uint32_t x2159; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2160; + uint32_t x2161; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2162; + uint32_t x2163; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2164; + uint32_t x2165; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2166; + uint32_t x2167; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2168; + uint32_t x2169; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2170; + uint32_t x2171; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2172; + uint32_t x2173; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2174; + uint32_t x2175; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2176; + uint32_t x2177; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2178; + uint32_t x2179; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2180; + uint32_t x2181; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2182; + uint32_t x2183; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2184; + uint32_t x2185; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2186; + uint32_t x2187; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2188; + uint32_t x2189; + uint32_t x2190; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2191; + uint32_t x2192; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2193; + uint32_t x2194; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2195; + uint32_t x2196; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2197; + uint32_t x2198; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2199; + uint32_t x2200; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2201; + uint32_t x2202; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2203; + uint32_t x2204; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2205; + uint32_t x2206; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2207; + uint32_t x2208; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2209; + uint32_t x2210; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2211; + uint32_t x2212; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2213; + uint32_t x2214; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2215; + uint32_t x2216; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2217; + uint32_t x2218; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2219; + uint32_t x2220; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2221; + uint32_t x2222; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2223; + uint32_t x2224; + uint32_t x2225; + uint32_t x2226; + uint32_t x2227; + uint32_t x2228; + uint32_t x2229; + uint32_t x2230; + uint32_t x2231; + uint32_t x2232; + uint32_t x2233; + uint32_t x2234; + uint32_t x2235; + uint32_t x2236; + uint32_t x2237; + uint32_t x2238; + uint32_t x2239; + x1 = (arg1[1]); + x2 = (arg1[2]); + x3 = (arg1[3]); + x4 = (arg1[4]); + x5 = (arg1[5]); + x6 = (arg1[6]); + x7 = (arg1[7]); + x8 = (arg1[8]); + x9 = (arg1[9]); + x10 = (arg1[10]); + x11 = (arg1[11]); + x12 = (arg1[12]); + x13 = (arg1[13]); + x14 = (arg1[14]); + x15 = (arg1[15]); + x16 = (arg1[0]); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x17, &x18, x16, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x19, &x20, x16, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x21, &x22, x16, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x23, &x24, x16, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x25, &x26, x16, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x27, &x28, x16, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x29, &x30, x16, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x31, &x32, x16, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x33, &x34, x16, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x35, &x36, x16, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x37, &x38, x16, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x39, &x40, x16, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x41, &x42, x16, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x43, &x44, x16, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x45, &x46, x16, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x47, &x48, x16, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x49, &x50, 0x0, + x48, x45); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x51, &x52, x50, + x46, x43); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x53, &x54, x52, + x44, x41); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x55, &x56, x54, + x42, x39); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x57, &x58, x56, + x40, x37); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x59, &x60, x58, + x38, x35); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x61, &x62, x60, + x36, x33); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x63, &x64, x62, + x34, x31); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x65, &x66, x64, + x32, x29); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x67, &x68, x66, + x30, x27); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x69, &x70, x68, + x28, x25); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x71, &x72, x70, + x26, x23); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x73, &x74, x72, + x24, x21); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x75, &x76, x74, + x22, x19); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x77, &x78, x76, + x20, x17); + x79 = (x78 + x18); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x80, &x81, x47, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x82, &x83, x80, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x84, &x85, x80, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x86, &x87, 0x0, + x47, x84); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x88, &x89, x87, + x49, x85); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x90, &x91, x89, + x51, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x92, &x93, x91, + x53, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x94, &x95, x93, + x55, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x96, &x97, x95, + x57, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x98, &x99, x97, + x59, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x100, &x101, x99, + x61, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x102, &x103, x101, + x63, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x104, &x105, x103, + x65, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x106, &x107, x105, + x67, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x108, &x109, x107, + x69, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x110, &x111, x109, + x71, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x112, &x113, x111, + x73, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x114, &x115, x113, + x75, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x116, &x117, x115, + x77, x82); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x118, &x119, x117, + x79, x83); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x120, &x121, x1, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x122, &x123, x1, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x124, &x125, x1, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x126, &x127, x1, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x128, &x129, x1, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x130, &x131, x1, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x132, &x133, x1, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x134, &x135, x1, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x136, &x137, x1, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x138, &x139, x1, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x140, &x141, x1, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x142, &x143, x1, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x144, &x145, x1, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x146, &x147, x1, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x148, &x149, x1, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x150, &x151, x1, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x152, &x153, 0x0, + x151, x148); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x154, &x155, x153, + x149, x146); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x156, &x157, x155, + x147, x144); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x158, &x159, x157, + x145, x142); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x160, &x161, x159, + x143, x140); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x162, &x163, x161, + x141, x138); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x164, &x165, x163, + x139, x136); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x166, &x167, x165, + x137, x134); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x168, &x169, x167, + x135, x132); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x170, &x171, x169, + x133, x130); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x172, &x173, x171, + x131, x128); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x174, &x175, x173, + x129, x126); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x176, &x177, x175, + x127, x124); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x178, &x179, x177, + x125, x122); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x180, &x181, x179, + x123, x120); + x182 = (x181 + x121); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x183, &x184, 0x0, + x88, x150); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x185, &x186, x184, + x90, x152); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x187, &x188, x186, + x92, x154); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x189, &x190, x188, + x94, x156); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x191, &x192, x190, + x96, x158); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x193, &x194, x192, + x98, x160); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x195, &x196, x194, + x100, x162); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x197, &x198, x196, + x102, x164); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x199, &x200, x198, + x104, x166); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x201, &x202, x200, + x106, x168); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x203, &x204, x202, + x108, x170); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x205, &x206, x204, + x110, x172); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x207, &x208, x206, + x112, x174); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x209, &x210, x208, + x114, x176); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x211, &x212, x210, + x116, x178); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x213, &x214, x212, + x118, x180); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x215, &x216, x214, + x119, x182); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x217, &x218, x183, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x219, &x220, x217, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x221, &x222, x217, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x223, &x224, 0x0, + x183, x221); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x225, &x226, x224, + x185, x222); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x227, &x228, x226, + x187, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x229, &x230, x228, + x189, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x231, &x232, x230, + x191, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x233, &x234, x232, + x193, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x235, &x236, x234, + x195, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x237, &x238, x236, + x197, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x239, &x240, x238, + x199, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x241, &x242, x240, + x201, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x243, &x244, x242, + x203, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x245, &x246, x244, + x205, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x247, &x248, x246, + x207, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x249, &x250, x248, + x209, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x251, &x252, x250, + x211, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x253, &x254, x252, + x213, x219); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x255, &x256, x254, + x215, x220); + x257 = ((uint32_t)x256 + x216); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x258, &x259, x2, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x260, &x261, x2, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x262, &x263, x2, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x264, &x265, x2, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x266, &x267, x2, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x268, &x269, x2, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x270, &x271, x2, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x272, &x273, x2, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x274, &x275, x2, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x276, &x277, x2, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x278, &x279, x2, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x280, &x281, x2, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x282, &x283, x2, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x284, &x285, x2, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x286, &x287, x2, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x288, &x289, x2, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x290, &x291, 0x0, + x289, x286); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x292, &x293, x291, + x287, x284); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x294, &x295, x293, + x285, x282); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x296, &x297, x295, + x283, x280); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x298, &x299, x297, + x281, x278); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x300, &x301, x299, + x279, x276); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x302, &x303, x301, + x277, x274); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x304, &x305, x303, + x275, x272); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x306, &x307, x305, + x273, x270); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x308, &x309, x307, + x271, x268); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x310, &x311, x309, + x269, x266); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x312, &x313, x311, + x267, x264); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x314, &x315, x313, + x265, x262); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x316, &x317, x315, + x263, x260); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x318, &x319, x317, + x261, x258); + x320 = (x319 + x259); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x321, &x322, 0x0, + x225, x288); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x323, &x324, x322, + x227, x290); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x325, &x326, x324, + x229, x292); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x327, &x328, x326, + x231, x294); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x329, &x330, x328, + x233, x296); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x331, &x332, x330, + x235, x298); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x333, &x334, x332, + x237, x300); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x335, &x336, x334, + x239, x302); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x337, &x338, x336, + x241, x304); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x339, &x340, x338, + x243, x306); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x341, &x342, x340, + x245, x308); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x343, &x344, x342, + x247, x310); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x345, &x346, x344, + x249, x312); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x347, &x348, x346, + x251, x314); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x349, &x350, x348, + x253, x316); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x351, &x352, x350, + x255, x318); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x353, &x354, x352, + x257, x320); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x355, &x356, x321, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x357, &x358, x355, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x359, &x360, x355, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x361, &x362, 0x0, + x321, x359); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x363, &x364, x362, + x323, x360); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x365, &x366, x364, + x325, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x367, &x368, x366, + x327, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x369, &x370, x368, + x329, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x371, &x372, x370, + x331, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x373, &x374, x372, + x333, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x375, &x376, x374, + x335, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x377, &x378, x376, + x337, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x379, &x380, x378, + x339, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x381, &x382, x380, + x341, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x383, &x384, x382, + x343, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x385, &x386, x384, + x345, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x387, &x388, x386, + x347, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x389, &x390, x388, + x349, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x391, &x392, x390, + x351, x357); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x393, &x394, x392, + x353, x358); + x395 = ((uint32_t)x394 + x354); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x396, &x397, x3, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x398, &x399, x3, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x400, &x401, x3, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x402, &x403, x3, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x404, &x405, x3, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x406, &x407, x3, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x408, &x409, x3, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x410, &x411, x3, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x412, &x413, x3, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x414, &x415, x3, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x416, &x417, x3, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x418, &x419, x3, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x420, &x421, x3, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x422, &x423, x3, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x424, &x425, x3, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x426, &x427, x3, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x428, &x429, 0x0, + x427, x424); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x430, &x431, x429, + x425, x422); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x432, &x433, x431, + x423, x420); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x434, &x435, x433, + x421, x418); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x436, &x437, x435, + x419, x416); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x438, &x439, x437, + x417, x414); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x440, &x441, x439, + x415, x412); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x442, &x443, x441, + x413, x410); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x444, &x445, x443, + x411, x408); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x446, &x447, x445, + x409, x406); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x448, &x449, x447, + x407, x404); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x450, &x451, x449, + x405, x402); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x452, &x453, x451, + x403, x400); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x454, &x455, x453, + x401, x398); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x456, &x457, x455, + x399, x396); + x458 = (x457 + x397); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x459, &x460, 0x0, + x363, x426); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x461, &x462, x460, + x365, x428); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x463, &x464, x462, + x367, x430); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x465, &x466, x464, + x369, x432); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x467, &x468, x466, + x371, x434); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x469, &x470, x468, + x373, x436); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x471, &x472, x470, + x375, x438); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x473, &x474, x472, + x377, x440); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x475, &x476, x474, + x379, x442); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x477, &x478, x476, + x381, x444); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x479, &x480, x478, + x383, x446); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x481, &x482, x480, + x385, x448); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x483, &x484, x482, + x387, x450); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x485, &x486, x484, + x389, x452); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x487, &x488, x486, + x391, x454); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x489, &x490, x488, + x393, x456); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x491, &x492, x490, + x395, x458); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x493, &x494, x459, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x495, &x496, x493, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x497, &x498, x493, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x499, &x500, 0x0, + x459, x497); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x501, &x502, x500, + x461, x498); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x503, &x504, x502, + x463, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x505, &x506, x504, + x465, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x507, &x508, x506, + x467, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x509, &x510, x508, + x469, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x511, &x512, x510, + x471, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x513, &x514, x512, + x473, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x515, &x516, x514, + x475, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x517, &x518, x516, + x477, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x519, &x520, x518, + x479, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x521, &x522, x520, + x481, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x523, &x524, x522, + x483, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x525, &x526, x524, + x485, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x527, &x528, x526, + x487, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x529, &x530, x528, + x489, x495); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x531, &x532, x530, + x491, x496); + x533 = ((uint32_t)x532 + x492); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x534, &x535, x4, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x536, &x537, x4, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x538, &x539, x4, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x540, &x541, x4, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x542, &x543, x4, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x544, &x545, x4, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x546, &x547, x4, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x548, &x549, x4, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x550, &x551, x4, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x552, &x553, x4, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x554, &x555, x4, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x556, &x557, x4, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x558, &x559, x4, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x560, &x561, x4, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x562, &x563, x4, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x564, &x565, x4, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x566, &x567, 0x0, + x565, x562); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x568, &x569, x567, + x563, x560); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x570, &x571, x569, + x561, x558); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x572, &x573, x571, + x559, x556); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x574, &x575, x573, + x557, x554); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x576, &x577, x575, + x555, x552); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x578, &x579, x577, + x553, x550); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x580, &x581, x579, + x551, x548); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x582, &x583, x581, + x549, x546); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x584, &x585, x583, + x547, x544); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x586, &x587, x585, + x545, x542); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x588, &x589, x587, + x543, x540); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x590, &x591, x589, + x541, x538); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x592, &x593, x591, + x539, x536); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x594, &x595, x593, + x537, x534); + x596 = (x595 + x535); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x597, &x598, 0x0, + x501, x564); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x599, &x600, x598, + x503, x566); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x601, &x602, x600, + x505, x568); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x603, &x604, x602, + x507, x570); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x605, &x606, x604, + x509, x572); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x607, &x608, x606, + x511, x574); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x609, &x610, x608, + x513, x576); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x611, &x612, x610, + x515, x578); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x613, &x614, x612, + x517, x580); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x615, &x616, x614, + x519, x582); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x617, &x618, x616, + x521, x584); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x619, &x620, x618, + x523, x586); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x621, &x622, x620, + x525, x588); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x623, &x624, x622, + x527, x590); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x625, &x626, x624, + x529, x592); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x627, &x628, x626, + x531, x594); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x629, &x630, x628, + x533, x596); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x631, &x632, x597, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x633, &x634, x631, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x635, &x636, x631, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x637, &x638, 0x0, + x597, x635); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x639, &x640, x638, + x599, x636); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x641, &x642, x640, + x601, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x643, &x644, x642, + x603, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x645, &x646, x644, + x605, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x647, &x648, x646, + x607, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x649, &x650, x648, + x609, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x651, &x652, x650, + x611, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x653, &x654, x652, + x613, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x655, &x656, x654, + x615, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x657, &x658, x656, + x617, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x659, &x660, x658, + x619, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x661, &x662, x660, + x621, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x663, &x664, x662, + x623, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x665, &x666, x664, + x625, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x667, &x668, x666, + x627, x633); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x669, &x670, x668, + x629, x634); + x671 = ((uint32_t)x670 + x630); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x672, &x673, x5, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x674, &x675, x5, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x676, &x677, x5, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x678, &x679, x5, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x680, &x681, x5, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x682, &x683, x5, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x684, &x685, x5, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x686, &x687, x5, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x688, &x689, x5, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x690, &x691, x5, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x692, &x693, x5, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x694, &x695, x5, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x696, &x697, x5, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x698, &x699, x5, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x700, &x701, x5, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x702, &x703, x5, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x704, &x705, 0x0, + x703, x700); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x706, &x707, x705, + x701, x698); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x708, &x709, x707, + x699, x696); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x710, &x711, x709, + x697, x694); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x712, &x713, x711, + x695, x692); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x714, &x715, x713, + x693, x690); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x716, &x717, x715, + x691, x688); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x718, &x719, x717, + x689, x686); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x720, &x721, x719, + x687, x684); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x722, &x723, x721, + x685, x682); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x724, &x725, x723, + x683, x680); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x726, &x727, x725, + x681, x678); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x728, &x729, x727, + x679, x676); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x730, &x731, x729, + x677, x674); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x732, &x733, x731, + x675, x672); + x734 = (x733 + x673); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x735, &x736, 0x0, + x639, x702); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x737, &x738, x736, + x641, x704); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x739, &x740, x738, + x643, x706); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x741, &x742, x740, + x645, x708); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x743, &x744, x742, + x647, x710); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x745, &x746, x744, + x649, x712); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x747, &x748, x746, + x651, x714); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x749, &x750, x748, + x653, x716); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x751, &x752, x750, + x655, x718); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x753, &x754, x752, + x657, x720); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x755, &x756, x754, + x659, x722); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x757, &x758, x756, + x661, x724); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x759, &x760, x758, + x663, x726); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x761, &x762, x760, + x665, x728); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x763, &x764, x762, + x667, x730); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x765, &x766, x764, + x669, x732); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x767, &x768, x766, + x671, x734); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x769, &x770, x735, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x771, &x772, x769, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x773, &x774, x769, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x775, &x776, 0x0, + x735, x773); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x777, &x778, x776, + x737, x774); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x779, &x780, x778, + x739, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x781, &x782, x780, + x741, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x783, &x784, x782, + x743, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x785, &x786, x784, + x745, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x787, &x788, x786, + x747, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x789, &x790, x788, + x749, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x791, &x792, x790, + x751, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x793, &x794, x792, + x753, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x795, &x796, x794, + x755, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x797, &x798, x796, + x757, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x799, &x800, x798, + x759, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x801, &x802, x800, + x761, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x803, &x804, x802, + x763, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x805, &x806, x804, + x765, x771); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x807, &x808, x806, + x767, x772); + x809 = ((uint32_t)x808 + x768); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x810, &x811, x6, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x812, &x813, x6, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x814, &x815, x6, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x816, &x817, x6, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x818, &x819, x6, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x820, &x821, x6, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x822, &x823, x6, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x824, &x825, x6, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x826, &x827, x6, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x828, &x829, x6, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x830, &x831, x6, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x832, &x833, x6, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x834, &x835, x6, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x836, &x837, x6, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x838, &x839, x6, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x840, &x841, x6, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x842, &x843, 0x0, + x841, x838); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x844, &x845, x843, + x839, x836); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x846, &x847, x845, + x837, x834); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x848, &x849, x847, + x835, x832); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x850, &x851, x849, + x833, x830); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x852, &x853, x851, + x831, x828); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x854, &x855, x853, + x829, x826); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x856, &x857, x855, + x827, x824); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x858, &x859, x857, + x825, x822); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x860, &x861, x859, + x823, x820); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x862, &x863, x861, + x821, x818); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x864, &x865, x863, + x819, x816); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x866, &x867, x865, + x817, x814); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x868, &x869, x867, + x815, x812); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x870, &x871, x869, + x813, x810); + x872 = (x871 + x811); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x873, &x874, 0x0, + x777, x840); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x875, &x876, x874, + x779, x842); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x877, &x878, x876, + x781, x844); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x879, &x880, x878, + x783, x846); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x881, &x882, x880, + x785, x848); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x883, &x884, x882, + x787, x850); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x885, &x886, x884, + x789, x852); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x887, &x888, x886, + x791, x854); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x889, &x890, x888, + x793, x856); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x891, &x892, x890, + x795, x858); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x893, &x894, x892, + x797, x860); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x895, &x896, x894, + x799, x862); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x897, &x898, x896, + x801, x864); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x899, &x900, x898, + x803, x866); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x901, &x902, x900, + x805, x868); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x903, &x904, x902, + x807, x870); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x905, &x906, x904, + x809, x872); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x907, &x908, x873, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x909, &x910, x907, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x911, &x912, x907, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x913, &x914, 0x0, + x873, x911); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x915, &x916, x914, + x875, x912); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x917, &x918, x916, + x877, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x919, &x920, x918, + x879, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x921, &x922, x920, + x881, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x923, &x924, x922, + x883, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x925, &x926, x924, + x885, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x927, &x928, x926, + x887, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x929, &x930, x928, + x889, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x931, &x932, x930, + x891, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x933, &x934, x932, + x893, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x935, &x936, x934, + x895, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x937, &x938, x936, + x897, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x939, &x940, x938, + x899, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x941, &x942, x940, + x901, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x943, &x944, x942, + x903, x909); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x945, &x946, x944, + x905, x910); + x947 = ((uint32_t)x946 + x906); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x948, &x949, x7, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x950, &x951, x7, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x952, &x953, x7, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x954, &x955, x7, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x956, &x957, x7, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x958, &x959, x7, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x960, &x961, x7, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x962, &x963, x7, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x964, &x965, x7, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x966, &x967, x7, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x968, &x969, x7, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x970, &x971, x7, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x972, &x973, x7, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x974, &x975, x7, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x976, &x977, x7, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x978, &x979, x7, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x980, &x981, 0x0, + x979, x976); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x982, &x983, x981, + x977, x974); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x984, &x985, x983, + x975, x972); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x986, &x987, x985, + x973, x970); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x988, &x989, x987, + x971, x968); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x990, &x991, x989, + x969, x966); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x992, &x993, x991, + x967, x964); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x994, &x995, x993, + x965, x962); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x996, &x997, x995, + x963, x960); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x998, &x999, x997, + x961, x958); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1000, &x1001, + x999, x959, x956); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1002, &x1003, + x1001, x957, x954); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1004, &x1005, + x1003, x955, x952); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1006, &x1007, + x1005, x953, x950); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1008, &x1009, + x1007, x951, x948); + x1010 = (x1009 + x949); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1011, &x1012, 0x0, + x915, x978); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1013, &x1014, + x1012, x917, x980); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1015, &x1016, + x1014, x919, x982); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1017, &x1018, + x1016, x921, x984); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1019, &x1020, + x1018, x923, x986); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1021, &x1022, + x1020, x925, x988); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1023, &x1024, + x1022, x927, x990); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1025, &x1026, + x1024, x929, x992); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1027, &x1028, + x1026, x931, x994); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1029, &x1030, + x1028, x933, x996); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1031, &x1032, + x1030, x935, x998); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1033, &x1034, + x1032, x937, x1000); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1035, &x1036, + x1034, x939, x1002); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1037, &x1038, + x1036, x941, x1004); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1039, &x1040, + x1038, x943, x1006); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1041, &x1042, + x1040, x945, x1008); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1043, &x1044, + x1042, x947, x1010); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1045, &x1046, x1011, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1047, &x1048, x1045, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1049, &x1050, x1045, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1051, &x1052, 0x0, + x1011, x1049); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1053, &x1054, x1052, x1013, x1050); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1055, &x1056, + x1054, x1015, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1057, &x1058, + x1056, x1017, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1059, &x1060, + x1058, x1019, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1061, &x1062, + x1060, x1021, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1063, &x1064, + x1062, x1023, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1065, &x1066, + x1064, x1025, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1067, &x1068, + x1066, x1027, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1069, &x1070, + x1068, x1029, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1071, &x1072, + x1070, x1031, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1073, &x1074, + x1072, x1033, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1075, &x1076, + x1074, x1035, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1077, &x1078, + x1076, x1037, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1079, &x1080, + x1078, x1039, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1081, &x1082, x1080, x1041, x1047); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1083, &x1084, x1082, x1043, x1048); + x1085 = ((uint32_t)x1084 + x1044); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1086, &x1087, x8, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1088, &x1089, x8, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1090, &x1091, x8, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1092, &x1093, x8, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1094, &x1095, x8, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1096, &x1097, x8, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1098, &x1099, x8, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1100, &x1101, x8, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1102, &x1103, x8, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1104, &x1105, x8, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1106, &x1107, x8, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1108, &x1109, x8, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1110, &x1111, x8, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1112, &x1113, x8, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1114, &x1115, x8, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1116, &x1117, x8, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1118, &x1119, 0x0, + x1117, x1114); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1120, &x1121, x1119, x1115, x1112); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1122, &x1123, x1121, x1113, x1110); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1124, &x1125, x1123, x1111, x1108); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1126, &x1127, x1125, x1109, x1106); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1128, &x1129, x1127, x1107, x1104); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1130, &x1131, x1129, x1105, x1102); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1132, &x1133, x1131, x1103, x1100); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1134, &x1135, x1133, x1101, x1098); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1136, &x1137, x1135, x1099, x1096); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1138, &x1139, x1137, x1097, x1094); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1140, &x1141, x1139, x1095, x1092); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1142, &x1143, x1141, x1093, x1090); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1144, &x1145, x1143, x1091, x1088); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1146, &x1147, x1145, x1089, x1086); + x1148 = (x1147 + x1087); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1149, &x1150, 0x0, + x1053, x1116); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1151, &x1152, x1150, x1055, x1118); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1153, &x1154, x1152, x1057, x1120); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1155, &x1156, x1154, x1059, x1122); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1157, &x1158, x1156, x1061, x1124); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1159, &x1160, x1158, x1063, x1126); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1161, &x1162, x1160, x1065, x1128); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1163, &x1164, x1162, x1067, x1130); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1165, &x1166, x1164, x1069, x1132); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1167, &x1168, x1166, x1071, x1134); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1169, &x1170, x1168, x1073, x1136); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1171, &x1172, x1170, x1075, x1138); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1173, &x1174, x1172, x1077, x1140); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1175, &x1176, x1174, x1079, x1142); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1177, &x1178, x1176, x1081, x1144); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1179, &x1180, x1178, x1083, x1146); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1181, &x1182, x1180, x1085, x1148); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1183, &x1184, x1149, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1185, &x1186, x1183, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1187, &x1188, x1183, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1189, &x1190, 0x0, + x1149, x1187); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1191, &x1192, x1190, x1151, x1188); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1193, &x1194, + x1192, x1153, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1195, &x1196, + x1194, x1155, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1197, &x1198, + x1196, x1157, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1199, &x1200, + x1198, x1159, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1201, &x1202, + x1200, x1161, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1203, &x1204, + x1202, x1163, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1205, &x1206, + x1204, x1165, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1207, &x1208, + x1206, x1167, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1209, &x1210, + x1208, x1169, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1211, &x1212, + x1210, x1171, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1213, &x1214, + x1212, x1173, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1215, &x1216, + x1214, x1175, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1217, &x1218, + x1216, x1177, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1219, &x1220, x1218, x1179, x1185); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1221, &x1222, x1220, x1181, x1186); + x1223 = ((uint32_t)x1222 + x1182); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1224, &x1225, x9, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1226, &x1227, x9, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1228, &x1229, x9, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1230, &x1231, x9, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1232, &x1233, x9, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1234, &x1235, x9, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1236, &x1237, x9, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1238, &x1239, x9, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1240, &x1241, x9, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1242, &x1243, x9, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1244, &x1245, x9, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1246, &x1247, x9, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1248, &x1249, x9, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1250, &x1251, x9, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1252, &x1253, x9, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1254, &x1255, x9, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1256, &x1257, 0x0, + x1255, x1252); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1258, &x1259, x1257, x1253, x1250); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1260, &x1261, x1259, x1251, x1248); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1262, &x1263, x1261, x1249, x1246); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1264, &x1265, x1263, x1247, x1244); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1266, &x1267, x1265, x1245, x1242); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1268, &x1269, x1267, x1243, x1240); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1270, &x1271, x1269, x1241, x1238); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1272, &x1273, x1271, x1239, x1236); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1274, &x1275, x1273, x1237, x1234); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1276, &x1277, x1275, x1235, x1232); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1278, &x1279, x1277, x1233, x1230); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1280, &x1281, x1279, x1231, x1228); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1282, &x1283, x1281, x1229, x1226); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1284, &x1285, x1283, x1227, x1224); + x1286 = (x1285 + x1225); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1287, &x1288, 0x0, + x1191, x1254); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1289, &x1290, x1288, x1193, x1256); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1291, &x1292, x1290, x1195, x1258); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1293, &x1294, x1292, x1197, x1260); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1295, &x1296, x1294, x1199, x1262); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1297, &x1298, x1296, x1201, x1264); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1299, &x1300, x1298, x1203, x1266); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1301, &x1302, x1300, x1205, x1268); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1303, &x1304, x1302, x1207, x1270); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1305, &x1306, x1304, x1209, x1272); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1307, &x1308, x1306, x1211, x1274); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1309, &x1310, x1308, x1213, x1276); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1311, &x1312, x1310, x1215, x1278); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1313, &x1314, x1312, x1217, x1280); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1315, &x1316, x1314, x1219, x1282); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1317, &x1318, x1316, x1221, x1284); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1319, &x1320, x1318, x1223, x1286); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1321, &x1322, x1287, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1323, &x1324, x1321, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1325, &x1326, x1321, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1327, &x1328, 0x0, + x1287, x1325); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1329, &x1330, x1328, x1289, x1326); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1331, &x1332, + x1330, x1291, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1333, &x1334, + x1332, x1293, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1335, &x1336, + x1334, x1295, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1337, &x1338, + x1336, x1297, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1339, &x1340, + x1338, x1299, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1341, &x1342, + x1340, x1301, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1343, &x1344, + x1342, x1303, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1345, &x1346, + x1344, x1305, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1347, &x1348, + x1346, x1307, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1349, &x1350, + x1348, x1309, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1351, &x1352, + x1350, x1311, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1353, &x1354, + x1352, x1313, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1355, &x1356, + x1354, x1315, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1357, &x1358, x1356, x1317, x1323); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1359, &x1360, x1358, x1319, x1324); + x1361 = ((uint32_t)x1360 + x1320); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1362, &x1363, x10, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1364, &x1365, x10, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1366, &x1367, x10, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1368, &x1369, x10, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1370, &x1371, x10, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1372, &x1373, x10, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1374, &x1375, x10, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1376, &x1377, x10, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1378, &x1379, x10, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1380, &x1381, x10, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1382, &x1383, x10, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1384, &x1385, x10, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1386, &x1387, x10, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1388, &x1389, x10, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1390, &x1391, x10, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1392, &x1393, x10, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1394, &x1395, 0x0, + x1393, x1390); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1396, &x1397, x1395, x1391, x1388); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1398, &x1399, x1397, x1389, x1386); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1400, &x1401, x1399, x1387, x1384); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1402, &x1403, x1401, x1385, x1382); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1404, &x1405, x1403, x1383, x1380); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1406, &x1407, x1405, x1381, x1378); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1408, &x1409, x1407, x1379, x1376); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1410, &x1411, x1409, x1377, x1374); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1412, &x1413, x1411, x1375, x1372); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1414, &x1415, x1413, x1373, x1370); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1416, &x1417, x1415, x1371, x1368); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1418, &x1419, x1417, x1369, x1366); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1420, &x1421, x1419, x1367, x1364); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1422, &x1423, x1421, x1365, x1362); + x1424 = (x1423 + x1363); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1425, &x1426, 0x0, + x1329, x1392); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1427, &x1428, x1426, x1331, x1394); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1429, &x1430, x1428, x1333, x1396); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1431, &x1432, x1430, x1335, x1398); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1433, &x1434, x1432, x1337, x1400); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1435, &x1436, x1434, x1339, x1402); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1437, &x1438, x1436, x1341, x1404); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1439, &x1440, x1438, x1343, x1406); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1441, &x1442, x1440, x1345, x1408); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1443, &x1444, x1442, x1347, x1410); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1445, &x1446, x1444, x1349, x1412); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1447, &x1448, x1446, x1351, x1414); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1449, &x1450, x1448, x1353, x1416); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1451, &x1452, x1450, x1355, x1418); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1453, &x1454, x1452, x1357, x1420); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1455, &x1456, x1454, x1359, x1422); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1457, &x1458, x1456, x1361, x1424); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1459, &x1460, x1425, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1461, &x1462, x1459, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1463, &x1464, x1459, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1465, &x1466, 0x0, + x1425, x1463); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1467, &x1468, x1466, x1427, x1464); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1469, &x1470, + x1468, x1429, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1471, &x1472, + x1470, x1431, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1473, &x1474, + x1472, x1433, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1475, &x1476, + x1474, x1435, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1477, &x1478, + x1476, x1437, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1479, &x1480, + x1478, x1439, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1481, &x1482, + x1480, x1441, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1483, &x1484, + x1482, x1443, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1485, &x1486, + x1484, x1445, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1487, &x1488, + x1486, x1447, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1489, &x1490, + x1488, x1449, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1491, &x1492, + x1490, x1451, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1493, &x1494, + x1492, x1453, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1495, &x1496, x1494, x1455, x1461); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1497, &x1498, x1496, x1457, x1462); + x1499 = ((uint32_t)x1498 + x1458); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1500, &x1501, x11, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1502, &x1503, x11, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1504, &x1505, x11, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1506, &x1507, x11, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1508, &x1509, x11, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1510, &x1511, x11, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1512, &x1513, x11, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1514, &x1515, x11, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1516, &x1517, x11, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1518, &x1519, x11, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1520, &x1521, x11, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1522, &x1523, x11, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1524, &x1525, x11, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1526, &x1527, x11, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1528, &x1529, x11, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1530, &x1531, x11, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1532, &x1533, 0x0, + x1531, x1528); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1534, &x1535, x1533, x1529, x1526); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1536, &x1537, x1535, x1527, x1524); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1538, &x1539, x1537, x1525, x1522); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1540, &x1541, x1539, x1523, x1520); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1542, &x1543, x1541, x1521, x1518); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1544, &x1545, x1543, x1519, x1516); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1546, &x1547, x1545, x1517, x1514); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1548, &x1549, x1547, x1515, x1512); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1550, &x1551, x1549, x1513, x1510); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1552, &x1553, x1551, x1511, x1508); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1554, &x1555, x1553, x1509, x1506); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1556, &x1557, x1555, x1507, x1504); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1558, &x1559, x1557, x1505, x1502); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1560, &x1561, x1559, x1503, x1500); + x1562 = (x1561 + x1501); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1563, &x1564, 0x0, + x1467, x1530); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1565, &x1566, x1564, x1469, x1532); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1567, &x1568, x1566, x1471, x1534); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1569, &x1570, x1568, x1473, x1536); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1571, &x1572, x1570, x1475, x1538); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1573, &x1574, x1572, x1477, x1540); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1575, &x1576, x1574, x1479, x1542); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1577, &x1578, x1576, x1481, x1544); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1579, &x1580, x1578, x1483, x1546); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1581, &x1582, x1580, x1485, x1548); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1583, &x1584, x1582, x1487, x1550); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1585, &x1586, x1584, x1489, x1552); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1587, &x1588, x1586, x1491, x1554); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1589, &x1590, x1588, x1493, x1556); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1591, &x1592, x1590, x1495, x1558); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1593, &x1594, x1592, x1497, x1560); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1595, &x1596, x1594, x1499, x1562); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1597, &x1598, x1563, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1599, &x1600, x1597, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1601, &x1602, x1597, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1603, &x1604, 0x0, + x1563, x1601); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1605, &x1606, x1604, x1565, x1602); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1607, &x1608, + x1606, x1567, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1609, &x1610, + x1608, x1569, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1611, &x1612, + x1610, x1571, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1613, &x1614, + x1612, x1573, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1615, &x1616, + x1614, x1575, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1617, &x1618, + x1616, x1577, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1619, &x1620, + x1618, x1579, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1621, &x1622, + x1620, x1581, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1623, &x1624, + x1622, x1583, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1625, &x1626, + x1624, x1585, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1627, &x1628, + x1626, x1587, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1629, &x1630, + x1628, x1589, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1631, &x1632, + x1630, x1591, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1633, &x1634, x1632, x1593, x1599); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1635, &x1636, x1634, x1595, x1600); + x1637 = ((uint32_t)x1636 + x1596); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1638, &x1639, x12, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1640, &x1641, x12, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1642, &x1643, x12, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1644, &x1645, x12, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1646, &x1647, x12, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1648, &x1649, x12, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1650, &x1651, x12, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1652, &x1653, x12, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1654, &x1655, x12, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1656, &x1657, x12, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1658, &x1659, x12, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1660, &x1661, x12, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1662, &x1663, x12, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1664, &x1665, x12, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1666, &x1667, x12, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1668, &x1669, x12, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1670, &x1671, 0x0, + x1669, x1666); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1672, &x1673, x1671, x1667, x1664); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1674, &x1675, x1673, x1665, x1662); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1676, &x1677, x1675, x1663, x1660); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1678, &x1679, x1677, x1661, x1658); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1680, &x1681, x1679, x1659, x1656); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1682, &x1683, x1681, x1657, x1654); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1684, &x1685, x1683, x1655, x1652); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1686, &x1687, x1685, x1653, x1650); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1688, &x1689, x1687, x1651, x1648); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1690, &x1691, x1689, x1649, x1646); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1692, &x1693, x1691, x1647, x1644); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1694, &x1695, x1693, x1645, x1642); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1696, &x1697, x1695, x1643, x1640); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1698, &x1699, x1697, x1641, x1638); + x1700 = (x1699 + x1639); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1701, &x1702, 0x0, + x1605, x1668); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1703, &x1704, x1702, x1607, x1670); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1705, &x1706, x1704, x1609, x1672); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1707, &x1708, x1706, x1611, x1674); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1709, &x1710, x1708, x1613, x1676); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1711, &x1712, x1710, x1615, x1678); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1713, &x1714, x1712, x1617, x1680); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1715, &x1716, x1714, x1619, x1682); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1717, &x1718, x1716, x1621, x1684); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1719, &x1720, x1718, x1623, x1686); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1721, &x1722, x1720, x1625, x1688); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1723, &x1724, x1722, x1627, x1690); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1725, &x1726, x1724, x1629, x1692); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1727, &x1728, x1726, x1631, x1694); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1729, &x1730, x1728, x1633, x1696); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1731, &x1732, x1730, x1635, x1698); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1733, &x1734, x1732, x1637, x1700); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1735, &x1736, x1701, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1737, &x1738, x1735, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1739, &x1740, x1735, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1741, &x1742, 0x0, + x1701, x1739); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1743, &x1744, x1742, x1703, x1740); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1745, &x1746, + x1744, x1705, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1747, &x1748, + x1746, x1707, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1749, &x1750, + x1748, x1709, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1751, &x1752, + x1750, x1711, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1753, &x1754, + x1752, x1713, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1755, &x1756, + x1754, x1715, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1757, &x1758, + x1756, x1717, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1759, &x1760, + x1758, x1719, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1761, &x1762, + x1760, x1721, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1763, &x1764, + x1762, x1723, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1765, &x1766, + x1764, x1725, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1767, &x1768, + x1766, x1727, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1769, &x1770, + x1768, x1729, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1771, &x1772, x1770, x1731, x1737); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1773, &x1774, x1772, x1733, x1738); + x1775 = ((uint32_t)x1774 + x1734); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1776, &x1777, x13, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1778, &x1779, x13, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1780, &x1781, x13, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1782, &x1783, x13, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1784, &x1785, x13, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1786, &x1787, x13, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1788, &x1789, x13, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1790, &x1791, x13, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1792, &x1793, x13, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1794, &x1795, x13, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1796, &x1797, x13, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1798, &x1799, x13, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1800, &x1801, x13, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1802, &x1803, x13, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1804, &x1805, x13, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1806, &x1807, x13, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1808, &x1809, 0x0, + x1807, x1804); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1810, &x1811, x1809, x1805, x1802); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1812, &x1813, x1811, x1803, x1800); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1814, &x1815, x1813, x1801, x1798); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1816, &x1817, x1815, x1799, x1796); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1818, &x1819, x1817, x1797, x1794); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1820, &x1821, x1819, x1795, x1792); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1822, &x1823, x1821, x1793, x1790); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1824, &x1825, x1823, x1791, x1788); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1826, &x1827, x1825, x1789, x1786); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1828, &x1829, x1827, x1787, x1784); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1830, &x1831, x1829, x1785, x1782); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1832, &x1833, x1831, x1783, x1780); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1834, &x1835, x1833, x1781, x1778); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1836, &x1837, x1835, x1779, x1776); + x1838 = (x1837 + x1777); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1839, &x1840, 0x0, + x1743, x1806); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1841, &x1842, x1840, x1745, x1808); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1843, &x1844, x1842, x1747, x1810); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1845, &x1846, x1844, x1749, x1812); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1847, &x1848, x1846, x1751, x1814); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1849, &x1850, x1848, x1753, x1816); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1851, &x1852, x1850, x1755, x1818); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1853, &x1854, x1852, x1757, x1820); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1855, &x1856, x1854, x1759, x1822); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1857, &x1858, x1856, x1761, x1824); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1859, &x1860, x1858, x1763, x1826); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1861, &x1862, x1860, x1765, x1828); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1863, &x1864, x1862, x1767, x1830); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1865, &x1866, x1864, x1769, x1832); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1867, &x1868, x1866, x1771, x1834); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1869, &x1870, x1868, x1773, x1836); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1871, &x1872, x1870, x1775, x1838); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1873, &x1874, x1839, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1875, &x1876, x1873, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1877, &x1878, x1873, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1879, &x1880, 0x0, + x1839, x1877); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1881, &x1882, x1880, x1841, x1878); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1883, &x1884, + x1882, x1843, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1885, &x1886, + x1884, x1845, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1887, &x1888, + x1886, x1847, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1889, &x1890, + x1888, x1849, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1891, &x1892, + x1890, x1851, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1893, &x1894, + x1892, x1853, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1895, &x1896, + x1894, x1855, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1897, &x1898, + x1896, x1857, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1899, &x1900, + x1898, x1859, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1901, &x1902, + x1900, x1861, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1903, &x1904, + x1902, x1863, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1905, &x1906, + x1904, x1865, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1907, &x1908, + x1906, x1867, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1909, &x1910, x1908, x1869, x1875); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1911, &x1912, x1910, x1871, x1876); + x1913 = ((uint32_t)x1912 + x1872); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1914, &x1915, x14, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1916, &x1917, x14, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1918, &x1919, x14, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1920, &x1921, x14, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1922, &x1923, x14, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1924, &x1925, x14, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1926, &x1927, x14, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1928, &x1929, x14, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1930, &x1931, x14, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1932, &x1933, x14, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1934, &x1935, x14, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1936, &x1937, x14, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1938, &x1939, x14, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1940, &x1941, x14, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1942, &x1943, x14, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1944, &x1945, x14, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1946, &x1947, 0x0, + x1945, x1942); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1948, &x1949, x1947, x1943, x1940); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1950, &x1951, x1949, x1941, x1938); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1952, &x1953, x1951, x1939, x1936); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1954, &x1955, x1953, x1937, x1934); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1956, &x1957, x1955, x1935, x1932); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1958, &x1959, x1957, x1933, x1930); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1960, &x1961, x1959, x1931, x1928); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1962, &x1963, x1961, x1929, x1926); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1964, &x1965, x1963, x1927, x1924); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1966, &x1967, x1965, x1925, x1922); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1968, &x1969, x1967, x1923, x1920); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1970, &x1971, x1969, x1921, x1918); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1972, &x1973, x1971, x1919, x1916); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1974, &x1975, x1973, x1917, x1914); + x1976 = (x1975 + x1915); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x1977, &x1978, 0x0, + x1881, x1944); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1979, &x1980, x1978, x1883, x1946); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1981, &x1982, x1980, x1885, x1948); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1983, &x1984, x1982, x1887, x1950); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1985, &x1986, x1984, x1889, x1952); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1987, &x1988, x1986, x1891, x1954); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1989, &x1990, x1988, x1893, x1956); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1991, &x1992, x1990, x1895, x1958); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1993, &x1994, x1992, x1897, x1960); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1995, &x1996, x1994, x1899, x1962); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1997, &x1998, x1996, x1901, x1964); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1999, &x2000, x1998, x1903, x1966); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2001, &x2002, x2000, x1905, x1968); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2003, &x2004, x2002, x1907, x1970); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2005, &x2006, x2004, x1909, x1972); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2007, &x2008, x2006, x1911, x1974); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2009, &x2010, x2008, x1913, x1976); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2011, &x2012, x1977, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2013, &x2014, x2011, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2015, &x2016, x2011, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2017, &x2018, 0x0, + x1977, x2015); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2019, &x2020, x2018, x1979, x2016); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2021, &x2022, + x2020, x1981, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2023, &x2024, + x2022, x1983, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2025, &x2026, + x2024, x1985, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2027, &x2028, + x2026, x1987, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2029, &x2030, + x2028, x1989, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2031, &x2032, + x2030, x1991, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2033, &x2034, + x2032, x1993, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2035, &x2036, + x2034, x1995, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2037, &x2038, + x2036, x1997, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2039, &x2040, + x2038, x1999, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2041, &x2042, + x2040, x2001, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2043, &x2044, + x2042, x2003, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2045, &x2046, + x2044, x2005, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2047, &x2048, x2046, x2007, x2013); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2049, &x2050, x2048, x2009, x2014); + x2051 = ((uint32_t)x2050 + x2010); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2052, &x2053, x15, + (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2054, &x2055, x15, + (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2056, &x2057, x15, + (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2058, &x2059, x15, + (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2060, &x2061, x15, + (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2062, &x2063, x15, + (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2064, &x2065, x15, + (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2066, &x2067, x15, + (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2068, &x2069, x15, + (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2070, &x2071, x15, + (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2072, &x2073, x15, + (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2074, &x2075, x15, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2076, &x2077, x15, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2078, &x2079, x15, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2080, &x2081, x15, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2082, &x2083, x15, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2084, &x2085, 0x0, + x2083, x2080); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2086, &x2087, x2085, x2081, x2078); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2088, &x2089, x2087, x2079, x2076); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2090, &x2091, x2089, x2077, x2074); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2092, &x2093, x2091, x2075, x2072); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2094, &x2095, x2093, x2073, x2070); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2096, &x2097, x2095, x2071, x2068); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2098, &x2099, x2097, x2069, x2066); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2100, &x2101, x2099, x2067, x2064); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2102, &x2103, x2101, x2065, x2062); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2104, &x2105, x2103, x2063, x2060); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2106, &x2107, x2105, x2061, x2058); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2108, &x2109, x2107, x2059, x2056); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2110, &x2111, x2109, x2057, x2054); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2112, &x2113, x2111, x2055, x2052); + x2114 = (x2113 + x2053); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2115, &x2116, 0x0, + x2019, x2082); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2117, &x2118, x2116, x2021, x2084); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2119, &x2120, x2118, x2023, x2086); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2121, &x2122, x2120, x2025, x2088); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2123, &x2124, x2122, x2027, x2090); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2125, &x2126, x2124, x2029, x2092); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2127, &x2128, x2126, x2031, x2094); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2129, &x2130, x2128, x2033, x2096); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2131, &x2132, x2130, x2035, x2098); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2133, &x2134, x2132, x2037, x2100); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2135, &x2136, x2134, x2039, x2102); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2137, &x2138, x2136, x2041, x2104); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2139, &x2140, x2138, x2043, x2106); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2141, &x2142, x2140, x2045, x2108); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2143, &x2144, x2142, x2047, x2110); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2145, &x2146, x2144, x2049, x2112); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2147, &x2148, x2146, x2051, x2114); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2149, &x2150, x2115, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2151, &x2152, x2149, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2153, &x2154, x2149, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2155, &x2156, 0x0, + x2115, x2153); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2157, &x2158, x2156, x2117, x2154); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2159, &x2160, + x2158, x2119, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2161, &x2162, + x2160, x2121, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2163, &x2164, + x2162, x2123, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2165, &x2166, + x2164, x2125, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2167, &x2168, + x2166, x2127, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2169, &x2170, + x2168, x2129, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2171, &x2172, + x2170, x2131, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2173, &x2174, + x2172, x2133, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2175, &x2176, + x2174, x2135, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2177, &x2178, + x2176, x2137, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2179, &x2180, + x2178, x2139, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2181, &x2182, + x2180, x2141, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x2183, &x2184, + x2182, x2143, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2185, &x2186, x2184, x2145, x2151); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x2187, &x2188, x2186, x2147, x2152); + x2189 = ((uint32_t)x2188 + x2148); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x2190, &x2191, 0x0, x2157, UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2192, &x2193, + x2191, x2159, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2194, &x2195, + x2193, x2161, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2196, &x2197, + x2195, x2163, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2198, &x2199, + x2197, x2165, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2200, &x2201, + x2199, x2167, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2202, &x2203, + x2201, x2169, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2204, &x2205, + x2203, x2171, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2206, &x2207, + x2205, x2173, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2208, &x2209, + x2207, x2175, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2210, &x2211, + x2209, x2177, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2212, &x2213, + x2211, x2179, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2214, &x2215, + x2213, x2181, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2216, &x2217, + x2215, x2183, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2218, &x2219, + x2217, x2185, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x2220, &x2221, x2219, x2187, UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x2222, &x2223, + x2221, x2189, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2224, x2223, x2190, + x2157); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2225, x2223, x2192, + x2159); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2226, x2223, x2194, + x2161); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2227, x2223, x2196, + x2163); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2228, x2223, x2198, + x2165); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2229, x2223, x2200, + x2167); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2230, x2223, x2202, + x2169); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2231, x2223, x2204, + x2171); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2232, x2223, x2206, + x2173); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2233, x2223, x2208, + x2175); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2234, x2223, x2210, + x2177); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2235, x2223, x2212, + x2179); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2236, x2223, x2214, + x2181); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2237, x2223, x2216, + x2183); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2238, x2223, x2218, + x2185); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2239, x2223, x2220, + x2187); + out1[0] = x2224; + out1[1] = x2225; + out1[2] = x2226; + out1[3] = x2227; + out1[4] = x2228; + out1[5] = x2229; + out1[6] = x2230; + out1[7] = x2231; + out1[8] = x2232; + out1[9] = x2233; + out1[10] = x2234; + out1[11] = x2235; + out1[12] = x2236; + out1[13] = x2237; + out1[14] = x2238; + out1[15] = x2239; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_add adds two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) + eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + * 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]] + * 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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_add( + uint32_t out1[16], const uint32_t arg1[16], const uint32_t arg2[16]) { + uint32_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2; + uint32_t x3; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x4; + uint32_t x5; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x6; + uint32_t x7; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x8; + uint32_t x9; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x10; + uint32_t x11; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x12; + uint32_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x14; + uint32_t x15; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x16; + uint32_t x17; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x18; + uint32_t x19; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x20; + uint32_t x21; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x22; + uint32_t x23; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x24; + uint32_t x25; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x26; + uint32_t x27; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x28; + uint32_t x29; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x30; + uint32_t x31; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x32; + uint32_t x33; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x34; + uint32_t x35; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x36; + uint32_t x37; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x38; + uint32_t x39; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x40; + uint32_t x41; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x42; + uint32_t x43; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x44; + uint32_t x45; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x46; + uint32_t x47; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x48; + uint32_t x49; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x50; + uint32_t x51; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x52; + uint32_t x53; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x54; + uint32_t x55; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x56; + uint32_t x57; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x58; + uint32_t x59; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x60; + uint32_t x61; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x62; + uint32_t x63; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x64; + uint32_t x65; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x66; + uint32_t x67; + uint32_t x68; + uint32_t x69; + uint32_t x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + uint32_t x82; + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x9, &x10, x8, (arg1[4]), (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x11, &x12, x10, (arg1[5]), (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x13, &x14, x12, (arg1[6]), (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x15, &x16, x14, (arg1[7]), (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x17, &x18, x16, (arg1[8]), (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x19, &x20, x18, (arg1[9]), (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x21, &x22, x20, (arg1[10]), (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x23, &x24, x22, (arg1[11]), (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x25, &x26, x24, (arg1[12]), (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x27, &x28, x26, (arg1[13]), (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x29, &x30, x28, (arg1[14]), (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x31, &x32, x30, (arg1[15]), (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x33, &x34, 0x0, + x1, UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x35, &x36, x34, + x3, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x37, &x38, x36, + x5, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x39, &x40, x38, + x7, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x41, &x42, x40, + x9, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x43, &x44, x42, + x11, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x45, &x46, x44, + x13, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x47, &x48, x46, + x15, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x49, &x50, x48, + x17, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x51, &x52, x50, + x19, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x53, &x54, x52, + x21, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x55, &x56, x54, + x23, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x57, &x58, x56, + x25, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x59, &x60, x58, + x27, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x61, &x62, x60, + x29, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x63, &x64, x62, x31, UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x65, &x66, x64, + x32, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x67, x66, x33, x1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x68, x66, x35, x3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x69, x66, x37, x5); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x70, x66, x39, x7); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x71, x66, x41, x9); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x72, x66, x43, x11); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x73, x66, x45, x13); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x74, x66, x47, x15); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x75, x66, x49, x17); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x76, x66, x51, x19); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x77, x66, x53, x21); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x78, x66, x55, x23); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x79, x66, x57, x25); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x80, x66, x59, x27); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x81, x66, x61, x29); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x82, x66, x63, x31); + out1[0] = x67; + out1[1] = x68; + out1[2] = x69; + out1[3] = x70; + out1[4] = x71; + out1[5] = x72; + out1[6] = x73; + out1[7] = x74; + out1[8] = x75; + out1[9] = x76; + out1[10] = x77; + out1[11] = x78; + out1[12] = x79; + out1[13] = x80; + out1[14] = x81; + out1[15] = x82; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_sub subtracts two field elements in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * 0 ≤ eval arg2 < m + * Postconditions: + * eval (from_montgomery out1) mod m = (eval (from_montgomery arg1) - eval (from_montgomery arg2)) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + * 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]] + * 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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_sub( + uint32_t out1[16], const uint32_t arg1[16], const uint32_t arg2[16]) { + uint32_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2; + uint32_t x3; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x4; + uint32_t x5; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x6; + uint32_t x7; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x8; + uint32_t x9; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x10; + uint32_t x11; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x12; + uint32_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x14; + uint32_t x15; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x16; + uint32_t x17; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x18; + uint32_t x19; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x20; + uint32_t x21; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x22; + uint32_t x23; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x24; + uint32_t x25; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x26; + uint32_t x27; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x28; + uint32_t x29; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x30; + uint32_t x31; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x32; + uint32_t x33; + uint32_t x34; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x35; + uint32_t x36; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x37; + uint32_t x38; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x39; + uint32_t x40; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x41; + uint32_t x42; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x43; + uint32_t x44; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x45; + uint32_t x46; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x47; + uint32_t x48; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x49; + uint32_t x50; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x51; + uint32_t x52; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x53; + uint32_t x54; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x55; + uint32_t x56; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x57; + uint32_t x58; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x59; + uint32_t x60; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x61; + uint32_t x62; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x63; + uint32_t x64; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x65; + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x1, &x2, 0x0, (arg1[0]), (arg2[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x3, &x4, x2, (arg1[1]), (arg2[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x5, &x6, x4, (arg1[2]), (arg2[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x7, &x8, x6, (arg1[3]), (arg2[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x9, &x10, x8, (arg1[4]), (arg2[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x11, &x12, x10, (arg1[5]), (arg2[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x13, &x14, x12, (arg1[6]), (arg2[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x15, &x16, x14, (arg1[7]), (arg2[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x17, &x18, x16, (arg1[8]), (arg2[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x19, &x20, x18, (arg1[9]), (arg2[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x21, &x22, x20, (arg1[10]), (arg2[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x23, &x24, x22, (arg1[11]), (arg2[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x25, &x26, x24, (arg1[12]), (arg2[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x27, &x28, x26, (arg1[13]), (arg2[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x29, &x30, x28, (arg1[14]), (arg2[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x31, &x32, x30, (arg1[15]), (arg2[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x33, x32, 0x0, + UINT32_C(0xffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x34, &x35, 0x0, x1, (x33 & UINT8_C(0x6f))); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x36, &x37, x35, x3, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x38, &x39, x37, x5, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x40, &x41, x39, x7, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x42, &x43, x41, x9, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x44, &x45, x43, + x11, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x46, &x47, x45, + x13, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x48, &x49, x47, + x15, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x50, &x51, x49, + x17, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x52, &x53, x51, + x19, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x54, &x55, x53, + x21, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x56, &x57, x55, + x23, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x58, &x59, x57, + x25, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x60, &x61, x59, + x27, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x62, &x63, x61, + x29, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x64, &x65, x63, x31, (x33 & UINT32_C(0x80000000))); + out1[0] = x34; + out1[1] = x36; + out1[2] = x38; + out1[3] = x40; + out1[4] = x42; + out1[5] = x44; + out1[6] = x46; + out1[7] = x48; + out1[8] = x50; + out1[9] = x52; + out1[10] = x54; + out1[11] = x56; + out1[12] = x58; + out1[13] = x60; + out1[14] = x62; + out1[15] = x64; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_opp negates a field element in the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = -eval (from_montgomery arg1) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_opp( + uint32_t out1[16], const uint32_t arg1[16]) { + uint32_t x1; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x2; + uint32_t x3; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x4; + uint32_t x5; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x6; + uint32_t x7; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x8; + uint32_t x9; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x10; + uint32_t x11; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x12; + uint32_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x14; + uint32_t x15; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x16; + uint32_t x17; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x18; + uint32_t x19; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x20; + uint32_t x21; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x22; + uint32_t x23; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x24; + uint32_t x25; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x26; + uint32_t x27; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x28; + uint32_t x29; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x30; + uint32_t x31; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x32; + uint32_t x33; + uint32_t x34; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x35; + uint32_t x36; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x37; + uint32_t x38; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x39; + uint32_t x40; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x41; + uint32_t x42; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x43; + uint32_t x44; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x45; + uint32_t x46; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x47; + uint32_t x48; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x49; + uint32_t x50; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x51; + uint32_t x52; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x53; + uint32_t x54; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x55; + uint32_t x56; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x57; + uint32_t x58; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x59; + uint32_t x60; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x61; + uint32_t x62; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x63; + uint32_t x64; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x65; + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x1, &x2, 0x0, 0x0, + (arg1[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x3, &x4, x2, 0x0, + (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x5, &x6, x4, 0x0, + (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x7, &x8, x6, 0x0, + (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x9, &x10, x8, 0x0, + (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x11, &x12, x10, + 0x0, (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x13, &x14, x12, + 0x0, (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x15, &x16, x14, + 0x0, (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x17, &x18, x16, + 0x0, (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x19, &x20, x18, + 0x0, (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x21, &x22, x20, + 0x0, (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x23, &x24, x22, + 0x0, (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x25, &x26, x24, + 0x0, (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x27, &x28, x26, + 0x0, (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x29, &x30, x28, + 0x0, (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x31, &x32, x30, + 0x0, (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x33, x32, 0x0, + UINT32_C(0xffffffff)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x34, &x35, 0x0, x1, (x33 & UINT8_C(0x6f))); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x36, &x37, x35, x3, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x38, &x39, x37, x5, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x40, &x41, x39, x7, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x42, &x43, x41, x9, + 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x44, &x45, x43, + x11, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x46, &x47, x45, + x13, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x48, &x49, x47, + x15, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x50, &x51, x49, + x17, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x52, &x53, x51, + x19, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x54, &x55, x53, + x21, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x56, &x57, x55, + x23, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x58, &x59, x57, + x25, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x60, &x61, x59, + x27, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x62, &x63, x61, + x29, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x64, &x65, x63, x31, (x33 & UINT32_C(0x80000000))); + out1[0] = x34; + out1[1] = x36; + out1[2] = x38; + out1[3] = x40; + out1[4] = x42; + out1[5] = x44; + out1[6] = x46; + out1[7] = x48; + out1[8] = x50; + out1[9] = x52; + out1[10] = x54; + out1[11] = x56; + out1[12] = x58; + out1[13] = x60; + out1[14] = x62; + out1[15] = x64; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery translates a field element out of the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval out1 mod m = (eval arg1 * ((2^32)⁻¹ mod m)^16) mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery( + uint32_t out1[16], const uint32_t arg1[16]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint32_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint32_t x8; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x9; + uint32_t x10; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x11; + uint32_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x19; + uint32_t x20; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x21; + uint32_t x22; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x23; + uint32_t x24; + uint32_t x25; + uint32_t x26; + uint32_t x27; + uint32_t x28; + uint32_t x29; + uint32_t x30; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x31; + uint32_t x32; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x33; + uint32_t x34; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x35; + uint32_t x36; + uint32_t x37; + uint32_t x38; + uint32_t x39; + uint32_t x40; + uint32_t x41; + uint32_t x42; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x43; + uint32_t x44; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x45; + uint32_t x46; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x47; + uint32_t x48; + uint32_t x49; + uint32_t x50; + uint32_t x51; + uint32_t x52; + uint32_t x53; + uint32_t x54; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x55; + uint32_t x56; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x57; + uint32_t x58; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x59; + uint32_t x60; + uint32_t x61; + uint32_t x62; + uint32_t x63; + uint32_t x64; + uint32_t x65; + uint32_t x66; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x67; + uint32_t x68; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x69; + uint32_t x70; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x79; + uint32_t x80; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x81; + uint32_t x82; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x83; + uint32_t x84; + uint32_t x85; + uint32_t x86; + uint32_t x87; + uint32_t x88; + uint32_t x89; + uint32_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x91; + uint32_t x92; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x93; + uint32_t x94; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x95; + uint32_t x96; + uint32_t x97; + uint32_t x98; + uint32_t x99; + uint32_t x100; + uint32_t x101; + uint32_t x102; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x103; + uint32_t x104; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x105; + uint32_t x106; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x107; + uint32_t x108; + uint32_t x109; + uint32_t x110; + uint32_t x111; + uint32_t x112; + uint32_t x113; + uint32_t x114; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x115; + uint32_t x116; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x117; + uint32_t x118; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x119; + uint32_t x120; + uint32_t x121; + uint32_t x122; + uint32_t x123; + uint32_t x124; + uint32_t x125; + uint32_t x126; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x127; + uint32_t x128; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x129; + uint32_t x130; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x131; + uint32_t x132; + uint32_t x133; + uint32_t x134; + uint32_t x135; + uint32_t x136; + uint32_t x137; + uint32_t x138; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x139; + uint32_t x140; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x141; + uint32_t x142; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + uint32_t x148; + uint32_t x149; + uint32_t x150; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x151; + uint32_t x152; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x153; + uint32_t x154; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x155; + uint32_t x156; + uint32_t x157; + uint32_t x158; + uint32_t x159; + uint32_t x160; + uint32_t x161; + uint32_t x162; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x163; + uint32_t x164; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x165; + uint32_t x166; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x167; + uint32_t x168; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x169; + uint32_t x170; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x171; + uint32_t x172; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x173; + uint32_t x174; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x175; + uint32_t x176; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x177; + uint32_t x178; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x179; + uint32_t x180; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x181; + uint32_t x182; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x183; + uint32_t x184; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x185; + uint32_t x186; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x187; + uint32_t x188; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x189; + uint32_t x190; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x191; + uint32_t x192; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x193; + uint32_t x194; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x195; + uint32_t x196; + uint32_t x197; + uint32_t x198; + uint32_t x199; + uint32_t x200; + uint32_t x201; + uint32_t x202; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x203; + uint32_t x204; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x205; + uint32_t x206; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x207; + uint32_t x208; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x209; + uint32_t x210; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x211; + uint32_t x212; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x213; + uint32_t x214; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x215; + uint32_t x216; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x217; + uint32_t x218; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x219; + uint32_t x220; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x221; + uint32_t x222; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x223; + uint32_t x224; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x225; + uint32_t x226; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x227; + uint32_t x228; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x229; + uint32_t x230; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x231; + uint32_t x232; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x233; + uint32_t x234; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x235; + uint32_t x236; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x237; + uint32_t x238; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x239; + uint32_t x240; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x241; + uint32_t x242; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x243; + uint32_t x244; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x245; + uint32_t x246; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x247; + uint32_t x248; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x249; + uint32_t x250; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x251; + uint32_t x252; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x253; + uint32_t x254; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x255; + uint32_t x256; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x257; + uint32_t x258; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x259; + uint32_t x260; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x261; + uint32_t x262; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x263; + uint32_t x264; + uint32_t x265; + uint32_t x266; + uint32_t x267; + uint32_t x268; + uint32_t x269; + uint32_t x270; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x271; + uint32_t x272; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x273; + uint32_t x274; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x275; + uint32_t x276; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x277; + uint32_t x278; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x279; + uint32_t x280; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x281; + uint32_t x282; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x283; + uint32_t x284; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x285; + uint32_t x286; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x287; + uint32_t x288; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x289; + uint32_t x290; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x291; + uint32_t x292; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x293; + uint32_t x294; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x295; + uint32_t x296; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x297; + uint32_t x298; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x299; + uint32_t x300; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x301; + uint32_t x302; + uint32_t x303; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x304; + uint32_t x305; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x306; + uint32_t x307; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x308; + uint32_t x309; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x310; + uint32_t x311; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x312; + uint32_t x313; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x314; + uint32_t x315; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x316; + uint32_t x317; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x318; + uint32_t x319; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x320; + uint32_t x321; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x322; + uint32_t x323; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x324; + uint32_t x325; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x326; + uint32_t x327; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x328; + uint32_t x329; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x330; + uint32_t x331; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x332; + uint32_t x333; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x334; + uint32_t x335; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x336; + uint32_t x337; + uint32_t x338; + uint32_t x339; + uint32_t x340; + uint32_t x341; + uint32_t x342; + uint32_t x343; + uint32_t x344; + uint32_t x345; + uint32_t x346; + uint32_t x347; + uint32_t x348; + uint32_t x349; + uint32_t x350; + uint32_t x351; + uint32_t x352; + x1 = (arg1[0]); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x2, &x3, x1, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x4, &x5, x2, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x6, &x7, x2, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x8, &x9, 0x0, x1, + x6); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x10, &x11, 0x0, (x9 + x7), (arg1[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x12, &x13, x10, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x14, &x15, x12, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x16, &x17, x12, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x18, &x19, 0x0, x5, + x14); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x20, &x21, 0x0, + x10, x16); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x22, &x23, 0x0, (((uint32_t)x21 + x11) + x17), (arg1[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x24, &x25, x22, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x26, &x27, x24, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x28, &x29, x24, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x30, &x31, 0x0, + (x19 + x15), x26); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x32, &x33, 0x0, + x22, x28); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x34, &x35, 0x0, (((uint32_t)x33 + x23) + x29), (arg1[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x36, &x37, x34, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x38, &x39, x36, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x40, &x41, x36, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x42, &x43, 0x0, + (x31 + x27), x38); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x44, &x45, 0x0, + x34, x40); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x46, &x47, 0x0, (((uint32_t)x45 + x35) + x41), (arg1[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x48, &x49, x46, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x50, &x51, x48, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x52, &x53, x48, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x54, &x55, 0x0, + (x43 + x39), x50); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x56, &x57, 0x0, + x46, x52); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x58, &x59, 0x0, (((uint32_t)x57 + x47) + x53), (arg1[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x60, &x61, x58, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x62, &x63, x60, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x64, &x65, x60, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x66, &x67, 0x0, + (x55 + x51), x62); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x68, &x69, 0x0, + x58, x64); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x70, &x71, 0x0, (((uint32_t)x69 + x59) + x65), (arg1[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x72, &x73, x70, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x74, &x75, x72, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x76, &x77, x72, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x78, &x79, 0x0, + (x67 + x63), x74); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x80, &x81, 0x0, + x70, x76); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x82, &x83, 0x0, (((uint32_t)x81 + x71) + x77), (arg1[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x84, &x85, x82, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x86, &x87, x84, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x88, &x89, x84, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x90, &x91, 0x0, + (x79 + x75), x86); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x92, &x93, 0x0, + x82, x88); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x94, &x95, 0x0, (((uint32_t)x93 + x83) + x89), (arg1[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x96, &x97, x94, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x98, &x99, x96, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x100, &x101, x96, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x102, &x103, 0x0, + (x91 + x87), x98); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x104, &x105, 0x0, + x94, x100); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x106, &x107, 0x0, (((uint32_t)x105 + x95) + x101), (arg1[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x108, &x109, x106, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x110, &x111, x108, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x112, &x113, x108, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x114, &x115, 0x0, + (x103 + x99), x110); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x116, &x117, 0x0, + x106, x112); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x118, &x119, 0x0, (((uint32_t)x117 + x107) + x113), (arg1[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x120, &x121, x118, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x122, &x123, x120, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x124, &x125, x120, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x126, &x127, 0x0, (x115 + x111), x122); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x128, &x129, 0x0, + x118, x124); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x130, &x131, 0x0, (((uint32_t)x129 + x119) + x125), (arg1[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x132, &x133, x130, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x134, &x135, x132, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x136, &x137, x132, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x138, &x139, 0x0, (x127 + x123), x134); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x140, &x141, 0x0, + x130, x136); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x142, &x143, 0x0, (((uint32_t)x141 + x131) + x137), (arg1[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x144, &x145, x142, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x146, &x147, x144, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x148, &x149, x144, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x150, &x151, 0x0, (x139 + x135), x146); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x152, &x153, 0x0, + x142, x148); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x154, &x155, 0x0, (((uint32_t)x153 + x143) + x149), (arg1[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x156, &x157, x154, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x158, &x159, x156, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x160, &x161, x156, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x162, &x163, 0x0, (x151 + x147), x158); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x164, &x165, 0x0, + x154, x160); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x166, &x167, 0x0, (((uint32_t)x165 + x155) + x161), (arg1[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x168, &x169, x167, + x4, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x170, &x171, x169, + x18, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x172, &x173, x171, + x30, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x174, &x175, x173, + x42, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x176, &x177, x175, + x54, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x178, &x179, x177, + x66, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x180, &x181, x179, + x78, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x182, &x183, x181, + x90, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x184, &x185, x183, + x102, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x186, &x187, x185, + x114, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x188, &x189, x187, + x126, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x190, &x191, x189, + x138, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x192, &x193, x191, + x150, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x194, &x195, x193, + x162, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x196, &x197, x166, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x198, &x199, x196, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x200, &x201, x196, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x202, &x203, 0x0, + x166, x200); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x204, &x205, x203, + x168, x201); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x206, &x207, x205, + x170, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x208, &x209, x207, + x172, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x210, &x211, x209, + x174, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x212, &x213, x211, + x176, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x214, &x215, x213, + x178, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x216, &x217, x215, + x180, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x218, &x219, x217, + x182, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x220, &x221, x219, + x184, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x222, &x223, x221, + x186, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x224, &x225, x223, + x188, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x226, &x227, x225, + x190, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x228, &x229, x227, + x192, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x230, &x231, x229, + x194, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x232, &x233, x231, (x195 + (x163 + x159)), x198); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x234, &x235, 0x0, + x204, (arg1[15])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x236, &x237, x235, + x206, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x238, &x239, x237, + x208, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x240, &x241, x239, + x210, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x242, &x243, x241, + x212, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x244, &x245, x243, + x214, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x246, &x247, x245, + x216, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x248, &x249, x247, + x218, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x250, &x251, x249, + x220, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x252, &x253, x251, + x222, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x254, &x255, x253, + x224, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x256, &x257, x255, + x226, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x258, &x259, x257, + x228, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x260, &x261, x259, + x230, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x262, &x263, x261, + x232, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x264, &x265, x234, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x266, &x267, x264, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x268, &x269, x264, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x270, &x271, 0x0, + x234, x268); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x272, &x273, x271, + x236, x269); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x274, &x275, x273, + x238, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x276, &x277, x275, + x240, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x278, &x279, x277, + x242, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x280, &x281, x279, + x244, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x282, &x283, x281, + x246, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x284, &x285, x283, + x248, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x286, &x287, x285, + x250, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x288, &x289, x287, + x252, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x290, &x291, x289, + x254, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x292, &x293, x291, + x256, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x294, &x295, x293, + x258, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x296, &x297, x295, + x260, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x298, &x299, x297, + x262, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x300, &x301, x299, (x263 + (x233 + x199)), x266); + x302 = (x301 + x267); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x303, &x304, 0x0, x272, UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x305, &x306, x304, + x274, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x307, &x308, x306, + x276, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x309, &x310, x308, + x278, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x311, &x312, x310, + x280, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x313, &x314, x312, + x282, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x315, &x316, x314, + x284, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x317, &x318, x316, + x286, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x319, &x320, x318, + x288, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x321, &x322, x320, + x290, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x323, &x324, x322, + x292, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x325, &x326, x324, + x294, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x327, &x328, x326, + x296, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x329, &x330, x328, + x298, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x331, &x332, x330, + x300, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x333, &x334, x332, x302, UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x335, &x336, x334, + 0x0, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x337, x336, x303, + x272); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x338, x336, x305, + x274); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x339, x336, x307, + x276); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x340, x336, x309, + x278); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x341, x336, x311, + x280); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x342, x336, x313, + x282); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x343, x336, x315, + x284); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x344, x336, x317, + x286); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x345, x336, x319, + x288); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x346, x336, x321, + x290); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x347, x336, x323, + x292); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x348, x336, x325, + x294); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x349, x336, x327, + x296); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x350, x336, x329, + x298); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x351, x336, x331, + x300); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x352, x336, x333, + x302); + out1[0] = x337; + out1[1] = x338; + out1[2] = x339; + out1[3] = x340; + out1[4] = x341; + out1[5] = x342; + out1[6] = x343; + out1[7] = x344; + out1[8] = x345; + out1[9] = x346; + out1[10] = x347; + out1[11] = x348; + out1[12] = x349; + out1[13] = x350; + out1[14] = x351; + out1[15] = x352; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery translates a field element into the Montgomery domain. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * eval (from_montgomery out1) mod m = eval arg1 mod m + * 0 ≤ eval out1 < m + * + * Input Bounds: + * arg1: [[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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery( + uint32_t out1[16], const uint32_t arg1[16]) { + 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x12; + uint32_t x13; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x14; + uint32_t x15; + uint32_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint32_t x20; + uint32_t x21; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x22; + uint32_t x23; + uint32_t x24; + uint32_t x25; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x26; + uint32_t x27; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x28; + uint32_t x29; + uint32_t x30; + uint32_t x31; + uint32_t x32; + uint32_t x33; + uint32_t x34; + uint32_t x35; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x36; + uint32_t x37; + uint32_t x38; + uint32_t x39; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x40; + uint32_t x41; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x42; + uint32_t x43; + uint32_t x44; + uint32_t x45; + uint32_t x46; + uint32_t x47; + uint32_t x48; + uint32_t x49; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x50; + uint32_t x51; + uint32_t x52; + uint32_t x53; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x54; + uint32_t x55; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x56; + uint32_t x57; + uint32_t x58; + uint32_t x59; + uint32_t x60; + uint32_t x61; + uint32_t x62; + uint32_t x63; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x64; + uint32_t x65; + uint32_t x66; + uint32_t x67; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x68; + uint32_t x69; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x82; + uint32_t x83; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x84; + uint32_t x85; + uint32_t x86; + uint32_t x87; + uint32_t x88; + uint32_t x89; + uint32_t x90; + uint32_t x91; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x92; + uint32_t x93; + uint32_t x94; + uint32_t x95; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x96; + uint32_t x97; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x98; + uint32_t x99; + uint32_t x100; + uint32_t x101; + uint32_t x102; + uint32_t x103; + uint32_t x104; + uint32_t x105; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x106; + uint32_t x107; + uint32_t x108; + uint32_t x109; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x110; + uint32_t x111; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x112; + uint32_t x113; + uint32_t x114; + uint32_t x115; + uint32_t x116; + uint32_t x117; + uint32_t x118; + uint32_t x119; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x120; + uint32_t x121; + uint32_t x122; + uint32_t x123; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x124; + uint32_t x125; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x126; + uint32_t x127; + uint32_t x128; + uint32_t x129; + uint32_t x130; + uint32_t x131; + uint32_t x132; + uint32_t x133; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x134; + uint32_t x135; + uint32_t x136; + uint32_t x137; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x138; + uint32_t x139; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x140; + uint32_t x141; + uint32_t x142; + uint32_t x143; + uint32_t x144; + uint32_t x145; + uint32_t x146; + uint32_t x147; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x148; + uint32_t x149; + uint32_t x150; + uint32_t x151; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x152; + uint32_t x153; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x154; + uint32_t x155; + uint32_t x156; + uint32_t x157; + uint32_t x158; + uint32_t x159; + uint32_t x160; + uint32_t x161; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x162; + uint32_t x163; + uint32_t x164; + uint32_t x165; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x166; + uint32_t x167; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x168; + uint32_t x169; + uint32_t x170; + uint32_t x171; + uint32_t x172; + uint32_t x173; + uint32_t x174; + uint32_t x175; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x176; + uint32_t x177; + uint32_t x178; + uint32_t x179; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x180; + uint32_t x181; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x182; + uint32_t x183; + uint32_t x184; + uint32_t x185; + uint32_t x186; + uint32_t x187; + uint32_t x188; + uint32_t x189; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x190; + uint32_t x191; + uint32_t x192; + uint32_t x193; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x194; + uint32_t x195; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x196; + uint32_t x197; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x198; + uint32_t x199; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x200; + uint32_t x201; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x202; + uint32_t x203; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x204; + uint32_t x205; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x206; + uint32_t x207; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x208; + uint32_t x209; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x210; + uint32_t x211; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x212; + uint32_t x213; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x214; + uint32_t x215; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x216; + uint32_t x217; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x218; + uint32_t x219; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x220; + uint32_t x221; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x222; + uint32_t x223; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x224; + uint32_t x225; + uint32_t x226; + uint32_t x227; + uint32_t x228; + uint32_t x229; + uint32_t x230; + uint32_t x231; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x232; + uint32_t x233; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x234; + uint32_t x235; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x236; + uint32_t x237; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x238; + uint32_t x239; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x240; + uint32_t x241; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x242; + uint32_t x243; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x244; + uint32_t x245; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x246; + uint32_t x247; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x248; + uint32_t x249; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x250; + uint32_t x251; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x252; + uint32_t x253; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x254; + uint32_t x255; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x256; + uint32_t x257; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x258; + uint32_t x259; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x260; + uint32_t x261; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x262; + uint32_t x263; + uint32_t x264; + uint32_t x265; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x266; + uint32_t x267; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x268; + uint32_t x269; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x270; + uint32_t x271; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x272; + uint32_t x273; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x274; + uint32_t x275; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x276; + uint32_t x277; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x278; + uint32_t x279; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x280; + uint32_t x281; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x282; + uint32_t x283; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x284; + uint32_t x285; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x286; + uint32_t x287; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x288; + uint32_t x289; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x290; + uint32_t x291; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x292; + uint32_t x293; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x294; + uint32_t x295; + uint32_t x296; + uint32_t x297; + uint32_t x298; + uint32_t x299; + uint32_t x300; + uint32_t x301; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x302; + uint32_t x303; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x304; + uint32_t x305; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x306; + uint32_t x307; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x308; + uint32_t x309; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x310; + uint32_t x311; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x312; + uint32_t x313; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x314; + uint32_t x315; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x316; + uint32_t x317; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x318; + uint32_t x319; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x320; + uint32_t x321; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x322; + uint32_t x323; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x324; + uint32_t x325; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x326; + uint32_t x327; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x328; + uint32_t x329; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x330; + uint32_t x331; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x332; + uint32_t x333; + uint32_t x334; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x335; + uint32_t x336; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x337; + uint32_t x338; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x339; + uint32_t x340; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x341; + uint32_t x342; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x343; + uint32_t x344; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x345; + uint32_t x346; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x347; + uint32_t x348; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x349; + uint32_t x350; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x351; + uint32_t x352; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x353; + uint32_t x354; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x355; + uint32_t x356; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x357; + uint32_t x358; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x359; + uint32_t x360; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x361; + uint32_t x362; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x363; + uint32_t x364; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x365; + uint32_t x366; + fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 x367; + uint32_t x368; + uint32_t x369; + uint32_t x370; + uint32_t x371; + uint32_t x372; + uint32_t x373; + uint32_t x374; + uint32_t x375; + uint32_t x376; + uint32_t x377; + uint32_t x378; + uint32_t x379; + uint32_t x380; + uint32_t x381; + uint32_t x382; + uint32_t x383; + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x1, &x2, (arg1[0]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x3, &x4, x1, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x5, &x6, x3, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x7, &x8, x3, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x9, &x10, (arg1[1]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x11, &x12, 0x0, x1, + x7); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x13, &x14, 0x0, ((x12 + x2) + x8), x9); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x15, &x16, x13, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x17, &x18, x15, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x19, &x20, x15, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x21, &x22, 0x0, x6, + x17); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x23, &x24, (arg1[2]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x25, &x26, 0x0, + x13, x19); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x27, &x28, 0x0, ((x26 + (x14 + x10)) + x20), x23); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x29, &x30, x27, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x31, &x32, x29, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x33, &x34, x29, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x35, &x36, 0x0, + (x22 + x18), x31); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x37, &x38, (arg1[3]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x39, &x40, 0x0, + x27, x33); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x41, &x42, 0x0, ((x40 + (x28 + x24)) + x34), x37); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x43, &x44, x41, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x45, &x46, x43, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x47, &x48, x43, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x49, &x50, 0x0, + (x36 + x32), x45); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x51, &x52, (arg1[4]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x53, &x54, 0x0, + x41, x47); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x55, &x56, 0x0, ((x54 + (x42 + x38)) + x48), x51); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x57, &x58, x55, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x59, &x60, x57, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x61, &x62, x57, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x63, &x64, 0x0, + (x50 + x46), x59); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x65, &x66, (arg1[5]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x67, &x68, 0x0, + x55, x61); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x69, &x70, 0x0, ((x68 + (x56 + x52)) + x62), x65); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x71, &x72, x69, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x73, &x74, x71, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x75, &x76, x71, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x77, &x78, 0x0, + (x64 + x60), x73); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x79, &x80, (arg1[6]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x81, &x82, 0x0, + x69, x75); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x83, &x84, 0x0, ((x82 + (x70 + x66)) + x76), x79); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x85, &x86, x83, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x87, &x88, x85, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x89, &x90, x85, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x91, &x92, 0x0, + (x78 + x74), x87); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x93, &x94, (arg1[7]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x95, &x96, 0x0, + x83, x89); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x97, &x98, 0x0, ((x96 + (x84 + x80)) + x90), x93); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x99, &x100, x97, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x101, &x102, x99, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x103, &x104, x99, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x105, &x106, 0x0, + (x92 + x88), x101); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x107, &x108, (arg1[8]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x109, &x110, 0x0, + x97, x103); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x111, &x112, 0x0, ((x110 + (x98 + x94)) + x104), x107); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x113, &x114, x111, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x115, &x116, x113, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x117, &x118, x113, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x119, &x120, 0x0, (x106 + x102), x115); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x121, &x122, (arg1[9]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x123, &x124, 0x0, + x111, x117); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x125, &x126, 0x0, ((x124 + (x112 + x108)) + x118), x121); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x127, &x128, x125, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x129, &x130, x127, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x131, &x132, x127, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x133, &x134, 0x0, (x120 + x116), x129); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x135, &x136, (arg1[10]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x137, &x138, 0x0, + x125, x131); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x139, &x140, 0x0, ((x138 + (x126 + x122)) + x132), x135); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x141, &x142, x139, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x143, &x144, x141, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x145, &x146, x141, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x147, &x148, 0x0, (x134 + x130), x143); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x149, &x150, (arg1[11]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x151, &x152, 0x0, + x139, x145); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x153, &x154, 0x0, ((x152 + (x140 + x136)) + x146), x149); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x155, &x156, x153, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x157, &x158, x155, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x159, &x160, x155, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x161, &x162, 0x0, (x148 + x144), x157); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x163, &x164, (arg1[12]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x165, &x166, 0x0, + x153, x159); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x167, &x168, 0x0, ((x166 + (x154 + x150)) + x160), x163); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x169, &x170, x167, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x171, &x172, x169, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x173, &x174, x169, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x175, &x176, 0x0, (x162 + x158), x171); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x177, &x178, (arg1[13]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x179, &x180, 0x0, + x167, x173); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x181, &x182, 0x0, ((x180 + (x168 + x164)) + x174), x177); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x183, &x184, x181, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x185, &x186, x183, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x187, &x188, x183, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x189, &x190, 0x0, (x176 + x172), x185); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x191, &x192, (arg1[14]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x193, &x194, 0x0, + x181, x187); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x195, &x196, 0x0, ((x194 + (x182 + x178)) + x188), x191); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x197, &x198, x196, + x5, x192); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x199, &x200, x198, + x21, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x201, &x202, x200, + x35, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x203, &x204, x202, + x49, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x205, &x206, x204, + x63, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x207, &x208, x206, + x77, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x209, &x210, x208, + x91, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x211, &x212, x210, + x105, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x213, &x214, x212, + x119, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x215, &x216, x214, + x133, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x217, &x218, x216, + x147, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x219, &x220, x218, + x161, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x221, &x222, x220, + x175, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x223, &x224, x222, + x189, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x225, &x226, x195, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x227, &x228, x225, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x229, &x230, x225, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x231, &x232, 0x0, + x195, x229); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x233, &x234, x232, + x197, x230); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x235, &x236, x234, + x199, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x237, &x238, x236, + x201, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x239, &x240, x238, + x203, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x241, &x242, x240, + x205, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x243, &x244, x242, + x207, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x245, &x246, x244, + x209, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x247, &x248, x246, + x211, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x249, &x250, x248, + x213, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x251, &x252, x250, + x215, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x253, &x254, x252, + x217, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x255, &x256, x254, + x219, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x257, &x258, x256, + x221, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x259, &x260, x258, + x223, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x261, &x262, x260, (x224 + (x190 + x186)), x227); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x263, &x264, (arg1[15]), + UINT16_C(0xc084)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x265, &x266, 0x0, + x233, x263); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x267, &x268, x266, + x235, x264); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x269, &x270, x268, + x237, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x271, &x272, x270, + x239, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x273, &x274, x272, + x241, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x275, &x276, x274, + x243, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x277, &x278, x276, + x245, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x279, &x280, x278, + x247, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x281, &x282, x280, + x249, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x283, &x284, x282, + x251, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x285, &x286, x284, + x253, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x287, &x288, x286, + x255, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x289, &x290, x288, + x257, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x291, &x292, x290, + x259, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x293, &x294, x292, + x261, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x295, &x296, x265, + UINT32_C(0x24e6a171)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x297, &x298, x295, + UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mulx_u32(&x299, &x300, x295, + UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x301, &x302, 0x0, + x265, x299); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x303, &x304, x302, + x267, x300); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x305, &x306, x304, + x269, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x307, &x308, x306, + x271, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x309, &x310, x308, + x273, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x311, &x312, x310, + x275, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x313, &x314, x312, + x277, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x315, &x316, x314, + x279, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x317, &x318, x316, + x281, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x319, &x320, x318, + x283, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x321, &x322, x320, + x285, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x323, &x324, x322, + x287, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x325, &x326, x324, + x289, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x327, &x328, x326, + x291, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32(&x329, &x330, x328, + x293, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_addcarryx_u32( + &x331, &x332, x330, (x294 + (x262 + x228)), x297); + x333 = (x332 + x298); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x334, &x335, 0x0, x303, UINT8_C(0x6f)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x336, &x337, x335, + x305, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x338, &x339, x337, + x307, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x340, &x341, x339, + x309, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x342, &x343, x341, + x311, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x344, &x345, x343, + x313, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x346, &x347, x345, + x315, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x348, &x349, x347, + x317, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x350, &x351, x349, + x319, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x352, &x353, x351, + x321, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x354, &x355, x353, + x323, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x356, &x357, x355, + x325, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x358, &x359, x357, + x327, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x360, &x361, x359, + x329, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x362, &x363, x361, + x331, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32( + &x364, &x365, x363, x333, UINT32_C(0x80000000)); + fiat_id_tc26_gost_3410_2012_512_paramSetB_subborrowx_u32(&x366, &x367, x365, + 0x0, 0x0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x368, x367, x334, + x303); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x369, x367, x336, + x305); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x370, x367, x338, + x307); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x371, x367, x340, + x309); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x372, x367, x342, + x311); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x373, x367, x344, + x313); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x374, x367, x346, + x315); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x375, x367, x348, + x317); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x376, x367, x350, + x319); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x377, x367, x352, + x321); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x378, x367, x354, + x323); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x379, x367, x356, + x325); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x380, x367, x358, + x327); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x381, x367, x360, + x329); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x382, x367, x362, + x331); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x383, x367, x364, + x333); + out1[0] = x368; + out1[1] = x369; + out1[2] = x370; + out1[3] = x371; + out1[4] = x372; + out1[5] = x373; + out1[6] = x374; + out1[7] = x375; + out1[8] = x376; + out1[9] = x377; + out1[10] = x378; + out1[11] = x379; + out1[12] = x380; + out1[13] = x381; + out1[14] = x382; + out1[15] = x383; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_nonzero outputs a single non-zero word if the input is non-zero and zero otherwise. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = 0 ↔ eval (from_montgomery arg1) mod m = 0 + * + * Input Bounds: + * arg1: [[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] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_nonzero( + uint32_t *out1, const uint32_t arg1[16]) { + uint32_t x1; + x1 = + ((arg1[0]) | + ((arg1[1]) | + ((arg1[2]) | + ((arg1[3]) | + ((arg1[4]) | + ((arg1[5]) | + ((arg1[6]) | + ((arg1[7]) | + ((arg1[8]) | + ((arg1[9]) | + ((arg1[10]) | + ((arg1[11]) | + ((arg1[12]) | + ((arg1[13]) | + ((arg1[14]) | ((arg1[15]) | (uint32_t)0x0)))))))))))))))); + *out1 = x1; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_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]] + * 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]] + * 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]] + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz( + uint32_t out1[16], fiat_id_tc26_gost_3410_2012_512_paramSetB_uint1 arg1, + const uint32_t arg2[16], const uint32_t arg3[16]) { + 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; + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x1, arg1, (arg2[0]), + (arg3[0])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x2, arg1, (arg2[1]), + (arg3[1])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x3, arg1, (arg2[2]), + (arg3[2])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x4, arg1, (arg2[3]), + (arg3[3])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x5, arg1, (arg2[4]), + (arg3[4])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x6, arg1, (arg2[5]), + (arg3[5])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x7, arg1, (arg2[6]), + (arg3[6])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x8, arg1, (arg2[7]), + (arg3[7])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x9, arg1, (arg2[8]), + (arg3[8])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32(&x10, arg1, (arg2[9]), + (arg3[9])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32( + &x11, arg1, (arg2[10]), (arg3[10])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32( + &x12, arg1, (arg2[11]), (arg3[11])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32( + &x13, arg1, (arg2[12]), (arg3[12])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32( + &x14, arg1, (arg2[13]), (arg3[13])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32( + &x15, arg1, (arg2[14]), (arg3[14])); + fiat_id_tc26_gost_3410_2012_512_paramSetB_cmovznz_u32( + &x16, arg1, (arg2[15]), (arg3[15])); + 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; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes serializes a field element in the Montgomery domain to bytes in little-endian order. + * Preconditions: + * 0 ≤ eval arg1 < m + * Postconditions: + * out1 = map (λ x, ⌊((eval arg1 mod m) mod 2^(8 * (x + 1))) / 2^(8 * x)⌋) [0..63] + * + * Input Bounds: + * arg1: [[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 ~> 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_paramSetB_to_bytes( + uint8_t out1[64], const uint32_t arg1[16]) { + 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; + uint8_t x18; + uint32_t x19; + uint8_t x20; + uint8_t x21; + uint8_t x22; + uint8_t x23; + uint32_t x24; + uint8_t x25; + uint32_t x26; + uint8_t x27; + uint8_t x28; + uint8_t x29; + uint8_t x30; + uint32_t x31; + uint8_t x32; + uint32_t x33; + uint8_t x34; + uint8_t x35; + uint8_t x36; + uint8_t x37; + uint32_t x38; + uint8_t x39; + uint32_t x40; + uint8_t x41; + uint8_t x42; + uint8_t x43; + uint8_t x44; + uint32_t x45; + uint8_t x46; + uint32_t x47; + uint8_t x48; + uint8_t x49; + uint8_t x50; + uint8_t x51; + uint32_t x52; + uint8_t x53; + uint32_t x54; + uint8_t x55; + uint8_t x56; + uint8_t x57; + uint8_t x58; + uint32_t x59; + uint8_t x60; + uint32_t x61; + uint8_t x62; + uint8_t x63; + uint8_t x64; + uint8_t x65; + uint32_t x66; + uint8_t x67; + uint32_t x68; + uint8_t x69; + uint8_t x70; + uint8_t x71; + uint8_t x72; + uint32_t x73; + uint8_t x74; + uint32_t x75; + uint8_t x76; + uint8_t x77; + uint8_t x78; + uint8_t x79; + uint32_t x80; + uint8_t x81; + uint32_t x82; + uint8_t x83; + uint8_t x84; + uint8_t x85; + uint8_t x86; + uint32_t x87; + uint8_t x88; + uint32_t x89; + uint8_t x90; + uint8_t x91; + uint8_t x92; + uint8_t x93; + uint32_t x94; + uint8_t x95; + uint32_t x96; + uint8_t x97; + uint8_t x98; + uint8_t x99; + uint8_t x100; + uint32_t x101; + uint8_t x102; + uint32_t x103; + uint8_t x104; + uint8_t x105; + uint8_t x106; + uint8_t x107; + uint32_t x108; + uint8_t x109; + uint32_t x110; + uint8_t x111; + uint8_t x112; + uint8_t x113; + uint8_t x114; + uint32_t x115; + uint8_t x116; + uint32_t x117; + uint8_t x118; + uint8_t x119; + uint8_t x120; + uint8_t x121; + uint32_t x122; + uint8_t x123; + uint32_t x124; + uint8_t x125; + uint8_t x126; + uint8_t x127; + x1 = (arg1[15]); + x2 = (arg1[14]); + x3 = (arg1[13]); + x4 = (arg1[12]); + x5 = (arg1[11]); + x6 = (arg1[10]); + x7 = (arg1[9]); + x8 = (arg1[8]); + x9 = (arg1[7]); + x10 = (arg1[6]); + x11 = (arg1[5]); + x12 = (arg1[4]); + x13 = (arg1[3]); + x14 = (arg1[2]); + x15 = (arg1[1]); + x16 = (arg1[0]); + x17 = (x16 >> 8); + x18 = (uint8_t)(x16 & UINT8_C(0xff)); + x19 = (x17 >> 8); + x20 = (uint8_t)(x17 & UINT8_C(0xff)); + x21 = (uint8_t)(x19 >> 8); + x22 = (uint8_t)(x19 & UINT8_C(0xff)); + x23 = (uint8_t)(x21 & UINT8_C(0xff)); + x24 = (x15 >> 8); + x25 = (uint8_t)(x15 & UINT8_C(0xff)); + x26 = (x24 >> 8); + x27 = (uint8_t)(x24 & UINT8_C(0xff)); + x28 = (uint8_t)(x26 >> 8); + x29 = (uint8_t)(x26 & UINT8_C(0xff)); + x30 = (uint8_t)(x28 & UINT8_C(0xff)); + x31 = (x14 >> 8); + x32 = (uint8_t)(x14 & UINT8_C(0xff)); + x33 = (x31 >> 8); + x34 = (uint8_t)(x31 & UINT8_C(0xff)); + x35 = (uint8_t)(x33 >> 8); + x36 = (uint8_t)(x33 & UINT8_C(0xff)); + x37 = (uint8_t)(x35 & UINT8_C(0xff)); + x38 = (x13 >> 8); + x39 = (uint8_t)(x13 & UINT8_C(0xff)); + x40 = (x38 >> 8); + x41 = (uint8_t)(x38 & UINT8_C(0xff)); + x42 = (uint8_t)(x40 >> 8); + x43 = (uint8_t)(x40 & UINT8_C(0xff)); + x44 = (uint8_t)(x42 & UINT8_C(0xff)); + x45 = (x12 >> 8); + x46 = (uint8_t)(x12 & UINT8_C(0xff)); + x47 = (x45 >> 8); + x48 = (uint8_t)(x45 & UINT8_C(0xff)); + x49 = (uint8_t)(x47 >> 8); + x50 = (uint8_t)(x47 & UINT8_C(0xff)); + x51 = (uint8_t)(x49 & UINT8_C(0xff)); + x52 = (x11 >> 8); + x53 = (uint8_t)(x11 & UINT8_C(0xff)); + x54 = (x52 >> 8); + x55 = (uint8_t)(x52 & UINT8_C(0xff)); + x56 = (uint8_t)(x54 >> 8); + x57 = (uint8_t)(x54 & UINT8_C(0xff)); + x58 = (uint8_t)(x56 & UINT8_C(0xff)); + x59 = (x10 >> 8); + x60 = (uint8_t)(x10 & UINT8_C(0xff)); + x61 = (x59 >> 8); + x62 = (uint8_t)(x59 & UINT8_C(0xff)); + x63 = (uint8_t)(x61 >> 8); + x64 = (uint8_t)(x61 & UINT8_C(0xff)); + x65 = (uint8_t)(x63 & UINT8_C(0xff)); + x66 = (x9 >> 8); + x67 = (uint8_t)(x9 & UINT8_C(0xff)); + x68 = (x66 >> 8); + x69 = (uint8_t)(x66 & UINT8_C(0xff)); + x70 = (uint8_t)(x68 >> 8); + x71 = (uint8_t)(x68 & UINT8_C(0xff)); + x72 = (uint8_t)(x70 & UINT8_C(0xff)); + x73 = (x8 >> 8); + x74 = (uint8_t)(x8 & UINT8_C(0xff)); + x75 = (x73 >> 8); + x76 = (uint8_t)(x73 & UINT8_C(0xff)); + x77 = (uint8_t)(x75 >> 8); + x78 = (uint8_t)(x75 & UINT8_C(0xff)); + x79 = (uint8_t)(x77 & UINT8_C(0xff)); + x80 = (x7 >> 8); + x81 = (uint8_t)(x7 & UINT8_C(0xff)); + x82 = (x80 >> 8); + x83 = (uint8_t)(x80 & UINT8_C(0xff)); + x84 = (uint8_t)(x82 >> 8); + x85 = (uint8_t)(x82 & UINT8_C(0xff)); + x86 = (uint8_t)(x84 & UINT8_C(0xff)); + x87 = (x6 >> 8); + x88 = (uint8_t)(x6 & UINT8_C(0xff)); + x89 = (x87 >> 8); + x90 = (uint8_t)(x87 & UINT8_C(0xff)); + x91 = (uint8_t)(x89 >> 8); + x92 = (uint8_t)(x89 & UINT8_C(0xff)); + x93 = (uint8_t)(x91 & UINT8_C(0xff)); + x94 = (x5 >> 8); + x95 = (uint8_t)(x5 & UINT8_C(0xff)); + x96 = (x94 >> 8); + x97 = (uint8_t)(x94 & UINT8_C(0xff)); + x98 = (uint8_t)(x96 >> 8); + x99 = (uint8_t)(x96 & UINT8_C(0xff)); + x100 = (uint8_t)(x98 & UINT8_C(0xff)); + x101 = (x4 >> 8); + x102 = (uint8_t)(x4 & UINT8_C(0xff)); + x103 = (x101 >> 8); + x104 = (uint8_t)(x101 & UINT8_C(0xff)); + x105 = (uint8_t)(x103 >> 8); + x106 = (uint8_t)(x103 & UINT8_C(0xff)); + x107 = (uint8_t)(x105 & UINT8_C(0xff)); + x108 = (x3 >> 8); + x109 = (uint8_t)(x3 & UINT8_C(0xff)); + x110 = (x108 >> 8); + x111 = (uint8_t)(x108 & UINT8_C(0xff)); + x112 = (uint8_t)(x110 >> 8); + x113 = (uint8_t)(x110 & UINT8_C(0xff)); + x114 = (uint8_t)(x112 & UINT8_C(0xff)); + x115 = (x2 >> 8); + x116 = (uint8_t)(x2 & UINT8_C(0xff)); + x117 = (x115 >> 8); + x118 = (uint8_t)(x115 & UINT8_C(0xff)); + x119 = (uint8_t)(x117 >> 8); + x120 = (uint8_t)(x117 & UINT8_C(0xff)); + x121 = (uint8_t)(x119 & UINT8_C(0xff)); + x122 = (x1 >> 8); + x123 = (uint8_t)(x1 & UINT8_C(0xff)); + x124 = (x122 >> 8); + x125 = (uint8_t)(x122 & UINT8_C(0xff)); + x126 = (uint8_t)(x124 >> 8); + x127 = (uint8_t)(x124 & UINT8_C(0xff)); + out1[0] = x18; + out1[1] = x20; + out1[2] = x22; + out1[3] = x23; + out1[4] = x25; + out1[5] = x27; + out1[6] = x29; + out1[7] = x30; + out1[8] = x32; + out1[9] = x34; + out1[10] = x36; + out1[11] = x37; + out1[12] = x39; + out1[13] = x41; + out1[14] = x43; + out1[15] = x44; + out1[16] = x46; + out1[17] = x48; + out1[18] = x50; + out1[19] = x51; + out1[20] = x53; + out1[21] = x55; + out1[22] = x57; + out1[23] = x58; + out1[24] = x60; + out1[25] = x62; + out1[26] = x64; + out1[27] = x65; + out1[28] = x67; + out1[29] = x69; + out1[30] = x71; + out1[31] = x72; + out1[32] = x74; + out1[33] = x76; + out1[34] = x78; + out1[35] = x79; + out1[36] = x81; + out1[37] = x83; + out1[38] = x85; + out1[39] = x86; + out1[40] = x88; + out1[41] = x90; + out1[42] = x92; + out1[43] = x93; + out1[44] = x95; + out1[45] = x97; + out1[46] = x99; + out1[47] = x100; + out1[48] = x102; + out1[49] = x104; + out1[50] = x106; + out1[51] = x107; + out1[52] = x109; + out1[53] = x111; + out1[54] = x113; + out1[55] = x114; + out1[56] = x116; + out1[57] = x118; + out1[58] = x120; + out1[59] = x121; + out1[60] = x123; + out1[61] = x125; + out1[62] = x127; + out1[63] = x126; +} + +/* + * The function fiat_id_tc26_gost_3410_2012_512_paramSetB_from_bytes deserializes a field element in the Montgomery domain from bytes in little-endian order. + * Preconditions: + * 0 ≤ bytes_eval arg1 < m + * Postconditions: + * eval out1 mod m = bytes_eval arg1 mod m + * 0 ≤ eval out1 < 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 ~> 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_paramSetB_from_bytes( + uint32_t out1[16], const uint8_t arg1[64]) { + uint32_t x1; + uint32_t x2; + uint32_t x3; + uint8_t x4; + uint32_t x5; + uint32_t x6; + uint32_t x7; + uint8_t x8; + uint32_t x9; + uint32_t x10; + uint32_t x11; + uint8_t x12; + uint32_t x13; + uint32_t x14; + uint32_t x15; + uint8_t x16; + uint32_t x17; + uint32_t x18; + uint32_t x19; + uint8_t x20; + uint32_t x21; + uint32_t x22; + uint32_t x23; + uint8_t x24; + uint32_t x25; + uint32_t x26; + uint32_t x27; + uint8_t x28; + uint32_t x29; + uint32_t x30; + uint32_t x31; + uint8_t x32; + uint32_t x33; + uint32_t x34; + uint32_t x35; + uint8_t x36; + uint32_t x37; + uint32_t x38; + uint32_t x39; + uint8_t x40; + uint32_t x41; + uint32_t x42; + uint32_t x43; + uint8_t x44; + uint32_t x45; + uint32_t x46; + uint32_t x47; + uint8_t x48; + uint32_t x49; + uint32_t x50; + uint32_t x51; + uint8_t x52; + uint32_t x53; + uint32_t x54; + uint32_t x55; + uint8_t x56; + uint32_t x57; + uint32_t x58; + uint32_t x59; + uint8_t x60; + uint32_t x61; + uint32_t x62; + uint32_t x63; + uint8_t x64; + uint32_t x65; + uint32_t x66; + uint32_t x67; + uint32_t x68; + uint32_t x69; + uint32_t x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + uint32_t x82; + uint32_t x83; + uint32_t x84; + uint32_t x85; + uint32_t x86; + uint32_t x87; + uint32_t x88; + uint32_t x89; + uint32_t x90; + uint32_t x91; + uint32_t x92; + uint32_t x93; + uint32_t x94; + uint32_t x95; + x1 = ((uint32_t)(arg1[63]) << 24); + x2 = ((uint32_t)(arg1[62]) << 16); + x3 = ((uint32_t)(arg1[61]) << 8); + x4 = (arg1[60]); + x5 = ((uint32_t)(arg1[59]) << 24); + x6 = ((uint32_t)(arg1[58]) << 16); + x7 = ((uint32_t)(arg1[57]) << 8); + x8 = (arg1[56]); + x9 = ((uint32_t)(arg1[55]) << 24); + x10 = ((uint32_t)(arg1[54]) << 16); + x11 = ((uint32_t)(arg1[53]) << 8); + x12 = (arg1[52]); + x13 = ((uint32_t)(arg1[51]) << 24); + x14 = ((uint32_t)(arg1[50]) << 16); + x15 = ((uint32_t)(arg1[49]) << 8); + x16 = (arg1[48]); + x17 = ((uint32_t)(arg1[47]) << 24); + x18 = ((uint32_t)(arg1[46]) << 16); + x19 = ((uint32_t)(arg1[45]) << 8); + x20 = (arg1[44]); + x21 = ((uint32_t)(arg1[43]) << 24); + x22 = ((uint32_t)(arg1[42]) << 16); + x23 = ((uint32_t)(arg1[41]) << 8); + x24 = (arg1[40]); + x25 = ((uint32_t)(arg1[39]) << 24); + x26 = ((uint32_t)(arg1[38]) << 16); + x27 = ((uint32_t)(arg1[37]) << 8); + x28 = (arg1[36]); + x29 = ((uint32_t)(arg1[35]) << 24); + x30 = ((uint32_t)(arg1[34]) << 16); + x31 = ((uint32_t)(arg1[33]) << 8); + x32 = (arg1[32]); + x33 = ((uint32_t)(arg1[31]) << 24); + x34 = ((uint32_t)(arg1[30]) << 16); + x35 = ((uint32_t)(arg1[29]) << 8); + x36 = (arg1[28]); + x37 = ((uint32_t)(arg1[27]) << 24); + x38 = ((uint32_t)(arg1[26]) << 16); + x39 = ((uint32_t)(arg1[25]) << 8); + x40 = (arg1[24]); + x41 = ((uint32_t)(arg1[23]) << 24); + x42 = ((uint32_t)(arg1[22]) << 16); + x43 = ((uint32_t)(arg1[21]) << 8); + x44 = (arg1[20]); + x45 = ((uint32_t)(arg1[19]) << 24); + x46 = ((uint32_t)(arg1[18]) << 16); + x47 = ((uint32_t)(arg1[17]) << 8); + x48 = (arg1[16]); + x49 = ((uint32_t)(arg1[15]) << 24); + x50 = ((uint32_t)(arg1[14]) << 16); + x51 = ((uint32_t)(arg1[13]) << 8); + x52 = (arg1[12]); + x53 = ((uint32_t)(arg1[11]) << 24); + x54 = ((uint32_t)(arg1[10]) << 16); + x55 = ((uint32_t)(arg1[9]) << 8); + x56 = (arg1[8]); + x57 = ((uint32_t)(arg1[7]) << 24); + x58 = ((uint32_t)(arg1[6]) << 16); + x59 = ((uint32_t)(arg1[5]) << 8); + x60 = (arg1[4]); + x61 = ((uint32_t)(arg1[3]) << 24); + x62 = ((uint32_t)(arg1[2]) << 16); + x63 = ((uint32_t)(arg1[1]) << 8); + x64 = (arg1[0]); + x65 = (x64 + (x63 + (x62 + x61))); + x66 = (x65 & UINT32_C(0xffffffff)); + x67 = (x4 + (x3 + (x2 + x1))); + x68 = (x8 + (x7 + (x6 + x5))); + x69 = (x12 + (x11 + (x10 + x9))); + x70 = (x16 + (x15 + (x14 + x13))); + x71 = (x20 + (x19 + (x18 + x17))); + x72 = (x24 + (x23 + (x22 + x21))); + x73 = (x28 + (x27 + (x26 + x25))); + x74 = (x32 + (x31 + (x30 + x29))); + x75 = (x36 + (x35 + (x34 + x33))); + x76 = (x40 + (x39 + (x38 + x37))); + x77 = (x44 + (x43 + (x42 + x41))); + x78 = (x48 + (x47 + (x46 + x45))); + x79 = (x52 + (x51 + (x50 + x49))); + x80 = (x56 + (x55 + (x54 + x53))); + x81 = (x60 + (x59 + (x58 + x57))); + x82 = (x81 & UINT32_C(0xffffffff)); + x83 = (x80 & UINT32_C(0xffffffff)); + x84 = (x79 & UINT32_C(0xffffffff)); + x85 = (x78 & UINT32_C(0xffffffff)); + x86 = (x77 & UINT32_C(0xffffffff)); + x87 = (x76 & UINT32_C(0xffffffff)); + x88 = (x75 & UINT32_C(0xffffffff)); + x89 = (x74 & UINT32_C(0xffffffff)); + x90 = (x73 & UINT32_C(0xffffffff)); + x91 = (x72 & UINT32_C(0xffffffff)); + x92 = (x71 & UINT32_C(0xffffffff)); + x93 = (x70 & UINT32_C(0xffffffff)); + x94 = (x69 & UINT32_C(0xffffffff)); + x95 = (x68 & UINT32_C(0xffffffff)); + out1[0] = x66; + out1[1] = x82; + out1[2] = x83; + out1[3] = x84; + out1[4] = x85; + out1[5] = x86; + out1[6] = x87; + out1[7] = x88; + out1[8] = x89; + out1[9] = x90; + out1[10] = x91; + out1[11] = x92; + out1[12] = x93; + out1[13] = x94; + out1[14] = x95; + out1[15] = x67; +} + +/* 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_paramSetB/fe_inv.op3 + * sliding window w=5 + */ +static void fiat_id_tc26_gost_3410_2012_512_paramSetB_inv(fe_t output, + const fe_t t1) { + int i; + /* temporary variables */ + fe_t acc, t13, t3; + + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(acc, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t3, t1, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t13, t3, acc); + for (i = 0; i < 4; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t13, t13, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(acc, t1); + for (i = 0; i < 505; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(acc, acc, t3); + for (i = 0; i < 5; i++) + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(acc, acc); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(output, acc, t13); +} + +/* curve coefficient constants */ + +static const limb_t const_one[16] = { + UINT32_C(0xFFFFFF91), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0x7FFFFFFF)}; + +static const limb_t const_b[16] = { + UINT32_C(0x18A75DD6), UINT32_C(0xDBE748C3), UINT32_C(0x9097BFC1), + UINT32_C(0xC954A780), UINT32_C(0xE2D5A471), UINT32_C(0x6553CD27), + UINT32_C(0x49435CF3), UINT32_C(0xB99B3260), UINT32_C(0x16D2C5E7), + UINT32_C(0xE9EAC8A2), UINT32_C(0x02D0CC51), UINT32_C(0x260B45A1), + UINT32_C(0x6C5BD56D), UINT32_C(0x8636181D), UINT32_C(0x2C5765BC), + UINT32_C(0x638259A1)}; + +/* LUT for scalar multiplication by comb interleaving */ +static const pt_aff_t lut_cmb[14][16] = { + { + {{UINT32_C(0xFFFFFEB3), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), UINT32_C(0xFFFFFFFF), + UINT32_C(0x7FFFFFFF)}, + {UINT32_C(0x2383127B), UINT32_C(0x9F34E17E), UINT32_C(0xCF48CEEA), + UINT32_C(0x4C79D571), UINT32_C(0x494E1BED), UINT32_C(0xA33463BC), + UINT32_C(0x3A5DA27F), UINT32_C(0x9D80747F), UINT32_C(0xC2F4174A), + UINT32_C(0xDCBD09DD), UINT32_C(0x2147B2E0), UINT32_C(0xE8307A8C), + UINT32_C(0xDBCF9AC9), UINT32_C(0xD1D3CCED), UINT32_C(0xE98DEFF1), + UINT32_C(0x778FFEC2)}}, + {{UINT32_C(0xB67DA584), UINT32_C(0xCE514E6B), UINT32_C(0xE19C2094), + UINT32_C(0xEB51443B), UINT32_C(0x9B071A6E), UINT32_C(0xC8E8F54B), + UINT32_C(0xBED2A243), UINT32_C(0x239C53FD), UINT32_C(0x2AE8E157), + UINT32_C(0x67D47B7B), UINT32_C(0x5550826E), UINT32_C(0x046DE3B7), + UINT32_C(0x17723575), UINT32_C(0x2F7DD21E), UINT32_C(0x11E8E247), + UINT32_C(0x0E6EABDD)}, + {UINT32_C(0x48600734), UINT32_C(0xF204F0D6), UINT32_C(0x343D6475), + UINT32_C(0x04B3054C), UINT32_C(0xF7E6D181), UINT32_C(0x707BD9D8), + UINT32_C(0x6B353E20), UINT32_C(0x535CEC32), UINT32_C(0x108C5FE7), + UINT32_C(0xA185FA95), UINT32_C(0xB573367F), UINT32_C(0x7033EBFA), + UINT32_C(0x46552D77), UINT32_C(0xEC54E36B), UINT32_C(0x729C9EBA), + UINT32_C(0x235E6C1A)}}, + {{UINT32_C(0x8B28C0DC), UINT32_C(0xECDCEE63), UINT32_C(0x36AE99A1), + UINT32_C(0xD4E35B40), UINT32_C(0x464A3D2F), UINT32_C(0xDACC813D), + UINT32_C(0xDBAF282E), UINT32_C(0x8D92802A), UINT32_C(0x7D8757F2), + UINT32_C(0x652CFF9C), UINT32_C(0x7F5A8471), UINT32_C(0x2C1BCBD9), + UINT32_C(0x16C3679A), UINT32_C(0x010192E2), UINT32_C(0x7529DB85), + UINT32_C(0x56269496)}, + {UINT32_C(0xD5F89B94), UINT32_C(0x7480BB90), UINT32_C(0x1E46EDE6), + UINT32_C(0xE01FE3D8), UINT32_C(0x4E57E6F5), UINT32_C(0xC1843163), + UINT32_C(0x91C2DF63), UINT32_C(0x5F8C6884), UINT32_C(0x5FA2DC4D), + UINT32_C(0x42E01ED6), UINT32_C(0x8FF5A769), UINT32_C(0x629C95CD), + UINT32_C(0x6EAB4807), UINT32_C(0x0E8C1637), UINT32_C(0x0ABD9BB6), + UINT32_C(0x1C41FB66)}}, + {{UINT32_C(0x6ED32E5F), UINT32_C(0x6B509B4F), UINT32_C(0x67C95F17), + UINT32_C(0xC62AFB25), UINT32_C(0x5CE4762A), UINT32_C(0x352D4B7A), + UINT32_C(0x9AFA6ACC), UINT32_C(0x33135815), UINT32_C(0x06D550B2), + UINT32_C(0x168B5654), UINT32_C(0xB528DF40), UINT32_C(0x254DCCE0), + UINT32_C(0x222C9415), UINT32_C(0x422ADB9A), UINT32_C(0x3D2F923E), + UINT32_C(0x6FC0F2CE)}, + {UINT32_C(0x59359CE7), UINT32_C(0x3CC08723), UINT32_C(0x91A4DC50), + UINT32_C(0x1779C0CD), UINT32_C(0xC8B9922D), UINT32_C(0x1205971E), + UINT32_C(0xC13192A7), UINT32_C(0x199F8198), UINT32_C(0x492DB7AA), + UINT32_C(0xA43FBDBF), UINT32_C(0xE82BEEC8), UINT32_C(0x9E173427), + UINT32_C(0x3850D54E), UINT32_C(0x1E901499), UINT32_C(0xF761EC57), + UINT32_C(0x603774B7)}}, + {{UINT32_C(0x2BDEF3A9), UINT32_C(0x23B79C80), UINT32_C(0xD19A5F2C), + UINT32_C(0x2217119A), UINT32_C(0x56B09A50), UINT32_C(0x49194CE1), + UINT32_C(0x21329201), UINT32_C(0xEE7D88A2), UINT32_C(0xD0BBED28), + UINT32_C(0x1C45A959), UINT32_C(0x780FA0D1), UINT32_C(0x1BA5DAD5), + UINT32_C(0x6959608D), UINT32_C(0x17D7C794), UINT32_C(0x7E4E9B1F), + UINT32_C(0x7DA39423)}, + {UINT32_C(0x47508CA7), UINT32_C(0x435F5C55), UINT32_C(0x516AD549), + UINT32_C(0x84583489), UINT32_C(0x02BAE814), UINT32_C(0x09DDC49D), + UINT32_C(0x260B4D97), UINT32_C(0xCD566B6E), UINT32_C(0xE38DF931), + UINT32_C(0x8C11211E), UINT32_C(0x05D473F8), UINT32_C(0x7D5FC8D0), + UINT32_C(0x865C76F2), UINT32_C(0x48C9D7CD), UINT32_C(0x2A6D5599), + UINT32_C(0x2D451737)}}, + {{UINT32_C(0x29C4EACD), UINT32_C(0x5F8B137B), UINT32_C(0x99075883), + UINT32_C(0x5CB8477C), UINT32_C(0x50A641C4), UINT32_C(0xBC6736A7), + UINT32_C(0x81B0881D), UINT32_C(0xF96B6D0E), UINT32_C(0xE561FC8F), + UINT32_C(0x8E9C2612), UINT32_C(0x284E20B7), UINT32_C(0x8F742744), + UINT32_C(0xD4DD11EE), UINT32_C(0xBC8C5BE7), UINT32_C(0x82B2EF56), + UINT32_C(0x414709E7)}, + {UINT32_C(0x6DF555F2), UINT32_C(0xE4D6BC0A), UINT32_C(0x38EE529F), + UINT32_C(0x916E0A80), UINT32_C(0x3414117E), UINT32_C(0xBBE31273), + UINT32_C(0x3154234A), UINT32_C(0x2D7BF9CD), UINT32_C(0x1852E8EE), + UINT32_C(0x79B9CFA9), UINT32_C(0x1BD9C07A), UINT32_C(0x62653E8C), + UINT32_C(0x7C7AFF7E), UINT32_C(0x35FE04F6), UINT32_C(0xE70AE283), + UINT32_C(0x746C1E87)}}, + {{UINT32_C(0x98366BA5), UINT32_C(0x1F5857A1), UINT32_C(0x414DECAD), + UINT32_C(0x96781D84), UINT32_C(0x66CF983E), UINT32_C(0xB39DD888), + UINT32_C(0xCAC19B5F), UINT32_C(0xDE1050AC), UINT32_C(0x8B2AA408), + UINT32_C(0x5A58BFA8), UINT32_C(0x3C440DED), UINT32_C(0xA0A6E961), + UINT32_C(0xC67D0412), UINT32_C(0xBAAEC3DF), UINT32_C(0x6759674E), + UINT32_C(0x0E37C0E0)}, + {UINT32_C(0x63880D22), UINT32_C(0x1E623E75), UINT32_C(0xF0ACB4B6), + UINT32_C(0x3BE27CF8), UINT32_C(0x4F69642E), UINT32_C(0x5E6ABD4F), + UINT32_C(0x13CADA08), UINT32_C(0x3E92D34D), UINT32_C(0x0127C48B), + UINT32_C(0x56C64429), UINT32_C(0x7F3C5746), UINT32_C(0x620FC35B), + UINT32_C(0xEF94C612), UINT32_C(0x6870F3DE), UINT32_C(0x2606F4A4), + UINT32_C(0x219C5A5A)}}, + {{UINT32_C(0x1625FE00), UINT32_C(0x0AD4ACAA), UINT32_C(0x9BEE03FF), + UINT32_C(0xD7DEE6BB), UINT32_C(0x2E594A2C), UINT32_C(0x72A27D3B), + UINT32_C(0xAAB1C0E5), UINT32_C(0x471EFD78), UINT32_C(0x37857650), + UINT32_C(0xBDE8465E), UINT32_C(0xBD9F5885), UINT32_C(0x1CA721C2), + UINT32_C(0x6073DCEF), UINT32_C(0x361E6F8A), UINT32_C(0x0A7CF8E9), + UINT32_C(0x2BA435E3)}, + {UINT32_C(0x1C6893FA), UINT32_C(0xC7B032BD), UINT32_C(0x09D4E403), + UINT32_C(0xFA9C30E8), UINT32_C(0x20293A47), UINT32_C(0xB03AF5BD), + UINT32_C(0xE008F02D), UINT32_C(0x21EBC61B), UINT32_C(0x73D59E63), + UINT32_C(0x0A50151D), UINT32_C(0x78D260DB), UINT32_C(0x18D1A3F6), + UINT32_C(0x7D79BA96), UINT32_C(0xE8E3C3F4), UINT32_C(0x75A06F31), + UINT32_C(0x51FAED37)}}, + {{UINT32_C(0xE8BCBC8B), UINT32_C(0xECD4B979), UINT32_C(0xF803878F), + UINT32_C(0x7529023C), UINT32_C(0x9A8B8850), UINT32_C(0xAD84E184), + UINT32_C(0xCCF88146), UINT32_C(0xF1E004F8), UINT32_C(0xC194F3F5), + UINT32_C(0x27406240), UINT32_C(0xE366D6B0), UINT32_C(0x175AB72F), + UINT32_C(0x13BBCC48), UINT32_C(0x1A44BC85), UINT32_C(0x12F138C6), + UINT32_C(0x7930F869)}, + {UINT32_C(0x18E4DCD0), UINT32_C(0x1943A865), UINT32_C(0xBCE9F068), + UINT32_C(0x747F6C7C), UINT32_C(0x54D067F7), UINT32_C(0x5A306F64), + UINT32_C(0xEDB2062A), UINT32_C(0xD1A8EF54), UINT32_C(0xA42F21B3), + UINT32_C(0x60E6ACAE), UINT32_C(0x3B2D2C26), UINT32_C(0x9218654F), + UINT32_C(0xE8B2778E), UINT32_C(0xEDE14471), UINT32_C(0x8CEE6931), + UINT32_C(0x7B868D31)}}, + {{UINT32_C(0xB368FF42), UINT32_C(0x0957A4F6), UINT32_C(0x004C85FC), + UINT32_C(0xF9F134FD), UINT32_C(0x19017E1D), UINT32_C(0x3A6B8A47), + UINT32_C(0x7D50A61E), UINT32_C(0x673A45EA), UINT32_C(0x4E18EE86), + UINT32_C(0x4A26DA49), UINT32_C(0xDF0C17A6), UINT32_C(0xAF7DD8FD), + UINT32_C(0x7E7277C3), UINT32_C(0xD24BF75A), UINT32_C(0xBF72613C), + UINT32_C(0x5EF832A1)}, + {UINT32_C(0x3300EE10), UINT32_C(0x2E9C8E08), UINT32_C(0x8763AB4E), + UINT32_C(0xCCA04C06), UINT32_C(0xA6B7D854), UINT32_C(0x5F8DBC28), + UINT32_C(0x4025C222), UINT32_C(0xC6CD3DE8), UINT32_C(0x0DFE44A5), + UINT32_C(0xEFD30CC1), UINT32_C(0x1D7BE70F), UINT32_C(0xC2CD4442), + UINT32_C(0x45CCED5D), UINT32_C(0x06F8D46B), UINT32_C(0x2EF0C653), + UINT32_C(0x2D74D0D6)}}, + {{UINT32_C(0xB26E78B9), UINT32_C(0x151B24DF), UINT32_C(0x0BB1ED51), + UINT32_C(0xC57E8156), UINT32_C(0x9C13974B), UINT32_C(0x57BAADA5), + UINT32_C(0x20CC5AF3), UINT32_C(0x98336FB8), UINT32_C(0x0C790E28), + UINT32_C(0x1DA5BD29), UINT32_C(0x8C6E2539), UINT32_C(0x877AA935), + UINT32_C(0x09AEE9D2), UINT32_C(0x1673F151), UINT32_C(0x0AEE66D8), + UINT32_C(0x519FB4EE)}, + {UINT32_C(0x6AA8D898), UINT32_C(0x2B798F20), UINT32_C(0xBA86008C), + UINT32_C(0xC3DFB5EC), UINT32_C(0x343A8CBF), UINT32_C(0xF780333B), + UINT32_C(0xB6D2056E), UINT32_C(0xFF22F62A), UINT32_C(0x182EF2A6), + UINT32_C(0x97F3006E), UINT32_C(0x3064AC5E), UINT32_C(0x3C5ADB49), + UINT32_C(0xC9D64C70), UINT32_C(0x89C8C032), UINT32_C(0x243DB254), + UINT32_C(0x1A9ABDED)}}, + {{UINT32_C(0x11A375BF), UINT32_C(0xA84B6362), UINT32_C(0x620A2252), + UINT32_C(0x598270A6), UINT32_C(0x13A0EFF8), UINT32_C(0xB183EC9D), + UINT32_C(0xB755AD35), UINT32_C(0x2F7BEBD4), UINT32_C(0xC53EFD69), + UINT32_C(0xEBA848ED), UINT32_C(0x6FAEC1B6), UINT32_C(0x12059A24), + UINT32_C(0x7A290D7B), UINT32_C(0xBA6340A4), UINT32_C(0x63DF6036), + UINT32_C(0x22849432)}, + {UINT32_C(0x2AA27F19), UINT32_C(0x4702BCB6), UINT32_C(0x9B6D66D6), + UINT32_C(0x8DDE4920), UINT32_C(0xBDC2DC5D), UINT32_C(0xC3D4A80B), + UINT32_C(0x691A8BD4), UINT32_C(0xE51AC2D6), UINT32_C(0x8F4211FC), + UINT32_C(0x79485351), UINT32_C(0xA9D14C71), UINT32_C(0x163CD093), + UINT32_C(0x89A0E099), UINT32_C(0x4B38A2B1), UINT32_C(0x9E98054E), + UINT32_C(0x16673245)}}, + {{UINT32_C(0x31FBB6B8), UINT32_C(0xFB441071), UINT32_C(0x42AD947A), + UINT32_C(0x79A8775C), UINT32_C(0xE72D0384), UINT32_C(0xA8C9E486), + UINT32_C(0x840A1DDB), UINT32_C(0x9AF7F292), UINT32_C(0x2DB1B47D), + UINT32_C(0x07E9DB52), UINT32_C(0xBA81EBAD), UINT32_C(0x0698669A), + UINT32_C(0x2DC06B76), UINT32_C(0xA48E2F03), UINT32_C(0x79B9161A), + UINT32_C(0x1B060248)}, + {UINT32_C(0x13C53A83), UINT32_C(0xD47BADE1), UINT32_C(0x68727195), + UINT32_C(0x9C1F4DD0), UINT32_C(0x1293376B), UINT32_C(0x14A2FC60), + UINT32_C(0xDC206930), UINT32_C(0x8A63967E), UINT32_C(0x98E46F8B), + UINT32_C(0x5D9DFE38), UINT32_C(0x85CF7B41), UINT32_C(0x9199E193), + UINT32_C(0x113D1605), UINT32_C(0x3E8DF54D), UINT32_C(0x303789E1), + UINT32_C(0x14D3C202)}}, + {{UINT32_C(0x626710EB), UINT32_C(0x11A727D4), UINT32_C(0x3EB613F1), + UINT32_C(0x38481EC1), UINT32_C(0x5625E925), UINT32_C(0xB824F831), + UINT32_C(0xD03D016B), UINT32_C(0x3FEFE4F7), UINT32_C(0xBF1FE74C), + UINT32_C(0xCE196037), UINT32_C(0xE956E95F), UINT32_C(0xE5518F38), + UINT32_C(0x23E1AE46), UINT32_C(0x84E24D45), UINT32_C(0x3E0F63A1), + UINT32_C(0x29D1DB5A)}, + {UINT32_C(0x4FAE4F08), UINT32_C(0x380BF787), UINT32_C(0xED8B6A7C), + UINT32_C(0xB4E5D477), UINT32_C(0xDC035A0D), UINT32_C(0xABA43C3A), + UINT32_C(0x25134A5C), UINT32_C(0x7B880508), UINT32_C(0x65D5A8CF), + UINT32_C(0x2DB45548), UINT32_C(0x7EDE5F4D), UINT32_C(0x776B78B6), + UINT32_C(0x79297E21), UINT32_C(0x4CB58481), UINT32_C(0x8BE6DBD4), + UINT32_C(0x1E191105)}}, + {{UINT32_C(0x3E98C38E), UINT32_C(0x4D105437), UINT32_C(0xB2E8BE84), + UINT32_C(0xAE4B330C), UINT32_C(0xE16CA9CD), UINT32_C(0xB1A22A3D), + UINT32_C(0x1DAF0B8D), UINT32_C(0xE78B43CB), UINT32_C(0x5CB2B278), + UINT32_C(0x509D9C34), UINT32_C(0x29F9FFFD), UINT32_C(0x9A1342B3), + UINT32_C(0x73A20A3F), UINT32_C(0x8159F452), UINT32_C(0xCA064DAD), + UINT32_C(0x35043A47)}, + {UINT32_C(0x040E7978), UINT32_C(0xE000710E), UINT32_C(0xFAF394BB), + UINT32_C(0x2A1DA585), UINT32_C(0x51524252), UINT32_C(0xF9423EE6), + UINT32_C(0x181ACF8B), UINT32_C(0xD95CE5EF), UINT32_C(0x613B5947), + UINT32_C(0x0097A9B5), UINT32_C(0xAB442CD0), UINT32_C(0x6F088D14), + UINT32_C(0xCAE96A8E), UINT32_C(0x4E225BAC), UINT32_C(0xEE82591B), + UINT32_C(0x753B77B9)}}, + {{UINT32_C(0x43969A20), UINT32_C(0x41D5FEEC), UINT32_C(0x5B57402C), + UINT32_C(0xC7E1DFA2), UINT32_C(0x9C098C51), UINT32_C(0xC43BFFDD), + UINT32_C(0x2954A8F5), UINT32_C(0xAC5E7394), UINT32_C(0xB2E1308E), + UINT32_C(0xD420A646), UINT32_C(0xD7CAE952), UINT32_C(0x13476158), + UINT32_C(0xE7B188C1), UINT32_C(0x6A48FA12), UINT32_C(0xEC53C308), + UINT32_C(0x1CF2DE71)}, + {UINT32_C(0x653FB0FE), UINT32_C(0xAA44CF54), UINT32_C(0x450317F4), + UINT32_C(0x4E05A63D), UINT32_C(0xE3AA21DA), UINT32_C(0x8B59BAA6), + UINT32_C(0x11F7840D), UINT32_C(0xFA3A1CDA), UINT32_C(0x39DB678D), + UINT32_C(0x220F39B6), UINT32_C(0x759CDCA0), UINT32_C(0x6D497E96), + UINT32_C(0x69FA5114), UINT32_C(0x0ADF3F29), UINT32_C(0x15349213), + UINT32_C(0x7836181D)}}, + }, + { + {{UINT32_C(0x5D6F9B3E), UINT32_C(0x1F11E63C), UINT32_C(0xA403A073), + UINT32_C(0x4569A6DA), UINT32_C(0xFE26A8BD), UINT32_C(0x1B585729), + UINT32_C(0x5F41FAA7), UINT32_C(0x2185B4E4), UINT32_C(0x6E99E6E1), + UINT32_C(0x3887350C), UINT32_C(0x99CFFB22), UINT32_C(0x92F63CA5), + UINT32_C(0xA52F6381), UINT32_C(0x94E93270), UINT32_C(0xD0A380FC), + UINT32_C(0x489EE2DF)}, + {UINT32_C(0xB988D87D), UINT32_C(0x45F7836A), UINT32_C(0x337BEFA3), + UINT32_C(0xA44DCA0C), UINT32_C(0x55657370), UINT32_C(0x6F422436), + UINT32_C(0xC16D6547), UINT32_C(0xE5299B33), UINT32_C(0x1E5AAB47), + UINT32_C(0x74A82B2F), UINT32_C(0xCFA92CDB), UINT32_C(0x795A79B9), + UINT32_C(0x4981A557), UINT32_C(0x2EE0F1BE), UINT32_C(0xF5637DEF), + UINT32_C(0x3F7A2AC5)}}, + {{UINT32_C(0x3A0FEA31), UINT32_C(0x78CF079D), UINT32_C(0x6F9069B7), + UINT32_C(0xF5A54C8C), UINT32_C(0xD8C02F14), UINT32_C(0x24C79868), + UINT32_C(0xF36B384F), UINT32_C(0x43DDB340), UINT32_C(0xAD874F73), + UINT32_C(0x8AF55E5E), UINT32_C(0x5856DB97), UINT32_C(0x29E81ACA), + UINT32_C(0x702DF822), UINT32_C(0xB23D0E00), UINT32_C(0x3D029F4B), + UINT32_C(0x58EF4F99)}, + {UINT32_C(0xF26CA389), UINT32_C(0x0B28FA62), UINT32_C(0xECFF83DF), + UINT32_C(0xD3288224), UINT32_C(0x3FD82EB2), UINT32_C(0x5D8F2319), + UINT32_C(0x3D1CB29F), UINT32_C(0x68E3D3C5), UINT32_C(0xEC26BE41), + UINT32_C(0x8DF1A753), UINT32_C(0xC2C7412F), UINT32_C(0xB2074622), + UINT32_C(0x8D5018F7), UINT32_C(0x3A8D3504), UINT32_C(0xFD309F9B), + UINT32_C(0x0B0D2D49)}}, + {{UINT32_C(0x9319D09A), UINT32_C(0xE997DD06), UINT32_C(0xDA1726DB), + UINT32_C(0xF8A2189F), UINT32_C(0x266E7222), UINT32_C(0x3AD35868), + UINT32_C(0x0F42E1A2), UINT32_C(0x0116610C), UINT32_C(0xE93CC223), + UINT32_C(0xF23385AC), UINT32_C(0x8D221503), UINT32_C(0xE06DE4F6), + UINT32_C(0xA36EE6D9), UINT32_C(0x0C963EF8), UINT32_C(0xC297BB1A), + UINT32_C(0x13B707C8)}, + {UINT32_C(0x15B7BEF0), UINT32_C(0x10675424), UINT32_C(0xAB4ECC7E), + UINT32_C(0x9C064518), UINT32_C(0x83247132), UINT32_C(0x324CDF0C), + UINT32_C(0x4CE15206), UINT32_C(0xA9A41620), UINT32_C(0xF0EC82B3), + UINT32_C(0x0641C526), UINT32_C(0xF165B832), UINT32_C(0xD952D947), + UINT32_C(0x56C3BC3C), UINT32_C(0xF6E4EF5B), UINT32_C(0xEF1F3728), + UINT32_C(0x528479A6)}}, + {{UINT32_C(0xA64A2C9B), UINT32_C(0xF84BE5DC), UINT32_C(0xB92B2A9D), + UINT32_C(0xC20AD405), UINT32_C(0x829BA060), UINT32_C(0xC965A45A), + UINT32_C(0xD9F58ABF), UINT32_C(0x5041E47F), UINT32_C(0x9E6AEB4E), + UINT32_C(0x360FB8E2), UINT32_C(0xB995DDB3), UINT32_C(0xDC3B93DE), + UINT32_C(0xFA2C89E5), UINT32_C(0x7FB0501F), UINT32_C(0x9C9B058F), + UINT32_C(0x1883F017)}, + {UINT32_C(0xABF2EABC), UINT32_C(0x9FC09649), UINT32_C(0xD2ADFBBE), + UINT32_C(0x051F9AA2), UINT32_C(0xF2471B9C), UINT32_C(0x000B4689), + UINT32_C(0x23DB9E67), UINT32_C(0x2C21C96A), UINT32_C(0xD9D7C226), + UINT32_C(0x840F2A03), UINT32_C(0x2E660925), UINT32_C(0xE728B070), + UINT32_C(0xA8258042), UINT32_C(0x1ED21D55), UINT32_C(0x8DA89F47), + UINT32_C(0x20DE972E)}}, + {{UINT32_C(0xD3DE31B6), UINT32_C(0x3003BD09), UINT32_C(0x83781375), + UINT32_C(0x6883729E), UINT32_C(0xA7E281ED), UINT32_C(0x882F56AE), + UINT32_C(0x99873D07), UINT32_C(0x936861D3), UINT32_C(0xE329D05A), + UINT32_C(0x68DB9DF0), UINT32_C(0xB6ED5B00), UINT32_C(0xEFD44FB8), + UINT32_C(0xDE7AFD7D), UINT32_C(0x095DF018), UINT32_C(0x31FEE4D2), + UINT32_C(0x11DD7E74)}, + {UINT32_C(0x052E3502), UINT32_C(0x59256A82), UINT32_C(0x967C4F10), + UINT32_C(0xB12A68CD), UINT32_C(0xF921E058), UINT32_C(0xF56E1410), + UINT32_C(0xD9721852), UINT32_C(0xF7E2CED1), UINT32_C(0xDE8CBE99), + UINT32_C(0xE62F6371), UINT32_C(0xBDCF5383), UINT32_C(0x51BB6086), + UINT32_C(0x05F1C9EF), UINT32_C(0xDE865C7F), UINT32_C(0x59C9DB82), + UINT32_C(0x2F4D471E)}}, + {{UINT32_C(0x60A83A69), UINT32_C(0x5238E20B), UINT32_C(0x241F9EE4), + UINT32_C(0xE8ED22D8), UINT32_C(0xC44B4D6B), UINT32_C(0x94609C9F), + UINT32_C(0x738B047F), UINT32_C(0x8CB4F484), UINT32_C(0x3A311894), + UINT32_C(0x1DA03776), UINT32_C(0xFFEDBEDE), UINT32_C(0x3B2301D7), + UINT32_C(0xC28BFA7B), UINT32_C(0xBE0D9731), UINT32_C(0x8E73852C), + UINT32_C(0x03E672B7)}, + {UINT32_C(0xAA676638), UINT32_C(0xA1A4A97D), UINT32_C(0x473A0CAB), + UINT32_C(0x1CC2C685), UINT32_C(0x2E95739F), UINT32_C(0x31FE1138), + UINT32_C(0x090C8025), UINT32_C(0x090AEB0D), UINT32_C(0x645B652E), + UINT32_C(0x9F0A7073), UINT32_C(0xE83798BD), UINT32_C(0xC03ABF85), + UINT32_C(0x48F4C4C3), UINT32_C(0x71FBC2D7), UINT32_C(0x0D38C5BA), + UINT32_C(0x56AE0E1E)}}, + {{UINT32_C(0xF2C2C6C1), UINT32_C(0xDAFDB67C), UINT32_C(0xCF3D93C2), + UINT32_C(0xFD6B132E), UINT32_C(0xAE365613), UINT32_C(0xA6FD14BD), + UINT32_C(0x2B04AD13), UINT32_C(0x0B5A2A4A), UINT32_C(0x36B30288), + UINT32_C(0x2AA0470A), UINT32_C(0x2A2BB583), UINT32_C(0xBC984938), + UINT32_C(0x2DE94268), UINT32_C(0xC0520099), UINT32_C(0x49E1A2C3), + UINT32_C(0x2CD5FBBB)}, + {UINT32_C(0xAAD935D9), UINT32_C(0x082C8F94), UINT32_C(0x51A9454D), + UINT32_C(0x20AECE5C), UINT32_C(0x19E2401F), UINT32_C(0x5BE24C7E), + UINT32_C(0xA327A3BB), UINT32_C(0x7BECBAF1), UINT32_C(0xB6300E64), + UINT32_C(0x39E76F20), UINT32_C(0x9CBC4DCE), UINT32_C(0x5D151BA7), + UINT32_C(0xB5D04C2A), UINT32_C(0x07726284), UINT32_C(0xB721A54D), + UINT32_C(0x4D8BD241)}}, + {{UINT32_C(0x9BB85232), UINT32_C(0xD28B4A8E), UINT32_C(0xCAD53584), + UINT32_C(0x4F965F03), UINT32_C(0xDD1B0F12), UINT32_C(0xDAE3617B), + UINT32_C(0x6777B034), UINT32_C(0xDB8660B3), UINT32_C(0x5F952B6A), + UINT32_C(0xC67184DD), UINT32_C(0xCE065AD2), UINT32_C(0x0ADCC669), + UINT32_C(0x77CE4665), UINT32_C(0x1FC9CB46), UINT32_C(0x2234474A), + UINT32_C(0x0A01B64D)}, + {UINT32_C(0x1D915F94), UINT32_C(0x0A749E82), UINT32_C(0x425F6ECA), + UINT32_C(0xF0D212C9), UINT32_C(0x1281CD10), UINT32_C(0x0C23D014), + UINT32_C(0x29DB5FC8), UINT32_C(0x0C933FD4), UINT32_C(0xBA5D8406), + UINT32_C(0x80DDA2EF), UINT32_C(0x338183C4), UINT32_C(0x8C1402D5), + UINT32_C(0xD4B5A7F9), UINT32_C(0x6E06C3E2), UINT32_C(0x8506CA5C), + UINT32_C(0x64E3E1AB)}}, + {{UINT32_C(0xC94EA8D3), UINT32_C(0xAC11D879), UINT32_C(0x1F28B33F), + UINT32_C(0xDD8B6BA3), UINT32_C(0xAEEAD88D), UINT32_C(0x647E69AD), + UINT32_C(0x3933567E), UINT32_C(0xB49B31E1), UINT32_C(0xEE7A3136), + UINT32_C(0xBB12FE39), UINT32_C(0xC80837A7), UINT32_C(0x28FF74A3), + UINT32_C(0xB75677A8), UINT32_C(0x0A932C81), UINT32_C(0xC29F7F54), + UINT32_C(0x53D93D35)}, + {UINT32_C(0x3AC6D6AE), UINT32_C(0x28497194), UINT32_C(0x02D7F721), + UINT32_C(0x220B50C7), UINT32_C(0xC1FC3346), UINT32_C(0xDA33488C), + UINT32_C(0xF9ED4655), UINT32_C(0xDD86F1EC), UINT32_C(0x632DB517), + UINT32_C(0xAC1853B2), UINT32_C(0x6F0C3545), UINT32_C(0x3736EA46), + UINT32_C(0x2D45B919), UINT32_C(0x3D92A778), UINT32_C(0x3D09DB84), + UINT32_C(0x5D9F5674)}}, + {{UINT32_C(0x9AF99589), UINT32_C(0x00D30167), UINT32_C(0xC5B73D12), + UINT32_C(0x0B5213F3), UINT32_C(0x39E67DBF), UINT32_C(0x8A5A80AD), + UINT32_C(0xF837F8F4), UINT32_C(0xE2C58969), UINT32_C(0xD4EE1D6C), + UINT32_C(0x9DDF8923), UINT32_C(0x33DF50BB), UINT32_C(0x1AE3E0AF), + UINT32_C(0x4E518813), UINT32_C(0x7FBAA73B), UINT32_C(0x5F7BB71D), + UINT32_C(0x1CE6C9B6)}, + {UINT32_C(0x66EB4A4E), UINT32_C(0xB12B057D), UINT32_C(0x382599E5), + UINT32_C(0x1C88E248), UINT32_C(0x4E5081A6), UINT32_C(0x5384C3E8), + UINT32_C(0x9E4ABC53), UINT32_C(0xB7992A1C), UINT32_C(0x044BF086), + UINT32_C(0xC0582520), UINT32_C(0xA7DB6B58), UINT32_C(0xE14418EB), + UINT32_C(0xC31464E1), UINT32_C(0x312673AD), UINT32_C(0x5FEAD6E3), + UINT32_C(0x27DEAEFF)}}, + {{UINT32_C(0xADE2EA17), UINT32_C(0x55C37C50), UINT32_C(0x4F0C5622), + UINT32_C(0x1E159654), UINT32_C(0xF2BD8529), UINT32_C(0x6C96793C), + UINT32_C(0x5AF8E077), UINT32_C(0x2B562419), UINT32_C(0x52A39000), + UINT32_C(0x47F6A019), UINT32_C(0x163EFA85), UINT32_C(0xC364F4D4), + UINT32_C(0x58BE9780), UINT32_C(0xD3116C33), UINT32_C(0x9F098FF2), + UINT32_C(0x4DBED741)}, + {UINT32_C(0x486D49D8), UINT32_C(0xB0DD4831), UINT32_C(0x75913B1C), + UINT32_C(0x84A0C549), UINT32_C(0x3E2FA892), UINT32_C(0xB4A79326), + UINT32_C(0xF8E1FCD2), UINT32_C(0x9E24FB33), UINT32_C(0xBB163DE8), + UINT32_C(0xE9E35346), UINT32_C(0x59EA0DF0), UINT32_C(0x04B20FA1), + UINT32_C(0xB8742A03), UINT32_C(0xB4D02BC4), UINT32_C(0x6C2841D9), + UINT32_C(0x081FA037)}}, + {{UINT32_C(0xFBA142D2), UINT32_C(0x514F4ACB), UINT32_C(0x94E5F474), + UINT32_C(0x996B6E03), UINT32_C(0xCE24CA53), UINT32_C(0x5223E730), + UINT32_C(0x4F5B06A0), UINT32_C(0x527581EA), UINT32_C(0x6A33B429), + UINT32_C(0x31E6DD1A), UINT32_C(0xF6375ACD), UINT32_C(0x93A4E1C1), + UINT32_C(0x949ED4F7), UINT32_C(0x6C726FF3), UINT32_C(0xF8F882F8), + UINT32_C(0x4E416E72)}, + {UINT32_C(0x2FD16999), UINT32_C(0x26FEC864), UINT32_C(0xABA0E3A7), + UINT32_C(0x41DF4A57), UINT32_C(0xB4FAF8AC), UINT32_C(0x15E54D3F), + UINT32_C(0x6F3F282A), UINT32_C(0xE4318BDC), UINT32_C(0xF014698B), + UINT32_C(0x07C320CD), UINT32_C(0x3468CBCE), UINT32_C(0x71B73830), + UINT32_C(0xD640CFD9), UINT32_C(0x1FD1AF59), UINT32_C(0xD34059EF), + UINT32_C(0x0CF151AE)}}, + {{UINT32_C(0xA2B3DF22), UINT32_C(0xB7107CE7), UINT32_C(0x90B45D70), + UINT32_C(0xC1A4E08B), UINT32_C(0x5E20257F), UINT32_C(0xC86AFB66), + UINT32_C(0x11CE1970), UINT32_C(0xDD33CC96), UINT32_C(0x5F20F903), + UINT32_C(0x44C20C48), UINT32_C(0x936A4522), UINT32_C(0x87FECE7F), + UINT32_C(0x42105DEA), UINT32_C(0x867932E9), UINT32_C(0x47E2F4AB), + UINT32_C(0x31AEE1F5)}, + {UINT32_C(0x55B1D8A3), UINT32_C(0x4CE020DF), UINT32_C(0x9B33E4D6), + UINT32_C(0x5841BB8C), UINT32_C(0x07E5C052), UINT32_C(0x99C6EF84), + UINT32_C(0xBB139F7B), UINT32_C(0x0F6F0DEF), UINT32_C(0x366377C5), + UINT32_C(0x5E608798), UINT32_C(0x101AFF93), UINT32_C(0xDE403CF3), + UINT32_C(0x4B69DBFC), UINT32_C(0x164B26D1), UINT32_C(0x46229B9E), + UINT32_C(0x190A8766)}}, + {{UINT32_C(0x85A61975), UINT32_C(0xAC7B1FA1), UINT32_C(0x0A3C0E98), + UINT32_C(0x975ACE54), UINT32_C(0x173A29D7), UINT32_C(0xB80D922D), + UINT32_C(0x955E0187), UINT32_C(0x71AA4F0C), UINT32_C(0x3556BA4D), + UINT32_C(0xDB3716B9), UINT32_C(0x248C6ECE), UINT32_C(0x81E375E0), + UINT32_C(0x6AFD16A4), UINT32_C(0x4CCE9787), UINT32_C(0x03564374), + UINT32_C(0x67A717E8)}, + {UINT32_C(0xE94E08C5), UINT32_C(0xE0FD3F7D), UINT32_C(0x71CA98AD), + UINT32_C(0xDA2A5872), UINT32_C(0xBA15DEF3), UINT32_C(0x34A8EAD7), + UINT32_C(0xC8EE8AC0), UINT32_C(0xD83A9987), UINT32_C(0xD9CE22C6), + UINT32_C(0x64167A82), UINT32_C(0xE859A064), UINT32_C(0x7EE988ED), + UINT32_C(0x603E188F), UINT32_C(0xD8B9D231), UINT32_C(0x0248F567), + UINT32_C(0x40C99266)}}, + {{UINT32_C(0x387928A0), UINT32_C(0x4059BE67), UINT32_C(0x1412407D), + UINT32_C(0x5063C31E), UINT32_C(0xC37FB4AD), UINT32_C(0x78ABE79B), + UINT32_C(0x0DF5F4D6), UINT32_C(0xA9A4E76A), UINT32_C(0xF0C3C9C8), + UINT32_C(0x1F4CCCFC), UINT32_C(0xBB2D774F), UINT32_C(0x44A6D446), + UINT32_C(0x4991F3D4), UINT32_C(0x1B77494E), UINT32_C(0xC5908739), + UINT32_C(0x41F3A74C)}, + {UINT32_C(0xC6B26A88), UINT32_C(0xB371AB6C), UINT32_C(0x454963FE), + UINT32_C(0x01E7AD15), UINT32_C(0x43898DC2), UINT32_C(0x12A6652C), + UINT32_C(0x1EE1BBD9), UINT32_C(0xC9CFD8BA), UINT32_C(0xC5437711), + UINT32_C(0x22037206), UINT32_C(0x062E81FD), UINT32_C(0x327F948D), + UINT32_C(0x9C87B698), UINT32_C(0xA2FF4F46), UINT32_C(0x4EB0808E), + UINT32_C(0x1E83A7F9)}}, + {{UINT32_C(0xB80F91DF), UINT32_C(0xE2F16272), UINT32_C(0xB186EBD1), + UINT32_C(0xA0265684), UINT32_C(0x2E7D6A85), UINT32_C(0x207DAD69), + UINT32_C(0xF27F03D4), UINT32_C(0xEFABE500), UINT32_C(0x0244072F), + UINT32_C(0xEDD0F81D), UINT32_C(0x944AEDEA), UINT32_C(0x4CA26C63), + UINT32_C(0xE874F15F), UINT32_C(0xD8D01D46), UINT32_C(0x5A1130AE), + UINT32_C(0x73E39EED)}, + {UINT32_C(0x0E5EC45F), UINT32_C(0xED9953FA), UINT32_C(0xB4D672DA), + UINT32_C(0x0F62DDD4), UINT32_C(0x89507053), UINT32_C(0x5115FE6F), + UINT32_C(0x8354B66C), UINT32_C(0x58968A29), UINT32_C(0x72ADF8E8), + UINT32_C(0xB37024D5), UINT32_C(0x4D98186B), UINT32_C(0xD7EC1D4A), + UINT32_C(0x7F418AC8), UINT32_C(0xB5B41AD6), UINT32_C(0x68B72616), + UINT32_C(0x2C0959C5)}}, + }, + { + {{UINT32_C(0x99EF1F4E), UINT32_C(0x1DD33DD5), UINT32_C(0x3CB93CF3), + UINT32_C(0x2F2951AF), UINT32_C(0x98F20535), UINT32_C(0x7BB75D57), + UINT32_C(0xBF95DDDE), UINT32_C(0x64C36788), UINT32_C(0x5E211976), + UINT32_C(0x74B787C9), UINT32_C(0xBE8D9E4F), UINT32_C(0xB464F818), + UINT32_C(0x91BEB188), UINT32_C(0x2631F721), UINT32_C(0x5EC2BFD7), + UINT32_C(0x3581CB61)}, + {UINT32_C(0xC41A6EF1), UINT32_C(0x56A35D67), UINT32_C(0xF69A3D49), + UINT32_C(0x5895E76E), UINT32_C(0x8B97FDA2), UINT32_C(0x03192D2F), + UINT32_C(0xA0A94FA9), UINT32_C(0x11240C0B), UINT32_C(0xBDDB31E7), + UINT32_C(0x4DC27F38), UINT32_C(0x69A0D11A), UINT32_C(0x038AE33D), + UINT32_C(0x857974B5), UINT32_C(0x9F3A13EE), UINT32_C(0x0222E516), + UINT32_C(0x2ACA765E)}}, + {{UINT32_C(0xD2421565), UINT32_C(0xFA06EFB5), UINT32_C(0x8AB1719F), + UINT32_C(0xC199817D), UINT32_C(0x48C3D0C4), UINT32_C(0x44325F2F), + UINT32_C(0x5A80BBEF), UINT32_C(0xDD6C1165), UINT32_C(0x02A61986), + UINT32_C(0x30791924), UINT32_C(0x3A7E4B1E), UINT32_C(0xEBD53E2A), + UINT32_C(0xC7AB55DB), UINT32_C(0xDD3E7657), UINT32_C(0x7A09B71B), + UINT32_C(0x43EA2DB2)}, + {UINT32_C(0x0A3AE7D5), UINT32_C(0x9002748E), UINT32_C(0x5B23AE62), + UINT32_C(0x0590F7C6), UINT32_C(0x4A2305B0), UINT32_C(0x44EE4FA6), + UINT32_C(0xABA335D8), UINT32_C(0x914591BD), UINT32_C(0xAB32FC4D), + UINT32_C(0x5888289F), UINT32_C(0x6E19B810), UINT32_C(0xA5FED847), + UINT32_C(0x17DB4A48), UINT32_C(0x255C3F99), UINT32_C(0x6F25750A), + UINT32_C(0x0431EEB8)}}, + {{UINT32_C(0xD0A38E64), UINT32_C(0xB398FF44), UINT32_C(0x05E41904), + UINT32_C(0x5FBAD7B9), UINT32_C(0x357B82CD), UINT32_C(0xBA57597B), + UINT32_C(0xA929E6BC), UINT32_C(0x18BE4419), UINT32_C(0xA98B452D), + UINT32_C(0x3F3F6D35), UINT32_C(0x58D546DA), UINT32_C(0x27425C5F), + UINT32_C(0xC446022B), UINT32_C(0x61A1BBDA), UINT32_C(0x689D15AF), + UINT32_C(0x3EA60775)}, + {UINT32_C(0x3F8C1B93), UINT32_C(0xDD097042), UINT32_C(0x31E09914), + UINT32_C(0x951AAC56), UINT32_C(0x647CCFAC), UINT32_C(0x99C77D0F), + UINT32_C(0x6102DEE7), UINT32_C(0xF3CB5C7A), UINT32_C(0xF9484E59), + UINT32_C(0x2C1CAACB), UINT32_C(0x405766AC), UINT32_C(0x7EBD7135), + UINT32_C(0xB0C58371), UINT32_C(0x267C325C), UINT32_C(0xC2F52776), + UINT32_C(0x48FDF94D)}}, + {{UINT32_C(0x4EE6EE71), UINT32_C(0xF6442788), UINT32_C(0xC09D8FAF), + UINT32_C(0x49D6F157), UINT32_C(0x3C93BF65), UINT32_C(0x159F7AA2), + UINT32_C(0x0B5464C4), UINT32_C(0x992387CF), UINT32_C(0xDEDA026E), + UINT32_C(0xFC15173B), UINT32_C(0xC989FD74), UINT32_C(0x90B860E6), + UINT32_C(0x2E98CC2D), UINT32_C(0xCC08BC0C), UINT32_C(0xC85BC472), + UINT32_C(0x089D2D48)}, + {UINT32_C(0x3953E507), UINT32_C(0x9087C746), UINT32_C(0x90F97B85), + UINT32_C(0x54F480A3), UINT32_C(0x9F9CC5D0), UINT32_C(0x83D61993), + UINT32_C(0xC1970015), UINT32_C(0x0C55DE44), UINT32_C(0xDF669193), + UINT32_C(0xC45D5EA1), UINT32_C(0xFDCF23AB), UINT32_C(0x5DEFF1E7), + UINT32_C(0x2A211F3D), UINT32_C(0x2B38D479), UINT32_C(0x3E31284F), + UINT32_C(0x09927925)}}, + {{UINT32_C(0xC38EFF1A), UINT32_C(0x30454C23), UINT32_C(0xFEC8424E), + UINT32_C(0x706FD470), UINT32_C(0x33467A08), UINT32_C(0xA2163197), + UINT32_C(0x80E6DB64), UINT32_C(0x7C8A4D43), UINT32_C(0xE9AB850B), + UINT32_C(0x505D89BF), UINT32_C(0x5E8DF0CB), UINT32_C(0xC10CFEFF), + UINT32_C(0x16304B39), UINT32_C(0x3EB45DF7), UINT32_C(0x527C325B), + UINT32_C(0x3AAE23FE)}, + {UINT32_C(0xC153DA5D), UINT32_C(0x65DBB826), UINT32_C(0xFFCCCC80), + UINT32_C(0xB8EC2676), UINT32_C(0x1C8BA8C2), UINT32_C(0x4538FBAB), + UINT32_C(0x66FD20CA), UINT32_C(0x6FA94E52), UINT32_C(0xA9B7513F), + UINT32_C(0x480D857E), UINT32_C(0x82814908), UINT32_C(0xDB1C611C), + UINT32_C(0x53F81AA5), UINT32_C(0x0F1F21FF), UINT32_C(0xE1A47218), + UINT32_C(0x20696D2D)}}, + {{UINT32_C(0x7AB6E8D8), UINT32_C(0xF31AA622), UINT32_C(0x686BB479), + UINT32_C(0x3D12F32B), UINT32_C(0x3BF6E8F8), UINT32_C(0xACA48C8A), + UINT32_C(0xFCECFCC0), UINT32_C(0x39D4F322), UINT32_C(0xC8BBCADE), + UINT32_C(0xCBD2E493), UINT32_C(0x5C695155), UINT32_C(0x18E2A8E7), + UINT32_C(0xDF022D32), UINT32_C(0x4047ED16), UINT32_C(0xCD6CDB7C), + UINT32_C(0x1040565E)}, + {UINT32_C(0x64515BD6), UINT32_C(0x1B72EA47), UINT32_C(0x9320C9CB), + UINT32_C(0x0DC58AE8), UINT32_C(0x5310CDBD), UINT32_C(0xEE53907B), + UINT32_C(0x54FE7719), UINT32_C(0x7C2C62A1), UINT32_C(0x8AE9C75E), + UINT32_C(0xA0415080), UINT32_C(0x1E8A0123), UINT32_C(0x2BFC3780), + UINT32_C(0xCE6823AD), UINT32_C(0xBBCB26FE), UINT32_C(0xD61B79A7), + UINT32_C(0x5E4B59A0)}}, + {{UINT32_C(0x90C0C1CA), UINT32_C(0x8C93F975), UINT32_C(0x8F518A16), + UINT32_C(0x0871A901), UINT32_C(0x964CACE1), UINT32_C(0x6477E523), + UINT32_C(0xA77046AC), UINT32_C(0xE52D22C8), UINT32_C(0xF9911C69), + UINT32_C(0x4FE86722), UINT32_C(0x0E21642C), UINT32_C(0x8B03B196), + UINT32_C(0xEEA31DF9), UINT32_C(0xDD3523EF), UINT32_C(0xD896AE4F), + UINT32_C(0x4D4EDD43)}, + {UINT32_C(0xB8CB58A3), UINT32_C(0xEB5C2968), UINT32_C(0x9AF9580A), + UINT32_C(0x5C6C5B63), UINT32_C(0x3A166247), UINT32_C(0x20759CEB), + UINT32_C(0x0F964024), UINT32_C(0x812FBE1B), UINT32_C(0x816BFC2C), + UINT32_C(0xBB295EBA), UINT32_C(0x0BC4C607), UINT32_C(0x35525626), + UINT32_C(0x7D134609), UINT32_C(0x411799ED), UINT32_C(0x8615FBAA), + UINT32_C(0x7ECBDA12)}}, + {{UINT32_C(0xE7C6C149), UINT32_C(0x45EB69B3), UINT32_C(0xF40D6D9C), + UINT32_C(0x9D414F65), UINT32_C(0x6AD70201), UINT32_C(0x3FC4D2A6), + UINT32_C(0x2E2EB20A), UINT32_C(0x039F56D2), UINT32_C(0xCE4F7AB7), + UINT32_C(0xAE25D395), UINT32_C(0x1B640F4F), UINT32_C(0xD69AE851), + UINT32_C(0xCF08596A), UINT32_C(0x912BA30C), UINT32_C(0xFB7DA74A), + UINT32_C(0x7C552E1C)}, + {UINT32_C(0x298071AC), UINT32_C(0x57F7B3CC), UINT32_C(0x5029FCFB), + UINT32_C(0x7B38B186), UINT32_C(0xDBD1AFDA), UINT32_C(0x43D0A21D), + UINT32_C(0xCFDCE1D5), UINT32_C(0x2165A125), UINT32_C(0x099E931C), + UINT32_C(0xC2422D76), UINT32_C(0xD220528D), UINT32_C(0x3940B3F9), + UINT32_C(0x5892DDF1), UINT32_C(0xA530E1E0), UINT32_C(0xC5EDB806), + UINT32_C(0x5D1060BB)}}, + {{UINT32_C(0xDA19A7BF), UINT32_C(0x03C39CB0), UINT32_C(0x35061C5A), + UINT32_C(0x9227C957), UINT32_C(0xE6733C8E), UINT32_C(0xB86AE697), + UINT32_C(0x1D91D056), UINT32_C(0x4790AB41), UINT32_C(0x91944712), + UINT32_C(0x82599E6E), UINT32_C(0x2126986F), UINT32_C(0xE6EEAB30), + UINT32_C(0x4C7C86DD), UINT32_C(0xF6CF6770), UINT32_C(0x81C7F520), + UINT32_C(0x0962C8E0)}, + {UINT32_C(0x3E672910), UINT32_C(0x7275701A), UINT32_C(0x555D4EAA), + UINT32_C(0xCC253D25), UINT32_C(0x0F307D6F), UINT32_C(0xC87804A5), + UINT32_C(0x5E6E364D), UINT32_C(0xA6C40269), UINT32_C(0x9DE73155), + UINT32_C(0x5A4DB577), UINT32_C(0x45B03B16), UINT32_C(0x8513BC05), + UINT32_C(0x5CB1A5DF), UINT32_C(0x7EDB8B9F), UINT32_C(0xD4905C9B), + UINT32_C(0x5686C42A)}}, + {{UINT32_C(0xC1288660), UINT32_C(0x1B9368C4), UINT32_C(0x3BCEFEDB), + UINT32_C(0x5F83CD35), UINT32_C(0xC33CD356), UINT32_C(0xB4656091), + UINT32_C(0x4920232F), UINT32_C(0x2284D907), UINT32_C(0x95B4CBCA), + UINT32_C(0x87816B06), UINT32_C(0xEF2D4546), UINT32_C(0xA35A7191), + UINT32_C(0x296E871A), UINT32_C(0xF9E71B1D), UINT32_C(0x5330AF13), + UINT32_C(0x72A7B9C3)}, + {UINT32_C(0x401BE940), UINT32_C(0xAC61BC6F), UINT32_C(0x0DD2350E), + UINT32_C(0x0634D9D7), UINT32_C(0x0CE45A7C), UINT32_C(0xE27626F0), + UINT32_C(0x3493FA74), UINT32_C(0x9B38569F), UINT32_C(0x6EC9DC13), + UINT32_C(0x3F23C703), UINT32_C(0x9C62D952), UINT32_C(0x8BF8FF12), + UINT32_C(0x58132258), UINT32_C(0x5D53A2D2), UINT32_C(0x33A57773), + UINT32_C(0x1FC830A5)}}, + {{UINT32_C(0x0F294E33), UINT32_C(0xAE58A3B9), UINT32_C(0xAEF8F84C), + UINT32_C(0xF12E0FC4), UINT32_C(0x649D16FF), UINT32_C(0x78C5BDDE), + UINT32_C(0x8827C75F), UINT32_C(0x12645CA1), UINT32_C(0x7F97ABED), + UINT32_C(0x1288C566), UINT32_C(0xC1E2781E), UINT32_C(0x0CAD8E5D), + UINT32_C(0xBC92FF24), UINT32_C(0x24B69A1D), UINT32_C(0x545221B2), + UINT32_C(0x7068305D)}, + {UINT32_C(0x40F6201C), UINT32_C(0x7A9A3F7C), UINT32_C(0x5EFACD4C), + UINT32_C(0x5B7E5FA2), UINT32_C(0xD6275627), UINT32_C(0x85FACB2E), + UINT32_C(0x5BBE856B), UINT32_C(0xDD0FBA63), UINT32_C(0xB2E456FD), + UINT32_C(0x030826B1), UINT32_C(0x5F898479), UINT32_C(0x0FF397E8), + UINT32_C(0xBFAE4984), UINT32_C(0x68ECAA4E), UINT32_C(0xCAC01FD8), + UINT32_C(0x4EB40475)}}, + {{UINT32_C(0x2BC4C766), UINT32_C(0x141804F1), UINT32_C(0xC8FB07C1), + UINT32_C(0xD84A76DA), UINT32_C(0xC83676A9), UINT32_C(0x29376B5B), + UINT32_C(0x3749490C), UINT32_C(0x3D3A00EB), UINT32_C(0xC5F439B6), + UINT32_C(0xA5EB6CF7), UINT32_C(0xEA156432), UINT32_C(0x16266439), + UINT32_C(0x03161D4B), UINT32_C(0x1CF83E25), UINT32_C(0x95E3E8A3), + UINT32_C(0x37603F22)}, + {UINT32_C(0xE920EDDA), UINT32_C(0x62EE26EC), UINT32_C(0x0FC4DF7D), + UINT32_C(0xCD7734A3), UINT32_C(0xD7FBCA6B), UINT32_C(0x0EF3E6C9), + UINT32_C(0x87F1873A), UINT32_C(0xCF2460DA), UINT32_C(0x1895CF1C), + UINT32_C(0x00511072), UINT32_C(0x4F11854B), UINT32_C(0xB92A8E93), + UINT32_C(0x0C665D9D), UINT32_C(0x98556251), UINT32_C(0x174A7FF2), + UINT32_C(0x3CD64282)}}, + {{UINT32_C(0xB9F9E43F), UINT32_C(0x39243EA7), UINT32_C(0x270D2DB1), + UINT32_C(0x973D4582), UINT32_C(0x0541FF4C), UINT32_C(0xEB8B5033), + UINT32_C(0x9F309D70), UINT32_C(0xED5F52A0), UINT32_C(0x123F45B6), + UINT32_C(0xE978FBAE), UINT32_C(0x0015781D), UINT32_C(0x0A79B693), + UINT32_C(0x5C9A03FB), UINT32_C(0xC5DA0CCF), UINT32_C(0xF16D4CE1), + UINT32_C(0x1C6E4F58)}, + {UINT32_C(0x89CB89DB), UINT32_C(0x09674C2E), UINT32_C(0xC94A4D96), + UINT32_C(0xB3D147B1), UINT32_C(0x27D24C12), UINT32_C(0x936F3F88), + UINT32_C(0xA8C4BA25), UINT32_C(0x44E8C741), UINT32_C(0x920FDDE8), + UINT32_C(0x249A28AE), UINT32_C(0x229B2C19), UINT32_C(0x274F2B4E), + UINT32_C(0xFF4EC64D), UINT32_C(0x94C203EE), UINT32_C(0x43358F20), + UINT32_C(0x53284B1F)}}, + {{UINT32_C(0xDCCFF94D), UINT32_C(0xE3AB8BAA), UINT32_C(0xF97449EE), + UINT32_C(0xF038D9A5), UINT32_C(0x5EF19F06), UINT32_C(0xE4A45DCF), + UINT32_C(0x17EF6368), UINT32_C(0xFFF8AD9A), UINT32_C(0xADDF0B6E), + UINT32_C(0x0CEB6B85), UINT32_C(0x96AC1BA3), UINT32_C(0x6C7B60B1), + UINT32_C(0xA25F77F8), UINT32_C(0xED84F897), UINT32_C(0x55886360), + UINT32_C(0x1EE61671)}, + {UINT32_C(0x7BA18315), UINT32_C(0x08B44F38), UINT32_C(0xF3D0E0C4), + UINT32_C(0x8A9FFAE9), UINT32_C(0xE5886E61), UINT32_C(0x82807E7D), + UINT32_C(0x51E94C78), UINT32_C(0xF15402F3), UINT32_C(0x96A8AF2E), + UINT32_C(0x45969D9F), UINT32_C(0xF4956ACC), UINT32_C(0xA8E0ED89), + UINT32_C(0xF2D21764), UINT32_C(0xB5334DEC), UINT32_C(0x861C26B7), + UINT32_C(0x2B274E2F)}}, + {{UINT32_C(0x99E77118), UINT32_C(0xC2E3A802), UINT32_C(0xC6DE1B4D), + UINT32_C(0xFFE72B90), UINT32_C(0xE29458FB), UINT32_C(0xCCB21D53), + UINT32_C(0x511F0279), UINT32_C(0xD233AF10), UINT32_C(0xB9B907B3), + UINT32_C(0xC301B7EA), UINT32_C(0xD7B55600), UINT32_C(0x59DB1F45), + UINT32_C(0x3A386844), UINT32_C(0x7173318B), UINT32_C(0xD9AB6F85), + UINT32_C(0x403ABED7)}, + {UINT32_C(0x14698FC9), UINT32_C(0x0CFE2CFC), UINT32_C(0x34CE5939), + UINT32_C(0x40A41989), UINT32_C(0x9ABA363C), UINT32_C(0x0F5FA849), + UINT32_C(0x8CC887D9), UINT32_C(0x99C045AB), UINT32_C(0xE8DF250B), + UINT32_C(0x1E7563F5), UINT32_C(0xD3B78407), UINT32_C(0x2624A5DC), + UINT32_C(0x1954A966), UINT32_C(0x7D80CA6D), UINT32_C(0x4C8995C2), + UINT32_C(0x789BD685)}}, + {{UINT32_C(0x83A05A40), UINT32_C(0xBA8D9376), UINT32_C(0x0572668D), + UINT32_C(0xDD238C0E), UINT32_C(0xE0AD7EAA), UINT32_C(0x5B41446F), + UINT32_C(0x63F9C64D), UINT32_C(0x6D1AD6B4), UINT32_C(0x8830CE1C), + UINT32_C(0xF5FE99AA), UINT32_C(0xF2B77D66), UINT32_C(0x5BB1E7DF), + UINT32_C(0xF7E63961), UINT32_C(0x7382CA41), UINT32_C(0x555032C4), + UINT32_C(0x56D6F922)}, + {UINT32_C(0xAC45C214), UINT32_C(0xF9EAA991), UINT32_C(0x66146EA4), + UINT32_C(0x2A4B7172), UINT32_C(0xD14553F5), UINT32_C(0x5667D61F), + UINT32_C(0x3F7D071A), UINT32_C(0x996E8D8B), UINT32_C(0xE2229B97), + UINT32_C(0xCB023EA5), UINT32_C(0x398EA3C6), UINT32_C(0xA446A954), + UINT32_C(0xAAF9ABF2), UINT32_C(0x733E3D79), UINT32_C(0x47503BBD), + UINT32_C(0x2B4FAE8E)}}, + }, + { + {{UINT32_C(0xEBEFDC12), UINT32_C(0x24E9082D), UINT32_C(0x24FDCD6E), + UINT32_C(0x86997EA9), UINT32_C(0x03145F3F), UINT32_C(0x15129188), + UINT32_C(0xA16A167D), UINT32_C(0xC829D42C), UINT32_C(0xFDFACB6F), + UINT32_C(0x55C0A31C), UINT32_C(0x5B93FB73), UINT32_C(0x1A728DB4), + UINT32_C(0x467A55D2), UINT32_C(0x7A187912), UINT32_C(0x1E8843D3), + UINT32_C(0x7934C39C)}, + {UINT32_C(0xF35497AA), UINT32_C(0x688D9927), UINT32_C(0x5A745926), + UINT32_C(0x2176E4E4), UINT32_C(0x4FF0DA29), UINT32_C(0xA60F1ED7), + UINT32_C(0xE66F5F74), UINT32_C(0xE1EF2081), UINT32_C(0x9EE53EFF), + UINT32_C(0xCDE36E79), UINT32_C(0x855244FF), UINT32_C(0xFCD1D1BF), + UINT32_C(0x464A4040), UINT32_C(0xD55CDB2E), UINT32_C(0x1E64BB0B), + UINT32_C(0x39BC13F1)}}, + {{UINT32_C(0x65D70320), UINT32_C(0x828B3539), UINT32_C(0x954FE3CC), + UINT32_C(0x921019C6), UINT32_C(0x39DFC1EA), UINT32_C(0xC2B142C8), + UINT32_C(0xBAD22A43), UINT32_C(0x7A619A1C), UINT32_C(0xD827C06E), + UINT32_C(0xE08FA3AE), UINT32_C(0x88BAA42F), UINT32_C(0xAC645EFF), + UINT32_C(0x294F3582), UINT32_C(0x514723BA), UINT32_C(0xAA355FD2), + UINT32_C(0x6FD17829)}, + {UINT32_C(0x11D05C79), UINT32_C(0x6366853C), UINT32_C(0x17D185C9), + UINT32_C(0xE225500B), UINT32_C(0xFA47EADA), UINT32_C(0xAEEC2174), + UINT32_C(0x6666332F), UINT32_C(0x9737ECC0), UINT32_C(0xE33AA72A), + UINT32_C(0xD0638BC9), UINT32_C(0xF6CF4E24), UINT32_C(0x4889AB0D), + UINT32_C(0x039E3190), UINT32_C(0x2912E4A0), UINT32_C(0xC035D955), + UINT32_C(0x411CFB3C)}}, + {{UINT32_C(0x0B3BD0D0), UINT32_C(0xE59D745B), UINT32_C(0x0653222F), + UINT32_C(0x62AB04F9), UINT32_C(0x43E0EC6C), UINT32_C(0xE6421BB7), + UINT32_C(0x15E65B27), UINT32_C(0x6F3E4770), UINT32_C(0xD82704E6), + UINT32_C(0x90FB7585), UINT32_C(0xE9A129DF), UINT32_C(0xCF7FD882), + UINT32_C(0xD3D0023A), UINT32_C(0xFA8E1B9D), UINT32_C(0xDE4307E5), + UINT32_C(0x12861B4A)}, + {UINT32_C(0xB86CF424), UINT32_C(0x9DC0D3D9), UINT32_C(0xC2DBE006), + UINT32_C(0xCFC0A60F), UINT32_C(0x2B9F470A), UINT32_C(0x5933BAA8), + UINT32_C(0xCAB8113B), UINT32_C(0x112F153C), UINT32_C(0x56B279C1), + UINT32_C(0x1AEDA340), UINT32_C(0xBE13DFA3), UINT32_C(0x1408A037), + UINT32_C(0xC06D3674), UINT32_C(0x10D90850), UINT32_C(0xAF30AE4A), + UINT32_C(0x3DB6999E)}}, + {{UINT32_C(0x56348084), UINT32_C(0xAB96F013), UINT32_C(0x8C167F42), + UINT32_C(0x40395543), UINT32_C(0x2280FEB8), UINT32_C(0xE1385C9F), + UINT32_C(0x76D2C4AA), UINT32_C(0x36671625), UINT32_C(0x4D4D667B), + UINT32_C(0x76E31344), UINT32_C(0xEF0B171D), UINT32_C(0x906B5973), + UINT32_C(0xEBCCA769), UINT32_C(0x229BCCFA), UINT32_C(0x8A9A561C), + UINT32_C(0x36462E60)}, + {UINT32_C(0x4FE428A6), UINT32_C(0xFD5116FD), UINT32_C(0xF3846007), + UINT32_C(0xE92C088A), UINT32_C(0x218A0D1E), UINT32_C(0x8AC5F8BE), + UINT32_C(0xDDF329CE), UINT32_C(0x59A97369), UINT32_C(0xCAB484D5), + UINT32_C(0xEA2D262E), UINT32_C(0xBD10F3EC), UINT32_C(0x6F95E17A), + UINT32_C(0xE08DDB7E), UINT32_C(0x6FFBEC38), UINT32_C(0x6446BB5D), + UINT32_C(0x55E8DE21)}}, + {{UINT32_C(0x0CB565AE), UINT32_C(0xA5D6141A), UINT32_C(0xF9091FE2), + UINT32_C(0x8786B494), UINT32_C(0x1D6C9279), UINT32_C(0x89B1900F), + UINT32_C(0xC21934C0), UINT32_C(0x425AD0F5), UINT32_C(0xE2201D3E), + UINT32_C(0xF781FBF6), UINT32_C(0x61E0191D), UINT32_C(0x72100433), + UINT32_C(0x5B3E5491), UINT32_C(0x186A3999), UINT32_C(0x95E49235), + UINT32_C(0x6DF058E6)}, + {UINT32_C(0x34559E42), UINT32_C(0x82D37E02), UINT32_C(0xA0E7F1D4), + UINT32_C(0x4AE4A8AC), UINT32_C(0xB34AAED2), UINT32_C(0x9941A84C), + UINT32_C(0x5484ECE0), UINT32_C(0x4DA92D32), UINT32_C(0xEB7C740E), + UINT32_C(0x6F1FB58C), UINT32_C(0x4965B6CC), UINT32_C(0xEC6FAE86), + UINT32_C(0x1CEFF73B), UINT32_C(0x179E8480), UINT32_C(0x72724658), + UINT32_C(0x58ED2BB3)}}, + {{UINT32_C(0xAC30848E), UINT32_C(0xD6FA5A23), UINT32_C(0x53705571), + UINT32_C(0xFE58E2D3), UINT32_C(0x47EF14E7), UINT32_C(0x43368F72), + UINT32_C(0x694E6BB3), UINT32_C(0x7DDA0F48), UINT32_C(0xE9B7CEF9), + UINT32_C(0x0DFA9BF9), UINT32_C(0x9803203F), UINT32_C(0xA3BD4B23), + UINT32_C(0xAA1B561C), UINT32_C(0x3F0EAF0D), UINT32_C(0x11C56C8F), + UINT32_C(0x6E8678F3)}, + {UINT32_C(0xB4272D39), UINT32_C(0x4E574AFB), UINT32_C(0x26A589E0), + UINT32_C(0xDD9622A9), UINT32_C(0x18E2B544), UINT32_C(0xCF41D028), + UINT32_C(0x479B717E), UINT32_C(0x7FE65A44), UINT32_C(0xABDE58B1), + UINT32_C(0x38D34C1F), UINT32_C(0x20E02EE5), UINT32_C(0x4A8B1A49), + UINT32_C(0x26D927F1), UINT32_C(0x6C2C5AF1), UINT32_C(0xCE4D534A), + UINT32_C(0x08E02884)}}, + {{UINT32_C(0x3C9034CE), UINT32_C(0xF4747773), UINT32_C(0xA8CDA587), + UINT32_C(0x92B208B8), UINT32_C(0xA8A5D6F6), UINT32_C(0xDDB5A865), + UINT32_C(0x09FFBBCA), UINT32_C(0xE3C3150E), UINT32_C(0x71780DEE), + UINT32_C(0x120720D6), UINT32_C(0x1CB5E7E7), UINT32_C(0x6977608D), + UINT32_C(0xDBE5697A), UINT32_C(0x52261203), UINT32_C(0x184E7B19), + UINT32_C(0x1C88E9C4)}, + {UINT32_C(0x9927BFC6), UINT32_C(0x6BE6C190), UINT32_C(0xF431A9E8), + UINT32_C(0xA1452123), UINT32_C(0xB949ED5C), UINT32_C(0x62BC5BF4), + UINT32_C(0x2BCF732C), UINT32_C(0xD57633C0), UINT32_C(0x0AE4563A), + UINT32_C(0xA3723F7C), UINT32_C(0x031958EA), UINT32_C(0x5449AFCE), + UINT32_C(0xA6580D6F), UINT32_C(0xE3BF9985), UINT32_C(0x6B471AA6), + UINT32_C(0x34B0D320)}}, + {{UINT32_C(0x46BF771F), UINT32_C(0xEE28E9FC), UINT32_C(0xF23B38E6), + UINT32_C(0xDCD3C06E), UINT32_C(0x8D62D86B), UINT32_C(0x894E7864), + UINT32_C(0xC0209FC3), UINT32_C(0xF226C4DA), UINT32_C(0x6EC4D3B1), + UINT32_C(0xEEB85A81), UINT32_C(0x3ABEC007), UINT32_C(0x837F8A03), + UINT32_C(0x18C1A3EA), UINT32_C(0x622C40BC), UINT32_C(0x279C341A), + UINT32_C(0x49A59CB2)}, + {UINT32_C(0xD38DC85B), UINT32_C(0xC3833ABA), UINT32_C(0x3E303976), + UINT32_C(0xC512B721), UINT32_C(0xA43BA4BF), UINT32_C(0x80CB1ADF), + UINT32_C(0x8FAD6957), UINT32_C(0x6C8A1574), UINT32_C(0xA0DC03A1), + UINT32_C(0xB5305AE5), UINT32_C(0xA78753F7), UINT32_C(0xA63FE0FC), + UINT32_C(0x7D4EB934), UINT32_C(0x81C2BCE1), UINT32_C(0xAD66F6FB), + UINT32_C(0x4ED73812)}}, + {{UINT32_C(0xCA09A5D2), UINT32_C(0xAC25AB81), UINT32_C(0xB6EE3D0D), + UINT32_C(0x1E000EFC), UINT32_C(0x148738A5), UINT32_C(0x7EDA899F), + UINT32_C(0x4ABD3CA0), UINT32_C(0xEE70DFB4), UINT32_C(0x371F70BD), + UINT32_C(0xA9F18AF3), UINT32_C(0x30E796BC), UINT32_C(0xA2D64FE4), + UINT32_C(0x38943DC4), UINT32_C(0x77E42190), UINT32_C(0x06EB5CFC), + UINT32_C(0x35AEB8A2)}, + {UINT32_C(0xDA26DB57), UINT32_C(0x95D36C2E), UINT32_C(0x3A546E88), + UINT32_C(0xEEF40F18), UINT32_C(0xE5D07294), UINT32_C(0xAD4D846B), + UINT32_C(0x95158FF2), UINT32_C(0x80BE6BA8), UINT32_C(0xC85F84EA), + UINT32_C(0xC15AC73F), UINT32_C(0x2044951E), UINT32_C(0xBAFC3952), + UINT32_C(0xA14C51AE), UINT32_C(0xEA750E8D), UINT32_C(0x524FC6FA), + UINT32_C(0x1817F004)}}, + {{UINT32_C(0x14555CD7), UINT32_C(0x9C835DB3), UINT32_C(0x299196F6), + UINT32_C(0x76A92FC0), UINT32_C(0x6618F1A6), UINT32_C(0x35CDF54D), + UINT32_C(0xB3260002), UINT32_C(0x4B77E5A0), UINT32_C(0xA837BDB2), + UINT32_C(0x321C2EAF), UINT32_C(0xD5D4A743), UINT32_C(0x559AE831), + UINT32_C(0xE116E5CC), UINT32_C(0x0EB18D7F), UINT32_C(0x1945E60E), + UINT32_C(0x3FE7D292)}, + {UINT32_C(0x649D5551), UINT32_C(0x4CA61AEF), UINT32_C(0x95257CC3), + UINT32_C(0x7C3CFBFF), UINT32_C(0x66A5D03B), UINT32_C(0x8AF04A74), + UINT32_C(0xFC3B143A), UINT32_C(0xA0C95ADE), UINT32_C(0xA61B0143), + UINT32_C(0x515258CE), UINT32_C(0x43A147BD), UINT32_C(0xF1959D4B), + UINT32_C(0x43B761E4), UINT32_C(0xAAE3EF4C), UINT32_C(0xBB8BEA3A), + UINT32_C(0x731F5D9E)}}, + {{UINT32_C(0x6283C8DA), UINT32_C(0x483D5F55), UINT32_C(0xC067AF22), + UINT32_C(0x0CE48F6F), UINT32_C(0xCFB3FEF8), UINT32_C(0xBA767432), + UINT32_C(0x463510B2), UINT32_C(0x1AD7F214), UINT32_C(0x7D448527), + UINT32_C(0xDCFDB1A7), UINT32_C(0x119BA281), UINT32_C(0x3EEFAEDD), + UINT32_C(0x7B6597AB), UINT32_C(0x9D5F2546), UINT32_C(0xB8AE2AC1), + UINT32_C(0x03515E65)}, + {UINT32_C(0xA768A2E9), UINT32_C(0x91A17476), UINT32_C(0x1C0B8745), + UINT32_C(0x921B21AA), UINT32_C(0xD1636FB2), UINT32_C(0xE1B0AB68), + UINT32_C(0x0A933BC5), UINT32_C(0x35AF62C1), UINT32_C(0x6CCA56F8), + UINT32_C(0x24432C7B), UINT32_C(0xE142C3D6), UINT32_C(0x88976C8F), + UINT32_C(0xC0EEC621), UINT32_C(0x1BAC1E5D), UINT32_C(0x7EB64467), + UINT32_C(0x2760B03A)}}, + {{UINT32_C(0x535D9B1E), UINT32_C(0xCEFCAB97), UINT32_C(0xEFC85889), + UINT32_C(0x2DDF1964), UINT32_C(0x67FC56FE), UINT32_C(0x62276E02), + UINT32_C(0x9EA27125), UINT32_C(0xD33D4E1F), UINT32_C(0x3EAB0BFD), + UINT32_C(0xD11F0726), UINT32_C(0xB4E5A283), UINT32_C(0xCEF5BD00), + UINT32_C(0xA5ECFF20), UINT32_C(0x107CB2FB), UINT32_C(0x85321266), + UINT32_C(0x1D110BEC)}, + {UINT32_C(0xB9C05938), UINT32_C(0x5CD67BCA), UINT32_C(0xEC9ED6BA), + UINT32_C(0x023B2FD6), UINT32_C(0xC44D68BE), UINT32_C(0x473FEF71), + UINT32_C(0x24006876), UINT32_C(0x6DB457A1), UINT32_C(0x5979901A), + UINT32_C(0xA56C47E3), UINT32_C(0x006B786D), UINT32_C(0x971F5FE7), + UINT32_C(0x8E3630E4), UINT32_C(0xD894B21C), UINT32_C(0xFF0AD8ED), + UINT32_C(0x56B8610D)}}, + {{UINT32_C(0x6A9AD8B6), UINT32_C(0xDC574806), UINT32_C(0xA33AA074), + UINT32_C(0x39B1553A), UINT32_C(0x71EF2A51), UINT32_C(0x55233DAA), + UINT32_C(0xCCC11692), UINT32_C(0x6186F6F0), UINT32_C(0x51E7F2B8), + UINT32_C(0x949F7A8D), UINT32_C(0xBF2FF9B7), UINT32_C(0x9ED94F29), + UINT32_C(0x3B90382D), UINT32_C(0x54ED16DA), UINT32_C(0x4014335A), + UINT32_C(0x065D0975)}, + {UINT32_C(0x7B737144), UINT32_C(0x95DA36F2), UINT32_C(0xDDD9C1E0), + UINT32_C(0xE0A7C458), UINT32_C(0x69B64234), UINT32_C(0x0DCE291C), + UINT32_C(0x8689DEF3), UINT32_C(0xF943B727), UINT32_C(0x24F80B28), + UINT32_C(0x1CB8375C), UINT32_C(0x8902EC28), UINT32_C(0x60EFAA29), + UINT32_C(0x673F34AF), UINT32_C(0x036BD90F), UINT32_C(0x02B1A208), + UINT32_C(0x687B36FB)}}, + {{UINT32_C(0x0C031EE5), UINT32_C(0x1704A598), UINT32_C(0x8288EC60), + UINT32_C(0x325E6096), UINT32_C(0x16EFC6F9), UINT32_C(0x588F58A1), + UINT32_C(0x2C520574), UINT32_C(0xA1EA547F), UINT32_C(0x7FD9F40A), + UINT32_C(0x2633CB8F), UINT32_C(0x3AA1C0DD), UINT32_C(0x736D8CFA), + UINT32_C(0x92B3300E), UINT32_C(0x189E74DA), UINT32_C(0x92172793), + UINT32_C(0x6C92BE18)}, + {UINT32_C(0xC6E25307), UINT32_C(0x3B67DADF), UINT32_C(0xCCF961F7), + UINT32_C(0x170BF45C), UINT32_C(0xB2C0629E), UINT32_C(0xF07F48B5), + UINT32_C(0x974F7169), UINT32_C(0xACB40994), UINT32_C(0x871177C5), + UINT32_C(0x29AD746C), UINT32_C(0xE3AE7857), UINT32_C(0x1AD449E2), + UINT32_C(0xAE9BE21F), UINT32_C(0xAFB63CB9), UINT32_C(0xB08FAEEC), + UINT32_C(0x0E6C676C)}}, + {{UINT32_C(0x60CABC21), UINT32_C(0xA60E0D9F), UINT32_C(0x8BA79177), + UINT32_C(0xBDFC43CF), UINT32_C(0x7BEECCF8), UINT32_C(0x8362D84B), + UINT32_C(0x29F8FBE4), UINT32_C(0x0CC9E6BA), UINT32_C(0x4801BF01), + UINT32_C(0xCA90958A), UINT32_C(0xF13C6356), UINT32_C(0xCB84005E), + UINT32_C(0x90AE5AB9), UINT32_C(0x9CA6408B), UINT32_C(0xE668357C), + UINT32_C(0x293582F2)}, + {UINT32_C(0xFFCEB4F6), UINT32_C(0xAA3A680A), UINT32_C(0xF18508A5), + UINT32_C(0x19CE2D54), UINT32_C(0xF430A62C), UINT32_C(0x74027BA5), + UINT32_C(0xDCB846D8), UINT32_C(0x7248CB8E), UINT32_C(0x3D3779E2), + UINT32_C(0x608F15E8), UINT32_C(0x52BB6633), UINT32_C(0x21B8A438), + UINT32_C(0xA95BDE4F), UINT32_C(0x64B4C82E), UINT32_C(0xCA13D8B1), + UINT32_C(0x75169F73)}}, + {{UINT32_C(0x7435D441), UINT32_C(0xDC6C53C9), UINT32_C(0x630885A0), + UINT32_C(0x621030CD), UINT32_C(0x4CA9BBE8), UINT32_C(0x9F761C57), + UINT32_C(0x89453166), UINT32_C(0x3CBD7B51), UINT32_C(0x53EED18D), + UINT32_C(0xE80014E4), UINT32_C(0xFD48C287), UINT32_C(0xAB31FE34), + UINT32_C(0x0B1F2C06), UINT32_C(0xB908AA72), UINT32_C(0xDA592359), + UINT32_C(0x2A849D2E)}, + {UINT32_C(0x9B7DA75A), UINT32_C(0x688DAA1B), UINT32_C(0x42D4659B), + UINT32_C(0x779B963B), UINT32_C(0x0DA7F5E1), UINT32_C(0x44BCCBE1), + UINT32_C(0x0E283A19), UINT32_C(0x96F4FE4E), UINT32_C(0x0F532628), + UINT32_C(0x00239F78), UINT32_C(0xB2BD3F1E), UINT32_C(0xA8E1A47F), + UINT32_C(0x49D504AD), UINT32_C(0x23D8F150), UINT32_C(0xA818FB1A), + UINT32_C(0x36F4D7AD)}}, + }, + { + {{UINT32_C(0x6FA6665A), UINT32_C(0xED7AAC76), UINT32_C(0xCD7ABC00), + UINT32_C(0x593FD44F), UINT32_C(0xE5940EBE), UINT32_C(0xB70DAA5D), + UINT32_C(0xE6CEB5B5), UINT32_C(0xBBD56469), UINT32_C(0x4EC6EC19), + UINT32_C(0x17B54A10), UINT32_C(0xF288553F), UINT32_C(0x2411F294), + UINT32_C(0x81534194), UINT32_C(0x01082082), UINT32_C(0x98F85E1E), + UINT32_C(0x3CFFCF3F)}, + {UINT32_C(0x07E62220), UINT32_C(0x0B82B0FD), UINT32_C(0x50F91B0E), + UINT32_C(0x99B5CC19), UINT32_C(0x3AE5C675), UINT32_C(0x2C60F938), + UINT32_C(0xF42E3EEA), UINT32_C(0x6A25B099), UINT32_C(0x329D208C), + UINT32_C(0x498948A8), UINT32_C(0x6A343691), UINT32_C(0x45226E62), + UINT32_C(0x8B8E9C2D), UINT32_C(0x053643F6), UINT32_C(0x4A938DA8), + UINT32_C(0x56E1E564)}}, + {{UINT32_C(0x2242A19C), UINT32_C(0x144DA678), UINT32_C(0xC072E8A2), + UINT32_C(0x0860A384), UINT32_C(0x318A08B7), UINT32_C(0xD782A875), + UINT32_C(0x8D318C54), UINT32_C(0xAC99802E), UINT32_C(0x307DA17A), + UINT32_C(0x329437A2), UINT32_C(0x6696DC0F), UINT32_C(0x35656A12), + UINT32_C(0xE2152828), UINT32_C(0xC5A9914A), UINT32_C(0x841C814B), + UINT32_C(0x3BCBD2FC)}, + {UINT32_C(0x590C6FC2), UINT32_C(0x7D2FCF55), UINT32_C(0x6197DABE), + UINT32_C(0xCCCF4315), UINT32_C(0x0E2EB665), UINT32_C(0xF4701C36), + UINT32_C(0xE9400A11), UINT32_C(0x9D4F5A7C), UINT32_C(0x2F49F529), + UINT32_C(0x815C6218), UINT32_C(0xB015260A), UINT32_C(0x264A9BEF), + UINT32_C(0x177E94AB), UINT32_C(0x279A03B8), UINT32_C(0xF6E2518A), + UINT32_C(0x115481E6)}}, + {{UINT32_C(0xBB65B1C1), UINT32_C(0x2FE0C370), UINT32_C(0xAABD8550), + UINT32_C(0x620FC63E), UINT32_C(0x9660303A), UINT32_C(0xA6EDA03F), + UINT32_C(0x802B6899), UINT32_C(0xC15FD5C5), UINT32_C(0x30FD19A1), + UINT32_C(0x6DFBBCA5), UINT32_C(0xC5394AAB), UINT32_C(0x2BC0DDA1), + UINT32_C(0x0CF41B04), UINT32_C(0xFC619634), UINT32_C(0x7DBCB198), + UINT32_C(0x64DDF00E)}, + {UINT32_C(0x92602D0B), UINT32_C(0x78B289F6), UINT32_C(0xE4A24732), + UINT32_C(0x123CC6A5), UINT32_C(0x70913278), UINT32_C(0x5F2DB53B), + UINT32_C(0xC27EAC92), UINT32_C(0xD55AE856), UINT32_C(0x085696BA), + UINT32_C(0xCC82E112), UINT32_C(0x67F01774), UINT32_C(0xA421C179), + UINT32_C(0xE602BAF7), UINT32_C(0x7DEEF7FD), UINT32_C(0x35E94ADA), + UINT32_C(0x00A730B3)}}, + {{UINT32_C(0x1DAC6F8B), UINT32_C(0x586D8DC8), UINT32_C(0x18F1FE48), + UINT32_C(0x89A56AC6), UINT32_C(0xF2A8BFA5), UINT32_C(0x51231A77), + UINT32_C(0xCA562E8C), UINT32_C(0xD36BE5FE), UINT32_C(0x9A6268D9), + UINT32_C(0x5DFE328F), UINT32_C(0x781FA0B4), UINT32_C(0x3110144C), + UINT32_C(0x7ACBE702), UINT32_C(0x6A18A190), UINT32_C(0xD70C4B5F), + UINT32_C(0x68F941C2)}, + {UINT32_C(0x0A19654D), UINT32_C(0xCE3C1DE3), UINT32_C(0x49AD2799), + UINT32_C(0xCE96C000), UINT32_C(0x06E913EE), UINT32_C(0x9AD7B0F3), + UINT32_C(0x472A1C37), UINT32_C(0x625C4FC1), UINT32_C(0x967BBD4D), + UINT32_C(0x1E25E3AC), UINT32_C(0x2042C162), UINT32_C(0xE516CD88), + UINT32_C(0xC3197E40), UINT32_C(0x1483A10E), UINT32_C(0x84E5FAED), + UINT32_C(0x60815A8A)}}, + {{UINT32_C(0xD1313B07), UINT32_C(0x3413EEA8), UINT32_C(0x49BC14B0), + UINT32_C(0x4B6C2CCF), UINT32_C(0xC33BE839), UINT32_C(0x56C78C84), + UINT32_C(0x0DC481C6), UINT32_C(0x00980F4F), UINT32_C(0x5E96BAE7), + UINT32_C(0xA34D712C), UINT32_C(0xEB0574F5), UINT32_C(0xEA386C4A), + UINT32_C(0x6BB4DC04), UINT32_C(0x834334AB), UINT32_C(0x47404A42), + UINT32_C(0x140F2209)}, + {UINT32_C(0xCC6F8D14), UINT32_C(0x970B7DE3), UINT32_C(0xCCD6A840), + UINT32_C(0x7C9A38E9), UINT32_C(0xA63FAF90), UINT32_C(0x7C1C4638), + UINT32_C(0x1F10834E), UINT32_C(0x36AFEA84), UINT32_C(0x15765F2A), + UINT32_C(0xA9AA4A15), UINT32_C(0xD9240C98), UINT32_C(0xB20B2249), + UINT32_C(0xD03ABC25), UINT32_C(0x20116417), UINT32_C(0x37A8893D), + UINT32_C(0x69B34300)}}, + {{UINT32_C(0x1021F8CA), UINT32_C(0x710FB075), UINT32_C(0x64008516), + UINT32_C(0xF90919DD), UINT32_C(0x2CCC8FFC), UINT32_C(0xB0ED3172), + UINT32_C(0x78988C41), UINT32_C(0xC6ADC85B), UINT32_C(0x0A1B81A9), + UINT32_C(0x1CDE6A9D), UINT32_C(0xC80CAC9E), UINT32_C(0x9ABC5114), + UINT32_C(0x43A7B1A7), UINT32_C(0x877E6082), UINT32_C(0x51BD9782), + UINT32_C(0x0CA1F0D1)}, + {UINT32_C(0x6E6AACB7), UINT32_C(0xFBB662BB), UINT32_C(0x96CD1A74), + UINT32_C(0xDCAB0D77), UINT32_C(0xDC56300E), UINT32_C(0x603F2717), + UINT32_C(0xFE92F7E4), UINT32_C(0x327251B0), UINT32_C(0x7031603A), + UINT32_C(0x07E0CBED), UINT32_C(0xD04C19FD), UINT32_C(0xA0F296EC), + UINT32_C(0xB8C5E0AB), UINT32_C(0x3296BF9B), UINT32_C(0x49E5E7B6), + UINT32_C(0x41E72DDB)}}, + {{UINT32_C(0xCE99C0C5), UINT32_C(0x47E9562C), UINT32_C(0xBA5372BF), + UINT32_C(0x4C5FD161), UINT32_C(0x5C808664), UINT32_C(0x05D1B7B1), + UINT32_C(0x539F8180), UINT32_C(0x9DBE76B6), UINT32_C(0xDDBD7BC3), + UINT32_C(0x646C3DDF), UINT32_C(0x97376739), UINT32_C(0x06032B96), + UINT32_C(0x696BDA3D), UINT32_C(0xB71DD971), UINT32_C(0x1D340FD0), + UINT32_C(0x75061EB8)}, + {UINT32_C(0xE6A7DCA5), UINT32_C(0x6FD064FD), UINT32_C(0x8DB01DE3), + UINT32_C(0x79A31650), UINT32_C(0xF6483911), UINT32_C(0xB1B65A8D), + UINT32_C(0xA9DE2C37), UINT32_C(0xAF2BBE1C), UINT32_C(0x85CB42C5), + UINT32_C(0x6B663C9E), UINT32_C(0xB583E78E), UINT32_C(0x464FEDFE), + UINT32_C(0xFFDF93CB), UINT32_C(0x393C00F8), UINT32_C(0x9F96CF15), + UINT32_C(0x61CC9A6D)}}, + {{UINT32_C(0xCA774807), UINT32_C(0x40EDC986), UINT32_C(0x4C334C01), + UINT32_C(0x8B2A531C), UINT32_C(0xCEB21FD6), UINT32_C(0x72D378C4), + UINT32_C(0x3833D841), UINT32_C(0x169C54E4), UINT32_C(0x82FE513F), + UINT32_C(0xCC830E8E), UINT32_C(0xABF34DD7), UINT32_C(0xBDC4ECD7), + UINT32_C(0xAEDD9FF5), UINT32_C(0xB5349484), UINT32_C(0xA404055B), + UINT32_C(0x12D7ADB3)}, + {UINT32_C(0x637B7C24), UINT32_C(0x88027C00), UINT32_C(0xC0EB319D), + UINT32_C(0x755587A6), UINT32_C(0x2027178A), UINT32_C(0x3F24E32F), + UINT32_C(0xA4FE8F8D), UINT32_C(0xB912054E), UINT32_C(0x5C9A68D6), + UINT32_C(0x6AACA911), UINT32_C(0x235CF842), UINT32_C(0x14772328), + UINT32_C(0x0C0175F8), UINT32_C(0x6D3020A8), UINT32_C(0x3E0F7418), + UINT32_C(0x587768A7)}}, + {{UINT32_C(0x1154C74A), UINT32_C(0x57E3A1F9), UINT32_C(0xB85FB8E8), + UINT32_C(0x80157FF5), UINT32_C(0xEE5DEFEC), UINT32_C(0xBEDB658D), + UINT32_C(0x067E9A0E), UINT32_C(0x65C0AA98), UINT32_C(0x229A5289), + UINT32_C(0xAF9A507A), UINT32_C(0xF954DD94), UINT32_C(0x6A13ACF0), + UINT32_C(0x53DC4C19), UINT32_C(0xB5F3A18D), UINT32_C(0x85AF938F), + UINT32_C(0x06AEB3F5)}, + {UINT32_C(0x8C9BB087), UINT32_C(0x503F0622), UINT32_C(0xE3FEA015), + UINT32_C(0xEA19AC85), UINT32_C(0x403FB8FC), UINT32_C(0xE446CD70), + UINT32_C(0xDF5B398F), UINT32_C(0x1BDDC810), UINT32_C(0xAD2CAEC6), + UINT32_C(0x0CAF818F), UINT32_C(0x807AB004), UINT32_C(0x06983E52), + UINT32_C(0x79428650), UINT32_C(0xA6B33E3C), UINT32_C(0x231BAE71), + UINT32_C(0x182E3D46)}}, + {{UINT32_C(0xB309DC4B), UINT32_C(0xAF54B735), UINT32_C(0x805890F1), + UINT32_C(0x494F7441), UINT32_C(0xF87271F6), UINT32_C(0x3CCD5F0C), + UINT32_C(0x7638102B), UINT32_C(0x2914763B), UINT32_C(0xFD258079), + UINT32_C(0x3CA50D01), UINT32_C(0x77CDD6A9), UINT32_C(0x6D9A3D47), + UINT32_C(0x1F4A05CE), UINT32_C(0xD81373B8), UINT32_C(0xCCD443ED), + UINT32_C(0x16B258DB)}, + {UINT32_C(0xA3805FEE), UINT32_C(0xC9D4009F), UINT32_C(0x225FA57D), + UINT32_C(0x5EC56730), UINT32_C(0xAC17E4C0), UINT32_C(0x4A51A79B), + UINT32_C(0xE7750942), UINT32_C(0xB389FBA3), UINT32_C(0x1AB7E8BE), + UINT32_C(0x2B137D6E), UINT32_C(0xD8C26EFE), UINT32_C(0x3953702A), + UINT32_C(0xB79F2828), UINT32_C(0x6D86ED3E), UINT32_C(0x6D6A62C0), + UINT32_C(0x36ECEEE8)}}, + {{UINT32_C(0x6B8B9B02), UINT32_C(0xF97E85FB), UINT32_C(0xC6F128F6), + UINT32_C(0x3319D570), UINT32_C(0xB4CA56DD), UINT32_C(0xDAB74E23), + UINT32_C(0x81FCBB47), UINT32_C(0x50CA71EF), UINT32_C(0xAAD7F910), + UINT32_C(0xBFC19F2E), UINT32_C(0xDB3772F4), UINT32_C(0x96650F9B), + UINT32_C(0xB6F26494), UINT32_C(0x5823F134), UINT32_C(0xCBFBD2E3), + UINT32_C(0x1B899B3E)}, + {UINT32_C(0xF6CF8F8A), UINT32_C(0xD1589C42), UINT32_C(0x34DDB625), + UINT32_C(0x3168AAF5), UINT32_C(0x72ABDA08), UINT32_C(0x4C730535), + UINT32_C(0xF82913C3), UINT32_C(0x8B1C24C7), UINT32_C(0x239FBCD3), + UINT32_C(0xD7D80F27), UINT32_C(0x6B7C205D), UINT32_C(0xB18B4F05), + UINT32_C(0xD92056A6), UINT32_C(0x2864763F), UINT32_C(0xBCDB3022), + UINT32_C(0x0B3DDC7B)}}, + {{UINT32_C(0x207F772B), UINT32_C(0x1AB037D6), UINT32_C(0x88767BFA), + UINT32_C(0xF050DD34), UINT32_C(0x79ABF05E), UINT32_C(0xFEF182FF), + UINT32_C(0x4B25067B), UINT32_C(0xAAFCFD0F), UINT32_C(0x34E155B0), + UINT32_C(0x1EB76235), UINT32_C(0x65CEF7A6), UINT32_C(0xA3B921C9), + UINT32_C(0xD9216B0A), UINT32_C(0x6CBD50B3), UINT32_C(0x9E578A9A), + UINT32_C(0x3E298A71)}, + {UINT32_C(0x1CCE9059), UINT32_C(0xC0DEE851), UINT32_C(0xEBA49DE2), + UINT32_C(0x397344BB), UINT32_C(0xB08513DE), UINT32_C(0x45A60A85), + UINT32_C(0xF0D07F9B), UINT32_C(0x55D314F9), UINT32_C(0x12D12611), + UINT32_C(0xBF6D4D51), UINT32_C(0x30A7E8DE), UINT32_C(0x49F9BCF1), + UINT32_C(0x5435D109), UINT32_C(0xDB0A9058), UINT32_C(0x0F706CF2), + UINT32_C(0x4DE5C43F)}}, + {{UINT32_C(0x70B6D62B), UINT32_C(0x7FF298D6), UINT32_C(0xE67688D3), + UINT32_C(0xB2FF0AD4), UINT32_C(0x805652BD), UINT32_C(0x5E63A6B2), + UINT32_C(0xAD74922A), UINT32_C(0x32D81219), UINT32_C(0xA9CCCC31), + UINT32_C(0x77D2E3A3), UINT32_C(0x2CF2EEE0), UINT32_C(0x031D571B), + UINT32_C(0x4FC7C9EA), UINT32_C(0x471653BD), UINT32_C(0x0AFC2A13), + UINT32_C(0x2322CC68)}, + {UINT32_C(0x08C6D70E), UINT32_C(0x3D152EFF), UINT32_C(0xBEC5DBD9), + UINT32_C(0xBEC9CBCF), UINT32_C(0x6496310F), UINT32_C(0x41BD4962), + UINT32_C(0xB1A88E6B), UINT32_C(0xD23FC983), UINT32_C(0x5EF464E2), + UINT32_C(0x5B622EDC), UINT32_C(0xFFCC97BB), UINT32_C(0xC6500ADD), + UINT32_C(0xAA783FF4), UINT32_C(0xF2CCD3EF), UINT32_C(0x7CE05CC1), + UINT32_C(0x51AD3604)}}, + {{UINT32_C(0x24C48E44), UINT32_C(0x4796EE83), UINT32_C(0xBBA7BC62), + UINT32_C(0xB4D448B0), UINT32_C(0x1C32B713), UINT32_C(0x2F356E4A), + UINT32_C(0x32050781), UINT32_C(0x980D6DCA), UINT32_C(0xB5F6C099), + UINT32_C(0xB52B1826), UINT32_C(0xA144D7F5), UINT32_C(0x01F7D68D), + UINT32_C(0xA23999CB), UINT32_C(0x09ABC596), UINT32_C(0x66246640), + UINT32_C(0x17C069DD)}, + {UINT32_C(0x1F7E37A6), UINT32_C(0xB7D7F96C), UINT32_C(0xE46AAD16), + UINT32_C(0x57E198C0), UINT32_C(0xD1C0DF8C), UINT32_C(0xB2088DF9), + UINT32_C(0x3FDEC190), UINT32_C(0x0CC38EE4), UINT32_C(0xFB2D9B68), + UINT32_C(0x68DD1FC4), UINT32_C(0xAD1D73C0), UINT32_C(0x0AD94674), + UINT32_C(0x1B92B955), UINT32_C(0x9529C7DF), UINT32_C(0x0D141F7C), + UINT32_C(0x6711E361)}}, + {{UINT32_C(0x3B87C175), UINT32_C(0x1B1A5159), UINT32_C(0x029FF8F9), + UINT32_C(0x7F62A639), UINT32_C(0xC69ADEFB), UINT32_C(0xA2E37638), + UINT32_C(0x58E309A0), UINT32_C(0x3AC773C6), UINT32_C(0x22EFD710), + UINT32_C(0x9E7A85FD), UINT32_C(0xA60E5275), UINT32_C(0xD29E2F3D), + UINT32_C(0x1163C9ED), UINT32_C(0xC4734B9B), UINT32_C(0x9CBEEE57), + UINT32_C(0x09D3204A)}, + {UINT32_C(0x0B8A97AA), UINT32_C(0xB2339F8D), UINT32_C(0x7AE97B4D), + UINT32_C(0xC19C67A6), UINT32_C(0x65425033), UINT32_C(0x8C0E823F), + UINT32_C(0x8B186D7F), UINT32_C(0x447F972A), UINT32_C(0x32A6C164), + UINT32_C(0x43385E29), UINT32_C(0xE9E78569), UINT32_C(0x95049508), + UINT32_C(0xA074B68F), UINT32_C(0x2AF8C598), UINT32_C(0x5CD5E2F7), + UINT32_C(0x18AC97B8)}}, + {{UINT32_C(0x01DEB288), UINT32_C(0xFAE61589), UINT32_C(0x885B8EA2), + UINT32_C(0x33F684F3), UINT32_C(0xCFA425B5), UINT32_C(0x89A90618), + UINT32_C(0xFBBF5B15), UINT32_C(0x8F5D3C2E), UINT32_C(0xC2B6CB28), + UINT32_C(0x379803C6), UINT32_C(0x990CE2DB), UINT32_C(0xFE683EA3), + UINT32_C(0x7B6E4E0C), UINT32_C(0xC1B3C21F), UINT32_C(0xEA3513DC), + UINT32_C(0x6F152C2E)}, + {UINT32_C(0x9AB792CA), UINT32_C(0x23505338), UINT32_C(0x282A67AF), + UINT32_C(0xC64C7F27), UINT32_C(0x6498B24F), UINT32_C(0x6FCBDE65), + UINT32_C(0xA1612A06), UINT32_C(0x6FB7F7FC), UINT32_C(0x45C74402), + UINT32_C(0xFD575B9F), UINT32_C(0xA709A516), UINT32_C(0x6EAD0805), + UINT32_C(0xD4EF066B), UINT32_C(0xCA6208AE), UINT32_C(0x93954E65), + UINT32_C(0x23880ECE)}}, + }, + { + {{UINT32_C(0x7FB1977A), UINT32_C(0x2B13B8B8), UINT32_C(0x21B7871A), + UINT32_C(0xEA6510AD), UINT32_C(0x882483C7), UINT32_C(0xDBDCB0E8), + UINT32_C(0x4C379245), UINT32_C(0x5E2E9664), UINT32_C(0xEBAF2C56), + UINT32_C(0x581D4429), UINT32_C(0xCA79FCCF), UINT32_C(0xA929CBB0), + UINT32_C(0x2009377F), UINT32_C(0xE74D3D66), UINT32_C(0x610CC0D1), + UINT32_C(0x664661A5)}, + {UINT32_C(0x0570237A), UINT32_C(0x1F778C19), UINT32_C(0x1769A370), + UINT32_C(0x905AEB86), UINT32_C(0xD6C06AEE), UINT32_C(0xF51B013B), + UINT32_C(0x43EFB668), UINT32_C(0xDF0D8905), UINT32_C(0x11E4D5DA), + UINT32_C(0xDD082BC3), UINT32_C(0xD7BE0C1D), UINT32_C(0x58AA1283), + UINT32_C(0x941E9230), UINT32_C(0x97F20D6B), UINT32_C(0x8BB614AD), + UINT32_C(0x486C960C)}}, + {{UINT32_C(0x4CE9052B), UINT32_C(0x0B573B94), UINT32_C(0xD78F10E5), + UINT32_C(0x88B5C4CB), UINT32_C(0x77DCA0EB), UINT32_C(0xB131989B), + UINT32_C(0x81E63C3B), UINT32_C(0x7F405D80), UINT32_C(0x3818CA2D), + UINT32_C(0xCC31F185), UINT32_C(0xFE177EA8), UINT32_C(0x42F386A2), + UINT32_C(0x9D888B2A), UINT32_C(0x1B7DD56E), UINT32_C(0xC8E873E8), + UINT32_C(0x3A6D84D3)}, + {UINT32_C(0x7E3FBCD6), UINT32_C(0xBCFEF877), UINT32_C(0xB36F3F68), + UINT32_C(0x5DA67B53), UINT32_C(0x5827FE5A), UINT32_C(0xE840229A), + UINT32_C(0xB989407B), UINT32_C(0x17689956), UINT32_C(0xAFE27325), + UINT32_C(0xAD6E3F87), UINT32_C(0xDB1E1A3E), UINT32_C(0x62027C70), + UINT32_C(0x7EBB4747), UINT32_C(0x86A2C909), UINT32_C(0x4A919D6B), + UINT32_C(0x47ADC4CC)}}, + {{UINT32_C(0xA4CA0F15), UINT32_C(0x92381565), UINT32_C(0xC08705DB), + UINT32_C(0x67FB0C76), UINT32_C(0x03BA6D54), UINT32_C(0x661DA004), + UINT32_C(0x77C5C4F7), UINT32_C(0xF875EF24), UINT32_C(0x4157A282), + UINT32_C(0x0769B11C), UINT32_C(0xFAF534C6), UINT32_C(0x8ADB10AC), + UINT32_C(0x9CCD6AB2), UINT32_C(0x0312147B), UINT32_C(0xD67A443F), + UINT32_C(0x75390C00)}, + {UINT32_C(0x21A1047C), UINT32_C(0x0F5A29A0), UINT32_C(0x83A146B8), + UINT32_C(0xCABB96FB), UINT32_C(0x2A3F2F48), UINT32_C(0x1375356A), + UINT32_C(0x83C57DB4), UINT32_C(0xDEAB7544), UINT32_C(0xF5AFA2F1), + UINT32_C(0x1AB71412), UINT32_C(0x73B58749), UINT32_C(0x21D94B48), + UINT32_C(0xFF2F369A), UINT32_C(0xBA87E6D5), UINT32_C(0xDBAE0E08), + UINT32_C(0x4B3B90B6)}}, + {{UINT32_C(0x9116F02B), UINT32_C(0xB8648E3F), UINT32_C(0xCEF02B4F), + UINT32_C(0xA5E5A03B), UINT32_C(0xA70F456A), UINT32_C(0x21EB9835), + UINT32_C(0xC8A7C423), UINT32_C(0x44865319), UINT32_C(0xBCD6C0AD), + UINT32_C(0x57DB3941), UINT32_C(0x7D371806), UINT32_C(0x20D97A3A), + UINT32_C(0x0F8A3D51), UINT32_C(0xBE61AA4F), UINT32_C(0x13CB7D2B), + UINT32_C(0x7A6E0BBA)}, + {UINT32_C(0xEEA5D6FB), UINT32_C(0xB3B98673), UINT32_C(0x87B03BAC), + UINT32_C(0x534EB45F), UINT32_C(0xA9508557), UINT32_C(0x6CEB244F), + UINT32_C(0xF209CC15), UINT32_C(0xA47FBAC7), UINT32_C(0x1FC65C19), + UINT32_C(0x41EBF99D), UINT32_C(0x7341650F), UINT32_C(0xD1477A86), + UINT32_C(0xB361E0F8), UINT32_C(0xC4E6EB8E), UINT32_C(0xD2B3D548), + UINT32_C(0x68FAF82E)}}, + {{UINT32_C(0xF92B039B), UINT32_C(0xB9CCA467), UINT32_C(0x0E6F2A2B), + UINT32_C(0x9F7180AF), UINT32_C(0xADA011F8), UINT32_C(0xC3084870), + UINT32_C(0x882D7A38), UINT32_C(0xC814D1DC), UINT32_C(0xD51C1D14), + UINT32_C(0x3A145072), UINT32_C(0xD70F8B08), UINT32_C(0x595AC55B), + UINT32_C(0x71EFED45), UINT32_C(0x67308D05), UINT32_C(0x22DBFA33), + UINT32_C(0x2C660B98)}, + {UINT32_C(0xAF8F2980), UINT32_C(0xC8EB4EEC), UINT32_C(0x6145AB09), + UINT32_C(0xBC8F2D72), UINT32_C(0xC22D5E84), UINT32_C(0x1A0A9D53), + UINT32_C(0x9ECD643E), UINT32_C(0x8E646008), UINT32_C(0xB541E2D8), + UINT32_C(0x6C704F66), UINT32_C(0x31995198), UINT32_C(0xEED597AA), + UINT32_C(0x619126C2), UINT32_C(0xB9032FA3), UINT32_C(0xB0A08F01), + UINT32_C(0x0CA4AEAB)}}, + {{UINT32_C(0xDB421144), UINT32_C(0xF48A003D), UINT32_C(0x9885A445), + UINT32_C(0x4A7FA592), UINT32_C(0x8E8FA3DB), UINT32_C(0x040AA1C2), + UINT32_C(0x91A15B11), UINT32_C(0xCE94D874), UINT32_C(0xF0E875B7), + UINT32_C(0x79490F6D), UINT32_C(0x70318E86), UINT32_C(0x743A531D), + UINT32_C(0xC4630CD1), UINT32_C(0xE88CA2AF), UINT32_C(0xF5C5D4AD), + UINT32_C(0x6E2FE529)}, + {UINT32_C(0xFE062D25), UINT32_C(0x619A4F46), UINT32_C(0xBD747C4F), + UINT32_C(0xCE1B5FAD), UINT32_C(0x3D512728), UINT32_C(0x3C428366), + UINT32_C(0x71AFAEC7), UINT32_C(0x7FE87908), UINT32_C(0x3DB8315E), + UINT32_C(0xB7006310), UINT32_C(0x7195E9B1), UINT32_C(0x97A0397B), + UINT32_C(0x84870127), UINT32_C(0x51EB939F), UINT32_C(0x517A32EE), + UINT32_C(0x768A3CD7)}}, + {{UINT32_C(0x257E424F), UINT32_C(0x25234FFA), UINT32_C(0xAD164952), + UINT32_C(0x5D80ACE8), UINT32_C(0x7B4C0F5D), UINT32_C(0x4B15F386), + UINT32_C(0xF95006BD), UINT32_C(0x71963894), UINT32_C(0x69963C75), + UINT32_C(0x4781B778), UINT32_C(0xFD339850), UINT32_C(0xDECD94FB), + UINT32_C(0x11A9D79C), UINT32_C(0x1533454E), UINT32_C(0x92BFCA33), + UINT32_C(0x3B17EC40)}, + {UINT32_C(0x12A30834), UINT32_C(0x58D0672A), UINT32_C(0x3E66F5D6), + UINT32_C(0x807B665B), UINT32_C(0xB164B077), UINT32_C(0xCD732AE8), + UINT32_C(0xF1F732BE), UINT32_C(0xED26F82E), UINT32_C(0x75A7B899), + UINT32_C(0x4E65CB2E), UINT32_C(0x3C72F22E), UINT32_C(0x2EA2BE74), + UINT32_C(0x4068CEFE), UINT32_C(0x60CD26F6), UINT32_C(0x1FEBEFAA), + UINT32_C(0x63734AC0)}}, + {{UINT32_C(0xE7203401), UINT32_C(0x290E6008), UINT32_C(0xA67A0F47), + UINT32_C(0x3497CEA1), UINT32_C(0x641F5B86), UINT32_C(0xB079862C), + UINT32_C(0x7A0D51D1), UINT32_C(0xDF3CB483), UINT32_C(0xBC8D25B7), + UINT32_C(0x4CC0DCD1), UINT32_C(0xBDFAC20F), UINT32_C(0x1034F5FF), + UINT32_C(0x6881DBFB), UINT32_C(0xC5896F31), UINT32_C(0x68A39778), + UINT32_C(0x2C6BD4A1)}, + {UINT32_C(0xF5CEDBE3), UINT32_C(0x6FAB7060), UINT32_C(0xF7141245), + UINT32_C(0xC51F3245), UINT32_C(0xC3EF1EEF), UINT32_C(0xA3FFA5A4), + UINT32_C(0x206172D5), UINT32_C(0x2FC2A0C7), UINT32_C(0x094E55D7), + UINT32_C(0x6616FCFF), UINT32_C(0x22EA071F), UINT32_C(0xC3F309FF), + UINT32_C(0xDD267FAA), UINT32_C(0x0685AADB), UINT32_C(0x6BC770C0), + UINT32_C(0x0AE3722A)}}, + {{UINT32_C(0xE67270FB), UINT32_C(0x7B11DD6A), UINT32_C(0x0016905D), + UINT32_C(0x0128A351), UINT32_C(0xBFE007A0), UINT32_C(0x9CE64782), + UINT32_C(0x7714E091), UINT32_C(0x7324986D), UINT32_C(0x269E4410), + UINT32_C(0x3E796B16), UINT32_C(0x9A97AD36), UINT32_C(0x707A148C), + UINT32_C(0x87D5B9AC), UINT32_C(0xBE29A340), UINT32_C(0xF0D882B4), + UINT32_C(0x2F92E67E)}, + {UINT32_C(0x57636C75), UINT32_C(0xB9F06642), UINT32_C(0xFB7F18EB), + UINT32_C(0xA803EF99), UINT32_C(0x1E9BF04A), UINT32_C(0x4B8A1D79), + UINT32_C(0x062068D6), UINT32_C(0x4C43526D), UINT32_C(0x800F0FF9), + UINT32_C(0xCA59CFF0), UINT32_C(0xE4389A8E), UINT32_C(0x8BE857C3), + UINT32_C(0x5383EDE8), UINT32_C(0x5042CF56), UINT32_C(0x0E02F40E), + UINT32_C(0x06791C9A)}}, + {{UINT32_C(0xF5D076B4), UINT32_C(0x18A74ACE), UINT32_C(0xE41EC2CF), + UINT32_C(0x050C2161), UINT32_C(0x484F2CD0), UINT32_C(0xECC5823D), + UINT32_C(0xAA7C332A), UINT32_C(0x63B7B1BD), UINT32_C(0xABEE9CD9), + UINT32_C(0xAC6A274D), UINT32_C(0x7B7A7DB1), UINT32_C(0xEAC874F8), + UINT32_C(0x734BEA81), UINT32_C(0x0FA4B8E8), UINT32_C(0x243D05BA), + UINT32_C(0x1ADA0B97)}, + {UINT32_C(0x822C8BC9), UINT32_C(0x724C084F), UINT32_C(0xA117425F), + UINT32_C(0xAE697A1B), UINT32_C(0x2CD06676), UINT32_C(0x39172804), + UINT32_C(0x23213E25), UINT32_C(0x87B4F920), UINT32_C(0xFC373ED4), + UINT32_C(0xCBA8C7A1), UINT32_C(0xD2F10FD2), UINT32_C(0xDAC6B96B), + UINT32_C(0xFD265CFF), UINT32_C(0xCC175798), UINT32_C(0xB731090A), + UINT32_C(0x1631D89C)}}, + {{UINT32_C(0x6D19CB56), UINT32_C(0xB639A208), UINT32_C(0x42A88733), + UINT32_C(0x78F0F353), UINT32_C(0xE0323B20), UINT32_C(0xC6BC527B), + UINT32_C(0x6DE64954), UINT32_C(0x3406CEDD), UINT32_C(0xBAF8A735), + UINT32_C(0xAA89168B), UINT32_C(0x2D7B04AB), UINT32_C(0x7F68CEA0), + UINT32_C(0x5EEC36D4), UINT32_C(0x6EAD81B2), UINT32_C(0xBBCE0784), + UINT32_C(0x1C41724E)}, + {UINT32_C(0x831BEE83), UINT32_C(0xDA5383AD), UINT32_C(0xF3C29716), + UINT32_C(0xA8B7BEE3), UINT32_C(0x35ACA35B), UINT32_C(0x5B7E0540), + UINT32_C(0xB8F21324), UINT32_C(0x8F006F3F), UINT32_C(0xA7B700CB), + UINT32_C(0x915849F8), UINT32_C(0xA455A08B), UINT32_C(0x77C5B34D), + UINT32_C(0xD6D73C0B), UINT32_C(0x13BA7C32), UINT32_C(0x6936AC88), + UINT32_C(0x65D599C9)}}, + {{UINT32_C(0x4DA5FFF8), UINT32_C(0xF636CFE8), UINT32_C(0xD1E6E947), + UINT32_C(0xE5FD754E), UINT32_C(0x388A72F1), UINT32_C(0x8F960362), + UINT32_C(0x381C1C38), UINT32_C(0x95B55A07), UINT32_C(0x1DF2F860), + UINT32_C(0x31E1D02D), UINT32_C(0x12EA25F5), UINT32_C(0xC03243C7), + UINT32_C(0xC28C0062), UINT32_C(0x5FD87B58), UINT32_C(0x9D950661), + UINT32_C(0x5769E94D)}, + {UINT32_C(0x6509E6E7), UINT32_C(0xF88C7CCF), UINT32_C(0xD3971A21), + UINT32_C(0x8A021BAB), UINT32_C(0x9B284C2F), UINT32_C(0x2655B4AA), + UINT32_C(0xC7050955), UINT32_C(0xC3E14580), UINT32_C(0x90E60DDF), + UINT32_C(0x63B332E2), UINT32_C(0xF1CD1B51), UINT32_C(0x6AB86D32), + UINT32_C(0x13BC748E), UINT32_C(0x9896AC11), UINT32_C(0x40FC1EBC), + UINT32_C(0x516D4D4A)}}, + {{UINT32_C(0x8F7B417D), UINT32_C(0xC27DBB0A), UINT32_C(0x770CF92D), + UINT32_C(0xEE24827A), UINT32_C(0x5F9A2A6B), UINT32_C(0x22E08B64), + UINT32_C(0xE10F76A1), UINT32_C(0xAE739513), UINT32_C(0xFF544277), + UINT32_C(0xEC6E2D9D), UINT32_C(0x740DB83A), UINT32_C(0x470C22B7), + UINT32_C(0xEE4F1E82), UINT32_C(0x643B7953), UINT32_C(0x5556FB59), + UINT32_C(0x66409497)}, + {UINT32_C(0x728114E6), UINT32_C(0x4C15C4CB), UINT32_C(0x1F29EF7F), + UINT32_C(0xEFF1BB9F), UINT32_C(0x259562ED), UINT32_C(0x8E00B92A), + UINT32_C(0x9838D769), UINT32_C(0xF28B146C), UINT32_C(0x206622CC), + UINT32_C(0x3D7C8FFF), UINT32_C(0x86457FAD), UINT32_C(0xD521181D), + UINT32_C(0x9D9A3085), UINT32_C(0xBF56F663), UINT32_C(0xA24B415A), + UINT32_C(0x11BA1FED)}}, + {{UINT32_C(0x035701C5), UINT32_C(0x149597F7), UINT32_C(0x6361CC7E), + UINT32_C(0x055B1C4B), UINT32_C(0xC221AF72), UINT32_C(0x10DF1572), + UINT32_C(0xC3D3A167), UINT32_C(0x6941B1E9), UINT32_C(0x38D00AF6), + UINT32_C(0x29985CAB), UINT32_C(0x19E385F7), UINT32_C(0xDD9B8391), + UINT32_C(0xF2E81932), UINT32_C(0x65268E33), UINT32_C(0x5C07CEF9), + UINT32_C(0x4FC87273)}, + {UINT32_C(0xEA012B70), UINT32_C(0xE1644429), UINT32_C(0x4BDF6ACE), + UINT32_C(0x639FA874), UINT32_C(0xF65480CF), UINT32_C(0x7BAE6AFF), + UINT32_C(0x606EFF3A), UINT32_C(0xB9CA15AF), UINT32_C(0xC04C5263), + UINT32_C(0x10F5918A), UINT32_C(0xED3D0F98), UINT32_C(0x50F27E68), + UINT32_C(0x3134D7FA), UINT32_C(0x647C1AD3), UINT32_C(0xF869EEFB), + UINT32_C(0x08EF017D)}}, + {{UINT32_C(0xF229A34B), UINT32_C(0xD474B5FD), UINT32_C(0x29E0A164), + UINT32_C(0x03819D4E), UINT32_C(0x8D0910B9), UINT32_C(0x0D24139A), + UINT32_C(0x9C2D8E8D), UINT32_C(0xB4F45C8D), UINT32_C(0x2F21718A), + UINT32_C(0x10E4BEA2), UINT32_C(0x63DA06E8), UINT32_C(0xD3D7ECDE), + UINT32_C(0xF148B0ED), UINT32_C(0xB2AAB06A), UINT32_C(0xAABD0F7A), + UINT32_C(0x630152B1)}, + {UINT32_C(0x3B1563B4), UINT32_C(0xCF4D05C2), UINT32_C(0x6F355349), + UINT32_C(0xBFA58B4E), UINT32_C(0x04D1A769), UINT32_C(0x2FA4A29C), + UINT32_C(0x1AEDA992), UINT32_C(0xF4E15F9D), UINT32_C(0x877819C9), + UINT32_C(0x0FDABCEB), UINT32_C(0xC3EDB0A3), UINT32_C(0x5EDFCC1C), + UINT32_C(0xD1DBCF40), UINT32_C(0x76625DC7), UINT32_C(0x2A7BD819), + UINT32_C(0x3E558CF0)}}, + {{UINT32_C(0x07A883A0), UINT32_C(0x07C7924F), UINT32_C(0x010EA080), + UINT32_C(0x18484807), UINT32_C(0xB6B2B992), UINT32_C(0xDF8602FE), + UINT32_C(0xAA03AA11), UINT32_C(0x38A2EFDC), UINT32_C(0x19B2BB14), + UINT32_C(0x60B00311), UINT32_C(0x15E28BF3), UINT32_C(0x9E12E7FE), + UINT32_C(0xBB0271CD), UINT32_C(0x2AC0917B), UINT32_C(0x1558FAAD), + UINT32_C(0x24126EAE)}, + {UINT32_C(0x19170EDF), UINT32_C(0x2EB303EF), UINT32_C(0xF5779AD2), + UINT32_C(0x6945946B), UINT32_C(0x31B7DF96), UINT32_C(0xE4E5635A), + UINT32_C(0xD6AC3252), UINT32_C(0x2B371D13), UINT32_C(0x8116C539), + UINT32_C(0x38E78198), UINT32_C(0x6C89FAF6), UINT32_C(0x76DF4A2C), + UINT32_C(0x6F233984), UINT32_C(0xDFB6755D), UINT32_C(0xD382985D), + UINT32_C(0x0CBF63F6)}}, + }, + { + {{UINT32_C(0x56B39FA7), UINT32_C(0x936D53BC), UINT32_C(0x511D5744), + UINT32_C(0x751274EC), UINT32_C(0xF29D41C2), UINT32_C(0xDAF4432A), + UINT32_C(0x014F8954), UINT32_C(0x717A68C1), UINT32_C(0x736F4024), + UINT32_C(0x6D5D3F05), UINT32_C(0x12D037D9), UINT32_C(0x52E785F8), + UINT32_C(0x02CA06C4), UINT32_C(0xC04CBA19), UINT32_C(0x9259A368), + UINT32_C(0x43207806)}, + {UINT32_C(0x2BE51135), UINT32_C(0x1211482B), UINT32_C(0xE4D32066), + UINT32_C(0x5B473F6E), UINT32_C(0x4ADE99FC), UINT32_C(0x91991C8E), + UINT32_C(0x4865136B), UINT32_C(0x124378E8), UINT32_C(0xBFFFC5CC), + UINT32_C(0xAF791646), UINT32_C(0x36D38141), UINT32_C(0xB7DBA115), + UINT32_C(0x5BD595B7), UINT32_C(0x0E879426), UINT32_C(0xCACC032E), + UINT32_C(0x39B7D642)}}, + {{UINT32_C(0xD756CE1D), UINT32_C(0x76ACE7C8), UINT32_C(0xF8A89F09), + UINT32_C(0x4BEC8290), UINT32_C(0x690139DA), UINT32_C(0xE8FE848C), + UINT32_C(0x6A541656), UINT32_C(0x8C5CB5CC), UINT32_C(0xA79F1A2B), + UINT32_C(0x6127BB25), UINT32_C(0xE17D0549), UINT32_C(0x955551CC), + UINT32_C(0x58E7C3FD), UINT32_C(0x648A32E9), UINT32_C(0xA60D449C), + UINT32_C(0x366035A5)}, + {UINT32_C(0x67A48368), UINT32_C(0xA4CF0CCB), UINT32_C(0xBE344234), + UINT32_C(0xCF7D74F7), UINT32_C(0x8CFFCCCE), UINT32_C(0x006DFFB4), + UINT32_C(0xFB55072B), UINT32_C(0xBBC66664), UINT32_C(0x5EFD8AF6), + UINT32_C(0xAA51DDD1), UINT32_C(0x6F004C47), UINT32_C(0x88D0CFD4), + UINT32_C(0xD97BBB13), UINT32_C(0xD18C2DBF), UINT32_C(0x1E7E68D2), + UINT32_C(0x5E598200)}}, + {{UINT32_C(0x466B58D2), UINT32_C(0xFF9FB488), UINT32_C(0xA8041078), + UINT32_C(0x153A751D), UINT32_C(0xD5817ADF), UINT32_C(0xD7E96CB3), + UINT32_C(0x511775D8), UINT32_C(0x56A7A135), UINT32_C(0x77E5DE7A), + UINT32_C(0xB48FB406), UINT32_C(0x997A6721), UINT32_C(0x4DE670FB), + UINT32_C(0x86EFBADA), UINT32_C(0x446019B5), UINT32_C(0xFA535082), + UINT32_C(0x403CC005)}, + {UINT32_C(0xC2FA986D), UINT32_C(0xF85BFEE2), UINT32_C(0x0E0C320B), + UINT32_C(0xF2B77B88), UINT32_C(0x8FE98FA0), UINT32_C(0xAEFE1972), + UINT32_C(0xE8DB8196), UINT32_C(0x291FD9C7), UINT32_C(0xF579D9D0), + UINT32_C(0x7C3AB36D), UINT32_C(0x764622DD), UINT32_C(0x7F202BEF), + UINT32_C(0x804CEBFF), UINT32_C(0xDFD4DE34), UINT32_C(0x683B7281), + UINT32_C(0x25CA634E)}}, + {{UINT32_C(0xEEB585DE), UINT32_C(0x2E3BCCC2), UINT32_C(0x9C7AB9D7), + UINT32_C(0x728BAD6D), UINT32_C(0x5C38CDF1), UINT32_C(0xE298BC83), + UINT32_C(0xB610385E), UINT32_C(0x0D88D423), UINT32_C(0x71744E3A), + UINT32_C(0x5710F235), UINT32_C(0x9681CFF4), UINT32_C(0xD9312CC9), + UINT32_C(0xF3D5B3BC), UINT32_C(0x1C46AB4A), UINT32_C(0xE2631926), + UINT32_C(0x48BE540B)}, + {UINT32_C(0x5CCDF14D), UINT32_C(0xBFAB35A1), UINT32_C(0xD778F586), + UINT32_C(0x16C3216C), UINT32_C(0x04128BB2), UINT32_C(0x2A604800), + UINT32_C(0xA7D2E1AA), UINT32_C(0x05505889), UINT32_C(0x1DE7C7B4), + UINT32_C(0xBE8B94BE), UINT32_C(0x05BB8DEC), UINT32_C(0x53E72EBF), + UINT32_C(0x2870C597), UINT32_C(0x1A38C5DA), UINT32_C(0xDD36B123), + UINT32_C(0x76F0E77B)}}, + {{UINT32_C(0x83B68DC3), UINT32_C(0xC13D1E8A), UINT32_C(0xA93D168B), + UINT32_C(0x5F7291EF), UINT32_C(0xCA88F0F6), UINT32_C(0xD1C56274), + UINT32_C(0x868E3651), UINT32_C(0x58EDFC8C), UINT32_C(0x70692949), + UINT32_C(0x9D8F42AF), UINT32_C(0x81B6E052), UINT32_C(0x65903C33), + UINT32_C(0x262E1F70), UINT32_C(0xAD71B078), UINT32_C(0xC40DC22F), + UINT32_C(0x7A60D3BB)}, + {UINT32_C(0xBA1FC54F), UINT32_C(0x6B64F0DB), UINT32_C(0x81F84A0B), + UINT32_C(0x6DDB148C), UINT32_C(0x53955B40), UINT32_C(0xCFBD9662), + UINT32_C(0x9B35DB3B), UINT32_C(0x67D49D07), UINT32_C(0xA8EF7DB2), + UINT32_C(0x6ED336DD), UINT32_C(0x03F2A331), UINT32_C(0x7AAF4B8A), + UINT32_C(0x5C3873CA), UINT32_C(0x9751DBE1), UINT32_C(0x8193A7ED), + UINT32_C(0x78479B10)}}, + {{UINT32_C(0x487DB2BF), UINT32_C(0xB05EDD9A), UINT32_C(0x58F7E778), + UINT32_C(0xF9051591), UINT32_C(0xDC23CBF4), UINT32_C(0xBD643BE6), + UINT32_C(0xC1EA2427), UINT32_C(0xBCE094EC), UINT32_C(0x4EB1BD95), + UINT32_C(0x2A3F3B4B), UINT32_C(0x6F5E1428), UINT32_C(0xBA8FC9DC), + UINT32_C(0x9F053047), UINT32_C(0x7DC28C94), UINT32_C(0xC553DC91), + UINT32_C(0x58117A0C)}, + {UINT32_C(0xD4A6137C), UINT32_C(0x4888B1E8), UINT32_C(0xF8DCBD03), + UINT32_C(0x5DC05984), UINT32_C(0xD2F55576), UINT32_C(0xAE2C8657), + UINT32_C(0xFC4DA255), UINT32_C(0x54721BEF), UINT32_C(0x802C9EBF), + UINT32_C(0x0A326693), UINT32_C(0x91186DF0), UINT32_C(0xA33294AA), + UINT32_C(0xB822390D), UINT32_C(0x716BD76F), UINT32_C(0x7C4AA61B), + UINT32_C(0x7F023C0B)}}, + {{UINT32_C(0x046A8017), UINT32_C(0x6506DA35), UINT32_C(0xF785115E), + UINT32_C(0x23083C16), UINT32_C(0x24051BBD), UINT32_C(0x78581137), + UINT32_C(0x5088EBFE), UINT32_C(0xCD36D48F), UINT32_C(0x5E542ACC), + UINT32_C(0x23F7F0A3), UINT32_C(0x7D015B1E), UINT32_C(0x72018795), + UINT32_C(0x38D2D742), UINT32_C(0xA69E68D4), UINT32_C(0x023B5C20), + UINT32_C(0x36808A3B)}, + {UINT32_C(0x1FEAB6D8), UINT32_C(0x660D03D6), UINT32_C(0x58D53E94), + UINT32_C(0x77A1E185), UINT32_C(0x74024E57), UINT32_C(0x67425F4E), + UINT32_C(0x0CC26788), UINT32_C(0x3B916008), UINT32_C(0xE3643998), + UINT32_C(0x0C7D287E), UINT32_C(0x27B3B31F), UINT32_C(0xB0D98DD1), + UINT32_C(0xBB980CFC), UINT32_C(0xBA621971), UINT32_C(0x404A2DE1), + UINT32_C(0x77591087)}}, + {{UINT32_C(0xC15C3D38), UINT32_C(0xB768C63D), UINT32_C(0x54DBA325), + UINT32_C(0x281AEC4D), UINT32_C(0x50C9B1F3), UINT32_C(0xBB51D2E4), + UINT32_C(0xE7268C94), UINT32_C(0x086BB9BB), UINT32_C(0x0C7ED37A), + UINT32_C(0x9E0AF351), UINT32_C(0x39145AA3), UINT32_C(0xDBC88528), + UINT32_C(0xB1AB786C), UINT32_C(0xA70373BE), UINT32_C(0x0A73090A), + UINT32_C(0x273AC4D9)}, + {UINT32_C(0xC280E9F5), UINT32_C(0xD618DB6A), UINT32_C(0xA9685A4B), + UINT32_C(0x9D874643), UINT32_C(0x8A9C1951), UINT32_C(0x7EF799B4), + UINT32_C(0xFFBA36BB), UINT32_C(0xAEAE400C), UINT32_C(0x145DC10A), + UINT32_C(0x889119CB), UINT32_C(0x1BF7AE53), UINT32_C(0x08B052FF), + UINT32_C(0xE3F04B93), UINT32_C(0xDEF76EC0), UINT32_C(0x06DC2CC5), + UINT32_C(0x35A13BB2)}}, + {{UINT32_C(0x613C9FD0), UINT32_C(0x97C54E1C), UINT32_C(0x42581F50), + UINT32_C(0x7D4BEB41), UINT32_C(0x5BCA7CAF), UINT32_C(0x9401F44A), + UINT32_C(0x36115D18), UINT32_C(0x5FD7E0B0), UINT32_C(0xCD0DCE05), + UINT32_C(0x714FC514), UINT32_C(0x2AB3265E), UINT32_C(0xF3B73708), + UINT32_C(0x8798EA8B), UINT32_C(0x118FB47A), UINT32_C(0xFE5C2BFF), + UINT32_C(0x79A1F4CD)}, + {UINT32_C(0x103FF4DC), UINT32_C(0xC0D3ABAA), UINT32_C(0x146D121C), + UINT32_C(0xF5D504ED), UINT32_C(0x842CABA1), UINT32_C(0x38B7419B), + UINT32_C(0x907320F6), UINT32_C(0xE1730788), UINT32_C(0xE111875F), + UINT32_C(0x0037793B), UINT32_C(0x0AAB7249), UINT32_C(0x715042EA), + UINT32_C(0x15630B39), UINT32_C(0xF57D27EF), UINT32_C(0x5D0153CA), + UINT32_C(0x3B503330)}}, + {{UINT32_C(0xC8AAD5E3), UINT32_C(0x44E75F39), UINT32_C(0x506B9C14), + UINT32_C(0x3890E8AE), UINT32_C(0x38915D2F), UINT32_C(0xDDA7D91F), + UINT32_C(0x5F28E467), UINT32_C(0x412802B8), UINT32_C(0x711B51DC), + UINT32_C(0x08FF3E17), UINT32_C(0x81C96D4A), UINT32_C(0x0F23C1EF), + UINT32_C(0x57511A7E), UINT32_C(0x7B8E28A1), UINT32_C(0x42C2BACF), + UINT32_C(0x60200370)}, + {UINT32_C(0x8559DC01), UINT32_C(0x5457AA66), UINT32_C(0xBB083219), + UINT32_C(0xDB0CBC6F), UINT32_C(0xF981BE19), UINT32_C(0x316C4876), + UINT32_C(0x9B98D6AC), UINT32_C(0xA04412B9), UINT32_C(0x2D95C876), + UINT32_C(0x20964CB8), UINT32_C(0x51009C2C), UINT32_C(0xF643F29E), + UINT32_C(0x30C43DD3), UINT32_C(0x5316D85A), UINT32_C(0x46A82D48), + UINT32_C(0x104EB0C8)}}, + {{UINT32_C(0x0B183769), UINT32_C(0xC05ADD9A), UINT32_C(0x653E726A), + UINT32_C(0x14E8EC7A), UINT32_C(0x8D457375), UINT32_C(0xE5311F87), + UINT32_C(0x25D9120D), UINT32_C(0xCC1585A8), UINT32_C(0x71A945BC), + UINT32_C(0x04F39BE3), UINT32_C(0x18298210), UINT32_C(0xFBFAD374), + UINT32_C(0x3A9D2053), UINT32_C(0x95F0BD1E), UINT32_C(0xC056D70E), + UINT32_C(0x1EAEEFED)}, + {UINT32_C(0x1E6E949A), UINT32_C(0x3274833C), UINT32_C(0xC1D152E6), + UINT32_C(0xA38EA2CA), UINT32_C(0x1B9A48BA), UINT32_C(0xE77A1027), + UINT32_C(0x69B03ED3), UINT32_C(0xD44CF886), UINT32_C(0x2D9D2B8F), + UINT32_C(0xB52D35E7), UINT32_C(0xF99BD52B), UINT32_C(0xFA67F927), + UINT32_C(0xDF337872), UINT32_C(0x3910D907), UINT32_C(0x90BF7A7F), + UINT32_C(0x53E3909C)}}, + {{UINT32_C(0x8FC5B40A), UINT32_C(0xC558DB4E), UINT32_C(0x7511657E), + UINT32_C(0x330982A3), UINT32_C(0x0B883053), UINT32_C(0x81A47621), + UINT32_C(0x3F3DB1D4), UINT32_C(0xB1F53471), UINT32_C(0x0C804E24), + UINT32_C(0x8A2B835A), UINT32_C(0x3012783B), UINT32_C(0xF8537A45), + UINT32_C(0x9DC2A56A), UINT32_C(0xC761FC41), UINT32_C(0x2C12BE25), + UINT32_C(0x50369DCB)}, + {UINT32_C(0xCA00D808), UINT32_C(0x19877D98), UINT32_C(0x1DA7BD8F), + UINT32_C(0x305586B5), UINT32_C(0x0FB6F9E7), UINT32_C(0x683BF46E), + UINT32_C(0x7E53ECB1), UINT32_C(0xF23F5457), UINT32_C(0x17EE25E8), + UINT32_C(0xA09A0901), UINT32_C(0x5BAA52EC), UINT32_C(0x61AF9305), + UINT32_C(0xA8104024), UINT32_C(0xC12B74BE), UINT32_C(0x60A876E3), + UINT32_C(0x6BDABBAA)}}, + {{UINT32_C(0x438800F3), UINT32_C(0x0EC8ADDA), UINT32_C(0x4FBF0259), + UINT32_C(0xA47197E6), UINT32_C(0x1767F99F), UINT32_C(0x324E0696), + UINT32_C(0xE440710A), UINT32_C(0x0E455BC2), UINT32_C(0x7A5984F7), + UINT32_C(0xFE231689), UINT32_C(0x3CF323D8), UINT32_C(0x7706D5C7), + UINT32_C(0xFFC9FB5E), UINT32_C(0x6DFE4B08), UINT32_C(0x8F9D5207), + UINT32_C(0x5E912EC7)}, + {UINT32_C(0xD7D1AC99), UINT32_C(0x9B71034D), UINT32_C(0x33D5ABF4), + UINT32_C(0x5786B8AD), UINT32_C(0x426E2B80), UINT32_C(0x70E625B7), + UINT32_C(0x6A33883F), UINT32_C(0x71D53ABB), UINT32_C(0xAA10AA82), + UINT32_C(0xB42DE25A), UINT32_C(0xC313C9F3), UINT32_C(0x709B3CDF), + UINT32_C(0x99A04BD3), UINT32_C(0x49F3BBC7), UINT32_C(0x3390B190), + UINT32_C(0x5B56D9BB)}}, + {{UINT32_C(0x05DAE0B4), UINT32_C(0xA4D655E5), UINT32_C(0x7016EDE7), + UINT32_C(0x3402DB14), UINT32_C(0x117097DC), UINT32_C(0x58D4EFC5), + UINT32_C(0x61AE9FDC), UINT32_C(0x4F397AFC), UINT32_C(0x85DE0E4A), + UINT32_C(0x3EE32FBE), UINT32_C(0x18F9DA9B), UINT32_C(0xE5C94100), + UINT32_C(0x30778D74), UINT32_C(0x6248B570), UINT32_C(0xFF879B98), + UINT32_C(0x569D70C9)}, + {UINT32_C(0x79A7786F), UINT32_C(0x385FD4C8), UINT32_C(0x92C6E962), + UINT32_C(0x779353B9), UINT32_C(0x5AA82E08), UINT32_C(0x9C9103FB), + UINT32_C(0xEC3B37D1), UINT32_C(0x128BD7DD), UINT32_C(0x98AE8C82), + UINT32_C(0xCC0376F8), UINT32_C(0x289AFB7D), UINT32_C(0xDD33B1A3), + UINT32_C(0xF1D2F3AC), UINT32_C(0x2B3A6BE5), UINT32_C(0x58C1DCA0), + UINT32_C(0x2B342E8F)}}, + {{UINT32_C(0x924940FC), UINT32_C(0x4ADA9F0F), UINT32_C(0xBD4E799E), + UINT32_C(0x636260E5), UINT32_C(0x85ECD23F), UINT32_C(0x10650FC8), + UINT32_C(0x32AE8105), UINT32_C(0x04765F05), UINT32_C(0xDEEBFAF2), + UINT32_C(0x22F515E9), UINT32_C(0xEA6ED3BA), UINT32_C(0xFB6611B1), + UINT32_C(0xB116A647), UINT32_C(0x2D260305), UINT32_C(0xCEB63ED4), + UINT32_C(0x540A895A)}, + {UINT32_C(0x65640BD2), UINT32_C(0xA5C897EC), UINT32_C(0x4EB90B65), + UINT32_C(0x1D82AD21), UINT32_C(0xA2BD6C71), UINT32_C(0x2A00C3C3), + UINT32_C(0xA185CE8C), UINT32_C(0xD9BE5D85), UINT32_C(0xE02E9DCD), + UINT32_C(0x0FA039FE), UINT32_C(0x806B50C1), UINT32_C(0xAD1DC7C0), + UINT32_C(0x0C6AB58F), UINT32_C(0xA78992C2), UINT32_C(0xFBE348EA), + UINT32_C(0x7D58FDA7)}}, + {{UINT32_C(0x6F4DBDFC), UINT32_C(0x07E65277), UINT32_C(0xE4E35AA2), + UINT32_C(0xC35157C0), UINT32_C(0xFAF9CF8D), UINT32_C(0x9844955D), + UINT32_C(0xE577A918), UINT32_C(0xD1832D2F), UINT32_C(0x212A678C), + UINT32_C(0xCDD6CCFD), UINT32_C(0x262F2BC7), UINT32_C(0x19406763), + UINT32_C(0x7DCF82E3), UINT32_C(0x1B5FE0FC), UINT32_C(0x28083B97), + UINT32_C(0x72FCB512)}, + {UINT32_C(0xCAE3C67A), UINT32_C(0x2EB13174), UINT32_C(0x28F8CB44), + UINT32_C(0x571DBD35), UINT32_C(0x7B2F56B1), UINT32_C(0x3F3514DA), + UINT32_C(0x2E1D4CD8), UINT32_C(0xC5906697), UINT32_C(0x3709FD27), + UINT32_C(0x9F9589DA), UINT32_C(0xDCF0E714), UINT32_C(0x539CBA98), + UINT32_C(0x36D31BAC), UINT32_C(0xC6FDBE82), UINT32_C(0x8860078E), + UINT32_C(0x22501C25)}}, + }, + { + {{UINT32_C(0xE7462A35), UINT32_C(0xB6BAA4C5), UINT32_C(0x2DE0E694), + UINT32_C(0x4CABEF23), UINT32_C(0x67A94587), UINT32_C(0xE595F2CE), + UINT32_C(0x65DE13EF), UINT32_C(0x0B4D6B80), UINT32_C(0xB88601AA), + UINT32_C(0x6ED1FA63), UINT32_C(0x254800DF), UINT32_C(0x63DAF3EF), + UINT32_C(0x6EDECF60), UINT32_C(0x15F07C6B), UINT32_C(0x49F82DF6), + UINT32_C(0x746CB00F)}, + {UINT32_C(0xF95DC407), UINT32_C(0x4860833F), UINT32_C(0xD4D68D59), + UINT32_C(0x245FDFB1), UINT32_C(0x28C585C1), UINT32_C(0xFD7E1346), + UINT32_C(0xAA744D74), UINT32_C(0x3307AAE7), UINT32_C(0x27C71537), + UINT32_C(0xAB21F1D5), UINT32_C(0x541ADB51), UINT32_C(0x1BED3B9C), + UINT32_C(0x0B804584), UINT32_C(0x48E65628), UINT32_C(0x96C62E82), + UINT32_C(0x10213DC3)}}, + {{UINT32_C(0x9E900795), UINT32_C(0xA971A321), UINT32_C(0xA28AD250), + UINT32_C(0x41151E65), UINT32_C(0xB46F0286), UINT32_C(0x88FBF84C), + UINT32_C(0x2C5AA2BF), UINT32_C(0xCE5E34E3), UINT32_C(0xFE74FBD6), + UINT32_C(0xC30F0784), UINT32_C(0x9DDDC5BB), UINT32_C(0xA19ACA51), + UINT32_C(0xD954B6AF), UINT32_C(0x30CB6369), UINT32_C(0x1BA9F34A), + UINT32_C(0x20C72B2B)}, + {UINT32_C(0x421721EE), UINT32_C(0x0D9F6CC9), UINT32_C(0x701F3853), + UINT32_C(0x5239E3D2), UINT32_C(0x10A37D0D), UINT32_C(0x48CF795D), + UINT32_C(0xC1454415), UINT32_C(0x2822ACF8), UINT32_C(0xF9392C27), + UINT32_C(0x9EF24913), UINT32_C(0x33F3F273), UINT32_C(0x93178976), + UINT32_C(0xAADFE5DB), UINT32_C(0x0AD1CAB2), UINT32_C(0x02019622), + UINT32_C(0x24541951)}}, + {{UINT32_C(0x122FE6A1), UINT32_C(0x577E8E89), UINT32_C(0x29DCABC8), + UINT32_C(0xDFED3EF0), UINT32_C(0x1F1EC613), UINT32_C(0x91B0AE21), + UINT32_C(0x43EC585C), UINT32_C(0xF4FB2E9F), UINT32_C(0x5AFDC7FC), + UINT32_C(0x402F8D43), UINT32_C(0x3BFC6DDF), UINT32_C(0x7DF6E3F4), + UINT32_C(0x2094F2CE), UINT32_C(0x4B14B20B), UINT32_C(0xC9F3FCE9), + UINT32_C(0x6621FA23)}, + {UINT32_C(0x61482134), UINT32_C(0xC167636B), UINT32_C(0xBD89AA34), + UINT32_C(0xC2D96AF4), UINT32_C(0x77A1383E), UINT32_C(0x4D19C547), + UINT32_C(0x994B20EC), UINT32_C(0x86476C72), UINT32_C(0x3611027E), + UINT32_C(0xD71188DA), UINT32_C(0xBFA77EA0), UINT32_C(0xEEB9CB25), + UINT32_C(0x7A9FFDFB), UINT32_C(0x63E03706), UINT32_C(0x9E1F711D), + UINT32_C(0x52FBC735)}}, + {{UINT32_C(0x9DCD39C8), UINT32_C(0x4D58058F), UINT32_C(0x560A57E3), + UINT32_C(0x742DCAC8), UINT32_C(0xC40593C3), UINT32_C(0x51314E8A), + UINT32_C(0xBBE9F40F), UINT32_C(0xAA35CAF4), UINT32_C(0x7B4DF87C), + UINT32_C(0xD0D06ACC), UINT32_C(0x897586CC), UINT32_C(0xE02B48CB), + UINT32_C(0x9F14AB3B), UINT32_C(0x30AB25AB), UINT32_C(0x2DCFFD42), + UINT32_C(0x77B9D8A2)}, + {UINT32_C(0x43F00508), UINT32_C(0xDE1678E7), UINT32_C(0xE59D0799), + UINT32_C(0x2F82D94E), UINT32_C(0x7D85FF61), UINT32_C(0x1D68DC5F), + UINT32_C(0xA577E85E), UINT32_C(0xCCD286EA), UINT32_C(0x05653CE9), + UINT32_C(0x78202172), UINT32_C(0x4B096045), UINT32_C(0x80BCF42C), + UINT32_C(0x8D9DC78C), UINT32_C(0x983AC1DA), UINT32_C(0x757F008E), + UINT32_C(0x48ADE8D1)}}, + {{UINT32_C(0xF131C430), UINT32_C(0xFE9CADC1), UINT32_C(0xD4ACF7F9), + UINT32_C(0xCB4FACAE), UINT32_C(0x4B81AA0C), UINT32_C(0xA75B35B6), + UINT32_C(0x6132294C), UINT32_C(0xDB73BF2A), UINT32_C(0x35FC4FBC), + UINT32_C(0xDC1998EE), UINT32_C(0xF1A96BA6), UINT32_C(0x1125CF55), + UINT32_C(0x1AC0769D), UINT32_C(0x800577A8), UINT32_C(0xE4CDAC1C), + UINT32_C(0x0AF21977)}, + {UINT32_C(0x91DD37F9), UINT32_C(0x12CAE81D), UINT32_C(0x1A432775), + UINT32_C(0x81F5BAF6), UINT32_C(0x81CBCB7D), UINT32_C(0x62A87C5D), + UINT32_C(0x2D311E47), UINT32_C(0x781596EF), UINT32_C(0x0EA6CE86), + UINT32_C(0xADA41A24), UINT32_C(0x9198BFEE), UINT32_C(0x064E561D), + UINT32_C(0x8784FC32), UINT32_C(0xD2EBB0D7), UINT32_C(0xE00D527A), + UINT32_C(0x60F7F749)}}, + {{UINT32_C(0xF9F5101B), UINT32_C(0xB6220879), UINT32_C(0xED750B14), + UINT32_C(0x8E51E911), UINT32_C(0x56B8B8BB), UINT32_C(0x5A0FF851), + UINT32_C(0xE97F0F1B), UINT32_C(0x6EFDB4CC), UINT32_C(0xCFEE47C1), + UINT32_C(0xEF4E3272), UINT32_C(0xDB73FA56), UINT32_C(0xFB33D3FF), + UINT32_C(0xD5C182A7), UINT32_C(0x8702D241), UINT32_C(0xB061F4C9), + UINT32_C(0x1342C905)}, + {UINT32_C(0x40B3B920), UINT32_C(0xCCFDFF8B), UINT32_C(0x234F25BE), + UINT32_C(0xE01ADAA1), UINT32_C(0xCA98B24D), UINT32_C(0x6EE2AFD9), + UINT32_C(0x933CF022), UINT32_C(0x833C8017), UINT32_C(0x8B7E88DA), + UINT32_C(0x9446CDC8), UINT32_C(0x0252B0C4), UINT32_C(0x08A83DEB), + UINT32_C(0x983B95BF), UINT32_C(0x5AFAE687), UINT32_C(0xBBF76F93), + UINT32_C(0x417A1691)}}, + {{UINT32_C(0xE270155C), UINT32_C(0xF1100073), UINT32_C(0x37D73458), + UINT32_C(0x913B27AB), UINT32_C(0xF8799368), UINT32_C(0x0723B646), + UINT32_C(0xB8599816), UINT32_C(0x891C7858), UINT32_C(0xAD13A257), + UINT32_C(0xBDCF3C7A), UINT32_C(0x106E5B5A), UINT32_C(0xF473BEE8), + UINT32_C(0x27722F06), UINT32_C(0xB093D484), UINT32_C(0x8E4CF84D), + UINT32_C(0x33895F5C)}, + {UINT32_C(0x1A92A242), UINT32_C(0x530F59FE), UINT32_C(0xD5444E38), + UINT32_C(0x703FDC05), UINT32_C(0xA9B55C56), UINT32_C(0xEC6FB903), + UINT32_C(0xECEFEF64), UINT32_C(0x102929BA), UINT32_C(0xBFC1F153), + UINT32_C(0x76B9B329), UINT32_C(0x7A32A9E4), UINT32_C(0x3F794AD7), + UINT32_C(0xAD9D9F76), UINT32_C(0x9A344BD7), UINT32_C(0x8F22FE76), + UINT32_C(0x1281308B)}}, + {{UINT32_C(0x55D6DFC4), UINT32_C(0xDBAD1D04), UINT32_C(0x78FB03A6), + UINT32_C(0x1674C09F), UINT32_C(0x04F4EB90), UINT32_C(0x10F038F0), + UINT32_C(0xC933F8C3), UINT32_C(0xD6F8CEBA), UINT32_C(0x322E4AE8), + UINT32_C(0x6D3018D6), UINT32_C(0x65FB0400), UINT32_C(0x3C0E8DD8), + UINT32_C(0xF8603F6E), UINT32_C(0x0E04FEA5), UINT32_C(0xCF3D2FBA), + UINT32_C(0x417F6C35)}, + {UINT32_C(0xC6DBF972), UINT32_C(0x4F62D458), UINT32_C(0x3C69018C), + UINT32_C(0x1D66CC0B), UINT32_C(0x4F1297A2), UINT32_C(0xDB741BC6), + UINT32_C(0xDDEC7115), UINT32_C(0x7EEDA8D5), UINT32_C(0x9A910CA8), + UINT32_C(0x0B5D07B3), UINT32_C(0x3D0FA9E7), UINT32_C(0x5D74BC7E), + UINT32_C(0x4DC25E76), UINT32_C(0x0F3D1063), UINT32_C(0xDDD0F35E), + UINT32_C(0x7BDF3F13)}}, + {{UINT32_C(0x49A8E647), UINT32_C(0xF4B8E8F9), UINT32_C(0xC9C7F249), + UINT32_C(0xD2045FF4), UINT32_C(0x1DFCE331), UINT32_C(0xA73E2073), + UINT32_C(0x60186A35), UINT32_C(0x538FE0C2), UINT32_C(0xD44D55DC), + UINT32_C(0xF6931385), UINT32_C(0xBD2D5D5C), UINT32_C(0xAA0FAE8B), + UINT32_C(0x0CE9E7B7), UINT32_C(0xA1DF2451), UINT32_C(0xF6E915DF), + UINT32_C(0x453B0239)}, + {UINT32_C(0x4BD5604D), UINT32_C(0x92E689FD), UINT32_C(0xEA5FB1A5), + UINT32_C(0x302F7B7C), UINT32_C(0xC6C18BD5), UINT32_C(0x9A065527), + UINT32_C(0x38018472), UINT32_C(0xB6B93023), UINT32_C(0x775EFE83), + UINT32_C(0xEC4F8E47), UINT32_C(0x5D557E9F), UINT32_C(0x5EFED6CD), + UINT32_C(0xF32DB82A), UINT32_C(0x883149A7), UINT32_C(0xA83BA057), + UINT32_C(0x32BB4DD5)}}, + {{UINT32_C(0x8CE494A6), UINT32_C(0xB45FB239), UINT32_C(0x015A171F), + UINT32_C(0x6E80D72B), UINT32_C(0x846810F0), UINT32_C(0xE17A3D2B), + UINT32_C(0xC689398E), UINT32_C(0x86A2C703), UINT32_C(0xF84177D3), + UINT32_C(0x163CC0EA), UINT32_C(0x08485195), UINT32_C(0xCFC54536), + UINT32_C(0xAEA228CD), UINT32_C(0x49ED48E3), UINT32_C(0x5E05A3FA), + UINT32_C(0x51D4CD9A)}, + {UINT32_C(0x0A28C1F0), UINT32_C(0xD75C938E), UINT32_C(0x0D986264), + UINT32_C(0xE18FCBDB), UINT32_C(0x0129A474), UINT32_C(0x0E29546B), + UINT32_C(0xB4E6503E), UINT32_C(0x718C5F10), UINT32_C(0xE89FFD06), + UINT32_C(0x5BFFEF16), UINT32_C(0x7ABFEFBE), UINT32_C(0xD87F3E8D), + UINT32_C(0xB05607DF), UINT32_C(0x3E6EEBD8), UINT32_C(0x030FC02D), + UINT32_C(0x1B3135D4)}}, + {{UINT32_C(0xAFD466ED), UINT32_C(0x1FCA9768), UINT32_C(0xDDE4FE72), + UINT32_C(0x3711CD99), UINT32_C(0xA0BC2449), UINT32_C(0xFA6A96FB), + UINT32_C(0xDF617AD1), UINT32_C(0xB4E3322D), UINT32_C(0x38997D42), + UINT32_C(0x652400B5), UINT32_C(0x5869744E), UINT32_C(0xE4033FDD), + UINT32_C(0xF8CF5A3F), UINT32_C(0x5E56CF67), UINT32_C(0x39950DFD), + UINT32_C(0x0B68F418)}, + {UINT32_C(0x921A1064), UINT32_C(0x31F316B3), UINT32_C(0x860AB95E), + UINT32_C(0x084CF2C3), UINT32_C(0x33A08792), UINT32_C(0x4FAE7CBD), + UINT32_C(0x5C2F1F4F), UINT32_C(0x13E887AE), UINT32_C(0x5A2C1393), + UINT32_C(0x1B4D941C), UINT32_C(0xBFDDC322), UINT32_C(0xE7043946), + UINT32_C(0xA801A880), UINT32_C(0x2D73CD5B), UINT32_C(0x45019EB0), + UINT32_C(0x6CDC6BC2)}}, + {{UINT32_C(0x72A9BDDF), UINT32_C(0x68D9AE82), UINT32_C(0xC4F79A39), + UINT32_C(0x3EA7B5D0), UINT32_C(0xBFA9189D), UINT32_C(0x8A9E525D), + UINT32_C(0x08088070), UINT32_C(0xC4BCDB4F), UINT32_C(0xF0019D99), + UINT32_C(0xD4F1B3D0), UINT32_C(0x3A21C513), UINT32_C(0xCD3981D0), + UINT32_C(0x51146A17), UINT32_C(0x4A85B07A), UINT32_C(0xAC9373DE), + UINT32_C(0x44E11FCB)}, + {UINT32_C(0x406B1F1D), UINT32_C(0x45C28B85), UINT32_C(0xA598A7AB), + UINT32_C(0x7669767B), UINT32_C(0xCABA790E), UINT32_C(0xE4DC8F54), + UINT32_C(0x4002264B), UINT32_C(0x7259E49F), UINT32_C(0x78A9F0E3), + UINT32_C(0x54142E6D), UINT32_C(0x2D74E9B1), UINT32_C(0xFC384317), + UINT32_C(0x471BA3C1), UINT32_C(0x949A6E31), UINT32_C(0x269DBD46), + UINT32_C(0x2196E341)}}, + {{UINT32_C(0x1C85C152), UINT32_C(0xF090B214), UINT32_C(0x2980953D), + UINT32_C(0xC66553E0), UINT32_C(0x908B9243), UINT32_C(0x50050906), + UINT32_C(0x18F1B4C3), UINT32_C(0x489B07B8), UINT32_C(0x4A6A7071), + UINT32_C(0x39C781DE), UINT32_C(0x15FAF2A8), UINT32_C(0xC3FCC6B4), + UINT32_C(0xDF30D339), UINT32_C(0xC9A9D650), UINT32_C(0x0DC87B05), + UINT32_C(0x2BCF8969)}, + {UINT32_C(0x0D36DD59), UINT32_C(0x6BD11101), UINT32_C(0xAF38D4C5), + UINT32_C(0x9AFD4507), UINT32_C(0x1FEE36E3), UINT32_C(0xE9A345A3), + UINT32_C(0x37454BA6), UINT32_C(0x141074A8), UINT32_C(0xF603533F), + UINT32_C(0x89747031), UINT32_C(0x897F9FA2), UINT32_C(0xAB75320E), + UINT32_C(0x594481A4), UINT32_C(0x52927CDF), UINT32_C(0xBC2244A3), + UINT32_C(0x2C8FB10B)}}, + {{UINT32_C(0x1C40C77E), UINT32_C(0x456358B8), UINT32_C(0x1732ED35), + UINT32_C(0x26A15EA8), UINT32_C(0x9AEA6548), UINT32_C(0x36F26CBB), + UINT32_C(0xD7FAD4C1), UINT32_C(0x6589AC51), UINT32_C(0x9067988D), + UINT32_C(0x4804A1BC), UINT32_C(0x4219111A), UINT32_C(0x633F203E), + UINT32_C(0x123C4BBE), UINT32_C(0xCD90D01C), UINT32_C(0x82519788), + UINT32_C(0x617EEF27)}, + {UINT32_C(0x9DDFBBB9), UINT32_C(0x8A7F22A7), UINT32_C(0xC8F9E873), + UINT32_C(0xF8CEDC4E), UINT32_C(0xF8B00FFD), UINT32_C(0x547A5995), + UINT32_C(0x3132F91D), UINT32_C(0xC6780AC5), UINT32_C(0x6DD34140), + UINT32_C(0xAD711350), UINT32_C(0x83D8A3E6), UINT32_C(0x1C0A71EC), + UINT32_C(0x86E0466B), UINT32_C(0x687D67C7), UINT32_C(0xBD67492F), + UINT32_C(0x7CE57B02)}}, + {{UINT32_C(0xC4A0F3CF), UINT32_C(0xEF5A0FEC), UINT32_C(0xE3C2A79F), + UINT32_C(0xCEB2194B), UINT32_C(0xD37AFB50), UINT32_C(0x7371FF56), + UINT32_C(0x68CFB693), UINT32_C(0x881C254A), UINT32_C(0x7A5B61F5), + UINT32_C(0x31F411B1), UINT32_C(0x13E15910), UINT32_C(0xC2141EEB), + UINT32_C(0x75C6566F), UINT32_C(0xD4B5D015), UINT32_C(0x60C17F10), + UINT32_C(0x1335132C)}, + {UINT32_C(0xF9EED825), UINT32_C(0x49A2D9CB), UINT32_C(0xE7C41C5A), + UINT32_C(0x0514441A), UINT32_C(0x636BA847), UINT32_C(0xCE9F19F7), + UINT32_C(0x44F44B74), UINT32_C(0x55175057), UINT32_C(0xD26F9DEA), + UINT32_C(0x0ED9CB8A), UINT32_C(0x84BD07A6), UINT32_C(0xBBB248C0), + UINT32_C(0x9CD8A6C1), UINT32_C(0x2C867FB1), UINT32_C(0x2186DB7C), + UINT32_C(0x230B4122)}}, + {{UINT32_C(0xBC6B2647), UINT32_C(0xC59AF140), UINT32_C(0xD5CA9D30), + UINT32_C(0xCD781156), UINT32_C(0x04C5C668), UINT32_C(0x479CFCF8), + UINT32_C(0xB08BEEC5), UINT32_C(0xEAC4A5C0), UINT32_C(0x6C67636A), + UINT32_C(0x8772B60E), UINT32_C(0x631A6EF3), UINT32_C(0x99266F13), + UINT32_C(0x0D368B05), UINT32_C(0x4DADE9DE), UINT32_C(0xE42CB970), + UINT32_C(0x2F9488CB)}, + {UINT32_C(0xB6FB1965), UINT32_C(0x4882B1D4), UINT32_C(0xAF24AD57), + UINT32_C(0x6423BBB4), UINT32_C(0xC406CF8F), UINT32_C(0xE52B487E), + UINT32_C(0xD49D4935), UINT32_C(0x502802AD), UINT32_C(0x24D5128F), + UINT32_C(0x6832E216), UINT32_C(0x670EAE40), UINT32_C(0x42190CD4), + UINT32_C(0x39258F40), UINT32_C(0xA2D4FDB4), UINT32_C(0xC5CADEEA), + UINT32_C(0x6127E350)}}, + }, + { + {{UINT32_C(0x896F045C), UINT32_C(0x160D95BD), UINT32_C(0x406D8CA3), + UINT32_C(0xBB8AA2C5), UINT32_C(0x94F274E5), UINT32_C(0x1B4E10B3), + UINT32_C(0x6332DB6B), UINT32_C(0xE6D30544), UINT32_C(0x5AAE23C5), + UINT32_C(0x95250D6A), UINT32_C(0xFC831AC1), UINT32_C(0x67458318), + UINT32_C(0x63510D9A), UINT32_C(0x05D21C9B), UINT32_C(0x20F2A3CC), + UINT32_C(0x2416562C)}, + {UINT32_C(0xD6DE2B6D), UINT32_C(0x8B666C7A), UINT32_C(0xE54B6B3C), + UINT32_C(0xC49D98D0), UINT32_C(0x90558A8E), UINT32_C(0x73315C3F), + UINT32_C(0x44E631C4), UINT32_C(0x212910AD), UINT32_C(0xBB053E42), + UINT32_C(0x7D2EBB7E), UINT32_C(0x4FEF86C3), UINT32_C(0x396AD261), + UINT32_C(0x5E410BED), UINT32_C(0x90DA355C), UINT32_C(0x43C9183F), + UINT32_C(0x344A24DD)}}, + {{UINT32_C(0x6AC2509A), UINT32_C(0x50971549), UINT32_C(0xFDA9F8AF), + UINT32_C(0xFCAF5541), UINT32_C(0xB3F2B1F5), UINT32_C(0xDDFDC6A9), + UINT32_C(0xB7DA428B), UINT32_C(0xBCA36B59), UINT32_C(0x357DCA59), + UINT32_C(0xB55602BE), UINT32_C(0xCE692E5D), UINT32_C(0x803C92A1), + UINT32_C(0x6DC19967), UINT32_C(0xCD723C3D), UINT32_C(0xF741820F), + UINT32_C(0x3EE4BC03)}, + {UINT32_C(0xBB103F3B), UINT32_C(0x70113C23), UINT32_C(0x36553268), + UINT32_C(0x35FA9144), UINT32_C(0x1C026E84), UINT32_C(0x505B7917), + UINT32_C(0x1ED89D68), UINT32_C(0xA43E1256), UINT32_C(0xC87289BE), + UINT32_C(0xC8AE5CFB), UINT32_C(0x2B9C5072), UINT32_C(0xD573E0CF), + UINT32_C(0x475FA7A4), UINT32_C(0x709B1C4B), UINT32_C(0x81D07D11), + UINT32_C(0x505ADF59)}}, + {{UINT32_C(0xA4AFD6AC), UINT32_C(0x1BC79E6A), UINT32_C(0x26866C93), + UINT32_C(0x156C1B36), UINT32_C(0x90A70847), UINT32_C(0x6E4F2FB6), + UINT32_C(0xE37556C2), UINT32_C(0x745824E0), UINT32_C(0x5BF6585C), + UINT32_C(0x384788E8), UINT32_C(0x87EFA785), UINT32_C(0xAD6A726B), + UINT32_C(0x40FEB98E), UINT32_C(0xD93A3B7E), UINT32_C(0x282EB335), + UINT32_C(0x4BA6A352)}, + {UINT32_C(0x937FA288), UINT32_C(0x36EE7727), UINT32_C(0xC0513862), + UINT32_C(0xF1334DD2), UINT32_C(0x30FB68F5), UINT32_C(0x7AF1B32E), + UINT32_C(0x3196B14D), UINT32_C(0x2B0BAEFE), UINT32_C(0x21E84FA0), + UINT32_C(0x5E7BA8D7), UINT32_C(0x256AE375), UINT32_C(0x4DA767CD), + UINT32_C(0xE0F658DB), UINT32_C(0xA8D467F8), UINT32_C(0x20DB1855), + UINT32_C(0x7709039E)}}, + {{UINT32_C(0xB26EE5F4), UINT32_C(0x6155BDC4), UINT32_C(0xC48A3913), + UINT32_C(0xF0CFD2B7), UINT32_C(0x63BFB3E5), UINT32_C(0x75AABCA1), + UINT32_C(0xC525DA22), UINT32_C(0x9232746D), UINT32_C(0x333F2B14), + UINT32_C(0x5F00A6CD), UINT32_C(0xF8ECA91E), UINT32_C(0xB3216C2B), + UINT32_C(0xF6E4FF19), UINT32_C(0x9A1F1EE8), UINT32_C(0xB0074F5D), + UINT32_C(0x3C76ADCF)}, + {UINT32_C(0x45309788), UINT32_C(0xA414BFFB), UINT32_C(0x86539F4F), + UINT32_C(0x83EF3C3F), UINT32_C(0x576C4A69), UINT32_C(0x0AB8CEEA), + UINT32_C(0x13BEF0E4), UINT32_C(0xA01CC458), UINT32_C(0xEA181987), + UINT32_C(0x855B7F00), UINT32_C(0xE30F184F), UINT32_C(0xA97F14A9), + UINT32_C(0x554D467D), UINT32_C(0xB17DF2F0), UINT32_C(0xD6C8100D), + UINT32_C(0x29F0A944)}}, + {{UINT32_C(0xC7D083C9), UINT32_C(0x57796871), UINT32_C(0x0DA74190), + UINT32_C(0xB83CD7FF), UINT32_C(0x97DC4A71), UINT32_C(0xA077968F), + UINT32_C(0x08ACDC2D), UINT32_C(0xC27429EC), UINT32_C(0x2B52DFEE), + UINT32_C(0x04996DF6), UINT32_C(0x1C182059), UINT32_C(0x13511C3A), + UINT32_C(0xCEFA8F7F), UINT32_C(0xCC27218A), UINT32_C(0xA0E51331), + UINT32_C(0x0757BD45)}, + {UINT32_C(0x453DD761), UINT32_C(0x05F1D65D), UINT32_C(0xF3C5F5DF), + UINT32_C(0x71D57417), UINT32_C(0x38FA1AE7), UINT32_C(0x0C1E2043), + UINT32_C(0x36E7BB29), UINT32_C(0xA68A6F2E), UINT32_C(0x221EA420), + UINT32_C(0x3F3CA00F), UINT32_C(0x1484F503), UINT32_C(0x840830F6), + UINT32_C(0x18380FC5), UINT32_C(0xA011EA61), UINT32_C(0xD4D5F0B4), + UINT32_C(0x63E08325)}}, + {{UINT32_C(0xA5352F43), UINT32_C(0xAC4F176A), UINT32_C(0xF5346C89), + UINT32_C(0x2C0A1D79), UINT32_C(0xEA7357BC), UINT32_C(0x3F16B2EC), + UINT32_C(0x9CB644F4), UINT32_C(0x1FE6E823), UINT32_C(0xE2C9912E), + UINT32_C(0x54E68BB4), UINT32_C(0x98E581AE), UINT32_C(0x82B35E8E), + UINT32_C(0xD6611B81), UINT32_C(0xD855E028), UINT32_C(0xA8C7ABE1), + UINT32_C(0x3D420591)}, + {UINT32_C(0xA4D7C106), UINT32_C(0x71326CB4), UINT32_C(0x7E21F3EA), + UINT32_C(0x5BA8407F), UINT32_C(0x40DA0D53), UINT32_C(0xD33581D7), + UINT32_C(0x0C1E7D99), UINT32_C(0x7AB20546), UINT32_C(0xCB0075B5), + UINT32_C(0x71438057), UINT32_C(0xCB952FEE), UINT32_C(0x2F9AD50C), + UINT32_C(0x8B942A98), UINT32_C(0xFDCF4A12), UINT32_C(0xD8BB5BE5), + UINT32_C(0x025CFA1B)}}, + {{UINT32_C(0x27BF5931), UINT32_C(0x2BF4ABF7), UINT32_C(0xD080A1BA), + UINT32_C(0x78BD4315), UINT32_C(0xF12B24D0), UINT32_C(0x1EB55607), + UINT32_C(0x8E8BAB49), UINT32_C(0xB7BC25D6), UINT32_C(0x60E68A74), + UINT32_C(0x01B666AE), UINT32_C(0x9058E10D), UINT32_C(0x9E1E7417), + UINT32_C(0xAB695D1E), UINT32_C(0x5D2493D0), UINT32_C(0x271B7FBF), + UINT32_C(0x714D7BB5)}, + {UINT32_C(0x3BD07521), UINT32_C(0x869B52F6), UINT32_C(0x038E8A90), + UINT32_C(0x3413A47C), UINT32_C(0xC2B6D60D), UINT32_C(0x2B7724D4), + UINT32_C(0xB984B181), UINT32_C(0xD500A48C), UINT32_C(0x99ED9E13), + UINT32_C(0xDCD82594), UINT32_C(0x09397DD9), UINT32_C(0x33C480BA), + UINT32_C(0xB36CB025), UINT32_C(0xF98DA63D), UINT32_C(0x0C33FD92), + UINT32_C(0x0593108A)}}, + {{UINT32_C(0xF01AB893), UINT32_C(0xE3BBCCB7), UINT32_C(0x6CE61B0B), + UINT32_C(0x3D8D3BD2), UINT32_C(0xFC00DB91), UINT32_C(0xB030CE07), + UINT32_C(0xAA51D38B), UINT32_C(0x78ADD938), UINT32_C(0x6CAF34CC), + UINT32_C(0x8FA75797), UINT32_C(0x494B4CCE), UINT32_C(0x28C34C7E), + UINT32_C(0x79091116), UINT32_C(0xECD5F385), UINT32_C(0x3512B9B1), + UINT32_C(0x455FD953)}, + {UINT32_C(0x3CD57BE0), UINT32_C(0x1D2150EF), UINT32_C(0x43CEF565), + UINT32_C(0xF130B2A0), UINT32_C(0xFA4A4082), UINT32_C(0x1146159C), + UINT32_C(0xD6BB7E30), UINT32_C(0xDE949D6A), UINT32_C(0x40A2A53B), + UINT32_C(0xEB8984ED), UINT32_C(0xB920CDBE), UINT32_C(0xB9E72FE4), + UINT32_C(0xB43A51A9), UINT32_C(0xA507DDCA), UINT32_C(0x6C7C6F7F), + UINT32_C(0x3EB7D79F)}}, + {{UINT32_C(0xDD356637), UINT32_C(0xDF75FE14), UINT32_C(0xFBC9E9DB), + UINT32_C(0x4B21206B), UINT32_C(0xA729BB2F), UINT32_C(0x0A33BCF3), + UINT32_C(0x686F49F2), UINT32_C(0xA61A363C), UINT32_C(0x34BD498C), + UINT32_C(0x426A4603), UINT32_C(0x705F7CD3), UINT32_C(0xE87EDA60), + UINT32_C(0xE633E9A7), UINT32_C(0xF9D24A5A), UINT32_C(0xA4325C1D), + UINT32_C(0x52063D93)}, + {UINT32_C(0x23EEB132), UINT32_C(0x02890EEC), UINT32_C(0x5D39DDFD), + UINT32_C(0x00430E86), UINT32_C(0xA1E47638), UINT32_C(0x118E18F6), + UINT32_C(0x5806CD2F), UINT32_C(0xBB38E8C7), UINT32_C(0xF7CE9486), + UINT32_C(0xB7E5375E), UINT32_C(0xFDE35E82), UINT32_C(0x73DAA9EB), + UINT32_C(0x82070D71), UINT32_C(0x117E4761), UINT32_C(0x915BBD57), + UINT32_C(0x317DF0BE)}}, + {{UINT32_C(0x25B74127), UINT32_C(0xF6915487), UINT32_C(0x18162D83), + UINT32_C(0x4333E7F5), UINT32_C(0xA429665E), UINT32_C(0xB435BEF9), + UINT32_C(0x20B9D358), UINT32_C(0xEEE9B7B7), UINT32_C(0xF8D1D44F), + UINT32_C(0x436ABB8B), UINT32_C(0xBF38B81F), UINT32_C(0xD1219F9A), + UINT32_C(0x9035DE38), UINT32_C(0x7CEE7063), UINT32_C(0xB341FFDA), + UINT32_C(0x34129008)}, + {UINT32_C(0x99745C5B), UINT32_C(0x6595A1B0), UINT32_C(0x2C0685BB), + UINT32_C(0x07DF297A), UINT32_C(0x998110AD), UINT32_C(0xEE85C714), + UINT32_C(0xE2A8AD4E), UINT32_C(0xD251E587), UINT32_C(0xEC4D02C1), + UINT32_C(0x9A38F9DC), UINT32_C(0xCCDAF4C8), UINT32_C(0x60DA566F), + UINT32_C(0x90B08CA2), UINT32_C(0x1BD9A21A), UINT32_C(0xE97F4EA0), + UINT32_C(0x6D9414AE)}}, + {{UINT32_C(0x74973250), UINT32_C(0xCBFAA861), UINT32_C(0xAB15AA60), + UINT32_C(0xC58A0F6B), UINT32_C(0xFDB7A15D), UINT32_C(0xC00F822D), + UINT32_C(0xFA067DEF), UINT32_C(0xAEA74910), UINT32_C(0x81F3EFC5), + UINT32_C(0x3750367B), UINT32_C(0xAFC6EC7C), UINT32_C(0x3183E3E8), + UINT32_C(0xDA10CD9F), UINT32_C(0xFB62717A), UINT32_C(0x6EEC9774), + UINT32_C(0x40431C1D)}, + {UINT32_C(0x05914824), UINT32_C(0x423E7310), UINT32_C(0x9DE23908), + UINT32_C(0xA4F7A978), UINT32_C(0x7D5D18AA), UINT32_C(0xC151A73C), + UINT32_C(0xED1EAC6B), UINT32_C(0x1B85B7CB), UINT32_C(0x075066C4), + UINT32_C(0xF25CAF8C), UINT32_C(0x8004809B), UINT32_C(0x99508D70), + UINT32_C(0x212271C6), UINT32_C(0x6BEDC19F), UINT32_C(0x77A5AE84), + UINT32_C(0x2CCDAB39)}}, + {{UINT32_C(0x23389925), UINT32_C(0x14203BEC), UINT32_C(0xCF059388), + UINT32_C(0xFBCA94CF), UINT32_C(0x8124F30F), UINT32_C(0x17626B40), + UINT32_C(0xC1C98EB6), UINT32_C(0x2208F6E5), UINT32_C(0x961F4C48), + UINT32_C(0x9B385200), UINT32_C(0x002E5C7A), UINT32_C(0x1C9F33E8), + UINT32_C(0x58B6DD91), UINT32_C(0xC426A940), UINT32_C(0x1CEC7286), + UINT32_C(0x6DF740E5)}, + {UINT32_C(0x87E56C60), UINT32_C(0xF9397986), UINT32_C(0x587728F6), + UINT32_C(0x84425935), UINT32_C(0x2FE267FB), UINT32_C(0x394A3A01), + UINT32_C(0xD451CD8E), UINT32_C(0xB9C6481F), UINT32_C(0x5340AAC8), + UINT32_C(0xA6AB4F4B), UINT32_C(0x9B85FF63), UINT32_C(0xD7FD9675), + UINT32_C(0xAC5AEC86), UINT32_C(0x3D3AE591), UINT32_C(0xB96673F7), + UINT32_C(0x43283823)}}, + {{UINT32_C(0x74E61BA9), UINT32_C(0x24214D23), UINT32_C(0xF69ED123), + UINT32_C(0xB41CFB58), UINT32_C(0x54F5F407), UINT32_C(0x8E91FE02), + UINT32_C(0x4F84200B), UINT32_C(0xFB989936), UINT32_C(0x024E62F0), + UINT32_C(0xAAE985CE), UINT32_C(0xA0BB20F6), UINT32_C(0x896815ED), + UINT32_C(0x3DF1E5BC), UINT32_C(0x3536095B), UINT32_C(0x9E1EB847), + UINT32_C(0x31C5AFA0)}, + {UINT32_C(0xC2B9B4F0), UINT32_C(0x5C32910F), UINT32_C(0x50DBB2E8), + UINT32_C(0x32ABA814), UINT32_C(0x6AAF8A27), UINT32_C(0x17E2B52F), + UINT32_C(0x111CD6C3), UINT32_C(0x142E63AC), UINT32_C(0x22B6D227), + UINT32_C(0x15D5F297), UINT32_C(0x3C14CE28), UINT32_C(0x22380A78), + UINT32_C(0x5249F727), UINT32_C(0x29F4951C), UINT32_C(0x274839DE), + UINT32_C(0x24C25987)}}, + {{UINT32_C(0x14C6CA73), UINT32_C(0x13F552E9), UINT32_C(0x0B154556), + UINT32_C(0xCE965927), UINT32_C(0x83EE34E2), UINT32_C(0x330E6D59), + UINT32_C(0xE8035AD6), UINT32_C(0xFB7B6051), UINT32_C(0x5B2D081D), + UINT32_C(0xC58FBCA8), UINT32_C(0x91D78C8E), UINT32_C(0x254FEDD1), + UINT32_C(0xCF877F74), UINT32_C(0x0438FF98), UINT32_C(0x8BB12DC9), + UINT32_C(0x479CEE4A)}, + {UINT32_C(0x7A0CBCDD), UINT32_C(0x1855A1C3), UINT32_C(0x000FFC35), + UINT32_C(0x3667FFBB), UINT32_C(0xF880E9C0), UINT32_C(0xC053A4BF), + UINT32_C(0x05AEFE0E), UINT32_C(0xF8E1BCC1), UINT32_C(0x0B65DBBC), + UINT32_C(0x1AFEE0F2), UINT32_C(0x9E945F96), UINT32_C(0x63ACB97B), + UINT32_C(0x80B8F0BA), UINT32_C(0xDFC80965), UINT32_C(0xE919BE03), + UINT32_C(0x12A145EB)}}, + {{UINT32_C(0xC6008C86), UINT32_C(0x8BBD02E8), UINT32_C(0x516BDD2F), + UINT32_C(0xB7ACE6C4), UINT32_C(0xE5036467), UINT32_C(0x914AE008), + UINT32_C(0x87987C22), UINT32_C(0xD06CF392), UINT32_C(0xC71FFCB4), + UINT32_C(0x0F78C12D), UINT32_C(0xCBF7A3B3), UINT32_C(0xB4612FBB), + UINT32_C(0x7B711004), UINT32_C(0xB6E69255), UINT32_C(0x1EA5ED45), + UINT32_C(0x68CEE9EC)}, + {UINT32_C(0x5009FAD4), UINT32_C(0x45E4A8D1), UINT32_C(0xB1458DF2), + UINT32_C(0x1D303BD7), UINT32_C(0xBE13EFBE), UINT32_C(0x388523D9), + UINT32_C(0xC15147CD), UINT32_C(0xAC9F6D4A), UINT32_C(0x9ECFA216), + UINT32_C(0x551F3470), UINT32_C(0xAC9311F4), UINT32_C(0x0FF1AA33), + UINT32_C(0xB8D84926), UINT32_C(0x34EED866), UINT32_C(0x72C2CC5C), + UINT32_C(0x6BD5ED1C)}}, + {{UINT32_C(0x9BDD8695), UINT32_C(0xA283EC1A), UINT32_C(0xA599147A), + UINT32_C(0x451A730B), UINT32_C(0xDA71F52B), UINT32_C(0x9B6CC56A), + UINT32_C(0x77D55722), UINT32_C(0xB1002CF5), UINT32_C(0x07A8D105), + UINT32_C(0x354328CD), UINT32_C(0x7A21026C), UINT32_C(0x86B04CA8), + UINT32_C(0x50EC9794), UINT32_C(0x53BADA3D), UINT32_C(0xBBC32D2B), + UINT32_C(0x0BD230C8)}, + {UINT32_C(0xF7E3C388), UINT32_C(0x322E97FA), UINT32_C(0xAD6FEB4F), + UINT32_C(0xA0F06207), UINT32_C(0x9A128AA1), UINT32_C(0x3B05C04E), + UINT32_C(0x2214D1AB), UINT32_C(0x05DE3C90), UINT32_C(0xE69A562B), + UINT32_C(0x632C92A7), UINT32_C(0x6BEFC0B6), UINT32_C(0xE9F9DEE0), + UINT32_C(0x63E05275), UINT32_C(0xD269F547), UINT32_C(0x6C56EC35), + UINT32_C(0x04B2E1AB)}}, + }, + { + {{UINT32_C(0xFEB514D4), UINT32_C(0x9DB921FC), UINT32_C(0x485F4F30), + UINT32_C(0x00AC3CB4), UINT32_C(0xFED6B15B), UINT32_C(0x0DAFF6F9), + UINT32_C(0x9A5E67CB), UINT32_C(0x74C16AF5), UINT32_C(0xA8275392), + UINT32_C(0xAA73C142), UINT32_C(0x46A65634), UINT32_C(0xBF53E454), + UINT32_C(0x03D87479), UINT32_C(0x2819387F), UINT32_C(0xB495DDDB), + UINT32_C(0x4BC9293D)}, + {UINT32_C(0x18AE902B), UINT32_C(0x755EC696), UINT32_C(0x1E9C6398), + UINT32_C(0x14729175), UINT32_C(0x29508353), UINT32_C(0x82396B3F), + UINT32_C(0x08614C4D), UINT32_C(0x932903AE), UINT32_C(0x50BC308A), + UINT32_C(0xA4B24D64), UINT32_C(0x88BDA41E), UINT32_C(0xA89DAA2F), + UINT32_C(0x84F8A09A), UINT32_C(0x94FC7C46), UINT32_C(0xB4931402), + UINT32_C(0x1054948E)}}, + {{UINT32_C(0x8A7BA306), UINT32_C(0xF3E0BB8F), UINT32_C(0xA45240B6), + UINT32_C(0xC31FDE41), UINT32_C(0xE1755B86), UINT32_C(0x05AD7E1A), + UINT32_C(0xBCDD1230), UINT32_C(0xDDBFC1F9), UINT32_C(0xB4F8B744), + UINT32_C(0x8006BDBB), UINT32_C(0x8ADE1D9A), UINT32_C(0x86582902), + UINT32_C(0x078339E6), UINT32_C(0x8FEFE3B7), UINT32_C(0x46216EA5), + UINT32_C(0x342996F4)}, + {UINT32_C(0x9B3D4651), UINT32_C(0xE0E1B5B3), UINT32_C(0xAABBE714), + UINT32_C(0xB2FC080C), UINT32_C(0xA522F01C), UINT32_C(0xC720BD5E), + UINT32_C(0x95F65EBE), UINT32_C(0x11D0543B), UINT32_C(0x484D4123), + UINT32_C(0x0880103C), UINT32_C(0x96976F8B), UINT32_C(0xD3F969F3), + UINT32_C(0xFDBA1CC1), UINT32_C(0x614855B7), UINT32_C(0xB3EC4B2E), + UINT32_C(0x56D4EEFE)}}, + {{UINT32_C(0x3894EB7E), UINT32_C(0x029DC51C), UINT32_C(0x9D9876B7), + UINT32_C(0xF4AAE878), UINT32_C(0xE2388A33), UINT32_C(0x0FCD3C74), + UINT32_C(0x91E31014), UINT32_C(0xAD4C4CF7), UINT32_C(0x11977D22), + UINT32_C(0x34F61FF1), UINT32_C(0x7AAFC8D7), UINT32_C(0x984416FD), + UINT32_C(0x5DAE6048), UINT32_C(0x4A441361), UINT32_C(0x7B1AFA0C), + UINT32_C(0x50D2387B)}, + {UINT32_C(0xBB8211DB), UINT32_C(0xD8BE85A1), UINT32_C(0xDD31FED9), + UINT32_C(0x195092C3), UINT32_C(0xC1764C23), UINT32_C(0x1F6FE6AB), + UINT32_C(0x3F067D75), UINT32_C(0x6A25DE23), UINT32_C(0xA244AA1D), + UINT32_C(0x8DB614AA), UINT32_C(0x25B11975), UINT32_C(0xAB0D7473), + UINT32_C(0xC036EA42), UINT32_C(0x714067C5), UINT32_C(0x6F3B1132), + UINT32_C(0x379935D6)}}, + {{UINT32_C(0x8E762CB5), UINT32_C(0x1E8339D4), UINT32_C(0x0DF30209), + UINT32_C(0x1857091C), UINT32_C(0x29523926), UINT32_C(0x2E4AC9A7), + UINT32_C(0xB7D5A5BB), UINT32_C(0x5983F6D2), UINT32_C(0xF31262FE), + UINT32_C(0xA99D8D11), UINT32_C(0xA5CAB7C2), UINT32_C(0xE722945D), + UINT32_C(0xE8767862), UINT32_C(0x3196BFBD), UINT32_C(0xA59924F6), + UINT32_C(0x43707848)}, + {UINT32_C(0xC78D8788), UINT32_C(0x8F0E368A), UINT32_C(0x4BF7DA53), + UINT32_C(0x50811A26), UINT32_C(0xDCA664FF), UINT32_C(0x9E0CB8FE), + UINT32_C(0x82EDADD5), UINT32_C(0xD2B8DFA0), UINT32_C(0x4A0C48E4), + UINT32_C(0x09C45772), UINT32_C(0x22511381), UINT32_C(0x6EC46A5C), + UINT32_C(0x313E87CC), UINT32_C(0xF5810BB4), UINT32_C(0xAB5A6BAB), + UINT32_C(0x20C5F006)}}, + {{UINT32_C(0xD87A06AF), UINT32_C(0x76C6F60A), UINT32_C(0x78FDEBB5), + UINT32_C(0xAB7144AD), UINT32_C(0x5646A659), UINT32_C(0x956C36E7), + UINT32_C(0xB785E745), UINT32_C(0x5477D0F6), UINT32_C(0x4594BC06), + UINT32_C(0xFE9FF232), UINT32_C(0x3039A102), UINT32_C(0x1783B9A0), + UINT32_C(0x90DB0AB3), UINT32_C(0xD41E6C5A), UINT32_C(0x7550121F), + UINT32_C(0x43749FB4)}, + {UINT32_C(0xD17CA661), UINT32_C(0xB7C6D143), UINT32_C(0x2B73135D), + UINT32_C(0xB1591F57), UINT32_C(0xC62DFF62), UINT32_C(0xF03232C9), + UINT32_C(0xCAF25761), UINT32_C(0xD3D1C629), UINT32_C(0x4B67D224), + UINT32_C(0xF633733F), UINT32_C(0x764EBF02), UINT32_C(0xCFBBC0D0), + UINT32_C(0x63C7EE19), UINT32_C(0x41CC07DD), UINT32_C(0xE8B36CB5), + UINT32_C(0x53BC8A63)}}, + {{UINT32_C(0x74CAF7FF), UINT32_C(0x1E9F596C), UINT32_C(0x8C049872), + UINT32_C(0x8088EF96), UINT32_C(0xCE1208BF), UINT32_C(0x3A9EA96E), + UINT32_C(0x15DAF25D), UINT32_C(0x892C44E7), UINT32_C(0x5E996AE4), + UINT32_C(0xAF6E1EBF), UINT32_C(0xBAC1A746), UINT32_C(0x0A6EEE3C), + UINT32_C(0xCAF162F6), UINT32_C(0x9D471CB1), UINT32_C(0xE6BE08F1), + UINT32_C(0x13F7192A)}, + {UINT32_C(0x49FBB46D), UINT32_C(0xCE44C77A), UINT32_C(0x5A04A72E), + UINT32_C(0xA7B9136F), UINT32_C(0x2B937703), UINT32_C(0x6CA33EC4), + UINT32_C(0xE8685FFF), UINT32_C(0xD4B3AAB5), UINT32_C(0xE7207EF1), + UINT32_C(0x8EFE02B3), UINT32_C(0xB83D0E5A), UINT32_C(0xB138C46D), + UINT32_C(0xF6C29885), UINT32_C(0xB73E636A), UINT32_C(0x72567A55), + UINT32_C(0x5C1E1242)}}, + {{UINT32_C(0x15137904), UINT32_C(0xDD967B6A), UINT32_C(0x6969B92D), + UINT32_C(0x4588BAA7), UINT32_C(0x5E2BA269), UINT32_C(0x99580A4C), + UINT32_C(0x915645CD), UINT32_C(0xE80802B4), UINT32_C(0xFB6591AE), + UINT32_C(0x7246F3F2), UINT32_C(0xCC25F464), UINT32_C(0x68C2F8C6), + UINT32_C(0x4905AE3C), UINT32_C(0xB5172E90), UINT32_C(0x675591B3), + UINT32_C(0x6860BBDD)}, + {UINT32_C(0x626489DF), UINT32_C(0x68BE15C0), UINT32_C(0x0C737BEB), + UINT32_C(0x65EA3D88), UINT32_C(0x32B5081D), UINT32_C(0x9EF8B6CC), + UINT32_C(0xB16FF753), UINT32_C(0xA6238BB1), UINT32_C(0xE17264C8), + UINT32_C(0x22191589), UINT32_C(0x903E28DC), UINT32_C(0xDBDAE7A3), + UINT32_C(0xF2DBCB8E), UINT32_C(0xB36FCD91), UINT32_C(0x75D33835), + UINT32_C(0x01EBFAC4)}}, + {{UINT32_C(0xBC820AEC), UINT32_C(0x7B0EE204), UINT32_C(0x8568C4E8), + UINT32_C(0x500DA7FC), UINT32_C(0xB0961D29), UINT32_C(0x992A6429), + UINT32_C(0xE65D7FDA), UINT32_C(0xA3CAE853), UINT32_C(0x34197E58), + UINT32_C(0x7B6F5E79), UINT32_C(0xC4E849CB), UINT32_C(0x90D37EAC), + UINT32_C(0x0106FD33), UINT32_C(0xE01D14AF), UINT32_C(0x80027E17), + UINT32_C(0x4BE83679)}, + {UINT32_C(0xA85EE145), UINT32_C(0xA412BA38), UINT32_C(0x5097CD50), + UINT32_C(0x219D461E), UINT32_C(0x29ECFCDA), UINT32_C(0xAD42175C), + UINT32_C(0xD04FAEFA), UINT32_C(0xB1DEF962), UINT32_C(0xA95983C1), + UINT32_C(0x5B527A4B), UINT32_C(0xBB20AB6D), UINT32_C(0x48A06C96), + UINT32_C(0x1FB83513), UINT32_C(0x7BAD34CD), UINT32_C(0xFDF018ED), + UINT32_C(0x458294DF)}}, + {{UINT32_C(0xA695A157), UINT32_C(0x1D1EBD7E), UINT32_C(0xC52D5ED9), + UINT32_C(0x296DD049), UINT32_C(0x0BE33F05), UINT32_C(0x8958F5B0), + UINT32_C(0xD37E60D7), UINT32_C(0x6B7F7204), UINT32_C(0xC668C85A), + UINT32_C(0x446F7B95), UINT32_C(0x20F60396), UINT32_C(0xB6E53B20), + UINT32_C(0x8E621E73), UINT32_C(0x5738FF4E), UINT32_C(0x8CD9F00C), + UINT32_C(0x05DBD495)}, + {UINT32_C(0xCFECAA9D), UINT32_C(0x645AD9D6), UINT32_C(0x3CEF6673), + UINT32_C(0x01CB8E09), UINT32_C(0x06D13DA7), UINT32_C(0x2851ED4E), + UINT32_C(0xCB18DFCB), UINT32_C(0x61FE9A95), UINT32_C(0xF903CBFE), + UINT32_C(0x62CC060F), UINT32_C(0xF14B0B1B), UINT32_C(0x121B6E4E), + UINT32_C(0xC4DEC6F3), UINT32_C(0x8CAB6654), UINT32_C(0x4B40D6D4), + UINT32_C(0x71880998)}}, + {{UINT32_C(0x9583FB84), UINT32_C(0xEE5CA2A4), UINT32_C(0x4462D044), + UINT32_C(0xEF16CD07), UINT32_C(0x21EBB18F), UINT32_C(0x1C1D5999), + UINT32_C(0x0AACAD30), UINT32_C(0x66D7586B), UINT32_C(0x2EB12D8B), + UINT32_C(0x8EDF0A45), UINT32_C(0x223DE805), UINT32_C(0x1A320A44), + UINT32_C(0xA0C2F092), UINT32_C(0x0A389DA0), UINT32_C(0x7E68A2D9), + UINT32_C(0x274FF541)}, + {UINT32_C(0x30395E54), UINT32_C(0x6CC34B53), UINT32_C(0x8C112729), + UINT32_C(0x881E630B), UINT32_C(0x70E4C811), UINT32_C(0x801E1CAD), + UINT32_C(0x91C2E90A), UINT32_C(0xA527AE82), UINT32_C(0x562AE094), + UINT32_C(0x93179BC8), UINT32_C(0x148F4F44), UINT32_C(0xCE68A130), + UINT32_C(0x32F8CCFD), UINT32_C(0xD8CA2ED0), UINT32_C(0x0527F82B), + UINT32_C(0x0415FDA4)}}, + {{UINT32_C(0x25AED793), UINT32_C(0x9F5CA1FD), UINT32_C(0x09C49711), + UINT32_C(0x5B95B9AA), UINT32_C(0xB968168C), UINT32_C(0x386C8FBB), + UINT32_C(0xBDC778F4), UINT32_C(0xC6B27D7D), UINT32_C(0x321A9D97), + UINT32_C(0xBD5439A2), UINT32_C(0xDC4BA6A0), UINT32_C(0xEA40A5FE), + UINT32_C(0x962508AA), UINT32_C(0x94913F0F), UINT32_C(0xB247396E), + UINT32_C(0x0D2DD91A)}, + {UINT32_C(0x17C64EFF), UINT32_C(0x1F459CF1), UINT32_C(0x0137E003), + UINT32_C(0x02E10B55), UINT32_C(0x60F82DFB), UINT32_C(0xFC375FE4), + UINT32_C(0x4631ECED), UINT32_C(0x9CCA9D6E), UINT32_C(0xE5053FDA), + UINT32_C(0x575C197C), UINT32_C(0x0A5B9670), UINT32_C(0x2EA3ECEE), + UINT32_C(0xA6F50038), UINT32_C(0xE69DECA1), UINT32_C(0xE8EDDA74), + UINT32_C(0x32F452FB)}}, + {{UINT32_C(0xD9E4C490), UINT32_C(0x20980611), UINT32_C(0x74825DDD), + UINT32_C(0x827D79F1), UINT32_C(0x218E0B22), UINT32_C(0xB4604E04), + UINT32_C(0x1F4F1752), UINT32_C(0x0A7E5E3A), UINT32_C(0x243D8298), + UINT32_C(0x50260245), UINT32_C(0x1A2101B7), UINT32_C(0xEBF01C84), + UINT32_C(0x69E1A262), UINT32_C(0x369E69AE), UINT32_C(0x4C1C960A), + UINT32_C(0x5FD07868)}, + {UINT32_C(0xA8F15793), UINT32_C(0xC542D34B), UINT32_C(0xE393381E), + UINT32_C(0x08F14B8F), UINT32_C(0xF855CD9F), UINT32_C(0xB6E06E97), + UINT32_C(0xA6CEE8C0), UINT32_C(0x47A195ED), UINT32_C(0xB05A740D), + UINT32_C(0x8776F026), UINT32_C(0xAC8EC060), UINT32_C(0x811D7AD6), + UINT32_C(0x29002EFB), UINT32_C(0xA61E5D27), UINT32_C(0x0C78E746), + UINT32_C(0x3D51D70E)}}, + {{UINT32_C(0xC99E1438), UINT32_C(0xC0D70275), UINT32_C(0xFD5EE6B2), + UINT32_C(0x0E95C0EC), UINT32_C(0x39E6733E), UINT32_C(0xE14F58B0), + UINT32_C(0xB4941C24), UINT32_C(0x057B179E), UINT32_C(0x93C0A5EF), + UINT32_C(0x5E12F07F), UINT32_C(0x05E72CAB), UINT32_C(0xF600367D), + UINT32_C(0x899F259F), UINT32_C(0x89FCB008), UINT32_C(0x9C3E30E7), + UINT32_C(0x2654687C)}, + {UINT32_C(0x3F148638), UINT32_C(0x85B7F9B7), UINT32_C(0x9EAEE0B4), + UINT32_C(0x8088F4F2), UINT32_C(0x3A7CAFD7), UINT32_C(0xA741D270), + UINT32_C(0xDB5B5339), UINT32_C(0x8973A806), UINT32_C(0x22DDCAA9), + UINT32_C(0xAAF4E75C), UINT32_C(0xCBB763CB), UINT32_C(0xA2450A79), + UINT32_C(0x016E5E3D), UINT32_C(0xBE1B3F2A), UINT32_C(0xCCECC258), + UINT32_C(0x4B1061B2)}}, + {{UINT32_C(0xC9C8A23A), UINT32_C(0x2F28689A), UINT32_C(0x59341E8C), + UINT32_C(0xD8FB2980), UINT32_C(0x375ACDAD), UINT32_C(0xD3617B26), + UINT32_C(0x513ED120), UINT32_C(0x314FA469), UINT32_C(0xE2F8DF55), + UINT32_C(0xFEB30225), UINT32_C(0x1F639D66), UINT32_C(0x29E001AF), + UINT32_C(0xDBDC9737), UINT32_C(0xA175DDD4), UINT32_C(0x8015C048), + UINT32_C(0x6A778E4F)}, + {UINT32_C(0xCC55DBA8), UINT32_C(0x4612651E), UINT32_C(0x2B3C7B06), + UINT32_C(0xE853ADDE), UINT32_C(0x6E0B2E41), UINT32_C(0x14B2D0B7), + UINT32_C(0xEE804E0B), UINT32_C(0xCA4F0872), UINT32_C(0xF893D931), + UINT32_C(0xEA2AFCA5), UINT32_C(0x9BE51B1A), UINT32_C(0x6EB01891), + UINT32_C(0x1F2769F1), UINT32_C(0xB0D8500D), UINT32_C(0xA47FFC13), + UINT32_C(0x1303BA01)}}, + {{UINT32_C(0xB43811EA), UINT32_C(0xBED58425), UINT32_C(0x4E52E1D6), + UINT32_C(0x57D7E536), UINT32_C(0xBF5EF913), UINT32_C(0x93DE67FE), + UINT32_C(0x2713FC52), UINT32_C(0x2CCDA4E3), UINT32_C(0x8F1FA4BB), + UINT32_C(0xC5C1B6F0), UINT32_C(0xA725295F), UINT32_C(0xA267A790), + UINT32_C(0x2D219844), UINT32_C(0x13BB7D11), UINT32_C(0x75415602), + UINT32_C(0x7FAF96A2)}, + {UINT32_C(0x4E4C3CE4), UINT32_C(0x7879EDF4), UINT32_C(0x3BF094F7), + UINT32_C(0x9CD59A0D), UINT32_C(0x4A882A52), UINT32_C(0xD7976DEB), + UINT32_C(0xBA65AFBA), UINT32_C(0x19EBBC10), UINT32_C(0x2D48D187), + UINT32_C(0xABC37350), UINT32_C(0x1236B5F9), UINT32_C(0x5D5CA6C3), + UINT32_C(0x915EAF61), UINT32_C(0xDFA55AC2), UINT32_C(0xE8735632), + UINT32_C(0x6C54515E)}}, + {{UINT32_C(0xDC21B326), UINT32_C(0xB1CD06DE), UINT32_C(0xE4AE6148), + UINT32_C(0xD6F6F904), UINT32_C(0xFA13BE52), UINT32_C(0x941B7545), + UINT32_C(0xDF7CE61B), UINT32_C(0xD527042F), UINT32_C(0xD9C9BBDB), + UINT32_C(0x1AB4495E), UINT32_C(0xBF6582BE), UINT32_C(0xA5CBE7C5), + UINT32_C(0x41A1DA90), UINT32_C(0x1D0B5BA2), UINT32_C(0x0A810954), + UINT32_C(0x6F99305C)}, + {UINT32_C(0x40D3954D), UINT32_C(0x866C254F), UINT32_C(0x2E5A123D), + UINT32_C(0x5DEBFF4D), UINT32_C(0xAD23124C), UINT32_C(0x14AB6FB8), + UINT32_C(0xC6B13624), UINT32_C(0xAE3C32B6), UINT32_C(0x707528BA), + UINT32_C(0x74075FF6), UINT32_C(0xE91D5097), UINT32_C(0x55DA7227), + UINT32_C(0x6A9C3469), UINT32_C(0x450D3848), UINT32_C(0x2313EBA2), + UINT32_C(0x15818A1E)}}, + }, + { + {{UINT32_C(0x14125D01), UINT32_C(0x27BE68B4), UINT32_C(0x2482BF94), + UINT32_C(0x87549114), UINT32_C(0x8D0C8AF2), UINT32_C(0xE8B70931), + UINT32_C(0x11344A8B), UINT32_C(0xF38D32BF), UINT32_C(0x63136143), + UINT32_C(0xCB7CDFD1), UINT32_C(0xA17D7DE5), UINT32_C(0x717954CD), + UINT32_C(0x7C10DF5E), UINT32_C(0xD65BDD44), UINT32_C(0x4E821D20), + UINT32_C(0x15C45F81)}, + {UINT32_C(0xD9C326C4), UINT32_C(0x7D425E66), UINT32_C(0x1C7B4BCD), + UINT32_C(0xEEA0D61A), UINT32_C(0x8707E9C8), UINT32_C(0x41A8654A), + UINT32_C(0x0B4A8F46), UINT32_C(0xBA9E8F7C), UINT32_C(0xF2739871), + UINT32_C(0xB96A24FC), UINT32_C(0xFD9C9D58), UINT32_C(0xA9BA022F), + UINT32_C(0x2C9AE418), UINT32_C(0x59F7C297), UINT32_C(0xB0CDD468), + UINT32_C(0x6B82C284)}}, + {{UINT32_C(0x58483FA2), UINT32_C(0xD4C5486A), UINT32_C(0xEDC6A022), + UINT32_C(0x8F140259), UINT32_C(0xC43116F8), UINT32_C(0xE451FB0C), + UINT32_C(0x65DF7628), UINT32_C(0x5368FE47), UINT32_C(0xBC70855A), + UINT32_C(0x0F0DCC6D), UINT32_C(0x472BFE81), UINT32_C(0x0E726D87), + UINT32_C(0x3C024F88), UINT32_C(0x9C64B716), UINT32_C(0x14FF6089), + UINT32_C(0x1ABAE0D8)}, + {UINT32_C(0xB5A15618), UINT32_C(0xC0ABA6B3), UINT32_C(0x65CE0681), + UINT32_C(0x71FAA6DF), UINT32_C(0x39A6F5BF), UINT32_C(0x3199E2C9), + UINT32_C(0x85BCF47E), UINT32_C(0xD8EBFEDA), UINT32_C(0xC262A35F), + UINT32_C(0xC3D57D3B), UINT32_C(0x0269DFDE), UINT32_C(0xF0D6338E), + UINT32_C(0x0E6D0BF0), UINT32_C(0x09072E1E), UINT32_C(0x4128B1BA), + UINT32_C(0x0980E291)}}, + {{UINT32_C(0x4DE44CB0), UINT32_C(0x6A2023F8), UINT32_C(0x247A7D5B), + UINT32_C(0xEA995754), UINT32_C(0x99102324), UINT32_C(0xD850D179), + UINT32_C(0xA906B038), UINT32_C(0x126FDFE2), UINT32_C(0x577DF168), + UINT32_C(0x4C3B3696), UINT32_C(0x9E3853EA), UINT32_C(0x9D3A9E07), + UINT32_C(0x40ACE3A1), UINT32_C(0xBC21A51E), UINT32_C(0xC51DD652), + UINT32_C(0x165065A3)}, + {UINT32_C(0xE4BBD96B), UINT32_C(0xF5B255B9), UINT32_C(0x3D94F9D6), + UINT32_C(0xC1E91F80), UINT32_C(0x84768FCE), UINT32_C(0x7DDB5BB7), + UINT32_C(0x5CA35823), UINT32_C(0x33F7ADF6), UINT32_C(0x33097882), + UINT32_C(0x3667E174), UINT32_C(0x8F241DC1), UINT32_C(0x5FDC3BA1), + UINT32_C(0x172CD7FC), UINT32_C(0x41F5C737), UINT32_C(0x7986FE8D), + UINT32_C(0x64D4116E)}}, + {{UINT32_C(0x8C89DED4), UINT32_C(0x2FF0F505), UINT32_C(0xBBBD0897), + UINT32_C(0x06507852), UINT32_C(0x1FAD2908), UINT32_C(0x62886521), + UINT32_C(0x9F5F4D13), UINT32_C(0xB8A1362E), UINT32_C(0x6E9856FD), + UINT32_C(0x83075FE6), UINT32_C(0x7CCEDC4D), UINT32_C(0x06B0BA27), + UINT32_C(0x52750DD5), UINT32_C(0x09B81B51), UINT32_C(0xCB59D8F1), + UINT32_C(0x12A96BB0)}, + {UINT32_C(0xDB43958B), UINT32_C(0xCA4BC3A5), UINT32_C(0x94C12E88), + UINT32_C(0x6456C11B), UINT32_C(0xAC330EE6), UINT32_C(0x7EFA99FF), + UINT32_C(0xF40AEBEC), UINT32_C(0x56973CAD), UINT32_C(0xC5D73A2A), + UINT32_C(0x62522E6B), UINT32_C(0x90F4378B), UINT32_C(0xF4538CA8), + UINT32_C(0x1BA585B1), UINT32_C(0xE5447FCB), UINT32_C(0x18376AB9), + UINT32_C(0x6C3F50C2)}}, + {{UINT32_C(0xE1720FC1), UINT32_C(0xC0156EB6), UINT32_C(0xFFEE4BA3), + UINT32_C(0xE0F821EE), UINT32_C(0xD0B530C5), UINT32_C(0xC0B4EF97), + UINT32_C(0x1A47CDAA), UINT32_C(0x003BB116), UINT32_C(0x464EC84B), + UINT32_C(0xA5837856), UINT32_C(0xE0E63A97), UINT32_C(0xD65BA195), + UINT32_C(0xA375112F), UINT32_C(0xB22C0F5F), UINT32_C(0xA7F7BDC1), + UINT32_C(0x18D81698)}, + {UINT32_C(0x91E78A50), UINT32_C(0x5FD3C5E5), UINT32_C(0x97D10A66), + UINT32_C(0xE5EE4EB9), UINT32_C(0x9FA305DA), UINT32_C(0xF74BD085), + UINT32_C(0x5485E038), UINT32_C(0x519BC676), UINT32_C(0xDE116ECE), + UINT32_C(0x7D3E6E21), UINT32_C(0x4221F32B), UINT32_C(0x10D68B8C), + UINT32_C(0x565C1614), UINT32_C(0xE41D74A9), UINT32_C(0x2E728554), + UINT32_C(0x191561DD)}}, + {{UINT32_C(0x01C9BD19), UINT32_C(0x527CD255), UINT32_C(0x913FA68C), + UINT32_C(0x01879769), UINT32_C(0xD76B7FCB), UINT32_C(0xE9BF7700), + UINT32_C(0x02B92508), UINT32_C(0xCEA4EE41), UINT32_C(0x34D015A1), + UINT32_C(0x739154CC), UINT32_C(0x44C3F451), UINT32_C(0xD1F1F1AC), + UINT32_C(0x7905A732), UINT32_C(0x1DF5A4AA), UINT32_C(0xB67F7057), + UINT32_C(0x081AFEB8)}, + {UINT32_C(0x671D0F79), UINT32_C(0x8A0EDEC0), UINT32_C(0x442928EE), + UINT32_C(0xE99B4B79), UINT32_C(0x2C1557B0), UINT32_C(0x4A722AC7), + UINT32_C(0x03021BBE), UINT32_C(0x95070ED6), UINT32_C(0x672C3F05), + UINT32_C(0x9E1E6418), UINT32_C(0x89B0C1A6), UINT32_C(0x87337263), + UINT32_C(0x008A3B13), UINT32_C(0xB67B8831), UINT32_C(0xB059BE83), + UINT32_C(0x4F44986B)}}, + {{UINT32_C(0x2CB15C97), UINT32_C(0x09A5B3C9), UINT32_C(0xF9B4777D), + UINT32_C(0x43E1B906), UINT32_C(0x66A5BC88), UINT32_C(0x3BAB3A64), + UINT32_C(0x7D82E655), UINT32_C(0x276632BB), UINT32_C(0xD97D5CE2), + UINT32_C(0xD09388D1), UINT32_C(0xCA1248C5), UINT32_C(0x26B0339D), + UINT32_C(0x11F2A8BB), UINT32_C(0x05F0A241), UINT32_C(0xB7F68A8A), + UINT32_C(0x1F498EBA)}, + {UINT32_C(0xD0DD019B), UINT32_C(0x265C09CF), UINT32_C(0x958B91C2), + UINT32_C(0x01A0FE11), UINT32_C(0x5A389069), UINT32_C(0xF55D56ED), + UINT32_C(0x1A18A889), UINT32_C(0x9E5DE2CA), UINT32_C(0x065A1799), + UINT32_C(0x4F4C9D39), UINT32_C(0x7213B184), UINT32_C(0xB5CB916F), + UINT32_C(0xB5D0926E), UINT32_C(0x1941E104), UINT32_C(0x2E03CFB8), + UINT32_C(0x6EC375E8)}}, + {{UINT32_C(0xB57B1B5D), UINT32_C(0x80F444ED), UINT32_C(0x7D4EFD6C), + UINT32_C(0x2E5315E7), UINT32_C(0x868CC07F), UINT32_C(0x9272EBA7), + UINT32_C(0x31A8EA6E), UINT32_C(0x19EC814D), UINT32_C(0xF29FCDBF), + UINT32_C(0x9EE92D03), UINT32_C(0x2E8408C3), UINT32_C(0xDBF8AB6B), + UINT32_C(0xA103D807), UINT32_C(0xA0E845FB), UINT32_C(0x1CA3992E), + UINT32_C(0x2A6A6B31)}, + {UINT32_C(0x1C391D76), UINT32_C(0xF58B6F6C), UINT32_C(0x13687C07), + UINT32_C(0x9E385BB2), UINT32_C(0x6BAEBBF5), UINT32_C(0xF6EE205B), + UINT32_C(0xA706C6C5), UINT32_C(0xB2D7D412), UINT32_C(0xCD887640), + UINT32_C(0xCFE32A97), UINT32_C(0xD93A1136), UINT32_C(0x2783CFE9), + UINT32_C(0xF4D34FA7), UINT32_C(0x601DE429), UINT32_C(0x6EA85459), + UINT32_C(0x1E433BB8)}}, + {{UINT32_C(0xD618AD6A), UINT32_C(0x8BCB9073), UINT32_C(0x996FE814), + UINT32_C(0x84CDBD19), UINT32_C(0x166793B9), UINT32_C(0xB1F5FFDB), + UINT32_C(0xEDE62FB4), UINT32_C(0x5FA22BAD), UINT32_C(0x7019C1EB), + UINT32_C(0xC1C1C394), UINT32_C(0x08AA77F0), UINT32_C(0x7A026191), + UINT32_C(0xA32E5855), UINT32_C(0x026EE69D), UINT32_C(0x80B81284), + UINT32_C(0x53563997)}, + {UINT32_C(0x5E0B9ABB), UINT32_C(0xF46C064F), UINT32_C(0xE8A0FE23), + UINT32_C(0x39332D2C), UINT32_C(0x0BE9ECC5), UINT32_C(0xBD50EE1C), + UINT32_C(0x8DE1B166), UINT32_C(0x9B4A4CC0), UINT32_C(0x56713AAF), + UINT32_C(0x4BBA7B7B), UINT32_C(0xF1C76C54), UINT32_C(0x2CA8EF64), + UINT32_C(0xCEB309E8), UINT32_C(0x1022D9F4), UINT32_C(0x15A18D10), + UINT32_C(0x4F1375BC)}}, + {{UINT32_C(0x9198331C), UINT32_C(0x09CF4EBA), UINT32_C(0x7D60EA39), + UINT32_C(0x232CA52D), UINT32_C(0x2FC3A96E), UINT32_C(0x2C478089), + UINT32_C(0x80CB5721), UINT32_C(0xC7F9A36C), UINT32_C(0x2D8802BE), + UINT32_C(0xEDA98A0C), UINT32_C(0x3C41B152), UINT32_C(0xC7413048), + UINT32_C(0xA74D701C), UINT32_C(0x479DF24F), UINT32_C(0x51869D52), + UINT32_C(0x7A92C3F1)}, + {UINT32_C(0xF00BA577), UINT32_C(0xC1AB98B3), UINT32_C(0xB7778354), + UINT32_C(0x5A687BA4), UINT32_C(0x157FB1D2), UINT32_C(0xF5A77B64), + UINT32_C(0x81BBAFEE), UINT32_C(0xB9F746AE), UINT32_C(0x1BEE9D2D), + UINT32_C(0xBA33EBDC), UINT32_C(0xD046655C), UINT32_C(0x6FE41BC1), + UINT32_C(0xACC3A496), UINT32_C(0x2A8CB913), UINT32_C(0x6AC2B374), + UINT32_C(0x7CBC537D)}}, + {{UINT32_C(0x538ED4B1), UINT32_C(0x55C19B5E), UINT32_C(0x61891DAE), + UINT32_C(0x6AA0E456), UINT32_C(0xCD971AE7), UINT32_C(0xD77CA0C2), + UINT32_C(0x70294F78), UINT32_C(0xB23434F7), UINT32_C(0x14D25513), + UINT32_C(0x3B87D759), UINT32_C(0x8B94F435), UINT32_C(0x2A37CFD2), + UINT32_C(0x3F3F32FF), UINT32_C(0xF63B0962), UINT32_C(0x98B5916A), + UINT32_C(0x6387EFB9)}, + {UINT32_C(0xF35951D8), UINT32_C(0xB2826971), UINT32_C(0x996C5518), + UINT32_C(0xD1DDCB0A), UINT32_C(0x3669304A), UINT32_C(0xA5E88B2D), + UINT32_C(0xC53DEDB7), UINT32_C(0xEA5685BD), UINT32_C(0x6A446FA0), + UINT32_C(0x2DD72E08), UINT32_C(0xEA074FF8), UINT32_C(0xFA2689EF), + UINT32_C(0x7A8302C3), UINT32_C(0xC3430BBE), UINT32_C(0xE98D1CD5), + UINT32_C(0x098A5073)}}, + {{UINT32_C(0x44EE6CC4), UINT32_C(0xCF5D95C2), UINT32_C(0xCE04027F), + UINT32_C(0x5D5278B5), UINT32_C(0xC1D26E0E), UINT32_C(0xEA0F4D01), + UINT32_C(0xAB2E71FB), UINT32_C(0xA79154F3), UINT32_C(0xDC59126C), + UINT32_C(0x27BBA6EE), UINT32_C(0x632BEE8F), UINT32_C(0x269EB8B7), + UINT32_C(0x53BB6C55), UINT32_C(0xD5894008), UINT32_C(0x222DDE2B), + UINT32_C(0x7698DA12)}, + {UINT32_C(0xB5D03BC6), UINT32_C(0x826DF5A3), UINT32_C(0xE126406F), + UINT32_C(0xFAADAD56), UINT32_C(0x68849D5F), UINT32_C(0x2EC70B64), + UINT32_C(0x1D799E78), UINT32_C(0x9DDF8991), UINT32_C(0xD4DE8AC5), + UINT32_C(0xB2AEAFC5), UINT32_C(0xE114AD71), UINT32_C(0x7A167F8F), + UINT32_C(0x13AA2EDF), UINT32_C(0x9DCD07BC), UINT32_C(0x6651BD12), + UINT32_C(0x531A5A3D)}}, + {{UINT32_C(0x82E7C32C), UINT32_C(0xDE7CE2AD), UINT32_C(0x2D0742C3), + UINT32_C(0x2C9908EA), UINT32_C(0x056F7C69), UINT32_C(0xDA528D69), + UINT32_C(0x704BFDCD), UINT32_C(0x1FE6E3EB), UINT32_C(0x79B0F586), + UINT32_C(0x9C1EEDDF), UINT32_C(0x481E83F6), UINT32_C(0x0F6F81FB), + UINT32_C(0xE007286E), UINT32_C(0x17DB66C0), UINT32_C(0x1802CD99), + UINT32_C(0x3607EC13)}, + {UINT32_C(0x6F216120), UINT32_C(0xCCB2B85C), UINT32_C(0xE51C2036), + UINT32_C(0x7B9EA544), UINT32_C(0x5428771E), UINT32_C(0xB14CD361), + UINT32_C(0x03C6BD02), UINT32_C(0x978C458E), UINT32_C(0xEACEB25A), + UINT32_C(0xEA43C163), UINT32_C(0x6B85CBB9), UINT32_C(0xB590D2D7), + UINT32_C(0x19C45D61), UINT32_C(0x10B8EB86), UINT32_C(0xA1FC40DE), + UINT32_C(0x2E5AF3E0)}}, + {{UINT32_C(0x90D2EA3E), UINT32_C(0x465C6261), UINT32_C(0x3E11EFC6), + UINT32_C(0x6B10583C), UINT32_C(0x24958F6C), UINT32_C(0x1E3A1132), + UINT32_C(0xB3336EA5), UINT32_C(0xCB895C3B), UINT32_C(0x5F89EEA1), + UINT32_C(0xCA995E60), UINT32_C(0x199719B0), UINT32_C(0x725FB30B), + UINT32_C(0xF8061D92), UINT32_C(0xC6897E80), UINT32_C(0x2CFBFB75), + UINT32_C(0x56680A53)}, + {UINT32_C(0xD13E5E25), UINT32_C(0xA770755D), UINT32_C(0xFB78D704), + UINT32_C(0xC33F71B0), UINT32_C(0xA101B288), UINT32_C(0x7B2322E7), + UINT32_C(0xC1075A9E), UINT32_C(0x03ED4A92), UINT32_C(0x4B8CB0D4), + UINT32_C(0xBF435984), UINT32_C(0x60F8188C), UINT32_C(0x6C61DDF3), + UINT32_C(0x4D04EA1B), UINT32_C(0x760339E1), UINT32_C(0x46CE38BC), + UINT32_C(0x18B7FE13)}}, + {{UINT32_C(0x838C109E), UINT32_C(0x7AA91562), UINT32_C(0xEF910EAF), + UINT32_C(0xBBCAE1A4), UINT32_C(0xA3F53427), UINT32_C(0xF3CAD5AD), + UINT32_C(0xAA559EE9), UINT32_C(0xF8FA6F08), UINT32_C(0x9B872C03), + UINT32_C(0x35DF7AA5), UINT32_C(0x8F1C0B48), UINT32_C(0x0A3C6789), + UINT32_C(0x3B1F9ABD), UINT32_C(0xE4106F6F), UINT32_C(0x7DAA3EA0), + UINT32_C(0x51EE882B)}, + {UINT32_C(0xA97C031B), UINT32_C(0xFAE35FE0), UINT32_C(0x2FB341D9), + UINT32_C(0x265CC7A2), UINT32_C(0xF7515098), UINT32_C(0xF99D1646), + UINT32_C(0xA70C3101), UINT32_C(0x3630DCFC), UINT32_C(0x984A7736), + UINT32_C(0x0D492AE5), UINT32_C(0xA65956C5), UINT32_C(0x1E46ACB5), + UINT32_C(0x9C39921B), UINT32_C(0x87E193D0), UINT32_C(0x71406E88), + UINT32_C(0x1AA85A4B)}}, + {{UINT32_C(0x26B55827), UINT32_C(0x6875F762), UINT32_C(0x28C694F4), + UINT32_C(0xC6E92CB6), UINT32_C(0x57E83283), UINT32_C(0xC3DA1CFB), + UINT32_C(0xFC91E16A), UINT32_C(0x2DAD4640), UINT32_C(0x079E48FB), + UINT32_C(0x27238EDF), UINT32_C(0x4676F002), UINT32_C(0x8262F37E), + UINT32_C(0x7E20A097), UINT32_C(0xF1DF5685), UINT32_C(0x1D647DBF), + UINT32_C(0x710B8830)}, + {UINT32_C(0x55F50EC5), UINT32_C(0xF521938F), UINT32_C(0x5A65EC57), + UINT32_C(0x86E72C2D), UINT32_C(0x9E067563), UINT32_C(0x72E72E10), + UINT32_C(0x2941350F), UINT32_C(0x1C572F37), UINT32_C(0x27E00FBF), + UINT32_C(0x0234F613), UINT32_C(0xE0605A65), UINT32_C(0xA33CCF1A), + UINT32_C(0x9BE4C255), UINT32_C(0xFDB2433A), UINT32_C(0xDD7E45CD), + UINT32_C(0x18374CEB)}}, + }, + { + {{UINT32_C(0x0CEEC3F3), UINT32_C(0x9E00FC84), UINT32_C(0x0D2268DF), + UINT32_C(0xA758AA23), UINT32_C(0xD36F482D), UINT32_C(0x5C9B3794), + UINT32_C(0xE90303E7), UINT32_C(0xEE3F79CF), UINT32_C(0xD1BB3495), + UINT32_C(0x22573217), UINT32_C(0xD2242A7E), UINT32_C(0x6D5C2063), + UINT32_C(0x876A074A), UINT32_C(0x339BEDB8), UINT32_C(0x95CD5AA2), + UINT32_C(0x63268703)}, + {UINT32_C(0x1B0CAE7B), UINT32_C(0xA86B4EF9), UINT32_C(0x3DB7D12D), + UINT32_C(0x420985B4), UINT32_C(0x6B1CEED3), UINT32_C(0x99A3BB29), + UINT32_C(0x3569FA9E), UINT32_C(0x2113B00F), UINT32_C(0x8E8BF2D8), + UINT32_C(0x2C592420), UINT32_C(0x00DB962B), UINT32_C(0xF74DD63B), + UINT32_C(0x9758035F), UINT32_C(0x8F0523E5), UINT32_C(0x448F83C0), + UINT32_C(0x4EA1D81A)}}, + {{UINT32_C(0xAAB1F908), UINT32_C(0x01183057), UINT32_C(0x324AC197), + UINT32_C(0xAF94AE9A), UINT32_C(0x23710A59), UINT32_C(0x6BF3B50D), + UINT32_C(0xC39A3428), UINT32_C(0x9B65A594), UINT32_C(0x2210C08A), + UINT32_C(0x345E5C52), UINT32_C(0x23216FE9), UINT32_C(0x6D728DD6), + UINT32_C(0x2E4F42C2), UINT32_C(0x9D09327B), UINT32_C(0x09505F44), + UINT32_C(0x47504F62)}, + {UINT32_C(0xFB3AD9B5), UINT32_C(0x24F03D12), UINT32_C(0x439F3E25), + UINT32_C(0x70E8DE3C), UINT32_C(0xAE5A62FE), UINT32_C(0x1FE89F0E), + UINT32_C(0x4B98CDA2), UINT32_C(0x3B518A06), UINT32_C(0xC70FF3F3), + UINT32_C(0x725AE18C), UINT32_C(0x02BA4952), UINT32_C(0x45765C35), + UINT32_C(0xA7C32E49), UINT32_C(0xBAA6488D), UINT32_C(0xC5A2E6D7), + UINT32_C(0x5D277639)}}, + {{UINT32_C(0xBD6F5DF9), UINT32_C(0xE3818693), UINT32_C(0x8307A5AD), + UINT32_C(0x482D9357), UINT32_C(0x323D211C), UINT32_C(0x82B507F2), + UINT32_C(0x92967D94), UINT32_C(0x9E382A71), UINT32_C(0xB3BFF973), + UINT32_C(0x4327BB2A), UINT32_C(0xAC87D95A), UINT32_C(0x911FF5F4), + UINT32_C(0x3BEF8BFB), UINT32_C(0xD2128961), UINT32_C(0xB8FA196B), + UINT32_C(0x43E2ED58)}, + {UINT32_C(0xD5D4F65F), UINT32_C(0x74359D2C), UINT32_C(0x401FC20D), + UINT32_C(0x7FE8B0D1), UINT32_C(0xC012734A), UINT32_C(0xAA9C0EBC), + UINT32_C(0xBC05E810), UINT32_C(0x54BB07ED), UINT32_C(0x94C9B39B), + UINT32_C(0x09744AB8), UINT32_C(0x47E3E6E7), UINT32_C(0x1B29E64A), + UINT32_C(0x3B728BB9), UINT32_C(0x82082F86), UINT32_C(0xE159E167), + UINT32_C(0x5DA4AF1D)}}, + {{UINT32_C(0xF80E5A20), UINT32_C(0xD838425E), UINT32_C(0x7AA52E54), + UINT32_C(0x1701F0F4), UINT32_C(0x3B0EF4D7), UINT32_C(0x2BC3E024), + UINT32_C(0xBD8C9C7E), UINT32_C(0x13DED370), UINT32_C(0x3853E414), + UINT32_C(0x93A9BCB0), UINT32_C(0x0B81BBA1), UINT32_C(0xBA752832), + UINT32_C(0x69F51EC3), UINT32_C(0xBE267CE5), UINT32_C(0x81D034EB), + UINT32_C(0x2DD13391)}, + {UINT32_C(0xEAB11B6E), UINT32_C(0x78E02B77), UINT32_C(0xD67C3B1C), + UINT32_C(0xDC2C14F2), UINT32_C(0x87193F9F), UINT32_C(0x3407014C), + UINT32_C(0x580D2A6C), UINT32_C(0xA5187CAC), UINT32_C(0x254FB63B), + UINT32_C(0xA76AD3CB), UINT32_C(0xFA5EC4B7), UINT32_C(0x16A7A635), + UINT32_C(0x358A7E00), UINT32_C(0x8B1E623D), UINT32_C(0xE428EB45), + UINT32_C(0x12DED0AE)}}, + {{UINT32_C(0x42D2628B), UINT32_C(0xEC93FF3E), UINT32_C(0x4D6D15AD), + UINT32_C(0xF3E153F8), UINT32_C(0xB269AFEF), UINT32_C(0x9C1D3EE7), + UINT32_C(0x2596D285), UINT32_C(0x1DC9ED6B), UINT32_C(0xDA973D5C), + UINT32_C(0x1D99A25F), UINT32_C(0x575656A3), UINT32_C(0x6D0CC657), + UINT32_C(0x9BE5B314), UINT32_C(0xB5FBD573), UINT32_C(0x4BCB4F6B), + UINT32_C(0x2D0AF381)}, + {UINT32_C(0x42992580), UINT32_C(0x813C6975), UINT32_C(0xD9C88B9F), + UINT32_C(0x5F35F31B), UINT32_C(0xF1315EA8), UINT32_C(0xD62AC131), + UINT32_C(0x20AEAF30), UINT32_C(0x6898E20F), UINT32_C(0x733A3518), + UINT32_C(0x85A2C8AF), UINT32_C(0x42DFC623), UINT32_C(0x60BB0AE0), + UINT32_C(0x7F5A3320), UINT32_C(0x5BE9C682), UINT32_C(0x0795B27B), + UINT32_C(0x78153114)}}, + {{UINT32_C(0x5BFB1A8F), UINT32_C(0xEBA2445D), UINT32_C(0xE3A37647), + UINT32_C(0x23CA73DB), UINT32_C(0x09D6A2E8), UINT32_C(0x1D41C8EA), + UINT32_C(0xB9CA389A), UINT32_C(0x837CB597), UINT32_C(0x1DAF5EF4), + UINT32_C(0x66B0A05A), UINT32_C(0x79720DD3), UINT32_C(0xD1EC0B2B), + UINT32_C(0x34EC20E5), UINT32_C(0xA4EBD633), UINT32_C(0x96CB4933), + UINT32_C(0x3CBE3C4B)}, + {UINT32_C(0xEAB154BD), UINT32_C(0x5DFBCA31), UINT32_C(0x086B4B02), + UINT32_C(0xA95532F9), UINT32_C(0x0ECE8177), UINT32_C(0xD6D5A014), + UINT32_C(0xC1701606), UINT32_C(0xA2BD7647), UINT32_C(0x28947FD0), + UINT32_C(0xA0513327), UINT32_C(0xFB8D79A4), UINT32_C(0x941ADE30), + UINT32_C(0xA5399FC5), UINT32_C(0xE793B659), UINT32_C(0x7A2DAACF), + UINT32_C(0x0CBA91FE)}}, + {{UINT32_C(0xF5D6C8A5), UINT32_C(0x6EDE3A1A), UINT32_C(0x5B8C138E), + UINT32_C(0x18C47EFC), UINT32_C(0x7B418D78), UINT32_C(0x997CB33C), + UINT32_C(0x83E40686), UINT32_C(0x5269B9B0), UINT32_C(0x8A20DE43), + UINT32_C(0x85054DDC), UINT32_C(0x9485BF29), UINT32_C(0x0FF62C38), + UINT32_C(0x0EF78B00), UINT32_C(0x8D769D16), UINT32_C(0x98B54D2D), + UINT32_C(0x53D43619)}, + {UINT32_C(0xC6B6FC2F), UINT32_C(0x7CAC1C68), UINT32_C(0xBA127B4F), + UINT32_C(0x4F4FB16B), UINT32_C(0xB003EE2B), UINT32_C(0x613B15EF), + UINT32_C(0x7121BA05), UINT32_C(0x51D36B34), UINT32_C(0x70C1BD53), + UINT32_C(0xA33E6C36), UINT32_C(0xEEF75FCD), UINT32_C(0x0D786268), + UINT32_C(0x425A7776), UINT32_C(0xEE9064EC), UINT32_C(0x1B720CA1), + UINT32_C(0x640F4FE3)}}, + {{UINT32_C(0xDE5EB014), UINT32_C(0x0D80E5DC), UINT32_C(0xFB6F0966), + UINT32_C(0x8B87C2C5), UINT32_C(0x7F7A8B3D), UINT32_C(0x440E812F), + UINT32_C(0xD930CD64), UINT32_C(0x4129E117), UINT32_C(0xBB1AD89B), + UINT32_C(0x19224A1F), UINT32_C(0x1B9CF977), UINT32_C(0xFF6582C1), + UINT32_C(0x2ED4B99F), UINT32_C(0x0C279A28), UINT32_C(0x61859FE3), + UINT32_C(0x5985FA32)}, + {UINT32_C(0xFD425835), UINT32_C(0xE807ADC1), UINT32_C(0x52CC2AFA), + UINT32_C(0xD0F0F7C6), UINT32_C(0x5C43ECC0), UINT32_C(0xF3B06F65), + UINT32_C(0x5F15A3D0), UINT32_C(0xC308696A), UINT32_C(0x97174601), + UINT32_C(0x00DC3AA7), UINT32_C(0x81B1A96F), UINT32_C(0x8FC6B2DE), + UINT32_C(0x2071B8F4), UINT32_C(0x0E4646A2), UINT32_C(0xE92B7E14), + UINT32_C(0x4D8B4DA5)}}, + {{UINT32_C(0x25133E4D), UINT32_C(0xA3719219), UINT32_C(0x1211714A), + UINT32_C(0x76EC5148), UINT32_C(0x75C6B433), UINT32_C(0xB5C0EC56), + UINT32_C(0x14240932), UINT32_C(0xE1DFD7B3), UINT32_C(0x239466CA), + UINT32_C(0x319F8E99), UINT32_C(0x35FED9C2), UINT32_C(0xA6D0F9EC), + UINT32_C(0xC41F492E), UINT32_C(0x19FC4B44), UINT32_C(0xB8CF87F2), + UINT32_C(0x36D24698)}, + {UINT32_C(0xC74D1AAA), UINT32_C(0x789735C0), UINT32_C(0x6B21C410), + UINT32_C(0x0C0DBF5F), UINT32_C(0x4DCAACF0), UINT32_C(0x157DEB3C), + UINT32_C(0x9826FE13), UINT32_C(0xA7D53A56), UINT32_C(0x8E151D58), + UINT32_C(0xB4F2E884), UINT32_C(0xA51FDECE), UINT32_C(0x6CD528BD), + UINT32_C(0x6F669DBD), UINT32_C(0x7EF7FA0E), UINT32_C(0x666F1F7B), + UINT32_C(0x5250D79D)}}, + {{UINT32_C(0x02CBADB6), UINT32_C(0xC33D5CC3), UINT32_C(0xC56345D9), + UINT32_C(0xF51C5ABF), UINT32_C(0x3B5E86CE), UINT32_C(0x0B2FED49), + UINT32_C(0x480D2793), UINT32_C(0x86599A1D), UINT32_C(0xA8F96CB6), + UINT32_C(0x15CA7826), UINT32_C(0x5DA5D7C0), UINT32_C(0x0577868C), + UINT32_C(0xF8B7F740), UINT32_C(0x0292603B), UINT32_C(0x85445AB2), + UINT32_C(0x49C31FB5)}, + {UINT32_C(0xEFDB9DA0), UINT32_C(0xCFF51BEB), UINT32_C(0x9DA2096C), + UINT32_C(0x1C552A23), UINT32_C(0x416FD3D7), UINT32_C(0x6FAC5D64), + UINT32_C(0x5F5F2D95), UINT32_C(0x7F6CD9A7), UINT32_C(0x1E91AB28), + UINT32_C(0x98BD5C7F), UINT32_C(0xDAC6FFA2), UINT32_C(0x95132D69), + UINT32_C(0x4C6BDC19), UINT32_C(0x5611638C), UINT32_C(0x0DDCBF9E), + UINT32_C(0x79320E84)}}, + {{UINT32_C(0x28AD172D), UINT32_C(0x2B07BCB2), UINT32_C(0x9AABAAA7), + UINT32_C(0xFBD85553), UINT32_C(0x715A69DA), UINT32_C(0x466FF9B8), + UINT32_C(0x5DF8355B), UINT32_C(0xA5EE097A), UINT32_C(0x94527A84), + UINT32_C(0x5E81EF36), UINT32_C(0x62E79307), UINT32_C(0x0FD82858), + UINT32_C(0x7A0154D8), UINT32_C(0xF77154C6), UINT32_C(0x17F87D8C), + UINT32_C(0x706EA857)}, + {UINT32_C(0xEDF504A7), UINT32_C(0x696280B6), UINT32_C(0x0D58FD9E), + UINT32_C(0x8E2FDF94), UINT32_C(0x0A6463DF), UINT32_C(0x4582C065), + UINT32_C(0x68B7389B), UINT32_C(0x5DC2DECD), UINT32_C(0xD2CFCF3C), + UINT32_C(0x98D77559), UINT32_C(0xE277A1EA), UINT32_C(0x4E652C83), + UINT32_C(0x22B153DC), UINT32_C(0x81FA94F7), UINT32_C(0x27250748), + UINT32_C(0x6B86C4CB)}}, + {{UINT32_C(0x9050FD42), UINT32_C(0x31FA2A56), UINT32_C(0xFDCEFA17), + UINT32_C(0x72FEACD1), UINT32_C(0x84A8F817), UINT32_C(0xDC60ED63), + UINT32_C(0x24332D2E), UINT32_C(0x584DADB8), UINT32_C(0x3C47EB6B), + UINT32_C(0x44D7CF2E), UINT32_C(0x9A6BC268), UINT32_C(0x905E2D0E), + UINT32_C(0x6EF013BE), UINT32_C(0x501FE448), UINT32_C(0x999445A7), + UINT32_C(0x733E11DA)}, + {UINT32_C(0xB4A90B6B), UINT32_C(0x7EBF9F56), UINT32_C(0x4364F578), + UINT32_C(0x526D5685), UINT32_C(0xBE950B53), UINT32_C(0xBF9B3EF7), + UINT32_C(0x73D295F8), UINT32_C(0x6C5EEE0A), UINT32_C(0x3F9CFD38), + UINT32_C(0x4A79F9A7), UINT32_C(0x5C348121), UINT32_C(0xA8C15D28), + UINT32_C(0x7BC3EEA7), UINT32_C(0xDB33882F), UINT32_C(0x1C95C7DB), + UINT32_C(0x164B6C98)}}, + {{UINT32_C(0x876E8E37), UINT32_C(0x99A0B2F1), UINT32_C(0x7D53142D), + UINT32_C(0x9540376E), UINT32_C(0x6F20C705), UINT32_C(0x9D87809D), + UINT32_C(0xB0FDE5DE), UINT32_C(0x1305C33B), UINT32_C(0xDF9311EB), + UINT32_C(0x172DFA23), UINT32_C(0xB8B9A7ED), UINT32_C(0xC55A603C), + UINT32_C(0x398CDDF1), UINT32_C(0xF4426DA9), UINT32_C(0x93395515), + UINT32_C(0x7EE621B0)}, + {UINT32_C(0x7190296B), UINT32_C(0xBBD0B9E9), UINT32_C(0x817E9802), + UINT32_C(0x244FFECC), UINT32_C(0x071D598F), UINT32_C(0x572B5387), + UINT32_C(0xD2B681E2), UINT32_C(0x8314EF61), UINT32_C(0x639B8713), + UINT32_C(0x8F8CA790), UINT32_C(0xF265F881), UINT32_C(0x81FD3C40), + UINT32_C(0x78DB97D0), UINT32_C(0x05EC87EA), UINT32_C(0xE4CB4B7D), + UINT32_C(0x7C279328)}}, + {{UINT32_C(0xA3B4A536), UINT32_C(0xF385F057), UINT32_C(0x4844689C), + UINT32_C(0x14C2337F), UINT32_C(0x8B5FFFB0), UINT32_C(0x3523F9A9), + UINT32_C(0xA5E078C2), UINT32_C(0xF5E10A66), UINT32_C(0x9EEAC34E), + UINT32_C(0xC5DDD869), UINT32_C(0xED24D386), UINT32_C(0x16348B68), + UINT32_C(0xEBB0A580), UINT32_C(0x90992D06), UINT32_C(0x047485A9), + UINT32_C(0x001BD2DB)}, + {UINT32_C(0xDABC2B30), UINT32_C(0x871A178B), UINT32_C(0x6B5F7DC4), + UINT32_C(0xEC9674EC), UINT32_C(0xAC23E5B0), UINT32_C(0xBB3B1C57), + UINT32_C(0x44A658A1), UINT32_C(0x6DBB0530), UINT32_C(0x61E53517), + UINT32_C(0x28B031C9), UINT32_C(0x64182250), UINT32_C(0xC1AB8ED5), + UINT32_C(0xD1333B9E), UINT32_C(0xDA3FE27E), UINT32_C(0x71AD4520), + UINT32_C(0x4652F37C)}}, + {{UINT32_C(0x7B2186CC), UINT32_C(0xB9C2F894), UINT32_C(0x57CF825F), + UINT32_C(0xFA2E5BE5), UINT32_C(0x26232D47), UINT32_C(0x71A9C723), + UINT32_C(0xEB1F6B74), UINT32_C(0xD990D5D4), UINT32_C(0xEE869587), + UINT32_C(0x0526A74F), UINT32_C(0x79F385E3), UINT32_C(0xB29047B1), + UINT32_C(0x7588AABE), UINT32_C(0xE9555EB3), UINT32_C(0xE8EDC982), + UINT32_C(0x379D31BA)}, + {UINT32_C(0xDEC275F9), UINT32_C(0xD1354749), UINT32_C(0x38EAAC97), + UINT32_C(0xDC580016), UINT32_C(0x894811E9), UINT32_C(0x23B6F54D), + UINT32_C(0x838B2AE0), UINT32_C(0x8A2356F8), UINT32_C(0x0332F83F), + UINT32_C(0x5ECBE075), UINT32_C(0xF248814B), UINT32_C(0x1DE54B95), + UINT32_C(0x963938AE), UINT32_C(0x3B4D634D), UINT32_C(0x7A5F8CB0), + UINT32_C(0x4C8888A5)}}, + {{UINT32_C(0x866B8E1D), UINT32_C(0xC6A93408), UINT32_C(0x3FA8DDAC), + UINT32_C(0x33DCDEAC), UINT32_C(0x5DBEC7A8), UINT32_C(0x7F21F911), + UINT32_C(0x888CF7C1), UINT32_C(0x4C54D4CB), UINT32_C(0xB81E81C5), + UINT32_C(0x3FBBB373), UINT32_C(0xC50F3415), UINT32_C(0x2946B9BB), + UINT32_C(0x72265924), UINT32_C(0x8EA5487B), UINT32_C(0xBDEBBFEC), + UINT32_C(0x3D570399)}, + {UINT32_C(0x1939A079), UINT32_C(0x86C128FF), UINT32_C(0x9509F043), + UINT32_C(0x4B37E081), UINT32_C(0x7209D23F), UINT32_C(0x42991231), + UINT32_C(0x68A1134B), UINT32_C(0x22D2D207), UINT32_C(0x34D6A734), + UINT32_C(0xA5AF7A38), UINT32_C(0x2ED7FCBF), UINT32_C(0x752A8190), + UINT32_C(0x80FD1D18), UINT32_C(0x11CC5870), UINT32_C(0xD189B4DD), + UINT32_C(0x1D9ACAE3)}}, + }, + { + {{UINT32_C(0xBD6BEAA4), UINT32_C(0xE47BFD7F), UINT32_C(0x56A13CBF), + UINT32_C(0x6D4E6C12), UINT32_C(0x955E8CFA), UINT32_C(0x66944291), + UINT32_C(0xE17CB432), UINT32_C(0xA5D03765), UINT32_C(0x87350701), + UINT32_C(0xB39957CC), UINT32_C(0xC31F2D8B), UINT32_C(0x5442D545), + UINT32_C(0xA27161B7), UINT32_C(0xB260AC7D), UINT32_C(0x272AA5A0), + UINT32_C(0x633DBFE5)}, + {UINT32_C(0xCC5C98C5), UINT32_C(0x6273DAA0), UINT32_C(0xF7F5EE34), + UINT32_C(0x18117A87), UINT32_C(0xFFC6434F), UINT32_C(0x70638CFD), + UINT32_C(0x540FDE06), UINT32_C(0xC3F386EE), UINT32_C(0xD18B02F7), + UINT32_C(0xA97159E3), UINT32_C(0xEB612449), UINT32_C(0x10E18495), + UINT32_C(0x3D9E5A31), UINT32_C(0xD572354C), UINT32_C(0x9A2301C1), + UINT32_C(0x2642E9F2)}}, + {{UINT32_C(0x442143BC), UINT32_C(0x01048593), UINT32_C(0x12B5CE6C), + UINT32_C(0x015299B1), UINT32_C(0x5F5AEA95), UINT32_C(0x7DB0D76F), + UINT32_C(0xD2FB7690), UINT32_C(0xE9E3DA6F), UINT32_C(0x8904CCF0), + UINT32_C(0x6E4C64AB), UINT32_C(0xA49B6CCD), UINT32_C(0xDCBD06CC), + UINT32_C(0xB0ABB0C1), UINT32_C(0x7258A3FC), UINT32_C(0x59FC214B), + UINT32_C(0x07DF0E94)}, + {UINT32_C(0x1E7CC675), UINT32_C(0x58804CBF), UINT32_C(0xE80CFBF9), + UINT32_C(0x26CB78C2), UINT32_C(0x9AE03E99), UINT32_C(0xD0A31AF0), + UINT32_C(0x5C86A88D), UINT32_C(0x121F1D3D), UINT32_C(0x2507EBB7), + UINT32_C(0x42172604), UINT32_C(0x2BBA126B), UINT32_C(0x1C047782), + UINT32_C(0x102027F2), UINT32_C(0xE85C59C8), UINT32_C(0xCD8232E8), + UINT32_C(0x461D9C09)}}, + {{UINT32_C(0x200770DE), UINT32_C(0x97B3842A), UINT32_C(0x77C0536B), + UINT32_C(0x4647F3FE), UINT32_C(0xBF7476D9), UINT32_C(0x37CC9562), + UINT32_C(0x2DEA54A8), UINT32_C(0x90D29C5C), UINT32_C(0xC21BF888), + UINT32_C(0xCD666644), UINT32_C(0xC5CF18C8), UINT32_C(0xEAE36F2F), + UINT32_C(0xFD93F2C5), UINT32_C(0x903D889A), UINT32_C(0xE5F67DF4), + UINT32_C(0x037ADD7E)}, + {UINT32_C(0x995AC5D0), UINT32_C(0xD38FA2DC), UINT32_C(0x98A2A549), + UINT32_C(0x69D19EA1), UINT32_C(0x5E8F6D58), UINT32_C(0xEC7814C7), + UINT32_C(0x247C0E89), UINT32_C(0xDD241DB2), UINT32_C(0xE5CF278B), + UINT32_C(0x5421BE26), UINT32_C(0xEDACBA69), UINT32_C(0xCF675E38), + UINT32_C(0x21F9C045), UINT32_C(0x397356A1), UINT32_C(0x49E0BF07), + UINT32_C(0x317C547F)}}, + {{UINT32_C(0xF5C55ABA), UINT32_C(0x2EB59913), UINT32_C(0x99485E9B), + UINT32_C(0x805C61A1), UINT32_C(0xB4C7CEE9), UINT32_C(0x94D81C7E), + UINT32_C(0xA9DEE0B1), UINT32_C(0x2DD3516F), UINT32_C(0x3353561D), + UINT32_C(0x4C59CC21), UINT32_C(0x5EE9F7B9), UINT32_C(0x375C19F3), + UINT32_C(0x27FC9486), UINT32_C(0x89DE4E41), UINT32_C(0x24995DF5), + UINT32_C(0x68487AFF)}, + {UINT32_C(0x6D549CB6), UINT32_C(0x15B98DF0), UINT32_C(0x9B4544BA), + UINT32_C(0x4B884EDE), UINT32_C(0x1B3D89C5), UINT32_C(0xE2CEA206), + UINT32_C(0x2648786B), UINT32_C(0xCE8945D2), UINT32_C(0xF1272125), + UINT32_C(0x0B209B7C), UINT32_C(0x2BAFF0D1), UINT32_C(0xEAB0849A), + UINT32_C(0xE971F89E), UINT32_C(0xE5F18031), UINT32_C(0x766B7A2F), + UINT32_C(0x4379379C)}}, + {{UINT32_C(0x29B51FB0), UINT32_C(0xFC10C847), UINT32_C(0x1E012F1A), + UINT32_C(0x148AE7AF), UINT32_C(0xA20D8DBE), UINT32_C(0x75A5A6FD), + UINT32_C(0x8FA0842C), UINT32_C(0x30148FCB), UINT32_C(0x126F8253), + UINT32_C(0x0A64E438), UINT32_C(0xAECD60D4), UINT32_C(0x72C3C042), + UINT32_C(0x38A21DFB), UINT32_C(0x6C3589C8), UINT32_C(0x6BB0D5D0), + UINT32_C(0x64BA4594)}, + {UINT32_C(0xD464168A), UINT32_C(0x6E818AA1), UINT32_C(0x1743888E), + UINT32_C(0x96C68C33), UINT32_C(0x0672EC8E), UINT32_C(0x0D52C73F), + UINT32_C(0xA8B446E9), UINT32_C(0x56F9E940), UINT32_C(0xC0E008C5), + UINT32_C(0x68F43782), UINT32_C(0x96201134), UINT32_C(0x7C0D8BFE), + UINT32_C(0xB3F5942B), UINT32_C(0x66C97894), UINT32_C(0x89BE1E99), + UINT32_C(0x08579CF9)}}, + {{UINT32_C(0x2828506B), UINT32_C(0xE863C3A9), UINT32_C(0x9DF36CD1), + UINT32_C(0x18C6E29D), UINT32_C(0xC2AD4DFB), UINT32_C(0xA2DF177D), + UINT32_C(0x08B5F6B6), UINT32_C(0xD0E200A2), UINT32_C(0x77B670DB), + UINT32_C(0x6BE0AF75), UINT32_C(0xBD46EEB0), UINT32_C(0x750E92FD), + UINT32_C(0x87F96AD1), UINT32_C(0x21E21B37), UINT32_C(0xC89C7708), + UINT32_C(0x0C4F884E)}, + {UINT32_C(0x630AF761), UINT32_C(0xBCCD3155), UINT32_C(0x19F3528A), + UINT32_C(0x769F9CED), UINT32_C(0xBF9CAC65), UINT32_C(0x2572864D), + UINT32_C(0xF43268F0), UINT32_C(0xD276411C), UINT32_C(0xA2C48843), + UINT32_C(0x12D9FDCF), UINT32_C(0x7AAF1CBC), UINT32_C(0x320A13DF), + UINT32_C(0x630820CF), UINT32_C(0x3D4DCB95), UINT32_C(0x28553384), + UINT32_C(0x5F471E21)}}, + {{UINT32_C(0x9C6DCC7D), UINT32_C(0xC14F1D4D), UINT32_C(0xBC2EA2FA), + UINT32_C(0x9CEA8E3A), UINT32_C(0x4F1DE28B), UINT32_C(0xD854AEC0), + UINT32_C(0xB0EF66E2), UINT32_C(0x5FAFDDCE), UINT32_C(0xA190ADC7), + UINT32_C(0xD5BAF034), UINT32_C(0x052D641A), UINT32_C(0xFEB3DE5F), + UINT32_C(0x51F9F744), UINT32_C(0xA336FD9A), UINT32_C(0x2E516669), + UINT32_C(0x11E7DE0F)}, + {UINT32_C(0x0CD862CD), UINT32_C(0x46B24027), UINT32_C(0x22667C9F), + UINT32_C(0xDB3CE4A2), UINT32_C(0x8E3438CF), UINT32_C(0xDF1BD2A2), + UINT32_C(0x94E0825A), UINT32_C(0xC20E6ECB), UINT32_C(0x4EDF3C36), + UINT32_C(0x08678222), UINT32_C(0xD86E0625), UINT32_C(0xCD547458), + UINT32_C(0xC1C8975A), UINT32_C(0xED9FFDFA), UINT32_C(0x60FF6B18), + UINT32_C(0x7709A34E)}}, + {{UINT32_C(0x0D6EF8BE), UINT32_C(0xEE6F55D7), UINT32_C(0xC47749F3), + UINT32_C(0x6BA29662), UINT32_C(0xCB5824F0), UINT32_C(0x505BEBB2), + UINT32_C(0x7CE139AF), UINT32_C(0xDAA39E01), UINT32_C(0xBA4EAAF5), + UINT32_C(0xC73FFE67), UINT32_C(0x1216FBC5), UINT32_C(0x1AC8354F), + UINT32_C(0x7C029B38), UINT32_C(0xFA600D70), UINT32_C(0xB77E8711), + UINT32_C(0x1DEF1E98)}, + {UINT32_C(0x2199269A), UINT32_C(0x9EA77FEF), UINT32_C(0xA4B5E402), + UINT32_C(0xCC5F3E27), UINT32_C(0xFE20DCF6), UINT32_C(0x998BF96F), + UINT32_C(0x54252277), UINT32_C(0xCF543A71), UINT32_C(0x71A66685), + UINT32_C(0x9D767F87), UINT32_C(0x860B1EC4), UINT32_C(0x0E1AA8F5), + UINT32_C(0x9437E2D0), UINT32_C(0x3979C394), UINT32_C(0x855C635C), + UINT32_C(0x55CBC282)}}, + {{UINT32_C(0xDB0F28BC), UINT32_C(0x798D8087), UINT32_C(0x90209D22), + UINT32_C(0x80BE50E6), UINT32_C(0x69AE2A50), UINT32_C(0x6B14A1E1), + UINT32_C(0x21B5A02E), UINT32_C(0x504AD87B), UINT32_C(0x81938DD3), + UINT32_C(0xBF92B621), UINT32_C(0xE927A712), UINT32_C(0x1A209438), + UINT32_C(0x3C613F5E), UINT32_C(0x3DFC548A), UINT32_C(0xA3C2CC7E), + UINT32_C(0x1E6E3311)}, + {UINT32_C(0xA91BB2B2), UINT32_C(0xE46AC0C4), UINT32_C(0xDF9BA7FD), + UINT32_C(0xAC89BB09), UINT32_C(0x04403839), UINT32_C(0xC87555DD), + UINT32_C(0xC6BB4379), UINT32_C(0xB1460C86), UINT32_C(0x5FC6E594), + UINT32_C(0x3AD253EF), UINT32_C(0x393CB89B), UINT32_C(0xB66B2FB7), + UINT32_C(0xE1BAB087), UINT32_C(0x1411B9FD), UINT32_C(0x22C9CE4C), + UINT32_C(0x084DD6CD)}}, + {{UINT32_C(0xE480DDEB), UINT32_C(0x676D50EE), UINT32_C(0xD14909D0), + UINT32_C(0x588EC4BB), UINT32_C(0xB5DD3FC6), UINT32_C(0x509A74A7), + UINT32_C(0xAA6870F2), UINT32_C(0xE616EEF3), UINT32_C(0x98C5A7E5), + UINT32_C(0x76F235D9), UINT32_C(0x77FFB2E6), UINT32_C(0x7A925C55), + UINT32_C(0x955213B7), UINT32_C(0x0A78A158), UINT32_C(0x28FB60B7), + UINT32_C(0x07B068B9)}, + {UINT32_C(0x50380E64), UINT32_C(0x7610C821), UINT32_C(0x282776C2), + UINT32_C(0x6E7C80CE), UINT32_C(0xEEBD3250), UINT32_C(0x9F67368A), + UINT32_C(0x85FB7863), UINT32_C(0x932F6E99), UINT32_C(0x924A519D), + UINT32_C(0x41FCC562), UINT32_C(0xB499B4AF), UINT32_C(0xC099DE16), + UINT32_C(0xAC9C7E76), UINT32_C(0x10764D48), UINT32_C(0xA1BABCE6), + UINT32_C(0x66C85BF9)}}, + {{UINT32_C(0xF5CB951F), UINT32_C(0xB080963F), UINT32_C(0x2A16F27F), + UINT32_C(0xD9A5580B), UINT32_C(0x4FCEE6ED), UINT32_C(0x5840499D), + UINT32_C(0x4F3B33D4), UINT32_C(0x5F4704D6), UINT32_C(0x82256A05), + UINT32_C(0x02A13993), UINT32_C(0x92365A7E), UINT32_C(0x5713E019), + UINT32_C(0x6F38944B), UINT32_C(0x4A2F7BA6), UINT32_C(0xA47662D3), + UINT32_C(0x14B58D5B)}, + {UINT32_C(0x5900EFC8), UINT32_C(0xC219E300), UINT32_C(0x4FE2DFC9), + UINT32_C(0x45707A50), UINT32_C(0x6863DF90), UINT32_C(0x0CE4FACD), + UINT32_C(0xC6BCDA9C), UINT32_C(0xEDB31912), UINT32_C(0x85B6CF7C), + UINT32_C(0x3E24A0D6), UINT32_C(0x358DDF3B), UINT32_C(0x6365ACDA), + UINT32_C(0xF2CB0823), UINT32_C(0x10FD0871), UINT32_C(0x1DAFE4C7), + UINT32_C(0x51D58D3D)}}, + {{UINT32_C(0x291B51D2), UINT32_C(0xE5B64EF4), UINT32_C(0x1A7A445D), + UINT32_C(0x70C52EDB), UINT32_C(0xC1E8DF63), UINT32_C(0x758D0DC9), + UINT32_C(0x0677FE82), UINT32_C(0x55328AB3), UINT32_C(0x7F3A1866), + UINT32_C(0xAF4221FF), UINT32_C(0x8C04E9CA), UINT32_C(0xDE1BA109), + UINT32_C(0x4C577D77), UINT32_C(0x26F0D086), UINT32_C(0x6D494F73), + UINT32_C(0x6D5D3FB1)}, + {UINT32_C(0x451F8B8C), UINT32_C(0x3C0153EB), UINT32_C(0x5FD3ED6A), + UINT32_C(0x6A9B03D1), UINT32_C(0x175180C3), UINT32_C(0xDF442C11), + UINT32_C(0x4DD99376), UINT32_C(0xB205EB51), UINT32_C(0xEB489DE3), + UINT32_C(0x28E9C5FF), UINT32_C(0x44766908), UINT32_C(0x225CEB09), + UINT32_C(0xEB193B68), UINT32_C(0x1DB1F7E7), UINT32_C(0xDF27292C), + UINT32_C(0x364B9E6B)}}, + {{UINT32_C(0x728F33A8), UINT32_C(0xDC6E723D), UINT32_C(0x3A0930B3), + UINT32_C(0x8ABEB28A), UINT32_C(0xD024D8B7), UINT32_C(0x584B13CA), + UINT32_C(0xDBDE780E), UINT32_C(0xDCDC5BB7), UINT32_C(0x161D9801), + UINT32_C(0xA2AD762B), UINT32_C(0x6CE5F18A), UINT32_C(0x46EBC8A9), + UINT32_C(0x7EB1CD22), UINT32_C(0x97A0BA52), UINT32_C(0xE22D91D5), + UINT32_C(0x58BC4DAA)}, + {UINT32_C(0x9F01D49D), UINT32_C(0xC06F0B25), UINT32_C(0x3533732B), + UINT32_C(0x8236F2AD), UINT32_C(0x7C6C24F4), UINT32_C(0xE3DF9BF5), + UINT32_C(0x6AA1E1F0), UINT32_C(0xD60FBCC7), UINT32_C(0xB70A307F), + UINT32_C(0x8DDBB9A2), UINT32_C(0xC6071C49), UINT32_C(0x61BB56B1), + UINT32_C(0x1ABF19BD), UINT32_C(0x8D3446D7), UINT32_C(0x46387989), + UINT32_C(0x44AF2FD8)}}, + {{UINT32_C(0x86B1B8AE), UINT32_C(0x25ACEB4C), UINT32_C(0x67CFD1AA), + UINT32_C(0xB5B0A7E3), UINT32_C(0xB0F063B4), UINT32_C(0x87B3C5CB), + UINT32_C(0x6F03BE41), UINT32_C(0x7F429274), UINT32_C(0xD82D7749), + UINT32_C(0x412836E0), UINT32_C(0x535225CC), UINT32_C(0xD9B1603B), + UINT32_C(0x1590B41F), UINT32_C(0xCBF1A827), UINT32_C(0xFE159BF9), + UINT32_C(0x47C32D83)}, + {UINT32_C(0x369026E5), UINT32_C(0x7A147456), UINT32_C(0x2691A87D), + UINT32_C(0x4A21DAB1), UINT32_C(0x61818C2D), UINT32_C(0x006D3EA4), + UINT32_C(0xD548A261), UINT32_C(0x56006BDF), UINT32_C(0x1D7DA713), + UINT32_C(0x8632A909), UINT32_C(0x26E387A5), UINT32_C(0x859839DD), + UINT32_C(0x7FF52CF4), UINT32_C(0x41E4D9D9), UINT32_C(0x85A8F21E), + UINT32_C(0x0E21329F)}}, + {{UINT32_C(0x626902CA), UINT32_C(0xDF4AF1E0), UINT32_C(0xEC50A5FF), + UINT32_C(0x339CD3CD), UINT32_C(0x98DD7A01), UINT32_C(0x44B2ABBA), + UINT32_C(0xCC7AC1A8), UINT32_C(0x47A4DA46), UINT32_C(0x1EA0F3A8), + UINT32_C(0xA6925341), UINT32_C(0xC23AA0AC), UINT32_C(0x46F82C17), + UINT32_C(0x386897AA), UINT32_C(0xF0394E44), UINT32_C(0x9D5AA759), + UINT32_C(0x601F9A55)}, + {UINT32_C(0xEF324E1E), UINT32_C(0x194F939F), UINT32_C(0xE2F35782), + UINT32_C(0x188BE442), UINT32_C(0x5683B3DD), UINT32_C(0x4B2FA7C1), + UINT32_C(0x44300367), UINT32_C(0x9F2737A6), UINT32_C(0xAFDF269E), + UINT32_C(0xB72F7E8A), UINT32_C(0x7A8A5232), UINT32_C(0x5FFD8755), + UINT32_C(0x43299A6C), UINT32_C(0xA1641CF0), UINT32_C(0xC4D1E057), + UINT32_C(0x1FDA30D5)}}, + {{UINT32_C(0xD94B7DD2), UINT32_C(0x926373C4), UINT32_C(0xFAA5C280), + UINT32_C(0xE9882CA7), UINT32_C(0xC1D821E2), UINT32_C(0x358F82F6), + UINT32_C(0x8812649A), UINT32_C(0xDF981826), UINT32_C(0x10D267E1), + UINT32_C(0x96ED4507), UINT32_C(0xF7DF2D84), UINT32_C(0x72253BD1), + UINT32_C(0x1F09BC6D), UINT32_C(0x78F13C38), UINT32_C(0x15D1F353), + UINT32_C(0x023C79F0)}, + {UINT32_C(0x65E1924F), UINT32_C(0x5E357E1A), UINT32_C(0x18CC9432), + UINT32_C(0x827A8C83), UINT32_C(0x8696C800), UINT32_C(0x9A2FF5D6), + UINT32_C(0xE26AB439), UINT32_C(0xDE825B6A), UINT32_C(0xA646B303), + UINT32_C(0x34C74673), UINT32_C(0x50657C92), UINT32_C(0xFBFD424E), + UINT32_C(0x1F96EEC2), UINT32_C(0xAAD263D9), UINT32_C(0x42FF59EC), + UINT32_C(0x78D93F6C)}}, + }, + { + {{UINT32_C(0x4ACCAC90), UINT32_C(0xEF807EEB), UINT32_C(0x83EFEFD0), + UINT32_C(0xEA3708EC), UINT32_C(0xAC470AEC), UINT32_C(0xB3F56C3D), + UINT32_C(0x4BB6B4A8), UINT32_C(0x0467461D), UINT32_C(0x455704F7), + UINT32_C(0x9E2D3152), UINT32_C(0x95097282), UINT32_C(0x957F5FF6), + UINT32_C(0xAEADBFBC), UINT32_C(0x1BBA5CCA), UINT32_C(0x829F221F), + UINT32_C(0x5D64A8B0)}, + {UINT32_C(0xDC012583), UINT32_C(0x63B30E25), UINT32_C(0x6E8E7E4B), + UINT32_C(0x739D6C4D), UINT32_C(0x108F21C6), UINT32_C(0x4DB4BA8A), + UINT32_C(0x8E217429), UINT32_C(0xE4D0991D), UINT32_C(0x747D489D), + UINT32_C(0x0DFEC43E), UINT32_C(0x3F6623D2), UINT32_C(0x759C611C), + UINT32_C(0x1C16C550), UINT32_C(0xBB3166AE), UINT32_C(0x46E761A6), + UINT32_C(0x1097FE41)}}, + {{UINT32_C(0x2774936E), UINT32_C(0x5CACE928), UINT32_C(0x97A7BC86), + UINT32_C(0x7D88CE3C), UINT32_C(0x2732B6C7), UINT32_C(0x7B5F9D75), + UINT32_C(0xA9623A78), UINT32_C(0x31E096D2), UINT32_C(0x8F2A6C6F), + UINT32_C(0xED0B1A7F), UINT32_C(0x8A38C329), UINT32_C(0x47F31AC0), + UINT32_C(0x8AE3E440), UINT32_C(0x65FE20B4), UINT32_C(0x8FF8D87D), + UINT32_C(0x5BB3DF72)}, + {UINT32_C(0x394AF7A9), UINT32_C(0x5C361D56), UINT32_C(0x4A967882), + UINT32_C(0x37A95802), UINT32_C(0xC3D24749), UINT32_C(0x02037A09), + UINT32_C(0xA9EB6A87), UINT32_C(0x623CF773), UINT32_C(0xCC9980AC), + UINT32_C(0x4D09B042), UINT32_C(0x4C258646), UINT32_C(0xC1EF17CA), + UINT32_C(0xEA522FA1), UINT32_C(0x054C55D4), UINT32_C(0x1459D247), + UINT32_C(0x756B405D)}}, + {{UINT32_C(0xFF7BCBB8), UINT32_C(0xC88B5D92), UINT32_C(0x33BB4D7F), + UINT32_C(0x37E62C2A), UINT32_C(0x93850D2E), UINT32_C(0x63DBECFC), + UINT32_C(0x5DAF279B), UINT32_C(0x282E1896), UINT32_C(0xB2FD8FA2), + UINT32_C(0x90226257), UINT32_C(0x69A65468), UINT32_C(0x68215F8C), + UINT32_C(0x56338A49), UINT32_C(0xAEBF43D5), UINT32_C(0x38D7D063), + UINT32_C(0x035A40A0)}, + {UINT32_C(0x61C724FC), UINT32_C(0xEEEE462E), UINT32_C(0xA58C2B0C), + UINT32_C(0x660F015B), UINT32_C(0xE16621D4), UINT32_C(0x627E0736), + UINT32_C(0x5D724668), UINT32_C(0xD423ADA8), UINT32_C(0x6B777C4C), + UINT32_C(0xF98AB83A), UINT32_C(0x5DC968EE), UINT32_C(0x4F5FEC82), + UINT32_C(0xDF9BE0BE), UINT32_C(0x4AC7CAAA), UINT32_C(0xCADCF93D), + UINT32_C(0x6F7E06DC)}}, + {{UINT32_C(0xDE36D484), UINT32_C(0xCF90CB74), UINT32_C(0x0ED61EEE), + UINT32_C(0xD511A70F), UINT32_C(0x33798A5C), UINT32_C(0xDBF5689E), + UINT32_C(0xDAA5D75E), UINT32_C(0x81900CF3), UINT32_C(0x84CA34C5), + UINT32_C(0x854460AA), UINT32_C(0x39220C74), UINT32_C(0x3C00E7B5), + UINT32_C(0xAB33422B), UINT32_C(0x4E7CE464), UINT32_C(0xAB536B00), + UINT32_C(0x22221BD4)}, + {UINT32_C(0xE50DFFEE), UINT32_C(0x718695F4), UINT32_C(0xD103C522), + UINT32_C(0x466D642C), UINT32_C(0x6EC72083), UINT32_C(0xA01B7070), + UINT32_C(0xCB7675DD), UINT32_C(0xD29C046D), UINT32_C(0x605F249C), + UINT32_C(0xA2AF1025), UINT32_C(0xEA9111DF), UINT32_C(0x3BD414BD), + UINT32_C(0x7D037C23), UINT32_C(0x8DCEC509), UINT32_C(0x176546F8), + UINT32_C(0x750E0282)}}, + {{UINT32_C(0x824344A7), UINT32_C(0x452C27FF), UINT32_C(0xEC399A05), + UINT32_C(0x85E64CC2), UINT32_C(0x3442039C), UINT32_C(0xBE15D09E), + UINT32_C(0x6A323861), UINT32_C(0x875022BB), UINT32_C(0x61866CC9), + UINT32_C(0xD984BF9D), UINT32_C(0xEE6E8271), UINT32_C(0x4007F668), + UINT32_C(0xF107566D), UINT32_C(0x090E14CC), UINT32_C(0x1131FCD8), + UINT32_C(0x08C2354A)}, + {UINT32_C(0x8F5FFF23), UINT32_C(0xF9C86299), UINT32_C(0xAC995497), + UINT32_C(0x97788808), UINT32_C(0xD43FDCB9), UINT32_C(0xBF6CB8B5), + UINT32_C(0xB72DFB91), UINT32_C(0xC75BD147), UINT32_C(0xE15359C6), + UINT32_C(0xA537A636), UINT32_C(0x93F6292F), UINT32_C(0x313458F3), + UINT32_C(0x2BF3CE59), UINT32_C(0x096B6866), UINT32_C(0x275BB1A8), + UINT32_C(0x5618ACC8)}}, + {{UINT32_C(0x6DD4F47F), UINT32_C(0x434DBAD7), UINT32_C(0x93A13416), + UINT32_C(0x7F24804B), UINT32_C(0xDCFDC8FB), UINT32_C(0x54864638), + UINT32_C(0x8DBB2A99), UINT32_C(0x94D15AAB), UINT32_C(0x3B08BE5D), + UINT32_C(0xC60D064A), UINT32_C(0x77113B1C), UINT32_C(0x8D52AF03), + UINT32_C(0xE649649D), UINT32_C(0x795F3549), UINT32_C(0xA2F7B890), + UINT32_C(0x6C50A7B3)}, + {UINT32_C(0xBA7BE66C), UINT32_C(0x1243D102), UINT32_C(0x24A4F3D5), + UINT32_C(0xD52A9D65), UINT32_C(0xD940B299), UINT32_C(0x84F3A7D8), + UINT32_C(0x0A6C5F96), UINT32_C(0x2D0D0561), UINT32_C(0x55AF49E6), + UINT32_C(0x68147309), UINT32_C(0x2D484160), UINT32_C(0x1AD2CC29), + UINT32_C(0x41613C8C), UINT32_C(0xD9836664), UINT32_C(0xE1444926), + UINT32_C(0x116D32D9)}}, + {{UINT32_C(0x1FC8967F), UINT32_C(0xBFB347E1), UINT32_C(0xAFD35E6A), + UINT32_C(0xAB2F0DE9), UINT32_C(0x3D717B63), UINT32_C(0x77C822B9), + UINT32_C(0xEFE76953), UINT32_C(0xBA49F6D5), UINT32_C(0xC3729C1E), + UINT32_C(0xC4FF8395), UINT32_C(0x1792651B), UINT32_C(0x5E525199), + UINT32_C(0x220793FE), UINT32_C(0xEF736F1E), UINT32_C(0xADA2DF7C), + UINT32_C(0x0C1364DE)}, + {UINT32_C(0x5E0A04FB), UINT32_C(0xE364A029), UINT32_C(0x02A1CB8F), + UINT32_C(0x078CF4CC), UINT32_C(0x884EB5E8), UINT32_C(0x2C6EDCEC), + UINT32_C(0x34DA48A0), UINT32_C(0x361E83F1), UINT32_C(0xAE22EE07), + UINT32_C(0x543FD798), UINT32_C(0x72A9D550), UINT32_C(0x80A0521A), + UINT32_C(0xD5D883DE), UINT32_C(0xCEEB2763), UINT32_C(0x744C8616), + UINT32_C(0x4633AE13)}}, + {{UINT32_C(0xEFC180BF), UINT32_C(0x386138C2), UINT32_C(0x5025C16C), + UINT32_C(0x62884C83), UINT32_C(0x3AEF27D9), UINT32_C(0xC846079F), + UINT32_C(0x8815E30E), UINT32_C(0x85AC6CC5), UINT32_C(0xD26A2BD0), + UINT32_C(0x45705559), UINT32_C(0xEEDB70C4), UINT32_C(0xEF1649A0), + UINT32_C(0xE4641EFD), UINT32_C(0x2596F146), UINT32_C(0x93C7B04A), + UINT32_C(0x61E89F8E)}, + {UINT32_C(0x071CA85D), UINT32_C(0x6EBD7C9F), UINT32_C(0x1C15ACD1), + UINT32_C(0x5C9951AE), UINT32_C(0x8AE934A1), UINT32_C(0x9DE96A7C), + UINT32_C(0x481D190E), UINT32_C(0x4B32645D), UINT32_C(0xA79C0B4A), + UINT32_C(0x8D0E2B25), UINT32_C(0xCD74DA50), UINT32_C(0x8EF7BB2A), + UINT32_C(0x07920CC8), UINT32_C(0x9481D2DB), UINT32_C(0x8736C183), + UINT32_C(0x1BD7A22E)}}, + {{UINT32_C(0x64FCB568), UINT32_C(0xD4F27500), UINT32_C(0x5C300E98), + UINT32_C(0xD92CBB70), UINT32_C(0xCAA8D9B9), UINT32_C(0x5A971902), + UINT32_C(0x1C4824C9), UINT32_C(0xA5542DF5), UINT32_C(0xC84D2CCD), + UINT32_C(0x7B469D1B), UINT32_C(0xA2566F40), UINT32_C(0xD3FBFEBB), + UINT32_C(0xE8FA73C0), UINT32_C(0x89511F69), UINT32_C(0xB162F797), + UINT32_C(0x6FFD125B)}, + {UINT32_C(0xC0FA653C), UINT32_C(0x961C9532), UINT32_C(0xBDB0C77A), + UINT32_C(0x007BD198), UINT32_C(0xEEFC3BE3), UINT32_C(0x1853303B), + UINT32_C(0xC4A33E36), UINT32_C(0x6D50323F), UINT32_C(0xE367E4C9), + UINT32_C(0x9798C97A), UINT32_C(0x12A538A8), UINT32_C(0x9E146B07), + UINT32_C(0x4996D58B), UINT32_C(0xBFB3E819), UINT32_C(0x9022E072), + UINT32_C(0x5438D6F6)}}, + {{UINT32_C(0xDD4E810B), UINT32_C(0xC58B1061), UINT32_C(0x8FD29C69), + UINT32_C(0x7966E96A), UINT32_C(0x2E65F9B6), UINT32_C(0x7E2D9FD4), + UINT32_C(0xFC48055F), UINT32_C(0xA8F68084), UINT32_C(0x2DC5A983), + UINT32_C(0x545CAE01), UINT32_C(0xA2596608), UINT32_C(0xC9D198C8), + UINT32_C(0x4208B520), UINT32_C(0xF9D9BF5D), UINT32_C(0x7E6883FF), + UINT32_C(0x1C0C3F5A)}, + {UINT32_C(0x05CD4D87), UINT32_C(0x06D7B983), UINT32_C(0x9E9F9F35), + UINT32_C(0x899A60E8), UINT32_C(0x5119AAC1), UINT32_C(0x1465EAD5), + UINT32_C(0x0F329991), UINT32_C(0x3EDF1E36), UINT32_C(0xA0646C43), + UINT32_C(0x86BCB01E), UINT32_C(0xEF4EBCEB), UINT32_C(0xA6EF27F3), + UINT32_C(0x54EB8E6B), UINT32_C(0xEAF04AE6), UINT32_C(0x08227047), + UINT32_C(0x48051E62)}}, + {{UINT32_C(0xF245F1E6), UINT32_C(0xA84EFDA5), UINT32_C(0xEB80F18C), + UINT32_C(0x49759EF3), UINT32_C(0x1142EE5C), UINT32_C(0xFB8A3A4B), + UINT32_C(0xB9EE65D6), UINT32_C(0x62907A8F), UINT32_C(0xD68D862F), + UINT32_C(0xC5FD7DC9), UINT32_C(0xE1C81BAD), UINT32_C(0x1F791D0F), + UINT32_C(0x8C4757BA), UINT32_C(0xFED4DEA3), UINT32_C(0x2FA4C20E), + UINT32_C(0x041A50E3)}, + {UINT32_C(0xF454E68E), UINT32_C(0xB8F7EE7A), UINT32_C(0xCBAB4836), + UINT32_C(0xB68F9599), UINT32_C(0xF1872586), UINT32_C(0x3FB9C650), + UINT32_C(0x9FDDEF61), UINT32_C(0xF967C768), UINT32_C(0x70E86E8E), + UINT32_C(0x8A2683AF), UINT32_C(0xE523AD78), UINT32_C(0xAFD29242), + UINT32_C(0x9DD43A6C), UINT32_C(0xBA4EECA5), UINT32_C(0x7BB2E1AE), + UINT32_C(0x37447896)}}, + {{UINT32_C(0xF86EFABC), UINT32_C(0xE5378393), UINT32_C(0x45F692E9), + UINT32_C(0x336470CA), UINT32_C(0x66E0FBDF), UINT32_C(0xC5F0022C), + UINT32_C(0x3ECD3196), UINT32_C(0x189D81D5), UINT32_C(0x771F9C1C), + UINT32_C(0x416D97CB), UINT32_C(0x223448F1), UINT32_C(0xBF2B6B77), + UINT32_C(0xBE42A9A6), UINT32_C(0xA4F6355A), UINT32_C(0xB9956AAC), + UINT32_C(0x1C15439A)}, + {UINT32_C(0x7DBFC8B8), UINT32_C(0x020CA319), UINT32_C(0x5C7E4025), + UINT32_C(0x25A1DFD1), UINT32_C(0x4D06AAA0), UINT32_C(0x5CF6FAD8), + UINT32_C(0xAC1B211B), UINT32_C(0x8221BAD8), UINT32_C(0xAE4C7F7B), + UINT32_C(0x68E7DBA3), UINT32_C(0xFEF7CB4B), UINT32_C(0x4C167FA9), + UINT32_C(0xA34935DE), UINT32_C(0x207A14B8), UINT32_C(0x645A14C2), + UINT32_C(0x1476CCBD)}}, + {{UINT32_C(0x54E05676), UINT32_C(0xF0467D89), UINT32_C(0xE04530FF), + UINT32_C(0xA1987E17), UINT32_C(0x2E3A997C), UINT32_C(0x1E3010C2), + UINT32_C(0xEBEF74A7), UINT32_C(0x4001E89F), UINT32_C(0x32572D28), + UINT32_C(0x60C65566), UINT32_C(0xA562BF8F), UINT32_C(0x410C49D0), + UINT32_C(0x782CE10C), UINT32_C(0xFE591AD0), UINT32_C(0xC3016AA6), + UINT32_C(0x272DE301)}, + {UINT32_C(0xD3FD089D), UINT32_C(0x7AEFA3F7), UINT32_C(0xC68CE61E), + UINT32_C(0x5141E3CF), UINT32_C(0x919EF2CB), UINT32_C(0xEC6F871E), + UINT32_C(0xB15754CA), UINT32_C(0x9E1F2C4F), UINT32_C(0xB367A8E1), + UINT32_C(0x4E053A03), UINT32_C(0x7A946A07), UINT32_C(0xB5447BAB), + UINT32_C(0x5934AC68), UINT32_C(0xCA9D154A), UINT32_C(0x9DCC05A4), + UINT32_C(0x2C24448B)}}, + {{UINT32_C(0x7230B721), UINT32_C(0xDDDCC6F7), UINT32_C(0xD59A4D7D), + UINT32_C(0x3AB7517B), UINT32_C(0x73E75A94), UINT32_C(0x0202A427), + UINT32_C(0xF45E584C), UINT32_C(0xEB9CBB02), UINT32_C(0x4D193D46), + UINT32_C(0x879F2040), UINT32_C(0xFD5CCEC5), UINT32_C(0x897A3D49), + UINT32_C(0x5E795234), UINT32_C(0x7B22D3AD), UINT32_C(0x35E6EA1D), + UINT32_C(0x103A74B9)}, + {UINT32_C(0xDE267F29), UINT32_C(0x83AD405E), UINT32_C(0xCD4EF83E), + UINT32_C(0x9C0750BC), UINT32_C(0xAAF8C955), UINT32_C(0x1192B08C), + UINT32_C(0x93618DC5), UINT32_C(0xD983183C), UINT32_C(0x51FA4692), + UINT32_C(0x3F142E9F), UINT32_C(0xA9E77124), UINT32_C(0xF9242D3E), + UINT32_C(0xC733EFCE), UINT32_C(0x044F55EA), UINT32_C(0xBFB0E74D), + UINT32_C(0x3FCE259E)}}, + {{UINT32_C(0x4E061902), UINT32_C(0xB4A72C27), UINT32_C(0x8271B5ED), + UINT32_C(0x46D49685), UINT32_C(0xC565B666), UINT32_C(0xE640CD1C), + UINT32_C(0x8C432368), UINT32_C(0xFEE64A69), UINT32_C(0x7C9309AA), + UINT32_C(0x9B245FBA), UINT32_C(0x1FD0DCD7), UINT32_C(0x2489BB01), + UINT32_C(0xB4ADB680), UINT32_C(0xBE612E5C), UINT32_C(0x1905845A), + UINT32_C(0x7B828C73)}, + {UINT32_C(0xAE7E8E5F), UINT32_C(0xB205C233), UINT32_C(0x0DDE4865), + UINT32_C(0x67C2AC05), UINT32_C(0x556BCEFF), UINT32_C(0xC29416F4), + UINT32_C(0xE7DE42B2), UINT32_C(0x3A94801D), UINT32_C(0x8E9195AD), + UINT32_C(0xC79768DB), UINT32_C(0x702232BD), UINT32_C(0xF701EAE5), + UINT32_C(0x769E819E), UINT32_C(0x7093880E), UINT32_C(0x85575FE1), + UINT32_C(0x07385CFB)}}, + {{UINT32_C(0x552D7645), UINT32_C(0xBE89A89F), UINT32_C(0x4C7C1F2D), + UINT32_C(0xC1406B55), UINT32_C(0x9C11B663), UINT32_C(0x123A5BB3), + UINT32_C(0x275B4F27), UINT32_C(0x1925904A), UINT32_C(0x11F1A12B), + UINT32_C(0x94D33687), UINT32_C(0xD3F31833), UINT32_C(0x446FD57B), + UINT32_C(0xA29D4040), UINT32_C(0x0FF6FF5D), UINT32_C(0xAE52039A), + UINT32_C(0x35355FF6)}, + {UINT32_C(0x7DE14B02), UINT32_C(0x74B05575), UINT32_C(0x7A47B576), + UINT32_C(0xD2E7C963), UINT32_C(0xE99D0433), UINT32_C(0x0D391E9D), + UINT32_C(0x50CCA807), UINT32_C(0xA4DC3929), UINT32_C(0xA2AF3088), + UINT32_C(0x81694449), UINT32_C(0x55474A7F), UINT32_C(0x9222E265), + UINT32_C(0x2C2AD9EE), UINT32_C(0xAB5C4452), UINT32_C(0xF7EC7C2A), + UINT32_C(0x5810784D)}}, + }}; + +/*- + * Q := 2P, both projective, Q and P same pointers OK + * Autogenerated: op3/dbl_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 6 + * ASSERT: a = -3 + */ +static void point_double(pt_prj_t *Q, const pt_prj_t *P) { + /* temporary variables */ + fe_t t0, t1, t2, t3, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy 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 *Z3 = Q->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(t0, X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(t1, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_square(t2, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t3, X, Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, t3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t4, Y, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, X, Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, b, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(X3, X3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, t2, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t2, t2, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, b, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Z3, Z3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Z3, Z3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, t3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t0, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t0, t0, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t0, t4, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, t0, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, Z3); +} + +/*- + * 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.op3 + * https://eprint.iacr.org/2015/1060 Alg 5 + * ASSERT: a = -3 + */ +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, t4; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + fe_t X3; + fe_t Y3; + fe_t Z3; + limb_t nz; + + /* check P for affine inf */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_nonzero(&nz, P->Y); + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t4, Y2, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, t4, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, X2, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, Y3, X1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, b, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, X3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Z3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, b, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, Z1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t2, t1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t0, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, t4, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t2, t0, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(X3, t3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, t4, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, t1); + + /* if P is inf, throw all that away and take Q */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(R->X, nz, Q->X, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(R->Y, nz, Q->Y, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(R->Z, nz, Q->Z, Z3); +} + +/*- + * R := Q + P all projective. + * R and Q same pointers OK + * R and P same pointers not OK + * Autogenerated: op3/add_proj.op3 + * https://eprint.iacr.org/2015/1060 Alg 4 + * ASSERT: a = -3 + */ +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, t4, t5; + /* constants */ + const limb_t *b = const_b; + /* set pointers for legacy curve arith */ + const limb_t *X1 = Q->X; + const limb_t *Y1 = Q->Y; + const limb_t *Z1 = Q->Z; + const limb_t *X2 = P->X; + const limb_t *Y2 = P->Y; + const limb_t *Z2 = P->Z; + limb_t *X3 = R->X; + limb_t *Y3 = R->Y; + limb_t *Z3 = R->Z; + + /* the curve arith formula */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t0, X1, X2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, Y1, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t2, Z1, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t3, X1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, X2, Y2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, t0, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t3, t3, t4); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t4, Y1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t5, Y2, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t4, t4, t5); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t5, t1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t4, t4, t5); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, X1, Z1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, X2, Z2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(X3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, X3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, b, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, Y3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, X3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Z3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(X3, t1, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, b, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, t2, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t2, t1, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(Y3, Y3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, Y3, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, t1, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t1, t0, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(t0, t1, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(t0, t0, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, t4, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t2, t0, Y3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Y3, X3, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Y3, Y3, t2); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(X3, t3, X3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_sub(X3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(Z3, t4, Z3); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(t1, t3, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetB_add(Z3, Z3, t1); +} + +/* 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; + + fe_copy(precomp[0].X, P->X); + fe_copy(precomp[0].Y, P->Y); + fe_copy(precomp[0].Z, const_one); + 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(char out[103], const unsigned char in[64]) { + int i; + char 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(char out[513], const unsigned char in[64]) { + int i; + char 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; + } +} + +/*- + * Simulateous 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; + char anaf[513] = {0}; + char bnaf[513] = {0}; + pt_prj_t Q; + 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_paramSetB_opp(Q.Y, Q.Y); + 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.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_paramSetB_opp(Q.Y, Q.Y); + 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.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.Z); + } + + if (flipped) { + /* correct sign */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_opp(Q.Y, Q.Y); + } + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_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; + char rnaf[103] = {0}; + pt_prj_t Q, lut; + 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_paramSetB_selectznz(Q.X, diff, Q.X, + precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.Y, diff, Q.Y, + precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_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_paramSetB_selectznz( + lut.X, diff, lut.X, precomp[j].X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz( + lut.Y, diff, lut.Y, precomp[j].Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz( + lut.Z, diff, lut.Z, precomp[j].Z); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_opp(out->Y, lut.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_proj(&Q, &Q, &lut); + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, precomp[0].X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_opp(lut.Y, precomp[0].Y); + fe_copy(lut.Z, precomp[0].Z); + point_add_proj(&lut, &lut, &Q); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.X, scalar[0] & 1, + lut.X, Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.Y, scalar[0] & 1, + lut.Y, Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.Z, scalar[0] & 1, + lut.Z, Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_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; + char rnaf[103] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + scalar_rwnaf(rnaf, scalar); + + /* initalize accumulator to inf */ + fe_set_zero(Q.X); + fe_copy(Q.Y, const_one); + fe_set_zero(Q.Z); + +#if defined(_MSC_VER) + /* result still unsigned: yes we know */ +#pragma warning(push) +#pragma warning(disable : 4146) +#endif + + for (i = 7; i >= 0; i--) { + for (j = 0; i != 7 && j < RADIX; j++) point_double(&Q, &Q); + for (j = 0; j < 14; j++) { + if (j * 8 + i > 102) continue; + d = rnaf[j * 8 + 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_paramSetB_selectznz( + lut.X, diff, lut.X, lut_cmb[j][k].X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz( + lut.Y, diff, lut.Y, lut_cmb[j][k].Y); + } + /* negate lut point if digit is negative */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_opp(out->Y, lut.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(lut.Y, is_neg, + lut.Y, out->Y); + point_add_mixed(&Q, &Q, &lut); + } + } + +#if defined(_MSC_VER) +#pragma warning(pop) +#endif + + /* conditionally subtract P if the scalar was even */ + fe_copy(lut.X, lut_cmb[0][0].X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_opp(lut.Y, lut_cmb[0][0].Y); + point_add_mixed(&R, &Q, &lut); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.X, scalar[0] & 1, R.X, + Q.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.Y, scalar[0] & 1, R.Y, + Q.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_selectznz(Q.Z, scalar[0] & 1, R.Z, + Q.Z); + + /* convert to affine -- NB depends on coordinate system */ + fiat_id_tc26_gost_3410_2012_512_paramSetB_inv(Q.Z, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(out->X, Q.X, Q.Z); + fiat_id_tc26_gost_3410_2012_512_paramSetB_mul(out->Y, Q.Y, Q.Z); +} + +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_paramSetB_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_bytes(P.Y, iny); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery(P.X, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery(P.Y, P.Y); + /* simultaneous scalar multiplication */ + var_smul_wnaf_two(&P, a, b, &P); + + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery(P.X, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery(P.Y, P.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outy, P.Y); +} + +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_paramSetB_from_montgomery(P.X, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery(P.Y, P.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outy, P.Y); +} + +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_paramSetB_from_bytes(P.X, inx); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_bytes(P.Y, iny); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery(P.X, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_montgomery(P.Y, P.Y); + /* var scmul function */ + var_smul_rwnaf(&P, scalar, &P); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery(P.X, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_from_montgomery(P.Y, P.Y); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outx, P.X); + fiat_id_tc26_gost_3410_2012_512_paramSetB_to_bytes(outy, P.Y); +} + +#include + +static const unsigned char const_zb[64] = {0}; + + int + point_mul_two_id_tc26_gost_3410_2012_512_paramSetB( + 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; +} + + int + point_mul_id_tc26_gost_3410_2012_512_paramSetB(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; +} + + int + point_mul_g_id_tc26_gost_3410_2012_512_paramSetB(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__ */ diff --git a/ecp_id_tc26_gost_3410_2012_512_paramSetC.c b/ecp_id_tc26_gost_3410_2012_512_paramSetC.c new file mode 100644 index 0000000..10fe5d2 --- /dev/null +++ b/ecp_id_tc26_gost_3410_2012_512_paramSetC.c @@ -0,0 +1,12512 @@ +/* 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; + +#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 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.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) */ + +#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 + +/* + * 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 = ((x2 & arg3) | ((~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 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * arg2: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +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 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +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 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + * Output Bounds: + * out1: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +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 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * arg2: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +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 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * arg2: [[0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +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 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * Output Bounds: + * out1: [[0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x34cccccccccccb], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664], [0x0 ~> 0x1a666666666664]] + */ +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 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + * 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; + uint64_t x50; + uint8_t x51; + uint64_t x52; + uint8_t x53; + uint64_t x54; + uint8_t x55; + uint64_t x56; + uint8_t x57; + uint64_t x58; + uint8_t x59; + uint8_t x60; + uint8_t x61; + uint64_t x62; + uint64_t x63; + uint8_t x64; + uint64_t x65; + uint8_t x66; + uint64_t x67; + uint8_t x68; + uint64_t x69; + uint8_t x70; + uint64_t x71; + uint8_t x72; + uint8_t x73; + uint8_t x74; + uint64_t x75; + uint64_t x76; + uint8_t x77; + uint64_t x78; + uint8_t x79; + uint64_t x80; + uint8_t x81; + uint64_t x82; + uint8_t x83; + uint64_t x84; + uint8_t x85; + uint64_t x86; + uint8_t x87; + uint8_t x88; + uint8_t x89; + uint64_t x90; + uint64_t x91; + uint8_t x92; + uint64_t x93; + uint8_t x94; + uint64_t x95; + uint8_t x96; + uint64_t x97; + uint8_t x98; + uint64_t x99; + uint8_t x100; + uint8_t x101; + uint8_t x102; + uint64_t x103; + uint64_t x104; + uint8_t x105; + uint64_t x106; + uint8_t x107; + uint64_t x108; + uint8_t x109; + uint64_t x110; + uint8_t x111; + uint64_t x112; + uint8_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; + uint8_t x128; + uint64_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; + uint8_t x141; + uint64_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; + uint8_t x156; + uint64_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; + uint8_t x169; + uint64_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; + uint8_t x182; + 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 = (x22 >> 8); + x51 = (uint8_t)(x22 & UINT8_C(0xff)); + x52 = (x50 >> 8); + x53 = (uint8_t)(x50 & UINT8_C(0xff)); + x54 = (x52 >> 8); + x55 = (uint8_t)(x52 & UINT8_C(0xff)); + x56 = (x54 >> 8); + x57 = (uint8_t)(x54 & UINT8_C(0xff)); + x58 = (x56 >> 8); + x59 = (uint8_t)(x56 & UINT8_C(0xff)); + x60 = (uint8_t)(x58 >> 8); + x61 = (uint8_t)(x58 & UINT8_C(0xff)); + x62 = (x60 + x49); + x63 = (x62 >> 8); + x64 = (uint8_t)(x62 & UINT8_C(0xff)); + x65 = (x63 >> 8); + x66 = (uint8_t)(x63 & UINT8_C(0xff)); + x67 = (x65 >> 8); + x68 = (uint8_t)(x65 & UINT8_C(0xff)); + x69 = (x67 >> 8); + x70 = (uint8_t)(x67 & UINT8_C(0xff)); + x71 = (x69 >> 8); + x72 = (uint8_t)(x69 & UINT8_C(0xff)); + x73 = (uint8_t)(x71 >> 8); + x74 = (uint8_t)(x71 & UINT8_C(0xff)); + x75 = (x73 + x48); + x76 = (x75 >> 8); + x77 = (uint8_t)(x75 & UINT8_C(0xff)); + x78 = (x76 >> 8); + x79 = (uint8_t)(x76 & UINT8_C(0xff)); + x80 = (x78 >> 8); + x81 = (uint8_t)(x78 & UINT8_C(0xff)); + x82 = (x80 >> 8); + x83 = (uint8_t)(x80 & UINT8_C(0xff)); + x84 = (x82 >> 8); + x85 = (uint8_t)(x82 & UINT8_C(0xff)); + x86 = (x84 >> 8); + x87 = (uint8_t)(x84 & UINT8_C(0xff)); + x88 = (uint8_t)(x86 >> 8); + x89 = (uint8_t)(x86 & UINT8_C(0xff)); + x90 = (x88 + x47); + x91 = (x90 >> 8); + x92 = (uint8_t)(x90 & UINT8_C(0xff)); + x93 = (x91 >> 8); + x94 = (uint8_t)(x91 & UINT8_C(0xff)); + x95 = (x93 >> 8); + x96 = (uint8_t)(x93 & UINT8_C(0xff)); + x97 = (x95 >> 8); + x98 = (uint8_t)(x95 & UINT8_C(0xff)); + x99 = (x97 >> 8); + x100 = (uint8_t)(x97 & UINT8_C(0xff)); + x101 = (uint8_t)(x99 >> 8); + x102 = (uint8_t)(x99 & UINT8_C(0xff)); + x103 = (x101 + x46); + x104 = (x103 >> 8); + x105 = (uint8_t)(x103 & UINT8_C(0xff)); + x106 = (x104 >> 8); + x107 = (uint8_t)(x104 & UINT8_C(0xff)); + x108 = (x106 >> 8); + x109 = (uint8_t)(x106 & UINT8_C(0xff)); + x110 = (x108 >> 8); + x111 = (uint8_t)(x108 & UINT8_C(0xff)); + x112 = (x110 >> 8); + x113 = (uint8_t)(x110 & UINT8_C(0xff)); + x114 = (uint8_t)(x112 >> 8); + x115 = (uint8_t)(x112 & UINT8_C(0xff)); + x116 = (uint8_t)(x114 & UINT8_C(0xff)); + x117 = (x32 >> 8); + x118 = (uint8_t)(x32 & UINT8_C(0xff)); + x119 = (x117 >> 8); + x120 = (uint8_t)(x117 & UINT8_C(0xff)); + x121 = (x119 >> 8); + x122 = (uint8_t)(x119 & UINT8_C(0xff)); + x123 = (x121 >> 8); + x124 = (uint8_t)(x121 & UINT8_C(0xff)); + x125 = (x123 >> 8); + x126 = (uint8_t)(x123 & UINT8_C(0xff)); + x127 = (uint8_t)(x125 >> 8); + x128 = (uint8_t)(x125 & UINT8_C(0xff)); + x129 = (x127 + x45); + x130 = (x129 >> 8); + x131 = (uint8_t)(x129 & UINT8_C(0xff)); + x132 = (x130 >> 8); + x133 = (uint8_t)(x130 & UINT8_C(0xff)); + x134 = (x132 >> 8); + x135 = (uint8_t)(x132 & UINT8_C(0xff)); + x136 = (x134 >> 8); + x137 = (uint8_t)(x134 & UINT8_C(0xff)); + x138 = (x136 >> 8); + x139 = (uint8_t)(x136 & UINT8_C(0xff)); + x140 = (uint8_t)(x138 >> 8); + x141 = (uint8_t)(x138 & UINT8_C(0xff)); + x142 = (x140 + x44); + x143 = (x142 >> 8); + x144 = (uint8_t)(x142 & UINT8_C(0xff)); + x145 = (x143 >> 8); + x146 = (uint8_t)(x143 & UINT8_C(0xff)); + x147 = (x145 >> 8); + x148 = (uint8_t)(x145 & UINT8_C(0xff)); + x149 = (x147 >> 8); + x150 = (uint8_t)(x147 & UINT8_C(0xff)); + x151 = (x149 >> 8); + x152 = (uint8_t)(x149 & UINT8_C(0xff)); + x153 = (x151 >> 8); + x154 = (uint8_t)(x151 & UINT8_C(0xff)); + x155 = (uint8_t)(x153 >> 8); + x156 = (uint8_t)(x153 & UINT8_C(0xff)); + x157 = (x155 + x43); + x158 = (x157 >> 8); + x159 = (uint8_t)(x157 & UINT8_C(0xff)); + x160 = (x158 >> 8); + x161 = (uint8_t)(x158 & UINT8_C(0xff)); + x162 = (x160 >> 8); + x163 = (uint8_t)(x160 & UINT8_C(0xff)); + x164 = (x162 >> 8); + x165 = (uint8_t)(x162 & UINT8_C(0xff)); + x166 = (x164 >> 8); + x167 = (uint8_t)(x164 & UINT8_C(0xff)); + x168 = (uint8_t)(x166 >> 8); + x169 = (uint8_t)(x166 & UINT8_C(0xff)); + x170 = (x168 + x42); + x171 = (x170 >> 8); + x172 = (uint8_t)(x170 & UINT8_C(0xff)); + x173 = (x171 >> 8); + x174 = (uint8_t)(x171 & UINT8_C(0xff)); + x175 = (x173 >> 8); + x176 = (uint8_t)(x173 & UINT8_C(0xff)); + x177 = (x175 >> 8); + x178 = (uint8_t)(x175 & UINT8_C(0xff)); + x179 = (x177 >> 8); + x180 = (uint8_t)(x177 & UINT8_C(0xff)); + x181 = (uint8_t)(x179 >> 8); + x182 = (uint8_t)(x179 & UINT8_C(0xff)); + out1[0] = x51; + out1[1] = x53; + out1[2] = x55; + out1[3] = x57; + out1[4] = x59; + out1[5] = x61; + out1[6] = x64; + out1[7] = x66; + out1[8] = x68; + out1[9] = x70; + out1[10] = x72; + out1[11] = x74; + out1[12] = x77; + out1[13] = x79; + out1[14] = x81; + out1[15] = x83; + out1[16] = x85; + out1[17] = x87; + out1[18] = x89; + out1[19] = x92; + out1[20] = x94; + out1[21] = x96; + out1[22] = x98; + out1[23] = x100; + out1[24] = x102; + out1[25] = x105; + out1[26] = x107; + out1[27] = x109; + out1[28] = x111; + out1[29] = x113; + out1[30] = x115; + out1[31] = x116; + out1[32] = x118; + out1[33] = x120; + out1[34] = x122; + out1[35] = x124; + out1[36] = x126; + out1[37] = x128; + out1[38] = x131; + out1[39] = x133; + out1[40] = x135; + out1[41] = x137; + out1[42] = x139; + out1[43] = x141; + out1[44] = x144; + out1[45] = x146; + out1[46] = x148; + out1[47] = x150; + out1[48] = x152; + out1[49] = x154; + out1[50] = x156; + out1[51] = x159; + out1[52] = x161; + out1[53] = x163; + out1[54] = x165; + out1[55] = x167; + out1[56] = x169; + out1[57] = x172; + out1[58] = x174; + out1[59] = x176; + out1[60] = x178; + out1[61] = x180; + out1[62] = x182; + 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 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x11999999999999], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc], [0x0 ~> 0x8cccccccccccc]] + */ +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; + uint8_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; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x78; + uint64_t x79; + uint64_t x80; + uint8_t x81; + uint64_t x82; + uint64_t x83; + uint8_t x84; + uint64_t x85; + uint64_t x86; + uint64_t x87; + uint8_t x88; + uint64_t x89; + uint64_t x90; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x91; + uint64_t x92; + uint64_t x93; + uint8_t x94; + uint64_t x95; + uint64_t x96; + uint8_t x97; + uint64_t x98; + uint64_t x99; + 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 = (x64 + (x63 + (x62 + (x61 + (x60 + (x59 + x58)))))); + x66 = (uint8_t)(x65 >> 52); + x67 = (x65 & UINT64_C(0xfffffffffffff)); + x68 = (x6 + (x5 + (x4 + (x3 + (x2 + x1))))); + x69 = (x12 + (x11 + (x10 + (x9 + (x8 + x7))))); + x70 = (x19 + (x18 + (x17 + (x16 + (x15 + (x14 + x13)))))); + x71 = (x25 + (x24 + (x23 + (x22 + (x21 + x20))))); + x72 = (x32 + (x31 + (x30 + (x29 + (x28 + (x27 + x26)))))); + x73 = (x38 + (x37 + (x36 + (x35 + (x34 + x33))))); + x74 = (x44 + (x43 + (x42 + (x41 + (x40 + x39))))); + x75 = (x51 + (x50 + (x49 + (x48 + (x47 + (x46 + x45)))))); + x76 = (x57 + (x56 + (x55 + (x54 + (x53 + x52))))); + x77 = (x66 + x76); + x78 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x77 >> 51); + x79 = (x77 & UINT64_C(0x7ffffffffffff)); + x80 = (x78 + x75); + x81 = (uint8_t)(x80 >> 51); + x82 = (x80 & UINT64_C(0x7ffffffffffff)); + x83 = (x81 + x74); + x84 = (uint8_t)(x83 >> 51); + x85 = (x83 & UINT64_C(0x7ffffffffffff)); + x86 = (x84 + x73); + x87 = (x86 & UINT64_C(0x7ffffffffffff)); + x88 = (uint8_t)(x72 >> 52); + x89 = (x72 & UINT64_C(0xfffffffffffff)); + x90 = (x88 + x71); + x91 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x90 >> 51); + x92 = (x90 & UINT64_C(0x7ffffffffffff)); + x93 = (x91 + x70); + x94 = (uint8_t)(x93 >> 51); + x95 = (x93 & UINT64_C(0x7ffffffffffff)); + x96 = (x94 + x69); + x97 = (uint8_t)(x96 >> 51); + x98 = (x96 & UINT64_C(0x7ffffffffffff)); + x99 = (x97 + x68); + out1[0] = x67; + out1[1] = x79; + out1[2] = x82; + out1[3] = x85; + out1[4] = x87; + out1[5] = x89; + out1[6] = x92; + out1[7] = x95; + out1[8] = x98; + out1[9] = x99; +} + +/* 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, t1; + /* 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(t0, Z1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, Z1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, S, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Z1, T3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, t1, T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t0, T3, t1); + 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(char out[103], const unsigned char in[64]) { + int i; + char 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(char out[513], const unsigned char in[64]) { + int i; + char 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; + } +} + +/*- + * Simulateous 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; + char anaf[513] = {0}; + char bnaf[513] = {0}; + pt_prj_t Q; + 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; + char rnaf[103] = {0}; + pt_prj_t Q, lut; + 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); + + /* 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; + char rnaf[103] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + 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); +} + +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); +} + +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); +} + +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 + +static const unsigned char const_zb[64] = {0}; + + 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; +} + + 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; +} + + 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; + +#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 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.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) */ + +#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 + +/* + * 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 = ((x2 & arg3) | ((~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 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * arg2: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +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 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +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 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + * Output Bounds: + * out1: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +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 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * arg2: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + */ +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 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * arg2: [[0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + */ +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 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * Output Bounds: + * out1: [[0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0x1a66664], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332], [0x0 ~> 0xd33332]] + */ +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 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + * 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; + uint32_t x114; + uint8_t x115; + uint8_t x116; + uint8_t x117; + uint32_t x118; + uint32_t x119; + uint8_t x120; + uint32_t x121; + uint8_t x122; + uint8_t x123; + uint8_t x124; + uint32_t x125; + uint32_t x126; + uint8_t x127; + uint32_t x128; + uint8_t x129; + uint8_t x130; + uint8_t x131; + uint32_t x132; + uint32_t x133; + uint8_t x134; + uint32_t x135; + uint8_t x136; + uint8_t x137; + uint8_t x138; + uint32_t x139; + uint32_t x140; + uint8_t x141; + uint8_t x142; + uint8_t x143; + uint8_t x144; + uint32_t x145; + uint8_t x146; + uint8_t x147; + uint8_t x148; + uint32_t x149; + uint32_t x150; + uint8_t x151; + uint32_t x152; + uint8_t x153; + uint8_t x154; + uint8_t x155; + uint32_t x156; + uint32_t x157; + uint8_t x158; + uint32_t x159; + uint8_t x160; + uint8_t x161; + uint8_t x162; + uint32_t x163; + uint32_t x164; + uint8_t x165; + uint32_t x166; + uint8_t x167; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x168; + uint8_t x169; + uint32_t x170; + uint32_t x171; + uint8_t x172; + uint8_t x173; + uint8_t x174; + uint32_t x175; + uint32_t x176; + uint8_t x177; + uint32_t x178; + uint8_t x179; + uint8_t x180; + uint8_t x181; + uint32_t x182; + uint32_t x183; + uint8_t x184; + uint32_t x185; + uint8_t x186; + uint8_t x187; + uint8_t x188; + uint32_t x189; + uint32_t x190; + uint8_t x191; + uint32_t x192; + uint8_t x193; + uint8_t x194; + uint8_t x195; + uint32_t x196; + uint32_t x197; + uint8_t x198; + uint8_t x199; + uint8_t x200; + uint8_t x201; + uint32_t x202; + uint8_t x203; + uint8_t x204; + uint8_t x205; + uint32_t x206; + uint32_t x207; + uint8_t x208; + uint32_t x209; + uint8_t x210; + uint8_t x211; + uint8_t x212; + uint32_t x213; + uint32_t x214; + uint8_t x215; + uint32_t x216; + uint8_t x217; + uint8_t x218; + uint8_t x219; + uint32_t x220; + uint32_t x221; + uint8_t x222; + uint32_t x223; + uint8_t x224; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x225; + uint8_t x226; + uint32_t x227; + uint32_t x228; + uint8_t x229; + uint8_t x230; + uint8_t x231; + uint32_t x232; + uint32_t x233; + uint8_t x234; + uint32_t x235; + uint8_t x236; + uint8_t x237; + uint8_t x238; + uint32_t x239; + uint32_t x240; + uint8_t x241; + uint32_t x242; + uint8_t x243; + uint8_t x244; + uint8_t x245; + uint32_t x246; + uint32_t x247; + uint8_t x248; + uint32_t x249; + uint8_t x250; + uint8_t x251; + uint8_t x252; + uint32_t x253; + uint32_t x254; + uint8_t x255; + uint8_t x256; + uint8_t x257; + 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 = (x48 >> 8); + x115 = (uint8_t)(x48 & UINT8_C(0xff)); + x116 = (uint8_t)(x114 >> 8); + x117 = (uint8_t)(x114 & UINT8_C(0xff)); + x118 = (x116 + x113); + x119 = (x118 >> 8); + x120 = (uint8_t)(x118 & UINT8_C(0xff)); + x121 = (x119 >> 8); + x122 = (uint8_t)(x119 & UINT8_C(0xff)); + x123 = (uint8_t)(x121 >> 8); + x124 = (uint8_t)(x121 & UINT8_C(0xff)); + x125 = (x123 + x112); + x126 = (x125 >> 8); + x127 = (uint8_t)(x125 & UINT8_C(0xff)); + x128 = (x126 >> 8); + x129 = (uint8_t)(x126 & UINT8_C(0xff)); + x130 = (uint8_t)(x128 >> 8); + x131 = (uint8_t)(x128 & UINT8_C(0xff)); + x132 = (x130 + x111); + x133 = (x132 >> 8); + x134 = (uint8_t)(x132 & UINT8_C(0xff)); + x135 = (x133 >> 8); + x136 = (uint8_t)(x133 & UINT8_C(0xff)); + x137 = (uint8_t)(x135 >> 8); + x138 = (uint8_t)(x135 & UINT8_C(0xff)); + x139 = (x137 + x110); + x140 = (x139 >> 8); + x141 = (uint8_t)(x139 & UINT8_C(0xff)); + x142 = (uint8_t)(x140 >> 8); + x143 = (uint8_t)(x140 & UINT8_C(0xff)); + x144 = (uint8_t)(x142 & UINT8_C(0xff)); + x145 = (x58 >> 8); + x146 = (uint8_t)(x58 & UINT8_C(0xff)); + x147 = (uint8_t)(x145 >> 8); + x148 = (uint8_t)(x145 & UINT8_C(0xff)); + x149 = (x147 + x109); + x150 = (x149 >> 8); + x151 = (uint8_t)(x149 & UINT8_C(0xff)); + x152 = (x150 >> 8); + x153 = (uint8_t)(x150 & UINT8_C(0xff)); + x154 = (uint8_t)(x152 >> 8); + x155 = (uint8_t)(x152 & UINT8_C(0xff)); + x156 = (x154 + x108); + x157 = (x156 >> 8); + x158 = (uint8_t)(x156 & UINT8_C(0xff)); + x159 = (x157 >> 8); + x160 = (uint8_t)(x157 & UINT8_C(0xff)); + x161 = (uint8_t)(x159 >> 8); + x162 = (uint8_t)(x159 & UINT8_C(0xff)); + x163 = (x161 + x107); + x164 = (x163 >> 8); + x165 = (uint8_t)(x163 & UINT8_C(0xff)); + x166 = (x164 >> 8); + x167 = (uint8_t)(x164 & UINT8_C(0xff)); + x168 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x166 >> 8); + x169 = (uint8_t)(x166 & UINT8_C(0xff)); + x170 = (x168 + x106); + x171 = (x170 >> 8); + x172 = (uint8_t)(x170 & UINT8_C(0xff)); + x173 = (uint8_t)(x171 >> 8); + x174 = (uint8_t)(x171 & UINT8_C(0xff)); + x175 = (x173 + x105); + x176 = (x175 >> 8); + x177 = (uint8_t)(x175 & UINT8_C(0xff)); + x178 = (x176 >> 8); + x179 = (uint8_t)(x176 & UINT8_C(0xff)); + x180 = (uint8_t)(x178 >> 8); + x181 = (uint8_t)(x178 & UINT8_C(0xff)); + x182 = (x180 + x104); + x183 = (x182 >> 8); + x184 = (uint8_t)(x182 & UINT8_C(0xff)); + x185 = (x183 >> 8); + x186 = (uint8_t)(x183 & UINT8_C(0xff)); + x187 = (uint8_t)(x185 >> 8); + x188 = (uint8_t)(x185 & UINT8_C(0xff)); + x189 = (x187 + x103); + x190 = (x189 >> 8); + x191 = (uint8_t)(x189 & UINT8_C(0xff)); + x192 = (x190 >> 8); + x193 = (uint8_t)(x190 & UINT8_C(0xff)); + x194 = (uint8_t)(x192 >> 8); + x195 = (uint8_t)(x192 & UINT8_C(0xff)); + x196 = (x194 + x102); + x197 = (x196 >> 8); + x198 = (uint8_t)(x196 & UINT8_C(0xff)); + x199 = (uint8_t)(x197 >> 8); + x200 = (uint8_t)(x197 & UINT8_C(0xff)); + x201 = (uint8_t)(x199 & UINT8_C(0xff)); + x202 = (x76 >> 8); + x203 = (uint8_t)(x76 & UINT8_C(0xff)); + x204 = (uint8_t)(x202 >> 8); + x205 = (uint8_t)(x202 & UINT8_C(0xff)); + x206 = (x204 + x101); + x207 = (x206 >> 8); + x208 = (uint8_t)(x206 & UINT8_C(0xff)); + x209 = (x207 >> 8); + x210 = (uint8_t)(x207 & UINT8_C(0xff)); + x211 = (uint8_t)(x209 >> 8); + x212 = (uint8_t)(x209 & UINT8_C(0xff)); + x213 = (x211 + x100); + x214 = (x213 >> 8); + x215 = (uint8_t)(x213 & UINT8_C(0xff)); + x216 = (x214 >> 8); + x217 = (uint8_t)(x214 & UINT8_C(0xff)); + x218 = (uint8_t)(x216 >> 8); + x219 = (uint8_t)(x216 & UINT8_C(0xff)); + x220 = (x218 + x99); + x221 = (x220 >> 8); + x222 = (uint8_t)(x220 & UINT8_C(0xff)); + x223 = (x221 >> 8); + x224 = (uint8_t)(x221 & UINT8_C(0xff)); + x225 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x223 >> 8); + x226 = (uint8_t)(x223 & UINT8_C(0xff)); + x227 = (x225 + x98); + x228 = (x227 >> 8); + x229 = (uint8_t)(x227 & UINT8_C(0xff)); + x230 = (uint8_t)(x228 >> 8); + x231 = (uint8_t)(x228 & UINT8_C(0xff)); + x232 = (x230 + x97); + x233 = (x232 >> 8); + x234 = (uint8_t)(x232 & UINT8_C(0xff)); + x235 = (x233 >> 8); + x236 = (uint8_t)(x233 & UINT8_C(0xff)); + x237 = (uint8_t)(x235 >> 8); + x238 = (uint8_t)(x235 & UINT8_C(0xff)); + x239 = (x237 + x96); + x240 = (x239 >> 8); + x241 = (uint8_t)(x239 & UINT8_C(0xff)); + x242 = (x240 >> 8); + x243 = (uint8_t)(x240 & UINT8_C(0xff)); + x244 = (uint8_t)(x242 >> 8); + x245 = (uint8_t)(x242 & UINT8_C(0xff)); + x246 = (x244 + x95); + x247 = (x246 >> 8); + x248 = (uint8_t)(x246 & UINT8_C(0xff)); + x249 = (x247 >> 8); + x250 = (uint8_t)(x247 & UINT8_C(0xff)); + x251 = (uint8_t)(x249 >> 8); + x252 = (uint8_t)(x249 & UINT8_C(0xff)); + x253 = (x251 + x94); + x254 = (x253 >> 8); + x255 = (uint8_t)(x253 & UINT8_C(0xff)); + x256 = (uint8_t)(x254 >> 8); + x257 = (uint8_t)(x254 & UINT8_C(0xff)); + out1[0] = x115; + out1[1] = x117; + out1[2] = x120; + out1[3] = x122; + out1[4] = x124; + out1[5] = x127; + out1[6] = x129; + out1[7] = x131; + out1[8] = x134; + out1[9] = x136; + out1[10] = x138; + out1[11] = x141; + out1[12] = x143; + out1[13] = x144; + out1[14] = x146; + out1[15] = x148; + out1[16] = x151; + out1[17] = x153; + out1[18] = x155; + out1[19] = x158; + out1[20] = x160; + out1[21] = x162; + out1[22] = x165; + out1[23] = x167; + out1[24] = x169; + out1[25] = x172; + out1[26] = x174; + out1[27] = x177; + out1[28] = x179; + out1[29] = x181; + out1[30] = x184; + out1[31] = x186; + out1[32] = x188; + out1[33] = x191; + out1[34] = x193; + out1[35] = x195; + out1[36] = x198; + out1[37] = x200; + out1[38] = x201; + out1[39] = x203; + out1[40] = x205; + out1[41] = x208; + out1[42] = x210; + out1[43] = x212; + out1[44] = x215; + out1[45] = x217; + out1[46] = x219; + out1[47] = x222; + out1[48] = x224; + out1[49] = x226; + out1[50] = x229; + out1[51] = x231; + out1[52] = x234; + out1[53] = x236; + out1[54] = x238; + out1[55] = x241; + out1[56] = x243; + out1[57] = x245; + out1[58] = x248; + out1[59] = x250; + out1[60] = x252; + out1[61] = x255; + out1[62] = x257; + out1[63] = x256; +} + +/* + * 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 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x8ccccc], [0x0 ~> 0x466666], [0x0 ~> 0x466666], [0x0 ~> 0x466666]] + */ +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; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x66; + uint32_t x67; + uint32_t x68; + uint32_t x69; + uint32_t x70; + uint32_t x71; + uint32_t x72; + uint32_t x73; + uint32_t x74; + uint32_t x75; + uint32_t x76; + uint32_t x77; + uint32_t x78; + uint32_t x79; + uint32_t x80; + uint32_t x81; + uint32_t x82; + uint32_t x83; + uint32_t x84; + uint32_t x85; + uint32_t x86; + uint32_t x87; + uint32_t x88; + uint32_t x89; + uint32_t x90; + uint8_t x91; + uint32_t x92; + uint32_t x93; + uint8_t x94; + uint32_t x95; + uint32_t x96; + uint8_t x97; + uint32_t x98; + uint32_t x99; + uint32_t x100; + uint8_t x101; + uint32_t x102; + uint32_t x103; + uint8_t x104; + uint32_t x105; + uint32_t x106; + uint8_t x107; + uint32_t x108; + uint32_t x109; + uint8_t x110; + uint32_t x111; + uint32_t x112; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x113; + uint32_t x114; + uint32_t x115; + uint8_t x116; + uint32_t x117; + uint32_t x118; + uint8_t x119; + uint32_t x120; + uint32_t x121; + uint8_t x122; + uint32_t x123; + uint32_t x124; + uint32_t x125; + uint8_t x126; + uint32_t x127; + uint32_t x128; + uint8_t x129; + uint32_t x130; + uint32_t x131; + uint8_t x132; + uint32_t x133; + uint32_t x134; + uint8_t x135; + uint32_t x136; + uint32_t x137; + fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1 x138; + uint32_t x139; + uint32_t x140; + uint8_t x141; + uint32_t x142; + uint32_t x143; + uint8_t x144; + uint32_t x145; + uint32_t x146; + uint8_t x147; + uint32_t x148; + uint32_t x149; + 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 = (x64 + (x63 + x62)); + x66 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x65 >> 23); + x67 = (x65 & UINT32_C(0x7fffff)); + x68 = (x2 + x1); + x69 = (x5 + (x4 + x3)); + x70 = (x8 + (x7 + x6)); + x71 = (x11 + (x10 + x9)); + x72 = (x13 + x12); + x73 = (x16 + (x15 + x14)); + x74 = (x19 + (x18 + x17)); + x75 = (x22 + (x21 + x20)); + x76 = (x25 + (x24 + x23)); + x77 = (x27 + x26); + x78 = (x30 + (x29 + x28)); + x79 = (x33 + (x32 + x31)); + x80 = (x36 + (x35 + x34)); + x81 = (x38 + x37); + x82 = (x41 + (x40 + x39)); + x83 = (x44 + (x43 + x42)); + x84 = (x47 + (x46 + x45)); + x85 = (x50 + (x49 + x48)); + x86 = (x52 + x51); + x87 = (x55 + (x54 + x53)); + x88 = (x58 + (x57 + x56)); + x89 = (x61 + (x60 + x59)); + x90 = (x66 + x89); + x91 = (uint8_t)(x90 >> 22); + x92 = (x90 & UINT32_C(0x3fffff)); + x93 = (x91 + x88); + x94 = (uint8_t)(x93 >> 22); + x95 = (x93 & UINT32_C(0x3fffff)); + x96 = (x94 + x87); + x97 = (uint8_t)(x96 >> 23); + x98 = (x96 & UINT32_C(0x7fffff)); + x99 = (x97 + x86); + x100 = (x99 & UINT32_C(0x3fffff)); + x101 = (uint8_t)(x85 >> 22); + x102 = (x85 & UINT32_C(0x3fffff)); + x103 = (x101 + x84); + x104 = (uint8_t)(x103 >> 22); + x105 = (x103 & UINT32_C(0x3fffff)); + x106 = (x104 + x83); + x107 = (uint8_t)(x106 >> 23); + x108 = (x106 & UINT32_C(0x7fffff)); + x109 = (x107 + x82); + x110 = (uint8_t)(x109 >> 22); + x111 = (x109 & UINT32_C(0x3fffff)); + x112 = (x110 + x81); + x113 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x112 >> 22); + x114 = (x112 & UINT32_C(0x3fffff)); + x115 = (x113 + x80); + x116 = (uint8_t)(x115 >> 22); + x117 = (x115 & UINT32_C(0x3fffff)); + x118 = (x116 + x79); + x119 = (uint8_t)(x118 >> 23); + x120 = (x118 & UINT32_C(0x7fffff)); + x121 = (x119 + x78); + x122 = (uint8_t)(x121 >> 22); + x123 = (x121 & UINT32_C(0x3fffff)); + x124 = (x122 + x77); + x125 = (x124 & UINT32_C(0x3fffff)); + x126 = (uint8_t)(x76 >> 22); + x127 = (x76 & UINT32_C(0x3fffff)); + x128 = (x126 + x75); + x129 = (uint8_t)(x128 >> 23); + x130 = (x128 & UINT32_C(0x7fffff)); + x131 = (x129 + x74); + x132 = (uint8_t)(x131 >> 22); + x133 = (x131 & UINT32_C(0x3fffff)); + x134 = (x132 + x73); + x135 = (uint8_t)(x134 >> 22); + x136 = (x134 & UINT32_C(0x3fffff)); + x137 = (x135 + x72); + x138 = (fiat_id_tc26_gost_3410_2012_512_paramSetC_uint1)(x137 >> 22); + x139 = (x137 & UINT32_C(0x3fffff)); + x140 = (x138 + x71); + x141 = (uint8_t)(x140 >> 23); + x142 = (x140 & UINT32_C(0x7fffff)); + x143 = (x141 + x70); + x144 = (uint8_t)(x143 >> 22); + x145 = (x143 & UINT32_C(0x3fffff)); + x146 = (x144 + x69); + x147 = (uint8_t)(x146 >> 22); + x148 = (x146 & UINT32_C(0x3fffff)); + x149 = (x147 + x68); + out1[0] = x67; + out1[1] = x92; + out1[2] = x95; + out1[3] = x98; + out1[4] = x100; + out1[5] = x102; + out1[6] = x105; + out1[7] = x108; + out1[8] = x111; + out1[9] = x114; + out1[10] = x117; + out1[11] = x120; + out1[12] = x123; + out1[13] = x125; + out1[14] = x127; + out1[15] = x130; + out1[16] = x133; + out1[17] = x136; + out1[18] = x139; + out1[19] = x142; + out1[20] = x145; + out1[21] = x148; + out1[22] = x149; +} + +/* 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, t1; + /* 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(t0, Z1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_sub(t1, Z1, Y1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(T3, S, t0); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Y3, Z1, T3); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(Z3, X3, t1); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_mul(t1, t1, T); + fiat_id_tc26_gost_3410_2012_512_paramSetC_carry_add(t0, T3, t1); + 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(char out[103], const unsigned char in[64]) { + int i; + char 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(char out[513], const unsigned char in[64]) { + int i; + char 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; + } +} + +/*- + * Simulateous 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; + char anaf[513] = {0}; + char bnaf[513] = {0}; + pt_prj_t Q; + 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; + char rnaf[103] = {0}; + pt_prj_t Q, lut; + 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); + + /* 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; + char rnaf[103] = {0}; + pt_prj_t Q, R; + pt_aff_t lut; + + 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); +} + +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); +} + +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); +} + +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 + +static const unsigned char const_zb[64] = {0}; + + 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; +} + + 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; +} + + 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__ */ diff --git a/gost_ec_keyx.c b/gost_ec_keyx.c index 850479a..89884ce 100644 --- a/gost_ec_keyx.c +++ b/gost_ec_keyx.c @@ -71,7 +71,7 @@ int VKO_compute_key(unsigned char *shared_key, break; } - if (!EC_POINT_mul(grp, pnt, NULL, pub_key, scalar, ctx)) { + if (!gost_ec_point_mul(grp, pnt, NULL, pub_key, scalar, ctx)) { GOSTerr(GOST_F_VKO_COMPUTE_KEY, GOST_R_ERROR_POINT_MUL); goto err; } diff --git a/gost_ec_sign.c b/gost_ec_sign.c index 61d5026..e4800a4 100644 --- a/gost_ec_sign.c +++ b/gost_ec_sign.c @@ -224,15 +224,7 @@ ECDSA_SIG *gost_ec_sign(const unsigned char *dgst, int dlen, EC_KEY *eckey) GOSTerr(GOST_F_GOST_EC_SIGN, GOST_R_RNG_ERROR); goto err; } - /* - * To avoid timing information leaking the length of k, - * compute C*k using an equivalent scalar of fixed bit-length */ - if (!BN_add(k, k, order) - || (BN_num_bits(k) <= BN_num_bits(order) - && !BN_add(k, k, order))) { - goto err; - } - if (!EC_POINT_mul(group, C, k, NULL, NULL, ctx)) { + if (!gost_ec_point_mul(group, C, k, NULL, NULL, ctx)) { GOSTerr(GOST_F_GOST_EC_SIGN, ERR_R_EC_LIB); goto err; } @@ -387,7 +379,7 @@ int gost_ec_verify(const unsigned char *dgst, int dgst_len, GOSTerr(GOST_F_GOST_EC_VERIFY, ERR_R_MALLOC_FAILURE); goto err; } - if (!EC_POINT_mul(group, C, z1, pub_key, z2, ctx)) { + if (!gost_ec_point_mul(group, C, z1, pub_key, z2, ctx)) { GOSTerr(GOST_F_GOST_EC_VERIFY, ERR_R_EC_LIB); goto err; } @@ -458,7 +450,7 @@ int gost_ec_compute_public(EC_KEY *ec) goto err; } - if (!EC_POINT_mul(group, pub_key, priv_key, NULL, NULL, ctx)) { + if (!gost_ec_point_mul(group, pub_key, priv_key, NULL, NULL, ctx)) { GOSTerr(GOST_F_GOST_EC_COMPUTE_PUBLIC, ERR_R_EC_LIB); goto err; } @@ -475,6 +467,101 @@ int gost_ec_compute_public(EC_KEY *ec) return ok; } +int gost_ec_point_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, + const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx) +{ + if (group == NULL || r == NULL || ctx == NULL) + return 0; + + if (m != NULL && n != NULL) { + /* verification */ + if (q == NULL) + return 0; + switch(EC_GROUP_get_curve_name(group)) { + case NID_id_GostR3410_2001_CryptoPro_A_ParamSet: + case NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: + case NID_id_tc26_gost_3410_2012_256_paramSetB: + return point_mul_two_id_GostR3410_2001_CryptoPro_A_ParamSet(group, r, n, q, m, ctx); + case NID_id_GostR3410_2001_CryptoPro_B_ParamSet: + case NID_id_tc26_gost_3410_2012_256_paramSetC: + return point_mul_two_id_GostR3410_2001_CryptoPro_B_ParamSet(group, r, n, q, m, ctx); + case NID_id_GostR3410_2001_CryptoPro_C_ParamSet: + case NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: + case NID_id_tc26_gost_3410_2012_256_paramSetD: + return point_mul_two_id_GostR3410_2001_CryptoPro_C_ParamSet(group, r, n, q, m, ctx); + case NID_id_GostR3410_2001_TestParamSet: + return point_mul_two_id_GostR3410_2001_TestParamSet(group, r, n, q, m, ctx); + case NID_id_tc26_gost_3410_2012_256_paramSetA: + return point_mul_two_id_tc26_gost_3410_2012_256_paramSetA(group, r, n, q, m, ctx); + case NID_id_tc26_gost_3410_2012_512_paramSetA: + return point_mul_two_id_tc26_gost_3410_2012_512_paramSetA(group, r, n, q, m, ctx); + case NID_id_tc26_gost_3410_2012_512_paramSetB: + return point_mul_two_id_tc26_gost_3410_2012_512_paramSetB(group, r, n, q, m, ctx); + case NID_id_tc26_gost_3410_2012_512_paramSetC: + return point_mul_two_id_tc26_gost_3410_2012_512_paramSetC(group, r, n, q, m, ctx); + default: + return EC_POINT_mul(group, r, n, q, m, ctx); + } + } else if (n != NULL) { + /* mul g */ + switch(EC_GROUP_get_curve_name(group)) { + case NID_id_GostR3410_2001_CryptoPro_A_ParamSet: + case NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: + case NID_id_tc26_gost_3410_2012_256_paramSetB: + return point_mul_g_id_GostR3410_2001_CryptoPro_A_ParamSet(group, r, n, ctx); + case NID_id_GostR3410_2001_CryptoPro_B_ParamSet: + case NID_id_tc26_gost_3410_2012_256_paramSetC: + return point_mul_g_id_GostR3410_2001_CryptoPro_B_ParamSet(group, r, n, ctx); + case NID_id_GostR3410_2001_CryptoPro_C_ParamSet: + case NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: + case NID_id_tc26_gost_3410_2012_256_paramSetD: + return point_mul_g_id_GostR3410_2001_CryptoPro_C_ParamSet(group, r, n, ctx); + case NID_id_GostR3410_2001_TestParamSet: + return point_mul_g_id_GostR3410_2001_TestParamSet(group, r, n, ctx); + case NID_id_tc26_gost_3410_2012_256_paramSetA: + return point_mul_g_id_tc26_gost_3410_2012_256_paramSetA(group, r, n, ctx); + case NID_id_tc26_gost_3410_2012_512_paramSetA: + return point_mul_g_id_tc26_gost_3410_2012_512_paramSetA(group, r, n, ctx); + case NID_id_tc26_gost_3410_2012_512_paramSetB: + return point_mul_g_id_tc26_gost_3410_2012_512_paramSetB(group, r, n, ctx); + case NID_id_tc26_gost_3410_2012_512_paramSetC: + return point_mul_g_id_tc26_gost_3410_2012_512_paramSetC(group, r, n, ctx); + default: + return EC_POINT_mul(group, r, n, q, m, ctx); + } + } else if (m != NULL) { + if (q == NULL) + return 0; + /* mul */ + switch(EC_GROUP_get_curve_name(group)) { + case NID_id_GostR3410_2001_CryptoPro_A_ParamSet: + case NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet: + case NID_id_tc26_gost_3410_2012_256_paramSetB: + return point_mul_id_GostR3410_2001_CryptoPro_A_ParamSet(group, r, q, m, ctx); + case NID_id_GostR3410_2001_CryptoPro_B_ParamSet: + case NID_id_tc26_gost_3410_2012_256_paramSetC: + return point_mul_id_GostR3410_2001_CryptoPro_B_ParamSet(group, r, q, m, ctx); + case NID_id_GostR3410_2001_CryptoPro_C_ParamSet: + case NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet: + case NID_id_tc26_gost_3410_2012_256_paramSetD: + return point_mul_id_GostR3410_2001_CryptoPro_C_ParamSet(group, r, q, m, ctx); + case NID_id_GostR3410_2001_TestParamSet: + return point_mul_id_GostR3410_2001_TestParamSet(group, r, q, m, ctx); + case NID_id_tc26_gost_3410_2012_256_paramSetA: + return point_mul_id_tc26_gost_3410_2012_256_paramSetA(group, r, q, m, ctx); + case NID_id_tc26_gost_3410_2012_512_paramSetA: + return point_mul_id_tc26_gost_3410_2012_512_paramSetA(group, r, q, m, ctx); + case NID_id_tc26_gost_3410_2012_512_paramSetB: + return point_mul_id_tc26_gost_3410_2012_512_paramSetB(group, r, q, m, ctx); + case NID_id_tc26_gost_3410_2012_512_paramSetC: + return point_mul_id_tc26_gost_3410_2012_512_paramSetC(group, r, q, m, ctx); + default: + return EC_POINT_mul(group, r, n, q, m, ctx); + } + } + return 0; +} + /* * * Generates GOST R 34.10-2001 diff --git a/gost_lcl.h b/gost_lcl.h index 6ca3297..c60d8d2 100644 --- a/gost_lcl.h +++ b/gost_lcl.h @@ -247,6 +247,22 @@ ECDSA_SIG *gost_ec_sign(const unsigned char *dgst, int dlen, EC_KEY *eckey); int gost_ec_verify(const unsigned char *dgst, int dgst_len, ECDSA_SIG *sig, EC_KEY *ec); int gost_ec_compute_public(EC_KEY *ec); +int gost_ec_point_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, + const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); + +#define CURVEDEF(a) \ +int point_mul_##a(const EC_GROUP *group, EC_POINT *r, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx);\ +int point_mul_g_##a(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, BN_CTX *ctx);\ +int point_mul_two_##a(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); + +CURVEDEF(id_GostR3410_2001_CryptoPro_A_ParamSet) +CURVEDEF(id_GostR3410_2001_CryptoPro_B_ParamSet) +CURVEDEF(id_GostR3410_2001_CryptoPro_C_ParamSet) +CURVEDEF(id_GostR3410_2001_TestParamSet) +CURVEDEF(id_tc26_gost_3410_2012_256_paramSetA) +CURVEDEF(id_tc26_gost_3410_2012_512_paramSetA) +CURVEDEF(id_tc26_gost_3410_2012_512_paramSetB) +CURVEDEF(id_tc26_gost_3410_2012_512_paramSetC) /* VKO */ int VKO_compute_key(unsigned char *shared_key,