From 3243e1d4be8f61bb326b5d2f075e7c4662dcfdf0 Mon Sep 17 00:00:00 2001 From: Byron Hambly Date: Tue, 16 Jan 2024 09:03:42 +0200 Subject: [PATCH 1/2] build(depends): update simplicity to b547f5041f0 --- .../depend/simplicity-HEAD-revision.txt | 4 +- simplicity-sys/depend/simplicity/bitstream.c | 12 +- simplicity-sys/depend/simplicity/bitstream.h | 6 +- simplicity-sys/depend/simplicity/bitstring.h | 19 + simplicity-sys/depend/simplicity/bounded.h | 6 +- simplicity-sys/depend/simplicity/dag.c | 40 +- simplicity-sys/depend/simplicity/dag.h | 2 +- simplicity-sys/depend/simplicity/eval.c | 143 +- simplicity-sys/depend/simplicity/frame.c | 109 +- simplicity-sys/depend/simplicity/frame.h | 9 + .../include/simplicity/errorCodes.h | 18 +- simplicity-sys/depend/simplicity/jets.c | 584 ++++- simplicity-sys/depend/simplicity/jets.h | 164 ++ .../depend/simplicity/limitations.h | 2 + .../depend/simplicity/precomputed.h | 287 ++- .../simplicity/primitive/elements/primitive.c | 468 ++++ .../primitive/elements/primitiveEnumJet.inc | 163 ++ .../primitive/elements/primitiveEnumTy.inc | 34 + .../primitive/elements/primitiveInitTy.inc | 34 + .../primitive/elements/primitiveJetNode.inc | 2058 ++++++++++++++--- .../simplicity/secp256k1/int128_struct_impl.h | 2 +- simplicity-sys/depend/simplicity/test.c | 53 +- simplicity-sys/depend/simplicity/type.c | 2 +- 23 files changed, 3611 insertions(+), 608 deletions(-) diff --git a/simplicity-sys/depend/simplicity-HEAD-revision.txt b/simplicity-sys/depend/simplicity-HEAD-revision.txt index 0fa881e6..db6cb69b 100644 --- a/simplicity-sys/depend/simplicity-HEAD-revision.txt +++ b/simplicity-sys/depend/simplicity-HEAD-revision.txt @@ -1,2 +1,2 @@ -# This file was automatically created by vendor-simplicity.sh -9c38bc04f5b6fbb62380bc4141ca0c980b4ee417 +# This file was automatically created by ./vendor-simplicity.sh +b547f5041f061136d30d2291630b4b671a85ced5 diff --git a/simplicity-sys/depend/simplicity/bitstream.c b/simplicity-sys/depend/simplicity/bitstream.c index 1756cd98..367490db 100644 --- a/simplicity-sys/depend/simplicity/bitstream.c +++ b/simplicity-sys/depend/simplicity/bitstream.c @@ -5,18 +5,18 @@ #include "simplicity_assert.h" /* Closes a bitstream by consuming all remaining bits. - * Returns 'SIMPLICITY_ERR_BITSTREAM_UNUSED_BYTES' if CHAR_BIT or more bits remain in the stream. - * Otherwise, returns 'SIMPLICITY_ERR_BITSTREAM_UNUSED_BITS' if any remaining bits are non-zero. + * Returns 'SIMPLICITY_ERR_BITSTREAM_TRAILING_BYTES' if CHAR_BIT or more bits remain in the stream. + * Otherwise, returns 'SIMPLICITY_ERR_BITSTREAM_ILLEGAL_PADDING' if any remaining bits are non-zero. * Otherwise returns 'SIMPLICITY_NO_ERROR'. * * Precondition: NULL != stream */ simplicity_err closeBitstream(bitstream* stream) { - if (1 < stream->len) return SIMPLICITY_ERR_BITSTREAM_UNUSED_BYTES; /* If there is more than one byte remaining. */ + if (1 < stream->len) return SIMPLICITY_ERR_BITSTREAM_TRAILING_BYTES; /* If there is more than one byte remaining. */ if (1 == stream->len) { - if (0 == stream->offset) return SIMPLICITY_ERR_BITSTREAM_UNUSED_BYTES; /* If there is one byte remaining */ - if (0 != (*stream->arr & (UCHAR_MAX >> stream->offset))) { /* If any of the unconsumed bits are non-zero */ - return SIMPLICITY_ERR_BITSTREAM_UNUSED_BITS; + if (0 == stream->offset) return SIMPLICITY_ERR_BITSTREAM_TRAILING_BYTES; /* If there is one byte remaining */ + if (0 != (*stream->arr & (UCHAR_MAX >> stream->offset))) { /* If any of the unconsumed bits are non-zero */ + return SIMPLICITY_ERR_BITSTREAM_ILLEGAL_PADDING; } } /* Otherwise there are either 0 bits remaining or there are between 1 and CHAR_BITS-1 bits remaining and they are all zero. */ diff --git a/simplicity-sys/depend/simplicity/bitstream.h b/simplicity-sys/depend/simplicity/bitstream.h index 75278934..bb16d516 100644 --- a/simplicity-sys/depend/simplicity/bitstream.h +++ b/simplicity-sys/depend/simplicity/bitstream.h @@ -2,7 +2,7 @@ #ifndef SIMPLICITY_BITSTREAM_H #define SIMPLICITY_BITSTREAM_H -#include +#include #include #include #include @@ -30,8 +30,8 @@ static inline bitstream initializeBitstream(const unsigned char* arr, size_t len } /* Closes a bitstream by consuming all remaining bits. - * Returns 'SIMPLICITY_ERR_BITSTREAM_UNUSED_BYTES' if CHAR_BIT or more bits remain in the stream. - * Otherwise, returns 'SIMPLICITY_ERR_BITSTREAM_UNUSED_BITS' if any remaining bits are non-zero. + * Returns 'SIMPLICITY_ERR_BITSTREAM_TRAILING_BYTES' if CHAR_BIT or more bits remain in the stream. + * Otherwise, returns 'SIMPLICITY_ERR_BITSTREAM_ILLEGAL_PADDING' if any remaining bits are non-zero. * Otherwise returns 'SIMPLICITY_NO_ERROR'. * * Precondition: NULL != stream diff --git a/simplicity-sys/depend/simplicity/bitstring.h b/simplicity-sys/depend/simplicity/bitstring.h index 69c106cd..06d7d7cf 100644 --- a/simplicity-sys/depend/simplicity/bitstring.h +++ b/simplicity-sys/depend/simplicity/bitstring.h @@ -2,6 +2,8 @@ #ifndef SIMPLICITY_BITSTRING_H #define SIMPLICITY_BITSTRING_H +#include +#include #include #include #include "simplicity_assert.h" @@ -32,4 +34,21 @@ static inline bool getBit(const bitstring *s, size_t n) { return 1 & (s->arr[total_offset / CHAR_BIT] >> (CHAR_BIT - 1 - (total_offset % CHAR_BIT))); } +/* Return 8 bits from a bitstring staring from the nth bit. + * + * Precondition: NULL != s + * n + 8 <= s->len; + */ +static inline uint_fast8_t getByte(const bitstring *s, size_t n) { + simplicity_assert(8 <= s->len); + simplicity_assert(n <= s->len - 8); + size_t total_offset = s->offset + n; + if (total_offset % CHAR_BIT <= CHAR_BIT - 8) { + return (uint_fast8_t)(0xff & (s->arr[total_offset / CHAR_BIT] >> (CHAR_BIT - 8 - (total_offset % CHAR_BIT)))); + } else { + /* CHAR_BIT < total_offset % CHAR_BIT + 8 */ + return (uint_fast8_t)(0xff & (((1U * s->arr[total_offset / CHAR_BIT]) << (total_offset % CHAR_BIT - (CHAR_BIT - 8))) + | (s->arr[total_offset / CHAR_BIT + 1] >> (CHAR_BIT - (total_offset % CHAR_BIT - (CHAR_BIT - 8)))))); + } +} #endif diff --git a/simplicity-sys/depend/simplicity/bounded.h b/simplicity-sys/depend/simplicity/bounded.h index 2f979edb..c0bcb111 100644 --- a/simplicity-sys/depend/simplicity/bounded.h +++ b/simplicity-sys/depend/simplicity/bounded.h @@ -7,7 +7,7 @@ typedef uint_least32_t ubounded; #define UBOUNDED_MAX UINT32_MAX -static inline ubounded max(ubounded x, ubounded y) { +static inline ubounded bounded_max(ubounded x, ubounded y) { return x <= y ? y : x; } @@ -27,8 +27,8 @@ static inline void bounded_inc(ubounded* x) { * 'pad( true, a, b)' computes the PADR(a, b) function. */ static inline ubounded pad(bool right, ubounded a, ubounded b) { - return max(a, b) - (right ? b : a); + return bounded_max(a, b) - (right ? b : a); } -static const ubounded overhead = 100 /* milli weight units */; +enum { overhead = 100 }; /* milli weight units */ #endif diff --git a/simplicity-sys/depend/simplicity/dag.c b/simplicity-sys/depend/simplicity/dag.c index 06fdccea..311c08fb 100644 --- a/simplicity-sys/depend/simplicity/dag.c +++ b/simplicity-sys/depend/simplicity/dag.c @@ -97,31 +97,39 @@ static sha256_midstate mkJetCMR(uint32_t *imr, uint_fast64_t weight) { * Precondition: 2^n == value->len */ sha256_midstate computeWordCMR(const bitstring* value, size_t n) { - /* 'stack' is an array of 33 hashes consisting of 8 'uint32_t's each. */ - uint32_t stack[8*33] = {0}; + /* 'stack' is an array of 30 hashes consisting of 8 'uint32_t's each. */ + uint32_t stack[8*30] = {0}; uint32_t *stack_ptr = stack; sha256_midstate imr = identityIV; simplicity_assert(n < 32); simplicity_assert((size_t)1 << n == value->len); /* Pass 1: Compute the CMR for the expression that writes 'value'. * This expression consists of deeply nested PAIRs of expressions that write one bit each. - * - * :TODO: This can be optimized by a constant factor by precomputing a table of CMRs of expressions - * that, for example, write out every possible byte sequence. */ /* stack[0..7] (8 bytes) is kept as all zeros for later. * We start the stack_ptr at the second item. */ - for(size_t i = 0; i < value->len; ++i) { - /* stack_ptr == stack + 8* */ + if (n < 3) { stack_ptr += 8; - memcpy(stack_ptr, &bit_cmr[getBit(value, i)], sizeof(uint32_t[8])); - /* This inner for loop runs in ammortized constant time. */ - for (size_t j = i; j & 1; j = j >> 1) { - sha256_midstate pair = cmrIV(PAIR); - stack_ptr -= 8; - sha256_compression(pair.s, stack_ptr); - memcpy(stack_ptr, pair.s, sizeof(uint32_t[8])); + size_t i; + switch(n) { + case 0: i = getBit(value, 0); break; + case 1: i = 2 + ((1U * getBit(value, 0) << 1) | getBit(value, 1)); break; + case 2: i = 6 + ((1U * getBit(value, 0) << 3) | (1U * getBit(value, 1) << 2) | (1U * getBit(value, 2) << 1) | getBit(value, 3)); break; + } + memcpy(stack_ptr, &word_cmr[i], sizeof(uint32_t[8])); + } else { + for (size_t i = 0; i < value->len >> 3; ++i) { + /* stack_ptr == stack + 8* */ + stack_ptr += 8; + memcpy(stack_ptr, &word_cmr[22 + getByte(value, 8*i)], sizeof(uint32_t[8])); + /* This inner for loop runs in amortized constant time. */ + for (size_t j = i; j & 1; j = j >> 1) { + sha256_midstate pair = cmrIV(PAIR); + stack_ptr -= 8; + sha256_compression(pair.s, stack_ptr); + memcpy(stack_ptr, pair.s, sizeof(uint32_t[8])); + } } } /* value->len is a power of 2.*/ @@ -464,7 +472,7 @@ simplicity_err verifyCanonicalOrder(dag_node* dag, const size_t len) { * For each 'WITNESS' : A |- B expression in 'dag', the bits from the 'witness' bitstring are decoded in turn * to construct a compact representation of a witness value of type B. * This function only returns 'SIMPLICITY_NO_ERROR' when exactly 'witness.len' bits are consumed by all the 'dag's witness values. - * If extra bits remain, then 'SIMPLICITY_ERR_WITNESS_UNUSED_BITS' is returned. + * If extra bits remain, then 'SIMPLICITY_ERR_WITNESS_TRAILING_BITS' is returned. * If there are not enough bits, then 'SIMPLICITY_ERR_WITNESS_EOF' is returned. * * Note: the 'witness' value is passed by copy because the implementation manipulates a local copy of the structure. @@ -549,7 +557,7 @@ simplicity_err fillWitnessData(dag_node* dag, type* type_dag, const size_t len, } } } - return 0 == witness.len ? SIMPLICITY_NO_ERROR : SIMPLICITY_ERR_WITNESS_UNUSED_BITS; + return 0 == witness.len ? SIMPLICITY_NO_ERROR : SIMPLICITY_ERR_WITNESS_TRAILING_BITS; } /* Verifies that identity Merkle roots of every subexpression in a well-typed 'dag' with witnesses are all unique, diff --git a/simplicity-sys/depend/simplicity/dag.h b/simplicity-sys/depend/simplicity/dag.h index 45e23925..d60a6375 100644 --- a/simplicity-sys/depend/simplicity/dag.h +++ b/simplicity-sys/depend/simplicity/dag.h @@ -365,7 +365,7 @@ simplicity_err verifyCanonicalOrder(dag_node* dag, const size_t len); * For each 'WITNESS' : A |- B expression in 'dag', the bits from the 'witness' bitstring are decoded in turn * to construct a compact representation of a witness value of type B. * This function only returns 'SIMPLICITY_NO_ERROR' when exactly 'witness.len' bits are consumed by all the 'dag's witness values. - * If extra bits remain, then 'SIMPLICITY_ERR_WITNESS_UNUSED_BITS' is returned. + * If extra bits remain, then 'SIMPLICITY_ERR_WITNESS_TRAILING_BITS' is returned. * If there are not enough bits, then 'SIMPLICITY_ERR_WITNESS_EOF' is returned. * * Precondition: dag_node dag[len] and 'dag' without witness data and is well-typed with 'type_dag'; diff --git a/simplicity-sys/depend/simplicity/eval.c b/simplicity-sys/depend/simplicity/eval.c index af174027..804f656f 100644 --- a/simplicity-sys/depend/simplicity/eval.c +++ b/simplicity-sys/depend/simplicity/eval.c @@ -143,93 +143,6 @@ static void skip(frameItem* frame, size_t n) { frame->offset -= n; } -/* Given a write frame and a read frame, copy 'n' cells from after the read frame's cursor to after the write frame's cursor, - * Cells in within the write frame beyond 'n' cells after the write frame's cursor may also be overwritten. - * - * Precondition: '*dst' is a valid write frame for 'n' more cells; - * '*src' is a valid read frame for 'n' more cells; - * '0 < n'; - */ -static void copyBitsHelper(const frameItem* dst, const frameItem *src, size_t n) { - /* Pointers to the UWORDs of the read and write frame that contain the frame's cursor. */ - UWORD* src_ptr = src->edge - 1 - src->offset / UWORD_BIT; - UWORD* dst_ptr = dst->edge + (dst->offset - 1) / UWORD_BIT; - /* The specific bit within those UWORDs that is immediately in front of their respective cursors. - * That bit is specifically '1 << (src_shift - 1)' for the read frame, - * and '1 << (dst_shift - 1)' for the write frame, unless 'dst_shift == 0', in which case it is '1 << (UWORD_BIT - 1)'. - */ - size_t src_shift = UWORD_BIT - (src->offset % UWORD_BIT); - size_t dst_shift = dst->offset % UWORD_BIT; - if (dst_shift) { - /* The write frame's current UWORD is partially filled. - * Fill the rest of it without overwriting the existing data. - */ - *dst_ptr = LSBclear(*dst_ptr, dst_shift); - - if (src_shift < dst_shift) { - /* The read frame's current UWORD doesn't have enough data to entirely fill the rest of the write frame's current UWORD. - * Fill as much as we can and move src_ptr to the read frame's next UWORD. - */ - *dst_ptr |= (UWORD)(LSBkeep(*src_ptr, src_shift) << (dst_shift - src_shift)); - if (n <= src_shift) return; - n -= src_shift; - dst_shift -= src_shift; - src_ptr--; - src_shift = UWORD_BIT; - } - - /* Fill the rest of the write frame's current UWORD and move dst_ptr to the write frame's next UWORD. */ - *dst_ptr |= LSBkeep((UWORD)(*src_ptr >> (src_shift - dst_shift)), dst_shift); - if (n <= dst_shift) return; - n -= dst_shift; - src_shift -= dst_shift; - dst_ptr--; - } - /* The next cell in the write frame to be filled begins at the boundary of a UWORD. */ - - /* :TODO: Use static analysis to limit the total amount of copied memory. */ - if (0 == src_shift % UWORD_BIT) { - /* The next cell in the read frame to be filled also begins at the boundary of a UWORD. - * We can use 'memcpy' to copy data in bulk. - */ - size_t m = ROUND_UWORD(n); - /* If we went through the previous 'if (dst_shift)' block then 'src_shift == 0' and we need to decrement src_ptr. - * If we did not go through the previous 'if (dst_shift)' block then 'src_shift == UWORD_BIT' - * and we do not need to decrement src_ptr. - * We have folded this conditional decrement into the equation applied to 'src_ptr' below. - */ - memcpy(dst_ptr - (m - 1), src_ptr - (m - src_shift / UWORD_BIT), m * sizeof(UWORD)); - } else { - while(1) { - /* Fill the write frame's UWORD by copying the LSBs of the read frame's current UWORD - * to the MSBs of the write frame's current UWORD, - * and copy the MSBs of the read frame's next UWORD to the LSBs of the write frame's current UWORD. - * Then move both the src_ptr and dst_ptr to their next UWORDs. - */ - *dst_ptr = (UWORD)(LSBkeep(*src_ptr, src_shift) << (UWORD_BIT - src_shift)); - if (n <= src_shift) return; - - *dst_ptr |= (UWORD)(*(src_ptr - 1) >> src_shift); - if (n <= UWORD_BIT) return; - n -= UWORD_BIT; - dst_ptr--; src_ptr--; - } - } -} - -/* Given a write frame and a read frame, copy 'n' cells from after the read frame's cursor to after the write frame's cursor, - * and then advance the write frame's cursor by 'n'. - * Cells in front of the '*dst's cursor's final position may be overwritten. - * - * Precondition: '*dst' is a valid write frame for 'n' more cells; - * '*src' is a valid read frame for 'n' more cells; - */ -static void copyBits(frameItem* dst, const frameItem* src, size_t n) { - if (0 == n) return; - copyBitsHelper(dst, src, n); - dst->offset -= n; -} - /* Given a compact bit representation of a value 'v : B', write the value 'v' to a write frame, skipping cells as needed * and advance its cursor. * Cells in front of the '*dst's cursor's final position may be overwritten. @@ -694,21 +607,21 @@ simplicity_err analyseBounds( ubounded *cellsBound, ubounded *UWORDBound, ubound case ASSERTL: case ASSERTR: case CASE: - bound[i].extraCellsBound[0] = max( bound[dag[i].child[0]].extraCellsBound[0] + bound[i].extraCellsBound[0] = bounded_max( bound[dag[i].child[0]].extraCellsBound[0] , bound[dag[i].child[1]].extraCellsBound[0] ); - bound[i].extraCellsBound[1] = max( bound[dag[i].child[0]].extraCellsBound[1] + bound[i].extraCellsBound[1] = bounded_max( bound[dag[i].child[0]].extraCellsBound[1] , bound[dag[i].child[1]].extraCellsBound[1] ); - bound[i].extraUWORDBound[0] = max( bound[dag[i].child[0]].extraUWORDBound[0] + bound[i].extraUWORDBound[0] = bounded_max( bound[dag[i].child[0]].extraUWORDBound[0] , bound[dag[i].child[1]].extraUWORDBound[0] ); - bound[i].extraUWORDBound[1] = max( bound[dag[i].child[0]].extraUWORDBound[1] + bound[i].extraUWORDBound[1] = bounded_max( bound[dag[i].child[0]].extraUWORDBound[1] , bound[dag[i].child[1]].extraUWORDBound[1] ); - bound[i].extraFrameBound[0] = max( bound[dag[i].child[0]].extraFrameBound[0] + bound[i].extraFrameBound[0] = bounded_max( bound[dag[i].child[0]].extraFrameBound[0] , bound[dag[i].child[1]].extraFrameBound[0] ); - bound[i].extraFrameBound[1] = max( bound[dag[i].child[0]].extraFrameBound[1] + bound[i].extraFrameBound[1] = bounded_max( bound[dag[i].child[0]].extraFrameBound[1] , bound[dag[i].child[1]].extraFrameBound[1] ); - bound[i].cost = bounded_add(overhead, max( bound[dag[i].child[0]].cost + bound[i].cost = bounded_add(overhead, bounded_max( bound[dag[i].child[0]].cost , bound[dag[i].child[1]].cost )); break; case DISCONNECT: @@ -719,20 +632,20 @@ simplicity_err analyseBounds( ubounded *cellsBound, ubounded *UWORDBound, ubound bound[i].extraCellsBound[1] = UBOUNDED_MAX; } else { bound[i].extraCellsBound[1] = type_dag[DISCONNECT_W256A(dag, type_dag, i)].bitSize; - bound[i].extraCellsBound[0] = max( + bound[i].extraCellsBound[0] = bounded_max( bounded_add( type_dag[DISCONNECT_BC(dag, type_dag, i)].bitSize - , max( bounded_add(bound[i].extraCellsBound[1], bound[dag[i].child[0]].extraCellsBound[1]) - , max(bound[dag[i].child[0]].extraCellsBound[0], bound[dag[i].child[1]].extraCellsBound[1]))), + , bounded_max( bounded_add(bound[i].extraCellsBound[1], bound[dag[i].child[0]].extraCellsBound[1]) + , bounded_max(bound[dag[i].child[0]].extraCellsBound[0], bound[dag[i].child[1]].extraCellsBound[1]))), bound[dag[i].child[1]].extraCellsBound[0]); } bound[i].extraUWORDBound[1] = (ubounded)ROUND_UWORD(type_dag[DISCONNECT_W256A(dag, type_dag, i)].bitSize); - bound[i].extraUWORDBound[0] = max( + bound[i].extraUWORDBound[0] = bounded_max( (ubounded)ROUND_UWORD(type_dag[DISCONNECT_BC(dag, type_dag, i)].bitSize) + - max( bound[i].extraUWORDBound[1] + bound[dag[i].child[0]].extraUWORDBound[1] - , max(bound[dag[i].child[0]].extraUWORDBound[0], bound[dag[i].child[1]].extraUWORDBound[1])), + bounded_max( bound[i].extraUWORDBound[1] + bound[dag[i].child[0]].extraUWORDBound[1] + , bounded_max(bound[dag[i].child[0]].extraUWORDBound[0], bound[dag[i].child[1]].extraUWORDBound[1])), bound[dag[i].child[1]].extraUWORDBound[0]); - bound[i].extraFrameBound[1] = max( bound[dag[i].child[0]].extraFrameBound[1] + 1 + bound[i].extraFrameBound[1] = bounded_max( bound[dag[i].child[0]].extraFrameBound[1] + 1 , bound[dag[i].child[1]].extraFrameBound[1]); bound[i].extraFrameBound[0] = bound[i].extraFrameBound[1] + 1; bound[i].cost = bounded_add(overhead @@ -748,24 +661,24 @@ simplicity_err analyseBounds( ubounded *cellsBound, ubounded *UWORDBound, ubound bound[i].extraCellsBound[0] = UBOUNDED_MAX; bound[i].extraCellsBound[1] = UBOUNDED_MAX; } else { - bound[i].extraCellsBound[0] = max( bounded_add( type_dag[COMP_B(dag, type_dag, i)].bitSize - , max( bound[dag[i].child[0]].extraCellsBound[0] + bound[i].extraCellsBound[0] = bounded_max( bounded_add( type_dag[COMP_B(dag, type_dag, i)].bitSize + , bounded_max( bound[dag[i].child[0]].extraCellsBound[0] , bound[dag[i].child[1]].extraCellsBound[1] )) , bound[dag[i].child[1]].extraCellsBound[0] ); bound[i].extraCellsBound[1] = bounded_add( type_dag[COMP_B(dag, type_dag, i)].bitSize , bound[dag[i].child[0]].extraCellsBound[1] ); } - bound[i].extraUWORDBound[0] = max( (ubounded)ROUND_UWORD(type_dag[COMP_B(dag, type_dag, i)].bitSize) + - max( bound[dag[i].child[0]].extraUWORDBound[0] + bound[i].extraUWORDBound[0] = bounded_max( (ubounded)ROUND_UWORD(type_dag[COMP_B(dag, type_dag, i)].bitSize) + + bounded_max( bound[dag[i].child[0]].extraUWORDBound[0] , bound[dag[i].child[1]].extraUWORDBound[1] ) , bound[dag[i].child[1]].extraUWORDBound[0] ); bound[i].extraUWORDBound[1] = (ubounded)ROUND_UWORD(type_dag[COMP_B(dag, type_dag, i)].bitSize) + bound[dag[i].child[0]].extraUWORDBound[1]; - bound[i].extraFrameBound[0] = max( bound[dag[i].child[0]].extraFrameBound[0] + bound[i].extraFrameBound[0] = bounded_max( bound[dag[i].child[0]].extraFrameBound[0] , bound[dag[i].child[1]].extraFrameBound[1] ) + 1; - bound[i].extraFrameBound[1] = max( bound[dag[i].child[0]].extraFrameBound[1] + 1 + bound[i].extraFrameBound[1] = bounded_max( bound[dag[i].child[0]].extraFrameBound[1] + 1 , bound[dag[i].child[1]].extraFrameBound[1] ); bound[i].cost = bounded_add(overhead , bounded_add(type_dag[COMP_B(dag, type_dag, i)].bitSize @@ -773,18 +686,18 @@ simplicity_err analyseBounds( ubounded *cellsBound, ubounded *UWORDBound, ubound break; case PAIR: bound[i].extraCellsBound[0] = bound[dag[i].child[1]].extraCellsBound[0]; - bound[i].extraCellsBound[1] = max( bound[dag[i].child[0]].extraCellsBound[0] - , max( bound[dag[i].child[0]].extraCellsBound[1] + bound[i].extraCellsBound[1] = bounded_max( bound[dag[i].child[0]].extraCellsBound[0] + , bounded_max( bound[dag[i].child[0]].extraCellsBound[1] , bound[dag[i].child[1]].extraCellsBound[1] )); bound[i].extraUWORDBound[0] = bound[dag[i].child[1]].extraUWORDBound[0]; - bound[i].extraUWORDBound[1] = max( bound[dag[i].child[0]].extraUWORDBound[0] - , max( bound[dag[i].child[0]].extraUWORDBound[1] + bound[i].extraUWORDBound[1] = bounded_max( bound[dag[i].child[0]].extraUWORDBound[0] + , bounded_max( bound[dag[i].child[0]].extraUWORDBound[1] , bound[dag[i].child[1]].extraUWORDBound[1] )); - bound[i].extraFrameBound[0] = max( bound[dag[i].child[0]].extraFrameBound[0] + bound[i].extraFrameBound[0] = bounded_max( bound[dag[i].child[0]].extraFrameBound[0] , bound[dag[i].child[1]].extraFrameBound[0] ); - bound[i].extraFrameBound[1] = max( bound[dag[i].child[0]].extraFrameBound[0] + bound[i].extraFrameBound[1] = bounded_max( bound[dag[i].child[0]].extraFrameBound[0] , bound[dag[i].child[1]].extraFrameBound[1] ); bound[i].cost = bounded_add(overhead, bounded_add( bound[dag[i].child[0]].cost , bound[dag[i].child[1]].cost )); @@ -824,10 +737,10 @@ simplicity_err analyseBounds( ubounded *cellsBound, ubounded *UWORDBound, ubound const ubounded inputSize = type_dag[dag[len-1].sourceType].bitSize; const ubounded outputSize = type_dag[dag[len-1].targetType].bitSize; *cellsBound = bounded_add( bounded_add(inputSize, outputSize) - , max(bound[len-1].extraCellsBound[0], bound[len-1].extraCellsBound[1]) + , bounded_max(bound[len-1].extraCellsBound[0], bound[len-1].extraCellsBound[1]) ); *UWORDBound = (ubounded)ROUND_UWORD(inputSize) + (ubounded)ROUND_UWORD(outputSize) - + max(bound[len-1].extraUWORDBound[0], bound[len-1].extraUWORDBound[1]); + + bounded_max(bound[len-1].extraUWORDBound[0], bound[len-1].extraUWORDBound[1]); *frameBound = bound[len-1].extraFrameBound[0] + 2; /* add the initial input and output frames to the count. */ *costBound = bound[len-1].cost; } diff --git a/simplicity-sys/depend/simplicity/frame.c b/simplicity-sys/depend/simplicity/frame.c index 66c84795..52fa748d 100644 --- a/simplicity-sys/depend/simplicity/frame.c +++ b/simplicity-sys/depend/simplicity/frame.c @@ -1,13 +1,14 @@ #include "frame.h" -#define READ_(bits) \ +#define READ_(bits,size) \ /* Given a read frame, return the value of the bits cells after the cursor and advance the frame's cursor by bits##. \ * The cell values are returned with the first cell in the MSB of the result and the last cell in the LSB of the result. \ * \ * Precondition: '*frame' is a valid read frame for bits more cells. \ */ \ -uint_fast##bits##_t read##bits(frameItem* frame) { \ - uint_fast##bits##_t result = 0; \ +uint_fast##size##_t read##bits(frameItem* frame) { \ + static_assert(bits <= size, "Return type too small to hold the requested number of bits."); \ + uint_fast##size##_t result = 0; \ /* Pointers to the UWORD of the read frame that contains the frame's cursor (or is immediately after the cursor). */ \ UWORD* frame_ptr = frame->edge - 1 - frame->offset / UWORD_BIT; \ /* The specific bit within the above UWORD that is immediately in front of the cursor. \ @@ -19,14 +20,14 @@ uint_fast##bits##_t read##bits(frameItem* frame) { /* We may only want part of the LSBs from the read frame's current UWORD. \ * Copy that data to 'x', and move the frame_ptr to the frame's next UWORD. \ */ \ - result |= (uint_fast##bits##_t)((uint_fast##bits##_t)LSBkeep(*frame_ptr, frame_shift) << (n - frame_shift)); \ + result |= (uint_fast##size##_t)((uint_fast##size##_t)LSBkeep(*frame_ptr, frame_shift) << (n - frame_shift)); \ frame->offset += frame_shift; \ n -= frame_shift; \ frame_shift = UWORD_BIT; \ frame_ptr--; \ while (UWORD_BIT < n) { \ /* Copy the entire read frame's current UWORD to 'x', and move the frame_ptr to the frame's next UWORD. */ \ - result |= (uint_fast##bits##_t)((uint_fast##bits##_t)(*frame_ptr) << (n - UWORD_BIT)); \ + result |= (uint_fast##size##_t)((uint_fast##size##_t)(*frame_ptr) << (n - UWORD_BIT)); \ frame->offset += UWORD_BIT; \ n -= UWORD_BIT; \ frame_ptr--; \ @@ -35,14 +36,15 @@ uint_fast##bits##_t read##bits(frameItem* frame) { /* We may only want part of the bits from the middle of the read frame's current UWORD. \ * Copy that data to fill the remainder of 'x'. \ */ \ - result |= (uint_fast##bits##_t)(LSBkeep((UWORD)(*frame_ptr >> (frame_shift - n)), n)); \ + result |= (uint_fast##size##_t)(LSBkeep((UWORD)(*frame_ptr >> (frame_shift - n)), n)); \ frame->offset += n; \ return result; \ } -READ_(8) -READ_(16) -READ_(32) -READ_(64) +READ_(4,8) +READ_(8,8) +READ_(16,16) +READ_(32,32) +READ_(64,64) #define WRITE_(bits) \ /* Given a write frame, set the value of the bits cells after the cursor and advance the frame's cursor by bits##. \ @@ -176,3 +178,90 @@ bool write_sha256_context(frameItem* dst, const sha256_context* ctx) { write32s(dst, ctx->output, 8); return !ctx->overflow; } + +/* Given a write frame and a read frame, copy 'n' cells from after the read frame's cursor to after the write frame's cursor, + * Cells in within the write frame beyond 'n' cells after the write frame's cursor may also be overwritten. + * + * Precondition: '*dst' is a valid write frame for 'n' more cells; + * '*src' is a valid read frame for 'n' more cells; + * '0 < n'; + */ +static void copyBitsHelper(const frameItem* dst, const frameItem *src, size_t n) { + /* Pointers to the UWORDs of the read and write frame that contain the frame's cursor. */ + UWORD* src_ptr = src->edge - 1 - src->offset / UWORD_BIT; + UWORD* dst_ptr = dst->edge + (dst->offset - 1) / UWORD_BIT; + /* The specific bit within those UWORDs that is immediately in front of their respective cursors. + * That bit is specifically '1 << (src_shift - 1)' for the read frame, + * and '1 << (dst_shift - 1)' for the write frame, unless 'dst_shift == 0', in which case it is '1 << (UWORD_BIT - 1)'. + */ + size_t src_shift = UWORD_BIT - (src->offset % UWORD_BIT); + size_t dst_shift = dst->offset % UWORD_BIT; + if (dst_shift) { + /* The write frame's current UWORD is partially filled. + * Fill the rest of it without overwriting the existing data. + */ + *dst_ptr = LSBclear(*dst_ptr, dst_shift); + + if (src_shift < dst_shift) { + /* The read frame's current UWORD doesn't have enough data to entirely fill the rest of the write frame's current UWORD. + * Fill as much as we can and move src_ptr to the read frame's next UWORD. + */ + *dst_ptr |= (UWORD)(LSBkeep(*src_ptr, src_shift) << (dst_shift - src_shift)); + if (n <= src_shift) return; + n -= src_shift; + dst_shift -= src_shift; + src_ptr--; + src_shift = UWORD_BIT; + } + + /* Fill the rest of the write frame's current UWORD and move dst_ptr to the write frame's next UWORD. */ + *dst_ptr |= LSBkeep((UWORD)(*src_ptr >> (src_shift - dst_shift)), dst_shift); + if (n <= dst_shift) return; + n -= dst_shift; + src_shift -= dst_shift; + dst_ptr--; + } + /* The next cell in the write frame to be filled begins at the boundary of a UWORD. */ + + /* :TODO: Use static analysis to limit the total amount of copied memory. */ + if (0 == src_shift % UWORD_BIT) { + /* The next cell in the read frame to be filled also begins at the boundary of a UWORD. + * We can use 'memcpy' to copy data in bulk. + */ + size_t m = ROUND_UWORD(n); + /* If we went through the previous 'if (dst_shift)' block then 'src_shift == 0' and we need to decrement src_ptr. + * If we did not go through the previous 'if (dst_shift)' block then 'src_shift == UWORD_BIT' + * and we do not need to decrement src_ptr. + * We have folded this conditional decrement into the equation applied to 'src_ptr' below. + */ + memcpy(dst_ptr - (m - 1), src_ptr - (m - src_shift / UWORD_BIT), m * sizeof(UWORD)); + } else { + while(1) { + /* Fill the write frame's UWORD by copying the LSBs of the read frame's current UWORD + * to the MSBs of the write frame's current UWORD, + * and copy the MSBs of the read frame's next UWORD to the LSBs of the write frame's current UWORD. + * Then move both the src_ptr and dst_ptr to their next UWORDs. + */ + *dst_ptr = (UWORD)(LSBkeep(*src_ptr, src_shift) << (UWORD_BIT - src_shift)); + if (n <= src_shift) return; + + *dst_ptr |= (UWORD)(*(src_ptr - 1) >> src_shift); + if (n <= UWORD_BIT) return; + n -= UWORD_BIT; + dst_ptr--; src_ptr--; + } + } +} + +/* Given a write frame and a read frame, copy 'n' cells from after the read frame's cursor to after the write frame's cursor, + * and then advance the write frame's cursor by 'n'. + * Cells in front of the '*dst's cursor's final position may be overwritten. + * + * Precondition: '*dst' is a valid write frame for 'n' more cells; + * '*src' is a valid read frame for 'n' more cells; + */ +void copyBits(frameItem* dst, const frameItem* src, size_t n) { + if (0 == n) return; + copyBitsHelper(dst, src, n); + dst->offset -= n; +} diff --git a/simplicity-sys/depend/simplicity/frame.h b/simplicity-sys/depend/simplicity/frame.h index 1437cb24..aa45e796 100644 --- a/simplicity-sys/depend/simplicity/frame.h +++ b/simplicity-sys/depend/simplicity/frame.h @@ -112,6 +112,7 @@ static inline void skipBits(frameItem* frame, size_t n) { * * Precondition: '*frame' is a valid read frame for 'N' more cells. */ +uint_fast8_t read4(frameItem* frame); uint_fast8_t read8(frameItem* frame); uint_fast16_t read16(frameItem* frame); uint_fast32_t read32(frameItem* frame); @@ -197,4 +198,12 @@ bool read_sha256_context(sha256_context* ctx, frameItem* src); */ bool write_sha256_context(frameItem* dst, const sha256_context* ctx); +/* Given a write frame and a read frame, copy 'n' cells from after the read frame's cursor to after the write frame's cursor, + * and then advance the write frame's cursor by 'n'. + * Cells in front of the '*dst's cursor's final position may be overwritten. + * + * Precondition: '*dst' is a valid write frame for 'n' more cells; + * '*src' is a valid read frame for 'n' more cells; + */ +void copyBits(frameItem* dst, const frameItem* src, size_t n); #endif diff --git a/simplicity-sys/depend/simplicity/include/simplicity/errorCodes.h b/simplicity-sys/depend/simplicity/include/simplicity/errorCodes.h index d9eeba2a..72217bcf 100644 --- a/simplicity-sys/depend/simplicity/include/simplicity/errorCodes.h +++ b/simplicity-sys/depend/simplicity/include/simplicity/errorCodes.h @@ -19,13 +19,13 @@ typedef enum { SIMPLICITY_ERR_FAIL_CODE = -8, SIMPLICITY_ERR_STOP_CODE = -10, SIMPLICITY_ERR_HIDDEN = -12, - SIMPLICITY_ERR_BITSTREAM_UNUSED_BYTES = -14, - SIMPLICITY_ERR_BITSTREAM_UNUSED_BITS = -16, + SIMPLICITY_ERR_BITSTREAM_TRAILING_BYTES = -14, + SIMPLICITY_ERR_BITSTREAM_ILLEGAL_PADDING = -16, SIMPLICITY_ERR_TYPE_INFERENCE_UNIFICATION = -18, SIMPLICITY_ERR_TYPE_INFERENCE_OCCURS_CHECK = -20, SIMPLICITY_ERR_TYPE_INFERENCE_NOT_PROGRAM = -22, SIMPLICITY_ERR_WITNESS_EOF = -24, - SIMPLICITY_ERR_WITNESS_UNUSED_BITS = -26, + SIMPLICITY_ERR_WITNESS_TRAILING_BITS = -26, SIMPLICITY_ERR_UNSHARED_SUBEXPRESSION = -28, SIMPLICITY_ERR_CMR = -30, SIMPLICITY_ERR_AMR = -32, @@ -67,10 +67,10 @@ static inline const char * SIMPLICITY_ERR_MSG(simplicity_err err) { return "Program has STOP node"; case SIMPLICITY_ERR_HIDDEN: return "Program has illegal HIDDEN child node"; - case SIMPLICITY_ERR_BITSTREAM_UNUSED_BYTES: - return "Unused bytes at the end of the program"; - case SIMPLICITY_ERR_BITSTREAM_UNUSED_BITS: - return "Unused bits at the end of the program"; + case SIMPLICITY_ERR_BITSTREAM_TRAILING_BYTES: + return "Trailing bytes after final byte of program"; + case SIMPLICITY_ERR_BITSTREAM_ILLEGAL_PADDING: + return "Illegal padding in final byte of program"; case SIMPLICITY_ERR_TYPE_INFERENCE_UNIFICATION: return "Unification failure"; case SIMPLICITY_ERR_TYPE_INFERENCE_OCCURS_CHECK: @@ -79,8 +79,8 @@ static inline const char * SIMPLICITY_ERR_MSG(simplicity_err err) { return "Expression not unit to unit"; case SIMPLICITY_ERR_WITNESS_EOF: return "Unexpected end of witness block"; - case SIMPLICITY_ERR_WITNESS_UNUSED_BITS: - return "Unused data at the end of the witness block"; + case SIMPLICITY_ERR_WITNESS_TRAILING_BITS: + return "Trailing bits after final value of witness block"; case SIMPLICITY_ERR_UNSHARED_SUBEXPRESSION: return "Subexpression not properly shared"; case SIMPLICITY_ERR_CMR: diff --git a/simplicity-sys/depend/simplicity/jets.c b/simplicity-sys/depend/simplicity/jets.c index dc0d2df3..1bef2c12 100644 --- a/simplicity-sys/depend/simplicity/jets.c +++ b/simplicity-sys/depend/simplicity/jets.c @@ -21,6 +21,14 @@ bool verify(frameItem* dst, frameItem src, const txEnv* env) { return readBit(&src); } +/* low_1 : ONE |- TWO */ +bool low_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + (void) src; /* src is unused. */ + writeBit(dst, 0); + return true; +} + #define LOW_(bits) \ /* low_n : ONE |- TWO^n */ \ bool low_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -34,6 +42,14 @@ LOW_(16) LOW_(32) LOW_(64) +/* high_1 : ONE |- TWO */ +bool high_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + (void) src; /* src is unused. */ + writeBit(dst, 1); + return true; +} + #define HIGH_(bits) \ /* high_n : ONE |- TWO^n */ \ bool high_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -47,6 +63,14 @@ HIGH_(16) HIGH_(32) HIGH_(64) +/* complement_1 : TWO |- TWO */ +bool complement_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + bool x = readBit(&src); + writeBit(dst, !x); + return true; +} + #define COMPLEMENT_(bits) \ /* complement_n : TWO^n |- TWO^n */ \ bool complement_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -60,6 +84,15 @@ COMPLEMENT_(16) COMPLEMENT_(32) COMPLEMENT_(64) +/* and_1 : TWO * TWO |- TWO */ +bool and_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + bool x = readBit(&src); + bool y = readBit(&src); + writeBit(dst, x && y); + return true; +} + #define AND_(bits) \ /* and_n : TWO^n * TWO^n |- TWO^n */ \ bool and_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -74,6 +107,15 @@ AND_(16) AND_(32) AND_(64) +/* or_1 : TWO * TWO |- TWO */ +bool or_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + bool x = readBit(&src); + bool y = readBit(&src); + writeBit(dst, x || y); + return true; +} + #define OR_(bits) \ /* or_n : TWO^n * TWO^n |- TWO^n */ \ bool or_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -88,6 +130,15 @@ OR_(16) OR_(32) OR_(64) +/* xor_1 : TWO * TWO |- TWO */ +bool xor_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + bool x = readBit(&src); + bool y = readBit(&src); + writeBit(dst, x ^ y); + return true; +} + #define XOR_(bits) \ /* xor_n : TWO^n * TWO^n |- TWO^n */ \ bool xor_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -102,6 +153,16 @@ XOR_(16) XOR_(32) XOR_(64) +/* maj_1 : TWO * TWO * TWO |- TWO */ +bool maj_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + bool x = readBit(&src); + bool y = readBit(&src); + bool z = readBit(&src); + writeBit(dst, (x && y) || (y && z) || (z && x)); + return true; +} + #define MAJ_(bits) \ /* maj_n : TWO^n * TWO^n * TWO^n |- TWO^n */ \ bool maj_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -117,6 +178,16 @@ MAJ_(16) MAJ_(32) MAJ_(64) +/* xor_xor_1 : TWO * TWO * TWO |- TWO */ +bool xor_xor_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + bool x = readBit(&src); + bool y = readBit(&src); + bool z = readBit(&src); + writeBit(dst, x ^ y ^ z); + return true; +} + #define XOR_XOR_(bits) \ /* xor_xor_n : TWO^n * TWO^n * TWO^n |- TWO^n */ \ bool xor_xor_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -132,6 +203,16 @@ XOR_XOR_(16) XOR_XOR_(32) XOR_XOR_(64) +/* ch_1 : TWO * TWO * TWO |- TWO */ +bool ch_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + bool x = readBit(&src); + bool y = readBit(&src); + bool z = readBit(&src); + writeBit(dst, x ? y : z); + return true; +} + #define CH_(bits) \ /* ch_n : TWO^n * TWO^n * TWO^n |- TWO^n */ \ bool ch_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -147,6 +228,14 @@ CH_(16) CH_(32) CH_(64) +/* some_1 : TWO |- TWO */ +bool some_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + bool x = readBit(&src); + writeBit(dst, x); + return true; +} + #define SOME_(bits) \ /* some_n : TWO^n |- TWO */ \ bool some_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -173,18 +262,14 @@ ALL_(16) ALL_(32) ALL_(64) -#define ONE_(bits) \ -/* one_n : ONE |- TWO^n */ \ -bool one_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ - (void) env; /* env is unused. */ \ - (void) src; /* src is unused. */ \ - write##bits(dst, 1); \ - return true; \ +/* eq_1 : TWO * TWO |- TWO */ +bool eq_1(frameItem* dst, frameItem src, const txEnv* env) { + (void) env; /* env is unused. */ + bool x = readBit(&src); + bool y = readBit(&src); + writeBit(dst, x == y); + return true; } -ONE_(8) -ONE_(16) -ONE_(32) -ONE_(64) #define EQ_(bits) \ /* eq_n : TWO^n * TWO^n |- TWO */ \ @@ -215,6 +300,409 @@ bool eq_256(frameItem* dst, frameItem src, const txEnv* env) { return true; } +#define FULL_LEFT_SHIFT_(bitsN, bitsM) \ +/* full_left_shift_n_m : TWO^n * TWO^m |- TWO^m * TWO^n */ \ +bool full_left_shift_##bitsN##_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 <= (bitsM) && (bitsM) <= (bitsN) && (bitsN) <= 64, "Bad arguments for bitsN or bitsM"); \ + copyBits(dst, &src, (bitsN) + (bitsM)); \ + return true; \ +} +FULL_LEFT_SHIFT_(8,1) +FULL_LEFT_SHIFT_(8,2) +FULL_LEFT_SHIFT_(8,4) +FULL_LEFT_SHIFT_(16,1) +FULL_LEFT_SHIFT_(16,2) +FULL_LEFT_SHIFT_(16,4) +FULL_LEFT_SHIFT_(16,8) +FULL_LEFT_SHIFT_(32,1) +FULL_LEFT_SHIFT_(32,2) +FULL_LEFT_SHIFT_(32,4) +FULL_LEFT_SHIFT_(32,8) +FULL_LEFT_SHIFT_(32,16) +FULL_LEFT_SHIFT_(64,1) +FULL_LEFT_SHIFT_(64,2) +FULL_LEFT_SHIFT_(64,4) +FULL_LEFT_SHIFT_(64,8) +FULL_LEFT_SHIFT_(64,16) +FULL_LEFT_SHIFT_(64,32) + +#define FULL_RIGHT_SHIFT_(bitsN, bitsM) \ +/* full_right_shift_n_m : TWO^m * TWO^n |- TWO^n * TWO^m */ \ +bool full_right_shift_##bitsN##_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 <= (bitsM) && (bitsM) <= (bitsN) && (bitsN) <= 64, "Bad arguments for bitsN or bitsM"); \ + copyBits(dst, &src, (bitsN) + (bitsM)); \ + return true; \ +} +FULL_RIGHT_SHIFT_(8,1) +FULL_RIGHT_SHIFT_(8,2) +FULL_RIGHT_SHIFT_(8,4) +FULL_RIGHT_SHIFT_(16,1) +FULL_RIGHT_SHIFT_(16,2) +FULL_RIGHT_SHIFT_(16,4) +FULL_RIGHT_SHIFT_(16,8) +FULL_RIGHT_SHIFT_(32,1) +FULL_RIGHT_SHIFT_(32,2) +FULL_RIGHT_SHIFT_(32,4) +FULL_RIGHT_SHIFT_(32,8) +FULL_RIGHT_SHIFT_(32,16) +FULL_RIGHT_SHIFT_(64,1) +FULL_RIGHT_SHIFT_(64,2) +FULL_RIGHT_SHIFT_(64,4) +FULL_RIGHT_SHIFT_(64,8) +FULL_RIGHT_SHIFT_(64,16) +FULL_RIGHT_SHIFT_(64,32) + +#define LEFTMOST_(bitsN, bitsM) \ +/* leftmost_n_m : TWO^n |- TWO^m */ \ +bool leftmost_##bitsN##_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 <= (bitsM) && (bitsM) <= (bitsN) && (bitsN) <= 64, "Bad arguments for bitsN or bitsM"); \ + copyBits(dst, &src, (bitsM)); \ + return true; \ +} +LEFTMOST_(8,1) +LEFTMOST_(8,2) +LEFTMOST_(8,4) +LEFTMOST_(16,1) +LEFTMOST_(16,2) +LEFTMOST_(16,4) +LEFTMOST_(16,8) +LEFTMOST_(32,1) +LEFTMOST_(32,2) +LEFTMOST_(32,4) +LEFTMOST_(32,8) +LEFTMOST_(32,16) +LEFTMOST_(64,1) +LEFTMOST_(64,2) +LEFTMOST_(64,4) +LEFTMOST_(64,8) +LEFTMOST_(64,16) +LEFTMOST_(64,32) + +#define RIGHTMOST_(bitsN, bitsM) \ +/* rightmost_n_m : TWO^n |- TWO^m */ \ +bool rightmost_##bitsN##_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 <= (bitsM) && (bitsM) <= (bitsN) && (bitsN) <= 64, "Bad arguments for bitsN or bitsM"); \ + forwardBits(&src, (bitsN) - (bitsM)); \ + copyBits(dst, &src, (bitsM)); \ + return true; \ +} +RIGHTMOST_(8,1) +RIGHTMOST_(8,2) +RIGHTMOST_(8,4) +RIGHTMOST_(16,1) +RIGHTMOST_(16,2) +RIGHTMOST_(16,4) +RIGHTMOST_(16,8) +RIGHTMOST_(32,1) +RIGHTMOST_(32,2) +RIGHTMOST_(32,4) +RIGHTMOST_(32,8) +RIGHTMOST_(32,16) +RIGHTMOST_(64,1) +RIGHTMOST_(64,2) +RIGHTMOST_(64,4) +RIGHTMOST_(64,8) +RIGHTMOST_(64,16) +RIGHTMOST_(64,32) + +#define LEFT_PAD_LOW_1_(bitsM) \ +/* left_pad_low_1_m : TWO |- TWO^m */ \ +bool left_pad_low_1_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + bool bit = readBit(&src); \ + write##bitsM(dst, bit); \ + return true; \ +} +LEFT_PAD_LOW_1_(8) +LEFT_PAD_LOW_1_(16) +LEFT_PAD_LOW_1_(32) +LEFT_PAD_LOW_1_(64) + +#define LEFT_PAD_LOW_(bitsN, bitsM) \ +/* left_pad_low_n_m : TWO^n |- TWO^m */ \ +bool left_pad_low_##bitsN##_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 < (bitsN) && (bitsN) <= 64, "bitsN is out of range"); \ + static_assert(0 < (bitsM) && (bitsM) <= 64, "bitsM is out of range"); \ + static_assert(0 == (bitsM) % (bitsN), "bitsM is not a multiple of bitsN"); \ + for(int i = 0; i < (bitsM)/(bitsN) - 1; ++i) { write##bitsN(dst, 0); } \ + copyBits(dst, &src, (bitsN)); \ + return true; \ +} +LEFT_PAD_LOW_(8,16) +LEFT_PAD_LOW_(8,32) +LEFT_PAD_LOW_(8,64) +LEFT_PAD_LOW_(16,32) +LEFT_PAD_LOW_(16,64) +LEFT_PAD_LOW_(32,64) + +#define LEFT_PAD_HIGH_1_(bitsM) \ +/* left_pad_high_1_m : TWO |- TWO^m */ \ +bool left_pad_high_1_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 < (bitsM) && (bitsM) <= 64, "bitsM is out of range"); \ + for(int i = 0; i < (bitsM) - 1; ++i) { writeBit(dst, true); } \ + copyBits(dst, &src, 1); \ + return true; \ +} +LEFT_PAD_HIGH_1_(8) +LEFT_PAD_HIGH_1_(16) +LEFT_PAD_HIGH_1_(32) +LEFT_PAD_HIGH_1_(64) + +#define LEFT_PAD_HIGH_(bitsN, bitsM) \ +/* left_pad_high_n_m : TWO^n |- TWO^m */ \ +bool left_pad_high_##bitsN##_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 < (bitsN) && (bitsN) <= 64, "bitsN is out of range"); \ + static_assert(0 < (bitsM) && (bitsM) <= 64, "bitsM is out of range"); \ + static_assert(0 == (bitsM) % (bitsN), "bitsM is not a multiple of bitsN"); \ + for(int i = 0; i < (bitsM)/(bitsN) - 1; ++i) { write##bitsN(dst, UINT##bitsN##_MAX); } \ + copyBits(dst, &src, (bitsN)); \ + return true; \ +} +LEFT_PAD_HIGH_(8,16) +LEFT_PAD_HIGH_(8,32) +LEFT_PAD_HIGH_(8,64) +LEFT_PAD_HIGH_(16,32) +LEFT_PAD_HIGH_(16,64) +LEFT_PAD_HIGH_(32,64) + +#define LEFT_EXTEND_1_(bitsM) \ +/* left_extend_1_m : TWO |- TWO^m */ \ +bool left_extend_1_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + bool bit = readBit(&src); \ + write##bitsM(dst, bit ? UINT##bitsM##_MAX : 0); \ + return true; \ +} +LEFT_EXTEND_1_(8) +LEFT_EXTEND_1_(16) +LEFT_EXTEND_1_(32) +LEFT_EXTEND_1_(64) + +#define LEFT_EXTEND_(bitsN, bitsM) \ +/* left_extend_n_m : TWO^n |- TWO^m */ \ +bool left_extend_##bitsN##_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 < (bitsN) && (bitsN) <= 64, "bitsN is out of range"); \ + static_assert(0 < (bitsM) && (bitsM) <= 64, "bitsM is out of range"); \ + static_assert(0 == (bitsM) % (bitsN), "bitsM is not a multiple of bitsN"); \ + uint_fast##bitsN##_t input = read##bitsN(&src); \ + bool msb = input >> ((bitsN) - 1); \ + for(int i = 0; i < (bitsM)/(bitsN) - 1; ++i) { write##bitsN(dst, msb ? UINT##bitsN##_MAX : 0); } \ + write##bitsN(dst, input); \ + return true; \ +} +LEFT_EXTEND_(8,16) +LEFT_EXTEND_(8,32) +LEFT_EXTEND_(8,64) +LEFT_EXTEND_(16,32) +LEFT_EXTEND_(16,64) +LEFT_EXTEND_(32,64) + +#define RIGHT_PAD_LOW_1_(bitsM) \ +/* right_pad_low_1_m : TWO |- TWO^m */ \ +bool right_pad_low_1_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 < (bitsM) && (bitsM) <= 64, "bitsM is out of range"); \ + bool bit = readBit(&src); \ + write##bitsM(dst, (uint_fast##bitsM##_t)((uint_fast##bitsM##_t)bit << ((bitsM) - 1))); \ + return true; \ +} +RIGHT_PAD_LOW_1_(8) +RIGHT_PAD_LOW_1_(16) +RIGHT_PAD_LOW_1_(32) +RIGHT_PAD_LOW_1_(64) + +#define RIGHT_PAD_LOW_(bitsN, bitsM) \ +/* right_pad_low_n_m : TWO^n |- TWO^m */ \ +bool right_pad_low_##bitsN##_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 < (bitsN) && (bitsN) <= 64, "bitsN is out of range"); \ + static_assert(0 < (bitsM) && (bitsM) <= 64, "bitsM is out of range"); \ + static_assert(0 == (bitsM) % (bitsN), "bitsM is not a multiple of bitsN"); \ + copyBits(dst, &src, (bitsN)); \ + for(int i = 0; i < (bitsM)/(bitsN) - 1; ++i) { write##bitsN(dst, 0); } \ + return true; \ +} +RIGHT_PAD_LOW_(8,16) +RIGHT_PAD_LOW_(8,32) +RIGHT_PAD_LOW_(8,64) +RIGHT_PAD_LOW_(16,32) +RIGHT_PAD_LOW_(16,64) +RIGHT_PAD_LOW_(32,64) + +#define RIGHT_PAD_HIGH_1_(bitsM) \ +/* right_pad_high_1_m : TWO |- TWO^m */ \ +bool right_pad_high_1_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 < (bitsM) && (bitsM) <= 64, "bitsM is out of range"); \ + copyBits(dst, &src, 1); \ + for(int i = 0; i < (bitsM) - 1; ++i) { writeBit(dst, true); } \ + return true; \ +} +RIGHT_PAD_HIGH_1_(8) +RIGHT_PAD_HIGH_1_(16) +RIGHT_PAD_HIGH_1_(32) +RIGHT_PAD_HIGH_1_(64) + +#define RIGHT_PAD_HIGH_(bitsN, bitsM) \ +/* right_pad_high_n_m : TWO^n |- TWO^m */ \ +bool right_pad_high_##bitsN##_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 < (bitsN) && (bitsN) <= 64, "bitsN is out of range"); \ + static_assert(0 < (bitsM) && (bitsM) <= 64, "bitsM is out of range"); \ + static_assert(0 == (bitsM) % (bitsN), "bitsM is not a multiple of bitsN"); \ + copyBits(dst, &src, (bitsN)); \ + for(int i = 0; i < (bitsM)/(bitsN) - 1; ++i) { write##bitsN(dst, UINT##bitsN##_MAX); } \ + return true; \ +} +RIGHT_PAD_HIGH_(8,16) +RIGHT_PAD_HIGH_(8,32) +RIGHT_PAD_HIGH_(8,64) +RIGHT_PAD_HIGH_(16,32) +RIGHT_PAD_HIGH_(16,64) +RIGHT_PAD_HIGH_(32,64) + +#define RIGHT_EXTEND_(bitsN, bitsM) \ +/* right_extend_n_m : TWO^n |- TWO^m */ \ +bool right_extend_##bitsN##_##bitsM(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + static_assert(0 < (bitsN) && (bitsN) <= 64, "bitsN is out of range"); \ + static_assert(0 < (bitsM) && (bitsM) <= 64, "bitsM is out of range"); \ + static_assert(0 == (bitsM) % (bitsN), "bitsM is not a multiple of bitsN"); \ + uint_fast##bitsN##_t input = read##bitsN(&src); \ + bool lsb = input & 1; \ + write##bitsN(dst, input); \ + for(int i = 0; i < (bitsM)/(bitsN) - 1; ++i) { write##bitsN(dst, lsb ? UINT##bitsN##_MAX : 0); } \ + return true; \ +} +RIGHT_EXTEND_(8,16) +RIGHT_EXTEND_(8,32) +RIGHT_EXTEND_(8,64) +RIGHT_EXTEND_(16,32) +RIGHT_EXTEND_(16,64) +RIGHT_EXTEND_(32,64) + +#define LEFT_SHIFT_(log, bits) \ +static inline void left_shift_helper_##bits(bool with, frameItem* dst, frameItem *src) { \ + static_assert(log <= 8, "Only log parameter upto 8 is supported."); \ + uint_fast8_t amt = read##log(src); \ + uint_fast##bits##_t output = read##bits(src); \ + if (with) output = UINT##bits##_MAX ^ output; \ + if (amt < bits) { \ + output = (uint_fast##bits##_t)((1U * output) << amt); \ + } else { \ + output = 0; \ + } \ + if (with) output = UINT##bits##_MAX ^ output; \ + write##bits(dst, output); \ +} \ + \ +/* left_shift_with_n : TWO * TWO^l * TWO^n |- TWO^n */ \ +bool left_shift_with_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + bool with = readBit(&src); \ + left_shift_helper_##bits(with, dst, &src); \ + return true; \ +} \ + \ +/* left_shift_n : TWO^l * TWO^n |- TWO^n */ \ +bool left_shift_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + left_shift_helper_##bits(0, dst, &src); \ + return true; \ +} +LEFT_SHIFT_(4,8) +LEFT_SHIFT_(4,16) +LEFT_SHIFT_(8,32) +LEFT_SHIFT_(8,64) + +#define RIGHT_SHIFT_(log, bits) \ +static inline void right_shift_helper_##bits(bool with, frameItem* dst, frameItem *src) { \ + static_assert(log <= 8, "Only log parameter upto 8 is supported."); \ + uint_fast8_t amt = read##log(src); \ + uint_fast##bits##_t output = read##bits(src); \ + if (with) output = UINT##bits##_MAX ^ output; \ + if (amt < bits) { \ + output = (uint_fast##bits##_t)(output >> amt); \ + } else { \ + output = 0; \ + } \ + if (with) output = UINT##bits##_MAX ^ output; \ + write##bits(dst, output); \ +} \ + \ +/* right_shift_with_n : TWO * TWO^l * TWO^n |- TWO^n */ \ +bool right_shift_with_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + bool with = readBit(&src); \ + right_shift_helper_##bits(with, dst, &src); \ + return true; \ +} \ + \ +/* right_shift_n : TWO^l * TWO^n |- TWO^n */ \ +bool right_shift_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + right_shift_helper_##bits(0, dst, &src); \ + return true; \ +} +RIGHT_SHIFT_(4,8) +RIGHT_SHIFT_(4,16) +RIGHT_SHIFT_(8,32) +RIGHT_SHIFT_(8,64) + +#define ROTATE_(log, bits) \ +/* Precondition: 0 <= amt < bits */ \ +static inline uint_fast##bits##_t rotate_##bits(uint_fast##bits##_t value, uint_fast8_t amt) { \ + if (amt) { \ + return (uint_fast##bits##_t)((1U * value << amt) | value >> (bits - amt)); \ + } else { \ + return value; \ + } \ +} \ + \ +/* left_rotate_n : TWO^l * TWO^n |- TWO^n */ \ +bool left_rotate_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + uint_fast8_t amt = read##log(&src) % bits; \ + uint_fast##bits##_t input = read##bits(&src); \ + write##bits(dst, rotate_##bits(input, amt)); \ + return true; \ +} \ + \ +/* right_rotate_n : TWO^l * TWO^n |- TWO^n */ \ +bool right_rotate_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + static_assert(bits <= UINT8_MAX, "'bits' is too large."); \ + (void) env; /* env is unused. */ \ + uint_fast8_t amt = read##log(&src) % bits; \ + uint_fast##bits##_t input = read##bits(&src); \ + write##bits(dst, rotate_##bits(input, (uint_fast8_t)((bits - amt) % bits))); \ + return true; \ +} +ROTATE_(4,8) +ROTATE_(4,16) +ROTATE_(8,32) +ROTATE_(8,64) + +#define ONE_(bits) \ +/* one_n : ONE |- TWO^n */ \ +bool one_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + (void) src; /* src is unused. */ \ + write##bits(dst, 1); \ + return true; \ +} +ONE_(8) +ONE_(16) +ONE_(32) +ONE_(64) + #define ADD_(bits) \ /* add_n : TWO^n * TWO^n |- TWO * TWO^n */ \ bool add_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ @@ -498,58 +986,58 @@ MEDIAN_(16) MEDIAN_(32) MEDIAN_(64) -#define DIV_MOD_(bits) \ - /* div_mod_n : TWO^n * TWO^n |- TWO^n * TWO^n */ \ - bool div_mod_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ - (void) env; /* env is unused. */ \ - uint_fast##bits##_t x = read##bits(&src); \ - uint_fast##bits##_t y = read##bits(&src); \ - write##bits(dst, 0 == y ? 0 : x / y); \ - write##bits(dst, 0 == y ? x : x % y); \ - return true; \ - } +#define DIV_MOD_(bits) \ +/* div_mod_n : TWO^n * TWO^n |- TWO^n * TWO^n */ \ +bool div_mod_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + uint_fast##bits##_t x = read##bits(&src); \ + uint_fast##bits##_t y = read##bits(&src); \ + write##bits(dst, 0 == y ? 0 : x / y); \ + write##bits(dst, 0 == y ? x : x % y); \ + return true; \ +} DIV_MOD_(8) DIV_MOD_(16) DIV_MOD_(32) DIV_MOD_(64) -#define DIVIDE_(bits) \ - /* divide_n : TWO^n * TWO^n |- TWO^n */ \ - bool divide_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ - (void) env; /* env is unused. */ \ - uint_fast##bits##_t x = read##bits(&src); \ - uint_fast##bits##_t y = read##bits(&src); \ - write##bits(dst, 0 == y ? 0 : x / y); \ - return true; \ - } +#define DIVIDE_(bits) \ +/* divide_n : TWO^n * TWO^n |- TWO^n */ \ +bool divide_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + uint_fast##bits##_t x = read##bits(&src); \ + uint_fast##bits##_t y = read##bits(&src); \ + write##bits(dst, 0 == y ? 0 : x / y); \ + return true; \ +} DIVIDE_(8) DIVIDE_(16) DIVIDE_(32) DIVIDE_(64) -#define MODULO_(bits) \ - /* modulo_n : TWO^n * TWO^n |- TWO^n */ \ - bool modulo_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ - (void) env; /* env is unused. */ \ - uint_fast##bits##_t x = read##bits(&src); \ - uint_fast##bits##_t y = read##bits(&src); \ - write##bits(dst, 0 == y ? x : x % y); \ - return true; \ - } +#define MODULO_(bits) \ +/* modulo_n : TWO^n * TWO^n |- TWO^n */ \ +bool modulo_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + uint_fast##bits##_t x = read##bits(&src); \ + uint_fast##bits##_t y = read##bits(&src); \ + write##bits(dst, 0 == y ? x : x % y); \ + return true; \ +} MODULO_(8) MODULO_(16) MODULO_(32) MODULO_(64) -#define DIVIDES_(bits) \ - /* divides_n : TWO^n * TWO^n |- TWO */ \ - bool divides_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ - (void) env; /* env is unused. */ \ - uint_fast##bits##_t x = read##bits(&src); \ - uint_fast##bits##_t y = read##bits(&src); \ - writeBit(dst, 0 == (0 == x ? y : y % x)); \ - return true; \ - } +#define DIVIDES_(bits) \ +/* divides_n : TWO^n * TWO^n |- TWO */ \ +bool divides_##bits(frameItem* dst, frameItem src, const txEnv* env) { \ + (void) env; /* env is unused. */ \ + uint_fast##bits##_t x = read##bits(&src); \ + uint_fast##bits##_t y = read##bits(&src); \ + writeBit(dst, 0 == (0 == x ? y : y % x)); \ + return true; \ +} DIVIDES_(8) DIVIDES_(16) DIVIDES_(32) diff --git a/simplicity-sys/depend/simplicity/jets.h b/simplicity-sys/depend/simplicity/jets.h index 0e2e8ddd..797c88fc 100644 --- a/simplicity-sys/depend/simplicity/jets.h +++ b/simplicity-sys/depend/simplicity/jets.h @@ -22,42 +22,52 @@ typedef struct txEnv txEnv; typedef bool (*jet_ptr)(frameItem* dst, frameItem src, const txEnv* env); bool verify(frameItem* dst, frameItem src, const txEnv* env); +bool low_1(frameItem* dst, frameItem src, const txEnv* env); bool low_8(frameItem* dst, frameItem src, const txEnv* env); bool low_16(frameItem* dst, frameItem src, const txEnv* env); bool low_32(frameItem* dst, frameItem src, const txEnv* env); bool low_64(frameItem* dst, frameItem src, const txEnv* env); +bool high_1(frameItem* dst, frameItem src, const txEnv* env); bool high_8(frameItem* dst, frameItem src, const txEnv* env); bool high_16(frameItem* dst, frameItem src, const txEnv* env); bool high_32(frameItem* dst, frameItem src, const txEnv* env); bool high_64(frameItem* dst, frameItem src, const txEnv* env); +bool complement_1(frameItem* dst, frameItem src, const txEnv* env); bool complement_8(frameItem* dst, frameItem src, const txEnv* env); bool complement_16(frameItem* dst, frameItem src, const txEnv* env); bool complement_32(frameItem* dst, frameItem src, const txEnv* env); bool complement_64(frameItem* dst, frameItem src, const txEnv* env); +bool and_1(frameItem* dst, frameItem src, const txEnv* env); bool and_8(frameItem* dst, frameItem src, const txEnv* env); bool and_16(frameItem* dst, frameItem src, const txEnv* env); bool and_32(frameItem* dst, frameItem src, const txEnv* env); bool and_64(frameItem* dst, frameItem src, const txEnv* env); +bool or_1(frameItem* dst, frameItem src, const txEnv* env); bool or_8(frameItem* dst, frameItem src, const txEnv* env); bool or_16(frameItem* dst, frameItem src, const txEnv* env); bool or_32(frameItem* dst, frameItem src, const txEnv* env); bool or_64(frameItem* dst, frameItem src, const txEnv* env); +bool xor_1(frameItem* dst, frameItem src, const txEnv* env); bool xor_8(frameItem* dst, frameItem src, const txEnv* env); bool xor_16(frameItem* dst, frameItem src, const txEnv* env); bool xor_32(frameItem* dst, frameItem src, const txEnv* env); bool xor_64(frameItem* dst, frameItem src, const txEnv* env); +bool maj_1(frameItem* dst, frameItem src, const txEnv* env); bool maj_8(frameItem* dst, frameItem src, const txEnv* env); bool maj_16(frameItem* dst, frameItem src, const txEnv* env); bool maj_32(frameItem* dst, frameItem src, const txEnv* env); bool maj_64(frameItem* dst, frameItem src, const txEnv* env); +bool xor_xor_1(frameItem* dst, frameItem src, const txEnv* env); bool xor_xor_8(frameItem* dst, frameItem src, const txEnv* env); bool xor_xor_16(frameItem* dst, frameItem src, const txEnv* env); bool xor_xor_32(frameItem* dst, frameItem src, const txEnv* env); bool xor_xor_64(frameItem* dst, frameItem src, const txEnv* env); +bool ch_1(frameItem* dst, frameItem src, const txEnv* env); bool ch_8(frameItem* dst, frameItem src, const txEnv* env); bool ch_16(frameItem* dst, frameItem src, const txEnv* env); bool ch_32(frameItem* dst, frameItem src, const txEnv* env); bool ch_64(frameItem* dst, frameItem src, const txEnv* env); +bool some_1(frameItem* dst, frameItem src, const txEnv* env); bool some_8(frameItem* dst, frameItem src, const txEnv* env); bool some_16(frameItem* dst, frameItem src, const txEnv* env); bool some_32(frameItem* dst, frameItem src, const txEnv* env); @@ -70,11 +80,165 @@ bool one_8(frameItem* dst, frameItem src, const txEnv* env); bool one_16(frameItem* dst, frameItem src, const txEnv* env); bool one_32(frameItem* dst, frameItem src, const txEnv* env); bool one_64(frameItem* dst, frameItem src, const txEnv* env); +bool eq_1(frameItem* dst, frameItem src, const txEnv* env); bool eq_8(frameItem* dst, frameItem src, const txEnv* env); bool eq_16(frameItem* dst, frameItem src, const txEnv* env); bool eq_32(frameItem* dst, frameItem src, const txEnv* env); bool eq_64(frameItem* dst, frameItem src, const txEnv* env); bool eq_256(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_8_1(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_8_2(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_8_4(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_16_1(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_16_2(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_16_4(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_16_8(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_32_1(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_32_2(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_32_4(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_32_8(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_32_16(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_64_1(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_64_2(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_64_4(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_64_8(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_64_16(frameItem* dst, frameItem src, const txEnv* env); +bool full_left_shift_64_32(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_8_1(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_8_2(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_8_4(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_16_1(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_16_2(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_16_4(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_16_8(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_32_1(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_32_2(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_32_4(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_32_8(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_32_16(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_64_1(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_64_2(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_64_4(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_64_8(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_64_16(frameItem* dst, frameItem src, const txEnv* env); +bool full_right_shift_64_32(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_8_1(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_8_2(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_8_4(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_16_1(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_16_2(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_16_4(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_16_8(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_32_1(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_32_2(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_32_4(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_32_8(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_32_16(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_64_1(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_64_2(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_64_4(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_64_8(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_64_16(frameItem* dst, frameItem src, const txEnv* env); +bool leftmost_64_32(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_8_1(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_8_2(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_8_4(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_16_1(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_16_2(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_16_4(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_16_8(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_32_1(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_32_2(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_32_4(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_32_8(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_32_16(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_64_1(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_64_2(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_64_4(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_64_8(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_64_16(frameItem* dst, frameItem src, const txEnv* env); +bool rightmost_64_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_low_1_8(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_low_1_16(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_low_8_16(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_low_1_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_low_8_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_low_16_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_low_1_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_low_8_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_low_16_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_low_32_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_high_1_8(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_high_1_16(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_high_8_16(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_high_1_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_high_8_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_high_16_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_high_1_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_high_8_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_high_16_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_pad_high_32_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_extend_1_8(frameItem* dst, frameItem src, const txEnv* env); +bool left_extend_1_16(frameItem* dst, frameItem src, const txEnv* env); +bool left_extend_8_16(frameItem* dst, frameItem src, const txEnv* env); +bool left_extend_1_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_extend_8_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_extend_16_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_extend_1_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_extend_8_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_extend_16_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_extend_32_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_low_1_8(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_low_1_16(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_low_8_16(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_low_1_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_low_8_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_low_16_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_low_1_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_low_8_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_low_16_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_low_32_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_high_1_8(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_high_1_16(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_high_8_16(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_high_1_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_high_8_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_high_16_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_high_1_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_high_8_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_high_16_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_pad_high_32_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_extend_8_16(frameItem* dst, frameItem src, const txEnv* env); +bool right_extend_8_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_extend_16_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_extend_8_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_extend_16_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_extend_32_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_shift_with_8(frameItem* dst, frameItem src, const txEnv* env); +bool left_shift_with_16(frameItem* dst, frameItem src, const txEnv* env); +bool left_shift_with_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_shift_with_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_shift_8(frameItem* dst, frameItem src, const txEnv* env); +bool left_shift_16(frameItem* dst, frameItem src, const txEnv* env); +bool left_shift_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_shift_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_shift_with_8(frameItem* dst, frameItem src, const txEnv* env); +bool right_shift_with_16(frameItem* dst, frameItem src, const txEnv* env); +bool right_shift_with_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_shift_with_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_shift_8(frameItem* dst, frameItem src, const txEnv* env); +bool right_shift_16(frameItem* dst, frameItem src, const txEnv* env); +bool right_shift_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_shift_64(frameItem* dst, frameItem src, const txEnv* env); +bool left_rotate_8(frameItem* dst, frameItem src, const txEnv* env); +bool left_rotate_16(frameItem* dst, frameItem src, const txEnv* env); +bool left_rotate_32(frameItem* dst, frameItem src, const txEnv* env); +bool left_rotate_64(frameItem* dst, frameItem src, const txEnv* env); +bool right_rotate_8(frameItem* dst, frameItem src, const txEnv* env); +bool right_rotate_16(frameItem* dst, frameItem src, const txEnv* env); +bool right_rotate_32(frameItem* dst, frameItem src, const txEnv* env); +bool right_rotate_64(frameItem* dst, frameItem src, const txEnv* env); + bool add_8(frameItem* dst, frameItem src, const txEnv* env); bool add_16(frameItem* dst, frameItem src, const txEnv* env); bool add_32(frameItem* dst, frameItem src, const txEnv* env); diff --git a/simplicity-sys/depend/simplicity/limitations.h b/simplicity-sys/depend/simplicity/limitations.h index 59be7d25..f99741d7 100644 --- a/simplicity-sys/depend/simplicity/limitations.h +++ b/simplicity-sys/depend/simplicity/limitations.h @@ -1,6 +1,8 @@ #ifndef SIMPLICITY_LIMITATIONS_H #define SIMPLICITY_LIMITATIONS_H +#include + #define DAG_LEN_MAX 8000000U #define NUMBER_OF_TYPENAMES_MAX 0x1000U #define CELLS_MAX 0x500000U /* 5120 Kibibits ought to be enough for anyone. */ diff --git a/simplicity-sys/depend/simplicity/precomputed.h b/simplicity-sys/depend/simplicity/precomputed.h index a23e273a..faa9d61d 100644 --- a/simplicity-sys/depend/simplicity/precomputed.h +++ b/simplicity-sys/depend/simplicity/precomputed.h @@ -76,10 +76,291 @@ static const sha256_midstate hiddenIV = static const sha256_midstate jetIV = {{0xb3f14291u, 0xa2787fa8u, 0x14f81466u, 0x27815668u, 0x6d7d3f43u, 0x24e81bd4u, 0x61abf4ddu, 0x201ad3a8u}}; -/* This array contains the cmr of all canonical expressions of type X |- 2 that output distinct values. */ -static const sha256_midstate bit_cmr[] = +/* This array contains the cmr of all canonical expressions of type X |- TWO through X |- TWO^8 that output distinct values. + * word_cmr[0..1] contain the cmrs for scribe(0) .. scribe(1) : X | - TWO + * word_cmr[2..5] contain the cmrs for scribe(0) .. scribe(3) : X | - TWO^2 + * word_cmr[6..21] contain the cmrs for scribe(0) .. scribe(15) : X | - TWO^4 + * word_cmr[22..277] contain the cmrs for scribe(0) .. scribe(255) : X | - TWO^8 + */ +static const sha256_midstate word_cmr[] = { {{0xbd0cce93u, 0xe713a2aeu, 0x961bf91cu, 0x7d113edbu, 0x0671c786u, 0x9c722513u, 0x64682ac8u, 0x977eade7u}} - , {{0x79a70c6au, 0xe11897acu, 0xc1428c38u, 0x568a4522u, 0x2e7c3ea6u, 0x4c66ab4au, 0x104324eeu, 0x391bff9du}} }; + , {{0x79a70c6au, 0xe11897acu, 0xc1428c38u, 0x568a4522u, 0x2e7c3ea6u, 0x4c66ab4au, 0x104324eeu, 0x391bff9du}} + , {{0x34faa8c7u, 0xa8b00421u, 0xfd27c6ddu, 0x18f29108u, 0xb15f9504u, 0xbbba7ff5u, 0xc2a2d7eeu, 0xd140ea68u}} + , {{0x94c6b321u, 0xa3c9d595u, 0xeeb3f70au, 0xb6c461b0u, 0x961dc74fu, 0x33b5c175u, 0x31adca58u, 0x26274a34u}} + , {{0x69290aceu, 0x96d7a632u, 0xadd27fa8u, 0x02c7d70fu, 0x6d6591e9u, 0xc41974d4u, 0x350f04c3u, 0x99f442dbu}} + , {{0x864eb292u, 0xceff99c9u, 0x4a99d9e8u, 0xf46983c0u, 0x6b1800d8u, 0x4bc7c32fu, 0xc19bf49au, 0xc704c55fu}} + , {{0xe348cea0u, 0x8dda9ae3u, 0xd0531bb0u, 0x49a54145u, 0x6d0c543du, 0x9da58602u, 0x64c46a0cu, 0x1a8917a2u}} + , {{0x2298d3d6u, 0x09e31c67u, 0xd34b709au, 0x8947f563u, 0x969dd453u, 0xdbeaed0du, 0x52cf12ebu, 0x40ac4d2au}} + , {{0x8bfd749cu, 0x2ba5dcc4u, 0x50897c6cu, 0x42cbfabdu, 0xb48dabcau, 0xb3202fdcu, 0x3af061a6u, 0xecbc2257u}} + , {{0x561a1c02u, 0x497fc7cbu, 0x3d27f5ccu, 0x673b6ae1u, 0x64a93848u, 0x7b619894u, 0x7def17b3u, 0x5c91334du}} + , {{0xa63ba58bu, 0xd4559ca8u, 0x457edc72u, 0xb7d4277eu, 0x35370082u, 0x9764c512u, 0x94d71441u, 0x5a4f84d0u}} + , {{0x2fea2592u, 0x0177ad68u, 0xc5296cdfu, 0x8c3124d7u, 0x19ba853au, 0x39f99969u, 0xd384cc9cu, 0xaa7bb605u}} + , {{0x817eafddu, 0xe941a5b2u, 0xfafeff03u, 0x5e0df6dbu, 0xa5c083c3u, 0x85c112efu, 0xf5bdb7e7u, 0x8223518eu}} + , {{0x96ce840fu, 0x0a10625au, 0x6091e9a0u, 0x9fe6149au, 0x65803d66u, 0x4c380cb6u, 0x34a6f1b0u, 0x9c09c658u}} + , {{0x26bcfb68u, 0x1b250310u, 0x6b7d4168u, 0xefca7663u, 0x5615bd28u, 0x8859c90au, 0x686f573du, 0x7d550b88u}} + , {{0xef0ed9a3u, 0xd0788432u, 0xfde434e4u, 0x10751503u, 0xff06081bu, 0x8565d97au, 0xb34d56d1u, 0x0c7a53fbu}} + , {{0x1f20155du, 0x691c9b81u, 0xa511a9c4u, 0xa8109dceu, 0xa7652101u, 0x498efe36u, 0x608263efu, 0xa3c3e91fu}} + , {{0xc1ca6fa3u, 0xc6005b88u, 0x5c718877u, 0xf1994988u, 0x68c4e636u, 0x00c4aed4u, 0xd6331b35u, 0xf417dcf5u}} + , {{0x210d5087u, 0x6667ece5u, 0xe1634da6u, 0xcfdda129u, 0xac15a54eu, 0x0221fd9au, 0x652c9892u, 0x9a084072u}} + , {{0x9265f0ceu, 0xeb608b64u, 0xfa9b2aacu, 0xc2eecaf4u, 0x04beca43u, 0x433ffda4u, 0xadf0c010u, 0x6fa1c52au}} + , {{0x8e5b1cbcu, 0x39c65083u, 0xe211ef4cu, 0x85180abeu, 0x7af75b08u, 0x1cbbb00fu, 0xd24c244du, 0x7033334du}} + , {{0x3d8155a3u, 0x34a81df0u, 0x122ae8c6u, 0xaceb0415u, 0x08a73549u, 0xee8d65a6u, 0xd584f7d0u, 0xb9ccb852u}} + , {{0x10df87dcu, 0x2281018du, 0x1a9a7515u, 0xcfcbb097u, 0xea3ad5bau, 0x03c0fd30u, 0x5114db9au, 0xfae7a235u}} + , {{0x9e8bd468u, 0x69bd96e6u, 0xac97e0c6u, 0x31374718u, 0xe39a894bu, 0xd86a9a30u, 0x354d0121u, 0xc36b0114u}} + , {{0xc55ab128u, 0xff490dbdu, 0x012ebb50u, 0x6edd8348u, 0x7603fd78u, 0xa9cc7b08u, 0x6e243181u, 0x6fe4115eu}} + , {{0x69e31500u, 0xf6eca57au, 0xec8583abu, 0x62f21a14u, 0x892da65bu, 0x8599805fu, 0x1817ceafu, 0xfb767358u}} + , {{0x56e271c5u, 0xfa787f6du, 0xeaadaee2u, 0xcdc826f1u, 0xc8e539a0u, 0x1b908d09u, 0x95adbdabu, 0x1b48420du}} + , {{0x6623f2a7u, 0x60812aacu, 0x67af5e0au, 0x16d2c08du, 0x2b36f9a0u, 0x59a565c8u, 0x16a27886u, 0x58d93ddfu}} + , {{0x94a3c121u, 0xf7467967u, 0xa8553443u, 0xf38f911au, 0x9d4f90aau, 0x2b2ac7c7u, 0xd35f1dccu, 0x446961d4u}} + , {{0xf0b181f9u, 0x2fdff56eu, 0xa25c5615u, 0x13e53a6eu, 0xee16c3c9u, 0x76ca50bcu, 0x016241bcu, 0xaab36d43u}} + , {{0x308684e6u, 0x63a6a52bu, 0xf9cb70d9u, 0x7e0c163fu, 0xc3432ccau, 0x4eb8ced3u, 0x75d94f78u, 0xb5561ca5u}} + , {{0x44921410u, 0x5436c135u, 0x7dbff161u, 0xc4fb556du, 0x06d40e40u, 0xa9bcb027u, 0x75ce868bu, 0x94959645u}} + , {{0x7869b4a7u, 0x536efd9bu, 0xac85e9a3u, 0x8ce2489cu, 0xd1a6f012u, 0x7a048b20u, 0x57eb59e9u, 0x534f4022u}} + , {{0xdc27b21eu, 0x8d436611u, 0xed038094u, 0x9b172fedu, 0xbe464ac4u, 0x4ceee53fu, 0x423dc5bcu, 0x365eb12eu}} + , {{0x0ca1ed28u, 0x49ec7313u, 0x322837e1u, 0x550ae951u, 0x1adf6962u, 0x17261021u, 0x5b075dbau, 0x27f34770u}} + , {{0x2a177f23u, 0xa95bac14u, 0x78576a38u, 0x7046d0d0u, 0x33a8c0a8u, 0xc8ad8956u, 0x6d5be67cu, 0xad17cc68u}} + , {{0x9ce6d720u, 0x54fff5afu, 0x6c4fba17u, 0xcd0dab59u, 0xf2096fe6u, 0xae198973u, 0x417e2190u, 0xf73f39eau}} + , {{0x985a6ed7u, 0xb4a85ae8u, 0x692be24du, 0x292f0145u, 0xed4d52e1u, 0xff362363u, 0x2e9de6e2u, 0x9fe8614au}} + , {{0x54598539u, 0xdf62637du, 0x5a7008b3u, 0x04167eb6u, 0x821bd9e4u, 0x44cd84fbu, 0x7842f64du, 0x2adeb138u}} + , {{0x81b0bc69u, 0xc5c4fe61u, 0x0245cbcdu, 0xa5d71b56u, 0xea7efb91u, 0xc3e433bdu, 0x70a0d420u, 0xc2ca26b1u}} + , {{0x9f972a43u, 0x0bcb84b7u, 0x137c5811u, 0x9427cd01u, 0x68ae1956u, 0xc107417bu, 0x9f47fdedu, 0x42244aeeu}} + , {{0xd7e90fddu, 0x6e4e2129u, 0x5789dd24u, 0x72c1a27au, 0xd97b4f6bu, 0xe2b21041u, 0xaf1efbecu, 0xa6853d42u}} + , {{0x4fed6606u, 0xafeb5112u, 0x6e56271fu, 0x87e17dc3u, 0x29df99beu, 0xb4268bc4u, 0xe505d98eu, 0xd594ea58u}} + , {{0xce06a2a7u, 0xe9562611u, 0x49753c5eu, 0xea781a52u, 0x8028f89eu, 0xf3cd1225u, 0x9a86d519u, 0x820a61f2u}} + , {{0x1683d63fu, 0x43c94706u, 0x62f54f8cu, 0xb90f2cbau, 0xfd07de70u, 0x04ac0f02u, 0x7fe49b57u, 0x93b6718au}} + , {{0xc15e0ab4u, 0xbbb7d480u, 0x3439e998u, 0x8a516fa6u, 0x0c6319b8u, 0x5c29e67cu, 0x356a48a0u, 0x359f6591u}} + , {{0x840b3451u, 0xb067915eu, 0xf9d020f6u, 0x8f5a0d32u, 0x1b0ba71bu, 0xbff54714u, 0xb0ec8e4au, 0xef6017a0u}} + , {{0x4fcc2dfdu, 0x2f938992u, 0x92aba19du, 0x8db819d6u, 0x3b514697u, 0x37dfab55u, 0x2d0e1e5eu, 0x90cbab93u}} + , {{0x0c287e96u, 0x2597aeb9u, 0x990baa67u, 0x214d4ab3u, 0x244c0879u, 0x9991915bu, 0xcf80b939u, 0xc5f65802u}} + , {{0x02ad6f4fu, 0xbd46670bu, 0xbaea48cfu, 0xd816397bu, 0xfbab05a3u, 0x6f4ce195u, 0x40b60168u, 0xd083d135u}} + , {{0x378de1abu, 0x4ed303fdu, 0xa17fb791u, 0x8ce52af6u, 0x8df81374u, 0x75b58348u, 0x97afdee6u, 0x5966a662u}} + , {{0x0978b025u, 0xda373c7eu, 0xdb9e04c3u, 0x2c52b263u, 0x575345f1u, 0x63bc987fu, 0x76b3a0f9u, 0xa9f2a097u}} + , {{0x23d3c923u, 0xcef31bb9u, 0x93de00a0u, 0x34801191u, 0x5d0dc021u, 0x80249617u, 0xe71b7255u, 0x4138fe72u}} + , {{0x858b8e53u, 0x9d1f37ceu, 0xa2ccce0au, 0x5eced510u, 0x760946c0u, 0x8435d32cu, 0xd1a19656u, 0x415f3875u}} + , {{0x15fc9198u, 0x53b19740u, 0xfd6a78b4u, 0x83539073u, 0x1dc4a7c0u, 0x8ce81b14u, 0xff9ed80fu, 0x7c49b1f1u}} + , {{0x0ad1bf3du, 0xe53f2d7fu, 0xa8180c87u, 0xf06bb787u, 0x2b59c576u, 0x6fe883d3u, 0x7d97a181u, 0x095fdf6eu}} + , {{0x41c5912du, 0x5f8314b8u, 0xb00502b7u, 0xad5c778eu, 0xe8628019u, 0x135b4250u, 0x677c6e92u, 0x6a51345du}} + , {{0x3811b751u, 0xea492919u, 0xa91f201cu, 0x09efc10bu, 0x03372ff0u, 0x5793e9ddu, 0x63e32c58u, 0xf0e0e8a3u}} + , {{0x46403ecau, 0xf6a6e725u, 0x2d372b99u, 0x5857efc3u, 0xf017943du, 0x19e5e5f5u, 0x594a5d98u, 0x2fe8fff3u}} + , {{0x53ed84d7u, 0x932fc826u, 0x3caf949eu, 0xf8cff4c3u, 0xacf725f5u, 0x55720acau, 0x1310a0e4u, 0xe9901405u}} + , {{0x00bf49e5u, 0x5e7cbbdbu, 0x59085bb6u, 0x59ceab75u, 0xabb914e9u, 0x0e356619u, 0x4fe10f99u, 0x916eda55u}} + , {{0x6200d011u, 0xd369623bu, 0x7ff4223eu, 0x23cc7251u, 0x7bfbf50bu, 0x13bcf210u, 0xf9542aa7u, 0xa5713798u}} + , {{0x6fb06776u, 0xe75cb298u, 0xc8f8e08bu, 0xbe86ac1au, 0x35316eb7u, 0xbf677f5fu, 0xb2166560u, 0x761978bdu}} + , {{0x8b955c7eu, 0x394ace42u, 0x668c4787u, 0x09a4ef14u, 0x8a300745u, 0xabb1fdb1u, 0x083eec05u, 0xf6c63ef4u}} + , {{0x47f63ff2u, 0x803900afu, 0xbeec3503u, 0xaf79ee9bu, 0x3403f899u, 0x185f780bu, 0x6046b4e2u, 0x1f1d4462u}} + , {{0x17a6953fu, 0xd67ecdc1u, 0x4e533fd2u, 0x9f564d72u, 0xd33ec6b1u, 0xc8311fa9u, 0x2fe32da5u, 0xed76d071u}} + , {{0xe90c9617u, 0xded1f46au, 0xb856db7fu, 0xb893d794u, 0x04019443u, 0x9a761c3cu, 0xaaac4f1du, 0x9d3f06d2u}} + , {{0x4d5971b4u, 0xdc19e738u, 0x596be304u, 0x662b56b4u, 0x9772eef1u, 0x7b777e46u, 0x5f811c7eu, 0x7f429648u}} + , {{0xb332927du, 0x564d53efu, 0x3b847db0u, 0x3d0709a8u, 0x99645fd3u, 0x41d93f7eu, 0xe24b66d4u, 0x429d1a0bu}} + , {{0xdce6be95u, 0xccb39ab7u, 0x48de6d87u, 0x58d6bf56u, 0xaf894becu, 0x85f1eb24u, 0xff3a21b0u, 0x6f935404u}} + , {{0x5b4c1b62u, 0xcfb48dfbu, 0xe73b0c9du, 0xc09334deu, 0x9ff1fcbau, 0xb7cf39efu, 0x8b25827eu, 0x69eb9347u}} + , {{0xe970e231u, 0x34c8455au, 0xca009223u, 0x482d9f20u, 0x7c3d336au, 0xec0a942fu, 0x13ae01dfu, 0x1398683eu}} + , {{0x172fdcaau, 0x3e3d2924u, 0x56f4f521u, 0x6b0a75a5u, 0xa67a94a4u, 0x1a0cd37au, 0x3b80e433u, 0xf72d5954u}} + , {{0x4b421c8cu, 0xe1015e0bu, 0xbdb55977u, 0x014afccau, 0x86bd24a9u, 0xc0587966u, 0x77f25177u, 0x38876972u}} + , {{0x7ecd3a29u, 0xf4f4b60fu, 0xc9e379aau, 0xd7a5af67u, 0xa78f6e8bu, 0xebbc4c7cu, 0x10d0dc8cu, 0xad92da1eu}} + , {{0xb271931bu, 0x76bfacbfu, 0x5c5e8a21u, 0x0e91a502u, 0xadb9f8e2u, 0x196e1396u, 0xba960ac1u, 0xe5f22d9cu}} + , {{0x23b4af88u, 0xae526c32u, 0x684a8221u, 0xec2ab6b7u, 0x47408addu, 0x2fe373a1u, 0xe7ca15e8u, 0x6f19d453u}} + , {{0xc7e603bbu, 0xc894563cu, 0x51e3e5cfu, 0xd6b423b7u, 0xc22bcdd7u, 0xbcdb3119u, 0x0066b1e6u, 0x9acdf6a9u}} + , {{0x9adb0e64u, 0x5a68953bu, 0x604224d8u, 0x76a7ce70u, 0x9ea6c56au, 0x917b81feu, 0x68eb6f11u, 0x46301257u}} + , {{0xb7aac2b0u, 0x10b727bfu, 0xcf6ee75au, 0x3b517647u, 0x20265dc6u, 0x9c23b95au, 0x1246a5bcu, 0x7e11aae5u}} + , {{0x049f84edu, 0xd55c5b80u, 0x0e933e2du, 0xa7e3a09fu, 0x71537465u, 0x1a1eb94du, 0xc8e2ae69u, 0x3a51eb65u}} + , {{0xddeeca1fu, 0x68135d7bu, 0xb0fcd0b7u, 0x62ac5be9u, 0x901be52au, 0xedc1b07cu, 0x68f5c926u, 0x1f4990a4u}} + , {{0xb64f52c3u, 0xfd1838cbu, 0x1b3fe6ccu, 0xe80cd5d0u, 0x1af5a3e7u, 0xa06b10f9u, 0x6a04118eu, 0xa4f8c565u}} + , {{0xfeda8baau, 0x1ab9832eu, 0xbf1228e7u, 0x3900f61du, 0x41c41518u, 0x4c5cb025u, 0xcc2aedd4u, 0x2658b617u}} + , {{0x2b487764u, 0x97251967u, 0x7a1899adu, 0x50740840u, 0xf5f2e17bu, 0x7a37a16du, 0x1b717116u, 0x21a8c050u}} + , {{0x216038ffu, 0x70ff574cu, 0xab0be742u, 0x128bc6d5u, 0x51ccc154u, 0xf77b3996u, 0xa91c2f65u, 0xc5246761u}} + , {{0x248d6cb7u, 0xd3908d76u, 0xc2e5f252u, 0xa56af337u, 0xd8c87d01u, 0x36a80112u, 0x2e5d87afu, 0x47bbc752u}} + , {{0xb9023978u, 0x667893f0u, 0x1b3bc93du, 0xde6ec84du, 0x8bd67d92u, 0x7e12d89fu, 0x9583b89cu, 0xb4698b37u}} + , {{0x2b345b7bu, 0xf2673030u, 0x75e99692u, 0xfceed61eu, 0xbecf1899u, 0x3497e45cu, 0x613f26a2u, 0xb3a9d1a8u}} + , {{0x8677e1dau, 0x2234d5b0u, 0xfed1f3b4u, 0x70e5c897u, 0x7ff4c0bbu, 0x6b464cfbu, 0x770cdfe6u, 0xaf28a05eu}} + , {{0xc160d89fu, 0xb1c96bdau, 0xb3a6c78fu, 0xf6c374e8u, 0xe3ea718au, 0x22a7529cu, 0x01be073bu, 0x762b7034u}} + , {{0x8142dd81u, 0xfadf33b2u, 0x2627a2dcu, 0x53096c11u, 0xa35d1834u, 0xfac30ee1u, 0x2236c8ccu, 0xd74756d4u}} + , {{0xeefbf707u, 0xbd6c4371u, 0x9f5b4cb5u, 0xd874fbf8u, 0xa1fe1b20u, 0x166c879cu, 0x9413ad4du, 0x85debbfcu}} + , {{0xb2f137a2u, 0x43502169u, 0x44059e2du, 0x52df2710u, 0xc96f3faau, 0x13e064a2u, 0xc4692999u, 0x2be805f2u}} + , {{0x748fe501u, 0xb086c503u, 0x172aad57u, 0xfc86f38du, 0x018a4ac5u, 0xc2e370feu, 0x424e7ecfu, 0x3da16dd9u}} + , {{0xbffb33acu, 0x0fdb8e33u, 0x547fb4d2u, 0x915071c2u, 0xc18ec23du, 0x15a77997u, 0xce28cd0du, 0xadff2604u}} + , {{0x3970085du, 0x5f6e2c5bu, 0x94f7981du, 0xe2775c9eu, 0xa1ed6057u, 0x16af5668u, 0xb17068b7u, 0x9541e9edu}} + , {{0x04b194d0u, 0xc7434394u, 0x0fa4b9b3u, 0x6360c7dbu, 0x35023699u, 0x91aebcb8u, 0x57e53228u, 0xbdf059fbu}} + , {{0xf942e061u, 0x72120acbu, 0x9a4287feu, 0xd83d9d31u, 0x40217fe5u, 0x4246a2afu, 0xcd04742bu, 0x7b39019au}} + , {{0x3f6b6ff7u, 0xdff51e5du, 0xecdb2c7cu, 0xfa87cf3au, 0x334f2ed9u, 0xdf174a13u, 0x613bc6d1u, 0xa96310bau}} + , {{0x911a8851u, 0xf809e41au, 0xda931f64u, 0x0ed0e37au, 0xe38fee5cu, 0x28c7ab92u, 0xfa492aa8u, 0xd442c79eu}} + , {{0x7a3f2191u, 0x1708e4b0u, 0x1fffeb28u, 0x8bd9db80u, 0xb085b077u, 0x7c222e86u, 0x925192acu, 0xb740853du}} + , {{0xb09c2787u, 0x5502cf64u, 0xbc7912beu, 0x40a3b960u, 0xd0b349f2u, 0x5e056abbu, 0x6a25d402u, 0x3af6b3c9u}} + , {{0xcb1d9c66u, 0x134f1b5eu, 0x9993ca1cu, 0xcca501b9u, 0x09782391u, 0xef425ca2u, 0xf4588f55u, 0x635ecec3u}} + , {{0x2378f42cu, 0xe5176a8au, 0x95a63ba9u, 0xe430c3f3u, 0x98862763u, 0xc32c364bu, 0x15b944b9u, 0x8eeecd2au}} + , {{0x4819a091u, 0x5a7168b3u, 0x761d4d1fu, 0x4e504049u, 0x5f4ea8e7u, 0xe51ec726u, 0x96129cbau, 0x32faf1e2u}} + , {{0x7f3a008du, 0xb2b5757au, 0xded57794u, 0x01f422c6u, 0x115ce49cu, 0x2fe8f1cbu, 0x732490b4u, 0x2c8e5729u}} + , {{0xd2a16d0eu, 0x122e2e66u, 0xce72308fu, 0x063b877bu, 0x47f0400cu, 0x07b0908au, 0x08d3eac1u, 0xfd6ac85bu}} + , {{0x5af57669u, 0xf452744cu, 0xd3e8458du, 0x6549f234u, 0x85327c60u, 0x548b8206u, 0x70e35bfeu, 0xfc9b89c3u}} + , {{0x114624a0u, 0xd9428a31u, 0xfef5046cu, 0x5760658du, 0x3f222330u, 0x09c80aefu, 0xcd98bacfu, 0x58aaaadau}} + , {{0xdabeee58u, 0x87d1b6a0u, 0xf08f5dd0u, 0x27cb5277u, 0x35e63229u, 0x714607b8u, 0xf62ec434u, 0x951fc87eu}} + , {{0xaf4a5cf0u, 0x0129243du, 0xaa0ee136u, 0xf284ccb8u, 0xa29d640fu, 0x3959fab3u, 0x46931995u, 0xd2f64c00u}} + , {{0x70b45deau, 0xbf916873u, 0xdc10077au, 0x388b5f45u, 0x48e20351u, 0x0c291336u, 0xd8c1a4c1u, 0x4cc4bcc1u}} + , {{0x338da171u, 0xef57ab1au, 0xca45e8dau, 0x870792e6u, 0x9834e42cu, 0xc20f72bau, 0x4c9dc471u, 0xfbfde573u}} + , {{0x28e48b4bu, 0xcdb9fd61u, 0x12840c82u, 0xb9009ba1u, 0x247ac586u, 0x88184090u, 0xe3ac9d10u, 0x71324db5u}} + , {{0xb4c72912u, 0xe07b6dd7u, 0xf433b7f7u, 0xee0db173u, 0x4049a4b6u, 0x2a8f40cau, 0xbf872a77u, 0x8ebecb2fu}} + , {{0xee3f728fu, 0xba79b341u, 0xf38ee7c7u, 0x4ccda428u, 0x4c3bd6e3u, 0x7deb43d1u, 0x9f926026u, 0xa3c6f655u}} + , {{0xac2c3869u, 0x93cc1ed8u, 0xe738d582u, 0x3c1570f8u, 0x3a913779u, 0x629c189bu, 0xf733cb20u, 0x4de10cc0u}} + , {{0x692c6dc2u, 0x751ea1bcu, 0xcbac3fcau, 0xa24365f7u, 0x76005990u, 0x320d939bu, 0xce16336cu, 0x8d43d76cu}} + , {{0xf1f60eafu, 0x8fbc47d2u, 0xef578b8au, 0x435b9ad3u, 0xe8ad523du, 0xaede6850u, 0x0086b3feu, 0x53a40e92u}} + , {{0xa4daa93au, 0x3b06a038u, 0x02ef3dc4u, 0x56ad9487u, 0x7f478b28u, 0x6ea6c6acu, 0x4b9fbb39u, 0xc87f532du}} + , {{0xc431441cu, 0xb00af4c2u, 0x9d5b9038u, 0x0074ce98u, 0x2979c3b5u, 0xbaf9ba74u, 0x22506834u, 0x0f8a664bu}} + , {{0xccfbc87cu, 0xf458a489u, 0xca5163d6u, 0x748e5433u, 0x8e981cdbu, 0xfee5dc7du, 0x4248209cu, 0xb2466b4fu}} + , {{0xeb061ed5u, 0x4bfe5d5cu, 0x6dc9fbddu, 0xd9aa8f4au, 0xc961b7c9u, 0x41378767u, 0x191606f1u, 0xc5a43d04u}} + , {{0x5c8d3dcbu, 0xa154f651u, 0x7a7affd1u, 0x04f7757au, 0x7fb08f84u, 0x26067f11u, 0x526c0951u, 0x245cb5b9u}} + , {{0x9fc15844u, 0xf4e6a53fu, 0x6cf46932u, 0x41679c2du, 0xc786842cu, 0xffff0e65u, 0xf9bd8ea5u, 0xafa6fe11u}} + , {{0x8d9bdee2u, 0xa53805ecu, 0x50135048u, 0xb2c47aa9u, 0xf87a3cfbu, 0x3693ac5bu, 0x87b7172du, 0x82a42ef6u}} + , {{0xf48f9c46u, 0xffd18c82u, 0xb267107fu, 0xffd56661u, 0xd3911fb5u, 0xc14eaac4u, 0xdee070efu, 0x4c0fa255u}} + , {{0xd414a856u, 0x52af7233u, 0x785f6bccu, 0x39667a20u, 0xbe03aa0eu, 0xbe5237fcu, 0x0e8877bau, 0x33c182dfu}} + , {{0x9ffc88c1u, 0x77eb98a9u, 0x1c11b7e2u, 0x13d2750fu, 0xa5d25475u, 0x646d4d03u, 0x62e385dbu, 0x4688499bu}} + , {{0xb4d20b2cu, 0xe43b9d0cu, 0xc0b4bd5bu, 0x6f53121eu, 0xe985de52u, 0xe23a44afu, 0xe3ada016u, 0x42e9c741u}} + , {{0x5fb5d0b7u, 0xd9357447u, 0xd23cbcd6u, 0xdd39eb61u, 0xda373522u, 0x217f5b5bu, 0x23a51a92u, 0xd155e9beu}} + , {{0x6b0cc7a4u, 0x2822c8d2u, 0x82e05b78u, 0x3772230cu, 0x6e1d7514u, 0x1f85e325u, 0xe423156cu, 0xe699a32fu}} + , {{0x626b4ea8u, 0xcc555827u, 0x86d54563u, 0xbcf778b8u, 0x333b820bu, 0xe87496d9u, 0x930165deu, 0x18508bfeu}} + , {{0x6f775d39u, 0x1645bf33u, 0x460cc363u, 0xf649a9cfu, 0x9ad8b9aau, 0x5918ce8du, 0x4309a47eu, 0xe43f0025u}} + , {{0x71cfa14au, 0xf4a75ac1u, 0x8f077d75u, 0x5fff531du, 0x439ceeefu, 0x1388dee4u, 0x9e9aa171u, 0xd8c8773fu}} + , {{0x133db961u, 0xbe2d1f76u, 0xacafe6a0u, 0x8a825383u, 0xe942f989u, 0x101b79cdu, 0x27b19e5du, 0x2ee99468u}} + , {{0x1439a9aau, 0x12f3e8cdu, 0x89d65d12u, 0x3c293b68u, 0xc9de6ef4u, 0x9421d122u, 0x3e1008cdu, 0xc67598d1u}} + , {{0x07a10a11u, 0xcf9d406eu, 0xa9bdb5e5u, 0x2f6e5d75u, 0x40de6e0au, 0x8d9e7954u, 0x49916494u, 0xd1820606u}} + , {{0x1160db6bu, 0x184bd7eeu, 0x4e0f233du, 0x82644a29u, 0x7e9e3c42u, 0x1b21d4bdu, 0x0eee9f56u, 0xfd10a8e8u}} + , {{0xc32c6996u, 0xff2e4f4du, 0xe1e4e09bu, 0xca3f813eu, 0x9104dc7fu, 0xe31b9ee5u, 0xdce67d33u, 0x15fb74a5u}} + , {{0x15f3e47eu, 0x42971422u, 0xab8c0ce4u, 0xd8771debu, 0xa5aadfd4u, 0xf9c7a90fu, 0x482bc937u, 0xebe5e23du}} + , {{0xe3ef5b12u, 0x17a5cc94u, 0x621a06fbu, 0xc16fd529u, 0x3360d96eu, 0x3aa52634u, 0xe7a1310cu, 0xf981e927u}} + , {{0x421602e7u, 0x37c6ee0au, 0xfafece2eu, 0x3b619ce0u, 0x61279dbfu, 0xb33f3b66u, 0x779a13d7u, 0x3e204d3au}} + , {{0x513e73aeu, 0x7695eb01u, 0x9757077fu, 0x4e15a3e7u, 0xdae05936u, 0x940bfe08u, 0x0602492bu, 0xf4cd6da6u}} + , {{0xd62dbd19u, 0xa60c2b64u, 0xb0c76eb8u, 0x1edc0944u, 0xbb82f064u, 0x14c504d9u, 0x2a4bad97u, 0xa8c700d7u}} + , {{0xd409702eu, 0xcd0f9e24u, 0xc3c089c2u, 0xb23e2924u, 0x0d30eb67u, 0xd3344f23u, 0x41839000u, 0x9cfd8702u}} + , {{0xc0ea4563u, 0xd27a3330u, 0x44740d00u, 0xaff47de5u, 0x605659b7u, 0x5184d5f9u, 0x660593c1u, 0xbb834cafu}} + , {{0xee2a473fu, 0x505d3ebdu, 0x93451825u, 0xa1d44914u, 0x6ad5fcb6u, 0x27cf36d4u, 0xd700ee5bu, 0x097bafbeu}} + , {{0x33d3b18au, 0xe7c852f1u, 0xb9ef8e96u, 0x427782e9u, 0x542571f5u, 0x19efff56u, 0xc882cc44u, 0x949dff62u}} + , {{0x1866b2c5u, 0x461314a0u, 0x95e2cd67u, 0x779c116au, 0xa97cdeacu, 0x8dc3822cu, 0xf5d035e6u, 0x8c55260au}} + , {{0x1fa2dff5u, 0x06565504u, 0xa826c3bfu, 0x2e41bf97u, 0xafb6e7a4u, 0xd1ed6dd4u, 0x9051d3f9u, 0x9040a7d4u}} + , {{0x332e34ecu, 0xa1119232u, 0x3992abeeu, 0xb7ea1c75u, 0x823477ceu, 0xee4f4367u, 0xf4d79788u, 0x4ea9d61fu}} + , {{0xf1c12135u, 0x930b828au, 0xe26357b4u, 0x9730763du, 0x87425482u, 0x14c2d79fu, 0xf97ff33bu, 0xda009911u}} + , {{0xcee2dea1u, 0x01a9f646u, 0x1c9eb827u, 0xb96ec411u, 0x205bba29u, 0x26109e3cu, 0x1a423ddeu, 0x13ce72ceu}} + , {{0x6fe60d7cu, 0x61e8df5cu, 0xba2fc725u, 0x93c0d703u, 0xbcef933fu, 0x777f9d1du, 0xb1da9c04u, 0xc8bef714u}} + , {{0x47b9e5ddu, 0x013e4a5cu, 0x620ef1b9u, 0x1a3b809fu, 0xa8357b89u, 0x96bbb59du, 0x83ae02d3u, 0x3ae66462u}} + , {{0xfc5177bbu, 0x7b495e91u, 0x872fc5dau, 0x5ce931a3u, 0xc34034e8u, 0x6a6f02a9u, 0xdbadcda3u, 0xb845f275u}} + , {{0x822fae4cu, 0xacd377b8u, 0x1b91d1fdu, 0xefa0aaabu, 0xcdffb0beu, 0x04fabe47u, 0xa2e13b59u, 0x01d0d103u}} + , {{0x1ee06350u, 0x3a0d28adu, 0xe85708f9u, 0x459a00f6u, 0x1049aa43u, 0x86084e9eu, 0xf9cfd9abu, 0xd6890807u}} + , {{0x03045b90u, 0x772a0579u, 0xb6e487d5u, 0x96338a3bu, 0x9a1495d0u, 0xc7339d36u, 0x52df2f28u, 0x45d05c13u}} + , {{0x155b47c6u, 0xb3e98050u, 0x5ac97631u, 0xd0ae000eu, 0xe5483b58u, 0x1571b030u, 0x2f68e1c7u, 0x9fcbbedcu}} + , {{0x76cb024cu, 0xc123f92du, 0x36699a76u, 0xe370000eu, 0x4adf1307u, 0x1263b906u, 0x21ab2667u, 0x3c3e8651u}} + , {{0xd2a64a9du, 0x64704ef1u, 0x34a1c509u, 0xb3a3fe22u, 0x6afca2fdu, 0x64fe364du, 0x3d493071u, 0x0b4b467fu}} + , {{0x50f8f044u, 0xef9b3494u, 0xc93f8b68u, 0x8c276bc3u, 0x45277af2u, 0xc04318f5u, 0xebf0350bu, 0x38290b21u}} + , {{0x7c30f4fbu, 0x5becd191u, 0xadda609au, 0x6c33a3b9u, 0x5dea5c6bu, 0x8f3ee583u, 0xcae8f80fu, 0x49cc0004u}} + , {{0x0b7442f8u, 0x09968e8au, 0xb537e281u, 0x7303e877u, 0xac33c216u, 0xb31453a1u, 0xc24dd7e9u, 0x20691affu}} + , {{0x3ab7e72du, 0x148eca81u, 0x1a31624cu, 0x2fdc26a8u, 0x912d2915u, 0xe61377f6u, 0xc6425b6cu, 0xbb6ca7d1u}} + , {{0xa981ef7eu, 0xfead688au, 0xcc5ba4a9u, 0xfad83f98u, 0xd7acd541u, 0x89080e9eu, 0x319fefddu, 0x5beaf95au}} + , {{0xe7e9b44fu, 0x62ed1dd6u, 0xef978b04u, 0x0ca814a2u, 0x9178adcbu, 0x4caeebeeu, 0x8389ddf9u, 0xa5fe3c6cu}} + , {{0xa86d390eu, 0x3556de2fu, 0xf6ee23fcu, 0x1997c4ffu, 0x198963d8u, 0x432e33edu, 0x50c091b1u, 0xc23910c8u}} + , {{0xc2b3f31bu, 0xb90c67f9u, 0x3d130987u, 0x61ae51c3u, 0x2c57f497u, 0xb16a68f4u, 0xe98871dau, 0x5728ff3bu}} + , {{0x951dcd30u, 0x3f633091u, 0x88941531u, 0xf8de05f3u, 0x42d68627u, 0x17fa44b7u, 0x14a7c8a8u, 0x2dd34b5bu}} + , {{0xb4faf107u, 0xcb75cc00u, 0x83a545c4u, 0x16614741u, 0x8a2bf695u, 0x15152b3bu, 0xbb3a4884u, 0x6486efa0u}} + , {{0xc7fb5752u, 0xb769ebbbu, 0x10ca828du, 0x1563f30du, 0x66fda5c7u, 0x3bbef5eau, 0xda04e8c8u, 0x8ff655a5u}} + , {{0xa2c0f68du, 0xe506ea35u, 0x192e8004u, 0x247552afu, 0x90dfbb6eu, 0x1c02a8c4u, 0x810816f1u, 0xf2acff6au}} + , {{0x3d72cd7au, 0xda3ea87du, 0xb4342c84u, 0xd30e9ad6u, 0x06e73cd8u, 0xde9a9ccdu, 0x5f05a8fdu, 0x36f5db82u}} + , {{0xc1cdc95eu, 0xaed5f27cu, 0xe0e1930du, 0xa823a16fu, 0x08d96b5eu, 0x7b4bb833u, 0x994b6ca1u, 0x9c2ecd3fu}} + , {{0x2c917c7au, 0x10ba2503u, 0xa4cb3b00u, 0xdbaac43eu, 0x7bc4ad7bu, 0x6b6f6447u, 0x4f06a151u, 0x9e27df87u}} + , {{0x28a99897u, 0xe93da824u, 0x78113678u, 0x2bba23f0u, 0x47926d16u, 0x1ec35598u, 0x7dc3a2f6u, 0x85bc975du}} + , {{0xd36e79dbu, 0x0e1b2cd6u, 0xab3f8b23u, 0xfe507db6u, 0x1917e1dfu, 0x0c72f6cdu, 0x47014d33u, 0x928e4288u}} + , {{0x892812a2u, 0xa4708059u, 0x2ed20b5du, 0x057d1654u, 0x129e7cf4u, 0x18a21702u, 0x5a53145du, 0x2fdf4b42u}} + , {{0xd4bab947u, 0xc522fbafu, 0x8a58e057u, 0x2de11e52u, 0x218ef0b6u, 0xf322dd45u, 0x20b2d6a1u, 0x6d73cbd2u}} + , {{0x7e759ea3u, 0x33c44664u, 0xa8e466a9u, 0xd378f094u, 0x8f6c6686u, 0x71a17685u, 0xfcd7a89cu, 0xc41462b6u}} + , {{0xa15e4f4fu, 0x6d9ab98cu, 0xeb470ac8u, 0x62d8920eu, 0x6b936814u, 0x895d47c0u, 0x8913bbeeu, 0x67bcace5u}} + , {{0xb7b565b8u, 0x7f8abb69u, 0x8dabd9f3u, 0xb688be77u, 0x60dc1cd4u, 0x3d9a0533u, 0x44ed7eb5u, 0x7672315cu}} + , {{0xe1268196u, 0xb74ec65bu, 0xb6ed1d12u, 0x2729c61eu, 0xb2411c71u, 0x443e7422u, 0xb9ea9b76u, 0xb7ac6754u}} + , {{0x64868f8fu, 0xbbf58d1du, 0x402a71f0u, 0x8b7dd6f7u, 0x63e23852u, 0xa44faa58u, 0x624cea8au, 0x0a92fcc8u}} + , {{0x359642bau, 0x39ef4789u, 0xde201df1u, 0x08e67c37u, 0x4d4fd9b7u, 0x09ca476fu, 0x80315b6au, 0xbef5c250u}} + , {{0x1962ee11u, 0x50cfa8efu, 0x80f4580au, 0xa88a14ffu, 0xd44c0588u, 0x4d5ad4c4u, 0xe324f4f6u, 0xd8ece56fu}} + , {{0x3faa86a6u, 0x70e8804du, 0xfcaa6a38u, 0x4cc0a916u, 0x2b9f9043u, 0xfd297916u, 0x93003b2au, 0xdb4c55e6u}} + , {{0xae6927eau, 0x7b41922bu, 0xc2d19163u, 0x58bc1eb0u, 0x539b15c1u, 0x097d2577u, 0xfa4d67ceu, 0xbc86b028u}} + , {{0x5367328eu, 0x840dbeb6u, 0x5a346139u, 0xf58cf454u, 0x007917dau, 0x31eadff2u, 0x1fb385aau, 0x86b90176u}} + , {{0x442a0dd2u, 0xf9581f47u, 0xf06fe3dbu, 0xe11772cau, 0x6f5abc1au, 0x8b268eb0u, 0x60953727u, 0x023de593u}} + , {{0xebc55810u, 0x84136e73u, 0x5bd8a939u, 0x13bb6ec8u, 0xaed51cb9u, 0x8eb7c02bu, 0xe5325338u, 0x75cf5d24u}} + , {{0xbbe05a1cu, 0x33b9f97au, 0x4de6d75cu, 0x8927686bu, 0xb260d09bu, 0xd1ec8403u, 0xa5646d72u, 0xec486d4fu}} + , {{0x925ab2cdu, 0x7948b751u, 0x5894310cu, 0xb6e1530bu, 0x95a56c0eu, 0x6ff83bdeu, 0x2887aff3u, 0xe63f0176u}} + , {{0xd2203d45u, 0xcf51ad73u, 0x7f65fa51u, 0x1a9afd98u, 0x3abcbb86u, 0x52da00cfu, 0x9de7e183u, 0x828b8abdu}} + , {{0xb1e09827u, 0xf33cce04u, 0xb856a2a7u, 0x9786a67au, 0x4c95034eu, 0x9c8efc33u, 0x37d66918u, 0x85d57d7fu}} + , {{0xecf79cb2u, 0x3ca270c8u, 0xd77a33e8u, 0x276b1e34u, 0xb27277d6u, 0xb37a3141u, 0xa7601d3bu, 0x8d3c2b61u}} + , {{0x1195d608u, 0x79202167u, 0x612badf7u, 0xb7186fa5u, 0xb231271cu, 0xc7ecc2e2u, 0xa7f0cc92u, 0xc67ccd69u}} + , {{0x7141597fu, 0xd410eb87u, 0x3ebfab06u, 0x1e5416c9u, 0x240029ddu, 0xddaeeb20u, 0x1b0151a4u, 0x031544cbu}} + , {{0x31e9e72fu, 0x3bdb7582u, 0x72c29074u, 0xb6f12edau, 0xd68a558eu, 0x11885a42u, 0xc91ff6b2u, 0x7b83b448u}} + , {{0xa38e79fdu, 0x1ad5cadcu, 0xb97fa93eu, 0x5ce75053u, 0x18baa38bu, 0x2d7baed5u, 0x522e5fb3u, 0xa47c334eu}} + , {{0xc4862172u, 0x11a30248u, 0x85ad4e4au, 0xe645b391u, 0x423008aau, 0xbe4ec06du, 0xf2e8ed92u, 0x966c8c38u}} + , {{0xaa1895e3u, 0xfccd94b7u, 0x87cd9c24u, 0x02a19b72u, 0xae27feedu, 0x8fb1de44u, 0x4872f341u, 0xe5bd5630u}} + , {{0xa35bb460u, 0xa42226f0u, 0x885a024eu, 0xd3337bbfu, 0x20a166a4u, 0xdb2818abu, 0xcce2fab8u, 0xbb68711eu}} + , {{0xd8730cdcu, 0xcd54974bu, 0x9d88b561u, 0xef6b8debu, 0xcc83d5e5u, 0x44ab20b0u, 0xc24d960bu, 0x1e89ca40u}} + , {{0x6ef7c6a7u, 0xc3db6683u, 0xaf286619u, 0xe1edc55eu, 0x3314124eu, 0x582e935fu, 0xff7e20adu, 0x73c3a544u}} + , {{0x07056f86u, 0xc9106359u, 0x2b3bc110u, 0xc8f387c7u, 0x74fc7fa2u, 0x007754f9u, 0x2334e485u, 0x8c16129fu}} + , {{0x7fedb94cu, 0x82d7acefu, 0x6cca7445u, 0xcaee842du, 0x42b3009bu, 0x94ee4ba4u, 0x8edfda56u, 0xec51dd78u}} + , {{0xca5241c6u, 0x9bb203a2u, 0x21ba8f5du, 0x1bb65e9cu, 0xb9a2958eu, 0x80b151ecu, 0xc30551adu, 0xdbab3522u}} + , {{0xa575c721u, 0x6016b9b2u, 0x8bf7ff31u, 0x4285e550u, 0x35f9d912u, 0x0b1322dbu, 0xfd5db5a9u, 0xb97dc6a4u}} + , {{0xbcb9eb97u, 0xb3e74169u, 0x07d500f4u, 0xca9a5542u, 0x12d4ec7cu, 0xe85490d3u, 0x31ba85c5u, 0x83b076deu}} + , {{0x0de83b90u, 0x0ddb4efbu, 0x9a02d793u, 0x0815ad9fu, 0x4696b694u, 0x47836c38u, 0xd15a0bebu, 0x02a88087u}} + , {{0x4382b6c1u, 0xf71cfd40u, 0x7eb819f5u, 0x73302ffcu, 0x071e97c7u, 0x44efa229u, 0x0ddc82e5u, 0x86ccf4e2u}} + , {{0x0d984a45u, 0x037c6440u, 0x2135f147u, 0xbe845049u, 0x19655538u, 0xf81898aau, 0xd2369575u, 0xbbf32157u}} + , {{0x5cfda8afu, 0xa1474542u, 0x48ab0128u, 0x11c9a1f2u, 0xac5ffbd4u, 0x2778c7e3u, 0x3183ba10u, 0x145ba5efu}} + , {{0x55b6783eu, 0x12f9e60du, 0x6e95d510u, 0xe2ae787bu, 0xdf749e50u, 0xd6f5ae26u, 0x99aca708u, 0x27038e82u}} + , {{0x4eb0832bu, 0x2b4ac369u, 0xf2a111e6u, 0xf33a6830u, 0xeb42753fu, 0x4ae72480u, 0xaa7088bbu, 0xc7b5a2e3u}} + , {{0x0b80a156u, 0x2e5746a9u, 0x2cb64b26u, 0x8bb3f8b2u, 0xddb0b4f7u, 0x89371996u, 0x915059d9u, 0x8060f79cu}} + , {{0x687e2ce2u, 0x822607f4u, 0xf24f1209u, 0x59114b4fu, 0x2d532a2eu, 0xe673a23bu, 0x4b07da11u, 0x19806297u}} + , {{0xea24366eu, 0x3e33efdeu, 0x1c2e98f9u, 0x458976d2u, 0x2e8ece33u, 0x8c184de0u, 0x9f29cebcu, 0xf27451a3u}} + , {{0x9ee67f94u, 0x6f9c9202u, 0x5cbc845au, 0xc91cbfbcu, 0x7522885eu, 0x4638d8e9u, 0xd22cff56u, 0xed2df3acu}} + , {{0x6b345583u, 0xbf6981a3u, 0x87c88e28u, 0x28273d1eu, 0x78bea64au, 0x4f8d4f70u, 0x312cfdc5u, 0xf2e72cc3u}} + , {{0x968a9008u, 0xc59a3012u, 0x1967093bu, 0x23d03c4du, 0x59696868u, 0xcaf7a252u, 0xa9ea1ee6u, 0x3b9aa5adu}} + , {{0x0456541cu, 0x0c9def9bu, 0x2f9ba149u, 0x4e21e0a6u, 0x4cc9634eu, 0xc1a6ecf7u, 0x90abc5ccu, 0x725faccbu}} + , {{0xf17db1a8u, 0x3079b4e8u, 0xe672f104u, 0xcd645086u, 0x7b70d94cu, 0xb2dc697fu, 0xd70fb889u, 0x2c3f1a05u}} + , {{0x317eb19cu, 0x6f436962u, 0x53ebb2b4u, 0xc54bdbccu, 0x6a3d6784u, 0x1c44c55cu, 0x36e1de69u, 0x70537781u}} + , {{0xbfa9d701u, 0x672a3066u, 0x4e2de109u, 0x2351f09au, 0x20813f1bu, 0x4f50748bu, 0x89eb197eu, 0x942f8e90u}} + , {{0x23cbc03eu, 0xd1b8d66fu, 0x592562a5u, 0xebbea2b4u, 0xf2f81341u, 0x760253a9u, 0x52f97356u, 0x2e7664feu}} + , {{0x1ecb0f73u, 0x2e65bff2u, 0x5a1237c9u, 0xdbb577c5u, 0xc8eed538u, 0x26b33ed2u, 0x419dfddfu, 0xeae3d018u}} + , {{0x198ee091u, 0x94eae71bu, 0x23bb9b7bu, 0x5ae917ddu, 0x564d36f9u, 0xa4af4a1fu, 0xbc824702u, 0x99e22cbau}} + , {{0x319181aau, 0xe3ab2605u, 0x8df08233u, 0xd8a67eedu, 0x7a8f9316u, 0x87c61291u, 0x7feefec9u, 0x2ed158abu}} + , {{0x41fb63e9u, 0xee37f8abu, 0x60c0c97eu, 0x048eed5fu, 0xb3a43a27u, 0x550a1378u, 0xc4529302u, 0x55e4b862u}} + , {{0x82f56c79u, 0xc812b803u, 0x87388c26u, 0xcc388584u, 0x06af6c37u, 0xb8545bffu, 0xdf1bfea2u, 0xc807f291u}} + , {{0xd700eadau, 0x03ef46fcu, 0x7d7aa674u, 0x2170d296u, 0x2205774fu, 0xcc37b2ecu, 0xfdfc1651u, 0xc98654d9u}} + , {{0xd73aa7b2u, 0x444dca9eu, 0xa6007b26u, 0x318274bdu, 0x12070f1au, 0x5a4e2064u, 0xcfbc995au, 0x940adbb3u}} + , {{0x0ef2cba3u, 0x3c228111u, 0x0d94d97eu, 0x71730797u, 0x8d275ccau, 0xc53cf298u, 0xd69f0adeu, 0x8b225a63u}} + , {{0xe909fac3u, 0x9501d9f3u, 0x07da2069u, 0x135de4d2u, 0x386e6e94u, 0xaf873197u, 0xb6b5be78u, 0x3c190f32u}} + , {{0x1a5bf2c3u, 0xdecea0c0u, 0xf9a226b1u, 0xac7e339au, 0xd46023f0u, 0x96059966u, 0xdcee4842u, 0xc7e8306eu}} + , {{0xc66768adu, 0x9c5b818fu, 0x567632fau, 0x36270ee1u, 0xd7350518u, 0xaab2951bu, 0xff3beb2eu, 0xe7c3b17au}} + , {{0x94647fa2u, 0x89e5637fu, 0x49ff9e3fu, 0x8034aa0cu, 0xd8099cbbu, 0x88d5a86eu, 0xfbdde7dfu, 0x79659ac9u}} + , {{0xa00198d2u, 0xc7146232u, 0xca10a8c2u, 0xffb2be85u, 0xdb5b3000u, 0x95b72468u, 0x90e7ca0cu, 0xfc4f9323u}} + , {{0x3067c994u, 0xf27426e1u, 0x3c861a70u, 0xa4c58584u, 0x99dbd79cu, 0xbbc04505u, 0x167a1eb8u, 0x897ef571u}} + , {{0x05f0ef3cu, 0x0e51b025u, 0x44024375u, 0xe3017752u, 0xac3889d9u, 0x2407508cu, 0x88e24987u, 0x0c02e952u}} + , {{0x0a802fcbu, 0x95abda6cu, 0x6230e8f4u, 0x93255accu, 0x36dccd72u, 0xfbad9da0u, 0x5b54590fu, 0x177da1dau}} + , {{0xe88156dau, 0x0085e316u, 0xd03210a2u, 0x93544a0du, 0x9697dec8u, 0x083f6d76u, 0x6a9e485du, 0xc10105fcu}} + , {{0x56adf81eu, 0x5db0acfeu, 0xe199d372u, 0xb8ecbe6eu, 0x32a0659eu, 0xb8cc963eu, 0x774b87fbu, 0x865bbee9u}} + , {{0x6ccf0ab4u, 0xa89ad53fu, 0x6ed21a44u, 0x52c5cf77u, 0xabf58f39u, 0xa7b9d428u, 0x67360834u, 0xdc9d7c33u}} + , {{0x43a19d27u, 0xb445eff6u, 0x56f1a5e4u, 0x8b0c8415u, 0x60085b77u, 0xcc728a26u, 0x5d03ec1au, 0xe2c2bf49u}} + , {{0xae2d5990u, 0x8a732b90u, 0xcb233c1du, 0x98d20237u, 0xbdd40f2eu, 0x88d4962au, 0x9ea15822u, 0x82b4e637u}} + , {{0xaa4fdba8u, 0xf03f2c2cu, 0xeab22691u, 0x664b340fu, 0x4bc579ebu, 0x9be8f90fu, 0x0fc74874u, 0x91e1047fu}} + , {{0x99cb5d31u, 0x13d0b0beu, 0xdcef4467u, 0xdeb8e8c2u, 0x84f5a45du, 0x7dc140a4u, 0xdccf98a5u, 0x4d8f51d0u}} + , {{0x6342e599u, 0x0e3366a8u, 0x319647edu, 0x2d628895u, 0x8123aebau, 0xa2bf7e01u, 0xe1fbe1a6u, 0x07ad426du}} + , {{0xa91d39d8u, 0x44c05056u, 0x7e733983u, 0x3da422e5u, 0x69aed255u, 0xdde87dacu, 0x6a78efc2u, 0x37f7bbb9u}} + , {{0x39b0ded8u, 0xb55cc729u, 0xd45a9fc2u, 0x40374a3fu, 0xf5d43734u, 0xdd95b492u, 0xd2138dabu, 0xa40e9a6eu}} + , {{0x0812e853u, 0x178dc6b0u, 0x8d05d569u, 0x56f05ce3u, 0x8bcb0d51u, 0x936f583du, 0xb59ef0cdu, 0xa6f24f9eu}} + , {{0xbc5f4e10u, 0x07785d8eu, 0x36556286u, 0x69594277u, 0x90f55867u, 0x89efef8bu, 0x00af04a4u, 0x71f628d4u}} + , {{0x32f58455u, 0x3527c194u, 0xd1c0a724u, 0xff6c02b7u, 0xe8058e81u, 0x57180a3du, 0xf0c02cb8u, 0xa135b6c4u}} + , {{0x2bb53b69u, 0xba765f8du, 0x700de298u, 0x9884ff5eu, 0x02fc7547u, 0xa6c417cau, 0xfe34e2e6u, 0xf2622fe4u}} + , {{0x0a0c3ddau, 0x285273bau, 0xe7710fc0u, 0x5572ed73u, 0x48da7e11u, 0xa7ad2563u, 0x16400e6bu, 0x7f19f406u}} + , {{0xf84f6d5eu, 0xe415d0c1u, 0x995e3b4du, 0xe8a47846u, 0x7b54f2b4u, 0x5be5a657u, 0x40647eb1u, 0x12556931u}} + , {{0x4094b8b9u, 0xdd2f76fdu, 0x5040a3cfu, 0x83b4899du, 0xe1fc4aceu, 0xb013f6beu, 0x2c96acc0u, 0x33bc812fu}} + , {{0xed238753u, 0x9d9216acu, 0x8628d539u, 0x5dcbc883u, 0xc83151c6u, 0xb724a173u, 0xda96677bu, 0x7ce5a22fu}} + , {{0x3588143bu, 0x656fe89eu, 0x8482cf38u, 0x41b3565du, 0x12d8dee5u, 0xca364a19u, 0x2bec193du, 0x0eca4342u}} + , {{0x270d1a84u, 0x132e2a0bu, 0x6714f4b9u, 0xdaf4f35fu, 0x9fabb3dbu, 0x1c6dfbc4u, 0x0f40e8d1u, 0x04871edfu}} + , {{0xa20800bfu, 0x23b62aa1u, 0x2a163e88u, 0xa9f7acc1u, 0x1643095fu, 0x13b3421eu, 0xedfb9262u, 0x0de8e884u}} + , {{0xf9368eaau, 0xcecbee56u, 0x442d5f75u, 0xa7587a4du, 0x66e25a48u, 0x388ca70fu, 0x3237a98cu, 0xdbcc1196u}} + , {{0x46340cc4u, 0xf57720acu, 0x9f0cdf6bu, 0xa39eeb44u, 0x164ee8c2u, 0x51b01950u, 0x746f5ed1u, 0x3870b427u}} + , {{0x7ae68700u, 0x442472c2u, 0xb9b68d3bu, 0x1c35a74au, 0x29aecd7fu, 0xc180fc24u, 0x2a6cd169u, 0x49c56e63u}} + , {{0xeed65980u, 0x94de1067u, 0x84b604b3u, 0x58233366u, 0x0e6f47d5u, 0x751726a3u, 0x6dd805e0u, 0x14dcd4ccu}} + , {{0x3213a456u, 0x8c00d2b2u, 0xa2a25346u, 0x85038542u, 0xa4ef6cabu, 0x9d8f071du, 0x1b2a6d1fu, 0x3d9e1f0du}} + , {{0x486b9d97u, 0xb316edd0u, 0xd508b437u, 0x9bd37456u, 0x0d189910u, 0xc7959475u, 0x4b360995u, 0x7a958ee6u}} + , {{0xb4f80b99u, 0x9be52345u, 0x6d575eb9u, 0xcfedc7b4u, 0xa43c40c8u, 0x26f9e828u, 0x2e5bcd66u, 0x32b55f65u}} + , {{0xd8cbdbdbu, 0x746123acu, 0x880e13ccu, 0x70ee79b8u, 0xf8c6d6bau, 0x10ca31ffu, 0xba6196f4u, 0x1efdb65eu}} + , {{0xf8b2a448u, 0xc2369b93u, 0xe4a16c86u, 0x78393760u, 0x0e8b60b4u, 0xc50bcbacu, 0x20b6ee7au, 0x590c4fc1u}} + , {{0xb2797088u, 0x35f6dc36u, 0x89bc529au, 0x01cfe1a7u, 0x18d53629u, 0x2ef82407u, 0x6f1b1a33u, 0xd3931e0fu}} }; /* word_type_root[0] contains the type root of the ONE type. * word_type_root[1] contains the type root of the TWO type. diff --git a/simplicity-sys/depend/simplicity/primitive/elements/primitive.c b/simplicity-sys/depend/simplicity/primitive/elements/primitive.c index abf9a43b..208c2432 100644 --- a/simplicity-sys/depend/simplicity/primitive/elements/primitive.c +++ b/simplicity-sys/depend/simplicity/primitive/elements/primitive.c @@ -73,6 +73,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { if (!bit) { /* Core jets */ int32_t code = decodeUptoMaxInt(stream); + int32_t code2; if (code < 0) return (simplicity_err)code; switch (code) { @@ -86,6 +87,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = LOW_1; return SIMPLICITY_NO_ERROR; case 3: *result = LOW_8; return SIMPLICITY_NO_ERROR; case 4: *result = LOW_16; return SIMPLICITY_NO_ERROR; case 5: *result = LOW_32; return SIMPLICITY_NO_ERROR; @@ -96,6 +98,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = HIGH_1; return SIMPLICITY_NO_ERROR; case 3: *result = HIGH_8; return SIMPLICITY_NO_ERROR; case 4: *result = HIGH_16; return SIMPLICITY_NO_ERROR; case 5: *result = HIGH_32; return SIMPLICITY_NO_ERROR; @@ -106,6 +109,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = COMPLEMENT_1; return SIMPLICITY_NO_ERROR; case 3: *result = COMPLEMENT_8; return SIMPLICITY_NO_ERROR; case 4: *result = COMPLEMENT_16; return SIMPLICITY_NO_ERROR; case 5: *result = COMPLEMENT_32; return SIMPLICITY_NO_ERROR; @@ -116,6 +120,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = AND_1; return SIMPLICITY_NO_ERROR; case 3: *result = AND_8; return SIMPLICITY_NO_ERROR; case 4: *result = AND_16; return SIMPLICITY_NO_ERROR; case 5: *result = AND_32; return SIMPLICITY_NO_ERROR; @@ -126,6 +131,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = OR_1; return SIMPLICITY_NO_ERROR; case 3: *result = OR_8; return SIMPLICITY_NO_ERROR; case 4: *result = OR_16; return SIMPLICITY_NO_ERROR; case 5: *result = OR_32; return SIMPLICITY_NO_ERROR; @@ -136,6 +142,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = XOR_1; return SIMPLICITY_NO_ERROR; case 3: *result = XOR_8; return SIMPLICITY_NO_ERROR; case 4: *result = XOR_16; return SIMPLICITY_NO_ERROR; case 5: *result = XOR_32; return SIMPLICITY_NO_ERROR; @@ -146,6 +153,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = MAJ_1; return SIMPLICITY_NO_ERROR; case 3: *result = MAJ_8; return SIMPLICITY_NO_ERROR; case 4: *result = MAJ_16; return SIMPLICITY_NO_ERROR; case 5: *result = MAJ_32; return SIMPLICITY_NO_ERROR; @@ -156,6 +164,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = XOR_XOR_1; return SIMPLICITY_NO_ERROR; case 3: *result = XOR_XOR_8; return SIMPLICITY_NO_ERROR; case 4: *result = XOR_XOR_16; return SIMPLICITY_NO_ERROR; case 5: *result = XOR_XOR_32; return SIMPLICITY_NO_ERROR; @@ -166,6 +175,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = CH_1; return SIMPLICITY_NO_ERROR; case 3: *result = CH_8; return SIMPLICITY_NO_ERROR; case 4: *result = CH_16; return SIMPLICITY_NO_ERROR; case 5: *result = CH_32; return SIMPLICITY_NO_ERROR; @@ -176,6 +186,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = SOME_1; return SIMPLICITY_NO_ERROR; case 3: *result = SOME_8; return SIMPLICITY_NO_ERROR; case 4: *result = SOME_16; return SIMPLICITY_NO_ERROR; case 5: *result = SOME_32; return SIMPLICITY_NO_ERROR; @@ -196,6 +207,7 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { code = decodeUptoMaxInt(stream); if (code < 0) return (simplicity_err)code; switch (code) { + case 1: *result = EQ_1; return SIMPLICITY_NO_ERROR; case 3: *result = EQ_8; return SIMPLICITY_NO_ERROR; case 4: *result = EQ_16; return SIMPLICITY_NO_ERROR; case 5: *result = EQ_32; return SIMPLICITY_NO_ERROR; @@ -203,6 +215,462 @@ static simplicity_err decodePrimitive(jetName* result, bitstream* stream) { case 8: *result = EQ_256; return SIMPLICITY_NO_ERROR; } break; + case 14: /* FullLeftShift */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + code2 = decodeUptoMaxInt(stream); + if (code2 < 0) return (simplicity_err)code2; + switch (code) { + case 1: + switch (code2) { + case 3: *result = FULL_LEFT_SHIFT_8_1; return SIMPLICITY_NO_ERROR; + case 4: *result = FULL_LEFT_SHIFT_16_1; return SIMPLICITY_NO_ERROR; + case 5: *result = FULL_LEFT_SHIFT_32_1; return SIMPLICITY_NO_ERROR; + case 6: *result = FULL_LEFT_SHIFT_64_1; return SIMPLICITY_NO_ERROR; + } + break; + case 2: + switch (code2) { + case 2: *result = FULL_LEFT_SHIFT_8_2; return SIMPLICITY_NO_ERROR; + case 3: *result = FULL_LEFT_SHIFT_16_2; return SIMPLICITY_NO_ERROR; + case 4: *result = FULL_LEFT_SHIFT_32_2; return SIMPLICITY_NO_ERROR; + case 5: *result = FULL_LEFT_SHIFT_64_2; return SIMPLICITY_NO_ERROR; + } + break; + case 3: + switch (code2) { + case 1: *result = FULL_LEFT_SHIFT_8_4; return SIMPLICITY_NO_ERROR; + case 2: *result = FULL_LEFT_SHIFT_16_4; return SIMPLICITY_NO_ERROR; + case 3: *result = FULL_LEFT_SHIFT_32_4; return SIMPLICITY_NO_ERROR; + case 4: *result = FULL_LEFT_SHIFT_64_4; return SIMPLICITY_NO_ERROR; + } + break; + case 4: + switch (code2) { + case 1: *result = FULL_LEFT_SHIFT_16_8; return SIMPLICITY_NO_ERROR; + case 2: *result = FULL_LEFT_SHIFT_32_8; return SIMPLICITY_NO_ERROR; + case 3: *result = FULL_LEFT_SHIFT_64_8; return SIMPLICITY_NO_ERROR; + } + break; + case 5: + switch (code2) { + case 1: *result = FULL_LEFT_SHIFT_32_16; return SIMPLICITY_NO_ERROR; + case 2: *result = FULL_LEFT_SHIFT_64_16; return SIMPLICITY_NO_ERROR; + } + break; + case 6: + switch (code2) { + case 1: *result = FULL_LEFT_SHIFT_64_32; return SIMPLICITY_NO_ERROR; + } + break; + } + break; + case 15: /* FullRightShift */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + code2 = decodeUptoMaxInt(stream); + if (code2 < 0) return (simplicity_err)code2; + switch (code) { + case 1: + switch (code2) { + case 3: *result = FULL_RIGHT_SHIFT_8_1; return SIMPLICITY_NO_ERROR; + case 4: *result = FULL_RIGHT_SHIFT_16_1; return SIMPLICITY_NO_ERROR; + case 5: *result = FULL_RIGHT_SHIFT_32_1; return SIMPLICITY_NO_ERROR; + case 6: *result = FULL_RIGHT_SHIFT_64_1; return SIMPLICITY_NO_ERROR; + } + break; + case 2: + switch (code2) { + case 2: *result = FULL_RIGHT_SHIFT_8_2; return SIMPLICITY_NO_ERROR; + case 3: *result = FULL_RIGHT_SHIFT_16_2; return SIMPLICITY_NO_ERROR; + case 4: *result = FULL_RIGHT_SHIFT_32_2; return SIMPLICITY_NO_ERROR; + case 5: *result = FULL_RIGHT_SHIFT_64_2; return SIMPLICITY_NO_ERROR; + } + break; + case 3: + switch (code2) { + case 1: *result = FULL_RIGHT_SHIFT_8_4; return SIMPLICITY_NO_ERROR; + case 2: *result = FULL_RIGHT_SHIFT_16_4; return SIMPLICITY_NO_ERROR; + case 3: *result = FULL_RIGHT_SHIFT_32_4; return SIMPLICITY_NO_ERROR; + case 4: *result = FULL_RIGHT_SHIFT_64_4; return SIMPLICITY_NO_ERROR; + } + break; + case 4: + switch (code2) { + case 1: *result = FULL_RIGHT_SHIFT_16_8; return SIMPLICITY_NO_ERROR; + case 2: *result = FULL_RIGHT_SHIFT_32_8; return SIMPLICITY_NO_ERROR; + case 3: *result = FULL_RIGHT_SHIFT_64_8; return SIMPLICITY_NO_ERROR; + } + break; + case 5: + switch (code2) { + case 1: *result = FULL_RIGHT_SHIFT_32_16; return SIMPLICITY_NO_ERROR; + case 2: *result = FULL_RIGHT_SHIFT_64_16; return SIMPLICITY_NO_ERROR; + } + break; + case 6: + switch (code2) { + case 1: *result = FULL_RIGHT_SHIFT_64_32; return SIMPLICITY_NO_ERROR; + } + break; + } + break; + case 16: /* Leftmost */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + code2 = decodeUptoMaxInt(stream); + if (code2 < 0) return (simplicity_err)code2; + switch (code) { + case 1: + switch (code2) { + case 3: *result = LEFTMOST_8_1; return SIMPLICITY_NO_ERROR; + case 4: *result = LEFTMOST_16_1; return SIMPLICITY_NO_ERROR; + case 5: *result = LEFTMOST_32_1; return SIMPLICITY_NO_ERROR; + case 6: *result = LEFTMOST_64_1; return SIMPLICITY_NO_ERROR; + } + break; + case 2: + switch (code2) { + case 2: *result = LEFTMOST_8_2; return SIMPLICITY_NO_ERROR; + case 3: *result = LEFTMOST_16_2; return SIMPLICITY_NO_ERROR; + case 4: *result = LEFTMOST_32_2; return SIMPLICITY_NO_ERROR; + case 5: *result = LEFTMOST_64_2; return SIMPLICITY_NO_ERROR; + } + break; + case 3: + switch (code2) { + case 1: *result = LEFTMOST_8_4; return SIMPLICITY_NO_ERROR; + case 2: *result = LEFTMOST_16_4; return SIMPLICITY_NO_ERROR; + case 3: *result = LEFTMOST_32_4; return SIMPLICITY_NO_ERROR; + case 4: *result = LEFTMOST_64_4; return SIMPLICITY_NO_ERROR; + } + break; + case 4: + switch (code2) { + case 1: *result = LEFTMOST_16_8; return SIMPLICITY_NO_ERROR; + case 2: *result = LEFTMOST_32_8; return SIMPLICITY_NO_ERROR; + case 3: *result = LEFTMOST_64_8; return SIMPLICITY_NO_ERROR; + } + break; + case 5: + switch (code2) { + case 1: *result = LEFTMOST_32_16; return SIMPLICITY_NO_ERROR; + case 2: *result = LEFTMOST_64_16; return SIMPLICITY_NO_ERROR; + } + break; + case 6: + switch (code2) { + case 1: *result = LEFTMOST_64_32; return SIMPLICITY_NO_ERROR; + } + break; + } + break; + case 17: /* Rightmost */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + code2 = decodeUptoMaxInt(stream); + if (code2 < 0) return (simplicity_err)code2; + switch (code) { + case 1: + switch (code2) { + case 3: *result = RIGHTMOST_8_1; return SIMPLICITY_NO_ERROR; + case 4: *result = RIGHTMOST_16_1; return SIMPLICITY_NO_ERROR; + case 5: *result = RIGHTMOST_32_1; return SIMPLICITY_NO_ERROR; + case 6: *result = RIGHTMOST_64_1; return SIMPLICITY_NO_ERROR; + } + break; + case 2: + switch (code2) { + case 2: *result = RIGHTMOST_8_2; return SIMPLICITY_NO_ERROR; + case 3: *result = RIGHTMOST_16_2; return SIMPLICITY_NO_ERROR; + case 4: *result = RIGHTMOST_32_2; return SIMPLICITY_NO_ERROR; + case 5: *result = RIGHTMOST_64_2; return SIMPLICITY_NO_ERROR; + } + break; + case 3: + switch (code2) { + case 1: *result = RIGHTMOST_8_4; return SIMPLICITY_NO_ERROR; + case 2: *result = RIGHTMOST_16_4; return SIMPLICITY_NO_ERROR; + case 3: *result = RIGHTMOST_32_4; return SIMPLICITY_NO_ERROR; + case 4: *result = RIGHTMOST_64_4; return SIMPLICITY_NO_ERROR; + } + break; + case 4: + switch (code2) { + case 1: *result = RIGHTMOST_16_8; return SIMPLICITY_NO_ERROR; + case 2: *result = RIGHTMOST_32_8; return SIMPLICITY_NO_ERROR; + case 3: *result = RIGHTMOST_64_8; return SIMPLICITY_NO_ERROR; + } + break; + case 5: + switch (code2) { + case 1: *result = RIGHTMOST_32_16; return SIMPLICITY_NO_ERROR; + case 2: *result = RIGHTMOST_64_16; return SIMPLICITY_NO_ERROR; + } + break; + case 6: + switch (code2) { + case 1: *result = RIGHTMOST_64_32; return SIMPLICITY_NO_ERROR; + } + break; + } + break; + case 18: /* LeftPadLow */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + code2 = decodeUptoMaxInt(stream); + if (code2 < 0) return (simplicity_err)code2; + switch (code) { + case 1: + switch (code2) { + case 3: *result = LEFT_PAD_LOW_1_8; return SIMPLICITY_NO_ERROR; + case 4: *result = LEFT_PAD_LOW_1_16; return SIMPLICITY_NO_ERROR; + case 5: *result = LEFT_PAD_LOW_1_32; return SIMPLICITY_NO_ERROR; + case 6: *result = LEFT_PAD_LOW_1_64; return SIMPLICITY_NO_ERROR; + } + break; + case 4: + switch (code2) { + case 1: *result = LEFT_PAD_LOW_8_16; return SIMPLICITY_NO_ERROR; + case 2: *result = LEFT_PAD_LOW_8_32; return SIMPLICITY_NO_ERROR; + case 3: *result = LEFT_PAD_LOW_8_64; return SIMPLICITY_NO_ERROR; + } + break; + case 5: + switch (code2) { + case 1: *result = LEFT_PAD_LOW_16_32; return SIMPLICITY_NO_ERROR; + case 2: *result = LEFT_PAD_LOW_16_64; return SIMPLICITY_NO_ERROR; + } + break; + case 6: + switch (code2) { + case 1: *result = LEFT_PAD_LOW_32_64; return SIMPLICITY_NO_ERROR; + } + break; + } + break; + case 19: /* LeftPadHigh */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + code2 = decodeUptoMaxInt(stream); + if (code2 < 0) return (simplicity_err)code2; + switch (code) { + case 1: + switch (code2) { + case 3: *result = LEFT_PAD_HIGH_1_8; return SIMPLICITY_NO_ERROR; + case 4: *result = LEFT_PAD_HIGH_1_16; return SIMPLICITY_NO_ERROR; + case 5: *result = LEFT_PAD_HIGH_1_32; return SIMPLICITY_NO_ERROR; + case 6: *result = LEFT_PAD_HIGH_1_64; return SIMPLICITY_NO_ERROR; + } + break; + case 4: + switch (code2) { + case 1: *result = LEFT_PAD_HIGH_8_16; return SIMPLICITY_NO_ERROR; + case 2: *result = LEFT_PAD_HIGH_8_32; return SIMPLICITY_NO_ERROR; + case 3: *result = LEFT_PAD_HIGH_8_64; return SIMPLICITY_NO_ERROR; + } + break; + case 5: + switch (code2) { + case 1: *result = LEFT_PAD_HIGH_16_32; return SIMPLICITY_NO_ERROR; + case 2: *result = LEFT_PAD_HIGH_16_64; return SIMPLICITY_NO_ERROR; + } + break; + case 6: + switch (code2) { + case 1: *result = LEFT_PAD_HIGH_32_64; return SIMPLICITY_NO_ERROR; + } + break; + } + break; + case 20: /* LeftExtend */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + code2 = decodeUptoMaxInt(stream); + if (code2 < 0) return (simplicity_err)code2; + switch (code) { + case 1: + switch (code2) { + case 3: *result = LEFT_EXTEND_1_8; return SIMPLICITY_NO_ERROR; + case 4: *result = LEFT_EXTEND_1_16; return SIMPLICITY_NO_ERROR; + case 5: *result = LEFT_EXTEND_1_32; return SIMPLICITY_NO_ERROR; + case 6: *result = LEFT_EXTEND_1_64; return SIMPLICITY_NO_ERROR; + } + break; + case 4: + switch (code2) { + case 1: *result = LEFT_EXTEND_8_16; return SIMPLICITY_NO_ERROR; + case 2: *result = LEFT_EXTEND_8_32; return SIMPLICITY_NO_ERROR; + case 3: *result = LEFT_EXTEND_8_64; return SIMPLICITY_NO_ERROR; + } + break; + case 5: + switch (code2) { + case 1: *result = LEFT_EXTEND_16_32; return SIMPLICITY_NO_ERROR; + case 2: *result = LEFT_EXTEND_16_64; return SIMPLICITY_NO_ERROR; + } + break; + case 6: + switch (code2) { + case 1: *result = LEFT_EXTEND_32_64; return SIMPLICITY_NO_ERROR; + } + break; + } + break; + case 21: /* RightPadLow */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + code2 = decodeUptoMaxInt(stream); + if (code2 < 0) return (simplicity_err)code2; + switch (code) { + case 1: + switch (code2) { + case 3: *result = RIGHT_PAD_LOW_1_8; return SIMPLICITY_NO_ERROR; + case 4: *result = RIGHT_PAD_LOW_1_16; return SIMPLICITY_NO_ERROR; + case 5: *result = RIGHT_PAD_LOW_1_32; return SIMPLICITY_NO_ERROR; + case 6: *result = RIGHT_PAD_LOW_1_64; return SIMPLICITY_NO_ERROR; + } + break; + case 4: + switch (code2) { + case 1: *result = RIGHT_PAD_LOW_8_16; return SIMPLICITY_NO_ERROR; + case 2: *result = RIGHT_PAD_LOW_8_32; return SIMPLICITY_NO_ERROR; + case 3: *result = RIGHT_PAD_LOW_8_64; return SIMPLICITY_NO_ERROR; + } + break; + case 5: + switch (code2) { + case 1: *result = RIGHT_PAD_LOW_16_32; return SIMPLICITY_NO_ERROR; + case 2: *result = RIGHT_PAD_LOW_16_64; return SIMPLICITY_NO_ERROR; + } + break; + case 6: + switch (code2) { + case 1: *result = RIGHT_PAD_LOW_32_64; return SIMPLICITY_NO_ERROR; + } + break; + } + break; + case 22: /* RightPadHigh */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + code2 = decodeUptoMaxInt(stream); + if (code2 < 0) return (simplicity_err)code2; + switch (code) { + case 1: + switch (code2) { + case 3: *result = RIGHT_PAD_HIGH_1_8; return SIMPLICITY_NO_ERROR; + case 4: *result = RIGHT_PAD_HIGH_1_16; return SIMPLICITY_NO_ERROR; + case 5: *result = RIGHT_PAD_HIGH_1_32; return SIMPLICITY_NO_ERROR; + case 6: *result = RIGHT_PAD_HIGH_1_64; return SIMPLICITY_NO_ERROR; + } + break; + case 4: + switch (code2) { + case 1: *result = RIGHT_PAD_HIGH_8_16; return SIMPLICITY_NO_ERROR; + case 2: *result = RIGHT_PAD_HIGH_8_32; return SIMPLICITY_NO_ERROR; + case 3: *result = RIGHT_PAD_HIGH_8_64; return SIMPLICITY_NO_ERROR; + } + break; + case 5: + switch (code2) { + case 1: *result = RIGHT_PAD_HIGH_16_32; return SIMPLICITY_NO_ERROR; + case 2: *result = RIGHT_PAD_HIGH_16_64; return SIMPLICITY_NO_ERROR; + } + break; + case 6: + switch (code2) { + case 1: *result = RIGHT_PAD_HIGH_32_64; return SIMPLICITY_NO_ERROR; + } + break; + } + break; + case 23: /* RightExtend */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + code2 = decodeUptoMaxInt(stream); + if (code2 < 0) return (simplicity_err)code2; + switch (code) { + case 4: + switch (code2) { + case 1: *result = RIGHT_EXTEND_8_16; return SIMPLICITY_NO_ERROR; + case 2: *result = RIGHT_EXTEND_8_32; return SIMPLICITY_NO_ERROR; + case 3: *result = RIGHT_EXTEND_8_64; return SIMPLICITY_NO_ERROR; + } + break; + case 5: + switch (code2) { + case 1: *result = RIGHT_EXTEND_16_32; return SIMPLICITY_NO_ERROR; + case 2: *result = RIGHT_EXTEND_16_64; return SIMPLICITY_NO_ERROR; + } + break; + case 6: + switch (code2) { + case 1: *result = RIGHT_EXTEND_32_64; return SIMPLICITY_NO_ERROR; + } + break; + } + break; + case 24: /* LeftShiftWith */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + switch (code) { + case 3: *result = LEFT_SHIFT_WITH_8; return SIMPLICITY_NO_ERROR; + case 4: *result = LEFT_SHIFT_WITH_16; return SIMPLICITY_NO_ERROR; + case 5: *result = LEFT_SHIFT_WITH_32; return SIMPLICITY_NO_ERROR; + case 6: *result = LEFT_SHIFT_WITH_64; return SIMPLICITY_NO_ERROR; + } + break; + case 25: /* RightShiftWith */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + switch (code) { + case 3: *result = RIGHT_SHIFT_WITH_8; return SIMPLICITY_NO_ERROR; + case 4: *result = RIGHT_SHIFT_WITH_16; return SIMPLICITY_NO_ERROR; + case 5: *result = RIGHT_SHIFT_WITH_32; return SIMPLICITY_NO_ERROR; + case 6: *result = RIGHT_SHIFT_WITH_64; return SIMPLICITY_NO_ERROR; + } + break; + case 26: /* LeftShift */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + switch (code) { + case 3: *result = LEFT_SHIFT_8; return SIMPLICITY_NO_ERROR; + case 4: *result = LEFT_SHIFT_16; return SIMPLICITY_NO_ERROR; + case 5: *result = LEFT_SHIFT_32; return SIMPLICITY_NO_ERROR; + case 6: *result = LEFT_SHIFT_64; return SIMPLICITY_NO_ERROR; + } + break; + case 27: /* RightShift */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + switch (code) { + case 3: *result = RIGHT_SHIFT_8; return SIMPLICITY_NO_ERROR; + case 4: *result = RIGHT_SHIFT_16; return SIMPLICITY_NO_ERROR; + case 5: *result = RIGHT_SHIFT_32; return SIMPLICITY_NO_ERROR; + case 6: *result = RIGHT_SHIFT_64; return SIMPLICITY_NO_ERROR; + } + break; + case 28: /* LeftRotate */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + switch (code) { + case 3: *result = LEFT_ROTATE_8; return SIMPLICITY_NO_ERROR; + case 4: *result = LEFT_ROTATE_16; return SIMPLICITY_NO_ERROR; + case 5: *result = LEFT_ROTATE_32; return SIMPLICITY_NO_ERROR; + case 6: *result = LEFT_ROTATE_64; return SIMPLICITY_NO_ERROR; + } + break; + case 29: /* RightRotate */ + code = decodeUptoMaxInt(stream); + if (code < 0) return (simplicity_err)code; + switch (code) { + case 3: *result = RIGHT_ROTATE_8; return SIMPLICITY_NO_ERROR; + case 4: *result = RIGHT_ROTATE_16; return SIMPLICITY_NO_ERROR; + case 5: *result = RIGHT_ROTATE_32; return SIMPLICITY_NO_ERROR; + case 6: *result = RIGHT_ROTATE_64; return SIMPLICITY_NO_ERROR; + } + break; } break; case 2: /* Arith jets chapter */ diff --git a/simplicity-sys/depend/simplicity/primitive/elements/primitiveEnumJet.inc b/simplicity-sys/depend/simplicity/primitive/elements/primitiveEnumJet.inc index f035a95f..bd046f72 100644 --- a/simplicity-sys/depend/simplicity/primitive/elements/primitiveEnumJet.inc +++ b/simplicity-sys/depend/simplicity/primitive/elements/primitiveEnumJet.inc @@ -7,6 +7,7 @@ ALL_16, ALL_32, ALL_64, ALL_8, +AND_1, AND_16, AND_32, AND_64, @@ -20,6 +21,7 @@ CALCULATE_ASSET, CALCULATE_CONFIDENTIAL_TOKEN, CALCULATE_EXPLICIT_TOKEN, CALCULATE_ISSUANCE_ENTROPY, +CH_1, CH_16, CH_32, CH_64, @@ -29,6 +31,7 @@ CHECK_LOCK_DURATION, CHECK_LOCK_HEIGHT, CHECK_LOCK_TIME, CHECK_SIG_VERIFY, +COMPLEMENT_1, COMPLEMENT_16, COMPLEMENT_32, COMPLEMENT_64, @@ -66,6 +69,7 @@ DIVIDES_16, DIVIDES_32, DIVIDES_64, DIVIDES_8, +EQ_1, EQ_16, EQ_256, EQ_32, @@ -93,10 +97,46 @@ FULL_INCREMENT_16, FULL_INCREMENT_32, FULL_INCREMENT_64, FULL_INCREMENT_8, +FULL_LEFT_SHIFT_16_1, +FULL_LEFT_SHIFT_16_2, +FULL_LEFT_SHIFT_16_4, +FULL_LEFT_SHIFT_16_8, +FULL_LEFT_SHIFT_32_1, +FULL_LEFT_SHIFT_32_16, +FULL_LEFT_SHIFT_32_2, +FULL_LEFT_SHIFT_32_4, +FULL_LEFT_SHIFT_32_8, +FULL_LEFT_SHIFT_64_1, +FULL_LEFT_SHIFT_64_16, +FULL_LEFT_SHIFT_64_2, +FULL_LEFT_SHIFT_64_32, +FULL_LEFT_SHIFT_64_4, +FULL_LEFT_SHIFT_64_8, +FULL_LEFT_SHIFT_8_1, +FULL_LEFT_SHIFT_8_2, +FULL_LEFT_SHIFT_8_4, FULL_MULTIPLY_16, FULL_MULTIPLY_32, FULL_MULTIPLY_64, FULL_MULTIPLY_8, +FULL_RIGHT_SHIFT_16_1, +FULL_RIGHT_SHIFT_16_2, +FULL_RIGHT_SHIFT_16_4, +FULL_RIGHT_SHIFT_16_8, +FULL_RIGHT_SHIFT_32_1, +FULL_RIGHT_SHIFT_32_16, +FULL_RIGHT_SHIFT_32_2, +FULL_RIGHT_SHIFT_32_4, +FULL_RIGHT_SHIFT_32_8, +FULL_RIGHT_SHIFT_64_1, +FULL_RIGHT_SHIFT_64_16, +FULL_RIGHT_SHIFT_64_2, +FULL_RIGHT_SHIFT_64_32, +FULL_RIGHT_SHIFT_64_4, +FULL_RIGHT_SHIFT_64_8, +FULL_RIGHT_SHIFT_8_1, +FULL_RIGHT_SHIFT_8_2, +FULL_RIGHT_SHIFT_8_4, FULL_SUBTRACT_16, FULL_SUBTRACT_32, FULL_SUBTRACT_64, @@ -117,6 +157,7 @@ GEJ_X_EQUIV, GEJ_Y_IS_ODD, GENERATE, GENESIS_BLOCK_HASH, +HIGH_1, HIGH_16, HIGH_32, HIGH_64, @@ -167,9 +208,70 @@ LE_16, LE_32, LE_64, LE_8, +LEFT_EXTEND_16_32, +LEFT_EXTEND_16_64, +LEFT_EXTEND_1_16, +LEFT_EXTEND_1_32, +LEFT_EXTEND_1_64, +LEFT_EXTEND_1_8, +LEFT_EXTEND_32_64, +LEFT_EXTEND_8_16, +LEFT_EXTEND_8_32, +LEFT_EXTEND_8_64, +LEFT_PAD_HIGH_16_32, +LEFT_PAD_HIGH_16_64, +LEFT_PAD_HIGH_1_16, +LEFT_PAD_HIGH_1_32, +LEFT_PAD_HIGH_1_64, +LEFT_PAD_HIGH_1_8, +LEFT_PAD_HIGH_32_64, +LEFT_PAD_HIGH_8_16, +LEFT_PAD_HIGH_8_32, +LEFT_PAD_HIGH_8_64, +LEFT_PAD_LOW_16_32, +LEFT_PAD_LOW_16_64, +LEFT_PAD_LOW_1_16, +LEFT_PAD_LOW_1_32, +LEFT_PAD_LOW_1_64, +LEFT_PAD_LOW_1_8, +LEFT_PAD_LOW_32_64, +LEFT_PAD_LOW_8_16, +LEFT_PAD_LOW_8_32, +LEFT_PAD_LOW_8_64, +LEFT_ROTATE_16, +LEFT_ROTATE_32, +LEFT_ROTATE_64, +LEFT_ROTATE_8, +LEFT_SHIFT_16, +LEFT_SHIFT_32, +LEFT_SHIFT_64, +LEFT_SHIFT_8, +LEFT_SHIFT_WITH_16, +LEFT_SHIFT_WITH_32, +LEFT_SHIFT_WITH_64, +LEFT_SHIFT_WITH_8, +LEFTMOST_16_1, +LEFTMOST_16_2, +LEFTMOST_16_4, +LEFTMOST_16_8, +LEFTMOST_32_1, +LEFTMOST_32_16, +LEFTMOST_32_2, +LEFTMOST_32_4, +LEFTMOST_32_8, +LEFTMOST_64_1, +LEFTMOST_64_16, +LEFTMOST_64_2, +LEFTMOST_64_32, +LEFTMOST_64_4, +LEFTMOST_64_8, +LEFTMOST_8_1, +LEFTMOST_8_2, +LEFTMOST_8_4, LINEAR_COMBINATION_1, LINEAR_VERIFY_1, LOCK_TIME, +LOW_1, LOW_16, LOW_32, LOW_64, @@ -178,6 +280,7 @@ LT_16, LT_32, LT_64, LT_8, +MAJ_1, MAJ_16, MAJ_32, MAJ_64, @@ -214,6 +317,7 @@ ONE_16, ONE_32, ONE_64, ONE_8, +OR_1, OR_16, OR_32, OR_64, @@ -238,6 +342,62 @@ PARSE_SEQUENCE, POINT_VERIFY_1, REISSUANCE_BLINDING, REISSUANCE_ENTROPY, +RIGHT_EXTEND_16_32, +RIGHT_EXTEND_16_64, +RIGHT_EXTEND_32_64, +RIGHT_EXTEND_8_16, +RIGHT_EXTEND_8_32, +RIGHT_EXTEND_8_64, +RIGHT_PAD_HIGH_16_32, +RIGHT_PAD_HIGH_16_64, +RIGHT_PAD_HIGH_1_16, +RIGHT_PAD_HIGH_1_32, +RIGHT_PAD_HIGH_1_64, +RIGHT_PAD_HIGH_1_8, +RIGHT_PAD_HIGH_32_64, +RIGHT_PAD_HIGH_8_16, +RIGHT_PAD_HIGH_8_32, +RIGHT_PAD_HIGH_8_64, +RIGHT_PAD_LOW_16_32, +RIGHT_PAD_LOW_16_64, +RIGHT_PAD_LOW_1_16, +RIGHT_PAD_LOW_1_32, +RIGHT_PAD_LOW_1_64, +RIGHT_PAD_LOW_1_8, +RIGHT_PAD_LOW_32_64, +RIGHT_PAD_LOW_8_16, +RIGHT_PAD_LOW_8_32, +RIGHT_PAD_LOW_8_64, +RIGHT_ROTATE_16, +RIGHT_ROTATE_32, +RIGHT_ROTATE_64, +RIGHT_ROTATE_8, +RIGHT_SHIFT_16, +RIGHT_SHIFT_32, +RIGHT_SHIFT_64, +RIGHT_SHIFT_8, +RIGHT_SHIFT_WITH_16, +RIGHT_SHIFT_WITH_32, +RIGHT_SHIFT_WITH_64, +RIGHT_SHIFT_WITH_8, +RIGHTMOST_16_1, +RIGHTMOST_16_2, +RIGHTMOST_16_4, +RIGHTMOST_16_8, +RIGHTMOST_32_1, +RIGHTMOST_32_16, +RIGHTMOST_32_2, +RIGHTMOST_32_4, +RIGHTMOST_32_8, +RIGHTMOST_64_1, +RIGHTMOST_64_16, +RIGHTMOST_64_2, +RIGHTMOST_64_32, +RIGHTMOST_64_4, +RIGHTMOST_64_8, +RIGHTMOST_8_1, +RIGHTMOST_8_2, +RIGHTMOST_8_4, SCALAR_ADD, SCALAR_INVERT, SCALAR_IS_ZERO, @@ -264,6 +424,7 @@ SHA_256_CTX_8_FINALIZE, SHA_256_CTX_8_INIT, SHA_256_IV, SIG_ALL_HASH, +SOME_1, SOME_16, SOME_32, SOME_64, @@ -285,10 +446,12 @@ TX_LOCK_HEIGHT, TX_LOCK_TIME, VERIFY, VERSION, +XOR_1, XOR_16, XOR_32, XOR_64, XOR_8, +XOR_XOR_1, XOR_XOR_16, XOR_XOR_32, XOR_XOR_64, diff --git a/simplicity-sys/depend/simplicity/primitive/elements/primitiveEnumTy.inc b/simplicity-sys/depend/simplicity/primitive/elements/primitiveEnumTy.inc index abf52b19..12844f1f 100644 --- a/simplicity-sys/depend/simplicity/primitive/elements/primitiveEnumTy.inc +++ b/simplicity-sys/depend/simplicity/primitive/elements/primitiveEnumTy.inc @@ -59,16 +59,50 @@ ty_sw32w32, ty_spbw256w64, ty_spbw256w256, ty_spw2w256sbw4, +ty_pbw2, ty_pbw8, ty_pbw16, ty_pbw32, ty_pbw64, ty_pbw128, ty_pbw256, +ty_pbpw4w8, +ty_pbpw4w16, +ty_pbpw8w32, +ty_pbpw8w64, +ty_pw2w8, +ty_pw2w16, +ty_pw2w32, +ty_pw2w64, ty_pw2w256, +ty_pw4w8, +ty_pw4w16, +ty_pw4w32, +ty_pw4w64, +ty_pw8b, +ty_pw8w2, +ty_pw8w4, ty_pw8w16, +ty_pw8w32, +ty_pw8w64, +ty_pw16b, +ty_pw16w2, +ty_pw16w4, +ty_pw16w8, ty_pw16w32, +ty_pw16w64, +ty_pw32b, +ty_pw32w2, +ty_pw32w4, +ty_pw32w8, +ty_pw32w16, ty_pw32w64, +ty_pw64b, +ty_pw64w2, +ty_pw64w4, +ty_pw64w8, +ty_pw64w16, +ty_pw64w32, ty_pw64w128, ty_pw64w256, ty_pw256w32, diff --git a/simplicity-sys/depend/simplicity/primitive/elements/primitiveInitTy.inc b/simplicity-sys/depend/simplicity/primitive/elements/primitiveInitTy.inc index cd7f13d0..fa6da3eb 100644 --- a/simplicity-sys/depend/simplicity/primitive/elements/primitiveInitTy.inc +++ b/simplicity-sys/depend/simplicity/primitive/elements/primitiveInitTy.inc @@ -59,16 +59,50 @@ (*bound_var)[ty_spbw256w64] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_pbw256], &(*bound_var)[ty_w64] } }}; (*bound_var)[ty_spbw256w256] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_pbw256], &(*bound_var)[ty_w256] } }}; (*bound_var)[ty_spw2w256sbw4] = (unification_var){ .isBound = true, .bound = { .kind = SUM, .arg = { &(*bound_var)[ty_pw2w256], &(*bound_var)[ty_sbw4] } }}; +(*bound_var)[ty_pbw2] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_w2] } }}; (*bound_var)[ty_pbw8] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_w8] } }}; (*bound_var)[ty_pbw16] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_w16] } }}; (*bound_var)[ty_pbw32] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_w32] } }}; (*bound_var)[ty_pbw64] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_w64] } }}; (*bound_var)[ty_pbw128] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_w128] } }}; (*bound_var)[ty_pbw256] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_w256] } }}; +(*bound_var)[ty_pbpw4w8] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_pw4w8] } }}; +(*bound_var)[ty_pbpw4w16] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_pw4w16] } }}; +(*bound_var)[ty_pbpw8w32] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_pw8w32] } }}; +(*bound_var)[ty_pbpw8w64] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_b], &(*bound_var)[ty_pw8w64] } }}; +(*bound_var)[ty_pw2w8] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w2], &(*bound_var)[ty_w8] } }}; +(*bound_var)[ty_pw2w16] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w2], &(*bound_var)[ty_w16] } }}; +(*bound_var)[ty_pw2w32] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w2], &(*bound_var)[ty_w32] } }}; +(*bound_var)[ty_pw2w64] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w2], &(*bound_var)[ty_w64] } }}; (*bound_var)[ty_pw2w256] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w2], &(*bound_var)[ty_w256] } }}; +(*bound_var)[ty_pw4w8] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w4], &(*bound_var)[ty_w8] } }}; +(*bound_var)[ty_pw4w16] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w4], &(*bound_var)[ty_w16] } }}; +(*bound_var)[ty_pw4w32] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w4], &(*bound_var)[ty_w32] } }}; +(*bound_var)[ty_pw4w64] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w4], &(*bound_var)[ty_w64] } }}; +(*bound_var)[ty_pw8b] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w8], &(*bound_var)[ty_b] } }}; +(*bound_var)[ty_pw8w2] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w8], &(*bound_var)[ty_w2] } }}; +(*bound_var)[ty_pw8w4] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w8], &(*bound_var)[ty_w4] } }}; (*bound_var)[ty_pw8w16] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w8], &(*bound_var)[ty_w16] } }}; +(*bound_var)[ty_pw8w32] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w8], &(*bound_var)[ty_w32] } }}; +(*bound_var)[ty_pw8w64] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w8], &(*bound_var)[ty_w64] } }}; +(*bound_var)[ty_pw16b] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w16], &(*bound_var)[ty_b] } }}; +(*bound_var)[ty_pw16w2] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w16], &(*bound_var)[ty_w2] } }}; +(*bound_var)[ty_pw16w4] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w16], &(*bound_var)[ty_w4] } }}; +(*bound_var)[ty_pw16w8] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w16], &(*bound_var)[ty_w8] } }}; (*bound_var)[ty_pw16w32] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w16], &(*bound_var)[ty_w32] } }}; +(*bound_var)[ty_pw16w64] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w16], &(*bound_var)[ty_w64] } }}; +(*bound_var)[ty_pw32b] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w32], &(*bound_var)[ty_b] } }}; +(*bound_var)[ty_pw32w2] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w32], &(*bound_var)[ty_w2] } }}; +(*bound_var)[ty_pw32w4] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w32], &(*bound_var)[ty_w4] } }}; +(*bound_var)[ty_pw32w8] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w32], &(*bound_var)[ty_w8] } }}; +(*bound_var)[ty_pw32w16] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w32], &(*bound_var)[ty_w16] } }}; (*bound_var)[ty_pw32w64] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w32], &(*bound_var)[ty_w64] } }}; +(*bound_var)[ty_pw64b] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w64], &(*bound_var)[ty_b] } }}; +(*bound_var)[ty_pw64w2] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w64], &(*bound_var)[ty_w2] } }}; +(*bound_var)[ty_pw64w4] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w64], &(*bound_var)[ty_w4] } }}; +(*bound_var)[ty_pw64w8] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w64], &(*bound_var)[ty_w8] } }}; +(*bound_var)[ty_pw64w16] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w64], &(*bound_var)[ty_w16] } }}; +(*bound_var)[ty_pw64w32] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w64], &(*bound_var)[ty_w32] } }}; (*bound_var)[ty_pw64w128] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w64], &(*bound_var)[ty_w128] } }}; (*bound_var)[ty_pw64w256] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w64], &(*bound_var)[ty_w256] } }}; (*bound_var)[ty_pw256w32] = (unification_var){ .isBound = true, .bound = { .kind = PRODUCT, .arg = { &(*bound_var)[ty_w256], &(*bound_var)[ty_w32] } }}; diff --git a/simplicity-sys/depend/simplicity/primitive/elements/primitiveJetNode.inc b/simplicity-sys/depend/simplicity/primitive/elements/primitiveJetNode.inc index 571d1515..1b22369a 100644 --- a/simplicity-sys/depend/simplicity/primitive/elements/primitiveJetNode.inc +++ b/simplicity-sys/depend/simplicity/primitive/elements/primitiveJetNode.inc @@ -63,6 +63,14 @@ , .targetIx = ty_b , .cost = 113 /* milli weight units */ } +,[AND_1] = +{ .tag = JET +, .jet = and_1 +, .cmr = {{0x2dc2dbccu, 0x69c12c78u, 0x30df1170u, 0xd9e93a35u, 0xd8284cc8u, 0x15916aebu, 0x3b1b95efu, 0xdaa92c26u}} +, .sourceIx = ty_w2 +, .targetIx = ty_b +, .cost = 159 /* milli weight units */ +} ,[AND_16] = { .tag = JET , .jet = and_16 @@ -167,6 +175,14 @@ , .targetIx = ty_w256 , .cost = 3453 /* milli weight units */ } +,[CH_1] = +{ .tag = JET +, .jet = ch_1 +, .cmr = {{0xc2323612u, 0x4da01f3du, 0x8eb742c2u, 0xed47953fu, 0x66c8b084u, 0xd95a10c6u, 0x0cae69bau, 0x9842ae96u}} +, .sourceIx = ty_pbw2 +, .targetIx = ty_b +, .cost = 240 /* milli weight units */ +} ,[CH_16] = { .tag = JET , .jet = ch_16 @@ -239,6 +255,14 @@ , .targetIx = ty_u , .cost = 50000 /* milli weight units */ } +,[COMPLEMENT_1] = +{ .tag = JET +, .jet = complement_1 +, .cmr = {{0x7e714813u, 0x2e289282u, 0x3fcf2a26u, 0xc6220beeu, 0x039ff6c5u, 0xd7c1b4e4u, 0xca213ad8u, 0x37ab4774u}} +, .sourceIx = ty_b +, .targetIx = ty_b +, .cost = 139 /* milli weight units */ +} ,[COMPLEMENT_16] = { .tag = JET , .jet = complement_16 @@ -535,6 +559,14 @@ , .targetIx = ty_b , .cost = 142 /* milli weight units */ } +,[EQ_1] = +{ .tag = JET +, .jet = eq_1 +, .cmr = {{0x4249c5bdu, 0xec540a06u, 0x957dcdabu, 0x045a445eu, 0xb91891c0u, 0x6c3f8f96u, 0xc888e9ddu, 0xd2fbaa28u}} +, .sourceIx = ty_w2 +, .targetIx = ty_b +, .cost = 120 /* milli weight units */ +} ,[EQ_16] = { .tag = JET , .jet = eq_16 @@ -751,6 +783,150 @@ , .targetIx = ty_pbw8 , .cost = 204 /* milli weight units */ } +,[FULL_LEFT_SHIFT_16_1] = +{ .tag = JET +, .jet = full_left_shift_16_1 +, .cmr = {{0x740e2381u, 0x1b3e62d4u, 0x91510fc9u, 0xedc4cb0au, 0x0eecfadfu, 0xd21bb27fu, 0x33e220b1u, 0xd87d14d7u}} +, .sourceIx = ty_pw16b +, .targetIx = ty_pbw16 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_16_2] = +{ .tag = JET +, .jet = full_left_shift_16_2 +, .cmr = {{0xc26e8ac3u, 0xff9cc518u, 0x719d4d7fu, 0xd149d802u, 0xf23f0b02u, 0x4999ed5du, 0xaf369210u, 0xacbe3345u}} +, .sourceIx = ty_pw16w2 +, .targetIx = ty_pw2w16 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_16_4] = +{ .tag = JET +, .jet = full_left_shift_16_4 +, .cmr = {{0x5e570cbeu, 0x4c7ca94bu, 0xe0fc7b3eu, 0xe579bdd7u, 0x8426f0b7u, 0x67f48517u, 0x17bbfeaeu, 0xde91fe30u}} +, .sourceIx = ty_pw16w4 +, .targetIx = ty_pw4w16 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_16_8] = +{ .tag = JET +, .jet = full_left_shift_16_8 +, .cmr = {{0x65adc553u, 0x48383b28u, 0xe8797f81u, 0xa9282d91u, 0x1b3f8fa6u, 0x13927251u, 0xd88e0c38u, 0xb029b705u}} +, .sourceIx = ty_pw16w8 +, .targetIx = ty_pw8w16 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_32_1] = +{ .tag = JET +, .jet = full_left_shift_32_1 +, .cmr = {{0x72e0104eu, 0xfaf1dee4u, 0x1198ec3bu, 0x790373f6u, 0x48f13f5eu, 0xe06552fbu, 0x020bafb5u, 0x8497c25cu}} +, .sourceIx = ty_pw32b +, .targetIx = ty_pbw32 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_32_16] = +{ .tag = JET +, .jet = full_left_shift_32_16 +, .cmr = {{0xb9fb2169u, 0x908d9144u, 0xcc73e68fu, 0x753536f4u, 0x3cb2b74cu, 0xb62c6408u, 0x810670deu, 0x84ab09bdu}} +, .sourceIx = ty_pw32w16 +, .targetIx = ty_pw16w32 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_32_2] = +{ .tag = JET +, .jet = full_left_shift_32_2 +, .cmr = {{0x11efdb81u, 0xb0c4dedau, 0x4d4f9847u, 0x5d7878efu, 0xa338694fu, 0xa0fd613eu, 0x1293225au, 0x4f462f7cu}} +, .sourceIx = ty_pw32w2 +, .targetIx = ty_pw2w32 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_32_4] = +{ .tag = JET +, .jet = full_left_shift_32_4 +, .cmr = {{0x77e399d7u, 0xd83f7d11u, 0x44991dafu, 0xa3cc9811u, 0xc1632c29u, 0xe493a8afu, 0x98e98fbcu, 0x1d635fb4u}} +, .sourceIx = ty_pw32w4 +, .targetIx = ty_pw4w32 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_32_8] = +{ .tag = JET +, .jet = full_left_shift_32_8 +, .cmr = {{0xba664cb1u, 0xc42eda17u, 0x9191ebc2u, 0xa110396du, 0xae58f906u, 0xa64106b3u, 0x0667790au, 0xc2f2382du}} +, .sourceIx = ty_pw32w8 +, .targetIx = ty_pw8w32 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_64_1] = +{ .tag = JET +, .jet = full_left_shift_64_1 +, .cmr = {{0x79d38fe0u, 0x75839b22u, 0x7cffd92au, 0x8cdb5c8cu, 0x3522bcb4u, 0xd1e03beeu, 0xb6db6ab6u, 0x4ed4721fu}} +, .sourceIx = ty_pw64b +, .targetIx = ty_pbw64 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_64_16] = +{ .tag = JET +, .jet = full_left_shift_64_16 +, .cmr = {{0x21435662u, 0x45f5a1b9u, 0xdfeb0c75u, 0x878e21dbu, 0xe13804c2u, 0x6935ee47u, 0xcac9ad82u, 0x2d6dedb2u}} +, .sourceIx = ty_pw64w16 +, .targetIx = ty_pw16w64 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_64_2] = +{ .tag = JET +, .jet = full_left_shift_64_2 +, .cmr = {{0x9c921649u, 0x15af0b15u, 0x4e1df564u, 0xd4dc9be9u, 0x80b39883u, 0x5c9988bbu, 0xb108d0cdu, 0x8145b330u}} +, .sourceIx = ty_pw64w2 +, .targetIx = ty_pw2w64 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_64_32] = +{ .tag = JET +, .jet = full_left_shift_64_32 +, .cmr = {{0xd0d016e9u, 0xc78cd112u, 0xb4dd91a8u, 0x359f805cu, 0x68415b85u, 0x7a799b00u, 0x394954dcu, 0xd290acbcu}} +, .sourceIx = ty_pw64w32 +, .targetIx = ty_pw32w64 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_64_4] = +{ .tag = JET +, .jet = full_left_shift_64_4 +, .cmr = {{0x0f1f7d37u, 0x4e82868du, 0x71e7e7c0u, 0x3221b150u, 0x594b6304u, 0x45b1b163u, 0x56cf3545u, 0xbd939263u}} +, .sourceIx = ty_pw64w4 +, .targetIx = ty_pw4w64 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_64_8] = +{ .tag = JET +, .jet = full_left_shift_64_8 +, .cmr = {{0xad7b4438u, 0xb73f6f9eu, 0x42f64c70u, 0x530475eeu, 0x08936e47u, 0x63e5b73eu, 0xa4bc8383u, 0xa2b963d5u}} +, .sourceIx = ty_pw64w8 +, .targetIx = ty_pw8w64 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_8_1] = +{ .tag = JET +, .jet = full_left_shift_8_1 +, .cmr = {{0x2113681au, 0x11624e60u, 0x6030c470u, 0xd68f6061u, 0x232f71cfu, 0xabc50571u, 0x92c6c8bdu, 0x1d73b7e1u}} +, .sourceIx = ty_pw8b +, .targetIx = ty_pbw8 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_8_2] = +{ .tag = JET +, .jet = full_left_shift_8_2 +, .cmr = {{0x368368c9u, 0x4b040e81u, 0xb948d737u, 0xc193c042u, 0x83ec80a2u, 0x8fd3a021u, 0xb0b8c1abu, 0xcf5edcd3u}} +, .sourceIx = ty_pw8w2 +, .targetIx = ty_pw2w8 +, .cost = 150 /* milli weight units */ +} +,[FULL_LEFT_SHIFT_8_4] = +{ .tag = JET +, .jet = full_left_shift_8_4 +, .cmr = {{0x8f854d58u, 0xf968b4beu, 0x3b2021fbu, 0x22142dd3u, 0xe68aa819u, 0x7b5475b7u, 0x050b02e1u, 0xe5caee47u}} +, .sourceIx = ty_pw8w4 +, .targetIx = ty_pw4w8 +, .cost = 150 /* milli weight units */ +} ,[FULL_MULTIPLY_16] = { .tag = JET , .jet = full_multiply_16 @@ -783,6 +959,150 @@ , .targetIx = ty_w16 , .cost = 190 /* milli weight units */ } +,[FULL_RIGHT_SHIFT_16_1] = +{ .tag = JET +, .jet = full_right_shift_16_1 +, .cmr = {{0xb8074423u, 0xe6748a6au, 0xa54ec574u, 0x1feef25au, 0x262fdecbu, 0xfce39124u, 0xe610238au, 0x3b0a23fcu}} +, .sourceIx = ty_pbw16 +, .targetIx = ty_pw16b +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_16_2] = +{ .tag = JET +, .jet = full_right_shift_16_2 +, .cmr = {{0x3fcf985eu, 0xe0c72ca4u, 0x1ddf6c89u, 0xd0f0f69du, 0x5065876eu, 0x3b6020ecu, 0xc9bf059eu, 0x8f9719c6u}} +, .sourceIx = ty_pw2w16 +, .targetIx = ty_pw16w2 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_16_4] = +{ .tag = JET +, .jet = full_right_shift_16_4 +, .cmr = {{0xa30c7c29u, 0xd0eeac29u, 0x5258b2b6u, 0x1d0b5413u, 0x46f407c0u, 0x848d448eu, 0x13e9774cu, 0x1c969679u}} +, .sourceIx = ty_pw4w16 +, .targetIx = ty_pw16w4 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_16_8] = +{ .tag = JET +, .jet = full_right_shift_16_8 +, .cmr = {{0x5b8808cau, 0xda5587b3u, 0x6d1a6fadu, 0x66ae4da0u, 0x8d412364u, 0x4c0bdd59u, 0x772a70aau, 0x7432e715u}} +, .sourceIx = ty_pw8w16 +, .targetIx = ty_pw16w8 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_32_1] = +{ .tag = JET +, .jet = full_right_shift_32_1 +, .cmr = {{0x32afd0efu, 0x94df51b7u, 0xd35c00e5u, 0x61a8390cu, 0x5cf50f93u, 0x0b30d786u, 0x8804b580u, 0x49375840u}} +, .sourceIx = ty_pbw32 +, .targetIx = ty_pw32b +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_32_16] = +{ .tag = JET +, .jet = full_right_shift_32_16 +, .cmr = {{0x44d179a8u, 0x90f7812fu, 0x151331b5u, 0x5fc07eb4u, 0xe4d7814eu, 0xb683da28u, 0x8f8fe7cdu, 0x55b43906u}} +, .sourceIx = ty_pw16w32 +, .targetIx = ty_pw32w16 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_32_2] = +{ .tag = JET +, .jet = full_right_shift_32_2 +, .cmr = {{0x33c661dfu, 0x3a32cae5u, 0x5b52a5f2u, 0x632154ccu, 0x85b65913u, 0x87bc2b34u, 0x8330c870u, 0xa6f6706fu}} +, .sourceIx = ty_pw2w32 +, .targetIx = ty_pw32w2 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_32_4] = +{ .tag = JET +, .jet = full_right_shift_32_4 +, .cmr = {{0xe4bebf16u, 0x935f67beu, 0x7d8c86bcu, 0x588adbcfu, 0x8e597539u, 0x257fddabu, 0x9fb04372u, 0xc77012d3u}} +, .sourceIx = ty_pw4w32 +, .targetIx = ty_pw32w4 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_32_8] = +{ .tag = JET +, .jet = full_right_shift_32_8 +, .cmr = {{0xabcffb08u, 0x4a239642u, 0x16d56273u, 0x305c0c8bu, 0x03bdabdau, 0xd69ff7e9u, 0x42f0d2cfu, 0x080febccu}} +, .sourceIx = ty_pw8w32 +, .targetIx = ty_pw32w8 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_64_1] = +{ .tag = JET +, .jet = full_right_shift_64_1 +, .cmr = {{0x37688260u, 0xc53af06bu, 0x856d9022u, 0xca5d87f8u, 0xa687ee53u, 0xfaca1866u, 0xec842a7cu, 0x890a4b70u}} +, .sourceIx = ty_pbw64 +, .targetIx = ty_pw64b +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_64_16] = +{ .tag = JET +, .jet = full_right_shift_64_16 +, .cmr = {{0x417bfb71u, 0x5a20b10du, 0x4881f5c3u, 0x496c63efu, 0xee4ab500u, 0x3dfd0a16u, 0xb85f94f8u, 0xe5b0667cu}} +, .sourceIx = ty_pw16w64 +, .targetIx = ty_pw64w16 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_64_2] = +{ .tag = JET +, .jet = full_right_shift_64_2 +, .cmr = {{0xceca2567u, 0xb91a63e9u, 0xca44035eu, 0xb59e2f22u, 0xd81e37e1u, 0x96595a74u, 0x8cea4a46u, 0x84a215b0u}} +, .sourceIx = ty_pw2w64 +, .targetIx = ty_pw64w2 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_64_32] = +{ .tag = JET +, .jet = full_right_shift_64_32 +, .cmr = {{0x03969937u, 0x84023d47u, 0xe8514b45u, 0x9298198du, 0x33bd71e6u, 0xf756d08eu, 0xdf462a8fu, 0x62a21b80u}} +, .sourceIx = ty_pw32w64 +, .targetIx = ty_pw64w32 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_64_4] = +{ .tag = JET +, .jet = full_right_shift_64_4 +, .cmr = {{0xdee4dad6u, 0x7a5ddcc3u, 0x5da1a790u, 0x63ca975fu, 0x8134c8eau, 0xc56a9f55u, 0x5d2b0e13u, 0xda10994du}} +, .sourceIx = ty_pw4w64 +, .targetIx = ty_pw64w4 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_64_8] = +{ .tag = JET +, .jet = full_right_shift_64_8 +, .cmr = {{0x9cd77803u, 0xfc389c94u, 0xfff286dau, 0x0b374b89u, 0xfeeb3daau, 0x38ce67cau, 0xb0220dabu, 0xeefe23a2u}} +, .sourceIx = ty_pw8w64 +, .targetIx = ty_pw64w8 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_8_1] = +{ .tag = JET +, .jet = full_right_shift_8_1 +, .cmr = {{0xee23fff0u, 0x7de53cc3u, 0x7109a47fu, 0x9fde3c74u, 0x447ae831u, 0xcee9ac4du, 0xb790cde8u, 0xb15323b2u}} +, .sourceIx = ty_pbw8 +, .targetIx = ty_pw8b +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_8_2] = +{ .tag = JET +, .jet = full_right_shift_8_2 +, .cmr = {{0x25e1dea1u, 0x08c5f89cu, 0xce5b3d5bu, 0x0e0792beu, 0x37901a5au, 0x65def904u, 0xdd51710au, 0x355ab55fu}} +, .sourceIx = ty_pw2w8 +, .targetIx = ty_pw8w2 +, .cost = 150 /* milli weight units */ +} +,[FULL_RIGHT_SHIFT_8_4] = +{ .tag = JET +, .jet = full_right_shift_8_4 +, .cmr = {{0xd7f0a83cu, 0x4104543eu, 0xc75b5ee7u, 0x5bf5f791u, 0x5d65fa50u, 0xc2095de2u, 0xa35670a5u, 0x05be129au}} +, .sourceIx = ty_pw4w8 +, .targetIx = ty_pw8w4 +, .cost = 150 /* milli weight units */ +} ,[FULL_SUBTRACT_16] = { .tag = JET , .jet = full_subtract_16 @@ -943,6 +1263,14 @@ , .targetIx = ty_w256 , .cost = 395 /* milli weight units */ } +,[HIGH_1] = +{ .tag = JET +, .jet = high_1 +, .cmr = {{0x97a143f0u, 0x4cb603f6u, 0x5f84a80du, 0x31c3364fu, 0x8fda2297u, 0x3a9ae695u, 0xa58189c3u, 0x1463a8bfu}} +, .sourceIx = ty_u +, .targetIx = ty_b +, .cost = 169 /* milli weight units */ +} ,[HIGH_16] = { .tag = JET , .jet = high_16 @@ -1343,573 +1671,1525 @@ , .targetIx = ty_b , .cost = 143 /* milli weight units */ } -,[LINEAR_COMBINATION_1] = -{ .tag = JET -, .jet = linear_combination_1 -, .cmr = {{0xd88320f4u, 0x71f3beeeu, 0xa1313d55u, 0x1e419be0u, 0x5727ae5fu, 0x4de6a2f2u, 0xf26f3cb5u, 0xe8dddd3fu}} -, .sourceIx = ty_ppw256pw512w256w256 -, .targetIx = ty_pw512w256 -, .cost = 86722 /* milli weight units */ -} -,[LINEAR_VERIFY_1] = +,[LEFT_EXTEND_16_32] = { .tag = JET -, .jet = linear_verify_1 -, .cmr = {{0x0c9fae64u, 0xa64cd63cu, 0xa85beba7u, 0x5c9f2c6eu, 0x85343b74u, 0xf28634eau, 0x85f70fc3u, 0x41ccaff3u}} -, .sourceIx = ty_pppw256w512w256w512 -, .targetIx = ty_u -, .cost = 43063 /* milli weight units */ +, .jet = left_extend_16_32 +, .cmr = {{0x8c990435u, 0xb135de74u, 0x57c2690du, 0x2dc8744au, 0x506641b8u, 0x81f41e5cu, 0x17027765u, 0xc352ddcbu}} +, .sourceIx = ty_w16 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ } -,[LOCK_TIME] = +,[LEFT_EXTEND_16_64] = { .tag = JET -, .jet = lock_time -, .cmr = {{0xee87a025u, 0xd7338a3cu, 0x8f251be4u, 0x19efb7eeu, 0x7177cb73u, 0x8f42e8c0u, 0x03fc4658u, 0xcc0e5b8bu}} -, .sourceIx = ty_u -, .targetIx = ty_w32 -, .cost = 132 /* milli weight units */ +, .jet = left_extend_16_64 +, .cmr = {{0x9b9ff9ccu, 0x27139319u, 0xb224b7b2u, 0xb816c913u, 0xa568bfd0u, 0x0be1f383u, 0xc026bcffu, 0xe9bfe712u}} +, .sourceIx = ty_w16 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ } -,[LOW_16] = +,[LEFT_EXTEND_1_16] = { .tag = JET -, .jet = low_16 -, .cmr = {{0xa114e958u, 0x0de07d8bu, 0x077eb889u, 0x98755a0au, 0x62bfe085u, 0xfb23404cu, 0xd1e87868u, 0xcd56d5bdu}} -, .sourceIx = ty_u +, .jet = left_extend_1_16 +, .cmr = {{0xb8ff8dc1u, 0xa04ca716u, 0x4917f4c4u, 0x50688c83u, 0xdd416cefu, 0x7b0fabddu, 0x1692fae6u, 0xbff7b4a6u}} +, .sourceIx = ty_b , .targetIx = ty_w16 -, .cost = 172 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[LOW_32] = +,[LEFT_EXTEND_1_32] = { .tag = JET -, .jet = low_32 -, .cmr = {{0xa717610eu, 0x8c577125u, 0x5140d620u, 0x7fff3bddu, 0x3464acffu, 0x5998e129u, 0xaf8b9f4cu, 0x0e21b23du}} -, .sourceIx = ty_u +, .jet = left_extend_1_32 +, .cmr = {{0x2253a452u, 0xb99902abu, 0xcf15496du, 0xf19d3112u, 0xa1cef59bu, 0x9adcee20u, 0x6c0d8dceu, 0xa628d073u}} +, .sourceIx = ty_b , .targetIx = ty_w32 -, .cost = 170 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[LOW_64] = +,[LEFT_EXTEND_1_64] = { .tag = JET -, .jet = low_64 -, .cmr = {{0x9a6f4a0au, 0xd2fb72c5u, 0x79424c72u, 0xe17daae6u, 0x2b366695u, 0xcd1a2685u, 0xfb0ab02eu, 0x4c2cc0f5u}} -, .sourceIx = ty_u +, .jet = left_extend_1_64 +, .cmr = {{0xc8599c85u, 0x75edb7c2u, 0x60402ef2u, 0xf26dd491u, 0xcb5e4d38u, 0x18ff2e95u, 0x85c8d3e7u, 0x812db5aau}} +, .sourceIx = ty_b , .targetIx = ty_w64 -, .cost = 162 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[LOW_8] = +,[LEFT_EXTEND_1_8] = { .tag = JET -, .jet = low_8 -, .cmr = {{0x69c9b9cau, 0xb9f44cffu, 0xaedf1c84u, 0x3146bcc0u, 0xb03b0f0cu, 0x134866afu, 0xd23a614fu, 0x01a70a24u}} -, .sourceIx = ty_u +, .jet = left_extend_1_8 +, .cmr = {{0xcfe02200u, 0x5f6bad4bu, 0x25b51e9eu, 0xbe929424u, 0x373ff197u, 0xceca62b9u, 0xe069ab08u, 0xda9f38f2u}} +, .sourceIx = ty_b , .targetIx = ty_w8 -, .cost = 173 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[LT_16] = +,[LEFT_EXTEND_32_64] = { .tag = JET -, .jet = lt_16 -, .cmr = {{0x4f465a49u, 0xa963acceu, 0x93f6b6f8u, 0x23eb9472u, 0xb4cc21f6u, 0xe58b7657u, 0x0508babdu, 0xf44a8c97u}} +, .jet = left_extend_32_64 +, .cmr = {{0x3f668404u, 0x7edafb76u, 0xf11fbf59u, 0x5499c5abu, 0xa9c4ba55u, 0xcab587cdu, 0xfebad457u, 0xb55bf5bbu}} , .sourceIx = ty_w32 -, .targetIx = ty_b -, .cost = 188 /* milli weight units */ +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ } -,[LT_32] = +,[LEFT_EXTEND_8_16] = { .tag = JET -, .jet = lt_32 -, .cmr = {{0xd3421dfcu, 0x84671cd7u, 0x445082a9u, 0x86df1628u, 0xedcacbf4u, 0x29a3c809u, 0xd2365497u, 0xe1170bfdu}} -, .sourceIx = ty_w64 -, .targetIx = ty_b -, .cost = 215 /* milli weight units */ +, .jet = left_extend_8_16 +, .cmr = {{0xdbd55f41u, 0x70153853u, 0xbad0e084u, 0xf9e1a7e7u, 0x5a7a0dc9u, 0xd8920775u, 0x575b0d48u, 0xe507af2fu}} +, .sourceIx = ty_w8 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ } -,[LT_64] = +,[LEFT_EXTEND_8_32] = { .tag = JET -, .jet = lt_64 -, .cmr = {{0x7c67aa89u, 0x93fcda59u, 0x30f79db2u, 0x008aa6d7u, 0xbe5f3bedu, 0x5aca5e03u, 0x2dcccf0bu, 0xe84f62d1u}} -, .sourceIx = ty_w128 -, .targetIx = ty_b -, .cost = 195 /* milli weight units */ +, .jet = left_extend_8_32 +, .cmr = {{0x5b5b4567u, 0x6a7503eeu, 0xd0855738u, 0x69dbc580u, 0x0b35029du, 0x140290acu, 0x20891489u, 0xbd2aa7d5u}} +, .sourceIx = ty_w8 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ } -,[LT_8] = +,[LEFT_EXTEND_8_64] = { .tag = JET -, .jet = lt_8 -, .cmr = {{0x98763f78u, 0x21690954u, 0xcf508102u, 0x09df6e15u, 0x570316bbu, 0xa89ffa9au, 0xe556a915u, 0xf37b640bu}} +, .jet = left_extend_8_64 +, .cmr = {{0x7b9ea148u, 0xa30f2af4u, 0xd4001d4fu, 0x25b0bf4fu, 0xdd67c7d0u, 0xf134d7efu, 0x3f678f72u, 0x19002bcfu}} +, .sourceIx = ty_w8 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[LEFT_PAD_HIGH_16_32] = +{ .tag = JET +, .jet = left_pad_high_16_32 +, .cmr = {{0xe8c2d85au, 0x7b7b2a8eu, 0xbb5b0f21u, 0x2fc8450du, 0xc1d3a468u, 0x22fb21e8u, 0x6e3fee02u, 0x0af9738fu}} , .sourceIx = ty_w16 -, .targetIx = ty_b -, .cost = 130 /* milli weight units */ +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ } -,[MAJ_16] = +,[LEFT_PAD_HIGH_16_64] = { .tag = JET -, .jet = maj_16 -, .cmr = {{0xf5a41da0u, 0x377fe688u, 0xac2fcdf3u, 0x5b6b7a47u, 0x2e78ea69u, 0xfd2b17f7u, 0x56342baau, 0x1f8b9fddu}} -, .sourceIx = ty_pw16w32 +, .jet = left_pad_high_16_64 +, .cmr = {{0x613b85d2u, 0xa751b3e5u, 0x1fbc59a1u, 0xdedd1fc7u, 0x93365e40u, 0x71dc1e01u, 0x4108d892u, 0x0d41d470u}} +, .sourceIx = ty_w16 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[LEFT_PAD_HIGH_1_16] = +{ .tag = JET +, .jet = left_pad_high_1_16 +, .cmr = {{0xe82b00efu, 0xd7dcc34eu, 0x96e8f3e5u, 0x1ead12d3u, 0x845f6c77u, 0x85e4438bu, 0x05457d95u, 0x326e59e3u}} +, .sourceIx = ty_b , .targetIx = ty_w16 -, .cost = 273 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MAJ_32] = +,[LEFT_PAD_HIGH_1_32] = { .tag = JET -, .jet = maj_32 -, .cmr = {{0xf1d93b04u, 0x6b0285f6u, 0xe520467fu, 0x265f6a6au, 0xe3491f16u, 0x78c8a826u, 0xa0099b9cu, 0xd41599d4u}} -, .sourceIx = ty_pw32w64 +, .jet = left_pad_high_1_32 +, .cmr = {{0x88585b8cu, 0x4592d5d0u, 0x83dff68eu, 0xb5c230d0u, 0x6c37995au, 0x6fede22cu, 0x26e661a7u, 0x516e5bf4u}} +, .sourceIx = ty_b , .targetIx = ty_w32 -, .cost = 289 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MAJ_64] = +,[LEFT_PAD_HIGH_1_64] = { .tag = JET -, .jet = maj_64 -, .cmr = {{0x5e996c51u, 0x51d7aceeu, 0x4a7d9e22u, 0x95ef8f2cu, 0x75548884u, 0x4bfde25du, 0x5acdfea2u, 0x9844435au}} -, .sourceIx = ty_pw64w128 +, .jet = left_pad_high_1_64 +, .cmr = {{0xc27e3d02u, 0x94922058u, 0x890d5c8bu, 0x676c1daeu, 0xfdde6531u, 0xe8ae6d79u, 0x37539272u, 0x3ead9c03u}} +, .sourceIx = ty_b , .targetIx = ty_w64 -, .cost = 293 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MAJ_8] = +,[LEFT_PAD_HIGH_1_8] = { .tag = JET -, .jet = maj_8 -, .cmr = {{0xab6c4c41u, 0xab67ebf7u, 0xea60870cu, 0x9b2d9310u, 0x01742961u, 0x8d2ab902u, 0x68b5c5c2u, 0xb5377f3bu}} -, .sourceIx = ty_pw8w16 +, .jet = left_pad_high_1_8 +, .cmr = {{0x143e1239u, 0x2b8f2e73u, 0x5371fed0u, 0xb4b6d623u, 0xffa4f660u, 0xe5390c00u, 0xe567cf21u, 0xa1c92078u}} +, .sourceIx = ty_b , .targetIx = ty_w8 -, .cost = 241 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MAX_16] = +,[LEFT_PAD_HIGH_32_64] = { .tag = JET -, .jet = max_16 -, .cmr = {{0xcddd8169u, 0x5522971bu, 0x529eb0bbu, 0x53818fe2u, 0x2858ac6bu, 0x037c3810u, 0xec268b53u, 0xb817a38du}} +, .jet = left_pad_high_32_64 +, .cmr = {{0xf4847c67u, 0x5667b3c6u, 0xa890fd5au, 0x6adb0927u, 0x557ee80cu, 0xd6e65af9u, 0xb1b47295u, 0x72cd8661u}} , .sourceIx = ty_w32 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[LEFT_PAD_HIGH_8_16] = +{ .tag = JET +, .jet = left_pad_high_8_16 +, .cmr = {{0x7618058au, 0x4e08eb52u, 0x43dad205u, 0xcc7e8d25u, 0x47380da0u, 0x5ec5411eu, 0xfc372baau, 0x2bb12da6u}} +, .sourceIx = ty_w8 , .targetIx = ty_w16 -, .cost = 164 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MAX_32] = +,[LEFT_PAD_HIGH_8_32] = { .tag = JET -, .jet = max_32 -, .cmr = {{0xd916f34bu, 0xd785b938u, 0x08b67c62u, 0x284f94aau, 0x5df47919u, 0x59b49b85u, 0x82b0582bu, 0x82853883u}} -, .sourceIx = ty_w64 +, .jet = left_pad_high_8_32 +, .cmr = {{0x3dfed5c0u, 0xa9b26b8fu, 0x4a8eabd6u, 0xfbed87beu, 0x450de795u, 0xf541953eu, 0xec16a6d5u, 0xaa825a56u}} +, .sourceIx = ty_w8 , .targetIx = ty_w32 -, .cost = 162 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MAX_64] = +,[LEFT_PAD_HIGH_8_64] = { .tag = JET -, .jet = max_64 -, .cmr = {{0x99ef5abfu, 0xf78700bdu, 0x93d1c977u, 0xfd686f31u, 0x210fd1ceu, 0x1d094d23u, 0x048c026cu, 0x19fc984au}} -, .sourceIx = ty_w128 +, .jet = left_pad_high_8_64 +, .cmr = {{0xce7c407eu, 0x4b561721u, 0xd66c1bb0u, 0xd17ee841u, 0xb4d504b4u, 0xc4c07200u, 0x2237140bu, 0x8909769fu}} +, .sourceIx = ty_w8 , .targetIx = ty_w64 -, .cost = 193 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MAX_8] = +,[LEFT_PAD_LOW_16_32] = { .tag = JET -, .jet = max_8 -, .cmr = {{0x3acbf773u, 0x3fd8ef4fu, 0x51967aa2u, 0x45558b28u, 0x374d54c6u, 0x32a9f46au, 0xab6b2b1eu, 0xc2d5139au}} +, .jet = left_pad_low_16_32 +, .cmr = {{0xa28c7924u, 0xa47b46ecu, 0x73bcff6eu, 0x1328d439u, 0xaa903acfu, 0x103e9aa8u, 0x0b65ba76u, 0xd2a08e75u}} , .sourceIx = ty_w16 -, .targetIx = ty_w8 -, .cost = 142 /* milli weight units */ +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ } -,[MEDIAN_16] = +,[LEFT_PAD_LOW_16_64] = { .tag = JET -, .jet = median_16 -, .cmr = {{0xd6463e89u, 0xdfe2c334u, 0xb01f9097u, 0xb01a75c4u, 0x75fb0f0fu, 0x167cb6b7u, 0x4976f197u, 0xbd4c76e1u}} -, .sourceIx = ty_pw16w32 +, .jet = left_pad_low_16_64 +, .cmr = {{0xb6258acdu, 0xa2110ed9u, 0x8c17bca8u, 0x2712e3eau, 0x60866f7du, 0x4004c83eu, 0x8ae524b7u, 0xba44008bu}} +, .sourceIx = ty_w16 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[LEFT_PAD_LOW_1_16] = +{ .tag = JET +, .jet = left_pad_low_1_16 +, .cmr = {{0x1e1f6cc4u, 0x24648375u, 0x49b97d30u, 0x7e28a9c2u, 0x3680914cu, 0xd86d65c3u, 0x04679312u, 0x7b54fe82u}} +, .sourceIx = ty_b , .targetIx = ty_w16 -, .cost = 270 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MEDIAN_32] = +,[LEFT_PAD_LOW_1_32] = { .tag = JET -, .jet = median_32 -, .cmr = {{0x01dca1edu, 0xe5b29d88u, 0x480bc4dcu, 0x43be4e04u, 0xf2d209eeu, 0x32f6cf3eu, 0xc7050da1u, 0x07359063u}} -, .sourceIx = ty_pw32w64 +, .jet = left_pad_low_1_32 +, .cmr = {{0xc338a195u, 0x5e99820du, 0x0ed31a5au, 0xfedd1358u, 0xc1744402u, 0x3e3f2b47u, 0x33d9f68cu, 0xb7b40cd9u}} +, .sourceIx = ty_b , .targetIx = ty_w32 -, .cost = 256 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MEDIAN_64] = +,[LEFT_PAD_LOW_1_64] = { .tag = JET -, .jet = median_64 -, .cmr = {{0x707a6fa8u, 0xc15495a2u, 0xc4822263u, 0xddcea5e0u, 0xf0e850a9u, 0x4b1cf4ecu, 0xc0652fafu, 0xeef130e9u}} -, .sourceIx = ty_pw64w128 +, .jet = left_pad_low_1_64 +, .cmr = {{0x689ed569u, 0xc201521eu, 0xc1954f0du, 0xc7d2128eu, 0x465a5204u, 0x99190549u, 0x858de9edu, 0x231a5d69u}} +, .sourceIx = ty_b , .targetIx = ty_w64 -, .cost = 336 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MEDIAN_8] = +,[LEFT_PAD_LOW_1_8] = { .tag = JET -, .jet = median_8 -, .cmr = {{0x26bfcb7bu, 0xabcf26c9u, 0x7a841675u, 0x45746276u, 0x59279af8u, 0x09554882u, 0x400ef874u, 0xdf1c1a31u}} -, .sourceIx = ty_pw8w16 +, .jet = left_pad_low_1_8 +, .cmr = {{0x5b519053u, 0xfd2bb758u, 0x473af8e3u, 0x910baef3u, 0x3cc801c0u, 0xb1420aafu, 0x814a7e72u, 0x54ea78f0u}} +, .sourceIx = ty_b , .targetIx = ty_w8 -, .cost = 256 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MIN_16] = +,[LEFT_PAD_LOW_32_64] = { .tag = JET -, .jet = min_16 -, .cmr = {{0x63bbc0e5u, 0xdb1ce080u, 0x97d3f5bcu, 0xc5be1d72u, 0x090bab4au, 0x87c10c80u, 0x0549ca84u, 0xefbfe5e3u}} +, .jet = left_pad_low_32_64 +, .cmr = {{0xac00a34fu, 0xb6a58e57u, 0xad223950u, 0x0e657137u, 0x5dfda0ceu, 0xa1175fe9u, 0x9d875cd8u, 0x718105e9u}} , .sourceIx = ty_w32 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[LEFT_PAD_LOW_8_16] = +{ .tag = JET +, .jet = left_pad_low_8_16 +, .cmr = {{0xb6f6334cu, 0xc660e306u, 0x9f7e1437u, 0xa1943f61u, 0x0fc5a5abu, 0x8aa5105bu, 0xfcecd3dau, 0x0c59633cu}} +, .sourceIx = ty_w8 , .targetIx = ty_w16 -, .cost = 164 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MIN_32] = +,[LEFT_PAD_LOW_8_32] = { .tag = JET -, .jet = min_32 -, .cmr = {{0xaf4d6184u, 0x2f479032u, 0x5c614556u, 0xc7776eeau, 0x457513cau, 0x422f305bu, 0x463f8f7du, 0x8bda0c3cu}} -, .sourceIx = ty_w64 +, .jet = left_pad_low_8_32 +, .cmr = {{0x8aee9f42u, 0xda9b842eu, 0x41189596u, 0x594756bau, 0xd9bab295u, 0x3deae668u, 0x56b9cb60u, 0x1d7ac548u}} +, .sourceIx = ty_w8 , .targetIx = ty_w32 -, .cost = 181 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MIN_64] = +,[LEFT_PAD_LOW_8_64] = { .tag = JET -, .jet = min_64 -, .cmr = {{0xf0a3170fu, 0xb3065090u, 0x71b21432u, 0x309c0086u, 0x5d8fb675u, 0x2de6ec41u, 0x0abb6ce3u, 0x5b4ffa9cu}} -, .sourceIx = ty_w128 +, .jet = left_pad_low_8_64 +, .cmr = {{0x611d64ceu, 0x94f882fdu, 0xa24c97adu, 0xd1905421u, 0x2f46b3b9u, 0x8ef2ae22u, 0x79364539u, 0xb93e2b8bu}} +, .sourceIx = ty_w8 , .targetIx = ty_w64 , .cost = 150 /* milli weight units */ } -,[MIN_8] = +,[LEFT_ROTATE_16] = { .tag = JET -, .jet = min_8 -, .cmr = {{0x8aa71d09u, 0x3e838ad3u, 0x6aa6fe16u, 0xfd1dde9fu, 0xb5772ac4u, 0x5d6bb8e4u, 0x2c8883a2u, 0xa9f100e2u}} -, .sourceIx = ty_w16 +, .jet = left_rotate_16 +, .cmr = {{0x25e2d4ecu, 0xc03f8765u, 0x5e965b35u, 0x7d6fd0c2u, 0xea36d112u, 0x068c9633u, 0x39de467eu, 0x5c8e7d8eu}} +, .sourceIx = ty_pw4w16 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ +} +,[LEFT_ROTATE_32] = +{ .tag = JET +, .jet = left_rotate_32 +, .cmr = {{0x2d4189b3u, 0x12e8cedau, 0xaa3853a4u, 0x5a12986eu, 0xe262fb60u, 0x5f0d592du, 0xcbb9618fu, 0xe67a250bu}} +, .sourceIx = ty_pw8w32 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ +} +,[LEFT_ROTATE_64] = +{ .tag = JET +, .jet = left_rotate_64 +, .cmr = {{0xb8e68e0au, 0xd682b967u, 0xf24c0984u, 0xf7d5f809u, 0xa28597a0u, 0x434618c8u, 0x949fa808u, 0xe3be7614u}} +, .sourceIx = ty_pw8w64 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[LEFT_ROTATE_8] = +{ .tag = JET +, .jet = left_rotate_8 +, .cmr = {{0x956a653au, 0xe0b8f8c3u, 0xf29fd8f3u, 0x3119168fu, 0xcbe64f5du, 0x765fa9ffu, 0x6b8e3b0du, 0x961a1629u}} +, .sourceIx = ty_pw4w8 , .targetIx = ty_w8 -, .cost = 135 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MODULO_16] = +,[LEFT_SHIFT_16] = { .tag = JET -, .jet = modulo_16 -, .cmr = {{0x0ea89859u, 0x79209d31u, 0x94c55912u, 0xf21a6577u, 0xda30c517u, 0xe008f851u, 0xc352085bu, 0xb067a0f1u}} -, .sourceIx = ty_w32 +, .jet = left_shift_16 +, .cmr = {{0x9bbce29eu, 0x695be2e4u, 0x830c7a93u, 0xa0d2151bu, 0x664fc272u, 0x06eed7e5u, 0x0fcef602u, 0xd345ce0du}} +, .sourceIx = ty_pw4w16 , .targetIx = ty_w16 -, .cost = 188 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MODULO_32] = +,[LEFT_SHIFT_32] = { .tag = JET -, .jet = modulo_32 -, .cmr = {{0x223fb583u, 0x2b9559cau, 0x8651726au, 0xb7956e58u, 0xe53a402du, 0xf9603486u, 0x181807a2u, 0xfcaed487u}} -, .sourceIx = ty_w64 +, .jet = left_shift_32 +, .cmr = {{0xf9c4bf07u, 0xd3e72e85u, 0xb1d455f7u, 0x34cf1b11u, 0xbea58e25u, 0x3b854a1au, 0x097bab1eu, 0xc2c62e1fu}} +, .sourceIx = ty_pw8w32 , .targetIx = ty_w32 -, .cost = 207 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MODULO_64] = +,[LEFT_SHIFT_64] = { .tag = JET -, .jet = modulo_64 -, .cmr = {{0x8259a2e3u, 0xb0789c9du, 0x31eabc49u, 0x39d31bc5u, 0x254c5665u, 0xc412052cu, 0x12d72ecdu, 0xfbed5225u}} -, .sourceIx = ty_w128 +, .jet = left_shift_64 +, .cmr = {{0x8cfa741au, 0xa41d828au, 0x41083bb7u, 0xcbdd1f4eu, 0xda5dccacu, 0x529b247du, 0x188495b4u, 0x9bb38c2bu}} +, .sourceIx = ty_pw8w64 , .targetIx = ty_w64 -, .cost = 191 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MODULO_8] = +,[LEFT_SHIFT_8] = { .tag = JET -, .jet = modulo_8 -, .cmr = {{0xf8fd7c21u, 0xc15ebc5au, 0x04b3d3bcu, 0x0ad647e2u, 0x1d89f800u, 0x8ddddffeu, 0xbb003e35u, 0x52bdb570u}} -, .sourceIx = ty_w16 +, .jet = left_shift_8 +, .cmr = {{0x95663e07u, 0x7cadca31u, 0xb9596b09u, 0x706cdb4fu, 0xa703870fu, 0x792a4635u, 0x852b5e24u, 0x69e6fdbau}} +, .sourceIx = ty_pw4w8 , .targetIx = ty_w8 -, .cost = 158 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MULTIPLY_16] = +,[LEFT_SHIFT_WITH_16] = { .tag = JET -, .jet = multiply_16 -, .cmr = {{0xd66b0ad2u, 0x1cdbe601u, 0x4f2619f4u, 0x40d935f6u, 0x42e97c59u, 0x4e3b441fu, 0x01980eeau, 0x08c48591u}} -, .sourceIx = ty_w32 +, .jet = left_shift_with_16 +, .cmr = {{0x6214c456u, 0x25d704ceu, 0xc987b796u, 0x676f1566u, 0x1a6bf5dcu, 0x0f6a51cbu, 0x865a0e71u, 0xd66fbf95u}} +, .sourceIx = ty_pbpw4w16 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ +} +,[LEFT_SHIFT_WITH_32] = +{ .tag = JET +, .jet = left_shift_with_32 +, .cmr = {{0x1b452fc7u, 0xab5c7147u, 0x454af4d5u, 0x595481ffu, 0xac42dea1u, 0x06032b3bu, 0x9f375bedu, 0xcda6f4d6u}} +, .sourceIx = ty_pbpw8w32 , .targetIx = ty_w32 -, .cost = 154 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MULTIPLY_32] = +,[LEFT_SHIFT_WITH_64] = { .tag = JET -, .jet = multiply_32 -, .cmr = {{0xc67f65afu, 0xae79108cu, 0xe5f724f4u, 0x01817aa1u, 0xb4a7608au, 0x4e18ee74u, 0x826b37f7u, 0x949c77d6u}} -, .sourceIx = ty_w64 +, .jet = left_shift_with_64 +, .cmr = {{0xc38b02abu, 0xcff514d9u, 0x6191a7feu, 0xfba1ac16u, 0xe9c150a1u, 0x8ce1c5bcu, 0xf09d6755u, 0xe0369905u}} +, .sourceIx = ty_pbpw8w64 , .targetIx = ty_w64 -, .cost = 165 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[MULTIPLY_64] = +,[LEFT_SHIFT_WITH_8] = { .tag = JET -, .jet = multiply_64 -, .cmr = {{0x16ac08feu, 0xc9d96652u, 0x7f80c39cu, 0x64a4fc10u, 0x82b150bdu, 0xbb05f7f6u, 0xc4b9a00eu, 0xbd894dbau}} -, .sourceIx = ty_w128 -, .targetIx = ty_w128 -, .cost = 185 /* milli weight units */ +, .jet = left_shift_with_8 +, .cmr = {{0x217ad6dcu, 0x1292aa42u, 0xdbd84dbdu, 0x971c118fu, 0x02a9740au, 0x7cb5661eu, 0x90d42dd5u, 0xca8ca4d9u}} +, .sourceIx = ty_pbpw4w8 +, .targetIx = ty_w8 +, .cost = 150 /* milli weight units */ } -,[MULTIPLY_8] = +,[LEFTMOST_16_1] = { .tag = JET -, .jet = multiply_8 -, .cmr = {{0xcec3d5c3u, 0x2dee352eu, 0x754f141cu, 0x02ef2b60u, 0xf86e27d2u, 0xcbe27326u, 0x060dec9eu, 0x7bcc206bu}} +, .jet = leftmost_16_1 +, .cmr = {{0x3ea89e43u, 0x2077940du, 0x0bbf9ed2u, 0xcf16ba63u, 0x1110e7abu, 0x9f19eef3u, 0xea925a69u, 0x9f60c60cu}} , .sourceIx = ty_w16 -, .targetIx = ty_w16 -, .cost = 126 /* milli weight units */ +, .targetIx = ty_b +, .cost = 150 /* milli weight units */ } -,[NEGATE_16] = +,[LEFTMOST_16_2] = { .tag = JET -, .jet = negate_16 -, .cmr = {{0x81f3ef08u, 0x2b199d2eu, 0x474535fbu, 0x84282f21u, 0x111c1a04u, 0x97a91695u, 0xe72c4d51u, 0xaf1cb057u}} +, .jet = leftmost_16_2 +, .cmr = {{0x5ce2bd7au, 0xc35a7c33u, 0x73c3dd60u, 0x7f48e5d4u, 0xc7aaa6c6u, 0x9fc4930eu, 0xca14049fu, 0x5d39ffabu}} , .sourceIx = ty_w16 -, .targetIx = ty_pbw16 -, .cost = 121 /* milli weight units */ +, .targetIx = ty_w2 +, .cost = 150 /* milli weight units */ } -,[NEGATE_32] = +,[LEFTMOST_16_4] = { .tag = JET -, .jet = negate_32 -, .cmr = {{0xba173bdeu, 0xf24e637fu, 0x4a5a0c6fu, 0xed4bbc22u, 0xc7d08bccu, 0x20fdca61u, 0x70363d25u, 0x26955836u}} +, .jet = leftmost_16_4 +, .cmr = {{0x1012a139u, 0x3ed0f91du, 0x75ad5912u, 0x2853893au, 0x7f25cd35u, 0xc8036c7fu, 0xa195682cu, 0xa1458c4au}} +, .sourceIx = ty_w16 +, .targetIx = ty_w4 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_16_8] = +{ .tag = JET +, .jet = leftmost_16_8 +, .cmr = {{0xccd31e9eu, 0xb1a1bbdeu, 0x555c0f73u, 0x1af2d3d4u, 0xff5388fau, 0x1461826au, 0xa9c89342u, 0x42ac753fu}} +, .sourceIx = ty_w16 +, .targetIx = ty_w8 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_32_1] = +{ .tag = JET +, .jet = leftmost_32_1 +, .cmr = {{0xb714ad74u, 0xae045af7u, 0x5680778au, 0x032761a4u, 0xc726d7b6u, 0xd977bc93u, 0xa4125654u, 0x3cae8d3du}} , .sourceIx = ty_w32 -, .targetIx = ty_pbw32 -, .cost = 185 /* milli weight units */ +, .targetIx = ty_b +, .cost = 150 /* milli weight units */ } -,[NEGATE_64] = +,[LEFTMOST_32_16] = { .tag = JET -, .jet = negate_64 -, .cmr = {{0xe713272du, 0x6d9a6d69u, 0x6c46889du, 0xfb270475u, 0xe9238d17u, 0x72abf916u, 0x5b093c79u, 0x98ee8070u}} +, .jet = leftmost_32_16 +, .cmr = {{0x1b20634fu, 0xb43eb83au, 0x968c3c81u, 0xc0087c63u, 0xd5d4f8cau, 0xcdbd3e0eu, 0x9f9a3d75u, 0x91c3ef62u}} +, .sourceIx = ty_w32 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_32_2] = +{ .tag = JET +, .jet = leftmost_32_2 +, .cmr = {{0x752dda08u, 0xe40faea0u, 0xf6c4ee3du, 0x344b7c4eu, 0xa11b971du, 0xcec55592u, 0xb822ee56u, 0x271ca5dfu}} +, .sourceIx = ty_w32 +, .targetIx = ty_w2 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_32_4] = +{ .tag = JET +, .jet = leftmost_32_4 +, .cmr = {{0x44e9f779u, 0xa029ecfcu, 0x9762b8b6u, 0xcbaf0922u, 0xd935fea5u, 0x150a546au, 0x5fc1fdb8u, 0xb9534134u}} +, .sourceIx = ty_w32 +, .targetIx = ty_w4 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_32_8] = +{ .tag = JET +, .jet = leftmost_32_8 +, .cmr = {{0x54801eb5u, 0xe778cf6cu, 0xda95ccf5u, 0x70286d81u, 0x6d3a1ff1u, 0xdd39db5au, 0xb6136f0eu, 0xc3b72dc6u}} +, .sourceIx = ty_w32 +, .targetIx = ty_w8 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_64_1] = +{ .tag = JET +, .jet = leftmost_64_1 +, .cmr = {{0xb316af24u, 0xc86b3961u, 0x3d4fd1b3u, 0x926a8413u, 0x0eb7ab12u, 0xfdef6233u, 0x17ab48f7u, 0x7cb62145u}} , .sourceIx = ty_w64 -, .targetIx = ty_pbw64 -, .cost = 162 /* milli weight units */ +, .targetIx = ty_b +, .cost = 150 /* milli weight units */ } -,[NEGATE_8] = +,[LEFTMOST_64_16] = { .tag = JET -, .jet = negate_8 -, .cmr = {{0x8be87139u, 0x3e18c063u, 0x69161fb1u, 0xc0ad2b92u, 0x0622974eu, 0x3fdfca90u, 0x567e6da4u, 0x29fd9842u}} +, .jet = leftmost_64_16 +, .cmr = {{0x8cf85481u, 0xe0f00838u, 0xb5239bbfu, 0xad1382f0u, 0x7bd03c12u, 0x1d5d8aafu, 0xa6d98341u, 0x6de45c32u}} +, .sourceIx = ty_w64 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_64_2] = +{ .tag = JET +, .jet = leftmost_64_2 +, .cmr = {{0xda40c89bu, 0x15c9e86bu, 0x028ce9ecu, 0x07b7f699u, 0x5a5ddda4u, 0x850a91afu, 0x8c60e02bu, 0xf991fb0cu}} +, .sourceIx = ty_w64 +, .targetIx = ty_w2 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_64_32] = +{ .tag = JET +, .jet = leftmost_64_32 +, .cmr = {{0x95f46db9u, 0xd906f050u, 0x53455e95u, 0x34eb9b08u, 0xb09e38bcu, 0x0fc698a1u, 0x6f4b2a62u, 0x710759d1u}} +, .sourceIx = ty_w64 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_64_4] = +{ .tag = JET +, .jet = leftmost_64_4 +, .cmr = {{0xf501f905u, 0xfb8baba1u, 0xa7e8a6bfu, 0x68d3ae6au, 0x0add9195u, 0x1b56629du, 0x59f42873u, 0x9e7e41a2u}} +, .sourceIx = ty_w64 +, .targetIx = ty_w4 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_64_8] = +{ .tag = JET +, .jet = leftmost_64_8 +, .cmr = {{0xb37f0ba2u, 0xfcbd4ae3u, 0x316a4fe4u, 0xf58aa1a5u, 0x41740cdeu, 0x60ed87f3u, 0x3862a2ffu, 0xecad442fu}} +, .sourceIx = ty_w64 +, .targetIx = ty_w8 +, .cost = 150 /* milli weight units */ +} +,[LEFTMOST_8_1] = +{ .tag = JET +, .jet = leftmost_8_1 +, .cmr = {{0x5fdcfa9bu, 0x9a4b65c7u, 0x207471e5u, 0x33928d6au, 0x24f4b6ffu, 0x9b345ef7u, 0x61b1480au, 0x8a05e3d7u}} , .sourceIx = ty_w8 -, .targetIx = ty_pbw8 -, .cost = 152 /* milli weight units */ +, .targetIx = ty_b +, .cost = 150 /* milli weight units */ } -,[NEW_ISSUANCE_CONTRACT] = +,[LEFTMOST_8_2] = { .tag = JET -, .jet = new_issuance_contract -, .cmr = {{0x59e2a74cu, 0x997a07aau, 0xfd5c280eu, 0x4649e7afu, 0x2b3cc4dcu, 0x9b72a81cu, 0x722548ffu, 0x8c1313bfu}} -, .sourceIx = ty_w32 -, .targetIx = ty_mmw256 -, .cost = 214 /* milli weight units */ +, .jet = leftmost_8_2 +, .cmr = {{0x624221e9u, 0xf8a91691u, 0x26c73347u, 0x9648c73bu, 0x68c6b8ebu, 0xbb60c72au, 0xf1e6fc65u, 0xe7d30723u}} +, .sourceIx = ty_w8 +, .targetIx = ty_w2 +, .cost = 150 /* milli weight units */ } -,[NONCE_HASH] = +,[LEFTMOST_8_4] = { .tag = JET -, .jet = nonce_hash -, .cmr = {{0xca4a66d7u, 0xf8e982a9u, 0xee042504u, 0x0d2b0d1du, 0x3dc6207fu, 0x93856458u, 0xe24e7a26u, 0xe95c56f8u}} +, .jet = leftmost_8_4 +, .cmr = {{0x1a4843c4u, 0x08e1d46cu, 0x9c938946u, 0x34495f8au, 0xd6a680e3u, 0x2dd6f25bu, 0xa19dbc60u, 0xa60d1897u}} +, .sourceIx = ty_w8 +, .targetIx = ty_w4 +, .cost = 150 /* milli weight units */ +} +,[LINEAR_COMBINATION_1] = +{ .tag = JET +, .jet = linear_combination_1 +, .cmr = {{0xd88320f4u, 0x71f3beeeu, 0xa1313d55u, 0x1e419be0u, 0x5727ae5fu, 0x4de6a2f2u, 0xf26f3cb5u, 0xe8dddd3fu}} +, .sourceIx = ty_ppw256pw512w256w256 +, .targetIx = ty_pw512w256 +, .cost = 86722 /* milli weight units */ +} +,[LINEAR_VERIFY_1] = +{ .tag = JET +, .jet = linear_verify_1 +, .cmr = {{0x0c9fae64u, 0xa64cd63cu, 0xa85beba7u, 0x5c9f2c6eu, 0x85343b74u, 0xf28634eau, 0x85f70fc3u, 0x41ccaff3u}} +, .sourceIx = ty_pppw256w512w256w512 +, .targetIx = ty_u +, .cost = 43063 /* milli weight units */ +} +,[LOCK_TIME] = +{ .tag = JET +, .jet = lock_time +, .cmr = {{0xee87a025u, 0xd7338a3cu, 0x8f251be4u, 0x19efb7eeu, 0x7177cb73u, 0x8f42e8c0u, 0x03fc4658u, 0xcc0e5b8bu}} +, .sourceIx = ty_u +, .targetIx = ty_w32 +, .cost = 132 /* milli weight units */ +} +,[LOW_1] = +{ .tag = JET +, .jet = low_1 +, .cmr = {{0xdb4a424au, 0x20aeefa4u, 0xe742d51du, 0x84929218u, 0xcbf73472u, 0x6176dc4fu, 0xf9f8bf13u, 0xde10ca2bu}} +, .sourceIx = ty_u +, .targetIx = ty_b +, .cost = 173 /* milli weight units */ +} +,[LOW_16] = +{ .tag = JET +, .jet = low_16 +, .cmr = {{0xa114e958u, 0x0de07d8bu, 0x077eb889u, 0x98755a0au, 0x62bfe085u, 0xfb23404cu, 0xd1e87868u, 0xcd56d5bdu}} +, .sourceIx = ty_u +, .targetIx = ty_w16 +, .cost = 172 /* milli weight units */ +} +,[LOW_32] = +{ .tag = JET +, .jet = low_32 +, .cmr = {{0xa717610eu, 0x8c577125u, 0x5140d620u, 0x7fff3bddu, 0x3464acffu, 0x5998e129u, 0xaf8b9f4cu, 0x0e21b23du}} +, .sourceIx = ty_u +, .targetIx = ty_w32 +, .cost = 170 /* milli weight units */ +} +,[LOW_64] = +{ .tag = JET +, .jet = low_64 +, .cmr = {{0x9a6f4a0au, 0xd2fb72c5u, 0x79424c72u, 0xe17daae6u, 0x2b366695u, 0xcd1a2685u, 0xfb0ab02eu, 0x4c2cc0f5u}} +, .sourceIx = ty_u +, .targetIx = ty_w64 +, .cost = 162 /* milli weight units */ +} +,[LOW_8] = +{ .tag = JET +, .jet = low_8 +, .cmr = {{0x69c9b9cau, 0xb9f44cffu, 0xaedf1c84u, 0x3146bcc0u, 0xb03b0f0cu, 0x134866afu, 0xd23a614fu, 0x01a70a24u}} +, .sourceIx = ty_u +, .targetIx = ty_w8 +, .cost = 173 /* milli weight units */ +} +,[LT_16] = +{ .tag = JET +, .jet = lt_16 +, .cmr = {{0x4f465a49u, 0xa963acceu, 0x93f6b6f8u, 0x23eb9472u, 0xb4cc21f6u, 0xe58b7657u, 0x0508babdu, 0xf44a8c97u}} +, .sourceIx = ty_w32 +, .targetIx = ty_b +, .cost = 188 /* milli weight units */ +} +,[LT_32] = +{ .tag = JET +, .jet = lt_32 +, .cmr = {{0xd3421dfcu, 0x84671cd7u, 0x445082a9u, 0x86df1628u, 0xedcacbf4u, 0x29a3c809u, 0xd2365497u, 0xe1170bfdu}} +, .sourceIx = ty_w64 +, .targetIx = ty_b +, .cost = 215 /* milli weight units */ +} +,[LT_64] = +{ .tag = JET +, .jet = lt_64 +, .cmr = {{0x7c67aa89u, 0x93fcda59u, 0x30f79db2u, 0x008aa6d7u, 0xbe5f3bedu, 0x5aca5e03u, 0x2dcccf0bu, 0xe84f62d1u}} +, .sourceIx = ty_w128 +, .targetIx = ty_b +, .cost = 195 /* milli weight units */ +} +,[LT_8] = +{ .tag = JET +, .jet = lt_8 +, .cmr = {{0x98763f78u, 0x21690954u, 0xcf508102u, 0x09df6e15u, 0x570316bbu, 0xa89ffa9au, 0xe556a915u, 0xf37b640bu}} +, .sourceIx = ty_w16 +, .targetIx = ty_b +, .cost = 130 /* milli weight units */ +} +,[MAJ_1] = +{ .tag = JET +, .jet = maj_1 +, .cmr = {{0xae8b912eu, 0x3ad47f68u, 0x8bbb46c8u, 0xcb6d5333u, 0x69f5109au, 0x2730471eu, 0xab6efe98u, 0xe9ea5e78u}} +, .sourceIx = ty_pbw2 +, .targetIx = ty_b +, .cost = 241 /* milli weight units */ +} +,[MAJ_16] = +{ .tag = JET +, .jet = maj_16 +, .cmr = {{0xf5a41da0u, 0x377fe688u, 0xac2fcdf3u, 0x5b6b7a47u, 0x2e78ea69u, 0xfd2b17f7u, 0x56342baau, 0x1f8b9fddu}} +, .sourceIx = ty_pw16w32 +, .targetIx = ty_w16 +, .cost = 273 /* milli weight units */ +} +,[MAJ_32] = +{ .tag = JET +, .jet = maj_32 +, .cmr = {{0xf1d93b04u, 0x6b0285f6u, 0xe520467fu, 0x265f6a6au, 0xe3491f16u, 0x78c8a826u, 0xa0099b9cu, 0xd41599d4u}} +, .sourceIx = ty_pw32w64 +, .targetIx = ty_w32 +, .cost = 289 /* milli weight units */ +} +,[MAJ_64] = +{ .tag = JET +, .jet = maj_64 +, .cmr = {{0x5e996c51u, 0x51d7aceeu, 0x4a7d9e22u, 0x95ef8f2cu, 0x75548884u, 0x4bfde25du, 0x5acdfea2u, 0x9844435au}} +, .sourceIx = ty_pw64w128 +, .targetIx = ty_w64 +, .cost = 293 /* milli weight units */ +} +,[MAJ_8] = +{ .tag = JET +, .jet = maj_8 +, .cmr = {{0xab6c4c41u, 0xab67ebf7u, 0xea60870cu, 0x9b2d9310u, 0x01742961u, 0x8d2ab902u, 0x68b5c5c2u, 0xb5377f3bu}} +, .sourceIx = ty_pw8w16 +, .targetIx = ty_w8 +, .cost = 241 /* milli weight units */ +} +,[MAX_16] = +{ .tag = JET +, .jet = max_16 +, .cmr = {{0xcddd8169u, 0x5522971bu, 0x529eb0bbu, 0x53818fe2u, 0x2858ac6bu, 0x037c3810u, 0xec268b53u, 0xb817a38du}} +, .sourceIx = ty_w32 +, .targetIx = ty_w16 +, .cost = 164 /* milli weight units */ +} +,[MAX_32] = +{ .tag = JET +, .jet = max_32 +, .cmr = {{0xd916f34bu, 0xd785b938u, 0x08b67c62u, 0x284f94aau, 0x5df47919u, 0x59b49b85u, 0x82b0582bu, 0x82853883u}} +, .sourceIx = ty_w64 +, .targetIx = ty_w32 +, .cost = 162 /* milli weight units */ +} +,[MAX_64] = +{ .tag = JET +, .jet = max_64 +, .cmr = {{0x99ef5abfu, 0xf78700bdu, 0x93d1c977u, 0xfd686f31u, 0x210fd1ceu, 0x1d094d23u, 0x048c026cu, 0x19fc984au}} +, .sourceIx = ty_w128 +, .targetIx = ty_w64 +, .cost = 193 /* milli weight units */ +} +,[MAX_8] = +{ .tag = JET +, .jet = max_8 +, .cmr = {{0x3acbf773u, 0x3fd8ef4fu, 0x51967aa2u, 0x45558b28u, 0x374d54c6u, 0x32a9f46au, 0xab6b2b1eu, 0xc2d5139au}} +, .sourceIx = ty_w16 +, .targetIx = ty_w8 +, .cost = 142 /* milli weight units */ +} +,[MEDIAN_16] = +{ .tag = JET +, .jet = median_16 +, .cmr = {{0xd6463e89u, 0xdfe2c334u, 0xb01f9097u, 0xb01a75c4u, 0x75fb0f0fu, 0x167cb6b7u, 0x4976f197u, 0xbd4c76e1u}} +, .sourceIx = ty_pw16w32 +, .targetIx = ty_w16 +, .cost = 270 /* milli weight units */ +} +,[MEDIAN_32] = +{ .tag = JET +, .jet = median_32 +, .cmr = {{0x01dca1edu, 0xe5b29d88u, 0x480bc4dcu, 0x43be4e04u, 0xf2d209eeu, 0x32f6cf3eu, 0xc7050da1u, 0x07359063u}} +, .sourceIx = ty_pw32w64 +, .targetIx = ty_w32 +, .cost = 256 /* milli weight units */ +} +,[MEDIAN_64] = +{ .tag = JET +, .jet = median_64 +, .cmr = {{0x707a6fa8u, 0xc15495a2u, 0xc4822263u, 0xddcea5e0u, 0xf0e850a9u, 0x4b1cf4ecu, 0xc0652fafu, 0xeef130e9u}} +, .sourceIx = ty_pw64w128 +, .targetIx = ty_w64 +, .cost = 336 /* milli weight units */ +} +,[MEDIAN_8] = +{ .tag = JET +, .jet = median_8 +, .cmr = {{0x26bfcb7bu, 0xabcf26c9u, 0x7a841675u, 0x45746276u, 0x59279af8u, 0x09554882u, 0x400ef874u, 0xdf1c1a31u}} +, .sourceIx = ty_pw8w16 +, .targetIx = ty_w8 +, .cost = 256 /* milli weight units */ +} +,[MIN_16] = +{ .tag = JET +, .jet = min_16 +, .cmr = {{0x63bbc0e5u, 0xdb1ce080u, 0x97d3f5bcu, 0xc5be1d72u, 0x090bab4au, 0x87c10c80u, 0x0549ca84u, 0xefbfe5e3u}} +, .sourceIx = ty_w32 +, .targetIx = ty_w16 +, .cost = 164 /* milli weight units */ +} +,[MIN_32] = +{ .tag = JET +, .jet = min_32 +, .cmr = {{0xaf4d6184u, 0x2f479032u, 0x5c614556u, 0xc7776eeau, 0x457513cau, 0x422f305bu, 0x463f8f7du, 0x8bda0c3cu}} +, .sourceIx = ty_w64 +, .targetIx = ty_w32 +, .cost = 181 /* milli weight units */ +} +,[MIN_64] = +{ .tag = JET +, .jet = min_64 +, .cmr = {{0xf0a3170fu, 0xb3065090u, 0x71b21432u, 0x309c0086u, 0x5d8fb675u, 0x2de6ec41u, 0x0abb6ce3u, 0x5b4ffa9cu}} +, .sourceIx = ty_w128 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[MIN_8] = +{ .tag = JET +, .jet = min_8 +, .cmr = {{0x8aa71d09u, 0x3e838ad3u, 0x6aa6fe16u, 0xfd1dde9fu, 0xb5772ac4u, 0x5d6bb8e4u, 0x2c8883a2u, 0xa9f100e2u}} +, .sourceIx = ty_w16 +, .targetIx = ty_w8 +, .cost = 135 /* milli weight units */ +} +,[MODULO_16] = +{ .tag = JET +, .jet = modulo_16 +, .cmr = {{0x0ea89859u, 0x79209d31u, 0x94c55912u, 0xf21a6577u, 0xda30c517u, 0xe008f851u, 0xc352085bu, 0xb067a0f1u}} +, .sourceIx = ty_w32 +, .targetIx = ty_w16 +, .cost = 188 /* milli weight units */ +} +,[MODULO_32] = +{ .tag = JET +, .jet = modulo_32 +, .cmr = {{0x223fb583u, 0x2b9559cau, 0x8651726au, 0xb7956e58u, 0xe53a402du, 0xf9603486u, 0x181807a2u, 0xfcaed487u}} +, .sourceIx = ty_w64 +, .targetIx = ty_w32 +, .cost = 207 /* milli weight units */ +} +,[MODULO_64] = +{ .tag = JET +, .jet = modulo_64 +, .cmr = {{0x8259a2e3u, 0xb0789c9du, 0x31eabc49u, 0x39d31bc5u, 0x254c5665u, 0xc412052cu, 0x12d72ecdu, 0xfbed5225u}} +, .sourceIx = ty_w128 +, .targetIx = ty_w64 +, .cost = 191 /* milli weight units */ +} +,[MODULO_8] = +{ .tag = JET +, .jet = modulo_8 +, .cmr = {{0xf8fd7c21u, 0xc15ebc5au, 0x04b3d3bcu, 0x0ad647e2u, 0x1d89f800u, 0x8ddddffeu, 0xbb003e35u, 0x52bdb570u}} +, .sourceIx = ty_w16 +, .targetIx = ty_w8 +, .cost = 158 /* milli weight units */ +} +,[MULTIPLY_16] = +{ .tag = JET +, .jet = multiply_16 +, .cmr = {{0xd66b0ad2u, 0x1cdbe601u, 0x4f2619f4u, 0x40d935f6u, 0x42e97c59u, 0x4e3b441fu, 0x01980eeau, 0x08c48591u}} +, .sourceIx = ty_w32 +, .targetIx = ty_w32 +, .cost = 154 /* milli weight units */ +} +,[MULTIPLY_32] = +{ .tag = JET +, .jet = multiply_32 +, .cmr = {{0xc67f65afu, 0xae79108cu, 0xe5f724f4u, 0x01817aa1u, 0xb4a7608au, 0x4e18ee74u, 0x826b37f7u, 0x949c77d6u}} +, .sourceIx = ty_w64 +, .targetIx = ty_w64 +, .cost = 165 /* milli weight units */ +} +,[MULTIPLY_64] = +{ .tag = JET +, .jet = multiply_64 +, .cmr = {{0x16ac08feu, 0xc9d96652u, 0x7f80c39cu, 0x64a4fc10u, 0x82b150bdu, 0xbb05f7f6u, 0xc4b9a00eu, 0xbd894dbau}} +, .sourceIx = ty_w128 +, .targetIx = ty_w128 +, .cost = 185 /* milli weight units */ +} +,[MULTIPLY_8] = +{ .tag = JET +, .jet = multiply_8 +, .cmr = {{0xcec3d5c3u, 0x2dee352eu, 0x754f141cu, 0x02ef2b60u, 0xf86e27d2u, 0xcbe27326u, 0x060dec9eu, 0x7bcc206bu}} +, .sourceIx = ty_w16 +, .targetIx = ty_w16 +, .cost = 126 /* milli weight units */ +} +,[NEGATE_16] = +{ .tag = JET +, .jet = negate_16 +, .cmr = {{0x81f3ef08u, 0x2b199d2eu, 0x474535fbu, 0x84282f21u, 0x111c1a04u, 0x97a91695u, 0xe72c4d51u, 0xaf1cb057u}} +, .sourceIx = ty_w16 +, .targetIx = ty_pbw16 +, .cost = 121 /* milli weight units */ +} +,[NEGATE_32] = +{ .tag = JET +, .jet = negate_32 +, .cmr = {{0xba173bdeu, 0xf24e637fu, 0x4a5a0c6fu, 0xed4bbc22u, 0xc7d08bccu, 0x20fdca61u, 0x70363d25u, 0x26955836u}} +, .sourceIx = ty_w32 +, .targetIx = ty_pbw32 +, .cost = 185 /* milli weight units */ +} +,[NEGATE_64] = +{ .tag = JET +, .jet = negate_64 +, .cmr = {{0xe713272du, 0x6d9a6d69u, 0x6c46889du, 0xfb270475u, 0xe9238d17u, 0x72abf916u, 0x5b093c79u, 0x98ee8070u}} +, .sourceIx = ty_w64 +, .targetIx = ty_pbw64 +, .cost = 162 /* milli weight units */ +} +,[NEGATE_8] = +{ .tag = JET +, .jet = negate_8 +, .cmr = {{0x8be87139u, 0x3e18c063u, 0x69161fb1u, 0xc0ad2b92u, 0x0622974eu, 0x3fdfca90u, 0x567e6da4u, 0x29fd9842u}} +, .sourceIx = ty_w8 +, .targetIx = ty_pbw8 +, .cost = 152 /* milli weight units */ +} +,[NEW_ISSUANCE_CONTRACT] = +{ .tag = JET +, .jet = new_issuance_contract +, .cmr = {{0x59e2a74cu, 0x997a07aau, 0xfd5c280eu, 0x4649e7afu, 0x2b3cc4dcu, 0x9b72a81cu, 0x722548ffu, 0x8c1313bfu}} +, .sourceIx = ty_w32 +, .targetIx = ty_mmw256 +, .cost = 214 /* milli weight units */ +} +,[NONCE_HASH] = +{ .tag = JET +, .jet = nonce_hash +, .cmr = {{0xca4a66d7u, 0xf8e982a9u, 0xee042504u, 0x0d2b0d1du, 0x3dc6207fu, 0x93856458u, 0xe24e7a26u, 0xe95c56f8u}} , .sourceIx = ty_pppmw256pmw128pmw64pmw32pmw16mw8pw64w256mspbw256w256 , .targetIx = ty_ppmw256pmw128pmw64pmw32pmw16mw8pw64w256 , .cost = 2727 /* milli weight units */ } -,[NUM_INPUTS] = +,[NUM_INPUTS] = +{ .tag = JET +, .jet = num_inputs +, .cmr = {{0xd7b46628u, 0x7ef4e59cu, 0x02be3389u, 0xeafb4347u, 0xb7d1a2a1u, 0x5c144918u, 0xb7ad3443u, 0xb14fae03u}} +, .sourceIx = ty_u +, .targetIx = ty_w32 +, .cost = 139 /* milli weight units */ +} +,[NUM_OUTPUTS] = +{ .tag = JET +, .jet = num_outputs +, .cmr = {{0x67df4debu, 0x3ff0c26au, 0xe3123047u, 0xcc734ae3u, 0xb61ffcefu, 0x511fcf42u, 0x813c3f48u, 0x1920ee48u}} +, .sourceIx = ty_u +, .targetIx = ty_w32 +, .cost = 134 /* milli weight units */ +} +,[ONE_16] = +{ .tag = JET +, .jet = one_16 +, .cmr = {{0x7629792bu, 0xa1a44114u, 0xe59e64b5u, 0x1d187af6u, 0xd965d966u, 0x20dca262u, 0x7507b7d3u, 0x88d9353cu}} +, .sourceIx = ty_u +, .targetIx = ty_w16 +, .cost = 126 /* milli weight units */ +} +,[ONE_32] = +{ .tag = JET +, .jet = one_32 +, .cmr = {{0x0ba004ceu, 0xa250fe95u, 0x3ac74e6eu, 0xcd3620e8u, 0x02841fdau, 0x795208deu, 0xc66d626eu, 0x06aa29b2u}} +, .sourceIx = ty_u +, .targetIx = ty_w32 +, .cost = 122 /* milli weight units */ +} +,[ONE_64] = +{ .tag = JET +, .jet = one_64 +, .cmr = {{0xba3478c1u, 0x08740a83u, 0xf0ca0eaeu, 0x86c31b4au, 0xfac830dfu, 0x093467ccu, 0x08ea1c04u, 0x15efef6du}} +, .sourceIx = ty_u +, .targetIx = ty_w64 +, .cost = 123 /* milli weight units */ +} +,[ONE_8] = +{ .tag = JET +, .jet = one_8 +, .cmr = {{0x15ca77a4u, 0xb7022568u, 0x37f90ff7u, 0x8ca7740au, 0x40fece71u, 0x91301d00u, 0xe517d8d3u, 0x4f46c250u}} +, .sourceIx = ty_u +, .targetIx = ty_w8 +, .cost = 127 /* milli weight units */ +} +,[OR_1] = +{ .tag = JET +, .jet = or_1 +, .cmr = {{0x93522230u, 0x1700987du, 0xe12cb426u, 0x17218153u, 0xfd7ccd63u, 0x174a1749u, 0xfc880c39u, 0xe3e7239cu}} +, .sourceIx = ty_w2 +, .targetIx = ty_b +, .cost = 147 /* milli weight units */ +} +,[OR_16] = +{ .tag = JET +, .jet = or_16 +, .cmr = {{0xdfead0bau, 0x93e49155u, 0xc40cb372u, 0xca5ef617u, 0x9741c61fu, 0x2b3cc279u, 0x7ef162c8u, 0xd2fc1f9au}} +, .sourceIx = ty_w32 +, .targetIx = ty_w16 +, .cost = 204 /* milli weight units */ +} +,[OR_32] = +{ .tag = JET +, .jet = or_32 +, .cmr = {{0x67ac6945u, 0xcdc006d2u, 0x5e5bbe6cu, 0x4fe81ca1u, 0x6741ffabu, 0x3d23960eu, 0xeb49850fu, 0x92732cbbu}} +, .sourceIx = ty_w64 +, .targetIx = ty_w32 +, .cost = 197 /* milli weight units */ +} +,[OR_64] = +{ .tag = JET +, .jet = or_64 +, .cmr = {{0x1eb952e4u, 0x6116e271u, 0xdc489e67u, 0x22a90185u, 0xebf5fb77u, 0x5b778160u, 0x6dbf5e89u, 0xccd7c250u}} +, .sourceIx = ty_w128 +, .targetIx = ty_w64 +, .cost = 214 /* milli weight units */ +} +,[OR_8] = +{ .tag = JET +, .jet = or_8 +, .cmr = {{0x378f7abeu, 0x8b081fafu, 0x5b3a2578u, 0xef1979feu, 0x80bccb07u, 0x91156a49u, 0x3f8a3f6eu, 0x0bb2fc84u}} +, .sourceIx = ty_w16 +, .targetIx = ty_w8 +, .cost = 147 /* milli weight units */ +} +,[OUTPOINT_HASH] = +{ .tag = JET +, .jet = outpoint_hash +, .cmr = {{0xe31d339du, 0x86e6d76bu, 0xadc3d6d6u, 0xcf1be706u, 0x53e03442u, 0x73449cecu, 0xf521d366u, 0x2bd8fc2bu}} +, .sourceIx = ty_pppmw256pmw128pmw64pmw32pmw16mw8pw64w256pmw256pw256w32 +, .targetIx = ty_ppmw256pmw128pmw64pmw32pmw16mw8pw64w256 +, .cost = 5256 /* milli weight units */ +} +,[OUTPUT_AMOUNT] = +{ .tag = JET +, .jet = output_amount +, .cmr = {{0x52db68c6u, 0xc7be32bfu, 0xaa426970u, 0xeb4197ceu, 0x1ce3f453u, 0x0e1a2cffu, 0x8e17db47u, 0x229207b3u}} +, .sourceIx = ty_w32 +, .targetIx = ty_mpspbw256w256spbw256w64 +, .cost = 709 /* milli weight units */ +} +,[OUTPUT_AMOUNTS_HASH] = +{ .tag = JET +, .jet = output_amounts_hash +, .cmr = {{0xbccbee78u, 0x1ee297fau, 0xbfbe38c0u, 0x079ad374u, 0x258c0b1eu, 0xbe223457u, 0x099a284au, 0x1b4338a2u}} +, .sourceIx = ty_u +, .targetIx = ty_w256 +, .cost = 404 /* milli weight units */ +} +,[OUTPUT_ASSET] = +{ .tag = JET +, .jet = output_asset +, .cmr = {{0xca89b5c4u, 0x5a9a247du, 0x39086cdfu, 0xbe2ba1dfu, 0x025e37dbu, 0x9b6a2abbu, 0x74d97066u, 0xa69bf3a0u}} +, .sourceIx = ty_w32 +, .targetIx = ty_mspbw256w256 +, .cost = 621 /* milli weight units */ +} +,[OUTPUT_IS_FEE] = +{ .tag = JET +, .jet = output_is_fee +, .cmr = {{0xf70eb068u, 0xd200b7bcu, 0x5aaaaba1u, 0x2928e819u, 0x2b2948cdu, 0xe7e8f314u, 0x1c6b4311u, 0x38e5de3cu}} +, .sourceIx = ty_w32 +, .targetIx = ty_mb +, .cost = 270 /* milli weight units */ +} +,[OUTPUT_NONCE] = +{ .tag = JET +, .jet = output_nonce +, .cmr = {{0xedab1241u, 0xd297f274u, 0x7ad378a8u, 0x1a56143du, 0x741bc4eeu, 0x4c30b32fu, 0x8bc1aeb5u, 0x2cc4814cu}} +, .sourceIx = ty_w32 +, .targetIx = ty_mmspbw256w256 +, .cost = 396 /* milli weight units */ +} +,[OUTPUT_NONCES_HASH] = +{ .tag = JET +, .jet = output_nonces_hash +, .cmr = {{0xf07fe7e9u, 0x7396865du, 0x50c1ac94u, 0x77ad9f95u, 0x062f11edu, 0x01c97de7u, 0xfa4affa0u, 0x8cd10531u}} +, .sourceIx = ty_u +, .targetIx = ty_w256 +, .cost = 387 /* milli weight units */ +} +,[OUTPUT_NULL_DATUM] = +{ .tag = JET +, .jet = output_null_datum +, .cmr = {{0x964c4deeu, 0x8fe4a866u, 0xcc3ea494u, 0x7884814cu, 0xccd60269u, 0x2e378ba0u, 0xe935fa03u, 0xf95e3de1u}} +, .sourceIx = ty_w64 +, .targetIx = ty_mmspw2w256sbw4 +, .cost = 249 /* milli weight units */ +} +,[OUTPUT_RANGE_PROOF] = +{ .tag = JET +, .jet = output_range_proof +, .cmr = {{0xa00418e4u, 0xabc4bed5u, 0x373fc222u, 0xce1f960bu, 0x6435eaa8u, 0xf14fe66cu, 0xa42c52ddu, 0x9ae226b8u}} +, .sourceIx = ty_w32 +, .targetIx = ty_mw256 +, .cost = 452 /* milli weight units */ +} +,[OUTPUT_RANGE_PROOFS_HASH] = +{ .tag = JET +, .jet = output_range_proofs_hash +, .cmr = {{0xebe626e2u, 0x854e7000u, 0x75eadeeeu, 0xad5fe0bdu, 0xd69c1b0fu, 0xadf108d3u, 0x68c1293fu, 0x86585fb1u}} +, .sourceIx = ty_u +, .targetIx = ty_w256 +, .cost = 397 /* milli weight units */ +} +,[OUTPUT_SCRIPT_HASH] = +{ .tag = JET +, .jet = output_script_hash +, .cmr = {{0xecf673e5u, 0xfcaf7b7eu, 0x6e37b628u, 0x095e5a9eu, 0xf981e6c4u, 0xc339ebdfu, 0x3eb1e6bfu, 0x4505f534u}} +, .sourceIx = ty_w32 +, .targetIx = ty_mw256 +, .cost = 437 /* milli weight units */ +} +,[OUTPUT_SCRIPTS_HASH] = +{ .tag = JET +, .jet = output_scripts_hash +, .cmr = {{0xc0489e87u, 0x8cd89ca5u, 0x109a5316u, 0x7a61a845u, 0x4ed6dc2au, 0xcef9191au, 0xd53bbfb3u, 0xb0ea72dfu}} +, .sourceIx = ty_u +, .targetIx = ty_w256 +, .cost = 416 /* milli weight units */ +} +,[OUTPUT_SURJECTION_PROOF] = +{ .tag = JET +, .jet = output_surjection_proof +, .cmr = {{0x1de8addbu, 0xf8b697c2u, 0xb3d192bdu, 0xe2c2c55fu, 0x5e6709c5u, 0xbd8631e3u, 0x8d8378ddu, 0x3dce49ccu}} +, .sourceIx = ty_w32 +, .targetIx = ty_mw256 +, .cost = 453 /* milli weight units */ +} +,[OUTPUT_SURJECTION_PROOFS_HASH] = +{ .tag = JET +, .jet = output_surjection_proofs_hash +, .cmr = {{0x743eb2d9u, 0x8e2c69c4u, 0x03aba3c3u, 0x3dcb8351u, 0xde8224c9u, 0xe04da507u, 0x1c8dfd7au, 0x935070acu}} +, .sourceIx = ty_u +, .targetIx = ty_w256 +, .cost = 419 /* milli weight units */ +} +,[OUTPUTS_HASH] = +{ .tag = JET +, .jet = outputs_hash +, .cmr = {{0x12af1e5cu, 0x32da7512u, 0xfcd43259u, 0xd1bc8472u, 0xa915ce21u, 0xc6d306e4u, 0x85f1dbbcu, 0x07a1cfdbu}} +, .sourceIx = ty_u +, .targetIx = ty_w256 +, .cost = 296 /* milli weight units */ +} +,[PARSE_LOCK] = +{ .tag = JET +, .jet = parse_lock +, .cmr = {{0x4571ca04u, 0x52577cfau, 0xf8a85f5eu, 0x329d602cu, 0x8dcad127u, 0x6a974e2cu, 0x75d2ec04u, 0x657bc425u}} +, .sourceIx = ty_w32 +, .targetIx = ty_sw32w32 +, .cost = 177 /* milli weight units */ +} +,[PARSE_SEQUENCE] = +{ .tag = JET +, .jet = parse_sequence +, .cmr = {{0x55c90366u, 0x0c8c92b1u, 0x429f63e2u, 0x7471acd5u, 0x9c3a26aau, 0x7a59221du, 0x7a6d52b6u, 0x2ebaf94au}} +, .sourceIx = ty_w32 +, .targetIx = ty_msw16w16 +, .cost = 261 /* milli weight units */ +} +,[POINT_VERIFY_1] = +{ .tag = JET +, .jet = point_verify_1 +, .cmr = {{0x02b89a1cu, 0xa7d24f82u, 0x353e9732u, 0xfa39ce65u, 0x509b39aeu, 0xaf43d2e5u, 0xf80ca903u, 0xfc81c846u}} +, .sourceIx = ty_pppw256pbw256w256pbw256 +, .targetIx = ty_u +, .cost = 50604 /* milli weight units */ +} +,[REISSUANCE_BLINDING] = +{ .tag = JET +, .jet = reissuance_blinding +, .cmr = {{0x0b9a0aafu, 0xedb102a1u, 0x64061419u, 0xa789ea84u, 0x326cd589u, 0xf17c0ea0u, 0x192dd637u, 0x2ecb5ebfu}} +, .sourceIx = ty_w32 +, .targetIx = ty_mmw256 +, .cost = 153 /* milli weight units */ +} +,[REISSUANCE_ENTROPY] = +{ .tag = JET +, .jet = reissuance_entropy +, .cmr = {{0xce84f983u, 0xa3bd3394u, 0x3d4dcb44u, 0x861c4a69u, 0xa2a5e8a5u, 0x22b5d5ebu, 0xf2515f51u, 0x1ac6a9b2u}} +, .sourceIx = ty_w32 +, .targetIx = ty_mmw256 +, .cost = 126 /* milli weight units */ +} +,[RIGHT_EXTEND_16_32] = +{ .tag = JET +, .jet = right_extend_16_32 +, .cmr = {{0x36423c16u, 0xd48d6c7cu, 0x91ed4416u, 0x11be3072u, 0xdfa5dd38u, 0xe4d27da8u, 0xdaed2978u, 0x8fc95208u}} +, .sourceIx = ty_w16 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_EXTEND_16_64] = +{ .tag = JET +, .jet = right_extend_16_64 +, .cmr = {{0x4b8a47b9u, 0x067073a1u, 0xfb68300fu, 0xacd6c506u, 0x9890abdbu, 0x7eaacb62u, 0x2ad7309au, 0x87f4d34du}} +, .sourceIx = ty_w16 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_EXTEND_32_64] = +{ .tag = JET +, .jet = right_extend_32_64 +, .cmr = {{0xdd6af1c8u, 0x01d26c0bu, 0x2edf83ceu, 0x67b172dfu, 0x6757d07fu, 0xb7c85468u, 0x6f42e576u, 0x8adcc9e7u}} +, .sourceIx = ty_w32 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_EXTEND_8_16] = +{ .tag = JET +, .jet = right_extend_8_16 +, .cmr = {{0x1de201a8u, 0x6470a02bu, 0x2dfe48c6u, 0x6afe0673u, 0x5b475e88u, 0xd325cbf1u, 0x6042a910u, 0x24d2bed9u}} +, .sourceIx = ty_w8 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_EXTEND_8_32] = +{ .tag = JET +, .jet = right_extend_8_32 +, .cmr = {{0x7e9c5cb3u, 0x5419ab06u, 0xe1220023u, 0x102be46au, 0xb6d96995u, 0xc423c6b1u, 0x4b9a6602u, 0x8aec5d75u}} +, .sourceIx = ty_w8 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_EXTEND_8_64] = +{ .tag = JET +, .jet = right_extend_8_64 +, .cmr = {{0x49d246c2u, 0xa61cd39du, 0x7820dcd7u, 0x5eee847bu, 0xf057c01au, 0x63a3acbcu, 0xc9463e44u, 0xbc1e0b6cu}} +, .sourceIx = ty_w8 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_HIGH_16_32] = +{ .tag = JET +, .jet = right_pad_high_16_32 +, .cmr = {{0xfe901fb4u, 0xf6ebdc4eu, 0xa2961998u, 0x9922b80fu, 0xa9ce2412u, 0x87fa5408u, 0x64362cccu, 0xe9f54b3bu}} +, .sourceIx = ty_w16 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_HIGH_16_64] = +{ .tag = JET +, .jet = right_pad_high_16_64 +, .cmr = {{0xda90add3u, 0x1067ccfdu, 0xbee4cbfbu, 0x21de8e6au, 0xa4f93e00u, 0x2200711fu, 0x9984af6fu, 0xc01e2700u}} +, .sourceIx = ty_w16 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_HIGH_1_16] = +{ .tag = JET +, .jet = right_pad_high_1_16 +, .cmr = {{0xe4cf116cu, 0x0880f73fu, 0x9952f700u, 0x81788498u, 0xe5084cbbu, 0x72cf841bu, 0xcd9167a6u, 0xeea264dcu}} +, .sourceIx = ty_b +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_HIGH_1_32] = +{ .tag = JET +, .jet = right_pad_high_1_32 +, .cmr = {{0x1276036bu, 0xb94cfd92u, 0x0ab73164u, 0x3b76b119u, 0x72dd2654u, 0x3853444eu, 0x18d7f63fu, 0xcac091a3u}} +, .sourceIx = ty_b +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_HIGH_1_64] = +{ .tag = JET +, .jet = right_pad_high_1_64 +, .cmr = {{0x38c99980u, 0xb1a99810u, 0x5111c56bu, 0xf8246509u, 0x65a509c4u, 0x7e1c76d9u, 0x00750a1fu, 0xee45c964u}} +, .sourceIx = ty_b +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_HIGH_1_8] = +{ .tag = JET +, .jet = right_pad_high_1_8 +, .cmr = {{0xca72ceedu, 0x2d98dccdu, 0x81aa21f0u, 0xba21d1a0u, 0x87b6f252u, 0x07c24a58u, 0x0ada7e60u, 0x5f7982dfu}} +, .sourceIx = ty_b +, .targetIx = ty_w8 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_HIGH_32_64] = +{ .tag = JET +, .jet = right_pad_high_32_64 +, .cmr = {{0x17eb5911u, 0xf8549576u, 0x68eef463u, 0xb0cbae72u, 0x08529134u, 0xef5e56cdu, 0x33fbbc29u, 0xc28bbe92u}} +, .sourceIx = ty_w32 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_HIGH_8_16] = +{ .tag = JET +, .jet = right_pad_high_8_16 +, .cmr = {{0xd26f0cc5u, 0xb261eb83u, 0x0e02df12u, 0xcc574425u, 0x9b4a43d9u, 0x75bd2e3du, 0x7c782811u, 0x761ff1d1u}} +, .sourceIx = ty_w8 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_HIGH_8_32] = +{ .tag = JET +, .jet = right_pad_high_8_32 +, .cmr = {{0xbd2e5c92u, 0x60bf6f32u, 0x4d2b1f40u, 0xcbb12240u, 0x2f30d52fu, 0x6434e39fu, 0x8a09b839u, 0x7bc32e94u}} +, .sourceIx = ty_w8 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_HIGH_8_64] = +{ .tag = JET +, .jet = right_pad_high_8_64 +, .cmr = {{0x941bf442u, 0xdbcf4f20u, 0x04a4b18bu, 0xeeb2adacu, 0x9f209feau, 0x4c4bd48cu, 0xede8dafau, 0xcf8843b7u}} +, .sourceIx = ty_w8 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_LOW_16_32] = +{ .tag = JET +, .jet = right_pad_low_16_32 +, .cmr = {{0xbb387c29u, 0x2d59d713u, 0xad76f6ceu, 0xd5b596cfu, 0xd8385892u, 0x4f725f7du, 0x116b2807u, 0x5821925au}} +, .sourceIx = ty_w16 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_LOW_16_64] = +{ .tag = JET +, .jet = right_pad_low_16_64 +, .cmr = {{0x0232326eu, 0xe1b206adu, 0x26349b55u, 0x3d7f2462u, 0x287320d6u, 0x30e42932u, 0x0740cbd3u, 0xeb4ef9beu}} +, .sourceIx = ty_w16 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_LOW_1_16] = +{ .tag = JET +, .jet = right_pad_low_1_16 +, .cmr = {{0xd913f602u, 0xb35958d5u, 0x2abb20b0u, 0x2ce68961u, 0x6ffa66e0u, 0x2d73867du, 0x29181e11u, 0x93c9d243u}} +, .sourceIx = ty_b +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_LOW_1_32] = +{ .tag = JET +, .jet = right_pad_low_1_32 +, .cmr = {{0x6b4033d9u, 0xfc6c876bu, 0x2e75d582u, 0xbb9b3c04u, 0xfa29dfb2u, 0x2c9e1a48u, 0x8e837c2fu, 0x39aa6160u}} +, .sourceIx = ty_b +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_LOW_1_64] = +{ .tag = JET +, .jet = right_pad_low_1_64 +, .cmr = {{0x4e2b20ddu, 0x9d91857au, 0x49c820d0u, 0x6f435dd3u, 0xca791f17u, 0x7eeaf34au, 0xec36c454u, 0x19d16965u}} +, .sourceIx = ty_b +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_LOW_1_8] = +{ .tag = JET +, .jet = right_pad_low_1_8 +, .cmr = {{0x24eee451u, 0xb26ba39du, 0x6bcc588bu, 0x720faf22u, 0x32767912u, 0xf67db329u, 0x060d90b7u, 0x1417b6c3u}} +, .sourceIx = ty_b +, .targetIx = ty_w8 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_LOW_32_64] = +{ .tag = JET +, .jet = right_pad_low_32_64 +, .cmr = {{0x52fb8bbcu, 0xef903231u, 0xa5b76791u, 0xe4652b38u, 0xbed8977fu, 0x5dab1795u, 0x55998db2u, 0x4d1d7c98u}} +, .sourceIx = ty_w32 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_PAD_LOW_8_16] = { .tag = JET -, .jet = num_inputs -, .cmr = {{0xd7b46628u, 0x7ef4e59cu, 0x02be3389u, 0xeafb4347u, 0xb7d1a2a1u, 0x5c144918u, 0xb7ad3443u, 0xb14fae03u}} -, .sourceIx = ty_u -, .targetIx = ty_w32 -, .cost = 139 /* milli weight units */ +, .jet = right_pad_low_8_16 +, .cmr = {{0x1719b279u, 0x74e84380u, 0x50882530u, 0xa1a42ed7u, 0xab3ca28du, 0x254adc37u, 0xfe5666fdu, 0x2f70b4e4u}} +, .sourceIx = ty_w8 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ } -,[NUM_OUTPUTS] = +,[RIGHT_PAD_LOW_8_32] = { .tag = JET -, .jet = num_outputs -, .cmr = {{0x67df4debu, 0x3ff0c26au, 0xe3123047u, 0xcc734ae3u, 0xb61ffcefu, 0x511fcf42u, 0x813c3f48u, 0x1920ee48u}} -, .sourceIx = ty_u +, .jet = right_pad_low_8_32 +, .cmr = {{0xee2a8230u, 0xf283dc08u, 0x3b8e1944u, 0x8ba32497u, 0xe9318b4eu, 0x9e1bd4ebu, 0xe1bec524u, 0x476ab86du}} +, .sourceIx = ty_w8 , .targetIx = ty_w32 -, .cost = 134 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[ONE_16] = +,[RIGHT_PAD_LOW_8_64] = { .tag = JET -, .jet = one_16 -, .cmr = {{0x7629792bu, 0xa1a44114u, 0xe59e64b5u, 0x1d187af6u, 0xd965d966u, 0x20dca262u, 0x7507b7d3u, 0x88d9353cu}} -, .sourceIx = ty_u +, .jet = right_pad_low_8_64 +, .cmr = {{0x97da90d8u, 0x428e6b94u, 0xe6c13514u, 0x60dc0112u, 0x3e479c4au, 0xafbbd14cu, 0x78ad2fadu, 0x0a895ef3u}} +, .sourceIx = ty_w8 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ +} +,[RIGHT_ROTATE_16] = +{ .tag = JET +, .jet = right_rotate_16 +, .cmr = {{0xee7d1c1fu, 0x3d82da56u, 0x81dd8b50u, 0x69d537d8u, 0x9f2293aau, 0x605332ceu, 0x10c1c422u, 0x4a53ceeau}} +, .sourceIx = ty_pw4w16 , .targetIx = ty_w16 -, .cost = 126 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[ONE_32] = +,[RIGHT_ROTATE_32] = { .tag = JET -, .jet = one_32 -, .cmr = {{0x0ba004ceu, 0xa250fe95u, 0x3ac74e6eu, 0xcd3620e8u, 0x02841fdau, 0x795208deu, 0xc66d626eu, 0x06aa29b2u}} -, .sourceIx = ty_u +, .jet = right_rotate_32 +, .cmr = {{0x892a28dbu, 0x324cd93cu, 0xf7f69c30u, 0x72a7b222u, 0xb88c818eu, 0xe0e5a1b8u, 0x97e50c58u, 0x1f2a2962u}} +, .sourceIx = ty_pw8w32 , .targetIx = ty_w32 -, .cost = 122 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[ONE_64] = +,[RIGHT_ROTATE_64] = { .tag = JET -, .jet = one_64 -, .cmr = {{0xba3478c1u, 0x08740a83u, 0xf0ca0eaeu, 0x86c31b4au, 0xfac830dfu, 0x093467ccu, 0x08ea1c04u, 0x15efef6du}} -, .sourceIx = ty_u +, .jet = right_rotate_64 +, .cmr = {{0x64314ff1u, 0x9040a376u, 0xf9fcf02eu, 0x7574149cu, 0x123f99c3u, 0x9071cd37u, 0x851f8f8cu, 0xdf0eed42u}} +, .sourceIx = ty_pw8w64 , .targetIx = ty_w64 -, .cost = 123 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[ONE_8] = +,[RIGHT_ROTATE_8] = { .tag = JET -, .jet = one_8 -, .cmr = {{0x15ca77a4u, 0xb7022568u, 0x37f90ff7u, 0x8ca7740au, 0x40fece71u, 0x91301d00u, 0xe517d8d3u, 0x4f46c250u}} -, .sourceIx = ty_u +, .jet = right_rotate_8 +, .cmr = {{0x1581e0cau, 0x09f13684u, 0xfe3135c1u, 0xc6b6f9c4u, 0x89d7dd1eu, 0xf0a5f770u, 0x83bb0ed0u, 0x0b4df28fu}} +, .sourceIx = ty_pw4w8 , .targetIx = ty_w8 -, .cost = 127 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[OR_16] = +,[RIGHT_SHIFT_16] = { .tag = JET -, .jet = or_16 -, .cmr = {{0xdfead0bau, 0x93e49155u, 0xc40cb372u, 0xca5ef617u, 0x9741c61fu, 0x2b3cc279u, 0x7ef162c8u, 0xd2fc1f9au}} -, .sourceIx = ty_w32 +, .jet = right_shift_16 +, .cmr = {{0x5b4ec462u, 0xd4e2ed89u, 0xffe3fd40u, 0x5932c797u, 0x80286120u, 0x3ecb61d5u, 0xb59a73b0u, 0xfbfc4e84u}} +, .sourceIx = ty_pw4w16 , .targetIx = ty_w16 -, .cost = 204 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[OR_32] = +,[RIGHT_SHIFT_32] = { .tag = JET -, .jet = or_32 -, .cmr = {{0x67ac6945u, 0xcdc006d2u, 0x5e5bbe6cu, 0x4fe81ca1u, 0x6741ffabu, 0x3d23960eu, 0xeb49850fu, 0x92732cbbu}} -, .sourceIx = ty_w64 +, .jet = right_shift_32 +, .cmr = {{0xb2861a48u, 0xb2054176u, 0x91b6347fu, 0xe75ebea5u, 0x4560cf81u, 0x3814ac31u, 0x639170dbu, 0x92b947d6u}} +, .sourceIx = ty_pw8w32 , .targetIx = ty_w32 -, .cost = 197 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[OR_64] = +,[RIGHT_SHIFT_64] = { .tag = JET -, .jet = or_64 -, .cmr = {{0x1eb952e4u, 0x6116e271u, 0xdc489e67u, 0x22a90185u, 0xebf5fb77u, 0x5b778160u, 0x6dbf5e89u, 0xccd7c250u}} -, .sourceIx = ty_w128 +, .jet = right_shift_64 +, .cmr = {{0xd33942bfu, 0x18618a10u, 0x4a570754u, 0x7f78ab72u, 0x941f4ee8u, 0x13216c0cu, 0xe520f356u, 0x60fdbf81u}} +, .sourceIx = ty_pw8w64 , .targetIx = ty_w64 -, .cost = 214 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[OR_8] = +,[RIGHT_SHIFT_8] = { .tag = JET -, .jet = or_8 -, .cmr = {{0x378f7abeu, 0x8b081fafu, 0x5b3a2578u, 0xef1979feu, 0x80bccb07u, 0x91156a49u, 0x3f8a3f6eu, 0x0bb2fc84u}} -, .sourceIx = ty_w16 +, .jet = right_shift_8 +, .cmr = {{0x737912aeu, 0x323250c0u, 0x4e516e39u, 0x66ce947eu, 0x65326f47u, 0x468ac931u, 0xc163c3b0u, 0x2de41245u}} +, .sourceIx = ty_pw4w8 , .targetIx = ty_w8 -, .cost = 147 /* milli weight units */ +, .cost = 150 /* milli weight units */ } -,[OUTPOINT_HASH] = +,[RIGHT_SHIFT_WITH_16] = { .tag = JET -, .jet = outpoint_hash -, .cmr = {{0xe31d339du, 0x86e6d76bu, 0xadc3d6d6u, 0xcf1be706u, 0x53e03442u, 0x73449cecu, 0xf521d366u, 0x2bd8fc2bu}} -, .sourceIx = ty_pppmw256pmw128pmw64pmw32pmw16mw8pw64w256pmw256pw256w32 -, .targetIx = ty_ppmw256pmw128pmw64pmw32pmw16mw8pw64w256 -, .cost = 5256 /* milli weight units */ +, .jet = right_shift_with_16 +, .cmr = {{0x1e181c33u, 0x1693594cu, 0x6e0e8fdeu, 0xb40a81a3u, 0xaf8f56b7u, 0xa560de64u, 0x41303f65u, 0xf4fc937cu}} +, .sourceIx = ty_pbpw4w16 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_AMOUNT] = +,[RIGHT_SHIFT_WITH_32] = { .tag = JET -, .jet = output_amount -, .cmr = {{0x52db68c6u, 0xc7be32bfu, 0xaa426970u, 0xeb4197ceu, 0x1ce3f453u, 0x0e1a2cffu, 0x8e17db47u, 0x229207b3u}} -, .sourceIx = ty_w32 -, .targetIx = ty_mpspbw256w256spbw256w64 -, .cost = 709 /* milli weight units */ +, .jet = right_shift_with_32 +, .cmr = {{0x69dbe190u, 0xd72d77d0u, 0xd0dcf325u, 0xde965922u, 0x14581f11u, 0xe9edca93u, 0xe2f92848u, 0x2b5e77a7u}} +, .sourceIx = ty_pbpw8w32 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_AMOUNTS_HASH] = +,[RIGHT_SHIFT_WITH_64] = { .tag = JET -, .jet = output_amounts_hash -, .cmr = {{0xbccbee78u, 0x1ee297fau, 0xbfbe38c0u, 0x079ad374u, 0x258c0b1eu, 0xbe223457u, 0x099a284au, 0x1b4338a2u}} -, .sourceIx = ty_u -, .targetIx = ty_w256 -, .cost = 404 /* milli weight units */ +, .jet = right_shift_with_64 +, .cmr = {{0x2d0ab883u, 0x0469280eu, 0x2a28993cu, 0x5a05f56bu, 0x91a8aeb0u, 0x34ccebe0u, 0x9c50f13eu, 0xa78ddafcu}} +, .sourceIx = ty_pbpw8w64 +, .targetIx = ty_w64 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_ASSET] = +,[RIGHT_SHIFT_WITH_8] = { .tag = JET -, .jet = output_asset -, .cmr = {{0xca89b5c4u, 0x5a9a247du, 0x39086cdfu, 0xbe2ba1dfu, 0x025e37dbu, 0x9b6a2abbu, 0x74d97066u, 0xa69bf3a0u}} -, .sourceIx = ty_w32 -, .targetIx = ty_mspbw256w256 -, .cost = 621 /* milli weight units */ +, .jet = right_shift_with_8 +, .cmr = {{0x1bdbdc8du, 0x8b749ba3u, 0xda757558u, 0x7d999300u, 0x72603f27u, 0x5f7bd2f3u, 0x24a34951u, 0xd4461b21u}} +, .sourceIx = ty_pbpw4w8 +, .targetIx = ty_w8 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_IS_FEE] = +,[RIGHTMOST_16_1] = { .tag = JET -, .jet = output_is_fee -, .cmr = {{0xf70eb068u, 0xd200b7bcu, 0x5aaaaba1u, 0x2928e819u, 0x2b2948cdu, 0xe7e8f314u, 0x1c6b4311u, 0x38e5de3cu}} -, .sourceIx = ty_w32 -, .targetIx = ty_mb -, .cost = 270 /* milli weight units */ +, .jet = rightmost_16_1 +, .cmr = {{0xe129a8aeu, 0x880f51cau, 0x2a94db44u, 0xedeca1c3u, 0xa766b73eu, 0x98970b11u, 0x98ade216u, 0xae69cd2du}} +, .sourceIx = ty_w16 +, .targetIx = ty_b +, .cost = 150 /* milli weight units */ } -,[OUTPUT_NONCE] = +,[RIGHTMOST_16_2] = { .tag = JET -, .jet = output_nonce -, .cmr = {{0xedab1241u, 0xd297f274u, 0x7ad378a8u, 0x1a56143du, 0x741bc4eeu, 0x4c30b32fu, 0x8bc1aeb5u, 0x2cc4814cu}} -, .sourceIx = ty_w32 -, .targetIx = ty_mmspbw256w256 -, .cost = 396 /* milli weight units */ +, .jet = rightmost_16_2 +, .cmr = {{0x8d0f68dau, 0xdf546c5eu, 0xd36f3470u, 0x5802b0ceu, 0x839a63e5u, 0x74497785u, 0x243008abu, 0x427e456bu}} +, .sourceIx = ty_w16 +, .targetIx = ty_w2 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_NONCES_HASH] = +,[RIGHTMOST_16_4] = { .tag = JET -, .jet = output_nonces_hash -, .cmr = {{0xf07fe7e9u, 0x7396865du, 0x50c1ac94u, 0x77ad9f95u, 0x062f11edu, 0x01c97de7u, 0xfa4affa0u, 0x8cd10531u}} -, .sourceIx = ty_u -, .targetIx = ty_w256 -, .cost = 387 /* milli weight units */ +, .jet = rightmost_16_4 +, .cmr = {{0xb0d41395u, 0x41ecab2cu, 0x16fc1a87u, 0x989bdd04u, 0x5322efb1u, 0xe70bc1f7u, 0xb04d43b2u, 0x8bb349ffu}} +, .sourceIx = ty_w16 +, .targetIx = ty_w4 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_NULL_DATUM] = +,[RIGHTMOST_16_8] = { .tag = JET -, .jet = output_null_datum -, .cmr = {{0x964c4deeu, 0x8fe4a866u, 0xcc3ea494u, 0x7884814cu, 0xccd60269u, 0x2e378ba0u, 0xe935fa03u, 0xf95e3de1u}} -, .sourceIx = ty_w64 -, .targetIx = ty_mmspw2w256sbw4 -, .cost = 249 /* milli weight units */ +, .jet = rightmost_16_8 +, .cmr = {{0x0f03fa0fu, 0xa6ceb55du, 0xf99b20d9u, 0xefcf3710u, 0xa708a284u, 0xa95c334cu, 0x1da3cbfeu, 0x02fb9467u}} +, .sourceIx = ty_w16 +, .targetIx = ty_w8 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_RANGE_PROOF] = +,[RIGHTMOST_32_1] = { .tag = JET -, .jet = output_range_proof -, .cmr = {{0xa00418e4u, 0xabc4bed5u, 0x373fc222u, 0xce1f960bu, 0x6435eaa8u, 0xf14fe66cu, 0xa42c52ddu, 0x9ae226b8u}} +, .jet = rightmost_32_1 +, .cmr = {{0x8f5e5263u, 0xbb8ef800u, 0xc99d0c23u, 0xfcbaa319u, 0x8a6abdf0u, 0x08581e8cu, 0x891052b4u, 0x0ca7f7a4u}} , .sourceIx = ty_w32 -, .targetIx = ty_mw256 -, .cost = 452 /* milli weight units */ +, .targetIx = ty_b +, .cost = 150 /* milli weight units */ } -,[OUTPUT_RANGE_PROOFS_HASH] = +,[RIGHTMOST_32_16] = { .tag = JET -, .jet = output_range_proofs_hash -, .cmr = {{0xebe626e2u, 0x854e7000u, 0x75eadeeeu, 0xad5fe0bdu, 0xd69c1b0fu, 0xadf108d3u, 0x68c1293fu, 0x86585fb1u}} -, .sourceIx = ty_u -, .targetIx = ty_w256 -, .cost = 397 /* milli weight units */ +, .jet = rightmost_32_16 +, .cmr = {{0xb9a23e1bu, 0xf7c68143u, 0x513074c9u, 0x39bd73c9u, 0xbf8eb5aau, 0xce8415ffu, 0x01022fcau, 0x65b3a342u}} +, .sourceIx = ty_w32 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_SCRIPT_HASH] = +,[RIGHTMOST_32_2] = { .tag = JET -, .jet = output_script_hash -, .cmr = {{0xecf673e5u, 0xfcaf7b7eu, 0x6e37b628u, 0x095e5a9eu, 0xf981e6c4u, 0xc339ebdfu, 0x3eb1e6bfu, 0x4505f534u}} +, .jet = rightmost_32_2 +, .cmr = {{0xabf3238du, 0x3cbf0bf3u, 0x5a83961fu, 0xb9f904b5u, 0x6d3a9e0eu, 0x35c89df8u, 0x72c9c938u, 0xd344a54au}} , .sourceIx = ty_w32 -, .targetIx = ty_mw256 -, .cost = 437 /* milli weight units */ +, .targetIx = ty_w2 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_SCRIPTS_HASH] = +,[RIGHTMOST_32_4] = { .tag = JET -, .jet = output_scripts_hash -, .cmr = {{0xc0489e87u, 0x8cd89ca5u, 0x109a5316u, 0x7a61a845u, 0x4ed6dc2au, 0xcef9191au, 0xd53bbfb3u, 0xb0ea72dfu}} -, .sourceIx = ty_u -, .targetIx = ty_w256 -, .cost = 416 /* milli weight units */ +, .jet = rightmost_32_4 +, .cmr = {{0xf7eed2ecu, 0x805906feu, 0xb3ac27f2u, 0xdee53b58u, 0xc3b13e40u, 0xe2bc3e8bu, 0x10632ed9u, 0xc0e7ca5fu}} +, .sourceIx = ty_w32 +, .targetIx = ty_w4 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_SURJECTION_PROOF] = +,[RIGHTMOST_32_8] = { .tag = JET -, .jet = output_surjection_proof -, .cmr = {{0x1de8addbu, 0xf8b697c2u, 0xb3d192bdu, 0xe2c2c55fu, 0x5e6709c5u, 0xbd8631e3u, 0x8d8378ddu, 0x3dce49ccu}} +, .jet = rightmost_32_8 +, .cmr = {{0xf3e439edu, 0x9883c6a6u, 0xb9072053u, 0x2eb4e043u, 0xe89a35f0u, 0xb5295fd5u, 0x02a0b0b2u, 0x436bd213u}} , .sourceIx = ty_w32 -, .targetIx = ty_mw256 -, .cost = 453 /* milli weight units */ +, .targetIx = ty_w8 +, .cost = 150 /* milli weight units */ } -,[OUTPUT_SURJECTION_PROOFS_HASH] = +,[RIGHTMOST_64_1] = { .tag = JET -, .jet = output_surjection_proofs_hash -, .cmr = {{0x743eb2d9u, 0x8e2c69c4u, 0x03aba3c3u, 0x3dcb8351u, 0xde8224c9u, 0xe04da507u, 0x1c8dfd7au, 0x935070acu}} -, .sourceIx = ty_u -, .targetIx = ty_w256 -, .cost = 419 /* milli weight units */ +, .jet = rightmost_64_1 +, .cmr = {{0xc96be3e3u, 0x3548258eu, 0x30717b30u, 0x817e440fu, 0x0af4b189u, 0x0edfcf7fu, 0xdcb39cb9u, 0xefff471du}} +, .sourceIx = ty_w64 +, .targetIx = ty_b +, .cost = 150 /* milli weight units */ } -,[OUTPUTS_HASH] = +,[RIGHTMOST_64_16] = { .tag = JET -, .jet = outputs_hash -, .cmr = {{0x12af1e5cu, 0x32da7512u, 0xfcd43259u, 0xd1bc8472u, 0xa915ce21u, 0xc6d306e4u, 0x85f1dbbcu, 0x07a1cfdbu}} -, .sourceIx = ty_u -, .targetIx = ty_w256 -, .cost = 296 /* milli weight units */ +, .jet = rightmost_64_16 +, .cmr = {{0x5d555f83u, 0xe48087dbu, 0x0c415dadu, 0x17f081d4u, 0xf6b760e9u, 0x95f272bbu, 0xb6e4cb42u, 0xd0f50325u}} +, .sourceIx = ty_w64 +, .targetIx = ty_w16 +, .cost = 150 /* milli weight units */ } -,[PARSE_LOCK] = +,[RIGHTMOST_64_2] = { .tag = JET -, .jet = parse_lock -, .cmr = {{0x4571ca04u, 0x52577cfau, 0xf8a85f5eu, 0x329d602cu, 0x8dcad127u, 0x6a974e2cu, 0x75d2ec04u, 0x657bc425u}} -, .sourceIx = ty_w32 -, .targetIx = ty_sw32w32 -, .cost = 177 /* milli weight units */ +, .jet = rightmost_64_2 +, .cmr = {{0xa9cb1343u, 0xdbd522b9u, 0x1b6482e4u, 0xbae62b0eu, 0x5f829868u, 0x7e642333u, 0x5c6df506u, 0xdc425b90u}} +, .sourceIx = ty_w64 +, .targetIx = ty_w2 +, .cost = 150 /* milli weight units */ } -,[PARSE_SEQUENCE] = +,[RIGHTMOST_64_32] = { .tag = JET -, .jet = parse_sequence -, .cmr = {{0x55c90366u, 0x0c8c92b1u, 0x429f63e2u, 0x7471acd5u, 0x9c3a26aau, 0x7a59221du, 0x7a6d52b6u, 0x2ebaf94au}} -, .sourceIx = ty_w32 -, .targetIx = ty_msw16w16 -, .cost = 261 /* milli weight units */ +, .jet = rightmost_64_32 +, .cmr = {{0x4733b192u, 0x59800964u, 0x99b7877cu, 0x04e001bau, 0xd3325b2eu, 0xcab348e5u, 0xadd720d0u, 0x7b1b4a3au}} +, .sourceIx = ty_w64 +, .targetIx = ty_w32 +, .cost = 150 /* milli weight units */ } -,[POINT_VERIFY_1] = +,[RIGHTMOST_64_4] = { .tag = JET -, .jet = point_verify_1 -, .cmr = {{0x02b89a1cu, 0xa7d24f82u, 0x353e9732u, 0xfa39ce65u, 0x509b39aeu, 0xaf43d2e5u, 0xf80ca903u, 0xfc81c846u}} -, .sourceIx = ty_pppw256pbw256w256pbw256 -, .targetIx = ty_u -, .cost = 50604 /* milli weight units */ +, .jet = rightmost_64_4 +, .cmr = {{0x89daf7beu, 0x2cde58f0u, 0x4e8dee58u, 0xa4391091u, 0x2c096e95u, 0xe146c19bu, 0x00f54fe8u, 0x74700740u}} +, .sourceIx = ty_w64 +, .targetIx = ty_w4 +, .cost = 150 /* milli weight units */ } -,[REISSUANCE_BLINDING] = +,[RIGHTMOST_64_8] = { .tag = JET -, .jet = reissuance_blinding -, .cmr = {{0x0b9a0aafu, 0xedb102a1u, 0x64061419u, 0xa789ea84u, 0x326cd589u, 0xf17c0ea0u, 0x192dd637u, 0x2ecb5ebfu}} -, .sourceIx = ty_w32 -, .targetIx = ty_mmw256 -, .cost = 153 /* milli weight units */ +, .jet = rightmost_64_8 +, .cmr = {{0x1dfb2befu, 0x4cae4507u, 0x922708e5u, 0xa5709949u, 0x3fbe2115u, 0x98eec0bfu, 0xe0e77b3du, 0x41ec89abu}} +, .sourceIx = ty_w64 +, .targetIx = ty_w8 +, .cost = 150 /* milli weight units */ } -,[REISSUANCE_ENTROPY] = +,[RIGHTMOST_8_1] = { .tag = JET -, .jet = reissuance_entropy -, .cmr = {{0xce84f983u, 0xa3bd3394u, 0x3d4dcb44u, 0x861c4a69u, 0xa2a5e8a5u, 0x22b5d5ebu, 0xf2515f51u, 0x1ac6a9b2u}} -, .sourceIx = ty_w32 -, .targetIx = ty_mmw256 -, .cost = 126 /* milli weight units */ +, .jet = rightmost_8_1 +, .cmr = {{0xceabd5cau, 0x9fd9162fu, 0x995e3735u, 0x77047aa4u, 0xba71f807u, 0xc711f60bu, 0x08eb6a1cu, 0xfc381c9cu}} +, .sourceIx = ty_w8 +, .targetIx = ty_b +, .cost = 150 /* milli weight units */ +} +,[RIGHTMOST_8_2] = +{ .tag = JET +, .jet = rightmost_8_2 +, .cmr = {{0x39b2f037u, 0xb6a08186u, 0x115065f3u, 0x85057af3u, 0xde3b9f0au, 0x9bda6833u, 0x71462259u, 0x413028ecu}} +, .sourceIx = ty_w8 +, .targetIx = ty_w2 +, .cost = 150 /* milli weight units */ +} +,[RIGHTMOST_8_4] = +{ .tag = JET +, .jet = rightmost_8_4 +, .cmr = {{0xa7a94949u, 0x0d1a00deu, 0xfe5f6151u, 0x2923850fu, 0x51e347c0u, 0x6a8d76a0u, 0xcdab87eeu, 0xe29a5defu}} +, .sourceIx = ty_w8 +, .targetIx = ty_w4 +, .cost = 150 /* milli weight units */ } ,[SCALAR_ADD] = { .tag = JET @@ -2119,6 +3399,14 @@ , .targetIx = ty_w256 , .cost = 265 /* milli weight units */ } +,[SOME_1] = +{ .tag = JET +, .jet = some_1 +, .cmr = {{0x0b9cb7b4u, 0x7deb4f9du, 0x95d5c020u, 0x001fd009u, 0xa2f10ce5u, 0xd918d818u, 0x1e259315u, 0xfe8eac53u}} +, .sourceIx = ty_b +, .targetIx = ty_b +, .cost = 104 /* milli weight units */ +} ,[SOME_16] = { .tag = JET , .jet = some_16 @@ -2287,6 +3575,14 @@ , .targetIx = ty_w32 , .cost = 188 /* milli weight units */ } +,[XOR_1] = +{ .tag = JET +, .jet = xor_1 +, .cmr = {{0x77b714e6u, 0x89c9d6a4u, 0x8fd1add8u, 0x6522823du, 0xebc70df6u, 0xa7fe4bf2u, 0xb85de549u, 0xe0cd0a05u}} +, .sourceIx = ty_w2 +, .targetIx = ty_b +, .cost = 135 /* milli weight units */ +} ,[XOR_16] = { .tag = JET , .jet = xor_16 @@ -2319,6 +3615,14 @@ , .targetIx = ty_w8 , .cost = 135 /* milli weight units */ } +,[XOR_XOR_1] = +{ .tag = JET +, .jet = xor_xor_1 +, .cmr = {{0x2252a986u, 0x08d20bd4u, 0x11317a20u, 0x15c15698u, 0x70a62c95u, 0x3a6165fbu, 0xe977b40du, 0x6ccea495u}} +, .sourceIx = ty_pbw2 +, .targetIx = ty_b +, .cost = 258 /* milli weight units */ +} ,[XOR_XOR_16] = { .tag = JET , .jet = xor_xor_16 diff --git a/simplicity-sys/depend/simplicity/secp256k1/int128_struct_impl.h b/simplicity-sys/depend/simplicity/secp256k1/int128_struct_impl.h index fd32b14c..70ff5534 100644 --- a/simplicity-sys/depend/simplicity/secp256k1/int128_struct_impl.h +++ b/simplicity-sys/depend/simplicity/secp256k1/int128_struct_impl.h @@ -25,7 +25,7 @@ static SECP256K1_INLINE int64_t secp256k1_mul128(int64_t a, int64_t b, int64_t* /* On x84_64 MSVC, use native _(u)mul128 for 64x64->128 multiplications. */ # define secp256k1_umul128 _umul128 static SECP256K1_INLINE uint64_t secp256k1_mul128(int64_t a, int64_t b, int64_t* hi) { - return (uint64_t)_mul128(a, b, hi) + return (uint64_t)_mul128(a, b, hi); } # endif #else diff --git a/simplicity-sys/depend/simplicity/test.c b/simplicity-sys/depend/simplicity/test.c index 4c866fd9..42830464 100644 --- a/simplicity-sys/depend/simplicity/test.c +++ b/simplicity-sys/depend/simplicity/test.c @@ -18,9 +18,16 @@ _Static_assert(CHAR_BIT == 8, "Buffers passed to fmemopen presume 8 bit chars"); +static const double secondsPerWU = 0.5 / 1000. / 1000.; static int successes = 0; static int failures = 0; +static void fprint_cmr(FILE* stream, const uint32_t* cmr) { + fprintf(stream, "0x%08x, 0x%08x, 0x%08x, 0x%08x, 0x%08x, 0x%08x, 0x%08x, 0x%08x", + cmr[0], cmr[1], cmr[2], cmr[3], cmr[4], cmr[5], cmr[6], cmr[7] + ); +} + static void test_decodeUptoMaxInt(void) { printf("Test decodeUptoMaxInt\n"); const unsigned char buf[] = @@ -172,6 +179,9 @@ static void test_program(char* name, const unsigned char* program, size_t progra printf("Error parsing dag: %d\n", error); } else { error = decodeWitnessData(&witness, &stream); + if (IS_OK(error)) { + error = closeBitstream(&stream); + } if (!IS_OK(error)) { if (expectedResult == error) { successes++; @@ -190,7 +200,11 @@ static void test_program(char* name, const unsigned char* program, size_t progra successes++; } else { failures++; - printf("Unexpected CMR.\n"); + printf("Unexpected CMR. Expected\n{"); + fprint_cmr(stdout, expectedCMR); + printf("}, but received\n{"); + fprint_cmr(stdout, dag[len-1].cmr.s); + printf("}\n"); } } type* type_dag; @@ -202,16 +216,14 @@ static void test_program(char* name, const unsigned char* program, size_t progra failures++; printf("Unexpected failure of fillWitnessData.\n"); } else { - { + if (expectedAMR) { analyses analysis[len]; computeAnnotatedMerkleRoot(analysis, dag, type_dag, (size_t)len); - if (expectedAMR) { - if (0 == memcmp(expectedAMR, analysis[len-1].annotatedMerkleRoot.s, sizeof(uint32_t[8]))) { - successes++; - } else { - failures++; - printf("Unexpected AMR.\n"); - } + if (0 == memcmp(expectedAMR, analysis[len-1].annotatedMerkleRoot.s, sizeof(uint32_t[8]))) { + successes++; + } else { + failures++; + printf("Unexpected AMR.\n"); } } { @@ -503,19 +515,34 @@ static void regression_tests(void) { /* word("2^23 zero bits") ; unit */ size_t sizeof_regression3 = ((size_t)1 << 20) + 4; unsigned char *regression3 = calloc(sizeof_regression3, 1); - assert(regression3); + clock_t start, end; + double diff, bound; + const uint32_t cmr[] = { + 0x7f81c076u, 0xf0df9505u, 0xbfce61f0u, 0x41197bd9u, 0x2aaaa4f1u, 0x7015d1ecu, 0xb248ddffu, 0xe9d9da07u + }; + simplicity_assert(regression3); regression3[0] = 0xb7; regression3[1] = 0x08; regression3[sizeof_regression3 - 2] = 0x48; regression3[sizeof_regression3 - 1] = 0x20; - test_program("regression3", regression3, sizeof_regression3, SIMPLICITY_ERR_EXEC_MEMORY, NULL, NULL, NULL, NULL); + start = clock(); + test_program("regression3", regression3, sizeof_regression3, SIMPLICITY_ERR_EXEC_MEMORY, cmr, NULL, NULL, NULL); + end = clock(); + diff = (double)(end - start) / CLOCKS_PER_SEC; + bound = (double)(sizeof_regression3) * secondsPerWU; + printf("cpu_time_used by regression3: %f s. (Should be less than %f s.)\n", diff, bound); + if (diff <= bound) { + successes++; + } else { + failures++; + printf("regression3 took too long.\n"); + } free(regression3); } } static void iden8mebi_test(void) { /* iden composed with itself 2^23 times. */ - const unsigned char iden8mebi[35] = {0xe1, 0x08, [33]=0x40}; + const unsigned char iden8mebi[23] = {0xe1, 0x08}; const ubounded expectedCost = 1677721500; /* in milliWU */ - const double secondsPerWU = 0.5 / 1000. / 1000.; clock_t start, end; double diff, bound; start = clock(); diff --git a/simplicity-sys/depend/simplicity/type.c b/simplicity-sys/depend/simplicity/type.c index 88e6aa22..7c572305 100644 --- a/simplicity-sys/depend/simplicity/type.c +++ b/simplicity-sys/depend/simplicity/type.c @@ -41,7 +41,7 @@ void computeTypeAnalyses(type* type_dag, const size_t len) { type_dag[i].bitSize = 0; break; case SUM: - type_dag[i].bitSize = max(type_dag[type_dag[i].typeArg[0]].bitSize, type_dag[type_dag[i].typeArg[1]].bitSize); + type_dag[i].bitSize = bounded_max(type_dag[type_dag[i].typeArg[0]].bitSize, type_dag[type_dag[i].typeArg[1]].bitSize); bounded_inc(&type_dag[i].bitSize); break; case PRODUCT: From 99d7b9f838826fd91ef73271034ec92cda73d4ce Mon Sep 17 00:00:00 2001 From: Christian Lewe Date: Tue, 16 Jan 2024 14:25:02 +0100 Subject: [PATCH 2/2] Run update_jets.sh --- simplicity-sys/src/c_jets/jets_ffi.rs | 163 ++ simplicity-sys/src/c_jets/jets_wrapper.rs | 652 +++++ src/jet/init/bitcoin.rs | 2021 ++++++++++++- src/jet/init/core.rs | 3162 ++++++++++++++++++++- src/jet/init/elements.rs | 3162 ++++++++++++++++++++- 5 files changed, 9121 insertions(+), 39 deletions(-) diff --git a/simplicity-sys/src/c_jets/jets_ffi.rs b/simplicity-sys/src/c_jets/jets_ffi.rs index ddc9255a..21b81c4b 100644 --- a/simplicity-sys/src/c_jets/jets_ffi.rs +++ b/simplicity-sys/src/c_jets/jets_ffi.rs @@ -13,6 +13,7 @@ extern "C" { pub fn all_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn all_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn all_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn and_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn and_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn and_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn and_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -26,6 +27,7 @@ extern "C" { pub fn calculate_confidential_token(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; pub fn calculate_explicit_token(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; pub fn calculate_issuance_entropy(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; + pub fn ch_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn ch_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn ch_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn ch_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -35,6 +37,7 @@ extern "C" { pub fn check_lock_height(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; pub fn check_lock_time(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; pub fn check_sig_verify(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn complement_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn complement_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn complement_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn complement_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -72,6 +75,7 @@ extern "C" { pub fn divides_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn divides_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn divides_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn eq_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn eq_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn eq_256(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn eq_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -99,10 +103,46 @@ extern "C" { pub fn full_increment_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn full_increment_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn full_increment_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_16_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_16_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_16_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_16_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_32_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_32_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_32_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_32_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_32_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_64_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_64_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_64_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_64_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_64_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_64_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_8_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_8_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_left_shift_8_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn full_multiply_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn full_multiply_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn full_multiply_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn full_multiply_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_16_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_16_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_16_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_16_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_32_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_32_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_32_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_32_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_32_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_64_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_64_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_64_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_64_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_64_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_64_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_8_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_8_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn full_right_shift_8_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn full_subtract_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn full_subtract_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn full_subtract_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -123,6 +163,7 @@ extern "C" { pub fn gej_y_is_odd(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn generate(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn genesis_block_hash(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; + pub fn high_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn high_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn high_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn high_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -173,9 +214,70 @@ extern "C" { pub fn le_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn le_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn le_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_extend_16_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_extend_16_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_extend_1_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_extend_1_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_extend_1_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_extend_1_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_extend_32_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_extend_8_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_extend_8_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_extend_8_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_high_16_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_high_16_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_high_1_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_high_1_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_high_1_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_high_1_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_high_32_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_high_8_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_high_8_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_high_8_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_low_16_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_low_16_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_low_1_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_low_1_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_low_1_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_low_1_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_low_32_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_low_8_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_low_8_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_pad_low_8_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_rotate_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_rotate_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_rotate_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_rotate_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_shift_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_shift_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_shift_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_shift_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_shift_with_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_shift_with_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_shift_with_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn left_shift_with_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_16_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_16_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_16_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_16_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_32_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_32_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_32_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_32_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_32_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_64_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_64_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_64_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_64_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_64_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_64_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_8_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_8_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn leftmost_8_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn linear_combination_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn linear_verify_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn lock_time(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; + pub fn low_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn low_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn low_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn low_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -184,6 +286,7 @@ extern "C" { pub fn lt_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn lt_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn lt_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn maj_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn maj_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn maj_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn maj_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -220,6 +323,7 @@ extern "C" { pub fn one_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn one_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn one_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn or_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn or_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn or_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn or_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -244,6 +348,62 @@ extern "C" { pub fn point_verify_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn reissuance_blinding(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; pub fn reissuance_entropy(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; + pub fn right_extend_16_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_extend_16_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_extend_32_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_extend_8_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_extend_8_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_extend_8_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_high_16_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_high_16_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_high_1_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_high_1_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_high_1_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_high_1_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_high_32_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_high_8_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_high_8_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_high_8_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_low_16_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_low_16_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_low_1_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_low_1_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_low_1_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_low_1_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_low_32_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_low_8_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_low_8_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_pad_low_8_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_rotate_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_rotate_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_rotate_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_rotate_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_shift_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_shift_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_shift_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_shift_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_shift_with_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_shift_with_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_shift_with_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn right_shift_with_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_16_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_16_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_16_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_16_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_32_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_32_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_32_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_32_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_32_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_64_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_64_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_64_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_64_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_64_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_64_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_8_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_8_2(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn rightmost_8_4(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn scalar_add(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn scalar_invert(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn scalar_is_zero(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -270,6 +430,7 @@ extern "C" { pub fn sha_256_ctx_8_init(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn sha_256_iv(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn sig_all_hash(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; + pub fn some_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn some_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn some_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn some_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; @@ -291,10 +452,12 @@ extern "C" { pub fn tx_lock_time(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; pub fn verify(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn version(dst: *mut CFrameItem, src: CFrameItem, env: *const CElementsTxEnv) -> bool; + pub fn xor_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn xor_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn xor_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn xor_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn xor_8(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; + pub fn xor_xor_1(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn xor_xor_16(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn xor_xor_32(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; pub fn xor_xor_64(dst: *mut CFrameItem, src: CFrameItem, env: *const c_void) -> bool; diff --git a/simplicity-sys/src/c_jets/jets_wrapper.rs b/simplicity-sys/src/c_jets/jets_wrapper.rs index a73cf9a8..2dbd65f6 100644 --- a/simplicity-sys/src/c_jets/jets_wrapper.rs +++ b/simplicity-sys/src/c_jets/jets_wrapper.rs @@ -35,6 +35,10 @@ pub fn all_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::all_8(dst, src, std::ptr::null()) } } +pub fn and_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::and_1(dst, src, std::ptr::null()) } +} + pub fn and_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::and_16(dst, src, std::ptr::null()) } } @@ -87,6 +91,10 @@ pub fn calculate_issuance_entropy(dst: &mut CFrameItem, src: CFrameItem, env: &C unsafe { elements_ffi::calculate_issuance_entropy(dst, src, env) } } +pub fn ch_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::ch_1(dst, src, std::ptr::null()) } +} + pub fn ch_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::ch_16(dst, src, std::ptr::null()) } } @@ -123,6 +131,10 @@ pub fn check_sig_verify(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> b unsafe { elements_ffi::check_sig_verify(dst, src, std::ptr::null()) } } +pub fn complement_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::complement_1(dst, src, std::ptr::null()) } +} + pub fn complement_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::complement_16(dst, src, std::ptr::null()) } } @@ -271,6 +283,10 @@ pub fn divides_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::divides_8(dst, src, std::ptr::null()) } } +pub fn eq_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::eq_1(dst, src, std::ptr::null()) } +} + pub fn eq_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::eq_16(dst, src, std::ptr::null()) } } @@ -379,6 +395,78 @@ pub fn full_increment_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> b unsafe { elements_ffi::full_increment_8(dst, src, std::ptr::null()) } } +pub fn full_left_shift_16_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_16_1(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_16_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_16_2(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_16_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_16_4(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_16_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_16_8(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_32_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_32_1(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_32_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_32_16(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_32_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_32_2(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_32_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_32_4(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_32_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_32_8(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_64_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_64_1(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_64_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_64_16(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_64_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_64_2(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_64_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_64_32(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_64_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_64_4(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_64_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_64_8(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_8_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_8_1(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_8_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_8_2(dst, src, std::ptr::null()) } +} + +pub fn full_left_shift_8_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_left_shift_8_4(dst, src, std::ptr::null()) } +} + pub fn full_multiply_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::full_multiply_16(dst, src, std::ptr::null()) } } @@ -395,6 +483,78 @@ pub fn full_multiply_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bo unsafe { elements_ffi::full_multiply_8(dst, src, std::ptr::null()) } } +pub fn full_right_shift_16_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_16_1(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_16_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_16_2(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_16_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_16_4(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_16_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_16_8(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_32_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_32_1(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_32_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_32_16(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_32_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_32_2(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_32_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_32_4(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_32_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_32_8(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_64_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_64_1(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_64_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_64_16(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_64_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_64_2(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_64_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_64_32(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_64_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_64_4(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_64_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_64_8(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_8_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_8_1(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_8_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_8_2(dst, src, std::ptr::null()) } +} + +pub fn full_right_shift_8_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::full_right_shift_8_4(dst, src, std::ptr::null()) } +} + pub fn full_subtract_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::full_subtract_16(dst, src, std::ptr::null()) } } @@ -475,6 +635,10 @@ pub fn genesis_block_hash(dst: &mut CFrameItem, src: CFrameItem, env: &CElements unsafe { elements_ffi::genesis_block_hash(dst, src, env) } } +pub fn high_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::high_1(dst, src, std::ptr::null()) } +} + pub fn high_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::high_16(dst, src, std::ptr::null()) } } @@ -675,6 +839,246 @@ pub fn le_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::le_8(dst, src, std::ptr::null()) } } +pub fn left_extend_16_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_extend_16_32(dst, src, std::ptr::null()) } +} + +pub fn left_extend_16_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_extend_16_64(dst, src, std::ptr::null()) } +} + +pub fn left_extend_1_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_extend_1_16(dst, src, std::ptr::null()) } +} + +pub fn left_extend_1_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_extend_1_32(dst, src, std::ptr::null()) } +} + +pub fn left_extend_1_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_extend_1_64(dst, src, std::ptr::null()) } +} + +pub fn left_extend_1_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_extend_1_8(dst, src, std::ptr::null()) } +} + +pub fn left_extend_32_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_extend_32_64(dst, src, std::ptr::null()) } +} + +pub fn left_extend_8_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_extend_8_16(dst, src, std::ptr::null()) } +} + +pub fn left_extend_8_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_extend_8_32(dst, src, std::ptr::null()) } +} + +pub fn left_extend_8_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_extend_8_64(dst, src, std::ptr::null()) } +} + +pub fn left_pad_high_16_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_high_16_32(dst, src, std::ptr::null()) } +} + +pub fn left_pad_high_16_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_high_16_64(dst, src, std::ptr::null()) } +} + +pub fn left_pad_high_1_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_high_1_16(dst, src, std::ptr::null()) } +} + +pub fn left_pad_high_1_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_high_1_32(dst, src, std::ptr::null()) } +} + +pub fn left_pad_high_1_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_high_1_64(dst, src, std::ptr::null()) } +} + +pub fn left_pad_high_1_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_high_1_8(dst, src, std::ptr::null()) } +} + +pub fn left_pad_high_32_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_high_32_64(dst, src, std::ptr::null()) } +} + +pub fn left_pad_high_8_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_high_8_16(dst, src, std::ptr::null()) } +} + +pub fn left_pad_high_8_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_high_8_32(dst, src, std::ptr::null()) } +} + +pub fn left_pad_high_8_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_high_8_64(dst, src, std::ptr::null()) } +} + +pub fn left_pad_low_16_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_low_16_32(dst, src, std::ptr::null()) } +} + +pub fn left_pad_low_16_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_low_16_64(dst, src, std::ptr::null()) } +} + +pub fn left_pad_low_1_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_low_1_16(dst, src, std::ptr::null()) } +} + +pub fn left_pad_low_1_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_low_1_32(dst, src, std::ptr::null()) } +} + +pub fn left_pad_low_1_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_low_1_64(dst, src, std::ptr::null()) } +} + +pub fn left_pad_low_1_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_low_1_8(dst, src, std::ptr::null()) } +} + +pub fn left_pad_low_32_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_low_32_64(dst, src, std::ptr::null()) } +} + +pub fn left_pad_low_8_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_low_8_16(dst, src, std::ptr::null()) } +} + +pub fn left_pad_low_8_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_low_8_32(dst, src, std::ptr::null()) } +} + +pub fn left_pad_low_8_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_pad_low_8_64(dst, src, std::ptr::null()) } +} + +pub fn left_rotate_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_rotate_16(dst, src, std::ptr::null()) } +} + +pub fn left_rotate_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_rotate_32(dst, src, std::ptr::null()) } +} + +pub fn left_rotate_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_rotate_64(dst, src, std::ptr::null()) } +} + +pub fn left_rotate_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_rotate_8(dst, src, std::ptr::null()) } +} + +pub fn left_shift_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_shift_16(dst, src, std::ptr::null()) } +} + +pub fn left_shift_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_shift_32(dst, src, std::ptr::null()) } +} + +pub fn left_shift_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_shift_64(dst, src, std::ptr::null()) } +} + +pub fn left_shift_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_shift_8(dst, src, std::ptr::null()) } +} + +pub fn left_shift_with_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_shift_with_16(dst, src, std::ptr::null()) } +} + +pub fn left_shift_with_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_shift_with_32(dst, src, std::ptr::null()) } +} + +pub fn left_shift_with_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_shift_with_64(dst, src, std::ptr::null()) } +} + +pub fn left_shift_with_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::left_shift_with_8(dst, src, std::ptr::null()) } +} + +pub fn leftmost_16_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_16_1(dst, src, std::ptr::null()) } +} + +pub fn leftmost_16_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_16_2(dst, src, std::ptr::null()) } +} + +pub fn leftmost_16_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_16_4(dst, src, std::ptr::null()) } +} + +pub fn leftmost_16_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_16_8(dst, src, std::ptr::null()) } +} + +pub fn leftmost_32_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_32_1(dst, src, std::ptr::null()) } +} + +pub fn leftmost_32_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_32_16(dst, src, std::ptr::null()) } +} + +pub fn leftmost_32_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_32_2(dst, src, std::ptr::null()) } +} + +pub fn leftmost_32_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_32_4(dst, src, std::ptr::null()) } +} + +pub fn leftmost_32_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_32_8(dst, src, std::ptr::null()) } +} + +pub fn leftmost_64_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_64_1(dst, src, std::ptr::null()) } +} + +pub fn leftmost_64_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_64_16(dst, src, std::ptr::null()) } +} + +pub fn leftmost_64_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_64_2(dst, src, std::ptr::null()) } +} + +pub fn leftmost_64_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_64_32(dst, src, std::ptr::null()) } +} + +pub fn leftmost_64_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_64_4(dst, src, std::ptr::null()) } +} + +pub fn leftmost_64_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_64_8(dst, src, std::ptr::null()) } +} + +pub fn leftmost_8_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_8_1(dst, src, std::ptr::null()) } +} + +pub fn leftmost_8_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_8_2(dst, src, std::ptr::null()) } +} + +pub fn leftmost_8_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::leftmost_8_4(dst, src, std::ptr::null()) } +} + pub fn linear_combination_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::linear_combination_1(dst, src, std::ptr::null()) } } @@ -687,6 +1091,10 @@ pub fn lock_time(dst: &mut CFrameItem, src: CFrameItem, env: &CElementsTxEnv) -> unsafe { elements_ffi::lock_time(dst, src, env) } } +pub fn low_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::low_1(dst, src, std::ptr::null()) } +} + pub fn low_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::low_16(dst, src, std::ptr::null()) } } @@ -719,6 +1127,10 @@ pub fn lt_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::lt_8(dst, src, std::ptr::null()) } } +pub fn maj_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::maj_1(dst, src, std::ptr::null()) } +} + pub fn maj_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::maj_16(dst, src, std::ptr::null()) } } @@ -863,6 +1275,10 @@ pub fn one_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::one_8(dst, src, std::ptr::null()) } } +pub fn or_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::or_1(dst, src, std::ptr::null()) } +} + pub fn or_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::or_16(dst, src, std::ptr::null()) } } @@ -959,6 +1375,230 @@ pub fn reissuance_entropy(dst: &mut CFrameItem, src: CFrameItem, env: &CElements unsafe { elements_ffi::reissuance_entropy(dst, src, env) } } +pub fn right_extend_16_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_extend_16_32(dst, src, std::ptr::null()) } +} + +pub fn right_extend_16_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_extend_16_64(dst, src, std::ptr::null()) } +} + +pub fn right_extend_32_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_extend_32_64(dst, src, std::ptr::null()) } +} + +pub fn right_extend_8_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_extend_8_16(dst, src, std::ptr::null()) } +} + +pub fn right_extend_8_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_extend_8_32(dst, src, std::ptr::null()) } +} + +pub fn right_extend_8_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_extend_8_64(dst, src, std::ptr::null()) } +} + +pub fn right_pad_high_16_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_high_16_32(dst, src, std::ptr::null()) } +} + +pub fn right_pad_high_16_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_high_16_64(dst, src, std::ptr::null()) } +} + +pub fn right_pad_high_1_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_high_1_16(dst, src, std::ptr::null()) } +} + +pub fn right_pad_high_1_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_high_1_32(dst, src, std::ptr::null()) } +} + +pub fn right_pad_high_1_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_high_1_64(dst, src, std::ptr::null()) } +} + +pub fn right_pad_high_1_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_high_1_8(dst, src, std::ptr::null()) } +} + +pub fn right_pad_high_32_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_high_32_64(dst, src, std::ptr::null()) } +} + +pub fn right_pad_high_8_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_high_8_16(dst, src, std::ptr::null()) } +} + +pub fn right_pad_high_8_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_high_8_32(dst, src, std::ptr::null()) } +} + +pub fn right_pad_high_8_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_high_8_64(dst, src, std::ptr::null()) } +} + +pub fn right_pad_low_16_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_low_16_32(dst, src, std::ptr::null()) } +} + +pub fn right_pad_low_16_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_low_16_64(dst, src, std::ptr::null()) } +} + +pub fn right_pad_low_1_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_low_1_16(dst, src, std::ptr::null()) } +} + +pub fn right_pad_low_1_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_low_1_32(dst, src, std::ptr::null()) } +} + +pub fn right_pad_low_1_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_low_1_64(dst, src, std::ptr::null()) } +} + +pub fn right_pad_low_1_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_low_1_8(dst, src, std::ptr::null()) } +} + +pub fn right_pad_low_32_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_low_32_64(dst, src, std::ptr::null()) } +} + +pub fn right_pad_low_8_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_low_8_16(dst, src, std::ptr::null()) } +} + +pub fn right_pad_low_8_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_low_8_32(dst, src, std::ptr::null()) } +} + +pub fn right_pad_low_8_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_pad_low_8_64(dst, src, std::ptr::null()) } +} + +pub fn right_rotate_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_rotate_16(dst, src, std::ptr::null()) } +} + +pub fn right_rotate_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_rotate_32(dst, src, std::ptr::null()) } +} + +pub fn right_rotate_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_rotate_64(dst, src, std::ptr::null()) } +} + +pub fn right_rotate_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_rotate_8(dst, src, std::ptr::null()) } +} + +pub fn right_shift_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_shift_16(dst, src, std::ptr::null()) } +} + +pub fn right_shift_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_shift_32(dst, src, std::ptr::null()) } +} + +pub fn right_shift_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_shift_64(dst, src, std::ptr::null()) } +} + +pub fn right_shift_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_shift_8(dst, src, std::ptr::null()) } +} + +pub fn right_shift_with_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_shift_with_16(dst, src, std::ptr::null()) } +} + +pub fn right_shift_with_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_shift_with_32(dst, src, std::ptr::null()) } +} + +pub fn right_shift_with_64(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_shift_with_64(dst, src, std::ptr::null()) } +} + +pub fn right_shift_with_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::right_shift_with_8(dst, src, std::ptr::null()) } +} + +pub fn rightmost_16_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_16_1(dst, src, std::ptr::null()) } +} + +pub fn rightmost_16_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_16_2(dst, src, std::ptr::null()) } +} + +pub fn rightmost_16_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_16_4(dst, src, std::ptr::null()) } +} + +pub fn rightmost_16_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_16_8(dst, src, std::ptr::null()) } +} + +pub fn rightmost_32_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_32_1(dst, src, std::ptr::null()) } +} + +pub fn rightmost_32_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_32_16(dst, src, std::ptr::null()) } +} + +pub fn rightmost_32_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_32_2(dst, src, std::ptr::null()) } +} + +pub fn rightmost_32_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_32_4(dst, src, std::ptr::null()) } +} + +pub fn rightmost_32_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_32_8(dst, src, std::ptr::null()) } +} + +pub fn rightmost_64_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_64_1(dst, src, std::ptr::null()) } +} + +pub fn rightmost_64_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_64_16(dst, src, std::ptr::null()) } +} + +pub fn rightmost_64_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_64_2(dst, src, std::ptr::null()) } +} + +pub fn rightmost_64_32(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_64_32(dst, src, std::ptr::null()) } +} + +pub fn rightmost_64_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_64_4(dst, src, std::ptr::null()) } +} + +pub fn rightmost_64_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_64_8(dst, src, std::ptr::null()) } +} + +pub fn rightmost_8_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_8_1(dst, src, std::ptr::null()) } +} + +pub fn rightmost_8_2(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_8_2(dst, src, std::ptr::null()) } +} + +pub fn rightmost_8_4(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::rightmost_8_4(dst, src, std::ptr::null()) } +} + pub fn scalar_add(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::scalar_add(dst, src, std::ptr::null()) } } @@ -1063,6 +1703,10 @@ pub fn sig_all_hash(dst: &mut CFrameItem, src: CFrameItem, env: &CElementsTxEnv) unsafe { elements_ffi::sig_all_hash(dst, src, env) } } +pub fn some_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::some_1(dst, src, std::ptr::null()) } +} + pub fn some_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::some_16(dst, src, std::ptr::null()) } } @@ -1147,6 +1791,10 @@ pub fn version(dst: &mut CFrameItem, src: CFrameItem, env: &CElementsTxEnv) -> b unsafe { elements_ffi::version(dst, src, env) } } +pub fn xor_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::xor_1(dst, src, std::ptr::null()) } +} + pub fn xor_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::xor_16(dst, src, std::ptr::null()) } } @@ -1163,6 +1811,10 @@ pub fn xor_8(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::xor_8(dst, src, std::ptr::null()) } } +pub fn xor_xor_1(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { + unsafe { elements_ffi::xor_xor_1(dst, src, std::ptr::null()) } +} + pub fn xor_xor_16(dst: &mut CFrameItem, src: CFrameItem, _env: &T) -> bool { unsafe { elements_ffi::xor_xor_16(dst, src, std::ptr::null()) } } diff --git a/src/jet/init/bitcoin.rs b/src/jet/init/bitcoin.rs index e784f3c3..25e58a33 100644 --- a/src/jet/init/bitcoin.rs +++ b/src/jet/init/bitcoin.rs @@ -23,11 +23,13 @@ pub enum Bitcoin { All32, All64, All8, + And1, And16, And32, And64, And8, Bip0340Verify, + Ch1, Ch16, Ch32, Ch64, @@ -37,6 +39,7 @@ pub enum Bitcoin { CheckLockHeight, CheckLockTime, CheckSigVerify, + Complement1, Complement16, Complement32, Complement64, @@ -64,6 +67,7 @@ pub enum Bitcoin { Divides32, Divides64, Divides8, + Eq1, Eq16, Eq256, Eq32, @@ -91,10 +95,46 @@ pub enum Bitcoin { FullIncrement32, FullIncrement64, FullIncrement8, + FullLeftShift16_1, + FullLeftShift16_2, + FullLeftShift16_4, + FullLeftShift16_8, + FullLeftShift32_1, + FullLeftShift32_16, + FullLeftShift32_2, + FullLeftShift32_4, + FullLeftShift32_8, + FullLeftShift64_1, + FullLeftShift64_16, + FullLeftShift64_2, + FullLeftShift64_32, + FullLeftShift64_4, + FullLeftShift64_8, + FullLeftShift8_1, + FullLeftShift8_2, + FullLeftShift8_4, FullMultiply16, FullMultiply32, FullMultiply64, FullMultiply8, + FullRightShift16_1, + FullRightShift16_2, + FullRightShift16_4, + FullRightShift16_8, + FullRightShift32_1, + FullRightShift32_16, + FullRightShift32_2, + FullRightShift32_4, + FullRightShift32_8, + FullRightShift64_1, + FullRightShift64_16, + FullRightShift64_2, + FullRightShift64_32, + FullRightShift64_4, + FullRightShift64_8, + FullRightShift8_1, + FullRightShift8_2, + FullRightShift8_4, FullSubtract16, FullSubtract32, FullSubtract64, @@ -114,6 +154,7 @@ pub enum Bitcoin { GejXEquiv, GejYIsOdd, Generate, + High1, High16, High32, High64, @@ -140,9 +181,70 @@ pub enum Bitcoin { Le32, Le64, Le8, + LeftExtend16_32, + LeftExtend16_64, + LeftExtend1_16, + LeftExtend1_32, + LeftExtend1_64, + LeftExtend1_8, + LeftExtend32_64, + LeftExtend8_16, + LeftExtend8_32, + LeftExtend8_64, + LeftPadHigh16_32, + LeftPadHigh16_64, + LeftPadHigh1_16, + LeftPadHigh1_32, + LeftPadHigh1_64, + LeftPadHigh1_8, + LeftPadHigh32_64, + LeftPadHigh8_16, + LeftPadHigh8_32, + LeftPadHigh8_64, + LeftPadLow16_32, + LeftPadLow16_64, + LeftPadLow1_16, + LeftPadLow1_32, + LeftPadLow1_64, + LeftPadLow1_8, + LeftPadLow32_64, + LeftPadLow8_16, + LeftPadLow8_32, + LeftPadLow8_64, + LeftRotate16, + LeftRotate32, + LeftRotate64, + LeftRotate8, + LeftShift16, + LeftShift32, + LeftShift64, + LeftShift8, + LeftShiftWith16, + LeftShiftWith32, + LeftShiftWith64, + LeftShiftWith8, + Leftmost16_1, + Leftmost16_2, + Leftmost16_4, + Leftmost16_8, + Leftmost32_1, + Leftmost32_16, + Leftmost32_2, + Leftmost32_4, + Leftmost32_8, + Leftmost64_1, + Leftmost64_16, + Leftmost64_2, + Leftmost64_32, + Leftmost64_4, + Leftmost64_8, + Leftmost8_1, + Leftmost8_2, + Leftmost8_4, LinearCombination1, LinearVerify1, LockTime, + Low1, Low16, Low32, Low64, @@ -151,6 +253,7 @@ pub enum Bitcoin { Lt32, Lt64, Lt8, + Maj1, Maj16, Maj32, Maj64, @@ -185,6 +288,7 @@ pub enum Bitcoin { One32, One64, One8, + Or1, Or16, Or32, Or64, @@ -194,6 +298,62 @@ pub enum Bitcoin { ParseLock, ParseSequence, PointVerify1, + RightExtend16_32, + RightExtend16_64, + RightExtend32_64, + RightExtend8_16, + RightExtend8_32, + RightExtend8_64, + RightPadHigh16_32, + RightPadHigh16_64, + RightPadHigh1_16, + RightPadHigh1_32, + RightPadHigh1_64, + RightPadHigh1_8, + RightPadHigh32_64, + RightPadHigh8_16, + RightPadHigh8_32, + RightPadHigh8_64, + RightPadLow16_32, + RightPadLow16_64, + RightPadLow1_16, + RightPadLow1_32, + RightPadLow1_64, + RightPadLow1_8, + RightPadLow32_64, + RightPadLow8_16, + RightPadLow8_32, + RightPadLow8_64, + RightRotate16, + RightRotate32, + RightRotate64, + RightRotate8, + RightShift16, + RightShift32, + RightShift64, + RightShift8, + RightShiftWith16, + RightShiftWith32, + RightShiftWith64, + RightShiftWith8, + Rightmost16_1, + Rightmost16_2, + Rightmost16_4, + Rightmost16_8, + Rightmost32_1, + Rightmost32_16, + Rightmost32_2, + Rightmost32_4, + Rightmost32_8, + Rightmost64_1, + Rightmost64_16, + Rightmost64_2, + Rightmost64_32, + Rightmost64_4, + Rightmost64_8, + Rightmost8_1, + Rightmost8_2, + Rightmost8_4, ScalarAdd, ScalarInvert, ScalarIsZero, @@ -219,6 +379,7 @@ pub enum Bitcoin { Sha256Ctx8Finalize, Sha256Ctx8Init, Sha256Iv, + Some1, Some16, Some32, Some64, @@ -238,10 +399,12 @@ pub enum Bitcoin { TxLockTime, Verify, Version, + Xor1, Xor16, Xor32, Xor64, Xor8, + XorXor1, XorXor16, XorXor32, XorXor64, @@ -271,11 +434,13 @@ impl Jet for Bitcoin { Bitcoin::All32 => b"i", Bitcoin::All64 => b"l", Bitcoin::All8 => b"***22*22**22*22", + Bitcoin::And1 => b"*22", Bitcoin::And16 => b"i", Bitcoin::And32 => b"l", Bitcoin::And64 => b"*ll", Bitcoin::And8 => b"****22*22**22*22***22*22**22*22", Bitcoin::Bip0340Verify => b"**hh*hh", + Bitcoin::Ch1 => b"*2*22", Bitcoin::Ch16 => b"*****22*22**22*22***22*22**22*22i", Bitcoin::Ch32 => b"*il", Bitcoin::Ch64 => b"*l*ll", @@ -285,6 +450,7 @@ impl Jet for Bitcoin { Bitcoin::CheckLockHeight => b"i", Bitcoin::CheckLockTime => b"i", Bitcoin::CheckSigVerify => b"**h*hh*hh", + Bitcoin::Complement1 => b"2", Bitcoin::Complement16 => b"****22*22**22*22***22*22**22*22", Bitcoin::Complement32 => b"i", Bitcoin::Complement64 => b"l", @@ -312,6 +478,7 @@ impl Jet for Bitcoin { Bitcoin::Divides32 => b"l", Bitcoin::Divides64 => b"*ll", Bitcoin::Divides8 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Eq1 => b"*22", Bitcoin::Eq16 => b"i", Bitcoin::Eq256 => b"*hh", Bitcoin::Eq32 => b"l", @@ -339,10 +506,46 @@ impl Jet for Bitcoin { Bitcoin::FullIncrement32 => b"*2i", Bitcoin::FullIncrement64 => b"*2l", Bitcoin::FullIncrement8 => b"*2***22*22**22*22", + Bitcoin::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222", + Bitcoin::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22", + Bitcoin::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22", + Bitcoin::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22", + Bitcoin::FullLeftShift32_1 => b"*i2", + Bitcoin::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22", + Bitcoin::FullLeftShift32_2 => b"*i*22", + Bitcoin::FullLeftShift32_4 => b"*i**22*22", + Bitcoin::FullLeftShift32_8 => b"*i***22*22**22*22", + Bitcoin::FullLeftShift64_1 => b"*l2", + Bitcoin::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22", + Bitcoin::FullLeftShift64_2 => b"*l*22", + Bitcoin::FullLeftShift64_32 => b"*li", + Bitcoin::FullLeftShift64_4 => b"*l**22*22", + Bitcoin::FullLeftShift64_8 => b"*l***22*22**22*22", + Bitcoin::FullLeftShift8_1 => b"****22*22**22*222", + Bitcoin::FullLeftShift8_2 => b"****22*22**22*22*22", + Bitcoin::FullLeftShift8_4 => b"****22*22**22*22**22*22", Bitcoin::FullMultiply16 => b"l", Bitcoin::FullMultiply32 => b"*ll", Bitcoin::FullMultiply64 => b"h", Bitcoin::FullMultiply8 => b"i", + Bitcoin::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22", + Bitcoin::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22", + Bitcoin::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22", + Bitcoin::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22", + Bitcoin::FullRightShift32_1 => b"*2i", + Bitcoin::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i", + Bitcoin::FullRightShift32_2 => b"**22i", + Bitcoin::FullRightShift32_4 => b"***22*22i", + Bitcoin::FullRightShift32_8 => b"****22*22**22*22i", + Bitcoin::FullRightShift64_1 => b"*2l", + Bitcoin::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l", + Bitcoin::FullRightShift64_2 => b"**22l", + Bitcoin::FullRightShift64_32 => b"*il", + Bitcoin::FullRightShift64_4 => b"***22*22l", + Bitcoin::FullRightShift64_8 => b"****22*22**22*22l", + Bitcoin::FullRightShift8_1 => b"*2***22*22**22*22", + Bitcoin::FullRightShift8_2 => b"**22***22*22**22*22", + Bitcoin::FullRightShift8_4 => b"***22*22***22*22**22*22", Bitcoin::FullSubtract16 => b"*2i", Bitcoin::FullSubtract32 => b"*2l", Bitcoin::FullSubtract64 => b"*2*ll", @@ -362,6 +565,7 @@ impl Jet for Bitcoin { Bitcoin::GejXEquiv => b"*h**hhh", Bitcoin::GejYIsOdd => b"**hhh", Bitcoin::Generate => b"h", + Bitcoin::High1 => b"1", Bitcoin::High16 => b"1", Bitcoin::High32 => b"1", Bitcoin::High64 => b"1", @@ -388,9 +592,70 @@ impl Jet for Bitcoin { Bitcoin::Le32 => b"l", Bitcoin::Le64 => b"*ll", Bitcoin::Le8 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftExtend1_16 => b"2", + Bitcoin::LeftExtend1_32 => b"2", + Bitcoin::LeftExtend1_64 => b"2", + Bitcoin::LeftExtend1_8 => b"2", + Bitcoin::LeftExtend32_64 => b"i", + Bitcoin::LeftExtend8_16 => b"***22*22**22*22", + Bitcoin::LeftExtend8_32 => b"***22*22**22*22", + Bitcoin::LeftExtend8_64 => b"***22*22**22*22", + Bitcoin::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftPadHigh1_16 => b"2", + Bitcoin::LeftPadHigh1_32 => b"2", + Bitcoin::LeftPadHigh1_64 => b"2", + Bitcoin::LeftPadHigh1_8 => b"2", + Bitcoin::LeftPadHigh32_64 => b"i", + Bitcoin::LeftPadHigh8_16 => b"***22*22**22*22", + Bitcoin::LeftPadHigh8_32 => b"***22*22**22*22", + Bitcoin::LeftPadHigh8_64 => b"***22*22**22*22", + Bitcoin::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftPadLow1_16 => b"2", + Bitcoin::LeftPadLow1_32 => b"2", + Bitcoin::LeftPadLow1_64 => b"2", + Bitcoin::LeftPadLow1_8 => b"2", + Bitcoin::LeftPadLow32_64 => b"i", + Bitcoin::LeftPadLow8_16 => b"***22*22**22*22", + Bitcoin::LeftPadLow8_32 => b"***22*22**22*22", + Bitcoin::LeftPadLow8_64 => b"***22*22**22*22", + Bitcoin::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22", + Bitcoin::LeftRotate32 => b"****22*22**22*22i", + Bitcoin::LeftRotate64 => b"****22*22**22*22l", + Bitcoin::LeftRotate8 => b"***22*22***22*22**22*22", + Bitcoin::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22", + Bitcoin::LeftShift32 => b"****22*22**22*22i", + Bitcoin::LeftShift64 => b"****22*22**22*22l", + Bitcoin::LeftShift8 => b"***22*22***22*22**22*22", + Bitcoin::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22", + Bitcoin::LeftShiftWith32 => b"*2****22*22**22*22i", + Bitcoin::LeftShiftWith64 => b"*2****22*22**22*22l", + Bitcoin::LeftShiftWith8 => b"*2***22*22***22*22**22*22", + Bitcoin::Leftmost16_1 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Leftmost16_2 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Leftmost16_4 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Leftmost16_8 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Leftmost32_1 => b"i", + Bitcoin::Leftmost32_16 => b"i", + Bitcoin::Leftmost32_2 => b"i", + Bitcoin::Leftmost32_4 => b"i", + Bitcoin::Leftmost32_8 => b"i", + Bitcoin::Leftmost64_1 => b"l", + Bitcoin::Leftmost64_16 => b"l", + Bitcoin::Leftmost64_2 => b"l", + Bitcoin::Leftmost64_32 => b"l", + Bitcoin::Leftmost64_4 => b"l", + Bitcoin::Leftmost64_8 => b"l", + Bitcoin::Leftmost8_1 => b"***22*22**22*22", + Bitcoin::Leftmost8_2 => b"***22*22**22*22", + Bitcoin::Leftmost8_4 => b"***22*22**22*22", Bitcoin::LinearCombination1 => b"**h**hhhh", Bitcoin::LinearVerify1 => b"***h*hhh*hh", Bitcoin::LockTime => b"1", + Bitcoin::Low1 => b"1", Bitcoin::Low16 => b"1", Bitcoin::Low32 => b"1", Bitcoin::Low64 => b"1", @@ -399,6 +664,7 @@ impl Jet for Bitcoin { Bitcoin::Lt32 => b"l", Bitcoin::Lt64 => b"*ll", Bitcoin::Lt8 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Maj1 => b"*2*22", Bitcoin::Maj16 => b"*****22*22**22*22***22*22**22*22i", Bitcoin::Maj32 => b"*il", Bitcoin::Maj64 => b"*l*ll", @@ -433,6 +699,7 @@ impl Jet for Bitcoin { Bitcoin::One32 => b"1", Bitcoin::One64 => b"1", Bitcoin::One8 => b"1", + Bitcoin::Or1 => b"*22", Bitcoin::Or16 => b"i", Bitcoin::Or32 => b"l", Bitcoin::Or64 => b"*ll", @@ -442,6 +709,62 @@ impl Jet for Bitcoin { Bitcoin::ParseLock => b"i", Bitcoin::ParseSequence => b"i", Bitcoin::PointVerify1 => b"***h*2hh*2h", + Bitcoin::RightExtend16_32 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightExtend16_64 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightExtend32_64 => b"i", + Bitcoin::RightExtend8_16 => b"***22*22**22*22", + Bitcoin::RightExtend8_32 => b"***22*22**22*22", + Bitcoin::RightExtend8_64 => b"***22*22**22*22", + Bitcoin::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightPadHigh1_16 => b"2", + Bitcoin::RightPadHigh1_32 => b"2", + Bitcoin::RightPadHigh1_64 => b"2", + Bitcoin::RightPadHigh1_8 => b"2", + Bitcoin::RightPadHigh32_64 => b"i", + Bitcoin::RightPadHigh8_16 => b"***22*22**22*22", + Bitcoin::RightPadHigh8_32 => b"***22*22**22*22", + Bitcoin::RightPadHigh8_64 => b"***22*22**22*22", + Bitcoin::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightPadLow1_16 => b"2", + Bitcoin::RightPadLow1_32 => b"2", + Bitcoin::RightPadLow1_64 => b"2", + Bitcoin::RightPadLow1_8 => b"2", + Bitcoin::RightPadLow32_64 => b"i", + Bitcoin::RightPadLow8_16 => b"***22*22**22*22", + Bitcoin::RightPadLow8_32 => b"***22*22**22*22", + Bitcoin::RightPadLow8_64 => b"***22*22**22*22", + Bitcoin::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22", + Bitcoin::RightRotate32 => b"****22*22**22*22i", + Bitcoin::RightRotate64 => b"****22*22**22*22l", + Bitcoin::RightRotate8 => b"***22*22***22*22**22*22", + Bitcoin::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22", + Bitcoin::RightShift32 => b"****22*22**22*22i", + Bitcoin::RightShift64 => b"****22*22**22*22l", + Bitcoin::RightShift8 => b"***22*22***22*22**22*22", + Bitcoin::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22", + Bitcoin::RightShiftWith32 => b"*2****22*22**22*22i", + Bitcoin::RightShiftWith64 => b"*2****22*22**22*22l", + Bitcoin::RightShiftWith8 => b"*2***22*22***22*22**22*22", + Bitcoin::Rightmost16_1 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Rightmost16_2 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Rightmost16_4 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Rightmost16_8 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Rightmost32_1 => b"i", + Bitcoin::Rightmost32_16 => b"i", + Bitcoin::Rightmost32_2 => b"i", + Bitcoin::Rightmost32_4 => b"i", + Bitcoin::Rightmost32_8 => b"i", + Bitcoin::Rightmost64_1 => b"l", + Bitcoin::Rightmost64_16 => b"l", + Bitcoin::Rightmost64_2 => b"l", + Bitcoin::Rightmost64_32 => b"l", + Bitcoin::Rightmost64_4 => b"l", + Bitcoin::Rightmost64_8 => b"l", + Bitcoin::Rightmost8_1 => b"***22*22**22*22", + Bitcoin::Rightmost8_2 => b"***22*22**22*22", + Bitcoin::Rightmost8_4 => b"***22*22**22*22", Bitcoin::ScalarAdd => b"*hh", Bitcoin::ScalarInvert => b"h", Bitcoin::ScalarIsZero => b"h", @@ -467,6 +790,7 @@ impl Jet for Bitcoin { Bitcoin::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", Bitcoin::Sha256Ctx8Init => b"1", Bitcoin::Sha256Iv => b"1", + Bitcoin::Some1 => b"2", Bitcoin::Some16 => b"****22*22**22*22***22*22**22*22", Bitcoin::Some32 => b"i", Bitcoin::Some64 => b"l", @@ -486,10 +810,12 @@ impl Jet for Bitcoin { Bitcoin::TxLockTime => b"1", Bitcoin::Verify => b"2", Bitcoin::Version => b"1", + Bitcoin::Xor1 => b"*22", Bitcoin::Xor16 => b"i", Bitcoin::Xor32 => b"l", Bitcoin::Xor64 => b"*ll", Bitcoin::Xor8 => b"****22*22**22*22***22*22**22*22", + Bitcoin::XorXor1 => b"*2*22", Bitcoin::XorXor16 => b"*****22*22**22*22***22*22**22*22i", Bitcoin::XorXor32 => b"*il", Bitcoin::XorXor64 => b"*l*ll", @@ -509,11 +835,13 @@ impl Jet for Bitcoin { Bitcoin::All32 => b"2", Bitcoin::All64 => b"2", Bitcoin::All8 => b"2", + Bitcoin::And1 => b"2", Bitcoin::And16 => b"****22*22**22*22***22*22**22*22", Bitcoin::And32 => b"i", Bitcoin::And64 => b"l", Bitcoin::And8 => b"***22*22**22*22", Bitcoin::Bip0340Verify => b"1", + Bitcoin::Ch1 => b"2", Bitcoin::Ch16 => b"****22*22**22*22***22*22**22*22", Bitcoin::Ch32 => b"i", Bitcoin::Ch64 => b"l", @@ -523,6 +851,7 @@ impl Jet for Bitcoin { Bitcoin::CheckLockHeight => b"1", Bitcoin::CheckLockTime => b"1", Bitcoin::CheckSigVerify => b"1", + Bitcoin::Complement1 => b"2", Bitcoin::Complement16 => b"****22*22**22*22***22*22**22*22", Bitcoin::Complement32 => b"i", Bitcoin::Complement64 => b"l", @@ -550,6 +879,7 @@ impl Jet for Bitcoin { Bitcoin::Divides32 => b"2", Bitcoin::Divides64 => b"2", Bitcoin::Divides8 => b"2", + Bitcoin::Eq1 => b"2", Bitcoin::Eq16 => b"2", Bitcoin::Eq256 => b"2", Bitcoin::Eq32 => b"2", @@ -577,10 +907,46 @@ impl Jet for Bitcoin { Bitcoin::FullIncrement32 => b"*2i", Bitcoin::FullIncrement64 => b"*2l", Bitcoin::FullIncrement8 => b"*2***22*22**22*22", + Bitcoin::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22", + Bitcoin::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22", + Bitcoin::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22", + Bitcoin::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22", + Bitcoin::FullLeftShift32_1 => b"*2i", + Bitcoin::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i", + Bitcoin::FullLeftShift32_2 => b"**22i", + Bitcoin::FullLeftShift32_4 => b"***22*22i", + Bitcoin::FullLeftShift32_8 => b"****22*22**22*22i", + Bitcoin::FullLeftShift64_1 => b"*2l", + Bitcoin::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l", + Bitcoin::FullLeftShift64_2 => b"**22l", + Bitcoin::FullLeftShift64_32 => b"*il", + Bitcoin::FullLeftShift64_4 => b"***22*22l", + Bitcoin::FullLeftShift64_8 => b"****22*22**22*22l", + Bitcoin::FullLeftShift8_1 => b"*2***22*22**22*22", + Bitcoin::FullLeftShift8_2 => b"**22***22*22**22*22", + Bitcoin::FullLeftShift8_4 => b"***22*22***22*22**22*22", Bitcoin::FullMultiply16 => b"i", Bitcoin::FullMultiply32 => b"l", Bitcoin::FullMultiply64 => b"*ll", Bitcoin::FullMultiply8 => b"****22*22**22*22***22*22**22*22", + Bitcoin::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222", + Bitcoin::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22", + Bitcoin::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22", + Bitcoin::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22", + Bitcoin::FullRightShift32_1 => b"*i2", + Bitcoin::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22", + Bitcoin::FullRightShift32_2 => b"*i*22", + Bitcoin::FullRightShift32_4 => b"*i**22*22", + Bitcoin::FullRightShift32_8 => b"*i***22*22**22*22", + Bitcoin::FullRightShift64_1 => b"*l2", + Bitcoin::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22", + Bitcoin::FullRightShift64_2 => b"*l*22", + Bitcoin::FullRightShift64_32 => b"*li", + Bitcoin::FullRightShift64_4 => b"*l**22*22", + Bitcoin::FullRightShift64_8 => b"*l***22*22**22*22", + Bitcoin::FullRightShift8_1 => b"****22*22**22*222", + Bitcoin::FullRightShift8_2 => b"****22*22**22*22*22", + Bitcoin::FullRightShift8_4 => b"****22*22**22*22**22*22", Bitcoin::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22", Bitcoin::FullSubtract32 => b"*2i", Bitcoin::FullSubtract64 => b"*2l", @@ -600,6 +966,7 @@ impl Jet for Bitcoin { Bitcoin::GejXEquiv => b"2", Bitcoin::GejYIsOdd => b"2", Bitcoin::Generate => b"**hhh", + Bitcoin::High1 => b"2", Bitcoin::High16 => b"****22*22**22*22***22*22**22*22", Bitcoin::High32 => b"i", Bitcoin::High64 => b"l", @@ -626,9 +993,70 @@ impl Jet for Bitcoin { Bitcoin::Le32 => b"2", Bitcoin::Le64 => b"2", Bitcoin::Le8 => b"2", + Bitcoin::LeftExtend16_32 => b"i", + Bitcoin::LeftExtend16_64 => b"l", + Bitcoin::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftExtend1_32 => b"i", + Bitcoin::LeftExtend1_64 => b"l", + Bitcoin::LeftExtend1_8 => b"***22*22**22*22", + Bitcoin::LeftExtend32_64 => b"l", + Bitcoin::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftExtend8_32 => b"i", + Bitcoin::LeftExtend8_64 => b"l", + Bitcoin::LeftPadHigh16_32 => b"i", + Bitcoin::LeftPadHigh16_64 => b"l", + Bitcoin::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftPadHigh1_32 => b"i", + Bitcoin::LeftPadHigh1_64 => b"l", + Bitcoin::LeftPadHigh1_8 => b"***22*22**22*22", + Bitcoin::LeftPadHigh32_64 => b"l", + Bitcoin::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftPadHigh8_32 => b"i", + Bitcoin::LeftPadHigh8_64 => b"l", + Bitcoin::LeftPadLow16_32 => b"i", + Bitcoin::LeftPadLow16_64 => b"l", + Bitcoin::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftPadLow1_32 => b"i", + Bitcoin::LeftPadLow1_64 => b"l", + Bitcoin::LeftPadLow1_8 => b"***22*22**22*22", + Bitcoin::LeftPadLow32_64 => b"l", + Bitcoin::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftPadLow8_32 => b"i", + Bitcoin::LeftPadLow8_64 => b"l", + Bitcoin::LeftRotate16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftRotate32 => b"i", + Bitcoin::LeftRotate64 => b"l", + Bitcoin::LeftRotate8 => b"***22*22**22*22", + Bitcoin::LeftShift16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftShift32 => b"i", + Bitcoin::LeftShift64 => b"l", + Bitcoin::LeftShift8 => b"***22*22**22*22", + Bitcoin::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::LeftShiftWith32 => b"i", + Bitcoin::LeftShiftWith64 => b"l", + Bitcoin::LeftShiftWith8 => b"***22*22**22*22", + Bitcoin::Leftmost16_1 => b"2", + Bitcoin::Leftmost16_2 => b"*22", + Bitcoin::Leftmost16_4 => b"**22*22", + Bitcoin::Leftmost16_8 => b"***22*22**22*22", + Bitcoin::Leftmost32_1 => b"2", + Bitcoin::Leftmost32_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Leftmost32_2 => b"*22", + Bitcoin::Leftmost32_4 => b"**22*22", + Bitcoin::Leftmost32_8 => b"***22*22**22*22", + Bitcoin::Leftmost64_1 => b"2", + Bitcoin::Leftmost64_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Leftmost64_2 => b"*22", + Bitcoin::Leftmost64_32 => b"i", + Bitcoin::Leftmost64_4 => b"**22*22", + Bitcoin::Leftmost64_8 => b"***22*22**22*22", + Bitcoin::Leftmost8_1 => b"2", + Bitcoin::Leftmost8_2 => b"*22", + Bitcoin::Leftmost8_4 => b"**22*22", Bitcoin::LinearCombination1 => b"**hhh", Bitcoin::LinearVerify1 => b"1", Bitcoin::LockTime => b"i", + Bitcoin::Low1 => b"2", Bitcoin::Low16 => b"****22*22**22*22***22*22**22*22", Bitcoin::Low32 => b"i", Bitcoin::Low64 => b"l", @@ -637,6 +1065,7 @@ impl Jet for Bitcoin { Bitcoin::Lt32 => b"2", Bitcoin::Lt64 => b"2", Bitcoin::Lt8 => b"2", + Bitcoin::Maj1 => b"2", Bitcoin::Maj16 => b"****22*22**22*22***22*22**22*22", Bitcoin::Maj32 => b"i", Bitcoin::Maj64 => b"l", @@ -671,6 +1100,7 @@ impl Jet for Bitcoin { Bitcoin::One32 => b"i", Bitcoin::One64 => b"l", Bitcoin::One8 => b"***22*22**22*22", + Bitcoin::Or1 => b"2", Bitcoin::Or16 => b"****22*22**22*22***22*22**22*22", Bitcoin::Or32 => b"i", Bitcoin::Or64 => b"l", @@ -680,6 +1110,62 @@ impl Jet for Bitcoin { Bitcoin::ParseLock => b"+ii", Bitcoin::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22", Bitcoin::PointVerify1 => b"1", + Bitcoin::RightExtend16_32 => b"i", + Bitcoin::RightExtend16_64 => b"l", + Bitcoin::RightExtend32_64 => b"l", + Bitcoin::RightExtend8_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightExtend8_32 => b"i", + Bitcoin::RightExtend8_64 => b"l", + Bitcoin::RightPadHigh16_32 => b"i", + Bitcoin::RightPadHigh16_64 => b"l", + Bitcoin::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightPadHigh1_32 => b"i", + Bitcoin::RightPadHigh1_64 => b"l", + Bitcoin::RightPadHigh1_8 => b"***22*22**22*22", + Bitcoin::RightPadHigh32_64 => b"l", + Bitcoin::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightPadHigh8_32 => b"i", + Bitcoin::RightPadHigh8_64 => b"l", + Bitcoin::RightPadLow16_32 => b"i", + Bitcoin::RightPadLow16_64 => b"l", + Bitcoin::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightPadLow1_32 => b"i", + Bitcoin::RightPadLow1_64 => b"l", + Bitcoin::RightPadLow1_8 => b"***22*22**22*22", + Bitcoin::RightPadLow32_64 => b"l", + Bitcoin::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightPadLow8_32 => b"i", + Bitcoin::RightPadLow8_64 => b"l", + Bitcoin::RightRotate16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightRotate32 => b"i", + Bitcoin::RightRotate64 => b"l", + Bitcoin::RightRotate8 => b"***22*22**22*22", + Bitcoin::RightShift16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightShift32 => b"i", + Bitcoin::RightShift64 => b"l", + Bitcoin::RightShift8 => b"***22*22**22*22", + Bitcoin::RightShiftWith16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::RightShiftWith32 => b"i", + Bitcoin::RightShiftWith64 => b"l", + Bitcoin::RightShiftWith8 => b"***22*22**22*22", + Bitcoin::Rightmost16_1 => b"2", + Bitcoin::Rightmost16_2 => b"*22", + Bitcoin::Rightmost16_4 => b"**22*22", + Bitcoin::Rightmost16_8 => b"***22*22**22*22", + Bitcoin::Rightmost32_1 => b"2", + Bitcoin::Rightmost32_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Rightmost32_2 => b"*22", + Bitcoin::Rightmost32_4 => b"**22*22", + Bitcoin::Rightmost32_8 => b"***22*22**22*22", + Bitcoin::Rightmost64_1 => b"2", + Bitcoin::Rightmost64_16 => b"****22*22**22*22***22*22**22*22", + Bitcoin::Rightmost64_2 => b"*22", + Bitcoin::Rightmost64_32 => b"i", + Bitcoin::Rightmost64_4 => b"**22*22", + Bitcoin::Rightmost64_8 => b"***22*22**22*22", + Bitcoin::Rightmost8_1 => b"2", + Bitcoin::Rightmost8_2 => b"*22", + Bitcoin::Rightmost8_4 => b"**22*22", Bitcoin::ScalarAdd => b"h", Bitcoin::ScalarInvert => b"h", Bitcoin::ScalarIsZero => b"2", @@ -705,6 +1191,7 @@ impl Jet for Bitcoin { Bitcoin::Sha256Ctx8Finalize => b"h", Bitcoin::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", Bitcoin::Sha256Iv => b"h", + Bitcoin::Some1 => b"2", Bitcoin::Some16 => b"2", Bitcoin::Some32 => b"2", Bitcoin::Some64 => b"2", @@ -724,10 +1211,12 @@ impl Jet for Bitcoin { Bitcoin::TxLockTime => b"i", Bitcoin::Verify => b"1", Bitcoin::Version => b"i", + Bitcoin::Xor1 => b"2", Bitcoin::Xor16 => b"****22*22**22*22***22*22**22*22", Bitcoin::Xor32 => b"i", Bitcoin::Xor64 => b"l", Bitcoin::Xor8 => b"***22*22**22*22", + Bitcoin::XorXor1 => b"2", Bitcoin::XorXor16 => b"****22*22**22*22***22*22**22*22", Bitcoin::XorXor32 => b"i", Bitcoin::XorXor64 => b"l", @@ -740,42 +1229,52 @@ impl Jet for Bitcoin { fn encode(&self, w: &mut BitWriter) -> std::io::Result { let (n, len) = match self { Bitcoin::Verify => (0, 3), + Bitcoin::Low1 => (8, 6), Bitcoin::Low8 => (37, 8), Bitcoin::Low16 => (304, 11), Bitcoin::Low32 => (305, 11), Bitcoin::Low64 => (306, 11), + Bitcoin::High1 => (10, 6), Bitcoin::High8 => (45, 8), Bitcoin::High16 => (368, 11), Bitcoin::High32 => (369, 11), Bitcoin::High64 => (370, 11), + Bitcoin::Complement1 => (96, 9), Bitcoin::Complement8 => (389, 11), Bitcoin::Complement16 => (3120, 14), Bitcoin::Complement32 => (3121, 14), Bitcoin::Complement64 => (3122, 14), + Bitcoin::And1 => (98, 9), Bitcoin::And8 => (397, 11), Bitcoin::And16 => (3184, 14), Bitcoin::And32 => (3185, 14), Bitcoin::And64 => (3186, 14), + Bitcoin::Or1 => (100, 9), Bitcoin::Or8 => (405, 11), Bitcoin::Or16 => (3248, 14), Bitcoin::Or32 => (3249, 14), Bitcoin::Or64 => (3250, 14), + Bitcoin::Xor1 => (102, 9), Bitcoin::Xor8 => (413, 11), Bitcoin::Xor16 => (3312, 14), Bitcoin::Xor32 => (3313, 14), Bitcoin::Xor64 => (3314, 14), + Bitcoin::Maj1 => (208, 10), Bitcoin::Maj8 => (837, 12), Bitcoin::Maj16 => (6704, 15), Bitcoin::Maj32 => (6705, 15), Bitcoin::Maj64 => (6706, 15), + Bitcoin::XorXor1 => (210, 10), Bitcoin::XorXor8 => (845, 12), Bitcoin::XorXor16 => (6768, 15), Bitcoin::XorXor32 => (6769, 15), Bitcoin::XorXor64 => (6770, 15), + Bitcoin::Ch1 => (212, 10), Bitcoin::Ch8 => (853, 12), Bitcoin::Ch16 => (6832, 15), Bitcoin::Ch32 => (6833, 15), Bitcoin::Ch64 => (6834, 15), + Bitcoin::Some1 => (214, 10), Bitcoin::Some8 => (861, 12), Bitcoin::Some16 => (6896, 15), Bitcoin::Some32 => (6897, 15), @@ -784,11 +1283,164 @@ impl Jet for Bitcoin { Bitcoin::All16 => (6960, 15), Bitcoin::All32 => (6961, 15), Bitcoin::All64 => (6962, 15), + Bitcoin::Eq1 => (218, 10), Bitcoin::Eq8 => (877, 12), Bitcoin::Eq16 => (7024, 15), Bitcoin::Eq32 => (7025, 15), Bitcoin::Eq64 => (7026, 15), Bitcoin::Eq256 => (14056, 16), + Bitcoin::FullLeftShift8_1 => (1765, 13), + Bitcoin::FullLeftShift16_1 => (14128, 16), + Bitcoin::FullLeftShift32_1 => (14129, 16), + Bitcoin::FullLeftShift64_1 => (14130, 16), + Bitcoin::FullLeftShift8_2 => (7076, 15), + Bitcoin::FullLeftShift16_2 => (7077, 15), + Bitcoin::FullLeftShift32_2 => (56624, 18), + Bitcoin::FullLeftShift64_2 => (56625, 18), + Bitcoin::FullLeftShift8_4 => (1770, 13), + Bitcoin::FullLeftShift16_4 => (7084, 15), + Bitcoin::FullLeftShift32_4 => (7085, 15), + Bitcoin::FullLeftShift64_4 => (56688, 18), + Bitcoin::FullLeftShift16_8 => (14176, 16), + Bitcoin::FullLeftShift32_8 => (56708, 18), + Bitcoin::FullLeftShift64_8 => (56709, 18), + Bitcoin::FullLeftShift32_16 => (14178, 16), + Bitcoin::FullLeftShift64_16 => (56716, 18), + Bitcoin::FullLeftShift64_32 => (14180, 16), + Bitcoin::FullRightShift8_1 => (1781, 13), + Bitcoin::FullRightShift16_1 => (14256, 16), + Bitcoin::FullRightShift32_1 => (14257, 16), + Bitcoin::FullRightShift64_1 => (14258, 16), + Bitcoin::FullRightShift8_2 => (7140, 15), + Bitcoin::FullRightShift16_2 => (7141, 15), + Bitcoin::FullRightShift32_2 => (57136, 18), + Bitcoin::FullRightShift64_2 => (57137, 18), + Bitcoin::FullRightShift8_4 => (1786, 13), + Bitcoin::FullRightShift16_4 => (7148, 15), + Bitcoin::FullRightShift32_4 => (7149, 15), + Bitcoin::FullRightShift64_4 => (57200, 18), + Bitcoin::FullRightShift16_8 => (14304, 16), + Bitcoin::FullRightShift32_8 => (57220, 18), + Bitcoin::FullRightShift64_8 => (57221, 18), + Bitcoin::FullRightShift32_16 => (14306, 16), + Bitcoin::FullRightShift64_16 => (57228, 18), + Bitcoin::FullRightShift64_32 => (14308, 16), + Bitcoin::Leftmost8_1 => (28677, 17), + Bitcoin::Leftmost16_1 => (229424, 20), + Bitcoin::Leftmost32_1 => (229425, 20), + Bitcoin::Leftmost64_1 => (229426, 20), + Bitcoin::Leftmost8_2 => (114724, 19), + Bitcoin::Leftmost16_2 => (114725, 19), + Bitcoin::Leftmost32_2 => (917808, 22), + Bitcoin::Leftmost64_2 => (917809, 22), + Bitcoin::Leftmost8_4 => (28682, 17), + Bitcoin::Leftmost16_4 => (114732, 19), + Bitcoin::Leftmost32_4 => (114733, 19), + Bitcoin::Leftmost64_4 => (917872, 22), + Bitcoin::Leftmost16_8 => (229472, 20), + Bitcoin::Leftmost32_8 => (917892, 22), + Bitcoin::Leftmost64_8 => (917893, 22), + Bitcoin::Leftmost32_16 => (229474, 20), + Bitcoin::Leftmost64_16 => (917900, 22), + Bitcoin::Leftmost64_32 => (229476, 20), + Bitcoin::Rightmost8_1 => (28693, 17), + Bitcoin::Rightmost16_1 => (229552, 20), + Bitcoin::Rightmost32_1 => (229553, 20), + Bitcoin::Rightmost64_1 => (229554, 20), + Bitcoin::Rightmost8_2 => (114788, 19), + Bitcoin::Rightmost16_2 => (114789, 19), + Bitcoin::Rightmost32_2 => (918320, 22), + Bitcoin::Rightmost64_2 => (918321, 22), + Bitcoin::Rightmost8_4 => (28698, 17), + Bitcoin::Rightmost16_4 => (114796, 19), + Bitcoin::Rightmost32_4 => (114797, 19), + Bitcoin::Rightmost64_4 => (918384, 22), + Bitcoin::Rightmost16_8 => (229600, 20), + Bitcoin::Rightmost32_8 => (918404, 22), + Bitcoin::Rightmost64_8 => (918405, 22), + Bitcoin::Rightmost32_16 => (229602, 20), + Bitcoin::Rightmost64_16 => (918412, 22), + Bitcoin::Rightmost64_32 => (229604, 20), + Bitcoin::LeftPadLow1_8 => (28709, 17), + Bitcoin::LeftPadLow1_16 => (229680, 20), + Bitcoin::LeftPadLow1_32 => (229681, 20), + Bitcoin::LeftPadLow1_64 => (229682, 20), + Bitcoin::LeftPadLow8_16 => (229728, 20), + Bitcoin::LeftPadLow8_32 => (918916, 22), + Bitcoin::LeftPadLow8_64 => (918917, 22), + Bitcoin::LeftPadLow16_32 => (229730, 20), + Bitcoin::LeftPadLow16_64 => (918924, 22), + Bitcoin::LeftPadLow32_64 => (229732, 20), + Bitcoin::LeftPadHigh1_8 => (28725, 17), + Bitcoin::LeftPadHigh1_16 => (229808, 20), + Bitcoin::LeftPadHigh1_32 => (229809, 20), + Bitcoin::LeftPadHigh1_64 => (229810, 20), + Bitcoin::LeftPadHigh8_16 => (229856, 20), + Bitcoin::LeftPadHigh8_32 => (919428, 22), + Bitcoin::LeftPadHigh8_64 => (919429, 22), + Bitcoin::LeftPadHigh16_32 => (229858, 20), + Bitcoin::LeftPadHigh16_64 => (919436, 22), + Bitcoin::LeftPadHigh32_64 => (229860, 20), + Bitcoin::LeftExtend1_8 => (28741, 17), + Bitcoin::LeftExtend1_16 => (229936, 20), + Bitcoin::LeftExtend1_32 => (229937, 20), + Bitcoin::LeftExtend1_64 => (229938, 20), + Bitcoin::LeftExtend8_16 => (229984, 20), + Bitcoin::LeftExtend8_32 => (919940, 22), + Bitcoin::LeftExtend8_64 => (919941, 22), + Bitcoin::LeftExtend16_32 => (229986, 20), + Bitcoin::LeftExtend16_64 => (919948, 22), + Bitcoin::LeftExtend32_64 => (229988, 20), + Bitcoin::RightPadLow1_8 => (28757, 17), + Bitcoin::RightPadLow1_16 => (230064, 20), + Bitcoin::RightPadLow1_32 => (230065, 20), + Bitcoin::RightPadLow1_64 => (230066, 20), + Bitcoin::RightPadLow8_16 => (230112, 20), + Bitcoin::RightPadLow8_32 => (920452, 22), + Bitcoin::RightPadLow8_64 => (920453, 22), + Bitcoin::RightPadLow16_32 => (230114, 20), + Bitcoin::RightPadLow16_64 => (920460, 22), + Bitcoin::RightPadLow32_64 => (230116, 20), + Bitcoin::RightPadHigh1_8 => (28773, 17), + Bitcoin::RightPadHigh1_16 => (230192, 20), + Bitcoin::RightPadHigh1_32 => (230193, 20), + Bitcoin::RightPadHigh1_64 => (230194, 20), + Bitcoin::RightPadHigh8_16 => (230240, 20), + Bitcoin::RightPadHigh8_32 => (920964, 22), + Bitcoin::RightPadHigh8_64 => (920965, 22), + Bitcoin::RightPadHigh16_32 => (230242, 20), + Bitcoin::RightPadHigh16_64 => (920972, 22), + Bitcoin::RightPadHigh32_64 => (230244, 20), + Bitcoin::RightExtend8_16 => (230368, 20), + Bitcoin::RightExtend8_32 => (921476, 22), + Bitcoin::RightExtend8_64 => (921477, 22), + Bitcoin::RightExtend16_32 => (230370, 20), + Bitcoin::RightExtend16_64 => (921484, 22), + Bitcoin::RightExtend32_64 => (230372, 20), + Bitcoin::LeftShiftWith8 => (14405, 16), + Bitcoin::LeftShiftWith16 => (115248, 19), + Bitcoin::LeftShiftWith32 => (115249, 19), + Bitcoin::LeftShiftWith64 => (115250, 19), + Bitcoin::RightShiftWith8 => (14413, 16), + Bitcoin::RightShiftWith16 => (115312, 19), + Bitcoin::RightShiftWith32 => (115313, 19), + Bitcoin::RightShiftWith64 => (115314, 19), + Bitcoin::LeftShift8 => (14421, 16), + Bitcoin::LeftShift16 => (115376, 19), + Bitcoin::LeftShift32 => (115377, 19), + Bitcoin::LeftShift64 => (115378, 19), + Bitcoin::RightShift8 => (14429, 16), + Bitcoin::RightShift16 => (115440, 19), + Bitcoin::RightShift32 => (115441, 19), + Bitcoin::RightShift64 => (115442, 19), + Bitcoin::LeftRotate8 => (14437, 16), + Bitcoin::LeftRotate16 => (115504, 19), + Bitcoin::LeftRotate32 => (115505, 19), + Bitcoin::LeftRotate64 => (115506, 19), + Bitcoin::RightRotate8 => (14445, 16), + Bitcoin::RightRotate16 => (115568, 19), + Bitcoin::RightRotate32 => (115569, 19), + Bitcoin::RightRotate64 => (115570, 19), Bitcoin::One8 => (69, 8), Bitcoin::One16 => (560, 11), Bitcoin::One32 => (561, 11), @@ -983,7 +1635,7 @@ impl Jet for Bitcoin { 1 => { 0 => { 0 => { - 0 => {}, + 0 => {Bitcoin::Low1}, 1 => { 0 => { 0 => {}, @@ -1008,7 +1660,7 @@ impl Jet for Bitcoin { } }, 1 => { - 0 => {}, + 0 => {Bitcoin::High1}, 1 => { 0 => { 0 => {}, @@ -1038,7 +1690,7 @@ impl Jet for Bitcoin { 0 => { 0 => { 0 => { - 0 => {}, + 0 => {Bitcoin::Complement1}, 1 => { 0 => { 0 => {}, @@ -1063,7 +1715,7 @@ impl Jet for Bitcoin { } }, 1 => { - 0 => {}, + 0 => {Bitcoin::And1}, 1 => { 0 => { 0 => {}, @@ -1090,7 +1742,7 @@ impl Jet for Bitcoin { }, 1 => { 0 => { - 0 => {}, + 0 => {Bitcoin::Or1}, 1 => { 0 => { 0 => {}, @@ -1115,7 +1767,7 @@ impl Jet for Bitcoin { } }, 1 => { - 0 => {}, + 0 => {Bitcoin::Xor1}, 1 => { 0 => { 0 => {}, @@ -1145,7 +1797,7 @@ impl Jet for Bitcoin { 0 => { 0 => { 0 => { - 0 => {}, + 0 => {Bitcoin::Maj1}, 1 => { 0 => { 0 => {}, @@ -1170,7 +1822,7 @@ impl Jet for Bitcoin { } }, 1 => { - 0 => {}, + 0 => {Bitcoin::XorXor1}, 1 => { 0 => { 0 => {}, @@ -1197,7 +1849,7 @@ impl Jet for Bitcoin { }, 1 => { 0 => { - 0 => {}, + 0 => {Bitcoin::Ch1}, 1 => { 0 => { 0 => {}, @@ -1222,7 +1874,7 @@ impl Jet for Bitcoin { } }, 1 => { - 0 => {}, + 0 => {Bitcoin::Some1}, 1 => { 0 => { 0 => {}, @@ -1276,7 +1928,7 @@ impl Jet for Bitcoin { } }, 1 => { - 0 => {}, + 0 => {Bitcoin::Eq1}, 1 => { 0 => { 0 => {}, @@ -1310,11 +1962,1028 @@ impl Jet for Bitcoin { } } }, - 1 => {} + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::FullLeftShift8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::FullLeftShift16_1}, + 1 => {Bitcoin::FullLeftShift32_1} + }, + 1 => { + 0 => {Bitcoin::FullLeftShift64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Bitcoin::FullLeftShift8_2}, + 1 => {Bitcoin::FullLeftShift16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::FullLeftShift32_2}, + 1 => {Bitcoin::FullLeftShift64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Bitcoin::FullLeftShift8_4}, + 1 => { + 0 => { + 0 => {Bitcoin::FullLeftShift16_4}, + 1 => {Bitcoin::FullLeftShift32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::FullLeftShift64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::FullLeftShift16_8}, + 1 => { + 0 => { + 0 => {Bitcoin::FullLeftShift32_8}, + 1 => {Bitcoin::FullLeftShift64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Bitcoin::FullLeftShift32_16}, + 1 => { + 0 => { + 0 => {Bitcoin::FullLeftShift64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Bitcoin::FullLeftShift64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::FullRightShift8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::FullRightShift16_1}, + 1 => {Bitcoin::FullRightShift32_1} + }, + 1 => { + 0 => {Bitcoin::FullRightShift64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Bitcoin::FullRightShift8_2}, + 1 => {Bitcoin::FullRightShift16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::FullRightShift32_2}, + 1 => {Bitcoin::FullRightShift64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Bitcoin::FullRightShift8_4}, + 1 => { + 0 => { + 0 => {Bitcoin::FullRightShift16_4}, + 1 => {Bitcoin::FullRightShift32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::FullRightShift64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::FullRightShift16_8}, + 1 => { + 0 => { + 0 => {Bitcoin::FullRightShift32_8}, + 1 => {Bitcoin::FullRightShift64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Bitcoin::FullRightShift32_16}, + 1 => { + 0 => { + 0 => {Bitcoin::FullRightShift64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Bitcoin::FullRightShift64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } } } }, - 1 => {} + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::Leftmost8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::Leftmost16_1}, + 1 => {Bitcoin::Leftmost32_1} + }, + 1 => { + 0 => {Bitcoin::Leftmost64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Bitcoin::Leftmost8_2}, + 1 => {Bitcoin::Leftmost16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::Leftmost32_2}, + 1 => {Bitcoin::Leftmost64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Bitcoin::Leftmost8_4}, + 1 => { + 0 => { + 0 => {Bitcoin::Leftmost16_4}, + 1 => {Bitcoin::Leftmost32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::Leftmost64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::Leftmost16_8}, + 1 => { + 0 => { + 0 => {Bitcoin::Leftmost32_8}, + 1 => {Bitcoin::Leftmost64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Bitcoin::Leftmost32_16}, + 1 => { + 0 => { + 0 => {Bitcoin::Leftmost64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Bitcoin::Leftmost64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::Rightmost8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::Rightmost16_1}, + 1 => {Bitcoin::Rightmost32_1} + }, + 1 => { + 0 => {Bitcoin::Rightmost64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Bitcoin::Rightmost8_2}, + 1 => {Bitcoin::Rightmost16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::Rightmost32_2}, + 1 => {Bitcoin::Rightmost64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Bitcoin::Rightmost8_4}, + 1 => { + 0 => { + 0 => {Bitcoin::Rightmost16_4}, + 1 => {Bitcoin::Rightmost32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::Rightmost64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::Rightmost16_8}, + 1 => { + 0 => { + 0 => {Bitcoin::Rightmost32_8}, + 1 => {Bitcoin::Rightmost64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Bitcoin::Rightmost32_16}, + 1 => { + 0 => { + 0 => {Bitcoin::Rightmost64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Bitcoin::Rightmost64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::LeftPadLow1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::LeftPadLow1_16}, + 1 => {Bitcoin::LeftPadLow1_32} + }, + 1 => { + 0 => {Bitcoin::LeftPadLow1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::LeftPadLow8_16}, + 1 => { + 0 => { + 0 => {Bitcoin::LeftPadLow8_32}, + 1 => {Bitcoin::LeftPadLow8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Bitcoin::LeftPadLow16_32}, + 1 => { + 0 => { + 0 => {Bitcoin::LeftPadLow16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Bitcoin::LeftPadLow32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::LeftPadHigh1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::LeftPadHigh1_16}, + 1 => {Bitcoin::LeftPadHigh1_32} + }, + 1 => { + 0 => {Bitcoin::LeftPadHigh1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::LeftPadHigh8_16}, + 1 => { + 0 => { + 0 => {Bitcoin::LeftPadHigh8_32}, + 1 => {Bitcoin::LeftPadHigh8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Bitcoin::LeftPadHigh16_32}, + 1 => { + 0 => { + 0 => {Bitcoin::LeftPadHigh16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Bitcoin::LeftPadHigh32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::LeftExtend1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::LeftExtend1_16}, + 1 => {Bitcoin::LeftExtend1_32} + }, + 1 => { + 0 => {Bitcoin::LeftExtend1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::LeftExtend8_16}, + 1 => { + 0 => { + 0 => {Bitcoin::LeftExtend8_32}, + 1 => {Bitcoin::LeftExtend8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Bitcoin::LeftExtend16_32}, + 1 => { + 0 => { + 0 => {Bitcoin::LeftExtend16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Bitcoin::LeftExtend32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::RightPadLow1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::RightPadLow1_16}, + 1 => {Bitcoin::RightPadLow1_32} + }, + 1 => { + 0 => {Bitcoin::RightPadLow1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::RightPadLow8_16}, + 1 => { + 0 => { + 0 => {Bitcoin::RightPadLow8_32}, + 1 => {Bitcoin::RightPadLow8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Bitcoin::RightPadLow16_32}, + 1 => { + 0 => { + 0 => {Bitcoin::RightPadLow16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Bitcoin::RightPadLow32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::RightPadHigh1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::RightPadHigh1_16}, + 1 => {Bitcoin::RightPadHigh1_32} + }, + 1 => { + 0 => {Bitcoin::RightPadHigh1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::RightPadHigh8_16}, + 1 => { + 0 => { + 0 => {Bitcoin::RightPadHigh8_32}, + 1 => {Bitcoin::RightPadHigh8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Bitcoin::RightPadHigh16_32}, + 1 => { + 0 => { + 0 => {Bitcoin::RightPadHigh16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Bitcoin::RightPadHigh32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::RightExtend8_16}, + 1 => { + 0 => { + 0 => {Bitcoin::RightExtend8_32}, + 1 => {Bitcoin::RightExtend8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Bitcoin::RightExtend16_32}, + 1 => { + 0 => { + 0 => {Bitcoin::RightExtend16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Bitcoin::RightExtend32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::LeftShiftWith8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::LeftShiftWith16}, + 1 => {Bitcoin::LeftShiftWith32} + }, + 1 => { + 0 => {Bitcoin::LeftShiftWith64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::RightShiftWith8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::RightShiftWith16}, + 1 => {Bitcoin::RightShiftWith32} + }, + 1 => { + 0 => {Bitcoin::RightShiftWith64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::LeftShift8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::LeftShift16}, + 1 => {Bitcoin::LeftShift32} + }, + 1 => { + 0 => {Bitcoin::LeftShift64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::RightShift8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::RightShift16}, + 1 => {Bitcoin::RightShift32} + }, + 1 => { + 0 => {Bitcoin::RightShift64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::LeftRotate8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::LeftRotate16}, + 1 => {Bitcoin::LeftRotate32} + }, + 1 => { + 0 => {Bitcoin::LeftRotate64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Bitcoin::RightRotate8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Bitcoin::RightRotate16}, + 1 => {Bitcoin::RightRotate32} + }, + 1 => { + 0 => {Bitcoin::RightRotate64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => {} + } + } + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } } } }, @@ -2376,11 +4045,13 @@ impl fmt::Display for Bitcoin { Bitcoin::All32 => f.write_str("all_32"), Bitcoin::All64 => f.write_str("all_64"), Bitcoin::All8 => f.write_str("all_8"), + Bitcoin::And1 => f.write_str("and_1"), Bitcoin::And16 => f.write_str("and_16"), Bitcoin::And32 => f.write_str("and_32"), Bitcoin::And64 => f.write_str("and_64"), Bitcoin::And8 => f.write_str("and_8"), Bitcoin::Bip0340Verify => f.write_str("bip_0340_verify"), + Bitcoin::Ch1 => f.write_str("ch_1"), Bitcoin::Ch16 => f.write_str("ch_16"), Bitcoin::Ch32 => f.write_str("ch_32"), Bitcoin::Ch64 => f.write_str("ch_64"), @@ -2390,6 +4061,7 @@ impl fmt::Display for Bitcoin { Bitcoin::CheckLockHeight => f.write_str("check_lock_height"), Bitcoin::CheckLockTime => f.write_str("check_lock_time"), Bitcoin::CheckSigVerify => f.write_str("check_sig_verify"), + Bitcoin::Complement1 => f.write_str("complement_1"), Bitcoin::Complement16 => f.write_str("complement_16"), Bitcoin::Complement32 => f.write_str("complement_32"), Bitcoin::Complement64 => f.write_str("complement_64"), @@ -2417,6 +4089,7 @@ impl fmt::Display for Bitcoin { Bitcoin::Divides32 => f.write_str("divides_32"), Bitcoin::Divides64 => f.write_str("divides_64"), Bitcoin::Divides8 => f.write_str("divides_8"), + Bitcoin::Eq1 => f.write_str("eq_1"), Bitcoin::Eq16 => f.write_str("eq_16"), Bitcoin::Eq256 => f.write_str("eq_256"), Bitcoin::Eq32 => f.write_str("eq_32"), @@ -2444,10 +4117,46 @@ impl fmt::Display for Bitcoin { Bitcoin::FullIncrement32 => f.write_str("full_increment_32"), Bitcoin::FullIncrement64 => f.write_str("full_increment_64"), Bitcoin::FullIncrement8 => f.write_str("full_increment_8"), + Bitcoin::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"), + Bitcoin::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"), + Bitcoin::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"), + Bitcoin::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"), + Bitcoin::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"), + Bitcoin::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"), + Bitcoin::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"), + Bitcoin::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"), + Bitcoin::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"), + Bitcoin::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"), + Bitcoin::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"), + Bitcoin::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"), + Bitcoin::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"), + Bitcoin::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"), + Bitcoin::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"), + Bitcoin::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"), + Bitcoin::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"), + Bitcoin::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"), Bitcoin::FullMultiply16 => f.write_str("full_multiply_16"), Bitcoin::FullMultiply32 => f.write_str("full_multiply_32"), Bitcoin::FullMultiply64 => f.write_str("full_multiply_64"), Bitcoin::FullMultiply8 => f.write_str("full_multiply_8"), + Bitcoin::FullRightShift16_1 => f.write_str("full_right_shift_16_1"), + Bitcoin::FullRightShift16_2 => f.write_str("full_right_shift_16_2"), + Bitcoin::FullRightShift16_4 => f.write_str("full_right_shift_16_4"), + Bitcoin::FullRightShift16_8 => f.write_str("full_right_shift_16_8"), + Bitcoin::FullRightShift32_1 => f.write_str("full_right_shift_32_1"), + Bitcoin::FullRightShift32_16 => f.write_str("full_right_shift_32_16"), + Bitcoin::FullRightShift32_2 => f.write_str("full_right_shift_32_2"), + Bitcoin::FullRightShift32_4 => f.write_str("full_right_shift_32_4"), + Bitcoin::FullRightShift32_8 => f.write_str("full_right_shift_32_8"), + Bitcoin::FullRightShift64_1 => f.write_str("full_right_shift_64_1"), + Bitcoin::FullRightShift64_16 => f.write_str("full_right_shift_64_16"), + Bitcoin::FullRightShift64_2 => f.write_str("full_right_shift_64_2"), + Bitcoin::FullRightShift64_32 => f.write_str("full_right_shift_64_32"), + Bitcoin::FullRightShift64_4 => f.write_str("full_right_shift_64_4"), + Bitcoin::FullRightShift64_8 => f.write_str("full_right_shift_64_8"), + Bitcoin::FullRightShift8_1 => f.write_str("full_right_shift_8_1"), + Bitcoin::FullRightShift8_2 => f.write_str("full_right_shift_8_2"), + Bitcoin::FullRightShift8_4 => f.write_str("full_right_shift_8_4"), Bitcoin::FullSubtract16 => f.write_str("full_subtract_16"), Bitcoin::FullSubtract32 => f.write_str("full_subtract_32"), Bitcoin::FullSubtract64 => f.write_str("full_subtract_64"), @@ -2467,6 +4176,7 @@ impl fmt::Display for Bitcoin { Bitcoin::GejXEquiv => f.write_str("gej_x_equiv"), Bitcoin::GejYIsOdd => f.write_str("gej_y_is_odd"), Bitcoin::Generate => f.write_str("generate"), + Bitcoin::High1 => f.write_str("high_1"), Bitcoin::High16 => f.write_str("high_16"), Bitcoin::High32 => f.write_str("high_32"), Bitcoin::High64 => f.write_str("high_64"), @@ -2493,9 +4203,70 @@ impl fmt::Display for Bitcoin { Bitcoin::Le32 => f.write_str("le_32"), Bitcoin::Le64 => f.write_str("le_64"), Bitcoin::Le8 => f.write_str("le_8"), + Bitcoin::LeftExtend16_32 => f.write_str("left_extend_16_32"), + Bitcoin::LeftExtend16_64 => f.write_str("left_extend_16_64"), + Bitcoin::LeftExtend1_16 => f.write_str("left_extend_1_16"), + Bitcoin::LeftExtend1_32 => f.write_str("left_extend_1_32"), + Bitcoin::LeftExtend1_64 => f.write_str("left_extend_1_64"), + Bitcoin::LeftExtend1_8 => f.write_str("left_extend_1_8"), + Bitcoin::LeftExtend32_64 => f.write_str("left_extend_32_64"), + Bitcoin::LeftExtend8_16 => f.write_str("left_extend_8_16"), + Bitcoin::LeftExtend8_32 => f.write_str("left_extend_8_32"), + Bitcoin::LeftExtend8_64 => f.write_str("left_extend_8_64"), + Bitcoin::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"), + Bitcoin::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"), + Bitcoin::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"), + Bitcoin::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"), + Bitcoin::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"), + Bitcoin::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"), + Bitcoin::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"), + Bitcoin::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"), + Bitcoin::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"), + Bitcoin::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"), + Bitcoin::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"), + Bitcoin::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"), + Bitcoin::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"), + Bitcoin::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"), + Bitcoin::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"), + Bitcoin::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"), + Bitcoin::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"), + Bitcoin::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"), + Bitcoin::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"), + Bitcoin::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"), + Bitcoin::LeftRotate16 => f.write_str("left_rotate_16"), + Bitcoin::LeftRotate32 => f.write_str("left_rotate_32"), + Bitcoin::LeftRotate64 => f.write_str("left_rotate_64"), + Bitcoin::LeftRotate8 => f.write_str("left_rotate_8"), + Bitcoin::LeftShift16 => f.write_str("left_shift_16"), + Bitcoin::LeftShift32 => f.write_str("left_shift_32"), + Bitcoin::LeftShift64 => f.write_str("left_shift_64"), + Bitcoin::LeftShift8 => f.write_str("left_shift_8"), + Bitcoin::LeftShiftWith16 => f.write_str("left_shift_with_16"), + Bitcoin::LeftShiftWith32 => f.write_str("left_shift_with_32"), + Bitcoin::LeftShiftWith64 => f.write_str("left_shift_with_64"), + Bitcoin::LeftShiftWith8 => f.write_str("left_shift_with_8"), + Bitcoin::Leftmost16_1 => f.write_str("leftmost_16_1"), + Bitcoin::Leftmost16_2 => f.write_str("leftmost_16_2"), + Bitcoin::Leftmost16_4 => f.write_str("leftmost_16_4"), + Bitcoin::Leftmost16_8 => f.write_str("leftmost_16_8"), + Bitcoin::Leftmost32_1 => f.write_str("leftmost_32_1"), + Bitcoin::Leftmost32_16 => f.write_str("leftmost_32_16"), + Bitcoin::Leftmost32_2 => f.write_str("leftmost_32_2"), + Bitcoin::Leftmost32_4 => f.write_str("leftmost_32_4"), + Bitcoin::Leftmost32_8 => f.write_str("leftmost_32_8"), + Bitcoin::Leftmost64_1 => f.write_str("leftmost_64_1"), + Bitcoin::Leftmost64_16 => f.write_str("leftmost_64_16"), + Bitcoin::Leftmost64_2 => f.write_str("leftmost_64_2"), + Bitcoin::Leftmost64_32 => f.write_str("leftmost_64_32"), + Bitcoin::Leftmost64_4 => f.write_str("leftmost_64_4"), + Bitcoin::Leftmost64_8 => f.write_str("leftmost_64_8"), + Bitcoin::Leftmost8_1 => f.write_str("leftmost_8_1"), + Bitcoin::Leftmost8_2 => f.write_str("leftmost_8_2"), + Bitcoin::Leftmost8_4 => f.write_str("leftmost_8_4"), Bitcoin::LinearCombination1 => f.write_str("linear_combination_1"), Bitcoin::LinearVerify1 => f.write_str("linear_verify_1"), Bitcoin::LockTime => f.write_str("lock_time"), + Bitcoin::Low1 => f.write_str("low_1"), Bitcoin::Low16 => f.write_str("low_16"), Bitcoin::Low32 => f.write_str("low_32"), Bitcoin::Low64 => f.write_str("low_64"), @@ -2504,6 +4275,7 @@ impl fmt::Display for Bitcoin { Bitcoin::Lt32 => f.write_str("lt_32"), Bitcoin::Lt64 => f.write_str("lt_64"), Bitcoin::Lt8 => f.write_str("lt_8"), + Bitcoin::Maj1 => f.write_str("maj_1"), Bitcoin::Maj16 => f.write_str("maj_16"), Bitcoin::Maj32 => f.write_str("maj_32"), Bitcoin::Maj64 => f.write_str("maj_64"), @@ -2538,6 +4310,7 @@ impl fmt::Display for Bitcoin { Bitcoin::One32 => f.write_str("one_32"), Bitcoin::One64 => f.write_str("one_64"), Bitcoin::One8 => f.write_str("one_8"), + Bitcoin::Or1 => f.write_str("or_1"), Bitcoin::Or16 => f.write_str("or_16"), Bitcoin::Or32 => f.write_str("or_32"), Bitcoin::Or64 => f.write_str("or_64"), @@ -2547,6 +4320,62 @@ impl fmt::Display for Bitcoin { Bitcoin::ParseLock => f.write_str("parse_lock"), Bitcoin::ParseSequence => f.write_str("parse_sequence"), Bitcoin::PointVerify1 => f.write_str("point_verify_1"), + Bitcoin::RightExtend16_32 => f.write_str("right_extend_16_32"), + Bitcoin::RightExtend16_64 => f.write_str("right_extend_16_64"), + Bitcoin::RightExtend32_64 => f.write_str("right_extend_32_64"), + Bitcoin::RightExtend8_16 => f.write_str("right_extend_8_16"), + Bitcoin::RightExtend8_32 => f.write_str("right_extend_8_32"), + Bitcoin::RightExtend8_64 => f.write_str("right_extend_8_64"), + Bitcoin::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"), + Bitcoin::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"), + Bitcoin::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"), + Bitcoin::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"), + Bitcoin::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"), + Bitcoin::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"), + Bitcoin::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"), + Bitcoin::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"), + Bitcoin::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"), + Bitcoin::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"), + Bitcoin::RightPadLow16_32 => f.write_str("right_pad_low_16_32"), + Bitcoin::RightPadLow16_64 => f.write_str("right_pad_low_16_64"), + Bitcoin::RightPadLow1_16 => f.write_str("right_pad_low_1_16"), + Bitcoin::RightPadLow1_32 => f.write_str("right_pad_low_1_32"), + Bitcoin::RightPadLow1_64 => f.write_str("right_pad_low_1_64"), + Bitcoin::RightPadLow1_8 => f.write_str("right_pad_low_1_8"), + Bitcoin::RightPadLow32_64 => f.write_str("right_pad_low_32_64"), + Bitcoin::RightPadLow8_16 => f.write_str("right_pad_low_8_16"), + Bitcoin::RightPadLow8_32 => f.write_str("right_pad_low_8_32"), + Bitcoin::RightPadLow8_64 => f.write_str("right_pad_low_8_64"), + Bitcoin::RightRotate16 => f.write_str("right_rotate_16"), + Bitcoin::RightRotate32 => f.write_str("right_rotate_32"), + Bitcoin::RightRotate64 => f.write_str("right_rotate_64"), + Bitcoin::RightRotate8 => f.write_str("right_rotate_8"), + Bitcoin::RightShift16 => f.write_str("right_shift_16"), + Bitcoin::RightShift32 => f.write_str("right_shift_32"), + Bitcoin::RightShift64 => f.write_str("right_shift_64"), + Bitcoin::RightShift8 => f.write_str("right_shift_8"), + Bitcoin::RightShiftWith16 => f.write_str("right_shift_with_16"), + Bitcoin::RightShiftWith32 => f.write_str("right_shift_with_32"), + Bitcoin::RightShiftWith64 => f.write_str("right_shift_with_64"), + Bitcoin::RightShiftWith8 => f.write_str("right_shift_with_8"), + Bitcoin::Rightmost16_1 => f.write_str("rightmost_16_1"), + Bitcoin::Rightmost16_2 => f.write_str("rightmost_16_2"), + Bitcoin::Rightmost16_4 => f.write_str("rightmost_16_4"), + Bitcoin::Rightmost16_8 => f.write_str("rightmost_16_8"), + Bitcoin::Rightmost32_1 => f.write_str("rightmost_32_1"), + Bitcoin::Rightmost32_16 => f.write_str("rightmost_32_16"), + Bitcoin::Rightmost32_2 => f.write_str("rightmost_32_2"), + Bitcoin::Rightmost32_4 => f.write_str("rightmost_32_4"), + Bitcoin::Rightmost32_8 => f.write_str("rightmost_32_8"), + Bitcoin::Rightmost64_1 => f.write_str("rightmost_64_1"), + Bitcoin::Rightmost64_16 => f.write_str("rightmost_64_16"), + Bitcoin::Rightmost64_2 => f.write_str("rightmost_64_2"), + Bitcoin::Rightmost64_32 => f.write_str("rightmost_64_32"), + Bitcoin::Rightmost64_4 => f.write_str("rightmost_64_4"), + Bitcoin::Rightmost64_8 => f.write_str("rightmost_64_8"), + Bitcoin::Rightmost8_1 => f.write_str("rightmost_8_1"), + Bitcoin::Rightmost8_2 => f.write_str("rightmost_8_2"), + Bitcoin::Rightmost8_4 => f.write_str("rightmost_8_4"), Bitcoin::ScalarAdd => f.write_str("scalar_add"), Bitcoin::ScalarInvert => f.write_str("scalar_invert"), Bitcoin::ScalarIsZero => f.write_str("scalar_is_zero"), @@ -2572,6 +4401,7 @@ impl fmt::Display for Bitcoin { Bitcoin::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"), Bitcoin::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"), Bitcoin::Sha256Iv => f.write_str("sha_256_iv"), + Bitcoin::Some1 => f.write_str("some_1"), Bitcoin::Some16 => f.write_str("some_16"), Bitcoin::Some32 => f.write_str("some_32"), Bitcoin::Some64 => f.write_str("some_64"), @@ -2591,10 +4421,12 @@ impl fmt::Display for Bitcoin { Bitcoin::TxLockTime => f.write_str("tx_lock_time"), Bitcoin::Verify => f.write_str("verify"), Bitcoin::Version => f.write_str("version"), + Bitcoin::Xor1 => f.write_str("xor_1"), Bitcoin::Xor16 => f.write_str("xor_16"), Bitcoin::Xor32 => f.write_str("xor_32"), Bitcoin::Xor64 => f.write_str("xor_64"), Bitcoin::Xor8 => f.write_str("xor_8"), + Bitcoin::XorXor1 => f.write_str("xor_xor_1"), Bitcoin::XorXor16 => f.write_str("xor_xor_16"), Bitcoin::XorXor32 => f.write_str("xor_xor_32"), Bitcoin::XorXor64 => f.write_str("xor_xor_64"), @@ -2616,11 +4448,13 @@ impl str::FromStr for Bitcoin { "all_32" => Ok(Bitcoin::All32), "all_64" => Ok(Bitcoin::All64), "all_8" => Ok(Bitcoin::All8), + "and_1" => Ok(Bitcoin::And1), "and_16" => Ok(Bitcoin::And16), "and_32" => Ok(Bitcoin::And32), "and_64" => Ok(Bitcoin::And64), "and_8" => Ok(Bitcoin::And8), "bip_0340_verify" => Ok(Bitcoin::Bip0340Verify), + "ch_1" => Ok(Bitcoin::Ch1), "ch_16" => Ok(Bitcoin::Ch16), "ch_32" => Ok(Bitcoin::Ch32), "ch_64" => Ok(Bitcoin::Ch64), @@ -2630,6 +4464,7 @@ impl str::FromStr for Bitcoin { "check_lock_height" => Ok(Bitcoin::CheckLockHeight), "check_lock_time" => Ok(Bitcoin::CheckLockTime), "check_sig_verify" => Ok(Bitcoin::CheckSigVerify), + "complement_1" => Ok(Bitcoin::Complement1), "complement_16" => Ok(Bitcoin::Complement16), "complement_32" => Ok(Bitcoin::Complement32), "complement_64" => Ok(Bitcoin::Complement64), @@ -2657,6 +4492,7 @@ impl str::FromStr for Bitcoin { "divides_32" => Ok(Bitcoin::Divides32), "divides_64" => Ok(Bitcoin::Divides64), "divides_8" => Ok(Bitcoin::Divides8), + "eq_1" => Ok(Bitcoin::Eq1), "eq_16" => Ok(Bitcoin::Eq16), "eq_256" => Ok(Bitcoin::Eq256), "eq_32" => Ok(Bitcoin::Eq32), @@ -2684,10 +4520,46 @@ impl str::FromStr for Bitcoin { "full_increment_32" => Ok(Bitcoin::FullIncrement32), "full_increment_64" => Ok(Bitcoin::FullIncrement64), "full_increment_8" => Ok(Bitcoin::FullIncrement8), + "full_left_shift_16_1" => Ok(Bitcoin::FullLeftShift16_1), + "full_left_shift_16_2" => Ok(Bitcoin::FullLeftShift16_2), + "full_left_shift_16_4" => Ok(Bitcoin::FullLeftShift16_4), + "full_left_shift_16_8" => Ok(Bitcoin::FullLeftShift16_8), + "full_left_shift_32_1" => Ok(Bitcoin::FullLeftShift32_1), + "full_left_shift_32_16" => Ok(Bitcoin::FullLeftShift32_16), + "full_left_shift_32_2" => Ok(Bitcoin::FullLeftShift32_2), + "full_left_shift_32_4" => Ok(Bitcoin::FullLeftShift32_4), + "full_left_shift_32_8" => Ok(Bitcoin::FullLeftShift32_8), + "full_left_shift_64_1" => Ok(Bitcoin::FullLeftShift64_1), + "full_left_shift_64_16" => Ok(Bitcoin::FullLeftShift64_16), + "full_left_shift_64_2" => Ok(Bitcoin::FullLeftShift64_2), + "full_left_shift_64_32" => Ok(Bitcoin::FullLeftShift64_32), + "full_left_shift_64_4" => Ok(Bitcoin::FullLeftShift64_4), + "full_left_shift_64_8" => Ok(Bitcoin::FullLeftShift64_8), + "full_left_shift_8_1" => Ok(Bitcoin::FullLeftShift8_1), + "full_left_shift_8_2" => Ok(Bitcoin::FullLeftShift8_2), + "full_left_shift_8_4" => Ok(Bitcoin::FullLeftShift8_4), "full_multiply_16" => Ok(Bitcoin::FullMultiply16), "full_multiply_32" => Ok(Bitcoin::FullMultiply32), "full_multiply_64" => Ok(Bitcoin::FullMultiply64), "full_multiply_8" => Ok(Bitcoin::FullMultiply8), + "full_right_shift_16_1" => Ok(Bitcoin::FullRightShift16_1), + "full_right_shift_16_2" => Ok(Bitcoin::FullRightShift16_2), + "full_right_shift_16_4" => Ok(Bitcoin::FullRightShift16_4), + "full_right_shift_16_8" => Ok(Bitcoin::FullRightShift16_8), + "full_right_shift_32_1" => Ok(Bitcoin::FullRightShift32_1), + "full_right_shift_32_16" => Ok(Bitcoin::FullRightShift32_16), + "full_right_shift_32_2" => Ok(Bitcoin::FullRightShift32_2), + "full_right_shift_32_4" => Ok(Bitcoin::FullRightShift32_4), + "full_right_shift_32_8" => Ok(Bitcoin::FullRightShift32_8), + "full_right_shift_64_1" => Ok(Bitcoin::FullRightShift64_1), + "full_right_shift_64_16" => Ok(Bitcoin::FullRightShift64_16), + "full_right_shift_64_2" => Ok(Bitcoin::FullRightShift64_2), + "full_right_shift_64_32" => Ok(Bitcoin::FullRightShift64_32), + "full_right_shift_64_4" => Ok(Bitcoin::FullRightShift64_4), + "full_right_shift_64_8" => Ok(Bitcoin::FullRightShift64_8), + "full_right_shift_8_1" => Ok(Bitcoin::FullRightShift8_1), + "full_right_shift_8_2" => Ok(Bitcoin::FullRightShift8_2), + "full_right_shift_8_4" => Ok(Bitcoin::FullRightShift8_4), "full_subtract_16" => Ok(Bitcoin::FullSubtract16), "full_subtract_32" => Ok(Bitcoin::FullSubtract32), "full_subtract_64" => Ok(Bitcoin::FullSubtract64), @@ -2707,6 +4579,7 @@ impl str::FromStr for Bitcoin { "gej_x_equiv" => Ok(Bitcoin::GejXEquiv), "gej_y_is_odd" => Ok(Bitcoin::GejYIsOdd), "generate" => Ok(Bitcoin::Generate), + "high_1" => Ok(Bitcoin::High1), "high_16" => Ok(Bitcoin::High16), "high_32" => Ok(Bitcoin::High32), "high_64" => Ok(Bitcoin::High64), @@ -2733,9 +4606,70 @@ impl str::FromStr for Bitcoin { "le_32" => Ok(Bitcoin::Le32), "le_64" => Ok(Bitcoin::Le64), "le_8" => Ok(Bitcoin::Le8), + "left_extend_16_32" => Ok(Bitcoin::LeftExtend16_32), + "left_extend_16_64" => Ok(Bitcoin::LeftExtend16_64), + "left_extend_1_16" => Ok(Bitcoin::LeftExtend1_16), + "left_extend_1_32" => Ok(Bitcoin::LeftExtend1_32), + "left_extend_1_64" => Ok(Bitcoin::LeftExtend1_64), + "left_extend_1_8" => Ok(Bitcoin::LeftExtend1_8), + "left_extend_32_64" => Ok(Bitcoin::LeftExtend32_64), + "left_extend_8_16" => Ok(Bitcoin::LeftExtend8_16), + "left_extend_8_32" => Ok(Bitcoin::LeftExtend8_32), + "left_extend_8_64" => Ok(Bitcoin::LeftExtend8_64), + "left_pad_high_16_32" => Ok(Bitcoin::LeftPadHigh16_32), + "left_pad_high_16_64" => Ok(Bitcoin::LeftPadHigh16_64), + "left_pad_high_1_16" => Ok(Bitcoin::LeftPadHigh1_16), + "left_pad_high_1_32" => Ok(Bitcoin::LeftPadHigh1_32), + "left_pad_high_1_64" => Ok(Bitcoin::LeftPadHigh1_64), + "left_pad_high_1_8" => Ok(Bitcoin::LeftPadHigh1_8), + "left_pad_high_32_64" => Ok(Bitcoin::LeftPadHigh32_64), + "left_pad_high_8_16" => Ok(Bitcoin::LeftPadHigh8_16), + "left_pad_high_8_32" => Ok(Bitcoin::LeftPadHigh8_32), + "left_pad_high_8_64" => Ok(Bitcoin::LeftPadHigh8_64), + "left_pad_low_16_32" => Ok(Bitcoin::LeftPadLow16_32), + "left_pad_low_16_64" => Ok(Bitcoin::LeftPadLow16_64), + "left_pad_low_1_16" => Ok(Bitcoin::LeftPadLow1_16), + "left_pad_low_1_32" => Ok(Bitcoin::LeftPadLow1_32), + "left_pad_low_1_64" => Ok(Bitcoin::LeftPadLow1_64), + "left_pad_low_1_8" => Ok(Bitcoin::LeftPadLow1_8), + "left_pad_low_32_64" => Ok(Bitcoin::LeftPadLow32_64), + "left_pad_low_8_16" => Ok(Bitcoin::LeftPadLow8_16), + "left_pad_low_8_32" => Ok(Bitcoin::LeftPadLow8_32), + "left_pad_low_8_64" => Ok(Bitcoin::LeftPadLow8_64), + "left_rotate_16" => Ok(Bitcoin::LeftRotate16), + "left_rotate_32" => Ok(Bitcoin::LeftRotate32), + "left_rotate_64" => Ok(Bitcoin::LeftRotate64), + "left_rotate_8" => Ok(Bitcoin::LeftRotate8), + "left_shift_16" => Ok(Bitcoin::LeftShift16), + "left_shift_32" => Ok(Bitcoin::LeftShift32), + "left_shift_64" => Ok(Bitcoin::LeftShift64), + "left_shift_8" => Ok(Bitcoin::LeftShift8), + "left_shift_with_16" => Ok(Bitcoin::LeftShiftWith16), + "left_shift_with_32" => Ok(Bitcoin::LeftShiftWith32), + "left_shift_with_64" => Ok(Bitcoin::LeftShiftWith64), + "left_shift_with_8" => Ok(Bitcoin::LeftShiftWith8), + "leftmost_16_1" => Ok(Bitcoin::Leftmost16_1), + "leftmost_16_2" => Ok(Bitcoin::Leftmost16_2), + "leftmost_16_4" => Ok(Bitcoin::Leftmost16_4), + "leftmost_16_8" => Ok(Bitcoin::Leftmost16_8), + "leftmost_32_1" => Ok(Bitcoin::Leftmost32_1), + "leftmost_32_16" => Ok(Bitcoin::Leftmost32_16), + "leftmost_32_2" => Ok(Bitcoin::Leftmost32_2), + "leftmost_32_4" => Ok(Bitcoin::Leftmost32_4), + "leftmost_32_8" => Ok(Bitcoin::Leftmost32_8), + "leftmost_64_1" => Ok(Bitcoin::Leftmost64_1), + "leftmost_64_16" => Ok(Bitcoin::Leftmost64_16), + "leftmost_64_2" => Ok(Bitcoin::Leftmost64_2), + "leftmost_64_32" => Ok(Bitcoin::Leftmost64_32), + "leftmost_64_4" => Ok(Bitcoin::Leftmost64_4), + "leftmost_64_8" => Ok(Bitcoin::Leftmost64_8), + "leftmost_8_1" => Ok(Bitcoin::Leftmost8_1), + "leftmost_8_2" => Ok(Bitcoin::Leftmost8_2), + "leftmost_8_4" => Ok(Bitcoin::Leftmost8_4), "linear_combination_1" => Ok(Bitcoin::LinearCombination1), "linear_verify_1" => Ok(Bitcoin::LinearVerify1), "lock_time" => Ok(Bitcoin::LockTime), + "low_1" => Ok(Bitcoin::Low1), "low_16" => Ok(Bitcoin::Low16), "low_32" => Ok(Bitcoin::Low32), "low_64" => Ok(Bitcoin::Low64), @@ -2744,6 +4678,7 @@ impl str::FromStr for Bitcoin { "lt_32" => Ok(Bitcoin::Lt32), "lt_64" => Ok(Bitcoin::Lt64), "lt_8" => Ok(Bitcoin::Lt8), + "maj_1" => Ok(Bitcoin::Maj1), "maj_16" => Ok(Bitcoin::Maj16), "maj_32" => Ok(Bitcoin::Maj32), "maj_64" => Ok(Bitcoin::Maj64), @@ -2778,6 +4713,7 @@ impl str::FromStr for Bitcoin { "one_32" => Ok(Bitcoin::One32), "one_64" => Ok(Bitcoin::One64), "one_8" => Ok(Bitcoin::One8), + "or_1" => Ok(Bitcoin::Or1), "or_16" => Ok(Bitcoin::Or16), "or_32" => Ok(Bitcoin::Or32), "or_64" => Ok(Bitcoin::Or64), @@ -2787,6 +4723,62 @@ impl str::FromStr for Bitcoin { "parse_lock" => Ok(Bitcoin::ParseLock), "parse_sequence" => Ok(Bitcoin::ParseSequence), "point_verify_1" => Ok(Bitcoin::PointVerify1), + "right_extend_16_32" => Ok(Bitcoin::RightExtend16_32), + "right_extend_16_64" => Ok(Bitcoin::RightExtend16_64), + "right_extend_32_64" => Ok(Bitcoin::RightExtend32_64), + "right_extend_8_16" => Ok(Bitcoin::RightExtend8_16), + "right_extend_8_32" => Ok(Bitcoin::RightExtend8_32), + "right_extend_8_64" => Ok(Bitcoin::RightExtend8_64), + "right_pad_high_16_32" => Ok(Bitcoin::RightPadHigh16_32), + "right_pad_high_16_64" => Ok(Bitcoin::RightPadHigh16_64), + "right_pad_high_1_16" => Ok(Bitcoin::RightPadHigh1_16), + "right_pad_high_1_32" => Ok(Bitcoin::RightPadHigh1_32), + "right_pad_high_1_64" => Ok(Bitcoin::RightPadHigh1_64), + "right_pad_high_1_8" => Ok(Bitcoin::RightPadHigh1_8), + "right_pad_high_32_64" => Ok(Bitcoin::RightPadHigh32_64), + "right_pad_high_8_16" => Ok(Bitcoin::RightPadHigh8_16), + "right_pad_high_8_32" => Ok(Bitcoin::RightPadHigh8_32), + "right_pad_high_8_64" => Ok(Bitcoin::RightPadHigh8_64), + "right_pad_low_16_32" => Ok(Bitcoin::RightPadLow16_32), + "right_pad_low_16_64" => Ok(Bitcoin::RightPadLow16_64), + "right_pad_low_1_16" => Ok(Bitcoin::RightPadLow1_16), + "right_pad_low_1_32" => Ok(Bitcoin::RightPadLow1_32), + "right_pad_low_1_64" => Ok(Bitcoin::RightPadLow1_64), + "right_pad_low_1_8" => Ok(Bitcoin::RightPadLow1_8), + "right_pad_low_32_64" => Ok(Bitcoin::RightPadLow32_64), + "right_pad_low_8_16" => Ok(Bitcoin::RightPadLow8_16), + "right_pad_low_8_32" => Ok(Bitcoin::RightPadLow8_32), + "right_pad_low_8_64" => Ok(Bitcoin::RightPadLow8_64), + "right_rotate_16" => Ok(Bitcoin::RightRotate16), + "right_rotate_32" => Ok(Bitcoin::RightRotate32), + "right_rotate_64" => Ok(Bitcoin::RightRotate64), + "right_rotate_8" => Ok(Bitcoin::RightRotate8), + "right_shift_16" => Ok(Bitcoin::RightShift16), + "right_shift_32" => Ok(Bitcoin::RightShift32), + "right_shift_64" => Ok(Bitcoin::RightShift64), + "right_shift_8" => Ok(Bitcoin::RightShift8), + "right_shift_with_16" => Ok(Bitcoin::RightShiftWith16), + "right_shift_with_32" => Ok(Bitcoin::RightShiftWith32), + "right_shift_with_64" => Ok(Bitcoin::RightShiftWith64), + "right_shift_with_8" => Ok(Bitcoin::RightShiftWith8), + "rightmost_16_1" => Ok(Bitcoin::Rightmost16_1), + "rightmost_16_2" => Ok(Bitcoin::Rightmost16_2), + "rightmost_16_4" => Ok(Bitcoin::Rightmost16_4), + "rightmost_16_8" => Ok(Bitcoin::Rightmost16_8), + "rightmost_32_1" => Ok(Bitcoin::Rightmost32_1), + "rightmost_32_16" => Ok(Bitcoin::Rightmost32_16), + "rightmost_32_2" => Ok(Bitcoin::Rightmost32_2), + "rightmost_32_4" => Ok(Bitcoin::Rightmost32_4), + "rightmost_32_8" => Ok(Bitcoin::Rightmost32_8), + "rightmost_64_1" => Ok(Bitcoin::Rightmost64_1), + "rightmost_64_16" => Ok(Bitcoin::Rightmost64_16), + "rightmost_64_2" => Ok(Bitcoin::Rightmost64_2), + "rightmost_64_32" => Ok(Bitcoin::Rightmost64_32), + "rightmost_64_4" => Ok(Bitcoin::Rightmost64_4), + "rightmost_64_8" => Ok(Bitcoin::Rightmost64_8), + "rightmost_8_1" => Ok(Bitcoin::Rightmost8_1), + "rightmost_8_2" => Ok(Bitcoin::Rightmost8_2), + "rightmost_8_4" => Ok(Bitcoin::Rightmost8_4), "scalar_add" => Ok(Bitcoin::ScalarAdd), "scalar_invert" => Ok(Bitcoin::ScalarInvert), "scalar_is_zero" => Ok(Bitcoin::ScalarIsZero), @@ -2812,6 +4804,7 @@ impl str::FromStr for Bitcoin { "sha_256_ctx_8_finalize" => Ok(Bitcoin::Sha256Ctx8Finalize), "sha_256_ctx_8_init" => Ok(Bitcoin::Sha256Ctx8Init), "sha_256_iv" => Ok(Bitcoin::Sha256Iv), + "some_1" => Ok(Bitcoin::Some1), "some_16" => Ok(Bitcoin::Some16), "some_32" => Ok(Bitcoin::Some32), "some_64" => Ok(Bitcoin::Some64), @@ -2831,10 +4824,12 @@ impl str::FromStr for Bitcoin { "tx_lock_time" => Ok(Bitcoin::TxLockTime), "verify" => Ok(Bitcoin::Verify), "version" => Ok(Bitcoin::Version), + "xor_1" => Ok(Bitcoin::Xor1), "xor_16" => Ok(Bitcoin::Xor16), "xor_32" => Ok(Bitcoin::Xor32), "xor_64" => Ok(Bitcoin::Xor64), "xor_8" => Ok(Bitcoin::Xor8), + "xor_xor_1" => Ok(Bitcoin::XorXor1), "xor_xor_16" => Ok(Bitcoin::XorXor16), "xor_xor_32" => Ok(Bitcoin::XorXor32), "xor_xor_64" => Ok(Bitcoin::XorXor64), diff --git a/src/jet/init/core.rs b/src/jet/init/core.rs index 4921cecd..f8c16b6c 100644 --- a/src/jet/init/core.rs +++ b/src/jet/init/core.rs @@ -22,16 +22,19 @@ pub enum Core { All32, All64, All8, + And1, And16, And32, And64, And8, Bip0340Verify, + Ch1, Ch16, Ch32, Ch64, Ch8, CheckSigVerify, + Complement1, Complement16, Complement32, Complement64, @@ -53,6 +56,7 @@ pub enum Core { Divides32, Divides64, Divides8, + Eq1, Eq16, Eq256, Eq32, @@ -80,10 +84,46 @@ pub enum Core { FullIncrement32, FullIncrement64, FullIncrement8, + FullLeftShift16_1, + FullLeftShift16_2, + FullLeftShift16_4, + FullLeftShift16_8, + FullLeftShift32_1, + FullLeftShift32_16, + FullLeftShift32_2, + FullLeftShift32_4, + FullLeftShift32_8, + FullLeftShift64_1, + FullLeftShift64_16, + FullLeftShift64_2, + FullLeftShift64_32, + FullLeftShift64_4, + FullLeftShift64_8, + FullLeftShift8_1, + FullLeftShift8_2, + FullLeftShift8_4, FullMultiply16, FullMultiply32, FullMultiply64, FullMultiply8, + FullRightShift16_1, + FullRightShift16_2, + FullRightShift16_4, + FullRightShift16_8, + FullRightShift32_1, + FullRightShift32_16, + FullRightShift32_2, + FullRightShift32_4, + FullRightShift32_8, + FullRightShift64_1, + FullRightShift64_16, + FullRightShift64_2, + FullRightShift64_32, + FullRightShift64_4, + FullRightShift64_8, + FullRightShift8_1, + FullRightShift8_2, + FullRightShift8_4, FullSubtract16, FullSubtract32, FullSubtract64, @@ -103,6 +143,7 @@ pub enum Core { GejXEquiv, GejYIsOdd, Generate, + High1, High16, High32, High64, @@ -123,8 +164,69 @@ pub enum Core { Le32, Le64, Le8, + LeftExtend16_32, + LeftExtend16_64, + LeftExtend1_16, + LeftExtend1_32, + LeftExtend1_64, + LeftExtend1_8, + LeftExtend32_64, + LeftExtend8_16, + LeftExtend8_32, + LeftExtend8_64, + LeftPadHigh16_32, + LeftPadHigh16_64, + LeftPadHigh1_16, + LeftPadHigh1_32, + LeftPadHigh1_64, + LeftPadHigh1_8, + LeftPadHigh32_64, + LeftPadHigh8_16, + LeftPadHigh8_32, + LeftPadHigh8_64, + LeftPadLow16_32, + LeftPadLow16_64, + LeftPadLow1_16, + LeftPadLow1_32, + LeftPadLow1_64, + LeftPadLow1_8, + LeftPadLow32_64, + LeftPadLow8_16, + LeftPadLow8_32, + LeftPadLow8_64, + LeftRotate16, + LeftRotate32, + LeftRotate64, + LeftRotate8, + LeftShift16, + LeftShift32, + LeftShift64, + LeftShift8, + LeftShiftWith16, + LeftShiftWith32, + LeftShiftWith64, + LeftShiftWith8, + Leftmost16_1, + Leftmost16_2, + Leftmost16_4, + Leftmost16_8, + Leftmost32_1, + Leftmost32_16, + Leftmost32_2, + Leftmost32_4, + Leftmost32_8, + Leftmost64_1, + Leftmost64_16, + Leftmost64_2, + Leftmost64_32, + Leftmost64_4, + Leftmost64_8, + Leftmost8_1, + Leftmost8_2, + Leftmost8_4, LinearCombination1, LinearVerify1, + Low1, Low16, Low32, Low64, @@ -133,6 +235,7 @@ pub enum Core { Lt32, Lt64, Lt8, + Maj1, Maj16, Maj32, Maj64, @@ -165,6 +268,7 @@ pub enum Core { One32, One64, One8, + Or1, Or16, Or32, Or64, @@ -172,6 +276,62 @@ pub enum Core { ParseLock, ParseSequence, PointVerify1, + RightExtend16_32, + RightExtend16_64, + RightExtend32_64, + RightExtend8_16, + RightExtend8_32, + RightExtend8_64, + RightPadHigh16_32, + RightPadHigh16_64, + RightPadHigh1_16, + RightPadHigh1_32, + RightPadHigh1_64, + RightPadHigh1_8, + RightPadHigh32_64, + RightPadHigh8_16, + RightPadHigh8_32, + RightPadHigh8_64, + RightPadLow16_32, + RightPadLow16_64, + RightPadLow1_16, + RightPadLow1_32, + RightPadLow1_64, + RightPadLow1_8, + RightPadLow32_64, + RightPadLow8_16, + RightPadLow8_32, + RightPadLow8_64, + RightRotate16, + RightRotate32, + RightRotate64, + RightRotate8, + RightShift16, + RightShift32, + RightShift64, + RightShift8, + RightShiftWith16, + RightShiftWith32, + RightShiftWith64, + RightShiftWith8, + Rightmost16_1, + Rightmost16_2, + Rightmost16_4, + Rightmost16_8, + Rightmost32_1, + Rightmost32_16, + Rightmost32_2, + Rightmost32_4, + Rightmost32_8, + Rightmost64_1, + Rightmost64_16, + Rightmost64_2, + Rightmost64_32, + Rightmost64_4, + Rightmost64_8, + Rightmost8_1, + Rightmost8_2, + Rightmost8_4, ScalarAdd, ScalarInvert, ScalarIsZero, @@ -196,6 +356,7 @@ pub enum Core { Sha256Ctx8Finalize, Sha256Ctx8Init, Sha256Iv, + Some1, Some16, Some32, Some64, @@ -205,10 +366,12 @@ pub enum Core { Subtract64, Subtract8, Verify, + Xor1, Xor16, Xor32, Xor64, Xor8, + XorXor1, XorXor16, XorXor32, XorXor64, @@ -266,6 +429,11 @@ impl Jet for Core { 0xd0, 0xb2, 0xac, 0xce, 0x5c, 0xb3, 0xec, 0xc1, 0x2e, 0x8c, 0xb8, 0x16, 0x7f, 0x7b, 0x6e, 0xaa, 0x40, 0x69, ], + Core::And1 => [ + 0x2d, 0xc2, 0xdb, 0xcc, 0x69, 0xc1, 0x2c, 0x78, 0x30, 0xdf, 0x11, 0x70, 0xd9, 0xe9, + 0x3a, 0x35, 0xd8, 0x28, 0x4c, 0xc8, 0x15, 0x91, 0x6a, 0xeb, 0x3b, 0x1b, 0x95, 0xef, + 0xda, 0xa9, 0x2c, 0x26, + ], Core::And16 => [ 0x4f, 0x42, 0xc6, 0x88, 0xcc, 0x3c, 0xeb, 0x76, 0x1f, 0x66, 0x2a, 0x0b, 0x8e, 0x77, 0xb1, 0x96, 0x42, 0xda, 0xb5, 0x40, 0x7d, 0x9a, 0x87, 0x3c, 0xd9, 0xc1, 0x86, 0x09, @@ -291,6 +459,11 @@ impl Jet for Core { 0x1a, 0x6e, 0x31, 0xf0, 0x33, 0x1b, 0x00, 0xd1, 0x34, 0xac, 0xab, 0x79, 0x49, 0xd5, 0x9e, 0x32, 0x21, 0x94, ], + Core::Ch1 => [ + 0xc2, 0x32, 0x36, 0x12, 0x4d, 0xa0, 0x1f, 0x3d, 0x8e, 0xb7, 0x42, 0xc2, 0xed, 0x47, + 0x95, 0x3f, 0x66, 0xc8, 0xb0, 0x84, 0xd9, 0x5a, 0x10, 0xc6, 0x0c, 0xae, 0x69, 0xba, + 0x98, 0x42, 0xae, 0x96, + ], Core::Ch16 => [ 0xdc, 0xcd, 0xe6, 0xa9, 0x54, 0x58, 0x75, 0xc5, 0xcb, 0x46, 0xe7, 0x2c, 0x7b, 0x04, 0xce, 0xeb, 0x92, 0x0c, 0x20, 0x3d, 0x1c, 0x04, 0x2a, 0xec, 0x91, 0x24, 0x1d, 0xbe, @@ -316,6 +489,11 @@ impl Jet for Core { 0xe1, 0x77, 0xf9, 0x41, 0xa6, 0x7c, 0xc6, 0xce, 0xd8, 0x69, 0x74, 0x6f, 0x1a, 0x8e, 0xb6, 0x50, 0x6f, 0x76, ], + Core::Complement1 => [ + 0x7e, 0x71, 0x48, 0x13, 0x2e, 0x28, 0x92, 0x82, 0x3f, 0xcf, 0x2a, 0x26, 0xc6, 0x22, + 0x0b, 0xee, 0x03, 0x9f, 0xf6, 0xc5, 0xd7, 0xc1, 0xb4, 0xe4, 0xca, 0x21, 0x3a, 0xd8, + 0x37, 0xab, 0x47, 0x74, + ], Core::Complement16 => [ 0x7f, 0x16, 0xd1, 0x24, 0x15, 0x99, 0x87, 0x68, 0x34, 0x7f, 0x43, 0xa9, 0xb9, 0x1c, 0x89, 0x87, 0x59, 0x1d, 0xfe, 0xc1, 0xcf, 0x78, 0x50, 0xb4, 0x23, 0xfe, 0xa3, 0x3a, @@ -421,6 +599,11 @@ impl Jet for Core { 0x8a, 0x66, 0x29, 0xa3, 0x7b, 0x4b, 0xef, 0xdc, 0xd7, 0xcc, 0x55, 0x88, 0x60, 0x80, 0xae, 0xf6, 0x8a, 0xf8, ], + Core::Eq1 => [ + 0x42, 0x49, 0xc5, 0xbd, 0xec, 0x54, 0x0a, 0x06, 0x95, 0x7d, 0xcd, 0xab, 0x04, 0x5a, + 0x44, 0x5e, 0xb9, 0x18, 0x91, 0xc0, 0x6c, 0x3f, 0x8f, 0x96, 0xc8, 0x88, 0xe9, 0xdd, + 0xd2, 0xfb, 0xaa, 0x28, + ], Core::Eq16 => [ 0xab, 0x31, 0xa7, 0x97, 0x4a, 0xcb, 0xf7, 0x2a, 0xb2, 0xf2, 0x1b, 0xf5, 0x3f, 0xec, 0x34, 0x6a, 0x28, 0xe6, 0xe6, 0x5e, 0x4c, 0x05, 0xe3, 0xe7, 0x84, 0x3e, 0x14, 0x73, @@ -556,6 +739,96 @@ impl Jet for Core { 0xf4, 0x47, 0x8e, 0xc6, 0x32, 0x06, 0xc9, 0x8f, 0xb5, 0xcc, 0xcf, 0x77, 0xc2, 0x09, 0xbe, 0xbd, 0x29, 0xef, ], + Core::FullLeftShift16_1 => [ + 0x74, 0x0e, 0x23, 0x81, 0x1b, 0x3e, 0x62, 0xd4, 0x91, 0x51, 0x0f, 0xc9, 0xed, 0xc4, + 0xcb, 0x0a, 0x0e, 0xec, 0xfa, 0xdf, 0xd2, 0x1b, 0xb2, 0x7f, 0x33, 0xe2, 0x20, 0xb1, + 0xd8, 0x7d, 0x14, 0xd7, + ], + Core::FullLeftShift16_2 => [ + 0xc2, 0x6e, 0x8a, 0xc3, 0xff, 0x9c, 0xc5, 0x18, 0x71, 0x9d, 0x4d, 0x7f, 0xd1, 0x49, + 0xd8, 0x02, 0xf2, 0x3f, 0x0b, 0x02, 0x49, 0x99, 0xed, 0x5d, 0xaf, 0x36, 0x92, 0x10, + 0xac, 0xbe, 0x33, 0x45, + ], + Core::FullLeftShift16_4 => [ + 0x5e, 0x57, 0x0c, 0xbe, 0x4c, 0x7c, 0xa9, 0x4b, 0xe0, 0xfc, 0x7b, 0x3e, 0xe5, 0x79, + 0xbd, 0xd7, 0x84, 0x26, 0xf0, 0xb7, 0x67, 0xf4, 0x85, 0x17, 0x17, 0xbb, 0xfe, 0xae, + 0xde, 0x91, 0xfe, 0x30, + ], + Core::FullLeftShift16_8 => [ + 0x65, 0xad, 0xc5, 0x53, 0x48, 0x38, 0x3b, 0x28, 0xe8, 0x79, 0x7f, 0x81, 0xa9, 0x28, + 0x2d, 0x91, 0x1b, 0x3f, 0x8f, 0xa6, 0x13, 0x92, 0x72, 0x51, 0xd8, 0x8e, 0x0c, 0x38, + 0xb0, 0x29, 0xb7, 0x05, + ], + Core::FullLeftShift32_1 => [ + 0x72, 0xe0, 0x10, 0x4e, 0xfa, 0xf1, 0xde, 0xe4, 0x11, 0x98, 0xec, 0x3b, 0x79, 0x03, + 0x73, 0xf6, 0x48, 0xf1, 0x3f, 0x5e, 0xe0, 0x65, 0x52, 0xfb, 0x02, 0x0b, 0xaf, 0xb5, + 0x84, 0x97, 0xc2, 0x5c, + ], + Core::FullLeftShift32_16 => [ + 0xb9, 0xfb, 0x21, 0x69, 0x90, 0x8d, 0x91, 0x44, 0xcc, 0x73, 0xe6, 0x8f, 0x75, 0x35, + 0x36, 0xf4, 0x3c, 0xb2, 0xb7, 0x4c, 0xb6, 0x2c, 0x64, 0x08, 0x81, 0x06, 0x70, 0xde, + 0x84, 0xab, 0x09, 0xbd, + ], + Core::FullLeftShift32_2 => [ + 0x11, 0xef, 0xdb, 0x81, 0xb0, 0xc4, 0xde, 0xda, 0x4d, 0x4f, 0x98, 0x47, 0x5d, 0x78, + 0x78, 0xef, 0xa3, 0x38, 0x69, 0x4f, 0xa0, 0xfd, 0x61, 0x3e, 0x12, 0x93, 0x22, 0x5a, + 0x4f, 0x46, 0x2f, 0x7c, + ], + Core::FullLeftShift32_4 => [ + 0x77, 0xe3, 0x99, 0xd7, 0xd8, 0x3f, 0x7d, 0x11, 0x44, 0x99, 0x1d, 0xaf, 0xa3, 0xcc, + 0x98, 0x11, 0xc1, 0x63, 0x2c, 0x29, 0xe4, 0x93, 0xa8, 0xaf, 0x98, 0xe9, 0x8f, 0xbc, + 0x1d, 0x63, 0x5f, 0xb4, + ], + Core::FullLeftShift32_8 => [ + 0xba, 0x66, 0x4c, 0xb1, 0xc4, 0x2e, 0xda, 0x17, 0x91, 0x91, 0xeb, 0xc2, 0xa1, 0x10, + 0x39, 0x6d, 0xae, 0x58, 0xf9, 0x06, 0xa6, 0x41, 0x06, 0xb3, 0x06, 0x67, 0x79, 0x0a, + 0xc2, 0xf2, 0x38, 0x2d, + ], + Core::FullLeftShift64_1 => [ + 0x79, 0xd3, 0x8f, 0xe0, 0x75, 0x83, 0x9b, 0x22, 0x7c, 0xff, 0xd9, 0x2a, 0x8c, 0xdb, + 0x5c, 0x8c, 0x35, 0x22, 0xbc, 0xb4, 0xd1, 0xe0, 0x3b, 0xee, 0xb6, 0xdb, 0x6a, 0xb6, + 0x4e, 0xd4, 0x72, 0x1f, + ], + Core::FullLeftShift64_16 => [ + 0x21, 0x43, 0x56, 0x62, 0x45, 0xf5, 0xa1, 0xb9, 0xdf, 0xeb, 0x0c, 0x75, 0x87, 0x8e, + 0x21, 0xdb, 0xe1, 0x38, 0x04, 0xc2, 0x69, 0x35, 0xee, 0x47, 0xca, 0xc9, 0xad, 0x82, + 0x2d, 0x6d, 0xed, 0xb2, + ], + Core::FullLeftShift64_2 => [ + 0x9c, 0x92, 0x16, 0x49, 0x15, 0xaf, 0x0b, 0x15, 0x4e, 0x1d, 0xf5, 0x64, 0xd4, 0xdc, + 0x9b, 0xe9, 0x80, 0xb3, 0x98, 0x83, 0x5c, 0x99, 0x88, 0xbb, 0xb1, 0x08, 0xd0, 0xcd, + 0x81, 0x45, 0xb3, 0x30, + ], + Core::FullLeftShift64_32 => [ + 0xd0, 0xd0, 0x16, 0xe9, 0xc7, 0x8c, 0xd1, 0x12, 0xb4, 0xdd, 0x91, 0xa8, 0x35, 0x9f, + 0x80, 0x5c, 0x68, 0x41, 0x5b, 0x85, 0x7a, 0x79, 0x9b, 0x00, 0x39, 0x49, 0x54, 0xdc, + 0xd2, 0x90, 0xac, 0xbc, + ], + Core::FullLeftShift64_4 => [ + 0x0f, 0x1f, 0x7d, 0x37, 0x4e, 0x82, 0x86, 0x8d, 0x71, 0xe7, 0xe7, 0xc0, 0x32, 0x21, + 0xb1, 0x50, 0x59, 0x4b, 0x63, 0x04, 0x45, 0xb1, 0xb1, 0x63, 0x56, 0xcf, 0x35, 0x45, + 0xbd, 0x93, 0x92, 0x63, + ], + Core::FullLeftShift64_8 => [ + 0xad, 0x7b, 0x44, 0x38, 0xb7, 0x3f, 0x6f, 0x9e, 0x42, 0xf6, 0x4c, 0x70, 0x53, 0x04, + 0x75, 0xee, 0x08, 0x93, 0x6e, 0x47, 0x63, 0xe5, 0xb7, 0x3e, 0xa4, 0xbc, 0x83, 0x83, + 0xa2, 0xb9, 0x63, 0xd5, + ], + Core::FullLeftShift8_1 => [ + 0x21, 0x13, 0x68, 0x1a, 0x11, 0x62, 0x4e, 0x60, 0x60, 0x30, 0xc4, 0x70, 0xd6, 0x8f, + 0x60, 0x61, 0x23, 0x2f, 0x71, 0xcf, 0xab, 0xc5, 0x05, 0x71, 0x92, 0xc6, 0xc8, 0xbd, + 0x1d, 0x73, 0xb7, 0xe1, + ], + Core::FullLeftShift8_2 => [ + 0x36, 0x83, 0x68, 0xc9, 0x4b, 0x04, 0x0e, 0x81, 0xb9, 0x48, 0xd7, 0x37, 0xc1, 0x93, + 0xc0, 0x42, 0x83, 0xec, 0x80, 0xa2, 0x8f, 0xd3, 0xa0, 0x21, 0xb0, 0xb8, 0xc1, 0xab, + 0xcf, 0x5e, 0xdc, 0xd3, + ], + Core::FullLeftShift8_4 => [ + 0x8f, 0x85, 0x4d, 0x58, 0xf9, 0x68, 0xb4, 0xbe, 0x3b, 0x20, 0x21, 0xfb, 0x22, 0x14, + 0x2d, 0xd3, 0xe6, 0x8a, 0xa8, 0x19, 0x7b, 0x54, 0x75, 0xb7, 0x05, 0x0b, 0x02, 0xe1, + 0xe5, 0xca, 0xee, 0x47, + ], Core::FullMultiply16 => [ 0x32, 0xcf, 0x7f, 0x50, 0x89, 0x4e, 0xa2, 0xc4, 0x61, 0xa0, 0x54, 0x66, 0xbb, 0xfa, 0x1e, 0x4e, 0x1b, 0x04, 0x99, 0x57, 0x52, 0x3f, 0x64, 0x93, 0x7a, 0x8b, 0x54, 0x27, @@ -576,6 +849,96 @@ impl Jet for Core { 0x74, 0x3b, 0x8f, 0xb3, 0xf7, 0x54, 0x87, 0x12, 0x0b, 0xa3, 0x26, 0xff, 0x60, 0x0a, 0xd8, 0xb1, 0xf3, 0xe6, ], + Core::FullRightShift16_1 => [ + 0xb8, 0x07, 0x44, 0x23, 0xe6, 0x74, 0x8a, 0x6a, 0xa5, 0x4e, 0xc5, 0x74, 0x1f, 0xee, + 0xf2, 0x5a, 0x26, 0x2f, 0xde, 0xcb, 0xfc, 0xe3, 0x91, 0x24, 0xe6, 0x10, 0x23, 0x8a, + 0x3b, 0x0a, 0x23, 0xfc, + ], + Core::FullRightShift16_2 => [ + 0x3f, 0xcf, 0x98, 0x5e, 0xe0, 0xc7, 0x2c, 0xa4, 0x1d, 0xdf, 0x6c, 0x89, 0xd0, 0xf0, + 0xf6, 0x9d, 0x50, 0x65, 0x87, 0x6e, 0x3b, 0x60, 0x20, 0xec, 0xc9, 0xbf, 0x05, 0x9e, + 0x8f, 0x97, 0x19, 0xc6, + ], + Core::FullRightShift16_4 => [ + 0xa3, 0x0c, 0x7c, 0x29, 0xd0, 0xee, 0xac, 0x29, 0x52, 0x58, 0xb2, 0xb6, 0x1d, 0x0b, + 0x54, 0x13, 0x46, 0xf4, 0x07, 0xc0, 0x84, 0x8d, 0x44, 0x8e, 0x13, 0xe9, 0x77, 0x4c, + 0x1c, 0x96, 0x96, 0x79, + ], + Core::FullRightShift16_8 => [ + 0x5b, 0x88, 0x08, 0xca, 0xda, 0x55, 0x87, 0xb3, 0x6d, 0x1a, 0x6f, 0xad, 0x66, 0xae, + 0x4d, 0xa0, 0x8d, 0x41, 0x23, 0x64, 0x4c, 0x0b, 0xdd, 0x59, 0x77, 0x2a, 0x70, 0xaa, + 0x74, 0x32, 0xe7, 0x15, + ], + Core::FullRightShift32_1 => [ + 0x32, 0xaf, 0xd0, 0xef, 0x94, 0xdf, 0x51, 0xb7, 0xd3, 0x5c, 0x00, 0xe5, 0x61, 0xa8, + 0x39, 0x0c, 0x5c, 0xf5, 0x0f, 0x93, 0x0b, 0x30, 0xd7, 0x86, 0x88, 0x04, 0xb5, 0x80, + 0x49, 0x37, 0x58, 0x40, + ], + Core::FullRightShift32_16 => [ + 0x44, 0xd1, 0x79, 0xa8, 0x90, 0xf7, 0x81, 0x2f, 0x15, 0x13, 0x31, 0xb5, 0x5f, 0xc0, + 0x7e, 0xb4, 0xe4, 0xd7, 0x81, 0x4e, 0xb6, 0x83, 0xda, 0x28, 0x8f, 0x8f, 0xe7, 0xcd, + 0x55, 0xb4, 0x39, 0x06, + ], + Core::FullRightShift32_2 => [ + 0x33, 0xc6, 0x61, 0xdf, 0x3a, 0x32, 0xca, 0xe5, 0x5b, 0x52, 0xa5, 0xf2, 0x63, 0x21, + 0x54, 0xcc, 0x85, 0xb6, 0x59, 0x13, 0x87, 0xbc, 0x2b, 0x34, 0x83, 0x30, 0xc8, 0x70, + 0xa6, 0xf6, 0x70, 0x6f, + ], + Core::FullRightShift32_4 => [ + 0xe4, 0xbe, 0xbf, 0x16, 0x93, 0x5f, 0x67, 0xbe, 0x7d, 0x8c, 0x86, 0xbc, 0x58, 0x8a, + 0xdb, 0xcf, 0x8e, 0x59, 0x75, 0x39, 0x25, 0x7f, 0xdd, 0xab, 0x9f, 0xb0, 0x43, 0x72, + 0xc7, 0x70, 0x12, 0xd3, + ], + Core::FullRightShift32_8 => [ + 0xab, 0xcf, 0xfb, 0x08, 0x4a, 0x23, 0x96, 0x42, 0x16, 0xd5, 0x62, 0x73, 0x30, 0x5c, + 0x0c, 0x8b, 0x03, 0xbd, 0xab, 0xda, 0xd6, 0x9f, 0xf7, 0xe9, 0x42, 0xf0, 0xd2, 0xcf, + 0x08, 0x0f, 0xeb, 0xcc, + ], + Core::FullRightShift64_1 => [ + 0x37, 0x68, 0x82, 0x60, 0xc5, 0x3a, 0xf0, 0x6b, 0x85, 0x6d, 0x90, 0x22, 0xca, 0x5d, + 0x87, 0xf8, 0xa6, 0x87, 0xee, 0x53, 0xfa, 0xca, 0x18, 0x66, 0xec, 0x84, 0x2a, 0x7c, + 0x89, 0x0a, 0x4b, 0x70, + ], + Core::FullRightShift64_16 => [ + 0x41, 0x7b, 0xfb, 0x71, 0x5a, 0x20, 0xb1, 0x0d, 0x48, 0x81, 0xf5, 0xc3, 0x49, 0x6c, + 0x63, 0xef, 0xee, 0x4a, 0xb5, 0x00, 0x3d, 0xfd, 0x0a, 0x16, 0xb8, 0x5f, 0x94, 0xf8, + 0xe5, 0xb0, 0x66, 0x7c, + ], + Core::FullRightShift64_2 => [ + 0xce, 0xca, 0x25, 0x67, 0xb9, 0x1a, 0x63, 0xe9, 0xca, 0x44, 0x03, 0x5e, 0xb5, 0x9e, + 0x2f, 0x22, 0xd8, 0x1e, 0x37, 0xe1, 0x96, 0x59, 0x5a, 0x74, 0x8c, 0xea, 0x4a, 0x46, + 0x84, 0xa2, 0x15, 0xb0, + ], + Core::FullRightShift64_32 => [ + 0x03, 0x96, 0x99, 0x37, 0x84, 0x02, 0x3d, 0x47, 0xe8, 0x51, 0x4b, 0x45, 0x92, 0x98, + 0x19, 0x8d, 0x33, 0xbd, 0x71, 0xe6, 0xf7, 0x56, 0xd0, 0x8e, 0xdf, 0x46, 0x2a, 0x8f, + 0x62, 0xa2, 0x1b, 0x80, + ], + Core::FullRightShift64_4 => [ + 0xde, 0xe4, 0xda, 0xd6, 0x7a, 0x5d, 0xdc, 0xc3, 0x5d, 0xa1, 0xa7, 0x90, 0x63, 0xca, + 0x97, 0x5f, 0x81, 0x34, 0xc8, 0xea, 0xc5, 0x6a, 0x9f, 0x55, 0x5d, 0x2b, 0x0e, 0x13, + 0xda, 0x10, 0x99, 0x4d, + ], + Core::FullRightShift64_8 => [ + 0x9c, 0xd7, 0x78, 0x03, 0xfc, 0x38, 0x9c, 0x94, 0xff, 0xf2, 0x86, 0xda, 0x0b, 0x37, + 0x4b, 0x89, 0xfe, 0xeb, 0x3d, 0xaa, 0x38, 0xce, 0x67, 0xca, 0xb0, 0x22, 0x0d, 0xab, + 0xee, 0xfe, 0x23, 0xa2, + ], + Core::FullRightShift8_1 => [ + 0xee, 0x23, 0xff, 0xf0, 0x7d, 0xe5, 0x3c, 0xc3, 0x71, 0x09, 0xa4, 0x7f, 0x9f, 0xde, + 0x3c, 0x74, 0x44, 0x7a, 0xe8, 0x31, 0xce, 0xe9, 0xac, 0x4d, 0xb7, 0x90, 0xcd, 0xe8, + 0xb1, 0x53, 0x23, 0xb2, + ], + Core::FullRightShift8_2 => [ + 0x25, 0xe1, 0xde, 0xa1, 0x08, 0xc5, 0xf8, 0x9c, 0xce, 0x5b, 0x3d, 0x5b, 0x0e, 0x07, + 0x92, 0xbe, 0x37, 0x90, 0x1a, 0x5a, 0x65, 0xde, 0xf9, 0x04, 0xdd, 0x51, 0x71, 0x0a, + 0x35, 0x5a, 0xb5, 0x5f, + ], + Core::FullRightShift8_4 => [ + 0xd7, 0xf0, 0xa8, 0x3c, 0x41, 0x04, 0x54, 0x3e, 0xc7, 0x5b, 0x5e, 0xe7, 0x5b, 0xf5, + 0xf7, 0x91, 0x5d, 0x65, 0xfa, 0x50, 0xc2, 0x09, 0x5d, 0xe2, 0xa3, 0x56, 0x70, 0xa5, + 0x05, 0xbe, 0x12, 0x9a, + ], Core::FullSubtract16 => [ 0x95, 0xea, 0x5e, 0x54, 0xc5, 0x60, 0x3f, 0x2f, 0x78, 0xac, 0xf6, 0xb8, 0xa8, 0x7a, 0x63, 0xb3, 0xac, 0xc7, 0xb6, 0x5f, 0x2b, 0x87, 0xb6, 0x90, 0x4b, 0x98, 0x30, 0xfa, @@ -671,6 +1034,11 @@ impl Jet for Core { 0x7a, 0x03, 0x86, 0x7f, 0xaf, 0x7a, 0x73, 0x27, 0x77, 0x03, 0x89, 0x5a, 0x27, 0xcb, 0x6b, 0x44, 0x25, 0x2d, ], + Core::High1 => [ + 0x97, 0xa1, 0x43, 0xf0, 0x4c, 0xb6, 0x03, 0xf6, 0x5f, 0x84, 0xa8, 0x0d, 0x31, 0xc3, + 0x36, 0x4f, 0x8f, 0xda, 0x22, 0x97, 0x3a, 0x9a, 0xe6, 0x95, 0xa5, 0x81, 0x89, 0xc3, + 0x14, 0x63, 0xa8, 0xbf, + ], Core::High16 => [ 0x62, 0x10, 0xac, 0x71, 0x36, 0x58, 0x6c, 0x73, 0xa0, 0x9c, 0x94, 0x21, 0xa4, 0x0e, 0x30, 0x8c, 0x44, 0x91, 0xea, 0xce, 0x9b, 0x5b, 0x36, 0x95, 0xd6, 0x1f, 0x4c, 0x81, @@ -771,6 +1139,306 @@ impl Jet for Core { 0xe0, 0x11, 0x18, 0xfb, 0x8c, 0x1a, 0xdc, 0xdc, 0x11, 0x21, 0x97, 0x93, 0xcb, 0x2a, 0xfc, 0x4a, 0x7e, 0x8c, ], + Core::LeftExtend16_32 => [ + 0x8c, 0x99, 0x04, 0x35, 0xb1, 0x35, 0xde, 0x74, 0x57, 0xc2, 0x69, 0x0d, 0x2d, 0xc8, + 0x74, 0x4a, 0x50, 0x66, 0x41, 0xb8, 0x81, 0xf4, 0x1e, 0x5c, 0x17, 0x02, 0x77, 0x65, + 0xc3, 0x52, 0xdd, 0xcb, + ], + Core::LeftExtend16_64 => [ + 0x9b, 0x9f, 0xf9, 0xcc, 0x27, 0x13, 0x93, 0x19, 0xb2, 0x24, 0xb7, 0xb2, 0xb8, 0x16, + 0xc9, 0x13, 0xa5, 0x68, 0xbf, 0xd0, 0x0b, 0xe1, 0xf3, 0x83, 0xc0, 0x26, 0xbc, 0xff, + 0xe9, 0xbf, 0xe7, 0x12, + ], + Core::LeftExtend1_16 => [ + 0xb8, 0xff, 0x8d, 0xc1, 0xa0, 0x4c, 0xa7, 0x16, 0x49, 0x17, 0xf4, 0xc4, 0x50, 0x68, + 0x8c, 0x83, 0xdd, 0x41, 0x6c, 0xef, 0x7b, 0x0f, 0xab, 0xdd, 0x16, 0x92, 0xfa, 0xe6, + 0xbf, 0xf7, 0xb4, 0xa6, + ], + Core::LeftExtend1_32 => [ + 0x22, 0x53, 0xa4, 0x52, 0xb9, 0x99, 0x02, 0xab, 0xcf, 0x15, 0x49, 0x6d, 0xf1, 0x9d, + 0x31, 0x12, 0xa1, 0xce, 0xf5, 0x9b, 0x9a, 0xdc, 0xee, 0x20, 0x6c, 0x0d, 0x8d, 0xce, + 0xa6, 0x28, 0xd0, 0x73, + ], + Core::LeftExtend1_64 => [ + 0xc8, 0x59, 0x9c, 0x85, 0x75, 0xed, 0xb7, 0xc2, 0x60, 0x40, 0x2e, 0xf2, 0xf2, 0x6d, + 0xd4, 0x91, 0xcb, 0x5e, 0x4d, 0x38, 0x18, 0xff, 0x2e, 0x95, 0x85, 0xc8, 0xd3, 0xe7, + 0x81, 0x2d, 0xb5, 0xaa, + ], + Core::LeftExtend1_8 => [ + 0xcf, 0xe0, 0x22, 0x00, 0x5f, 0x6b, 0xad, 0x4b, 0x25, 0xb5, 0x1e, 0x9e, 0xbe, 0x92, + 0x94, 0x24, 0x37, 0x3f, 0xf1, 0x97, 0xce, 0xca, 0x62, 0xb9, 0xe0, 0x69, 0xab, 0x08, + 0xda, 0x9f, 0x38, 0xf2, + ], + Core::LeftExtend32_64 => [ + 0x3f, 0x66, 0x84, 0x04, 0x7e, 0xda, 0xfb, 0x76, 0xf1, 0x1f, 0xbf, 0x59, 0x54, 0x99, + 0xc5, 0xab, 0xa9, 0xc4, 0xba, 0x55, 0xca, 0xb5, 0x87, 0xcd, 0xfe, 0xba, 0xd4, 0x57, + 0xb5, 0x5b, 0xf5, 0xbb, + ], + Core::LeftExtend8_16 => [ + 0xdb, 0xd5, 0x5f, 0x41, 0x70, 0x15, 0x38, 0x53, 0xba, 0xd0, 0xe0, 0x84, 0xf9, 0xe1, + 0xa7, 0xe7, 0x5a, 0x7a, 0x0d, 0xc9, 0xd8, 0x92, 0x07, 0x75, 0x57, 0x5b, 0x0d, 0x48, + 0xe5, 0x07, 0xaf, 0x2f, + ], + Core::LeftExtend8_32 => [ + 0x5b, 0x5b, 0x45, 0x67, 0x6a, 0x75, 0x03, 0xee, 0xd0, 0x85, 0x57, 0x38, 0x69, 0xdb, + 0xc5, 0x80, 0x0b, 0x35, 0x02, 0x9d, 0x14, 0x02, 0x90, 0xac, 0x20, 0x89, 0x14, 0x89, + 0xbd, 0x2a, 0xa7, 0xd5, + ], + Core::LeftExtend8_64 => [ + 0x7b, 0x9e, 0xa1, 0x48, 0xa3, 0x0f, 0x2a, 0xf4, 0xd4, 0x00, 0x1d, 0x4f, 0x25, 0xb0, + 0xbf, 0x4f, 0xdd, 0x67, 0xc7, 0xd0, 0xf1, 0x34, 0xd7, 0xef, 0x3f, 0x67, 0x8f, 0x72, + 0x19, 0x00, 0x2b, 0xcf, + ], + Core::LeftPadHigh16_32 => [ + 0xe8, 0xc2, 0xd8, 0x5a, 0x7b, 0x7b, 0x2a, 0x8e, 0xbb, 0x5b, 0x0f, 0x21, 0x2f, 0xc8, + 0x45, 0x0d, 0xc1, 0xd3, 0xa4, 0x68, 0x22, 0xfb, 0x21, 0xe8, 0x6e, 0x3f, 0xee, 0x02, + 0x0a, 0xf9, 0x73, 0x8f, + ], + Core::LeftPadHigh16_64 => [ + 0x61, 0x3b, 0x85, 0xd2, 0xa7, 0x51, 0xb3, 0xe5, 0x1f, 0xbc, 0x59, 0xa1, 0xde, 0xdd, + 0x1f, 0xc7, 0x93, 0x36, 0x5e, 0x40, 0x71, 0xdc, 0x1e, 0x01, 0x41, 0x08, 0xd8, 0x92, + 0x0d, 0x41, 0xd4, 0x70, + ], + Core::LeftPadHigh1_16 => [ + 0xe8, 0x2b, 0x00, 0xef, 0xd7, 0xdc, 0xc3, 0x4e, 0x96, 0xe8, 0xf3, 0xe5, 0x1e, 0xad, + 0x12, 0xd3, 0x84, 0x5f, 0x6c, 0x77, 0x85, 0xe4, 0x43, 0x8b, 0x05, 0x45, 0x7d, 0x95, + 0x32, 0x6e, 0x59, 0xe3, + ], + Core::LeftPadHigh1_32 => [ + 0x88, 0x58, 0x5b, 0x8c, 0x45, 0x92, 0xd5, 0xd0, 0x83, 0xdf, 0xf6, 0x8e, 0xb5, 0xc2, + 0x30, 0xd0, 0x6c, 0x37, 0x99, 0x5a, 0x6f, 0xed, 0xe2, 0x2c, 0x26, 0xe6, 0x61, 0xa7, + 0x51, 0x6e, 0x5b, 0xf4, + ], + Core::LeftPadHigh1_64 => [ + 0xc2, 0x7e, 0x3d, 0x02, 0x94, 0x92, 0x20, 0x58, 0x89, 0x0d, 0x5c, 0x8b, 0x67, 0x6c, + 0x1d, 0xae, 0xfd, 0xde, 0x65, 0x31, 0xe8, 0xae, 0x6d, 0x79, 0x37, 0x53, 0x92, 0x72, + 0x3e, 0xad, 0x9c, 0x03, + ], + Core::LeftPadHigh1_8 => [ + 0x14, 0x3e, 0x12, 0x39, 0x2b, 0x8f, 0x2e, 0x73, 0x53, 0x71, 0xfe, 0xd0, 0xb4, 0xb6, + 0xd6, 0x23, 0xff, 0xa4, 0xf6, 0x60, 0xe5, 0x39, 0x0c, 0x00, 0xe5, 0x67, 0xcf, 0x21, + 0xa1, 0xc9, 0x20, 0x78, + ], + Core::LeftPadHigh32_64 => [ + 0xf4, 0x84, 0x7c, 0x67, 0x56, 0x67, 0xb3, 0xc6, 0xa8, 0x90, 0xfd, 0x5a, 0x6a, 0xdb, + 0x09, 0x27, 0x55, 0x7e, 0xe8, 0x0c, 0xd6, 0xe6, 0x5a, 0xf9, 0xb1, 0xb4, 0x72, 0x95, + 0x72, 0xcd, 0x86, 0x61, + ], + Core::LeftPadHigh8_16 => [ + 0x76, 0x18, 0x05, 0x8a, 0x4e, 0x08, 0xeb, 0x52, 0x43, 0xda, 0xd2, 0x05, 0xcc, 0x7e, + 0x8d, 0x25, 0x47, 0x38, 0x0d, 0xa0, 0x5e, 0xc5, 0x41, 0x1e, 0xfc, 0x37, 0x2b, 0xaa, + 0x2b, 0xb1, 0x2d, 0xa6, + ], + Core::LeftPadHigh8_32 => [ + 0x3d, 0xfe, 0xd5, 0xc0, 0xa9, 0xb2, 0x6b, 0x8f, 0x4a, 0x8e, 0xab, 0xd6, 0xfb, 0xed, + 0x87, 0xbe, 0x45, 0x0d, 0xe7, 0x95, 0xf5, 0x41, 0x95, 0x3e, 0xec, 0x16, 0xa6, 0xd5, + 0xaa, 0x82, 0x5a, 0x56, + ], + Core::LeftPadHigh8_64 => [ + 0xce, 0x7c, 0x40, 0x7e, 0x4b, 0x56, 0x17, 0x21, 0xd6, 0x6c, 0x1b, 0xb0, 0xd1, 0x7e, + 0xe8, 0x41, 0xb4, 0xd5, 0x04, 0xb4, 0xc4, 0xc0, 0x72, 0x00, 0x22, 0x37, 0x14, 0x0b, + 0x89, 0x09, 0x76, 0x9f, + ], + Core::LeftPadLow16_32 => [ + 0xa2, 0x8c, 0x79, 0x24, 0xa4, 0x7b, 0x46, 0xec, 0x73, 0xbc, 0xff, 0x6e, 0x13, 0x28, + 0xd4, 0x39, 0xaa, 0x90, 0x3a, 0xcf, 0x10, 0x3e, 0x9a, 0xa8, 0x0b, 0x65, 0xba, 0x76, + 0xd2, 0xa0, 0x8e, 0x75, + ], + Core::LeftPadLow16_64 => [ + 0xb6, 0x25, 0x8a, 0xcd, 0xa2, 0x11, 0x0e, 0xd9, 0x8c, 0x17, 0xbc, 0xa8, 0x27, 0x12, + 0xe3, 0xea, 0x60, 0x86, 0x6f, 0x7d, 0x40, 0x04, 0xc8, 0x3e, 0x8a, 0xe5, 0x24, 0xb7, + 0xba, 0x44, 0x00, 0x8b, + ], + Core::LeftPadLow1_16 => [ + 0x1e, 0x1f, 0x6c, 0xc4, 0x24, 0x64, 0x83, 0x75, 0x49, 0xb9, 0x7d, 0x30, 0x7e, 0x28, + 0xa9, 0xc2, 0x36, 0x80, 0x91, 0x4c, 0xd8, 0x6d, 0x65, 0xc3, 0x04, 0x67, 0x93, 0x12, + 0x7b, 0x54, 0xfe, 0x82, + ], + Core::LeftPadLow1_32 => [ + 0xc3, 0x38, 0xa1, 0x95, 0x5e, 0x99, 0x82, 0x0d, 0x0e, 0xd3, 0x1a, 0x5a, 0xfe, 0xdd, + 0x13, 0x58, 0xc1, 0x74, 0x44, 0x02, 0x3e, 0x3f, 0x2b, 0x47, 0x33, 0xd9, 0xf6, 0x8c, + 0xb7, 0xb4, 0x0c, 0xd9, + ], + Core::LeftPadLow1_64 => [ + 0x68, 0x9e, 0xd5, 0x69, 0xc2, 0x01, 0x52, 0x1e, 0xc1, 0x95, 0x4f, 0x0d, 0xc7, 0xd2, + 0x12, 0x8e, 0x46, 0x5a, 0x52, 0x04, 0x99, 0x19, 0x05, 0x49, 0x85, 0x8d, 0xe9, 0xed, + 0x23, 0x1a, 0x5d, 0x69, + ], + Core::LeftPadLow1_8 => [ + 0x5b, 0x51, 0x90, 0x53, 0xfd, 0x2b, 0xb7, 0x58, 0x47, 0x3a, 0xf8, 0xe3, 0x91, 0x0b, + 0xae, 0xf3, 0x3c, 0xc8, 0x01, 0xc0, 0xb1, 0x42, 0x0a, 0xaf, 0x81, 0x4a, 0x7e, 0x72, + 0x54, 0xea, 0x78, 0xf0, + ], + Core::LeftPadLow32_64 => [ + 0xac, 0x00, 0xa3, 0x4f, 0xb6, 0xa5, 0x8e, 0x57, 0xad, 0x22, 0x39, 0x50, 0x0e, 0x65, + 0x71, 0x37, 0x5d, 0xfd, 0xa0, 0xce, 0xa1, 0x17, 0x5f, 0xe9, 0x9d, 0x87, 0x5c, 0xd8, + 0x71, 0x81, 0x05, 0xe9, + ], + Core::LeftPadLow8_16 => [ + 0xb6, 0xf6, 0x33, 0x4c, 0xc6, 0x60, 0xe3, 0x06, 0x9f, 0x7e, 0x14, 0x37, 0xa1, 0x94, + 0x3f, 0x61, 0x0f, 0xc5, 0xa5, 0xab, 0x8a, 0xa5, 0x10, 0x5b, 0xfc, 0xec, 0xd3, 0xda, + 0x0c, 0x59, 0x63, 0x3c, + ], + Core::LeftPadLow8_32 => [ + 0x8a, 0xee, 0x9f, 0x42, 0xda, 0x9b, 0x84, 0x2e, 0x41, 0x18, 0x95, 0x96, 0x59, 0x47, + 0x56, 0xba, 0xd9, 0xba, 0xb2, 0x95, 0x3d, 0xea, 0xe6, 0x68, 0x56, 0xb9, 0xcb, 0x60, + 0x1d, 0x7a, 0xc5, 0x48, + ], + Core::LeftPadLow8_64 => [ + 0x61, 0x1d, 0x64, 0xce, 0x94, 0xf8, 0x82, 0xfd, 0xa2, 0x4c, 0x97, 0xad, 0xd1, 0x90, + 0x54, 0x21, 0x2f, 0x46, 0xb3, 0xb9, 0x8e, 0xf2, 0xae, 0x22, 0x79, 0x36, 0x45, 0x39, + 0xb9, 0x3e, 0x2b, 0x8b, + ], + Core::LeftRotate16 => [ + 0x25, 0xe2, 0xd4, 0xec, 0xc0, 0x3f, 0x87, 0x65, 0x5e, 0x96, 0x5b, 0x35, 0x7d, 0x6f, + 0xd0, 0xc2, 0xea, 0x36, 0xd1, 0x12, 0x06, 0x8c, 0x96, 0x33, 0x39, 0xde, 0x46, 0x7e, + 0x5c, 0x8e, 0x7d, 0x8e, + ], + Core::LeftRotate32 => [ + 0x2d, 0x41, 0x89, 0xb3, 0x12, 0xe8, 0xce, 0xda, 0xaa, 0x38, 0x53, 0xa4, 0x5a, 0x12, + 0x98, 0x6e, 0xe2, 0x62, 0xfb, 0x60, 0x5f, 0x0d, 0x59, 0x2d, 0xcb, 0xb9, 0x61, 0x8f, + 0xe6, 0x7a, 0x25, 0x0b, + ], + Core::LeftRotate64 => [ + 0xb8, 0xe6, 0x8e, 0x0a, 0xd6, 0x82, 0xb9, 0x67, 0xf2, 0x4c, 0x09, 0x84, 0xf7, 0xd5, + 0xf8, 0x09, 0xa2, 0x85, 0x97, 0xa0, 0x43, 0x46, 0x18, 0xc8, 0x94, 0x9f, 0xa8, 0x08, + 0xe3, 0xbe, 0x76, 0x14, + ], + Core::LeftRotate8 => [ + 0x95, 0x6a, 0x65, 0x3a, 0xe0, 0xb8, 0xf8, 0xc3, 0xf2, 0x9f, 0xd8, 0xf3, 0x31, 0x19, + 0x16, 0x8f, 0xcb, 0xe6, 0x4f, 0x5d, 0x76, 0x5f, 0xa9, 0xff, 0x6b, 0x8e, 0x3b, 0x0d, + 0x96, 0x1a, 0x16, 0x29, + ], + Core::LeftShift16 => [ + 0x9b, 0xbc, 0xe2, 0x9e, 0x69, 0x5b, 0xe2, 0xe4, 0x83, 0x0c, 0x7a, 0x93, 0xa0, 0xd2, + 0x15, 0x1b, 0x66, 0x4f, 0xc2, 0x72, 0x06, 0xee, 0xd7, 0xe5, 0x0f, 0xce, 0xf6, 0x02, + 0xd3, 0x45, 0xce, 0x0d, + ], + Core::LeftShift32 => [ + 0xf9, 0xc4, 0xbf, 0x07, 0xd3, 0xe7, 0x2e, 0x85, 0xb1, 0xd4, 0x55, 0xf7, 0x34, 0xcf, + 0x1b, 0x11, 0xbe, 0xa5, 0x8e, 0x25, 0x3b, 0x85, 0x4a, 0x1a, 0x09, 0x7b, 0xab, 0x1e, + 0xc2, 0xc6, 0x2e, 0x1f, + ], + Core::LeftShift64 => [ + 0x8c, 0xfa, 0x74, 0x1a, 0xa4, 0x1d, 0x82, 0x8a, 0x41, 0x08, 0x3b, 0xb7, 0xcb, 0xdd, + 0x1f, 0x4e, 0xda, 0x5d, 0xcc, 0xac, 0x52, 0x9b, 0x24, 0x7d, 0x18, 0x84, 0x95, 0xb4, + 0x9b, 0xb3, 0x8c, 0x2b, + ], + Core::LeftShift8 => [ + 0x95, 0x66, 0x3e, 0x07, 0x7c, 0xad, 0xca, 0x31, 0xb9, 0x59, 0x6b, 0x09, 0x70, 0x6c, + 0xdb, 0x4f, 0xa7, 0x03, 0x87, 0x0f, 0x79, 0x2a, 0x46, 0x35, 0x85, 0x2b, 0x5e, 0x24, + 0x69, 0xe6, 0xfd, 0xba, + ], + Core::LeftShiftWith16 => [ + 0x62, 0x14, 0xc4, 0x56, 0x25, 0xd7, 0x04, 0xce, 0xc9, 0x87, 0xb7, 0x96, 0x67, 0x6f, + 0x15, 0x66, 0x1a, 0x6b, 0xf5, 0xdc, 0x0f, 0x6a, 0x51, 0xcb, 0x86, 0x5a, 0x0e, 0x71, + 0xd6, 0x6f, 0xbf, 0x95, + ], + Core::LeftShiftWith32 => [ + 0x1b, 0x45, 0x2f, 0xc7, 0xab, 0x5c, 0x71, 0x47, 0x45, 0x4a, 0xf4, 0xd5, 0x59, 0x54, + 0x81, 0xff, 0xac, 0x42, 0xde, 0xa1, 0x06, 0x03, 0x2b, 0x3b, 0x9f, 0x37, 0x5b, 0xed, + 0xcd, 0xa6, 0xf4, 0xd6, + ], + Core::LeftShiftWith64 => [ + 0xc3, 0x8b, 0x02, 0xab, 0xcf, 0xf5, 0x14, 0xd9, 0x61, 0x91, 0xa7, 0xfe, 0xfb, 0xa1, + 0xac, 0x16, 0xe9, 0xc1, 0x50, 0xa1, 0x8c, 0xe1, 0xc5, 0xbc, 0xf0, 0x9d, 0x67, 0x55, + 0xe0, 0x36, 0x99, 0x05, + ], + Core::LeftShiftWith8 => [ + 0x21, 0x7a, 0xd6, 0xdc, 0x12, 0x92, 0xaa, 0x42, 0xdb, 0xd8, 0x4d, 0xbd, 0x97, 0x1c, + 0x11, 0x8f, 0x02, 0xa9, 0x74, 0x0a, 0x7c, 0xb5, 0x66, 0x1e, 0x90, 0xd4, 0x2d, 0xd5, + 0xca, 0x8c, 0xa4, 0xd9, + ], + Core::Leftmost16_1 => [ + 0x3e, 0xa8, 0x9e, 0x43, 0x20, 0x77, 0x94, 0x0d, 0x0b, 0xbf, 0x9e, 0xd2, 0xcf, 0x16, + 0xba, 0x63, 0x11, 0x10, 0xe7, 0xab, 0x9f, 0x19, 0xee, 0xf3, 0xea, 0x92, 0x5a, 0x69, + 0x9f, 0x60, 0xc6, 0x0c, + ], + Core::Leftmost16_2 => [ + 0x5c, 0xe2, 0xbd, 0x7a, 0xc3, 0x5a, 0x7c, 0x33, 0x73, 0xc3, 0xdd, 0x60, 0x7f, 0x48, + 0xe5, 0xd4, 0xc7, 0xaa, 0xa6, 0xc6, 0x9f, 0xc4, 0x93, 0x0e, 0xca, 0x14, 0x04, 0x9f, + 0x5d, 0x39, 0xff, 0xab, + ], + Core::Leftmost16_4 => [ + 0x10, 0x12, 0xa1, 0x39, 0x3e, 0xd0, 0xf9, 0x1d, 0x75, 0xad, 0x59, 0x12, 0x28, 0x53, + 0x89, 0x3a, 0x7f, 0x25, 0xcd, 0x35, 0xc8, 0x03, 0x6c, 0x7f, 0xa1, 0x95, 0x68, 0x2c, + 0xa1, 0x45, 0x8c, 0x4a, + ], + Core::Leftmost16_8 => [ + 0xcc, 0xd3, 0x1e, 0x9e, 0xb1, 0xa1, 0xbb, 0xde, 0x55, 0x5c, 0x0f, 0x73, 0x1a, 0xf2, + 0xd3, 0xd4, 0xff, 0x53, 0x88, 0xfa, 0x14, 0x61, 0x82, 0x6a, 0xa9, 0xc8, 0x93, 0x42, + 0x42, 0xac, 0x75, 0x3f, + ], + Core::Leftmost32_1 => [ + 0xb7, 0x14, 0xad, 0x74, 0xae, 0x04, 0x5a, 0xf7, 0x56, 0x80, 0x77, 0x8a, 0x03, 0x27, + 0x61, 0xa4, 0xc7, 0x26, 0xd7, 0xb6, 0xd9, 0x77, 0xbc, 0x93, 0xa4, 0x12, 0x56, 0x54, + 0x3c, 0xae, 0x8d, 0x3d, + ], + Core::Leftmost32_16 => [ + 0x1b, 0x20, 0x63, 0x4f, 0xb4, 0x3e, 0xb8, 0x3a, 0x96, 0x8c, 0x3c, 0x81, 0xc0, 0x08, + 0x7c, 0x63, 0xd5, 0xd4, 0xf8, 0xca, 0xcd, 0xbd, 0x3e, 0x0e, 0x9f, 0x9a, 0x3d, 0x75, + 0x91, 0xc3, 0xef, 0x62, + ], + Core::Leftmost32_2 => [ + 0x75, 0x2d, 0xda, 0x08, 0xe4, 0x0f, 0xae, 0xa0, 0xf6, 0xc4, 0xee, 0x3d, 0x34, 0x4b, + 0x7c, 0x4e, 0xa1, 0x1b, 0x97, 0x1d, 0xce, 0xc5, 0x55, 0x92, 0xb8, 0x22, 0xee, 0x56, + 0x27, 0x1c, 0xa5, 0xdf, + ], + Core::Leftmost32_4 => [ + 0x44, 0xe9, 0xf7, 0x79, 0xa0, 0x29, 0xec, 0xfc, 0x97, 0x62, 0xb8, 0xb6, 0xcb, 0xaf, + 0x09, 0x22, 0xd9, 0x35, 0xfe, 0xa5, 0x15, 0x0a, 0x54, 0x6a, 0x5f, 0xc1, 0xfd, 0xb8, + 0xb9, 0x53, 0x41, 0x34, + ], + Core::Leftmost32_8 => [ + 0x54, 0x80, 0x1e, 0xb5, 0xe7, 0x78, 0xcf, 0x6c, 0xda, 0x95, 0xcc, 0xf5, 0x70, 0x28, + 0x6d, 0x81, 0x6d, 0x3a, 0x1f, 0xf1, 0xdd, 0x39, 0xdb, 0x5a, 0xb6, 0x13, 0x6f, 0x0e, + 0xc3, 0xb7, 0x2d, 0xc6, + ], + Core::Leftmost64_1 => [ + 0xb3, 0x16, 0xaf, 0x24, 0xc8, 0x6b, 0x39, 0x61, 0x3d, 0x4f, 0xd1, 0xb3, 0x92, 0x6a, + 0x84, 0x13, 0x0e, 0xb7, 0xab, 0x12, 0xfd, 0xef, 0x62, 0x33, 0x17, 0xab, 0x48, 0xf7, + 0x7c, 0xb6, 0x21, 0x45, + ], + Core::Leftmost64_16 => [ + 0x8c, 0xf8, 0x54, 0x81, 0xe0, 0xf0, 0x08, 0x38, 0xb5, 0x23, 0x9b, 0xbf, 0xad, 0x13, + 0x82, 0xf0, 0x7b, 0xd0, 0x3c, 0x12, 0x1d, 0x5d, 0x8a, 0xaf, 0xa6, 0xd9, 0x83, 0x41, + 0x6d, 0xe4, 0x5c, 0x32, + ], + Core::Leftmost64_2 => [ + 0xda, 0x40, 0xc8, 0x9b, 0x15, 0xc9, 0xe8, 0x6b, 0x02, 0x8c, 0xe9, 0xec, 0x07, 0xb7, + 0xf6, 0x99, 0x5a, 0x5d, 0xdd, 0xa4, 0x85, 0x0a, 0x91, 0xaf, 0x8c, 0x60, 0xe0, 0x2b, + 0xf9, 0x91, 0xfb, 0x0c, + ], + Core::Leftmost64_32 => [ + 0x95, 0xf4, 0x6d, 0xb9, 0xd9, 0x06, 0xf0, 0x50, 0x53, 0x45, 0x5e, 0x95, 0x34, 0xeb, + 0x9b, 0x08, 0xb0, 0x9e, 0x38, 0xbc, 0x0f, 0xc6, 0x98, 0xa1, 0x6f, 0x4b, 0x2a, 0x62, + 0x71, 0x07, 0x59, 0xd1, + ], + Core::Leftmost64_4 => [ + 0xf5, 0x01, 0xf9, 0x05, 0xfb, 0x8b, 0xab, 0xa1, 0xa7, 0xe8, 0xa6, 0xbf, 0x68, 0xd3, + 0xae, 0x6a, 0x0a, 0xdd, 0x91, 0x95, 0x1b, 0x56, 0x62, 0x9d, 0x59, 0xf4, 0x28, 0x73, + 0x9e, 0x7e, 0x41, 0xa2, + ], + Core::Leftmost64_8 => [ + 0xb3, 0x7f, 0x0b, 0xa2, 0xfc, 0xbd, 0x4a, 0xe3, 0x31, 0x6a, 0x4f, 0xe4, 0xf5, 0x8a, + 0xa1, 0xa5, 0x41, 0x74, 0x0c, 0xde, 0x60, 0xed, 0x87, 0xf3, 0x38, 0x62, 0xa2, 0xff, + 0xec, 0xad, 0x44, 0x2f, + ], + Core::Leftmost8_1 => [ + 0x5f, 0xdc, 0xfa, 0x9b, 0x9a, 0x4b, 0x65, 0xc7, 0x20, 0x74, 0x71, 0xe5, 0x33, 0x92, + 0x8d, 0x6a, 0x24, 0xf4, 0xb6, 0xff, 0x9b, 0x34, 0x5e, 0xf7, 0x61, 0xb1, 0x48, 0x0a, + 0x8a, 0x05, 0xe3, 0xd7, + ], + Core::Leftmost8_2 => [ + 0x62, 0x42, 0x21, 0xe9, 0xf8, 0xa9, 0x16, 0x91, 0x26, 0xc7, 0x33, 0x47, 0x96, 0x48, + 0xc7, 0x3b, 0x68, 0xc6, 0xb8, 0xeb, 0xbb, 0x60, 0xc7, 0x2a, 0xf1, 0xe6, 0xfc, 0x65, + 0xe7, 0xd3, 0x07, 0x23, + ], + Core::Leftmost8_4 => [ + 0x1a, 0x48, 0x43, 0xc4, 0x08, 0xe1, 0xd4, 0x6c, 0x9c, 0x93, 0x89, 0x46, 0x34, 0x49, + 0x5f, 0x8a, 0xd6, 0xa6, 0x80, 0xe3, 0x2d, 0xd6, 0xf2, 0x5b, 0xa1, 0x9d, 0xbc, 0x60, + 0xa6, 0x0d, 0x18, 0x97, + ], Core::LinearCombination1 => [ 0xd8, 0x83, 0x20, 0xf4, 0x71, 0xf3, 0xbe, 0xee, 0xa1, 0x31, 0x3d, 0x55, 0x1e, 0x41, 0x9b, 0xe0, 0x57, 0x27, 0xae, 0x5f, 0x4d, 0xe6, 0xa2, 0xf2, 0xf2, 0x6f, 0x3c, 0xb5, @@ -781,6 +1449,11 @@ impl Jet for Core { 0x2c, 0x6e, 0x85, 0x34, 0x3b, 0x74, 0xf2, 0x86, 0x34, 0xea, 0x85, 0xf7, 0x0f, 0xc3, 0x41, 0xcc, 0xaf, 0xf3, ], + Core::Low1 => [ + 0xdb, 0x4a, 0x42, 0x4a, 0x20, 0xae, 0xef, 0xa4, 0xe7, 0x42, 0xd5, 0x1d, 0x84, 0x92, + 0x92, 0x18, 0xcb, 0xf7, 0x34, 0x72, 0x61, 0x76, 0xdc, 0x4f, 0xf9, 0xf8, 0xbf, 0x13, + 0xde, 0x10, 0xca, 0x2b, + ], Core::Low16 => [ 0xa1, 0x14, 0xe9, 0x58, 0x0d, 0xe0, 0x7d, 0x8b, 0x07, 0x7e, 0xb8, 0x89, 0x98, 0x75, 0x5a, 0x0a, 0x62, 0xbf, 0xe0, 0x85, 0xfb, 0x23, 0x40, 0x4c, 0xd1, 0xe8, 0x78, 0x68, @@ -821,6 +1494,11 @@ impl Jet for Core { 0x6e, 0x15, 0x57, 0x03, 0x16, 0xbb, 0xa8, 0x9f, 0xfa, 0x9a, 0xe5, 0x56, 0xa9, 0x15, 0xf3, 0x7b, 0x64, 0x0b, ], + Core::Maj1 => [ + 0xae, 0x8b, 0x91, 0x2e, 0x3a, 0xd4, 0x7f, 0x68, 0x8b, 0xbb, 0x46, 0xc8, 0xcb, 0x6d, + 0x53, 0x33, 0x69, 0xf5, 0x10, 0x9a, 0x27, 0x30, 0x47, 0x1e, 0xab, 0x6e, 0xfe, 0x98, + 0xe9, 0xea, 0x5e, 0x78, + ], Core::Maj16 => [ 0xf5, 0xa4, 0x1d, 0xa0, 0x37, 0x7f, 0xe6, 0x88, 0xac, 0x2f, 0xcd, 0xf3, 0x5b, 0x6b, 0x7a, 0x47, 0x2e, 0x78, 0xea, 0x69, 0xfd, 0x2b, 0x17, 0xf7, 0x56, 0x34, 0x2b, 0xaa, @@ -981,6 +1659,11 @@ impl Jet for Core { 0x74, 0x0a, 0x40, 0xfe, 0xce, 0x71, 0x91, 0x30, 0x1d, 0x00, 0xe5, 0x17, 0xd8, 0xd3, 0x4f, 0x46, 0xc2, 0x50, ], + Core::Or1 => [ + 0x93, 0x52, 0x22, 0x30, 0x17, 0x00, 0x98, 0x7d, 0xe1, 0x2c, 0xb4, 0x26, 0x17, 0x21, + 0x81, 0x53, 0xfd, 0x7c, 0xcd, 0x63, 0x17, 0x4a, 0x17, 0x49, 0xfc, 0x88, 0x0c, 0x39, + 0xe3, 0xe7, 0x23, 0x9c, + ], Core::Or16 => [ 0xdf, 0xea, 0xd0, 0xba, 0x93, 0xe4, 0x91, 0x55, 0xc4, 0x0c, 0xb3, 0x72, 0xca, 0x5e, 0xf6, 0x17, 0x97, 0x41, 0xc6, 0x1f, 0x2b, 0x3c, 0xc2, 0x79, 0x7e, 0xf1, 0x62, 0xc8, @@ -1016,6 +1699,286 @@ impl Jet for Core { 0xce, 0x65, 0x50, 0x9b, 0x39, 0xae, 0xaf, 0x43, 0xd2, 0xe5, 0xf8, 0x0c, 0xa9, 0x03, 0xfc, 0x81, 0xc8, 0x46, ], + Core::RightExtend16_32 => [ + 0x36, 0x42, 0x3c, 0x16, 0xd4, 0x8d, 0x6c, 0x7c, 0x91, 0xed, 0x44, 0x16, 0x11, 0xbe, + 0x30, 0x72, 0xdf, 0xa5, 0xdd, 0x38, 0xe4, 0xd2, 0x7d, 0xa8, 0xda, 0xed, 0x29, 0x78, + 0x8f, 0xc9, 0x52, 0x08, + ], + Core::RightExtend16_64 => [ + 0x4b, 0x8a, 0x47, 0xb9, 0x06, 0x70, 0x73, 0xa1, 0xfb, 0x68, 0x30, 0x0f, 0xac, 0xd6, + 0xc5, 0x06, 0x98, 0x90, 0xab, 0xdb, 0x7e, 0xaa, 0xcb, 0x62, 0x2a, 0xd7, 0x30, 0x9a, + 0x87, 0xf4, 0xd3, 0x4d, + ], + Core::RightExtend32_64 => [ + 0xdd, 0x6a, 0xf1, 0xc8, 0x01, 0xd2, 0x6c, 0x0b, 0x2e, 0xdf, 0x83, 0xce, 0x67, 0xb1, + 0x72, 0xdf, 0x67, 0x57, 0xd0, 0x7f, 0xb7, 0xc8, 0x54, 0x68, 0x6f, 0x42, 0xe5, 0x76, + 0x8a, 0xdc, 0xc9, 0xe7, + ], + Core::RightExtend8_16 => [ + 0x1d, 0xe2, 0x01, 0xa8, 0x64, 0x70, 0xa0, 0x2b, 0x2d, 0xfe, 0x48, 0xc6, 0x6a, 0xfe, + 0x06, 0x73, 0x5b, 0x47, 0x5e, 0x88, 0xd3, 0x25, 0xcb, 0xf1, 0x60, 0x42, 0xa9, 0x10, + 0x24, 0xd2, 0xbe, 0xd9, + ], + Core::RightExtend8_32 => [ + 0x7e, 0x9c, 0x5c, 0xb3, 0x54, 0x19, 0xab, 0x06, 0xe1, 0x22, 0x00, 0x23, 0x10, 0x2b, + 0xe4, 0x6a, 0xb6, 0xd9, 0x69, 0x95, 0xc4, 0x23, 0xc6, 0xb1, 0x4b, 0x9a, 0x66, 0x02, + 0x8a, 0xec, 0x5d, 0x75, + ], + Core::RightExtend8_64 => [ + 0x49, 0xd2, 0x46, 0xc2, 0xa6, 0x1c, 0xd3, 0x9d, 0x78, 0x20, 0xdc, 0xd7, 0x5e, 0xee, + 0x84, 0x7b, 0xf0, 0x57, 0xc0, 0x1a, 0x63, 0xa3, 0xac, 0xbc, 0xc9, 0x46, 0x3e, 0x44, + 0xbc, 0x1e, 0x0b, 0x6c, + ], + Core::RightPadHigh16_32 => [ + 0xfe, 0x90, 0x1f, 0xb4, 0xf6, 0xeb, 0xdc, 0x4e, 0xa2, 0x96, 0x19, 0x98, 0x99, 0x22, + 0xb8, 0x0f, 0xa9, 0xce, 0x24, 0x12, 0x87, 0xfa, 0x54, 0x08, 0x64, 0x36, 0x2c, 0xcc, + 0xe9, 0xf5, 0x4b, 0x3b, + ], + Core::RightPadHigh16_64 => [ + 0xda, 0x90, 0xad, 0xd3, 0x10, 0x67, 0xcc, 0xfd, 0xbe, 0xe4, 0xcb, 0xfb, 0x21, 0xde, + 0x8e, 0x6a, 0xa4, 0xf9, 0x3e, 0x00, 0x22, 0x00, 0x71, 0x1f, 0x99, 0x84, 0xaf, 0x6f, + 0xc0, 0x1e, 0x27, 0x00, + ], + Core::RightPadHigh1_16 => [ + 0xe4, 0xcf, 0x11, 0x6c, 0x08, 0x80, 0xf7, 0x3f, 0x99, 0x52, 0xf7, 0x00, 0x81, 0x78, + 0x84, 0x98, 0xe5, 0x08, 0x4c, 0xbb, 0x72, 0xcf, 0x84, 0x1b, 0xcd, 0x91, 0x67, 0xa6, + 0xee, 0xa2, 0x64, 0xdc, + ], + Core::RightPadHigh1_32 => [ + 0x12, 0x76, 0x03, 0x6b, 0xb9, 0x4c, 0xfd, 0x92, 0x0a, 0xb7, 0x31, 0x64, 0x3b, 0x76, + 0xb1, 0x19, 0x72, 0xdd, 0x26, 0x54, 0x38, 0x53, 0x44, 0x4e, 0x18, 0xd7, 0xf6, 0x3f, + 0xca, 0xc0, 0x91, 0xa3, + ], + Core::RightPadHigh1_64 => [ + 0x38, 0xc9, 0x99, 0x80, 0xb1, 0xa9, 0x98, 0x10, 0x51, 0x11, 0xc5, 0x6b, 0xf8, 0x24, + 0x65, 0x09, 0x65, 0xa5, 0x09, 0xc4, 0x7e, 0x1c, 0x76, 0xd9, 0x00, 0x75, 0x0a, 0x1f, + 0xee, 0x45, 0xc9, 0x64, + ], + Core::RightPadHigh1_8 => [ + 0xca, 0x72, 0xce, 0xed, 0x2d, 0x98, 0xdc, 0xcd, 0x81, 0xaa, 0x21, 0xf0, 0xba, 0x21, + 0xd1, 0xa0, 0x87, 0xb6, 0xf2, 0x52, 0x07, 0xc2, 0x4a, 0x58, 0x0a, 0xda, 0x7e, 0x60, + 0x5f, 0x79, 0x82, 0xdf, + ], + Core::RightPadHigh32_64 => [ + 0x17, 0xeb, 0x59, 0x11, 0xf8, 0x54, 0x95, 0x76, 0x68, 0xee, 0xf4, 0x63, 0xb0, 0xcb, + 0xae, 0x72, 0x08, 0x52, 0x91, 0x34, 0xef, 0x5e, 0x56, 0xcd, 0x33, 0xfb, 0xbc, 0x29, + 0xc2, 0x8b, 0xbe, 0x92, + ], + Core::RightPadHigh8_16 => [ + 0xd2, 0x6f, 0x0c, 0xc5, 0xb2, 0x61, 0xeb, 0x83, 0x0e, 0x02, 0xdf, 0x12, 0xcc, 0x57, + 0x44, 0x25, 0x9b, 0x4a, 0x43, 0xd9, 0x75, 0xbd, 0x2e, 0x3d, 0x7c, 0x78, 0x28, 0x11, + 0x76, 0x1f, 0xf1, 0xd1, + ], + Core::RightPadHigh8_32 => [ + 0xbd, 0x2e, 0x5c, 0x92, 0x60, 0xbf, 0x6f, 0x32, 0x4d, 0x2b, 0x1f, 0x40, 0xcb, 0xb1, + 0x22, 0x40, 0x2f, 0x30, 0xd5, 0x2f, 0x64, 0x34, 0xe3, 0x9f, 0x8a, 0x09, 0xb8, 0x39, + 0x7b, 0xc3, 0x2e, 0x94, + ], + Core::RightPadHigh8_64 => [ + 0x94, 0x1b, 0xf4, 0x42, 0xdb, 0xcf, 0x4f, 0x20, 0x04, 0xa4, 0xb1, 0x8b, 0xee, 0xb2, + 0xad, 0xac, 0x9f, 0x20, 0x9f, 0xea, 0x4c, 0x4b, 0xd4, 0x8c, 0xed, 0xe8, 0xda, 0xfa, + 0xcf, 0x88, 0x43, 0xb7, + ], + Core::RightPadLow16_32 => [ + 0xbb, 0x38, 0x7c, 0x29, 0x2d, 0x59, 0xd7, 0x13, 0xad, 0x76, 0xf6, 0xce, 0xd5, 0xb5, + 0x96, 0xcf, 0xd8, 0x38, 0x58, 0x92, 0x4f, 0x72, 0x5f, 0x7d, 0x11, 0x6b, 0x28, 0x07, + 0x58, 0x21, 0x92, 0x5a, + ], + Core::RightPadLow16_64 => [ + 0x02, 0x32, 0x32, 0x6e, 0xe1, 0xb2, 0x06, 0xad, 0x26, 0x34, 0x9b, 0x55, 0x3d, 0x7f, + 0x24, 0x62, 0x28, 0x73, 0x20, 0xd6, 0x30, 0xe4, 0x29, 0x32, 0x07, 0x40, 0xcb, 0xd3, + 0xeb, 0x4e, 0xf9, 0xbe, + ], + Core::RightPadLow1_16 => [ + 0xd9, 0x13, 0xf6, 0x02, 0xb3, 0x59, 0x58, 0xd5, 0x2a, 0xbb, 0x20, 0xb0, 0x2c, 0xe6, + 0x89, 0x61, 0x6f, 0xfa, 0x66, 0xe0, 0x2d, 0x73, 0x86, 0x7d, 0x29, 0x18, 0x1e, 0x11, + 0x93, 0xc9, 0xd2, 0x43, + ], + Core::RightPadLow1_32 => [ + 0x6b, 0x40, 0x33, 0xd9, 0xfc, 0x6c, 0x87, 0x6b, 0x2e, 0x75, 0xd5, 0x82, 0xbb, 0x9b, + 0x3c, 0x04, 0xfa, 0x29, 0xdf, 0xb2, 0x2c, 0x9e, 0x1a, 0x48, 0x8e, 0x83, 0x7c, 0x2f, + 0x39, 0xaa, 0x61, 0x60, + ], + Core::RightPadLow1_64 => [ + 0x4e, 0x2b, 0x20, 0xdd, 0x9d, 0x91, 0x85, 0x7a, 0x49, 0xc8, 0x20, 0xd0, 0x6f, 0x43, + 0x5d, 0xd3, 0xca, 0x79, 0x1f, 0x17, 0x7e, 0xea, 0xf3, 0x4a, 0xec, 0x36, 0xc4, 0x54, + 0x19, 0xd1, 0x69, 0x65, + ], + Core::RightPadLow1_8 => [ + 0x24, 0xee, 0xe4, 0x51, 0xb2, 0x6b, 0xa3, 0x9d, 0x6b, 0xcc, 0x58, 0x8b, 0x72, 0x0f, + 0xaf, 0x22, 0x32, 0x76, 0x79, 0x12, 0xf6, 0x7d, 0xb3, 0x29, 0x06, 0x0d, 0x90, 0xb7, + 0x14, 0x17, 0xb6, 0xc3, + ], + Core::RightPadLow32_64 => [ + 0x52, 0xfb, 0x8b, 0xbc, 0xef, 0x90, 0x32, 0x31, 0xa5, 0xb7, 0x67, 0x91, 0xe4, 0x65, + 0x2b, 0x38, 0xbe, 0xd8, 0x97, 0x7f, 0x5d, 0xab, 0x17, 0x95, 0x55, 0x99, 0x8d, 0xb2, + 0x4d, 0x1d, 0x7c, 0x98, + ], + Core::RightPadLow8_16 => [ + 0x17, 0x19, 0xb2, 0x79, 0x74, 0xe8, 0x43, 0x80, 0x50, 0x88, 0x25, 0x30, 0xa1, 0xa4, + 0x2e, 0xd7, 0xab, 0x3c, 0xa2, 0x8d, 0x25, 0x4a, 0xdc, 0x37, 0xfe, 0x56, 0x66, 0xfd, + 0x2f, 0x70, 0xb4, 0xe4, + ], + Core::RightPadLow8_32 => [ + 0xee, 0x2a, 0x82, 0x30, 0xf2, 0x83, 0xdc, 0x08, 0x3b, 0x8e, 0x19, 0x44, 0x8b, 0xa3, + 0x24, 0x97, 0xe9, 0x31, 0x8b, 0x4e, 0x9e, 0x1b, 0xd4, 0xeb, 0xe1, 0xbe, 0xc5, 0x24, + 0x47, 0x6a, 0xb8, 0x6d, + ], + Core::RightPadLow8_64 => [ + 0x97, 0xda, 0x90, 0xd8, 0x42, 0x8e, 0x6b, 0x94, 0xe6, 0xc1, 0x35, 0x14, 0x60, 0xdc, + 0x01, 0x12, 0x3e, 0x47, 0x9c, 0x4a, 0xaf, 0xbb, 0xd1, 0x4c, 0x78, 0xad, 0x2f, 0xad, + 0x0a, 0x89, 0x5e, 0xf3, + ], + Core::RightRotate16 => [ + 0xee, 0x7d, 0x1c, 0x1f, 0x3d, 0x82, 0xda, 0x56, 0x81, 0xdd, 0x8b, 0x50, 0x69, 0xd5, + 0x37, 0xd8, 0x9f, 0x22, 0x93, 0xaa, 0x60, 0x53, 0x32, 0xce, 0x10, 0xc1, 0xc4, 0x22, + 0x4a, 0x53, 0xce, 0xea, + ], + Core::RightRotate32 => [ + 0x89, 0x2a, 0x28, 0xdb, 0x32, 0x4c, 0xd9, 0x3c, 0xf7, 0xf6, 0x9c, 0x30, 0x72, 0xa7, + 0xb2, 0x22, 0xb8, 0x8c, 0x81, 0x8e, 0xe0, 0xe5, 0xa1, 0xb8, 0x97, 0xe5, 0x0c, 0x58, + 0x1f, 0x2a, 0x29, 0x62, + ], + Core::RightRotate64 => [ + 0x64, 0x31, 0x4f, 0xf1, 0x90, 0x40, 0xa3, 0x76, 0xf9, 0xfc, 0xf0, 0x2e, 0x75, 0x74, + 0x14, 0x9c, 0x12, 0x3f, 0x99, 0xc3, 0x90, 0x71, 0xcd, 0x37, 0x85, 0x1f, 0x8f, 0x8c, + 0xdf, 0x0e, 0xed, 0x42, + ], + Core::RightRotate8 => [ + 0x15, 0x81, 0xe0, 0xca, 0x09, 0xf1, 0x36, 0x84, 0xfe, 0x31, 0x35, 0xc1, 0xc6, 0xb6, + 0xf9, 0xc4, 0x89, 0xd7, 0xdd, 0x1e, 0xf0, 0xa5, 0xf7, 0x70, 0x83, 0xbb, 0x0e, 0xd0, + 0x0b, 0x4d, 0xf2, 0x8f, + ], + Core::RightShift16 => [ + 0x5b, 0x4e, 0xc4, 0x62, 0xd4, 0xe2, 0xed, 0x89, 0xff, 0xe3, 0xfd, 0x40, 0x59, 0x32, + 0xc7, 0x97, 0x80, 0x28, 0x61, 0x20, 0x3e, 0xcb, 0x61, 0xd5, 0xb5, 0x9a, 0x73, 0xb0, + 0xfb, 0xfc, 0x4e, 0x84, + ], + Core::RightShift32 => [ + 0xb2, 0x86, 0x1a, 0x48, 0xb2, 0x05, 0x41, 0x76, 0x91, 0xb6, 0x34, 0x7f, 0xe7, 0x5e, + 0xbe, 0xa5, 0x45, 0x60, 0xcf, 0x81, 0x38, 0x14, 0xac, 0x31, 0x63, 0x91, 0x70, 0xdb, + 0x92, 0xb9, 0x47, 0xd6, + ], + Core::RightShift64 => [ + 0xd3, 0x39, 0x42, 0xbf, 0x18, 0x61, 0x8a, 0x10, 0x4a, 0x57, 0x07, 0x54, 0x7f, 0x78, + 0xab, 0x72, 0x94, 0x1f, 0x4e, 0xe8, 0x13, 0x21, 0x6c, 0x0c, 0xe5, 0x20, 0xf3, 0x56, + 0x60, 0xfd, 0xbf, 0x81, + ], + Core::RightShift8 => [ + 0x73, 0x79, 0x12, 0xae, 0x32, 0x32, 0x50, 0xc0, 0x4e, 0x51, 0x6e, 0x39, 0x66, 0xce, + 0x94, 0x7e, 0x65, 0x32, 0x6f, 0x47, 0x46, 0x8a, 0xc9, 0x31, 0xc1, 0x63, 0xc3, 0xb0, + 0x2d, 0xe4, 0x12, 0x45, + ], + Core::RightShiftWith16 => [ + 0x1e, 0x18, 0x1c, 0x33, 0x16, 0x93, 0x59, 0x4c, 0x6e, 0x0e, 0x8f, 0xde, 0xb4, 0x0a, + 0x81, 0xa3, 0xaf, 0x8f, 0x56, 0xb7, 0xa5, 0x60, 0xde, 0x64, 0x41, 0x30, 0x3f, 0x65, + 0xf4, 0xfc, 0x93, 0x7c, + ], + Core::RightShiftWith32 => [ + 0x69, 0xdb, 0xe1, 0x90, 0xd7, 0x2d, 0x77, 0xd0, 0xd0, 0xdc, 0xf3, 0x25, 0xde, 0x96, + 0x59, 0x22, 0x14, 0x58, 0x1f, 0x11, 0xe9, 0xed, 0xca, 0x93, 0xe2, 0xf9, 0x28, 0x48, + 0x2b, 0x5e, 0x77, 0xa7, + ], + Core::RightShiftWith64 => [ + 0x2d, 0x0a, 0xb8, 0x83, 0x04, 0x69, 0x28, 0x0e, 0x2a, 0x28, 0x99, 0x3c, 0x5a, 0x05, + 0xf5, 0x6b, 0x91, 0xa8, 0xae, 0xb0, 0x34, 0xcc, 0xeb, 0xe0, 0x9c, 0x50, 0xf1, 0x3e, + 0xa7, 0x8d, 0xda, 0xfc, + ], + Core::RightShiftWith8 => [ + 0x1b, 0xdb, 0xdc, 0x8d, 0x8b, 0x74, 0x9b, 0xa3, 0xda, 0x75, 0x75, 0x58, 0x7d, 0x99, + 0x93, 0x00, 0x72, 0x60, 0x3f, 0x27, 0x5f, 0x7b, 0xd2, 0xf3, 0x24, 0xa3, 0x49, 0x51, + 0xd4, 0x46, 0x1b, 0x21, + ], + Core::Rightmost16_1 => [ + 0xe1, 0x29, 0xa8, 0xae, 0x88, 0x0f, 0x51, 0xca, 0x2a, 0x94, 0xdb, 0x44, 0xed, 0xec, + 0xa1, 0xc3, 0xa7, 0x66, 0xb7, 0x3e, 0x98, 0x97, 0x0b, 0x11, 0x98, 0xad, 0xe2, 0x16, + 0xae, 0x69, 0xcd, 0x2d, + ], + Core::Rightmost16_2 => [ + 0x8d, 0x0f, 0x68, 0xda, 0xdf, 0x54, 0x6c, 0x5e, 0xd3, 0x6f, 0x34, 0x70, 0x58, 0x02, + 0xb0, 0xce, 0x83, 0x9a, 0x63, 0xe5, 0x74, 0x49, 0x77, 0x85, 0x24, 0x30, 0x08, 0xab, + 0x42, 0x7e, 0x45, 0x6b, + ], + Core::Rightmost16_4 => [ + 0xb0, 0xd4, 0x13, 0x95, 0x41, 0xec, 0xab, 0x2c, 0x16, 0xfc, 0x1a, 0x87, 0x98, 0x9b, + 0xdd, 0x04, 0x53, 0x22, 0xef, 0xb1, 0xe7, 0x0b, 0xc1, 0xf7, 0xb0, 0x4d, 0x43, 0xb2, + 0x8b, 0xb3, 0x49, 0xff, + ], + Core::Rightmost16_8 => [ + 0x0f, 0x03, 0xfa, 0x0f, 0xa6, 0xce, 0xb5, 0x5d, 0xf9, 0x9b, 0x20, 0xd9, 0xef, 0xcf, + 0x37, 0x10, 0xa7, 0x08, 0xa2, 0x84, 0xa9, 0x5c, 0x33, 0x4c, 0x1d, 0xa3, 0xcb, 0xfe, + 0x02, 0xfb, 0x94, 0x67, + ], + Core::Rightmost32_1 => [ + 0x8f, 0x5e, 0x52, 0x63, 0xbb, 0x8e, 0xf8, 0x00, 0xc9, 0x9d, 0x0c, 0x23, 0xfc, 0xba, + 0xa3, 0x19, 0x8a, 0x6a, 0xbd, 0xf0, 0x08, 0x58, 0x1e, 0x8c, 0x89, 0x10, 0x52, 0xb4, + 0x0c, 0xa7, 0xf7, 0xa4, + ], + Core::Rightmost32_16 => [ + 0xb9, 0xa2, 0x3e, 0x1b, 0xf7, 0xc6, 0x81, 0x43, 0x51, 0x30, 0x74, 0xc9, 0x39, 0xbd, + 0x73, 0xc9, 0xbf, 0x8e, 0xb5, 0xaa, 0xce, 0x84, 0x15, 0xff, 0x01, 0x02, 0x2f, 0xca, + 0x65, 0xb3, 0xa3, 0x42, + ], + Core::Rightmost32_2 => [ + 0xab, 0xf3, 0x23, 0x8d, 0x3c, 0xbf, 0x0b, 0xf3, 0x5a, 0x83, 0x96, 0x1f, 0xb9, 0xf9, + 0x04, 0xb5, 0x6d, 0x3a, 0x9e, 0x0e, 0x35, 0xc8, 0x9d, 0xf8, 0x72, 0xc9, 0xc9, 0x38, + 0xd3, 0x44, 0xa5, 0x4a, + ], + Core::Rightmost32_4 => [ + 0xf7, 0xee, 0xd2, 0xec, 0x80, 0x59, 0x06, 0xfe, 0xb3, 0xac, 0x27, 0xf2, 0xde, 0xe5, + 0x3b, 0x58, 0xc3, 0xb1, 0x3e, 0x40, 0xe2, 0xbc, 0x3e, 0x8b, 0x10, 0x63, 0x2e, 0xd9, + 0xc0, 0xe7, 0xca, 0x5f, + ], + Core::Rightmost32_8 => [ + 0xf3, 0xe4, 0x39, 0xed, 0x98, 0x83, 0xc6, 0xa6, 0xb9, 0x07, 0x20, 0x53, 0x2e, 0xb4, + 0xe0, 0x43, 0xe8, 0x9a, 0x35, 0xf0, 0xb5, 0x29, 0x5f, 0xd5, 0x02, 0xa0, 0xb0, 0xb2, + 0x43, 0x6b, 0xd2, 0x13, + ], + Core::Rightmost64_1 => [ + 0xc9, 0x6b, 0xe3, 0xe3, 0x35, 0x48, 0x25, 0x8e, 0x30, 0x71, 0x7b, 0x30, 0x81, 0x7e, + 0x44, 0x0f, 0x0a, 0xf4, 0xb1, 0x89, 0x0e, 0xdf, 0xcf, 0x7f, 0xdc, 0xb3, 0x9c, 0xb9, + 0xef, 0xff, 0x47, 0x1d, + ], + Core::Rightmost64_16 => [ + 0x5d, 0x55, 0x5f, 0x83, 0xe4, 0x80, 0x87, 0xdb, 0x0c, 0x41, 0x5d, 0xad, 0x17, 0xf0, + 0x81, 0xd4, 0xf6, 0xb7, 0x60, 0xe9, 0x95, 0xf2, 0x72, 0xbb, 0xb6, 0xe4, 0xcb, 0x42, + 0xd0, 0xf5, 0x03, 0x25, + ], + Core::Rightmost64_2 => [ + 0xa9, 0xcb, 0x13, 0x43, 0xdb, 0xd5, 0x22, 0xb9, 0x1b, 0x64, 0x82, 0xe4, 0xba, 0xe6, + 0x2b, 0x0e, 0x5f, 0x82, 0x98, 0x68, 0x7e, 0x64, 0x23, 0x33, 0x5c, 0x6d, 0xf5, 0x06, + 0xdc, 0x42, 0x5b, 0x90, + ], + Core::Rightmost64_32 => [ + 0x47, 0x33, 0xb1, 0x92, 0x59, 0x80, 0x09, 0x64, 0x99, 0xb7, 0x87, 0x7c, 0x04, 0xe0, + 0x01, 0xba, 0xd3, 0x32, 0x5b, 0x2e, 0xca, 0xb3, 0x48, 0xe5, 0xad, 0xd7, 0x20, 0xd0, + 0x7b, 0x1b, 0x4a, 0x3a, + ], + Core::Rightmost64_4 => [ + 0x89, 0xda, 0xf7, 0xbe, 0x2c, 0xde, 0x58, 0xf0, 0x4e, 0x8d, 0xee, 0x58, 0xa4, 0x39, + 0x10, 0x91, 0x2c, 0x09, 0x6e, 0x95, 0xe1, 0x46, 0xc1, 0x9b, 0x00, 0xf5, 0x4f, 0xe8, + 0x74, 0x70, 0x07, 0x40, + ], + Core::Rightmost64_8 => [ + 0x1d, 0xfb, 0x2b, 0xef, 0x4c, 0xae, 0x45, 0x07, 0x92, 0x27, 0x08, 0xe5, 0xa5, 0x70, + 0x99, 0x49, 0x3f, 0xbe, 0x21, 0x15, 0x98, 0xee, 0xc0, 0xbf, 0xe0, 0xe7, 0x7b, 0x3d, + 0x41, 0xec, 0x89, 0xab, + ], + Core::Rightmost8_1 => [ + 0xce, 0xab, 0xd5, 0xca, 0x9f, 0xd9, 0x16, 0x2f, 0x99, 0x5e, 0x37, 0x35, 0x77, 0x04, + 0x7a, 0xa4, 0xba, 0x71, 0xf8, 0x07, 0xc7, 0x11, 0xf6, 0x0b, 0x08, 0xeb, 0x6a, 0x1c, + 0xfc, 0x38, 0x1c, 0x9c, + ], + Core::Rightmost8_2 => [ + 0x39, 0xb2, 0xf0, 0x37, 0xb6, 0xa0, 0x81, 0x86, 0x11, 0x50, 0x65, 0xf3, 0x85, 0x05, + 0x7a, 0xf3, 0xde, 0x3b, 0x9f, 0x0a, 0x9b, 0xda, 0x68, 0x33, 0x71, 0x46, 0x22, 0x59, + 0x41, 0x30, 0x28, 0xec, + ], + Core::Rightmost8_4 => [ + 0xa7, 0xa9, 0x49, 0x49, 0x0d, 0x1a, 0x00, 0xde, 0xfe, 0x5f, 0x61, 0x51, 0x29, 0x23, + 0x85, 0x0f, 0x51, 0xe3, 0x47, 0xc0, 0x6a, 0x8d, 0x76, 0xa0, 0xcd, 0xab, 0x87, 0xee, + 0xe2, 0x9a, 0x5d, 0xef, + ], Core::ScalarAdd => [ 0x4e, 0xe9, 0xa9, 0x6c, 0xef, 0x49, 0x6c, 0xf4, 0xa8, 0xfc, 0x4e, 0x8a, 0x8b, 0xc0, 0xd1, 0x59, 0xca, 0x5f, 0xfb, 0x87, 0x53, 0x64, 0x3a, 0x8a, 0xdf, 0x63, 0x8a, 0xe8, @@ -1136,6 +2099,11 @@ impl Jet for Core { 0x0b, 0x17, 0x32, 0x9f, 0x98, 0x28, 0x1d, 0x13, 0xf5, 0x15, 0x77, 0x00, 0xfa, 0x6a, 0x1d, 0x6d, 0x5d, 0x42, ], + Core::Some1 => [ + 0x0b, 0x9c, 0xb7, 0xb4, 0x7d, 0xeb, 0x4f, 0x9d, 0x95, 0xd5, 0xc0, 0x20, 0x00, 0x1f, + 0xd0, 0x09, 0xa2, 0xf1, 0x0c, 0xe5, 0xd9, 0x18, 0xd8, 0x18, 0x1e, 0x25, 0x93, 0x15, + 0xfe, 0x8e, 0xac, 0x53, + ], Core::Some16 => [ 0x30, 0xd8, 0x14, 0xff, 0xb4, 0x92, 0x78, 0xb4, 0x25, 0x00, 0x7b, 0x9d, 0xe2, 0x79, 0xf7, 0x6f, 0x4a, 0x6d, 0xa4, 0xc0, 0x34, 0x63, 0x4a, 0xbb, 0x87, 0x11, 0x0e, 0xcb, @@ -1181,6 +2149,11 @@ impl Jet for Core { 0x64, 0x99, 0xa0, 0x3a, 0x9a, 0x0f, 0x99, 0x3b, 0xe3, 0xc4, 0x8e, 0x9d, 0x1f, 0x40, 0x5d, 0x97, 0x94, 0x7c, ], + Core::Xor1 => [ + 0x77, 0xb7, 0x14, 0xe6, 0x89, 0xc9, 0xd6, 0xa4, 0x8f, 0xd1, 0xad, 0xd8, 0x65, 0x22, + 0x82, 0x3d, 0xeb, 0xc7, 0x0d, 0xf6, 0xa7, 0xfe, 0x4b, 0xf2, 0xb8, 0x5d, 0xe5, 0x49, + 0xe0, 0xcd, 0x0a, 0x05, + ], Core::Xor16 => [ 0xca, 0x36, 0x35, 0x51, 0x35, 0xa8, 0x6a, 0x11, 0x68, 0x6c, 0x01, 0xaa, 0x35, 0xf2, 0x5b, 0x97, 0xfa, 0xee, 0xda, 0xbf, 0xde, 0xc8, 0xdf, 0x08, 0xd2, 0xc0, 0xf6, 0x65, @@ -1201,6 +2174,11 @@ impl Jet for Core { 0xf9, 0x7d, 0x23, 0xc1, 0x2f, 0x6e, 0x2b, 0xb8, 0xbb, 0xe8, 0x30, 0x4a, 0xc7, 0x0f, 0x61, 0xc1, 0xcf, 0x2c, ], + Core::XorXor1 => [ + 0x22, 0x52, 0xa9, 0x86, 0x08, 0xd2, 0x0b, 0xd4, 0x11, 0x31, 0x7a, 0x20, 0x15, 0xc1, + 0x56, 0x98, 0x70, 0xa6, 0x2c, 0x95, 0x3a, 0x61, 0x65, 0xfb, 0xe9, 0x77, 0xb4, 0x0d, + 0x6c, 0xce, 0xa4, 0x95, + ], Core::XorXor16 => [ 0xa1, 0xf2, 0xd6, 0x33, 0xbf, 0x98, 0x89, 0xa0, 0x8a, 0x42, 0x51, 0x2a, 0x78, 0x93, 0xa6, 0x79, 0x9d, 0xc4, 0x7a, 0xa8, 0x29, 0xff, 0x8f, 0x57, 0x7c, 0x5b, 0xc9, 0x75, @@ -1236,16 +2214,19 @@ impl Jet for Core { Core::All32 => b"i", Core::All64 => b"l", Core::All8 => b"***22*22**22*22", + Core::And1 => b"*22", Core::And16 => b"i", Core::And32 => b"l", Core::And64 => b"*ll", Core::And8 => b"****22*22**22*22***22*22**22*22", Core::Bip0340Verify => b"**hh*hh", + Core::Ch1 => b"*2*22", Core::Ch16 => b"*****22*22**22*22***22*22**22*22i", Core::Ch32 => b"*il", Core::Ch64 => b"*l*ll", Core::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22", Core::CheckSigVerify => b"**h*hh*hh", + Core::Complement1 => b"2", Core::Complement16 => b"****22*22**22*22***22*22**22*22", Core::Complement32 => b"i", Core::Complement64 => b"l", @@ -1267,6 +2248,7 @@ impl Jet for Core { Core::Divides32 => b"l", Core::Divides64 => b"*ll", Core::Divides8 => b"****22*22**22*22***22*22**22*22", + Core::Eq1 => b"*22", Core::Eq16 => b"i", Core::Eq256 => b"*hh", Core::Eq32 => b"l", @@ -1294,10 +2276,46 @@ impl Jet for Core { Core::FullIncrement32 => b"*2i", Core::FullIncrement64 => b"*2l", Core::FullIncrement8 => b"*2***22*22**22*22", + Core::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222", + Core::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22", + Core::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22", + Core::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22", + Core::FullLeftShift32_1 => b"*i2", + Core::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22", + Core::FullLeftShift32_2 => b"*i*22", + Core::FullLeftShift32_4 => b"*i**22*22", + Core::FullLeftShift32_8 => b"*i***22*22**22*22", + Core::FullLeftShift64_1 => b"*l2", + Core::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22", + Core::FullLeftShift64_2 => b"*l*22", + Core::FullLeftShift64_32 => b"*li", + Core::FullLeftShift64_4 => b"*l**22*22", + Core::FullLeftShift64_8 => b"*l***22*22**22*22", + Core::FullLeftShift8_1 => b"****22*22**22*222", + Core::FullLeftShift8_2 => b"****22*22**22*22*22", + Core::FullLeftShift8_4 => b"****22*22**22*22**22*22", Core::FullMultiply16 => b"l", Core::FullMultiply32 => b"*ll", Core::FullMultiply64 => b"h", Core::FullMultiply8 => b"i", + Core::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22", + Core::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22", + Core::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22", + Core::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22", + Core::FullRightShift32_1 => b"*2i", + Core::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i", + Core::FullRightShift32_2 => b"**22i", + Core::FullRightShift32_4 => b"***22*22i", + Core::FullRightShift32_8 => b"****22*22**22*22i", + Core::FullRightShift64_1 => b"*2l", + Core::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l", + Core::FullRightShift64_2 => b"**22l", + Core::FullRightShift64_32 => b"*il", + Core::FullRightShift64_4 => b"***22*22l", + Core::FullRightShift64_8 => b"****22*22**22*22l", + Core::FullRightShift8_1 => b"*2***22*22**22*22", + Core::FullRightShift8_2 => b"**22***22*22**22*22", + Core::FullRightShift8_4 => b"***22*22***22*22**22*22", Core::FullSubtract16 => b"*2i", Core::FullSubtract32 => b"*2l", Core::FullSubtract64 => b"*2*ll", @@ -1317,6 +2335,7 @@ impl Jet for Core { Core::GejXEquiv => b"*h**hhh", Core::GejYIsOdd => b"**hhh", Core::Generate => b"h", + Core::High1 => b"1", Core::High16 => b"1", Core::High32 => b"1", Core::High64 => b"1", @@ -1337,8 +2356,69 @@ impl Jet for Core { Core::Le32 => b"l", Core::Le64 => b"*ll", Core::Le8 => b"****22*22**22*22***22*22**22*22", + Core::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22", + Core::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22", + Core::LeftExtend1_16 => b"2", + Core::LeftExtend1_32 => b"2", + Core::LeftExtend1_64 => b"2", + Core::LeftExtend1_8 => b"2", + Core::LeftExtend32_64 => b"i", + Core::LeftExtend8_16 => b"***22*22**22*22", + Core::LeftExtend8_32 => b"***22*22**22*22", + Core::LeftExtend8_64 => b"***22*22**22*22", + Core::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22", + Core::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22", + Core::LeftPadHigh1_16 => b"2", + Core::LeftPadHigh1_32 => b"2", + Core::LeftPadHigh1_64 => b"2", + Core::LeftPadHigh1_8 => b"2", + Core::LeftPadHigh32_64 => b"i", + Core::LeftPadHigh8_16 => b"***22*22**22*22", + Core::LeftPadHigh8_32 => b"***22*22**22*22", + Core::LeftPadHigh8_64 => b"***22*22**22*22", + Core::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22", + Core::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22", + Core::LeftPadLow1_16 => b"2", + Core::LeftPadLow1_32 => b"2", + Core::LeftPadLow1_64 => b"2", + Core::LeftPadLow1_8 => b"2", + Core::LeftPadLow32_64 => b"i", + Core::LeftPadLow8_16 => b"***22*22**22*22", + Core::LeftPadLow8_32 => b"***22*22**22*22", + Core::LeftPadLow8_64 => b"***22*22**22*22", + Core::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22", + Core::LeftRotate32 => b"****22*22**22*22i", + Core::LeftRotate64 => b"****22*22**22*22l", + Core::LeftRotate8 => b"***22*22***22*22**22*22", + Core::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22", + Core::LeftShift32 => b"****22*22**22*22i", + Core::LeftShift64 => b"****22*22**22*22l", + Core::LeftShift8 => b"***22*22***22*22**22*22", + Core::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22", + Core::LeftShiftWith32 => b"*2****22*22**22*22i", + Core::LeftShiftWith64 => b"*2****22*22**22*22l", + Core::LeftShiftWith8 => b"*2***22*22***22*22**22*22", + Core::Leftmost16_1 => b"****22*22**22*22***22*22**22*22", + Core::Leftmost16_2 => b"****22*22**22*22***22*22**22*22", + Core::Leftmost16_4 => b"****22*22**22*22***22*22**22*22", + Core::Leftmost16_8 => b"****22*22**22*22***22*22**22*22", + Core::Leftmost32_1 => b"i", + Core::Leftmost32_16 => b"i", + Core::Leftmost32_2 => b"i", + Core::Leftmost32_4 => b"i", + Core::Leftmost32_8 => b"i", + Core::Leftmost64_1 => b"l", + Core::Leftmost64_16 => b"l", + Core::Leftmost64_2 => b"l", + Core::Leftmost64_32 => b"l", + Core::Leftmost64_4 => b"l", + Core::Leftmost64_8 => b"l", + Core::Leftmost8_1 => b"***22*22**22*22", + Core::Leftmost8_2 => b"***22*22**22*22", + Core::Leftmost8_4 => b"***22*22**22*22", Core::LinearCombination1 => b"**h**hhhh", Core::LinearVerify1 => b"***h*hhh*hh", + Core::Low1 => b"1", Core::Low16 => b"1", Core::Low32 => b"1", Core::Low64 => b"1", @@ -1347,6 +2427,7 @@ impl Jet for Core { Core::Lt32 => b"l", Core::Lt64 => b"*ll", Core::Lt8 => b"****22*22**22*22***22*22**22*22", + Core::Maj1 => b"*2*22", Core::Maj16 => b"*****22*22**22*22***22*22**22*22i", Core::Maj32 => b"*il", Core::Maj64 => b"*l*ll", @@ -1379,6 +2460,7 @@ impl Jet for Core { Core::One32 => b"1", Core::One64 => b"1", Core::One8 => b"1", + Core::Or1 => b"*22", Core::Or16 => b"i", Core::Or32 => b"l", Core::Or64 => b"*ll", @@ -1386,6 +2468,62 @@ impl Jet for Core { Core::ParseLock => b"i", Core::ParseSequence => b"i", Core::PointVerify1 => b"***h*2hh*2h", + Core::RightExtend16_32 => b"****22*22**22*22***22*22**22*22", + Core::RightExtend16_64 => b"****22*22**22*22***22*22**22*22", + Core::RightExtend32_64 => b"i", + Core::RightExtend8_16 => b"***22*22**22*22", + Core::RightExtend8_32 => b"***22*22**22*22", + Core::RightExtend8_64 => b"***22*22**22*22", + Core::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22", + Core::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22", + Core::RightPadHigh1_16 => b"2", + Core::RightPadHigh1_32 => b"2", + Core::RightPadHigh1_64 => b"2", + Core::RightPadHigh1_8 => b"2", + Core::RightPadHigh32_64 => b"i", + Core::RightPadHigh8_16 => b"***22*22**22*22", + Core::RightPadHigh8_32 => b"***22*22**22*22", + Core::RightPadHigh8_64 => b"***22*22**22*22", + Core::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22", + Core::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22", + Core::RightPadLow1_16 => b"2", + Core::RightPadLow1_32 => b"2", + Core::RightPadLow1_64 => b"2", + Core::RightPadLow1_8 => b"2", + Core::RightPadLow32_64 => b"i", + Core::RightPadLow8_16 => b"***22*22**22*22", + Core::RightPadLow8_32 => b"***22*22**22*22", + Core::RightPadLow8_64 => b"***22*22**22*22", + Core::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22", + Core::RightRotate32 => b"****22*22**22*22i", + Core::RightRotate64 => b"****22*22**22*22l", + Core::RightRotate8 => b"***22*22***22*22**22*22", + Core::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22", + Core::RightShift32 => b"****22*22**22*22i", + Core::RightShift64 => b"****22*22**22*22l", + Core::RightShift8 => b"***22*22***22*22**22*22", + Core::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22", + Core::RightShiftWith32 => b"*2****22*22**22*22i", + Core::RightShiftWith64 => b"*2****22*22**22*22l", + Core::RightShiftWith8 => b"*2***22*22***22*22**22*22", + Core::Rightmost16_1 => b"****22*22**22*22***22*22**22*22", + Core::Rightmost16_2 => b"****22*22**22*22***22*22**22*22", + Core::Rightmost16_4 => b"****22*22**22*22***22*22**22*22", + Core::Rightmost16_8 => b"****22*22**22*22***22*22**22*22", + Core::Rightmost32_1 => b"i", + Core::Rightmost32_16 => b"i", + Core::Rightmost32_2 => b"i", + Core::Rightmost32_4 => b"i", + Core::Rightmost32_8 => b"i", + Core::Rightmost64_1 => b"l", + Core::Rightmost64_16 => b"l", + Core::Rightmost64_2 => b"l", + Core::Rightmost64_32 => b"l", + Core::Rightmost64_4 => b"l", + Core::Rightmost64_8 => b"l", + Core::Rightmost8_1 => b"***22*22**22*22", + Core::Rightmost8_2 => b"***22*22**22*22", + Core::Rightmost8_4 => b"***22*22**22*22", Core::ScalarAdd => b"*hh", Core::ScalarInvert => b"h", Core::ScalarIsZero => b"h", @@ -1410,6 +2548,7 @@ impl Jet for Core { Core::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", Core::Sha256Ctx8Init => b"1", Core::Sha256Iv => b"1", + Core::Some1 => b"2", Core::Some16 => b"****22*22**22*22***22*22**22*22", Core::Some32 => b"i", Core::Some64 => b"l", @@ -1419,10 +2558,12 @@ impl Jet for Core { Core::Subtract64 => b"*ll", Core::Subtract8 => b"****22*22**22*22***22*22**22*22", Core::Verify => b"2", + Core::Xor1 => b"*22", Core::Xor16 => b"i", Core::Xor32 => b"l", Core::Xor64 => b"*ll", Core::Xor8 => b"****22*22**22*22***22*22**22*22", + Core::XorXor1 => b"*2*22", Core::XorXor16 => b"*****22*22**22*22***22*22**22*22i", Core::XorXor32 => b"*il", Core::XorXor64 => b"*l*ll", @@ -1442,16 +2583,19 @@ impl Jet for Core { Core::All32 => b"2", Core::All64 => b"2", Core::All8 => b"2", + Core::And1 => b"2", Core::And16 => b"****22*22**22*22***22*22**22*22", Core::And32 => b"i", Core::And64 => b"l", Core::And8 => b"***22*22**22*22", Core::Bip0340Verify => b"1", + Core::Ch1 => b"2", Core::Ch16 => b"****22*22**22*22***22*22**22*22", Core::Ch32 => b"i", Core::Ch64 => b"l", Core::Ch8 => b"***22*22**22*22", Core::CheckSigVerify => b"1", + Core::Complement1 => b"2", Core::Complement16 => b"****22*22**22*22***22*22**22*22", Core::Complement32 => b"i", Core::Complement64 => b"l", @@ -1473,6 +2617,7 @@ impl Jet for Core { Core::Divides32 => b"2", Core::Divides64 => b"2", Core::Divides8 => b"2", + Core::Eq1 => b"2", Core::Eq16 => b"2", Core::Eq256 => b"2", Core::Eq32 => b"2", @@ -1500,10 +2645,46 @@ impl Jet for Core { Core::FullIncrement32 => b"*2i", Core::FullIncrement64 => b"*2l", Core::FullIncrement8 => b"*2***22*22**22*22", + Core::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22", + Core::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22", + Core::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22", + Core::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22", + Core::FullLeftShift32_1 => b"*2i", + Core::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i", + Core::FullLeftShift32_2 => b"**22i", + Core::FullLeftShift32_4 => b"***22*22i", + Core::FullLeftShift32_8 => b"****22*22**22*22i", + Core::FullLeftShift64_1 => b"*2l", + Core::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l", + Core::FullLeftShift64_2 => b"**22l", + Core::FullLeftShift64_32 => b"*il", + Core::FullLeftShift64_4 => b"***22*22l", + Core::FullLeftShift64_8 => b"****22*22**22*22l", + Core::FullLeftShift8_1 => b"*2***22*22**22*22", + Core::FullLeftShift8_2 => b"**22***22*22**22*22", + Core::FullLeftShift8_4 => b"***22*22***22*22**22*22", Core::FullMultiply16 => b"i", Core::FullMultiply32 => b"l", Core::FullMultiply64 => b"*ll", Core::FullMultiply8 => b"****22*22**22*22***22*22**22*22", + Core::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222", + Core::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22", + Core::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22", + Core::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22", + Core::FullRightShift32_1 => b"*i2", + Core::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22", + Core::FullRightShift32_2 => b"*i*22", + Core::FullRightShift32_4 => b"*i**22*22", + Core::FullRightShift32_8 => b"*i***22*22**22*22", + Core::FullRightShift64_1 => b"*l2", + Core::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22", + Core::FullRightShift64_2 => b"*l*22", + Core::FullRightShift64_32 => b"*li", + Core::FullRightShift64_4 => b"*l**22*22", + Core::FullRightShift64_8 => b"*l***22*22**22*22", + Core::FullRightShift8_1 => b"****22*22**22*222", + Core::FullRightShift8_2 => b"****22*22**22*22*22", + Core::FullRightShift8_4 => b"****22*22**22*22**22*22", Core::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22", Core::FullSubtract32 => b"*2i", Core::FullSubtract64 => b"*2l", @@ -1523,6 +2704,7 @@ impl Jet for Core { Core::GejXEquiv => b"2", Core::GejYIsOdd => b"2", Core::Generate => b"**hhh", + Core::High1 => b"2", Core::High16 => b"****22*22**22*22***22*22**22*22", Core::High32 => b"i", Core::High64 => b"l", @@ -1543,8 +2725,69 @@ impl Jet for Core { Core::Le32 => b"2", Core::Le64 => b"2", Core::Le8 => b"2", + Core::LeftExtend16_32 => b"i", + Core::LeftExtend16_64 => b"l", + Core::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22", + Core::LeftExtend1_32 => b"i", + Core::LeftExtend1_64 => b"l", + Core::LeftExtend1_8 => b"***22*22**22*22", + Core::LeftExtend32_64 => b"l", + Core::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22", + Core::LeftExtend8_32 => b"i", + Core::LeftExtend8_64 => b"l", + Core::LeftPadHigh16_32 => b"i", + Core::LeftPadHigh16_64 => b"l", + Core::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22", + Core::LeftPadHigh1_32 => b"i", + Core::LeftPadHigh1_64 => b"l", + Core::LeftPadHigh1_8 => b"***22*22**22*22", + Core::LeftPadHigh32_64 => b"l", + Core::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22", + Core::LeftPadHigh8_32 => b"i", + Core::LeftPadHigh8_64 => b"l", + Core::LeftPadLow16_32 => b"i", + Core::LeftPadLow16_64 => b"l", + Core::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22", + Core::LeftPadLow1_32 => b"i", + Core::LeftPadLow1_64 => b"l", + Core::LeftPadLow1_8 => b"***22*22**22*22", + Core::LeftPadLow32_64 => b"l", + Core::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22", + Core::LeftPadLow8_32 => b"i", + Core::LeftPadLow8_64 => b"l", + Core::LeftRotate16 => b"****22*22**22*22***22*22**22*22", + Core::LeftRotate32 => b"i", + Core::LeftRotate64 => b"l", + Core::LeftRotate8 => b"***22*22**22*22", + Core::LeftShift16 => b"****22*22**22*22***22*22**22*22", + Core::LeftShift32 => b"i", + Core::LeftShift64 => b"l", + Core::LeftShift8 => b"***22*22**22*22", + Core::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22", + Core::LeftShiftWith32 => b"i", + Core::LeftShiftWith64 => b"l", + Core::LeftShiftWith8 => b"***22*22**22*22", + Core::Leftmost16_1 => b"2", + Core::Leftmost16_2 => b"*22", + Core::Leftmost16_4 => b"**22*22", + Core::Leftmost16_8 => b"***22*22**22*22", + Core::Leftmost32_1 => b"2", + Core::Leftmost32_16 => b"****22*22**22*22***22*22**22*22", + Core::Leftmost32_2 => b"*22", + Core::Leftmost32_4 => b"**22*22", + Core::Leftmost32_8 => b"***22*22**22*22", + Core::Leftmost64_1 => b"2", + Core::Leftmost64_16 => b"****22*22**22*22***22*22**22*22", + Core::Leftmost64_2 => b"*22", + Core::Leftmost64_32 => b"i", + Core::Leftmost64_4 => b"**22*22", + Core::Leftmost64_8 => b"***22*22**22*22", + Core::Leftmost8_1 => b"2", + Core::Leftmost8_2 => b"*22", + Core::Leftmost8_4 => b"**22*22", Core::LinearCombination1 => b"**hhh", Core::LinearVerify1 => b"1", + Core::Low1 => b"2", Core::Low16 => b"****22*22**22*22***22*22**22*22", Core::Low32 => b"i", Core::Low64 => b"l", @@ -1553,6 +2796,7 @@ impl Jet for Core { Core::Lt32 => b"2", Core::Lt64 => b"2", Core::Lt8 => b"2", + Core::Maj1 => b"2", Core::Maj16 => b"****22*22**22*22***22*22**22*22", Core::Maj32 => b"i", Core::Maj64 => b"l", @@ -1585,6 +2829,7 @@ impl Jet for Core { Core::One32 => b"i", Core::One64 => b"l", Core::One8 => b"***22*22**22*22", + Core::Or1 => b"2", Core::Or16 => b"****22*22**22*22***22*22**22*22", Core::Or32 => b"i", Core::Or64 => b"l", @@ -1592,6 +2837,62 @@ impl Jet for Core { Core::ParseLock => b"+ii", Core::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22", Core::PointVerify1 => b"1", + Core::RightExtend16_32 => b"i", + Core::RightExtend16_64 => b"l", + Core::RightExtend32_64 => b"l", + Core::RightExtend8_16 => b"****22*22**22*22***22*22**22*22", + Core::RightExtend8_32 => b"i", + Core::RightExtend8_64 => b"l", + Core::RightPadHigh16_32 => b"i", + Core::RightPadHigh16_64 => b"l", + Core::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22", + Core::RightPadHigh1_32 => b"i", + Core::RightPadHigh1_64 => b"l", + Core::RightPadHigh1_8 => b"***22*22**22*22", + Core::RightPadHigh32_64 => b"l", + Core::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22", + Core::RightPadHigh8_32 => b"i", + Core::RightPadHigh8_64 => b"l", + Core::RightPadLow16_32 => b"i", + Core::RightPadLow16_64 => b"l", + Core::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22", + Core::RightPadLow1_32 => b"i", + Core::RightPadLow1_64 => b"l", + Core::RightPadLow1_8 => b"***22*22**22*22", + Core::RightPadLow32_64 => b"l", + Core::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22", + Core::RightPadLow8_32 => b"i", + Core::RightPadLow8_64 => b"l", + Core::RightRotate16 => b"****22*22**22*22***22*22**22*22", + Core::RightRotate32 => b"i", + Core::RightRotate64 => b"l", + Core::RightRotate8 => b"***22*22**22*22", + Core::RightShift16 => b"****22*22**22*22***22*22**22*22", + Core::RightShift32 => b"i", + Core::RightShift64 => b"l", + Core::RightShift8 => b"***22*22**22*22", + Core::RightShiftWith16 => b"****22*22**22*22***22*22**22*22", + Core::RightShiftWith32 => b"i", + Core::RightShiftWith64 => b"l", + Core::RightShiftWith8 => b"***22*22**22*22", + Core::Rightmost16_1 => b"2", + Core::Rightmost16_2 => b"*22", + Core::Rightmost16_4 => b"**22*22", + Core::Rightmost16_8 => b"***22*22**22*22", + Core::Rightmost32_1 => b"2", + Core::Rightmost32_16 => b"****22*22**22*22***22*22**22*22", + Core::Rightmost32_2 => b"*22", + Core::Rightmost32_4 => b"**22*22", + Core::Rightmost32_8 => b"***22*22**22*22", + Core::Rightmost64_1 => b"2", + Core::Rightmost64_16 => b"****22*22**22*22***22*22**22*22", + Core::Rightmost64_2 => b"*22", + Core::Rightmost64_32 => b"i", + Core::Rightmost64_4 => b"**22*22", + Core::Rightmost64_8 => b"***22*22**22*22", + Core::Rightmost8_1 => b"2", + Core::Rightmost8_2 => b"*22", + Core::Rightmost8_4 => b"**22*22", Core::ScalarAdd => b"h", Core::ScalarInvert => b"h", Core::ScalarIsZero => b"2", @@ -1616,6 +2917,7 @@ impl Jet for Core { Core::Sha256Ctx8Finalize => b"h", Core::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", Core::Sha256Iv => b"h", + Core::Some1 => b"2", Core::Some16 => b"2", Core::Some32 => b"2", Core::Some64 => b"2", @@ -1625,10 +2927,12 @@ impl Jet for Core { Core::Subtract64 => b"*2l", Core::Subtract8 => b"*2***22*22**22*22", Core::Verify => b"1", + Core::Xor1 => b"2", Core::Xor16 => b"****22*22**22*22***22*22**22*22", Core::Xor32 => b"i", Core::Xor64 => b"l", Core::Xor8 => b"***22*22**22*22", + Core::XorXor1 => b"2", Core::XorXor16 => b"****22*22**22*22***22*22**22*22", Core::XorXor32 => b"i", Core::XorXor64 => b"l", @@ -1641,42 +2945,52 @@ impl Jet for Core { fn encode(&self, w: &mut BitWriter) -> std::io::Result { let (n, len) = match self { Core::Verify => (0, 2), + Core::Low1 => (8, 5), Core::Low8 => (37, 7), Core::Low16 => (304, 10), Core::Low32 => (305, 10), Core::Low64 => (306, 10), + Core::High1 => (10, 5), Core::High8 => (45, 7), Core::High16 => (368, 10), Core::High32 => (369, 10), Core::High64 => (370, 10), + Core::Complement1 => (96, 8), Core::Complement8 => (389, 10), Core::Complement16 => (3120, 13), Core::Complement32 => (3121, 13), Core::Complement64 => (3122, 13), + Core::And1 => (98, 8), Core::And8 => (397, 10), Core::And16 => (3184, 13), Core::And32 => (3185, 13), Core::And64 => (3186, 13), + Core::Or1 => (100, 8), Core::Or8 => (405, 10), Core::Or16 => (3248, 13), Core::Or32 => (3249, 13), Core::Or64 => (3250, 13), + Core::Xor1 => (102, 8), Core::Xor8 => (413, 10), Core::Xor16 => (3312, 13), Core::Xor32 => (3313, 13), Core::Xor64 => (3314, 13), + Core::Maj1 => (208, 9), Core::Maj8 => (837, 11), Core::Maj16 => (6704, 14), Core::Maj32 => (6705, 14), Core::Maj64 => (6706, 14), + Core::XorXor1 => (210, 9), Core::XorXor8 => (845, 11), Core::XorXor16 => (6768, 14), Core::XorXor32 => (6769, 14), Core::XorXor64 => (6770, 14), + Core::Ch1 => (212, 9), Core::Ch8 => (853, 11), Core::Ch16 => (6832, 14), Core::Ch32 => (6833, 14), Core::Ch64 => (6834, 14), + Core::Some1 => (214, 9), Core::Some8 => (861, 11), Core::Some16 => (6896, 14), Core::Some32 => (6897, 14), @@ -1685,11 +2999,164 @@ impl Jet for Core { Core::All16 => (6960, 14), Core::All32 => (6961, 14), Core::All64 => (6962, 14), + Core::Eq1 => (218, 9), Core::Eq8 => (877, 11), Core::Eq16 => (7024, 14), Core::Eq32 => (7025, 14), Core::Eq64 => (7026, 14), Core::Eq256 => (14056, 15), + Core::FullLeftShift8_1 => (1765, 12), + Core::FullLeftShift16_1 => (14128, 15), + Core::FullLeftShift32_1 => (14129, 15), + Core::FullLeftShift64_1 => (14130, 15), + Core::FullLeftShift8_2 => (7076, 14), + Core::FullLeftShift16_2 => (7077, 14), + Core::FullLeftShift32_2 => (56624, 17), + Core::FullLeftShift64_2 => (56625, 17), + Core::FullLeftShift8_4 => (1770, 12), + Core::FullLeftShift16_4 => (7084, 14), + Core::FullLeftShift32_4 => (7085, 14), + Core::FullLeftShift64_4 => (56688, 17), + Core::FullLeftShift16_8 => (14176, 15), + Core::FullLeftShift32_8 => (56708, 17), + Core::FullLeftShift64_8 => (56709, 17), + Core::FullLeftShift32_16 => (14178, 15), + Core::FullLeftShift64_16 => (56716, 17), + Core::FullLeftShift64_32 => (14180, 15), + Core::FullRightShift8_1 => (1781, 12), + Core::FullRightShift16_1 => (14256, 15), + Core::FullRightShift32_1 => (14257, 15), + Core::FullRightShift64_1 => (14258, 15), + Core::FullRightShift8_2 => (7140, 14), + Core::FullRightShift16_2 => (7141, 14), + Core::FullRightShift32_2 => (57136, 17), + Core::FullRightShift64_2 => (57137, 17), + Core::FullRightShift8_4 => (1786, 12), + Core::FullRightShift16_4 => (7148, 14), + Core::FullRightShift32_4 => (7149, 14), + Core::FullRightShift64_4 => (57200, 17), + Core::FullRightShift16_8 => (14304, 15), + Core::FullRightShift32_8 => (57220, 17), + Core::FullRightShift64_8 => (57221, 17), + Core::FullRightShift32_16 => (14306, 15), + Core::FullRightShift64_16 => (57228, 17), + Core::FullRightShift64_32 => (14308, 15), + Core::Leftmost8_1 => (28677, 16), + Core::Leftmost16_1 => (229424, 19), + Core::Leftmost32_1 => (229425, 19), + Core::Leftmost64_1 => (229426, 19), + Core::Leftmost8_2 => (114724, 18), + Core::Leftmost16_2 => (114725, 18), + Core::Leftmost32_2 => (917808, 21), + Core::Leftmost64_2 => (917809, 21), + Core::Leftmost8_4 => (28682, 16), + Core::Leftmost16_4 => (114732, 18), + Core::Leftmost32_4 => (114733, 18), + Core::Leftmost64_4 => (917872, 21), + Core::Leftmost16_8 => (229472, 19), + Core::Leftmost32_8 => (917892, 21), + Core::Leftmost64_8 => (917893, 21), + Core::Leftmost32_16 => (229474, 19), + Core::Leftmost64_16 => (917900, 21), + Core::Leftmost64_32 => (229476, 19), + Core::Rightmost8_1 => (28693, 16), + Core::Rightmost16_1 => (229552, 19), + Core::Rightmost32_1 => (229553, 19), + Core::Rightmost64_1 => (229554, 19), + Core::Rightmost8_2 => (114788, 18), + Core::Rightmost16_2 => (114789, 18), + Core::Rightmost32_2 => (918320, 21), + Core::Rightmost64_2 => (918321, 21), + Core::Rightmost8_4 => (28698, 16), + Core::Rightmost16_4 => (114796, 18), + Core::Rightmost32_4 => (114797, 18), + Core::Rightmost64_4 => (918384, 21), + Core::Rightmost16_8 => (229600, 19), + Core::Rightmost32_8 => (918404, 21), + Core::Rightmost64_8 => (918405, 21), + Core::Rightmost32_16 => (229602, 19), + Core::Rightmost64_16 => (918412, 21), + Core::Rightmost64_32 => (229604, 19), + Core::LeftPadLow1_8 => (28709, 16), + Core::LeftPadLow1_16 => (229680, 19), + Core::LeftPadLow1_32 => (229681, 19), + Core::LeftPadLow1_64 => (229682, 19), + Core::LeftPadLow8_16 => (229728, 19), + Core::LeftPadLow8_32 => (918916, 21), + Core::LeftPadLow8_64 => (918917, 21), + Core::LeftPadLow16_32 => (229730, 19), + Core::LeftPadLow16_64 => (918924, 21), + Core::LeftPadLow32_64 => (229732, 19), + Core::LeftPadHigh1_8 => (28725, 16), + Core::LeftPadHigh1_16 => (229808, 19), + Core::LeftPadHigh1_32 => (229809, 19), + Core::LeftPadHigh1_64 => (229810, 19), + Core::LeftPadHigh8_16 => (229856, 19), + Core::LeftPadHigh8_32 => (919428, 21), + Core::LeftPadHigh8_64 => (919429, 21), + Core::LeftPadHigh16_32 => (229858, 19), + Core::LeftPadHigh16_64 => (919436, 21), + Core::LeftPadHigh32_64 => (229860, 19), + Core::LeftExtend1_8 => (28741, 16), + Core::LeftExtend1_16 => (229936, 19), + Core::LeftExtend1_32 => (229937, 19), + Core::LeftExtend1_64 => (229938, 19), + Core::LeftExtend8_16 => (229984, 19), + Core::LeftExtend8_32 => (919940, 21), + Core::LeftExtend8_64 => (919941, 21), + Core::LeftExtend16_32 => (229986, 19), + Core::LeftExtend16_64 => (919948, 21), + Core::LeftExtend32_64 => (229988, 19), + Core::RightPadLow1_8 => (28757, 16), + Core::RightPadLow1_16 => (230064, 19), + Core::RightPadLow1_32 => (230065, 19), + Core::RightPadLow1_64 => (230066, 19), + Core::RightPadLow8_16 => (230112, 19), + Core::RightPadLow8_32 => (920452, 21), + Core::RightPadLow8_64 => (920453, 21), + Core::RightPadLow16_32 => (230114, 19), + Core::RightPadLow16_64 => (920460, 21), + Core::RightPadLow32_64 => (230116, 19), + Core::RightPadHigh1_8 => (28773, 16), + Core::RightPadHigh1_16 => (230192, 19), + Core::RightPadHigh1_32 => (230193, 19), + Core::RightPadHigh1_64 => (230194, 19), + Core::RightPadHigh8_16 => (230240, 19), + Core::RightPadHigh8_32 => (920964, 21), + Core::RightPadHigh8_64 => (920965, 21), + Core::RightPadHigh16_32 => (230242, 19), + Core::RightPadHigh16_64 => (920972, 21), + Core::RightPadHigh32_64 => (230244, 19), + Core::RightExtend8_16 => (230368, 19), + Core::RightExtend8_32 => (921476, 21), + Core::RightExtend8_64 => (921477, 21), + Core::RightExtend16_32 => (230370, 19), + Core::RightExtend16_64 => (921484, 21), + Core::RightExtend32_64 => (230372, 19), + Core::LeftShiftWith8 => (14405, 15), + Core::LeftShiftWith16 => (115248, 18), + Core::LeftShiftWith32 => (115249, 18), + Core::LeftShiftWith64 => (115250, 18), + Core::RightShiftWith8 => (14413, 15), + Core::RightShiftWith16 => (115312, 18), + Core::RightShiftWith32 => (115313, 18), + Core::RightShiftWith64 => (115314, 18), + Core::LeftShift8 => (14421, 15), + Core::LeftShift16 => (115376, 18), + Core::LeftShift32 => (115377, 18), + Core::LeftShift64 => (115378, 18), + Core::RightShift8 => (14429, 15), + Core::RightShift16 => (115440, 18), + Core::RightShift32 => (115441, 18), + Core::RightShift64 => (115442, 18), + Core::LeftRotate8 => (14437, 15), + Core::LeftRotate16 => (115504, 18), + Core::LeftRotate32 => (115505, 18), + Core::LeftRotate64 => (115506, 18), + Core::RightRotate8 => (14445, 15), + Core::RightRotate16 => (115568, 18), + Core::RightRotate32 => (115569, 18), + Core::RightRotate64 => (115570, 18), Core::One8 => (69, 7), Core::One16 => (560, 10), Core::One32 => (561, 10), @@ -1851,7 +3318,7 @@ impl Jet for Core { 1 => { 0 => { 0 => { - 0 => {}, + 0 => {Core::Low1}, 1 => { 0 => { 0 => {}, @@ -1876,7 +3343,7 @@ impl Jet for Core { } }, 1 => { - 0 => {}, + 0 => {Core::High1}, 1 => { 0 => { 0 => {}, @@ -1906,7 +3373,7 @@ impl Jet for Core { 0 => { 0 => { 0 => { - 0 => {}, + 0 => {Core::Complement1}, 1 => { 0 => { 0 => {}, @@ -1931,7 +3398,7 @@ impl Jet for Core { } }, 1 => { - 0 => {}, + 0 => {Core::And1}, 1 => { 0 => { 0 => {}, @@ -1958,7 +3425,7 @@ impl Jet for Core { }, 1 => { 0 => { - 0 => {}, + 0 => {Core::Or1}, 1 => { 0 => { 0 => {}, @@ -1983,7 +3450,7 @@ impl Jet for Core { } }, 1 => { - 0 => {}, + 0 => {Core::Xor1}, 1 => { 0 => { 0 => {}, @@ -2013,7 +3480,7 @@ impl Jet for Core { 0 => { 0 => { 0 => { - 0 => {}, + 0 => {Core::Maj1}, 1 => { 0 => { 0 => {}, @@ -2038,7 +3505,7 @@ impl Jet for Core { } }, 1 => { - 0 => {}, + 0 => {Core::XorXor1}, 1 => { 0 => { 0 => {}, @@ -2065,7 +3532,7 @@ impl Jet for Core { }, 1 => { 0 => { - 0 => {}, + 0 => {Core::Ch1}, 1 => { 0 => { 0 => {}, @@ -2090,7 +3557,7 @@ impl Jet for Core { } }, 1 => { - 0 => {}, + 0 => {Core::Some1}, 1 => { 0 => { 0 => {}, @@ -2144,7 +3611,7 @@ impl Jet for Core { } }, 1 => { - 0 => {}, + 0 => {Core::Eq1}, 1 => { 0 => { 0 => {}, @@ -2178,11 +3645,1028 @@ impl Jet for Core { } } }, - 1 => {} + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::FullLeftShift8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::FullLeftShift16_1}, + 1 => {Core::FullLeftShift32_1} + }, + 1 => { + 0 => {Core::FullLeftShift64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Core::FullLeftShift8_2}, + 1 => {Core::FullLeftShift16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::FullLeftShift32_2}, + 1 => {Core::FullLeftShift64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Core::FullLeftShift8_4}, + 1 => { + 0 => { + 0 => {Core::FullLeftShift16_4}, + 1 => {Core::FullLeftShift32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::FullLeftShift64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::FullLeftShift16_8}, + 1 => { + 0 => { + 0 => {Core::FullLeftShift32_8}, + 1 => {Core::FullLeftShift64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Core::FullLeftShift32_16}, + 1 => { + 0 => { + 0 => {Core::FullLeftShift64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Core::FullLeftShift64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::FullRightShift8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::FullRightShift16_1}, + 1 => {Core::FullRightShift32_1} + }, + 1 => { + 0 => {Core::FullRightShift64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Core::FullRightShift8_2}, + 1 => {Core::FullRightShift16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::FullRightShift32_2}, + 1 => {Core::FullRightShift64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Core::FullRightShift8_4}, + 1 => { + 0 => { + 0 => {Core::FullRightShift16_4}, + 1 => {Core::FullRightShift32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::FullRightShift64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::FullRightShift16_8}, + 1 => { + 0 => { + 0 => {Core::FullRightShift32_8}, + 1 => {Core::FullRightShift64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Core::FullRightShift32_16}, + 1 => { + 0 => { + 0 => {Core::FullRightShift64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Core::FullRightShift64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } } } }, - 1 => {} + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::Leftmost8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::Leftmost16_1}, + 1 => {Core::Leftmost32_1} + }, + 1 => { + 0 => {Core::Leftmost64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Core::Leftmost8_2}, + 1 => {Core::Leftmost16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::Leftmost32_2}, + 1 => {Core::Leftmost64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Core::Leftmost8_4}, + 1 => { + 0 => { + 0 => {Core::Leftmost16_4}, + 1 => {Core::Leftmost32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::Leftmost64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::Leftmost16_8}, + 1 => { + 0 => { + 0 => {Core::Leftmost32_8}, + 1 => {Core::Leftmost64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Core::Leftmost32_16}, + 1 => { + 0 => { + 0 => {Core::Leftmost64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Core::Leftmost64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::Rightmost8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::Rightmost16_1}, + 1 => {Core::Rightmost32_1} + }, + 1 => { + 0 => {Core::Rightmost64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Core::Rightmost8_2}, + 1 => {Core::Rightmost16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::Rightmost32_2}, + 1 => {Core::Rightmost64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Core::Rightmost8_4}, + 1 => { + 0 => { + 0 => {Core::Rightmost16_4}, + 1 => {Core::Rightmost32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::Rightmost64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::Rightmost16_8}, + 1 => { + 0 => { + 0 => {Core::Rightmost32_8}, + 1 => {Core::Rightmost64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Core::Rightmost32_16}, + 1 => { + 0 => { + 0 => {Core::Rightmost64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Core::Rightmost64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::LeftPadLow1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::LeftPadLow1_16}, + 1 => {Core::LeftPadLow1_32} + }, + 1 => { + 0 => {Core::LeftPadLow1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::LeftPadLow8_16}, + 1 => { + 0 => { + 0 => {Core::LeftPadLow8_32}, + 1 => {Core::LeftPadLow8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Core::LeftPadLow16_32}, + 1 => { + 0 => { + 0 => {Core::LeftPadLow16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Core::LeftPadLow32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::LeftPadHigh1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::LeftPadHigh1_16}, + 1 => {Core::LeftPadHigh1_32} + }, + 1 => { + 0 => {Core::LeftPadHigh1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::LeftPadHigh8_16}, + 1 => { + 0 => { + 0 => {Core::LeftPadHigh8_32}, + 1 => {Core::LeftPadHigh8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Core::LeftPadHigh16_32}, + 1 => { + 0 => { + 0 => {Core::LeftPadHigh16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Core::LeftPadHigh32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::LeftExtend1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::LeftExtend1_16}, + 1 => {Core::LeftExtend1_32} + }, + 1 => { + 0 => {Core::LeftExtend1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::LeftExtend8_16}, + 1 => { + 0 => { + 0 => {Core::LeftExtend8_32}, + 1 => {Core::LeftExtend8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Core::LeftExtend16_32}, + 1 => { + 0 => { + 0 => {Core::LeftExtend16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Core::LeftExtend32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::RightPadLow1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::RightPadLow1_16}, + 1 => {Core::RightPadLow1_32} + }, + 1 => { + 0 => {Core::RightPadLow1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::RightPadLow8_16}, + 1 => { + 0 => { + 0 => {Core::RightPadLow8_32}, + 1 => {Core::RightPadLow8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Core::RightPadLow16_32}, + 1 => { + 0 => { + 0 => {Core::RightPadLow16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Core::RightPadLow32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::RightPadHigh1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::RightPadHigh1_16}, + 1 => {Core::RightPadHigh1_32} + }, + 1 => { + 0 => {Core::RightPadHigh1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::RightPadHigh8_16}, + 1 => { + 0 => { + 0 => {Core::RightPadHigh8_32}, + 1 => {Core::RightPadHigh8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Core::RightPadHigh16_32}, + 1 => { + 0 => { + 0 => {Core::RightPadHigh16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Core::RightPadHigh32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::RightExtend8_16}, + 1 => { + 0 => { + 0 => {Core::RightExtend8_32}, + 1 => {Core::RightExtend8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Core::RightExtend16_32}, + 1 => { + 0 => { + 0 => {Core::RightExtend16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Core::RightExtend32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::LeftShiftWith8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::LeftShiftWith16}, + 1 => {Core::LeftShiftWith32} + }, + 1 => { + 0 => {Core::LeftShiftWith64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::RightShiftWith8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::RightShiftWith16}, + 1 => {Core::RightShiftWith32} + }, + 1 => { + 0 => {Core::RightShiftWith64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::LeftShift8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::LeftShift16}, + 1 => {Core::LeftShift32} + }, + 1 => { + 0 => {Core::LeftShift64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::RightShift8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::RightShift16}, + 1 => {Core::RightShift32} + }, + 1 => { + 0 => {Core::RightShift64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::LeftRotate8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::LeftRotate16}, + 1 => {Core::LeftRotate32} + }, + 1 => { + 0 => {Core::LeftRotate64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Core::RightRotate8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Core::RightRotate16}, + 1 => {Core::RightRotate32} + }, + 1 => { + 0 => {Core::RightRotate64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => {} + } + } + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } } } }, @@ -3097,16 +5581,19 @@ impl Jet for Core { Core::All32 => &simplicity_sys::c_jets::jets_wrapper::all_32, Core::All64 => &simplicity_sys::c_jets::jets_wrapper::all_64, Core::All8 => &simplicity_sys::c_jets::jets_wrapper::all_8, + Core::And1 => &simplicity_sys::c_jets::jets_wrapper::and_1, Core::And16 => &simplicity_sys::c_jets::jets_wrapper::and_16, Core::And32 => &simplicity_sys::c_jets::jets_wrapper::and_32, Core::And64 => &simplicity_sys::c_jets::jets_wrapper::and_64, Core::And8 => &simplicity_sys::c_jets::jets_wrapper::and_8, Core::Bip0340Verify => &simplicity_sys::c_jets::jets_wrapper::bip_0340_verify, + Core::Ch1 => &simplicity_sys::c_jets::jets_wrapper::ch_1, Core::Ch16 => &simplicity_sys::c_jets::jets_wrapper::ch_16, Core::Ch32 => &simplicity_sys::c_jets::jets_wrapper::ch_32, Core::Ch64 => &simplicity_sys::c_jets::jets_wrapper::ch_64, Core::Ch8 => &simplicity_sys::c_jets::jets_wrapper::ch_8, Core::CheckSigVerify => &simplicity_sys::c_jets::jets_wrapper::check_sig_verify, + Core::Complement1 => &simplicity_sys::c_jets::jets_wrapper::complement_1, Core::Complement16 => &simplicity_sys::c_jets::jets_wrapper::complement_16, Core::Complement32 => &simplicity_sys::c_jets::jets_wrapper::complement_32, Core::Complement64 => &simplicity_sys::c_jets::jets_wrapper::complement_64, @@ -3128,6 +5615,7 @@ impl Jet for Core { Core::Divides32 => &simplicity_sys::c_jets::jets_wrapper::divides_32, Core::Divides64 => &simplicity_sys::c_jets::jets_wrapper::divides_64, Core::Divides8 => &simplicity_sys::c_jets::jets_wrapper::divides_8, + Core::Eq1 => &simplicity_sys::c_jets::jets_wrapper::eq_1, Core::Eq16 => &simplicity_sys::c_jets::jets_wrapper::eq_16, Core::Eq256 => &simplicity_sys::c_jets::jets_wrapper::eq_256, Core::Eq32 => &simplicity_sys::c_jets::jets_wrapper::eq_32, @@ -3155,10 +5643,46 @@ impl Jet for Core { Core::FullIncrement32 => &simplicity_sys::c_jets::jets_wrapper::full_increment_32, Core::FullIncrement64 => &simplicity_sys::c_jets::jets_wrapper::full_increment_64, Core::FullIncrement8 => &simplicity_sys::c_jets::jets_wrapper::full_increment_8, + Core::FullLeftShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1, + Core::FullLeftShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2, + Core::FullLeftShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4, + Core::FullLeftShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8, + Core::FullLeftShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1, + Core::FullLeftShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16, + Core::FullLeftShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2, + Core::FullLeftShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4, + Core::FullLeftShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8, + Core::FullLeftShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1, + Core::FullLeftShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16, + Core::FullLeftShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2, + Core::FullLeftShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32, + Core::FullLeftShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4, + Core::FullLeftShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8, + Core::FullLeftShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1, + Core::FullLeftShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2, + Core::FullLeftShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4, Core::FullMultiply16 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_16, Core::FullMultiply32 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_32, Core::FullMultiply64 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_64, Core::FullMultiply8 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_8, + Core::FullRightShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1, + Core::FullRightShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2, + Core::FullRightShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4, + Core::FullRightShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8, + Core::FullRightShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1, + Core::FullRightShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16, + Core::FullRightShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2, + Core::FullRightShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4, + Core::FullRightShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8, + Core::FullRightShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1, + Core::FullRightShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16, + Core::FullRightShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2, + Core::FullRightShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32, + Core::FullRightShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4, + Core::FullRightShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8, + Core::FullRightShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1, + Core::FullRightShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2, + Core::FullRightShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4, Core::FullSubtract16 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_16, Core::FullSubtract32 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_32, Core::FullSubtract64 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_64, @@ -3178,6 +5702,7 @@ impl Jet for Core { Core::GejXEquiv => &simplicity_sys::c_jets::jets_wrapper::gej_x_equiv, Core::GejYIsOdd => &simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd, Core::Generate => &simplicity_sys::c_jets::jets_wrapper::generate, + Core::High1 => &simplicity_sys::c_jets::jets_wrapper::high_1, Core::High16 => &simplicity_sys::c_jets::jets_wrapper::high_16, Core::High32 => &simplicity_sys::c_jets::jets_wrapper::high_32, Core::High64 => &simplicity_sys::c_jets::jets_wrapper::high_64, @@ -3198,8 +5723,69 @@ impl Jet for Core { Core::Le32 => &simplicity_sys::c_jets::jets_wrapper::le_32, Core::Le64 => &simplicity_sys::c_jets::jets_wrapper::le_64, Core::Le8 => &simplicity_sys::c_jets::jets_wrapper::le_8, + Core::LeftExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_32, + Core::LeftExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_64, + Core::LeftExtend1_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_16, + Core::LeftExtend1_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_32, + Core::LeftExtend1_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_64, + Core::LeftExtend1_8 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_8, + Core::LeftExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_32_64, + Core::LeftExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_16, + Core::LeftExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_32, + Core::LeftExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_64, + Core::LeftPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32, + Core::LeftPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64, + Core::LeftPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16, + Core::LeftPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32, + Core::LeftPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64, + Core::LeftPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8, + Core::LeftPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64, + Core::LeftPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16, + Core::LeftPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32, + Core::LeftPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64, + Core::LeftPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32, + Core::LeftPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64, + Core::LeftPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16, + Core::LeftPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32, + Core::LeftPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64, + Core::LeftPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8, + Core::LeftPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64, + Core::LeftPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16, + Core::LeftPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32, + Core::LeftPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64, + Core::LeftRotate16 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_16, + Core::LeftRotate32 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_32, + Core::LeftRotate64 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_64, + Core::LeftRotate8 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_8, + Core::LeftShift16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_16, + Core::LeftShift32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_32, + Core::LeftShift64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_64, + Core::LeftShift8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_8, + Core::LeftShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_16, + Core::LeftShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_32, + Core::LeftShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_64, + Core::LeftShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_8, + Core::Leftmost16_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_1, + Core::Leftmost16_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_2, + Core::Leftmost16_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_4, + Core::Leftmost16_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_8, + Core::Leftmost32_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_1, + Core::Leftmost32_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_16, + Core::Leftmost32_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_2, + Core::Leftmost32_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_4, + Core::Leftmost32_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_8, + Core::Leftmost64_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_1, + Core::Leftmost64_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_16, + Core::Leftmost64_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_2, + Core::Leftmost64_32 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_32, + Core::Leftmost64_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_4, + Core::Leftmost64_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_8, + Core::Leftmost8_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_1, + Core::Leftmost8_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_2, + Core::Leftmost8_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_4, Core::LinearCombination1 => &simplicity_sys::c_jets::jets_wrapper::linear_combination_1, Core::LinearVerify1 => &simplicity_sys::c_jets::jets_wrapper::linear_verify_1, + Core::Low1 => &simplicity_sys::c_jets::jets_wrapper::low_1, Core::Low16 => &simplicity_sys::c_jets::jets_wrapper::low_16, Core::Low32 => &simplicity_sys::c_jets::jets_wrapper::low_32, Core::Low64 => &simplicity_sys::c_jets::jets_wrapper::low_64, @@ -3208,6 +5794,7 @@ impl Jet for Core { Core::Lt32 => &simplicity_sys::c_jets::jets_wrapper::lt_32, Core::Lt64 => &simplicity_sys::c_jets::jets_wrapper::lt_64, Core::Lt8 => &simplicity_sys::c_jets::jets_wrapper::lt_8, + Core::Maj1 => &simplicity_sys::c_jets::jets_wrapper::maj_1, Core::Maj16 => &simplicity_sys::c_jets::jets_wrapper::maj_16, Core::Maj32 => &simplicity_sys::c_jets::jets_wrapper::maj_32, Core::Maj64 => &simplicity_sys::c_jets::jets_wrapper::maj_64, @@ -3240,6 +5827,7 @@ impl Jet for Core { Core::One32 => &simplicity_sys::c_jets::jets_wrapper::one_32, Core::One64 => &simplicity_sys::c_jets::jets_wrapper::one_64, Core::One8 => &simplicity_sys::c_jets::jets_wrapper::one_8, + Core::Or1 => &simplicity_sys::c_jets::jets_wrapper::or_1, Core::Or16 => &simplicity_sys::c_jets::jets_wrapper::or_16, Core::Or32 => &simplicity_sys::c_jets::jets_wrapper::or_32, Core::Or64 => &simplicity_sys::c_jets::jets_wrapper::or_64, @@ -3247,6 +5835,62 @@ impl Jet for Core { Core::ParseLock => &simplicity_sys::c_jets::jets_wrapper::parse_lock, Core::ParseSequence => &simplicity_sys::c_jets::jets_wrapper::parse_sequence, Core::PointVerify1 => &simplicity_sys::c_jets::jets_wrapper::point_verify_1, + Core::RightExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_32, + Core::RightExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_64, + Core::RightExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_32_64, + Core::RightExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_16, + Core::RightExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_32, + Core::RightExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_64, + Core::RightPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32, + Core::RightPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64, + Core::RightPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16, + Core::RightPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32, + Core::RightPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64, + Core::RightPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8, + Core::RightPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64, + Core::RightPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16, + Core::RightPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32, + Core::RightPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64, + Core::RightPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32, + Core::RightPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64, + Core::RightPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16, + Core::RightPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32, + Core::RightPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64, + Core::RightPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8, + Core::RightPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64, + Core::RightPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16, + Core::RightPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32, + Core::RightPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64, + Core::RightRotate16 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_16, + Core::RightRotate32 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_32, + Core::RightRotate64 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_64, + Core::RightRotate8 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_8, + Core::RightShift16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_16, + Core::RightShift32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_32, + Core::RightShift64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_64, + Core::RightShift8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_8, + Core::RightShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_16, + Core::RightShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_32, + Core::RightShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_64, + Core::RightShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_8, + Core::Rightmost16_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_1, + Core::Rightmost16_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_2, + Core::Rightmost16_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_4, + Core::Rightmost16_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_8, + Core::Rightmost32_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_1, + Core::Rightmost32_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_16, + Core::Rightmost32_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_2, + Core::Rightmost32_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_4, + Core::Rightmost32_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_8, + Core::Rightmost64_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_1, + Core::Rightmost64_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_16, + Core::Rightmost64_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_2, + Core::Rightmost64_32 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_32, + Core::Rightmost64_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_4, + Core::Rightmost64_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_8, + Core::Rightmost8_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_1, + Core::Rightmost8_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_2, + Core::Rightmost8_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_4, Core::ScalarAdd => &simplicity_sys::c_jets::jets_wrapper::scalar_add, Core::ScalarInvert => &simplicity_sys::c_jets::jets_wrapper::scalar_invert, Core::ScalarIsZero => &simplicity_sys::c_jets::jets_wrapper::scalar_is_zero, @@ -3271,6 +5915,7 @@ impl Jet for Core { Core::Sha256Ctx8Finalize => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize, Core::Sha256Ctx8Init => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init, Core::Sha256Iv => &simplicity_sys::c_jets::jets_wrapper::sha_256_iv, + Core::Some1 => &simplicity_sys::c_jets::jets_wrapper::some_1, Core::Some16 => &simplicity_sys::c_jets::jets_wrapper::some_16, Core::Some32 => &simplicity_sys::c_jets::jets_wrapper::some_32, Core::Some64 => &simplicity_sys::c_jets::jets_wrapper::some_64, @@ -3280,10 +5925,12 @@ impl Jet for Core { Core::Subtract64 => &simplicity_sys::c_jets::jets_wrapper::subtract_64, Core::Subtract8 => &simplicity_sys::c_jets::jets_wrapper::subtract_8, Core::Verify => &simplicity_sys::c_jets::jets_wrapper::verify, + Core::Xor1 => &simplicity_sys::c_jets::jets_wrapper::xor_1, Core::Xor16 => &simplicity_sys::c_jets::jets_wrapper::xor_16, Core::Xor32 => &simplicity_sys::c_jets::jets_wrapper::xor_32, Core::Xor64 => &simplicity_sys::c_jets::jets_wrapper::xor_64, Core::Xor8 => &simplicity_sys::c_jets::jets_wrapper::xor_8, + Core::XorXor1 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_1, Core::XorXor16 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_16, Core::XorXor32 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_32, Core::XorXor64 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_64, @@ -3301,16 +5948,19 @@ impl Jet for Core { Core::All32 => Cost::from_milliweight(136), Core::All64 => Cost::from_milliweight(165), Core::All8 => Cost::from_milliweight(113), + Core::And1 => Cost::from_milliweight(159), Core::And16 => Cost::from_milliweight(195), Core::And32 => Cost::from_milliweight(175), Core::And64 => Cost::from_milliweight(221), Core::And8 => Cost::from_milliweight(159), Core::Bip0340Verify => Cost::from_milliweight(49671), + Core::Ch1 => Cost::from_milliweight(240), Core::Ch16 => Cost::from_milliweight(245), Core::Ch32 => Cost::from_milliweight(238), Core::Ch64 => Cost::from_milliweight(274), Core::Ch8 => Cost::from_milliweight(240), Core::CheckSigVerify => Cost::from_milliweight(50000), + Core::Complement1 => Cost::from_milliweight(139), Core::Complement16 => Cost::from_milliweight(146), Core::Complement32 => Cost::from_milliweight(161), Core::Complement64 => Cost::from_milliweight(174), @@ -3332,6 +5982,7 @@ impl Jet for Core { Core::Divides32 => Cost::from_milliweight(175), Core::Divides64 => Cost::from_milliweight(246), Core::Divides8 => Cost::from_milliweight(142), + Core::Eq1 => Cost::from_milliweight(120), Core::Eq16 => Cost::from_milliweight(174), Core::Eq256 => Cost::from_milliweight(431), Core::Eq32 => Cost::from_milliweight(233), @@ -3359,10 +6010,46 @@ impl Jet for Core { Core::FullIncrement32 => Cost::from_milliweight(171), Core::FullIncrement64 => Cost::from_milliweight(161), Core::FullIncrement8 => Cost::from_milliweight(204), + Core::FullLeftShift16_1 => Cost::from_milliweight(150), + Core::FullLeftShift16_2 => Cost::from_milliweight(150), + Core::FullLeftShift16_4 => Cost::from_milliweight(150), + Core::FullLeftShift16_8 => Cost::from_milliweight(150), + Core::FullLeftShift32_1 => Cost::from_milliweight(150), + Core::FullLeftShift32_16 => Cost::from_milliweight(150), + Core::FullLeftShift32_2 => Cost::from_milliweight(150), + Core::FullLeftShift32_4 => Cost::from_milliweight(150), + Core::FullLeftShift32_8 => Cost::from_milliweight(150), + Core::FullLeftShift64_1 => Cost::from_milliweight(150), + Core::FullLeftShift64_16 => Cost::from_milliweight(150), + Core::FullLeftShift64_2 => Cost::from_milliweight(150), + Core::FullLeftShift64_32 => Cost::from_milliweight(150), + Core::FullLeftShift64_4 => Cost::from_milliweight(150), + Core::FullLeftShift64_8 => Cost::from_milliweight(150), + Core::FullLeftShift8_1 => Cost::from_milliweight(150), + Core::FullLeftShift8_2 => Cost::from_milliweight(150), + Core::FullLeftShift8_4 => Cost::from_milliweight(150), Core::FullMultiply16 => Cost::from_milliweight(208), Core::FullMultiply32 => Cost::from_milliweight(213), Core::FullMultiply64 => Cost::from_milliweight(209), Core::FullMultiply8 => Cost::from_milliweight(190), + Core::FullRightShift16_1 => Cost::from_milliweight(150), + Core::FullRightShift16_2 => Cost::from_milliweight(150), + Core::FullRightShift16_4 => Cost::from_milliweight(150), + Core::FullRightShift16_8 => Cost::from_milliweight(150), + Core::FullRightShift32_1 => Cost::from_milliweight(150), + Core::FullRightShift32_16 => Cost::from_milliweight(150), + Core::FullRightShift32_2 => Cost::from_milliweight(150), + Core::FullRightShift32_4 => Cost::from_milliweight(150), + Core::FullRightShift32_8 => Cost::from_milliweight(150), + Core::FullRightShift64_1 => Cost::from_milliweight(150), + Core::FullRightShift64_16 => Cost::from_milliweight(150), + Core::FullRightShift64_2 => Cost::from_milliweight(150), + Core::FullRightShift64_32 => Cost::from_milliweight(150), + Core::FullRightShift64_4 => Cost::from_milliweight(150), + Core::FullRightShift64_8 => Cost::from_milliweight(150), + Core::FullRightShift8_1 => Cost::from_milliweight(150), + Core::FullRightShift8_2 => Cost::from_milliweight(150), + Core::FullRightShift8_4 => Cost::from_milliweight(150), Core::FullSubtract16 => Cost::from_milliweight(201), Core::FullSubtract32 => Cost::from_milliweight(170), Core::FullSubtract64 => Cost::from_milliweight(231), @@ -3382,6 +6069,7 @@ impl Jet for Core { Core::GejXEquiv => Cost::from_milliweight(1270), Core::GejYIsOdd => Cost::from_milliweight(3665), Core::Generate => Cost::from_milliweight(51706), + Core::High1 => Cost::from_milliweight(169), Core::High16 => Cost::from_milliweight(159), Core::High32 => Cost::from_milliweight(121), Core::High64 => Cost::from_milliweight(110), @@ -3402,8 +6090,69 @@ impl Jet for Core { Core::Le32 => Cost::from_milliweight(216), Core::Le64 => Cost::from_milliweight(173), Core::Le8 => Cost::from_milliweight(143), + Core::LeftExtend16_32 => Cost::from_milliweight(150), + Core::LeftExtend16_64 => Cost::from_milliweight(150), + Core::LeftExtend1_16 => Cost::from_milliweight(150), + Core::LeftExtend1_32 => Cost::from_milliweight(150), + Core::LeftExtend1_64 => Cost::from_milliweight(150), + Core::LeftExtend1_8 => Cost::from_milliweight(150), + Core::LeftExtend32_64 => Cost::from_milliweight(150), + Core::LeftExtend8_16 => Cost::from_milliweight(150), + Core::LeftExtend8_32 => Cost::from_milliweight(150), + Core::LeftExtend8_64 => Cost::from_milliweight(150), + Core::LeftPadHigh16_32 => Cost::from_milliweight(150), + Core::LeftPadHigh16_64 => Cost::from_milliweight(150), + Core::LeftPadHigh1_16 => Cost::from_milliweight(150), + Core::LeftPadHigh1_32 => Cost::from_milliweight(150), + Core::LeftPadHigh1_64 => Cost::from_milliweight(150), + Core::LeftPadHigh1_8 => Cost::from_milliweight(150), + Core::LeftPadHigh32_64 => Cost::from_milliweight(150), + Core::LeftPadHigh8_16 => Cost::from_milliweight(150), + Core::LeftPadHigh8_32 => Cost::from_milliweight(150), + Core::LeftPadHigh8_64 => Cost::from_milliweight(150), + Core::LeftPadLow16_32 => Cost::from_milliweight(150), + Core::LeftPadLow16_64 => Cost::from_milliweight(150), + Core::LeftPadLow1_16 => Cost::from_milliweight(150), + Core::LeftPadLow1_32 => Cost::from_milliweight(150), + Core::LeftPadLow1_64 => Cost::from_milliweight(150), + Core::LeftPadLow1_8 => Cost::from_milliweight(150), + Core::LeftPadLow32_64 => Cost::from_milliweight(150), + Core::LeftPadLow8_16 => Cost::from_milliweight(150), + Core::LeftPadLow8_32 => Cost::from_milliweight(150), + Core::LeftPadLow8_64 => Cost::from_milliweight(150), + Core::LeftRotate16 => Cost::from_milliweight(150), + Core::LeftRotate32 => Cost::from_milliweight(150), + Core::LeftRotate64 => Cost::from_milliweight(150), + Core::LeftRotate8 => Cost::from_milliweight(150), + Core::LeftShift16 => Cost::from_milliweight(150), + Core::LeftShift32 => Cost::from_milliweight(150), + Core::LeftShift64 => Cost::from_milliweight(150), + Core::LeftShift8 => Cost::from_milliweight(150), + Core::LeftShiftWith16 => Cost::from_milliweight(150), + Core::LeftShiftWith32 => Cost::from_milliweight(150), + Core::LeftShiftWith64 => Cost::from_milliweight(150), + Core::LeftShiftWith8 => Cost::from_milliweight(150), + Core::Leftmost16_1 => Cost::from_milliweight(150), + Core::Leftmost16_2 => Cost::from_milliweight(150), + Core::Leftmost16_4 => Cost::from_milliweight(150), + Core::Leftmost16_8 => Cost::from_milliweight(150), + Core::Leftmost32_1 => Cost::from_milliweight(150), + Core::Leftmost32_16 => Cost::from_milliweight(150), + Core::Leftmost32_2 => Cost::from_milliweight(150), + Core::Leftmost32_4 => Cost::from_milliweight(150), + Core::Leftmost32_8 => Cost::from_milliweight(150), + Core::Leftmost64_1 => Cost::from_milliweight(150), + Core::Leftmost64_16 => Cost::from_milliweight(150), + Core::Leftmost64_2 => Cost::from_milliweight(150), + Core::Leftmost64_32 => Cost::from_milliweight(150), + Core::Leftmost64_4 => Cost::from_milliweight(150), + Core::Leftmost64_8 => Cost::from_milliweight(150), + Core::Leftmost8_1 => Cost::from_milliweight(150), + Core::Leftmost8_2 => Cost::from_milliweight(150), + Core::Leftmost8_4 => Cost::from_milliweight(150), Core::LinearCombination1 => Cost::from_milliweight(86722), Core::LinearVerify1 => Cost::from_milliweight(43063), + Core::Low1 => Cost::from_milliweight(173), Core::Low16 => Cost::from_milliweight(172), Core::Low32 => Cost::from_milliweight(170), Core::Low64 => Cost::from_milliweight(162), @@ -3412,6 +6161,7 @@ impl Jet for Core { Core::Lt32 => Cost::from_milliweight(215), Core::Lt64 => Cost::from_milliweight(195), Core::Lt8 => Cost::from_milliweight(130), + Core::Maj1 => Cost::from_milliweight(241), Core::Maj16 => Cost::from_milliweight(273), Core::Maj32 => Cost::from_milliweight(289), Core::Maj64 => Cost::from_milliweight(293), @@ -3444,6 +6194,7 @@ impl Jet for Core { Core::One32 => Cost::from_milliweight(122), Core::One64 => Cost::from_milliweight(123), Core::One8 => Cost::from_milliweight(127), + Core::Or1 => Cost::from_milliweight(147), Core::Or16 => Cost::from_milliweight(204), Core::Or32 => Cost::from_milliweight(197), Core::Or64 => Cost::from_milliweight(214), @@ -3451,6 +6202,62 @@ impl Jet for Core { Core::ParseLock => Cost::from_milliweight(177), Core::ParseSequence => Cost::from_milliweight(261), Core::PointVerify1 => Cost::from_milliweight(50604), + Core::RightExtend16_32 => Cost::from_milliweight(150), + Core::RightExtend16_64 => Cost::from_milliweight(150), + Core::RightExtend32_64 => Cost::from_milliweight(150), + Core::RightExtend8_16 => Cost::from_milliweight(150), + Core::RightExtend8_32 => Cost::from_milliweight(150), + Core::RightExtend8_64 => Cost::from_milliweight(150), + Core::RightPadHigh16_32 => Cost::from_milliweight(150), + Core::RightPadHigh16_64 => Cost::from_milliweight(150), + Core::RightPadHigh1_16 => Cost::from_milliweight(150), + Core::RightPadHigh1_32 => Cost::from_milliweight(150), + Core::RightPadHigh1_64 => Cost::from_milliweight(150), + Core::RightPadHigh1_8 => Cost::from_milliweight(150), + Core::RightPadHigh32_64 => Cost::from_milliweight(150), + Core::RightPadHigh8_16 => Cost::from_milliweight(150), + Core::RightPadHigh8_32 => Cost::from_milliweight(150), + Core::RightPadHigh8_64 => Cost::from_milliweight(150), + Core::RightPadLow16_32 => Cost::from_milliweight(150), + Core::RightPadLow16_64 => Cost::from_milliweight(150), + Core::RightPadLow1_16 => Cost::from_milliweight(150), + Core::RightPadLow1_32 => Cost::from_milliweight(150), + Core::RightPadLow1_64 => Cost::from_milliweight(150), + Core::RightPadLow1_8 => Cost::from_milliweight(150), + Core::RightPadLow32_64 => Cost::from_milliweight(150), + Core::RightPadLow8_16 => Cost::from_milliweight(150), + Core::RightPadLow8_32 => Cost::from_milliweight(150), + Core::RightPadLow8_64 => Cost::from_milliweight(150), + Core::RightRotate16 => Cost::from_milliweight(150), + Core::RightRotate32 => Cost::from_milliweight(150), + Core::RightRotate64 => Cost::from_milliweight(150), + Core::RightRotate8 => Cost::from_milliweight(150), + Core::RightShift16 => Cost::from_milliweight(150), + Core::RightShift32 => Cost::from_milliweight(150), + Core::RightShift64 => Cost::from_milliweight(150), + Core::RightShift8 => Cost::from_milliweight(150), + Core::RightShiftWith16 => Cost::from_milliweight(150), + Core::RightShiftWith32 => Cost::from_milliweight(150), + Core::RightShiftWith64 => Cost::from_milliweight(150), + Core::RightShiftWith8 => Cost::from_milliweight(150), + Core::Rightmost16_1 => Cost::from_milliweight(150), + Core::Rightmost16_2 => Cost::from_milliweight(150), + Core::Rightmost16_4 => Cost::from_milliweight(150), + Core::Rightmost16_8 => Cost::from_milliweight(150), + Core::Rightmost32_1 => Cost::from_milliweight(150), + Core::Rightmost32_16 => Cost::from_milliweight(150), + Core::Rightmost32_2 => Cost::from_milliweight(150), + Core::Rightmost32_4 => Cost::from_milliweight(150), + Core::Rightmost32_8 => Cost::from_milliweight(150), + Core::Rightmost64_1 => Cost::from_milliweight(150), + Core::Rightmost64_16 => Cost::from_milliweight(150), + Core::Rightmost64_2 => Cost::from_milliweight(150), + Core::Rightmost64_32 => Cost::from_milliweight(150), + Core::Rightmost64_4 => Cost::from_milliweight(150), + Core::Rightmost64_8 => Cost::from_milliweight(150), + Core::Rightmost8_1 => Cost::from_milliweight(150), + Core::Rightmost8_2 => Cost::from_milliweight(150), + Core::Rightmost8_4 => Cost::from_milliweight(150), Core::ScalarAdd => Cost::from_milliweight(962), Core::ScalarInvert => Cost::from_milliweight(4025), Core::ScalarIsZero => Cost::from_milliweight(569), @@ -3475,6 +6282,7 @@ impl Jet for Core { Core::Sha256Ctx8Finalize => Cost::from_milliweight(2111), Core::Sha256Ctx8Init => Cost::from_milliweight(184), Core::Sha256Iv => Cost::from_milliweight(129), + Core::Some1 => Cost::from_milliweight(104), Core::Some16 => Cost::from_milliweight(129), Core::Some32 => Cost::from_milliweight(183), Core::Some64 => Cost::from_milliweight(139), @@ -3484,10 +6292,12 @@ impl Jet for Core { Core::Subtract64 => Cost::from_milliweight(315), Core::Subtract8 => Cost::from_milliweight(149), Core::Verify => Cost::from_milliweight(144), + Core::Xor1 => Cost::from_milliweight(135), Core::Xor16 => Cost::from_milliweight(188), Core::Xor32 => Cost::from_milliweight(204), Core::Xor64 => Cost::from_milliweight(207), Core::Xor8 => Cost::from_milliweight(135), + Core::XorXor1 => Cost::from_milliweight(258), Core::XorXor16 => Cost::from_milliweight(235), Core::XorXor32 => Cost::from_milliweight(251), Core::XorXor64 => Cost::from_milliweight(285), @@ -3507,16 +6317,19 @@ impl fmt::Display for Core { Core::All32 => f.write_str("all_32"), Core::All64 => f.write_str("all_64"), Core::All8 => f.write_str("all_8"), + Core::And1 => f.write_str("and_1"), Core::And16 => f.write_str("and_16"), Core::And32 => f.write_str("and_32"), Core::And64 => f.write_str("and_64"), Core::And8 => f.write_str("and_8"), Core::Bip0340Verify => f.write_str("bip_0340_verify"), + Core::Ch1 => f.write_str("ch_1"), Core::Ch16 => f.write_str("ch_16"), Core::Ch32 => f.write_str("ch_32"), Core::Ch64 => f.write_str("ch_64"), Core::Ch8 => f.write_str("ch_8"), Core::CheckSigVerify => f.write_str("check_sig_verify"), + Core::Complement1 => f.write_str("complement_1"), Core::Complement16 => f.write_str("complement_16"), Core::Complement32 => f.write_str("complement_32"), Core::Complement64 => f.write_str("complement_64"), @@ -3538,6 +6351,7 @@ impl fmt::Display for Core { Core::Divides32 => f.write_str("divides_32"), Core::Divides64 => f.write_str("divides_64"), Core::Divides8 => f.write_str("divides_8"), + Core::Eq1 => f.write_str("eq_1"), Core::Eq16 => f.write_str("eq_16"), Core::Eq256 => f.write_str("eq_256"), Core::Eq32 => f.write_str("eq_32"), @@ -3565,10 +6379,46 @@ impl fmt::Display for Core { Core::FullIncrement32 => f.write_str("full_increment_32"), Core::FullIncrement64 => f.write_str("full_increment_64"), Core::FullIncrement8 => f.write_str("full_increment_8"), + Core::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"), + Core::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"), + Core::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"), + Core::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"), + Core::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"), + Core::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"), + Core::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"), + Core::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"), + Core::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"), + Core::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"), + Core::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"), + Core::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"), + Core::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"), + Core::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"), + Core::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"), + Core::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"), + Core::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"), + Core::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"), Core::FullMultiply16 => f.write_str("full_multiply_16"), Core::FullMultiply32 => f.write_str("full_multiply_32"), Core::FullMultiply64 => f.write_str("full_multiply_64"), Core::FullMultiply8 => f.write_str("full_multiply_8"), + Core::FullRightShift16_1 => f.write_str("full_right_shift_16_1"), + Core::FullRightShift16_2 => f.write_str("full_right_shift_16_2"), + Core::FullRightShift16_4 => f.write_str("full_right_shift_16_4"), + Core::FullRightShift16_8 => f.write_str("full_right_shift_16_8"), + Core::FullRightShift32_1 => f.write_str("full_right_shift_32_1"), + Core::FullRightShift32_16 => f.write_str("full_right_shift_32_16"), + Core::FullRightShift32_2 => f.write_str("full_right_shift_32_2"), + Core::FullRightShift32_4 => f.write_str("full_right_shift_32_4"), + Core::FullRightShift32_8 => f.write_str("full_right_shift_32_8"), + Core::FullRightShift64_1 => f.write_str("full_right_shift_64_1"), + Core::FullRightShift64_16 => f.write_str("full_right_shift_64_16"), + Core::FullRightShift64_2 => f.write_str("full_right_shift_64_2"), + Core::FullRightShift64_32 => f.write_str("full_right_shift_64_32"), + Core::FullRightShift64_4 => f.write_str("full_right_shift_64_4"), + Core::FullRightShift64_8 => f.write_str("full_right_shift_64_8"), + Core::FullRightShift8_1 => f.write_str("full_right_shift_8_1"), + Core::FullRightShift8_2 => f.write_str("full_right_shift_8_2"), + Core::FullRightShift8_4 => f.write_str("full_right_shift_8_4"), Core::FullSubtract16 => f.write_str("full_subtract_16"), Core::FullSubtract32 => f.write_str("full_subtract_32"), Core::FullSubtract64 => f.write_str("full_subtract_64"), @@ -3588,6 +6438,7 @@ impl fmt::Display for Core { Core::GejXEquiv => f.write_str("gej_x_equiv"), Core::GejYIsOdd => f.write_str("gej_y_is_odd"), Core::Generate => f.write_str("generate"), + Core::High1 => f.write_str("high_1"), Core::High16 => f.write_str("high_16"), Core::High32 => f.write_str("high_32"), Core::High64 => f.write_str("high_64"), @@ -3608,8 +6459,69 @@ impl fmt::Display for Core { Core::Le32 => f.write_str("le_32"), Core::Le64 => f.write_str("le_64"), Core::Le8 => f.write_str("le_8"), + Core::LeftExtend16_32 => f.write_str("left_extend_16_32"), + Core::LeftExtend16_64 => f.write_str("left_extend_16_64"), + Core::LeftExtend1_16 => f.write_str("left_extend_1_16"), + Core::LeftExtend1_32 => f.write_str("left_extend_1_32"), + Core::LeftExtend1_64 => f.write_str("left_extend_1_64"), + Core::LeftExtend1_8 => f.write_str("left_extend_1_8"), + Core::LeftExtend32_64 => f.write_str("left_extend_32_64"), + Core::LeftExtend8_16 => f.write_str("left_extend_8_16"), + Core::LeftExtend8_32 => f.write_str("left_extend_8_32"), + Core::LeftExtend8_64 => f.write_str("left_extend_8_64"), + Core::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"), + Core::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"), + Core::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"), + Core::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"), + Core::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"), + Core::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"), + Core::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"), + Core::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"), + Core::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"), + Core::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"), + Core::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"), + Core::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"), + Core::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"), + Core::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"), + Core::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"), + Core::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"), + Core::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"), + Core::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"), + Core::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"), + Core::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"), + Core::LeftRotate16 => f.write_str("left_rotate_16"), + Core::LeftRotate32 => f.write_str("left_rotate_32"), + Core::LeftRotate64 => f.write_str("left_rotate_64"), + Core::LeftRotate8 => f.write_str("left_rotate_8"), + Core::LeftShift16 => f.write_str("left_shift_16"), + Core::LeftShift32 => f.write_str("left_shift_32"), + Core::LeftShift64 => f.write_str("left_shift_64"), + Core::LeftShift8 => f.write_str("left_shift_8"), + Core::LeftShiftWith16 => f.write_str("left_shift_with_16"), + Core::LeftShiftWith32 => f.write_str("left_shift_with_32"), + Core::LeftShiftWith64 => f.write_str("left_shift_with_64"), + Core::LeftShiftWith8 => f.write_str("left_shift_with_8"), + Core::Leftmost16_1 => f.write_str("leftmost_16_1"), + Core::Leftmost16_2 => f.write_str("leftmost_16_2"), + Core::Leftmost16_4 => f.write_str("leftmost_16_4"), + Core::Leftmost16_8 => f.write_str("leftmost_16_8"), + Core::Leftmost32_1 => f.write_str("leftmost_32_1"), + Core::Leftmost32_16 => f.write_str("leftmost_32_16"), + Core::Leftmost32_2 => f.write_str("leftmost_32_2"), + Core::Leftmost32_4 => f.write_str("leftmost_32_4"), + Core::Leftmost32_8 => f.write_str("leftmost_32_8"), + Core::Leftmost64_1 => f.write_str("leftmost_64_1"), + Core::Leftmost64_16 => f.write_str("leftmost_64_16"), + Core::Leftmost64_2 => f.write_str("leftmost_64_2"), + Core::Leftmost64_32 => f.write_str("leftmost_64_32"), + Core::Leftmost64_4 => f.write_str("leftmost_64_4"), + Core::Leftmost64_8 => f.write_str("leftmost_64_8"), + Core::Leftmost8_1 => f.write_str("leftmost_8_1"), + Core::Leftmost8_2 => f.write_str("leftmost_8_2"), + Core::Leftmost8_4 => f.write_str("leftmost_8_4"), Core::LinearCombination1 => f.write_str("linear_combination_1"), Core::LinearVerify1 => f.write_str("linear_verify_1"), + Core::Low1 => f.write_str("low_1"), Core::Low16 => f.write_str("low_16"), Core::Low32 => f.write_str("low_32"), Core::Low64 => f.write_str("low_64"), @@ -3618,6 +6530,7 @@ impl fmt::Display for Core { Core::Lt32 => f.write_str("lt_32"), Core::Lt64 => f.write_str("lt_64"), Core::Lt8 => f.write_str("lt_8"), + Core::Maj1 => f.write_str("maj_1"), Core::Maj16 => f.write_str("maj_16"), Core::Maj32 => f.write_str("maj_32"), Core::Maj64 => f.write_str("maj_64"), @@ -3650,6 +6563,7 @@ impl fmt::Display for Core { Core::One32 => f.write_str("one_32"), Core::One64 => f.write_str("one_64"), Core::One8 => f.write_str("one_8"), + Core::Or1 => f.write_str("or_1"), Core::Or16 => f.write_str("or_16"), Core::Or32 => f.write_str("or_32"), Core::Or64 => f.write_str("or_64"), @@ -3657,6 +6571,62 @@ impl fmt::Display for Core { Core::ParseLock => f.write_str("parse_lock"), Core::ParseSequence => f.write_str("parse_sequence"), Core::PointVerify1 => f.write_str("point_verify_1"), + Core::RightExtend16_32 => f.write_str("right_extend_16_32"), + Core::RightExtend16_64 => f.write_str("right_extend_16_64"), + Core::RightExtend32_64 => f.write_str("right_extend_32_64"), + Core::RightExtend8_16 => f.write_str("right_extend_8_16"), + Core::RightExtend8_32 => f.write_str("right_extend_8_32"), + Core::RightExtend8_64 => f.write_str("right_extend_8_64"), + Core::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"), + Core::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"), + Core::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"), + Core::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"), + Core::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"), + Core::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"), + Core::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"), + Core::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"), + Core::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"), + Core::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"), + Core::RightPadLow16_32 => f.write_str("right_pad_low_16_32"), + Core::RightPadLow16_64 => f.write_str("right_pad_low_16_64"), + Core::RightPadLow1_16 => f.write_str("right_pad_low_1_16"), + Core::RightPadLow1_32 => f.write_str("right_pad_low_1_32"), + Core::RightPadLow1_64 => f.write_str("right_pad_low_1_64"), + Core::RightPadLow1_8 => f.write_str("right_pad_low_1_8"), + Core::RightPadLow32_64 => f.write_str("right_pad_low_32_64"), + Core::RightPadLow8_16 => f.write_str("right_pad_low_8_16"), + Core::RightPadLow8_32 => f.write_str("right_pad_low_8_32"), + Core::RightPadLow8_64 => f.write_str("right_pad_low_8_64"), + Core::RightRotate16 => f.write_str("right_rotate_16"), + Core::RightRotate32 => f.write_str("right_rotate_32"), + Core::RightRotate64 => f.write_str("right_rotate_64"), + Core::RightRotate8 => f.write_str("right_rotate_8"), + Core::RightShift16 => f.write_str("right_shift_16"), + Core::RightShift32 => f.write_str("right_shift_32"), + Core::RightShift64 => f.write_str("right_shift_64"), + Core::RightShift8 => f.write_str("right_shift_8"), + Core::RightShiftWith16 => f.write_str("right_shift_with_16"), + Core::RightShiftWith32 => f.write_str("right_shift_with_32"), + Core::RightShiftWith64 => f.write_str("right_shift_with_64"), + Core::RightShiftWith8 => f.write_str("right_shift_with_8"), + Core::Rightmost16_1 => f.write_str("rightmost_16_1"), + Core::Rightmost16_2 => f.write_str("rightmost_16_2"), + Core::Rightmost16_4 => f.write_str("rightmost_16_4"), + Core::Rightmost16_8 => f.write_str("rightmost_16_8"), + Core::Rightmost32_1 => f.write_str("rightmost_32_1"), + Core::Rightmost32_16 => f.write_str("rightmost_32_16"), + Core::Rightmost32_2 => f.write_str("rightmost_32_2"), + Core::Rightmost32_4 => f.write_str("rightmost_32_4"), + Core::Rightmost32_8 => f.write_str("rightmost_32_8"), + Core::Rightmost64_1 => f.write_str("rightmost_64_1"), + Core::Rightmost64_16 => f.write_str("rightmost_64_16"), + Core::Rightmost64_2 => f.write_str("rightmost_64_2"), + Core::Rightmost64_32 => f.write_str("rightmost_64_32"), + Core::Rightmost64_4 => f.write_str("rightmost_64_4"), + Core::Rightmost64_8 => f.write_str("rightmost_64_8"), + Core::Rightmost8_1 => f.write_str("rightmost_8_1"), + Core::Rightmost8_2 => f.write_str("rightmost_8_2"), + Core::Rightmost8_4 => f.write_str("rightmost_8_4"), Core::ScalarAdd => f.write_str("scalar_add"), Core::ScalarInvert => f.write_str("scalar_invert"), Core::ScalarIsZero => f.write_str("scalar_is_zero"), @@ -3681,6 +6651,7 @@ impl fmt::Display for Core { Core::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"), Core::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"), Core::Sha256Iv => f.write_str("sha_256_iv"), + Core::Some1 => f.write_str("some_1"), Core::Some16 => f.write_str("some_16"), Core::Some32 => f.write_str("some_32"), Core::Some64 => f.write_str("some_64"), @@ -3690,10 +6661,12 @@ impl fmt::Display for Core { Core::Subtract64 => f.write_str("subtract_64"), Core::Subtract8 => f.write_str("subtract_8"), Core::Verify => f.write_str("verify"), + Core::Xor1 => f.write_str("xor_1"), Core::Xor16 => f.write_str("xor_16"), Core::Xor32 => f.write_str("xor_32"), Core::Xor64 => f.write_str("xor_64"), Core::Xor8 => f.write_str("xor_8"), + Core::XorXor1 => f.write_str("xor_xor_1"), Core::XorXor16 => f.write_str("xor_xor_16"), Core::XorXor32 => f.write_str("xor_xor_32"), Core::XorXor64 => f.write_str("xor_xor_64"), @@ -3715,16 +6688,19 @@ impl str::FromStr for Core { "all_32" => Ok(Core::All32), "all_64" => Ok(Core::All64), "all_8" => Ok(Core::All8), + "and_1" => Ok(Core::And1), "and_16" => Ok(Core::And16), "and_32" => Ok(Core::And32), "and_64" => Ok(Core::And64), "and_8" => Ok(Core::And8), "bip_0340_verify" => Ok(Core::Bip0340Verify), + "ch_1" => Ok(Core::Ch1), "ch_16" => Ok(Core::Ch16), "ch_32" => Ok(Core::Ch32), "ch_64" => Ok(Core::Ch64), "ch_8" => Ok(Core::Ch8), "check_sig_verify" => Ok(Core::CheckSigVerify), + "complement_1" => Ok(Core::Complement1), "complement_16" => Ok(Core::Complement16), "complement_32" => Ok(Core::Complement32), "complement_64" => Ok(Core::Complement64), @@ -3746,6 +6722,7 @@ impl str::FromStr for Core { "divides_32" => Ok(Core::Divides32), "divides_64" => Ok(Core::Divides64), "divides_8" => Ok(Core::Divides8), + "eq_1" => Ok(Core::Eq1), "eq_16" => Ok(Core::Eq16), "eq_256" => Ok(Core::Eq256), "eq_32" => Ok(Core::Eq32), @@ -3773,10 +6750,46 @@ impl str::FromStr for Core { "full_increment_32" => Ok(Core::FullIncrement32), "full_increment_64" => Ok(Core::FullIncrement64), "full_increment_8" => Ok(Core::FullIncrement8), + "full_left_shift_16_1" => Ok(Core::FullLeftShift16_1), + "full_left_shift_16_2" => Ok(Core::FullLeftShift16_2), + "full_left_shift_16_4" => Ok(Core::FullLeftShift16_4), + "full_left_shift_16_8" => Ok(Core::FullLeftShift16_8), + "full_left_shift_32_1" => Ok(Core::FullLeftShift32_1), + "full_left_shift_32_16" => Ok(Core::FullLeftShift32_16), + "full_left_shift_32_2" => Ok(Core::FullLeftShift32_2), + "full_left_shift_32_4" => Ok(Core::FullLeftShift32_4), + "full_left_shift_32_8" => Ok(Core::FullLeftShift32_8), + "full_left_shift_64_1" => Ok(Core::FullLeftShift64_1), + "full_left_shift_64_16" => Ok(Core::FullLeftShift64_16), + "full_left_shift_64_2" => Ok(Core::FullLeftShift64_2), + "full_left_shift_64_32" => Ok(Core::FullLeftShift64_32), + "full_left_shift_64_4" => Ok(Core::FullLeftShift64_4), + "full_left_shift_64_8" => Ok(Core::FullLeftShift64_8), + "full_left_shift_8_1" => Ok(Core::FullLeftShift8_1), + "full_left_shift_8_2" => Ok(Core::FullLeftShift8_2), + "full_left_shift_8_4" => Ok(Core::FullLeftShift8_4), "full_multiply_16" => Ok(Core::FullMultiply16), "full_multiply_32" => Ok(Core::FullMultiply32), "full_multiply_64" => Ok(Core::FullMultiply64), "full_multiply_8" => Ok(Core::FullMultiply8), + "full_right_shift_16_1" => Ok(Core::FullRightShift16_1), + "full_right_shift_16_2" => Ok(Core::FullRightShift16_2), + "full_right_shift_16_4" => Ok(Core::FullRightShift16_4), + "full_right_shift_16_8" => Ok(Core::FullRightShift16_8), + "full_right_shift_32_1" => Ok(Core::FullRightShift32_1), + "full_right_shift_32_16" => Ok(Core::FullRightShift32_16), + "full_right_shift_32_2" => Ok(Core::FullRightShift32_2), + "full_right_shift_32_4" => Ok(Core::FullRightShift32_4), + "full_right_shift_32_8" => Ok(Core::FullRightShift32_8), + "full_right_shift_64_1" => Ok(Core::FullRightShift64_1), + "full_right_shift_64_16" => Ok(Core::FullRightShift64_16), + "full_right_shift_64_2" => Ok(Core::FullRightShift64_2), + "full_right_shift_64_32" => Ok(Core::FullRightShift64_32), + "full_right_shift_64_4" => Ok(Core::FullRightShift64_4), + "full_right_shift_64_8" => Ok(Core::FullRightShift64_8), + "full_right_shift_8_1" => Ok(Core::FullRightShift8_1), + "full_right_shift_8_2" => Ok(Core::FullRightShift8_2), + "full_right_shift_8_4" => Ok(Core::FullRightShift8_4), "full_subtract_16" => Ok(Core::FullSubtract16), "full_subtract_32" => Ok(Core::FullSubtract32), "full_subtract_64" => Ok(Core::FullSubtract64), @@ -3796,6 +6809,7 @@ impl str::FromStr for Core { "gej_x_equiv" => Ok(Core::GejXEquiv), "gej_y_is_odd" => Ok(Core::GejYIsOdd), "generate" => Ok(Core::Generate), + "high_1" => Ok(Core::High1), "high_16" => Ok(Core::High16), "high_32" => Ok(Core::High32), "high_64" => Ok(Core::High64), @@ -3816,8 +6830,69 @@ impl str::FromStr for Core { "le_32" => Ok(Core::Le32), "le_64" => Ok(Core::Le64), "le_8" => Ok(Core::Le8), + "left_extend_16_32" => Ok(Core::LeftExtend16_32), + "left_extend_16_64" => Ok(Core::LeftExtend16_64), + "left_extend_1_16" => Ok(Core::LeftExtend1_16), + "left_extend_1_32" => Ok(Core::LeftExtend1_32), + "left_extend_1_64" => Ok(Core::LeftExtend1_64), + "left_extend_1_8" => Ok(Core::LeftExtend1_8), + "left_extend_32_64" => Ok(Core::LeftExtend32_64), + "left_extend_8_16" => Ok(Core::LeftExtend8_16), + "left_extend_8_32" => Ok(Core::LeftExtend8_32), + "left_extend_8_64" => Ok(Core::LeftExtend8_64), + "left_pad_high_16_32" => Ok(Core::LeftPadHigh16_32), + "left_pad_high_16_64" => Ok(Core::LeftPadHigh16_64), + "left_pad_high_1_16" => Ok(Core::LeftPadHigh1_16), + "left_pad_high_1_32" => Ok(Core::LeftPadHigh1_32), + "left_pad_high_1_64" => Ok(Core::LeftPadHigh1_64), + "left_pad_high_1_8" => Ok(Core::LeftPadHigh1_8), + "left_pad_high_32_64" => Ok(Core::LeftPadHigh32_64), + "left_pad_high_8_16" => Ok(Core::LeftPadHigh8_16), + "left_pad_high_8_32" => Ok(Core::LeftPadHigh8_32), + "left_pad_high_8_64" => Ok(Core::LeftPadHigh8_64), + "left_pad_low_16_32" => Ok(Core::LeftPadLow16_32), + "left_pad_low_16_64" => Ok(Core::LeftPadLow16_64), + "left_pad_low_1_16" => Ok(Core::LeftPadLow1_16), + "left_pad_low_1_32" => Ok(Core::LeftPadLow1_32), + "left_pad_low_1_64" => Ok(Core::LeftPadLow1_64), + "left_pad_low_1_8" => Ok(Core::LeftPadLow1_8), + "left_pad_low_32_64" => Ok(Core::LeftPadLow32_64), + "left_pad_low_8_16" => Ok(Core::LeftPadLow8_16), + "left_pad_low_8_32" => Ok(Core::LeftPadLow8_32), + "left_pad_low_8_64" => Ok(Core::LeftPadLow8_64), + "left_rotate_16" => Ok(Core::LeftRotate16), + "left_rotate_32" => Ok(Core::LeftRotate32), + "left_rotate_64" => Ok(Core::LeftRotate64), + "left_rotate_8" => Ok(Core::LeftRotate8), + "left_shift_16" => Ok(Core::LeftShift16), + "left_shift_32" => Ok(Core::LeftShift32), + "left_shift_64" => Ok(Core::LeftShift64), + "left_shift_8" => Ok(Core::LeftShift8), + "left_shift_with_16" => Ok(Core::LeftShiftWith16), + "left_shift_with_32" => Ok(Core::LeftShiftWith32), + "left_shift_with_64" => Ok(Core::LeftShiftWith64), + "left_shift_with_8" => Ok(Core::LeftShiftWith8), + "leftmost_16_1" => Ok(Core::Leftmost16_1), + "leftmost_16_2" => Ok(Core::Leftmost16_2), + "leftmost_16_4" => Ok(Core::Leftmost16_4), + "leftmost_16_8" => Ok(Core::Leftmost16_8), + "leftmost_32_1" => Ok(Core::Leftmost32_1), + "leftmost_32_16" => Ok(Core::Leftmost32_16), + "leftmost_32_2" => Ok(Core::Leftmost32_2), + "leftmost_32_4" => Ok(Core::Leftmost32_4), + "leftmost_32_8" => Ok(Core::Leftmost32_8), + "leftmost_64_1" => Ok(Core::Leftmost64_1), + "leftmost_64_16" => Ok(Core::Leftmost64_16), + "leftmost_64_2" => Ok(Core::Leftmost64_2), + "leftmost_64_32" => Ok(Core::Leftmost64_32), + "leftmost_64_4" => Ok(Core::Leftmost64_4), + "leftmost_64_8" => Ok(Core::Leftmost64_8), + "leftmost_8_1" => Ok(Core::Leftmost8_1), + "leftmost_8_2" => Ok(Core::Leftmost8_2), + "leftmost_8_4" => Ok(Core::Leftmost8_4), "linear_combination_1" => Ok(Core::LinearCombination1), "linear_verify_1" => Ok(Core::LinearVerify1), + "low_1" => Ok(Core::Low1), "low_16" => Ok(Core::Low16), "low_32" => Ok(Core::Low32), "low_64" => Ok(Core::Low64), @@ -3826,6 +6901,7 @@ impl str::FromStr for Core { "lt_32" => Ok(Core::Lt32), "lt_64" => Ok(Core::Lt64), "lt_8" => Ok(Core::Lt8), + "maj_1" => Ok(Core::Maj1), "maj_16" => Ok(Core::Maj16), "maj_32" => Ok(Core::Maj32), "maj_64" => Ok(Core::Maj64), @@ -3858,6 +6934,7 @@ impl str::FromStr for Core { "one_32" => Ok(Core::One32), "one_64" => Ok(Core::One64), "one_8" => Ok(Core::One8), + "or_1" => Ok(Core::Or1), "or_16" => Ok(Core::Or16), "or_32" => Ok(Core::Or32), "or_64" => Ok(Core::Or64), @@ -3865,6 +6942,62 @@ impl str::FromStr for Core { "parse_lock" => Ok(Core::ParseLock), "parse_sequence" => Ok(Core::ParseSequence), "point_verify_1" => Ok(Core::PointVerify1), + "right_extend_16_32" => Ok(Core::RightExtend16_32), + "right_extend_16_64" => Ok(Core::RightExtend16_64), + "right_extend_32_64" => Ok(Core::RightExtend32_64), + "right_extend_8_16" => Ok(Core::RightExtend8_16), + "right_extend_8_32" => Ok(Core::RightExtend8_32), + "right_extend_8_64" => Ok(Core::RightExtend8_64), + "right_pad_high_16_32" => Ok(Core::RightPadHigh16_32), + "right_pad_high_16_64" => Ok(Core::RightPadHigh16_64), + "right_pad_high_1_16" => Ok(Core::RightPadHigh1_16), + "right_pad_high_1_32" => Ok(Core::RightPadHigh1_32), + "right_pad_high_1_64" => Ok(Core::RightPadHigh1_64), + "right_pad_high_1_8" => Ok(Core::RightPadHigh1_8), + "right_pad_high_32_64" => Ok(Core::RightPadHigh32_64), + "right_pad_high_8_16" => Ok(Core::RightPadHigh8_16), + "right_pad_high_8_32" => Ok(Core::RightPadHigh8_32), + "right_pad_high_8_64" => Ok(Core::RightPadHigh8_64), + "right_pad_low_16_32" => Ok(Core::RightPadLow16_32), + "right_pad_low_16_64" => Ok(Core::RightPadLow16_64), + "right_pad_low_1_16" => Ok(Core::RightPadLow1_16), + "right_pad_low_1_32" => Ok(Core::RightPadLow1_32), + "right_pad_low_1_64" => Ok(Core::RightPadLow1_64), + "right_pad_low_1_8" => Ok(Core::RightPadLow1_8), + "right_pad_low_32_64" => Ok(Core::RightPadLow32_64), + "right_pad_low_8_16" => Ok(Core::RightPadLow8_16), + "right_pad_low_8_32" => Ok(Core::RightPadLow8_32), + "right_pad_low_8_64" => Ok(Core::RightPadLow8_64), + "right_rotate_16" => Ok(Core::RightRotate16), + "right_rotate_32" => Ok(Core::RightRotate32), + "right_rotate_64" => Ok(Core::RightRotate64), + "right_rotate_8" => Ok(Core::RightRotate8), + "right_shift_16" => Ok(Core::RightShift16), + "right_shift_32" => Ok(Core::RightShift32), + "right_shift_64" => Ok(Core::RightShift64), + "right_shift_8" => Ok(Core::RightShift8), + "right_shift_with_16" => Ok(Core::RightShiftWith16), + "right_shift_with_32" => Ok(Core::RightShiftWith32), + "right_shift_with_64" => Ok(Core::RightShiftWith64), + "right_shift_with_8" => Ok(Core::RightShiftWith8), + "rightmost_16_1" => Ok(Core::Rightmost16_1), + "rightmost_16_2" => Ok(Core::Rightmost16_2), + "rightmost_16_4" => Ok(Core::Rightmost16_4), + "rightmost_16_8" => Ok(Core::Rightmost16_8), + "rightmost_32_1" => Ok(Core::Rightmost32_1), + "rightmost_32_16" => Ok(Core::Rightmost32_16), + "rightmost_32_2" => Ok(Core::Rightmost32_2), + "rightmost_32_4" => Ok(Core::Rightmost32_4), + "rightmost_32_8" => Ok(Core::Rightmost32_8), + "rightmost_64_1" => Ok(Core::Rightmost64_1), + "rightmost_64_16" => Ok(Core::Rightmost64_16), + "rightmost_64_2" => Ok(Core::Rightmost64_2), + "rightmost_64_32" => Ok(Core::Rightmost64_32), + "rightmost_64_4" => Ok(Core::Rightmost64_4), + "rightmost_64_8" => Ok(Core::Rightmost64_8), + "rightmost_8_1" => Ok(Core::Rightmost8_1), + "rightmost_8_2" => Ok(Core::Rightmost8_2), + "rightmost_8_4" => Ok(Core::Rightmost8_4), "scalar_add" => Ok(Core::ScalarAdd), "scalar_invert" => Ok(Core::ScalarInvert), "scalar_is_zero" => Ok(Core::ScalarIsZero), @@ -3889,6 +7022,7 @@ impl str::FromStr for Core { "sha_256_ctx_8_finalize" => Ok(Core::Sha256Ctx8Finalize), "sha_256_ctx_8_init" => Ok(Core::Sha256Ctx8Init), "sha_256_iv" => Ok(Core::Sha256Iv), + "some_1" => Ok(Core::Some1), "some_16" => Ok(Core::Some16), "some_32" => Ok(Core::Some32), "some_64" => Ok(Core::Some64), @@ -3898,10 +7032,12 @@ impl str::FromStr for Core { "subtract_64" => Ok(Core::Subtract64), "subtract_8" => Ok(Core::Subtract8), "verify" => Ok(Core::Verify), + "xor_1" => Ok(Core::Xor1), "xor_16" => Ok(Core::Xor16), "xor_32" => Ok(Core::Xor32), "xor_64" => Ok(Core::Xor64), "xor_8" => Ok(Core::Xor8), + "xor_xor_1" => Ok(Core::XorXor1), "xor_xor_16" => Ok(Core::XorXor16), "xor_xor_32" => Ok(Core::XorXor32), "xor_xor_64" => Ok(Core::XorXor64), diff --git a/src/jet/init/elements.rs b/src/jet/init/elements.rs index e1c8a2f9..cfe268ee 100644 --- a/src/jet/init/elements.rs +++ b/src/jet/init/elements.rs @@ -24,6 +24,7 @@ pub enum Elements { All32, All64, All8, + And1, And16, And32, And64, @@ -37,6 +38,7 @@ pub enum Elements { CalculateConfidentialToken, CalculateExplicitToken, CalculateIssuanceEntropy, + Ch1, Ch16, Ch32, Ch64, @@ -46,6 +48,7 @@ pub enum Elements { CheckLockHeight, CheckLockTime, CheckSigVerify, + Complement1, Complement16, Complement32, Complement64, @@ -83,6 +86,7 @@ pub enum Elements { Divides32, Divides64, Divides8, + Eq1, Eq16, Eq256, Eq32, @@ -110,10 +114,46 @@ pub enum Elements { FullIncrement32, FullIncrement64, FullIncrement8, + FullLeftShift16_1, + FullLeftShift16_2, + FullLeftShift16_4, + FullLeftShift16_8, + FullLeftShift32_1, + FullLeftShift32_16, + FullLeftShift32_2, + FullLeftShift32_4, + FullLeftShift32_8, + FullLeftShift64_1, + FullLeftShift64_16, + FullLeftShift64_2, + FullLeftShift64_32, + FullLeftShift64_4, + FullLeftShift64_8, + FullLeftShift8_1, + FullLeftShift8_2, + FullLeftShift8_4, FullMultiply16, FullMultiply32, FullMultiply64, FullMultiply8, + FullRightShift16_1, + FullRightShift16_2, + FullRightShift16_4, + FullRightShift16_8, + FullRightShift32_1, + FullRightShift32_16, + FullRightShift32_2, + FullRightShift32_4, + FullRightShift32_8, + FullRightShift64_1, + FullRightShift64_16, + FullRightShift64_2, + FullRightShift64_32, + FullRightShift64_4, + FullRightShift64_8, + FullRightShift8_1, + FullRightShift8_2, + FullRightShift8_4, FullSubtract16, FullSubtract32, FullSubtract64, @@ -134,6 +174,7 @@ pub enum Elements { GejYIsOdd, Generate, GenesisBlockHash, + High1, High16, High32, High64, @@ -184,9 +225,70 @@ pub enum Elements { Le32, Le64, Le8, + LeftExtend16_32, + LeftExtend16_64, + LeftExtend1_16, + LeftExtend1_32, + LeftExtend1_64, + LeftExtend1_8, + LeftExtend32_64, + LeftExtend8_16, + LeftExtend8_32, + LeftExtend8_64, + LeftPadHigh16_32, + LeftPadHigh16_64, + LeftPadHigh1_16, + LeftPadHigh1_32, + LeftPadHigh1_64, + LeftPadHigh1_8, + LeftPadHigh32_64, + LeftPadHigh8_16, + LeftPadHigh8_32, + LeftPadHigh8_64, + LeftPadLow16_32, + LeftPadLow16_64, + LeftPadLow1_16, + LeftPadLow1_32, + LeftPadLow1_64, + LeftPadLow1_8, + LeftPadLow32_64, + LeftPadLow8_16, + LeftPadLow8_32, + LeftPadLow8_64, + LeftRotate16, + LeftRotate32, + LeftRotate64, + LeftRotate8, + LeftShift16, + LeftShift32, + LeftShift64, + LeftShift8, + LeftShiftWith16, + LeftShiftWith32, + LeftShiftWith64, + LeftShiftWith8, + Leftmost16_1, + Leftmost16_2, + Leftmost16_4, + Leftmost16_8, + Leftmost32_1, + Leftmost32_16, + Leftmost32_2, + Leftmost32_4, + Leftmost32_8, + Leftmost64_1, + Leftmost64_16, + Leftmost64_2, + Leftmost64_32, + Leftmost64_4, + Leftmost64_8, + Leftmost8_1, + Leftmost8_2, + Leftmost8_4, LinearCombination1, LinearVerify1, LockTime, + Low1, Low16, Low32, Low64, @@ -195,6 +297,7 @@ pub enum Elements { Lt32, Lt64, Lt8, + Maj1, Maj16, Maj32, Maj64, @@ -231,6 +334,7 @@ pub enum Elements { One32, One64, One8, + Or1, Or16, Or32, Or64, @@ -255,6 +359,62 @@ pub enum Elements { PointVerify1, ReissuanceBlinding, ReissuanceEntropy, + RightExtend16_32, + RightExtend16_64, + RightExtend32_64, + RightExtend8_16, + RightExtend8_32, + RightExtend8_64, + RightPadHigh16_32, + RightPadHigh16_64, + RightPadHigh1_16, + RightPadHigh1_32, + RightPadHigh1_64, + RightPadHigh1_8, + RightPadHigh32_64, + RightPadHigh8_16, + RightPadHigh8_32, + RightPadHigh8_64, + RightPadLow16_32, + RightPadLow16_64, + RightPadLow1_16, + RightPadLow1_32, + RightPadLow1_64, + RightPadLow1_8, + RightPadLow32_64, + RightPadLow8_16, + RightPadLow8_32, + RightPadLow8_64, + RightRotate16, + RightRotate32, + RightRotate64, + RightRotate8, + RightShift16, + RightShift32, + RightShift64, + RightShift8, + RightShiftWith16, + RightShiftWith32, + RightShiftWith64, + RightShiftWith8, + Rightmost16_1, + Rightmost16_2, + Rightmost16_4, + Rightmost16_8, + Rightmost32_1, + Rightmost32_16, + Rightmost32_2, + Rightmost32_4, + Rightmost32_8, + Rightmost64_1, + Rightmost64_16, + Rightmost64_2, + Rightmost64_32, + Rightmost64_4, + Rightmost64_8, + Rightmost8_1, + Rightmost8_2, + Rightmost8_4, ScalarAdd, ScalarInvert, ScalarIsZero, @@ -281,6 +441,7 @@ pub enum Elements { Sha256Ctx8Init, Sha256Iv, SigAllHash, + Some1, Some16, Some32, Some64, @@ -302,10 +463,12 @@ pub enum Elements { TxLockTime, Verify, Version, + Xor1, Xor16, Xor32, Xor64, Xor8, + XorXor1, XorXor16, XorXor32, XorXor64, @@ -363,6 +526,11 @@ impl Jet for Elements { 0xd0, 0xb2, 0xac, 0xce, 0x5c, 0xb3, 0xec, 0xc1, 0x2e, 0x8c, 0xb8, 0x16, 0x7f, 0x7b, 0x6e, 0xaa, 0x40, 0x69, ], + Elements::And1 => [ + 0x2d, 0xc2, 0xdb, 0xcc, 0x69, 0xc1, 0x2c, 0x78, 0x30, 0xdf, 0x11, 0x70, 0xd9, 0xe9, + 0x3a, 0x35, 0xd8, 0x28, 0x4c, 0xc8, 0x15, 0x91, 0x6a, 0xeb, 0x3b, 0x1b, 0x95, 0xef, + 0xda, 0xa9, 0x2c, 0x26, + ], Elements::And16 => [ 0x4f, 0x42, 0xc6, 0x88, 0xcc, 0x3c, 0xeb, 0x76, 0x1f, 0x66, 0x2a, 0x0b, 0x8e, 0x77, 0xb1, 0x96, 0x42, 0xda, 0xb5, 0x40, 0x7d, 0x9a, 0x87, 0x3c, 0xd9, 0xc1, 0x86, 0x09, @@ -428,6 +596,11 @@ impl Jet for Elements { 0xb4, 0xcc, 0x91, 0x7e, 0xf2, 0xd8, 0x1b, 0x8d, 0xf7, 0x5f, 0xb2, 0x3a, 0x91, 0x6e, 0xb3, 0xbe, 0x19, 0x7e, ], + Elements::Ch1 => [ + 0xc2, 0x32, 0x36, 0x12, 0x4d, 0xa0, 0x1f, 0x3d, 0x8e, 0xb7, 0x42, 0xc2, 0xed, 0x47, + 0x95, 0x3f, 0x66, 0xc8, 0xb0, 0x84, 0xd9, 0x5a, 0x10, 0xc6, 0x0c, 0xae, 0x69, 0xba, + 0x98, 0x42, 0xae, 0x96, + ], Elements::Ch16 => [ 0xdc, 0xcd, 0xe6, 0xa9, 0x54, 0x58, 0x75, 0xc5, 0xcb, 0x46, 0xe7, 0x2c, 0x7b, 0x04, 0xce, 0xeb, 0x92, 0x0c, 0x20, 0x3d, 0x1c, 0x04, 0x2a, 0xec, 0x91, 0x24, 0x1d, 0xbe, @@ -473,6 +646,11 @@ impl Jet for Elements { 0xe1, 0x77, 0xf9, 0x41, 0xa6, 0x7c, 0xc6, 0xce, 0xd8, 0x69, 0x74, 0x6f, 0x1a, 0x8e, 0xb6, 0x50, 0x6f, 0x76, ], + Elements::Complement1 => [ + 0x7e, 0x71, 0x48, 0x13, 0x2e, 0x28, 0x92, 0x82, 0x3f, 0xcf, 0x2a, 0x26, 0xc6, 0x22, + 0x0b, 0xee, 0x03, 0x9f, 0xf6, 0xc5, 0xd7, 0xc1, 0xb4, 0xe4, 0xca, 0x21, 0x3a, 0xd8, + 0x37, 0xab, 0x47, 0x74, + ], Elements::Complement16 => [ 0x7f, 0x16, 0xd1, 0x24, 0x15, 0x99, 0x87, 0x68, 0x34, 0x7f, 0x43, 0xa9, 0xb9, 0x1c, 0x89, 0x87, 0x59, 0x1d, 0xfe, 0xc1, 0xcf, 0x78, 0x50, 0xb4, 0x23, 0xfe, 0xa3, 0x3a, @@ -658,6 +836,11 @@ impl Jet for Elements { 0x8a, 0x66, 0x29, 0xa3, 0x7b, 0x4b, 0xef, 0xdc, 0xd7, 0xcc, 0x55, 0x88, 0x60, 0x80, 0xae, 0xf6, 0x8a, 0xf8, ], + Elements::Eq1 => [ + 0x42, 0x49, 0xc5, 0xbd, 0xec, 0x54, 0x0a, 0x06, 0x95, 0x7d, 0xcd, 0xab, 0x04, 0x5a, + 0x44, 0x5e, 0xb9, 0x18, 0x91, 0xc0, 0x6c, 0x3f, 0x8f, 0x96, 0xc8, 0x88, 0xe9, 0xdd, + 0xd2, 0xfb, 0xaa, 0x28, + ], Elements::Eq16 => [ 0xab, 0x31, 0xa7, 0x97, 0x4a, 0xcb, 0xf7, 0x2a, 0xb2, 0xf2, 0x1b, 0xf5, 0x3f, 0xec, 0x34, 0x6a, 0x28, 0xe6, 0xe6, 0x5e, 0x4c, 0x05, 0xe3, 0xe7, 0x84, 0x3e, 0x14, 0x73, @@ -793,6 +976,96 @@ impl Jet for Elements { 0xf4, 0x47, 0x8e, 0xc6, 0x32, 0x06, 0xc9, 0x8f, 0xb5, 0xcc, 0xcf, 0x77, 0xc2, 0x09, 0xbe, 0xbd, 0x29, 0xef, ], + Elements::FullLeftShift16_1 => [ + 0x74, 0x0e, 0x23, 0x81, 0x1b, 0x3e, 0x62, 0xd4, 0x91, 0x51, 0x0f, 0xc9, 0xed, 0xc4, + 0xcb, 0x0a, 0x0e, 0xec, 0xfa, 0xdf, 0xd2, 0x1b, 0xb2, 0x7f, 0x33, 0xe2, 0x20, 0xb1, + 0xd8, 0x7d, 0x14, 0xd7, + ], + Elements::FullLeftShift16_2 => [ + 0xc2, 0x6e, 0x8a, 0xc3, 0xff, 0x9c, 0xc5, 0x18, 0x71, 0x9d, 0x4d, 0x7f, 0xd1, 0x49, + 0xd8, 0x02, 0xf2, 0x3f, 0x0b, 0x02, 0x49, 0x99, 0xed, 0x5d, 0xaf, 0x36, 0x92, 0x10, + 0xac, 0xbe, 0x33, 0x45, + ], + Elements::FullLeftShift16_4 => [ + 0x5e, 0x57, 0x0c, 0xbe, 0x4c, 0x7c, 0xa9, 0x4b, 0xe0, 0xfc, 0x7b, 0x3e, 0xe5, 0x79, + 0xbd, 0xd7, 0x84, 0x26, 0xf0, 0xb7, 0x67, 0xf4, 0x85, 0x17, 0x17, 0xbb, 0xfe, 0xae, + 0xde, 0x91, 0xfe, 0x30, + ], + Elements::FullLeftShift16_8 => [ + 0x65, 0xad, 0xc5, 0x53, 0x48, 0x38, 0x3b, 0x28, 0xe8, 0x79, 0x7f, 0x81, 0xa9, 0x28, + 0x2d, 0x91, 0x1b, 0x3f, 0x8f, 0xa6, 0x13, 0x92, 0x72, 0x51, 0xd8, 0x8e, 0x0c, 0x38, + 0xb0, 0x29, 0xb7, 0x05, + ], + Elements::FullLeftShift32_1 => [ + 0x72, 0xe0, 0x10, 0x4e, 0xfa, 0xf1, 0xde, 0xe4, 0x11, 0x98, 0xec, 0x3b, 0x79, 0x03, + 0x73, 0xf6, 0x48, 0xf1, 0x3f, 0x5e, 0xe0, 0x65, 0x52, 0xfb, 0x02, 0x0b, 0xaf, 0xb5, + 0x84, 0x97, 0xc2, 0x5c, + ], + Elements::FullLeftShift32_16 => [ + 0xb9, 0xfb, 0x21, 0x69, 0x90, 0x8d, 0x91, 0x44, 0xcc, 0x73, 0xe6, 0x8f, 0x75, 0x35, + 0x36, 0xf4, 0x3c, 0xb2, 0xb7, 0x4c, 0xb6, 0x2c, 0x64, 0x08, 0x81, 0x06, 0x70, 0xde, + 0x84, 0xab, 0x09, 0xbd, + ], + Elements::FullLeftShift32_2 => [ + 0x11, 0xef, 0xdb, 0x81, 0xb0, 0xc4, 0xde, 0xda, 0x4d, 0x4f, 0x98, 0x47, 0x5d, 0x78, + 0x78, 0xef, 0xa3, 0x38, 0x69, 0x4f, 0xa0, 0xfd, 0x61, 0x3e, 0x12, 0x93, 0x22, 0x5a, + 0x4f, 0x46, 0x2f, 0x7c, + ], + Elements::FullLeftShift32_4 => [ + 0x77, 0xe3, 0x99, 0xd7, 0xd8, 0x3f, 0x7d, 0x11, 0x44, 0x99, 0x1d, 0xaf, 0xa3, 0xcc, + 0x98, 0x11, 0xc1, 0x63, 0x2c, 0x29, 0xe4, 0x93, 0xa8, 0xaf, 0x98, 0xe9, 0x8f, 0xbc, + 0x1d, 0x63, 0x5f, 0xb4, + ], + Elements::FullLeftShift32_8 => [ + 0xba, 0x66, 0x4c, 0xb1, 0xc4, 0x2e, 0xda, 0x17, 0x91, 0x91, 0xeb, 0xc2, 0xa1, 0x10, + 0x39, 0x6d, 0xae, 0x58, 0xf9, 0x06, 0xa6, 0x41, 0x06, 0xb3, 0x06, 0x67, 0x79, 0x0a, + 0xc2, 0xf2, 0x38, 0x2d, + ], + Elements::FullLeftShift64_1 => [ + 0x79, 0xd3, 0x8f, 0xe0, 0x75, 0x83, 0x9b, 0x22, 0x7c, 0xff, 0xd9, 0x2a, 0x8c, 0xdb, + 0x5c, 0x8c, 0x35, 0x22, 0xbc, 0xb4, 0xd1, 0xe0, 0x3b, 0xee, 0xb6, 0xdb, 0x6a, 0xb6, + 0x4e, 0xd4, 0x72, 0x1f, + ], + Elements::FullLeftShift64_16 => [ + 0x21, 0x43, 0x56, 0x62, 0x45, 0xf5, 0xa1, 0xb9, 0xdf, 0xeb, 0x0c, 0x75, 0x87, 0x8e, + 0x21, 0xdb, 0xe1, 0x38, 0x04, 0xc2, 0x69, 0x35, 0xee, 0x47, 0xca, 0xc9, 0xad, 0x82, + 0x2d, 0x6d, 0xed, 0xb2, + ], + Elements::FullLeftShift64_2 => [ + 0x9c, 0x92, 0x16, 0x49, 0x15, 0xaf, 0x0b, 0x15, 0x4e, 0x1d, 0xf5, 0x64, 0xd4, 0xdc, + 0x9b, 0xe9, 0x80, 0xb3, 0x98, 0x83, 0x5c, 0x99, 0x88, 0xbb, 0xb1, 0x08, 0xd0, 0xcd, + 0x81, 0x45, 0xb3, 0x30, + ], + Elements::FullLeftShift64_32 => [ + 0xd0, 0xd0, 0x16, 0xe9, 0xc7, 0x8c, 0xd1, 0x12, 0xb4, 0xdd, 0x91, 0xa8, 0x35, 0x9f, + 0x80, 0x5c, 0x68, 0x41, 0x5b, 0x85, 0x7a, 0x79, 0x9b, 0x00, 0x39, 0x49, 0x54, 0xdc, + 0xd2, 0x90, 0xac, 0xbc, + ], + Elements::FullLeftShift64_4 => [ + 0x0f, 0x1f, 0x7d, 0x37, 0x4e, 0x82, 0x86, 0x8d, 0x71, 0xe7, 0xe7, 0xc0, 0x32, 0x21, + 0xb1, 0x50, 0x59, 0x4b, 0x63, 0x04, 0x45, 0xb1, 0xb1, 0x63, 0x56, 0xcf, 0x35, 0x45, + 0xbd, 0x93, 0x92, 0x63, + ], + Elements::FullLeftShift64_8 => [ + 0xad, 0x7b, 0x44, 0x38, 0xb7, 0x3f, 0x6f, 0x9e, 0x42, 0xf6, 0x4c, 0x70, 0x53, 0x04, + 0x75, 0xee, 0x08, 0x93, 0x6e, 0x47, 0x63, 0xe5, 0xb7, 0x3e, 0xa4, 0xbc, 0x83, 0x83, + 0xa2, 0xb9, 0x63, 0xd5, + ], + Elements::FullLeftShift8_1 => [ + 0x21, 0x13, 0x68, 0x1a, 0x11, 0x62, 0x4e, 0x60, 0x60, 0x30, 0xc4, 0x70, 0xd6, 0x8f, + 0x60, 0x61, 0x23, 0x2f, 0x71, 0xcf, 0xab, 0xc5, 0x05, 0x71, 0x92, 0xc6, 0xc8, 0xbd, + 0x1d, 0x73, 0xb7, 0xe1, + ], + Elements::FullLeftShift8_2 => [ + 0x36, 0x83, 0x68, 0xc9, 0x4b, 0x04, 0x0e, 0x81, 0xb9, 0x48, 0xd7, 0x37, 0xc1, 0x93, + 0xc0, 0x42, 0x83, 0xec, 0x80, 0xa2, 0x8f, 0xd3, 0xa0, 0x21, 0xb0, 0xb8, 0xc1, 0xab, + 0xcf, 0x5e, 0xdc, 0xd3, + ], + Elements::FullLeftShift8_4 => [ + 0x8f, 0x85, 0x4d, 0x58, 0xf9, 0x68, 0xb4, 0xbe, 0x3b, 0x20, 0x21, 0xfb, 0x22, 0x14, + 0x2d, 0xd3, 0xe6, 0x8a, 0xa8, 0x19, 0x7b, 0x54, 0x75, 0xb7, 0x05, 0x0b, 0x02, 0xe1, + 0xe5, 0xca, 0xee, 0x47, + ], Elements::FullMultiply16 => [ 0x32, 0xcf, 0x7f, 0x50, 0x89, 0x4e, 0xa2, 0xc4, 0x61, 0xa0, 0x54, 0x66, 0xbb, 0xfa, 0x1e, 0x4e, 0x1b, 0x04, 0x99, 0x57, 0x52, 0x3f, 0x64, 0x93, 0x7a, 0x8b, 0x54, 0x27, @@ -813,6 +1086,96 @@ impl Jet for Elements { 0x74, 0x3b, 0x8f, 0xb3, 0xf7, 0x54, 0x87, 0x12, 0x0b, 0xa3, 0x26, 0xff, 0x60, 0x0a, 0xd8, 0xb1, 0xf3, 0xe6, ], + Elements::FullRightShift16_1 => [ + 0xb8, 0x07, 0x44, 0x23, 0xe6, 0x74, 0x8a, 0x6a, 0xa5, 0x4e, 0xc5, 0x74, 0x1f, 0xee, + 0xf2, 0x5a, 0x26, 0x2f, 0xde, 0xcb, 0xfc, 0xe3, 0x91, 0x24, 0xe6, 0x10, 0x23, 0x8a, + 0x3b, 0x0a, 0x23, 0xfc, + ], + Elements::FullRightShift16_2 => [ + 0x3f, 0xcf, 0x98, 0x5e, 0xe0, 0xc7, 0x2c, 0xa4, 0x1d, 0xdf, 0x6c, 0x89, 0xd0, 0xf0, + 0xf6, 0x9d, 0x50, 0x65, 0x87, 0x6e, 0x3b, 0x60, 0x20, 0xec, 0xc9, 0xbf, 0x05, 0x9e, + 0x8f, 0x97, 0x19, 0xc6, + ], + Elements::FullRightShift16_4 => [ + 0xa3, 0x0c, 0x7c, 0x29, 0xd0, 0xee, 0xac, 0x29, 0x52, 0x58, 0xb2, 0xb6, 0x1d, 0x0b, + 0x54, 0x13, 0x46, 0xf4, 0x07, 0xc0, 0x84, 0x8d, 0x44, 0x8e, 0x13, 0xe9, 0x77, 0x4c, + 0x1c, 0x96, 0x96, 0x79, + ], + Elements::FullRightShift16_8 => [ + 0x5b, 0x88, 0x08, 0xca, 0xda, 0x55, 0x87, 0xb3, 0x6d, 0x1a, 0x6f, 0xad, 0x66, 0xae, + 0x4d, 0xa0, 0x8d, 0x41, 0x23, 0x64, 0x4c, 0x0b, 0xdd, 0x59, 0x77, 0x2a, 0x70, 0xaa, + 0x74, 0x32, 0xe7, 0x15, + ], + Elements::FullRightShift32_1 => [ + 0x32, 0xaf, 0xd0, 0xef, 0x94, 0xdf, 0x51, 0xb7, 0xd3, 0x5c, 0x00, 0xe5, 0x61, 0xa8, + 0x39, 0x0c, 0x5c, 0xf5, 0x0f, 0x93, 0x0b, 0x30, 0xd7, 0x86, 0x88, 0x04, 0xb5, 0x80, + 0x49, 0x37, 0x58, 0x40, + ], + Elements::FullRightShift32_16 => [ + 0x44, 0xd1, 0x79, 0xa8, 0x90, 0xf7, 0x81, 0x2f, 0x15, 0x13, 0x31, 0xb5, 0x5f, 0xc0, + 0x7e, 0xb4, 0xe4, 0xd7, 0x81, 0x4e, 0xb6, 0x83, 0xda, 0x28, 0x8f, 0x8f, 0xe7, 0xcd, + 0x55, 0xb4, 0x39, 0x06, + ], + Elements::FullRightShift32_2 => [ + 0x33, 0xc6, 0x61, 0xdf, 0x3a, 0x32, 0xca, 0xe5, 0x5b, 0x52, 0xa5, 0xf2, 0x63, 0x21, + 0x54, 0xcc, 0x85, 0xb6, 0x59, 0x13, 0x87, 0xbc, 0x2b, 0x34, 0x83, 0x30, 0xc8, 0x70, + 0xa6, 0xf6, 0x70, 0x6f, + ], + Elements::FullRightShift32_4 => [ + 0xe4, 0xbe, 0xbf, 0x16, 0x93, 0x5f, 0x67, 0xbe, 0x7d, 0x8c, 0x86, 0xbc, 0x58, 0x8a, + 0xdb, 0xcf, 0x8e, 0x59, 0x75, 0x39, 0x25, 0x7f, 0xdd, 0xab, 0x9f, 0xb0, 0x43, 0x72, + 0xc7, 0x70, 0x12, 0xd3, + ], + Elements::FullRightShift32_8 => [ + 0xab, 0xcf, 0xfb, 0x08, 0x4a, 0x23, 0x96, 0x42, 0x16, 0xd5, 0x62, 0x73, 0x30, 0x5c, + 0x0c, 0x8b, 0x03, 0xbd, 0xab, 0xda, 0xd6, 0x9f, 0xf7, 0xe9, 0x42, 0xf0, 0xd2, 0xcf, + 0x08, 0x0f, 0xeb, 0xcc, + ], + Elements::FullRightShift64_1 => [ + 0x37, 0x68, 0x82, 0x60, 0xc5, 0x3a, 0xf0, 0x6b, 0x85, 0x6d, 0x90, 0x22, 0xca, 0x5d, + 0x87, 0xf8, 0xa6, 0x87, 0xee, 0x53, 0xfa, 0xca, 0x18, 0x66, 0xec, 0x84, 0x2a, 0x7c, + 0x89, 0x0a, 0x4b, 0x70, + ], + Elements::FullRightShift64_16 => [ + 0x41, 0x7b, 0xfb, 0x71, 0x5a, 0x20, 0xb1, 0x0d, 0x48, 0x81, 0xf5, 0xc3, 0x49, 0x6c, + 0x63, 0xef, 0xee, 0x4a, 0xb5, 0x00, 0x3d, 0xfd, 0x0a, 0x16, 0xb8, 0x5f, 0x94, 0xf8, + 0xe5, 0xb0, 0x66, 0x7c, + ], + Elements::FullRightShift64_2 => [ + 0xce, 0xca, 0x25, 0x67, 0xb9, 0x1a, 0x63, 0xe9, 0xca, 0x44, 0x03, 0x5e, 0xb5, 0x9e, + 0x2f, 0x22, 0xd8, 0x1e, 0x37, 0xe1, 0x96, 0x59, 0x5a, 0x74, 0x8c, 0xea, 0x4a, 0x46, + 0x84, 0xa2, 0x15, 0xb0, + ], + Elements::FullRightShift64_32 => [ + 0x03, 0x96, 0x99, 0x37, 0x84, 0x02, 0x3d, 0x47, 0xe8, 0x51, 0x4b, 0x45, 0x92, 0x98, + 0x19, 0x8d, 0x33, 0xbd, 0x71, 0xe6, 0xf7, 0x56, 0xd0, 0x8e, 0xdf, 0x46, 0x2a, 0x8f, + 0x62, 0xa2, 0x1b, 0x80, + ], + Elements::FullRightShift64_4 => [ + 0xde, 0xe4, 0xda, 0xd6, 0x7a, 0x5d, 0xdc, 0xc3, 0x5d, 0xa1, 0xa7, 0x90, 0x63, 0xca, + 0x97, 0x5f, 0x81, 0x34, 0xc8, 0xea, 0xc5, 0x6a, 0x9f, 0x55, 0x5d, 0x2b, 0x0e, 0x13, + 0xda, 0x10, 0x99, 0x4d, + ], + Elements::FullRightShift64_8 => [ + 0x9c, 0xd7, 0x78, 0x03, 0xfc, 0x38, 0x9c, 0x94, 0xff, 0xf2, 0x86, 0xda, 0x0b, 0x37, + 0x4b, 0x89, 0xfe, 0xeb, 0x3d, 0xaa, 0x38, 0xce, 0x67, 0xca, 0xb0, 0x22, 0x0d, 0xab, + 0xee, 0xfe, 0x23, 0xa2, + ], + Elements::FullRightShift8_1 => [ + 0xee, 0x23, 0xff, 0xf0, 0x7d, 0xe5, 0x3c, 0xc3, 0x71, 0x09, 0xa4, 0x7f, 0x9f, 0xde, + 0x3c, 0x74, 0x44, 0x7a, 0xe8, 0x31, 0xce, 0xe9, 0xac, 0x4d, 0xb7, 0x90, 0xcd, 0xe8, + 0xb1, 0x53, 0x23, 0xb2, + ], + Elements::FullRightShift8_2 => [ + 0x25, 0xe1, 0xde, 0xa1, 0x08, 0xc5, 0xf8, 0x9c, 0xce, 0x5b, 0x3d, 0x5b, 0x0e, 0x07, + 0x92, 0xbe, 0x37, 0x90, 0x1a, 0x5a, 0x65, 0xde, 0xf9, 0x04, 0xdd, 0x51, 0x71, 0x0a, + 0x35, 0x5a, 0xb5, 0x5f, + ], + Elements::FullRightShift8_4 => [ + 0xd7, 0xf0, 0xa8, 0x3c, 0x41, 0x04, 0x54, 0x3e, 0xc7, 0x5b, 0x5e, 0xe7, 0x5b, 0xf5, + 0xf7, 0x91, 0x5d, 0x65, 0xfa, 0x50, 0xc2, 0x09, 0x5d, 0xe2, 0xa3, 0x56, 0x70, 0xa5, + 0x05, 0xbe, 0x12, 0x9a, + ], Elements::FullSubtract16 => [ 0x95, 0xea, 0x5e, 0x54, 0xc5, 0x60, 0x3f, 0x2f, 0x78, 0xac, 0xf6, 0xb8, 0xa8, 0x7a, 0x63, 0xb3, 0xac, 0xc7, 0xb6, 0x5f, 0x2b, 0x87, 0xb6, 0x90, 0x4b, 0x98, 0x30, 0xfa, @@ -913,6 +1276,11 @@ impl Jet for Elements { 0x5a, 0x58, 0x60, 0x77, 0x9d, 0xf2, 0x83, 0x34, 0x48, 0x71, 0x41, 0xf4, 0x09, 0xb4, 0xb2, 0x9e, 0xfb, 0x65, ], + Elements::High1 => [ + 0x97, 0xa1, 0x43, 0xf0, 0x4c, 0xb6, 0x03, 0xf6, 0x5f, 0x84, 0xa8, 0x0d, 0x31, 0xc3, + 0x36, 0x4f, 0x8f, 0xda, 0x22, 0x97, 0x3a, 0x9a, 0xe6, 0x95, 0xa5, 0x81, 0x89, 0xc3, + 0x14, 0x63, 0xa8, 0xbf, + ], Elements::High16 => [ 0x62, 0x10, 0xac, 0x71, 0x36, 0x58, 0x6c, 0x73, 0xa0, 0x9c, 0x94, 0x21, 0xa4, 0x0e, 0x30, 0x8c, 0x44, 0x91, 0xea, 0xce, 0x9b, 0x5b, 0x36, 0x95, 0xd6, 0x1f, 0x4c, 0x81, @@ -1163,6 +1531,306 @@ impl Jet for Elements { 0xe0, 0x11, 0x18, 0xfb, 0x8c, 0x1a, 0xdc, 0xdc, 0x11, 0x21, 0x97, 0x93, 0xcb, 0x2a, 0xfc, 0x4a, 0x7e, 0x8c, ], + Elements::LeftExtend16_32 => [ + 0x8c, 0x99, 0x04, 0x35, 0xb1, 0x35, 0xde, 0x74, 0x57, 0xc2, 0x69, 0x0d, 0x2d, 0xc8, + 0x74, 0x4a, 0x50, 0x66, 0x41, 0xb8, 0x81, 0xf4, 0x1e, 0x5c, 0x17, 0x02, 0x77, 0x65, + 0xc3, 0x52, 0xdd, 0xcb, + ], + Elements::LeftExtend16_64 => [ + 0x9b, 0x9f, 0xf9, 0xcc, 0x27, 0x13, 0x93, 0x19, 0xb2, 0x24, 0xb7, 0xb2, 0xb8, 0x16, + 0xc9, 0x13, 0xa5, 0x68, 0xbf, 0xd0, 0x0b, 0xe1, 0xf3, 0x83, 0xc0, 0x26, 0xbc, 0xff, + 0xe9, 0xbf, 0xe7, 0x12, + ], + Elements::LeftExtend1_16 => [ + 0xb8, 0xff, 0x8d, 0xc1, 0xa0, 0x4c, 0xa7, 0x16, 0x49, 0x17, 0xf4, 0xc4, 0x50, 0x68, + 0x8c, 0x83, 0xdd, 0x41, 0x6c, 0xef, 0x7b, 0x0f, 0xab, 0xdd, 0x16, 0x92, 0xfa, 0xe6, + 0xbf, 0xf7, 0xb4, 0xa6, + ], + Elements::LeftExtend1_32 => [ + 0x22, 0x53, 0xa4, 0x52, 0xb9, 0x99, 0x02, 0xab, 0xcf, 0x15, 0x49, 0x6d, 0xf1, 0x9d, + 0x31, 0x12, 0xa1, 0xce, 0xf5, 0x9b, 0x9a, 0xdc, 0xee, 0x20, 0x6c, 0x0d, 0x8d, 0xce, + 0xa6, 0x28, 0xd0, 0x73, + ], + Elements::LeftExtend1_64 => [ + 0xc8, 0x59, 0x9c, 0x85, 0x75, 0xed, 0xb7, 0xc2, 0x60, 0x40, 0x2e, 0xf2, 0xf2, 0x6d, + 0xd4, 0x91, 0xcb, 0x5e, 0x4d, 0x38, 0x18, 0xff, 0x2e, 0x95, 0x85, 0xc8, 0xd3, 0xe7, + 0x81, 0x2d, 0xb5, 0xaa, + ], + Elements::LeftExtend1_8 => [ + 0xcf, 0xe0, 0x22, 0x00, 0x5f, 0x6b, 0xad, 0x4b, 0x25, 0xb5, 0x1e, 0x9e, 0xbe, 0x92, + 0x94, 0x24, 0x37, 0x3f, 0xf1, 0x97, 0xce, 0xca, 0x62, 0xb9, 0xe0, 0x69, 0xab, 0x08, + 0xda, 0x9f, 0x38, 0xf2, + ], + Elements::LeftExtend32_64 => [ + 0x3f, 0x66, 0x84, 0x04, 0x7e, 0xda, 0xfb, 0x76, 0xf1, 0x1f, 0xbf, 0x59, 0x54, 0x99, + 0xc5, 0xab, 0xa9, 0xc4, 0xba, 0x55, 0xca, 0xb5, 0x87, 0xcd, 0xfe, 0xba, 0xd4, 0x57, + 0xb5, 0x5b, 0xf5, 0xbb, + ], + Elements::LeftExtend8_16 => [ + 0xdb, 0xd5, 0x5f, 0x41, 0x70, 0x15, 0x38, 0x53, 0xba, 0xd0, 0xe0, 0x84, 0xf9, 0xe1, + 0xa7, 0xe7, 0x5a, 0x7a, 0x0d, 0xc9, 0xd8, 0x92, 0x07, 0x75, 0x57, 0x5b, 0x0d, 0x48, + 0xe5, 0x07, 0xaf, 0x2f, + ], + Elements::LeftExtend8_32 => [ + 0x5b, 0x5b, 0x45, 0x67, 0x6a, 0x75, 0x03, 0xee, 0xd0, 0x85, 0x57, 0x38, 0x69, 0xdb, + 0xc5, 0x80, 0x0b, 0x35, 0x02, 0x9d, 0x14, 0x02, 0x90, 0xac, 0x20, 0x89, 0x14, 0x89, + 0xbd, 0x2a, 0xa7, 0xd5, + ], + Elements::LeftExtend8_64 => [ + 0x7b, 0x9e, 0xa1, 0x48, 0xa3, 0x0f, 0x2a, 0xf4, 0xd4, 0x00, 0x1d, 0x4f, 0x25, 0xb0, + 0xbf, 0x4f, 0xdd, 0x67, 0xc7, 0xd0, 0xf1, 0x34, 0xd7, 0xef, 0x3f, 0x67, 0x8f, 0x72, + 0x19, 0x00, 0x2b, 0xcf, + ], + Elements::LeftPadHigh16_32 => [ + 0xe8, 0xc2, 0xd8, 0x5a, 0x7b, 0x7b, 0x2a, 0x8e, 0xbb, 0x5b, 0x0f, 0x21, 0x2f, 0xc8, + 0x45, 0x0d, 0xc1, 0xd3, 0xa4, 0x68, 0x22, 0xfb, 0x21, 0xe8, 0x6e, 0x3f, 0xee, 0x02, + 0x0a, 0xf9, 0x73, 0x8f, + ], + Elements::LeftPadHigh16_64 => [ + 0x61, 0x3b, 0x85, 0xd2, 0xa7, 0x51, 0xb3, 0xe5, 0x1f, 0xbc, 0x59, 0xa1, 0xde, 0xdd, + 0x1f, 0xc7, 0x93, 0x36, 0x5e, 0x40, 0x71, 0xdc, 0x1e, 0x01, 0x41, 0x08, 0xd8, 0x92, + 0x0d, 0x41, 0xd4, 0x70, + ], + Elements::LeftPadHigh1_16 => [ + 0xe8, 0x2b, 0x00, 0xef, 0xd7, 0xdc, 0xc3, 0x4e, 0x96, 0xe8, 0xf3, 0xe5, 0x1e, 0xad, + 0x12, 0xd3, 0x84, 0x5f, 0x6c, 0x77, 0x85, 0xe4, 0x43, 0x8b, 0x05, 0x45, 0x7d, 0x95, + 0x32, 0x6e, 0x59, 0xe3, + ], + Elements::LeftPadHigh1_32 => [ + 0x88, 0x58, 0x5b, 0x8c, 0x45, 0x92, 0xd5, 0xd0, 0x83, 0xdf, 0xf6, 0x8e, 0xb5, 0xc2, + 0x30, 0xd0, 0x6c, 0x37, 0x99, 0x5a, 0x6f, 0xed, 0xe2, 0x2c, 0x26, 0xe6, 0x61, 0xa7, + 0x51, 0x6e, 0x5b, 0xf4, + ], + Elements::LeftPadHigh1_64 => [ + 0xc2, 0x7e, 0x3d, 0x02, 0x94, 0x92, 0x20, 0x58, 0x89, 0x0d, 0x5c, 0x8b, 0x67, 0x6c, + 0x1d, 0xae, 0xfd, 0xde, 0x65, 0x31, 0xe8, 0xae, 0x6d, 0x79, 0x37, 0x53, 0x92, 0x72, + 0x3e, 0xad, 0x9c, 0x03, + ], + Elements::LeftPadHigh1_8 => [ + 0x14, 0x3e, 0x12, 0x39, 0x2b, 0x8f, 0x2e, 0x73, 0x53, 0x71, 0xfe, 0xd0, 0xb4, 0xb6, + 0xd6, 0x23, 0xff, 0xa4, 0xf6, 0x60, 0xe5, 0x39, 0x0c, 0x00, 0xe5, 0x67, 0xcf, 0x21, + 0xa1, 0xc9, 0x20, 0x78, + ], + Elements::LeftPadHigh32_64 => [ + 0xf4, 0x84, 0x7c, 0x67, 0x56, 0x67, 0xb3, 0xc6, 0xa8, 0x90, 0xfd, 0x5a, 0x6a, 0xdb, + 0x09, 0x27, 0x55, 0x7e, 0xe8, 0x0c, 0xd6, 0xe6, 0x5a, 0xf9, 0xb1, 0xb4, 0x72, 0x95, + 0x72, 0xcd, 0x86, 0x61, + ], + Elements::LeftPadHigh8_16 => [ + 0x76, 0x18, 0x05, 0x8a, 0x4e, 0x08, 0xeb, 0x52, 0x43, 0xda, 0xd2, 0x05, 0xcc, 0x7e, + 0x8d, 0x25, 0x47, 0x38, 0x0d, 0xa0, 0x5e, 0xc5, 0x41, 0x1e, 0xfc, 0x37, 0x2b, 0xaa, + 0x2b, 0xb1, 0x2d, 0xa6, + ], + Elements::LeftPadHigh8_32 => [ + 0x3d, 0xfe, 0xd5, 0xc0, 0xa9, 0xb2, 0x6b, 0x8f, 0x4a, 0x8e, 0xab, 0xd6, 0xfb, 0xed, + 0x87, 0xbe, 0x45, 0x0d, 0xe7, 0x95, 0xf5, 0x41, 0x95, 0x3e, 0xec, 0x16, 0xa6, 0xd5, + 0xaa, 0x82, 0x5a, 0x56, + ], + Elements::LeftPadHigh8_64 => [ + 0xce, 0x7c, 0x40, 0x7e, 0x4b, 0x56, 0x17, 0x21, 0xd6, 0x6c, 0x1b, 0xb0, 0xd1, 0x7e, + 0xe8, 0x41, 0xb4, 0xd5, 0x04, 0xb4, 0xc4, 0xc0, 0x72, 0x00, 0x22, 0x37, 0x14, 0x0b, + 0x89, 0x09, 0x76, 0x9f, + ], + Elements::LeftPadLow16_32 => [ + 0xa2, 0x8c, 0x79, 0x24, 0xa4, 0x7b, 0x46, 0xec, 0x73, 0xbc, 0xff, 0x6e, 0x13, 0x28, + 0xd4, 0x39, 0xaa, 0x90, 0x3a, 0xcf, 0x10, 0x3e, 0x9a, 0xa8, 0x0b, 0x65, 0xba, 0x76, + 0xd2, 0xa0, 0x8e, 0x75, + ], + Elements::LeftPadLow16_64 => [ + 0xb6, 0x25, 0x8a, 0xcd, 0xa2, 0x11, 0x0e, 0xd9, 0x8c, 0x17, 0xbc, 0xa8, 0x27, 0x12, + 0xe3, 0xea, 0x60, 0x86, 0x6f, 0x7d, 0x40, 0x04, 0xc8, 0x3e, 0x8a, 0xe5, 0x24, 0xb7, + 0xba, 0x44, 0x00, 0x8b, + ], + Elements::LeftPadLow1_16 => [ + 0x1e, 0x1f, 0x6c, 0xc4, 0x24, 0x64, 0x83, 0x75, 0x49, 0xb9, 0x7d, 0x30, 0x7e, 0x28, + 0xa9, 0xc2, 0x36, 0x80, 0x91, 0x4c, 0xd8, 0x6d, 0x65, 0xc3, 0x04, 0x67, 0x93, 0x12, + 0x7b, 0x54, 0xfe, 0x82, + ], + Elements::LeftPadLow1_32 => [ + 0xc3, 0x38, 0xa1, 0x95, 0x5e, 0x99, 0x82, 0x0d, 0x0e, 0xd3, 0x1a, 0x5a, 0xfe, 0xdd, + 0x13, 0x58, 0xc1, 0x74, 0x44, 0x02, 0x3e, 0x3f, 0x2b, 0x47, 0x33, 0xd9, 0xf6, 0x8c, + 0xb7, 0xb4, 0x0c, 0xd9, + ], + Elements::LeftPadLow1_64 => [ + 0x68, 0x9e, 0xd5, 0x69, 0xc2, 0x01, 0x52, 0x1e, 0xc1, 0x95, 0x4f, 0x0d, 0xc7, 0xd2, + 0x12, 0x8e, 0x46, 0x5a, 0x52, 0x04, 0x99, 0x19, 0x05, 0x49, 0x85, 0x8d, 0xe9, 0xed, + 0x23, 0x1a, 0x5d, 0x69, + ], + Elements::LeftPadLow1_8 => [ + 0x5b, 0x51, 0x90, 0x53, 0xfd, 0x2b, 0xb7, 0x58, 0x47, 0x3a, 0xf8, 0xe3, 0x91, 0x0b, + 0xae, 0xf3, 0x3c, 0xc8, 0x01, 0xc0, 0xb1, 0x42, 0x0a, 0xaf, 0x81, 0x4a, 0x7e, 0x72, + 0x54, 0xea, 0x78, 0xf0, + ], + Elements::LeftPadLow32_64 => [ + 0xac, 0x00, 0xa3, 0x4f, 0xb6, 0xa5, 0x8e, 0x57, 0xad, 0x22, 0x39, 0x50, 0x0e, 0x65, + 0x71, 0x37, 0x5d, 0xfd, 0xa0, 0xce, 0xa1, 0x17, 0x5f, 0xe9, 0x9d, 0x87, 0x5c, 0xd8, + 0x71, 0x81, 0x05, 0xe9, + ], + Elements::LeftPadLow8_16 => [ + 0xb6, 0xf6, 0x33, 0x4c, 0xc6, 0x60, 0xe3, 0x06, 0x9f, 0x7e, 0x14, 0x37, 0xa1, 0x94, + 0x3f, 0x61, 0x0f, 0xc5, 0xa5, 0xab, 0x8a, 0xa5, 0x10, 0x5b, 0xfc, 0xec, 0xd3, 0xda, + 0x0c, 0x59, 0x63, 0x3c, + ], + Elements::LeftPadLow8_32 => [ + 0x8a, 0xee, 0x9f, 0x42, 0xda, 0x9b, 0x84, 0x2e, 0x41, 0x18, 0x95, 0x96, 0x59, 0x47, + 0x56, 0xba, 0xd9, 0xba, 0xb2, 0x95, 0x3d, 0xea, 0xe6, 0x68, 0x56, 0xb9, 0xcb, 0x60, + 0x1d, 0x7a, 0xc5, 0x48, + ], + Elements::LeftPadLow8_64 => [ + 0x61, 0x1d, 0x64, 0xce, 0x94, 0xf8, 0x82, 0xfd, 0xa2, 0x4c, 0x97, 0xad, 0xd1, 0x90, + 0x54, 0x21, 0x2f, 0x46, 0xb3, 0xb9, 0x8e, 0xf2, 0xae, 0x22, 0x79, 0x36, 0x45, 0x39, + 0xb9, 0x3e, 0x2b, 0x8b, + ], + Elements::LeftRotate16 => [ + 0x25, 0xe2, 0xd4, 0xec, 0xc0, 0x3f, 0x87, 0x65, 0x5e, 0x96, 0x5b, 0x35, 0x7d, 0x6f, + 0xd0, 0xc2, 0xea, 0x36, 0xd1, 0x12, 0x06, 0x8c, 0x96, 0x33, 0x39, 0xde, 0x46, 0x7e, + 0x5c, 0x8e, 0x7d, 0x8e, + ], + Elements::LeftRotate32 => [ + 0x2d, 0x41, 0x89, 0xb3, 0x12, 0xe8, 0xce, 0xda, 0xaa, 0x38, 0x53, 0xa4, 0x5a, 0x12, + 0x98, 0x6e, 0xe2, 0x62, 0xfb, 0x60, 0x5f, 0x0d, 0x59, 0x2d, 0xcb, 0xb9, 0x61, 0x8f, + 0xe6, 0x7a, 0x25, 0x0b, + ], + Elements::LeftRotate64 => [ + 0xb8, 0xe6, 0x8e, 0x0a, 0xd6, 0x82, 0xb9, 0x67, 0xf2, 0x4c, 0x09, 0x84, 0xf7, 0xd5, + 0xf8, 0x09, 0xa2, 0x85, 0x97, 0xa0, 0x43, 0x46, 0x18, 0xc8, 0x94, 0x9f, 0xa8, 0x08, + 0xe3, 0xbe, 0x76, 0x14, + ], + Elements::LeftRotate8 => [ + 0x95, 0x6a, 0x65, 0x3a, 0xe0, 0xb8, 0xf8, 0xc3, 0xf2, 0x9f, 0xd8, 0xf3, 0x31, 0x19, + 0x16, 0x8f, 0xcb, 0xe6, 0x4f, 0x5d, 0x76, 0x5f, 0xa9, 0xff, 0x6b, 0x8e, 0x3b, 0x0d, + 0x96, 0x1a, 0x16, 0x29, + ], + Elements::LeftShift16 => [ + 0x9b, 0xbc, 0xe2, 0x9e, 0x69, 0x5b, 0xe2, 0xe4, 0x83, 0x0c, 0x7a, 0x93, 0xa0, 0xd2, + 0x15, 0x1b, 0x66, 0x4f, 0xc2, 0x72, 0x06, 0xee, 0xd7, 0xe5, 0x0f, 0xce, 0xf6, 0x02, + 0xd3, 0x45, 0xce, 0x0d, + ], + Elements::LeftShift32 => [ + 0xf9, 0xc4, 0xbf, 0x07, 0xd3, 0xe7, 0x2e, 0x85, 0xb1, 0xd4, 0x55, 0xf7, 0x34, 0xcf, + 0x1b, 0x11, 0xbe, 0xa5, 0x8e, 0x25, 0x3b, 0x85, 0x4a, 0x1a, 0x09, 0x7b, 0xab, 0x1e, + 0xc2, 0xc6, 0x2e, 0x1f, + ], + Elements::LeftShift64 => [ + 0x8c, 0xfa, 0x74, 0x1a, 0xa4, 0x1d, 0x82, 0x8a, 0x41, 0x08, 0x3b, 0xb7, 0xcb, 0xdd, + 0x1f, 0x4e, 0xda, 0x5d, 0xcc, 0xac, 0x52, 0x9b, 0x24, 0x7d, 0x18, 0x84, 0x95, 0xb4, + 0x9b, 0xb3, 0x8c, 0x2b, + ], + Elements::LeftShift8 => [ + 0x95, 0x66, 0x3e, 0x07, 0x7c, 0xad, 0xca, 0x31, 0xb9, 0x59, 0x6b, 0x09, 0x70, 0x6c, + 0xdb, 0x4f, 0xa7, 0x03, 0x87, 0x0f, 0x79, 0x2a, 0x46, 0x35, 0x85, 0x2b, 0x5e, 0x24, + 0x69, 0xe6, 0xfd, 0xba, + ], + Elements::LeftShiftWith16 => [ + 0x62, 0x14, 0xc4, 0x56, 0x25, 0xd7, 0x04, 0xce, 0xc9, 0x87, 0xb7, 0x96, 0x67, 0x6f, + 0x15, 0x66, 0x1a, 0x6b, 0xf5, 0xdc, 0x0f, 0x6a, 0x51, 0xcb, 0x86, 0x5a, 0x0e, 0x71, + 0xd6, 0x6f, 0xbf, 0x95, + ], + Elements::LeftShiftWith32 => [ + 0x1b, 0x45, 0x2f, 0xc7, 0xab, 0x5c, 0x71, 0x47, 0x45, 0x4a, 0xf4, 0xd5, 0x59, 0x54, + 0x81, 0xff, 0xac, 0x42, 0xde, 0xa1, 0x06, 0x03, 0x2b, 0x3b, 0x9f, 0x37, 0x5b, 0xed, + 0xcd, 0xa6, 0xf4, 0xd6, + ], + Elements::LeftShiftWith64 => [ + 0xc3, 0x8b, 0x02, 0xab, 0xcf, 0xf5, 0x14, 0xd9, 0x61, 0x91, 0xa7, 0xfe, 0xfb, 0xa1, + 0xac, 0x16, 0xe9, 0xc1, 0x50, 0xa1, 0x8c, 0xe1, 0xc5, 0xbc, 0xf0, 0x9d, 0x67, 0x55, + 0xe0, 0x36, 0x99, 0x05, + ], + Elements::LeftShiftWith8 => [ + 0x21, 0x7a, 0xd6, 0xdc, 0x12, 0x92, 0xaa, 0x42, 0xdb, 0xd8, 0x4d, 0xbd, 0x97, 0x1c, + 0x11, 0x8f, 0x02, 0xa9, 0x74, 0x0a, 0x7c, 0xb5, 0x66, 0x1e, 0x90, 0xd4, 0x2d, 0xd5, + 0xca, 0x8c, 0xa4, 0xd9, + ], + Elements::Leftmost16_1 => [ + 0x3e, 0xa8, 0x9e, 0x43, 0x20, 0x77, 0x94, 0x0d, 0x0b, 0xbf, 0x9e, 0xd2, 0xcf, 0x16, + 0xba, 0x63, 0x11, 0x10, 0xe7, 0xab, 0x9f, 0x19, 0xee, 0xf3, 0xea, 0x92, 0x5a, 0x69, + 0x9f, 0x60, 0xc6, 0x0c, + ], + Elements::Leftmost16_2 => [ + 0x5c, 0xe2, 0xbd, 0x7a, 0xc3, 0x5a, 0x7c, 0x33, 0x73, 0xc3, 0xdd, 0x60, 0x7f, 0x48, + 0xe5, 0xd4, 0xc7, 0xaa, 0xa6, 0xc6, 0x9f, 0xc4, 0x93, 0x0e, 0xca, 0x14, 0x04, 0x9f, + 0x5d, 0x39, 0xff, 0xab, + ], + Elements::Leftmost16_4 => [ + 0x10, 0x12, 0xa1, 0x39, 0x3e, 0xd0, 0xf9, 0x1d, 0x75, 0xad, 0x59, 0x12, 0x28, 0x53, + 0x89, 0x3a, 0x7f, 0x25, 0xcd, 0x35, 0xc8, 0x03, 0x6c, 0x7f, 0xa1, 0x95, 0x68, 0x2c, + 0xa1, 0x45, 0x8c, 0x4a, + ], + Elements::Leftmost16_8 => [ + 0xcc, 0xd3, 0x1e, 0x9e, 0xb1, 0xa1, 0xbb, 0xde, 0x55, 0x5c, 0x0f, 0x73, 0x1a, 0xf2, + 0xd3, 0xd4, 0xff, 0x53, 0x88, 0xfa, 0x14, 0x61, 0x82, 0x6a, 0xa9, 0xc8, 0x93, 0x42, + 0x42, 0xac, 0x75, 0x3f, + ], + Elements::Leftmost32_1 => [ + 0xb7, 0x14, 0xad, 0x74, 0xae, 0x04, 0x5a, 0xf7, 0x56, 0x80, 0x77, 0x8a, 0x03, 0x27, + 0x61, 0xa4, 0xc7, 0x26, 0xd7, 0xb6, 0xd9, 0x77, 0xbc, 0x93, 0xa4, 0x12, 0x56, 0x54, + 0x3c, 0xae, 0x8d, 0x3d, + ], + Elements::Leftmost32_16 => [ + 0x1b, 0x20, 0x63, 0x4f, 0xb4, 0x3e, 0xb8, 0x3a, 0x96, 0x8c, 0x3c, 0x81, 0xc0, 0x08, + 0x7c, 0x63, 0xd5, 0xd4, 0xf8, 0xca, 0xcd, 0xbd, 0x3e, 0x0e, 0x9f, 0x9a, 0x3d, 0x75, + 0x91, 0xc3, 0xef, 0x62, + ], + Elements::Leftmost32_2 => [ + 0x75, 0x2d, 0xda, 0x08, 0xe4, 0x0f, 0xae, 0xa0, 0xf6, 0xc4, 0xee, 0x3d, 0x34, 0x4b, + 0x7c, 0x4e, 0xa1, 0x1b, 0x97, 0x1d, 0xce, 0xc5, 0x55, 0x92, 0xb8, 0x22, 0xee, 0x56, + 0x27, 0x1c, 0xa5, 0xdf, + ], + Elements::Leftmost32_4 => [ + 0x44, 0xe9, 0xf7, 0x79, 0xa0, 0x29, 0xec, 0xfc, 0x97, 0x62, 0xb8, 0xb6, 0xcb, 0xaf, + 0x09, 0x22, 0xd9, 0x35, 0xfe, 0xa5, 0x15, 0x0a, 0x54, 0x6a, 0x5f, 0xc1, 0xfd, 0xb8, + 0xb9, 0x53, 0x41, 0x34, + ], + Elements::Leftmost32_8 => [ + 0x54, 0x80, 0x1e, 0xb5, 0xe7, 0x78, 0xcf, 0x6c, 0xda, 0x95, 0xcc, 0xf5, 0x70, 0x28, + 0x6d, 0x81, 0x6d, 0x3a, 0x1f, 0xf1, 0xdd, 0x39, 0xdb, 0x5a, 0xb6, 0x13, 0x6f, 0x0e, + 0xc3, 0xb7, 0x2d, 0xc6, + ], + Elements::Leftmost64_1 => [ + 0xb3, 0x16, 0xaf, 0x24, 0xc8, 0x6b, 0x39, 0x61, 0x3d, 0x4f, 0xd1, 0xb3, 0x92, 0x6a, + 0x84, 0x13, 0x0e, 0xb7, 0xab, 0x12, 0xfd, 0xef, 0x62, 0x33, 0x17, 0xab, 0x48, 0xf7, + 0x7c, 0xb6, 0x21, 0x45, + ], + Elements::Leftmost64_16 => [ + 0x8c, 0xf8, 0x54, 0x81, 0xe0, 0xf0, 0x08, 0x38, 0xb5, 0x23, 0x9b, 0xbf, 0xad, 0x13, + 0x82, 0xf0, 0x7b, 0xd0, 0x3c, 0x12, 0x1d, 0x5d, 0x8a, 0xaf, 0xa6, 0xd9, 0x83, 0x41, + 0x6d, 0xe4, 0x5c, 0x32, + ], + Elements::Leftmost64_2 => [ + 0xda, 0x40, 0xc8, 0x9b, 0x15, 0xc9, 0xe8, 0x6b, 0x02, 0x8c, 0xe9, 0xec, 0x07, 0xb7, + 0xf6, 0x99, 0x5a, 0x5d, 0xdd, 0xa4, 0x85, 0x0a, 0x91, 0xaf, 0x8c, 0x60, 0xe0, 0x2b, + 0xf9, 0x91, 0xfb, 0x0c, + ], + Elements::Leftmost64_32 => [ + 0x95, 0xf4, 0x6d, 0xb9, 0xd9, 0x06, 0xf0, 0x50, 0x53, 0x45, 0x5e, 0x95, 0x34, 0xeb, + 0x9b, 0x08, 0xb0, 0x9e, 0x38, 0xbc, 0x0f, 0xc6, 0x98, 0xa1, 0x6f, 0x4b, 0x2a, 0x62, + 0x71, 0x07, 0x59, 0xd1, + ], + Elements::Leftmost64_4 => [ + 0xf5, 0x01, 0xf9, 0x05, 0xfb, 0x8b, 0xab, 0xa1, 0xa7, 0xe8, 0xa6, 0xbf, 0x68, 0xd3, + 0xae, 0x6a, 0x0a, 0xdd, 0x91, 0x95, 0x1b, 0x56, 0x62, 0x9d, 0x59, 0xf4, 0x28, 0x73, + 0x9e, 0x7e, 0x41, 0xa2, + ], + Elements::Leftmost64_8 => [ + 0xb3, 0x7f, 0x0b, 0xa2, 0xfc, 0xbd, 0x4a, 0xe3, 0x31, 0x6a, 0x4f, 0xe4, 0xf5, 0x8a, + 0xa1, 0xa5, 0x41, 0x74, 0x0c, 0xde, 0x60, 0xed, 0x87, 0xf3, 0x38, 0x62, 0xa2, 0xff, + 0xec, 0xad, 0x44, 0x2f, + ], + Elements::Leftmost8_1 => [ + 0x5f, 0xdc, 0xfa, 0x9b, 0x9a, 0x4b, 0x65, 0xc7, 0x20, 0x74, 0x71, 0xe5, 0x33, 0x92, + 0x8d, 0x6a, 0x24, 0xf4, 0xb6, 0xff, 0x9b, 0x34, 0x5e, 0xf7, 0x61, 0xb1, 0x48, 0x0a, + 0x8a, 0x05, 0xe3, 0xd7, + ], + Elements::Leftmost8_2 => [ + 0x62, 0x42, 0x21, 0xe9, 0xf8, 0xa9, 0x16, 0x91, 0x26, 0xc7, 0x33, 0x47, 0x96, 0x48, + 0xc7, 0x3b, 0x68, 0xc6, 0xb8, 0xeb, 0xbb, 0x60, 0xc7, 0x2a, 0xf1, 0xe6, 0xfc, 0x65, + 0xe7, 0xd3, 0x07, 0x23, + ], + Elements::Leftmost8_4 => [ + 0x1a, 0x48, 0x43, 0xc4, 0x08, 0xe1, 0xd4, 0x6c, 0x9c, 0x93, 0x89, 0x46, 0x34, 0x49, + 0x5f, 0x8a, 0xd6, 0xa6, 0x80, 0xe3, 0x2d, 0xd6, 0xf2, 0x5b, 0xa1, 0x9d, 0xbc, 0x60, + 0xa6, 0x0d, 0x18, 0x97, + ], Elements::LinearCombination1 => [ 0xd8, 0x83, 0x20, 0xf4, 0x71, 0xf3, 0xbe, 0xee, 0xa1, 0x31, 0x3d, 0x55, 0x1e, 0x41, 0x9b, 0xe0, 0x57, 0x27, 0xae, 0x5f, 0x4d, 0xe6, 0xa2, 0xf2, 0xf2, 0x6f, 0x3c, 0xb5, @@ -1178,6 +1846,11 @@ impl Jet for Elements { 0xb7, 0xee, 0x71, 0x77, 0xcb, 0x73, 0x8f, 0x42, 0xe8, 0xc0, 0x03, 0xfc, 0x46, 0x58, 0xcc, 0x0e, 0x5b, 0x8b, ], + Elements::Low1 => [ + 0xdb, 0x4a, 0x42, 0x4a, 0x20, 0xae, 0xef, 0xa4, 0xe7, 0x42, 0xd5, 0x1d, 0x84, 0x92, + 0x92, 0x18, 0xcb, 0xf7, 0x34, 0x72, 0x61, 0x76, 0xdc, 0x4f, 0xf9, 0xf8, 0xbf, 0x13, + 0xde, 0x10, 0xca, 0x2b, + ], Elements::Low16 => [ 0xa1, 0x14, 0xe9, 0x58, 0x0d, 0xe0, 0x7d, 0x8b, 0x07, 0x7e, 0xb8, 0x89, 0x98, 0x75, 0x5a, 0x0a, 0x62, 0xbf, 0xe0, 0x85, 0xfb, 0x23, 0x40, 0x4c, 0xd1, 0xe8, 0x78, 0x68, @@ -1218,6 +1891,11 @@ impl Jet for Elements { 0x6e, 0x15, 0x57, 0x03, 0x16, 0xbb, 0xa8, 0x9f, 0xfa, 0x9a, 0xe5, 0x56, 0xa9, 0x15, 0xf3, 0x7b, 0x64, 0x0b, ], + Elements::Maj1 => [ + 0xae, 0x8b, 0x91, 0x2e, 0x3a, 0xd4, 0x7f, 0x68, 0x8b, 0xbb, 0x46, 0xc8, 0xcb, 0x6d, + 0x53, 0x33, 0x69, 0xf5, 0x10, 0x9a, 0x27, 0x30, 0x47, 0x1e, 0xab, 0x6e, 0xfe, 0x98, + 0xe9, 0xea, 0x5e, 0x78, + ], Elements::Maj16 => [ 0xf5, 0xa4, 0x1d, 0xa0, 0x37, 0x7f, 0xe6, 0x88, 0xac, 0x2f, 0xcd, 0xf3, 0x5b, 0x6b, 0x7a, 0x47, 0x2e, 0x78, 0xea, 0x69, 0xfd, 0x2b, 0x17, 0xf7, 0x56, 0x34, 0x2b, 0xaa, @@ -1398,6 +2076,11 @@ impl Jet for Elements { 0x74, 0x0a, 0x40, 0xfe, 0xce, 0x71, 0x91, 0x30, 0x1d, 0x00, 0xe5, 0x17, 0xd8, 0xd3, 0x4f, 0x46, 0xc2, 0x50, ], + Elements::Or1 => [ + 0x93, 0x52, 0x22, 0x30, 0x17, 0x00, 0x98, 0x7d, 0xe1, 0x2c, 0xb4, 0x26, 0x17, 0x21, + 0x81, 0x53, 0xfd, 0x7c, 0xcd, 0x63, 0x17, 0x4a, 0x17, 0x49, 0xfc, 0x88, 0x0c, 0x39, + 0xe3, 0xe7, 0x23, 0x9c, + ], Elements::Or16 => [ 0xdf, 0xea, 0xd0, 0xba, 0x93, 0xe4, 0x91, 0x55, 0xc4, 0x0c, 0xb3, 0x72, 0xca, 0x5e, 0xf6, 0x17, 0x97, 0x41, 0xc6, 0x1f, 0x2b, 0x3c, 0xc2, 0x79, 0x7e, 0xf1, 0x62, 0xc8, @@ -1518,6 +2201,286 @@ impl Jet for Elements { 0x4a, 0x69, 0xa2, 0xa5, 0xe8, 0xa5, 0x22, 0xb5, 0xd5, 0xeb, 0xf2, 0x51, 0x5f, 0x51, 0x1a, 0xc6, 0xa9, 0xb2, ], + Elements::RightExtend16_32 => [ + 0x36, 0x42, 0x3c, 0x16, 0xd4, 0x8d, 0x6c, 0x7c, 0x91, 0xed, 0x44, 0x16, 0x11, 0xbe, + 0x30, 0x72, 0xdf, 0xa5, 0xdd, 0x38, 0xe4, 0xd2, 0x7d, 0xa8, 0xda, 0xed, 0x29, 0x78, + 0x8f, 0xc9, 0x52, 0x08, + ], + Elements::RightExtend16_64 => [ + 0x4b, 0x8a, 0x47, 0xb9, 0x06, 0x70, 0x73, 0xa1, 0xfb, 0x68, 0x30, 0x0f, 0xac, 0xd6, + 0xc5, 0x06, 0x98, 0x90, 0xab, 0xdb, 0x7e, 0xaa, 0xcb, 0x62, 0x2a, 0xd7, 0x30, 0x9a, + 0x87, 0xf4, 0xd3, 0x4d, + ], + Elements::RightExtend32_64 => [ + 0xdd, 0x6a, 0xf1, 0xc8, 0x01, 0xd2, 0x6c, 0x0b, 0x2e, 0xdf, 0x83, 0xce, 0x67, 0xb1, + 0x72, 0xdf, 0x67, 0x57, 0xd0, 0x7f, 0xb7, 0xc8, 0x54, 0x68, 0x6f, 0x42, 0xe5, 0x76, + 0x8a, 0xdc, 0xc9, 0xe7, + ], + Elements::RightExtend8_16 => [ + 0x1d, 0xe2, 0x01, 0xa8, 0x64, 0x70, 0xa0, 0x2b, 0x2d, 0xfe, 0x48, 0xc6, 0x6a, 0xfe, + 0x06, 0x73, 0x5b, 0x47, 0x5e, 0x88, 0xd3, 0x25, 0xcb, 0xf1, 0x60, 0x42, 0xa9, 0x10, + 0x24, 0xd2, 0xbe, 0xd9, + ], + Elements::RightExtend8_32 => [ + 0x7e, 0x9c, 0x5c, 0xb3, 0x54, 0x19, 0xab, 0x06, 0xe1, 0x22, 0x00, 0x23, 0x10, 0x2b, + 0xe4, 0x6a, 0xb6, 0xd9, 0x69, 0x95, 0xc4, 0x23, 0xc6, 0xb1, 0x4b, 0x9a, 0x66, 0x02, + 0x8a, 0xec, 0x5d, 0x75, + ], + Elements::RightExtend8_64 => [ + 0x49, 0xd2, 0x46, 0xc2, 0xa6, 0x1c, 0xd3, 0x9d, 0x78, 0x20, 0xdc, 0xd7, 0x5e, 0xee, + 0x84, 0x7b, 0xf0, 0x57, 0xc0, 0x1a, 0x63, 0xa3, 0xac, 0xbc, 0xc9, 0x46, 0x3e, 0x44, + 0xbc, 0x1e, 0x0b, 0x6c, + ], + Elements::RightPadHigh16_32 => [ + 0xfe, 0x90, 0x1f, 0xb4, 0xf6, 0xeb, 0xdc, 0x4e, 0xa2, 0x96, 0x19, 0x98, 0x99, 0x22, + 0xb8, 0x0f, 0xa9, 0xce, 0x24, 0x12, 0x87, 0xfa, 0x54, 0x08, 0x64, 0x36, 0x2c, 0xcc, + 0xe9, 0xf5, 0x4b, 0x3b, + ], + Elements::RightPadHigh16_64 => [ + 0xda, 0x90, 0xad, 0xd3, 0x10, 0x67, 0xcc, 0xfd, 0xbe, 0xe4, 0xcb, 0xfb, 0x21, 0xde, + 0x8e, 0x6a, 0xa4, 0xf9, 0x3e, 0x00, 0x22, 0x00, 0x71, 0x1f, 0x99, 0x84, 0xaf, 0x6f, + 0xc0, 0x1e, 0x27, 0x00, + ], + Elements::RightPadHigh1_16 => [ + 0xe4, 0xcf, 0x11, 0x6c, 0x08, 0x80, 0xf7, 0x3f, 0x99, 0x52, 0xf7, 0x00, 0x81, 0x78, + 0x84, 0x98, 0xe5, 0x08, 0x4c, 0xbb, 0x72, 0xcf, 0x84, 0x1b, 0xcd, 0x91, 0x67, 0xa6, + 0xee, 0xa2, 0x64, 0xdc, + ], + Elements::RightPadHigh1_32 => [ + 0x12, 0x76, 0x03, 0x6b, 0xb9, 0x4c, 0xfd, 0x92, 0x0a, 0xb7, 0x31, 0x64, 0x3b, 0x76, + 0xb1, 0x19, 0x72, 0xdd, 0x26, 0x54, 0x38, 0x53, 0x44, 0x4e, 0x18, 0xd7, 0xf6, 0x3f, + 0xca, 0xc0, 0x91, 0xa3, + ], + Elements::RightPadHigh1_64 => [ + 0x38, 0xc9, 0x99, 0x80, 0xb1, 0xa9, 0x98, 0x10, 0x51, 0x11, 0xc5, 0x6b, 0xf8, 0x24, + 0x65, 0x09, 0x65, 0xa5, 0x09, 0xc4, 0x7e, 0x1c, 0x76, 0xd9, 0x00, 0x75, 0x0a, 0x1f, + 0xee, 0x45, 0xc9, 0x64, + ], + Elements::RightPadHigh1_8 => [ + 0xca, 0x72, 0xce, 0xed, 0x2d, 0x98, 0xdc, 0xcd, 0x81, 0xaa, 0x21, 0xf0, 0xba, 0x21, + 0xd1, 0xa0, 0x87, 0xb6, 0xf2, 0x52, 0x07, 0xc2, 0x4a, 0x58, 0x0a, 0xda, 0x7e, 0x60, + 0x5f, 0x79, 0x82, 0xdf, + ], + Elements::RightPadHigh32_64 => [ + 0x17, 0xeb, 0x59, 0x11, 0xf8, 0x54, 0x95, 0x76, 0x68, 0xee, 0xf4, 0x63, 0xb0, 0xcb, + 0xae, 0x72, 0x08, 0x52, 0x91, 0x34, 0xef, 0x5e, 0x56, 0xcd, 0x33, 0xfb, 0xbc, 0x29, + 0xc2, 0x8b, 0xbe, 0x92, + ], + Elements::RightPadHigh8_16 => [ + 0xd2, 0x6f, 0x0c, 0xc5, 0xb2, 0x61, 0xeb, 0x83, 0x0e, 0x02, 0xdf, 0x12, 0xcc, 0x57, + 0x44, 0x25, 0x9b, 0x4a, 0x43, 0xd9, 0x75, 0xbd, 0x2e, 0x3d, 0x7c, 0x78, 0x28, 0x11, + 0x76, 0x1f, 0xf1, 0xd1, + ], + Elements::RightPadHigh8_32 => [ + 0xbd, 0x2e, 0x5c, 0x92, 0x60, 0xbf, 0x6f, 0x32, 0x4d, 0x2b, 0x1f, 0x40, 0xcb, 0xb1, + 0x22, 0x40, 0x2f, 0x30, 0xd5, 0x2f, 0x64, 0x34, 0xe3, 0x9f, 0x8a, 0x09, 0xb8, 0x39, + 0x7b, 0xc3, 0x2e, 0x94, + ], + Elements::RightPadHigh8_64 => [ + 0x94, 0x1b, 0xf4, 0x42, 0xdb, 0xcf, 0x4f, 0x20, 0x04, 0xa4, 0xb1, 0x8b, 0xee, 0xb2, + 0xad, 0xac, 0x9f, 0x20, 0x9f, 0xea, 0x4c, 0x4b, 0xd4, 0x8c, 0xed, 0xe8, 0xda, 0xfa, + 0xcf, 0x88, 0x43, 0xb7, + ], + Elements::RightPadLow16_32 => [ + 0xbb, 0x38, 0x7c, 0x29, 0x2d, 0x59, 0xd7, 0x13, 0xad, 0x76, 0xf6, 0xce, 0xd5, 0xb5, + 0x96, 0xcf, 0xd8, 0x38, 0x58, 0x92, 0x4f, 0x72, 0x5f, 0x7d, 0x11, 0x6b, 0x28, 0x07, + 0x58, 0x21, 0x92, 0x5a, + ], + Elements::RightPadLow16_64 => [ + 0x02, 0x32, 0x32, 0x6e, 0xe1, 0xb2, 0x06, 0xad, 0x26, 0x34, 0x9b, 0x55, 0x3d, 0x7f, + 0x24, 0x62, 0x28, 0x73, 0x20, 0xd6, 0x30, 0xe4, 0x29, 0x32, 0x07, 0x40, 0xcb, 0xd3, + 0xeb, 0x4e, 0xf9, 0xbe, + ], + Elements::RightPadLow1_16 => [ + 0xd9, 0x13, 0xf6, 0x02, 0xb3, 0x59, 0x58, 0xd5, 0x2a, 0xbb, 0x20, 0xb0, 0x2c, 0xe6, + 0x89, 0x61, 0x6f, 0xfa, 0x66, 0xe0, 0x2d, 0x73, 0x86, 0x7d, 0x29, 0x18, 0x1e, 0x11, + 0x93, 0xc9, 0xd2, 0x43, + ], + Elements::RightPadLow1_32 => [ + 0x6b, 0x40, 0x33, 0xd9, 0xfc, 0x6c, 0x87, 0x6b, 0x2e, 0x75, 0xd5, 0x82, 0xbb, 0x9b, + 0x3c, 0x04, 0xfa, 0x29, 0xdf, 0xb2, 0x2c, 0x9e, 0x1a, 0x48, 0x8e, 0x83, 0x7c, 0x2f, + 0x39, 0xaa, 0x61, 0x60, + ], + Elements::RightPadLow1_64 => [ + 0x4e, 0x2b, 0x20, 0xdd, 0x9d, 0x91, 0x85, 0x7a, 0x49, 0xc8, 0x20, 0xd0, 0x6f, 0x43, + 0x5d, 0xd3, 0xca, 0x79, 0x1f, 0x17, 0x7e, 0xea, 0xf3, 0x4a, 0xec, 0x36, 0xc4, 0x54, + 0x19, 0xd1, 0x69, 0x65, + ], + Elements::RightPadLow1_8 => [ + 0x24, 0xee, 0xe4, 0x51, 0xb2, 0x6b, 0xa3, 0x9d, 0x6b, 0xcc, 0x58, 0x8b, 0x72, 0x0f, + 0xaf, 0x22, 0x32, 0x76, 0x79, 0x12, 0xf6, 0x7d, 0xb3, 0x29, 0x06, 0x0d, 0x90, 0xb7, + 0x14, 0x17, 0xb6, 0xc3, + ], + Elements::RightPadLow32_64 => [ + 0x52, 0xfb, 0x8b, 0xbc, 0xef, 0x90, 0x32, 0x31, 0xa5, 0xb7, 0x67, 0x91, 0xe4, 0x65, + 0x2b, 0x38, 0xbe, 0xd8, 0x97, 0x7f, 0x5d, 0xab, 0x17, 0x95, 0x55, 0x99, 0x8d, 0xb2, + 0x4d, 0x1d, 0x7c, 0x98, + ], + Elements::RightPadLow8_16 => [ + 0x17, 0x19, 0xb2, 0x79, 0x74, 0xe8, 0x43, 0x80, 0x50, 0x88, 0x25, 0x30, 0xa1, 0xa4, + 0x2e, 0xd7, 0xab, 0x3c, 0xa2, 0x8d, 0x25, 0x4a, 0xdc, 0x37, 0xfe, 0x56, 0x66, 0xfd, + 0x2f, 0x70, 0xb4, 0xe4, + ], + Elements::RightPadLow8_32 => [ + 0xee, 0x2a, 0x82, 0x30, 0xf2, 0x83, 0xdc, 0x08, 0x3b, 0x8e, 0x19, 0x44, 0x8b, 0xa3, + 0x24, 0x97, 0xe9, 0x31, 0x8b, 0x4e, 0x9e, 0x1b, 0xd4, 0xeb, 0xe1, 0xbe, 0xc5, 0x24, + 0x47, 0x6a, 0xb8, 0x6d, + ], + Elements::RightPadLow8_64 => [ + 0x97, 0xda, 0x90, 0xd8, 0x42, 0x8e, 0x6b, 0x94, 0xe6, 0xc1, 0x35, 0x14, 0x60, 0xdc, + 0x01, 0x12, 0x3e, 0x47, 0x9c, 0x4a, 0xaf, 0xbb, 0xd1, 0x4c, 0x78, 0xad, 0x2f, 0xad, + 0x0a, 0x89, 0x5e, 0xf3, + ], + Elements::RightRotate16 => [ + 0xee, 0x7d, 0x1c, 0x1f, 0x3d, 0x82, 0xda, 0x56, 0x81, 0xdd, 0x8b, 0x50, 0x69, 0xd5, + 0x37, 0xd8, 0x9f, 0x22, 0x93, 0xaa, 0x60, 0x53, 0x32, 0xce, 0x10, 0xc1, 0xc4, 0x22, + 0x4a, 0x53, 0xce, 0xea, + ], + Elements::RightRotate32 => [ + 0x89, 0x2a, 0x28, 0xdb, 0x32, 0x4c, 0xd9, 0x3c, 0xf7, 0xf6, 0x9c, 0x30, 0x72, 0xa7, + 0xb2, 0x22, 0xb8, 0x8c, 0x81, 0x8e, 0xe0, 0xe5, 0xa1, 0xb8, 0x97, 0xe5, 0x0c, 0x58, + 0x1f, 0x2a, 0x29, 0x62, + ], + Elements::RightRotate64 => [ + 0x64, 0x31, 0x4f, 0xf1, 0x90, 0x40, 0xa3, 0x76, 0xf9, 0xfc, 0xf0, 0x2e, 0x75, 0x74, + 0x14, 0x9c, 0x12, 0x3f, 0x99, 0xc3, 0x90, 0x71, 0xcd, 0x37, 0x85, 0x1f, 0x8f, 0x8c, + 0xdf, 0x0e, 0xed, 0x42, + ], + Elements::RightRotate8 => [ + 0x15, 0x81, 0xe0, 0xca, 0x09, 0xf1, 0x36, 0x84, 0xfe, 0x31, 0x35, 0xc1, 0xc6, 0xb6, + 0xf9, 0xc4, 0x89, 0xd7, 0xdd, 0x1e, 0xf0, 0xa5, 0xf7, 0x70, 0x83, 0xbb, 0x0e, 0xd0, + 0x0b, 0x4d, 0xf2, 0x8f, + ], + Elements::RightShift16 => [ + 0x5b, 0x4e, 0xc4, 0x62, 0xd4, 0xe2, 0xed, 0x89, 0xff, 0xe3, 0xfd, 0x40, 0x59, 0x32, + 0xc7, 0x97, 0x80, 0x28, 0x61, 0x20, 0x3e, 0xcb, 0x61, 0xd5, 0xb5, 0x9a, 0x73, 0xb0, + 0xfb, 0xfc, 0x4e, 0x84, + ], + Elements::RightShift32 => [ + 0xb2, 0x86, 0x1a, 0x48, 0xb2, 0x05, 0x41, 0x76, 0x91, 0xb6, 0x34, 0x7f, 0xe7, 0x5e, + 0xbe, 0xa5, 0x45, 0x60, 0xcf, 0x81, 0x38, 0x14, 0xac, 0x31, 0x63, 0x91, 0x70, 0xdb, + 0x92, 0xb9, 0x47, 0xd6, + ], + Elements::RightShift64 => [ + 0xd3, 0x39, 0x42, 0xbf, 0x18, 0x61, 0x8a, 0x10, 0x4a, 0x57, 0x07, 0x54, 0x7f, 0x78, + 0xab, 0x72, 0x94, 0x1f, 0x4e, 0xe8, 0x13, 0x21, 0x6c, 0x0c, 0xe5, 0x20, 0xf3, 0x56, + 0x60, 0xfd, 0xbf, 0x81, + ], + Elements::RightShift8 => [ + 0x73, 0x79, 0x12, 0xae, 0x32, 0x32, 0x50, 0xc0, 0x4e, 0x51, 0x6e, 0x39, 0x66, 0xce, + 0x94, 0x7e, 0x65, 0x32, 0x6f, 0x47, 0x46, 0x8a, 0xc9, 0x31, 0xc1, 0x63, 0xc3, 0xb0, + 0x2d, 0xe4, 0x12, 0x45, + ], + Elements::RightShiftWith16 => [ + 0x1e, 0x18, 0x1c, 0x33, 0x16, 0x93, 0x59, 0x4c, 0x6e, 0x0e, 0x8f, 0xde, 0xb4, 0x0a, + 0x81, 0xa3, 0xaf, 0x8f, 0x56, 0xb7, 0xa5, 0x60, 0xde, 0x64, 0x41, 0x30, 0x3f, 0x65, + 0xf4, 0xfc, 0x93, 0x7c, + ], + Elements::RightShiftWith32 => [ + 0x69, 0xdb, 0xe1, 0x90, 0xd7, 0x2d, 0x77, 0xd0, 0xd0, 0xdc, 0xf3, 0x25, 0xde, 0x96, + 0x59, 0x22, 0x14, 0x58, 0x1f, 0x11, 0xe9, 0xed, 0xca, 0x93, 0xe2, 0xf9, 0x28, 0x48, + 0x2b, 0x5e, 0x77, 0xa7, + ], + Elements::RightShiftWith64 => [ + 0x2d, 0x0a, 0xb8, 0x83, 0x04, 0x69, 0x28, 0x0e, 0x2a, 0x28, 0x99, 0x3c, 0x5a, 0x05, + 0xf5, 0x6b, 0x91, 0xa8, 0xae, 0xb0, 0x34, 0xcc, 0xeb, 0xe0, 0x9c, 0x50, 0xf1, 0x3e, + 0xa7, 0x8d, 0xda, 0xfc, + ], + Elements::RightShiftWith8 => [ + 0x1b, 0xdb, 0xdc, 0x8d, 0x8b, 0x74, 0x9b, 0xa3, 0xda, 0x75, 0x75, 0x58, 0x7d, 0x99, + 0x93, 0x00, 0x72, 0x60, 0x3f, 0x27, 0x5f, 0x7b, 0xd2, 0xf3, 0x24, 0xa3, 0x49, 0x51, + 0xd4, 0x46, 0x1b, 0x21, + ], + Elements::Rightmost16_1 => [ + 0xe1, 0x29, 0xa8, 0xae, 0x88, 0x0f, 0x51, 0xca, 0x2a, 0x94, 0xdb, 0x44, 0xed, 0xec, + 0xa1, 0xc3, 0xa7, 0x66, 0xb7, 0x3e, 0x98, 0x97, 0x0b, 0x11, 0x98, 0xad, 0xe2, 0x16, + 0xae, 0x69, 0xcd, 0x2d, + ], + Elements::Rightmost16_2 => [ + 0x8d, 0x0f, 0x68, 0xda, 0xdf, 0x54, 0x6c, 0x5e, 0xd3, 0x6f, 0x34, 0x70, 0x58, 0x02, + 0xb0, 0xce, 0x83, 0x9a, 0x63, 0xe5, 0x74, 0x49, 0x77, 0x85, 0x24, 0x30, 0x08, 0xab, + 0x42, 0x7e, 0x45, 0x6b, + ], + Elements::Rightmost16_4 => [ + 0xb0, 0xd4, 0x13, 0x95, 0x41, 0xec, 0xab, 0x2c, 0x16, 0xfc, 0x1a, 0x87, 0x98, 0x9b, + 0xdd, 0x04, 0x53, 0x22, 0xef, 0xb1, 0xe7, 0x0b, 0xc1, 0xf7, 0xb0, 0x4d, 0x43, 0xb2, + 0x8b, 0xb3, 0x49, 0xff, + ], + Elements::Rightmost16_8 => [ + 0x0f, 0x03, 0xfa, 0x0f, 0xa6, 0xce, 0xb5, 0x5d, 0xf9, 0x9b, 0x20, 0xd9, 0xef, 0xcf, + 0x37, 0x10, 0xa7, 0x08, 0xa2, 0x84, 0xa9, 0x5c, 0x33, 0x4c, 0x1d, 0xa3, 0xcb, 0xfe, + 0x02, 0xfb, 0x94, 0x67, + ], + Elements::Rightmost32_1 => [ + 0x8f, 0x5e, 0x52, 0x63, 0xbb, 0x8e, 0xf8, 0x00, 0xc9, 0x9d, 0x0c, 0x23, 0xfc, 0xba, + 0xa3, 0x19, 0x8a, 0x6a, 0xbd, 0xf0, 0x08, 0x58, 0x1e, 0x8c, 0x89, 0x10, 0x52, 0xb4, + 0x0c, 0xa7, 0xf7, 0xa4, + ], + Elements::Rightmost32_16 => [ + 0xb9, 0xa2, 0x3e, 0x1b, 0xf7, 0xc6, 0x81, 0x43, 0x51, 0x30, 0x74, 0xc9, 0x39, 0xbd, + 0x73, 0xc9, 0xbf, 0x8e, 0xb5, 0xaa, 0xce, 0x84, 0x15, 0xff, 0x01, 0x02, 0x2f, 0xca, + 0x65, 0xb3, 0xa3, 0x42, + ], + Elements::Rightmost32_2 => [ + 0xab, 0xf3, 0x23, 0x8d, 0x3c, 0xbf, 0x0b, 0xf3, 0x5a, 0x83, 0x96, 0x1f, 0xb9, 0xf9, + 0x04, 0xb5, 0x6d, 0x3a, 0x9e, 0x0e, 0x35, 0xc8, 0x9d, 0xf8, 0x72, 0xc9, 0xc9, 0x38, + 0xd3, 0x44, 0xa5, 0x4a, + ], + Elements::Rightmost32_4 => [ + 0xf7, 0xee, 0xd2, 0xec, 0x80, 0x59, 0x06, 0xfe, 0xb3, 0xac, 0x27, 0xf2, 0xde, 0xe5, + 0x3b, 0x58, 0xc3, 0xb1, 0x3e, 0x40, 0xe2, 0xbc, 0x3e, 0x8b, 0x10, 0x63, 0x2e, 0xd9, + 0xc0, 0xe7, 0xca, 0x5f, + ], + Elements::Rightmost32_8 => [ + 0xf3, 0xe4, 0x39, 0xed, 0x98, 0x83, 0xc6, 0xa6, 0xb9, 0x07, 0x20, 0x53, 0x2e, 0xb4, + 0xe0, 0x43, 0xe8, 0x9a, 0x35, 0xf0, 0xb5, 0x29, 0x5f, 0xd5, 0x02, 0xa0, 0xb0, 0xb2, + 0x43, 0x6b, 0xd2, 0x13, + ], + Elements::Rightmost64_1 => [ + 0xc9, 0x6b, 0xe3, 0xe3, 0x35, 0x48, 0x25, 0x8e, 0x30, 0x71, 0x7b, 0x30, 0x81, 0x7e, + 0x44, 0x0f, 0x0a, 0xf4, 0xb1, 0x89, 0x0e, 0xdf, 0xcf, 0x7f, 0xdc, 0xb3, 0x9c, 0xb9, + 0xef, 0xff, 0x47, 0x1d, + ], + Elements::Rightmost64_16 => [ + 0x5d, 0x55, 0x5f, 0x83, 0xe4, 0x80, 0x87, 0xdb, 0x0c, 0x41, 0x5d, 0xad, 0x17, 0xf0, + 0x81, 0xd4, 0xf6, 0xb7, 0x60, 0xe9, 0x95, 0xf2, 0x72, 0xbb, 0xb6, 0xe4, 0xcb, 0x42, + 0xd0, 0xf5, 0x03, 0x25, + ], + Elements::Rightmost64_2 => [ + 0xa9, 0xcb, 0x13, 0x43, 0xdb, 0xd5, 0x22, 0xb9, 0x1b, 0x64, 0x82, 0xe4, 0xba, 0xe6, + 0x2b, 0x0e, 0x5f, 0x82, 0x98, 0x68, 0x7e, 0x64, 0x23, 0x33, 0x5c, 0x6d, 0xf5, 0x06, + 0xdc, 0x42, 0x5b, 0x90, + ], + Elements::Rightmost64_32 => [ + 0x47, 0x33, 0xb1, 0x92, 0x59, 0x80, 0x09, 0x64, 0x99, 0xb7, 0x87, 0x7c, 0x04, 0xe0, + 0x01, 0xba, 0xd3, 0x32, 0x5b, 0x2e, 0xca, 0xb3, 0x48, 0xe5, 0xad, 0xd7, 0x20, 0xd0, + 0x7b, 0x1b, 0x4a, 0x3a, + ], + Elements::Rightmost64_4 => [ + 0x89, 0xda, 0xf7, 0xbe, 0x2c, 0xde, 0x58, 0xf0, 0x4e, 0x8d, 0xee, 0x58, 0xa4, 0x39, + 0x10, 0x91, 0x2c, 0x09, 0x6e, 0x95, 0xe1, 0x46, 0xc1, 0x9b, 0x00, 0xf5, 0x4f, 0xe8, + 0x74, 0x70, 0x07, 0x40, + ], + Elements::Rightmost64_8 => [ + 0x1d, 0xfb, 0x2b, 0xef, 0x4c, 0xae, 0x45, 0x07, 0x92, 0x27, 0x08, 0xe5, 0xa5, 0x70, + 0x99, 0x49, 0x3f, 0xbe, 0x21, 0x15, 0x98, 0xee, 0xc0, 0xbf, 0xe0, 0xe7, 0x7b, 0x3d, + 0x41, 0xec, 0x89, 0xab, + ], + Elements::Rightmost8_1 => [ + 0xce, 0xab, 0xd5, 0xca, 0x9f, 0xd9, 0x16, 0x2f, 0x99, 0x5e, 0x37, 0x35, 0x77, 0x04, + 0x7a, 0xa4, 0xba, 0x71, 0xf8, 0x07, 0xc7, 0x11, 0xf6, 0x0b, 0x08, 0xeb, 0x6a, 0x1c, + 0xfc, 0x38, 0x1c, 0x9c, + ], + Elements::Rightmost8_2 => [ + 0x39, 0xb2, 0xf0, 0x37, 0xb6, 0xa0, 0x81, 0x86, 0x11, 0x50, 0x65, 0xf3, 0x85, 0x05, + 0x7a, 0xf3, 0xde, 0x3b, 0x9f, 0x0a, 0x9b, 0xda, 0x68, 0x33, 0x71, 0x46, 0x22, 0x59, + 0x41, 0x30, 0x28, 0xec, + ], + Elements::Rightmost8_4 => [ + 0xa7, 0xa9, 0x49, 0x49, 0x0d, 0x1a, 0x00, 0xde, 0xfe, 0x5f, 0x61, 0x51, 0x29, 0x23, + 0x85, 0x0f, 0x51, 0xe3, 0x47, 0xc0, 0x6a, 0x8d, 0x76, 0xa0, 0xcd, 0xab, 0x87, 0xee, + 0xe2, 0x9a, 0x5d, 0xef, + ], Elements::ScalarAdd => [ 0x4e, 0xe9, 0xa9, 0x6c, 0xef, 0x49, 0x6c, 0xf4, 0xa8, 0xfc, 0x4e, 0x8a, 0x8b, 0xc0, 0xd1, 0x59, 0xca, 0x5f, 0xfb, 0x87, 0x53, 0x64, 0x3a, 0x8a, 0xdf, 0x63, 0x8a, 0xe8, @@ -1648,6 +2611,11 @@ impl Jet for Elements { 0x60, 0xa5, 0x78, 0x8c, 0xfe, 0x12, 0x72, 0x86, 0x4e, 0xb7, 0xa6, 0x9d, 0xa7, 0xe9, 0xa9, 0xf1, 0xcd, 0xe7, ], + Elements::Some1 => [ + 0x0b, 0x9c, 0xb7, 0xb4, 0x7d, 0xeb, 0x4f, 0x9d, 0x95, 0xd5, 0xc0, 0x20, 0x00, 0x1f, + 0xd0, 0x09, 0xa2, 0xf1, 0x0c, 0xe5, 0xd9, 0x18, 0xd8, 0x18, 0x1e, 0x25, 0x93, 0x15, + 0xfe, 0x8e, 0xac, 0x53, + ], Elements::Some16 => [ 0x30, 0xd8, 0x14, 0xff, 0xb4, 0x92, 0x78, 0xb4, 0x25, 0x00, 0x7b, 0x9d, 0xe2, 0x79, 0xf7, 0x6f, 0x4a, 0x6d, 0xa4, 0xc0, 0x34, 0x63, 0x4a, 0xbb, 0x87, 0x11, 0x0e, 0xcb, @@ -1753,6 +2721,11 @@ impl Jet for Elements { 0x17, 0xd8, 0xe4, 0xff, 0x25, 0x66, 0xfa, 0x9c, 0x03, 0xe7, 0x43, 0x1a, 0x09, 0x02, 0xd5, 0x6a, 0x24, 0xdc, ], + Elements::Xor1 => [ + 0x77, 0xb7, 0x14, 0xe6, 0x89, 0xc9, 0xd6, 0xa4, 0x8f, 0xd1, 0xad, 0xd8, 0x65, 0x22, + 0x82, 0x3d, 0xeb, 0xc7, 0x0d, 0xf6, 0xa7, 0xfe, 0x4b, 0xf2, 0xb8, 0x5d, 0xe5, 0x49, + 0xe0, 0xcd, 0x0a, 0x05, + ], Elements::Xor16 => [ 0xca, 0x36, 0x35, 0x51, 0x35, 0xa8, 0x6a, 0x11, 0x68, 0x6c, 0x01, 0xaa, 0x35, 0xf2, 0x5b, 0x97, 0xfa, 0xee, 0xda, 0xbf, 0xde, 0xc8, 0xdf, 0x08, 0xd2, 0xc0, 0xf6, 0x65, @@ -1773,6 +2746,11 @@ impl Jet for Elements { 0xf9, 0x7d, 0x23, 0xc1, 0x2f, 0x6e, 0x2b, 0xb8, 0xbb, 0xe8, 0x30, 0x4a, 0xc7, 0x0f, 0x61, 0xc1, 0xcf, 0x2c, ], + Elements::XorXor1 => [ + 0x22, 0x52, 0xa9, 0x86, 0x08, 0xd2, 0x0b, 0xd4, 0x11, 0x31, 0x7a, 0x20, 0x15, 0xc1, + 0x56, 0x98, 0x70, 0xa6, 0x2c, 0x95, 0x3a, 0x61, 0x65, 0xfb, 0xe9, 0x77, 0xb4, 0x0d, + 0x6c, 0xce, 0xa4, 0x95, + ], Elements::XorXor16 => [ 0xa1, 0xf2, 0xd6, 0x33, 0xbf, 0x98, 0x89, 0xa0, 0x8a, 0x42, 0x51, 0x2a, 0x78, 0x93, 0xa6, 0x79, 0x9d, 0xc4, 0x7a, 0xa8, 0x29, 0xff, 0x8f, 0x57, 0x7c, 0x5b, 0xc9, 0x75, @@ -1808,6 +2786,7 @@ impl Jet for Elements { Elements::All32 => b"i", Elements::All64 => b"l", Elements::All8 => b"***22*22**22*22", + Elements::And1 => b"*22", Elements::And16 => b"i", Elements::And32 => b"l", Elements::And64 => b"*ll", @@ -1821,6 +2800,7 @@ impl Jet for Elements { Elements::CalculateConfidentialToken => b"h", Elements::CalculateExplicitToken => b"h", Elements::CalculateIssuanceEntropy => b"**hih", + Elements::Ch1 => b"*2*22", Elements::Ch16 => b"*****22*22**22*22***22*22**22*22i", Elements::Ch32 => b"*il", Elements::Ch64 => b"*l*ll", @@ -1830,6 +2810,7 @@ impl Jet for Elements { Elements::CheckLockHeight => b"i", Elements::CheckLockTime => b"i", Elements::CheckSigVerify => b"**h*hh*hh", + Elements::Complement1 => b"2", Elements::Complement16 => b"****22*22**22*22***22*22**22*22", Elements::Complement32 => b"i", Elements::Complement64 => b"l", @@ -1867,6 +2848,7 @@ impl Jet for Elements { Elements::Divides32 => b"l", Elements::Divides64 => b"*ll", Elements::Divides8 => b"****22*22**22*22***22*22**22*22", + Elements::Eq1 => b"*22", Elements::Eq16 => b"i", Elements::Eq256 => b"*hh", Elements::Eq32 => b"l", @@ -1894,10 +2876,46 @@ impl Jet for Elements { Elements::FullIncrement32 => b"*2i", Elements::FullIncrement64 => b"*2l", Elements::FullIncrement8 => b"*2***22*22**22*22", + Elements::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222", + Elements::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22", + Elements::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22", + Elements::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22", + Elements::FullLeftShift32_1 => b"*i2", + Elements::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22", + Elements::FullLeftShift32_2 => b"*i*22", + Elements::FullLeftShift32_4 => b"*i**22*22", + Elements::FullLeftShift32_8 => b"*i***22*22**22*22", + Elements::FullLeftShift64_1 => b"*l2", + Elements::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22", + Elements::FullLeftShift64_2 => b"*l*22", + Elements::FullLeftShift64_32 => b"*li", + Elements::FullLeftShift64_4 => b"*l**22*22", + Elements::FullLeftShift64_8 => b"*l***22*22**22*22", + Elements::FullLeftShift8_1 => b"****22*22**22*222", + Elements::FullLeftShift8_2 => b"****22*22**22*22*22", + Elements::FullLeftShift8_4 => b"****22*22**22*22**22*22", Elements::FullMultiply16 => b"l", Elements::FullMultiply32 => b"*ll", Elements::FullMultiply64 => b"h", Elements::FullMultiply8 => b"i", + Elements::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22", + Elements::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22", + Elements::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22", + Elements::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22", + Elements::FullRightShift32_1 => b"*2i", + Elements::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i", + Elements::FullRightShift32_2 => b"**22i", + Elements::FullRightShift32_4 => b"***22*22i", + Elements::FullRightShift32_8 => b"****22*22**22*22i", + Elements::FullRightShift64_1 => b"*2l", + Elements::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l", + Elements::FullRightShift64_2 => b"**22l", + Elements::FullRightShift64_32 => b"*il", + Elements::FullRightShift64_4 => b"***22*22l", + Elements::FullRightShift64_8 => b"****22*22**22*22l", + Elements::FullRightShift8_1 => b"*2***22*22**22*22", + Elements::FullRightShift8_2 => b"**22***22*22**22*22", + Elements::FullRightShift8_4 => b"***22*22***22*22**22*22", Elements::FullSubtract16 => b"*2i", Elements::FullSubtract32 => b"*2l", Elements::FullSubtract64 => b"*2*ll", @@ -1918,6 +2936,7 @@ impl Jet for Elements { Elements::GejYIsOdd => b"**hhh", Elements::Generate => b"h", Elements::GenesisBlockHash => b"1", + Elements::High1 => b"1", Elements::High16 => b"1", Elements::High32 => b"1", Elements::High64 => b"1", @@ -1968,9 +2987,70 @@ impl Jet for Elements { Elements::Le32 => b"l", Elements::Le64 => b"*ll", Elements::Le8 => b"****22*22**22*22***22*22**22*22", + Elements::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22", + Elements::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22", + Elements::LeftExtend1_16 => b"2", + Elements::LeftExtend1_32 => b"2", + Elements::LeftExtend1_64 => b"2", + Elements::LeftExtend1_8 => b"2", + Elements::LeftExtend32_64 => b"i", + Elements::LeftExtend8_16 => b"***22*22**22*22", + Elements::LeftExtend8_32 => b"***22*22**22*22", + Elements::LeftExtend8_64 => b"***22*22**22*22", + Elements::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22", + Elements::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22", + Elements::LeftPadHigh1_16 => b"2", + Elements::LeftPadHigh1_32 => b"2", + Elements::LeftPadHigh1_64 => b"2", + Elements::LeftPadHigh1_8 => b"2", + Elements::LeftPadHigh32_64 => b"i", + Elements::LeftPadHigh8_16 => b"***22*22**22*22", + Elements::LeftPadHigh8_32 => b"***22*22**22*22", + Elements::LeftPadHigh8_64 => b"***22*22**22*22", + Elements::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22", + Elements::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22", + Elements::LeftPadLow1_16 => b"2", + Elements::LeftPadLow1_32 => b"2", + Elements::LeftPadLow1_64 => b"2", + Elements::LeftPadLow1_8 => b"2", + Elements::LeftPadLow32_64 => b"i", + Elements::LeftPadLow8_16 => b"***22*22**22*22", + Elements::LeftPadLow8_32 => b"***22*22**22*22", + Elements::LeftPadLow8_64 => b"***22*22**22*22", + Elements::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22", + Elements::LeftRotate32 => b"****22*22**22*22i", + Elements::LeftRotate64 => b"****22*22**22*22l", + Elements::LeftRotate8 => b"***22*22***22*22**22*22", + Elements::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22", + Elements::LeftShift32 => b"****22*22**22*22i", + Elements::LeftShift64 => b"****22*22**22*22l", + Elements::LeftShift8 => b"***22*22***22*22**22*22", + Elements::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22", + Elements::LeftShiftWith32 => b"*2****22*22**22*22i", + Elements::LeftShiftWith64 => b"*2****22*22**22*22l", + Elements::LeftShiftWith8 => b"*2***22*22***22*22**22*22", + Elements::Leftmost16_1 => b"****22*22**22*22***22*22**22*22", + Elements::Leftmost16_2 => b"****22*22**22*22***22*22**22*22", + Elements::Leftmost16_4 => b"****22*22**22*22***22*22**22*22", + Elements::Leftmost16_8 => b"****22*22**22*22***22*22**22*22", + Elements::Leftmost32_1 => b"i", + Elements::Leftmost32_16 => b"i", + Elements::Leftmost32_2 => b"i", + Elements::Leftmost32_4 => b"i", + Elements::Leftmost32_8 => b"i", + Elements::Leftmost64_1 => b"l", + Elements::Leftmost64_16 => b"l", + Elements::Leftmost64_2 => b"l", + Elements::Leftmost64_32 => b"l", + Elements::Leftmost64_4 => b"l", + Elements::Leftmost64_8 => b"l", + Elements::Leftmost8_1 => b"***22*22**22*22", + Elements::Leftmost8_2 => b"***22*22**22*22", + Elements::Leftmost8_4 => b"***22*22**22*22", Elements::LinearCombination1 => b"**h**hhhh", Elements::LinearVerify1 => b"***h*hhh*hh", Elements::LockTime => b"1", + Elements::Low1 => b"1", Elements::Low16 => b"1", Elements::Low32 => b"1", Elements::Low64 => b"1", @@ -1979,6 +3059,7 @@ impl Jet for Elements { Elements::Lt32 => b"l", Elements::Lt64 => b"*ll", Elements::Lt8 => b"****22*22**22*22***22*22**22*22", + Elements::Maj1 => b"*2*22", Elements::Maj16 => b"*****22*22**22*22***22*22**22*22i", Elements::Maj32 => b"*il", Elements::Maj64 => b"*l*ll", @@ -2015,6 +3096,7 @@ impl Jet for Elements { Elements::One32 => b"1", Elements::One64 => b"1", Elements::One8 => b"1", + Elements::Or1 => b"*22", Elements::Or16 => b"i", Elements::Or32 => b"l", Elements::Or64 => b"*ll", @@ -2039,6 +3121,62 @@ impl Jet for Elements { Elements::PointVerify1 => b"***h*2hh*2h", Elements::ReissuanceBlinding => b"i", Elements::ReissuanceEntropy => b"i", + Elements::RightExtend16_32 => b"****22*22**22*22***22*22**22*22", + Elements::RightExtend16_64 => b"****22*22**22*22***22*22**22*22", + Elements::RightExtend32_64 => b"i", + Elements::RightExtend8_16 => b"***22*22**22*22", + Elements::RightExtend8_32 => b"***22*22**22*22", + Elements::RightExtend8_64 => b"***22*22**22*22", + Elements::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22", + Elements::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22", + Elements::RightPadHigh1_16 => b"2", + Elements::RightPadHigh1_32 => b"2", + Elements::RightPadHigh1_64 => b"2", + Elements::RightPadHigh1_8 => b"2", + Elements::RightPadHigh32_64 => b"i", + Elements::RightPadHigh8_16 => b"***22*22**22*22", + Elements::RightPadHigh8_32 => b"***22*22**22*22", + Elements::RightPadHigh8_64 => b"***22*22**22*22", + Elements::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22", + Elements::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22", + Elements::RightPadLow1_16 => b"2", + Elements::RightPadLow1_32 => b"2", + Elements::RightPadLow1_64 => b"2", + Elements::RightPadLow1_8 => b"2", + Elements::RightPadLow32_64 => b"i", + Elements::RightPadLow8_16 => b"***22*22**22*22", + Elements::RightPadLow8_32 => b"***22*22**22*22", + Elements::RightPadLow8_64 => b"***22*22**22*22", + Elements::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22", + Elements::RightRotate32 => b"****22*22**22*22i", + Elements::RightRotate64 => b"****22*22**22*22l", + Elements::RightRotate8 => b"***22*22***22*22**22*22", + Elements::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22", + Elements::RightShift32 => b"****22*22**22*22i", + Elements::RightShift64 => b"****22*22**22*22l", + Elements::RightShift8 => b"***22*22***22*22**22*22", + Elements::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22", + Elements::RightShiftWith32 => b"*2****22*22**22*22i", + Elements::RightShiftWith64 => b"*2****22*22**22*22l", + Elements::RightShiftWith8 => b"*2***22*22***22*22**22*22", + Elements::Rightmost16_1 => b"****22*22**22*22***22*22**22*22", + Elements::Rightmost16_2 => b"****22*22**22*22***22*22**22*22", + Elements::Rightmost16_4 => b"****22*22**22*22***22*22**22*22", + Elements::Rightmost16_8 => b"****22*22**22*22***22*22**22*22", + Elements::Rightmost32_1 => b"i", + Elements::Rightmost32_16 => b"i", + Elements::Rightmost32_2 => b"i", + Elements::Rightmost32_4 => b"i", + Elements::Rightmost32_8 => b"i", + Elements::Rightmost64_1 => b"l", + Elements::Rightmost64_16 => b"l", + Elements::Rightmost64_2 => b"l", + Elements::Rightmost64_32 => b"l", + Elements::Rightmost64_4 => b"l", + Elements::Rightmost64_8 => b"l", + Elements::Rightmost8_1 => b"***22*22**22*22", + Elements::Rightmost8_2 => b"***22*22**22*22", + Elements::Rightmost8_4 => b"***22*22**22*22", Elements::ScalarAdd => b"*hh", Elements::ScalarInvert => b"h", Elements::ScalarIsZero => b"h", @@ -2065,6 +3203,7 @@ impl Jet for Elements { Elements::Sha256Ctx8Init => b"1", Elements::Sha256Iv => b"1", Elements::SigAllHash => b"1", + Elements::Some1 => b"2", Elements::Some16 => b"****22*22**22*22***22*22**22*22", Elements::Some32 => b"i", Elements::Some64 => b"l", @@ -2086,10 +3225,12 @@ impl Jet for Elements { Elements::TxLockTime => b"1", Elements::Verify => b"2", Elements::Version => b"1", + Elements::Xor1 => b"*22", Elements::Xor16 => b"i", Elements::Xor32 => b"l", Elements::Xor64 => b"*ll", Elements::Xor8 => b"****22*22**22*22***22*22**22*22", + Elements::XorXor1 => b"*2*22", Elements::XorXor16 => b"*****22*22**22*22***22*22**22*22i", Elements::XorXor32 => b"*il", Elements::XorXor64 => b"*l*ll", @@ -2109,6 +3250,7 @@ impl Jet for Elements { Elements::All32 => b"2", Elements::All64 => b"2", Elements::All8 => b"2", + Elements::And1 => b"2", Elements::And16 => b"****22*22**22*22***22*22**22*22", Elements::And32 => b"i", Elements::And64 => b"l", @@ -2122,6 +3264,7 @@ impl Jet for Elements { Elements::CalculateConfidentialToken => b"h", Elements::CalculateExplicitToken => b"h", Elements::CalculateIssuanceEntropy => b"h", + Elements::Ch1 => b"2", Elements::Ch16 => b"****22*22**22*22***22*22**22*22", Elements::Ch32 => b"i", Elements::Ch64 => b"l", @@ -2131,6 +3274,7 @@ impl Jet for Elements { Elements::CheckLockHeight => b"1", Elements::CheckLockTime => b"1", Elements::CheckSigVerify => b"1", + Elements::Complement1 => b"2", Elements::Complement16 => b"****22*22**22*22***22*22**22*22", Elements::Complement32 => b"i", Elements::Complement64 => b"l", @@ -2168,6 +3312,7 @@ impl Jet for Elements { Elements::Divides32 => b"2", Elements::Divides64 => b"2", Elements::Divides8 => b"2", + Elements::Eq1 => b"2", Elements::Eq16 => b"2", Elements::Eq256 => b"2", Elements::Eq32 => b"2", @@ -2195,10 +3340,46 @@ impl Jet for Elements { Elements::FullIncrement32 => b"*2i", Elements::FullIncrement64 => b"*2l", Elements::FullIncrement8 => b"*2***22*22**22*22", + Elements::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22", + Elements::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22", + Elements::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22", + Elements::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22", + Elements::FullLeftShift32_1 => b"*2i", + Elements::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i", + Elements::FullLeftShift32_2 => b"**22i", + Elements::FullLeftShift32_4 => b"***22*22i", + Elements::FullLeftShift32_8 => b"****22*22**22*22i", + Elements::FullLeftShift64_1 => b"*2l", + Elements::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l", + Elements::FullLeftShift64_2 => b"**22l", + Elements::FullLeftShift64_32 => b"*il", + Elements::FullLeftShift64_4 => b"***22*22l", + Elements::FullLeftShift64_8 => b"****22*22**22*22l", + Elements::FullLeftShift8_1 => b"*2***22*22**22*22", + Elements::FullLeftShift8_2 => b"**22***22*22**22*22", + Elements::FullLeftShift8_4 => b"***22*22***22*22**22*22", Elements::FullMultiply16 => b"i", Elements::FullMultiply32 => b"l", Elements::FullMultiply64 => b"*ll", Elements::FullMultiply8 => b"****22*22**22*22***22*22**22*22", + Elements::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222", + Elements::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22", + Elements::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22", + Elements::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22", + Elements::FullRightShift32_1 => b"*i2", + Elements::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22", + Elements::FullRightShift32_2 => b"*i*22", + Elements::FullRightShift32_4 => b"*i**22*22", + Elements::FullRightShift32_8 => b"*i***22*22**22*22", + Elements::FullRightShift64_1 => b"*l2", + Elements::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22", + Elements::FullRightShift64_2 => b"*l*22", + Elements::FullRightShift64_32 => b"*li", + Elements::FullRightShift64_4 => b"*l**22*22", + Elements::FullRightShift64_8 => b"*l***22*22**22*22", + Elements::FullRightShift8_1 => b"****22*22**22*222", + Elements::FullRightShift8_2 => b"****22*22**22*22*22", + Elements::FullRightShift8_4 => b"****22*22**22*22**22*22", Elements::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22", Elements::FullSubtract32 => b"*2i", Elements::FullSubtract64 => b"*2l", @@ -2219,6 +3400,7 @@ impl Jet for Elements { Elements::GejYIsOdd => b"2", Elements::Generate => b"**hhh", Elements::GenesisBlockHash => b"h", + Elements::High1 => b"2", Elements::High16 => b"****22*22**22*22***22*22**22*22", Elements::High32 => b"i", Elements::High64 => b"l", @@ -2269,9 +3451,70 @@ impl Jet for Elements { Elements::Le32 => b"2", Elements::Le64 => b"2", Elements::Le8 => b"2", + Elements::LeftExtend16_32 => b"i", + Elements::LeftExtend16_64 => b"l", + Elements::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22", + Elements::LeftExtend1_32 => b"i", + Elements::LeftExtend1_64 => b"l", + Elements::LeftExtend1_8 => b"***22*22**22*22", + Elements::LeftExtend32_64 => b"l", + Elements::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22", + Elements::LeftExtend8_32 => b"i", + Elements::LeftExtend8_64 => b"l", + Elements::LeftPadHigh16_32 => b"i", + Elements::LeftPadHigh16_64 => b"l", + Elements::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22", + Elements::LeftPadHigh1_32 => b"i", + Elements::LeftPadHigh1_64 => b"l", + Elements::LeftPadHigh1_8 => b"***22*22**22*22", + Elements::LeftPadHigh32_64 => b"l", + Elements::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22", + Elements::LeftPadHigh8_32 => b"i", + Elements::LeftPadHigh8_64 => b"l", + Elements::LeftPadLow16_32 => b"i", + Elements::LeftPadLow16_64 => b"l", + Elements::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22", + Elements::LeftPadLow1_32 => b"i", + Elements::LeftPadLow1_64 => b"l", + Elements::LeftPadLow1_8 => b"***22*22**22*22", + Elements::LeftPadLow32_64 => b"l", + Elements::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22", + Elements::LeftPadLow8_32 => b"i", + Elements::LeftPadLow8_64 => b"l", + Elements::LeftRotate16 => b"****22*22**22*22***22*22**22*22", + Elements::LeftRotate32 => b"i", + Elements::LeftRotate64 => b"l", + Elements::LeftRotate8 => b"***22*22**22*22", + Elements::LeftShift16 => b"****22*22**22*22***22*22**22*22", + Elements::LeftShift32 => b"i", + Elements::LeftShift64 => b"l", + Elements::LeftShift8 => b"***22*22**22*22", + Elements::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22", + Elements::LeftShiftWith32 => b"i", + Elements::LeftShiftWith64 => b"l", + Elements::LeftShiftWith8 => b"***22*22**22*22", + Elements::Leftmost16_1 => b"2", + Elements::Leftmost16_2 => b"*22", + Elements::Leftmost16_4 => b"**22*22", + Elements::Leftmost16_8 => b"***22*22**22*22", + Elements::Leftmost32_1 => b"2", + Elements::Leftmost32_16 => b"****22*22**22*22***22*22**22*22", + Elements::Leftmost32_2 => b"*22", + Elements::Leftmost32_4 => b"**22*22", + Elements::Leftmost32_8 => b"***22*22**22*22", + Elements::Leftmost64_1 => b"2", + Elements::Leftmost64_16 => b"****22*22**22*22***22*22**22*22", + Elements::Leftmost64_2 => b"*22", + Elements::Leftmost64_32 => b"i", + Elements::Leftmost64_4 => b"**22*22", + Elements::Leftmost64_8 => b"***22*22**22*22", + Elements::Leftmost8_1 => b"2", + Elements::Leftmost8_2 => b"*22", + Elements::Leftmost8_4 => b"**22*22", Elements::LinearCombination1 => b"**hhh", Elements::LinearVerify1 => b"1", Elements::LockTime => b"i", + Elements::Low1 => b"2", Elements::Low16 => b"****22*22**22*22***22*22**22*22", Elements::Low32 => b"i", Elements::Low64 => b"l", @@ -2280,6 +3523,7 @@ impl Jet for Elements { Elements::Lt32 => b"2", Elements::Lt64 => b"2", Elements::Lt8 => b"2", + Elements::Maj1 => b"2", Elements::Maj16 => b"****22*22**22*22***22*22**22*22", Elements::Maj32 => b"i", Elements::Maj64 => b"l", @@ -2316,6 +3560,7 @@ impl Jet for Elements { Elements::One32 => b"i", Elements::One64 => b"l", Elements::One8 => b"***22*22**22*22", + Elements::Or1 => b"2", Elements::Or16 => b"****22*22**22*22***22*22**22*22", Elements::Or32 => b"i", Elements::Or64 => b"l", @@ -2340,6 +3585,62 @@ impl Jet for Elements { Elements::PointVerify1 => b"1", Elements::ReissuanceBlinding => b"+1+1h", Elements::ReissuanceEntropy => b"+1+1h", + Elements::RightExtend16_32 => b"i", + Elements::RightExtend16_64 => b"l", + Elements::RightExtend32_64 => b"l", + Elements::RightExtend8_16 => b"****22*22**22*22***22*22**22*22", + Elements::RightExtend8_32 => b"i", + Elements::RightExtend8_64 => b"l", + Elements::RightPadHigh16_32 => b"i", + Elements::RightPadHigh16_64 => b"l", + Elements::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22", + Elements::RightPadHigh1_32 => b"i", + Elements::RightPadHigh1_64 => b"l", + Elements::RightPadHigh1_8 => b"***22*22**22*22", + Elements::RightPadHigh32_64 => b"l", + Elements::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22", + Elements::RightPadHigh8_32 => b"i", + Elements::RightPadHigh8_64 => b"l", + Elements::RightPadLow16_32 => b"i", + Elements::RightPadLow16_64 => b"l", + Elements::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22", + Elements::RightPadLow1_32 => b"i", + Elements::RightPadLow1_64 => b"l", + Elements::RightPadLow1_8 => b"***22*22**22*22", + Elements::RightPadLow32_64 => b"l", + Elements::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22", + Elements::RightPadLow8_32 => b"i", + Elements::RightPadLow8_64 => b"l", + Elements::RightRotate16 => b"****22*22**22*22***22*22**22*22", + Elements::RightRotate32 => b"i", + Elements::RightRotate64 => b"l", + Elements::RightRotate8 => b"***22*22**22*22", + Elements::RightShift16 => b"****22*22**22*22***22*22**22*22", + Elements::RightShift32 => b"i", + Elements::RightShift64 => b"l", + Elements::RightShift8 => b"***22*22**22*22", + Elements::RightShiftWith16 => b"****22*22**22*22***22*22**22*22", + Elements::RightShiftWith32 => b"i", + Elements::RightShiftWith64 => b"l", + Elements::RightShiftWith8 => b"***22*22**22*22", + Elements::Rightmost16_1 => b"2", + Elements::Rightmost16_2 => b"*22", + Elements::Rightmost16_4 => b"**22*22", + Elements::Rightmost16_8 => b"***22*22**22*22", + Elements::Rightmost32_1 => b"2", + Elements::Rightmost32_16 => b"****22*22**22*22***22*22**22*22", + Elements::Rightmost32_2 => b"*22", + Elements::Rightmost32_4 => b"**22*22", + Elements::Rightmost32_8 => b"***22*22**22*22", + Elements::Rightmost64_1 => b"2", + Elements::Rightmost64_16 => b"****22*22**22*22***22*22**22*22", + Elements::Rightmost64_2 => b"*22", + Elements::Rightmost64_32 => b"i", + Elements::Rightmost64_4 => b"**22*22", + Elements::Rightmost64_8 => b"***22*22**22*22", + Elements::Rightmost8_1 => b"2", + Elements::Rightmost8_2 => b"*22", + Elements::Rightmost8_4 => b"**22*22", Elements::ScalarAdd => b"h", Elements::ScalarInvert => b"h", Elements::ScalarIsZero => b"2", @@ -2366,6 +3667,7 @@ impl Jet for Elements { Elements::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh", Elements::Sha256Iv => b"h", Elements::SigAllHash => b"h", + Elements::Some1 => b"2", Elements::Some16 => b"2", Elements::Some32 => b"2", Elements::Some64 => b"2", @@ -2387,10 +3689,12 @@ impl Jet for Elements { Elements::TxLockTime => b"i", Elements::Verify => b"1", Elements::Version => b"i", + Elements::Xor1 => b"2", Elements::Xor16 => b"****22*22**22*22***22*22**22*22", Elements::Xor32 => b"i", Elements::Xor64 => b"l", Elements::Xor8 => b"***22*22**22*22", + Elements::XorXor1 => b"2", Elements::XorXor16 => b"****22*22**22*22***22*22**22*22", Elements::XorXor32 => b"i", Elements::XorXor64 => b"l", @@ -2403,42 +3707,52 @@ impl Jet for Elements { fn encode(&self, w: &mut BitWriter) -> std::io::Result { let (n, len) = match self { Elements::Verify => (0, 3), + Elements::Low1 => (8, 6), Elements::Low8 => (37, 8), Elements::Low16 => (304, 11), Elements::Low32 => (305, 11), Elements::Low64 => (306, 11), + Elements::High1 => (10, 6), Elements::High8 => (45, 8), Elements::High16 => (368, 11), Elements::High32 => (369, 11), Elements::High64 => (370, 11), + Elements::Complement1 => (96, 9), Elements::Complement8 => (389, 11), Elements::Complement16 => (3120, 14), Elements::Complement32 => (3121, 14), Elements::Complement64 => (3122, 14), + Elements::And1 => (98, 9), Elements::And8 => (397, 11), Elements::And16 => (3184, 14), Elements::And32 => (3185, 14), Elements::And64 => (3186, 14), + Elements::Or1 => (100, 9), Elements::Or8 => (405, 11), Elements::Or16 => (3248, 14), Elements::Or32 => (3249, 14), Elements::Or64 => (3250, 14), + Elements::Xor1 => (102, 9), Elements::Xor8 => (413, 11), Elements::Xor16 => (3312, 14), Elements::Xor32 => (3313, 14), Elements::Xor64 => (3314, 14), + Elements::Maj1 => (208, 10), Elements::Maj8 => (837, 12), Elements::Maj16 => (6704, 15), Elements::Maj32 => (6705, 15), Elements::Maj64 => (6706, 15), + Elements::XorXor1 => (210, 10), Elements::XorXor8 => (845, 12), Elements::XorXor16 => (6768, 15), Elements::XorXor32 => (6769, 15), Elements::XorXor64 => (6770, 15), + Elements::Ch1 => (212, 10), Elements::Ch8 => (853, 12), Elements::Ch16 => (6832, 15), Elements::Ch32 => (6833, 15), Elements::Ch64 => (6834, 15), + Elements::Some1 => (214, 10), Elements::Some8 => (861, 12), Elements::Some16 => (6896, 15), Elements::Some32 => (6897, 15), @@ -2447,11 +3761,164 @@ impl Jet for Elements { Elements::All16 => (6960, 15), Elements::All32 => (6961, 15), Elements::All64 => (6962, 15), + Elements::Eq1 => (218, 10), Elements::Eq8 => (877, 12), Elements::Eq16 => (7024, 15), Elements::Eq32 => (7025, 15), Elements::Eq64 => (7026, 15), Elements::Eq256 => (14056, 16), + Elements::FullLeftShift8_1 => (1765, 13), + Elements::FullLeftShift16_1 => (14128, 16), + Elements::FullLeftShift32_1 => (14129, 16), + Elements::FullLeftShift64_1 => (14130, 16), + Elements::FullLeftShift8_2 => (7076, 15), + Elements::FullLeftShift16_2 => (7077, 15), + Elements::FullLeftShift32_2 => (56624, 18), + Elements::FullLeftShift64_2 => (56625, 18), + Elements::FullLeftShift8_4 => (1770, 13), + Elements::FullLeftShift16_4 => (7084, 15), + Elements::FullLeftShift32_4 => (7085, 15), + Elements::FullLeftShift64_4 => (56688, 18), + Elements::FullLeftShift16_8 => (14176, 16), + Elements::FullLeftShift32_8 => (56708, 18), + Elements::FullLeftShift64_8 => (56709, 18), + Elements::FullLeftShift32_16 => (14178, 16), + Elements::FullLeftShift64_16 => (56716, 18), + Elements::FullLeftShift64_32 => (14180, 16), + Elements::FullRightShift8_1 => (1781, 13), + Elements::FullRightShift16_1 => (14256, 16), + Elements::FullRightShift32_1 => (14257, 16), + Elements::FullRightShift64_1 => (14258, 16), + Elements::FullRightShift8_2 => (7140, 15), + Elements::FullRightShift16_2 => (7141, 15), + Elements::FullRightShift32_2 => (57136, 18), + Elements::FullRightShift64_2 => (57137, 18), + Elements::FullRightShift8_4 => (1786, 13), + Elements::FullRightShift16_4 => (7148, 15), + Elements::FullRightShift32_4 => (7149, 15), + Elements::FullRightShift64_4 => (57200, 18), + Elements::FullRightShift16_8 => (14304, 16), + Elements::FullRightShift32_8 => (57220, 18), + Elements::FullRightShift64_8 => (57221, 18), + Elements::FullRightShift32_16 => (14306, 16), + Elements::FullRightShift64_16 => (57228, 18), + Elements::FullRightShift64_32 => (14308, 16), + Elements::Leftmost8_1 => (28677, 17), + Elements::Leftmost16_1 => (229424, 20), + Elements::Leftmost32_1 => (229425, 20), + Elements::Leftmost64_1 => (229426, 20), + Elements::Leftmost8_2 => (114724, 19), + Elements::Leftmost16_2 => (114725, 19), + Elements::Leftmost32_2 => (917808, 22), + Elements::Leftmost64_2 => (917809, 22), + Elements::Leftmost8_4 => (28682, 17), + Elements::Leftmost16_4 => (114732, 19), + Elements::Leftmost32_4 => (114733, 19), + Elements::Leftmost64_4 => (917872, 22), + Elements::Leftmost16_8 => (229472, 20), + Elements::Leftmost32_8 => (917892, 22), + Elements::Leftmost64_8 => (917893, 22), + Elements::Leftmost32_16 => (229474, 20), + Elements::Leftmost64_16 => (917900, 22), + Elements::Leftmost64_32 => (229476, 20), + Elements::Rightmost8_1 => (28693, 17), + Elements::Rightmost16_1 => (229552, 20), + Elements::Rightmost32_1 => (229553, 20), + Elements::Rightmost64_1 => (229554, 20), + Elements::Rightmost8_2 => (114788, 19), + Elements::Rightmost16_2 => (114789, 19), + Elements::Rightmost32_2 => (918320, 22), + Elements::Rightmost64_2 => (918321, 22), + Elements::Rightmost8_4 => (28698, 17), + Elements::Rightmost16_4 => (114796, 19), + Elements::Rightmost32_4 => (114797, 19), + Elements::Rightmost64_4 => (918384, 22), + Elements::Rightmost16_8 => (229600, 20), + Elements::Rightmost32_8 => (918404, 22), + Elements::Rightmost64_8 => (918405, 22), + Elements::Rightmost32_16 => (229602, 20), + Elements::Rightmost64_16 => (918412, 22), + Elements::Rightmost64_32 => (229604, 20), + Elements::LeftPadLow1_8 => (28709, 17), + Elements::LeftPadLow1_16 => (229680, 20), + Elements::LeftPadLow1_32 => (229681, 20), + Elements::LeftPadLow1_64 => (229682, 20), + Elements::LeftPadLow8_16 => (229728, 20), + Elements::LeftPadLow8_32 => (918916, 22), + Elements::LeftPadLow8_64 => (918917, 22), + Elements::LeftPadLow16_32 => (229730, 20), + Elements::LeftPadLow16_64 => (918924, 22), + Elements::LeftPadLow32_64 => (229732, 20), + Elements::LeftPadHigh1_8 => (28725, 17), + Elements::LeftPadHigh1_16 => (229808, 20), + Elements::LeftPadHigh1_32 => (229809, 20), + Elements::LeftPadHigh1_64 => (229810, 20), + Elements::LeftPadHigh8_16 => (229856, 20), + Elements::LeftPadHigh8_32 => (919428, 22), + Elements::LeftPadHigh8_64 => (919429, 22), + Elements::LeftPadHigh16_32 => (229858, 20), + Elements::LeftPadHigh16_64 => (919436, 22), + Elements::LeftPadHigh32_64 => (229860, 20), + Elements::LeftExtend1_8 => (28741, 17), + Elements::LeftExtend1_16 => (229936, 20), + Elements::LeftExtend1_32 => (229937, 20), + Elements::LeftExtend1_64 => (229938, 20), + Elements::LeftExtend8_16 => (229984, 20), + Elements::LeftExtend8_32 => (919940, 22), + Elements::LeftExtend8_64 => (919941, 22), + Elements::LeftExtend16_32 => (229986, 20), + Elements::LeftExtend16_64 => (919948, 22), + Elements::LeftExtend32_64 => (229988, 20), + Elements::RightPadLow1_8 => (28757, 17), + Elements::RightPadLow1_16 => (230064, 20), + Elements::RightPadLow1_32 => (230065, 20), + Elements::RightPadLow1_64 => (230066, 20), + Elements::RightPadLow8_16 => (230112, 20), + Elements::RightPadLow8_32 => (920452, 22), + Elements::RightPadLow8_64 => (920453, 22), + Elements::RightPadLow16_32 => (230114, 20), + Elements::RightPadLow16_64 => (920460, 22), + Elements::RightPadLow32_64 => (230116, 20), + Elements::RightPadHigh1_8 => (28773, 17), + Elements::RightPadHigh1_16 => (230192, 20), + Elements::RightPadHigh1_32 => (230193, 20), + Elements::RightPadHigh1_64 => (230194, 20), + Elements::RightPadHigh8_16 => (230240, 20), + Elements::RightPadHigh8_32 => (920964, 22), + Elements::RightPadHigh8_64 => (920965, 22), + Elements::RightPadHigh16_32 => (230242, 20), + Elements::RightPadHigh16_64 => (920972, 22), + Elements::RightPadHigh32_64 => (230244, 20), + Elements::RightExtend8_16 => (230368, 20), + Elements::RightExtend8_32 => (921476, 22), + Elements::RightExtend8_64 => (921477, 22), + Elements::RightExtend16_32 => (230370, 20), + Elements::RightExtend16_64 => (921484, 22), + Elements::RightExtend32_64 => (230372, 20), + Elements::LeftShiftWith8 => (14405, 16), + Elements::LeftShiftWith16 => (115248, 19), + Elements::LeftShiftWith32 => (115249, 19), + Elements::LeftShiftWith64 => (115250, 19), + Elements::RightShiftWith8 => (14413, 16), + Elements::RightShiftWith16 => (115312, 19), + Elements::RightShiftWith32 => (115313, 19), + Elements::RightShiftWith64 => (115314, 19), + Elements::LeftShift8 => (14421, 16), + Elements::LeftShift16 => (115376, 19), + Elements::LeftShift32 => (115377, 19), + Elements::LeftShift64 => (115378, 19), + Elements::RightShift8 => (14429, 16), + Elements::RightShift16 => (115440, 19), + Elements::RightShift32 => (115441, 19), + Elements::RightShift64 => (115442, 19), + Elements::LeftRotate8 => (14437, 16), + Elements::LeftRotate16 => (115504, 19), + Elements::LeftRotate32 => (115505, 19), + Elements::LeftRotate64 => (115506, 19), + Elements::RightRotate8 => (14445, 16), + Elements::RightRotate16 => (115568, 19), + Elements::RightRotate32 => (115569, 19), + Elements::RightRotate64 => (115570, 19), Elements::One8 => (69, 8), Elements::One16 => (560, 11), Elements::One32 => (561, 11), @@ -2709,7 +4176,7 @@ impl Jet for Elements { 1 => { 0 => { 0 => { - 0 => {}, + 0 => {Elements::Low1}, 1 => { 0 => { 0 => {}, @@ -2734,7 +4201,7 @@ impl Jet for Elements { } }, 1 => { - 0 => {}, + 0 => {Elements::High1}, 1 => { 0 => { 0 => {}, @@ -2764,7 +4231,7 @@ impl Jet for Elements { 0 => { 0 => { 0 => { - 0 => {}, + 0 => {Elements::Complement1}, 1 => { 0 => { 0 => {}, @@ -2789,7 +4256,7 @@ impl Jet for Elements { } }, 1 => { - 0 => {}, + 0 => {Elements::And1}, 1 => { 0 => { 0 => {}, @@ -2816,7 +4283,7 @@ impl Jet for Elements { }, 1 => { 0 => { - 0 => {}, + 0 => {Elements::Or1}, 1 => { 0 => { 0 => {}, @@ -2841,7 +4308,7 @@ impl Jet for Elements { } }, 1 => { - 0 => {}, + 0 => {Elements::Xor1}, 1 => { 0 => { 0 => {}, @@ -2871,7 +4338,7 @@ impl Jet for Elements { 0 => { 0 => { 0 => { - 0 => {}, + 0 => {Elements::Maj1}, 1 => { 0 => { 0 => {}, @@ -2896,7 +4363,7 @@ impl Jet for Elements { } }, 1 => { - 0 => {}, + 0 => {Elements::XorXor1}, 1 => { 0 => { 0 => {}, @@ -2923,7 +4390,7 @@ impl Jet for Elements { }, 1 => { 0 => { - 0 => {}, + 0 => {Elements::Ch1}, 1 => { 0 => { 0 => {}, @@ -2948,7 +4415,7 @@ impl Jet for Elements { } }, 1 => { - 0 => {}, + 0 => {Elements::Some1}, 1 => { 0 => { 0 => {}, @@ -3002,7 +4469,7 @@ impl Jet for Elements { } }, 1 => { - 0 => {}, + 0 => {Elements::Eq1}, 1 => { 0 => { 0 => {}, @@ -3036,11 +4503,1028 @@ impl Jet for Elements { } } }, - 1 => {} + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::FullLeftShift8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::FullLeftShift16_1}, + 1 => {Elements::FullLeftShift32_1} + }, + 1 => { + 0 => {Elements::FullLeftShift64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Elements::FullLeftShift8_2}, + 1 => {Elements::FullLeftShift16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::FullLeftShift32_2}, + 1 => {Elements::FullLeftShift64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Elements::FullLeftShift8_4}, + 1 => { + 0 => { + 0 => {Elements::FullLeftShift16_4}, + 1 => {Elements::FullLeftShift32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::FullLeftShift64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::FullLeftShift16_8}, + 1 => { + 0 => { + 0 => {Elements::FullLeftShift32_8}, + 1 => {Elements::FullLeftShift64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Elements::FullLeftShift32_16}, + 1 => { + 0 => { + 0 => {Elements::FullLeftShift64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Elements::FullLeftShift64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::FullRightShift8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::FullRightShift16_1}, + 1 => {Elements::FullRightShift32_1} + }, + 1 => { + 0 => {Elements::FullRightShift64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Elements::FullRightShift8_2}, + 1 => {Elements::FullRightShift16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::FullRightShift32_2}, + 1 => {Elements::FullRightShift64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Elements::FullRightShift8_4}, + 1 => { + 0 => { + 0 => {Elements::FullRightShift16_4}, + 1 => {Elements::FullRightShift32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::FullRightShift64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::FullRightShift16_8}, + 1 => { + 0 => { + 0 => {Elements::FullRightShift32_8}, + 1 => {Elements::FullRightShift64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Elements::FullRightShift32_16}, + 1 => { + 0 => { + 0 => {Elements::FullRightShift64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Elements::FullRightShift64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } } } }, - 1 => {} + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::Leftmost8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::Leftmost16_1}, + 1 => {Elements::Leftmost32_1} + }, + 1 => { + 0 => {Elements::Leftmost64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Elements::Leftmost8_2}, + 1 => {Elements::Leftmost16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::Leftmost32_2}, + 1 => {Elements::Leftmost64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Elements::Leftmost8_4}, + 1 => { + 0 => { + 0 => {Elements::Leftmost16_4}, + 1 => {Elements::Leftmost32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::Leftmost64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::Leftmost16_8}, + 1 => { + 0 => { + 0 => {Elements::Leftmost32_8}, + 1 => {Elements::Leftmost64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Elements::Leftmost32_16}, + 1 => { + 0 => { + 0 => {Elements::Leftmost64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Elements::Leftmost64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::Rightmost8_1} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::Rightmost16_1}, + 1 => {Elements::Rightmost32_1} + }, + 1 => { + 0 => {Elements::Rightmost64_1}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {Elements::Rightmost8_2}, + 1 => {Elements::Rightmost16_2} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::Rightmost32_2}, + 1 => {Elements::Rightmost64_2} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {Elements::Rightmost8_4}, + 1 => { + 0 => { + 0 => {Elements::Rightmost16_4}, + 1 => {Elements::Rightmost32_4} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::Rightmost64_4}, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::Rightmost16_8}, + 1 => { + 0 => { + 0 => {Elements::Rightmost32_8}, + 1 => {Elements::Rightmost64_8} + }, + 1 => {} + } + }, + 1 => { + 0 => {Elements::Rightmost32_16}, + 1 => { + 0 => { + 0 => {Elements::Rightmost64_16}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Elements::Rightmost64_32}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::LeftPadLow1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::LeftPadLow1_16}, + 1 => {Elements::LeftPadLow1_32} + }, + 1 => { + 0 => {Elements::LeftPadLow1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::LeftPadLow8_16}, + 1 => { + 0 => { + 0 => {Elements::LeftPadLow8_32}, + 1 => {Elements::LeftPadLow8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Elements::LeftPadLow16_32}, + 1 => { + 0 => { + 0 => {Elements::LeftPadLow16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Elements::LeftPadLow32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::LeftPadHigh1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::LeftPadHigh1_16}, + 1 => {Elements::LeftPadHigh1_32} + }, + 1 => { + 0 => {Elements::LeftPadHigh1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::LeftPadHigh8_16}, + 1 => { + 0 => { + 0 => {Elements::LeftPadHigh8_32}, + 1 => {Elements::LeftPadHigh8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Elements::LeftPadHigh16_32}, + 1 => { + 0 => { + 0 => {Elements::LeftPadHigh16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Elements::LeftPadHigh32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::LeftExtend1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::LeftExtend1_16}, + 1 => {Elements::LeftExtend1_32} + }, + 1 => { + 0 => {Elements::LeftExtend1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::LeftExtend8_16}, + 1 => { + 0 => { + 0 => {Elements::LeftExtend8_32}, + 1 => {Elements::LeftExtend8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Elements::LeftExtend16_32}, + 1 => { + 0 => { + 0 => {Elements::LeftExtend16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Elements::LeftExtend32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::RightPadLow1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::RightPadLow1_16}, + 1 => {Elements::RightPadLow1_32} + }, + 1 => { + 0 => {Elements::RightPadLow1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::RightPadLow8_16}, + 1 => { + 0 => { + 0 => {Elements::RightPadLow8_32}, + 1 => {Elements::RightPadLow8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Elements::RightPadLow16_32}, + 1 => { + 0 => { + 0 => {Elements::RightPadLow16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Elements::RightPadLow32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::RightPadHigh1_8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::RightPadHigh1_16}, + 1 => {Elements::RightPadHigh1_32} + }, + 1 => { + 0 => {Elements::RightPadHigh1_64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::RightPadHigh8_16}, + 1 => { + 0 => { + 0 => {Elements::RightPadHigh8_32}, + 1 => {Elements::RightPadHigh8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Elements::RightPadHigh16_32}, + 1 => { + 0 => { + 0 => {Elements::RightPadHigh16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Elements::RightPadHigh32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::RightExtend8_16}, + 1 => { + 0 => { + 0 => {Elements::RightExtend8_32}, + 1 => {Elements::RightExtend8_64} + }, + 1 => {} + } + }, + 1 => { + 0 => {Elements::RightExtend16_32}, + 1 => { + 0 => { + 0 => {Elements::RightExtend16_64}, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => { + 0 => {Elements::RightExtend32_64}, + 1 => {} + }, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::LeftShiftWith8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::LeftShiftWith16}, + 1 => {Elements::LeftShiftWith32} + }, + 1 => { + 0 => {Elements::LeftShiftWith64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::RightShiftWith8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::RightShiftWith16}, + 1 => {Elements::RightShiftWith32} + }, + 1 => { + 0 => {Elements::RightShiftWith64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::LeftShift8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::LeftShift16}, + 1 => {Elements::LeftShift32} + }, + 1 => { + 0 => {Elements::LeftShift64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::RightShift8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::RightShift16}, + 1 => {Elements::RightShift32} + }, + 1 => { + 0 => {Elements::RightShift64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + } + }, + 1 => { + 0 => { + 0 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::LeftRotate8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::LeftRotate16}, + 1 => {Elements::LeftRotate32} + }, + 1 => { + 0 => {Elements::LeftRotate64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + }, + 1 => { + 0 => {}, + 1 => { + 0 => { + 0 => {}, + 1 => {Elements::RightRotate8} + }, + 1 => { + 0 => { + 0 => { + 0 => { + 0 => {Elements::RightRotate16}, + 1 => {Elements::RightRotate32} + }, + 1 => { + 0 => {Elements::RightRotate64}, + 1 => {} + } + }, + 1 => {} + }, + 1 => {} + } + } + } + }, + 1 => {} + } + } + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + }, + 1 => {} + } } } }, @@ -4308,6 +6792,7 @@ impl Jet for Elements { Elements::All32 => &simplicity_sys::c_jets::jets_wrapper::all_32, Elements::All64 => &simplicity_sys::c_jets::jets_wrapper::all_64, Elements::All8 => &simplicity_sys::c_jets::jets_wrapper::all_8, + Elements::And1 => &simplicity_sys::c_jets::jets_wrapper::and_1, Elements::And16 => &simplicity_sys::c_jets::jets_wrapper::and_16, Elements::And32 => &simplicity_sys::c_jets::jets_wrapper::and_32, Elements::And64 => &simplicity_sys::c_jets::jets_wrapper::and_64, @@ -4321,6 +6806,7 @@ impl Jet for Elements { Elements::CalculateConfidentialToken => &simplicity_sys::c_jets::jets_wrapper::calculate_confidential_token, Elements::CalculateExplicitToken => &simplicity_sys::c_jets::jets_wrapper::calculate_explicit_token, Elements::CalculateIssuanceEntropy => &simplicity_sys::c_jets::jets_wrapper::calculate_issuance_entropy, + Elements::Ch1 => &simplicity_sys::c_jets::jets_wrapper::ch_1, Elements::Ch16 => &simplicity_sys::c_jets::jets_wrapper::ch_16, Elements::Ch32 => &simplicity_sys::c_jets::jets_wrapper::ch_32, Elements::Ch64 => &simplicity_sys::c_jets::jets_wrapper::ch_64, @@ -4330,6 +6816,7 @@ impl Jet for Elements { Elements::CheckLockHeight => &simplicity_sys::c_jets::jets_wrapper::check_lock_height, Elements::CheckLockTime => &simplicity_sys::c_jets::jets_wrapper::check_lock_time, Elements::CheckSigVerify => &simplicity_sys::c_jets::jets_wrapper::check_sig_verify, + Elements::Complement1 => &simplicity_sys::c_jets::jets_wrapper::complement_1, Elements::Complement16 => &simplicity_sys::c_jets::jets_wrapper::complement_16, Elements::Complement32 => &simplicity_sys::c_jets::jets_wrapper::complement_32, Elements::Complement64 => &simplicity_sys::c_jets::jets_wrapper::complement_64, @@ -4367,6 +6854,7 @@ impl Jet for Elements { Elements::Divides32 => &simplicity_sys::c_jets::jets_wrapper::divides_32, Elements::Divides64 => &simplicity_sys::c_jets::jets_wrapper::divides_64, Elements::Divides8 => &simplicity_sys::c_jets::jets_wrapper::divides_8, + Elements::Eq1 => &simplicity_sys::c_jets::jets_wrapper::eq_1, Elements::Eq16 => &simplicity_sys::c_jets::jets_wrapper::eq_16, Elements::Eq256 => &simplicity_sys::c_jets::jets_wrapper::eq_256, Elements::Eq32 => &simplicity_sys::c_jets::jets_wrapper::eq_32, @@ -4394,10 +6882,46 @@ impl Jet for Elements { Elements::FullIncrement32 => &simplicity_sys::c_jets::jets_wrapper::full_increment_32, Elements::FullIncrement64 => &simplicity_sys::c_jets::jets_wrapper::full_increment_64, Elements::FullIncrement8 => &simplicity_sys::c_jets::jets_wrapper::full_increment_8, + Elements::FullLeftShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1, + Elements::FullLeftShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2, + Elements::FullLeftShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4, + Elements::FullLeftShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8, + Elements::FullLeftShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1, + Elements::FullLeftShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16, + Elements::FullLeftShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2, + Elements::FullLeftShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4, + Elements::FullLeftShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8, + Elements::FullLeftShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1, + Elements::FullLeftShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16, + Elements::FullLeftShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2, + Elements::FullLeftShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32, + Elements::FullLeftShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4, + Elements::FullLeftShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8, + Elements::FullLeftShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1, + Elements::FullLeftShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2, + Elements::FullLeftShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4, Elements::FullMultiply16 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_16, Elements::FullMultiply32 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_32, Elements::FullMultiply64 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_64, Elements::FullMultiply8 => &simplicity_sys::c_jets::jets_wrapper::full_multiply_8, + Elements::FullRightShift16_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1, + Elements::FullRightShift16_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2, + Elements::FullRightShift16_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4, + Elements::FullRightShift16_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8, + Elements::FullRightShift32_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1, + Elements::FullRightShift32_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16, + Elements::FullRightShift32_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2, + Elements::FullRightShift32_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4, + Elements::FullRightShift32_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8, + Elements::FullRightShift64_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1, + Elements::FullRightShift64_16 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16, + Elements::FullRightShift64_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2, + Elements::FullRightShift64_32 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32, + Elements::FullRightShift64_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4, + Elements::FullRightShift64_8 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8, + Elements::FullRightShift8_1 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1, + Elements::FullRightShift8_2 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2, + Elements::FullRightShift8_4 => &simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4, Elements::FullSubtract16 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_16, Elements::FullSubtract32 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_32, Elements::FullSubtract64 => &simplicity_sys::c_jets::jets_wrapper::full_subtract_64, @@ -4418,6 +6942,7 @@ impl Jet for Elements { Elements::GejYIsOdd => &simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd, Elements::Generate => &simplicity_sys::c_jets::jets_wrapper::generate, Elements::GenesisBlockHash => &simplicity_sys::c_jets::jets_wrapper::genesis_block_hash, + Elements::High1 => &simplicity_sys::c_jets::jets_wrapper::high_1, Elements::High16 => &simplicity_sys::c_jets::jets_wrapper::high_16, Elements::High32 => &simplicity_sys::c_jets::jets_wrapper::high_32, Elements::High64 => &simplicity_sys::c_jets::jets_wrapper::high_64, @@ -4468,9 +6993,70 @@ impl Jet for Elements { Elements::Le32 => &simplicity_sys::c_jets::jets_wrapper::le_32, Elements::Le64 => &simplicity_sys::c_jets::jets_wrapper::le_64, Elements::Le8 => &simplicity_sys::c_jets::jets_wrapper::le_8, + Elements::LeftExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_32, + Elements::LeftExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_16_64, + Elements::LeftExtend1_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_16, + Elements::LeftExtend1_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_32, + Elements::LeftExtend1_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_64, + Elements::LeftExtend1_8 => &simplicity_sys::c_jets::jets_wrapper::left_extend_1_8, + Elements::LeftExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_32_64, + Elements::LeftExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_16, + Elements::LeftExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_32, + Elements::LeftExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::left_extend_8_64, + Elements::LeftPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32, + Elements::LeftPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64, + Elements::LeftPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16, + Elements::LeftPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32, + Elements::LeftPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64, + Elements::LeftPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8, + Elements::LeftPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64, + Elements::LeftPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16, + Elements::LeftPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32, + Elements::LeftPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64, + Elements::LeftPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32, + Elements::LeftPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64, + Elements::LeftPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16, + Elements::LeftPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32, + Elements::LeftPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64, + Elements::LeftPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8, + Elements::LeftPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64, + Elements::LeftPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16, + Elements::LeftPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32, + Elements::LeftPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64, + Elements::LeftRotate16 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_16, + Elements::LeftRotate32 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_32, + Elements::LeftRotate64 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_64, + Elements::LeftRotate8 => &simplicity_sys::c_jets::jets_wrapper::left_rotate_8, + Elements::LeftShift16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_16, + Elements::LeftShift32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_32, + Elements::LeftShift64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_64, + Elements::LeftShift8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_8, + Elements::LeftShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_16, + Elements::LeftShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_32, + Elements::LeftShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_64, + Elements::LeftShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::left_shift_with_8, + Elements::Leftmost16_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_1, + Elements::Leftmost16_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_2, + Elements::Leftmost16_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_4, + Elements::Leftmost16_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_16_8, + Elements::Leftmost32_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_1, + Elements::Leftmost32_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_16, + Elements::Leftmost32_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_2, + Elements::Leftmost32_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_4, + Elements::Leftmost32_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_32_8, + Elements::Leftmost64_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_1, + Elements::Leftmost64_16 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_16, + Elements::Leftmost64_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_2, + Elements::Leftmost64_32 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_32, + Elements::Leftmost64_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_4, + Elements::Leftmost64_8 => &simplicity_sys::c_jets::jets_wrapper::leftmost_64_8, + Elements::Leftmost8_1 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_1, + Elements::Leftmost8_2 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_2, + Elements::Leftmost8_4 => &simplicity_sys::c_jets::jets_wrapper::leftmost_8_4, Elements::LinearCombination1 => &simplicity_sys::c_jets::jets_wrapper::linear_combination_1, Elements::LinearVerify1 => &simplicity_sys::c_jets::jets_wrapper::linear_verify_1, Elements::LockTime => &simplicity_sys::c_jets::jets_wrapper::lock_time, + Elements::Low1 => &simplicity_sys::c_jets::jets_wrapper::low_1, Elements::Low16 => &simplicity_sys::c_jets::jets_wrapper::low_16, Elements::Low32 => &simplicity_sys::c_jets::jets_wrapper::low_32, Elements::Low64 => &simplicity_sys::c_jets::jets_wrapper::low_64, @@ -4479,6 +7065,7 @@ impl Jet for Elements { Elements::Lt32 => &simplicity_sys::c_jets::jets_wrapper::lt_32, Elements::Lt64 => &simplicity_sys::c_jets::jets_wrapper::lt_64, Elements::Lt8 => &simplicity_sys::c_jets::jets_wrapper::lt_8, + Elements::Maj1 => &simplicity_sys::c_jets::jets_wrapper::maj_1, Elements::Maj16 => &simplicity_sys::c_jets::jets_wrapper::maj_16, Elements::Maj32 => &simplicity_sys::c_jets::jets_wrapper::maj_32, Elements::Maj64 => &simplicity_sys::c_jets::jets_wrapper::maj_64, @@ -4515,6 +7102,7 @@ impl Jet for Elements { Elements::One32 => &simplicity_sys::c_jets::jets_wrapper::one_32, Elements::One64 => &simplicity_sys::c_jets::jets_wrapper::one_64, Elements::One8 => &simplicity_sys::c_jets::jets_wrapper::one_8, + Elements::Or1 => &simplicity_sys::c_jets::jets_wrapper::or_1, Elements::Or16 => &simplicity_sys::c_jets::jets_wrapper::or_16, Elements::Or32 => &simplicity_sys::c_jets::jets_wrapper::or_32, Elements::Or64 => &simplicity_sys::c_jets::jets_wrapper::or_64, @@ -4539,6 +7127,62 @@ impl Jet for Elements { Elements::PointVerify1 => &simplicity_sys::c_jets::jets_wrapper::point_verify_1, Elements::ReissuanceBlinding => &simplicity_sys::c_jets::jets_wrapper::reissuance_blinding, Elements::ReissuanceEntropy => &simplicity_sys::c_jets::jets_wrapper::reissuance_entropy, + Elements::RightExtend16_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_32, + Elements::RightExtend16_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_16_64, + Elements::RightExtend32_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_32_64, + Elements::RightExtend8_16 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_16, + Elements::RightExtend8_32 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_32, + Elements::RightExtend8_64 => &simplicity_sys::c_jets::jets_wrapper::right_extend_8_64, + Elements::RightPadHigh16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32, + Elements::RightPadHigh16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64, + Elements::RightPadHigh1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16, + Elements::RightPadHigh1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32, + Elements::RightPadHigh1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64, + Elements::RightPadHigh1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8, + Elements::RightPadHigh32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64, + Elements::RightPadHigh8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16, + Elements::RightPadHigh8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32, + Elements::RightPadHigh8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64, + Elements::RightPadLow16_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32, + Elements::RightPadLow16_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64, + Elements::RightPadLow1_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16, + Elements::RightPadLow1_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32, + Elements::RightPadLow1_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64, + Elements::RightPadLow1_8 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8, + Elements::RightPadLow32_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64, + Elements::RightPadLow8_16 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16, + Elements::RightPadLow8_32 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32, + Elements::RightPadLow8_64 => &simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64, + Elements::RightRotate16 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_16, + Elements::RightRotate32 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_32, + Elements::RightRotate64 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_64, + Elements::RightRotate8 => &simplicity_sys::c_jets::jets_wrapper::right_rotate_8, + Elements::RightShift16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_16, + Elements::RightShift32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_32, + Elements::RightShift64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_64, + Elements::RightShift8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_8, + Elements::RightShiftWith16 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_16, + Elements::RightShiftWith32 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_32, + Elements::RightShiftWith64 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_64, + Elements::RightShiftWith8 => &simplicity_sys::c_jets::jets_wrapper::right_shift_with_8, + Elements::Rightmost16_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_1, + Elements::Rightmost16_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_2, + Elements::Rightmost16_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_4, + Elements::Rightmost16_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_16_8, + Elements::Rightmost32_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_1, + Elements::Rightmost32_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_16, + Elements::Rightmost32_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_2, + Elements::Rightmost32_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_4, + Elements::Rightmost32_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_32_8, + Elements::Rightmost64_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_1, + Elements::Rightmost64_16 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_16, + Elements::Rightmost64_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_2, + Elements::Rightmost64_32 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_32, + Elements::Rightmost64_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_4, + Elements::Rightmost64_8 => &simplicity_sys::c_jets::jets_wrapper::rightmost_64_8, + Elements::Rightmost8_1 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_1, + Elements::Rightmost8_2 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_2, + Elements::Rightmost8_4 => &simplicity_sys::c_jets::jets_wrapper::rightmost_8_4, Elements::ScalarAdd => &simplicity_sys::c_jets::jets_wrapper::scalar_add, Elements::ScalarInvert => &simplicity_sys::c_jets::jets_wrapper::scalar_invert, Elements::ScalarIsZero => &simplicity_sys::c_jets::jets_wrapper::scalar_is_zero, @@ -4565,6 +7209,7 @@ impl Jet for Elements { Elements::Sha256Ctx8Init => &simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init, Elements::Sha256Iv => &simplicity_sys::c_jets::jets_wrapper::sha_256_iv, Elements::SigAllHash => &simplicity_sys::c_jets::jets_wrapper::sig_all_hash, + Elements::Some1 => &simplicity_sys::c_jets::jets_wrapper::some_1, Elements::Some16 => &simplicity_sys::c_jets::jets_wrapper::some_16, Elements::Some32 => &simplicity_sys::c_jets::jets_wrapper::some_32, Elements::Some64 => &simplicity_sys::c_jets::jets_wrapper::some_64, @@ -4586,10 +7231,12 @@ impl Jet for Elements { Elements::TxLockTime => &simplicity_sys::c_jets::jets_wrapper::tx_lock_time, Elements::Verify => &simplicity_sys::c_jets::jets_wrapper::verify, Elements::Version => &simplicity_sys::c_jets::jets_wrapper::version, + Elements::Xor1 => &simplicity_sys::c_jets::jets_wrapper::xor_1, Elements::Xor16 => &simplicity_sys::c_jets::jets_wrapper::xor_16, Elements::Xor32 => &simplicity_sys::c_jets::jets_wrapper::xor_32, Elements::Xor64 => &simplicity_sys::c_jets::jets_wrapper::xor_64, Elements::Xor8 => &simplicity_sys::c_jets::jets_wrapper::xor_8, + Elements::XorXor1 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_1, Elements::XorXor16 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_16, Elements::XorXor32 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_32, Elements::XorXor64 => &simplicity_sys::c_jets::jets_wrapper::xor_xor_64, @@ -4607,6 +7254,7 @@ impl Jet for Elements { Elements::All32 => Cost::from_milliweight(136), Elements::All64 => Cost::from_milliweight(165), Elements::All8 => Cost::from_milliweight(113), + Elements::And1 => Cost::from_milliweight(159), Elements::And16 => Cost::from_milliweight(195), Elements::And32 => Cost::from_milliweight(175), Elements::And64 => Cost::from_milliweight(221), @@ -4620,6 +7268,7 @@ impl Jet for Elements { Elements::CalculateConfidentialToken => Cost::from_milliweight(1727), Elements::CalculateExplicitToken => Cost::from_milliweight(1610), Elements::CalculateIssuanceEntropy => Cost::from_milliweight(3453), + Elements::Ch1 => Cost::from_milliweight(240), Elements::Ch16 => Cost::from_milliweight(245), Elements::Ch32 => Cost::from_milliweight(238), Elements::Ch64 => Cost::from_milliweight(274), @@ -4629,6 +7278,7 @@ impl Jet for Elements { Elements::CheckLockHeight => Cost::from_milliweight(239), Elements::CheckLockTime => Cost::from_milliweight(232), Elements::CheckSigVerify => Cost::from_milliweight(50000), + Elements::Complement1 => Cost::from_milliweight(139), Elements::Complement16 => Cost::from_milliweight(146), Elements::Complement32 => Cost::from_milliweight(161), Elements::Complement64 => Cost::from_milliweight(174), @@ -4666,6 +7316,7 @@ impl Jet for Elements { Elements::Divides32 => Cost::from_milliweight(175), Elements::Divides64 => Cost::from_milliweight(246), Elements::Divides8 => Cost::from_milliweight(142), + Elements::Eq1 => Cost::from_milliweight(120), Elements::Eq16 => Cost::from_milliweight(174), Elements::Eq256 => Cost::from_milliweight(431), Elements::Eq32 => Cost::from_milliweight(233), @@ -4693,10 +7344,46 @@ impl Jet for Elements { Elements::FullIncrement32 => Cost::from_milliweight(171), Elements::FullIncrement64 => Cost::from_milliweight(161), Elements::FullIncrement8 => Cost::from_milliweight(204), + Elements::FullLeftShift16_1 => Cost::from_milliweight(150), + Elements::FullLeftShift16_2 => Cost::from_milliweight(150), + Elements::FullLeftShift16_4 => Cost::from_milliweight(150), + Elements::FullLeftShift16_8 => Cost::from_milliweight(150), + Elements::FullLeftShift32_1 => Cost::from_milliweight(150), + Elements::FullLeftShift32_16 => Cost::from_milliweight(150), + Elements::FullLeftShift32_2 => Cost::from_milliweight(150), + Elements::FullLeftShift32_4 => Cost::from_milliweight(150), + Elements::FullLeftShift32_8 => Cost::from_milliweight(150), + Elements::FullLeftShift64_1 => Cost::from_milliweight(150), + Elements::FullLeftShift64_16 => Cost::from_milliweight(150), + Elements::FullLeftShift64_2 => Cost::from_milliweight(150), + Elements::FullLeftShift64_32 => Cost::from_milliweight(150), + Elements::FullLeftShift64_4 => Cost::from_milliweight(150), + Elements::FullLeftShift64_8 => Cost::from_milliweight(150), + Elements::FullLeftShift8_1 => Cost::from_milliweight(150), + Elements::FullLeftShift8_2 => Cost::from_milliweight(150), + Elements::FullLeftShift8_4 => Cost::from_milliweight(150), Elements::FullMultiply16 => Cost::from_milliweight(208), Elements::FullMultiply32 => Cost::from_milliweight(213), Elements::FullMultiply64 => Cost::from_milliweight(209), Elements::FullMultiply8 => Cost::from_milliweight(190), + Elements::FullRightShift16_1 => Cost::from_milliweight(150), + Elements::FullRightShift16_2 => Cost::from_milliweight(150), + Elements::FullRightShift16_4 => Cost::from_milliweight(150), + Elements::FullRightShift16_8 => Cost::from_milliweight(150), + Elements::FullRightShift32_1 => Cost::from_milliweight(150), + Elements::FullRightShift32_16 => Cost::from_milliweight(150), + Elements::FullRightShift32_2 => Cost::from_milliweight(150), + Elements::FullRightShift32_4 => Cost::from_milliweight(150), + Elements::FullRightShift32_8 => Cost::from_milliweight(150), + Elements::FullRightShift64_1 => Cost::from_milliweight(150), + Elements::FullRightShift64_16 => Cost::from_milliweight(150), + Elements::FullRightShift64_2 => Cost::from_milliweight(150), + Elements::FullRightShift64_32 => Cost::from_milliweight(150), + Elements::FullRightShift64_4 => Cost::from_milliweight(150), + Elements::FullRightShift64_8 => Cost::from_milliweight(150), + Elements::FullRightShift8_1 => Cost::from_milliweight(150), + Elements::FullRightShift8_2 => Cost::from_milliweight(150), + Elements::FullRightShift8_4 => Cost::from_milliweight(150), Elements::FullSubtract16 => Cost::from_milliweight(201), Elements::FullSubtract32 => Cost::from_milliweight(170), Elements::FullSubtract64 => Cost::from_milliweight(231), @@ -4717,6 +7404,7 @@ impl Jet for Elements { Elements::GejYIsOdd => Cost::from_milliweight(3665), Elements::Generate => Cost::from_milliweight(51706), Elements::GenesisBlockHash => Cost::from_milliweight(395), + Elements::High1 => Cost::from_milliweight(169), Elements::High16 => Cost::from_milliweight(159), Elements::High32 => Cost::from_milliweight(121), Elements::High64 => Cost::from_milliweight(110), @@ -4767,9 +7455,70 @@ impl Jet for Elements { Elements::Le32 => Cost::from_milliweight(216), Elements::Le64 => Cost::from_milliweight(173), Elements::Le8 => Cost::from_milliweight(143), + Elements::LeftExtend16_32 => Cost::from_milliweight(150), + Elements::LeftExtend16_64 => Cost::from_milliweight(150), + Elements::LeftExtend1_16 => Cost::from_milliweight(150), + Elements::LeftExtend1_32 => Cost::from_milliweight(150), + Elements::LeftExtend1_64 => Cost::from_milliweight(150), + Elements::LeftExtend1_8 => Cost::from_milliweight(150), + Elements::LeftExtend32_64 => Cost::from_milliweight(150), + Elements::LeftExtend8_16 => Cost::from_milliweight(150), + Elements::LeftExtend8_32 => Cost::from_milliweight(150), + Elements::LeftExtend8_64 => Cost::from_milliweight(150), + Elements::LeftPadHigh16_32 => Cost::from_milliweight(150), + Elements::LeftPadHigh16_64 => Cost::from_milliweight(150), + Elements::LeftPadHigh1_16 => Cost::from_milliweight(150), + Elements::LeftPadHigh1_32 => Cost::from_milliweight(150), + Elements::LeftPadHigh1_64 => Cost::from_milliweight(150), + Elements::LeftPadHigh1_8 => Cost::from_milliweight(150), + Elements::LeftPadHigh32_64 => Cost::from_milliweight(150), + Elements::LeftPadHigh8_16 => Cost::from_milliweight(150), + Elements::LeftPadHigh8_32 => Cost::from_milliweight(150), + Elements::LeftPadHigh8_64 => Cost::from_milliweight(150), + Elements::LeftPadLow16_32 => Cost::from_milliweight(150), + Elements::LeftPadLow16_64 => Cost::from_milliweight(150), + Elements::LeftPadLow1_16 => Cost::from_milliweight(150), + Elements::LeftPadLow1_32 => Cost::from_milliweight(150), + Elements::LeftPadLow1_64 => Cost::from_milliweight(150), + Elements::LeftPadLow1_8 => Cost::from_milliweight(150), + Elements::LeftPadLow32_64 => Cost::from_milliweight(150), + Elements::LeftPadLow8_16 => Cost::from_milliweight(150), + Elements::LeftPadLow8_32 => Cost::from_milliweight(150), + Elements::LeftPadLow8_64 => Cost::from_milliweight(150), + Elements::LeftRotate16 => Cost::from_milliweight(150), + Elements::LeftRotate32 => Cost::from_milliweight(150), + Elements::LeftRotate64 => Cost::from_milliweight(150), + Elements::LeftRotate8 => Cost::from_milliweight(150), + Elements::LeftShift16 => Cost::from_milliweight(150), + Elements::LeftShift32 => Cost::from_milliweight(150), + Elements::LeftShift64 => Cost::from_milliweight(150), + Elements::LeftShift8 => Cost::from_milliweight(150), + Elements::LeftShiftWith16 => Cost::from_milliweight(150), + Elements::LeftShiftWith32 => Cost::from_milliweight(150), + Elements::LeftShiftWith64 => Cost::from_milliweight(150), + Elements::LeftShiftWith8 => Cost::from_milliweight(150), + Elements::Leftmost16_1 => Cost::from_milliweight(150), + Elements::Leftmost16_2 => Cost::from_milliweight(150), + Elements::Leftmost16_4 => Cost::from_milliweight(150), + Elements::Leftmost16_8 => Cost::from_milliweight(150), + Elements::Leftmost32_1 => Cost::from_milliweight(150), + Elements::Leftmost32_16 => Cost::from_milliweight(150), + Elements::Leftmost32_2 => Cost::from_milliweight(150), + Elements::Leftmost32_4 => Cost::from_milliweight(150), + Elements::Leftmost32_8 => Cost::from_milliweight(150), + Elements::Leftmost64_1 => Cost::from_milliweight(150), + Elements::Leftmost64_16 => Cost::from_milliweight(150), + Elements::Leftmost64_2 => Cost::from_milliweight(150), + Elements::Leftmost64_32 => Cost::from_milliweight(150), + Elements::Leftmost64_4 => Cost::from_milliweight(150), + Elements::Leftmost64_8 => Cost::from_milliweight(150), + Elements::Leftmost8_1 => Cost::from_milliweight(150), + Elements::Leftmost8_2 => Cost::from_milliweight(150), + Elements::Leftmost8_4 => Cost::from_milliweight(150), Elements::LinearCombination1 => Cost::from_milliweight(86722), Elements::LinearVerify1 => Cost::from_milliweight(43063), Elements::LockTime => Cost::from_milliweight(132), + Elements::Low1 => Cost::from_milliweight(173), Elements::Low16 => Cost::from_milliweight(172), Elements::Low32 => Cost::from_milliweight(170), Elements::Low64 => Cost::from_milliweight(162), @@ -4778,6 +7527,7 @@ impl Jet for Elements { Elements::Lt32 => Cost::from_milliweight(215), Elements::Lt64 => Cost::from_milliweight(195), Elements::Lt8 => Cost::from_milliweight(130), + Elements::Maj1 => Cost::from_milliweight(241), Elements::Maj16 => Cost::from_milliweight(273), Elements::Maj32 => Cost::from_milliweight(289), Elements::Maj64 => Cost::from_milliweight(293), @@ -4814,6 +7564,7 @@ impl Jet for Elements { Elements::One32 => Cost::from_milliweight(122), Elements::One64 => Cost::from_milliweight(123), Elements::One8 => Cost::from_milliweight(127), + Elements::Or1 => Cost::from_milliweight(147), Elements::Or16 => Cost::from_milliweight(204), Elements::Or32 => Cost::from_milliweight(197), Elements::Or64 => Cost::from_milliweight(214), @@ -4838,6 +7589,62 @@ impl Jet for Elements { Elements::PointVerify1 => Cost::from_milliweight(50604), Elements::ReissuanceBlinding => Cost::from_milliweight(153), Elements::ReissuanceEntropy => Cost::from_milliweight(126), + Elements::RightExtend16_32 => Cost::from_milliweight(150), + Elements::RightExtend16_64 => Cost::from_milliweight(150), + Elements::RightExtend32_64 => Cost::from_milliweight(150), + Elements::RightExtend8_16 => Cost::from_milliweight(150), + Elements::RightExtend8_32 => Cost::from_milliweight(150), + Elements::RightExtend8_64 => Cost::from_milliweight(150), + Elements::RightPadHigh16_32 => Cost::from_milliweight(150), + Elements::RightPadHigh16_64 => Cost::from_milliweight(150), + Elements::RightPadHigh1_16 => Cost::from_milliweight(150), + Elements::RightPadHigh1_32 => Cost::from_milliweight(150), + Elements::RightPadHigh1_64 => Cost::from_milliweight(150), + Elements::RightPadHigh1_8 => Cost::from_milliweight(150), + Elements::RightPadHigh32_64 => Cost::from_milliweight(150), + Elements::RightPadHigh8_16 => Cost::from_milliweight(150), + Elements::RightPadHigh8_32 => Cost::from_milliweight(150), + Elements::RightPadHigh8_64 => Cost::from_milliweight(150), + Elements::RightPadLow16_32 => Cost::from_milliweight(150), + Elements::RightPadLow16_64 => Cost::from_milliweight(150), + Elements::RightPadLow1_16 => Cost::from_milliweight(150), + Elements::RightPadLow1_32 => Cost::from_milliweight(150), + Elements::RightPadLow1_64 => Cost::from_milliweight(150), + Elements::RightPadLow1_8 => Cost::from_milliweight(150), + Elements::RightPadLow32_64 => Cost::from_milliweight(150), + Elements::RightPadLow8_16 => Cost::from_milliweight(150), + Elements::RightPadLow8_32 => Cost::from_milliweight(150), + Elements::RightPadLow8_64 => Cost::from_milliweight(150), + Elements::RightRotate16 => Cost::from_milliweight(150), + Elements::RightRotate32 => Cost::from_milliweight(150), + Elements::RightRotate64 => Cost::from_milliweight(150), + Elements::RightRotate8 => Cost::from_milliweight(150), + Elements::RightShift16 => Cost::from_milliweight(150), + Elements::RightShift32 => Cost::from_milliweight(150), + Elements::RightShift64 => Cost::from_milliweight(150), + Elements::RightShift8 => Cost::from_milliweight(150), + Elements::RightShiftWith16 => Cost::from_milliweight(150), + Elements::RightShiftWith32 => Cost::from_milliweight(150), + Elements::RightShiftWith64 => Cost::from_milliweight(150), + Elements::RightShiftWith8 => Cost::from_milliweight(150), + Elements::Rightmost16_1 => Cost::from_milliweight(150), + Elements::Rightmost16_2 => Cost::from_milliweight(150), + Elements::Rightmost16_4 => Cost::from_milliweight(150), + Elements::Rightmost16_8 => Cost::from_milliweight(150), + Elements::Rightmost32_1 => Cost::from_milliweight(150), + Elements::Rightmost32_16 => Cost::from_milliweight(150), + Elements::Rightmost32_2 => Cost::from_milliweight(150), + Elements::Rightmost32_4 => Cost::from_milliweight(150), + Elements::Rightmost32_8 => Cost::from_milliweight(150), + Elements::Rightmost64_1 => Cost::from_milliweight(150), + Elements::Rightmost64_16 => Cost::from_milliweight(150), + Elements::Rightmost64_2 => Cost::from_milliweight(150), + Elements::Rightmost64_32 => Cost::from_milliweight(150), + Elements::Rightmost64_4 => Cost::from_milliweight(150), + Elements::Rightmost64_8 => Cost::from_milliweight(150), + Elements::Rightmost8_1 => Cost::from_milliweight(150), + Elements::Rightmost8_2 => Cost::from_milliweight(150), + Elements::Rightmost8_4 => Cost::from_milliweight(150), Elements::ScalarAdd => Cost::from_milliweight(962), Elements::ScalarInvert => Cost::from_milliweight(4025), Elements::ScalarIsZero => Cost::from_milliweight(569), @@ -4864,6 +7671,7 @@ impl Jet for Elements { Elements::Sha256Ctx8Init => Cost::from_milliweight(184), Elements::Sha256Iv => Cost::from_milliweight(129), Elements::SigAllHash => Cost::from_milliweight(265), + Elements::Some1 => Cost::from_milliweight(104), Elements::Some16 => Cost::from_milliweight(129), Elements::Some32 => Cost::from_milliweight(183), Elements::Some64 => Cost::from_milliweight(139), @@ -4885,10 +7693,12 @@ impl Jet for Elements { Elements::TxLockTime => Cost::from_milliweight(136), Elements::Verify => Cost::from_milliweight(144), Elements::Version => Cost::from_milliweight(188), + Elements::Xor1 => Cost::from_milliweight(135), Elements::Xor16 => Cost::from_milliweight(188), Elements::Xor32 => Cost::from_milliweight(204), Elements::Xor64 => Cost::from_milliweight(207), Elements::Xor8 => Cost::from_milliweight(135), + Elements::XorXor1 => Cost::from_milliweight(258), Elements::XorXor16 => Cost::from_milliweight(235), Elements::XorXor32 => Cost::from_milliweight(251), Elements::XorXor64 => Cost::from_milliweight(285), @@ -4908,6 +7718,7 @@ impl fmt::Display for Elements { Elements::All32 => f.write_str("all_32"), Elements::All64 => f.write_str("all_64"), Elements::All8 => f.write_str("all_8"), + Elements::And1 => f.write_str("and_1"), Elements::And16 => f.write_str("and_16"), Elements::And32 => f.write_str("and_32"), Elements::And64 => f.write_str("and_64"), @@ -4921,6 +7732,7 @@ impl fmt::Display for Elements { Elements::CalculateConfidentialToken => f.write_str("calculate_confidential_token"), Elements::CalculateExplicitToken => f.write_str("calculate_explicit_token"), Elements::CalculateIssuanceEntropy => f.write_str("calculate_issuance_entropy"), + Elements::Ch1 => f.write_str("ch_1"), Elements::Ch16 => f.write_str("ch_16"), Elements::Ch32 => f.write_str("ch_32"), Elements::Ch64 => f.write_str("ch_64"), @@ -4930,6 +7742,7 @@ impl fmt::Display for Elements { Elements::CheckLockHeight => f.write_str("check_lock_height"), Elements::CheckLockTime => f.write_str("check_lock_time"), Elements::CheckSigVerify => f.write_str("check_sig_verify"), + Elements::Complement1 => f.write_str("complement_1"), Elements::Complement16 => f.write_str("complement_16"), Elements::Complement32 => f.write_str("complement_32"), Elements::Complement64 => f.write_str("complement_64"), @@ -4967,6 +7780,7 @@ impl fmt::Display for Elements { Elements::Divides32 => f.write_str("divides_32"), Elements::Divides64 => f.write_str("divides_64"), Elements::Divides8 => f.write_str("divides_8"), + Elements::Eq1 => f.write_str("eq_1"), Elements::Eq16 => f.write_str("eq_16"), Elements::Eq256 => f.write_str("eq_256"), Elements::Eq32 => f.write_str("eq_32"), @@ -4994,10 +7808,46 @@ impl fmt::Display for Elements { Elements::FullIncrement32 => f.write_str("full_increment_32"), Elements::FullIncrement64 => f.write_str("full_increment_64"), Elements::FullIncrement8 => f.write_str("full_increment_8"), + Elements::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"), + Elements::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"), + Elements::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"), + Elements::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"), + Elements::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"), + Elements::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"), + Elements::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"), + Elements::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"), + Elements::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"), + Elements::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"), + Elements::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"), + Elements::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"), + Elements::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"), + Elements::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"), + Elements::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"), + Elements::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"), + Elements::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"), + Elements::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"), Elements::FullMultiply16 => f.write_str("full_multiply_16"), Elements::FullMultiply32 => f.write_str("full_multiply_32"), Elements::FullMultiply64 => f.write_str("full_multiply_64"), Elements::FullMultiply8 => f.write_str("full_multiply_8"), + Elements::FullRightShift16_1 => f.write_str("full_right_shift_16_1"), + Elements::FullRightShift16_2 => f.write_str("full_right_shift_16_2"), + Elements::FullRightShift16_4 => f.write_str("full_right_shift_16_4"), + Elements::FullRightShift16_8 => f.write_str("full_right_shift_16_8"), + Elements::FullRightShift32_1 => f.write_str("full_right_shift_32_1"), + Elements::FullRightShift32_16 => f.write_str("full_right_shift_32_16"), + Elements::FullRightShift32_2 => f.write_str("full_right_shift_32_2"), + Elements::FullRightShift32_4 => f.write_str("full_right_shift_32_4"), + Elements::FullRightShift32_8 => f.write_str("full_right_shift_32_8"), + Elements::FullRightShift64_1 => f.write_str("full_right_shift_64_1"), + Elements::FullRightShift64_16 => f.write_str("full_right_shift_64_16"), + Elements::FullRightShift64_2 => f.write_str("full_right_shift_64_2"), + Elements::FullRightShift64_32 => f.write_str("full_right_shift_64_32"), + Elements::FullRightShift64_4 => f.write_str("full_right_shift_64_4"), + Elements::FullRightShift64_8 => f.write_str("full_right_shift_64_8"), + Elements::FullRightShift8_1 => f.write_str("full_right_shift_8_1"), + Elements::FullRightShift8_2 => f.write_str("full_right_shift_8_2"), + Elements::FullRightShift8_4 => f.write_str("full_right_shift_8_4"), Elements::FullSubtract16 => f.write_str("full_subtract_16"), Elements::FullSubtract32 => f.write_str("full_subtract_32"), Elements::FullSubtract64 => f.write_str("full_subtract_64"), @@ -5018,6 +7868,7 @@ impl fmt::Display for Elements { Elements::GejYIsOdd => f.write_str("gej_y_is_odd"), Elements::Generate => f.write_str("generate"), Elements::GenesisBlockHash => f.write_str("genesis_block_hash"), + Elements::High1 => f.write_str("high_1"), Elements::High16 => f.write_str("high_16"), Elements::High32 => f.write_str("high_32"), Elements::High64 => f.write_str("high_64"), @@ -5068,9 +7919,70 @@ impl fmt::Display for Elements { Elements::Le32 => f.write_str("le_32"), Elements::Le64 => f.write_str("le_64"), Elements::Le8 => f.write_str("le_8"), + Elements::LeftExtend16_32 => f.write_str("left_extend_16_32"), + Elements::LeftExtend16_64 => f.write_str("left_extend_16_64"), + Elements::LeftExtend1_16 => f.write_str("left_extend_1_16"), + Elements::LeftExtend1_32 => f.write_str("left_extend_1_32"), + Elements::LeftExtend1_64 => f.write_str("left_extend_1_64"), + Elements::LeftExtend1_8 => f.write_str("left_extend_1_8"), + Elements::LeftExtend32_64 => f.write_str("left_extend_32_64"), + Elements::LeftExtend8_16 => f.write_str("left_extend_8_16"), + Elements::LeftExtend8_32 => f.write_str("left_extend_8_32"), + Elements::LeftExtend8_64 => f.write_str("left_extend_8_64"), + Elements::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"), + Elements::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"), + Elements::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"), + Elements::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"), + Elements::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"), + Elements::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"), + Elements::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"), + Elements::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"), + Elements::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"), + Elements::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"), + Elements::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"), + Elements::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"), + Elements::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"), + Elements::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"), + Elements::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"), + Elements::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"), + Elements::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"), + Elements::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"), + Elements::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"), + Elements::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"), + Elements::LeftRotate16 => f.write_str("left_rotate_16"), + Elements::LeftRotate32 => f.write_str("left_rotate_32"), + Elements::LeftRotate64 => f.write_str("left_rotate_64"), + Elements::LeftRotate8 => f.write_str("left_rotate_8"), + Elements::LeftShift16 => f.write_str("left_shift_16"), + Elements::LeftShift32 => f.write_str("left_shift_32"), + Elements::LeftShift64 => f.write_str("left_shift_64"), + Elements::LeftShift8 => f.write_str("left_shift_8"), + Elements::LeftShiftWith16 => f.write_str("left_shift_with_16"), + Elements::LeftShiftWith32 => f.write_str("left_shift_with_32"), + Elements::LeftShiftWith64 => f.write_str("left_shift_with_64"), + Elements::LeftShiftWith8 => f.write_str("left_shift_with_8"), + Elements::Leftmost16_1 => f.write_str("leftmost_16_1"), + Elements::Leftmost16_2 => f.write_str("leftmost_16_2"), + Elements::Leftmost16_4 => f.write_str("leftmost_16_4"), + Elements::Leftmost16_8 => f.write_str("leftmost_16_8"), + Elements::Leftmost32_1 => f.write_str("leftmost_32_1"), + Elements::Leftmost32_16 => f.write_str("leftmost_32_16"), + Elements::Leftmost32_2 => f.write_str("leftmost_32_2"), + Elements::Leftmost32_4 => f.write_str("leftmost_32_4"), + Elements::Leftmost32_8 => f.write_str("leftmost_32_8"), + Elements::Leftmost64_1 => f.write_str("leftmost_64_1"), + Elements::Leftmost64_16 => f.write_str("leftmost_64_16"), + Elements::Leftmost64_2 => f.write_str("leftmost_64_2"), + Elements::Leftmost64_32 => f.write_str("leftmost_64_32"), + Elements::Leftmost64_4 => f.write_str("leftmost_64_4"), + Elements::Leftmost64_8 => f.write_str("leftmost_64_8"), + Elements::Leftmost8_1 => f.write_str("leftmost_8_1"), + Elements::Leftmost8_2 => f.write_str("leftmost_8_2"), + Elements::Leftmost8_4 => f.write_str("leftmost_8_4"), Elements::LinearCombination1 => f.write_str("linear_combination_1"), Elements::LinearVerify1 => f.write_str("linear_verify_1"), Elements::LockTime => f.write_str("lock_time"), + Elements::Low1 => f.write_str("low_1"), Elements::Low16 => f.write_str("low_16"), Elements::Low32 => f.write_str("low_32"), Elements::Low64 => f.write_str("low_64"), @@ -5079,6 +7991,7 @@ impl fmt::Display for Elements { Elements::Lt32 => f.write_str("lt_32"), Elements::Lt64 => f.write_str("lt_64"), Elements::Lt8 => f.write_str("lt_8"), + Elements::Maj1 => f.write_str("maj_1"), Elements::Maj16 => f.write_str("maj_16"), Elements::Maj32 => f.write_str("maj_32"), Elements::Maj64 => f.write_str("maj_64"), @@ -5115,6 +8028,7 @@ impl fmt::Display for Elements { Elements::One32 => f.write_str("one_32"), Elements::One64 => f.write_str("one_64"), Elements::One8 => f.write_str("one_8"), + Elements::Or1 => f.write_str("or_1"), Elements::Or16 => f.write_str("or_16"), Elements::Or32 => f.write_str("or_32"), Elements::Or64 => f.write_str("or_64"), @@ -5139,6 +8053,62 @@ impl fmt::Display for Elements { Elements::PointVerify1 => f.write_str("point_verify_1"), Elements::ReissuanceBlinding => f.write_str("reissuance_blinding"), Elements::ReissuanceEntropy => f.write_str("reissuance_entropy"), + Elements::RightExtend16_32 => f.write_str("right_extend_16_32"), + Elements::RightExtend16_64 => f.write_str("right_extend_16_64"), + Elements::RightExtend32_64 => f.write_str("right_extend_32_64"), + Elements::RightExtend8_16 => f.write_str("right_extend_8_16"), + Elements::RightExtend8_32 => f.write_str("right_extend_8_32"), + Elements::RightExtend8_64 => f.write_str("right_extend_8_64"), + Elements::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"), + Elements::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"), + Elements::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"), + Elements::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"), + Elements::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"), + Elements::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"), + Elements::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"), + Elements::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"), + Elements::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"), + Elements::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"), + Elements::RightPadLow16_32 => f.write_str("right_pad_low_16_32"), + Elements::RightPadLow16_64 => f.write_str("right_pad_low_16_64"), + Elements::RightPadLow1_16 => f.write_str("right_pad_low_1_16"), + Elements::RightPadLow1_32 => f.write_str("right_pad_low_1_32"), + Elements::RightPadLow1_64 => f.write_str("right_pad_low_1_64"), + Elements::RightPadLow1_8 => f.write_str("right_pad_low_1_8"), + Elements::RightPadLow32_64 => f.write_str("right_pad_low_32_64"), + Elements::RightPadLow8_16 => f.write_str("right_pad_low_8_16"), + Elements::RightPadLow8_32 => f.write_str("right_pad_low_8_32"), + Elements::RightPadLow8_64 => f.write_str("right_pad_low_8_64"), + Elements::RightRotate16 => f.write_str("right_rotate_16"), + Elements::RightRotate32 => f.write_str("right_rotate_32"), + Elements::RightRotate64 => f.write_str("right_rotate_64"), + Elements::RightRotate8 => f.write_str("right_rotate_8"), + Elements::RightShift16 => f.write_str("right_shift_16"), + Elements::RightShift32 => f.write_str("right_shift_32"), + Elements::RightShift64 => f.write_str("right_shift_64"), + Elements::RightShift8 => f.write_str("right_shift_8"), + Elements::RightShiftWith16 => f.write_str("right_shift_with_16"), + Elements::RightShiftWith32 => f.write_str("right_shift_with_32"), + Elements::RightShiftWith64 => f.write_str("right_shift_with_64"), + Elements::RightShiftWith8 => f.write_str("right_shift_with_8"), + Elements::Rightmost16_1 => f.write_str("rightmost_16_1"), + Elements::Rightmost16_2 => f.write_str("rightmost_16_2"), + Elements::Rightmost16_4 => f.write_str("rightmost_16_4"), + Elements::Rightmost16_8 => f.write_str("rightmost_16_8"), + Elements::Rightmost32_1 => f.write_str("rightmost_32_1"), + Elements::Rightmost32_16 => f.write_str("rightmost_32_16"), + Elements::Rightmost32_2 => f.write_str("rightmost_32_2"), + Elements::Rightmost32_4 => f.write_str("rightmost_32_4"), + Elements::Rightmost32_8 => f.write_str("rightmost_32_8"), + Elements::Rightmost64_1 => f.write_str("rightmost_64_1"), + Elements::Rightmost64_16 => f.write_str("rightmost_64_16"), + Elements::Rightmost64_2 => f.write_str("rightmost_64_2"), + Elements::Rightmost64_32 => f.write_str("rightmost_64_32"), + Elements::Rightmost64_4 => f.write_str("rightmost_64_4"), + Elements::Rightmost64_8 => f.write_str("rightmost_64_8"), + Elements::Rightmost8_1 => f.write_str("rightmost_8_1"), + Elements::Rightmost8_2 => f.write_str("rightmost_8_2"), + Elements::Rightmost8_4 => f.write_str("rightmost_8_4"), Elements::ScalarAdd => f.write_str("scalar_add"), Elements::ScalarInvert => f.write_str("scalar_invert"), Elements::ScalarIsZero => f.write_str("scalar_is_zero"), @@ -5165,6 +8135,7 @@ impl fmt::Display for Elements { Elements::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"), Elements::Sha256Iv => f.write_str("sha_256_iv"), Elements::SigAllHash => f.write_str("sig_all_hash"), + Elements::Some1 => f.write_str("some_1"), Elements::Some16 => f.write_str("some_16"), Elements::Some32 => f.write_str("some_32"), Elements::Some64 => f.write_str("some_64"), @@ -5186,10 +8157,12 @@ impl fmt::Display for Elements { Elements::TxLockTime => f.write_str("tx_lock_time"), Elements::Verify => f.write_str("verify"), Elements::Version => f.write_str("version"), + Elements::Xor1 => f.write_str("xor_1"), Elements::Xor16 => f.write_str("xor_16"), Elements::Xor32 => f.write_str("xor_32"), Elements::Xor64 => f.write_str("xor_64"), Elements::Xor8 => f.write_str("xor_8"), + Elements::XorXor1 => f.write_str("xor_xor_1"), Elements::XorXor16 => f.write_str("xor_xor_16"), Elements::XorXor32 => f.write_str("xor_xor_32"), Elements::XorXor64 => f.write_str("xor_xor_64"), @@ -5211,6 +8184,7 @@ impl str::FromStr for Elements { "all_32" => Ok(Elements::All32), "all_64" => Ok(Elements::All64), "all_8" => Ok(Elements::All8), + "and_1" => Ok(Elements::And1), "and_16" => Ok(Elements::And16), "and_32" => Ok(Elements::And32), "and_64" => Ok(Elements::And64), @@ -5224,6 +8198,7 @@ impl str::FromStr for Elements { "calculate_confidential_token" => Ok(Elements::CalculateConfidentialToken), "calculate_explicit_token" => Ok(Elements::CalculateExplicitToken), "calculate_issuance_entropy" => Ok(Elements::CalculateIssuanceEntropy), + "ch_1" => Ok(Elements::Ch1), "ch_16" => Ok(Elements::Ch16), "ch_32" => Ok(Elements::Ch32), "ch_64" => Ok(Elements::Ch64), @@ -5233,6 +8208,7 @@ impl str::FromStr for Elements { "check_lock_height" => Ok(Elements::CheckLockHeight), "check_lock_time" => Ok(Elements::CheckLockTime), "check_sig_verify" => Ok(Elements::CheckSigVerify), + "complement_1" => Ok(Elements::Complement1), "complement_16" => Ok(Elements::Complement16), "complement_32" => Ok(Elements::Complement32), "complement_64" => Ok(Elements::Complement64), @@ -5270,6 +8246,7 @@ impl str::FromStr for Elements { "divides_32" => Ok(Elements::Divides32), "divides_64" => Ok(Elements::Divides64), "divides_8" => Ok(Elements::Divides8), + "eq_1" => Ok(Elements::Eq1), "eq_16" => Ok(Elements::Eq16), "eq_256" => Ok(Elements::Eq256), "eq_32" => Ok(Elements::Eq32), @@ -5297,10 +8274,46 @@ impl str::FromStr for Elements { "full_increment_32" => Ok(Elements::FullIncrement32), "full_increment_64" => Ok(Elements::FullIncrement64), "full_increment_8" => Ok(Elements::FullIncrement8), + "full_left_shift_16_1" => Ok(Elements::FullLeftShift16_1), + "full_left_shift_16_2" => Ok(Elements::FullLeftShift16_2), + "full_left_shift_16_4" => Ok(Elements::FullLeftShift16_4), + "full_left_shift_16_8" => Ok(Elements::FullLeftShift16_8), + "full_left_shift_32_1" => Ok(Elements::FullLeftShift32_1), + "full_left_shift_32_16" => Ok(Elements::FullLeftShift32_16), + "full_left_shift_32_2" => Ok(Elements::FullLeftShift32_2), + "full_left_shift_32_4" => Ok(Elements::FullLeftShift32_4), + "full_left_shift_32_8" => Ok(Elements::FullLeftShift32_8), + "full_left_shift_64_1" => Ok(Elements::FullLeftShift64_1), + "full_left_shift_64_16" => Ok(Elements::FullLeftShift64_16), + "full_left_shift_64_2" => Ok(Elements::FullLeftShift64_2), + "full_left_shift_64_32" => Ok(Elements::FullLeftShift64_32), + "full_left_shift_64_4" => Ok(Elements::FullLeftShift64_4), + "full_left_shift_64_8" => Ok(Elements::FullLeftShift64_8), + "full_left_shift_8_1" => Ok(Elements::FullLeftShift8_1), + "full_left_shift_8_2" => Ok(Elements::FullLeftShift8_2), + "full_left_shift_8_4" => Ok(Elements::FullLeftShift8_4), "full_multiply_16" => Ok(Elements::FullMultiply16), "full_multiply_32" => Ok(Elements::FullMultiply32), "full_multiply_64" => Ok(Elements::FullMultiply64), "full_multiply_8" => Ok(Elements::FullMultiply8), + "full_right_shift_16_1" => Ok(Elements::FullRightShift16_1), + "full_right_shift_16_2" => Ok(Elements::FullRightShift16_2), + "full_right_shift_16_4" => Ok(Elements::FullRightShift16_4), + "full_right_shift_16_8" => Ok(Elements::FullRightShift16_8), + "full_right_shift_32_1" => Ok(Elements::FullRightShift32_1), + "full_right_shift_32_16" => Ok(Elements::FullRightShift32_16), + "full_right_shift_32_2" => Ok(Elements::FullRightShift32_2), + "full_right_shift_32_4" => Ok(Elements::FullRightShift32_4), + "full_right_shift_32_8" => Ok(Elements::FullRightShift32_8), + "full_right_shift_64_1" => Ok(Elements::FullRightShift64_1), + "full_right_shift_64_16" => Ok(Elements::FullRightShift64_16), + "full_right_shift_64_2" => Ok(Elements::FullRightShift64_2), + "full_right_shift_64_32" => Ok(Elements::FullRightShift64_32), + "full_right_shift_64_4" => Ok(Elements::FullRightShift64_4), + "full_right_shift_64_8" => Ok(Elements::FullRightShift64_8), + "full_right_shift_8_1" => Ok(Elements::FullRightShift8_1), + "full_right_shift_8_2" => Ok(Elements::FullRightShift8_2), + "full_right_shift_8_4" => Ok(Elements::FullRightShift8_4), "full_subtract_16" => Ok(Elements::FullSubtract16), "full_subtract_32" => Ok(Elements::FullSubtract32), "full_subtract_64" => Ok(Elements::FullSubtract64), @@ -5321,6 +8334,7 @@ impl str::FromStr for Elements { "gej_y_is_odd" => Ok(Elements::GejYIsOdd), "generate" => Ok(Elements::Generate), "genesis_block_hash" => Ok(Elements::GenesisBlockHash), + "high_1" => Ok(Elements::High1), "high_16" => Ok(Elements::High16), "high_32" => Ok(Elements::High32), "high_64" => Ok(Elements::High64), @@ -5371,9 +8385,70 @@ impl str::FromStr for Elements { "le_32" => Ok(Elements::Le32), "le_64" => Ok(Elements::Le64), "le_8" => Ok(Elements::Le8), + "left_extend_16_32" => Ok(Elements::LeftExtend16_32), + "left_extend_16_64" => Ok(Elements::LeftExtend16_64), + "left_extend_1_16" => Ok(Elements::LeftExtend1_16), + "left_extend_1_32" => Ok(Elements::LeftExtend1_32), + "left_extend_1_64" => Ok(Elements::LeftExtend1_64), + "left_extend_1_8" => Ok(Elements::LeftExtend1_8), + "left_extend_32_64" => Ok(Elements::LeftExtend32_64), + "left_extend_8_16" => Ok(Elements::LeftExtend8_16), + "left_extend_8_32" => Ok(Elements::LeftExtend8_32), + "left_extend_8_64" => Ok(Elements::LeftExtend8_64), + "left_pad_high_16_32" => Ok(Elements::LeftPadHigh16_32), + "left_pad_high_16_64" => Ok(Elements::LeftPadHigh16_64), + "left_pad_high_1_16" => Ok(Elements::LeftPadHigh1_16), + "left_pad_high_1_32" => Ok(Elements::LeftPadHigh1_32), + "left_pad_high_1_64" => Ok(Elements::LeftPadHigh1_64), + "left_pad_high_1_8" => Ok(Elements::LeftPadHigh1_8), + "left_pad_high_32_64" => Ok(Elements::LeftPadHigh32_64), + "left_pad_high_8_16" => Ok(Elements::LeftPadHigh8_16), + "left_pad_high_8_32" => Ok(Elements::LeftPadHigh8_32), + "left_pad_high_8_64" => Ok(Elements::LeftPadHigh8_64), + "left_pad_low_16_32" => Ok(Elements::LeftPadLow16_32), + "left_pad_low_16_64" => Ok(Elements::LeftPadLow16_64), + "left_pad_low_1_16" => Ok(Elements::LeftPadLow1_16), + "left_pad_low_1_32" => Ok(Elements::LeftPadLow1_32), + "left_pad_low_1_64" => Ok(Elements::LeftPadLow1_64), + "left_pad_low_1_8" => Ok(Elements::LeftPadLow1_8), + "left_pad_low_32_64" => Ok(Elements::LeftPadLow32_64), + "left_pad_low_8_16" => Ok(Elements::LeftPadLow8_16), + "left_pad_low_8_32" => Ok(Elements::LeftPadLow8_32), + "left_pad_low_8_64" => Ok(Elements::LeftPadLow8_64), + "left_rotate_16" => Ok(Elements::LeftRotate16), + "left_rotate_32" => Ok(Elements::LeftRotate32), + "left_rotate_64" => Ok(Elements::LeftRotate64), + "left_rotate_8" => Ok(Elements::LeftRotate8), + "left_shift_16" => Ok(Elements::LeftShift16), + "left_shift_32" => Ok(Elements::LeftShift32), + "left_shift_64" => Ok(Elements::LeftShift64), + "left_shift_8" => Ok(Elements::LeftShift8), + "left_shift_with_16" => Ok(Elements::LeftShiftWith16), + "left_shift_with_32" => Ok(Elements::LeftShiftWith32), + "left_shift_with_64" => Ok(Elements::LeftShiftWith64), + "left_shift_with_8" => Ok(Elements::LeftShiftWith8), + "leftmost_16_1" => Ok(Elements::Leftmost16_1), + "leftmost_16_2" => Ok(Elements::Leftmost16_2), + "leftmost_16_4" => Ok(Elements::Leftmost16_4), + "leftmost_16_8" => Ok(Elements::Leftmost16_8), + "leftmost_32_1" => Ok(Elements::Leftmost32_1), + "leftmost_32_16" => Ok(Elements::Leftmost32_16), + "leftmost_32_2" => Ok(Elements::Leftmost32_2), + "leftmost_32_4" => Ok(Elements::Leftmost32_4), + "leftmost_32_8" => Ok(Elements::Leftmost32_8), + "leftmost_64_1" => Ok(Elements::Leftmost64_1), + "leftmost_64_16" => Ok(Elements::Leftmost64_16), + "leftmost_64_2" => Ok(Elements::Leftmost64_2), + "leftmost_64_32" => Ok(Elements::Leftmost64_32), + "leftmost_64_4" => Ok(Elements::Leftmost64_4), + "leftmost_64_8" => Ok(Elements::Leftmost64_8), + "leftmost_8_1" => Ok(Elements::Leftmost8_1), + "leftmost_8_2" => Ok(Elements::Leftmost8_2), + "leftmost_8_4" => Ok(Elements::Leftmost8_4), "linear_combination_1" => Ok(Elements::LinearCombination1), "linear_verify_1" => Ok(Elements::LinearVerify1), "lock_time" => Ok(Elements::LockTime), + "low_1" => Ok(Elements::Low1), "low_16" => Ok(Elements::Low16), "low_32" => Ok(Elements::Low32), "low_64" => Ok(Elements::Low64), @@ -5382,6 +8457,7 @@ impl str::FromStr for Elements { "lt_32" => Ok(Elements::Lt32), "lt_64" => Ok(Elements::Lt64), "lt_8" => Ok(Elements::Lt8), + "maj_1" => Ok(Elements::Maj1), "maj_16" => Ok(Elements::Maj16), "maj_32" => Ok(Elements::Maj32), "maj_64" => Ok(Elements::Maj64), @@ -5418,6 +8494,7 @@ impl str::FromStr for Elements { "one_32" => Ok(Elements::One32), "one_64" => Ok(Elements::One64), "one_8" => Ok(Elements::One8), + "or_1" => Ok(Elements::Or1), "or_16" => Ok(Elements::Or16), "or_32" => Ok(Elements::Or32), "or_64" => Ok(Elements::Or64), @@ -5442,6 +8519,62 @@ impl str::FromStr for Elements { "point_verify_1" => Ok(Elements::PointVerify1), "reissuance_blinding" => Ok(Elements::ReissuanceBlinding), "reissuance_entropy" => Ok(Elements::ReissuanceEntropy), + "right_extend_16_32" => Ok(Elements::RightExtend16_32), + "right_extend_16_64" => Ok(Elements::RightExtend16_64), + "right_extend_32_64" => Ok(Elements::RightExtend32_64), + "right_extend_8_16" => Ok(Elements::RightExtend8_16), + "right_extend_8_32" => Ok(Elements::RightExtend8_32), + "right_extend_8_64" => Ok(Elements::RightExtend8_64), + "right_pad_high_16_32" => Ok(Elements::RightPadHigh16_32), + "right_pad_high_16_64" => Ok(Elements::RightPadHigh16_64), + "right_pad_high_1_16" => Ok(Elements::RightPadHigh1_16), + "right_pad_high_1_32" => Ok(Elements::RightPadHigh1_32), + "right_pad_high_1_64" => Ok(Elements::RightPadHigh1_64), + "right_pad_high_1_8" => Ok(Elements::RightPadHigh1_8), + "right_pad_high_32_64" => Ok(Elements::RightPadHigh32_64), + "right_pad_high_8_16" => Ok(Elements::RightPadHigh8_16), + "right_pad_high_8_32" => Ok(Elements::RightPadHigh8_32), + "right_pad_high_8_64" => Ok(Elements::RightPadHigh8_64), + "right_pad_low_16_32" => Ok(Elements::RightPadLow16_32), + "right_pad_low_16_64" => Ok(Elements::RightPadLow16_64), + "right_pad_low_1_16" => Ok(Elements::RightPadLow1_16), + "right_pad_low_1_32" => Ok(Elements::RightPadLow1_32), + "right_pad_low_1_64" => Ok(Elements::RightPadLow1_64), + "right_pad_low_1_8" => Ok(Elements::RightPadLow1_8), + "right_pad_low_32_64" => Ok(Elements::RightPadLow32_64), + "right_pad_low_8_16" => Ok(Elements::RightPadLow8_16), + "right_pad_low_8_32" => Ok(Elements::RightPadLow8_32), + "right_pad_low_8_64" => Ok(Elements::RightPadLow8_64), + "right_rotate_16" => Ok(Elements::RightRotate16), + "right_rotate_32" => Ok(Elements::RightRotate32), + "right_rotate_64" => Ok(Elements::RightRotate64), + "right_rotate_8" => Ok(Elements::RightRotate8), + "right_shift_16" => Ok(Elements::RightShift16), + "right_shift_32" => Ok(Elements::RightShift32), + "right_shift_64" => Ok(Elements::RightShift64), + "right_shift_8" => Ok(Elements::RightShift8), + "right_shift_with_16" => Ok(Elements::RightShiftWith16), + "right_shift_with_32" => Ok(Elements::RightShiftWith32), + "right_shift_with_64" => Ok(Elements::RightShiftWith64), + "right_shift_with_8" => Ok(Elements::RightShiftWith8), + "rightmost_16_1" => Ok(Elements::Rightmost16_1), + "rightmost_16_2" => Ok(Elements::Rightmost16_2), + "rightmost_16_4" => Ok(Elements::Rightmost16_4), + "rightmost_16_8" => Ok(Elements::Rightmost16_8), + "rightmost_32_1" => Ok(Elements::Rightmost32_1), + "rightmost_32_16" => Ok(Elements::Rightmost32_16), + "rightmost_32_2" => Ok(Elements::Rightmost32_2), + "rightmost_32_4" => Ok(Elements::Rightmost32_4), + "rightmost_32_8" => Ok(Elements::Rightmost32_8), + "rightmost_64_1" => Ok(Elements::Rightmost64_1), + "rightmost_64_16" => Ok(Elements::Rightmost64_16), + "rightmost_64_2" => Ok(Elements::Rightmost64_2), + "rightmost_64_32" => Ok(Elements::Rightmost64_32), + "rightmost_64_4" => Ok(Elements::Rightmost64_4), + "rightmost_64_8" => Ok(Elements::Rightmost64_8), + "rightmost_8_1" => Ok(Elements::Rightmost8_1), + "rightmost_8_2" => Ok(Elements::Rightmost8_2), + "rightmost_8_4" => Ok(Elements::Rightmost8_4), "scalar_add" => Ok(Elements::ScalarAdd), "scalar_invert" => Ok(Elements::ScalarInvert), "scalar_is_zero" => Ok(Elements::ScalarIsZero), @@ -5468,6 +8601,7 @@ impl str::FromStr for Elements { "sha_256_ctx_8_init" => Ok(Elements::Sha256Ctx8Init), "sha_256_iv" => Ok(Elements::Sha256Iv), "sig_all_hash" => Ok(Elements::SigAllHash), + "some_1" => Ok(Elements::Some1), "some_16" => Ok(Elements::Some16), "some_32" => Ok(Elements::Some32), "some_64" => Ok(Elements::Some64), @@ -5489,10 +8623,12 @@ impl str::FromStr for Elements { "tx_lock_time" => Ok(Elements::TxLockTime), "verify" => Ok(Elements::Verify), "version" => Ok(Elements::Version), + "xor_1" => Ok(Elements::Xor1), "xor_16" => Ok(Elements::Xor16), "xor_32" => Ok(Elements::Xor32), "xor_64" => Ok(Elements::Xor64), "xor_8" => Ok(Elements::Xor8), + "xor_xor_1" => Ok(Elements::XorXor1), "xor_xor_16" => Ok(Elements::XorXor16), "xor_xor_32" => Ok(Elements::XorXor32), "xor_xor_64" => Ok(Elements::XorXor64),