diff options
Diffstat (limited to 'src/Specific/montgomery32_2e291m19_10limbs')
20 files changed, 0 insertions, 298 deletions
diff --git a/src/Specific/montgomery32_2e291m19_10limbs/CurveParameters.v b/src/Specific/montgomery32_2e291m19_10limbs/CurveParameters.v deleted file mode 100644 index 5d1b126a1..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/CurveParameters.v +++ /dev/null @@ -1,39 +0,0 @@ -Require Import Crypto.Specific.Framework.RawCurveParameters. -Require Import Crypto.Util.LetIn. - -(*** -Modulus : 2^291 - 19 -Base: 32 -***) - -Definition curve : CurveParameters := - {| - sz := 10%nat; - base := 32; - bitwidth := 32; - s := 2^291; - c := [(1, 19)]; - carry_chains := None; - - a24 := None; - coef_div_modulus := None; - - goldilocks := None; - karatsuba := None; - montgomery := true; - freeze := Some false; - ladderstep := false; - - mul_code := None; - - square_code := None; - - upper_bound_of_exponent_loose := None; - upper_bound_of_exponent_tight := None; - allowable_bit_widths := None; - freeze_extra_allowable_bit_widths := None; - modinv_fuel := None - |}. - -Ltac extra_prove_mul_eq _ := idtac. -Ltac extra_prove_square_eq _ := idtac. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/Synthesis.v b/src/Specific/montgomery32_2e291m19_10limbs/Synthesis.v deleted file mode 100644 index 101415039..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/Synthesis.v +++ /dev/null @@ -1,9 +0,0 @@ -Require Import Crypto.Specific.Framework.SynthesisFramework. -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.CurveParameters. - -Module P <: PrePackage. - Definition package : Tag.Context. - Proof. make_Synthesis_package curve extra_prove_mul_eq extra_prove_square_eq. Defined. -End P. - -Module Export S := PackageSynthesis P. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/compiler.sh b/src/Specific/montgomery32_2e291m19_10limbs/compiler.sh deleted file mode 100755 index 631448ef0..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/compiler.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -set -eu - -clang -fbracket-depth=999999 -march=native -mbmi2 -mtune=native -std=gnu11 -O3 -flto -fuse-ld=lld -fomit-frame-pointer -fwrapv -Wno-attributes -fno-strict-aliasing -Da24_hex='0x3039' -Da24_val='12345' -Da_minus_two_over_four_array='{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x39}' -Dbitwidth='32' -Dlimb_weight_gaps_array='{32,32,32,32,32,32,32,32,32,32}' -Dmodulus_array='{0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xed}' -Dmodulus_bytes_val='37' -Dmodulus_limbs='10' -Dq_mpz='(1_mpz<<291) - 19' "$@" diff --git a/src/Specific/montgomery32_2e291m19_10limbs/compilerxx.sh b/src/Specific/montgomery32_2e291m19_10limbs/compilerxx.sh deleted file mode 100755 index 8780d3954..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/compilerxx.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -set -eu - -clang++ -fbracket-depth=999999 -march=native -mbmi2 -mtune=native -std=gnu++11 -O3 -flto -fuse-ld=lld -fomit-frame-pointer -fwrapv -Wno-attributes -fno-strict-aliasing -Da24_hex='0x3039' -Da24_val='12345' -Da_minus_two_over_four_array='{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x39}' -Dbitwidth='32' -Dlimb_weight_gaps_array='{32,32,32,32,32,32,32,32,32,32}' -Dmodulus_array='{0x07,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xed}' -Dmodulus_bytes_val='37' -Dmodulus_limbs='10' -Dq_mpz='(1_mpz<<291) - 19' "$@" diff --git a/src/Specific/montgomery32_2e291m19_10limbs/feadd.c b/src/Specific/montgomery32_2e291m19_10limbs/feadd.c deleted file mode 100644 index 999094fe2..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/feadd.c +++ /dev/null @@ -1,64 +0,0 @@ -static void feadd(uint32_t out[10], const uint32_t in1[10], const uint32_t in2[10]) { - { const uint32_t x20 = in1[9]; - { const uint32_t x21 = in1[8]; - { const uint32_t x19 = in1[7]; - { const uint32_t x17 = in1[6]; - { const uint32_t x15 = in1[5]; - { const uint32_t x13 = in1[4]; - { const uint32_t x11 = in1[3]; - { const uint32_t x9 = in1[2]; - { const uint32_t x7 = in1[1]; - { const uint32_t x5 = in1[0]; - { const uint32_t x38 = in2[9]; - { const uint32_t x39 = in2[8]; - { const uint32_t x37 = in2[7]; - { const uint32_t x35 = in2[6]; - { const uint32_t x33 = in2[5]; - { const uint32_t x31 = in2[4]; - { const uint32_t x29 = in2[3]; - { const uint32_t x27 = in2[2]; - { const uint32_t x25 = in2[1]; - { const uint32_t x23 = in2[0]; - { uint32_t x41; uint8_t x42 = _addcarryx_u32(0x0, x5, x23, &x41); - { uint32_t x44; uint8_t x45 = _addcarryx_u32(x42, x7, x25, &x44); - { uint32_t x47; uint8_t x48 = _addcarryx_u32(x45, x9, x27, &x47); - { uint32_t x50; uint8_t x51 = _addcarryx_u32(x48, x11, x29, &x50); - { uint32_t x53; uint8_t x54 = _addcarryx_u32(x51, x13, x31, &x53); - { uint32_t x56; uint8_t x57 = _addcarryx_u32(x54, x15, x33, &x56); - { uint32_t x59; uint8_t x60 = _addcarryx_u32(x57, x17, x35, &x59); - { uint32_t x62; uint8_t x63 = _addcarryx_u32(x60, x19, x37, &x62); - { uint32_t x65; uint8_t x66 = _addcarryx_u32(x63, x21, x39, &x65); - { uint32_t x68; uint8_t x69 = _addcarryx_u32(x66, x20, x38, &x68); - { uint32_t x71; uint8_t x72 = _subborrow_u32(0x0, x41, 0xffffffed, &x71); - { uint32_t x74; uint8_t x75 = _subborrow_u32(x72, x44, 0xffffffff, &x74); - { uint32_t x77; uint8_t x78 = _subborrow_u32(x75, x47, 0xffffffff, &x77); - { uint32_t x80; uint8_t x81 = _subborrow_u32(x78, x50, 0xffffffff, &x80); - { uint32_t x83; uint8_t x84 = _subborrow_u32(x81, x53, 0xffffffff, &x83); - { uint32_t x86; uint8_t x87 = _subborrow_u32(x84, x56, 0xffffffff, &x86); - { uint32_t x89; uint8_t x90 = _subborrow_u32(x87, x59, 0xffffffff, &x89); - { uint32_t x92; uint8_t x93 = _subborrow_u32(x90, x62, 0xffffffff, &x92); - { uint32_t x95; uint8_t x96 = _subborrow_u32(x93, x65, 0xffffffff, &x95); - { uint32_t x98; uint8_t x99 = _subborrow_u32(x96, x68, 0x7, &x98); - { uint32_t _; uint8_t x102 = _subborrow_u32(x99, x69, 0x0, &_); - { uint32_t x103 = cmovznz32(x102, x98, x68); - { uint32_t x104 = cmovznz32(x102, x95, x65); - { uint32_t x105 = cmovznz32(x102, x92, x62); - { uint32_t x106 = cmovznz32(x102, x89, x59); - { uint32_t x107 = cmovznz32(x102, x86, x56); - { uint32_t x108 = cmovznz32(x102, x83, x53); - { uint32_t x109 = cmovznz32(x102, x80, x50); - { uint32_t x110 = cmovznz32(x102, x77, x47); - { uint32_t x111 = cmovznz32(x102, x74, x44); - { uint32_t x112 = cmovznz32(x102, x71, x41); - out[0] = x112; - out[1] = x111; - out[2] = x110; - out[3] = x109; - out[4] = x108; - out[5] = x107; - out[6] = x106; - out[7] = x105; - out[8] = x104; - out[9] = x103; - }}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}} -} diff --git a/src/Specific/montgomery32_2e291m19_10limbs/feadd.v b/src/Specific/montgomery32_2e291m19_10limbs/feadd.v deleted file mode 100644 index cd3175a65..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/feadd.v +++ /dev/null @@ -1,14 +0,0 @@ -Require Import Crypto.Arithmetic.PrimeFieldTheorems. -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.Synthesis. - -(* TODO : change this to field once field isomorphism happens *) -Definition add : - { add : feBW_small -> feBW_small -> feBW_small - | forall a b, phiM_small (add a b) = F.add (phiM_small a) (phiM_small b) }. -Proof. - Set Ltac Profiling. - Time synthesize_add (). - Show Ltac Profile. -Time Defined. - -Print Assumptions add. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/feaddDisplay.log b/src/Specific/montgomery32_2e291m19_10limbs/feaddDisplay.log deleted file mode 100644 index 6b530ebf5..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/feaddDisplay.log +++ /dev/null @@ -1,38 +0,0 @@ -λ x x0 : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32, -Interp-η -(λ var : Syntax.base_type → Type, - λ '(x20, x21, x19, x17, x15, x13, x11, x9, x7, x5, (x38, x39, x37, x35, x33, x31, x29, x27, x25, x23))%core, - uint32_t x41, uint8_t x42 = addcarryx_u32(0x0, x5, x23); - uint32_t x44, uint8_t x45 = addcarryx_u32(x42, x7, x25); - uint32_t x47, uint8_t x48 = addcarryx_u32(x45, x9, x27); - uint32_t x50, uint8_t x51 = addcarryx_u32(x48, x11, x29); - uint32_t x53, uint8_t x54 = addcarryx_u32(x51, x13, x31); - uint32_t x56, uint8_t x57 = addcarryx_u32(x54, x15, x33); - uint32_t x59, uint8_t x60 = addcarryx_u32(x57, x17, x35); - uint32_t x62, uint8_t x63 = addcarryx_u32(x60, x19, x37); - uint32_t x65, uint8_t x66 = addcarryx_u32(x63, x21, x39); - uint32_t x68, uint8_t x69 = addcarryx_u32(x66, x20, x38); - uint32_t x71, uint8_t x72 = subborrow_u32(0x0, x41, 0xffffffed); - uint32_t x74, uint8_t x75 = subborrow_u32(x72, x44, 0xffffffff); - uint32_t x77, uint8_t x78 = subborrow_u32(x75, x47, 0xffffffff); - uint32_t x80, uint8_t x81 = subborrow_u32(x78, x50, 0xffffffff); - uint32_t x83, uint8_t x84 = subborrow_u32(x81, x53, 0xffffffff); - uint32_t x86, uint8_t x87 = subborrow_u32(x84, x56, 0xffffffff); - uint32_t x89, uint8_t x90 = subborrow_u32(x87, x59, 0xffffffff); - uint32_t x92, uint8_t x93 = subborrow_u32(x90, x62, 0xffffffff); - uint32_t x95, uint8_t x96 = subborrow_u32(x93, x65, 0xffffffff); - uint32_t x98, uint8_t x99 = subborrow_u32(x96, x68, 0x7); - uint32_t _, uint8_t x102 = subborrow_u32(x99, x69, 0x0); - uint32_t x103 = cmovznz32(x102, x98, x68); - uint32_t x104 = cmovznz32(x102, x95, x65); - uint32_t x105 = cmovznz32(x102, x92, x62); - uint32_t x106 = cmovznz32(x102, x89, x59); - uint32_t x107 = cmovznz32(x102, x86, x56); - uint32_t x108 = cmovznz32(x102, x83, x53); - uint32_t x109 = cmovznz32(x102, x80, x50); - uint32_t x110 = cmovznz32(x102, x77, x47); - uint32_t x111 = cmovznz32(x102, x74, x44); - uint32_t x112 = cmovznz32(x102, x71, x41); - return (x103, x104, x105, x106, x107, x108, x109, x110, x111, x112)) -(x, x0)%core - : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType (uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t * uint32_t) diff --git a/src/Specific/montgomery32_2e291m19_10limbs/feaddDisplay.v b/src/Specific/montgomery32_2e291m19_10limbs/feaddDisplay.v deleted file mode 100644 index 4d1ccb5d3..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/feaddDisplay.v +++ /dev/null @@ -1,4 +0,0 @@ -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.feadd. -Require Import Crypto.Specific.Framework.IntegrationTestDisplayCommon. - -Check display add. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/femul.v b/src/Specific/montgomery32_2e291m19_10limbs/femul.v deleted file mode 100644 index 9f88a1ac7..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/femul.v +++ /dev/null @@ -1,14 +0,0 @@ -Require Import Crypto.Arithmetic.PrimeFieldTheorems. -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.Synthesis. - -(* TODO : change this to field once field isomorphism happens *) -Definition mul : - { mul : feBW_small -> feBW_small -> feBW_small - | forall a b, phiM_small (mul a b) = F.mul (phiM_small a) (phiM_small b) }. -Proof. - Set Ltac Profiling. - Time synthesize_mul (). - Show Ltac Profile. -Time Defined. - -Print Assumptions mul. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/femulDisplay.v b/src/Specific/montgomery32_2e291m19_10limbs/femulDisplay.v deleted file mode 100644 index 4615da62f..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/femulDisplay.v +++ /dev/null @@ -1,4 +0,0 @@ -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.femul. -Require Import Crypto.Specific.Framework.IntegrationTestDisplayCommon. - -Check display mul. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/fenz.c b/src/Specific/montgomery32_2e291m19_10limbs/fenz.c deleted file mode 100644 index 4ad084ead..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/fenz.c +++ /dev/null @@ -1,23 +0,0 @@ -static void fenz(ReturnType uint32_t out[1], const uint32_t in1[10]) { - { const uint32_t x17 = in1[9]; - { const uint32_t x18 = in1[8]; - { const uint32_t x16 = in1[7]; - { const uint32_t x14 = in1[6]; - { const uint32_t x12 = in1[5]; - { const uint32_t x10 = in1[4]; - { const uint32_t x8 = in1[3]; - { const uint32_t x6 = in1[2]; - { const uint32_t x4 = in1[1]; - { const uint32_t x2 = in1[0]; - { uint32_t x19 = (x18 | x17); - { uint32_t x20 = (x16 | x19); - { uint32_t x21 = (x14 | x20); - { uint32_t x22 = (x12 | x21); - { uint32_t x23 = (x10 | x22); - { uint32_t x24 = (x8 | x23); - { uint32_t x25 = (x6 | x24); - { uint32_t x26 = (x4 | x25); - { uint32_t x27 = (x2 | x26); - out[0] = x27; - }}}}}}}}}}}}}}}}}}} -} diff --git a/src/Specific/montgomery32_2e291m19_10limbs/fenz.v b/src/Specific/montgomery32_2e291m19_10limbs/fenz.v deleted file mode 100644 index d2e54da64..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/fenz.v +++ /dev/null @@ -1,16 +0,0 @@ -Require Import Coq.ZArith.ZArith. -Require Import Crypto.Arithmetic.PrimeFieldTheorems. -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.Synthesis. -Local Open Scope Z_scope. - -(* TODO : change this to field once field isomorphism happens *) -Definition nonzero : - { nonzero : feBW_small -> BoundedWord.BoundedWord 1 adjusted_bitwidth bound1 - | forall a, (BoundedWord.BoundedWordToZ _ _ _ (nonzero a) =? 0) = (if Decidable.dec (phiM_small a = F.of_Z m 0) then true else false) }. -Proof. - Set Ltac Profiling. - Time synthesize_nonzero (). - Show Ltac Profile. -Time Defined. - -Print Assumptions nonzero. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/fenzDisplay.log b/src/Specific/montgomery32_2e291m19_10limbs/fenzDisplay.log deleted file mode 100644 index d57ef4050..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/fenzDisplay.log +++ /dev/null @@ -1,16 +0,0 @@ -λ x : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32, -Interp-η -(λ var : Syntax.base_type → Type, - λ '(x17, x18, x16, x14, x12, x10, x8, x6, x4, x2)%core, - uint32_t x19 = (x18 | x17); - uint32_t x20 = (x16 | x19); - uint32_t x21 = (x14 | x20); - uint32_t x22 = (x12 | x21); - uint32_t x23 = (x10 | x22); - uint32_t x24 = (x8 | x23); - uint32_t x25 = (x6 | x24); - uint32_t x26 = (x4 | x25); - uint32_t x27 = (x2 | x26); - return x27) -x - : word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 * word32 → ReturnType uint32_t diff --git a/src/Specific/montgomery32_2e291m19_10limbs/fenzDisplay.v b/src/Specific/montgomery32_2e291m19_10limbs/fenzDisplay.v deleted file mode 100644 index 42118c57d..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/fenzDisplay.v +++ /dev/null @@ -1,4 +0,0 @@ -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.fenz. -Require Import Crypto.Specific.Framework.IntegrationTestDisplayCommon. - -Check display nonzero. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/feopp.v b/src/Specific/montgomery32_2e291m19_10limbs/feopp.v deleted file mode 100644 index b0d201e75..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/feopp.v +++ /dev/null @@ -1,14 +0,0 @@ -Require Import Crypto.Arithmetic.PrimeFieldTheorems. -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.Synthesis. - -(* TODO : change this to field once field isomorphism happens *) -Definition opp : - { opp : feBW_small -> feBW_small - | forall a, phiM_small (opp a) = F.opp (phiM_small a) }. -Proof. - Set Ltac Profiling. - Time synthesize_opp (). - Show Ltac Profile. -Time Defined. - -Print Assumptions opp. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/feoppDisplay.v b/src/Specific/montgomery32_2e291m19_10limbs/feoppDisplay.v deleted file mode 100644 index b392a1302..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/feoppDisplay.v +++ /dev/null @@ -1,4 +0,0 @@ -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.feopp. -Require Import Crypto.Specific.Framework.IntegrationTestDisplayCommon. - -Check display opp. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/fesquare.c b/src/Specific/montgomery32_2e291m19_10limbs/fesquare.c deleted file mode 100644 index e3345edfe..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/fesquare.c +++ /dev/null @@ -1,5 +0,0 @@ -/* WARNING: This file was copied from Specific/CurveParameters/montgomery32/fesquare.c. - If you edit it here, changes will be erased the next time remake_curves.sh is run. */ -static void fesquare(uint32_t *out, const uint32_t *in) { - femul(out, in, in); -} diff --git a/src/Specific/montgomery32_2e291m19_10limbs/fesub.v b/src/Specific/montgomery32_2e291m19_10limbs/fesub.v deleted file mode 100644 index 19fe13519..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/fesub.v +++ /dev/null @@ -1,14 +0,0 @@ -Require Import Crypto.Arithmetic.PrimeFieldTheorems. -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.Synthesis. - -(* TODO : change this to field once field isomorphism happens *) -Definition sub : - { sub : feBW_small -> feBW_small -> feBW_small - | forall a b, phiM_small (sub a b) = F.sub (phiM_small a) (phiM_small b) }. -Proof. - Set Ltac Profiling. - Time synthesize_sub (). - Show Ltac Profile. -Time Defined. - -Print Assumptions sub. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/fesubDisplay.v b/src/Specific/montgomery32_2e291m19_10limbs/fesubDisplay.v deleted file mode 100644 index 611321ffc..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/fesubDisplay.v +++ /dev/null @@ -1,4 +0,0 @@ -Require Import Crypto.Specific.montgomery32_2e291m19_10limbs.fesub. -Require Import Crypto.Specific.Framework.IntegrationTestDisplayCommon. - -Check display sub. diff --git a/src/Specific/montgomery32_2e291m19_10limbs/py_interpreter.sh b/src/Specific/montgomery32_2e291m19_10limbs/py_interpreter.sh deleted file mode 100755 index 7e6097a09..000000000 --- a/src/Specific/montgomery32_2e291m19_10limbs/py_interpreter.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/sh -set -eu - -/usr/bin/env python3 "$@" -Dq='2**291 - 19' -Dmodulus_bytes='32' -Da24='121665' |