add sponge construction with test (the Nim API is hackish and incomplete)

This commit is contained in:
Balazs Komuves 2024-10-01 12:14:14 +02:00
parent 9bf867b821
commit 5c72f57809
10 changed files with 1268 additions and 7 deletions

View File

@ -2,9 +2,11 @@ Nim/C implementation of Poseidon2 over the Goldilocks field
===========================================================
Experimental implementation of the [Poseidon2][1] cryptographic hash function,
specialized to the Goldilocks field `p=2^64-2^32+1` and `t=12`.
specialized to the Goldilocks field `p = 2^64-2^32+1` and `t = 12`.
Uses a C implementation internally.
The implementation is compatible with Horizen Lab's one at [3]
Installation
------------
@ -15,6 +17,21 @@ project. Add the following to its `.nimble` file:
requires "poseidon2-goldilocks >= 0.0.1 & < 0.0.1"
```
Conventions
-----------
Hash digests consist of 4 field elements (approximately 256 bits).
When constructing binary Merkle trees, we similarly work on units of 4 field
elements.
When hashing bytes, first we pad the byte sequence to a multiple of 31 bytes using
the `10*` padding strategy, and then we convert each 31 byte piece into 4 field
elements by using the lowest 62 bits. We do this for two reasons: 1) to be a
drop-in replacement for the BN254 implementation which also takes 31 bytes at
a time; and 2) because hashing 31/62 bytes with one permutation is almost 11%
more efficient than using only 28/56 bytes at a time.
Usage
-----
@ -40,3 +57,4 @@ let combination = compress(left, right)
[1]: https://eprint.iacr.org/2023/323.pdf
[2]: https://github.com/nim-lang/nimble
[3]: https://github.com/HorizenLabs/poseidon2

View File

@ -1,6 +1,7 @@
#include <stdint.h>
#include <stdio.h> // for testing only
#include <assert.h>
#include "goldilocks.h"
@ -415,3 +416,112 @@ void goldilocks_poseidon2_compress(const uint64_t *x, const uint64_t *y, uint64_
}
//------------------------------------------------------------------------------
// hash a sequence of field elements into a digest of 4 field elements
void goldilocks_poseidon2_felts_digest(int rate, int N, const uint64_t *input, uint64_t *hash) {
// printf("rate = %d\n",rate);
// printf("N = %d\n",N );
assert( (rate >= 1) && (rate <= 8) );
uint64_t domsep = rate + 256*12 + 65536*63;
uint64_t state[12];
for(int i=0; i<12; i++) state[i] = 0;
state[8] = domsep;
int nchunks = (N + rate) / rate; // 10* padding
const uint64_t *ptr = input;
for(int k=0; k<nchunks-1; k++) {
for(int j=0; j<rate; j++) { state[j] = goldilocks_add( state[j] , ptr[j] ); }
goldilocks_poseidon2_permutation( state );
ptr += rate;
}
int rem = nchunks*rate - N; // 0 < rem <= rate
int ofs = rate - rem;
// the last block, with padding
uint64_t last[8];
for(int i=0 ; i<ofs ; i++) last[i] = ptr[i];
for(int i=ofs+1; i<rate; i++) last[i] = 0;
last[ofs] = 0x01;
for(int j=0; j<rate; j++) { state[j] = goldilocks_add( state[j] , last[j] ); }
goldilocks_poseidon2_permutation( state );
for(int j=0; j<4; j++) { hash[j] = state[j]; }
}
//--------------------------------------
#define MASK 0x3fffffffffffffffULL
// NOTE: we assume a little-endian architecture
void goldilocks_convert_31_bytes_to_4_field_elements(const uint8_t *ptr, uint64_t *felts) {
const uint64_t *q0 = (const uint64_t*)(ptr );
const uint64_t *q7 = (const uint64_t*)(ptr+ 7);
const uint64_t *q15 = (const uint64_t*)(ptr+15);
const uint64_t *q23 = (const uint64_t*)(ptr+23);
felts[0] = (q0 [0]) & MASK;
felts[1] = ((q7 [0]) >> 6) | ((uint64_t)(ptr[15] & 0x0f) << 58);
felts[2] = ((q15[0]) >> 4) | ((uint64_t)(ptr[23] & 0x03) << 60);
felts[3] = ((q23[0]) >> 2);
}
void goldilocks_convert_bytes_to_field_elements(int rate, const uint8_t *ptr, uint64_t *felts) {
switch(rate) {
case 4:
goldilocks_convert_31_bytes_to_4_field_elements(ptr, felts);
break;
case 8:
goldilocks_convert_31_bytes_to_4_field_elements(ptr , felts );
goldilocks_convert_31_bytes_to_4_field_elements(ptr+31, felts+4);
break;
default:
assert( 0 );
break;
}
}
void goldilocks_poseidon2_bytes_digest(int rate, int N, const uint8_t *input, uint64_t *hash) {
// printf("rate = %d\n",rate);
// printf("N = %d\n",N );
assert( (rate == 4) || (rate == 8) );
uint64_t domsep = rate + 256*12 + 65536*8;
uint64_t state[12];
for(int i=0; i<12; i++) state[i] = 0;
state[8] = domsep;
uint64_t felts[8];
int rate_in_bytes = 31 * (rate>>2); // 31 or 62
int nchunks = (N + rate_in_bytes) / rate_in_bytes; // 10* padding
const uint8_t *ptr = input;
for(int k=0; k<nchunks-1; k++) {
goldilocks_convert_bytes_to_field_elements(rate, ptr, felts);
for(int j=0; j<rate; j++) { state[j] = goldilocks_add( state[j] , felts[j] ); }
goldilocks_poseidon2_permutation( state );
ptr += rate_in_bytes;
}
int rem = nchunks*rate_in_bytes - N; // 0 < rem <= rate_in_bytes
int ofs = rate_in_bytes - rem;
uint8_t last[62];
// last block, with padding
for(int i=0 ; i<ofs ; i++) last[i] = ptr[i];
for(int i=ofs+1; i<rate_in_bytes; i++) last[i] = 0;
last[ofs] = 0x01;
goldilocks_convert_bytes_to_field_elements(rate, last, felts);
for(int j=0; j<rate; j++) { state[j] = goldilocks_add( state[j] ,felts[j] ); }
goldilocks_poseidon2_permutation( state );
for(int j=0; j<4; j++) { hash[j] = state[j]; }
}
//------------------------------------------------------------------------------

View File

@ -20,4 +20,7 @@ void goldilocks_poseidon2_permutation(uint64_t *state);
void goldilocks_poseidon2_keyed_compress(const uint64_t *x, const uint64_t *y, uint64_t key, uint64_t *out);
void goldilocks_poseidon2_compress (const uint64_t *x, const uint64_t *y, uint64_t *out);
void goldilocks_poseidon2_bytes_digest(int rate, int N, const uint8_t *input, uint64_t *hash);
void goldilocks_poseidon2_felts_digest(int rate, int N, const uint64_t *input, uint64_t *hash);
//------------------------------------------------------------------------------

View File

@ -6,3 +6,8 @@ func neg* (x: F ): F {. header: "../cbits/goldilocks.h", importc: "goldilocks_
func `+`* (x, y: F): F {. header: "../cbits/goldilocks.h", importc: "goldilocks_add", cdecl .}
func `-`* (x, y: F): F {. header: "../cbits/goldilocks.h", importc: "goldilocks_sub", cdecl .}
func `*`* (x, y: F): F {. header: "../cbits/goldilocks.h", importc: "goldilocks_mul", cdecl .}
proc `+=`* (x: var F, y: F) = x = x + y
proc `-=`* (x: var F, y: F) = x = x - y
proc `*=`* (x: var F, y: F) = x = x * y

121
poseidon2/sponge.nim Normal file
View File

@ -0,0 +1,121 @@
# sponge construction for linear hashing.
#
# we recommend to use rate=8
# (note that we have the state width fixed to t=12)
#
# we use the 10* padding strategy (that is, always append an 1, and append
# as many zeros as required so that the final length is divisible by the rate)
# both when hashing bytes and when hashing field elements
#import std/assertions # on 1.6.18 with an M2 i got "cannot open file: std/assertions" ....
import ./types
import ./goldilocks
import ./permutation
#import ./io
#-------------------------------------------------------------------------------
# "import std/assertions" does not work
# i got the error: "cannot open file: std/assertions"
proc fakeAssert( cond: bool, msg: string ) =
if not cond:
raise newException(AssertionDefect, msg)
#-------------------------------------------------------------------------------
type
Sponge*[T: static typedesc, rate: static int] = object
state: F12
lenModRate: uint
func numberOfBits(T: static typedesc): int =
if T is F: return 63
if T is byte: return 8
if T is bool: return 1
fakeAssert( false , "unsupported input type for sponge construction" )
func initialize[T: static typedesc, rate: static int](sponge: var Sponge[T,rate]) =
fakeAssert( rate >= 1 and rate <= 8 , "with t=12, rate must be at most 8 (and positive)" )
let nbits = numberOfBits(T)
let IV = toF( 0x10000*uint64(nbits) + 0x100*12 + uint64(rate) ) # domain separation IV := (65536*nbits + 256*t + r)
sponge.state[8] = IV;
#---------------------------------------
func extractDigestF4[T: static typedesc, rate: static int](sponge: var Sponge[T,rate]) : F4 =
var digest : F4
for i in 0..<4: digest[i] = sponge.state[i]
return digest
func extractDigest[T: static typedesc, rate: static int](sponge: var Sponge[T,rate]) : Digest =
return toDigest(sponge.extractDigestF4())
#---------------------------------------
func update*[rate: static int](sponge: var Sponge[typedesc[F],rate], x: F) =
sponge.state[sponge.lenModRate] += x
sponge.lenModRate = (sponge.lenModRate + 1) mod rate
if (sponge.lenModRate == 0):
permInPlaceF12( sponge.state );
func finish*[T: static typedesc, rate:static int](sponge: var Sponge[T,rate]): Digest =
# padding
sponge.update(one)
while( sponge.lenModRate != 0):
sponge.update(zero)
return sponge.extractDigest()
#-------------------------------------------------------------------------------
# # _: type Sponge,
#func init*( _: type Sponge, T: static typedesc, rate: static int = 8): Sponge[T,rate] =
# when (rate < 1 or rate > 8):
# {.error: "only rates between 1 and 8 are supported".}
# var sponge: Sponge[T,rate]
# initialize[T,rate](sponge)
# return sponge
func newSponge*[T: static typedesc, rate: static int = 8](): Sponge[T,rate] =
when (rate < 1 or rate > 8):
{.error: "only rates between 1 and 8 are supported".}
var sponge: Sponge[T,rate]
initialize[T,rate](sponge)
return sponge
#---------------------------------------
# digest a sequence of field elements
func digestNim*(rate: static int = 8, elements: openArray[F]): Digest =
var sponge : Sponge[typedesc[F],rate] = newSponge[typedesc[F],rate]()
for element in elements:
sponge.update(element)
return sponge.finish()
# # digest a sequence of bytes
#func digestNim*(rate: static int = 8, bytes: openArray[byte],): F =
# var sponge = Sponge.init(nbits=8, rate)
# for element in bytes.elements(F):
# sponge.update(element)
# return sponge.finish()
#---------------------------------------
proc digestFeltsRawC(rate: int, len: int, input: ptr UncheckedArray[F ], hash: var F4) {. header: "../cbits/goldilocks.h", importc: "goldilocks_poseidon2_felts_digest", cdecl .}
proc digestBytesRawC(rate: int, len: int, input: ptr UncheckedArray[byte], hash: var F4) {. header: "../cbits/goldilocks.h", importc: "goldilocks_poseidon2_bytes_digest", cdecl .}
func digestFeltsC*(rate: static int = 8, felts: openArray[F]): Digest =
var digest : F4
let input = cast[ptr UncheckedArray[F]]( felts.unsafeAddr )
digestFeltsRawC(rate, felts.len, input, digest)
return toDigest(digest)
func digestBytesC*(rate: static int = 8, bytes: openArray[byte]): Digest =
var digest : F4
let input = cast[ptr UncheckedArray[byte]]( bytes.unsafeAddr )
digestBytesRawC(rate, bytes.len, input, digest)
return toDigest(digest)
#-------------------------------------------------------------------------------

View File

@ -1,16 +1,18 @@
import std/strformat
#-------------------------------------------------------------------------------
type F* = distinct uint64
func `==`* (x, y: F): bool =
return (uint64(x) == uint64(y))
func fromF* (x: F): uint64 = return uint64(x)
func toF* (x: uint64): F = return F(x)
func fromF* (x: F): uint64 =
return uint64(x)
func `==`* (x, y: F): bool = return (uint64(x) == uint64(y))
func toF* (x: uint64): F =
return F(x)
func uint64ToHex* (x: uint64): string = fmt"{x:#016x}"
proc `$`*(x: F): string = return uint64ToHex(fromF(x))
#-------------------------------------------------------------------------------
@ -32,4 +34,10 @@ func fromState * (x : State): F12 = return F12(x)
func toDigest* (x : F4 ): Digest = Digest(x)
func toState* (x : F12): State = State(x)
func `==`* (x, y: State ): bool = return (fromState(x) == fromState(y))
func `==`* (x, y: Digest): bool = return (fromDigest(x) == fromDigest(y))
proc `$`*(x: State ): string = return $(fromState(x))
proc `$`*(x: Digest): string = return $(fromDigest(x))
#-------------------------------------------------------------------------------

View File

@ -0,0 +1,64 @@
-- | Generate test cases for Nim
module TestGen.TestSponge where
--------------------------------------------------------------------------------
import Data.Array
import Data.List
import Data.Word
import System.IO
import Goldilocks
import Sponge
--------------------------------------------------------------------------------
nimShowF :: F -> String
nimShowF x = "toF( " ++ show x ++ "'u64 )"
nimShowDigest :: Digest -> String
nimShowDigest (MkDigest a b c d) = "[ " ++ intercalate ", " (map nimShowF [a,b,c,d]) ++ " ]"
nimShowPair :: (Integer,Digest) -> String
nimShowPair (n,d) = "( " ++ show n ++ " , " ++ nimShowDigest d ++ " )"
showListWith :: (a -> String) -> [a] -> [String]
showListWith f xys = zipWith (++) prefix (map f xys) where
prefix = " [ " : repeat " , "
----------------------------------------
digests :: String -> (Integer -> Digest) -> [Integer] -> String
digests varname f xs = unlines (header : stuff ++ footer) where
header = "const " ++ varname ++ "* : array[" ++ show length xs ++ ", tuple[n:int,digest:F4]] = "
footer = [" ]",""]
stuff = showListWith nimShowPair [ (x, f x) | x<-xs ]
--------------------------------------------------------------------------------
feltDigest :: Rate -> Integer -> Digest
feltDigest rate max = hashFieldElems' rate $ (map fromInteger [1..max] :: [F])
byteDigest :: Rate -> Integer -> Digest
byteDigest rate max = hashBytes' rate $ (map fromInteger [1..max] :: [Word8])
--------------------------------------------------------------------------------
printTests :: IO ()
printTests = hPrintTests stdout
hPrintTests :: Handle -> IO ()
hPrintTests h = hPutStrLn h $ unlines $
[ digests ("testcases_field_rate" ++ show r) (feltDigest (Rate r)) [0..80] | r<-[1..8] ] ++
[ digests ("testcases_bytes_rate" ++ show r) (byteDigest (Rate r)) [0..80] | r<-[4,8] ]
writeTests :: IO ()
writeTests = withFile "spongeTestCases.nim" WriteMode $ \h -> do
hPutStrLn h "# generated by TestGen/TestSponge.hs\n"
hPutStrLn h "import poseidon2/types\n"
hPrintTests h
--------------------------------------------------------------------------------

View File

@ -0,0 +1,855 @@
# generated by TestGen/TestSponge.hs
import poseidon2/types
const testcases_field_rate1* : array[81, tuple[n:int,digest:F4]] =
[ ( 0 , [ toF( 0x823867639a2e2e42'u64 ), toF( 0x5a49f311c9c6aed5'u64 ), toF( 0x0755816884b47697'u64 ), toF( 0x5ebb5981aa75ab5c'u64 ) ] )
, ( 1 , [ toF( 0xdd4680d7584478e4'u64 ), toF( 0x95d82add9e6fb6cb'u64 ), toF( 0x1513198fa3b6a0ac'u64 ), toF( 0x6de0a09d88683eee'u64 ) ] )
, ( 2 , [ toF( 0xd76107c8785abb50'u64 ), toF( 0xb971247296273420'u64 ), toF( 0xb073b2e46ce8b3ca'u64 ), toF( 0xb22a45287a388bbc'u64 ) ] )
, ( 3 , [ toF( 0x288e9e20200d59f4'u64 ), toF( 0xd90040e09e330f90'u64 ), toF( 0x66c1b400d98f63dc'u64 ), toF( 0x3fb91f9de102bc0d'u64 ) ] )
, ( 4 , [ toF( 0x2afa004fd0fbe025'u64 ), toF( 0x46b332e86e7de606'u64 ), toF( 0x532fb3c792b2311e'u64 ), toF( 0xef53691d080e4458'u64 ) ] )
, ( 5 , [ toF( 0x466c65d984624f3a'u64 ), toF( 0x772c7ba14e6d3b15'u64 ), toF( 0x8b9d3a6daaebe6a9'u64 ), toF( 0x97c1e834718059e0'u64 ) ] )
, ( 6 , [ toF( 0x0c832541cf9d37cd'u64 ), toF( 0xb83553b4a2e0629c'u64 ), toF( 0x528a6318a0306bda'u64 ), toF( 0xfb2cf392fcb5f72f'u64 ) ] )
, ( 7 , [ toF( 0x9bb2c404c693b34c'u64 ), toF( 0xa0be08458f4b19e3'u64 ), toF( 0x3c0d7e53b59ad5e0'u64 ), toF( 0x7f1b05156530ced3'u64 ) ] )
, ( 8 , [ toF( 0xfc63242ea6299a97'u64 ), toF( 0xa2bd781ea2fbca95'u64 ), toF( 0x7fee05687bdfb524'u64 ), toF( 0x1a6652ec459eb8e7'u64 ) ] )
, ( 9 , [ toF( 0xc5d7aa053ce35a98'u64 ), toF( 0x8c70338aeed647dc'u64 ), toF( 0x3dcdaa264148ad7f'u64 ), toF( 0xd749f1b3a04ebb43'u64 ) ] )
, ( 10 , [ toF( 0x9a05162f971472ee'u64 ), toF( 0x1f2a0b1ed31fc95a'u64 ), toF( 0xca08a899c04e9613'u64 ), toF( 0x5efa360f0624fcbf'u64 ) ] )
, ( 11 , [ toF( 0x4290e50a4e7a1db1'u64 ), toF( 0xad04abbd47017d25'u64 ), toF( 0xe672a16dac3e0e4c'u64 ), toF( 0x9482d4756188aa8d'u64 ) ] )
, ( 12 , [ toF( 0x489e0a8f1038ea34'u64 ), toF( 0x8b0e39721dfb30fd'u64 ), toF( 0xdc581cddc5c11290'u64 ), toF( 0x5c50704430dbf90d'u64 ) ] )
, ( 13 , [ toF( 0xb4fcd5e2926fea19'u64 ), toF( 0xd4e8a2c475368277'u64 ), toF( 0x0d4d157514c8cbfa'u64 ), toF( 0x8efa157c8abdde56'u64 ) ] )
, ( 14 , [ toF( 0xc23ef4cf999ba802'u64 ), toF( 0xc2d8e6c0cd00bbc7'u64 ), toF( 0x2c3e76d392e580ee'u64 ), toF( 0xa921b7b3892d7f9a'u64 ) ] )
, ( 15 , [ toF( 0xa1775cedd920a617'u64 ), toF( 0x8666ae05f6c3158d'u64 ), toF( 0x7a326a67a1092dab'u64 ), toF( 0xc63b4bdfa15d0877'u64 ) ] )
, ( 16 , [ toF( 0x4c7dcfaae6fde95f'u64 ), toF( 0x52652c29f0e9d736'u64 ), toF( 0xef99c73f6a0f571e'u64 ), toF( 0x0367b978b53d1209'u64 ) ] )
, ( 17 , [ toF( 0x9a5d9f2b8be299b6'u64 ), toF( 0xbc948cdedeb535be'u64 ), toF( 0x681cfba1b10dc38d'u64 ), toF( 0xad6acfead04b6957'u64 ) ] )
, ( 18 , [ toF( 0x64fe9e6305ae0e6a'u64 ), toF( 0x4d5e252d09e2a281'u64 ), toF( 0x6773e0c707449e1a'u64 ), toF( 0x0fa5535d117bcf63'u64 ) ] )
, ( 19 , [ toF( 0xc924d8c7b1549242'u64 ), toF( 0x220a4293a88c8216'u64 ), toF( 0x06e07d913dea8c99'u64 ), toF( 0xaf6a9f26dcc12006'u64 ) ] )
, ( 20 , [ toF( 0x0c1558249ffacc70'u64 ), toF( 0x442c035715216064'u64 ), toF( 0xef7204442f6f3a79'u64 ), toF( 0xcfb4afe2e1ce3896'u64 ) ] )
, ( 21 , [ toF( 0x6cf08e4495bb16b5'u64 ), toF( 0xcaebeb6e100e0e2f'u64 ), toF( 0xadf67200d1e632cb'u64 ), toF( 0xae9e2cea9461c045'u64 ) ] )
, ( 22 , [ toF( 0xad7d9184df24650e'u64 ), toF( 0x0d6a864c4adce5c5'u64 ), toF( 0xff016f49d0bde6b6'u64 ), toF( 0x261d28ebfa5ac9de'u64 ) ] )
, ( 23 , [ toF( 0x4b736797a6cb4c49'u64 ), toF( 0xb2592ed64ec4b02f'u64 ), toF( 0xb01fff1588e65af4'u64 ), toF( 0xa90bcec1a104f683'u64 ) ] )
, ( 24 , [ toF( 0x64487525610fe3eb'u64 ), toF( 0x171280292720912b'u64 ), toF( 0xc02d5e8ccc84d6c9'u64 ), toF( 0x8cdfe2b6b65a0d49'u64 ) ] )
, ( 25 , [ toF( 0x3b90316b21ed2072'u64 ), toF( 0xb8c7efff1cc5a6c5'u64 ), toF( 0xd76be67cb144df55'u64 ), toF( 0xb06e70f226dcb7ec'u64 ) ] )
, ( 26 , [ toF( 0x5bc23c301e2616d8'u64 ), toF( 0xe2be2021fbbea41e'u64 ), toF( 0x4bf0b6bf6316f8f6'u64 ), toF( 0x5fa0b10b586169b9'u64 ) ] )
, ( 27 , [ toF( 0xebf9c07e3bec60c7'u64 ), toF( 0x9ebadf428b35bf7c'u64 ), toF( 0x3f1d947b938f6910'u64 ), toF( 0x1ba5ca30e12284c0'u64 ) ] )
, ( 28 , [ toF( 0x6ad01253bae8dede'u64 ), toF( 0xb57b5c602af8c9e3'u64 ), toF( 0xac93ef7745dc12bd'u64 ), toF( 0x5aa46c8584360d04'u64 ) ] )
, ( 29 , [ toF( 0x95c10c6477d40bd8'u64 ), toF( 0x2f0fc81b1a1d76da'u64 ), toF( 0x848f97c9d1f676e4'u64 ), toF( 0x3c4d6dc46f5678c5'u64 ) ] )
, ( 30 , [ toF( 0x9416704bc9691503'u64 ), toF( 0xf9b98a76555d5984'u64 ), toF( 0x560c6bf0ebc15678'u64 ), toF( 0x9d75ce7b7f076e4c'u64 ) ] )
, ( 31 , [ toF( 0x112c9316a7e61b46'u64 ), toF( 0x040673984a499e32'u64 ), toF( 0x077b92a6ccc25696'u64 ), toF( 0xf7e4e02e0f9f4087'u64 ) ] )
, ( 32 , [ toF( 0x6ffcbce50e31f0b5'u64 ), toF( 0x11273a6a55f79141'u64 ), toF( 0xdb82e1e4075cda93'u64 ), toF( 0x21127b680dabd053'u64 ) ] )
, ( 33 , [ toF( 0xbf04b23115111b0f'u64 ), toF( 0xe5862fb11777e306'u64 ), toF( 0xbe28c6188f291109'u64 ), toF( 0xf7ab75d46102bd93'u64 ) ] )
, ( 34 , [ toF( 0x8c8d8fd13237025f'u64 ), toF( 0x812aad413600d95c'u64 ), toF( 0x4597243783ec139b'u64 ), toF( 0x5baf1f3d168487ea'u64 ) ] )
, ( 35 , [ toF( 0xcb0fb2836a8c40be'u64 ), toF( 0x67d0f2a664fd5e37'u64 ), toF( 0x6311b4a7f677c33f'u64 ), toF( 0x90fa3d48c1624acd'u64 ) ] )
, ( 36 , [ toF( 0x0f80ee85fdda72b8'u64 ), toF( 0x50209d323c145c23'u64 ), toF( 0x9d13fadb542baa57'u64 ), toF( 0x07d77c3b4d006002'u64 ) ] )
, ( 37 , [ toF( 0x2493519e57f6bab8'u64 ), toF( 0x1f84656049b54d1a'u64 ), toF( 0x597af9a8a0f024b5'u64 ), toF( 0x3fc3b4c8177b5d86'u64 ) ] )
, ( 38 , [ toF( 0xb1e8347043a75e9e'u64 ), toF( 0xf2dcdb7a6aeecb6a'u64 ), toF( 0xb32cf4fdce992b31'u64 ), toF( 0x6fab8ed00d8af5b6'u64 ) ] )
, ( 39 , [ toF( 0xf3d0c744b6c8ecfd'u64 ), toF( 0xfffe7d4e6bd1378c'u64 ), toF( 0xd60a0747a586f817'u64 ), toF( 0x619398d96b04ed50'u64 ) ] )
, ( 40 , [ toF( 0x1fc78ee417859b6e'u64 ), toF( 0x7b3a0f860635adf9'u64 ), toF( 0x32db0f872bcdc9ee'u64 ), toF( 0xad24909ed7e9de60'u64 ) ] )
, ( 41 , [ toF( 0xf8f2ba623d923464'u64 ), toF( 0x8225e8956f653857'u64 ), toF( 0x2cf01072541868db'u64 ), toF( 0xb22440dae0b1d0df'u64 ) ] )
, ( 42 , [ toF( 0x083fb9442a0a4cfd'u64 ), toF( 0x912fecdc5d5e6f54'u64 ), toF( 0xb8c32f79531c42f9'u64 ), toF( 0x7f4bf4675bcc24f7'u64 ) ] )
, ( 43 , [ toF( 0x238acffb858b8175'u64 ), toF( 0xf42986ef575f6f6d'u64 ), toF( 0xa5717892fcec076c'u64 ), toF( 0x04f6d6d332c71de7'u64 ) ] )
, ( 44 , [ toF( 0x45e0f0cfcc883877'u64 ), toF( 0x30583c4c64c0fdda'u64 ), toF( 0x862c985e7822e694'u64 ), toF( 0xe5b554f61be54b09'u64 ) ] )
, ( 45 , [ toF( 0x5433cc2016d29181'u64 ), toF( 0x26443bef8824b2c6'u64 ), toF( 0x4b23e49ac7b21e7c'u64 ), toF( 0xb1459a7d68d68c9c'u64 ) ] )
, ( 46 , [ toF( 0xb1e0fb399ec298a3'u64 ), toF( 0xec86d85de73540fc'u64 ), toF( 0x8888131022895e9f'u64 ), toF( 0x3486cfc5758e277f'u64 ) ] )
, ( 47 , [ toF( 0x74b142761adf5144'u64 ), toF( 0xaaf7dc715faa7fcf'u64 ), toF( 0xafec96897e3aa038'u64 ), toF( 0x6d2b7af110be79d9'u64 ) ] )
, ( 48 , [ toF( 0xbe363ba9bd6919b8'u64 ), toF( 0x1e8b84a1e6c8ef00'u64 ), toF( 0x9da5e782bbf31975'u64 ), toF( 0xf12dba46deea5faa'u64 ) ] )
, ( 49 , [ toF( 0xb2832b5ec5a13dff'u64 ), toF( 0xe5a31b73229357e2'u64 ), toF( 0x24bd4fadd7527c92'u64 ), toF( 0xaefd9c64054e975f'u64 ) ] )
, ( 50 , [ toF( 0x0f3c4f2a5039da4a'u64 ), toF( 0x7d43638bf891080d'u64 ), toF( 0xbaf07d1be1b7e0ea'u64 ), toF( 0x7a5b48ca9bb9754f'u64 ) ] )
, ( 51 , [ toF( 0x52136774dc8354a2'u64 ), toF( 0xf999a64c9f279af4'u64 ), toF( 0x64bf1e23ab36e405'u64 ), toF( 0xac7574d5a61c184e'u64 ) ] )
, ( 52 , [ toF( 0x8bd5de796b33bf0e'u64 ), toF( 0x0f66fea92ee9e50f'u64 ), toF( 0x2e2d1658c3d0aec0'u64 ), toF( 0xaccc38096efc60a2'u64 ) ] )
, ( 53 , [ toF( 0xa4239acaa29cb660'u64 ), toF( 0x3991036d2e34c860'u64 ), toF( 0x98f5cf34a034dfed'u64 ), toF( 0x151a8527365f29b0'u64 ) ] )
, ( 54 , [ toF( 0x3889df23960f4722'u64 ), toF( 0x7c185138a623c212'u64 ), toF( 0x13c396ed98b8dc58'u64 ), toF( 0x2e4ac4bc598b53cb'u64 ) ] )
, ( 55 , [ toF( 0xfe9db9a9bbdae08a'u64 ), toF( 0xd4e83a5c099610ea'u64 ), toF( 0xfbb7fcd4f629dc18'u64 ), toF( 0xae40f345aa81e7ad'u64 ) ] )
, ( 56 , [ toF( 0x7c30e3131907f641'u64 ), toF( 0xb15c15d3e4859deb'u64 ), toF( 0xa117a6260f674a08'u64 ), toF( 0x47d6b18342705d58'u64 ) ] )
, ( 57 , [ toF( 0x26f0ed1c934efb15'u64 ), toF( 0xbe5514f6270958c3'u64 ), toF( 0x9c0d93fefc3e45e2'u64 ), toF( 0x3381e02478a6b16f'u64 ) ] )
, ( 58 , [ toF( 0x47b98c94b36b5453'u64 ), toF( 0x86e9e47cfcf40d63'u64 ), toF( 0x6df0f343a8e78022'u64 ), toF( 0x4e1c6f8f2eb73f02'u64 ) ] )
, ( 59 , [ toF( 0x5055d3ed7d0bfdd2'u64 ), toF( 0xa0c51464060ef14d'u64 ), toF( 0xf678683a02b5933b'u64 ), toF( 0x9506d53a5a9d9ee8'u64 ) ] )
, ( 60 , [ toF( 0x8e91f86678fd33c2'u64 ), toF( 0xab1f88fd5e03f770'u64 ), toF( 0xd9fbb77487c4c536'u64 ), toF( 0xc4b73c3365837b89'u64 ) ] )
, ( 61 , [ toF( 0x069095e2e33ada9e'u64 ), toF( 0xf72906a64d875ef3'u64 ), toF( 0xf2f3d7db720d4f28'u64 ), toF( 0xb5cf13e75b3ec205'u64 ) ] )
, ( 62 , [ toF( 0xa941a5c24bad213a'u64 ), toF( 0x424dd74aaa7015c3'u64 ), toF( 0x867f5f368afd044c'u64 ), toF( 0x15984d2e23cd9df3'u64 ) ] )
, ( 63 , [ toF( 0x4554afedb7bb239c'u64 ), toF( 0xc26032301c7b21b7'u64 ), toF( 0xbec6c30601c2c0d1'u64 ), toF( 0x7d869c17f0bc3466'u64 ) ] )
, ( 64 , [ toF( 0x9bd563a02c29223b'u64 ), toF( 0x9448ed998e80db81'u64 ), toF( 0x5d2d2eb3dc15063f'u64 ), toF( 0xf1402b38a41e342f'u64 ) ] )
, ( 65 , [ toF( 0xf80024dec94d9f0a'u64 ), toF( 0xe23cc70d4f4598c3'u64 ), toF( 0x823025dc94b98f5e'u64 ), toF( 0x7cef5104b801502f'u64 ) ] )
, ( 66 , [ toF( 0x8f19475802c42d2c'u64 ), toF( 0xd58c1e2d21316d99'u64 ), toF( 0x30bd1e0d9968e781'u64 ), toF( 0x9702c383368fe459'u64 ) ] )
, ( 67 , [ toF( 0x2eaffcf8993e3a0d'u64 ), toF( 0x16ccae397afa92bd'u64 ), toF( 0x3237875efc9d2ec1'u64 ), toF( 0x8494ab8f95ac9ee9'u64 ) ] )
, ( 68 , [ toF( 0x919a4310c7c389d1'u64 ), toF( 0x89ba8e0f8b655689'u64 ), toF( 0xebed3b83e5698443'u64 ), toF( 0x4d7cef395b7810f8'u64 ) ] )
, ( 69 , [ toF( 0x5f20b7000e5dbc54'u64 ), toF( 0xbd7bd50444ec4b48'u64 ), toF( 0x2dfb0c82e29b2b9b'u64 ), toF( 0x472c7027ba7d8756'u64 ) ] )
, ( 70 , [ toF( 0xaffdcd932a705af0'u64 ), toF( 0x69e096a46688d6f8'u64 ), toF( 0xf8d36a1400ab67c8'u64 ), toF( 0x3f4604c585be1085'u64 ) ] )
, ( 71 , [ toF( 0x3ae250012cfe16b8'u64 ), toF( 0x77a83abe0c5f80c0'u64 ), toF( 0x5ae74dfdbc789c54'u64 ), toF( 0xeee339d48f72e6b7'u64 ) ] )
, ( 72 , [ toF( 0x7d7082fbac8c8c96'u64 ), toF( 0x0762e9dbf18b61b0'u64 ), toF( 0x4a64c6aabadaf115'u64 ), toF( 0x586611b7b3a05394'u64 ) ] )
, ( 73 , [ toF( 0x653e759252a33cb1'u64 ), toF( 0x5b9b46958fc97bfb'u64 ), toF( 0xd5e60400c97a96d0'u64 ), toF( 0x656d379950cfb307'u64 ) ] )
, ( 74 , [ toF( 0x9f2ea2be1a802e7f'u64 ), toF( 0x1c29d8d748ca33b8'u64 ), toF( 0x27a045b0f2ddb4d5'u64 ), toF( 0xfb976969ffcb93f7'u64 ) ] )
, ( 75 , [ toF( 0xfb078d5aaab57f95'u64 ), toF( 0x826f9e737e3957d4'u64 ), toF( 0x3cbcce564f0970d5'u64 ), toF( 0x5932422887785001'u64 ) ] )
, ( 76 , [ toF( 0xc236a0c9d3bca8f1'u64 ), toF( 0x4010544fd56e1e47'u64 ), toF( 0x33ae08781003ae6c'u64 ), toF( 0x991aa31d42af304e'u64 ) ] )
, ( 77 , [ toF( 0x73cb7c77035c03b6'u64 ), toF( 0xd3fbb1ef38c43b38'u64 ), toF( 0x5a61852f0b796a7d'u64 ), toF( 0x9ee4c6bdd8566bd4'u64 ) ] )
, ( 78 , [ toF( 0x9e20e66016c4e936'u64 ), toF( 0x5cdc32c6bde76422'u64 ), toF( 0x6dd1a1a9a656d0b1'u64 ), toF( 0x44c06eb708ce8c19'u64 ) ] )
, ( 79 , [ toF( 0x9a21cf6ada45a09a'u64 ), toF( 0x6ea79aeb5f33d4a6'u64 ), toF( 0x28dca16c4e523198'u64 ), toF( 0x793ff34a80f1e126'u64 ) ] )
, ( 80 , [ toF( 0x81f906240bcd7945'u64 ), toF( 0xa596a50b246812e0'u64 ), toF( 0x498d3acf737a50a7'u64 ), toF( 0x26aff24dc104e164'u64 ) ] )
]
const testcases_field_rate2* : array[81, tuple[n:int,digest:F4]] =
[ ( 0 , [ toF( 0x890d06235e0f1b54'u64 ), toF( 0xc6d2004bdbb8c856'u64 ), toF( 0xe80167a53d83d24e'u64 ), toF( 0x3fe41047ab88728c'u64 ) ] )
, ( 1 , [ toF( 0x5ccf4706e7a3cb2b'u64 ), toF( 0xdbce46df7dbc54fe'u64 ), toF( 0x96171c3c3f9ebd92'u64 ), toF( 0x1f243cb39d43238a'u64 ) ] )
, ( 2 , [ toF( 0x6323f90a25db9f7b'u64 ), toF( 0x4c8ec1ee1ff1caaa'u64 ), toF( 0x704b6564cc2cad94'u64 ), toF( 0xf339e55b1b7cd1f5'u64 ) ] )
, ( 3 , [ toF( 0x4d0f883030ad6d4a'u64 ), toF( 0xc8d70bb45f291fd0'u64 ), toF( 0x2e13717c03934dde'u64 ), toF( 0xd9af0208c37617bc'u64 ) ] )
, ( 4 , [ toF( 0x9c2f8c90f9f652bf'u64 ), toF( 0x1be6693f06e98e86'u64 ), toF( 0x355a4354908b705b'u64 ), toF( 0x6558004a0e5afc8f'u64 ) ] )
, ( 5 , [ toF( 0x1a7ad81acd0f010b'u64 ), toF( 0x348c9c5e11e5e32c'u64 ), toF( 0x4292c00bfa401fe1'u64 ), toF( 0x908b5e0785b19675'u64 ) ] )
, ( 6 , [ toF( 0xa0a08d61e4ddbde4'u64 ), toF( 0x0530bad4d6437e4d'u64 ), toF( 0xc3b4cff68e49ebb9'u64 ), toF( 0xa5bf645492c5071b'u64 ) ] )
, ( 7 , [ toF( 0x2af8822e4da1fa4f'u64 ), toF( 0x4279109fb742f599'u64 ), toF( 0x8a376fc239199f52'u64 ), toF( 0xce1f2666aa7decce'u64 ) ] )
, ( 8 , [ toF( 0xc40c05bbb56e9440'u64 ), toF( 0xb0b3ff658329e22c'u64 ), toF( 0x71078d428a54061f'u64 ), toF( 0xd1c9399ffd333290'u64 ) ] )
, ( 9 , [ toF( 0xf1a3de3ca6df5e69'u64 ), toF( 0x7a7d73c60816100a'u64 ), toF( 0x1986c9b3da890f3f'u64 ), toF( 0x3c7c3305f68f06eb'u64 ) ] )
, ( 10 , [ toF( 0x87d94e0dfbe5d619'u64 ), toF( 0x279ffe2b38742f3e'u64 ), toF( 0xf61f40a5f56e887a'u64 ), toF( 0xb73711f21058f4ce'u64 ) ] )
, ( 11 , [ toF( 0x810c09b8a3532946'u64 ), toF( 0x213f626b2ccb202d'u64 ), toF( 0xa6eebe032538d0d6'u64 ), toF( 0x56db02a736f1c74e'u64 ) ] )
, ( 12 , [ toF( 0x0d0f06c1a1ad8910'u64 ), toF( 0xc53aadcc5d44fb2e'u64 ), toF( 0x1c452ecca4637ed8'u64 ), toF( 0x62f285b4abed89dd'u64 ) ] )
, ( 13 , [ toF( 0x1a027f0e5fc81fbe'u64 ), toF( 0x5dd8c757f1509721'u64 ), toF( 0xa42fd43b6d232056'u64 ), toF( 0x19bcdbb274ac0ac6'u64 ) ] )
, ( 14 , [ toF( 0x4111a305bdc42d75'u64 ), toF( 0x7c50fff566e8b171'u64 ), toF( 0x5a6b2708ea8d7264'u64 ), toF( 0xe281cb45a1cb19eb'u64 ) ] )
, ( 15 , [ toF( 0x0ef4a5e114859e3d'u64 ), toF( 0xf8cd711678614e1f'u64 ), toF( 0xf98984fa51caac6e'u64 ), toF( 0x02135af9232881c3'u64 ) ] )
, ( 16 , [ toF( 0xd8f66fc6967779cb'u64 ), toF( 0x29158acba8437ad1'u64 ), toF( 0x5e34b6f3b7011a00'u64 ), toF( 0xd776ec82d6eebbc3'u64 ) ] )
, ( 17 , [ toF( 0x04ad79acdc505ed8'u64 ), toF( 0xc27f85aae96da172'u64 ), toF( 0x8e633d1c287cf6de'u64 ), toF( 0x54734eb0c17bc794'u64 ) ] )
, ( 18 , [ toF( 0xa7fae349a5a68def'u64 ), toF( 0xce029a29595d643c'u64 ), toF( 0xb969769a6f1da5d9'u64 ), toF( 0xd06f578f09c71375'u64 ) ] )
, ( 19 , [ toF( 0x5439a2f4252cec45'u64 ), toF( 0x5c05dde33c0f6643'u64 ), toF( 0xc040cd59c288b84a'u64 ), toF( 0x16ced892916b2ae6'u64 ) ] )
, ( 20 , [ toF( 0xae899d66ab9bb0ff'u64 ), toF( 0x0ae1560fa4a923d2'u64 ), toF( 0x2b5fc13a50dc5533'u64 ), toF( 0xa085e96f4dfc98c8'u64 ) ] )
, ( 21 , [ toF( 0x34df03c80117dc52'u64 ), toF( 0xd5d0b8fc05f0a995'u64 ), toF( 0xf188d0e607305d00'u64 ), toF( 0xca5f1bfaad607efa'u64 ) ] )
, ( 22 , [ toF( 0x469c7983290cb04b'u64 ), toF( 0xd4b079118d3fe0ce'u64 ), toF( 0x4698b62e56f44012'u64 ), toF( 0x20b3a943e1fbcf29'u64 ) ] )
, ( 23 , [ toF( 0x9980677f6b39be06'u64 ), toF( 0xa0e16771368b373c'u64 ), toF( 0xcb53a5e818f0fbfc'u64 ), toF( 0xbc3f8ee29a34fd18'u64 ) ] )
, ( 24 , [ toF( 0xb9fd284b049361aa'u64 ), toF( 0x21755f956a8e4fae'u64 ), toF( 0xa797126cbfbab996'u64 ), toF( 0xee076086560a8830'u64 ) ] )
, ( 25 , [ toF( 0xa8ece175b884e2e0'u64 ), toF( 0x60d27be5992671c6'u64 ), toF( 0xa3d9729cfc6c872f'u64 ), toF( 0x8f7289aa242b9e36'u64 ) ] )
, ( 26 , [ toF( 0xb3460cf89e34cfc8'u64 ), toF( 0x6634d7978cb1e758'u64 ), toF( 0x7a6670e4224f3e87'u64 ), toF( 0x95fd2246999e8f84'u64 ) ] )
, ( 27 , [ toF( 0x51c59c6d2ff1a614'u64 ), toF( 0xfb78e9a7175265bb'u64 ), toF( 0xc9698f11460a1fe6'u64 ), toF( 0x468653a5de16a5a8'u64 ) ] )
, ( 28 , [ toF( 0xad7cb838b8b3eda6'u64 ), toF( 0xe482a04fbaf9498f'u64 ), toF( 0x5362215d2437c22e'u64 ), toF( 0xe69c9de2b7f9d18e'u64 ) ] )
, ( 29 , [ toF( 0xb1484b9291907e1b'u64 ), toF( 0xea69751074519b42'u64 ), toF( 0x46e33e2369b6826c'u64 ), toF( 0x80f1c2d0672b2419'u64 ) ] )
, ( 30 , [ toF( 0x73cfd98b103c21e8'u64 ), toF( 0x4e0c83b4c1a115d4'u64 ), toF( 0x054db584e13ef3f1'u64 ), toF( 0x4bb41cf31b4b69e5'u64 ) ] )
, ( 31 , [ toF( 0x465d57751482c1a0'u64 ), toF( 0xbff0ca5f2c4e4730'u64 ), toF( 0x21a5661cbbbaa908'u64 ), toF( 0x97ad9d6054e113b9'u64 ) ] )
, ( 32 , [ toF( 0x7cfe448c1b00eaa9'u64 ), toF( 0xcd291e0f5c57152a'u64 ), toF( 0x8eb8b4af889a3b01'u64 ), toF( 0xb0d49f56adfc76fe'u64 ) ] )
, ( 33 , [ toF( 0xef3c63e666a891a3'u64 ), toF( 0x3e7828eb790bee5f'u64 ), toF( 0xe2053738762fe774'u64 ), toF( 0xcf0be2d33aab6712'u64 ) ] )
, ( 34 , [ toF( 0xdfc52a3cf6fd3248'u64 ), toF( 0x13115d01fd9e3fd1'u64 ), toF( 0xbbb919b007b9f57b'u64 ), toF( 0xb56f1a6d2de0a66f'u64 ) ] )
, ( 35 , [ toF( 0x72d97a15c02142f3'u64 ), toF( 0x9811d5ebf03fd0ad'u64 ), toF( 0x4a0aa47a6564a45a'u64 ), toF( 0xd851f6e2a1acb98b'u64 ) ] )
, ( 36 , [ toF( 0x667d1dad5abc7bee'u64 ), toF( 0x0d5fafc6278f1b2e'u64 ), toF( 0x9adf5154e7c634c8'u64 ), toF( 0x804038e1f4e70c36'u64 ) ] )
, ( 37 , [ toF( 0x3f30e125bd7aef58'u64 ), toF( 0x434e333608eef078'u64 ), toF( 0xe561e3c4587af8db'u64 ), toF( 0xb743df8633bbf36f'u64 ) ] )
, ( 38 , [ toF( 0x30131b79623f0288'u64 ), toF( 0x6fe2187ca26841e7'u64 ), toF( 0xcbfebb3603968937'u64 ), toF( 0x2b19bbcbc053917f'u64 ) ] )
, ( 39 , [ toF( 0x851143d8cb204fc4'u64 ), toF( 0xf89ee64711e814ac'u64 ), toF( 0x38f551e764403fe3'u64 ), toF( 0xa0bb7f5d45164fd4'u64 ) ] )
, ( 40 , [ toF( 0x120659c2bd20a0e3'u64 ), toF( 0x5e059d4dce03606f'u64 ), toF( 0xc482bc6099ab4632'u64 ), toF( 0x859df2faba64eb37'u64 ) ] )
, ( 41 , [ toF( 0x997377c6fcc53471'u64 ), toF( 0x1a1f24b4500c2481'u64 ), toF( 0x5550f66275ea89a6'u64 ), toF( 0x91cfac5eb02b702b'u64 ) ] )
, ( 42 , [ toF( 0x6905842ac33856ca'u64 ), toF( 0xb923094c4046adfb'u64 ), toF( 0x0221400fc387689f'u64 ), toF( 0x3a7581537004becd'u64 ) ] )
, ( 43 , [ toF( 0x6f2c33ced8c4b9ba'u64 ), toF( 0xd7137004c3141edf'u64 ), toF( 0x46071886146d8824'u64 ), toF( 0x762f01a49c084e7b'u64 ) ] )
, ( 44 , [ toF( 0x26dbbffc10e4a761'u64 ), toF( 0x920ec57b238b4d24'u64 ), toF( 0x8f010a9d4104957a'u64 ), toF( 0x28254f383988b864'u64 ) ] )
, ( 45 , [ toF( 0xfc2ed6f0040c6167'u64 ), toF( 0x5406064caafa90bd'u64 ), toF( 0x2a617ba994d8ef95'u64 ), toF( 0x39f43ab9f5c2d67e'u64 ) ] )
, ( 46 , [ toF( 0xa170b9772f084372'u64 ), toF( 0xef6f1caa3b912ba4'u64 ), toF( 0x15740926ac147292'u64 ), toF( 0x011db937abdf6a6b'u64 ) ] )
, ( 47 , [ toF( 0x52efa772e1df3216'u64 ), toF( 0x3905f49c07a207d5'u64 ), toF( 0xc41d1f8c9133097c'u64 ), toF( 0x4ca227a7d8da48f0'u64 ) ] )
, ( 48 , [ toF( 0xf36a4bb66054f005'u64 ), toF( 0xc21380acb7264219'u64 ), toF( 0x98f07191747daab6'u64 ), toF( 0x00642a824dc3efbf'u64 ) ] )
, ( 49 , [ toF( 0x54bca182273ca560'u64 ), toF( 0xdca8ab298e92b486'u64 ), toF( 0xd76eda6bf9323e10'u64 ), toF( 0xa67889329d4d09aa'u64 ) ] )
, ( 50 , [ toF( 0xa569ce74c197798c'u64 ), toF( 0x5c14300bc88ac741'u64 ), toF( 0x796f9f0bfd9423f7'u64 ), toF( 0xf0cc4a54d42ca2ea'u64 ) ] )
, ( 51 , [ toF( 0xbfbbd60c85fc9574'u64 ), toF( 0xc8a10a93a92b1384'u64 ), toF( 0xcfc23c8c3b0a2629'u64 ), toF( 0xd38784e349a2c426'u64 ) ] )
, ( 52 , [ toF( 0x0664d5f040bbfba6'u64 ), toF( 0xb39176a3c14a157c'u64 ), toF( 0x1c9e8cdf169af29d'u64 ), toF( 0x1a293faadec70f82'u64 ) ] )
, ( 53 , [ toF( 0xb4997ac0655acf7e'u64 ), toF( 0x9dd3796f07145191'u64 ), toF( 0x1cf9cf109fcf7dec'u64 ), toF( 0x17c4cc0498682197'u64 ) ] )
, ( 54 , [ toF( 0xcc85530bc62d503d'u64 ), toF( 0x9cc8076882c06141'u64 ), toF( 0x60ad5771d4f18a4f'u64 ), toF( 0xf615b3adda87d1cb'u64 ) ] )
, ( 55 , [ toF( 0xa8455777ca4297b3'u64 ), toF( 0xa4a490c032af87a9'u64 ), toF( 0x2b0149a9b6ed0a3e'u64 ), toF( 0x1e0616a97ff25a2d'u64 ) ] )
, ( 56 , [ toF( 0x45ec42db9d7bfa6b'u64 ), toF( 0x8558d7f47f1525d3'u64 ), toF( 0x7f16e179e5a6ed96'u64 ), toF( 0xa9dc5120146b7a57'u64 ) ] )
, ( 57 , [ toF( 0x54b3b802e720ed0f'u64 ), toF( 0x978d53bf89e2ef43'u64 ), toF( 0x2b7dd8e077dd02d1'u64 ), toF( 0x0ff12e3847c05ef1'u64 ) ] )
, ( 58 , [ toF( 0x370673a5bdf2f390'u64 ), toF( 0x95331142c2ede858'u64 ), toF( 0xa0a903481d6c892f'u64 ), toF( 0x9eac7647930c85e3'u64 ) ] )
, ( 59 , [ toF( 0xf4a9584dee747ddb'u64 ), toF( 0x7dc12326e0b29794'u64 ), toF( 0xe30f975f67e79d5c'u64 ), toF( 0x649ea76ec32116ac'u64 ) ] )
, ( 60 , [ toF( 0x1fc4409ff6790a6f'u64 ), toF( 0x8cf9feedf00b3037'u64 ), toF( 0xb003b3b917a3ea09'u64 ), toF( 0x7b9c78115bc83e9a'u64 ) ] )
, ( 61 , [ toF( 0x572f4df4b3a4f2a5'u64 ), toF( 0x2df7472974e4f2be'u64 ), toF( 0xd713a3c27e9543e6'u64 ), toF( 0xdfce130d686336b6'u64 ) ] )
, ( 62 , [ toF( 0xb0027dd35b066ec7'u64 ), toF( 0xc1fd6f89677f966e'u64 ), toF( 0x1e2e726bbc29147c'u64 ), toF( 0xf400c650bcb296f5'u64 ) ] )
, ( 63 , [ toF( 0x393c1effafae1600'u64 ), toF( 0x05f0a67f06b3d6f4'u64 ), toF( 0xe5c6f635c2e6e1e6'u64 ), toF( 0x10776f124a667133'u64 ) ] )
, ( 64 , [ toF( 0x0039114842e41baa'u64 ), toF( 0x6cb3f6db81f72b16'u64 ), toF( 0x07bb683387f22e15'u64 ), toF( 0x71379d200448114b'u64 ) ] )
, ( 65 , [ toF( 0x81d317ef4669d414'u64 ), toF( 0x57c94705701004ff'u64 ), toF( 0xe15bf855f6f3ac41'u64 ), toF( 0x3ec82929f7f06813'u64 ) ] )
, ( 66 , [ toF( 0xc3f44d69c8ed4a04'u64 ), toF( 0x8384bb147676ff4f'u64 ), toF( 0x9bb39fa6d5c67558'u64 ), toF( 0xcb93f006bad19376'u64 ) ] )
, ( 67 , [ toF( 0xb7265d8febb056cf'u64 ), toF( 0xd6efed7d27bb52e0'u64 ), toF( 0x170aab5e52c2e1ed'u64 ), toF( 0x9d7abc18447f2234'u64 ) ] )
, ( 68 , [ toF( 0x9c915df50bdd87d1'u64 ), toF( 0x804db86dde1b5d50'u64 ), toF( 0x647cad0f2de76563'u64 ), toF( 0x490d0f383bf7ad93'u64 ) ] )
, ( 69 , [ toF( 0x1a08ea3dadec44c9'u64 ), toF( 0x9e1b58705cab7255'u64 ), toF( 0xa1ccbc7dc1457052'u64 ), toF( 0xe1992df264a601fc'u64 ) ] )
, ( 70 , [ toF( 0xb4f4646f85c6861a'u64 ), toF( 0x045fdac696cbe327'u64 ), toF( 0x8782447c5ee1869d'u64 ), toF( 0xe6e63529a6500744'u64 ) ] )
, ( 71 , [ toF( 0x68da526756a4a64c'u64 ), toF( 0x901997500d352c2b'u64 ), toF( 0x28c3c815fa74f42e'u64 ), toF( 0x40af031ae28b34d3'u64 ) ] )
, ( 72 , [ toF( 0x1f964fbffbc2428c'u64 ), toF( 0xc48eb4b6e2e039dc'u64 ), toF( 0x365647a7ef9c1ec1'u64 ), toF( 0xc642d51ec237f672'u64 ) ] )
, ( 73 , [ toF( 0x74c18fa3ba7574ec'u64 ), toF( 0xfdc623471b9b4fb7'u64 ), toF( 0x9175c19ff1c809c6'u64 ), toF( 0xec7dbb6fefa04ced'u64 ) ] )
, ( 74 , [ toF( 0x7d10ea33ec654897'u64 ), toF( 0xf790de5d886f1659'u64 ), toF( 0x0982698a0be191b4'u64 ), toF( 0x9bdd6ace75f3b10e'u64 ) ] )
, ( 75 , [ toF( 0xedffd78fc9c717f5'u64 ), toF( 0xe3c05c252ab442d3'u64 ), toF( 0x5b643b7d5e8589b5'u64 ), toF( 0x2baac8a7ea91449e'u64 ) ] )
, ( 76 , [ toF( 0xef0f8bc2469928e0'u64 ), toF( 0x0be74943ba1dca85'u64 ), toF( 0x236b2b9eff1a54ad'u64 ), toF( 0x9741f8ffca2ed453'u64 ) ] )
, ( 77 , [ toF( 0xe2fd9019904e9ea9'u64 ), toF( 0x30ce00b3a8726a86'u64 ), toF( 0xd29a9d403dc54df4'u64 ), toF( 0xf6ab32a7ca680526'u64 ) ] )
, ( 78 , [ toF( 0x590e984d3768d23c'u64 ), toF( 0x46f3d66993a946c4'u64 ), toF( 0xa59127b121aca7ea'u64 ), toF( 0x246691e2a3358207'u64 ) ] )
, ( 79 , [ toF( 0xf6729c245061660f'u64 ), toF( 0xbd5fafc7bf09937b'u64 ), toF( 0xe9ecb6eefb4aa479'u64 ), toF( 0x0b13f5099a95dc33'u64 ) ] )
, ( 80 , [ toF( 0x78fe979dc6523b60'u64 ), toF( 0xec46044693ea39d6'u64 ), toF( 0x33b87835355164fe'u64 ), toF( 0xc572d6278008840b'u64 ) ] )
]
const testcases_field_rate3* : array[81, tuple[n:int,digest:F4]] =
[ ( 0 , [ toF( 0x6058bcfb56a50647'u64 ), toF( 0x16f9763249102b7f'u64 ), toF( 0xccfb26627c49dabb'u64 ), toF( 0x4fe38f687654da14'u64 ) ] )
, ( 1 , [ toF( 0x64f8fa5599866f43'u64 ), toF( 0x3e528eba595af4e4'u64 ), toF( 0x1120d070097b2284'u64 ), toF( 0xbdc77b75f0addcd9'u64 ) ] )
, ( 2 , [ toF( 0xd34cfcb29d951130'u64 ), toF( 0xc9be27345aba5c9d'u64 ), toF( 0xb731af2d3193669d'u64 ), toF( 0xaec92830c09d73d6'u64 ) ] )
, ( 3 , [ toF( 0x44ee3c38f6a44556'u64 ), toF( 0xbbb54ad94181e9ef'u64 ), toF( 0xf60d6ac9bea175c7'u64 ), toF( 0xa1f79d0803b600e4'u64 ) ] )
, ( 4 , [ toF( 0x7ecaf80b8255f1f6'u64 ), toF( 0x152b3f1053169ce5'u64 ), toF( 0x7ee231397f325ea4'u64 ), toF( 0xe52e23a6b6c0106c'u64 ) ] )
, ( 5 , [ toF( 0xb5839720ca40658e'u64 ), toF( 0x409f444ede40d050'u64 ), toF( 0xff2876a08572a48b'u64 ), toF( 0x918162405518db95'u64 ) ] )
, ( 6 , [ toF( 0x077d9be90a7553ba'u64 ), toF( 0xdb9e87e5c6fc70e3'u64 ), toF( 0x1b1ebf764610ead1'u64 ), toF( 0x3525fd605770a499'u64 ) ] )
, ( 7 , [ toF( 0x9154686a2a043bbb'u64 ), toF( 0xb3a13bda9e6c7b9d'u64 ), toF( 0x129d8ac5a6f73381'u64 ), toF( 0x2f8c7408de1e9027'u64 ) ] )
, ( 8 , [ toF( 0x408038eabb168f49'u64 ), toF( 0x86d1a27e80b6ad13'u64 ), toF( 0x2b2528482e84c668'u64 ), toF( 0xe980dc56d4cc0125'u64 ) ] )
, ( 9 , [ toF( 0x00cf2b7bd3441094'u64 ), toF( 0xc08b167e3a326531'u64 ), toF( 0x20c667ae33f38b2f'u64 ), toF( 0x3c2de6d73259bc8f'u64 ) ] )
, ( 10 , [ toF( 0x97ed644fce711563'u64 ), toF( 0x875e35ec68783da7'u64 ), toF( 0x1d4dcd2af2109e9a'u64 ), toF( 0xea51a648558cdbab'u64 ) ] )
, ( 11 , [ toF( 0xf1d4b1deac25745a'u64 ), toF( 0x9470a24b8ec5871f'u64 ), toF( 0x5e974a5f907a2f04'u64 ), toF( 0xb7a677c45e621240'u64 ) ] )
, ( 12 , [ toF( 0x83b44b6cc14263dd'u64 ), toF( 0x71aeca5047463afc'u64 ), toF( 0x50bc460362d59e41'u64 ), toF( 0x57c749b1e707bccd'u64 ) ] )
, ( 13 , [ toF( 0xa1bb6be6fed24d8b'u64 ), toF( 0x97ef81ea5ac97dd7'u64 ), toF( 0x6209d81cecf7194f'u64 ), toF( 0x1bec39a45ebe3af3'u64 ) ] )
, ( 14 , [ toF( 0xf10436be8e4bf24c'u64 ), toF( 0x9f16430aaaf22748'u64 ), toF( 0xb9f9831aae62709c'u64 ), toF( 0x73bc14ae8966ff68'u64 ) ] )
, ( 15 , [ toF( 0x2355fbce63273701'u64 ), toF( 0x6666dac416c39889'u64 ), toF( 0xdfc7fe8f1c16a984'u64 ), toF( 0xde88f4406c4d7196'u64 ) ] )
, ( 16 , [ toF( 0x5dc24295b0b822d0'u64 ), toF( 0x99f77ae7c3e69f00'u64 ), toF( 0x0e3a5204690df0c5'u64 ), toF( 0x42e6d8246e2ef1ce'u64 ) ] )
, ( 17 , [ toF( 0x6a4cf230ed53a857'u64 ), toF( 0x46278afc6197e75a'u64 ), toF( 0x69645c6ed5798293'u64 ), toF( 0x3b2cae0492ff2ccc'u64 ) ] )
, ( 18 , [ toF( 0x6f008bc1661d22d7'u64 ), toF( 0xa86bae7fff2fdcc4'u64 ), toF( 0x585be662fdb52202'u64 ), toF( 0xab39bfa193df1be3'u64 ) ] )
, ( 19 , [ toF( 0xac5bb1d3ebc92c30'u64 ), toF( 0x671632590d0f287f'u64 ), toF( 0xb5ab0451b102fe2c'u64 ), toF( 0x43a9d04f2ee02f41'u64 ) ] )
, ( 20 , [ toF( 0xda90b396a8d3d534'u64 ), toF( 0x765b167f237697c4'u64 ), toF( 0x55e17538814480ae'u64 ), toF( 0x5fa166575c2e0983'u64 ) ] )
, ( 21 , [ toF( 0xb7d419412ad817e0'u64 ), toF( 0x9978215086934a4f'u64 ), toF( 0x453c65f8363688f0'u64 ), toF( 0x35293e007fc0f397'u64 ) ] )
, ( 22 , [ toF( 0xbc5957fad3998144'u64 ), toF( 0x6f5cad8ca705142e'u64 ), toF( 0x18d2faf7c9d15bc4'u64 ), toF( 0xb301a7c258b3b966'u64 ) ] )
, ( 23 , [ toF( 0x3f28d32054a77082'u64 ), toF( 0xb54b714a7ecc7866'u64 ), toF( 0x84b17c9889c5ce61'u64 ), toF( 0xabecc2f5cfc3cf75'u64 ) ] )
, ( 24 , [ toF( 0x73a2ad7fa41ac178'u64 ), toF( 0x2609ae60b3385c5a'u64 ), toF( 0x97af2237e563bd0e'u64 ), toF( 0x956b1c74803533f0'u64 ) ] )
, ( 25 , [ toF( 0xeace3233a9656876'u64 ), toF( 0x36197ba5a2ef895f'u64 ), toF( 0x401065a5ee57ef6d'u64 ), toF( 0xa7af5649ca9618fe'u64 ) ] )
, ( 26 , [ toF( 0xd3a269ded1bd77e6'u64 ), toF( 0x97b1b2a6ed8c082a'u64 ), toF( 0xd7f38ccc711a76b4'u64 ), toF( 0x4e53f36947dd59ef'u64 ) ] )
, ( 27 , [ toF( 0x71f6192f16473e23'u64 ), toF( 0xabf39d6811155b0b'u64 ), toF( 0x5314ee58e8006bd4'u64 ), toF( 0xf32db1ac3793343f'u64 ) ] )
, ( 28 , [ toF( 0x38e80bddf7623205'u64 ), toF( 0x1167057904ec0dc8'u64 ), toF( 0x2dae071c4b130dcd'u64 ), toF( 0xe9126120c8d10c25'u64 ) ] )
, ( 29 , [ toF( 0xf87e72c5f377976f'u64 ), toF( 0x236d996fce9cfe1b'u64 ), toF( 0x4decc40ccd92ca3a'u64 ), toF( 0x9ac33ea2130b2fae'u64 ) ] )
, ( 30 , [ toF( 0x841aab1204fdd614'u64 ), toF( 0x780b35ea2cfd96e8'u64 ), toF( 0x81d3bd3b467aced8'u64 ), toF( 0xbcb0fa1c67312c5e'u64 ) ] )
, ( 31 , [ toF( 0xad0271e9947cbc73'u64 ), toF( 0xeed47aea6f9c66e1'u64 ), toF( 0x48eb31bf8ebe5e93'u64 ), toF( 0x95ef9c8383a69aa0'u64 ) ] )
, ( 32 , [ toF( 0xe07dc95365831ce4'u64 ), toF( 0x1ed9e3317e9d5514'u64 ), toF( 0xd0e7847b26b819c3'u64 ), toF( 0x40fc3fab14389cda'u64 ) ] )
, ( 33 , [ toF( 0x744d529816fbb3a3'u64 ), toF( 0xb8167f2f9948af3c'u64 ), toF( 0x6690a3d9b051f5ff'u64 ), toF( 0xadc0a440831ead5b'u64 ) ] )
, ( 34 , [ toF( 0x6a35b7d079c2330e'u64 ), toF( 0xfaa79d84ae9d450a'u64 ), toF( 0xb9ff3fb4f43f4e01'u64 ), toF( 0x7e25763292bac7c8'u64 ) ] )
, ( 35 , [ toF( 0xb5f0b2a6d0bde8a4'u64 ), toF( 0x395b9002052835b8'u64 ), toF( 0x5e8a6ee286f1d3d4'u64 ), toF( 0xbfb843830c1617d5'u64 ) ] )
, ( 36 , [ toF( 0x24f2d12ccba0304c'u64 ), toF( 0x8c30445bb061681f'u64 ), toF( 0x96511773d18eea6e'u64 ), toF( 0xa51e8e7c9dc164cf'u64 ) ] )
, ( 37 , [ toF( 0x18ad76866d569a7d'u64 ), toF( 0x23b4ceb9faf6d321'u64 ), toF( 0x08c8cb7cfb8036b8'u64 ), toF( 0x22ccb0ef1e39ff00'u64 ) ] )
, ( 38 , [ toF( 0xbb3cf9d6bbb6378d'u64 ), toF( 0x3e51e395cedb7f9e'u64 ), toF( 0x831f3466c2850de4'u64 ), toF( 0xe4e32a4802f182d3'u64 ) ] )
, ( 39 , [ toF( 0x0238ad12fcf2b6b8'u64 ), toF( 0x453ab2ae302d2148'u64 ), toF( 0x5cfc000fe8403114'u64 ), toF( 0xb4c0f7d0a5026d36'u64 ) ] )
, ( 40 , [ toF( 0xbd8fac5089f49979'u64 ), toF( 0xb282d2ea585b9220'u64 ), toF( 0xd6fac2af0e4d8c19'u64 ), toF( 0x554ec7e853df8279'u64 ) ] )
, ( 41 , [ toF( 0x280b07953594855e'u64 ), toF( 0xae067c0562bd31ce'u64 ), toF( 0xf3e56b9c245c0c24'u64 ), toF( 0xbdf447449c0a3389'u64 ) ] )
, ( 42 , [ toF( 0x60fe3d2716cc1d93'u64 ), toF( 0x4cc9192a3e7dfd89'u64 ), toF( 0xa5e3f737827117b9'u64 ), toF( 0xc53554791854bafe'u64 ) ] )
, ( 43 , [ toF( 0xf1bb312860f7935f'u64 ), toF( 0x0d3d5be1a8394d7c'u64 ), toF( 0x53d252e66f1a0a8d'u64 ), toF( 0x21bdef89e4e0a8e4'u64 ) ] )
, ( 44 , [ toF( 0x57115738dec9db5f'u64 ), toF( 0x1dba00cfebb65d49'u64 ), toF( 0xf7de093bbe3e0bf9'u64 ), toF( 0x00d87b6e30db0204'u64 ) ] )
, ( 45 , [ toF( 0x43771c86aac23da6'u64 ), toF( 0x834ce6e8e1a55b2f'u64 ), toF( 0xc4e579057e3011bd'u64 ), toF( 0xa82ace2d743f54ec'u64 ) ] )
, ( 46 , [ toF( 0xe57eb117ecb642eb'u64 ), toF( 0xb49e26cbf1862303'u64 ), toF( 0x98b54579a50810cc'u64 ), toF( 0xcff2e587bc0ee903'u64 ) ] )
, ( 47 , [ toF( 0x0c2ff4b319047fc3'u64 ), toF( 0x2ce2d1ac9b3ac6c2'u64 ), toF( 0x16a00396bfe2ae6d'u64 ), toF( 0x256258a3cf6cc2f8'u64 ) ] )
, ( 48 , [ toF( 0x2963243d8ac76a24'u64 ), toF( 0xf74bb0becfda0186'u64 ), toF( 0x672f14af76c394e9'u64 ), toF( 0xf135be25637fd14e'u64 ) ] )
, ( 49 , [ toF( 0xe3ab1d7cfbd8b6ab'u64 ), toF( 0x1260a4d4b9e96a7b'u64 ), toF( 0x5dc2ce6f685a4614'u64 ), toF( 0x3cdd539c9e5adb61'u64 ) ] )
, ( 50 , [ toF( 0xe2d07f67c994bdd0'u64 ), toF( 0xb75d6f62fb1cd216'u64 ), toF( 0x9197fd080af129ac'u64 ), toF( 0xe2cd5e9be597c823'u64 ) ] )
, ( 51 , [ toF( 0xdb022335f0813f20'u64 ), toF( 0x3ade35850748ab01'u64 ), toF( 0xa1275dfd9facb0c5'u64 ), toF( 0xe17ac24ebc519817'u64 ) ] )
, ( 52 , [ toF( 0xd20294bc85991bac'u64 ), toF( 0x2bd5a5953c698fd5'u64 ), toF( 0xefd6145933bd0405'u64 ), toF( 0x8b4758365746c751'u64 ) ] )
, ( 53 , [ toF( 0x4c9383a9603a33e2'u64 ), toF( 0x88722cfc23174349'u64 ), toF( 0x096553795f804b7f'u64 ), toF( 0x97fb01a6e2127f7c'u64 ) ] )
, ( 54 , [ toF( 0x890f2aeb7ba95e45'u64 ), toF( 0x0092c3812ea5bd78'u64 ), toF( 0xf093ac6b2fa56ba3'u64 ), toF( 0x4089080b93437bb2'u64 ) ] )
, ( 55 , [ toF( 0xcfa90c6b545598c0'u64 ), toF( 0xd96e633cc00bb34c'u64 ), toF( 0x23c80f2b31bb0fa9'u64 ), toF( 0x12c8e579e1bb6636'u64 ) ] )
, ( 56 , [ toF( 0xbb03159d5a129338'u64 ), toF( 0x7b6ed1aa634698f8'u64 ), toF( 0x85dac87730c06880'u64 ), toF( 0x7f002306170871de'u64 ) ] )
, ( 57 , [ toF( 0x54bc62d8bf311a6f'u64 ), toF( 0xeefb8e49f7dac137'u64 ), toF( 0x7480a463ff5a95cf'u64 ), toF( 0xb1064f38f498bbfd'u64 ) ] )
, ( 58 , [ toF( 0x5b025ef986ad3883'u64 ), toF( 0x84a1caf4eafa1ba8'u64 ), toF( 0x59a8e0e902d16f9b'u64 ), toF( 0xe9343b07b5bffb43'u64 ) ] )
, ( 59 , [ toF( 0x5037e3c21b65771d'u64 ), toF( 0xc4691ecc3df732db'u64 ), toF( 0xacfcf0e0c3dfcf97'u64 ), toF( 0xb18bbb548ce755be'u64 ) ] )
, ( 60 , [ toF( 0x34b4b853a8906933'u64 ), toF( 0xb4ec067502b44042'u64 ), toF( 0x1aed18b39426d6a6'u64 ), toF( 0x98c295ac6e08c738'u64 ) ] )
, ( 61 , [ toF( 0x6f7df4974ce8baff'u64 ), toF( 0xd9986dbe5b9347b0'u64 ), toF( 0x2074314cb3c21930'u64 ), toF( 0x28ecff2982a30688'u64 ) ] )
, ( 62 , [ toF( 0x8e5a03a855de0a70'u64 ), toF( 0x58fad156c15532a5'u64 ), toF( 0x132fa3cda531e262'u64 ), toF( 0x492b93a8b5ee3090'u64 ) ] )
, ( 63 , [ toF( 0x5c04699d243ff2a5'u64 ), toF( 0x3500d6c4e9ac8f65'u64 ), toF( 0x68b1f2937c9f09fa'u64 ), toF( 0xc416cba54e3b4d24'u64 ) ] )
, ( 64 , [ toF( 0x8dbefdea90f32fe4'u64 ), toF( 0x726a9e72bb4cf908'u64 ), toF( 0x2316987f827b372d'u64 ), toF( 0xf5ed28c2e421148f'u64 ) ] )
, ( 65 , [ toF( 0x4a4b35a6aee4ba26'u64 ), toF( 0x4c356ba8f10401d1'u64 ), toF( 0xe757d9a91069e5e0'u64 ), toF( 0xb0bc7c20cdc50dad'u64 ) ] )
, ( 66 , [ toF( 0xfbb6799cd631ccc5'u64 ), toF( 0x400891ca21726745'u64 ), toF( 0x42dd4bc0e7bef3e2'u64 ), toF( 0x0350c0ae06bf5f42'u64 ) ] )
, ( 67 , [ toF( 0x634f55ca2c0b36d2'u64 ), toF( 0x1868226fca4b67aa'u64 ), toF( 0x53885477a1ce1d63'u64 ), toF( 0x8967c8a757b59395'u64 ) ] )
, ( 68 , [ toF( 0xeebab7c9eb86c20a'u64 ), toF( 0xf934e7f6993593e9'u64 ), toF( 0x689f5d39089c33e0'u64 ), toF( 0xbe741fccccb7f89a'u64 ) ] )
, ( 69 , [ toF( 0x1a4e3923e7ac9939'u64 ), toF( 0x4283fe9f3722f845'u64 ), toF( 0x4f5c5b89041fdf0f'u64 ), toF( 0xe84d41294ccef213'u64 ) ] )
, ( 70 , [ toF( 0x619fdee02658c289'u64 ), toF( 0xd4cceaf293fb7889'u64 ), toF( 0x72d557fb7f6747e2'u64 ), toF( 0xfb1b4ac42b4bb7e1'u64 ) ] )
, ( 71 , [ toF( 0x9a70da770ae96ab6'u64 ), toF( 0x8e826970ebe214a6'u64 ), toF( 0x63c07b5695fb0fff'u64 ), toF( 0x2b613dd5a43952ad'u64 ) ] )
, ( 72 , [ toF( 0xcc71bc4b98672d5f'u64 ), toF( 0xd549ea1fa05faf6c'u64 ), toF( 0xd2f53fb6d09ecec4'u64 ), toF( 0x8eb77f5d3b6f4d8e'u64 ) ] )
, ( 73 , [ toF( 0xb1e641721be1227c'u64 ), toF( 0xcb3570ce815227c8'u64 ), toF( 0x43c3e049f10f998a'u64 ), toF( 0x2ab601a393e9ad4e'u64 ) ] )
, ( 74 , [ toF( 0xeac9d366c8e4c28a'u64 ), toF( 0x44ec11b45be4bbf5'u64 ), toF( 0x931562e9a5e01e82'u64 ), toF( 0xfb97e2bb293b398e'u64 ) ] )
, ( 75 , [ toF( 0xcad260bd2efd913a'u64 ), toF( 0x8b57eff87e020917'u64 ), toF( 0x5a9ae5b6e4b12065'u64 ), toF( 0x6683a4c80f1f71d0'u64 ) ] )
, ( 76 , [ toF( 0x4fcf1051db188ce8'u64 ), toF( 0x1dd3994e5fdd8ba8'u64 ), toF( 0x36660aa9897b22d0'u64 ), toF( 0xcc49b8ba7cf43ced'u64 ) ] )
, ( 77 , [ toF( 0x701d0d4223a5e6f0'u64 ), toF( 0xfb9b9f14d0dd0fcc'u64 ), toF( 0x181f620db96b2a40'u64 ), toF( 0xa12443a936cdeb75'u64 ) ] )
, ( 78 , [ toF( 0x98864ab249ef87b1'u64 ), toF( 0x9278fcb88c0e392a'u64 ), toF( 0x265fdd190b350ec1'u64 ), toF( 0x2e8fc6e26401b19f'u64 ) ] )
, ( 79 , [ toF( 0xe854430adf30f27b'u64 ), toF( 0xeab6ec772065d9e3'u64 ), toF( 0x7f2ab87407561be5'u64 ), toF( 0xa93d8a4622a9891c'u64 ) ] )
, ( 80 , [ toF( 0x1b656309c569f160'u64 ), toF( 0xe3116e8f15995d9a'u64 ), toF( 0xf9b3e7623028c203'u64 ), toF( 0x079f70f314b4939b'u64 ) ] )
]
const testcases_field_rate4* : array[81, tuple[n:int,digest:F4]] =
[ ( 0 , [ toF( 0xfc378f587bb7c7d8'u64 ), toF( 0xc7e891254b7bab35'u64 ), toF( 0x80ba2f1598f77487'u64 ), toF( 0x8a9637b6e691eabb'u64 ) ] )
, ( 1 , [ toF( 0x7286a9ec2c028b3a'u64 ), toF( 0xac8b1155d7d258ff'u64 ), toF( 0x293eaea0e45db483'u64 ), toF( 0x881ec7979a18e431'u64 ) ] )
, ( 2 , [ toF( 0xbaa3e6f521c4a27d'u64 ), toF( 0xf9cf9183d32bae3d'u64 ), toF( 0xd4be1ecbc14aabaa'u64 ), toF( 0xbdee51db15ba9001'u64 ) ] )
, ( 3 , [ toF( 0x393b56ca40ddf5c5'u64 ), toF( 0xe8c10d09f6b9f0fd'u64 ), toF( 0x081208628bf1bd72'u64 ), toF( 0xd93ee325872a2bc0'u64 ) ] )
, ( 4 , [ toF( 0x5f70672c0c99f1fa'u64 ), toF( 0x51c53f2a0f0f8403'u64 ), toF( 0x65b7776e7fc2bacd'u64 ), toF( 0xa3f3cd9729c82dd6'u64 ) ] )
, ( 5 , [ toF( 0xc1ab58dea5d7f2bb'u64 ), toF( 0x68c7fab45a35fd11'u64 ), toF( 0x668c97da4cbd0943'u64 ), toF( 0x0740aa6f1d7c39c7'u64 ) ] )
, ( 6 , [ toF( 0x37b5785ab8fe58c2'u64 ), toF( 0xc6eef04353f81314'u64 ), toF( 0xe57f9c3e54de67a7'u64 ), toF( 0x780c1c2c780381f3'u64 ) ] )
, ( 7 , [ toF( 0x914277ea1ab9d59a'u64 ), toF( 0xebaef8834464fd70'u64 ), toF( 0x707fe78994c07ee3'u64 ), toF( 0xf167fb469bc0a077'u64 ) ] )
, ( 8 , [ toF( 0x6edae3b07112b6b8'u64 ), toF( 0x449370f2aa4672e8'u64 ), toF( 0x493f391ab2cbc41f'u64 ), toF( 0x01883b107b896161'u64 ) ] )
, ( 9 , [ toF( 0x65fda4bf50d3a5a9'u64 ), toF( 0xd3d04a18970de3ff'u64 ), toF( 0x4d6aa99f6d3bda43'u64 ), toF( 0x7935631e735254fa'u64 ) ] )
, ( 10 , [ toF( 0x78625d4b4dadd6b7'u64 ), toF( 0x50d0f748dd8a7b06'u64 ), toF( 0x07601b68a7d50437'u64 ), toF( 0x9ef0c39873484e6a'u64 ) ] )
, ( 11 , [ toF( 0x494172747b9ca962'u64 ), toF( 0xd47e0204c7411fc5'u64 ), toF( 0xcb6838b701e10d96'u64 ), toF( 0x975ceb6bc53d4755'u64 ) ] )
, ( 12 , [ toF( 0x0e030487fa02fd00'u64 ), toF( 0x1e41041a6ff6430c'u64 ), toF( 0x914603bf9876bee9'u64 ), toF( 0xa9eb479a66ba483b'u64 ) ] )
, ( 13 , [ toF( 0xe43a551951408e3b'u64 ), toF( 0x8d73a31917a312ea'u64 ), toF( 0x23759efb84d60b92'u64 ), toF( 0x289b3b31b66ab2c7'u64 ) ] )
, ( 14 , [ toF( 0x74ecce822615cc16'u64 ), toF( 0xa68420569bde516f'u64 ), toF( 0xc16019f33cb2da8c'u64 ), toF( 0xc7809a1bc1a2d62d'u64 ) ] )
, ( 15 , [ toF( 0xd1917cb44473f6d2'u64 ), toF( 0xe5ceb96d1f4d0e77'u64 ), toF( 0x05b4fc08b1734eaf'u64 ), toF( 0x4fb118bf5de0eadf'u64 ) ] )
, ( 16 , [ toF( 0xcc85c58adb70baa8'u64 ), toF( 0xcde4e21732cfa17b'u64 ), toF( 0x44ef0d338087075c'u64 ), toF( 0xba6362a627b465a1'u64 ) ] )
, ( 17 , [ toF( 0x736b2ad37c3b460b'u64 ), toF( 0x964f6d68ae41f34c'u64 ), toF( 0xed2493d667ac3089'u64 ), toF( 0x6c3f5798c38981fb'u64 ) ] )
, ( 18 , [ toF( 0x45a13e030f348128'u64 ), toF( 0xb219572e88c8600f'u64 ), toF( 0x86d1110f2accfda0'u64 ), toF( 0x699a08fb7c8011b2'u64 ) ] )
, ( 19 , [ toF( 0xc511b30e0aae0b2b'u64 ), toF( 0xee88dfcca610e1d2'u64 ), toF( 0xefb9b68dc9a2f3e9'u64 ), toF( 0x17d3f02e7f097a8f'u64 ) ] )
, ( 20 , [ toF( 0x33dc9318be33cc08'u64 ), toF( 0x93b7074abb6bf439'u64 ), toF( 0xeaa5d33d9c85b7d6'u64 ), toF( 0x00f6df9443c427f0'u64 ) ] )
, ( 21 , [ toF( 0x60718c081c0abf9c'u64 ), toF( 0xbe6097ae19bf10a9'u64 ), toF( 0x140b11b28fd2595a'u64 ), toF( 0xca2ffd50d965e21e'u64 ) ] )
, ( 22 , [ toF( 0x33d75c3e68fc43d0'u64 ), toF( 0xca3f65d7a99e58af'u64 ), toF( 0x227d0c7eea42c0cf'u64 ), toF( 0xdf3bebbf2eab2f0c'u64 ) ] )
, ( 23 , [ toF( 0x8b5be8c5c9614f58'u64 ), toF( 0x9c4fc4fa6e0a60fd'u64 ), toF( 0x34434360dd62079e'u64 ), toF( 0xf2d11af7b2737406'u64 ) ] )
, ( 24 , [ toF( 0xd61ec1662fad3c19'u64 ), toF( 0xa13b89a413810f34'u64 ), toF( 0xd4b5bd0581afdf85'u64 ), toF( 0x280955d3dab28e90'u64 ) ] )
, ( 25 , [ toF( 0xfec8c8bffede7eb2'u64 ), toF( 0x77c5d97a47e6a41e'u64 ), toF( 0x3304c08caeeb378c'u64 ), toF( 0xae9feaeff1525698'u64 ) ] )
, ( 26 , [ toF( 0x47e9934605880d24'u64 ), toF( 0x9e1fa50d10ba933c'u64 ), toF( 0x56184c3c1678af4e'u64 ), toF( 0x950b792bfafdea97'u64 ) ] )
, ( 27 , [ toF( 0x509a23c91d428851'u64 ), toF( 0xe3e7f51f1b03b81a'u64 ), toF( 0xc914cbda832bd150'u64 ), toF( 0xbe5453f79b5b96c5'u64 ) ] )
, ( 28 , [ toF( 0x9edf4b10c0a8d6d9'u64 ), toF( 0x5c1d4ec7b4eeed2b'u64 ), toF( 0xec4342a4b2213732'u64 ), toF( 0xb0a75a994b5743e5'u64 ) ] )
, ( 29 , [ toF( 0x8267cc4f9dd21ea4'u64 ), toF( 0x1869a7405ad3ea71'u64 ), toF( 0x0ee93e247319d853'u64 ), toF( 0x12a68202fc2e8ee3'u64 ) ] )
, ( 30 , [ toF( 0x3bc39ca3cca471e6'u64 ), toF( 0x23f90cbb82265438'u64 ), toF( 0x9fe8c2aa0f61f7d0'u64 ), toF( 0x8a9401a11a56a73e'u64 ) ] )
, ( 31 , [ toF( 0x23a4e470d52ee3f8'u64 ), toF( 0x08b4417fa9d65601'u64 ), toF( 0x8679367858b4425e'u64 ), toF( 0x18f85601671b51d9'u64 ) ] )
, ( 32 , [ toF( 0xb6bb13c9f04468e4'u64 ), toF( 0x24977ac24bed555a'u64 ), toF( 0xaf401e51d334e9a8'u64 ), toF( 0xeebdc8d72db8a4c3'u64 ) ] )
, ( 33 , [ toF( 0x4d6e84b46c5f957a'u64 ), toF( 0x75d201af5ad9ce14'u64 ), toF( 0x269e1a7e13f9b7d3'u64 ), toF( 0x177e80dfe7de9792'u64 ) ] )
, ( 34 , [ toF( 0x9993a38c034f1d33'u64 ), toF( 0xb70fa0a355beb154'u64 ), toF( 0x3f1077fe4545f982'u64 ), toF( 0x445968046fe4ef1f'u64 ) ] )
, ( 35 , [ toF( 0x7e94c9c754611988'u64 ), toF( 0xd6d52069896f1480'u64 ), toF( 0xf4bda5f959ad0343'u64 ), toF( 0x6443018222c7b39d'u64 ) ] )
, ( 36 , [ toF( 0x59f7696fea918188'u64 ), toF( 0xd7b5d5e135754aed'u64 ), toF( 0x14901da7c32a485e'u64 ), toF( 0xfa5f753b591469a2'u64 ) ] )
, ( 37 , [ toF( 0x9d28a06b230b939a'u64 ), toF( 0x5a3f23771be1a8e5'u64 ), toF( 0xba516628b737f8b2'u64 ), toF( 0xef68a3302abfcb8f'u64 ) ] )
, ( 38 , [ toF( 0xb6d7c3bd70e8bf84'u64 ), toF( 0x20ef28d34abd5859'u64 ), toF( 0xd8ae082c9577374e'u64 ), toF( 0x73e40a8058ef8487'u64 ) ] )
, ( 39 , [ toF( 0x27767fd0f9ca0502'u64 ), toF( 0x3e2f304291b8f3bf'u64 ), toF( 0xab4e79b3927ca0b0'u64 ), toF( 0x2c6acd72b503aac5'u64 ) ] )
, ( 40 , [ toF( 0x828fd4ce7bd898e3'u64 ), toF( 0x8abcff3e9ab23e0c'u64 ), toF( 0xd9cd4c03a8c77c9f'u64 ), toF( 0x906c3bf87bd4e07d'u64 ) ] )
, ( 41 , [ toF( 0x6e1e44f496f89d16'u64 ), toF( 0xc2c3b0713900f3b5'u64 ), toF( 0x924cd50f45619b96'u64 ), toF( 0xfdabc5b50c727981'u64 ) ] )
, ( 42 , [ toF( 0x7d63afc2e7758193'u64 ), toF( 0x9d84764b4c434903'u64 ), toF( 0x3b71abc3d5ceb134'u64 ), toF( 0x2431e7a0ff8918c7'u64 ) ] )
, ( 43 , [ toF( 0x183d71aefa1e91a4'u64 ), toF( 0x14bffd043cdd8151'u64 ), toF( 0xbd8c9da3fc2eb918'u64 ), toF( 0xf108f546cc55af7c'u64 ) ] )
, ( 44 , [ toF( 0x755d1a5699a9b766'u64 ), toF( 0x6f6fb3a361d4fc45'u64 ), toF( 0x744fc1511acfef45'u64 ), toF( 0xff69ffc69155897a'u64 ) ] )
, ( 45 , [ toF( 0xf87904e725ccc97c'u64 ), toF( 0xdd169fd8f06685dd'u64 ), toF( 0x4034b8f42bdc1296'u64 ), toF( 0x52cb84822c2087a1'u64 ) ] )
, ( 46 , [ toF( 0xd6d1011335436840'u64 ), toF( 0x248d8419200b59a8'u64 ), toF( 0x4d625f37d4accdb4'u64 ), toF( 0x339e5452439c11ac'u64 ) ] )
, ( 47 , [ toF( 0xa8457b78e8c52b36'u64 ), toF( 0x9a7050c976609861'u64 ), toF( 0xb86797f16f5cfd55'u64 ), toF( 0xf3ab33d2cf84bec0'u64 ) ] )
, ( 48 , [ toF( 0x69b0e6662e1b384c'u64 ), toF( 0x0bd35b2540c9bcd1'u64 ), toF( 0x04a14e3e72086a57'u64 ), toF( 0x42fcafefa791a615'u64 ) ] )
, ( 49 , [ toF( 0x8e7b9dc9fd2b2f30'u64 ), toF( 0x495588ebba5e854d'u64 ), toF( 0xe2a22ee301828e97'u64 ), toF( 0x546132fe86a73def'u64 ) ] )
, ( 50 , [ toF( 0x1ce42611940397b7'u64 ), toF( 0x7c804253eeca4378'u64 ), toF( 0xf1125c13dc7611f9'u64 ), toF( 0xe82aebb24e186a8e'u64 ) ] )
, ( 51 , [ toF( 0xbc8b413d3f29214a'u64 ), toF( 0x74b72146fb751405'u64 ), toF( 0xc15f27cf96ad4527'u64 ), toF( 0x7cb05a48ea623e3c'u64 ) ] )
, ( 52 , [ toF( 0x4a411b94b2c4d48b'u64 ), toF( 0x22980062ea81821d'u64 ), toF( 0x461ed447e7a20f32'u64 ), toF( 0x04f82cc80ee3e736'u64 ) ] )
, ( 53 , [ toF( 0x97d0fffe05c92b41'u64 ), toF( 0x7e4cb8fb8d43ce87'u64 ), toF( 0x7551cebaec2ab4db'u64 ), toF( 0x2cd0327c9b07e3ce'u64 ) ] )
, ( 54 , [ toF( 0x76aa731bec379689'u64 ), toF( 0x6c23598b90cceb96'u64 ), toF( 0xc1749ed47c041a22'u64 ), toF( 0x55b73085f50dc463'u64 ) ] )
, ( 55 , [ toF( 0x24c2fbb52552621d'u64 ), toF( 0x8beab3cba1058919'u64 ), toF( 0x15eb8ba4124a34f2'u64 ), toF( 0x953ea87062938355'u64 ) ] )
, ( 56 , [ toF( 0x926ebf106e92931f'u64 ), toF( 0xa50b35934609daad'u64 ), toF( 0xb925996fad535e50'u64 ), toF( 0x18ba1db8fe6d0f99'u64 ) ] )
, ( 57 , [ toF( 0x40ec4357cbdfa00d'u64 ), toF( 0x2e177ba230615ddd'u64 ), toF( 0x121ae09293143a89'u64 ), toF( 0xb5bad333be5f72d3'u64 ) ] )
, ( 58 , [ toF( 0xf91794cfbd3581cb'u64 ), toF( 0xa282f046f89353fe'u64 ), toF( 0x227deabb97b40116'u64 ), toF( 0xab609eaecea8dcee'u64 ) ] )
, ( 59 , [ toF( 0x9227ff3319450f56'u64 ), toF( 0xc8f96a04c0dc8648'u64 ), toF( 0x95889c83bc930615'u64 ), toF( 0xaaf6297b750f0af0'u64 ) ] )
, ( 60 , [ toF( 0xcf2b68900686fd55'u64 ), toF( 0xe62fe7c357181e6b'u64 ), toF( 0xe3e7fa63251dba61'u64 ), toF( 0xd788d26abc9cb7e8'u64 ) ] )
, ( 61 , [ toF( 0xa9311632af7a2785'u64 ), toF( 0x45aa1a9b730786eb'u64 ), toF( 0x90b1a63cf1141a24'u64 ), toF( 0x3d3882f122f45e36'u64 ) ] )
, ( 62 , [ toF( 0xa9bafd5bd27a4fe8'u64 ), toF( 0x81c571e3df96e404'u64 ), toF( 0x6ca9fe33244b3b0f'u64 ), toF( 0xa73b42213f1d073a'u64 ) ] )
, ( 63 , [ toF( 0x4121c16c6d3b0ec4'u64 ), toF( 0xa3d4825996a58220'u64 ), toF( 0x1aeb2b05c4dce6dd'u64 ), toF( 0x03fb87c24137ea1e'u64 ) ] )
, ( 64 , [ toF( 0x032c500547037541'u64 ), toF( 0x2b45907180204984'u64 ), toF( 0xe10ff8cc85169acc'u64 ), toF( 0xedb9c76b5afbfe73'u64 ) ] )
, ( 65 , [ toF( 0x56c9e5f23c1abf36'u64 ), toF( 0xbb13c0d736bb6f13'u64 ), toF( 0xd3a2551343b5191a'u64 ), toF( 0xd7bea7f750915d84'u64 ) ] )
, ( 66 , [ toF( 0xb197a41fe3ac7440'u64 ), toF( 0x255e25841b5263dc'u64 ), toF( 0xc4f145f925f084d6'u64 ), toF( 0x7f8c6d3ee4f6b539'u64 ) ] )
, ( 67 , [ toF( 0x3922185cc3e7ce8e'u64 ), toF( 0x24493a49e5301bd2'u64 ), toF( 0x4988cd3082c6b921'u64 ), toF( 0xa6243a01a1db4d57'u64 ) ] )
, ( 68 , [ toF( 0x2d592e7cb32d5da6'u64 ), toF( 0x464fcb7a58ae012e'u64 ), toF( 0xc4b55519acfca766'u64 ), toF( 0x1e369cad3e49be12'u64 ) ] )
, ( 69 , [ toF( 0x4580caf1511189ad'u64 ), toF( 0x00ab5e2694199d01'u64 ), toF( 0xf90d19d91f6f1c26'u64 ), toF( 0x3d27c3886e955284'u64 ) ] )
, ( 70 , [ toF( 0xa2112a37e89e0b85'u64 ), toF( 0xf8dde787f4e80073'u64 ), toF( 0x2ed973fbc0d204e7'u64 ), toF( 0xea110d04b131ce84'u64 ) ] )
, ( 71 , [ toF( 0x267d3634d7a30228'u64 ), toF( 0x95e6b1d4f275f87a'u64 ), toF( 0x5e331101b0d08a72'u64 ), toF( 0x17832cfe72f4a297'u64 ) ] )
, ( 72 , [ toF( 0x37f7e1b9c8d7c3b8'u64 ), toF( 0x627e5423302dabe9'u64 ), toF( 0x71b71b406bb82484'u64 ), toF( 0x8fe8e2ed7fff583c'u64 ) ] )
, ( 73 , [ toF( 0x7bbbd066c55a240b'u64 ), toF( 0x56910a9657664a0c'u64 ), toF( 0xeae427295209067c'u64 ), toF( 0x1ff38ad5be48d82e'u64 ) ] )
, ( 74 , [ toF( 0x063c94908682006f'u64 ), toF( 0x025d01b1be742b30'u64 ), toF( 0xff63ff5535d2e343'u64 ), toF( 0xdb40494111c2738b'u64 ) ] )
, ( 75 , [ toF( 0xc3de1cb6df47a411'u64 ), toF( 0x2b7b0e5866361472'u64 ), toF( 0xe5746538fe1482dc'u64 ), toF( 0x75402a99cd6f239f'u64 ) ] )
, ( 76 , [ toF( 0x2a943a4b4348fddf'u64 ), toF( 0x5b469e6f18543785'u64 ), toF( 0xb134c1b66f563e02'u64 ), toF( 0x586426f54fce571c'u64 ) ] )
, ( 77 , [ toF( 0x228e045ae2e3dfd3'u64 ), toF( 0x4efc4e70612593c4'u64 ), toF( 0xb588c668f208db12'u64 ), toF( 0x71c5ba9b43db1ec4'u64 ) ] )
, ( 78 , [ toF( 0xc830e14e8f8b3654'u64 ), toF( 0x4c1fbe3bd5356598'u64 ), toF( 0x350c0eb466c753e5'u64 ), toF( 0x72c27959ecefbd93'u64 ) ] )
, ( 79 , [ toF( 0xff6adf2719f6fc5b'u64 ), toF( 0xf6deff93d55999c0'u64 ), toF( 0x4a01c9675475450f'u64 ), toF( 0x63dafedacfdf9d2d'u64 ) ] )
, ( 80 , [ toF( 0x8f55e6112b10f2c2'u64 ), toF( 0xee1b97d8aba4d938'u64 ), toF( 0x4441d6607da6916b'u64 ), toF( 0x708494a3fb509679'u64 ) ] )
]
const testcases_field_rate5* : array[81, tuple[n:int,digest:F4]] =
[ ( 0 , [ toF( 0x13b657b01b7024a9'u64 ), toF( 0xf5eafeb1032bc843'u64 ), toF( 0xa7bf0a6d477a64d6'u64 ), toF( 0xa9d32c7d604d026c'u64 ) ] )
, ( 1 , [ toF( 0xb38f221d01af5d9a'u64 ), toF( 0x06d854a8d60187de'u64 ), toF( 0x13c6e162c39d10b6'u64 ), toF( 0xcd34793923d00067'u64 ) ] )
, ( 2 , [ toF( 0x63df8b64005392ce'u64 ), toF( 0x60e78a87a6461bea'u64 ), toF( 0x58afa6859d2aa3d1'u64 ), toF( 0x00f936ea309891de'u64 ) ] )
, ( 3 , [ toF( 0xb28e7580c7dadf32'u64 ), toF( 0x87661963c2cdcb6c'u64 ), toF( 0x2427881c37700ed3'u64 ), toF( 0xd83c596ea6a61348'u64 ) ] )
, ( 4 , [ toF( 0x7339d35670442ada'u64 ), toF( 0xb5e25a305e3b5ef1'u64 ), toF( 0xdd8d09216882c0fc'u64 ), toF( 0x54bc38082f3f20bc'u64 ) ] )
, ( 5 , [ toF( 0x9bf09b4018fbf6bc'u64 ), toF( 0xf3b7647cad8c7bbe'u64 ), toF( 0x876f82a10b20817b'u64 ), toF( 0x7971720624b172ef'u64 ) ] )
, ( 6 , [ toF( 0x1b8c456e7df1ce6c'u64 ), toF( 0x87fbb912c7b4f638'u64 ), toF( 0x02afb52bd9466e36'u64 ), toF( 0x08d6b402982c8b31'u64 ) ] )
, ( 7 , [ toF( 0xdaf0ae55883f16d4'u64 ), toF( 0xa0206c8a24152095'u64 ), toF( 0xf7d4fefba5cb9342'u64 ), toF( 0xfa0626f94bc172f5'u64 ) ] )
, ( 8 , [ toF( 0x0ee4e62434bf72c3'u64 ), toF( 0xd0f0d4a3abde016e'u64 ), toF( 0x54d017fc3821f2b8'u64 ), toF( 0x0ded44e8b24e1ee0'u64 ) ] )
, ( 9 , [ toF( 0xc7d63f03cf106866'u64 ), toF( 0x771d19d40cfa35b8'u64 ), toF( 0x7a711cc43e888de3'u64 ), toF( 0xef21d747ddddc3e0'u64 ) ] )
, ( 10 , [ toF( 0x2e47732a562e5450'u64 ), toF( 0xa5bbc29b19152e36'u64 ), toF( 0x0490b0a0c0115500'u64 ), toF( 0xc9582f3bf2505164'u64 ) ] )
, ( 11 , [ toF( 0x8d2d74e0842d5425'u64 ), toF( 0xc070bccd7e2154da'u64 ), toF( 0xbbbc04cba6353e05'u64 ), toF( 0xf2025ffcc6f680bc'u64 ) ] )
, ( 12 , [ toF( 0xea48039ca34379d3'u64 ), toF( 0x00b3780cd0008d1d'u64 ), toF( 0xa1f02706ce5fbbdb'u64 ), toF( 0x76646d5269c869ff'u64 ) ] )
, ( 13 , [ toF( 0xc7bbbcb437037037'u64 ), toF( 0x229c022252c2344e'u64 ), toF( 0x0c541b43edcdf0cd'u64 ), toF( 0xca152a83292c3307'u64 ) ] )
, ( 14 , [ toF( 0xb028d3f6d908c247'u64 ), toF( 0xb0ef1afe7a3a6642'u64 ), toF( 0x65e34d1afbfb6128'u64 ), toF( 0x31df6c70e2561113'u64 ) ] )
, ( 15 , [ toF( 0x23ec75c51fe4ab61'u64 ), toF( 0x13f0c56cc2bf331c'u64 ), toF( 0x2043ac3ee93e106f'u64 ), toF( 0xd9b84c9d0fe4f6b6'u64 ) ] )
, ( 16 , [ toF( 0x615f9cb4c9fbf3e6'u64 ), toF( 0xc67aaf9e11776fc5'u64 ), toF( 0x2cdfcfe28b7c4f59'u64 ), toF( 0x3c854097836bdc5e'u64 ) ] )
, ( 17 , [ toF( 0x3085dfcb6c5066ee'u64 ), toF( 0x2d85a111c1271b21'u64 ), toF( 0x71677e6ecd63c31a'u64 ), toF( 0xaa096ca46158224d'u64 ) ] )
, ( 18 , [ toF( 0x8c7eac8e83150b27'u64 ), toF( 0x9fef837854d30f48'u64 ), toF( 0x31efc9f3f70f780a'u64 ), toF( 0xa303eae15be5cf34'u64 ) ] )
, ( 19 , [ toF( 0x226594dee5a3cc36'u64 ), toF( 0xb66a3591382e3f3c'u64 ), toF( 0x9d14bbeda1f130b8'u64 ), toF( 0x7c87ad303432c8e4'u64 ) ] )
, ( 20 , [ toF( 0xbd0d5cdb7a2e6894'u64 ), toF( 0x2d222b2ab2c0295d'u64 ), toF( 0x5ce67f80fa99980e'u64 ), toF( 0xf35b3a7a3d83e238'u64 ) ] )
, ( 21 , [ toF( 0xc08ae78e2bb38b61'u64 ), toF( 0xe6cdb138390b5574'u64 ), toF( 0x9eb6737c6b8de888'u64 ), toF( 0xe5f8b5021ea2f573'u64 ) ] )
, ( 22 , [ toF( 0x23e1ac82de6daaa4'u64 ), toF( 0x09c6754a8a62d748'u64 ), toF( 0xccc32212626b5586'u64 ), toF( 0x0216f2ceddb44146'u64 ) ] )
, ( 23 , [ toF( 0x4ddfa37fa6613bf1'u64 ), toF( 0xc6d57647e6277a38'u64 ), toF( 0x24018548258a72db'u64 ), toF( 0xe1ed6c71f0e8f23b'u64 ) ] )
, ( 24 , [ toF( 0x5e0926d9c0718b39'u64 ), toF( 0x4d9e2b33a224daaa'u64 ), toF( 0xae2fb5bca44dd787'u64 ), toF( 0x385f2cba480cfe8c'u64 ) ] )
, ( 25 , [ toF( 0xadc89b88ef13883f'u64 ), toF( 0xa8894dc3d8515ad9'u64 ), toF( 0x7b18f9fd328ca944'u64 ), toF( 0x15b2ed7c00f09c54'u64 ) ] )
, ( 26 , [ toF( 0x5eb43a5abb48c365'u64 ), toF( 0x26baff5aa9304791'u64 ), toF( 0x1fbf353c83e69715'u64 ), toF( 0xebb23badaa82574f'u64 ) ] )
, ( 27 , [ toF( 0xb0dc65684f5f3daa'u64 ), toF( 0x3a84341680c0c21b'u64 ), toF( 0x769ce5c1764dea42'u64 ), toF( 0x6a1eacdb573f6a4d'u64 ) ] )
, ( 28 , [ toF( 0x0e626622a9e77ab1'u64 ), toF( 0x41b5bf3d50a6e744'u64 ), toF( 0xb400171abe593b45'u64 ), toF( 0x4f667474a34f3d3a'u64 ) ] )
, ( 29 , [ toF( 0x6f37ee367f8b3c47'u64 ), toF( 0x606371f7e493750e'u64 ), toF( 0xae1e7cd5534831ee'u64 ), toF( 0x888b76cbbb1f43c3'u64 ) ] )
, ( 30 , [ toF( 0x4fcd80234101e6da'u64 ), toF( 0xc64c076e95da2208'u64 ), toF( 0x9d10c8c16965c830'u64 ), toF( 0xd9f994785e866071'u64 ) ] )
, ( 31 , [ toF( 0xf5219c5a0fa24d70'u64 ), toF( 0x825a1e5315761a3b'u64 ), toF( 0xbb13424c34d12304'u64 ), toF( 0x6e49278f08c7e8c7'u64 ) ] )
, ( 32 , [ toF( 0x75ab8307c0ba699f'u64 ), toF( 0x00c8792246031ec9'u64 ), toF( 0x86f476bbad937823'u64 ), toF( 0x7f72ff8dbb0d02b7'u64 ) ] )
, ( 33 , [ toF( 0xbaeb52e66acd1826'u64 ), toF( 0x7f4fab133b2f6909'u64 ), toF( 0xdf70104f35773ff8'u64 ), toF( 0xee7a0568dcd7cfe2'u64 ) ] )
, ( 34 , [ toF( 0x949366180f8ff7ab'u64 ), toF( 0xc25aa0669d452811'u64 ), toF( 0xeaf9c689b8ec9fd5'u64 ), toF( 0x9b72dcfa48e4d109'u64 ) ] )
, ( 35 , [ toF( 0xa5a729bbb2f7679d'u64 ), toF( 0x64990e7ac6ed2aa1'u64 ), toF( 0xc7a9fa81a62b8be7'u64 ), toF( 0x820e37cc9d5789e2'u64 ) ] )
, ( 36 , [ toF( 0xd41c02bd5703fb15'u64 ), toF( 0x377f631349d8c0c1'u64 ), toF( 0x598b1e14e618fd11'u64 ), toF( 0x224fa8a0d07518ee'u64 ) ] )
, ( 37 , [ toF( 0x4c89e2a79a572216'u64 ), toF( 0x9de24e2bf6548cb3'u64 ), toF( 0xe98d41dde0dfce0b'u64 ), toF( 0x3b05c0c86576b25b'u64 ) ] )
, ( 38 , [ toF( 0x95f37a60109a8633'u64 ), toF( 0x46500ec60f6f201c'u64 ), toF( 0x8e9041eb2175cde7'u64 ), toF( 0xba12761207ba6032'u64 ) ] )
, ( 39 , [ toF( 0xa757fd08ff4bca01'u64 ), toF( 0xae4adaaeedb0f9af'u64 ), toF( 0x72a831a520c7dd57'u64 ), toF( 0xc6dfa4a184074b66'u64 ) ] )
, ( 40 , [ toF( 0x21e11042bbfbace6'u64 ), toF( 0xf095d4e876da756a'u64 ), toF( 0x6228c9b05ff03974'u64 ), toF( 0x8dc0971b9a53ce63'u64 ) ] )
, ( 41 , [ toF( 0x6fbf24e84c1f18fc'u64 ), toF( 0x4916df0c62fa6edb'u64 ), toF( 0xfa0a7ef35e2268b0'u64 ), toF( 0xc9713129be44c0d3'u64 ) ] )
, ( 42 , [ toF( 0x27d6e87a41d46ce4'u64 ), toF( 0xe19a9132424d0077'u64 ), toF( 0xd9bebb21b99b7549'u64 ), toF( 0x857ed57a0386093f'u64 ) ] )
, ( 43 , [ toF( 0x047c8ea173d7d9c7'u64 ), toF( 0xbcd6beaa81ddc437'u64 ), toF( 0x71558b3f48008cf1'u64 ), toF( 0xbbddbd92fccdaa92'u64 ) ] )
, ( 44 , [ toF( 0xeea940fcd1841b97'u64 ), toF( 0xfc8fa252ab892788'u64 ), toF( 0x1e56abf0bf7734d5'u64 ), toF( 0xa0856110a6eed7f5'u64 ) ] )
, ( 45 , [ toF( 0x0ce1e4ac8aa74196'u64 ), toF( 0x13e08a37ede6cd1d'u64 ), toF( 0x8e7e1dafd3780c99'u64 ), toF( 0x78bb4206882f6226'u64 ) ] )
, ( 46 , [ toF( 0x5fc77cff88b04713'u64 ), toF( 0xdc0ce859f4f6d41d'u64 ), toF( 0xa7f7aa535f460e36'u64 ), toF( 0x09f90f14479b51bb'u64 ) ] )
, ( 47 , [ toF( 0x70833c026d825538'u64 ), toF( 0xf5d814e3bcf10b54'u64 ), toF( 0xd9782512ae6e69ec'u64 ), toF( 0x3d546eccd0e18096'u64 ) ] )
, ( 48 , [ toF( 0x73c03587008f55c5'u64 ), toF( 0x4c03d61d3a4acec5'u64 ), toF( 0x5f8e5857bd061436'u64 ), toF( 0x965e8b7a2338e8b9'u64 ) ] )
, ( 49 , [ toF( 0x790facbf4a590895'u64 ), toF( 0x6b63c2ba782120cf'u64 ), toF( 0x96b754d64a560a3c'u64 ), toF( 0xe8f1f9139dff3ca8'u64 ) ] )
, ( 50 , [ toF( 0x6ac7a89e1543732d'u64 ), toF( 0xea679f7ff48827e3'u64 ), toF( 0xed81e39f17869b88'u64 ), toF( 0xb836e5aab5e4295f'u64 ) ] )
, ( 51 , [ toF( 0x229cfaf89c2ce495'u64 ), toF( 0x9f2ff23746c727b3'u64 ), toF( 0x58b571c0be825bd6'u64 ), toF( 0x5435a52ad8870818'u64 ) ] )
, ( 52 , [ toF( 0xaa4d468e2338ea37'u64 ), toF( 0xb859593b435baab5'u64 ), toF( 0x53dc02b56b573e7b'u64 ), toF( 0x26c721503496688f'u64 ) ] )
, ( 53 , [ toF( 0xf2fb3823d0a82430'u64 ), toF( 0xeb45c81914ecd0ed'u64 ), toF( 0xdfa3e21fb9ba79f5'u64 ), toF( 0xc95e5f1c75f053ee'u64 ) ] )
, ( 54 , [ toF( 0xcea43f2d7616d76d'u64 ), toF( 0x4e64e617560ce321'u64 ), toF( 0x8fb0db11581774d6'u64 ), toF( 0xc02de0351d968650'u64 ) ] )
, ( 55 , [ toF( 0xa5d182fb751bfef2'u64 ), toF( 0x9cf4db7383e54812'u64 ), toF( 0xe76aeb26d6247085'u64 ), toF( 0xc2324ae3e496c150'u64 ) ] )
, ( 56 , [ toF( 0xeeb87bc19e884448'u64 ), toF( 0xae46be054eb1605d'u64 ), toF( 0x0a1fbf49c19df1f0'u64 ), toF( 0x7aa9848a1f0caa69'u64 ) ] )
, ( 57 , [ toF( 0x229cbffde90f7ee6'u64 ), toF( 0xc3f7fb9f11c26bec'u64 ), toF( 0x96445298b5a42220'u64 ), toF( 0xe04b91598e3b0c25'u64 ) ] )
, ( 58 , [ toF( 0xbef4be917ee0cb0a'u64 ), toF( 0xc64cd30b57a17313'u64 ), toF( 0x5c5e49b4918729b6'u64 ), toF( 0x00385f460831ce25'u64 ) ] )
, ( 59 , [ toF( 0x4c63a70e31e9e9ee'u64 ), toF( 0xe99c54153aee8889'u64 ), toF( 0x94fd4d543b4789f5'u64 ), toF( 0x1fb3f03fe173d4fd'u64 ) ] )
, ( 60 , [ toF( 0x5aad6fe5efa8881a'u64 ), toF( 0x9bf02200ce3e814d'u64 ), toF( 0xf8178205b7d975ca'u64 ), toF( 0x3b49a1b853690a80'u64 ) ] )
, ( 61 , [ toF( 0x21740bbe7576457a'u64 ), toF( 0xc7033351d92a47ea'u64 ), toF( 0x2a9b0a9fc2b3cb9d'u64 ), toF( 0xc234f84373e09dd1'u64 ) ] )
, ( 62 , [ toF( 0x2f14bfb752ed0b15'u64 ), toF( 0x87e75eb9ea24a695'u64 ), toF( 0x5cd242f9feba123d'u64 ), toF( 0x4fa546775f95a695'u64 ) ] )
, ( 63 , [ toF( 0x9a149d1b67eabef0'u64 ), toF( 0x164706d5304a0e6d'u64 ), toF( 0x6b18042386e0c1c1'u64 ), toF( 0x24c4298125466e78'u64 ) ] )
, ( 64 , [ toF( 0xc5da676dfb2dc045'u64 ), toF( 0x1453e0e243914d8b'u64 ), toF( 0x54476a5d3056c82a'u64 ), toF( 0x3d0d2159dde811bd'u64 ) ] )
, ( 65 , [ toF( 0x93ef488e805d7de8'u64 ), toF( 0x27f4872073facb35'u64 ), toF( 0x4f2494af9083b1c6'u64 ), toF( 0xa180fe968271095b'u64 ) ] )
, ( 66 , [ toF( 0xf177c8797b08d1bd'u64 ), toF( 0xdc692b7916f594cb'u64 ), toF( 0xac4877fbe1c507ed'u64 ), toF( 0x9cdbf5696d1207f5'u64 ) ] )
, ( 67 , [ toF( 0x43e8635e8aa4a49b'u64 ), toF( 0xd273b73c84b75659'u64 ), toF( 0x34c3ffcdfa5b1abf'u64 ), toF( 0x93b7bd984f10f9db'u64 ) ] )
, ( 68 , [ toF( 0xbc15a0434c9f088c'u64 ), toF( 0x0912d1f8b14b4df6'u64 ), toF( 0x49ac3e77cfe80037'u64 ), toF( 0xd6ae2b6499cfa3d7'u64 ) ] )
, ( 69 , [ toF( 0x31e9f19c551f62c0'u64 ), toF( 0x44d1ed3d8e02bc7a'u64 ), toF( 0x8257f95a0858d466'u64 ), toF( 0x843e94d9b5fcb434'u64 ) ] )
, ( 70 , [ toF( 0x2ebe7e19c840428c'u64 ), toF( 0xd9a81923a048f3a5'u64 ), toF( 0xf6255d4eaea649b2'u64 ), toF( 0xc8d9b1c24a4a3aab'u64 ) ] )
, ( 71 , [ toF( 0x8afbffc30f4441e1'u64 ), toF( 0x6231f858ac842caf'u64 ), toF( 0x551b89342f7d56a9'u64 ), toF( 0xa5b8947629655282'u64 ) ] )
, ( 72 , [ toF( 0x350b51b33c6054eb'u64 ), toF( 0xe2c084ff293c188b'u64 ), toF( 0x4a01f0b1d524b571'u64 ), toF( 0xfc89c680040f0934'u64 ) ] )
, ( 73 , [ toF( 0xdccbab2d09c9ab0e'u64 ), toF( 0x9ee3bef43bb04e5d'u64 ), toF( 0x44184640284760d2'u64 ), toF( 0xe17c27e9be42e259'u64 ) ] )
, ( 74 , [ toF( 0x6e9fc51bd586034f'u64 ), toF( 0xfaa4edf5156040fe'u64 ), toF( 0xa17c934c43524c1f'u64 ), toF( 0x86da36ba5dcbe6b8'u64 ) ] )
, ( 75 , [ toF( 0x25e5c7837a38b5d5'u64 ), toF( 0xcf12e767d8f3b600'u64 ), toF( 0x5f688f839a0644b1'u64 ), toF( 0xd2debcd95c9b832f'u64 ) ] )
, ( 76 , [ toF( 0x51ef242aff08d5f4'u64 ), toF( 0x95551fb359bded95'u64 ), toF( 0x734d2bf10a53bb61'u64 ), toF( 0x06305bca3c3e5a23'u64 ) ] )
, ( 77 , [ toF( 0xdf4932587f5fdb73'u64 ), toF( 0x025006bf66683cf1'u64 ), toF( 0xd28b8f2ea8cce4b9'u64 ), toF( 0x387af5235432ff17'u64 ) ] )
, ( 78 , [ toF( 0xe1b677235012aaa7'u64 ), toF( 0x305bc5e23576d500'u64 ), toF( 0xff67e54e34b876b4'u64 ), toF( 0xe1be8402d42e7013'u64 ) ] )
, ( 79 , [ toF( 0xe76929b3fed69b9a'u64 ), toF( 0xfe840ff5c7353c7a'u64 ), toF( 0xa5182757f7466d17'u64 ), toF( 0x08b25b2a6716b755'u64 ) ] )
, ( 80 , [ toF( 0xf22355c83b943635'u64 ), toF( 0x88650c815d551ac4'u64 ), toF( 0x0dd1a8a110688a21'u64 ), toF( 0x5e41760661e9a416'u64 ) ] )
]
const testcases_field_rate6* : array[81, tuple[n:int,digest:F4]] =
[ ( 0 , [ toF( 0x970fa9177dfbe803'u64 ), toF( 0xfb7607c6b90f84aa'u64 ), toF( 0xbfa02eccf5e2bfaa'u64 ), toF( 0x298a23ed110f2f70'u64 ) ] )
, ( 1 , [ toF( 0x7ea8d215d1a7e504'u64 ), toF( 0xe115416d1a057589'u64 ), toF( 0xb9e59de067aed63c'u64 ), toF( 0x777f2ec5befa5781'u64 ) ] )
, ( 2 , [ toF( 0xb144185f4bb5cc27'u64 ), toF( 0x66460ae2be4d4193'u64 ), toF( 0x0b514709653d3304'u64 ), toF( 0x245dd7a6fde1c737'u64 ) ] )
, ( 3 , [ toF( 0x4bc91f87636db10e'u64 ), toF( 0xb060957e37dc2f55'u64 ), toF( 0x78f7909f24b901b3'u64 ), toF( 0x2dc6b3247a173cec'u64 ) ] )
, ( 4 , [ toF( 0xd1c1dc58e16537f2'u64 ), toF( 0xfa794a440da7c584'u64 ), toF( 0x488513564aa7e238'u64 ), toF( 0xc68ee05458c3d9a0'u64 ) ] )
, ( 5 , [ toF( 0x66f35650b3a78094'u64 ), toF( 0x4b971bac5bca0345'u64 ), toF( 0xa014a18aa94a334c'u64 ), toF( 0x73798f4bd1bd7bac'u64 ) ] )
, ( 6 , [ toF( 0x040e0b6689829969'u64 ), toF( 0x404b283506158604'u64 ), toF( 0x682c1fb197790e40'u64 ), toF( 0xfce0273c37464a22'u64 ) ] )
, ( 7 , [ toF( 0xe26ac65fd9f534c5'u64 ), toF( 0x5c682b9a67f0c146'u64 ), toF( 0x384b05d11db6bc2f'u64 ), toF( 0x748b8617f99701eb'u64 ) ] )
, ( 8 , [ toF( 0x3ede4553baae81e1'u64 ), toF( 0x20465991b1a65017'u64 ), toF( 0x76a889a5407b931c'u64 ), toF( 0x8b82ca342e24cdd8'u64 ) ] )
, ( 9 , [ toF( 0x55627d3f59679e5f'u64 ), toF( 0x411a0b54fac31e7f'u64 ), toF( 0x66a9bec178a3c383'u64 ), toF( 0x5b10606eb09c775b'u64 ) ] )
, ( 10 , [ toF( 0xc535581c293fda65'u64 ), toF( 0x0122f930a6eb6890'u64 ), toF( 0xda65fddc193e0cea'u64 ), toF( 0x3290b0c1eac6eb8b'u64 ) ] )
, ( 11 , [ toF( 0xec121a9782bcef12'u64 ), toF( 0x7470ea637cb5c413'u64 ), toF( 0x6f8e6edb6ec8486e'u64 ), toF( 0x06a2852eb16430e5'u64 ) ] )
, ( 12 , [ toF( 0x629906d0bce20cff'u64 ), toF( 0xd6a111cb3d0af5ea'u64 ), toF( 0xf8b2b4c38212c19b'u64 ), toF( 0xaa8473b387d28ed6'u64 ) ] )
, ( 13 , [ toF( 0x25d96c7d23792af9'u64 ), toF( 0xdb142df285b01cfb'u64 ), toF( 0x9db9df7ef763f56b'u64 ), toF( 0x29c6214b230dfc21'u64 ) ] )
, ( 14 , [ toF( 0xff83f9da3a15df09'u64 ), toF( 0x4bb082790b5403dc'u64 ), toF( 0xa42bc55f69554bba'u64 ), toF( 0x4e2f7a585baf6f76'u64 ) ] )
, ( 15 , [ toF( 0x4c7b4c402f661200'u64 ), toF( 0x2d9e38a8e4faaf64'u64 ), toF( 0xbec63d19af94d3e0'u64 ), toF( 0x2a34bd87eb3ec141'u64 ) ] )
, ( 16 , [ toF( 0x4af2771c95359174'u64 ), toF( 0xfe03404e4dfb7d68'u64 ), toF( 0xd8eb5ff025967325'u64 ), toF( 0x6c55b90a784ce265'u64 ) ] )
, ( 17 , [ toF( 0x38e7cb59235d5c73'u64 ), toF( 0x98e375cdd4798662'u64 ), toF( 0x7d41debd65179d11'u64 ), toF( 0xc338f118a5fe568b'u64 ) ] )
, ( 18 , [ toF( 0xbc91baae4abfbe48'u64 ), toF( 0x6384e3c2122c4954'u64 ), toF( 0xe55aaebc4db86f7a'u64 ), toF( 0xbc44a4e84b58d163'u64 ) ] )
, ( 19 , [ toF( 0x904c422835b5e033'u64 ), toF( 0x5bb0f15330aef9d1'u64 ), toF( 0xe58cbeed703ea5dc'u64 ), toF( 0x57fb0b4b48688b5c'u64 ) ] )
, ( 20 , [ toF( 0x2c9f9d327ebb3d5b'u64 ), toF( 0xbec9f5995fde7d3b'u64 ), toF( 0x87e72013ed7f5940'u64 ), toF( 0x42910464c44a8926'u64 ) ] )
, ( 21 , [ toF( 0xf3952b65d0c9af47'u64 ), toF( 0xf645fc9be3ea3ec4'u64 ), toF( 0x89f672d174bfb528'u64 ), toF( 0xa41d5b70e6bc2abd'u64 ) ] )
, ( 22 , [ toF( 0xbfda8ffffd3c49c0'u64 ), toF( 0x8621924d5fcee726'u64 ), toF( 0xd06e010e33f23d30'u64 ), toF( 0x4ff127980a6e7a24'u64 ) ] )
, ( 23 , [ toF( 0x13fd0ddc079acf87'u64 ), toF( 0x0560f33d0c0f7188'u64 ), toF( 0xd29c576b36183ebe'u64 ), toF( 0x5ee29f4b90b881ef'u64 ) ] )
, ( 24 , [ toF( 0xd8709547db28063a'u64 ), toF( 0x570a8978892d610e'u64 ), toF( 0x5283ee06c3783e94'u64 ), toF( 0x141952444cab81a4'u64 ) ] )
, ( 25 , [ toF( 0x4bc7879d92dc0b60'u64 ), toF( 0x842680db2557c0ee'u64 ), toF( 0x81cff3906903c39f'u64 ), toF( 0x9a4df0a74738afdb'u64 ) ] )
, ( 26 , [ toF( 0xcd53ced20dd28e5c'u64 ), toF( 0x0c64f9ef5e33fd2c'u64 ), toF( 0x0716f9b267ef2e2a'u64 ), toF( 0xce122576a6c8920f'u64 ) ] )
, ( 27 , [ toF( 0x95c92f53fa251f0f'u64 ), toF( 0x66984b9c2735e4d1'u64 ), toF( 0x9dd7103e1a7d08b4'u64 ), toF( 0xf9b38164d4b52ca1'u64 ) ] )
, ( 28 , [ toF( 0x8b6db197f5ba471e'u64 ), toF( 0xa87c39b2f7ec7a62'u64 ), toF( 0xc3614b597200d5ba'u64 ), toF( 0x6cf1a52828314f86'u64 ) ] )
, ( 29 , [ toF( 0x44c28743cad64e2d'u64 ), toF( 0x40981d3f457e2d3d'u64 ), toF( 0xe892068d6c0655b0'u64 ), toF( 0xc6302a641871fce9'u64 ) ] )
, ( 30 , [ toF( 0x224cae843a05bf56'u64 ), toF( 0x2153a572c52c3c8a'u64 ), toF( 0x8be678ac9778855a'u64 ), toF( 0xd93b79560372d316'u64 ) ] )
, ( 31 , [ toF( 0x3452e8d83816bcd7'u64 ), toF( 0x6fd45d472ca19afc'u64 ), toF( 0x1561bb793d03c1bb'u64 ), toF( 0x47ac224034fbb71c'u64 ) ] )
, ( 32 , [ toF( 0x08c12977027143a5'u64 ), toF( 0xe40a7319899e83c9'u64 ), toF( 0x506f3839b6b3d9f1'u64 ), toF( 0x820ef5f4e572f01d'u64 ) ] )
, ( 33 , [ toF( 0x814a54bbfd829d03'u64 ), toF( 0x789ac20fc9093804'u64 ), toF( 0x6ef8458147eaa7bc'u64 ), toF( 0x246b7e0bae7393a8'u64 ) ] )
, ( 34 , [ toF( 0xe8ec2e02eae82441'u64 ), toF( 0xec115f9d063c224c'u64 ), toF( 0x795c2a3399c98775'u64 ), toF( 0x81c545ae5d13fbb9'u64 ) ] )
, ( 35 , [ toF( 0x0d2814ce75122444'u64 ), toF( 0xf2c6d60ca9cfc7cb'u64 ), toF( 0x6785681b8923186e'u64 ), toF( 0x69fe7629457468a7'u64 ) ] )
, ( 36 , [ toF( 0xb6655e8bea8bda7f'u64 ), toF( 0x541ad191d1524b9e'u64 ), toF( 0xa37bfdcab1eab540'u64 ), toF( 0x9934939583ffee74'u64 ) ] )
, ( 37 , [ toF( 0x846518eef98b24f1'u64 ), toF( 0x94eae1f99044c273'u64 ), toF( 0x72c64150d5ed4425'u64 ), toF( 0x686b58b0c17a53d7'u64 ) ] )
, ( 38 , [ toF( 0x69a4880cebe2e792'u64 ), toF( 0x83c7ad71ebdc7789'u64 ), toF( 0x81acfe3616a3a6fe'u64 ), toF( 0x91091de538fa21e1'u64 ) ] )
, ( 39 , [ toF( 0x6197df99fad8c6c9'u64 ), toF( 0xad2c98f00ec9cb46'u64 ), toF( 0x8ce31aa083bd6238'u64 ), toF( 0xadb590ff4aed8b33'u64 ) ] )
, ( 40 , [ toF( 0x3130ae60ad47fbf1'u64 ), toF( 0xa4557f55745610be'u64 ), toF( 0x6088b67d42e58422'u64 ), toF( 0xf1c40a9977bb9c51'u64 ) ] )
, ( 41 , [ toF( 0x7b2178980cab70cb'u64 ), toF( 0x7cd9295dbdca2e9a'u64 ), toF( 0x3cb5ba7c5db70579'u64 ), toF( 0xf9cece6739a072ed'u64 ) ] )
, ( 42 , [ toF( 0xe8cc13d08087667b'u64 ), toF( 0x394bb89034696464'u64 ), toF( 0x3b3d6de277730d18'u64 ), toF( 0xcf03f6e33daa2a91'u64 ) ] )
, ( 43 , [ toF( 0xc2f17ad07b179dce'u64 ), toF( 0xf5fb7457e80c2b3a'u64 ), toF( 0xb8d09c116a216da1'u64 ), toF( 0xbf4e901b1f2fb2a4'u64 ) ] )
, ( 44 , [ toF( 0x66863a01864c901e'u64 ), toF( 0x2eb3dae8c27065e4'u64 ), toF( 0x4f1663ec40bcbfa4'u64 ), toF( 0xa4a9cee33ec23c47'u64 ) ] )
, ( 45 , [ toF( 0x425f927862a48d47'u64 ), toF( 0x8d0f4bfb2e46944c'u64 ), toF( 0x76ae5c35db911524'u64 ), toF( 0x2c396d06470b93e1'u64 ) ] )
, ( 46 , [ toF( 0x3dc919681c306daa'u64 ), toF( 0xfe3675875c1e694a'u64 ), toF( 0xf1253366c86792be'u64 ), toF( 0x079d23eaf2a6e8d0'u64 ) ] )
, ( 47 , [ toF( 0x7b78031646362ae2'u64 ), toF( 0x4e3866950ba1368a'u64 ), toF( 0xab54381e49eca1b3'u64 ), toF( 0x4863f1ddb0a4cb1b'u64 ) ] )
, ( 48 , [ toF( 0xe574c69d17279668'u64 ), toF( 0x5501755c79cc67bc'u64 ), toF( 0x2e80154b971cc477'u64 ), toF( 0xa106470f9e93d958'u64 ) ] )
, ( 49 , [ toF( 0x22f3ff7cbb918833'u64 ), toF( 0xf466c0de85b255cc'u64 ), toF( 0x0045763180f6607f'u64 ), toF( 0x9df59e846e6b0bbb'u64 ) ] )
, ( 50 , [ toF( 0xdbb19b8884edca90'u64 ), toF( 0x43fbb33c5f5ba8e0'u64 ), toF( 0x161ac4ea8b8e3815'u64 ), toF( 0x60ddf691b8b739b3'u64 ) ] )
, ( 51 , [ toF( 0x2ff8f65e53c6d76e'u64 ), toF( 0x01b1e417d4a9af7b'u64 ), toF( 0xb8744e52920d03ac'u64 ), toF( 0x12def75b3717373f'u64 ) ] )
, ( 52 , [ toF( 0x51961bd59c8e9455'u64 ), toF( 0x98900158a8c156f5'u64 ), toF( 0xba2109ea0302a8b0'u64 ), toF( 0xfd7e3600ec752036'u64 ) ] )
, ( 53 , [ toF( 0x1b2dbd4da94565e4'u64 ), toF( 0xe7fe7ea0ae07f618'u64 ), toF( 0x7125b64b3cc0ff6f'u64 ), toF( 0x7daf35584af71ec8'u64 ) ] )
, ( 54 , [ toF( 0xb7702f752b71fc5d'u64 ), toF( 0xdfe97c6896f5f31c'u64 ), toF( 0xae828cadf9f0d367'u64 ), toF( 0x2937c4b5e48ca497'u64 ) ] )
, ( 55 , [ toF( 0xbedc9077fccfc50c'u64 ), toF( 0x558688301598be04'u64 ), toF( 0x2ae621b08f21055b'u64 ), toF( 0x9dc4c74415a3e5aa'u64 ) ] )
, ( 56 , [ toF( 0x9f833ab9f87e087a'u64 ), toF( 0x49423d89714ff354'u64 ), toF( 0x5eb4874186156d36'u64 ), toF( 0xfecaacd6f75c9e02'u64 ) ] )
, ( 57 , [ toF( 0x68476502937dc7d1'u64 ), toF( 0x221772bb638005a7'u64 ), toF( 0x3c8c626297928a57'u64 ), toF( 0x222bb934a7c6b2d6'u64 ) ] )
, ( 58 , [ toF( 0x8c4e363277265ee4'u64 ), toF( 0xcaf9795b6747c6ae'u64 ), toF( 0x7cbe9ffbf017d6d2'u64 ), toF( 0xc4a6c605f21eb117'u64 ) ] )
, ( 59 , [ toF( 0x1d237b1d37b560f7'u64 ), toF( 0xa06e2e366c3b4d34'u64 ), toF( 0x39f1aad5bd1e4db5'u64 ), toF( 0xb85d1e8d0137dfb8'u64 ) ] )
, ( 60 , [ toF( 0x8bd4256f15e0125c'u64 ), toF( 0xe7a7de65c58d4b7f'u64 ), toF( 0x815e72fc250757ff'u64 ), toF( 0xc3312c41133b21ab'u64 ) ] )
, ( 61 , [ toF( 0x17f720a1c5f836fc'u64 ), toF( 0x3768b096aefed771'u64 ), toF( 0x0b21bf6764c528c4'u64 ), toF( 0x2100e40cfe51bd32'u64 ) ] )
, ( 62 , [ toF( 0xeb99394a86bf2e8d'u64 ), toF( 0xdc56e4e09ebf44be'u64 ), toF( 0x5e91ac1fce1287a5'u64 ), toF( 0xa6e31ec0f2eecb7e'u64 ) ] )
, ( 63 , [ toF( 0x1f0cab78407bcdc3'u64 ), toF( 0x605937a6ed115592'u64 ), toF( 0xe27539d1818ede7f'u64 ), toF( 0xe3f68123bad9341d'u64 ) ] )
, ( 64 , [ toF( 0x03727c6b991377a7'u64 ), toF( 0xe1056cde0df9be14'u64 ), toF( 0xbd2e994549cbe6c1'u64 ), toF( 0xb44baa6f3c6d35df'u64 ) ] )
, ( 65 , [ toF( 0x740a3a77d1a37350'u64 ), toF( 0x992c56e086976d69'u64 ), toF( 0x39adeab8b3b0bd41'u64 ), toF( 0x7041d0522d1792a0'u64 ) ] )
, ( 66 , [ toF( 0xf9796745d342ace1'u64 ), toF( 0xdd1df5ac64270865'u64 ), toF( 0xb8f77fcb81f0f3cf'u64 ), toF( 0x6ca43689a5845760'u64 ) ] )
, ( 67 , [ toF( 0x11d6c8387dcc2b06'u64 ), toF( 0x5f4682881ac1d4b2'u64 ), toF( 0xb78f74f637b4c21f'u64 ), toF( 0x4a2a5a8e405b3812'u64 ) ] )
, ( 68 , [ toF( 0x42139c31cf4acdba'u64 ), toF( 0xe59b59a1b4ed2df7'u64 ), toF( 0x24a9a071744504b9'u64 ), toF( 0xa342beb9c8b31626'u64 ) ] )
, ( 69 , [ toF( 0x118414f2dc0e1c15'u64 ), toF( 0xf238df6ccf1f6968'u64 ), toF( 0x0c78442e463cd794'u64 ), toF( 0xd9e68043fd471fb4'u64 ) ] )
, ( 70 , [ toF( 0x4ac4fbc5e30f7b9d'u64 ), toF( 0x60a73dc13a325e54'u64 ), toF( 0x0c66a128d14db15b'u64 ), toF( 0xb14945623e43425b'u64 ) ] )
, ( 71 , [ toF( 0x7386161a9abc162b'u64 ), toF( 0xf4047ce4db4fe526'u64 ), toF( 0xd0c1f3045d763a04'u64 ), toF( 0xc2638e4dcee567cc'u64 ) ] )
, ( 72 , [ toF( 0x810e272483472218'u64 ), toF( 0xc559681435e3cc3d'u64 ), toF( 0x061c1dc3805c3a90'u64 ), toF( 0x02429a985bfe685e'u64 ) ] )
, ( 73 , [ toF( 0xf06a4b5a4f7b17e1'u64 ), toF( 0x2c419f1959988847'u64 ), toF( 0x13e57fcc497adb5e'u64 ), toF( 0x1226a31e50f96893'u64 ) ] )
, ( 74 , [ toF( 0x75651008a0c461f5'u64 ), toF( 0xc037e92925de87be'u64 ), toF( 0xe0481f8fa77e7910'u64 ), toF( 0xdcb71046dcb087f8'u64 ) ] )
, ( 75 , [ toF( 0x90411cfed80c73d9'u64 ), toF( 0xf7f1488b402db92d'u64 ), toF( 0xf745d52ec7eb9c14'u64 ), toF( 0xe663df61aded0743'u64 ) ] )
, ( 76 , [ toF( 0xac47688f51ba018e'u64 ), toF( 0x2c3cead0c3e691e4'u64 ), toF( 0xc092f5cede737985'u64 ), toF( 0x8f9fd862712234c3'u64 ) ] )
, ( 77 , [ toF( 0x778bf5e4d5f971be'u64 ), toF( 0x81a81520eac15061'u64 ), toF( 0xc23799f6a0d6a82e'u64 ), toF( 0x7e1fca139da39d90'u64 ) ] )
, ( 78 , [ toF( 0x321aa336a776ffdc'u64 ), toF( 0x2f2c2d1a1dc14125'u64 ), toF( 0xe7b4174e31b99969'u64 ), toF( 0xd3f6d7945892cd49'u64 ) ] )
, ( 79 , [ toF( 0xba9248aad3ea958c'u64 ), toF( 0x2beb3fffb3906164'u64 ), toF( 0xa86918754bd9f310'u64 ), toF( 0xc59d39e998fbbb4f'u64 ) ] )
, ( 80 , [ toF( 0xda82a52c7793615f'u64 ), toF( 0x62d71925a75df744'u64 ), toF( 0x3cf9410ea2906788'u64 ), toF( 0xfda46f7fcb0d2a98'u64 ) ] )
]
const testcases_field_rate7* : array[81, tuple[n:int,digest:F4]] =
[ ( 0 , [ toF( 0x5cf055e1b2b20d50'u64 ), toF( 0xefbabacb76212a05'u64 ), toF( 0xd341294159191559'u64 ), toF( 0xe7500d2178d5a56e'u64 ) ] )
, ( 1 , [ toF( 0xf89862e3771f0819'u64 ), toF( 0xe56f0b0570c674ef'u64 ), toF( 0x9944d15e0cbf084c'u64 ), toF( 0xb683fa8ead3034da'u64 ) ] )
, ( 2 , [ toF( 0x16e23a89fe2bcb2c'u64 ), toF( 0x9823469076c71d8e'u64 ), toF( 0x60103575e64d5936'u64 ), toF( 0x074c2b5e0efb5658'u64 ) ] )
, ( 3 , [ toF( 0x70c42c6777e30a4f'u64 ), toF( 0xfd861a2bf89b11f3'u64 ), toF( 0x8cd4cb1c45e9e43b'u64 ), toF( 0x4a4db6a492221387'u64 ) ] )
, ( 4 , [ toF( 0x33047ef51b472d4d'u64 ), toF( 0xcf1f976d335c24bb'u64 ), toF( 0xc0196950aac4bddc'u64 ), toF( 0xa0085ff162fc40dc'u64 ) ] )
, ( 5 , [ toF( 0x2c7a99875500c735'u64 ), toF( 0x009d312622c073f4'u64 ), toF( 0xa9f6bb785051381c'u64 ), toF( 0xcf0ba3b37f5bb098'u64 ) ] )
, ( 6 , [ toF( 0xef679dac1b1aabc7'u64 ), toF( 0x2b4dfa49757cad11'u64 ), toF( 0x09599255c254b7a1'u64 ), toF( 0xee3c0265d4ab47d5'u64 ) ] )
, ( 7 , [ toF( 0x749ed726c59a34c4'u64 ), toF( 0x0f5ff914f59ce030'u64 ), toF( 0xf0f332793bba9ae8'u64 ), toF( 0xcb7678ca6b65d461'u64 ) ] )
, ( 8 , [ toF( 0x54c7fec86386fc4c'u64 ), toF( 0x97fed5935caad9a7'u64 ), toF( 0x1711b631777af81e'u64 ), toF( 0x3800dc3254280f19'u64 ) ] )
, ( 9 , [ toF( 0x697bc38443265955'u64 ), toF( 0x6b2e8cb3b8d52d66'u64 ), toF( 0xb11fdd35c97975a3'u64 ), toF( 0x737f856817771d1f'u64 ) ] )
, ( 10 , [ toF( 0x7ef8073f93fd1809'u64 ), toF( 0x28c91759a8443014'u64 ), toF( 0x4b49801d45cb9913'u64 ), toF( 0x0662f771911a2e63'u64 ) ] )
, ( 11 , [ toF( 0x05b1eb100555e372'u64 ), toF( 0x6d03bc56cdfd7e45'u64 ), toF( 0x503f1652fbcb9f3e'u64 ), toF( 0xdc932d1c35b20814'u64 ) ] )
, ( 12 , [ toF( 0x017353573a548747'u64 ), toF( 0xb4ce4e61abe43c0f'u64 ), toF( 0x57a9d44e58aed76e'u64 ), toF( 0xbe2aa5d7064ec483'u64 ) ] )
, ( 13 , [ toF( 0xd6546f9a97af9ea7'u64 ), toF( 0x118dd34f3de33289'u64 ), toF( 0x8548cf02ecd78411'u64 ), toF( 0x6e650df9e3b802ce'u64 ) ] )
, ( 14 , [ toF( 0x6ffd6da687997221'u64 ), toF( 0x1059874056fa7c32'u64 ), toF( 0xb96d6614e6658c2b'u64 ), toF( 0x696fbe400ff782c2'u64 ) ] )
, ( 15 , [ toF( 0x2c615731cee46c9d'u64 ), toF( 0x3365829fafbbf197'u64 ), toF( 0x1f7b0f2a6080449a'u64 ), toF( 0xf6a3025010a4bb28'u64 ) ] )
, ( 16 , [ toF( 0x5c2761b780b6bd89'u64 ), toF( 0x2ad80fe634f28efa'u64 ), toF( 0xcb26a416d38987ac'u64 ), toF( 0xa21ab5790c0343e9'u64 ) ] )
, ( 17 , [ toF( 0xf97284c034bcab06'u64 ), toF( 0x2b592e7bd73e4944'u64 ), toF( 0x23a0677aa00fee34'u64 ), toF( 0x286d3c96e6101089'u64 ) ] )
, ( 18 , [ toF( 0x6ad7f75dd04148c0'u64 ), toF( 0x097c790ef005d62f'u64 ), toF( 0xb688aa634aa8b2d9'u64 ), toF( 0x06bcc42082358be2'u64 ) ] )
, ( 19 , [ toF( 0x8e6a6c61a5d83d49'u64 ), toF( 0xa1525f494d8590f8'u64 ), toF( 0xc48df6a26d072a22'u64 ), toF( 0x00962b86b2164681'u64 ) ] )
, ( 20 , [ toF( 0xab80b0019d0accc1'u64 ), toF( 0x15f9f61a8a337aa0'u64 ), toF( 0x20f6060eb6afb2f4'u64 ), toF( 0x299c624b53c6ae2d'u64 ) ] )
, ( 21 , [ toF( 0x0bc91ed333f21a1a'u64 ), toF( 0xfbdaee578e2ea982'u64 ), toF( 0x34ff61e5f5cad50f'u64 ), toF( 0xded849bb424ff4bc'u64 ) ] )
, ( 22 , [ toF( 0xee1c15dd54913772'u64 ), toF( 0xe995f649ee3a00e2'u64 ), toF( 0xd0612acf258519af'u64 ), toF( 0x7b66d5e78bf18418'u64 ) ] )
, ( 23 , [ toF( 0xb06a751f709b9db9'u64 ), toF( 0xb00afe94b0b1ea88'u64 ), toF( 0x0615ebd80cae9bad'u64 ), toF( 0xf8d91579a0cf6d5c'u64 ) ] )
, ( 24 , [ toF( 0x337187ef73dd6c93'u64 ), toF( 0x2497f38963884098'u64 ), toF( 0xfc907372a3074481'u64 ), toF( 0xc65596bd1f251307'u64 ) ] )
, ( 25 , [ toF( 0xb6d6bdc6e4b38794'u64 ), toF( 0x3019a1d6ed3c170e'u64 ), toF( 0xe9f0814e1abb5f25'u64 ), toF( 0x626722d8ab2dfd89'u64 ) ] )
, ( 26 , [ toF( 0xfbd0bfa4988693a4'u64 ), toF( 0x791989ef40a93f1c'u64 ), toF( 0xd2a80314ec4cb5ef'u64 ), toF( 0xa746d18cd2a1eaac'u64 ) ] )
, ( 27 , [ toF( 0x24ac158291e48201'u64 ), toF( 0xb50ebb3193611714'u64 ), toF( 0x37a234992aefde78'u64 ), toF( 0x743c1dc54184789f'u64 ) ] )
, ( 28 , [ toF( 0x1ace757b84a573dc'u64 ), toF( 0xb50f032559637a92'u64 ), toF( 0x3996dcf6ef66e1ee'u64 ), toF( 0x1d97a542459aee5e'u64 ) ] )
, ( 29 , [ toF( 0x44a02d31bbaf5dd0'u64 ), toF( 0xf3c9fa008c566038'u64 ), toF( 0x4d43773606133513'u64 ), toF( 0x81124b46b7a7e338'u64 ) ] )
, ( 30 , [ toF( 0x85c4a28d3b31c85d'u64 ), toF( 0xcdddfcb8d0e6f140'u64 ), toF( 0x7171de2fda7e3713'u64 ), toF( 0x878f63759c773d9f'u64 ) ] )
, ( 31 , [ toF( 0xdcdcdb8ef54d7df9'u64 ), toF( 0x8af560bba0cbc530'u64 ), toF( 0xb250b0120d86ab7a'u64 ), toF( 0x570116dffb2814ec'u64 ) ] )
, ( 32 , [ toF( 0x3e0b44794ad9ceb3'u64 ), toF( 0x37beb1d7a9bd5896'u64 ), toF( 0xf9aadee018b56afa'u64 ), toF( 0x1aabec82939516ff'u64 ) ] )
, ( 33 , [ toF( 0x5a32620700c90dfa'u64 ), toF( 0x3e3ad7bdfdb0b4f1'u64 ), toF( 0x5d596034b1f1f07e'u64 ), toF( 0x10752b3c7d3e6e53'u64 ) ] )
, ( 34 , [ toF( 0x70760a11ae3a22c7'u64 ), toF( 0x5832f750bbdc41b2'u64 ), toF( 0x45ba66d726be5146'u64 ), toF( 0xb0eecc4e39c6db69'u64 ) ] )
, ( 35 , [ toF( 0xe83e727813518e7a'u64 ), toF( 0xf9f8dbf2ece295d0'u64 ), toF( 0xffebc5f0db7d7bbc'u64 ), toF( 0x7cf35316a4007be4'u64 ) ] )
, ( 36 , [ toF( 0x1b52007b70610a41'u64 ), toF( 0xe8a1d1bc5b5e9fab'u64 ), toF( 0x19de4260f9a340da'u64 ), toF( 0x9cc59798b3842153'u64 ) ] )
, ( 37 , [ toF( 0xa5be7c54e4c7a7f4'u64 ), toF( 0xd1e86096b7583bc0'u64 ), toF( 0x8cc8a88d1460efc2'u64 ), toF( 0x86c1e44fb65981c9'u64 ) ] )
, ( 38 , [ toF( 0x85274afd9127ddc4'u64 ), toF( 0x42263b73626f26ff'u64 ), toF( 0x8062a9697e0284b0'u64 ), toF( 0x92c0f777db5fc16b'u64 ) ] )
, ( 39 , [ toF( 0x97c0148f82635009'u64 ), toF( 0xd359d00d64fc3fde'u64 ), toF( 0xf41c82ab8519027b'u64 ), toF( 0x145321d100159001'u64 ) ] )
, ( 40 , [ toF( 0x723278a813a15e5c'u64 ), toF( 0xdaec64e884f08b03'u64 ), toF( 0x3eaefb41ca99effc'u64 ), toF( 0x22c7f86153308ad2'u64 ) ] )
, ( 41 , [ toF( 0x1221a5293a27768e'u64 ), toF( 0xd5e9c5aad161694b'u64 ), toF( 0x9d150f4dd2630cd2'u64 ), toF( 0x5b193423c60ab467'u64 ) ] )
, ( 42 , [ toF( 0x149154bc47670f77'u64 ), toF( 0x4a892ab0c6c7df50'u64 ), toF( 0xe77f18ca5c72c841'u64 ), toF( 0x62c4a161252b6350'u64 ) ] )
, ( 43 , [ toF( 0x048cda4461caddca'u64 ), toF( 0x31755688665be3e1'u64 ), toF( 0xd66e1c3c52d9b40d'u64 ), toF( 0xc3503e955e5cf167'u64 ) ] )
, ( 44 , [ toF( 0x70b06c63320fab0e'u64 ), toF( 0x9b8659f442d295ee'u64 ), toF( 0x3e9f6dded5d97b89'u64 ), toF( 0x4237fb3c869e10d4'u64 ) ] )
, ( 45 , [ toF( 0xcd200dc90b86345c'u64 ), toF( 0xcc0e5e3b84eea55b'u64 ), toF( 0x4d64b8abb2e16ddb'u64 ), toF( 0x12122456d26546f8'u64 ) ] )
, ( 46 , [ toF( 0x36db03da70dfeed6'u64 ), toF( 0xfc95616abc5545fc'u64 ), toF( 0x49f684c178cb32ed'u64 ), toF( 0x167e0619b132529e'u64 ) ] )
, ( 47 , [ toF( 0xbedc9f738f264d47'u64 ), toF( 0xf55353b6cddcf020'u64 ), toF( 0xd6f32b9ae8cdadbc'u64 ), toF( 0x11a579cbcb5ec6d1'u64 ) ] )
, ( 48 , [ toF( 0xd1ab112c2c710475'u64 ), toF( 0x3e515a3baaaf3403'u64 ), toF( 0x1f05f3f30ebe1ad2'u64 ), toF( 0x26562a1d45095ebe'u64 ) ] )
, ( 49 , [ toF( 0x3c267a594adcb0a5'u64 ), toF( 0x1bc72f368da8cb14'u64 ), toF( 0x7b2ca479cdcffd6f'u64 ), toF( 0x2c0bb477918f8b79'u64 ) ] )
, ( 50 , [ toF( 0xb82592b0922ff187'u64 ), toF( 0x55c23cef18d675aa'u64 ), toF( 0xbd48bd6962648d05'u64 ), toF( 0xb4b98023560b2590'u64 ) ] )
, ( 51 , [ toF( 0x87326b1cfffd402f'u64 ), toF( 0xc2665f2763824944'u64 ), toF( 0x9e7d855689ee197f'u64 ), toF( 0xed38797a8e389c02'u64 ) ] )
, ( 52 , [ toF( 0x63d55a9cd09fcee9'u64 ), toF( 0x825fffcd6d0689ba'u64 ), toF( 0x5e27ce0fe3cb0f81'u64 ), toF( 0xf200e17927e64359'u64 ) ] )
, ( 53 , [ toF( 0xf85359b1a9e4baa1'u64 ), toF( 0xb2829d3ab15aacda'u64 ), toF( 0x50b2c3f87cf755b7'u64 ), toF( 0x4eebedda881f245e'u64 ) ] )
, ( 54 , [ toF( 0x4e559e5ed9d1e4de'u64 ), toF( 0x8c19998882c6cf83'u64 ), toF( 0xb4687718f0ee6881'u64 ), toF( 0x916a2b19bef99702'u64 ) ] )
, ( 55 , [ toF( 0x174d1b98665b90e5'u64 ), toF( 0x1772cccb86f08a9f'u64 ), toF( 0xd333318e7a836c7b'u64 ), toF( 0x9cebb8fc1c081f08'u64 ) ] )
, ( 56 , [ toF( 0xcc13d2a859ab0213'u64 ), toF( 0x4285f9f2ed7d923f'u64 ), toF( 0xd5c28b4fdbe439a5'u64 ), toF( 0x8cedd80626f9ac7c'u64 ) ] )
, ( 57 , [ toF( 0xd39a84ffa63b0c82'u64 ), toF( 0xa05d71120a6b7ded'u64 ), toF( 0xbba5e13bf6e3460c'u64 ), toF( 0xe30eeadda91e1100'u64 ) ] )
, ( 58 , [ toF( 0x267459cf99923587'u64 ), toF( 0xe17e805783abd927'u64 ), toF( 0x26b70b0e1f9c3f37'u64 ), toF( 0xaa8617951f052eb3'u64 ) ] )
, ( 59 , [ toF( 0x90b703924a4866ae'u64 ), toF( 0x3647212dfd7bc6fc'u64 ), toF( 0x28576752db516677'u64 ), toF( 0xbe1ad435990db3a4'u64 ) ] )
, ( 60 , [ toF( 0x8648f6fbef1175fd'u64 ), toF( 0xd7f7261b6b1c1891'u64 ), toF( 0x8cc5f3be773a9e77'u64 ), toF( 0xe31e0b5afeab76ff'u64 ) ] )
, ( 61 , [ toF( 0x80605341cd3f25aa'u64 ), toF( 0x981c26e37c6fca27'u64 ), toF( 0xbdb59b1f5cfd746a'u64 ), toF( 0x4af537e5e0681ad2'u64 ) ] )
, ( 62 , [ toF( 0xe9eb5f74408e1842'u64 ), toF( 0x342092959c2e858f'u64 ), toF( 0x6af248b4675ee376'u64 ), toF( 0x713eefa2dbd04772'u64 ) ] )
, ( 63 , [ toF( 0xb8afcbc31abd6973'u64 ), toF( 0x0ac18c6c62d784c8'u64 ), toF( 0x0233b47fd8e30156'u64 ), toF( 0xdf6bfbe70ccc7f9d'u64 ) ] )
, ( 64 , [ toF( 0x8c3912776c4793c5'u64 ), toF( 0x51616e0c38632ddf'u64 ), toF( 0xaaf4b18a4366cb4b'u64 ), toF( 0x74ba72bb9f74b886'u64 ) ] )
, ( 65 , [ toF( 0x3093ada15bf54379'u64 ), toF( 0x736a5bf2823cb72b'u64 ), toF( 0x0779d54942c49746'u64 ), toF( 0x9f3ce61d5619eb33'u64 ) ] )
, ( 66 , [ toF( 0xbd08d2010d129400'u64 ), toF( 0x874d1c791e97aa88'u64 ), toF( 0xa751ec7f8ab944ef'u64 ), toF( 0x4a1bc86e27e53ad4'u64 ) ] )
, ( 67 , [ toF( 0x8f80b05689812257'u64 ), toF( 0x9fce65b3e8bc8694'u64 ), toF( 0xbaf85b7edf2db984'u64 ), toF( 0x034f258206e41a30'u64 ) ] )
, ( 68 , [ toF( 0x7215ad6a36d60c55'u64 ), toF( 0xeb9cfab493a63606'u64 ), toF( 0x75d641ca5919e12a'u64 ), toF( 0xed33e2a69d4df956'u64 ) ] )
, ( 69 , [ toF( 0x953f989d05e0b3fe'u64 ), toF( 0xf8d7ec0c125244d3'u64 ), toF( 0x2b4c0cf163e29c18'u64 ), toF( 0x1426a5cf4b953a8e'u64 ) ] )
, ( 70 , [ toF( 0xaca3978f7275e10c'u64 ), toF( 0xdd8e4f8613cb3097'u64 ), toF( 0x5a0fbc8fb1db3a43'u64 ), toF( 0xb566c1f6bb870393'u64 ) ] )
, ( 71 , [ toF( 0xf69836a2867fa2d0'u64 ), toF( 0xa530a572fb320980'u64 ), toF( 0x2222b8ab438c63cf'u64 ), toF( 0x50bf34d02e2fd8c4'u64 ) ] )
, ( 72 , [ toF( 0x3ec2d62a025ccdd8'u64 ), toF( 0x837eb67ddf7cd688'u64 ), toF( 0x219a252611de1c2e'u64 ), toF( 0x2f2d5f35ea5d83d3'u64 ) ] )
, ( 73 , [ toF( 0x8e1d0635b92d6983'u64 ), toF( 0x04f8a7f38400263d'u64 ), toF( 0xbc52591731c289b1'u64 ), toF( 0x8a9d045b4c0f2898'u64 ) ] )
, ( 74 , [ toF( 0xbbce58e8b6d2c4b9'u64 ), toF( 0xf65a5f9c1bf919c7'u64 ), toF( 0x0d474a25a90c9fdb'u64 ), toF( 0xa3c0d901b4ebeff6'u64 ) ] )
, ( 75 , [ toF( 0xb6e4f6fa382b8385'u64 ), toF( 0x32cf8c90712724b9'u64 ), toF( 0x61edff0bdb58e410'u64 ), toF( 0x1ac1d9f9c731cb3f'u64 ) ] )
, ( 76 , [ toF( 0x003924375a1c9b35'u64 ), toF( 0x18507283572559ea'u64 ), toF( 0x80177b34065f937a'u64 ), toF( 0xe11b5223705f07e5'u64 ) ] )
, ( 77 , [ toF( 0x7afa7d0054fbe9d2'u64 ), toF( 0x56ec4d300c044aba'u64 ), toF( 0xba8adad6f9a66f94'u64 ), toF( 0x7c67747bd56d099d'u64 ) ] )
, ( 78 , [ toF( 0x7ffa18b0cec9e514'u64 ), toF( 0x223208f1a286caf0'u64 ), toF( 0xb2f55a7854d98bf0'u64 ), toF( 0x5b59cf6626099a92'u64 ) ] )
, ( 79 , [ toF( 0xa587093af9fefade'u64 ), toF( 0x2eaedc276a584212'u64 ), toF( 0xbb1021559c0787bc'u64 ), toF( 0xdffb5b45032681e3'u64 ) ] )
, ( 80 , [ toF( 0xc97cb591d33b3c5d'u64 ), toF( 0x9f74edbb82f80dd0'u64 ), toF( 0x6366919426c4ed3c'u64 ), toF( 0xf4484f6cd52bed0e'u64 ) ] )
]
const testcases_field_rate8* : array[81, tuple[n:int,digest:F4]] =
[ ( 0 , [ toF( 0x509f3a747e4a6fca'u64 ), toF( 0xd6f21d91afb92eb3'u64 ), toF( 0xf65ef4075dcfb169'u64 ), toF( 0xbceaf22e0cd21b3d'u64 ) ] )
, ( 1 , [ toF( 0xfa286adad207c7ea'u64 ), toF( 0x97d864ff2e89415e'u64 ), toF( 0xcf002b28585bd945'u64 ), toF( 0x95ec163fbdd0792e'u64 ) ] )
, ( 2 , [ toF( 0xe4b779622cbb574f'u64 ), toF( 0x1fe4b1bc9a0c9fc7'u64 ), toF( 0x40051ada5252de9b'u64 ), toF( 0xb351345b1894a59f'u64 ) ] )
, ( 3 , [ toF( 0x133a5a2fd0cae006'u64 ), toF( 0x072a7769ca9a550d'u64 ), toF( 0x92134dad95d394c6'u64 ), toF( 0x22234de7d7270aab'u64 ) ] )
, ( 4 , [ toF( 0x78269e830f2a824a'u64 ), toF( 0x76f8b00469a8fa81'u64 ), toF( 0x6793369b1d75ebf5'u64 ), toF( 0xfba1a89dc21d9b30'u64 ) ] )
, ( 5 , [ toF( 0x263994efd2cd5c57'u64 ), toF( 0x7c37a93fd48fc98b'u64 ), toF( 0xa081b26a68767d13'u64 ), toF( 0x16af92d6e1e4d7f8'u64 ) ] )
, ( 6 , [ toF( 0x0b0b0f1d64f8d58c'u64 ), toF( 0x2946089b2eb949fc'u64 ), toF( 0xf68bcf08b69a95e7'u64 ), toF( 0x814d6eb4b2df848c'u64 ) ] )
, ( 7 , [ toF( 0xae0c900a194ee051'u64 ), toF( 0x4555257fba7a500b'u64 ), toF( 0x1713fd448cc82c3a'u64 ), toF( 0xaf8f2e895e2136f3'u64 ) ] )
, ( 8 , [ toF( 0x100351f04fc470b7'u64 ), toF( 0x79d3c3c416087158'u64 ), toF( 0x113bb1c70a6e84ee'u64 ), toF( 0x3eab2507cdc254d3'u64 ) ] )
, ( 9 , [ toF( 0xbab284d7f11855d6'u64 ), toF( 0xe1b53d108f308a1c'u64 ), toF( 0x971fea7184337830'u64 ), toF( 0x6d674ae321cfb9ba'u64 ) ] )
, ( 10 , [ toF( 0x68c00dbe0ed03a8f'u64 ), toF( 0xab5ba3617eb6f76b'u64 ), toF( 0x5d735bb89418cc0b'u64 ), toF( 0xff4101076f3f3c70'u64 ) ] )
, ( 11 , [ toF( 0xaecce2fa7de4f97d'u64 ), toF( 0x07cee3dc720812e0'u64 ), toF( 0x4155bf667391a9e8'u64 ), toF( 0xbf8a49a12f40e746'u64 ) ] )
, ( 12 , [ toF( 0xd3f43f06fc7affd2'u64 ), toF( 0xee9a8ac5ef44071a'u64 ), toF( 0xe00ec9e7f468d0e2'u64 ), toF( 0x944e34913a974233'u64 ) ] )
, ( 13 , [ toF( 0xcd50fe6ab5e3de54'u64 ), toF( 0x9b2093adaeac949c'u64 ), toF( 0xa176a2a9e2c82787'u64 ), toF( 0xd35f0635a1ec333f'u64 ) ] )
, ( 14 , [ toF( 0x8f5188d26ca0368c'u64 ), toF( 0x0116bf587e5cc970'u64 ), toF( 0x30654ee52a3c66d8'u64 ), toF( 0xe8ded60382c44b04'u64 ) ] )
, ( 15 , [ toF( 0xc7f020f910327951'u64 ), toF( 0x13a468945463870d'u64 ), toF( 0xbcf8ca584edb30f3'u64 ), toF( 0x7e7234f0b8954e7e'u64 ) ] )
, ( 16 , [ toF( 0xf8a9aef7392048e7'u64 ), toF( 0x6124715a2c5343eb'u64 ), toF( 0x1b7f17ebec4a5b13'u64 ), toF( 0xdf61d868051dad75'u64 ) ] )
, ( 17 , [ toF( 0x44d1fb6822c7f3fa'u64 ), toF( 0x2623cc2240022e42'u64 ), toF( 0xc90ce9259c9e1160'u64 ), toF( 0x7a42bc611acacc12'u64 ) ] )
, ( 18 , [ toF( 0x85dab5b06ef2d176'u64 ), toF( 0x24a587b13a4e3b30'u64 ), toF( 0xf547a00373299873'u64 ), toF( 0xb298a6ef846d64a1'u64 ) ] )
, ( 19 , [ toF( 0x7cc060a3f2a74260'u64 ), toF( 0xa07dc76e73335eb0'u64 ), toF( 0xf8ed9acbcf8a242e'u64 ), toF( 0xd32eaf3150005e49'u64 ) ] )
, ( 20 , [ toF( 0x3e961c84e53106f9'u64 ), toF( 0x63d9a807f9cfd88c'u64 ), toF( 0x7031e8834a17821a'u64 ), toF( 0xf2e1c79698798fa9'u64 ) ] )
, ( 21 , [ toF( 0x8a0ab00081c9828f'u64 ), toF( 0xa5f7aadaf3af046e'u64 ), toF( 0xada8b4c6220b3420'u64 ), toF( 0x80ebc8c91a65518c'u64 ) ] )
, ( 22 , [ toF( 0x39505fc00f052122'u64 ), toF( 0xb13edc24a35665c7'u64 ), toF( 0xa7b164fffe37ec64'u64 ), toF( 0x8f7eeb42c068e19f'u64 ) ] )
, ( 23 , [ toF( 0x1f49d6f25f39522b'u64 ), toF( 0x879377d8df727784'u64 ), toF( 0x00f1461600d09cdd'u64 ), toF( 0xd2c7946a44e1aa66'u64 ) ] )
, ( 24 , [ toF( 0x1c6f7a68537f7dc7'u64 ), toF( 0x64e6e09714dc0854'u64 ), toF( 0x9abfed111e51bd96'u64 ), toF( 0x65061b2bc484ed8b'u64 ) ] )
, ( 25 , [ toF( 0x95fd5cc6bc02ab29'u64 ), toF( 0xe2e3c96d9b1b8b5d'u64 ), toF( 0xadcf491caa16549e'u64 ), toF( 0x97d91e370da3c0b4'u64 ) ] )
, ( 26 , [ toF( 0x7599c5052ba67767'u64 ), toF( 0x3fe4a05f44e96ed6'u64 ), toF( 0xbbfe6874aa53808c'u64 ), toF( 0xd6771e162cc9f0ff'u64 ) ] )
, ( 27 , [ toF( 0xdff28121d822093c'u64 ), toF( 0x7313ea03b57bb436'u64 ), toF( 0x10ed29b28a77d8c3'u64 ), toF( 0x6ee304be541fe36f'u64 ) ] )
, ( 28 , [ toF( 0xce2b7f232b504b48'u64 ), toF( 0x02c638c398c12cb0'u64 ), toF( 0x4f1d416215377a86'u64 ), toF( 0x2d43ff6c5dd88f8c'u64 ) ] )
, ( 29 , [ toF( 0xa60cb008de647e9a'u64 ), toF( 0x502e2e740f68e2d1'u64 ), toF( 0xe983eb54e4052013'u64 ), toF( 0xe76e59c5e5dbcca2'u64 ) ] )
, ( 30 , [ toF( 0x7735e3ac5e08fa00'u64 ), toF( 0x211a86449207c30d'u64 ), toF( 0x9d80ddd40e7760b2'u64 ), toF( 0xe60f32f28597a188'u64 ) ] )
, ( 31 , [ toF( 0x6fab3f12496f0691'u64 ), toF( 0x5116ad81bedd7d84'u64 ), toF( 0xaa8a7713a80b323b'u64 ), toF( 0xce6d94533fc40b88'u64 ) ] )
, ( 32 , [ toF( 0xce51cdbd641d57c0'u64 ), toF( 0xf638202a88ee7f9c'u64 ), toF( 0x26c291ecc5162b45'u64 ), toF( 0x04a0a62b949c236f'u64 ) ] )
, ( 33 , [ toF( 0x923391e4a4cde9e2'u64 ), toF( 0xdcb3acccba80597d'u64 ), toF( 0x247bb4b67044a0e1'u64 ), toF( 0x65bbac92e096d1ec'u64 ) ] )
, ( 34 , [ toF( 0x1550d0234ae35f05'u64 ), toF( 0x16f4d1708923d4f1'u64 ), toF( 0x232319cb4090ea4e'u64 ), toF( 0x8354e1aed093070c'u64 ) ] )
, ( 35 , [ toF( 0xc7dd24e6db4ea70f'u64 ), toF( 0x80bc3d2aac952cb1'u64 ), toF( 0xabbd1a878bc50565'u64 ), toF( 0xf1ebc3b8d513c591'u64 ) ] )
, ( 36 , [ toF( 0xba9c4b1ce906efb1'u64 ), toF( 0xa332d0daccc62979'u64 ), toF( 0xfb658fcad0b5fbbd'u64 ), toF( 0x62d21407f34a35ee'u64 ) ] )
, ( 37 , [ toF( 0xcb2973d44f2b589d'u64 ), toF( 0x01708b32c4556317'u64 ), toF( 0x3ad51597c12b8564'u64 ), toF( 0x28d3a5d7de72cfd5'u64 ) ] )
, ( 38 , [ toF( 0x1dcf1f4ab7338296'u64 ), toF( 0xb88c661141b5aabb'u64 ), toF( 0x7e546b6e9b31bc90'u64 ), toF( 0xf26f7e6ffabb4e69'u64 ) ] )
, ( 39 , [ toF( 0x2e139ff910c0f410'u64 ), toF( 0xba3d2c0a92ec3845'u64 ), toF( 0x2860e475933a7108'u64 ), toF( 0x8f2a6c6d13bedc7a'u64 ) ] )
, ( 40 , [ toF( 0xc18a53c17c360ef4'u64 ), toF( 0x5e56ea9228988c68'u64 ), toF( 0xee0bd138436e996d'u64 ), toF( 0x06afd46a753f8257'u64 ) ] )
, ( 41 , [ toF( 0x2c992403c5277dc5'u64 ), toF( 0xba8770bc3a54b043'u64 ), toF( 0x51b882882a7b7864'u64 ), toF( 0xf75e179a53e7948e'u64 ) ] )
, ( 42 , [ toF( 0xde855183965741c3'u64 ), toF( 0x93520eac77a8f98d'u64 ), toF( 0x6412ae8cf0522d78'u64 ), toF( 0x9db49c6b455a83b4'u64 ) ] )
, ( 43 , [ toF( 0x552e357ddb7e1ef6'u64 ), toF( 0x5fa779e9c7373b56'u64 ), toF( 0x18f7c445e27e5dcf'u64 ), toF( 0x2664ecee5e7bc6c2'u64 ) ] )
, ( 44 , [ toF( 0x37b8a716c87e5489'u64 ), toF( 0x1201fcd31e407152'u64 ), toF( 0x0979d7887c42e1ca'u64 ), toF( 0x902e8b2bf748b356'u64 ) ] )
, ( 45 , [ toF( 0xa48bdd1d464960ed'u64 ), toF( 0x8e92c1af0cf258bc'u64 ), toF( 0x7c5b447524b92ba9'u64 ), toF( 0xac63902e613e4ef0'u64 ) ] )
, ( 46 , [ toF( 0x542e62f9317fe11d'u64 ), toF( 0xc23ba113a3f3c810'u64 ), toF( 0x2bda30c42a89cc7e'u64 ), toF( 0x35616e9f1a00aa8f'u64 ) ] )
, ( 47 , [ toF( 0x1c9194a0acfa97d7'u64 ), toF( 0x60d536ac106dd774'u64 ), toF( 0x8855b4a40e110080'u64 ), toF( 0xc2c408114e8c20d6'u64 ) ] )
, ( 48 , [ toF( 0x0e90b1cc3ac49e0c'u64 ), toF( 0x1b73aa8e0decbf88'u64 ), toF( 0x0ca9ef7070e0513f'u64 ), toF( 0x25cfb975571b6139'u64 ) ] )
, ( 49 , [ toF( 0xba6d6f7aa664f2e7'u64 ), toF( 0x4b9af896093937b9'u64 ), toF( 0x115b9aeb6c5f563e'u64 ), toF( 0x41cb5f42c6d3b115'u64 ) ] )
, ( 50 , [ toF( 0xdc3bdc491154caf6'u64 ), toF( 0xb95159bae61b2035'u64 ), toF( 0x98bd384fb3d0100b'u64 ), toF( 0xd70226f2b71ea465'u64 ) ] )
, ( 51 , [ toF( 0x57f31da51bcd2eab'u64 ), toF( 0x4a3b3945a8662b5c'u64 ), toF( 0x44dffaa325530b19'u64 ), toF( 0x47f4e41c2c1474cf'u64 ) ] )
, ( 52 , [ toF( 0xc3f518f6cf3b43bf'u64 ), toF( 0x1214790ff48554e4'u64 ), toF( 0x99c1eabc61b218fd'u64 ), toF( 0xf90b03954d7937f8'u64 ) ] )
, ( 53 , [ toF( 0x6357b3cdcbc1283a'u64 ), toF( 0x6acc0c2d5aac9261'u64 ), toF( 0xdf11e7ad14d432d1'u64 ), toF( 0x2242b26bdcc8a380'u64 ) ] )
, ( 54 , [ toF( 0x1946dc4471f8c502'u64 ), toF( 0x6be7d72499e0b4a5'u64 ), toF( 0x6e11de349239ff90'u64 ), toF( 0xfca78044256b8b54'u64 ) ] )
, ( 55 , [ toF( 0x302b38fb3df623dd'u64 ), toF( 0x69b362f7932fd7af'u64 ), toF( 0x2b47156f9135508b'u64 ), toF( 0xfe6c574f0a102e92'u64 ) ] )
, ( 56 , [ toF( 0xfdc9bd08a0416122'u64 ), toF( 0x063ebf4767fc7914'u64 ), toF( 0x330f36279d94050e'u64 ), toF( 0x79c61f80746893ec'u64 ) ] )
, ( 57 , [ toF( 0x7b5d8384b67af5c0'u64 ), toF( 0xa705e0163fa4d839'u64 ), toF( 0x1e203432e872104e'u64 ), toF( 0xe0e7699f20a291f4'u64 ) ] )
, ( 58 , [ toF( 0xb0aa74a52fe04366'u64 ), toF( 0x194b0d4afcdc03d9'u64 ), toF( 0x5134dc604b5d9f2a'u64 ), toF( 0x53c6bf9d5a1d502b'u64 ) ] )
, ( 59 , [ toF( 0xd5c8258f6fc80e2b'u64 ), toF( 0x82bac373eb051b48'u64 ), toF( 0x5ef620241420462d'u64 ), toF( 0x58635db0134fb97a'u64 ) ] )
, ( 60 , [ toF( 0x42ebb974ac5dd0ef'u64 ), toF( 0x676d0c6b3dde78c3'u64 ), toF( 0x14ed5eda2c9cb9de'u64 ), toF( 0x0f78a26badaa447c'u64 ) ] )
, ( 61 , [ toF( 0x2b3ca7711db999d5'u64 ), toF( 0xb74bd29abcb6179a'u64 ), toF( 0x8ba196525e6adb25'u64 ), toF( 0x86cb9464ae269a43'u64 ) ] )
, ( 62 , [ toF( 0x3d0e61a2ca7a65a2'u64 ), toF( 0x31f77852d41a6c8d'u64 ), toF( 0x2e4ceaa39763a53d'u64 ), toF( 0x5232ff5a3d78755e'u64 ) ] )
, ( 63 , [ toF( 0xb2ed789e88c1f525'u64 ), toF( 0x1592c1a1eafd2a9b'u64 ), toF( 0x98700c512f8c9a5d'u64 ), toF( 0xf96837b5d99a4eb4'u64 ) ] )
, ( 64 , [ toF( 0xe4b7d14e11de2fa9'u64 ), toF( 0xe81afff2cee68e14'u64 ), toF( 0xc58abb080bf37dd3'u64 ), toF( 0x36ae8b2196b5ae88'u64 ) ] )
, ( 65 , [ toF( 0xa1df9ff199c41d63'u64 ), toF( 0xd02c067d3d12edc1'u64 ), toF( 0xc9b598130fa60794'u64 ), toF( 0x5afe82d34c3fc8fa'u64 ) ] )
, ( 66 , [ toF( 0x0bc0094a1f07256d'u64 ), toF( 0x33c5b4c2a171d5bd'u64 ), toF( 0x1f38f1b1dc92aa54'u64 ), toF( 0x4610d21f276faa11'u64 ) ] )
, ( 67 , [ toF( 0x8072f00df8f7e44f'u64 ), toF( 0x42f0c2b8fe81d8a0'u64 ), toF( 0x2b5caf9e7c0ff611'u64 ), toF( 0x92b0b3a4a4bebe1a'u64 ) ] )
, ( 68 , [ toF( 0x6539f06fab064b57'u64 ), toF( 0xdb298b91f6c4f44f'u64 ), toF( 0x5d8f8eec6b7e8c86'u64 ), toF( 0x848a447123f39006'u64 ) ] )
, ( 69 , [ toF( 0x87f32efc9eaa65f6'u64 ), toF( 0xc5699d4ab6443852'u64 ), toF( 0x61008286bc651f4a'u64 ), toF( 0xcbcf714354843da3'u64 ) ] )
, ( 70 , [ toF( 0xffb8ad2258107315'u64 ), toF( 0xf7d6a58eb54f2745'u64 ), toF( 0xaecf888211821114'u64 ), toF( 0x7e0ea33b4d56976e'u64 ) ] )
, ( 71 , [ toF( 0xa9e5b6d70f67db2b'u64 ), toF( 0x072fd05840040322'u64 ), toF( 0x40ffcc86e3909dec'u64 ), toF( 0x3d80f61616a9e6d7'u64 ) ] )
, ( 72 , [ toF( 0xa77dd95d9ff4d7b8'u64 ), toF( 0x3a0e0502f74c091a'u64 ), toF( 0x1fa83de1e7dc716d'u64 ), toF( 0xe01ae447cc3a0e40'u64 ) ] )
, ( 73 , [ toF( 0xc4a29dc875a308eb'u64 ), toF( 0xd2ed0da7aab24b0c'u64 ), toF( 0x4c2aaaed0bc4f059'u64 ), toF( 0xaea772c635ea901a'u64 ) ] )
, ( 74 , [ toF( 0xaad59bf06c151ecf'u64 ), toF( 0x5e0f45e55df36692'u64 ), toF( 0x4798afb8b944a01e'u64 ), toF( 0xd7152cd819bbd7f8'u64 ) ] )
, ( 75 , [ toF( 0x89ae5b2b35ba07c7'u64 ), toF( 0x129f4ff59afaa1a3'u64 ), toF( 0x4275f3f797112650'u64 ), toF( 0xea3b4baaf7190a19'u64 ) ] )
, ( 76 , [ toF( 0xab068e43be297604'u64 ), toF( 0x17bd1c3cf4afec96'u64 ), toF( 0xaa84a8098dba4516'u64 ), toF( 0xa6e487ceafb02c49'u64 ) ] )
, ( 77 , [ toF( 0x2c85080ef895bb4a'u64 ), toF( 0xbd280690a789c124'u64 ), toF( 0xca4f8423b50de8a5'u64 ), toF( 0xec809bb8c30de95b'u64 ) ] )
, ( 78 , [ toF( 0x51c3d13543e4922b'u64 ), toF( 0xff9c11d5b93268db'u64 ), toF( 0xd9cf911cc5326948'u64 ), toF( 0x4b7bb11eafe7fd44'u64 ) ] )
, ( 79 , [ toF( 0xb435274d75678586'u64 ), toF( 0x8600e7f2db687493'u64 ), toF( 0x282873a3600a38da'u64 ), toF( 0x727791507d1b600e'u64 ) ] )
, ( 80 , [ toF( 0x23ae45602324f628'u64 ), toF( 0x0dc16b33f43209c5'u64 ), toF( 0x2455376f83b1aeff'u64 ), toF( 0xd5470f22ec2113bc'u64 ) ] )
]
const testcases_bytes_rate4* : array[81, tuple[n:int,digest:F4]] =
[ ( 0 , [ toF( 0x06a285e1404e12dd'u64 ), toF( 0xf7579f32f66d479b'u64 ), toF( 0xa826f1cd79abcf67'u64 ), toF( 0x11bbf2a7b18e64e2'u64 ) ] )
, ( 1 , [ toF( 0xec8f31e2cc5f9997'u64 ), toF( 0x2af93daf34e803c1'u64 ), toF( 0xe1c5e1fd5fb56ea6'u64 ), toF( 0x22e4308f9d959558'u64 ) ] )
, ( 2 , [ toF( 0xd438319a37ac869d'u64 ), toF( 0x6e450a87aa4fa3d9'u64 ), toF( 0x6f617e8e99603e2b'u64 ), toF( 0xa68c214de9923162'u64 ) ] )
, ( 3 , [ toF( 0x2750ad7550d816cf'u64 ), toF( 0xe771f8f514375749'u64 ), toF( 0x4a96d35dbc6f6448'u64 ), toF( 0xdb99bdd2cd67d5bd'u64 ) ] )
, ( 4 , [ toF( 0xd93421cd06c9e8df'u64 ), toF( 0x5bffaaa8542c6f5c'u64 ), toF( 0x4d1c3aa93c0a764d'u64 ), toF( 0x6eab3a8247b9c3de'u64 ) ] )
, ( 5 , [ toF( 0xc535b40241bc638b'u64 ), toF( 0x967c95ae2ee4f5c9'u64 ), toF( 0x3f600ecb27ec1c33'u64 ), toF( 0xc1e86d39889fe60f'u64 ) ] )
, ( 6 , [ toF( 0x2bff260f1a599862'u64 ), toF( 0x5847c0646f6feeb7'u64 ), toF( 0x04a5127b04e8a749'u64 ), toF( 0x76dac67904021b2b'u64 ) ] )
, ( 7 , [ toF( 0x851e5b5158da2e08'u64 ), toF( 0xb68e104f7028a1ba'u64 ), toF( 0x2db078ef5eaf61db'u64 ), toF( 0x8f36d8579f410d46'u64 ) ] )
, ( 8 , [ toF( 0x7e054abe8051a62a'u64 ), toF( 0x202c74b2f59acf76'u64 ), toF( 0x4cd8cd547f733dd2'u64 ), toF( 0xa7dae0fb7bd9feec'u64 ) ] )
, ( 9 , [ toF( 0x54a56ef969bc6174'u64 ), toF( 0xae08e9e6f5a528f3'u64 ), toF( 0x778b8d7464908e51'u64 ), toF( 0x8b598217016b9980'u64 ) ] )
, ( 10 , [ toF( 0x96c692e022c2dd9b'u64 ), toF( 0x940ff34829e47388'u64 ), toF( 0x4512efef53f80103'u64 ), toF( 0x329ef8a44884c629'u64 ) ] )
, ( 11 , [ toF( 0xfb1c329ef6c581ae'u64 ), toF( 0x074f55d00e2d8cb0'u64 ), toF( 0xc388de148723fc43'u64 ), toF( 0xf55fd51561a5e8e4'u64 ) ] )
, ( 12 , [ toF( 0x5797b717c633148d'u64 ), toF( 0x1972452faabc5a5f'u64 ), toF( 0x31c6adbebf845a8e'u64 ), toF( 0xd35ef51be18b4426'u64 ) ] )
, ( 13 , [ toF( 0x072d7d5d3cccae8d'u64 ), toF( 0x7fee4b627374c4ce'u64 ), toF( 0x01970644075fbfe3'u64 ), toF( 0x2d0cd3890c8d6887'u64 ) ] )
, ( 14 , [ toF( 0xf043adb0d5cca573'u64 ), toF( 0xf358b5c65f178ce3'u64 ), toF( 0xcdf73271802d3b50'u64 ), toF( 0xe585be4eb031ea22'u64 ) ] )
, ( 15 , [ toF( 0x75134cd231080897'u64 ), toF( 0x4d19e6111ec095c6'u64 ), toF( 0x0ed5ebed09b630cb'u64 ), toF( 0x370c5e8487f8462e'u64 ) ] )
, ( 16 , [ toF( 0x3c5bf7fa0d34d72c'u64 ), toF( 0x790e158b1629380b'u64 ), toF( 0xd726b57a82feede1'u64 ), toF( 0x3cfd3650140d5dbd'u64 ) ] )
, ( 17 , [ toF( 0x68087c14502eaf51'u64 ), toF( 0x86b525973729e896'u64 ), toF( 0xe834606620ab5760'u64 ), toF( 0x868571bcb8affed0'u64 ) ] )
, ( 18 , [ toF( 0x79e297e0cd813526'u64 ), toF( 0x63837dd3bfb1e3b8'u64 ), toF( 0x8960e4fe76b95991'u64 ), toF( 0x64d98011f6fdf8a5'u64 ) ] )
, ( 19 , [ toF( 0x039e8135f6840009'u64 ), toF( 0x801170448af4a35d'u64 ), toF( 0xaae1f0394307c259'u64 ), toF( 0x0f7fa706e405cc30'u64 ) ] )
, ( 20 , [ toF( 0x548bbc61388829bc'u64 ), toF( 0xbfd2b615933a2309'u64 ), toF( 0x0ec7a6ef066997bb'u64 ), toF( 0x88b884fa83537943'u64 ) ] )
, ( 21 , [ toF( 0x4903ec0f6f27c4b1'u64 ), toF( 0xd3c34d74d10881b2'u64 ), toF( 0xcff5dc603572c0f1'u64 ), toF( 0x8371aa2d8d2a7f3b'u64 ) ] )
, ( 22 , [ toF( 0xeeafbe556c7aae0f'u64 ), toF( 0x4f886422ab5d6ed4'u64 ), toF( 0x14337ead6c62b484'u64 ), toF( 0xffddb523967929e2'u64 ) ] )
, ( 23 , [ toF( 0x8b368c7dba54386f'u64 ), toF( 0x62bba93e18e10d76'u64 ), toF( 0x79773cc71a9bb244'u64 ), toF( 0x03f0855d4046b80d'u64 ) ] )
, ( 24 , [ toF( 0xa67556b25a0aeb97'u64 ), toF( 0xf1da9eb37e6072cf'u64 ), toF( 0x8246c314c469f266'u64 ), toF( 0xdc9bac6c0cfab5f9'u64 ) ] )
, ( 25 , [ toF( 0x56ad40d5a70a7c1e'u64 ), toF( 0xb7438ed03dd53d4a'u64 ), toF( 0x6dd8d94f20ec823f'u64 ), toF( 0x9ccb30f5f9ba9d5f'u64 ) ] )
, ( 26 , [ toF( 0x6ad370f6d28f8bf0'u64 ), toF( 0x76435dff4ca2feb4'u64 ), toF( 0x66912c02fce2ef13'u64 ), toF( 0xdd06ad82ec1df2e1'u64 ) ] )
, ( 27 , [ toF( 0xadf13e811e0650a2'u64 ), toF( 0xa8c6cd40d08320f7'u64 ), toF( 0x20ad5b2c486665d9'u64 ), toF( 0x70d33b7ad74dc47b'u64 ) ] )
, ( 28 , [ toF( 0xb03ec9ddc379d06c'u64 ), toF( 0x1d87c701bdfe3ddc'u64 ), toF( 0xf91eb1e6a2c7786e'u64 ), toF( 0x661399f5a52e3d91'u64 ) ] )
, ( 29 , [ toF( 0xc61c4b33ae97e2d7'u64 ), toF( 0xbfff1c0c72cc2ae5'u64 ), toF( 0xc3a9414941bc2a9a'u64 ), toF( 0xae0da04e3501ede4'u64 ) ] )
, ( 30 , [ toF( 0x894d3364249c1de0'u64 ), toF( 0x93fde4670a308ef2'u64 ), toF( 0xdc4502f695484bfc'u64 ), toF( 0xf0ac47d14c48cc92'u64 ) ] )
, ( 31 , [ toF( 0xed016a4f74f2ec45'u64 ), toF( 0xc8464891353321b0'u64 ), toF( 0x44513153c214e448'u64 ), toF( 0xff37a71b91c1b497'u64 ) ] )
, ( 32 , [ toF( 0xed155f573ad78385'u64 ), toF( 0x6f0ebd1a00a7385a'u64 ), toF( 0x5bda43296f079b5e'u64 ), toF( 0xbde3821444421a82'u64 ) ] )
, ( 33 , [ toF( 0xb69d105173ab70b5'u64 ), toF( 0x04a3edc2fe8e5853'u64 ), toF( 0x94551e3b3e9a27a8'u64 ), toF( 0x0e19b1efdc2a835b'u64 ) ] )
, ( 34 , [ toF( 0x14f9a4d4e4d58143'u64 ), toF( 0x878a52bf78286386'u64 ), toF( 0xf9fd7517c015b7f8'u64 ), toF( 0x5d53e09dbc04a58d'u64 ) ] )
, ( 35 , [ toF( 0xe934c98c9e080272'u64 ), toF( 0xa246d93716df9619'u64 ), toF( 0x933a376d48288784'u64 ), toF( 0x26ffa983b06a3708'u64 ) ] )
, ( 36 , [ toF( 0x88455aa200ac34c6'u64 ), toF( 0xc861dad8923e2986'u64 ), toF( 0x3e9b01c20b0e50b8'u64 ), toF( 0x39cefad34d0cb702'u64 ) ] )
, ( 37 , [ toF( 0xc7bb034f1b4c8b15'u64 ), toF( 0x8168b4cedbbdb76d'u64 ), toF( 0x86dfd8b91438823a'u64 ), toF( 0x6249ed8e886d298f'u64 ) ] )
, ( 38 , [ toF( 0xef1eb70d1df3775c'u64 ), toF( 0xd9456de6c1fd7809'u64 ), toF( 0x935266d57c9a37bb'u64 ), toF( 0x628e53aae0076d9f'u64 ) ] )
, ( 39 , [ toF( 0x0d472c5d86cf3ac6'u64 ), toF( 0x1c9849fbbff7cc08'u64 ), toF( 0xae9128aff97f2c72'u64 ), toF( 0x7229b931e2c1b9e3'u64 ) ] )
, ( 40 , [ toF( 0x88525a7a308bcda5'u64 ), toF( 0xaa93d7f3c77ee548'u64 ), toF( 0xabf90a6697e74c34'u64 ), toF( 0xd6ed727a165e28a1'u64 ) ] )
, ( 41 , [ toF( 0x08c46d53fe3c070d'u64 ), toF( 0xcbc9b4f8ca22172d'u64 ), toF( 0xb2538147a36e392a'u64 ), toF( 0xba5c9c2052d6028c'u64 ) ] )
, ( 42 , [ toF( 0x413d59e3ad5772f5'u64 ), toF( 0xe550ee030ad810a7'u64 ), toF( 0xfc6ea6108fef8333'u64 ), toF( 0x81d2ebafa03a2c33'u64 ) ] )
, ( 43 , [ toF( 0x9314b17f1d3c0ae1'u64 ), toF( 0x562bfcbee92a63df'u64 ), toF( 0xcd836094c599540a'u64 ), toF( 0x766891366345b3e1'u64 ) ] )
, ( 44 , [ toF( 0x31cbacacc9756251'u64 ), toF( 0x99d476bc93e47129'u64 ), toF( 0x63bbe1d68969c4fb'u64 ), toF( 0xaf5e928b6f7a62f7'u64 ) ] )
, ( 45 , [ toF( 0x3bef15b553530293'u64 ), toF( 0x733d43f40ccbc043'u64 ), toF( 0x56079c083eba16fe'u64 ), toF( 0xec7e258046adaa12'u64 ) ] )
, ( 46 , [ toF( 0x2e2f52206da3d1d3'u64 ), toF( 0x54180f373e707351'u64 ), toF( 0xd46bc02d3a22065e'u64 ), toF( 0x5e7ddf1adb400ef4'u64 ) ] )
, ( 47 , [ toF( 0xfd7a0c44a46b96e1'u64 ), toF( 0x7b378abb46d3e940'u64 ), toF( 0xd49e7009c938676a'u64 ), toF( 0x3337f173e0f4834c'u64 ) ] )
, ( 48 , [ toF( 0xfee88023c9f80e6a'u64 ), toF( 0xbb909942c85414e9'u64 ), toF( 0xf1e823e61e5e6779'u64 ), toF( 0x3797517f574a7373'u64 ) ] )
, ( 49 , [ toF( 0xd3102d65c0ce086a'u64 ), toF( 0xc85b44a24001c4fc'u64 ), toF( 0x1a1278f007bac097'u64 ), toF( 0xd2383edca6a46d04'u64 ) ] )
, ( 50 , [ toF( 0x15dd94e2ab2b94d1'u64 ), toF( 0x55d9e1e7eeb8974f'u64 ), toF( 0x4901290d547c4efc'u64 ), toF( 0x1442d88754e45932'u64 ) ] )
, ( 51 , [ toF( 0x01ca7ed22bc806a2'u64 ), toF( 0xa435a2978b703558'u64 ), toF( 0xc62abede8cfb3ed3'u64 ), toF( 0x8b516175ee0953af'u64 ) ] )
, ( 52 , [ toF( 0x209eb4fe95170c95'u64 ), toF( 0xab75cef26ad15d96'u64 ), toF( 0x2181c8af33eb14fd'u64 ), toF( 0xd9dc5e921dac41f3'u64 ) ] )
, ( 53 , [ toF( 0x8b94ab08216e5c5b'u64 ), toF( 0xc840aeebc461a7b3'u64 ), toF( 0xbc3f777ce64267d3'u64 ), toF( 0x5a77f4107140f3e9'u64 ) ] )
, ( 54 , [ toF( 0x64f6f374be3abdc1'u64 ), toF( 0xba0e088b6e0143e0'u64 ), toF( 0x675f506271e49cab'u64 ), toF( 0x4554e2237a117598'u64 ) ] )
, ( 55 , [ toF( 0xeb0d229d67233c8f'u64 ), toF( 0xb3a43ad7dcf10377'u64 ), toF( 0x097291afa75302a0'u64 ), toF( 0x2187a1609d9d0d5c'u64 ) ] )
, ( 56 , [ toF( 0x35261955ba9a43ac'u64 ), toF( 0x2397d031a39462d7'u64 ), toF( 0xaabc851466791c61'u64 ), toF( 0xe42076884d2fd1b6'u64 ) ] )
, ( 57 , [ toF( 0x897e800f17bea4ba'u64 ), toF( 0x4e24f00572496384'u64 ), toF( 0xa8822379bc2947f5'u64 ), toF( 0xeac0db5e14b43022'u64 ) ] )
, ( 58 , [ toF( 0xd185fb871dfd0435'u64 ), toF( 0x2ccffb5aabb37794'u64 ), toF( 0xf321828867532eec'u64 ), toF( 0x54427d1e94f54f02'u64 ) ] )
, ( 59 , [ toF( 0x64df7e01f830bbd5'u64 ), toF( 0x047c81660c8b09f1'u64 ), toF( 0x54accd05a0523586'u64 ), toF( 0xa922dc68366d1178'u64 ) ] )
, ( 60 , [ toF( 0xb936d6ab259fd174'u64 ), toF( 0x3b5f857b3ede2487'u64 ), toF( 0x2706636edb4f43ae'u64 ), toF( 0xb697ab5e13e53785'u64 ) ] )
, ( 61 , [ toF( 0x2bf084d28b4e14d5'u64 ), toF( 0x612a222fa376c9f8'u64 ), toF( 0x2af03575f0b56f90'u64 ), toF( 0xedbea321deead3d1'u64 ) ] )
, ( 62 , [ toF( 0xc99c8263cd9230f3'u64 ), toF( 0x178596f5443a1ec9'u64 ), toF( 0x1f4e66d71bc06ccf'u64 ), toF( 0x407f1b5680067158'u64 ) ] )
, ( 63 , [ toF( 0x0c1a7fd18440b0c2'u64 ), toF( 0xa3672a16596bd1c1'u64 ), toF( 0x6f3728eaaf68f0dc'u64 ), toF( 0xa2303c43e5ca7393'u64 ) ] )
, ( 64 , [ toF( 0xe21f913ce35ac03e'u64 ), toF( 0x8b77f1cee74cf2c8'u64 ), toF( 0xf3fd976543292775'u64 ), toF( 0x6b7fc3419b34771a'u64 ) ] )
, ( 65 , [ toF( 0xde33c4fca752747b'u64 ), toF( 0xbf3ff757931fead8'u64 ), toF( 0x03ae1695a74f4f9a'u64 ), toF( 0xd173472d1b783b06'u64 ) ] )
, ( 66 , [ toF( 0x60a60fb15332b125'u64 ), toF( 0x9cd2e8d835fb1c5f'u64 ), toF( 0x3dce8831d3c8271a'u64 ), toF( 0xd4a6dde707d5b106'u64 ) ] )
, ( 67 , [ toF( 0x428c1606558300f3'u64 ), toF( 0xe6ba538b3ce2f058'u64 ), toF( 0x32aaa175352ad4f6'u64 ), toF( 0x2981a52e8e4feefa'u64 ) ] )
, ( 68 , [ toF( 0xc38952d82f177fc1'u64 ), toF( 0x1f90a30285d9d2e3'u64 ), toF( 0x163c1fc60e4c4e6c'u64 ), toF( 0xb3d94467be3109f7'u64 ) ] )
, ( 69 , [ toF( 0x59f27850e3b87e36'u64 ), toF( 0xf7950a99b7aef8c0'u64 ), toF( 0x8d6ab69f81080bab'u64 ), toF( 0xf050ef7d50b25446'u64 ) ] )
, ( 70 , [ toF( 0x0161449dcbb98a47'u64 ), toF( 0x8f9b0ff7af326e84'u64 ), toF( 0x4eebf41a232325b8'u64 ), toF( 0x8b65b87012887f1e'u64 ) ] )
, ( 71 , [ toF( 0xc7be7bbe74442b68'u64 ), toF( 0x4efaea90e9d8551f'u64 ), toF( 0x8d9b23ba486b7089'u64 ), toF( 0x87d9bb2e1b535137'u64 ) ] )
, ( 72 , [ toF( 0xe84984ebaf726ece'u64 ), toF( 0x2eacf49314a6b489'u64 ), toF( 0x5524d8965f9784e1'u64 ), toF( 0x157f3177b25fb75b'u64 ) ] )
, ( 73 , [ toF( 0xe4fc0ce146b44792'u64 ), toF( 0xbfc23768f280aa3e'u64 ), toF( 0x7fa66647867394cf'u64 ), toF( 0xc26956a0a923bef8'u64 ) ] )
, ( 74 , [ toF( 0x4ece6fac049a5349'u64 ), toF( 0xf8cc3be725406820'u64 ), toF( 0xda76b56082d50583'u64 ), toF( 0xedcffbac1e07a920'u64 ) ] )
, ( 75 , [ toF( 0x6c1412905d3bd008'u64 ), toF( 0x7417f40fcc52d374'u64 ), toF( 0x19cd2c91c8b30fb3'u64 ), toF( 0x99399983cf00b0cd'u64 ) ] )
, ( 76 , [ toF( 0x5ed332bffed86f36'u64 ), toF( 0x2f57c817759fa5ba'u64 ), toF( 0x6773f9d457d22dc6'u64 ), toF( 0xffdaf9f549e1a1dc'u64 ) ] )
, ( 77 , [ toF( 0xad2a51281eabbb2f'u64 ), toF( 0xfbf885ac746a11a6'u64 ), toF( 0x3ee91e1f17aa18c0'u64 ), toF( 0xbd91ab7e5d3d9ba5'u64 ) ] )
, ( 78 , [ toF( 0x160ef4f1d131eb5c'u64 ), toF( 0xdf986bc88a349ba8'u64 ), toF( 0x99273ccaf11bc742'u64 ), toF( 0xc09ca9303ecd7a95'u64 ) ] )
, ( 79 , [ toF( 0xc8b916386786baf9'u64 ), toF( 0x1984dfffe678ef2e'u64 ), toF( 0xd25c6932699529fc'u64 ), toF( 0x44e1a565de182e24'u64 ) ] )
, ( 80 , [ toF( 0xc288164408fbf290'u64 ), toF( 0x5a145d36d375bf1b'u64 ), toF( 0xfc921688d51ebd1e'u64 ), toF( 0x1bac887df3cc4a34'u64 ) ] )
]
const testcases_bytes_rate8* : array[81, tuple[n:int,digest:F4]] =
[ ( 0 , [ toF( 0xa71efb792775af71'u64 ), toF( 0x2064465f503cb64b'u64 ), toF( 0xaaf2462603add4e4'u64 ), toF( 0x624af691db1f31b4'u64 ) ] )
, ( 1 , [ toF( 0x1460da7415280afd'u64 ), toF( 0x52839224731ae02d'u64 ), toF( 0xffe03215cd2aeb33'u64 ), toF( 0x763f0e72ce5a0540'u64 ) ] )
, ( 2 , [ toF( 0x467db61976fa1ae6'u64 ), toF( 0xbf2ade5297a35d4c'u64 ), toF( 0x169ac5af6fd80e9c'u64 ), toF( 0xcdd2fa4b14069298'u64 ) ] )
, ( 3 , [ toF( 0x35a8fd00f2bd772e'u64 ), toF( 0x1e0dadfe3b0864e2'u64 ), toF( 0x3f4fb72335ecee53'u64 ), toF( 0xf490a8eadd145834'u64 ) ] )
, ( 4 , [ toF( 0xd591bef16061a09a'u64 ), toF( 0x89dcf554a816c403'u64 ), toF( 0x80af50d64f525b7c'u64 ), toF( 0xcd0e5915dfcb61fb'u64 ) ] )
, ( 5 , [ toF( 0x57db3723046c90a2'u64 ), toF( 0xc9a83418c4e11db5'u64 ), toF( 0x4d3f878d99880748'u64 ), toF( 0x59fad57980c6608e'u64 ) ] )
, ( 6 , [ toF( 0x220cd4f315b3186d'u64 ), toF( 0x87cf82260c9feca1'u64 ), toF( 0x53dbd246c735a5d8'u64 ), toF( 0xa0897aae20fafb3f'u64 ) ] )
, ( 7 , [ toF( 0xa906648ef48d6416'u64 ), toF( 0xd6534a5d7e9f1aa0'u64 ), toF( 0xb58fa22d55a0b463'u64 ), toF( 0x2854310f3f51a1fe'u64 ) ] )
, ( 8 , [ toF( 0x6e73442f9b52e8da'u64 ), toF( 0xe4da1f14442a2a53'u64 ), toF( 0x06947604cda62fc0'u64 ), toF( 0xdbef3462252de7dc'u64 ) ] )
, ( 9 , [ toF( 0x2a2b887fe834a472'u64 ), toF( 0x2b7969e577e4115a'u64 ), toF( 0x44b38c320dba5241'u64 ), toF( 0xa1abdbf31feda23f'u64 ) ] )
, ( 10 , [ toF( 0x53ce0cab3fc41069'u64 ), toF( 0xd847f0de465202ba'u64 ), toF( 0x555bdfb6097511b3'u64 ), toF( 0x58ea282d28c822c7'u64 ) ] )
, ( 11 , [ toF( 0xb071c390b91267b6'u64 ), toF( 0x3fe35629994405bf'u64 ), toF( 0xd1afa127d85e5fa8'u64 ), toF( 0xd130f37093575727'u64 ) ] )
, ( 12 , [ toF( 0x66f623b92bff1cb2'u64 ), toF( 0xe66cc1f0c2c792a2'u64 ), toF( 0x3bf9cf257506afba'u64 ), toF( 0x99c039e2540e6aa5'u64 ) ] )
, ( 13 , [ toF( 0x808d118d154cf44d'u64 ), toF( 0x93b798658539aa1c'u64 ), toF( 0x08c9e86831c2a94b'u64 ), toF( 0x5c2d3fbf7e20fca1'u64 ) ] )
, ( 14 , [ toF( 0x07951b722679dff1'u64 ), toF( 0xc3c6e8106ec95bc7'u64 ), toF( 0x94705df3c4f51ca5'u64 ), toF( 0x1bdd3fea0a5126d9'u64 ) ] )
, ( 15 , [ toF( 0x329a1b245154d51d'u64 ), toF( 0xdd3ff7dc8978de53'u64 ), toF( 0x9421598ed5e51874'u64 ), toF( 0x66f40e3e1dd97a3a'u64 ) ] )
, ( 16 , [ toF( 0x26bd29f3ce46fa9a'u64 ), toF( 0x72da3a824eeba107'u64 ), toF( 0xc987661b52f625d4'u64 ), toF( 0x5a46c6f1682937dd'u64 ) ] )
, ( 17 , [ toF( 0xcb743ec8fbbf15e0'u64 ), toF( 0x5e14d219b6e9002b'u64 ), toF( 0xdb2fb3dad1af6948'u64 ), toF( 0x8f2ac2f9753e5444'u64 ) ] )
, ( 18 , [ toF( 0x772bb07471115059'u64 ), toF( 0x4eb041547083f5d9'u64 ), toF( 0x60d7be342de7c869'u64 ), toF( 0x8d1ec1ec89827b8a'u64 ) ] )
, ( 19 , [ toF( 0xe113b37d0f2916c6'u64 ), toF( 0x516eec61cacb3270'u64 ), toF( 0xac4bfbc822139edf'u64 ), toF( 0x329f015c18355e46'u64 ) ] )
, ( 20 , [ toF( 0xb9a58e3105561e8e'u64 ), toF( 0xe79ad7f7d8d338c7'u64 ), toF( 0xfcb9969924b3205b'u64 ), toF( 0x25efee535ca286ac'u64 ) ] )
, ( 21 , [ toF( 0x5fd1ccec816c941c'u64 ), toF( 0x808f1ad2301fc501'u64 ), toF( 0x50cb3ef96bb86d2c'u64 ), toF( 0x38d3ae5b11ed1313'u64 ) ] )
, ( 22 , [ toF( 0x530a9bbdd47c2be9'u64 ), toF( 0xda716467ec093518'u64 ), toF( 0x4af4d26288834ec5'u64 ), toF( 0xd71bcc854e2dd489'u64 ) ] )
, ( 23 , [ toF( 0xab70c0430576d365'u64 ), toF( 0xb163bb09b237c9d6'u64 ), toF( 0x2efa5bdc67e2383d'u64 ), toF( 0x69587492876ae89c'u64 ) ] )
, ( 24 , [ toF( 0x4a5ca1b0b5e6b286'u64 ), toF( 0x7cf3f90c4081cadd'u64 ), toF( 0x4c67ba82341ab9c0'u64 ), toF( 0x22a4e8b0c141d826'u64 ) ] )
, ( 25 , [ toF( 0xd08fa35f3d3d4cf6'u64 ), toF( 0x8c47f3976394772d'u64 ), toF( 0x08620c484f494b58'u64 ), toF( 0x16fcf057175d7e9f'u64 ) ] )
, ( 26 , [ toF( 0xe9eefb49278b5b4f'u64 ), toF( 0xf44c9fed33908874'u64 ), toF( 0x7dd409ddd75cbd5e'u64 ), toF( 0xca01a21a5fda106d'u64 ) ] )
, ( 27 , [ toF( 0xac2291a301323962'u64 ), toF( 0x2eed0d2ec0361b4e'u64 ), toF( 0x7e45a15c6a71c069'u64 ), toF( 0x3736d09c52b0dbe9'u64 ) ] )
, ( 28 , [ toF( 0x4a1fcfe45ec7ee6d'u64 ), toF( 0x29db245fe3d8d1ef'u64 ), toF( 0xba99cc0d0aeb50ca'u64 ), toF( 0xeeaeb81479284d94'u64 ) ] )
, ( 29 , [ toF( 0x2f551012efd3472e'u64 ), toF( 0x2e8276a5f2fe2d7e'u64 ), toF( 0x66cd143f5513d8bc'u64 ), toF( 0xab38979efc1a9181'u64 ) ] )
, ( 30 , [ toF( 0x37b30f133c598694'u64 ), toF( 0xc137d90baade0f61'u64 ), toF( 0x2a8ef1536e089992'u64 ), toF( 0x159261421ce99396'u64 ) ] )
, ( 31 , [ toF( 0x2c68a15f3a45380e'u64 ), toF( 0x973e9d0636a39a19'u64 ), toF( 0x9089907a6ed80ffd'u64 ), toF( 0x464e6adf532df984'u64 ) ] )
, ( 32 , [ toF( 0x5259f57c8dd6f97a'u64 ), toF( 0x1b3178f2313b3711'u64 ), toF( 0x338137e72fe7ed26'u64 ), toF( 0xbce3e9565d127425'u64 ) ] )
, ( 33 , [ toF( 0xbb927f2b474435a7'u64 ), toF( 0xf1abfed7766621cf'u64 ), toF( 0x51d82171bd2b936d'u64 ), toF( 0x2dfe6ca00927bb99'u64 ) ] )
, ( 34 , [ toF( 0xd9b013cd0b2bd58b'u64 ), toF( 0x45533a5ba19e3ff2'u64 ), toF( 0x8f6d35a914ebcb52'u64 ), toF( 0x05f27fcca3cb953d'u64 ) ] )
, ( 35 , [ toF( 0xfbff0d3244987205'u64 ), toF( 0xc4c7e79d444cddc9'u64 ), toF( 0xab7900993c850574'u64 ), toF( 0x62fecc859aee5ad3'u64 ) ] )
, ( 36 , [ toF( 0xdfe40741a4a6f3af'u64 ), toF( 0xb5cd2c0644aa7217'u64 ), toF( 0xb9f4f12426c4df5d'u64 ), toF( 0x489bea6a6675b287'u64 ) ] )
, ( 37 , [ toF( 0x5ef9ce3d06f0a445'u64 ), toF( 0xe38536434052ba14'u64 ), toF( 0x3c3514eb5e142a99'u64 ), toF( 0xce64e3b36fa8fd19'u64 ) ] )
, ( 38 , [ toF( 0x5e9c1a699d06acdd'u64 ), toF( 0xeb61bf5f4c20fdfa'u64 ), toF( 0xa6b69b1911c2f7ec'u64 ), toF( 0x871b8f436877b800'u64 ) ] )
, ( 39 , [ toF( 0x5d66a3cc48ce6901'u64 ), toF( 0xd717e9fddaf7d553'u64 ), toF( 0xb197574c2268ffa2'u64 ), toF( 0x7f2fb5ee7453168f'u64 ) ] )
, ( 40 , [ toF( 0xb00a3501d2b6ad36'u64 ), toF( 0xc19b29e6486ef02b'u64 ), toF( 0x3c6000a6f2086308'u64 ), toF( 0x1320f31cfeeea39e'u64 ) ] )
, ( 41 , [ toF( 0x4492a21b3fc5ca49'u64 ), toF( 0x94dd6c301ae6db96'u64 ), toF( 0x712478dcd88f764f'u64 ), toF( 0xcde32bf63ab7fa9c'u64 ) ] )
, ( 42 , [ toF( 0x402a4e52d8f8909d'u64 ), toF( 0x014b06ef9b61ff16'u64 ), toF( 0x95b4239ebd32b636'u64 ), toF( 0x2019bff04ac60dab'u64 ) ] )
, ( 43 , [ toF( 0x1ef1e2ff781e9c4c'u64 ), toF( 0xea578e91dde38a54'u64 ), toF( 0xf7296fb269356a45'u64 ), toF( 0x296594f24649ad7c'u64 ) ] )
, ( 44 , [ toF( 0xcdebe3e014f187f0'u64 ), toF( 0x6283714a1e9cec20'u64 ), toF( 0x1b7056f5d8711fc1'u64 ), toF( 0xf7cbb0b8c51f19b0'u64 ) ] )
, ( 45 , [ toF( 0x76d428e01793696a'u64 ), toF( 0xbd6f2f2c77fd0521'u64 ), toF( 0x350e8b936c78f268'u64 ), toF( 0x0789d02b1ff82b0b'u64 ) ] )
, ( 46 , [ toF( 0xdecce1214d4225e7'u64 ), toF( 0xcdfb198e299f402b'u64 ), toF( 0x669dd96208bed6f5'u64 ), toF( 0x930185b80b7ee215'u64 ) ] )
, ( 47 , [ toF( 0x41e129b649958e76'u64 ), toF( 0x30844420e30da488'u64 ), toF( 0xe61d94eef16ebf04'u64 ), toF( 0x6740228adee2d0fa'u64 ) ] )
, ( 48 , [ toF( 0xfd64425aa84f4773'u64 ), toF( 0x535ce7241ab05f39'u64 ), toF( 0xa9a14b49e95dca07'u64 ), toF( 0x842ec01673b3bf10'u64 ) ] )
, ( 49 , [ toF( 0xa1a7265af058b0ac'u64 ), toF( 0x7f8804a2f4533b77'u64 ), toF( 0x5faf993f6fae53ec'u64 ), toF( 0x23fa47668f5b3a26'u64 ) ] )
, ( 50 , [ toF( 0xb7daf116628c9bbb'u64 ), toF( 0x35876e57941eea42'u64 ), toF( 0xa011592934d89cd3'u64 ), toF( 0x427a04bcf39a4cdb'u64 ) ] )
, ( 51 , [ toF( 0x292d25c5b0dab7e5'u64 ), toF( 0x64959fdfbd61eba3'u64 ), toF( 0x7bb68504c2a4159a'u64 ), toF( 0x5c207ed2cc3663f1'u64 ) ] )
, ( 52 , [ toF( 0xbff863af826f2beb'u64 ), toF( 0x50baf768f83299ef'u64 ), toF( 0xf75c21dc8352f4bd'u64 ), toF( 0x33cf5305f9c95a02'u64 ) ] )
, ( 53 , [ toF( 0x38d2662c10e9138d'u64 ), toF( 0xaaacb962c200fd5f'u64 ), toF( 0x39c31a4b91bf23b6'u64 ), toF( 0xc2c2c1a7c34282f2'u64 ) ] )
, ( 54 , [ toF( 0x8aacc19cc7b58fcb'u64 ), toF( 0x4859f3bef31fc390'u64 ), toF( 0x48638f48d8968ea5'u64 ), toF( 0x46905ced4172d53d'u64 ) ] )
, ( 55 , [ toF( 0x3cffd1ee3ce0d654'u64 ), toF( 0xe232f7a87f1e81bb'u64 ), toF( 0x6a6e809efb909c2e'u64 ), toF( 0xfd0899495125f5dd'u64 ) ] )
, ( 56 , [ toF( 0xba070cd714cdafdd'u64 ), toF( 0x3be2ed88e08ea34d'u64 ), toF( 0xe24d59d333b58720'u64 ), toF( 0x980dc25bc566ce1e'u64 ) ] )
, ( 57 , [ toF( 0x6978f0afb0805861'u64 ), toF( 0xde03104ac5d96d71'u64 ), toF( 0x98b21c47bf0e45a6'u64 ), toF( 0x74ec9ca9bc751ebf'u64 ) ] )
, ( 58 , [ toF( 0x57886aef1bf80e6c'u64 ), toF( 0x817373729089b08c'u64 ), toF( 0xcf7e6aa7f2153551'u64 ), toF( 0x1e3c1dcc5bec049d'u64 ) ] )
, ( 59 , [ toF( 0x6c3c75bd90e26324'u64 ), toF( 0xf67fff6d60063c5b'u64 ), toF( 0x7160ff451ddc2009'u64 ), toF( 0x5133ddee9b648424'u64 ) ] )
, ( 60 , [ toF( 0x74e67dd0c42ee8bc'u64 ), toF( 0xc4ce214ad2624f05'u64 ), toF( 0x8714c7f215df54ac'u64 ), toF( 0x58c9edba02f8c74e'u64 ) ] )
, ( 61 , [ toF( 0xf69f1b81bd996987'u64 ), toF( 0xd9e7fa5abfc475d5'u64 ), toF( 0x63200370e2c6eddc'u64 ), toF( 0x3e4386d7d28ec11a'u64 ) ] )
, ( 62 , [ toF( 0x8b1e2f39d74ef021'u64 ), toF( 0xb741abac0c2b917e'u64 ), toF( 0x2527cb4cf421c1c2'u64 ), toF( 0x6db59bd7b8bfde40'u64 ) ] )
, ( 63 , [ toF( 0x22ea972b153a8b05'u64 ), toF( 0x77453b836081e65b'u64 ), toF( 0x6985c33bd3286f99'u64 ), toF( 0x62be074395d5d1ff'u64 ) ] )
, ( 64 , [ toF( 0x8f2db55ab74d43d3'u64 ), toF( 0x3b2ef3e3f3adcefd'u64 ), toF( 0x743534065e268b74'u64 ), toF( 0x4f3a620ac8136040'u64 ) ] )
, ( 65 , [ toF( 0x8ea6ceaeda13cc8d'u64 ), toF( 0xbb193072e9796839'u64 ), toF( 0x72cbcf47ea4cec46'u64 ), toF( 0x05692aef9d0d7cd5'u64 ) ] )
, ( 66 , [ toF( 0x8f63dac0f737c7d8'u64 ), toF( 0x460ae273f992ce77'u64 ), toF( 0x90b280e0ec465221'u64 ), toF( 0xed2a45ab635c17af'u64 ) ] )
, ( 67 , [ toF( 0x577f7126b0a227d9'u64 ), toF( 0xf26314c2b1b49139'u64 ), toF( 0x0a6a9ad9ef8b6175'u64 ), toF( 0x94f2eb0ee44f7902'u64 ) ] )
, ( 68 , [ toF( 0xba7b1c8c628fe870'u64 ), toF( 0x6f31c75a432d6b95'u64 ), toF( 0xc40fdd6e64242761'u64 ), toF( 0x61925ae3c5773b06'u64 ) ] )
, ( 69 , [ toF( 0x7523d61e1ae44925'u64 ), toF( 0xfc6f790dc63c1184'u64 ), toF( 0xdfdca624195e8f9a'u64 ), toF( 0x0dd66f67d49a1c1e'u64 ) ] )
, ( 70 , [ toF( 0xd89178460946396e'u64 ), toF( 0x9d17e00538797bcf'u64 ), toF( 0x8cf3d2a884f16e31'u64 ), toF( 0x563401297150fc91'u64 ) ] )
, ( 71 , [ toF( 0xd493ae790fd05538'u64 ), toF( 0xb44766510a4df8be'u64 ), toF( 0x770431287cabc1f5'u64 ), toF( 0x44170e091d7030ef'u64 ) ] )
, ( 72 , [ toF( 0x1ed9ba38d377a585'u64 ), toF( 0x375daeb94a1b55d1'u64 ), toF( 0xa38239e9a418dacd'u64 ), toF( 0xc1feb99bb55e6ad1'u64 ) ] )
, ( 73 , [ toF( 0x557c2a57b50f7432'u64 ), toF( 0x8e8a51a1ee4a2f17'u64 ), toF( 0x6b1d1afe8f3471f5'u64 ), toF( 0xcf871d344e5f426e'u64 ) ] )
, ( 74 , [ toF( 0x290c79b9de4c4589'u64 ), toF( 0xe9e331cd5452e177'u64 ), toF( 0xa66e7bd957b79061'u64 ), toF( 0x60d1363b18bbe310'u64 ) ] )
, ( 75 , [ toF( 0xc48595b4ed697f68'u64 ), toF( 0x2e6e46d523c492aa'u64 ), toF( 0x514123c3eaff9409'u64 ), toF( 0x2d25e5b30f329d92'u64 ) ] )
, ( 76 , [ toF( 0x852666dc0c25f4a3'u64 ), toF( 0xbc0437acea67cf22'u64 ), toF( 0x3fa7763e2e64fd7b'u64 ), toF( 0xd8e3aa4e0cc26bcf'u64 ) ] )
, ( 77 , [ toF( 0x9681c29115f8fece'u64 ), toF( 0x3162aec948930cc6'u64 ), toF( 0x9968da02469ece39'u64 ), toF( 0xd344f93c121cde49'u64 ) ] )
, ( 78 , [ toF( 0xc9ac91157af04bcd'u64 ), toF( 0x5b1567f3801f3abd'u64 ), toF( 0x7d97183e3ef64d5f'u64 ), toF( 0xf9fe83f25515919f'u64 ) ] )
, ( 79 , [ toF( 0xad56f3e7b0cea0d1'u64 ), toF( 0xfe312ed4e37723a4'u64 ), toF( 0xe368a53662006383'u64 ), toF( 0x76b5248e24f373b8'u64 ) ] )
, ( 80 , [ toF( 0xafd9328d3ee58953'u64 ), toF( 0x9daeb0e58fb7b0fc'u64 ), toF( 0x5f77e81b398edb3e'u64 ), toF( 0xb1a0dc7115ec3789'u64 ) ] )
]

View File

@ -0,0 +1,76 @@
import std/unittest
# import std/sequtils
import poseidon2/types
import poseidon2/sponge
import ./spongeTestCases
#-------------------------------------------------------------------------------
func byteSeq(n: int): seq[byte] =
var input : seq[byte] = newSeq[byte](n)
for i in 0..<n: input[i] = byte(i+1)
return input
func feltSeq(n: int): seq[F] =
var input : seq[F] = newSeq[F](n)
for i in 0..<n: input[i] = toF(uint64(i+1))
return input
#-------------------------------------------------------------------------------
func isOkFeltNim(r: static int, testcases: openarray[tuple[n:int,digest:F4]] ): bool =
var ok = true
for (n,refdigest) in testcases:
let input : seq[F] = feltSeq(n)
if digestNim(rate=r, input) != toDigest(refdigest):
ok = false
return ok
suite "sponge/Nim":
test "sponge for field elements w/ rate = 1": check isOkFeltNim( 1 , testcases_field_rate1 )
test "sponge for field elements w/ rate = 2": check isOkFeltNim( 2 , testcases_field_rate2 )
test "sponge for field elements w/ rate = 3": check isOkFeltNim( 3 , testcases_field_rate3 )
test "sponge for field elements w/ rate = 4": check isOkFeltNim( 4 , testcases_field_rate4 )
test "sponge for field elements w/ rate = 5": check isOkFeltNim( 5 , testcases_field_rate5 )
test "sponge for field elements w/ rate = 6": check isOkFeltNim( 6 , testcases_field_rate6 )
test "sponge for field elements w/ rate = 7": check isOkFeltNim( 7 , testcases_field_rate7 )
test "sponge for field elements w/ rate = 8": check isOkFeltNim( 8 , testcases_field_rate8 )
#-------------------------------------------------------------------------------
func isOkFeltC(r: static int, testcases: openarray[tuple[n:int,digest:F4]] ): bool =
var ok = true
for (n,refdigest) in testcases:
let input : seq[F] = feltSeq(n)
if digestFeltsC(rate=r, input) != toDigest(refdigest):
ok = false
return ok
func isOkBytesC(r: static int, testcases: openarray[tuple[n:int,digest:F4]] ): bool =
var ok = true
for (n,refdigest) in testcases:
let input : seq[byte] = byteSeq(n)
if digestBytesC(rate=r, input) != toDigest(refdigest):
ok = false
return ok
suite "sponge/C":
test "sponge for field elements w/ rate = 1": check isOkFeltC( 1 , testcases_field_rate1 )
test "sponge for field elements w/ rate = 2": check isOkFeltC( 2 , testcases_field_rate2 )
test "sponge for field elements w/ rate = 3": check isOkFeltC( 3 , testcases_field_rate3 )
test "sponge for field elements w/ rate = 4": check isOkFeltC( 4 , testcases_field_rate4 )
test "sponge for field elements w/ rate = 5": check isOkFeltC( 5 , testcases_field_rate5 )
test "sponge for field elements w/ rate = 6": check isOkFeltC( 6 , testcases_field_rate6 )
test "sponge for field elements w/ rate = 7": check isOkFeltC( 7 , testcases_field_rate7 )
test "sponge for field elements w/ rate = 8": check isOkFeltC( 8 , testcases_field_rate8 )
test "sponge for bytes w/ rate = 4": check isOkBytesC( 4 , testcases_bytes_rate4 )
test "sponge for bytes w/ rate = 8": check isOkBytesC( 8 , testcases_bytes_rate8 )
#-------------------------------------------------------------------------------

View File

@ -9,5 +9,6 @@
import ./poseidon2/testField
import ./poseidon2/testPermutation
import ./poseidon2/testCompress
import ./poseidon2/testSponge
{.warning[UnusedImport]: off.}