Skip to main content

simplicity/jet/init/
elements.rs

1/* This file has been automatically generated. */
2
3use crate::jet::type_name::TypeName;
4use crate::jet::Jet;
5use crate::merkle::cmr::Cmr;
6use crate::decode_bits;
7use crate::{decode, BitIter, BitWriter};
8use crate::analysis::Cost;
9use hashes::sha256::Midstate;
10use simplicity_sys::CFrameItem;
11use std::io::Write;
12use std::{fmt, str};
13use simplicity_sys::CElementsTxEnv;
14
15/// The Elements jet family.
16#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Debug, Hash)]
17pub enum Elements {
18    Add16,
19    Add32,
20    Add64,
21    Add8,
22    All16,
23    All32,
24    All64,
25    All8,
26    And1,
27    And16,
28    And32,
29    And64,
30    And8,
31    AnnexHash,
32    AssetAmountHash,
33    Bip0340Verify,
34    BrokenDoNotUseCheckLockDistance,
35    BrokenDoNotUseCheckLockDuration,
36    BrokenDoNotUseTxLockDistance,
37    BrokenDoNotUseTxLockDuration,
38    BuildTapbranch,
39    BuildTapleafSimplicity,
40    BuildTaptweak,
41    CalculateAsset,
42    CalculateConfidentialToken,
43    CalculateExplicitToken,
44    CalculateIssuanceEntropy,
45    Ch1,
46    Ch16,
47    Ch32,
48    Ch64,
49    Ch8,
50    CheckLockHeight,
51    CheckLockTime,
52    CheckSigVerify,
53    Complement1,
54    Complement16,
55    Complement32,
56    Complement64,
57    Complement8,
58    CurrentAmount,
59    CurrentAnnexHash,
60    CurrentAsset,
61    CurrentIndex,
62    CurrentIssuanceAssetAmount,
63    CurrentIssuanceAssetProof,
64    CurrentIssuanceTokenAmount,
65    CurrentIssuanceTokenProof,
66    CurrentNewIssuanceContract,
67    CurrentPegin,
68    CurrentPrevOutpoint,
69    CurrentReissuanceBlinding,
70    CurrentReissuanceEntropy,
71    CurrentScriptHash,
72    CurrentScriptSigHash,
73    CurrentSequence,
74    Decompress,
75    Decrement16,
76    Decrement32,
77    Decrement64,
78    Decrement8,
79    DivMod128_64,
80    DivMod16,
81    DivMod32,
82    DivMod64,
83    DivMod8,
84    Divide16,
85    Divide32,
86    Divide64,
87    Divide8,
88    Divides16,
89    Divides32,
90    Divides64,
91    Divides8,
92    Eq1,
93    Eq16,
94    Eq256,
95    Eq32,
96    Eq64,
97    Eq8,
98    FeAdd,
99    FeInvert,
100    FeIsOdd,
101    FeIsZero,
102    FeMultiply,
103    FeMultiplyBeta,
104    FeNegate,
105    FeNormalize,
106    FeSquare,
107    FeSquareRoot,
108    FullAdd16,
109    FullAdd32,
110    FullAdd64,
111    FullAdd8,
112    FullDecrement16,
113    FullDecrement32,
114    FullDecrement64,
115    FullDecrement8,
116    FullIncrement16,
117    FullIncrement32,
118    FullIncrement64,
119    FullIncrement8,
120    FullLeftShift16_1,
121    FullLeftShift16_2,
122    FullLeftShift16_4,
123    FullLeftShift16_8,
124    FullLeftShift32_1,
125    FullLeftShift32_16,
126    FullLeftShift32_2,
127    FullLeftShift32_4,
128    FullLeftShift32_8,
129    FullLeftShift64_1,
130    FullLeftShift64_16,
131    FullLeftShift64_2,
132    FullLeftShift64_32,
133    FullLeftShift64_4,
134    FullLeftShift64_8,
135    FullLeftShift8_1,
136    FullLeftShift8_2,
137    FullLeftShift8_4,
138    FullMultiply16,
139    FullMultiply32,
140    FullMultiply64,
141    FullMultiply8,
142    FullRightShift16_1,
143    FullRightShift16_2,
144    FullRightShift16_4,
145    FullRightShift16_8,
146    FullRightShift32_1,
147    FullRightShift32_16,
148    FullRightShift32_2,
149    FullRightShift32_4,
150    FullRightShift32_8,
151    FullRightShift64_1,
152    FullRightShift64_16,
153    FullRightShift64_2,
154    FullRightShift64_32,
155    FullRightShift64_4,
156    FullRightShift64_8,
157    FullRightShift8_1,
158    FullRightShift8_2,
159    FullRightShift8_4,
160    FullSubtract16,
161    FullSubtract32,
162    FullSubtract64,
163    FullSubtract8,
164    GeIsOnCurve,
165    GeNegate,
166    GejAdd,
167    GejDouble,
168    GejEquiv,
169    GejGeAdd,
170    GejGeAddEx,
171    GejGeEquiv,
172    GejInfinity,
173    GejIsInfinity,
174    GejIsOnCurve,
175    GejNegate,
176    GejNormalize,
177    GejRescale,
178    GejXEquiv,
179    GejYIsOdd,
180    Generate,
181    GenesisBlockHash,
182    HashToCurve,
183    High1,
184    High16,
185    High32,
186    High64,
187    High8,
188    Increment16,
189    Increment32,
190    Increment64,
191    Increment8,
192    InputAmount,
193    InputAmountsHash,
194    InputAnnexHash,
195    InputAnnexesHash,
196    InputAsset,
197    InputHash,
198    InputOutpointsHash,
199    InputPegin,
200    InputPrevOutpoint,
201    InputScriptHash,
202    InputScriptSigHash,
203    InputScriptSigsHash,
204    InputScriptsHash,
205    InputSequence,
206    InputSequencesHash,
207    InputUtxoHash,
208    InputUtxosHash,
209    InputsHash,
210    InternalKey,
211    IsOne16,
212    IsOne32,
213    IsOne64,
214    IsOne8,
215    IsZero16,
216    IsZero32,
217    IsZero64,
218    IsZero8,
219    Issuance,
220    IssuanceAsset,
221    IssuanceAssetAmount,
222    IssuanceAssetAmountsHash,
223    IssuanceAssetProof,
224    IssuanceBlindingEntropyHash,
225    IssuanceEntropy,
226    IssuanceHash,
227    IssuanceRangeProofsHash,
228    IssuanceToken,
229    IssuanceTokenAmount,
230    IssuanceTokenAmountsHash,
231    IssuanceTokenProof,
232    IssuancesHash,
233    LbtcAsset,
234    Le16,
235    Le32,
236    Le64,
237    Le8,
238    LeftExtend16_32,
239    LeftExtend16_64,
240    LeftExtend1_16,
241    LeftExtend1_32,
242    LeftExtend1_64,
243    LeftExtend1_8,
244    LeftExtend32_64,
245    LeftExtend8_16,
246    LeftExtend8_32,
247    LeftExtend8_64,
248    LeftPadHigh16_32,
249    LeftPadHigh16_64,
250    LeftPadHigh1_16,
251    LeftPadHigh1_32,
252    LeftPadHigh1_64,
253    LeftPadHigh1_8,
254    LeftPadHigh32_64,
255    LeftPadHigh8_16,
256    LeftPadHigh8_32,
257    LeftPadHigh8_64,
258    LeftPadLow16_32,
259    LeftPadLow16_64,
260    LeftPadLow1_16,
261    LeftPadLow1_32,
262    LeftPadLow1_64,
263    LeftPadLow1_8,
264    LeftPadLow32_64,
265    LeftPadLow8_16,
266    LeftPadLow8_32,
267    LeftPadLow8_64,
268    LeftRotate16,
269    LeftRotate32,
270    LeftRotate64,
271    LeftRotate8,
272    LeftShift16,
273    LeftShift32,
274    LeftShift64,
275    LeftShift8,
276    LeftShiftWith16,
277    LeftShiftWith32,
278    LeftShiftWith64,
279    LeftShiftWith8,
280    Leftmost16_1,
281    Leftmost16_2,
282    Leftmost16_4,
283    Leftmost16_8,
284    Leftmost32_1,
285    Leftmost32_16,
286    Leftmost32_2,
287    Leftmost32_4,
288    Leftmost32_8,
289    Leftmost64_1,
290    Leftmost64_16,
291    Leftmost64_2,
292    Leftmost64_32,
293    Leftmost64_4,
294    Leftmost64_8,
295    Leftmost8_1,
296    Leftmost8_2,
297    Leftmost8_4,
298    LinearCombination1,
299    LinearVerify1,
300    LockTime,
301    Low1,
302    Low16,
303    Low32,
304    Low64,
305    Low8,
306    Lt16,
307    Lt32,
308    Lt64,
309    Lt8,
310    Maj1,
311    Maj16,
312    Maj32,
313    Maj64,
314    Maj8,
315    Max16,
316    Max32,
317    Max64,
318    Max8,
319    Median16,
320    Median32,
321    Median64,
322    Median8,
323    Min16,
324    Min32,
325    Min64,
326    Min8,
327    Modulo16,
328    Modulo32,
329    Modulo64,
330    Modulo8,
331    Multiply16,
332    Multiply32,
333    Multiply64,
334    Multiply8,
335    Negate16,
336    Negate32,
337    Negate64,
338    Negate8,
339    NewIssuanceContract,
340    NonceHash,
341    NumInputs,
342    NumOutputs,
343    One16,
344    One32,
345    One64,
346    One8,
347    Or1,
348    Or16,
349    Or32,
350    Or64,
351    Or8,
352    OutpointHash,
353    OutputAmount,
354    OutputAmountsHash,
355    OutputAsset,
356    OutputHash,
357    OutputIsFee,
358    OutputNonce,
359    OutputNoncesHash,
360    OutputNullDatum,
361    OutputRangeProof,
362    OutputRangeProofsHash,
363    OutputScriptHash,
364    OutputScriptsHash,
365    OutputSurjectionProof,
366    OutputSurjectionProofsHash,
367    OutputsHash,
368    ParseLock,
369    ParseSequence,
370    PointVerify1,
371    ReissuanceBlinding,
372    ReissuanceEntropy,
373    RightExtend16_32,
374    RightExtend16_64,
375    RightExtend32_64,
376    RightExtend8_16,
377    RightExtend8_32,
378    RightExtend8_64,
379    RightPadHigh16_32,
380    RightPadHigh16_64,
381    RightPadHigh1_16,
382    RightPadHigh1_32,
383    RightPadHigh1_64,
384    RightPadHigh1_8,
385    RightPadHigh32_64,
386    RightPadHigh8_16,
387    RightPadHigh8_32,
388    RightPadHigh8_64,
389    RightPadLow16_32,
390    RightPadLow16_64,
391    RightPadLow1_16,
392    RightPadLow1_32,
393    RightPadLow1_64,
394    RightPadLow1_8,
395    RightPadLow32_64,
396    RightPadLow8_16,
397    RightPadLow8_32,
398    RightPadLow8_64,
399    RightRotate16,
400    RightRotate32,
401    RightRotate64,
402    RightRotate8,
403    RightShift16,
404    RightShift32,
405    RightShift64,
406    RightShift8,
407    RightShiftWith16,
408    RightShiftWith32,
409    RightShiftWith64,
410    RightShiftWith8,
411    Rightmost16_1,
412    Rightmost16_2,
413    Rightmost16_4,
414    Rightmost16_8,
415    Rightmost32_1,
416    Rightmost32_16,
417    Rightmost32_2,
418    Rightmost32_4,
419    Rightmost32_8,
420    Rightmost64_1,
421    Rightmost64_16,
422    Rightmost64_2,
423    Rightmost64_32,
424    Rightmost64_4,
425    Rightmost64_8,
426    Rightmost8_1,
427    Rightmost8_2,
428    Rightmost8_4,
429    ScalarAdd,
430    ScalarInvert,
431    ScalarIsZero,
432    ScalarMultiply,
433    ScalarMultiplyLambda,
434    ScalarNegate,
435    ScalarNormalize,
436    ScalarSquare,
437    Scale,
438    ScriptCMR,
439    Sha256Block,
440    Sha256Ctx8Add1,
441    Sha256Ctx8Add128,
442    Sha256Ctx8Add16,
443    Sha256Ctx8Add2,
444    Sha256Ctx8Add256,
445    Sha256Ctx8Add32,
446    Sha256Ctx8Add4,
447    Sha256Ctx8Add512,
448    Sha256Ctx8Add64,
449    Sha256Ctx8Add8,
450    Sha256Ctx8AddBuffer511,
451    Sha256Ctx8Finalize,
452    Sha256Ctx8Init,
453    Sha256Iv,
454    SigAllHash,
455    Some1,
456    Some16,
457    Some32,
458    Some64,
459    Some8,
460    Subtract16,
461    Subtract32,
462    Subtract64,
463    Subtract8,
464    Swu,
465    TapEnvHash,
466    TapdataInit,
467    TapleafHash,
468    TapleafVersion,
469    Tappath,
470    TappathHash,
471    TotalFee,
472    TransactionId,
473    TxHash,
474    TxIsFinal,
475    TxLockHeight,
476    TxLockTime,
477    Verify,
478    Version,
479    Xor1,
480    Xor16,
481    Xor32,
482    Xor64,
483    Xor8,
484    XorXor1,
485    XorXor16,
486    XorXor32,
487    XorXor64,
488    XorXor8,
489}
490
491impl Elements {
492    /// Array of all Elements jets.
493    pub const ALL: [Self; 471] = [
494        Self::Add16,
495        Self::Add32,
496        Self::Add64,
497        Self::Add8,
498        Self::All16,
499        Self::All32,
500        Self::All64,
501        Self::All8,
502        Self::And1,
503        Self::And16,
504        Self::And32,
505        Self::And64,
506        Self::And8,
507        Self::AnnexHash,
508        Self::AssetAmountHash,
509        Self::Bip0340Verify,
510        Self::BrokenDoNotUseCheckLockDistance,
511        Self::BrokenDoNotUseCheckLockDuration,
512        Self::BrokenDoNotUseTxLockDistance,
513        Self::BrokenDoNotUseTxLockDuration,
514        Self::BuildTapbranch,
515        Self::BuildTapleafSimplicity,
516        Self::BuildTaptweak,
517        Self::CalculateAsset,
518        Self::CalculateConfidentialToken,
519        Self::CalculateExplicitToken,
520        Self::CalculateIssuanceEntropy,
521        Self::Ch1,
522        Self::Ch16,
523        Self::Ch32,
524        Self::Ch64,
525        Self::Ch8,
526        Self::CheckLockHeight,
527        Self::CheckLockTime,
528        Self::CheckSigVerify,
529        Self::Complement1,
530        Self::Complement16,
531        Self::Complement32,
532        Self::Complement64,
533        Self::Complement8,
534        Self::CurrentAmount,
535        Self::CurrentAnnexHash,
536        Self::CurrentAsset,
537        Self::CurrentIndex,
538        Self::CurrentIssuanceAssetAmount,
539        Self::CurrentIssuanceAssetProof,
540        Self::CurrentIssuanceTokenAmount,
541        Self::CurrentIssuanceTokenProof,
542        Self::CurrentNewIssuanceContract,
543        Self::CurrentPegin,
544        Self::CurrentPrevOutpoint,
545        Self::CurrentReissuanceBlinding,
546        Self::CurrentReissuanceEntropy,
547        Self::CurrentScriptHash,
548        Self::CurrentScriptSigHash,
549        Self::CurrentSequence,
550        Self::Decompress,
551        Self::Decrement16,
552        Self::Decrement32,
553        Self::Decrement64,
554        Self::Decrement8,
555        Self::DivMod128_64,
556        Self::DivMod16,
557        Self::DivMod32,
558        Self::DivMod64,
559        Self::DivMod8,
560        Self::Divide16,
561        Self::Divide32,
562        Self::Divide64,
563        Self::Divide8,
564        Self::Divides16,
565        Self::Divides32,
566        Self::Divides64,
567        Self::Divides8,
568        Self::Eq1,
569        Self::Eq16,
570        Self::Eq256,
571        Self::Eq32,
572        Self::Eq64,
573        Self::Eq8,
574        Self::FeAdd,
575        Self::FeInvert,
576        Self::FeIsOdd,
577        Self::FeIsZero,
578        Self::FeMultiply,
579        Self::FeMultiplyBeta,
580        Self::FeNegate,
581        Self::FeNormalize,
582        Self::FeSquare,
583        Self::FeSquareRoot,
584        Self::FullAdd16,
585        Self::FullAdd32,
586        Self::FullAdd64,
587        Self::FullAdd8,
588        Self::FullDecrement16,
589        Self::FullDecrement32,
590        Self::FullDecrement64,
591        Self::FullDecrement8,
592        Self::FullIncrement16,
593        Self::FullIncrement32,
594        Self::FullIncrement64,
595        Self::FullIncrement8,
596        Self::FullLeftShift16_1,
597        Self::FullLeftShift16_2,
598        Self::FullLeftShift16_4,
599        Self::FullLeftShift16_8,
600        Self::FullLeftShift32_1,
601        Self::FullLeftShift32_16,
602        Self::FullLeftShift32_2,
603        Self::FullLeftShift32_4,
604        Self::FullLeftShift32_8,
605        Self::FullLeftShift64_1,
606        Self::FullLeftShift64_16,
607        Self::FullLeftShift64_2,
608        Self::FullLeftShift64_32,
609        Self::FullLeftShift64_4,
610        Self::FullLeftShift64_8,
611        Self::FullLeftShift8_1,
612        Self::FullLeftShift8_2,
613        Self::FullLeftShift8_4,
614        Self::FullMultiply16,
615        Self::FullMultiply32,
616        Self::FullMultiply64,
617        Self::FullMultiply8,
618        Self::FullRightShift16_1,
619        Self::FullRightShift16_2,
620        Self::FullRightShift16_4,
621        Self::FullRightShift16_8,
622        Self::FullRightShift32_1,
623        Self::FullRightShift32_16,
624        Self::FullRightShift32_2,
625        Self::FullRightShift32_4,
626        Self::FullRightShift32_8,
627        Self::FullRightShift64_1,
628        Self::FullRightShift64_16,
629        Self::FullRightShift64_2,
630        Self::FullRightShift64_32,
631        Self::FullRightShift64_4,
632        Self::FullRightShift64_8,
633        Self::FullRightShift8_1,
634        Self::FullRightShift8_2,
635        Self::FullRightShift8_4,
636        Self::FullSubtract16,
637        Self::FullSubtract32,
638        Self::FullSubtract64,
639        Self::FullSubtract8,
640        Self::GeIsOnCurve,
641        Self::GeNegate,
642        Self::GejAdd,
643        Self::GejDouble,
644        Self::GejEquiv,
645        Self::GejGeAdd,
646        Self::GejGeAddEx,
647        Self::GejGeEquiv,
648        Self::GejInfinity,
649        Self::GejIsInfinity,
650        Self::GejIsOnCurve,
651        Self::GejNegate,
652        Self::GejNormalize,
653        Self::GejRescale,
654        Self::GejXEquiv,
655        Self::GejYIsOdd,
656        Self::Generate,
657        Self::GenesisBlockHash,
658        Self::HashToCurve,
659        Self::High1,
660        Self::High16,
661        Self::High32,
662        Self::High64,
663        Self::High8,
664        Self::Increment16,
665        Self::Increment32,
666        Self::Increment64,
667        Self::Increment8,
668        Self::InputAmount,
669        Self::InputAmountsHash,
670        Self::InputAnnexHash,
671        Self::InputAnnexesHash,
672        Self::InputAsset,
673        Self::InputHash,
674        Self::InputOutpointsHash,
675        Self::InputPegin,
676        Self::InputPrevOutpoint,
677        Self::InputScriptHash,
678        Self::InputScriptSigHash,
679        Self::InputScriptSigsHash,
680        Self::InputScriptsHash,
681        Self::InputSequence,
682        Self::InputSequencesHash,
683        Self::InputUtxoHash,
684        Self::InputUtxosHash,
685        Self::InputsHash,
686        Self::InternalKey,
687        Self::IsOne16,
688        Self::IsOne32,
689        Self::IsOne64,
690        Self::IsOne8,
691        Self::IsZero16,
692        Self::IsZero32,
693        Self::IsZero64,
694        Self::IsZero8,
695        Self::Issuance,
696        Self::IssuanceAsset,
697        Self::IssuanceAssetAmount,
698        Self::IssuanceAssetAmountsHash,
699        Self::IssuanceAssetProof,
700        Self::IssuanceBlindingEntropyHash,
701        Self::IssuanceEntropy,
702        Self::IssuanceHash,
703        Self::IssuanceRangeProofsHash,
704        Self::IssuanceToken,
705        Self::IssuanceTokenAmount,
706        Self::IssuanceTokenAmountsHash,
707        Self::IssuanceTokenProof,
708        Self::IssuancesHash,
709        Self::LbtcAsset,
710        Self::Le16,
711        Self::Le32,
712        Self::Le64,
713        Self::Le8,
714        Self::LeftExtend16_32,
715        Self::LeftExtend16_64,
716        Self::LeftExtend1_16,
717        Self::LeftExtend1_32,
718        Self::LeftExtend1_64,
719        Self::LeftExtend1_8,
720        Self::LeftExtend32_64,
721        Self::LeftExtend8_16,
722        Self::LeftExtend8_32,
723        Self::LeftExtend8_64,
724        Self::LeftPadHigh16_32,
725        Self::LeftPadHigh16_64,
726        Self::LeftPadHigh1_16,
727        Self::LeftPadHigh1_32,
728        Self::LeftPadHigh1_64,
729        Self::LeftPadHigh1_8,
730        Self::LeftPadHigh32_64,
731        Self::LeftPadHigh8_16,
732        Self::LeftPadHigh8_32,
733        Self::LeftPadHigh8_64,
734        Self::LeftPadLow16_32,
735        Self::LeftPadLow16_64,
736        Self::LeftPadLow1_16,
737        Self::LeftPadLow1_32,
738        Self::LeftPadLow1_64,
739        Self::LeftPadLow1_8,
740        Self::LeftPadLow32_64,
741        Self::LeftPadLow8_16,
742        Self::LeftPadLow8_32,
743        Self::LeftPadLow8_64,
744        Self::LeftRotate16,
745        Self::LeftRotate32,
746        Self::LeftRotate64,
747        Self::LeftRotate8,
748        Self::LeftShift16,
749        Self::LeftShift32,
750        Self::LeftShift64,
751        Self::LeftShift8,
752        Self::LeftShiftWith16,
753        Self::LeftShiftWith32,
754        Self::LeftShiftWith64,
755        Self::LeftShiftWith8,
756        Self::Leftmost16_1,
757        Self::Leftmost16_2,
758        Self::Leftmost16_4,
759        Self::Leftmost16_8,
760        Self::Leftmost32_1,
761        Self::Leftmost32_16,
762        Self::Leftmost32_2,
763        Self::Leftmost32_4,
764        Self::Leftmost32_8,
765        Self::Leftmost64_1,
766        Self::Leftmost64_16,
767        Self::Leftmost64_2,
768        Self::Leftmost64_32,
769        Self::Leftmost64_4,
770        Self::Leftmost64_8,
771        Self::Leftmost8_1,
772        Self::Leftmost8_2,
773        Self::Leftmost8_4,
774        Self::LinearCombination1,
775        Self::LinearVerify1,
776        Self::LockTime,
777        Self::Low1,
778        Self::Low16,
779        Self::Low32,
780        Self::Low64,
781        Self::Low8,
782        Self::Lt16,
783        Self::Lt32,
784        Self::Lt64,
785        Self::Lt8,
786        Self::Maj1,
787        Self::Maj16,
788        Self::Maj32,
789        Self::Maj64,
790        Self::Maj8,
791        Self::Max16,
792        Self::Max32,
793        Self::Max64,
794        Self::Max8,
795        Self::Median16,
796        Self::Median32,
797        Self::Median64,
798        Self::Median8,
799        Self::Min16,
800        Self::Min32,
801        Self::Min64,
802        Self::Min8,
803        Self::Modulo16,
804        Self::Modulo32,
805        Self::Modulo64,
806        Self::Modulo8,
807        Self::Multiply16,
808        Self::Multiply32,
809        Self::Multiply64,
810        Self::Multiply8,
811        Self::Negate16,
812        Self::Negate32,
813        Self::Negate64,
814        Self::Negate8,
815        Self::NewIssuanceContract,
816        Self::NonceHash,
817        Self::NumInputs,
818        Self::NumOutputs,
819        Self::One16,
820        Self::One32,
821        Self::One64,
822        Self::One8,
823        Self::Or1,
824        Self::Or16,
825        Self::Or32,
826        Self::Or64,
827        Self::Or8,
828        Self::OutpointHash,
829        Self::OutputAmount,
830        Self::OutputAmountsHash,
831        Self::OutputAsset,
832        Self::OutputHash,
833        Self::OutputIsFee,
834        Self::OutputNonce,
835        Self::OutputNoncesHash,
836        Self::OutputNullDatum,
837        Self::OutputRangeProof,
838        Self::OutputRangeProofsHash,
839        Self::OutputScriptHash,
840        Self::OutputScriptsHash,
841        Self::OutputSurjectionProof,
842        Self::OutputSurjectionProofsHash,
843        Self::OutputsHash,
844        Self::ParseLock,
845        Self::ParseSequence,
846        Self::PointVerify1,
847        Self::ReissuanceBlinding,
848        Self::ReissuanceEntropy,
849        Self::RightExtend16_32,
850        Self::RightExtend16_64,
851        Self::RightExtend32_64,
852        Self::RightExtend8_16,
853        Self::RightExtend8_32,
854        Self::RightExtend8_64,
855        Self::RightPadHigh16_32,
856        Self::RightPadHigh16_64,
857        Self::RightPadHigh1_16,
858        Self::RightPadHigh1_32,
859        Self::RightPadHigh1_64,
860        Self::RightPadHigh1_8,
861        Self::RightPadHigh32_64,
862        Self::RightPadHigh8_16,
863        Self::RightPadHigh8_32,
864        Self::RightPadHigh8_64,
865        Self::RightPadLow16_32,
866        Self::RightPadLow16_64,
867        Self::RightPadLow1_16,
868        Self::RightPadLow1_32,
869        Self::RightPadLow1_64,
870        Self::RightPadLow1_8,
871        Self::RightPadLow32_64,
872        Self::RightPadLow8_16,
873        Self::RightPadLow8_32,
874        Self::RightPadLow8_64,
875        Self::RightRotate16,
876        Self::RightRotate32,
877        Self::RightRotate64,
878        Self::RightRotate8,
879        Self::RightShift16,
880        Self::RightShift32,
881        Self::RightShift64,
882        Self::RightShift8,
883        Self::RightShiftWith16,
884        Self::RightShiftWith32,
885        Self::RightShiftWith64,
886        Self::RightShiftWith8,
887        Self::Rightmost16_1,
888        Self::Rightmost16_2,
889        Self::Rightmost16_4,
890        Self::Rightmost16_8,
891        Self::Rightmost32_1,
892        Self::Rightmost32_16,
893        Self::Rightmost32_2,
894        Self::Rightmost32_4,
895        Self::Rightmost32_8,
896        Self::Rightmost64_1,
897        Self::Rightmost64_16,
898        Self::Rightmost64_2,
899        Self::Rightmost64_32,
900        Self::Rightmost64_4,
901        Self::Rightmost64_8,
902        Self::Rightmost8_1,
903        Self::Rightmost8_2,
904        Self::Rightmost8_4,
905        Self::ScalarAdd,
906        Self::ScalarInvert,
907        Self::ScalarIsZero,
908        Self::ScalarMultiply,
909        Self::ScalarMultiplyLambda,
910        Self::ScalarNegate,
911        Self::ScalarNormalize,
912        Self::ScalarSquare,
913        Self::Scale,
914        Self::ScriptCMR,
915        Self::Sha256Block,
916        Self::Sha256Ctx8Add1,
917        Self::Sha256Ctx8Add128,
918        Self::Sha256Ctx8Add16,
919        Self::Sha256Ctx8Add2,
920        Self::Sha256Ctx8Add256,
921        Self::Sha256Ctx8Add32,
922        Self::Sha256Ctx8Add4,
923        Self::Sha256Ctx8Add512,
924        Self::Sha256Ctx8Add64,
925        Self::Sha256Ctx8Add8,
926        Self::Sha256Ctx8AddBuffer511,
927        Self::Sha256Ctx8Finalize,
928        Self::Sha256Ctx8Init,
929        Self::Sha256Iv,
930        Self::SigAllHash,
931        Self::Some1,
932        Self::Some16,
933        Self::Some32,
934        Self::Some64,
935        Self::Some8,
936        Self::Subtract16,
937        Self::Subtract32,
938        Self::Subtract64,
939        Self::Subtract8,
940        Self::Swu,
941        Self::TapEnvHash,
942        Self::TapdataInit,
943        Self::TapleafHash,
944        Self::TapleafVersion,
945        Self::Tappath,
946        Self::TappathHash,
947        Self::TotalFee,
948        Self::TransactionId,
949        Self::TxHash,
950        Self::TxIsFinal,
951        Self::TxLockHeight,
952        Self::TxLockTime,
953        Self::Verify,
954        Self::Version,
955        Self::Xor1,
956        Self::Xor16,
957        Self::Xor32,
958        Self::Xor64,
959        Self::Xor8,
960        Self::XorXor1,
961        Self::XorXor16,
962        Self::XorXor32,
963        Self::XorXor64,
964        Self::XorXor8,
965    ];
966}
967
968impl Jet for Elements {
969
970    fn cmr(&self) -> Cmr {
971        let bytes = match self {
972            Elements::Add16 => [
973                0x26, 0xae, 0x09, 0x94, 0xce, 0x8b, 0x77, 0x1a, 0xf7, 0xad, 0x28, 0x51, 0xb8, 0x3b,
974                0x49, 0xa5, 0x95, 0x05, 0x36, 0x58, 0x9f, 0x67, 0xbd, 0x85, 0x59, 0x47, 0x04, 0x60,
975                0x29, 0x75, 0x1c, 0x0d,
976            ],
977            Elements::Add32 => [
978                0x3d, 0x76, 0x74, 0x46, 0x6e, 0xd6, 0x9e, 0x1d, 0xbe, 0xdc, 0xd4, 0x80, 0x57, 0xa9,
979                0xe6, 0x28, 0x8c, 0x22, 0x25, 0x32, 0xfb, 0xc5, 0x04, 0x80, 0x49, 0x92, 0x8c, 0xfb,
980                0x77, 0xf8, 0x29, 0xd9,
981            ],
982            Elements::Add64 => [
983                0x9b, 0x56, 0xe6, 0x1e, 0xef, 0xe2, 0x80, 0x5c, 0xa8, 0x73, 0x96, 0xbd, 0xfb, 0x03,
984                0xf5, 0xe1, 0xb1, 0x38, 0x5f, 0x7a, 0xc4, 0xbf, 0xf7, 0x68, 0x40, 0x26, 0xa0, 0x7c,
985                0xf9, 0x7f, 0xb6, 0xf6,
986            ],
987            Elements::Add8 => [
988                0xd7, 0x32, 0x8c, 0x09, 0x14, 0xee, 0x99, 0x9e, 0xfa, 0x0a, 0x6c, 0xb2, 0x6e, 0xb4,
989                0x09, 0x12, 0xc2, 0x15, 0xc0, 0x62, 0xe5, 0x8a, 0x98, 0x1a, 0xe6, 0xb2, 0xe4, 0xa8,
990                0x04, 0x74, 0xa1, 0xda,
991            ],
992            Elements::All16 => [
993                0x16, 0xf0, 0xc9, 0x30, 0x7e, 0xb8, 0xf4, 0xc1, 0xfd, 0xd1, 0xba, 0xfa, 0xef, 0x28,
994                0x79, 0x24, 0x29, 0x58, 0x49, 0x8e, 0x8f, 0x5b, 0x2e, 0x0d, 0x29, 0xf0, 0x65, 0x53,
995                0xdc, 0x06, 0xa0, 0xbd,
996            ],
997            Elements::All32 => [
998                0x0e, 0xb8, 0xb4, 0x0d, 0x29, 0x02, 0x17, 0x47, 0xee, 0xc4, 0x51, 0xd4, 0xe6, 0x63,
999                0x58, 0x6a, 0x43, 0x6c, 0x2d, 0xb0, 0x93, 0x26, 0x75, 0xda, 0xf2, 0x16, 0x61, 0x23,
1000                0xbf, 0xe4, 0x52, 0xa6,
1001            ],
1002            Elements::All64 => [
1003                0xa6, 0x5c, 0x82, 0xd5, 0x3d, 0x38, 0x2e, 0xe2, 0x9a, 0xa8, 0x8b, 0x77, 0x18, 0xa9,
1004                0x7f, 0xbb, 0xce, 0x64, 0x75, 0xec, 0x32, 0xc4, 0xb4, 0xcd, 0x69, 0x08, 0xfd, 0xe4,
1005                0x5d, 0x81, 0xb6, 0x24,
1006            ],
1007            Elements::All8 => [
1008                0x1d, 0x3e, 0xc7, 0xfb, 0x6a, 0x07, 0x84, 0x7c, 0x92, 0xb8, 0xa9, 0x98, 0xe1, 0xf6,
1009                0xb4, 0x78, 0x31, 0x9d, 0x05, 0x0a, 0x38, 0x76, 0x42, 0xf4, 0x03, 0x2d, 0x2f, 0x7d,
1010                0x2e, 0x02, 0x7f, 0xcd,
1011            ],
1012            Elements::And1 => [
1013                0xb7, 0x73, 0xce, 0xfa, 0x41, 0x89, 0x57, 0xfe, 0xa7, 0xdf, 0xb4, 0x9c, 0x6c, 0x43,
1014                0xb3, 0xdb, 0xfa, 0x35, 0xfa, 0x3d, 0x80, 0xde, 0x8c, 0xfd, 0x4d, 0x70, 0xc0, 0x8d,
1015                0x94, 0x5f, 0x5f, 0xba,
1016            ],
1017            Elements::And16 => [
1018                0x57, 0xdd, 0x73, 0x0b, 0x1c, 0x8d, 0xdf, 0xf1, 0x3c, 0xae, 0x27, 0x69, 0x56, 0x2b,
1019                0xe0, 0xab, 0xc6, 0xca, 0x3b, 0xc8, 0x02, 0xda, 0x0a, 0xbb, 0xb7, 0xfc, 0x13, 0x8c,
1020                0xa4, 0x63, 0xda, 0x59,
1021            ],
1022            Elements::And32 => [
1023                0x75, 0x3e, 0x33, 0x2d, 0xdf, 0xa0, 0x96, 0xf0, 0x83, 0x99, 0xff, 0xaa, 0x7e, 0xc4,
1024                0xda, 0x40, 0x35, 0xbc, 0xba, 0xa1, 0x42, 0xe6, 0xe3, 0x8d, 0x4c, 0xb6, 0x07, 0xce,
1025                0x1f, 0x0b, 0x05, 0x1d,
1026            ],
1027            Elements::And64 => [
1028                0xf1, 0xad, 0x5e, 0x6c, 0x63, 0xee, 0x5c, 0x89, 0x0b, 0x0f, 0x2e, 0x71, 0x15, 0x61,
1029                0xb9, 0x05, 0x31, 0x64, 0x87, 0xac, 0x40, 0x44, 0xdd, 0x23, 0x0c, 0xf6, 0xa7, 0x36,
1030                0xf8, 0x1b, 0xd4, 0xf3,
1031            ],
1032            Elements::And8 => [
1033                0xac, 0x82, 0x8b, 0x72, 0x4c, 0x5f, 0x53, 0x40, 0xb5, 0x1e, 0x76, 0xe7, 0xb6, 0xe8,
1034                0xb2, 0x3a, 0xea, 0xb7, 0x53, 0x3f, 0xd8, 0xc0, 0x91, 0xae, 0x2a, 0x51, 0x55, 0x30,
1035                0xae, 0x7a, 0xb2, 0x00,
1036            ],
1037            Elements::AnnexHash => [
1038                0xeb, 0xa1, 0xb7, 0xfb, 0x2e, 0xa8, 0xd5, 0x7a, 0xf3, 0xb6, 0x27, 0x3e, 0x51, 0x82,
1039                0xfb, 0x99, 0xdb, 0x17, 0x08, 0xb2, 0xd0, 0xaf, 0xb9, 0xc6, 0xad, 0x03, 0x58, 0xcc,
1040                0x3f, 0x64, 0x7d, 0xc8,
1041            ],
1042            Elements::AssetAmountHash => [
1043                0xa8, 0x64, 0xd1, 0xf1, 0xf8, 0x39, 0x50, 0xb6, 0x31, 0x96, 0xfe, 0x88, 0xba, 0xec,
1044                0x2e, 0x42, 0x28, 0x95, 0x32, 0x30, 0xbe, 0x45, 0xc8, 0x8c, 0x4e, 0x0b, 0x99, 0x17,
1045                0x8b, 0x33, 0x8f, 0x07,
1046            ],
1047            Elements::Bip0340Verify => [
1048                0xc9, 0xc4, 0x5a, 0x8a, 0xec, 0x86, 0x59, 0x14, 0x3b, 0xfe, 0x2a, 0xf6, 0xea, 0xd4,
1049                0x8d, 0x4e, 0x05, 0x42, 0x45, 0x3a, 0xca, 0xe8, 0x4b, 0x9b, 0xbb, 0x97, 0x65, 0x6b,
1050                0x67, 0x0b, 0xdf, 0xdd,
1051            ],
1052            Elements::BrokenDoNotUseCheckLockDistance => [
1053                0x7f, 0x78, 0xc7, 0xa7, 0x7a, 0x25, 0xad, 0xa2, 0x23, 0x26, 0x7d, 0x23, 0x9a, 0x59,
1054                0x22, 0xf7, 0x64, 0xb8, 0xac, 0x0c, 0x2f, 0xce, 0xf6, 0x8e, 0xb9, 0x3c, 0x0d, 0x92,
1055                0xda, 0x4a, 0xf5, 0x15,
1056            ],
1057            Elements::BrokenDoNotUseCheckLockDuration => [
1058                0x73, 0xda, 0xc8, 0xe2, 0x5d, 0x87, 0xea, 0xf3, 0x82, 0xc2, 0xa7, 0x72, 0x06, 0xad,
1059                0x38, 0xb9, 0x38, 0x43, 0x61, 0xe7, 0xd0, 0xdc, 0x87, 0xc0, 0xfa, 0x7a, 0xf7, 0xea,
1060                0x52, 0x45, 0x97, 0xb7,
1061            ],
1062            Elements::BrokenDoNotUseTxLockDistance => [
1063                0x4c, 0x77, 0x73, 0xb8, 0x18, 0xcb, 0x7e, 0xe5, 0xf5, 0x4f, 0x92, 0x5a, 0xad, 0x01,
1064                0x56, 0x77, 0xa0, 0x43, 0xa7, 0x2f, 0x31, 0x6a, 0x18, 0x7c, 0xc2, 0x8c, 0x69, 0x6c,
1065                0xfc, 0xb9, 0x08, 0x07,
1066            ],
1067            Elements::BrokenDoNotUseTxLockDuration => [
1068                0xcc, 0x9c, 0x64, 0xc8, 0xb6, 0xeb, 0x4b, 0xf0, 0x96, 0x94, 0xaf, 0x5a, 0x35, 0xd9,
1069                0x57, 0xa4, 0x05, 0xe6, 0x6c, 0x1b, 0x35, 0x22, 0x4e, 0xd6, 0x75, 0x87, 0x89, 0x18,
1070                0x45, 0x24, 0x40, 0xb2,
1071            ],
1072            Elements::BuildTapbranch => [
1073                0xcb, 0xec, 0xf9, 0xbc, 0xe1, 0x72, 0xc5, 0x0f, 0x58, 0x59, 0x51, 0xdf, 0xf0, 0xe0,
1074                0x52, 0x3d, 0xb1, 0x09, 0xe5, 0x70, 0x25, 0xec, 0x37, 0xde, 0x2c, 0x3a, 0x74, 0xd4,
1075                0xa6, 0x73, 0xf2, 0x25,
1076            ],
1077            Elements::BuildTapleafSimplicity => [
1078                0x73, 0x6e, 0x9f, 0xce, 0xfb, 0x5b, 0x87, 0x3e, 0x09, 0xf2, 0x68, 0x1e, 0x74, 0xe4,
1079                0x9f, 0x5a, 0x10, 0x56, 0xf9, 0x0a, 0xf5, 0x2a, 0xb3, 0xec, 0x5b, 0x19, 0x77, 0x27,
1080                0xd3, 0x98, 0x34, 0xbe,
1081            ],
1082            Elements::BuildTaptweak => [
1083                0x38, 0x74, 0x1f, 0x80, 0xa2, 0xbf, 0x10, 0xf8, 0xf8, 0x72, 0x30, 0x77, 0xc6, 0x74,
1084                0x1c, 0xbe, 0xae, 0x2d, 0xca, 0xc8, 0x57, 0x90, 0x1b, 0x81, 0x37, 0x25, 0x80, 0x6f,
1085                0x21, 0x89, 0x8e, 0xe3,
1086            ],
1087            Elements::CalculateAsset => [
1088                0x67, 0x6f, 0x98, 0x8e, 0x54, 0x72, 0x51, 0xe7, 0xa0, 0x9e, 0xed, 0xe1, 0x92, 0x0a,
1089                0x9c, 0x5d, 0x35, 0xe7, 0x57, 0x59, 0xe6, 0xd8, 0xd4, 0x9b, 0x58, 0x0c, 0xeb, 0x3e,
1090                0x14, 0x6b, 0xcf, 0x7e,
1091            ],
1092            Elements::CalculateConfidentialToken => [
1093                0x8e, 0x40, 0x29, 0x05, 0x60, 0x74, 0x33, 0x98, 0x40, 0xc0, 0xe7, 0x00, 0x9b, 0x66,
1094                0xf3, 0x82, 0xbb, 0x98, 0xd7, 0xdd, 0xe7, 0x19, 0xdd, 0x2c, 0x9f, 0x2f, 0xd3, 0xac,
1095                0xd9, 0x32, 0x5a, 0xc6,
1096            ],
1097            Elements::CalculateExplicitToken => [
1098                0x87, 0x52, 0x28, 0x02, 0x0b, 0x45, 0x6c, 0x99, 0x8a, 0xad, 0x3a, 0xc5, 0xc4, 0x83,
1099                0x6f, 0x71, 0x94, 0x45, 0xdc, 0xbe, 0x6b, 0xd2, 0x74, 0xe8, 0xca, 0x14, 0x5d, 0x82,
1100                0x79, 0x7e, 0x1b, 0x92,
1101            ],
1102            Elements::CalculateIssuanceEntropy => [
1103                0xa6, 0xe7, 0xc4, 0x34, 0xae, 0xe5, 0xa7, 0x33, 0x0c, 0x1f, 0xc2, 0x46, 0xf7, 0x1d,
1104                0xcf, 0x05, 0x1c, 0xe5, 0x4b, 0xde, 0xe7, 0xb8, 0xe6, 0x39, 0x57, 0xbe, 0x18, 0xc2,
1105                0xd7, 0x51, 0xc6, 0x53,
1106            ],
1107            Elements::Ch1 => [
1108                0xb8, 0x41, 0xb8, 0x57, 0xa4, 0xaa, 0x50, 0xea, 0xca, 0x27, 0xa2, 0x6f, 0x74, 0x42,
1109                0xfc, 0xbf, 0xe9, 0x54, 0x67, 0x7a, 0xe6, 0xd4, 0x55, 0xf6, 0x05, 0x65, 0x49, 0x89,
1110                0xe3, 0x5a, 0xeb, 0x13,
1111            ],
1112            Elements::Ch16 => [
1113                0x9c, 0xff, 0x11, 0xa0, 0x9b, 0x60, 0x41, 0xe5, 0xf2, 0x63, 0x9a, 0xe4, 0xc0, 0x65,
1114                0xa1, 0x8f, 0xc6, 0x75, 0xdb, 0x2f, 0xbd, 0x98, 0x54, 0x08, 0xe2, 0x8f, 0x02, 0x7a,
1115                0x99, 0x11, 0x0e, 0x11,
1116            ],
1117            Elements::Ch32 => [
1118                0x07, 0x1c, 0xef, 0x80, 0x39, 0xc7, 0x9f, 0x71, 0x31, 0xcd, 0x6a, 0x5f, 0xe4, 0x93,
1119                0xdc, 0x26, 0x8f, 0x9d, 0xb5, 0x8f, 0x7b, 0x20, 0xa8, 0x55, 0x55, 0xe2, 0x97, 0xbd,
1120                0xd2, 0x16, 0xcf, 0x40,
1121            ],
1122            Elements::Ch64 => [
1123                0xd5, 0x55, 0xd2, 0x19, 0x63, 0xb0, 0x19, 0x2f, 0xc9, 0x72, 0x14, 0xb6, 0x3d, 0xc1,
1124                0xc3, 0xaf, 0x75, 0x8b, 0x29, 0x11, 0x58, 0xf0, 0xe1, 0xa3, 0xbc, 0xfd, 0xea, 0x67,
1125                0x9c, 0x66, 0x6d, 0xa6,
1126            ],
1127            Elements::Ch8 => [
1128                0x35, 0x3f, 0x63, 0xb0, 0xf8, 0xcb, 0x54, 0xf5, 0xae, 0x65, 0x75, 0xaf, 0x8c, 0xa2,
1129                0x24, 0x2c, 0xee, 0xe9, 0xf2, 0x7a, 0x84, 0x18, 0x6e, 0xb8, 0x0e, 0x62, 0x0d, 0x5e,
1130                0x2e, 0x85, 0x48, 0xec,
1131            ],
1132            Elements::CheckLockHeight => [
1133                0x9e, 0x78, 0x98, 0xd0, 0x37, 0x62, 0x71, 0x34, 0xd2, 0xbd, 0x70, 0xc7, 0xfc, 0xa9,
1134                0xcb, 0xa4, 0x5e, 0xaf, 0x26, 0x7d, 0x4d, 0x09, 0xad, 0x50, 0xa9, 0xef, 0x71, 0x7a,
1135                0x8f, 0x27, 0x49, 0xdb,
1136            ],
1137            Elements::CheckLockTime => [
1138                0x68, 0x67, 0x3d, 0x12, 0xe2, 0x73, 0x2f, 0xaa, 0x1d, 0x39, 0xe2, 0x13, 0x6b, 0x14,
1139                0x06, 0xaf, 0xa0, 0x98, 0xa8, 0x4c, 0x96, 0xe8, 0xd6, 0x05, 0x02, 0xa2, 0xdd, 0x61,
1140                0xc5, 0x95, 0x70, 0xbb,
1141            ],
1142            Elements::CheckSigVerify => [
1143                0xb5, 0x80, 0x15, 0x54, 0x6d, 0x28, 0x52, 0x66, 0x5d, 0xd2, 0x1b, 0xf1, 0x12, 0x66,
1144                0x26, 0x70, 0x20, 0xfa, 0x5e, 0x27, 0x50, 0x01, 0xdd, 0x46, 0x18, 0xfa, 0x41, 0x56,
1145                0x25, 0x95, 0x2e, 0x68,
1146            ],
1147            Elements::Complement1 => [
1148                0xed, 0x74, 0xee, 0xb8, 0x3a, 0x00, 0xc7, 0x13, 0xcc, 0x14, 0xf3, 0x3e, 0xfe, 0x55,
1149                0x33, 0x83, 0xcd, 0x04, 0x11, 0xcc, 0x30, 0x20, 0xfd, 0x89, 0x27, 0x93, 0x16, 0x67,
1150                0x5d, 0x91, 0x0e, 0x66,
1151            ],
1152            Elements::Complement16 => [
1153                0x61, 0xfd, 0xd9, 0x04, 0xa4, 0xae, 0xb7, 0xeb, 0x76, 0x84, 0xaf, 0x61, 0x8e, 0x25,
1154                0xaa, 0xe9, 0x07, 0xcd, 0x1d, 0xb0, 0xf6, 0x2d, 0x97, 0x03, 0xc5, 0xb8, 0x54, 0xe1,
1155                0x66, 0x3c, 0xac, 0x9f,
1156            ],
1157            Elements::Complement32 => [
1158                0xfe, 0xb0, 0x2c, 0xc3, 0x6e, 0x19, 0x5b, 0x46, 0x2a, 0xe5, 0x04, 0xa9, 0x12, 0xda,
1159                0xdf, 0xe6, 0x6a, 0xd4, 0x7f, 0x23, 0xa0, 0xcb, 0x3b, 0xae, 0xa2, 0x1d, 0x31, 0xaa,
1160                0xa0, 0xce, 0x10, 0x1d,
1161            ],
1162            Elements::Complement64 => [
1163                0x45, 0x07, 0x2d, 0x5a, 0xa0, 0xe5, 0xc3, 0x7c, 0x9e, 0x52, 0x1d, 0xcc, 0x92, 0xe8,
1164                0xf3, 0x9a, 0x5f, 0x75, 0xe7, 0xd9, 0x28, 0x67, 0x0a, 0xca, 0xb7, 0x9c, 0xd8, 0xc8,
1165                0xb5, 0xb5, 0x9e, 0x1a,
1166            ],
1167            Elements::Complement8 => [
1168                0x69, 0x16, 0xb2, 0x8f, 0xb5, 0x74, 0xd9, 0xc9, 0x08, 0xa3, 0xf3, 0x3f, 0x74, 0xbf,
1169                0x06, 0xf7, 0xed, 0x93, 0x72, 0x54, 0x24, 0x7f, 0x9e, 0xfc, 0x26, 0x03, 0xd7, 0x17,
1170                0x1d, 0xd4, 0x97, 0xbe,
1171            ],
1172            Elements::CurrentAmount => [
1173                0x9e, 0x7b, 0xc9, 0x6d, 0x06, 0xc1, 0xf4, 0xa4, 0xd2, 0xbd, 0x43, 0x33, 0xd5, 0x56,
1174                0x43, 0xcb, 0xa6, 0x86, 0x3d, 0x3a, 0x33, 0x8e, 0x31, 0xdc, 0x0d, 0x17, 0x95, 0x58,
1175                0x41, 0x56, 0xea, 0x69,
1176            ],
1177            Elements::CurrentAnnexHash => [
1178                0x5f, 0x68, 0xbd, 0xaf, 0xd4, 0x17, 0xfe, 0xbb, 0x10, 0xde, 0xe1, 0x6b, 0x1d, 0x47,
1179                0xc2, 0x1f, 0xa9, 0x7e, 0xfc, 0x91, 0x91, 0x57, 0xc7, 0xf7, 0xbc, 0x54, 0xa6, 0x1d,
1180                0xc4, 0xf9, 0xf7, 0xd6,
1181            ],
1182            Elements::CurrentAsset => [
1183                0x03, 0xc8, 0x44, 0x59, 0xa5, 0xec, 0xdf, 0xdb, 0x46, 0xe3, 0xd3, 0x8e, 0xcb, 0x79,
1184                0xff, 0x22, 0x24, 0x3f, 0xdc, 0xf7, 0x0d, 0x80, 0xda, 0x1b, 0xa4, 0x56, 0x99, 0xe7,
1185                0x00, 0x8e, 0xec, 0xfe,
1186            ],
1187            Elements::CurrentIndex => [
1188                0x15, 0xe1, 0x05, 0x1f, 0xf2, 0x3f, 0x85, 0x1c, 0x19, 0x13, 0x1f, 0x0d, 0xe6, 0xed,
1189                0xc4, 0x88, 0x23, 0x76, 0xa2, 0x57, 0x90, 0xdb, 0xd9, 0x10, 0x28, 0x24, 0xaa, 0x22,
1190                0xa8, 0x89, 0xae, 0x84,
1191            ],
1192            Elements::CurrentIssuanceAssetAmount => [
1193                0xdc, 0x41, 0x0e, 0xc6, 0x99, 0x46, 0xf0, 0x8b, 0x9c, 0x4a, 0x40, 0xcf, 0x38, 0x81,
1194                0x9c, 0xbb, 0x01, 0x4e, 0x98, 0xfc, 0xe0, 0xa9, 0xb1, 0x96, 0x51, 0x45, 0x57, 0x47,
1195                0x7f, 0xe1, 0xc2, 0xa7,
1196            ],
1197            Elements::CurrentIssuanceAssetProof => [
1198                0xe5, 0xc1, 0xc6, 0xf7, 0xea, 0x02, 0x96, 0x14, 0x8e, 0x76, 0xf8, 0xb1, 0x79, 0xd4,
1199                0x15, 0x19, 0x82, 0x73, 0xdc, 0xc8, 0xe1, 0xfd, 0x89, 0x1f, 0x83, 0xef, 0x2b, 0xdf,
1200                0xb0, 0x69, 0x29, 0x36,
1201            ],
1202            Elements::CurrentIssuanceTokenAmount => [
1203                0xe3, 0xea, 0x9c, 0x61, 0x70, 0x95, 0x5f, 0x27, 0xb0, 0x1b, 0x12, 0x0c, 0xd6, 0x3a,
1204                0x36, 0x08, 0x50, 0xcc, 0x70, 0x0f, 0x47, 0x25, 0x19, 0x3b, 0xdf, 0xf8, 0x8e, 0x01,
1205                0xdf, 0xb0, 0x4e, 0xad,
1206            ],
1207            Elements::CurrentIssuanceTokenProof => [
1208                0x92, 0xe7, 0xd9, 0xdd, 0xbf, 0x75, 0x6e, 0x3e, 0x62, 0x2a, 0x44, 0xd4, 0xd0, 0x0e,
1209                0x84, 0x23, 0x6b, 0xcc, 0xe4, 0x2f, 0x16, 0xf3, 0x20, 0x0e, 0x8b, 0x89, 0xc0, 0x3c,
1210                0x44, 0x1e, 0x45, 0x8a,
1211            ],
1212            Elements::CurrentNewIssuanceContract => [
1213                0x23, 0x78, 0x15, 0x67, 0x5e, 0x9e, 0x9c, 0xf4, 0xd8, 0x54, 0x85, 0x60, 0xc7, 0x61,
1214                0xe3, 0xba, 0x7f, 0x64, 0xdc, 0xf2, 0x5c, 0x99, 0x52, 0x1b, 0xe9, 0xd8, 0x57, 0xe4,
1215                0xea, 0x41, 0xd8, 0x68,
1216            ],
1217            Elements::CurrentPegin => [
1218                0x36, 0x9a, 0xd5, 0xf6, 0xd7, 0x60, 0x48, 0x1c, 0xb3, 0x53, 0xa9, 0xba, 0xcf, 0x90,
1219                0x0f, 0xf1, 0x62, 0xb7, 0x60, 0x40, 0xc0, 0x7a, 0xd0, 0xa8, 0x3e, 0x52, 0xfc, 0xce,
1220                0xf1, 0x29, 0x57, 0x90,
1221            ],
1222            Elements::CurrentPrevOutpoint => [
1223                0xa1, 0xec, 0x90, 0x9c, 0x81, 0xe5, 0x08, 0xe8, 0x6e, 0x13, 0x61, 0xba, 0x82, 0xe5,
1224                0xfb, 0x47, 0xa2, 0xc7, 0x6b, 0xff, 0xba, 0x73, 0x21, 0xa6, 0xfc, 0x13, 0xcb, 0x12,
1225                0xaf, 0x7f, 0x69, 0x7c,
1226            ],
1227            Elements::CurrentReissuanceBlinding => [
1228                0xb7, 0x15, 0x50, 0xc8, 0xf6, 0x2e, 0x7a, 0xac, 0xff, 0x13, 0xe8, 0xd3, 0xc0, 0xae,
1229                0x05, 0x4e, 0xf0, 0x36, 0x40, 0x9d, 0x76, 0xc0, 0x65, 0x79, 0xc0, 0x26, 0xad, 0x68,
1230                0xa1, 0xb5, 0x61, 0xf8,
1231            ],
1232            Elements::CurrentReissuanceEntropy => [
1233                0x8b, 0x27, 0x15, 0x32, 0x7a, 0x0a, 0xc6, 0xb0, 0xd1, 0x8a, 0x2e, 0x51, 0xfb, 0xda,
1234                0x46, 0xc4, 0xb1, 0x18, 0xee, 0x06, 0x37, 0xd1, 0x14, 0xae, 0x3e, 0x58, 0xa2, 0x3b,
1235                0x45, 0xd6, 0x7f, 0xf8,
1236            ],
1237            Elements::CurrentScriptHash => [
1238                0xbf, 0xaf, 0x85, 0x84, 0x43, 0xce, 0xc8, 0x33, 0x7e, 0x37, 0x83, 0x9d, 0xc4, 0x11,
1239                0x35, 0x02, 0x71, 0x84, 0x58, 0x0c, 0x89, 0x21, 0x57, 0xce, 0x73, 0x04, 0x18, 0xc0,
1240                0x8d, 0x5e, 0xd8, 0x38,
1241            ],
1242            Elements::CurrentScriptSigHash => [
1243                0x8b, 0xaa, 0x9d, 0xf8, 0x54, 0xfe, 0x33, 0xee, 0xea, 0x66, 0x19, 0x5c, 0x97, 0xce,
1244                0x18, 0xed, 0x70, 0x1e, 0x10, 0x7e, 0xea, 0x7e, 0x02, 0xfb, 0x26, 0x03, 0xb2, 0xc1,
1245                0x21, 0x57, 0x50, 0x66,
1246            ],
1247            Elements::CurrentSequence => [
1248                0x0f, 0x42, 0x24, 0xf9, 0xaa, 0x86, 0x44, 0xf5, 0xc0, 0xf7, 0x91, 0x0f, 0x17, 0x39,
1249                0x04, 0x1a, 0xec, 0x8e, 0x7a, 0xf7, 0x7b, 0x5f, 0x38, 0xcf, 0xdc, 0xa0, 0xfd, 0xf4,
1250                0x82, 0x67, 0xa6, 0xc3,
1251            ],
1252            Elements::Decompress => [
1253                0x13, 0x97, 0x33, 0x17, 0xd5, 0x87, 0x41, 0x8e, 0xf3, 0x06, 0x36, 0x31, 0xa6, 0xed,
1254                0xb0, 0xac, 0xfa, 0x1c, 0xbe, 0x49, 0x83, 0xd7, 0x57, 0x4b, 0x1b, 0x30, 0x5f, 0x96,
1255                0x61, 0xc0, 0x48, 0xcb,
1256            ],
1257            Elements::Decrement16 => [
1258                0xe3, 0x4d, 0xb1, 0x18, 0x79, 0x27, 0x2b, 0x32, 0x7a, 0x3b, 0xd0, 0x34, 0xc0, 0xf6,
1259                0x1e, 0xf6, 0x0a, 0x2b, 0xe9, 0x6f, 0xdf, 0xe0, 0xb2, 0xd5, 0x7f, 0xfe, 0x39, 0xce,
1260                0x71, 0x4c, 0x78, 0xfb,
1261            ],
1262            Elements::Decrement32 => [
1263                0x01, 0x9e, 0xad, 0x5a, 0x73, 0x05, 0x60, 0x6d, 0xc9, 0x50, 0xfb, 0x55, 0x47, 0x6d,
1264                0x09, 0xc1, 0x7d, 0x66, 0xf5, 0x70, 0xda, 0xb5, 0x10, 0xb9, 0x0d, 0x2a, 0x27, 0xe2,
1265                0x26, 0x65, 0x99, 0xcf,
1266            ],
1267            Elements::Decrement64 => [
1268                0x34, 0x75, 0x2c, 0xf4, 0xe1, 0xd0, 0xa4, 0x31, 0xf0, 0x17, 0xa6, 0x8b, 0xeb, 0xfa,
1269                0xb7, 0x41, 0xbb, 0xc8, 0x8a, 0xff, 0xb5, 0x7c, 0xc0, 0xb3, 0x02, 0x5c, 0xcf, 0xdd,
1270                0x67, 0x62, 0x2f, 0x35,
1271            ],
1272            Elements::Decrement8 => [
1273                0x28, 0x92, 0xce, 0xb3, 0xb6, 0xec, 0x53, 0x25, 0xd0, 0xc1, 0xb9, 0xf5, 0x20, 0x42,
1274                0x5e, 0x4b, 0x05, 0xc2, 0xe1, 0xf4, 0x37, 0xe0, 0xb3, 0xf5, 0x81, 0xf4, 0x1b, 0x9d,
1275                0x0f, 0x7d, 0xff, 0x4d,
1276            ],
1277            Elements::DivMod128_64 => [
1278                0x22, 0x96, 0xb7, 0x0f, 0x60, 0x0e, 0x8a, 0x21, 0x4a, 0xd0, 0x70, 0xb2, 0x19, 0x4a,
1279                0x67, 0x7d, 0x30, 0x51, 0xbc, 0x1c, 0x49, 0x01, 0x83, 0x97, 0x5f, 0x2a, 0x1d, 0x3e,
1280                0x0c, 0xad, 0xe3, 0x78,
1281            ],
1282            Elements::DivMod16 => [
1283                0x64, 0x8f, 0xab, 0x86, 0x43, 0x74, 0x84, 0x6a, 0xbf, 0x4f, 0x9d, 0x9d, 0xef, 0xe2,
1284                0x75, 0x61, 0x4d, 0x33, 0xf4, 0x82, 0x9c, 0x36, 0xa4, 0x7e, 0xcb, 0x53, 0xd7, 0xbf,
1285                0xb6, 0x05, 0x48, 0x5f,
1286            ],
1287            Elements::DivMod32 => [
1288                0xbd, 0x3d, 0x4d, 0x55, 0x2d, 0x7b, 0x34, 0x7b, 0xd8, 0xa4, 0x4e, 0x3e, 0xe2, 0x24,
1289                0xc8, 0x46, 0xbe, 0x23, 0x0f, 0xf6, 0xe2, 0x04, 0x4d, 0xdb, 0x97, 0xf4, 0x8e, 0x27,
1290                0xd2, 0x0c, 0x42, 0x25,
1291            ],
1292            Elements::DivMod64 => [
1293                0xfa, 0x6b, 0xad, 0x6a, 0x95, 0xe2, 0xab, 0xa4, 0x30, 0x5b, 0xfe, 0x91, 0xcc, 0x47,
1294                0xac, 0xc3, 0xd9, 0x9b, 0x92, 0xe6, 0x75, 0xe6, 0x9d, 0x3b, 0x37, 0xbb, 0x09, 0x13,
1295                0x3d, 0x39, 0x0d, 0x0f,
1296            ],
1297            Elements::DivMod8 => [
1298                0x48, 0xcd, 0x50, 0x1b, 0xb2, 0xaa, 0x2a, 0xca, 0xe0, 0x14, 0xfe, 0x20, 0x8b, 0xb9,
1299                0x94, 0x1d, 0x07, 0xa9, 0xbf, 0xfe, 0x1a, 0xd6, 0xcd, 0x3d, 0x36, 0xfc, 0x6b, 0x08,
1300                0x60, 0xf6, 0xeb, 0xa7,
1301            ],
1302            Elements::Divide16 => [
1303                0x47, 0x0b, 0x01, 0xa5, 0x7c, 0x4f, 0x9d, 0x8f, 0x99, 0x7f, 0xcd, 0xe0, 0x06, 0x19,
1304                0x16, 0x11, 0xdd, 0xa4, 0xc9, 0x8b, 0xa2, 0xa5, 0xf1, 0xda, 0x13, 0x4a, 0xe4, 0xc2,
1305                0x2d, 0x52, 0xe9, 0x20,
1306            ],
1307            Elements::Divide32 => [
1308                0xab, 0x03, 0xac, 0xd8, 0x93, 0x61, 0x0c, 0x3c, 0x65, 0x82, 0xe7, 0xf7, 0xfb, 0xe5,
1309                0xe7, 0x56, 0x25, 0x74, 0xa7, 0xb2, 0x66, 0x46, 0xf1, 0xc2, 0xfd, 0xc6, 0xe7, 0x6e,
1310                0x44, 0x5a, 0x77, 0xa1,
1311            ],
1312            Elements::Divide64 => [
1313                0xeb, 0xfc, 0x56, 0xfb, 0xb8, 0xa4, 0x7e, 0x73, 0xff, 0xab, 0xb7, 0xea, 0x22, 0x8a,
1314                0xc7, 0x84, 0x37, 0xbe, 0x82, 0x0e, 0xdd, 0xfa, 0x47, 0x81, 0x4c, 0xce, 0xbd, 0x26,
1315                0x1b, 0xd8, 0xcf, 0xff,
1316            ],
1317            Elements::Divide8 => [
1318                0x2c, 0xcf, 0xbc, 0x7c, 0x02, 0xbf, 0x4d, 0x53, 0x04, 0x93, 0xbb, 0x22, 0x86, 0x7a,
1319                0x95, 0x1d, 0x8a, 0xe9, 0x13, 0x12, 0x66, 0x87, 0x59, 0x72, 0x84, 0xe9, 0xbb, 0xb3,
1320                0xe1, 0xe7, 0xe3, 0x49,
1321            ],
1322            Elements::Divides16 => [
1323                0x5f, 0xc3, 0xac, 0x38, 0x4d, 0x5f, 0x45, 0x40, 0x41, 0x56, 0x97, 0x1a, 0x76, 0x8d,
1324                0x93, 0xbc, 0x06, 0x4b, 0xc1, 0x7c, 0x15, 0xa3, 0x7c, 0x27, 0x01, 0x9d, 0xde, 0xef,
1325                0x17, 0x04, 0x6d, 0xd4,
1326            ],
1327            Elements::Divides32 => [
1328                0xcc, 0x45, 0xb4, 0x05, 0x24, 0x64, 0x38, 0xf7, 0x65, 0x74, 0x0b, 0x4f, 0xb0, 0xa3,
1329                0x4d, 0xc8, 0x1b, 0x34, 0x78, 0x01, 0x98, 0x86, 0x3b, 0x0f, 0xb1, 0x86, 0x44, 0x6a,
1330                0xdf, 0xbb, 0x09, 0xde,
1331            ],
1332            Elements::Divides64 => [
1333                0xdc, 0x47, 0x3b, 0xfd, 0xec, 0x30, 0xab, 0x98, 0xd4, 0x8c, 0xd0, 0x88, 0x84, 0xef,
1334                0x4f, 0xff, 0xef, 0x3d, 0x4b, 0x16, 0xad, 0x5c, 0x37, 0x11, 0x2a, 0x20, 0x35, 0xb9,
1335                0x9b, 0xb7, 0x74, 0x58,
1336            ],
1337            Elements::Divides8 => [
1338                0x0b, 0x55, 0x02, 0xac, 0x4f, 0x21, 0xf2, 0x30, 0xa0, 0x9c, 0xcf, 0xaf, 0xfa, 0xac,
1339                0x77, 0xa7, 0xc4, 0x1b, 0x2b, 0xf3, 0x0b, 0x14, 0x68, 0x48, 0x1e, 0x4d, 0xfb, 0x98,
1340                0xb6, 0x18, 0x7a, 0x0d,
1341            ],
1342            Elements::Eq1 => [
1343                0x60, 0x7f, 0x6b, 0x8f, 0x5d, 0x25, 0xb8, 0x0e, 0x05, 0xa2, 0xbf, 0x79, 0xd6, 0x2e,
1344                0x87, 0x07, 0x99, 0x52, 0x2c, 0xc3, 0xe3, 0x9c, 0xe9, 0x62, 0x57, 0x45, 0x52, 0x93,
1345                0xf9, 0xb2, 0xb2, 0xed,
1346            ],
1347            Elements::Eq16 => [
1348                0xc9, 0x96, 0xe4, 0x2b, 0x97, 0x9a, 0xbc, 0x53, 0x0c, 0xc2, 0x71, 0x63, 0x66, 0x71,
1349                0xe9, 0x20, 0x54, 0x87, 0x6a, 0x1e, 0xca, 0xed, 0x14, 0x33, 0xfd, 0x61, 0x9a, 0x25,
1350                0xfe, 0x6d, 0x03, 0xad,
1351            ],
1352            Elements::Eq256 => [
1353                0x77, 0x8d, 0x15, 0x06, 0xc7, 0x35, 0xd2, 0x77, 0x6b, 0x95, 0x0f, 0xac, 0xef, 0xc1,
1354                0x59, 0xb6, 0x78, 0xde, 0xc0, 0x38, 0x28, 0xcf, 0x02, 0x73, 0xee, 0xea, 0x64, 0xa9,
1355                0xda, 0x98, 0xc1, 0x2c,
1356            ],
1357            Elements::Eq32 => [
1358                0x66, 0xd3, 0x89, 0x03, 0xe7, 0x3b, 0x1a, 0x13, 0x20, 0xc6, 0x8a, 0x4a, 0x39, 0x70,
1359                0xd7, 0x1f, 0x94, 0xba, 0x9e, 0x2b, 0x15, 0x16, 0x83, 0x99, 0x43, 0xfb, 0x15, 0xe4,
1360                0x4e, 0xbf, 0x57, 0xfb,
1361            ],
1362            Elements::Eq64 => [
1363                0xd6, 0xa6, 0x66, 0xb4, 0xe0, 0xf9, 0xf5, 0x75, 0x50, 0x8d, 0xbf, 0x3b, 0x31, 0xce,
1364                0xea, 0x68, 0x39, 0x3c, 0x7d, 0xb2, 0xe9, 0x8b, 0xc5, 0x92, 0xfd, 0xd2, 0x6f, 0xae,
1365                0x83, 0x7a, 0x0b, 0x87,
1366            ],
1367            Elements::Eq8 => [
1368                0x99, 0x78, 0x7b, 0xa2, 0x67, 0x2d, 0xd0, 0xeb, 0x4d, 0x7d, 0x2e, 0xa9, 0x94, 0x49,
1369                0xde, 0x8f, 0x79, 0x8e, 0x7c, 0xb1, 0x81, 0xa5, 0xe1, 0x66, 0xe1, 0xa5, 0x3f, 0x98,
1370                0x02, 0xb6, 0x20, 0x64,
1371            ],
1372            Elements::FeAdd => [
1373                0xb0, 0x59, 0x3e, 0x18, 0x7e, 0xe7, 0x33, 0x3c, 0x47, 0xa0, 0x54, 0x67, 0xdf, 0x66,
1374                0xd5, 0x82, 0x0a, 0x6f, 0x5b, 0xef, 0x91, 0x4a, 0x4b, 0x76, 0xe5, 0xd1, 0x63, 0x31,
1375                0x4b, 0x5e, 0xf2, 0x0e,
1376            ],
1377            Elements::FeInvert => [
1378                0x34, 0x3e, 0x9c, 0x90, 0xf1, 0x28, 0x50, 0x60, 0x56, 0xb5, 0x48, 0xd2, 0xed, 0x5e,
1379                0x22, 0x3c, 0x81, 0xf5, 0xb0, 0x6a, 0x1e, 0xd8, 0x6b, 0x7c, 0xd9, 0x35, 0x40, 0x57,
1380                0xaa, 0x59, 0x51, 0x02,
1381            ],
1382            Elements::FeIsOdd => [
1383                0xdc, 0xf0, 0x37, 0x5d, 0x20, 0x81, 0x8a, 0x99, 0xf7, 0x23, 0xf8, 0x12, 0x3c, 0xbd,
1384                0x05, 0x1a, 0x38, 0x78, 0xa4, 0x28, 0x24, 0xb3, 0x74, 0x0f, 0x68, 0x21, 0xa5, 0xfa,
1385                0x12, 0x3f, 0x14, 0xc7,
1386            ],
1387            Elements::FeIsZero => [
1388                0x28, 0xff, 0x41, 0x69, 0x9a, 0x88, 0x1a, 0xaf, 0xb7, 0xa9, 0x76, 0xc0, 0xc5, 0x76,
1389                0x35, 0x3f, 0x7f, 0xe5, 0x44, 0x63, 0xb6, 0xaa, 0x75, 0x4c, 0xf2, 0xc6, 0x32, 0x9a,
1390                0xf2, 0x65, 0x0e, 0x3b,
1391            ],
1392            Elements::FeMultiply => [
1393                0x56, 0x69, 0x92, 0x9b, 0x5f, 0x31, 0xfa, 0x3d, 0x02, 0xc5, 0x83, 0x9d, 0xd0, 0x63,
1394                0x54, 0xcd, 0x17, 0x16, 0x35, 0xf3, 0xa0, 0x72, 0x7f, 0x32, 0x2a, 0xbf, 0xc9, 0x94,
1395                0xba, 0x62, 0x90, 0xde,
1396            ],
1397            Elements::FeMultiplyBeta => [
1398                0x7a, 0x78, 0x13, 0x45, 0x0d, 0x82, 0xe9, 0x35, 0x69, 0x0f, 0x43, 0x3e, 0x65, 0xdf,
1399                0x70, 0x7a, 0x4d, 0xd1, 0x75, 0x34, 0xa0, 0x0d, 0xdd, 0x40, 0xdd, 0x85, 0xe3, 0xe3,
1400                0xf7, 0x84, 0x02, 0xc3,
1401            ],
1402            Elements::FeNegate => [
1403                0x3b, 0x0d, 0x7b, 0x5c, 0x2e, 0x6c, 0x3a, 0xeb, 0x5e, 0x00, 0x08, 0x5b, 0x9d, 0x30,
1404                0x58, 0x5a, 0xff, 0x05, 0x4e, 0x32, 0x5a, 0x99, 0x83, 0x61, 0x11, 0x3b, 0xfd, 0x23,
1405                0x28, 0xc0, 0x08, 0xf6,
1406            ],
1407            Elements::FeNormalize => [
1408                0xc5, 0x1b, 0xef, 0xfa, 0x21, 0x5e, 0x9c, 0xde, 0x8e, 0x93, 0x3b, 0xb9, 0x46, 0x80,
1409                0xba, 0xe0, 0x12, 0xc4, 0xda, 0xab, 0x3d, 0x04, 0xb6, 0xcb, 0xf0, 0x73, 0x3f, 0xd7,
1410                0x35, 0x73, 0x35, 0x38,
1411            ],
1412            Elements::FeSquare => [
1413                0x5a, 0x6e, 0x7b, 0x2e, 0xac, 0x73, 0xf4, 0xe4, 0x4d, 0xfa, 0x28, 0xfb, 0x86, 0xbb,
1414                0x11, 0x7b, 0x65, 0x60, 0x6f, 0x28, 0x74, 0xd5, 0x65, 0xc9, 0x79, 0x9c, 0x63, 0xe0,
1415                0xfe, 0x69, 0x2b, 0x1a,
1416            ],
1417            Elements::FeSquareRoot => [
1418                0xe0, 0x01, 0x42, 0xea, 0x03, 0x09, 0x4a, 0x30, 0x4a, 0xc8, 0x2b, 0xc1, 0xe2, 0xd2,
1419                0xdc, 0x71, 0xfb, 0x06, 0x4e, 0xd0, 0x82, 0x85, 0x67, 0x35, 0xb1, 0x4f, 0xf2, 0xc7,
1420                0xfa, 0xf0, 0x36, 0xf0,
1421            ],
1422            Elements::FullAdd16 => [
1423                0xfc, 0x9e, 0x5d, 0xf8, 0x3b, 0xfd, 0xb9, 0x02, 0x8c, 0x87, 0xd1, 0x39, 0xf8, 0x58,
1424                0x39, 0x03, 0xcb, 0x2a, 0x07, 0x04, 0x2a, 0x73, 0xe5, 0x34, 0x81, 0xde, 0xb5, 0x2f,
1425                0xf1, 0xf1, 0xf8, 0x84,
1426            ],
1427            Elements::FullAdd32 => [
1428                0xa7, 0xd9, 0x8d, 0x50, 0xd0, 0x45, 0xcb, 0x90, 0x6b, 0x19, 0x5e, 0x65, 0x11, 0x87,
1429                0x94, 0x95, 0xc8, 0x51, 0x09, 0x59, 0x49, 0xa9, 0xc0, 0x1e, 0x60, 0x39, 0xa8, 0x4b,
1430                0x2a, 0x5e, 0xc9, 0x09,
1431            ],
1432            Elements::FullAdd64 => [
1433                0x7a, 0xec, 0xc8, 0xc9, 0x05, 0x3b, 0xb2, 0xfb, 0x17, 0x0c, 0x1c, 0x97, 0x2f, 0xd4,
1434                0x00, 0x25, 0x64, 0xe1, 0x52, 0xa0, 0x6d, 0x9f, 0x45, 0x80, 0x75, 0xe3, 0x8c, 0x7a,
1435                0x06, 0x98, 0xa7, 0xf4,
1436            ],
1437            Elements::FullAdd8 => [
1438                0xed, 0x3b, 0xa5, 0xb7, 0x9e, 0xa4, 0x5b, 0x18, 0x7a, 0x2d, 0x43, 0xe8, 0xed, 0x80,
1439                0x2d, 0xe1, 0xed, 0x44, 0x26, 0x59, 0x6c, 0xbe, 0x32, 0xe7, 0x57, 0xc8, 0x51, 0x19,
1440                0x15, 0xff, 0xa5, 0xcf,
1441            ],
1442            Elements::FullDecrement16 => [
1443                0xd4, 0xc2, 0xed, 0xda, 0x87, 0x2c, 0x05, 0x50, 0x6f, 0x79, 0x2c, 0xf5, 0x46, 0xa8,
1444                0x9d, 0x4d, 0x7c, 0xff, 0xcb, 0x1e, 0x17, 0xf5, 0xda, 0x61, 0x03, 0x10, 0x0e, 0x7e,
1445                0x73, 0xa7, 0x73, 0x7d,
1446            ],
1447            Elements::FullDecrement32 => [
1448                0x7c, 0xc2, 0x30, 0x4d, 0x17, 0x43, 0x12, 0x10, 0x2e, 0x9b, 0x73, 0x63, 0x45, 0xc7,
1449                0x7f, 0x77, 0x1d, 0x1f, 0x6a, 0x9c, 0x9e, 0x1d, 0x1c, 0xd8, 0xdb, 0x8c, 0xb4, 0x61,
1450                0x39, 0x80, 0xc8, 0xc2,
1451            ],
1452            Elements::FullDecrement64 => [
1453                0x15, 0xc1, 0x63, 0x45, 0x4b, 0xcd, 0x75, 0x44, 0x30, 0xda, 0x55, 0x79, 0xbb, 0xca,
1454                0xad, 0x26, 0xe5, 0x7e, 0x95, 0xc7, 0x72, 0x22, 0x4b, 0x7b, 0x83, 0xc7, 0x05, 0xf7,
1455                0xde, 0xb6, 0x4a, 0xa6,
1456            ],
1457            Elements::FullDecrement8 => [
1458                0x7c, 0x5e, 0x94, 0xa9, 0x98, 0x02, 0x81, 0x82, 0x17, 0x37, 0xb1, 0xce, 0x73, 0xbf,
1459                0xda, 0x4c, 0x79, 0xef, 0x64, 0x9b, 0x3d, 0x05, 0xcc, 0x1c, 0x00, 0xc4, 0xa8, 0xb6,
1460                0x4b, 0x94, 0x9b, 0xbe,
1461            ],
1462            Elements::FullIncrement16 => [
1463                0x81, 0x38, 0x0a, 0xda, 0xa3, 0xa5, 0x47, 0xf1, 0xbc, 0x4b, 0xbb, 0x64, 0x6b, 0xda,
1464                0x9d, 0x9f, 0xb7, 0xbd, 0x4d, 0xc1, 0xb3, 0xa9, 0xf3, 0xdd, 0x22, 0x0b, 0x56, 0xa4,
1465                0x7c, 0x27, 0x98, 0xfb,
1466            ],
1467            Elements::FullIncrement32 => [
1468                0xa7, 0x60, 0xa8, 0x44, 0x9a, 0x2a, 0xb5, 0xde, 0xdb, 0x4e, 0xe5, 0x1b, 0xf5, 0xc2,
1469                0x5a, 0x8f, 0x06, 0xaf, 0x06, 0x66, 0xdf, 0x7f, 0xc4, 0x19, 0xb4, 0x98, 0xb9, 0x09,
1470                0x76, 0xd6, 0x98, 0xcb,
1471            ],
1472            Elements::FullIncrement64 => [
1473                0xc6, 0xaf, 0x30, 0xdd, 0x28, 0x6d, 0x6e, 0x21, 0xc3, 0x88, 0x60, 0xed, 0x1e, 0x2f,
1474                0x21, 0x2a, 0x21, 0xb2, 0xfd, 0x1e, 0xde, 0xad, 0xb5, 0xe0, 0xfc, 0xe2, 0xe3, 0xfd,
1475                0x75, 0xb7, 0xf3, 0xc2,
1476            ],
1477            Elements::FullIncrement8 => [
1478                0xd3, 0x04, 0xea, 0x28, 0xa9, 0x5d, 0x49, 0x6d, 0x14, 0xb4, 0xf2, 0xfb, 0x5c, 0x86,
1479                0x03, 0x72, 0xec, 0xf2, 0x47, 0xbe, 0xfd, 0xe3, 0xea, 0x3b, 0x2a, 0xd6, 0x7b, 0xce,
1480                0x99, 0x03, 0x9d, 0xbc,
1481            ],
1482            Elements::FullLeftShift16_1 => [
1483                0x14, 0xdc, 0xc3, 0x46, 0x6f, 0xa8, 0x28, 0xa3, 0xf0, 0x74, 0x04, 0x51, 0xb8, 0x03,
1484                0x7d, 0x7a, 0xd6, 0x03, 0xea, 0xdc, 0x80, 0xaa, 0xea, 0xdc, 0x66, 0x44, 0x34, 0xac,
1485                0x2a, 0xd7, 0xfd, 0x9c,
1486            ],
1487            Elements::FullLeftShift16_2 => [
1488                0xaf, 0xb7, 0xe9, 0x28, 0xb0, 0x52, 0xc2, 0x28, 0x79, 0x21, 0x66, 0x2c, 0xd8, 0xab,
1489                0x12, 0x2f, 0xe0, 0x74, 0xef, 0xd2, 0x51, 0xa5, 0xc9, 0xcf, 0xbc, 0xaa, 0x36, 0x9d,
1490                0x06, 0x33, 0x73, 0x92,
1491            ],
1492            Elements::FullLeftShift16_4 => [
1493                0x16, 0x6f, 0x34, 0x8c, 0x59, 0xe2, 0x6f, 0x89, 0xa8, 0x3a, 0x99, 0x1f, 0x67, 0xe5,
1494                0xdb, 0xf7, 0x10, 0xcf, 0xae, 0x3d, 0x6d, 0x96, 0x93, 0x82, 0x82, 0xbb, 0x44, 0xc1,
1495                0xaf, 0xa7, 0x10, 0x9b,
1496            ],
1497            Elements::FullLeftShift16_8 => [
1498                0xc0, 0xcd, 0x01, 0x5d, 0xe8, 0xac, 0x4f, 0xcc, 0xd8, 0xdb, 0x89, 0xf4, 0xe5, 0x14,
1499                0x2f, 0xde, 0x27, 0x97, 0x55, 0xb5, 0x42, 0xa2, 0x4f, 0x57, 0xa2, 0xa3, 0xc7, 0xc1,
1500                0xf5, 0x0d, 0x1d, 0xb5,
1501            ],
1502            Elements::FullLeftShift32_1 => [
1503                0xce, 0x33, 0xb5, 0xd0, 0xc5, 0x8d, 0x2d, 0x0b, 0x9b, 0x5a, 0x99, 0x44, 0xd3, 0xda,
1504                0xbd, 0xa0, 0x23, 0xcd, 0x44, 0x64, 0x7b, 0xe6, 0x7c, 0xf4, 0x08, 0x28, 0x30, 0xbb,
1505                0x20, 0x5f, 0x8f, 0xbb,
1506            ],
1507            Elements::FullLeftShift32_16 => [
1508                0x1c, 0xb3, 0x6e, 0x6f, 0x99, 0x30, 0x85, 0x15, 0xd4, 0xb7, 0x11, 0x90, 0x9c, 0x57,
1509                0x4b, 0x21, 0x24, 0xc1, 0xff, 0x42, 0x2d, 0x8d, 0x7d, 0x94, 0x82, 0xe2, 0x5d, 0x87,
1510                0x88, 0xb3, 0xb9, 0x57,
1511            ],
1512            Elements::FullLeftShift32_2 => [
1513                0x3f, 0xae, 0xa9, 0xb5, 0x73, 0xfc, 0x06, 0x9d, 0x8f, 0x43, 0x0f, 0xac, 0xa8, 0x97,
1514                0xb6, 0x87, 0x1e, 0xa0, 0x95, 0x73, 0xc7, 0x15, 0x09, 0x4b, 0x1f, 0x1b, 0xe0, 0x81,
1515                0x84, 0x88, 0xa7, 0x16,
1516            ],
1517            Elements::FullLeftShift32_4 => [
1518                0xcd, 0xbb, 0x0d, 0x23, 0x31, 0x05, 0x90, 0x11, 0x3c, 0x93, 0x4f, 0xe6, 0x60, 0x04,
1519                0xd2, 0xa1, 0x1d, 0xa9, 0xcb, 0xf8, 0x87, 0x3d, 0x00, 0xde, 0xe7, 0xf0, 0x22, 0x96,
1520                0xff, 0x0a, 0x2f, 0x12,
1521            ],
1522            Elements::FullLeftShift32_8 => [
1523                0xcc, 0xd9, 0x24, 0xe1, 0xa6, 0x18, 0x49, 0x42, 0x0f, 0xf6, 0x2e, 0xd8, 0xb2, 0x45,
1524                0xa3, 0xaa, 0x18, 0xc9, 0x8c, 0x41, 0xf9, 0xc5, 0xa3, 0xc0, 0xb8, 0x85, 0x86, 0x3c,
1525                0x44, 0x9b, 0x7d, 0x14,
1526            ],
1527            Elements::FullLeftShift64_1 => [
1528                0xd4, 0x63, 0xcc, 0xdc, 0x7f, 0xd1, 0x4e, 0x5e, 0x89, 0x41, 0x62, 0xb2, 0xae, 0x71,
1529                0x41, 0x28, 0xa1, 0x0d, 0xc9, 0x20, 0x00, 0xb5, 0x4c, 0x84, 0x3b, 0x64, 0x9c, 0xcb,
1530                0x77, 0x56, 0x26, 0xe5,
1531            ],
1532            Elements::FullLeftShift64_16 => [
1533                0x88, 0x2d, 0xce, 0x21, 0x2a, 0x0e, 0x61, 0xf8, 0xf9, 0x4c, 0xb5, 0xe3, 0x2e, 0x00,
1534                0xa5, 0x28, 0x7c, 0xf6, 0x4f, 0x20, 0xc2, 0x1f, 0xca, 0x84, 0xf1, 0xe3, 0xdf, 0x7f,
1535                0x4a, 0x62, 0x91, 0xcd,
1536            ],
1537            Elements::FullLeftShift64_2 => [
1538                0x48, 0xc8, 0x9b, 0x19, 0x1a, 0x51, 0xb6, 0xab, 0x03, 0x4c, 0x80, 0xea, 0xff, 0x34,
1539                0x82, 0x38, 0xd9, 0x3f, 0xb3, 0x1c, 0x1e, 0x92, 0xe7, 0xf2, 0xae, 0x49, 0x31, 0x7e,
1540                0x0e, 0x33, 0xf8, 0x2d,
1541            ],
1542            Elements::FullLeftShift64_32 => [
1543                0x39, 0x75, 0x90, 0x73, 0x33, 0xe1, 0x27, 0x30, 0x62, 0x55, 0xb7, 0xf8, 0x89, 0x39,
1544                0xe2, 0x85, 0x7f, 0x42, 0xae, 0x1b, 0xf0, 0xc6, 0x62, 0x40, 0xa8, 0x22, 0x4c, 0x8d,
1545                0xa3, 0x8b, 0xb1, 0xbe,
1546            ],
1547            Elements::FullLeftShift64_4 => [
1548                0x29, 0x31, 0x32, 0xeb, 0x15, 0xdd, 0xf4, 0x17, 0x74, 0xb0, 0x00, 0x5a, 0x3b, 0x5c,
1549                0x50, 0x95, 0x9f, 0xa8, 0x98, 0x2b, 0x75, 0x9e, 0x83, 0x28, 0x27, 0xc7, 0x4f, 0xa8,
1550                0x28, 0x50, 0x66, 0x6c,
1551            ],
1552            Elements::FullLeftShift64_8 => [
1553                0xe6, 0xab, 0xde, 0xd8, 0xbe, 0x58, 0x5e, 0xb0, 0xb6, 0xd4, 0x6e, 0x0c, 0x5e, 0xb2,
1554                0x8a, 0x74, 0x5f, 0x4e, 0x5c, 0x56, 0xfd, 0x65, 0x21, 0xf8, 0xf3, 0x96, 0xcb, 0x21,
1555                0xa7, 0x58, 0xf7, 0x4c,
1556            ],
1557            Elements::FullLeftShift8_1 => [
1558                0x73, 0x3f, 0xed, 0x08, 0x47, 0xa2, 0xff, 0xac, 0x9a, 0xab, 0xf5, 0x0a, 0x2f, 0xeb,
1559                0x50, 0x59, 0x89, 0x84, 0xf1, 0x6d, 0x8b, 0x73, 0x24, 0x68, 0xb3, 0xd3, 0x15, 0xc0,
1560                0x1e, 0xa4, 0x29, 0x9b,
1561            ],
1562            Elements::FullLeftShift8_2 => [
1563                0xb4, 0x47, 0x4d, 0x0b, 0xa1, 0xcf, 0x4f, 0xa2, 0xd6, 0x4c, 0xd4, 0xfe, 0x67, 0xbd,
1564                0xc9, 0x2c, 0xb8, 0x9e, 0xfa, 0x70, 0xcb, 0x99, 0xaf, 0x77, 0x91, 0xbf, 0x7e, 0xf6,
1565                0xe9, 0x09, 0xd2, 0xc7,
1566            ],
1567            Elements::FullLeftShift8_4 => [
1568                0x8e, 0xb5, 0x22, 0xb9, 0x97, 0x04, 0x74, 0xad, 0xbb, 0x7a, 0xb0, 0xde, 0x37, 0xc4,
1569                0xe7, 0xa0, 0x56, 0xa1, 0xcb, 0x21, 0x2e, 0x41, 0x03, 0xe4, 0xa8, 0xcb, 0xbb, 0xb6,
1570                0x3d, 0x97, 0x56, 0x06,
1571            ],
1572            Elements::FullMultiply16 => [
1573                0x88, 0x47, 0x0c, 0xbf, 0x9b, 0x4d, 0xec, 0x37, 0xea, 0x05, 0xd7, 0xb6, 0x30, 0xf2,
1574                0xf1, 0x12, 0x54, 0x75, 0x67, 0xd3, 0x4f, 0x33, 0xd9, 0x6e, 0x5f, 0x61, 0x1b, 0xd9,
1575                0xda, 0x97, 0xab, 0xb5,
1576            ],
1577            Elements::FullMultiply32 => [
1578                0x28, 0x04, 0x06, 0x00, 0xa6, 0x6e, 0x1a, 0x0c, 0x52, 0x25, 0x85, 0x20, 0x48, 0x8b,
1579                0x94, 0xc8, 0x20, 0xc6, 0xcf, 0x86, 0xca, 0x27, 0xae, 0x39, 0x03, 0x4d, 0xdd, 0xca,
1580                0xb9, 0x04, 0xd1, 0xd5,
1581            ],
1582            Elements::FullMultiply64 => [
1583                0x53, 0x01, 0x4f, 0x35, 0xa8, 0xdf, 0x20, 0x91, 0xaf, 0x3e, 0xf9, 0xb8, 0xd1, 0x6b,
1584                0x38, 0xb9, 0xbc, 0x96, 0x61, 0xbf, 0xdb, 0xc9, 0x57, 0x33, 0x3f, 0xba, 0x2a, 0x94,
1585                0x8c, 0x1e, 0x8c, 0x25,
1586            ],
1587            Elements::FullMultiply8 => [
1588                0xd3, 0xd2, 0x45, 0x54, 0xc4, 0x66, 0xdd, 0x60, 0x37, 0x54, 0x52, 0x47, 0x36, 0xa7,
1589                0x1e, 0xb2, 0x35, 0xde, 0xf9, 0xb5, 0x06, 0x96, 0x5e, 0x32, 0xd5, 0x68, 0x26, 0xe1,
1590                0x9f, 0xba, 0xd6, 0xc1,
1591            ],
1592            Elements::FullRightShift16_1 => [
1593                0xb3, 0x79, 0xe2, 0x96, 0xe9, 0xa9, 0x8f, 0xb3, 0xb5, 0x66, 0x2b, 0x8b, 0xa0, 0x4e,
1594                0x3c, 0xc1, 0xa4, 0x3c, 0x74, 0x42, 0x9e, 0x93, 0x12, 0x33, 0xfd, 0xd7, 0xfc, 0x8f,
1595                0xe6, 0xb7, 0xa2, 0xe0,
1596            ],
1597            Elements::FullRightShift16_2 => [
1598                0xae, 0xb8, 0xc6, 0x08, 0x06, 0xa4, 0x79, 0x20, 0x77, 0x58, 0xe3, 0x90, 0x83, 0xb4,
1599                0xa9, 0xa7, 0xa1, 0x4d, 0xa4, 0xee, 0x9b, 0xc1, 0x09, 0x7f, 0xc5, 0xcb, 0x4b, 0x75,
1600                0x54, 0x0d, 0x75, 0x78,
1601            ],
1602            Elements::FullRightShift16_4 => [
1603                0x60, 0xb7, 0xf0, 0x84, 0x75, 0xcc, 0x0c, 0xce, 0x64, 0xdc, 0xa1, 0x2d, 0x9f, 0x6a,
1604                0x91, 0x9c, 0x30, 0x61, 0x81, 0x10, 0xed, 0xa1, 0x40, 0x65, 0x92, 0x9c, 0x00, 0x4e,
1605                0x7f, 0xc1, 0xb0, 0xfb,
1606            ],
1607            Elements::FullRightShift16_8 => [
1608                0xf7, 0x9d, 0xba, 0x3e, 0x0a, 0xf3, 0xd6, 0xa5, 0x59, 0xa9, 0xe9, 0xdf, 0xfe, 0xa7,
1609                0x10, 0xaf, 0x62, 0x3f, 0xe6, 0xe6, 0x64, 0x4b, 0x89, 0x79, 0x95, 0xd7, 0x1b, 0x8a,
1610                0x41, 0x67, 0xdd, 0xb0,
1611            ],
1612            Elements::FullRightShift32_1 => [
1613                0xad, 0x0d, 0x5c, 0x75, 0xea, 0x68, 0x43, 0x71, 0x91, 0x77, 0x0d, 0x7f, 0xdf, 0x80,
1614                0x4b, 0xbc, 0x9d, 0x57, 0x3d, 0x5f, 0x10, 0x19, 0x98, 0x23, 0xd8, 0x09, 0xc9, 0xc4,
1615                0x6c, 0xd2, 0x75, 0xad,
1616            ],
1617            Elements::FullRightShift32_16 => [
1618                0x45, 0x52, 0x99, 0xfd, 0x6f, 0x42, 0xab, 0x49, 0xdb, 0xb7, 0x09, 0xe6, 0x5a, 0x3b,
1619                0x53, 0x66, 0x25, 0x0b, 0xdc, 0x54, 0x5d, 0x62, 0x29, 0xe8, 0xe2, 0x36, 0x05, 0x6d,
1620                0xdd, 0x19, 0x77, 0xfd,
1621            ],
1622            Elements::FullRightShift32_2 => [
1623                0x44, 0x38, 0x4b, 0x15, 0x06, 0xd4, 0x43, 0xd2, 0xf8, 0xa2, 0x88, 0x2b, 0x45, 0x63,
1624                0xd7, 0x93, 0x1a, 0x7e, 0xbc, 0xe6, 0x4a, 0xcf, 0x0d, 0x02, 0xee, 0x59, 0xec, 0x69,
1625                0xd3, 0x06, 0x52, 0x39,
1626            ],
1627            Elements::FullRightShift32_4 => [
1628                0x2e, 0x9a, 0x8a, 0xb5, 0xa1, 0x81, 0x7b, 0xd0, 0xb8, 0xa4, 0x66, 0x26, 0x99, 0x49,
1629                0x17, 0xa0, 0xde, 0x1a, 0x74, 0x5e, 0x99, 0x52, 0x0c, 0xe6, 0xeb, 0xcc, 0x67, 0xd4,
1630                0x63, 0x65, 0x51, 0xb7,
1631            ],
1632            Elements::FullRightShift32_8 => [
1633                0xaf, 0x47, 0xd4, 0xf9, 0x6e, 0x7d, 0x80, 0x26, 0xd4, 0x4e, 0x6e, 0xca, 0x1b, 0x80,
1634                0x7f, 0x73, 0x34, 0x4c, 0xe2, 0xea, 0xf7, 0x00, 0xb2, 0xc8, 0x2b, 0x4b, 0xb0, 0x02,
1635                0x61, 0xa8, 0x6f, 0x94,
1636            ],
1637            Elements::FullRightShift64_1 => [
1638                0x03, 0xaf, 0xb5, 0x47, 0xc3, 0x09, 0x13, 0xf1, 0x6f, 0x3e, 0x37, 0x0d, 0x7f, 0x9c,
1639                0xa0, 0x29, 0x0b, 0x61, 0x5b, 0x42, 0x85, 0x05, 0x1b, 0xb9, 0x3c, 0x3c, 0x1a, 0x9b,
1640                0x72, 0xee, 0x8d, 0xe4,
1641            ],
1642            Elements::FullRightShift64_16 => [
1643                0x1f, 0xb0, 0x56, 0xfc, 0xb6, 0x90, 0xce, 0xe3, 0xcf, 0xf7, 0x2c, 0x7d, 0xec, 0xda,
1644                0x80, 0x6d, 0x21, 0x46, 0xc4, 0x92, 0xae, 0x73, 0x1a, 0x6b, 0x94, 0xb8, 0xbb, 0x4f,
1645                0x15, 0x99, 0xb0, 0xcc,
1646            ],
1647            Elements::FullRightShift64_2 => [
1648                0x06, 0x73, 0xbf, 0xf2, 0x1e, 0x37, 0x5e, 0x5d, 0xbc, 0xaf, 0x38, 0x04, 0x66, 0x48,
1649                0x25, 0xdd, 0x67, 0x48, 0x44, 0xd2, 0xfd, 0xb7, 0x84, 0xa4, 0xfe, 0xfb, 0xc9, 0x25,
1650                0xcf, 0x6b, 0x27, 0xad,
1651            ],
1652            Elements::FullRightShift64_32 => [
1653                0x35, 0x6f, 0x7d, 0xd4, 0x6b, 0xa3, 0x3f, 0x84, 0xb0, 0x66, 0x72, 0xfd, 0xe9, 0xa2,
1654                0x97, 0x2e, 0x80, 0xf3, 0xea, 0x96, 0x5a, 0xe8, 0xbc, 0x0b, 0xff, 0x67, 0xaa, 0x2f,
1655                0x69, 0xf1, 0x0b, 0x56,
1656            ],
1657            Elements::FullRightShift64_4 => [
1658                0x4c, 0x25, 0xf6, 0x01, 0x1f, 0xd3, 0xd1, 0xac, 0x18, 0xe1, 0x1e, 0xb4, 0x30, 0x61,
1659                0xfa, 0xd6, 0x9f, 0x3c, 0xe3, 0x9f, 0x7a, 0x99, 0xce, 0xde, 0x50, 0xcc, 0x85, 0xbf,
1660                0x88, 0xbf, 0xba, 0x82,
1661            ],
1662            Elements::FullRightShift64_8 => [
1663                0xa5, 0x1d, 0xf9, 0x44, 0x86, 0x02, 0xfa, 0x81, 0x00, 0x1a, 0xa1, 0xb5, 0xb1, 0x3b,
1664                0xe8, 0x8d, 0x4b, 0x2f, 0x4d, 0x0f, 0x60, 0x74, 0x08, 0x01, 0xce, 0xf9, 0x91, 0x00,
1665                0x2f, 0xe3, 0x7d, 0x6d,
1666            ],
1667            Elements::FullRightShift8_1 => [
1668                0xd9, 0xd4, 0xb1, 0x6d, 0x37, 0xe4, 0xeb, 0x5c, 0xc5, 0x15, 0x04, 0x26, 0xe3, 0xe8,
1669                0x6c, 0xf6, 0x0a, 0xbb, 0xdf, 0xa1, 0xd0, 0xec, 0xb4, 0x15, 0x82, 0x96, 0x5e, 0x80,
1670                0x00, 0xcb, 0xd2, 0x91,
1671            ],
1672            Elements::FullRightShift8_2 => [
1673                0x07, 0x9a, 0xa1, 0x66, 0x17, 0x19, 0x8a, 0xd5, 0xdf, 0x2c, 0x98, 0xa6, 0x3a, 0xf7,
1674                0x6c, 0x1b, 0x3e, 0x12, 0x0f, 0xd2, 0x10, 0x6b, 0x22, 0x5f, 0x63, 0xfd, 0x06, 0xac,
1675                0x57, 0x1d, 0x04, 0xa4,
1676            ],
1677            Elements::FullRightShift8_4 => [
1678                0x9d, 0x9d, 0x3f, 0x63, 0x8a, 0x84, 0x63, 0x86, 0xa2, 0x1e, 0x71, 0x5f, 0x39, 0x46,
1679                0x16, 0x86, 0x4a, 0x2e, 0xf7, 0x98, 0x4a, 0x88, 0xcd, 0x95, 0x50, 0x55, 0x66, 0x29,
1680                0x7b, 0xe7, 0xe0, 0x6c,
1681            ],
1682            Elements::FullSubtract16 => [
1683                0x1f, 0xc8, 0x8e, 0x23, 0x29, 0xf4, 0xaa, 0xf1, 0x2b, 0x30, 0x51, 0x3f, 0x7a, 0x21,
1684                0xcf, 0x5d, 0x8d, 0xe2, 0x4b, 0x60, 0x0a, 0x19, 0xa2, 0x17, 0x41, 0x28, 0x1b, 0x4d,
1685                0x61, 0xaa, 0xc6, 0x33,
1686            ],
1687            Elements::FullSubtract32 => [
1688                0x78, 0x27, 0x05, 0xfb, 0x42, 0xe3, 0x6a, 0x7e, 0xf8, 0x31, 0x20, 0x0c, 0x61, 0x77,
1689                0x38, 0xd3, 0x1e, 0x13, 0xb1, 0xd0, 0xe7, 0xce, 0xed, 0x69, 0x3f, 0x13, 0x33, 0x88,
1690                0x35, 0xb3, 0x0a, 0xcb,
1691            ],
1692            Elements::FullSubtract64 => [
1693                0xb2, 0x85, 0x6a, 0x91, 0x80, 0x23, 0x1b, 0xee, 0x3c, 0xb8, 0x92, 0x30, 0xf7, 0x5c,
1694                0x29, 0x2a, 0xf3, 0xe7, 0x52, 0x39, 0xdb, 0xeb, 0x39, 0x65, 0x48, 0x44, 0x1e, 0x6b,
1695                0x5a, 0x27, 0xe8, 0x13,
1696            ],
1697            Elements::FullSubtract8 => [
1698                0x68, 0x85, 0xe1, 0x41, 0xae, 0x23, 0x4c, 0x1e, 0x2a, 0x7e, 0x4f, 0x23, 0x52, 0x98,
1699                0x93, 0x90, 0x36, 0x96, 0x9c, 0x95, 0x0f, 0x2c, 0xef, 0xd4, 0x59, 0xb4, 0x98, 0xac,
1700                0x3d, 0xd8, 0x92, 0x20,
1701            ],
1702            Elements::GeIsOnCurve => [
1703                0x69, 0xf0, 0xe7, 0xa0, 0xc5, 0xff, 0xf8, 0x70, 0x84, 0xed, 0x69, 0x25, 0xf8, 0xdb,
1704                0x76, 0x2e, 0x41, 0x9e, 0x05, 0x7b, 0x96, 0x83, 0x4d, 0xce, 0x96, 0x99, 0xb0, 0xb0,
1705                0x09, 0x42, 0x30, 0x59,
1706            ],
1707            Elements::GeNegate => [
1708                0x1e, 0xd0, 0xce, 0xd8, 0xdd, 0x25, 0x58, 0xe3, 0x48, 0x5f, 0x6f, 0xc3, 0x2d, 0x69,
1709                0xa2, 0x40, 0x5e, 0xca, 0xee, 0x31, 0x2d, 0xc4, 0xdc, 0x65, 0xe0, 0xfd, 0x34, 0x77,
1710                0x73, 0xf5, 0x98, 0x3d,
1711            ],
1712            Elements::GejAdd => [
1713                0x5a, 0x1c, 0x31, 0x03, 0x49, 0xe8, 0xff, 0x5c, 0x5a, 0x61, 0xac, 0x3e, 0x10, 0x12,
1714                0x3f, 0x74, 0xe8, 0x7f, 0xab, 0xa1, 0x4c, 0x78, 0xbc, 0x83, 0xf9, 0xe3, 0x41, 0x36,
1715                0x87, 0xec, 0xf2, 0x8b,
1716            ],
1717            Elements::GejDouble => [
1718                0x1e, 0xdd, 0x05, 0x82, 0xe2, 0xfc, 0xad, 0x99, 0xb1, 0x2d, 0x50, 0x6d, 0x29, 0xb5,
1719                0x0a, 0x63, 0x01, 0x7f, 0x67, 0x69, 0x28, 0xbe, 0x51, 0x13, 0x69, 0x00, 0x6e, 0x07,
1720                0xcb, 0x80, 0xd9, 0x82,
1721            ],
1722            Elements::GejEquiv => [
1723                0x02, 0x74, 0x71, 0x05, 0x94, 0x87, 0xa1, 0x2c, 0xa2, 0x07, 0xf0, 0x94, 0x05, 0x94,
1724                0xd6, 0xcd, 0x87, 0xfc, 0x93, 0x0a, 0x8b, 0x5b, 0x31, 0x43, 0x4a, 0x16, 0xa2, 0xd6,
1725                0x7f, 0x1d, 0x8d, 0xd4,
1726            ],
1727            Elements::GejGeAdd => [
1728                0x1e, 0xa7, 0x10, 0xd5, 0x6e, 0xaf, 0xee, 0x32, 0x5d, 0x26, 0x07, 0xdd, 0xb4, 0x5f,
1729                0xf0, 0x17, 0x0a, 0xde, 0xc2, 0xe0, 0xee, 0x9b, 0xcc, 0x68, 0xe4, 0xb9, 0x3e, 0x1d,
1730                0xe6, 0xad, 0x35, 0x68,
1731            ],
1732            Elements::GejGeAddEx => [
1733                0x78, 0xf0, 0x87, 0x1b, 0x81, 0x73, 0xab, 0xde, 0x71, 0x87, 0x11, 0x26, 0x3b, 0x3a,
1734                0xc1, 0xd9, 0x22, 0x33, 0x7e, 0xd5, 0xed, 0x13, 0x8d, 0x29, 0x49, 0x62, 0xd6, 0x5c,
1735                0xe5, 0x59, 0xbd, 0x92,
1736            ],
1737            Elements::GejGeEquiv => [
1738                0xba, 0x89, 0x9a, 0x00, 0x62, 0x16, 0xd1, 0xc9, 0x3b, 0xd5, 0xec, 0xbe, 0x00, 0x80,
1739                0xd9, 0x07, 0x8a, 0x50, 0x0a, 0x72, 0x9b, 0xbd, 0x39, 0x6a, 0x00, 0x4a, 0xf5, 0x1d,
1740                0x4f, 0xf7, 0xd9, 0x3a,
1741            ],
1742            Elements::GejInfinity => [
1743                0x88, 0xa9, 0x52, 0xdb, 0x38, 0x16, 0xe9, 0x42, 0x59, 0xa6, 0x75, 0x37, 0xfa, 0x8f,
1744                0xca, 0x1a, 0x35, 0xa9, 0x07, 0xa8, 0x6f, 0x51, 0xed, 0xe4, 0x51, 0xfd, 0x32, 0xec,
1745                0x25, 0x3d, 0x9c, 0x62,
1746            ],
1747            Elements::GejIsInfinity => [
1748                0x29, 0x80, 0xa7, 0x35, 0x41, 0x4e, 0x43, 0x21, 0xaf, 0xef, 0xfe, 0xfa, 0x88, 0x37,
1749                0xed, 0xb0, 0xa3, 0x30, 0x9a, 0x33, 0x7d, 0x59, 0xb7, 0xbd, 0xea, 0x92, 0x1c, 0x13,
1750                0x05, 0x6b, 0x04, 0x28,
1751            ],
1752            Elements::GejIsOnCurve => [
1753                0x01, 0x87, 0xe1, 0xe5, 0xef, 0x76, 0x34, 0xa5, 0xf0, 0x16, 0x12, 0x4d, 0x4f, 0xeb,
1754                0x5a, 0x93, 0xdd, 0xe6, 0xaa, 0x78, 0x17, 0x6c, 0xda, 0x48, 0xb1, 0x65, 0xa9, 0xaa,
1755                0x8e, 0x04, 0x49, 0xf2,
1756            ],
1757            Elements::GejNegate => [
1758                0xb3, 0x2c, 0x74, 0xca, 0xb2, 0xc7, 0x50, 0x0b, 0x73, 0xf8, 0xec, 0x05, 0x60, 0xfe,
1759                0x23, 0xfc, 0x4c, 0x21, 0xaa, 0x66, 0x59, 0x6d, 0x7f, 0x2a, 0xcf, 0x49, 0x67, 0x88,
1760                0x6b, 0x76, 0xd8, 0x56,
1761            ],
1762            Elements::GejNormalize => [
1763                0x5d, 0xe0, 0x97, 0x6a, 0xe7, 0xf3, 0x8b, 0x36, 0xf0, 0x02, 0x28, 0x14, 0x96, 0x6d,
1764                0xb2, 0xba, 0xed, 0x5c, 0x47, 0x67, 0x14, 0x94, 0x4d, 0x74, 0x1a, 0x89, 0x79, 0xc4,
1765                0xbc, 0xf8, 0xbe, 0x25,
1766            ],
1767            Elements::GejRescale => [
1768                0xdc, 0xfc, 0x72, 0xa7, 0x68, 0xd5, 0xbe, 0x77, 0x0f, 0x8d, 0xb2, 0x78, 0xae, 0xaf,
1769                0xd1, 0x8e, 0x27, 0x70, 0x4c, 0x64, 0xf8, 0xb4, 0x0f, 0xa6, 0xfe, 0x54, 0xca, 0x94,
1770                0x72, 0x7a, 0x07, 0x6e,
1771            ],
1772            Elements::GejXEquiv => [
1773                0x52, 0xcc, 0x21, 0x47, 0x09, 0xc0, 0xd9, 0xfc, 0xa9, 0xdb, 0x1d, 0x09, 0xcc, 0x80,
1774                0x7c, 0x75, 0xcf, 0x5a, 0x63, 0x13, 0xca, 0x54, 0x0a, 0x77, 0x2d, 0x4e, 0xa9, 0x92,
1775                0x1f, 0x37, 0xe6, 0x24,
1776            ],
1777            Elements::GejYIsOdd => [
1778                0xfe, 0x01, 0x06, 0xaf, 0xb9, 0xd9, 0xe2, 0x4f, 0xd4, 0xdb, 0xe5, 0x45, 0x11, 0xfe,
1779                0x27, 0x2f, 0x4d, 0xcb, 0x30, 0x7a, 0x0e, 0xa5, 0x6d, 0x59, 0x1c, 0xeb, 0x93, 0xab,
1780                0x4b, 0xf8, 0x87, 0x45,
1781            ],
1782            Elements::Generate => [
1783                0xdf, 0x44, 0xe1, 0x7d, 0x2a, 0x55, 0x9d, 0xd0, 0xa7, 0x03, 0x49, 0x54, 0xab, 0x33,
1784                0x37, 0x77, 0x78, 0xb1, 0x51, 0xf1, 0xcd, 0x1e, 0x4f, 0x9f, 0xd3, 0x1b, 0x36, 0x1d,
1785                0x34, 0xa8, 0xd9, 0x73,
1786            ],
1787            Elements::GenesisBlockHash => [
1788                0x00, 0x60, 0xb6, 0x0d, 0x02, 0xb1, 0x33, 0x60, 0x72, 0x84, 0x6a, 0xcf, 0xf4, 0x4d,
1789                0xd0, 0xf4, 0x34, 0x6c, 0x74, 0xa3, 0x5e, 0x7b, 0x56, 0x42, 0x3f, 0x95, 0x19, 0xc4,
1790                0x42, 0xd1, 0x5d, 0xaf,
1791            ],
1792            Elements::HashToCurve => [
1793                0x76, 0xf7, 0xca, 0x1d, 0xb9, 0x44, 0xee, 0x31, 0x5e, 0xd3, 0x62, 0xfe, 0xe0, 0x67,
1794                0x3c, 0x58, 0x94, 0xf8, 0x85, 0x3b, 0x44, 0x60, 0x70, 0x90, 0x1b, 0x85, 0x79, 0x01,
1795                0xf9, 0x49, 0x9d, 0x9b,
1796            ],
1797            Elements::High1 => [
1798                0xc3, 0x2d, 0x87, 0x7e, 0x67, 0x0d, 0x6c, 0x03, 0x7c, 0xb3, 0x35, 0x33, 0x28, 0x9e,
1799                0x19, 0xa7, 0x24, 0xc3, 0x68, 0xaa, 0x75, 0x51, 0xda, 0xa6, 0xd2, 0xda, 0xcc, 0xcd,
1800                0x8c, 0x95, 0xf4, 0xd0,
1801            ],
1802            Elements::High16 => [
1803                0x41, 0x64, 0xab, 0x6e, 0x2f, 0xf8, 0xee, 0xf6, 0x3c, 0x06, 0xc0, 0x80, 0xf1, 0xde,
1804                0xc6, 0x97, 0x0b, 0x4c, 0x5c, 0x31, 0xc0, 0x23, 0x05, 0xab, 0xcc, 0xd8, 0xed, 0x2c,
1805                0x5e, 0x1c, 0x45, 0xce,
1806            ],
1807            Elements::High32 => [
1808                0xd3, 0xa7, 0xce, 0x9c, 0xd5, 0xd5, 0xfb, 0x67, 0x9a, 0x98, 0xef, 0x57, 0xb8, 0x63,
1809                0x22, 0x77, 0x0c, 0xb6, 0x6f, 0xb6, 0xf0, 0x61, 0x6e, 0x16, 0x34, 0xcf, 0xa8, 0x4c,
1810                0x8f, 0x68, 0x09, 0xc6,
1811            ],
1812            Elements::High64 => [
1813                0x4a, 0xf9, 0x1f, 0xaf, 0x8e, 0x39, 0xf4, 0xda, 0x7c, 0x28, 0xa8, 0x79, 0x65, 0x94,
1814                0xa9, 0x22, 0x82, 0x13, 0xd7, 0x32, 0x3e, 0xea, 0x2c, 0xa6, 0x30, 0x75, 0x2c, 0xe4,
1815                0xc5, 0x7f, 0x16, 0xe1,
1816            ],
1817            Elements::High8 => [
1818                0xcb, 0xd7, 0x8d, 0x50, 0xaf, 0x77, 0x99, 0x85, 0x5a, 0xdc, 0x49, 0x03, 0xdb, 0xbe,
1819                0xfc, 0x13, 0x45, 0xd5, 0x14, 0x84, 0xf0, 0x3d, 0x3c, 0x75, 0x5c, 0xaa, 0xa5, 0xca,
1820                0xa9, 0x7d, 0x4a, 0x14,
1821            ],
1822            Elements::Increment16 => [
1823                0xdf, 0x27, 0x48, 0x88, 0xce, 0x4c, 0xeb, 0xdd, 0x57, 0x08, 0xb3, 0x8d, 0xc3, 0xdb,
1824                0xb1, 0x9c, 0xc2, 0xf0, 0x36, 0x4b, 0x24, 0x63, 0xe9, 0x9c, 0xf5, 0xaa, 0xb4, 0xf8,
1825                0xa2, 0x3e, 0xa5, 0x8a,
1826            ],
1827            Elements::Increment32 => [
1828                0x54, 0xf7, 0x57, 0xae, 0xa7, 0x6b, 0xc7, 0xa3, 0x9f, 0xc4, 0x3d, 0x19, 0xb8, 0xdd,
1829                0x56, 0x3a, 0x68, 0x07, 0xdf, 0x02, 0x77, 0xa5, 0x6f, 0xcb, 0x50, 0x10, 0x89, 0xce,
1830                0x7d, 0x06, 0x77, 0x4c,
1831            ],
1832            Elements::Increment64 => [
1833                0x79, 0xed, 0x5f, 0x77, 0x99, 0xfb, 0x09, 0xda, 0x51, 0x04, 0x29, 0xa2, 0x01, 0x28,
1834                0xbe, 0xd0, 0x91, 0xd8, 0x58, 0x76, 0x47, 0x07, 0x12, 0x85, 0xcd, 0xec, 0x3a, 0x0c,
1835                0x95, 0x70, 0x9e, 0x5b,
1836            ],
1837            Elements::Increment8 => [
1838                0x0c, 0x71, 0x7e, 0x84, 0xdf, 0x67, 0x82, 0x3f, 0x57, 0x41, 0xb3, 0xd5, 0x5d, 0xbe,
1839                0xb4, 0x72, 0x9c, 0x2b, 0xd6, 0x2f, 0x5d, 0x1d, 0xef, 0x3c, 0xab, 0xcc, 0xdd, 0x6c,
1840                0xb8, 0xdc, 0xb5, 0x6c,
1841            ],
1842            Elements::InputAmount => [
1843                0xdd, 0x65, 0xac, 0x32, 0xc8, 0x7d, 0x99, 0x6b, 0x40, 0x72, 0x00, 0xfe, 0xef, 0xc4,
1844                0x79, 0xa9, 0x11, 0x9c, 0x1f, 0x28, 0xca, 0xa4, 0x88, 0xb0, 0xaa, 0xc3, 0xac, 0xf5,
1845                0x93, 0x78, 0xd6, 0xba,
1846            ],
1847            Elements::InputAmountsHash => [
1848                0x2b, 0x4d, 0xf4, 0x7e, 0x75, 0x8f, 0xfe, 0x88, 0xe9, 0xcd, 0x5d, 0x39, 0x6d, 0xf3,
1849                0xd7, 0xf9, 0xec, 0x2f, 0xbd, 0x5a, 0x53, 0x95, 0xa6, 0xd8, 0xc1, 0xab, 0x70, 0x44,
1850                0x00, 0xc6, 0x4f, 0x70,
1851            ],
1852            Elements::InputAnnexHash => [
1853                0x0f, 0xd9, 0xe4, 0xc6, 0x31, 0x6b, 0x37, 0x28, 0x6e, 0x88, 0x54, 0x43, 0x0e, 0x7d,
1854                0x74, 0x18, 0x21, 0xdc, 0x89, 0x54, 0x4a, 0x3a, 0x59, 0xf0, 0x3d, 0xfa, 0x40, 0xe5,
1855                0x32, 0xb8, 0x10, 0x7f,
1856            ],
1857            Elements::InputAnnexesHash => [
1858                0xde, 0xd1, 0x52, 0x2e, 0xfa, 0x5a, 0x2b, 0x37, 0x61, 0x73, 0xe4, 0x40, 0xde, 0x22,
1859                0x7a, 0xd0, 0xc9, 0x2b, 0xe2, 0xed, 0xce, 0x7c, 0x23, 0xb5, 0x14, 0x80, 0xe5, 0x0a,
1860                0x77, 0xfc, 0x56, 0x4b,
1861            ],
1862            Elements::InputAsset => [
1863                0x87, 0x2b, 0x36, 0x53, 0xd6, 0x5a, 0xe7, 0xf9, 0x16, 0x6c, 0xbf, 0x70, 0xd4, 0xfd,
1864                0x31, 0x40, 0x47, 0x98, 0x88, 0x4d, 0x61, 0x1b, 0x64, 0x7f, 0xb9, 0xf4, 0xa3, 0x07,
1865                0xc4, 0x80, 0x11, 0xb8,
1866            ],
1867            Elements::InputHash => [
1868                0x33, 0x09, 0xbb, 0x46, 0xb3, 0x15, 0x8d, 0x23, 0x12, 0x4f, 0x8c, 0xed, 0xaa, 0xa1,
1869                0xed, 0x3b, 0x09, 0xa8, 0xae, 0xfe, 0x81, 0x21, 0x2e, 0x11, 0x33, 0x55, 0x23, 0xb6,
1870                0xb2, 0x07, 0xc5, 0x44,
1871            ],
1872            Elements::InputOutpointsHash => [
1873                0x14, 0x0a, 0x2b, 0xae, 0xad, 0x08, 0x3b, 0xaa, 0xc8, 0x06, 0x12, 0x8a, 0xb6, 0x49,
1874                0xe5, 0x2b, 0xbd, 0x3c, 0x64, 0x56, 0x70, 0x0c, 0xbc, 0xfc, 0x6d, 0xbb, 0x29, 0x59,
1875                0x17, 0x3a, 0x4d, 0xf2,
1876            ],
1877            Elements::InputPegin => [
1878                0xdb, 0x37, 0x6f, 0x4a, 0xe8, 0x4e, 0xc0, 0x51, 0xa4, 0x94, 0xd7, 0x66, 0x80, 0x39,
1879                0x72, 0x7b, 0x53, 0x35, 0x3b, 0xe5, 0xae, 0x04, 0x5b, 0xe7, 0x6c, 0x4b, 0x04, 0xda,
1880                0xbd, 0x5b, 0xbf, 0xbb,
1881            ],
1882            Elements::InputPrevOutpoint => [
1883                0x91, 0xf4, 0xd6, 0xec, 0x48, 0x4f, 0x60, 0xca, 0xe9, 0x29, 0x78, 0x58, 0xca, 0xc4,
1884                0x7d, 0xad, 0x50, 0xdb, 0x07, 0xdc, 0x1f, 0x93, 0x7a, 0xc6, 0x14, 0x4c, 0x9c, 0xb4,
1885                0xa9, 0xef, 0x79, 0xd2,
1886            ],
1887            Elements::InputScriptHash => [
1888                0xc3, 0x16, 0xdf, 0x21, 0x77, 0x8e, 0x62, 0x41, 0x05, 0xca, 0x59, 0x90, 0x4b, 0x92,
1889                0x08, 0xe2, 0xd4, 0x23, 0x22, 0x8b, 0x3e, 0xb1, 0xcf, 0x68, 0xb8, 0xec, 0xa4, 0x7b,
1890                0xbc, 0x7b, 0x2f, 0xf3,
1891            ],
1892            Elements::InputScriptSigHash => [
1893                0x94, 0x1f, 0x2b, 0x4f, 0x3b, 0x7f, 0x20, 0x97, 0xd6, 0xea, 0x00, 0xe9, 0x7c, 0x1e,
1894                0x2b, 0xa0, 0x1c, 0xb2, 0x64, 0x87, 0xc5, 0xd2, 0xf4, 0x72, 0x37, 0x38, 0xb3, 0x7c,
1895                0x73, 0x2c, 0x05, 0xc4,
1896            ],
1897            Elements::InputScriptSigsHash => [
1898                0x6c, 0x74, 0x81, 0x42, 0x01, 0x24, 0xb6, 0x64, 0x5d, 0x32, 0xff, 0x9b, 0x45, 0x4a,
1899                0x1c, 0x92, 0xc6, 0x71, 0x86, 0x41, 0x0e, 0x23, 0xcf, 0x60, 0x99, 0x15, 0xdf, 0x90,
1900                0x72, 0x12, 0x0f, 0xc6,
1901            ],
1902            Elements::InputScriptsHash => [
1903                0xdc, 0x13, 0x51, 0x9e, 0x75, 0x3e, 0x58, 0x75, 0x3c, 0x70, 0x98, 0x85, 0x41, 0xad,
1904                0x8a, 0x0b, 0xb5, 0x88, 0x8d, 0x08, 0x46, 0xe3, 0x5e, 0x4d, 0x42, 0x73, 0xf6, 0x56,
1905                0x85, 0x32, 0x2a, 0xe9,
1906            ],
1907            Elements::InputSequence => [
1908                0x3c, 0x6e, 0x4a, 0x3c, 0x21, 0xce, 0xd5, 0x24, 0x73, 0x6c, 0x54, 0x5c, 0x20, 0xe4,
1909                0xe2, 0xde, 0xf7, 0x67, 0x8f, 0x08, 0x4c, 0xd1, 0x2b, 0xcd, 0x65, 0x06, 0xa5, 0x20,
1910                0x0b, 0x5c, 0x17, 0x38,
1911            ],
1912            Elements::InputSequencesHash => [
1913                0xc8, 0x88, 0xc8, 0x73, 0x30, 0x2b, 0x92, 0xb0, 0x0f, 0x20, 0x68, 0x52, 0xc9, 0xea,
1914                0xef, 0x00, 0x0b, 0x40, 0x10, 0x9a, 0x53, 0xdd, 0x68, 0x6a, 0x53, 0xf1, 0x1d, 0xb5,
1915                0x07, 0x4d, 0x99, 0x37,
1916            ],
1917            Elements::InputUtxoHash => [
1918                0x85, 0x03, 0xd0, 0x52, 0x6b, 0xa9, 0x5a, 0x8f, 0xba, 0x8c, 0xa1, 0x35, 0x1c, 0x79,
1919                0x91, 0xc2, 0xa3, 0x86, 0xb7, 0x2f, 0xa8, 0x14, 0x31, 0xea, 0xdb, 0xab, 0x62, 0xcc,
1920                0x1f, 0x5d, 0xc5, 0x18,
1921            ],
1922            Elements::InputUtxosHash => [
1923                0x9c, 0x48, 0xab, 0x31, 0xc0, 0x50, 0xed, 0x06, 0x5a, 0xed, 0x51, 0x68, 0x66, 0xc1,
1924                0x6c, 0x1b, 0x96, 0xc1, 0x95, 0xea, 0x8e, 0x18, 0xb0, 0x24, 0xbf, 0xc0, 0xb8, 0x17,
1925                0x58, 0x49, 0xf0, 0x4e,
1926            ],
1927            Elements::InputsHash => [
1928                0x52, 0x3c, 0xd7, 0x1c, 0x57, 0x89, 0x88, 0x2f, 0x83, 0x75, 0xa5, 0xa5, 0x45, 0x60,
1929                0xde, 0xf8, 0x46, 0x3d, 0x1c, 0x51, 0xe5, 0x6b, 0x7e, 0x11, 0x26, 0x93, 0xe7, 0x7b,
1930                0x84, 0x4f, 0x47, 0x40,
1931            ],
1932            Elements::InternalKey => [
1933                0x9b, 0x74, 0x2e, 0x47, 0x1b, 0x0e, 0x59, 0x1a, 0x97, 0x2b, 0x0d, 0x44, 0x21, 0xf9,
1934                0xc9, 0x65, 0x93, 0x97, 0xf5, 0xda, 0xba, 0x2c, 0x14, 0xda, 0xc6, 0x2c, 0x4a, 0x33,
1935                0x9c, 0xc3, 0xe7, 0xec,
1936            ],
1937            Elements::IsOne16 => [
1938                0x84, 0x35, 0x87, 0x9c, 0xcb, 0x86, 0x44, 0x19, 0x8d, 0xcb, 0x9a, 0x0c, 0xd7, 0x35,
1939                0x46, 0xd7, 0x01, 0xfd, 0xd5, 0xa4, 0xc4, 0x43, 0x23, 0xf5, 0x63, 0x97, 0x15, 0x99,
1940                0xc3, 0x7d, 0x16, 0xfb,
1941            ],
1942            Elements::IsOne32 => [
1943                0xdd, 0xfb, 0xd9, 0xf0, 0xa2, 0xe6, 0x7c, 0x07, 0xde, 0xdb, 0x89, 0xe8, 0x96, 0xb6,
1944                0xc4, 0xf7, 0xd4, 0x5c, 0x51, 0x47, 0xee, 0xd0, 0x61, 0x4e, 0x4c, 0xe7, 0xd0, 0x87,
1945                0x69, 0xaf, 0xf8, 0x2d,
1946            ],
1947            Elements::IsOne64 => [
1948                0x35, 0xc5, 0x25, 0x54, 0x8e, 0x48, 0xee, 0xa0, 0xf7, 0x7b, 0x3b, 0xf9, 0x7a, 0xb6,
1949                0x7a, 0x1f, 0xfe, 0x8f, 0xb0, 0x94, 0xed, 0xe3, 0x32, 0x5e, 0x40, 0x64, 0xb1, 0x65,
1950                0x9c, 0x6d, 0x07, 0x65,
1951            ],
1952            Elements::IsOne8 => [
1953                0x0a, 0xba, 0x9e, 0x57, 0x6e, 0x64, 0xd2, 0x80, 0x4c, 0x8a, 0xc4, 0x68, 0x2b, 0xbb,
1954                0xa5, 0x39, 0x0e, 0xbc, 0x31, 0xa6, 0xe3, 0xe2, 0x65, 0x0f, 0x92, 0x19, 0x23, 0x5d,
1955                0xf4, 0xa6, 0xec, 0xbb,
1956            ],
1957            Elements::IsZero16 => [
1958                0xa2, 0x5a, 0xbd, 0x9c, 0xd2, 0xa4, 0x07, 0x0c, 0x74, 0x2e, 0xf8, 0xde, 0xb0, 0x68,
1959                0x29, 0x22, 0x46, 0x03, 0x2b, 0x96, 0xa5, 0x17, 0x22, 0x3b, 0x12, 0x8c, 0xfc, 0x12,
1960                0xd2, 0x15, 0xc5, 0xba,
1961            ],
1962            Elements::IsZero32 => [
1963                0x61, 0x2a, 0x48, 0x0c, 0xed, 0x6a, 0x79, 0xda, 0x61, 0x19, 0x54, 0x6e, 0x05, 0x6b,
1964                0x8d, 0xf9, 0xfa, 0x95, 0xd1, 0x12, 0x4b, 0x96, 0xd6, 0x01, 0xe1, 0xd3, 0xea, 0x91,
1965                0x8c, 0xc5, 0x60, 0x69,
1966            ],
1967            Elements::IsZero64 => [
1968                0x18, 0xe8, 0xe1, 0x77, 0x6b, 0xa0, 0x80, 0xcc, 0xd3, 0xe1, 0xd6, 0x0c, 0xb7, 0x53,
1969                0x41, 0x45, 0x36, 0xbf, 0x70, 0xdf, 0x18, 0x5f, 0x72, 0xc9, 0xe0, 0x70, 0x79, 0x6f,
1970                0x4c, 0x63, 0xcc, 0x71,
1971            ],
1972            Elements::IsZero8 => [
1973                0xb4, 0xba, 0xa5, 0x09, 0x38, 0x10, 0x84, 0x26, 0x74, 0x0d, 0x82, 0xcf, 0x12, 0x11,
1974                0xe0, 0xed, 0x12, 0x6d, 0xe3, 0xb7, 0x6b, 0x8d, 0x25, 0x9c, 0x50, 0xad, 0x4b, 0x8f,
1975                0xca, 0xb1, 0x0a, 0xb6,
1976            ],
1977            Elements::Issuance => [
1978                0x5c, 0x64, 0x63, 0x12, 0xc1, 0x69, 0xc6, 0x80, 0x27, 0x97, 0x9e, 0x1b, 0xc3, 0x26,
1979                0xc5, 0xdc, 0x95, 0xe5, 0xc5, 0x16, 0x8d, 0x00, 0xd9, 0x8e, 0x9d, 0x50, 0x4a, 0x7c,
1980                0xde, 0x21, 0xd7, 0x68,
1981            ],
1982            Elements::IssuanceAsset => [
1983                0x69, 0x0b, 0xf9, 0x18, 0xe1, 0x52, 0x77, 0x56, 0xcf, 0xbb, 0xf5, 0x1c, 0x83, 0x13,
1984                0x62, 0x14, 0x37, 0x56, 0xd5, 0x2d, 0x04, 0xe1, 0x29, 0x4f, 0x12, 0x64, 0x95, 0x0c,
1985                0x62, 0x67, 0xe5, 0xc9,
1986            ],
1987            Elements::IssuanceAssetAmount => [
1988                0x83, 0x60, 0x51, 0x46, 0xff, 0x26, 0xa4, 0x9c, 0xa1, 0x6f, 0x1c, 0x4a, 0x6e, 0x0c,
1989                0xe0, 0xb7, 0xc2, 0x14, 0xdf, 0x12, 0xc3, 0x77, 0xf5, 0x22, 0x52, 0x3d, 0xeb, 0x6d,
1990                0x5d, 0x0e, 0xe4, 0x4d,
1991            ],
1992            Elements::IssuanceAssetAmountsHash => [
1993                0x70, 0xf1, 0x1c, 0x3b, 0x3b, 0x5d, 0x16, 0x57, 0xd3, 0xb7, 0xc7, 0xee, 0xec, 0x85,
1994                0x0c, 0x30, 0xa3, 0x2e, 0xa9, 0x6a, 0xa3, 0x64, 0x26, 0xfa, 0x30, 0xeb, 0xf5, 0x49,
1995                0x98, 0x51, 0xa8, 0x80,
1996            ],
1997            Elements::IssuanceAssetProof => [
1998                0x0b, 0x06, 0x1f, 0x9f, 0x67, 0x0c, 0x05, 0xdc, 0x39, 0xf4, 0x38, 0x31, 0x3c, 0x13,
1999                0x79, 0xd9, 0xbf, 0x63, 0xf4, 0x4f, 0x98, 0x76, 0xb9, 0x56, 0x69, 0x3b, 0x41, 0xb7,
2000                0xf9, 0x4c, 0x6c, 0x9d,
2001            ],
2002            Elements::IssuanceBlindingEntropyHash => [
2003                0xbf, 0xb6, 0xa9, 0x34, 0x44, 0xe2, 0xa0, 0xb3, 0xfb, 0x7c, 0x13, 0xd1, 0x58, 0x9a,
2004                0x78, 0x7b, 0x66, 0xe8, 0x4b, 0x69, 0xb6, 0x27, 0x4c, 0xea, 0x20, 0xad, 0x99, 0x99,
2005                0xeb, 0x8c, 0xa6, 0x7c,
2006            ],
2007            Elements::IssuanceEntropy => [
2008                0x6d, 0xdf, 0x99, 0xf2, 0x8c, 0x70, 0x19, 0x8d, 0x65, 0x41, 0x7a, 0x83, 0x60, 0x74,
2009                0xf1, 0xb9, 0xb6, 0x10, 0xf2, 0x1f, 0x51, 0x19, 0xfd, 0x55, 0x0f, 0x60, 0xb6, 0xf8,
2010                0xe9, 0x95, 0xbb, 0xf3,
2011            ],
2012            Elements::IssuanceHash => [
2013                0x6e, 0x9f, 0x8a, 0xe8, 0xc4, 0x5b, 0xfb, 0x7e, 0x4e, 0x0c, 0xf2, 0xd0, 0x0f, 0x66,
2014                0x83, 0x2b, 0x47, 0x9d, 0xe7, 0x58, 0x2c, 0xdb, 0xc8, 0x51, 0xd0, 0xb3, 0x23, 0x0f,
2015                0xdf, 0xbb, 0xb7, 0x8d,
2016            ],
2017            Elements::IssuanceRangeProofsHash => [
2018                0x7e, 0x97, 0xf5, 0x19, 0x53, 0x48, 0x31, 0xc7, 0x7a, 0xcf, 0x73, 0xa2, 0x0f, 0xd5,
2019                0x3c, 0xb3, 0x1d, 0x1d, 0x15, 0x6c, 0x9a, 0xcb, 0xbf, 0x87, 0x3d, 0x14, 0x92, 0xd6,
2020                0x0d, 0x13, 0x67, 0xd8,
2021            ],
2022            Elements::IssuanceToken => [
2023                0xbc, 0x2c, 0xb7, 0xe9, 0x64, 0xb2, 0xa2, 0xae, 0xd7, 0x9b, 0x75, 0xc5, 0xf4, 0x40,
2024                0x8f, 0xe8, 0x4a, 0x6d, 0xc9, 0xb9, 0xe8, 0xcd, 0x2c, 0x69, 0x4d, 0x57, 0xc5, 0xf9,
2025                0xb6, 0x12, 0x05, 0xb9,
2026            ],
2027            Elements::IssuanceTokenAmount => [
2028                0x7e, 0x10, 0x64, 0x64, 0xa1, 0x3b, 0x67, 0x64, 0xce, 0x74, 0xd3, 0xfe, 0x6b, 0xa1,
2029                0xcb, 0xd5, 0xf4, 0xae, 0xb8, 0x6b, 0xbb, 0xdf, 0x58, 0x88, 0xdd, 0xf9, 0x90, 0x1d,
2030                0xd8, 0xb6, 0x19, 0xaa,
2031            ],
2032            Elements::IssuanceTokenAmountsHash => [
2033                0x94, 0xb5, 0xa4, 0x59, 0x5b, 0x67, 0x4d, 0xbf, 0xc4, 0x9c, 0x4e, 0x8e, 0xa1, 0xa9,
2034                0xab, 0xc9, 0x3e, 0xd2, 0xf7, 0x70, 0x7c, 0x42, 0x12, 0xa3, 0x2b, 0x5b, 0x86, 0xac,
2035                0x13, 0x18, 0xc9, 0xde,
2036            ],
2037            Elements::IssuanceTokenProof => [
2038                0x46, 0xed, 0x52, 0x75, 0xf5, 0x5a, 0xb3, 0x41, 0xf5, 0x7c, 0x35, 0x19, 0xff, 0xed,
2039                0xf4, 0xe3, 0x7f, 0x3f, 0x59, 0xc9, 0x7c, 0xe9, 0xb8, 0xe1, 0x7f, 0xff, 0xae, 0x16,
2040                0xc6, 0xcc, 0x1c, 0x0e,
2041            ],
2042            Elements::IssuancesHash => [
2043                0x58, 0x65, 0x9f, 0x3f, 0x7e, 0x01, 0x30, 0xc4, 0xfc, 0x91, 0x6f, 0x49, 0xbc, 0x32,
2044                0xea, 0xa0, 0x88, 0x3a, 0xcb, 0x90, 0x22, 0xfc, 0xad, 0x5e, 0x78, 0x05, 0x83, 0x9a,
2045                0x99, 0xe5, 0x0c, 0xf9,
2046            ],
2047            Elements::LbtcAsset => [
2048                0x2a, 0xf7, 0xf7, 0x3a, 0xe3, 0xfb, 0xbf, 0xa2, 0xd2, 0x3a, 0x87, 0x74, 0xe6, 0xe3,
2049                0xca, 0x09, 0x32, 0x54, 0xda, 0x2f, 0xd2, 0xa9, 0xf3, 0x97, 0xa6, 0xae, 0x0a, 0x30,
2050                0xbb, 0x48, 0xf0, 0xd7,
2051            ],
2052            Elements::Le16 => [
2053                0x63, 0xda, 0x72, 0x7c, 0xcb, 0x4c, 0x6a, 0x9d, 0x4e, 0x00, 0x09, 0x64, 0xe7, 0x63,
2054                0xbf, 0xf9, 0x34, 0xea, 0xaf, 0xd0, 0x44, 0x28, 0x7e, 0x12, 0x68, 0xd0, 0x7e, 0xcd,
2055                0xfd, 0xe2, 0x07, 0xe1,
2056            ],
2057            Elements::Le32 => [
2058                0xde, 0xe2, 0x9a, 0x91, 0x65, 0x6d, 0x7a, 0xe7, 0x3d, 0xf4, 0x95, 0x6f, 0xd8, 0xa2,
2059                0xc6, 0xb6, 0x27, 0xaa, 0xb5, 0x1c, 0x11, 0x29, 0xf9, 0xfe, 0x7f, 0x6e, 0xd3, 0xe3,
2060                0x47, 0x92, 0xc7, 0x62,
2061            ],
2062            Elements::Le64 => [
2063                0x01, 0xc5, 0x5d, 0xf7, 0xd4, 0x46, 0x59, 0x66, 0x65, 0x9d, 0xdf, 0xc9, 0x4b, 0x36,
2064                0xd0, 0x33, 0x24, 0x2c, 0x2e, 0xc5, 0x93, 0xce, 0xe1, 0x21, 0x22, 0x44, 0x07, 0x75,
2065                0x66, 0xed, 0x01, 0x5f,
2066            ],
2067            Elements::Le8 => [
2068                0x0f, 0xb7, 0x2d, 0x9f, 0x8e, 0xe2, 0x37, 0x0a, 0xba, 0x55, 0x66, 0x3a, 0x48, 0x99,
2069                0x16, 0x2e, 0x40, 0xca, 0x55, 0x14, 0x71, 0x3e, 0xfb, 0x25, 0xe4, 0xa8, 0x9e, 0x2a,
2070                0x10, 0x4b, 0x34, 0xdb,
2071            ],
2072            Elements::LeftExtend16_32 => [
2073                0xdc, 0xf4, 0x2b, 0x65, 0x42, 0xf6, 0xd4, 0x1c, 0xb7, 0xb5, 0x0e, 0x7c, 0x77, 0x2f,
2074                0x3c, 0x7f, 0x6e, 0x43, 0x22, 0x32, 0xf2, 0xba, 0x20, 0x79, 0xb3, 0x86, 0xa0, 0x5d,
2075                0x7b, 0x46, 0x6a, 0xdd,
2076            ],
2077            Elements::LeftExtend16_64 => [
2078                0x2e, 0xee, 0x48, 0xa9, 0x22, 0x37, 0x94, 0x7c, 0x1a, 0x51, 0x7d, 0xf9, 0x95, 0xf4,
2079                0x4f, 0x1d, 0xfe, 0xf2, 0x0d, 0xdb, 0x4e, 0x9b, 0x53, 0x0b, 0x22, 0xd1, 0x8a, 0x0a,
2080                0x7f, 0xd6, 0x28, 0xaa,
2081            ],
2082            Elements::LeftExtend1_16 => [
2083                0x9a, 0x48, 0xa4, 0x77, 0x8e, 0x7c, 0x3c, 0x28, 0x5a, 0xb6, 0x53, 0x29, 0xd1, 0xcc,
2084                0xc4, 0x99, 0x9d, 0x2d, 0x19, 0x4e, 0x00, 0x5b, 0xd7, 0x94, 0x69, 0x49, 0x53, 0x3d,
2085                0x8c, 0xba, 0x80, 0x6c,
2086            ],
2087            Elements::LeftExtend1_32 => [
2088                0xda, 0xb6, 0xa5, 0x33, 0xcb, 0xcb, 0xe8, 0x36, 0x2c, 0xf1, 0xd5, 0xa1, 0x6e, 0xa3,
2089                0x7c, 0xbc, 0x7e, 0xdc, 0x7f, 0xc8, 0xa9, 0x42, 0x85, 0x71, 0xe1, 0x71, 0xec, 0x6e,
2090                0xe4, 0x4d, 0x08, 0x00,
2091            ],
2092            Elements::LeftExtend1_64 => [
2093                0x11, 0x0e, 0x5c, 0x1e, 0xf0, 0xb4, 0x69, 0xa7, 0x63, 0x85, 0x70, 0xda, 0x94, 0x4d,
2094                0x23, 0x2e, 0x0f, 0x28, 0xc4, 0x61, 0x51, 0xa2, 0x25, 0x35, 0x7d, 0xe3, 0xe9, 0x04,
2095                0x57, 0xa8, 0x8e, 0xa2,
2096            ],
2097            Elements::LeftExtend1_8 => [
2098                0x5a, 0x83, 0x1c, 0xa9, 0x96, 0x21, 0x51, 0x7a, 0x2b, 0x35, 0x4e, 0x5c, 0xac, 0x38,
2099                0xbc, 0x3a, 0x30, 0xc4, 0x00, 0x1f, 0x20, 0xd2, 0x5d, 0x77, 0x97, 0xad, 0xdc, 0xac,
2100                0x5d, 0xa8, 0x61, 0x06,
2101            ],
2102            Elements::LeftExtend32_64 => [
2103                0x84, 0xfc, 0xc6, 0x9b, 0xa1, 0xdb, 0x50, 0xdb, 0xd5, 0x36, 0x3c, 0xf2, 0x77, 0x79,
2104                0x57, 0x60, 0x1d, 0xe2, 0x56, 0x8a, 0xdf, 0x07, 0xaf, 0x41, 0x61, 0xde, 0xbb, 0x1e,
2105                0x5e, 0x37, 0x31, 0x0a,
2106            ],
2107            Elements::LeftExtend8_16 => [
2108                0xfe, 0xa1, 0xf2, 0x5a, 0x82, 0xfd, 0xf6, 0xf8, 0x66, 0x9c, 0xc4, 0x0f, 0xbb, 0x8e,
2109                0x54, 0xa9, 0x26, 0x58, 0xbf, 0xab, 0x94, 0xeb, 0x08, 0x2f, 0x71, 0x7b, 0xa2, 0x65,
2110                0xb5, 0xd8, 0x44, 0xb4,
2111            ],
2112            Elements::LeftExtend8_32 => [
2113                0x09, 0xd7, 0x03, 0xca, 0x46, 0xf7, 0x5d, 0x05, 0x1a, 0x93, 0xd0, 0xe8, 0xa2, 0xaf,
2114                0x05, 0x01, 0xa3, 0x8e, 0x84, 0x86, 0x83, 0xef, 0x10, 0x9c, 0x1f, 0xb4, 0xb5, 0xbe,
2115                0x20, 0xe6, 0x31, 0x5d,
2116            ],
2117            Elements::LeftExtend8_64 => [
2118                0xd3, 0xda, 0xfc, 0xbd, 0xab, 0x69, 0xa2, 0xbb, 0x32, 0x0f, 0x8d, 0x23, 0x0c, 0xef,
2119                0xd0, 0x9c, 0x27, 0xa1, 0x54, 0xc5, 0x1e, 0x7e, 0x5c, 0xd5, 0x33, 0x4e, 0xaf, 0xed,
2120                0x19, 0xe2, 0x0d, 0xf4,
2121            ],
2122            Elements::LeftPadHigh16_32 => [
2123                0x88, 0x8c, 0x7e, 0x0a, 0xb0, 0x03, 0x14, 0x75, 0xc5, 0x14, 0xf9, 0xb3, 0x7c, 0x81,
2124                0xf4, 0x5a, 0x47, 0x31, 0x49, 0x84, 0xe5, 0x02, 0x75, 0x08, 0xdd, 0xc5, 0xeb, 0x8d,
2125                0x8d, 0x10, 0xbe, 0xb9,
2126            ],
2127            Elements::LeftPadHigh16_64 => [
2128                0x52, 0x6b, 0x35, 0x05, 0x45, 0x01, 0x36, 0xd6, 0x81, 0xa5, 0x0b, 0x4b, 0xde, 0x4f,
2129                0xa6, 0x12, 0xda, 0x9d, 0x69, 0xbd, 0x08, 0x17, 0x0e, 0xa3, 0x2d, 0x0a, 0x26, 0x51,
2130                0x11, 0x50, 0x72, 0xeb,
2131            ],
2132            Elements::LeftPadHigh1_16 => [
2133                0x93, 0xae, 0xd6, 0xf6, 0x87, 0x50, 0x77, 0x4b, 0x2d, 0xbf, 0x83, 0x14, 0xca, 0xde,
2134                0xbe, 0x5a, 0x41, 0x52, 0x43, 0xfb, 0xdf, 0x7c, 0x2e, 0xea, 0x8b, 0x22, 0x3d, 0xf3,
2135                0x26, 0x1e, 0x3b, 0xdb,
2136            ],
2137            Elements::LeftPadHigh1_32 => [
2138                0x00, 0x82, 0x98, 0xf8, 0x2f, 0xb6, 0xcf, 0x37, 0xe9, 0xdc, 0x70, 0x3e, 0xa4, 0xf9,
2139                0x49, 0x56, 0x5c, 0x29, 0x65, 0xa7, 0xc7, 0xf4, 0xfa, 0x22, 0xf5, 0x54, 0x56, 0x42,
2140                0x34, 0x08, 0xa3, 0xab,
2141            ],
2142            Elements::LeftPadHigh1_64 => [
2143                0x2b, 0x45, 0x4e, 0xbd, 0x79, 0x1e, 0xc7, 0xda, 0xce, 0xdc, 0xb8, 0x6c, 0x69, 0xd0,
2144                0x26, 0x79, 0x4a, 0x5d, 0xc3, 0x72, 0x52, 0x61, 0xe7, 0xdc, 0x16, 0x50, 0xcc, 0x88,
2145                0x81, 0x17, 0xfc, 0x4f,
2146            ],
2147            Elements::LeftPadHigh1_8 => [
2148                0x6c, 0x27, 0x7c, 0x4c, 0xd0, 0x53, 0xdd, 0x35, 0x02, 0xdb, 0xe0, 0xbb, 0xc1, 0x4e,
2149                0xb0, 0xb3, 0x6a, 0x20, 0x1a, 0xbe, 0xf3, 0xb1, 0x74, 0xb0, 0xeb, 0xfe, 0x05, 0x20,
2150                0x18, 0xb6, 0x7e, 0x67,
2151            ],
2152            Elements::LeftPadHigh32_64 => [
2153                0x5d, 0x41, 0x22, 0x1c, 0xf6, 0x15, 0x82, 0x97, 0xb0, 0x6c, 0x19, 0x57, 0x11, 0x2c,
2154                0x0d, 0x12, 0xf3, 0xeb, 0x91, 0x7a, 0x2f, 0x50, 0x9a, 0x53, 0x9d, 0x5c, 0x9b, 0x79,
2155                0x10, 0x21, 0x9b, 0x65,
2156            ],
2157            Elements::LeftPadHigh8_16 => [
2158                0x21, 0x78, 0xdc, 0x76, 0xc0, 0x4c, 0x79, 0xd9, 0x18, 0x15, 0xd3, 0x8c, 0x96, 0x7f,
2159                0x34, 0x21, 0x3f, 0xfc, 0xc6, 0xc5, 0xf2, 0x43, 0xc9, 0x56, 0x29, 0x73, 0xf0, 0x90,
2160                0xca, 0x5c, 0xae, 0xfa,
2161            ],
2162            Elements::LeftPadHigh8_32 => [
2163                0xa4, 0xe8, 0x6b, 0x53, 0xe5, 0xd0, 0x0f, 0xaf, 0x0b, 0x3e, 0x9d, 0x53, 0x20, 0x2a,
2164                0xf7, 0x73, 0x8d, 0xcb, 0x88, 0x87, 0xa1, 0x8d, 0xfe, 0xe5, 0xbe, 0x34, 0xc4, 0x97,
2165                0x69, 0x8c, 0xa6, 0xb7,
2166            ],
2167            Elements::LeftPadHigh8_64 => [
2168                0xc8, 0x43, 0xa7, 0x2c, 0x41, 0x17, 0x0f, 0x40, 0x34, 0x33, 0xc4, 0x36, 0xa3, 0x9b,
2169                0x05, 0xcf, 0x19, 0x3c, 0x27, 0xd8, 0xbe, 0x35, 0x30, 0xf9, 0xb9, 0x4e, 0x42, 0xd7,
2170                0x63, 0x00, 0x3d, 0x54,
2171            ],
2172            Elements::LeftPadLow16_32 => [
2173                0x21, 0x53, 0x7f, 0x7d, 0x8f, 0x97, 0xf2, 0x20, 0x3c, 0xcc, 0xb0, 0x35, 0xef, 0x1d,
2174                0x46, 0x28, 0x9e, 0xe8, 0xaa, 0x50, 0xf0, 0x23, 0x60, 0x77, 0xd0, 0xd0, 0xb2, 0x10,
2175                0x70, 0x04, 0x40, 0xa1,
2176            ],
2177            Elements::LeftPadLow16_64 => [
2178                0x6b, 0x2e, 0xa9, 0x63, 0x0c, 0x5d, 0xde, 0x03, 0x7a, 0xab, 0x2b, 0xf7, 0x33, 0x21,
2179                0x9b, 0x99, 0xc7, 0xed, 0xc2, 0xec, 0xed, 0xb9, 0xa0, 0x3a, 0xdf, 0xd1, 0x69, 0x43,
2180                0x0b, 0x08, 0xbb, 0x9c,
2181            ],
2182            Elements::LeftPadLow1_16 => [
2183                0x4a, 0xa4, 0x05, 0x20, 0xfa, 0xed, 0x72, 0xe6, 0xe9, 0xbe, 0x3b, 0xe6, 0x93, 0x0f,
2184                0x1e, 0x32, 0xb0, 0xb1, 0x82, 0xc4, 0x32, 0x7a, 0xda, 0x94, 0xa7, 0x1f, 0x00, 0x6d,
2185                0x14, 0x90, 0x15, 0xf9,
2186            ],
2187            Elements::LeftPadLow1_32 => [
2188                0xcf, 0xb4, 0x75, 0x3b, 0xb9, 0xba, 0x36, 0x21, 0xba, 0x09, 0x37, 0x82, 0x5f, 0xad,
2189                0xe6, 0x43, 0x09, 0x8e, 0x38, 0x5e, 0xd6, 0x8e, 0xfb, 0x16, 0xff, 0x58, 0xec, 0xf3,
2190                0x65, 0xd7, 0xe5, 0xe2,
2191            ],
2192            Elements::LeftPadLow1_64 => [
2193                0xe6, 0xf1, 0xc0, 0x9b, 0x5f, 0xe1, 0x26, 0xd0, 0xea, 0x86, 0xe7, 0xbf, 0xc0, 0xb2,
2194                0x8e, 0x84, 0x9f, 0x8f, 0x7e, 0xfd, 0x31, 0x06, 0x4e, 0xa4, 0xfd, 0x1c, 0xca, 0x07,
2195                0x1b, 0x45, 0xdb, 0x93,
2196            ],
2197            Elements::LeftPadLow1_8 => [
2198                0xdc, 0x5a, 0x47, 0xf8, 0xd7, 0x77, 0x65, 0xc9, 0x94, 0xcb, 0xe8, 0x6a, 0xae, 0x44,
2199                0xa9, 0xc5, 0xff, 0x2e, 0xbc, 0x38, 0x10, 0xd7, 0x9c, 0xd8, 0x3b, 0xd2, 0xc4, 0x09,
2200                0x8c, 0x76, 0x2b, 0xf5,
2201            ],
2202            Elements::LeftPadLow32_64 => [
2203                0x2d, 0x88, 0xe4, 0xd0, 0x1e, 0x01, 0x08, 0xc0, 0xd6, 0x88, 0x0f, 0x3c, 0xe8, 0x48,
2204                0x2b, 0xb0, 0x95, 0x1f, 0x2b, 0x3f, 0xc5, 0xdf, 0x4b, 0x1a, 0xdb, 0x18, 0x4a, 0x1b,
2205                0xfd, 0x1f, 0x64, 0x65,
2206            ],
2207            Elements::LeftPadLow8_16 => [
2208                0xac, 0x1a, 0x4c, 0x97, 0x83, 0xe4, 0xdb, 0xed, 0x27, 0x00, 0xeb, 0x29, 0x52, 0xe3,
2209                0x06, 0x2a, 0x5a, 0x72, 0x71, 0x2f, 0x82, 0x15, 0x98, 0x61, 0xb0, 0x8e, 0x67, 0xef,
2210                0x4a, 0x71, 0xf5, 0xf2,
2211            ],
2212            Elements::LeftPadLow8_32 => [
2213                0x3d, 0xa5, 0xf1, 0xa8, 0xc9, 0x78, 0x19, 0xae, 0x7e, 0x10, 0xb9, 0x36, 0x4f, 0xf8,
2214                0x49, 0x96, 0xd0, 0xd7, 0x3e, 0x69, 0x8a, 0x49, 0xda, 0x69, 0x1f, 0x69, 0xa2, 0x73,
2215                0x25, 0x42, 0x01, 0xcd,
2216            ],
2217            Elements::LeftPadLow8_64 => [
2218                0x25, 0xbc, 0x18, 0xd4, 0x9f, 0x93, 0x40, 0x72, 0x27, 0x7d, 0x3f, 0x61, 0x3b, 0xf1,
2219                0x6c, 0x11, 0x8d, 0xf1, 0x97, 0xbc, 0x92, 0x87, 0x2d, 0x2a, 0xff, 0xe4, 0x17, 0xad,
2220                0xea, 0xaf, 0x1a, 0x85,
2221            ],
2222            Elements::LeftRotate16 => [
2223                0x88, 0xc1, 0x23, 0x37, 0xcd, 0x75, 0x4f, 0x83, 0x80, 0x98, 0x6d, 0x86, 0xfe, 0x3a,
2224                0x89, 0xe2, 0x62, 0x74, 0x66, 0x53, 0xe1, 0xba, 0xdd, 0x9c, 0xc9, 0xb4, 0x76, 0x45,
2225                0xfe, 0x57, 0x19, 0x5a,
2226            ],
2227            Elements::LeftRotate32 => [
2228                0x39, 0x81, 0x6c, 0xcd, 0x9e, 0x9c, 0xf1, 0x19, 0x1f, 0x06, 0x5d, 0x2e, 0xb7, 0xa7,
2229                0xfb, 0x83, 0x82, 0x8d, 0x91, 0xec, 0x7d, 0x99, 0x77, 0xa1, 0xfc, 0x70, 0xbe, 0x9b,
2230                0x31, 0xa4, 0x68, 0xb9,
2231            ],
2232            Elements::LeftRotate64 => [
2233                0x8b, 0x23, 0x55, 0xc3, 0x1e, 0x3b, 0x61, 0x4b, 0xd4, 0xb4, 0x1c, 0x3e, 0xcf, 0x27,
2234                0x74, 0x24, 0xd0, 0x26, 0x76, 0x6b, 0x37, 0xbc, 0x6c, 0x10, 0x56, 0x21, 0xf4, 0xf6,
2235                0xa1, 0x6f, 0x9b, 0xdf,
2236            ],
2237            Elements::LeftRotate8 => [
2238                0x9e, 0x96, 0x6e, 0x88, 0x0c, 0x6b, 0x0c, 0x48, 0x3c, 0x90, 0xbe, 0xee, 0xd7, 0xc5,
2239                0x73, 0x7c, 0xa5, 0xf3, 0xfa, 0xcf, 0x85, 0xaa, 0xb3, 0xd5, 0x31, 0xad, 0x34, 0xbd,
2240                0x7b, 0x1a, 0x9b, 0x68,
2241            ],
2242            Elements::LeftShift16 => [
2243                0xb0, 0x53, 0x60, 0x18, 0x4d, 0x06, 0x02, 0xb5, 0x81, 0x40, 0x5e, 0x32, 0x96, 0x0b,
2244                0x31, 0xc0, 0x52, 0x19, 0x35, 0x8d, 0xe8, 0x9e, 0xfd, 0xf4, 0x94, 0x64, 0x72, 0x3d,
2245                0xd6, 0x25, 0x61, 0x7a,
2246            ],
2247            Elements::LeftShift32 => [
2248                0x34, 0xbf, 0x54, 0xf5, 0x94, 0xc2, 0x62, 0x10, 0x07, 0xf8, 0xc7, 0x8b, 0x30, 0xfa,
2249                0xd3, 0x96, 0x72, 0x00, 0x9b, 0xb3, 0x66, 0xaa, 0xce, 0x1e, 0x5e, 0x41, 0xee, 0x4d,
2250                0x9c, 0xc5, 0x41, 0xa8,
2251            ],
2252            Elements::LeftShift64 => [
2253                0x5d, 0xe9, 0x53, 0xf0, 0x4d, 0xea, 0xed, 0x90, 0x47, 0x56, 0x76, 0x47, 0xa1, 0xeb,
2254                0x7a, 0xbe, 0x66, 0x5f, 0xec, 0xcb, 0xe7, 0xed, 0x10, 0xcb, 0x7d, 0xbe, 0x69, 0x12,
2255                0x73, 0xc0, 0x94, 0xb0,
2256            ],
2257            Elements::LeftShift8 => [
2258                0xab, 0x9d, 0x3e, 0x9a, 0xc3, 0x90, 0x38, 0xad, 0x88, 0xb1, 0x03, 0xf0, 0x72, 0x25,
2259                0x4c, 0x0e, 0xc6, 0xe2, 0x74, 0x75, 0xe2, 0x75, 0xc2, 0x45, 0xe8, 0x8c, 0xce, 0x0d,
2260                0x07, 0x2e, 0x64, 0x46,
2261            ],
2262            Elements::LeftShiftWith16 => [
2263                0xe2, 0x91, 0x07, 0x88, 0x55, 0x50, 0x45, 0x0e, 0xb7, 0x27, 0xd0, 0xcf, 0x14, 0xe1,
2264                0x04, 0xae, 0x12, 0xf8, 0x3a, 0x24, 0xe2, 0xe2, 0xac, 0xa3, 0xcc, 0xe4, 0x33, 0xde,
2265                0x2f, 0x35, 0xd7, 0xb3,
2266            ],
2267            Elements::LeftShiftWith32 => [
2268                0xf3, 0x92, 0x50, 0xc4, 0x5a, 0x13, 0x10, 0xcc, 0x63, 0x8c, 0x78, 0x8d, 0xee, 0xc5,
2269                0xc3, 0x65, 0xb4, 0xd1, 0x76, 0xd1, 0x0e, 0xfb, 0xf4, 0xc6, 0x01, 0xcf, 0x5e, 0xeb,
2270                0xe0, 0xa5, 0x73, 0xe9,
2271            ],
2272            Elements::LeftShiftWith64 => [
2273                0xad, 0x87, 0x94, 0xcf, 0xae, 0xf2, 0xb7, 0xf7, 0x74, 0xfa, 0x68, 0xd3, 0x09, 0xbb,
2274                0xc9, 0x8d, 0xfe, 0xe5, 0x8c, 0x40, 0x40, 0x0b, 0x2e, 0xb5, 0x78, 0xa2, 0x12, 0xf4,
2275                0x38, 0xbd, 0x07, 0xab,
2276            ],
2277            Elements::LeftShiftWith8 => [
2278                0xdd, 0x9c, 0xc1, 0xce, 0xa7, 0x49, 0x09, 0x48, 0x1f, 0xf5, 0x8f, 0x87, 0x6f, 0xf6,
2279                0x6e, 0x0f, 0x5d, 0x52, 0xbf, 0x89, 0xb0, 0x25, 0x8f, 0xa9, 0x5b, 0x32, 0x00, 0x02,
2280                0xc3, 0x2a, 0x79, 0x15,
2281            ],
2282            Elements::Leftmost16_1 => [
2283                0xde, 0x6a, 0x4c, 0x98, 0x33, 0x7e, 0x68, 0x0d, 0x6e, 0x6e, 0xe2, 0xbf, 0x36, 0xd3,
2284                0xa0, 0x81, 0x7d, 0x2a, 0x9a, 0x98, 0x32, 0x5f, 0x87, 0xe5, 0xec, 0xeb, 0x8a, 0x6f,
2285                0x11, 0x68, 0xf5, 0xca,
2286            ],
2287            Elements::Leftmost16_2 => [
2288                0x00, 0x58, 0x09, 0xb8, 0x05, 0x1a, 0x2a, 0x50, 0x28, 0x33, 0xb2, 0x2c, 0x2c, 0x17,
2289                0x98, 0x1e, 0xaf, 0x9d, 0xd1, 0xd3, 0xdb, 0xc8, 0xf8, 0xc8, 0x94, 0x51, 0x6c, 0x1d,
2290                0x5f, 0x31, 0x14, 0x6c,
2291            ],
2292            Elements::Leftmost16_4 => [
2293                0x9c, 0x50, 0xee, 0x22, 0x84, 0xd8, 0x57, 0xc4, 0x7c, 0x05, 0x44, 0x47, 0x13, 0x54,
2294                0x10, 0x5e, 0x98, 0xdf, 0xe0, 0x27, 0x54, 0xd2, 0xe4, 0x2d, 0xe1, 0x1d, 0x32, 0x34,
2295                0xed, 0x10, 0xb6, 0x42,
2296            ],
2297            Elements::Leftmost16_8 => [
2298                0x5a, 0x1a, 0x72, 0x91, 0x4e, 0x14, 0x9c, 0x22, 0xb4, 0x64, 0xc8, 0xf6, 0xa3, 0xd9,
2299                0xcf, 0x41, 0xb0, 0x71, 0x92, 0xbe, 0xf0, 0xd8, 0xa1, 0xcc, 0x7c, 0xbe, 0x57, 0x04,
2300                0xa9, 0xe8, 0xea, 0x70,
2301            ],
2302            Elements::Leftmost32_1 => [
2303                0x5f, 0xb8, 0xe6, 0x34, 0x2a, 0xb7, 0x4e, 0xe2, 0xc9, 0x22, 0x5b, 0x87, 0x2f, 0xa0,
2304                0xc9, 0x12, 0x04, 0x6a, 0x69, 0xdb, 0xb7, 0x19, 0xbc, 0xd6, 0xc8, 0xd7, 0x9b, 0x76,
2305                0x60, 0xc4, 0xeb, 0xca,
2306            ],
2307            Elements::Leftmost32_16 => [
2308                0x54, 0xae, 0x50, 0xb4, 0x6b, 0x5b, 0x2e, 0x68, 0xf5, 0x36, 0xc0, 0x1c, 0x39, 0x61,
2309                0x7b, 0x0c, 0xee, 0x42, 0xe1, 0xc4, 0x9a, 0x2c, 0xd1, 0xd2, 0x6a, 0xf8, 0xea, 0x87,
2310                0x15, 0xac, 0x4d, 0x11,
2311            ],
2312            Elements::Leftmost32_2 => [
2313                0x12, 0x30, 0x68, 0x55, 0x45, 0x95, 0x42, 0x7e, 0x3c, 0x1d, 0xe2, 0x43, 0xba, 0xb6,
2314                0x6f, 0x33, 0x48, 0x36, 0x8a, 0xaa, 0x44, 0x61, 0x7d, 0x6a, 0x02, 0x47, 0x9f, 0xb7,
2315                0x04, 0xbc, 0xfd, 0x1e,
2316            ],
2317            Elements::Leftmost32_4 => [
2318                0x55, 0xa8, 0x7b, 0x66, 0xc3, 0x39, 0xe3, 0x63, 0xe0, 0x3d, 0x4d, 0xaa, 0xc6, 0x22,
2319                0x90, 0xeb, 0xa9, 0x3c, 0x1a, 0x3a, 0x73, 0x82, 0xcb, 0xf6, 0x1f, 0x20, 0xb3, 0x4a,
2320                0x50, 0x51, 0x24, 0xad,
2321            ],
2322            Elements::Leftmost32_8 => [
2323                0x9f, 0x34, 0x5b, 0xee, 0x0b, 0x16, 0x2d, 0x42, 0xa0, 0x35, 0x71, 0x8f, 0x8c, 0xa1,
2324                0xad, 0xc8, 0xac, 0x2f, 0x71, 0x0d, 0xc4, 0x00, 0x52, 0xa8, 0x25, 0x66, 0xe6, 0xd8,
2325                0x07, 0xbe, 0xf8, 0xb8,
2326            ],
2327            Elements::Leftmost64_1 => [
2328                0xb9, 0x24, 0xd3, 0x3b, 0x5e, 0xfe, 0xfc, 0x8e, 0x20, 0x42, 0x08, 0x19, 0x25, 0x91,
2329                0x7c, 0xff, 0x23, 0x9b, 0x31, 0xc8, 0xbd, 0xbd, 0xf4, 0xac, 0xae, 0x6b, 0xb8, 0xd9,
2330                0xcd, 0x21, 0x7b, 0x4f,
2331            ],
2332            Elements::Leftmost64_16 => [
2333                0x12, 0xaa, 0x85, 0xe0, 0x5c, 0x1e, 0x96, 0x22, 0x27, 0x9c, 0x4c, 0x2d, 0xdc, 0xf8,
2334                0x97, 0xc9, 0x5d, 0xdc, 0xc0, 0x11, 0x39, 0x97, 0x28, 0x3b, 0x6b, 0x3e, 0x09, 0x49,
2335                0xbc, 0x81, 0x13, 0xcb,
2336            ],
2337            Elements::Leftmost64_2 => [
2338                0xbc, 0xec, 0x97, 0xf4, 0x3b, 0xa5, 0x5c, 0xd4, 0x0d, 0x85, 0xa1, 0xe7, 0x6c, 0xba,
2339                0xde, 0x7b, 0x0b, 0x1e, 0x9f, 0x13, 0x97, 0x47, 0x79, 0x3d, 0xcb, 0x34, 0x80, 0xbe,
2340                0xe1, 0xf7, 0x51, 0xca,
2341            ],
2342            Elements::Leftmost64_32 => [
2343                0x9c, 0x89, 0x69, 0x39, 0x86, 0xe5, 0x57, 0x33, 0xab, 0x96, 0x2a, 0x30, 0x0b, 0x05,
2344                0x79, 0x50, 0x3d, 0x83, 0xde, 0x8a, 0xc1, 0x9b, 0x17, 0x9b, 0x41, 0x7e, 0x1c, 0xa2,
2345                0x53, 0x85, 0xb3, 0x8f,
2346            ],
2347            Elements::Leftmost64_4 => [
2348                0xd2, 0xd6, 0x45, 0x20, 0x92, 0xd6, 0x56, 0x6f, 0x89, 0xa1, 0xf6, 0x4e, 0x73, 0x65,
2349                0x96, 0xf9, 0x00, 0x0e, 0x5e, 0x6f, 0x63, 0xe4, 0x00, 0x17, 0xd0, 0xcb, 0x80, 0xf3,
2350                0xf7, 0xad, 0xfd, 0x18,
2351            ],
2352            Elements::Leftmost64_8 => [
2353                0xf7, 0x7b, 0x62, 0xbb, 0x01, 0xb9, 0x05, 0x11, 0xb6, 0xd0, 0x6e, 0xbf, 0x2e, 0x36,
2354                0xc0, 0x65, 0x65, 0xac, 0xb5, 0xaa, 0xd1, 0xef, 0xc7, 0x7c, 0x36, 0xa1, 0x0a, 0x26,
2355                0x1d, 0xe9, 0x21, 0xda,
2356            ],
2357            Elements::Leftmost8_1 => [
2358                0x5a, 0x73, 0x0b, 0x58, 0xe3, 0xab, 0xcb, 0x2f, 0x4d, 0xe2, 0x21, 0x59, 0x80, 0x30,
2359                0x23, 0x10, 0x2c, 0xd6, 0x64, 0x21, 0x91, 0x19, 0x20, 0xca, 0x21, 0xa2, 0xa0, 0x5c,
2360                0x9b, 0x21, 0x1c, 0xe8,
2361            ],
2362            Elements::Leftmost8_2 => [
2363                0x25, 0x79, 0x08, 0x56, 0x10, 0x3d, 0xce, 0x6c, 0x7b, 0xbb, 0x3d, 0xd7, 0x18, 0xb1,
2364                0x69, 0x10, 0x9c, 0xae, 0x85, 0x37, 0x99, 0xd1, 0x24, 0x56, 0xc8, 0x5d, 0x83, 0x49,
2365                0xec, 0x18, 0xdc, 0x53,
2366            ],
2367            Elements::Leftmost8_4 => [
2368                0x73, 0xd9, 0xf0, 0x18, 0x15, 0x7a, 0x14, 0x78, 0x4e, 0xe7, 0x0b, 0x21, 0x9c, 0xeb,
2369                0x40, 0x42, 0xfa, 0x62, 0x1d, 0x0e, 0xe6, 0xd5, 0x45, 0xa0, 0xfd, 0xba, 0xb9, 0x44,
2370                0x43, 0x46, 0xe3, 0x31,
2371            ],
2372            Elements::LinearCombination1 => [
2373                0x6d, 0x9f, 0x4a, 0x87, 0x0f, 0xbf, 0x74, 0x0c, 0x22, 0x0e, 0xff, 0xf3, 0x07, 0xb5,
2374                0xed, 0x91, 0xa5, 0x8c, 0x5e, 0x51, 0xa8, 0xad, 0xfc, 0x3b, 0x15, 0x90, 0x30, 0xf5,
2375                0x12, 0xd3, 0x99, 0x41,
2376            ],
2377            Elements::LinearVerify1 => [
2378                0x27, 0x83, 0x13, 0xd7, 0xce, 0x4a, 0xd5, 0x89, 0x11, 0xde, 0x24, 0xee, 0x54, 0x0d,
2379                0x19, 0xec, 0xeb, 0xb6, 0x2f, 0x4a, 0xb4, 0xa7, 0x1e, 0x2a, 0xad, 0xd4, 0x51, 0x2b,
2380                0x2e, 0x4b, 0xc2, 0xe2,
2381            ],
2382            Elements::LockTime => [
2383                0xa1, 0x68, 0x97, 0xc5, 0xdb, 0x49, 0x27, 0xc6, 0xcb, 0x07, 0xb1, 0x65, 0xbd, 0x2c,
2384                0xc3, 0x8b, 0x36, 0xa6, 0x02, 0x68, 0x6c, 0x74, 0xa1, 0x90, 0x34, 0xaa, 0x37, 0x87,
2385                0xac, 0x58, 0x2a, 0x0b,
2386            ],
2387            Elements::Low1 => [
2388                0xf2, 0x7b, 0x69, 0xbb, 0x09, 0x16, 0x09, 0xf5, 0x9e, 0x00, 0x33, 0x05, 0x0d, 0x01,
2389                0xa5, 0xbc, 0x77, 0xff, 0x07, 0xd9, 0x42, 0x70, 0x7a, 0x79, 0xcf, 0x5e, 0xe4, 0x10,
2390                0xa9, 0x98, 0xa0, 0x43,
2391            ],
2392            Elements::Low16 => [
2393                0x97, 0x7c, 0xbd, 0x1e, 0x7f, 0xfc, 0x05, 0xe7, 0x16, 0xd9, 0xc1, 0xb4, 0x9f, 0x7d,
2394                0x51, 0x7f, 0x85, 0x3d, 0xbf, 0x3e, 0x98, 0xa4, 0xc7, 0x48, 0x04, 0x6e, 0xac, 0xf4,
2395                0x17, 0xf8, 0x9c, 0x2f,
2396            ],
2397            Elements::Low32 => [
2398                0xbe, 0x41, 0x69, 0x82, 0x8f, 0x07, 0x67, 0x78, 0xb6, 0x0d, 0x54, 0x56, 0xf7, 0x88,
2399                0x6e, 0xd7, 0xf3, 0x0b, 0x10, 0x1d, 0x6c, 0xcb, 0xd9, 0xea, 0x0c, 0x4d, 0xb1, 0x42,
2400                0xea, 0xc6, 0x6b, 0x12,
2401            ],
2402            Elements::Low64 => [
2403                0x01, 0x9a, 0x66, 0xbf, 0xba, 0x17, 0x51, 0x68, 0x8b, 0xe7, 0x13, 0x89, 0xed, 0x7b,
2404                0xf3, 0x71, 0xb3, 0x01, 0x4d, 0xfb, 0x32, 0x95, 0x62, 0xac, 0x3b, 0x3e, 0x9d, 0xfe,
2405                0x92, 0x06, 0xa5, 0xbc,
2406            ],
2407            Elements::Low8 => [
2408                0x21, 0x7b, 0x56, 0x43, 0x95, 0x6b, 0x48, 0x33, 0xaa, 0x56, 0x22, 0xf0, 0x0f, 0x06,
2409                0x88, 0xba, 0x86, 0x0d, 0x4a, 0xdb, 0xf9, 0x40, 0xcb, 0xdc, 0xd2, 0xb5, 0x9f, 0x26,
2410                0xd6, 0x15, 0x93, 0xb1,
2411            ],
2412            Elements::Lt16 => [
2413                0x56, 0xa2, 0x0d, 0x55, 0xed, 0xb4, 0x43, 0x88, 0x18, 0x05, 0x44, 0xc3, 0xed, 0x40,
2414                0x41, 0x45, 0xa3, 0xb6, 0x6f, 0xd2, 0xc4, 0x11, 0x38, 0x42, 0xf6, 0x4e, 0xae, 0xaf,
2415                0xba, 0xd4, 0xbb, 0x06,
2416            ],
2417            Elements::Lt32 => [
2418                0xca, 0xb0, 0xdc, 0x5b, 0x0e, 0xcb, 0xf6, 0xd2, 0x48, 0x16, 0xfc, 0x20, 0x10, 0xfc,
2419                0x31, 0x19, 0x36, 0x63, 0xc3, 0x06, 0x96, 0x8d, 0x9c, 0xee, 0x3b, 0x00, 0x4c, 0x0b,
2420                0xc1, 0x84, 0xb4, 0x78,
2421            ],
2422            Elements::Lt64 => [
2423                0x47, 0xd6, 0x7e, 0x52, 0xb2, 0x7b, 0xa7, 0x8e, 0xdd, 0x07, 0x5a, 0xa2, 0x70, 0xde,
2424                0xd0, 0x07, 0xa7, 0xa9, 0xa6, 0x84, 0x99, 0x34, 0x4f, 0x28, 0x62, 0xf5, 0x06, 0x90,
2425                0x49, 0xa0, 0xce, 0xfe,
2426            ],
2427            Elements::Lt8 => [
2428                0x73, 0xd0, 0x04, 0x46, 0x55, 0xc0, 0xdf, 0x45, 0xc2, 0x71, 0xa1, 0x71, 0x3f, 0xf9,
2429                0xb9, 0xa4, 0x3d, 0xde, 0x56, 0xe6, 0x74, 0xd1, 0x75, 0x4e, 0x76, 0xed, 0xb1, 0x6f,
2430                0x94, 0x9c, 0x4f, 0xab,
2431            ],
2432            Elements::Maj1 => [
2433                0xcb, 0x2d, 0x98, 0x6d, 0x7f, 0x00, 0x10, 0x7a, 0x3c, 0x25, 0xf6, 0xb2, 0xf1, 0x48,
2434                0x91, 0xd0, 0x2e, 0x20, 0xae, 0x16, 0xf0, 0xa1, 0x25, 0x2c, 0x92, 0xd9, 0xb5, 0x8a,
2435                0xe7, 0x33, 0x88, 0xaa,
2436            ],
2437            Elements::Maj16 => [
2438                0x0a, 0xf6, 0xd0, 0xc1, 0x71, 0xfe, 0x33, 0xa2, 0x15, 0x9b, 0xf9, 0x88, 0x00, 0xf0,
2439                0x41, 0x2c, 0x25, 0x97, 0xe9, 0x97, 0x84, 0xd0, 0x74, 0xfd, 0xfa, 0x33, 0xd7, 0xfd,
2440                0xe5, 0x97, 0xdd, 0xfd,
2441            ],
2442            Elements::Maj32 => [
2443                0x30, 0x60, 0x83, 0x8d, 0x48, 0x45, 0x6f, 0x33, 0x92, 0xd5, 0xd6, 0x9b, 0x5e, 0xec,
2444                0x08, 0x92, 0x76, 0xcd, 0x58, 0xbb, 0x67, 0xa1, 0x2c, 0x64, 0x2e, 0xc7, 0x3a, 0xeb,
2445                0x9a, 0xda, 0xcb, 0xdd,
2446            ],
2447            Elements::Maj64 => [
2448                0x8e, 0xbc, 0xc1, 0x74, 0x57, 0xea, 0x2b, 0x14, 0x23, 0x1b, 0x0e, 0x90, 0x1e, 0xa7,
2449                0xb1, 0xd4, 0x7b, 0x9b, 0x78, 0x98, 0x63, 0x72, 0xa4, 0x41, 0x6f, 0xe7, 0x3f, 0x67,
2450                0x63, 0xfe, 0xb2, 0x4b,
2451            ],
2452            Elements::Maj8 => [
2453                0x89, 0x30, 0xd1, 0xd0, 0x99, 0x1b, 0x0a, 0x58, 0x1d, 0x0b, 0x1d, 0x85, 0xad, 0x72,
2454                0x14, 0x7d, 0x66, 0x49, 0xa3, 0x59, 0x93, 0x28, 0x3f, 0xc9, 0x72, 0x14, 0x43, 0x1f,
2455                0x0b, 0x6a, 0x7a, 0xa8,
2456            ],
2457            Elements::Max16 => [
2458                0xe0, 0x11, 0x47, 0x17, 0x69, 0x1a, 0xc1, 0xa7, 0x39, 0x28, 0x8f, 0xc6, 0xff, 0xa1,
2459                0xc6, 0x50, 0x7c, 0x43, 0xe6, 0xf1, 0xd4, 0xc1, 0x87, 0x70, 0xff, 0xa1, 0x66, 0xae,
2460                0x83, 0x9d, 0xd5, 0x33,
2461            ],
2462            Elements::Max32 => [
2463                0x1d, 0x72, 0x3c, 0xb3, 0x89, 0x94, 0x22, 0x19, 0xec, 0x10, 0x34, 0x85, 0x31, 0x7f,
2464                0xa5, 0xd8, 0x7e, 0xe1, 0x5c, 0x24, 0xb2, 0x08, 0x0f, 0x50, 0x46, 0x65, 0x0d, 0x80,
2465                0x30, 0x8b, 0x18, 0x9d,
2466            ],
2467            Elements::Max64 => [
2468                0x00, 0x73, 0xac, 0x3c, 0x6e, 0xa9, 0x39, 0xdc, 0xc7, 0xee, 0xe4, 0xea, 0x63, 0xdc,
2469                0xfd, 0x75, 0x20, 0x37, 0x35, 0x5b, 0x48, 0x4f, 0x6e, 0x70, 0x16, 0xb3, 0x00, 0xe2,
2470                0xd2, 0x8c, 0x07, 0xc3,
2471            ],
2472            Elements::Max8 => [
2473                0x6b, 0xc1, 0x03, 0x70, 0xf3, 0xe7, 0xa7, 0xb9, 0x2a, 0xcb, 0x14, 0x23, 0xbb, 0xdf,
2474                0x0b, 0x3d, 0x7e, 0x3c, 0xd0, 0xd2, 0xdb, 0xc7, 0x05, 0xa3, 0x4d, 0x8d, 0xc9, 0x9c,
2475                0x91, 0x04, 0x22, 0xfb,
2476            ],
2477            Elements::Median16 => [
2478                0x24, 0x14, 0xe3, 0xc4, 0x39, 0x65, 0x9d, 0x8a, 0xa9, 0xd0, 0x87, 0xe1, 0xad, 0xe7,
2479                0x72, 0x66, 0x67, 0x3d, 0x1c, 0x8b, 0xd4, 0xe7, 0x50, 0x1b, 0x22, 0xac, 0x46, 0xa3,
2480                0xff, 0x39, 0x97, 0x5d,
2481            ],
2482            Elements::Median32 => [
2483                0x07, 0x92, 0x35, 0x6b, 0x61, 0x0b, 0x57, 0xd0, 0xec, 0x19, 0x9e, 0x98, 0x53, 0x5e,
2484                0xa9, 0xbc, 0xcc, 0xe8, 0x43, 0xa5, 0xdf, 0x5d, 0xd2, 0x40, 0x8c, 0x41, 0x48, 0x86,
2485                0xdf, 0xd6, 0xbd, 0x1e,
2486            ],
2487            Elements::Median64 => [
2488                0x07, 0x66, 0xd8, 0x9b, 0x43, 0x0f, 0xfd, 0xf0, 0x38, 0x69, 0x1b, 0x18, 0x43, 0x9c,
2489                0xd6, 0xfc, 0x49, 0x29, 0x17, 0x2e, 0xa8, 0x84, 0xfd, 0xaf, 0x16, 0x69, 0x36, 0xb3,
2490                0x8b, 0x15, 0xfd, 0x0c,
2491            ],
2492            Elements::Median8 => [
2493                0xa4, 0xa0, 0xb6, 0x31, 0x0f, 0xf0, 0xed, 0x4a, 0x4c, 0x3e, 0x03, 0xeb, 0xc7, 0xa9,
2494                0x13, 0x06, 0xef, 0x66, 0x04, 0x24, 0xbc, 0x95, 0xa0, 0xd3, 0xf2, 0xfd, 0xb7, 0x1f,
2495                0xb6, 0xaf, 0xd8, 0xb7,
2496            ],
2497            Elements::Min16 => [
2498                0xf1, 0x58, 0xf4, 0x0a, 0x86, 0x09, 0x93, 0xb4, 0x10, 0x7f, 0xb2, 0x71, 0xfb, 0x4c,
2499                0x8f, 0x95, 0x5b, 0xa4, 0x54, 0x2a, 0xd1, 0x82, 0x1c, 0xd2, 0xf1, 0x3c, 0x88, 0x0c,
2500                0xa4, 0xbe, 0xe2, 0xe2,
2501            ],
2502            Elements::Min32 => [
2503                0xe5, 0xe4, 0x13, 0xdc, 0x5d, 0xe5, 0xe2, 0x2d, 0x66, 0xf3, 0x2d, 0x8d, 0xbf, 0x50,
2504                0x05, 0x3e, 0xd2, 0x78, 0xe1, 0x75, 0xc0, 0xd4, 0xb3, 0x44, 0xeb, 0xd4, 0x61, 0xbe,
2505                0xb1, 0x08, 0xe5, 0x5e,
2506            ],
2507            Elements::Min64 => [
2508                0x43, 0xd8, 0x2f, 0x6c, 0x61, 0x28, 0xaa, 0x01, 0xa9, 0x97, 0xbb, 0x17, 0xe5, 0xe7,
2509                0xf5, 0x01, 0xe7, 0xbe, 0x7d, 0xb9, 0x58, 0x9e, 0x56, 0x6d, 0xe9, 0x7a, 0x32, 0xea,
2510                0xe7, 0xe7, 0xb3, 0x39,
2511            ],
2512            Elements::Min8 => [
2513                0x6b, 0x01, 0x2c, 0xa3, 0x18, 0x5d, 0xc0, 0x05, 0xe8, 0x94, 0x2c, 0xfb, 0xc9, 0xf2,
2514                0x38, 0xdc, 0xed, 0xaf, 0x0c, 0x00, 0x43, 0x52, 0x64, 0x47, 0xe3, 0xec, 0x31, 0xce,
2515                0xfa, 0x6e, 0x40, 0x64,
2516            ],
2517            Elements::Modulo16 => [
2518                0x62, 0xc1, 0x79, 0xac, 0x84, 0xc5, 0x75, 0x0b, 0x42, 0x5f, 0x9a, 0x1b, 0x8f, 0x81,
2519                0xed, 0xaa, 0x7f, 0x5c, 0xf2, 0x2c, 0x19, 0xd8, 0x6b, 0x0d, 0xcf, 0x96, 0xde, 0xa6,
2520                0xba, 0xd9, 0x9b, 0x3b,
2521            ],
2522            Elements::Modulo32 => [
2523                0xa1, 0xf0, 0x1c, 0x10, 0x6f, 0xc3, 0x6a, 0x76, 0x4e, 0x99, 0xb2, 0x33, 0x98, 0xe2,
2524                0x1e, 0x7c, 0x26, 0x7f, 0x88, 0x9f, 0xcc, 0xeb, 0xd1, 0x48, 0x7d, 0x3d, 0xe1, 0xcc,
2525                0x67, 0xc3, 0x2b, 0xd9,
2526            ],
2527            Elements::Modulo64 => [
2528                0x50, 0xc8, 0x2f, 0xd0, 0x31, 0x09, 0xc9, 0x8b, 0x72, 0x37, 0xe9, 0x16, 0x74, 0x04,
2529                0x19, 0x64, 0x38, 0x1e, 0x6c, 0x2e, 0xbb, 0xe2, 0x5b, 0xf3, 0xe0, 0xd3, 0x7a, 0x9f,
2530                0x06, 0x0f, 0x15, 0x02,
2531            ],
2532            Elements::Modulo8 => [
2533                0x5c, 0x63, 0xc7, 0x7a, 0x16, 0x08, 0xe2, 0xf6, 0xa3, 0x74, 0x8c, 0x11, 0x0f, 0xbb,
2534                0x9a, 0x1c, 0x56, 0x9f, 0xb4, 0xd5, 0x40, 0xf3, 0xdd, 0x2e, 0x4f, 0x80, 0xe9, 0x0d,
2535                0xd5, 0xea, 0x99, 0x82,
2536            ],
2537            Elements::Multiply16 => [
2538                0x46, 0xe6, 0x2a, 0xbf, 0x8e, 0x30, 0xa7, 0x74, 0x6d, 0xe0, 0xe9, 0x29, 0xf7, 0xbe,
2539                0xed, 0xdb, 0xde, 0x8b, 0x26, 0x9b, 0xab, 0x08, 0xf7, 0x6e, 0x95, 0x47, 0x10, 0x8b,
2540                0x1c, 0x36, 0x01, 0x74,
2541            ],
2542            Elements::Multiply32 => [
2543                0x2d, 0xec, 0xdc, 0x5b, 0x0c, 0x6f, 0xf6, 0x3d, 0x11, 0xf5, 0x38, 0x52, 0xe0, 0xde,
2544                0xed, 0x11, 0x44, 0x81, 0x35, 0x5b, 0xb6, 0xc6, 0xce, 0x15, 0x46, 0xae, 0x9f, 0x81,
2545                0x5b, 0xee, 0x77, 0x50,
2546            ],
2547            Elements::Multiply64 => [
2548                0xbf, 0xa8, 0x62, 0x6d, 0xbf, 0x10, 0x00, 0x1d, 0xe3, 0x90, 0xd9, 0x97, 0xf2, 0xee,
2549                0x7b, 0x19, 0x0c, 0x24, 0xa7, 0x8c, 0xfe, 0xcb, 0x91, 0xf5, 0xd7, 0xc1, 0x0c, 0x3f,
2550                0x9d, 0xdb, 0xb1, 0xe6,
2551            ],
2552            Elements::Multiply8 => [
2553                0x29, 0xda, 0x13, 0x37, 0x4f, 0x7c, 0xb3, 0x08, 0x40, 0x5f, 0xe2, 0x30, 0xf8, 0x99,
2554                0x48, 0x5c, 0x50, 0x0e, 0x6e, 0x95, 0x20, 0xc1, 0x5e, 0x8a, 0x76, 0xe5, 0x3a, 0x92,
2555                0xe7, 0xac, 0x64, 0xd6,
2556            ],
2557            Elements::Negate16 => [
2558                0xf6, 0x42, 0x17, 0x3b, 0x85, 0xef, 0x21, 0x96, 0x9d, 0x8d, 0x90, 0x48, 0x80, 0x7e,
2559                0x3d, 0x4f, 0xac, 0xf3, 0xf5, 0xf9, 0xe5, 0x9a, 0xa5, 0xcf, 0x0c, 0x60, 0xf8, 0x74,
2560                0x22, 0xed, 0x7c, 0x8f,
2561            ],
2562            Elements::Negate32 => [
2563                0x54, 0x9b, 0x65, 0xce, 0x97, 0xc6, 0xb3, 0x34, 0xb8, 0xae, 0x94, 0x56, 0x96, 0x0e,
2564                0x36, 0x5b, 0xb2, 0x84, 0xd7, 0x6d, 0x40, 0x05, 0xe9, 0x21, 0xf4, 0x89, 0xbc, 0x36,
2565                0x26, 0x17, 0x1b, 0x06,
2566            ],
2567            Elements::Negate64 => [
2568                0x35, 0xac, 0xca, 0x27, 0xce, 0x65, 0x85, 0x79, 0xef, 0x1c, 0x55, 0xad, 0x1a, 0xbe,
2569                0xa0, 0x05, 0x0d, 0x93, 0x66, 0xd1, 0x22, 0x09, 0xad, 0x13, 0x05, 0x25, 0x49, 0xc3,
2570                0x43, 0x64, 0x91, 0xd0,
2571            ],
2572            Elements::Negate8 => [
2573                0xd8, 0x71, 0xc5, 0x42, 0x47, 0x3f, 0x4d, 0xd9, 0x02, 0xd3, 0x1f, 0xe3, 0xfc, 0x9a,
2574                0xc0, 0xf3, 0x31, 0x9e, 0x42, 0xe8, 0x0c, 0xae, 0x21, 0x81, 0xff, 0xc8, 0x5e, 0x6c,
2575                0x60, 0xfb, 0x09, 0x88,
2576            ],
2577            Elements::NewIssuanceContract => [
2578                0xdb, 0x64, 0x80, 0x8c, 0x3f, 0xf4, 0x48, 0x80, 0xd7, 0x2b, 0xc2, 0x95, 0xd9, 0xac,
2579                0x06, 0x43, 0xe5, 0x14, 0x04, 0xde, 0x53, 0x98, 0xad, 0x9e, 0x93, 0x1b, 0xd3, 0xd2,
2580                0xad, 0xbc, 0xa6, 0xc4,
2581            ],
2582            Elements::NonceHash => [
2583                0xfb, 0x1e, 0x03, 0x44, 0xdc, 0xda, 0xf9, 0xdb, 0x91, 0xb9, 0x87, 0xe8, 0xf9, 0x66,
2584                0x10, 0x67, 0x9f, 0x05, 0xde, 0xb2, 0x06, 0xb4, 0x01, 0x05, 0x75, 0x02, 0xa4, 0x84,
2585                0xaa, 0x87, 0xf8, 0xbf,
2586            ],
2587            Elements::NumInputs => [
2588                0xb2, 0x28, 0x8e, 0xba, 0xad, 0xcb, 0xcf, 0xce, 0x1c, 0x63, 0x19, 0x64, 0xc8, 0x6b,
2589                0x12, 0x7d, 0x6f, 0x91, 0xdc, 0x65, 0x7c, 0x59, 0xa7, 0xfb, 0x45, 0x3e, 0x91, 0x11,
2590                0xd8, 0x74, 0x81, 0xf5,
2591            ],
2592            Elements::NumOutputs => [
2593                0x26, 0x7d, 0x41, 0x65, 0x44, 0x93, 0x90, 0x3e, 0x02, 0x57, 0x75, 0x1a, 0xe6, 0xd4,
2594                0x2d, 0x9c, 0xe1, 0xbb, 0x92, 0x24, 0x6d, 0x0e, 0xf7, 0x67, 0xc3, 0x37, 0xb0, 0xc3,
2595                0x2b, 0x19, 0x72, 0xfd,
2596            ],
2597            Elements::One16 => [
2598                0x3f, 0x9f, 0x8d, 0xd1, 0x4c, 0x46, 0xee, 0x02, 0x47, 0x15, 0x57, 0x92, 0x9a, 0xc2,
2599                0xbb, 0x6c, 0x1a, 0xca, 0x00, 0x52, 0x1d, 0x8a, 0xfa, 0xf0, 0xdc, 0xd9, 0xf2, 0xca,
2600                0x7f, 0x31, 0xe6, 0x04,
2601            ],
2602            Elements::One32 => [
2603                0x47, 0x8d, 0xc3, 0x9d, 0xc3, 0x99, 0x5e, 0x2e, 0xdb, 0x7e, 0xc6, 0x74, 0x65, 0x6c,
2604                0xae, 0x79, 0x8f, 0x52, 0xe5, 0x72, 0x92, 0x61, 0x74, 0xa6, 0x68, 0xcc, 0x97, 0xbc,
2605                0xa4, 0x48, 0xd1, 0xcc,
2606            ],
2607            Elements::One64 => [
2608                0xa3, 0x92, 0xce, 0xfc, 0x0d, 0xa5, 0x3c, 0x65, 0xae, 0xe6, 0x12, 0xf5, 0xc6, 0x81,
2609                0x6c, 0xa8, 0x92, 0xfc, 0x15, 0x6d, 0x43, 0x71, 0x48, 0x76, 0xb3, 0xa0, 0x05, 0x68,
2610                0xe1, 0xba, 0x3e, 0xba,
2611            ],
2612            Elements::One8 => [
2613                0xff, 0x59, 0x4e, 0x22, 0xbf, 0xd7, 0x58, 0x13, 0xc0, 0x56, 0xe0, 0xa2, 0x34, 0xed,
2614                0x12, 0xfa, 0x82, 0x87, 0xd1, 0xd5, 0x31, 0x6f, 0x23, 0x90, 0x2b, 0xf0, 0x79, 0xdb,
2615                0xcc, 0x4f, 0x4e, 0xa8,
2616            ],
2617            Elements::Or1 => [
2618                0x9b, 0xf5, 0x91, 0x74, 0x41, 0x0a, 0x80, 0x9d, 0x3d, 0xa2, 0xb5, 0x8c, 0x7e, 0x0d,
2619                0x05, 0xc5, 0x5c, 0xec, 0x38, 0xbd, 0xaa, 0x5f, 0xca, 0xc3, 0x82, 0xa3, 0x11, 0x77,
2620                0x0e, 0xe0, 0xeb, 0x38,
2621            ],
2622            Elements::Or16 => [
2623                0xdd, 0x9a, 0x31, 0x93, 0xd6, 0x19, 0xd9, 0x59, 0xfa, 0x0b, 0x6d, 0x8b, 0x47, 0xaf,
2624                0x78, 0x54, 0xf7, 0xe0, 0x46, 0x7b, 0xa3, 0x59, 0x01, 0xce, 0x43, 0xd8, 0x00, 0xfc,
2625                0xaf, 0x73, 0x0f, 0xf9,
2626            ],
2627            Elements::Or32 => [
2628                0x9a, 0x01, 0x9f, 0x07, 0xdf, 0x49, 0x96, 0xb3, 0x3e, 0x64, 0x7f, 0x4d, 0xe7, 0xe5,
2629                0x6c, 0x1d, 0x8f, 0x03, 0x26, 0x9c, 0xbf, 0xa3, 0xc7, 0x58, 0x2c, 0xfe, 0x80, 0x8e,
2630                0x90, 0x98, 0x70, 0xb7,
2631            ],
2632            Elements::Or64 => [
2633                0xc2, 0x4f, 0x35, 0x80, 0x05, 0xf8, 0x03, 0x77, 0x2b, 0x1c, 0x3e, 0x43, 0x9c, 0xf1,
2634                0xb7, 0x09, 0xbd, 0x9f, 0x4d, 0x42, 0x52, 0x75, 0x91, 0x30, 0x3a, 0x36, 0xf6, 0xb1,
2635                0xc3, 0xcf, 0x29, 0xcc,
2636            ],
2637            Elements::Or8 => [
2638                0x84, 0xb5, 0x36, 0x89, 0xf2, 0x1d, 0x4e, 0x69, 0x7d, 0x0f, 0xe8, 0x98, 0x8c, 0xe7,
2639                0x36, 0xab, 0x72, 0xc9, 0xc8, 0x6f, 0x84, 0x75, 0x89, 0xda, 0xa9, 0xae, 0x6a, 0x78,
2640                0x46, 0x30, 0xe6, 0x20,
2641            ],
2642            Elements::OutpointHash => [
2643                0x8d, 0x2a, 0x5a, 0xa0, 0x6e, 0x98, 0xc4, 0x1b, 0x30, 0xfd, 0x07, 0x03, 0xe5, 0xe5,
2644                0x4c, 0x86, 0xb4, 0x2b, 0xee, 0x33, 0xbc, 0x89, 0xcb, 0x60, 0x93, 0xcd, 0xb0, 0x94,
2645                0x05, 0xa7, 0x2d, 0x9d,
2646            ],
2647            Elements::OutputAmount => [
2648                0x55, 0xe4, 0x13, 0x99, 0x21, 0x69, 0x40, 0x8e, 0x33, 0x8e, 0x11, 0xa8, 0xd7, 0xbe,
2649                0x60, 0x2b, 0x3e, 0xc9, 0x51, 0x1e, 0x7e, 0xb6, 0x91, 0xdf, 0x32, 0xd9, 0x79, 0x7a,
2650                0x63, 0x95, 0xa1, 0xa1,
2651            ],
2652            Elements::OutputAmountsHash => [
2653                0x40, 0x23, 0x69, 0x63, 0xe1, 0x0e, 0xf8, 0xad, 0x9c, 0xb6, 0xe0, 0xa7, 0xc7, 0x9a,
2654                0xc8, 0x66, 0x0d, 0x2f, 0xc1, 0xa5, 0x7f, 0xef, 0xf8, 0x85, 0x15, 0xa7, 0x85, 0x27,
2655                0x91, 0xb1, 0x86, 0xcb,
2656            ],
2657            Elements::OutputAsset => [
2658                0x57, 0x5a, 0x49, 0xba, 0xb2, 0x1f, 0xfe, 0xe8, 0xe5, 0xbd, 0x00, 0xed, 0xce, 0x32,
2659                0x40, 0x61, 0x04, 0xa0, 0x5d, 0xde, 0xf5, 0xfc, 0x31, 0xa1, 0xa6, 0x45, 0xb1, 0x29,
2660                0x54, 0x8c, 0x8f, 0x3e,
2661            ],
2662            Elements::OutputHash => [
2663                0x7c, 0xb1, 0x7f, 0x8f, 0xc7, 0xa1, 0xae, 0x4e, 0xfc, 0xe3, 0x0a, 0x14, 0x54, 0xe5,
2664                0x2f, 0x85, 0x85, 0x21, 0x3c, 0xd0, 0xf3, 0x67, 0xa1, 0x27, 0xac, 0x27, 0xbb, 0x97,
2665                0x66, 0xea, 0x9e, 0xee,
2666            ],
2667            Elements::OutputIsFee => [
2668                0x9f, 0xbb, 0xe8, 0xae, 0xbd, 0xed, 0xd5, 0x77, 0xae, 0x46, 0x62, 0x80, 0xa9, 0x9b,
2669                0x67, 0xb7, 0x34, 0x32, 0x87, 0xef, 0x34, 0x06, 0x92, 0x53, 0x4a, 0x00, 0x98, 0x03,
2670                0x15, 0xe5, 0x17, 0x72,
2671            ],
2672            Elements::OutputNonce => [
2673                0x71, 0x75, 0xfd, 0x99, 0xa2, 0xba, 0xa1, 0xc3, 0xaf, 0xaa, 0xf7, 0xfa, 0xbd, 0xaa,
2674                0x67, 0xc2, 0xc8, 0x27, 0x48, 0x3b, 0xc8, 0xa0, 0xb9, 0x76, 0x50, 0xcb, 0x79, 0x42,
2675                0xea, 0x29, 0x5a, 0x18,
2676            ],
2677            Elements::OutputNoncesHash => [
2678                0x50, 0xf1, 0x87, 0x66, 0xde, 0x98, 0x28, 0xdb, 0x0a, 0x8c, 0x41, 0xd7, 0xbe, 0xb8,
2679                0x40, 0xf7, 0x7b, 0xc6, 0xe1, 0x21, 0xff, 0x12, 0x3d, 0x54, 0x96, 0xf1, 0xea, 0x0d,
2680                0x6a, 0x78, 0xb8, 0x3a,
2681            ],
2682            Elements::OutputNullDatum => [
2683                0x38, 0xa5, 0xa7, 0xe8, 0x61, 0xb3, 0xb3, 0x6c, 0xce, 0x68, 0x3a, 0x77, 0x2d, 0xb0,
2684                0xc8, 0x62, 0x8b, 0x7f, 0xd3, 0xb4, 0xcf, 0x8e, 0x7b, 0xce, 0x70, 0x75, 0x8f, 0xa6,
2685                0xf6, 0xf1, 0x47, 0xbf,
2686            ],
2687            Elements::OutputRangeProof => [
2688                0x6f, 0xf9, 0xef, 0x3d, 0xac, 0x50, 0x43, 0x10, 0xdf, 0xbc, 0x60, 0x56, 0x1d, 0x2a,
2689                0xdd, 0xeb, 0x44, 0x93, 0x2f, 0x77, 0x7e, 0x7f, 0x13, 0xad, 0xf0, 0x77, 0x4e, 0xb6,
2690                0xb1, 0x4d, 0xf9, 0x66,
2691            ],
2692            Elements::OutputRangeProofsHash => [
2693                0x0d, 0x7d, 0x8a, 0xc9, 0x7a, 0xf9, 0x53, 0x9a, 0xbb, 0xa6, 0x4d, 0x81, 0x04, 0xd1,
2694                0x7e, 0x97, 0x08, 0x54, 0x67, 0x7c, 0x27, 0x46, 0x1d, 0x25, 0xdf, 0x21, 0xa7, 0xf6,
2695                0xb6, 0x62, 0x08, 0x1e,
2696            ],
2697            Elements::OutputScriptHash => [
2698                0x2f, 0x51, 0x39, 0x26, 0x6f, 0x14, 0x3a, 0x33, 0xe1, 0x66, 0x8e, 0x59, 0x4f, 0x43,
2699                0xe8, 0xd1, 0x39, 0x44, 0x07, 0xe3, 0xa9, 0xb8, 0xb8, 0x02, 0xb3, 0x9a, 0x5e, 0x1e,
2700                0xdc, 0x54, 0xe8, 0x51,
2701            ],
2702            Elements::OutputScriptsHash => [
2703                0x21, 0x33, 0x3a, 0xc9, 0x58, 0xa4, 0xeb, 0xfd, 0x5e, 0xab, 0x79, 0x56, 0xdb, 0x73,
2704                0xed, 0x03, 0x26, 0x94, 0x26, 0xaf, 0x8d, 0x7d, 0x24, 0x98, 0xde, 0x57, 0xee, 0xf6,
2705                0x87, 0x04, 0xfb, 0x0a,
2706            ],
2707            Elements::OutputSurjectionProof => [
2708                0x09, 0x16, 0x60, 0x08, 0x1d, 0x52, 0xc3, 0x3f, 0x17, 0xa9, 0x56, 0xbd, 0xda, 0xc6,
2709                0x2a, 0xa2, 0xd2, 0xed, 0x92, 0x8f, 0x8c, 0xff, 0xef, 0x4c, 0xf8, 0xdb, 0xb6, 0x97,
2710                0xb1, 0x53, 0xaa, 0x65,
2711            ],
2712            Elements::OutputSurjectionProofsHash => [
2713                0x36, 0x30, 0xb5, 0x20, 0x83, 0x02, 0x64, 0x1b, 0xf1, 0x9c, 0x4b, 0xf5, 0xca, 0x04,
2714                0x7a, 0xc3, 0xeb, 0x7a, 0xf5, 0x4d, 0x5d, 0x3f, 0x5b, 0xf8, 0xf1, 0xd4, 0x13, 0x12,
2715                0x49, 0x9d, 0x63, 0x84,
2716            ],
2717            Elements::OutputsHash => [
2718                0x95, 0xb3, 0x51, 0x1a, 0xea, 0x00, 0xd0, 0x43, 0xa4, 0xe0, 0x28, 0xb2, 0x5a, 0x17,
2719                0x1c, 0x74, 0x2e, 0xc2, 0xff, 0x7a, 0xd3, 0xa7, 0xdf, 0x2f, 0x1f, 0x6e, 0xda, 0xd0,
2720                0x8b, 0xad, 0x2b, 0x69,
2721            ],
2722            Elements::ParseLock => [
2723                0x3d, 0x38, 0x36, 0xfd, 0x30, 0x85, 0xc1, 0xfb, 0xac, 0x6c, 0xd5, 0xfa, 0x0d, 0xbf,
2724                0x4a, 0x3f, 0xb2, 0x55, 0x45, 0x93, 0x17, 0xa2, 0x66, 0xd6, 0xd6, 0xf7, 0x38, 0x2b,
2725                0xb0, 0x5f, 0x07, 0xad,
2726            ],
2727            Elements::ParseSequence => [
2728                0x74, 0xf3, 0x5c, 0x01, 0x9e, 0xf5, 0x14, 0xb7, 0x0a, 0xb0, 0x08, 0xbf, 0x2a, 0x12,
2729                0x6d, 0xe7, 0xe0, 0x0f, 0x6e, 0x3c, 0xcd, 0x28, 0x5d, 0x51, 0xdb, 0xd3, 0xac, 0x71,
2730                0xbe, 0xa9, 0xc8, 0x8d,
2731            ],
2732            Elements::PointVerify1 => [
2733                0x90, 0xa3, 0xd6, 0x69, 0xb0, 0x0d, 0xa7, 0x95, 0xef, 0xb2, 0xbe, 0xd8, 0xc3, 0x70,
2734                0xc9, 0xe3, 0xea, 0x0f, 0x19, 0xc4, 0x1c, 0x7c, 0xf2, 0x3e, 0x49, 0x2e, 0x33, 0x17,
2735                0x1a, 0x47, 0xf5, 0xff,
2736            ],
2737            Elements::ReissuanceBlinding => [
2738                0xeb, 0x6e, 0x58, 0x1e, 0x20, 0xba, 0x0b, 0xab, 0xe9, 0x04, 0xc8, 0xda, 0x71, 0xa8,
2739                0x1f, 0x7c, 0x88, 0xb9, 0xcf, 0x4f, 0x42, 0xd7, 0x8b, 0x54, 0x0c, 0x1b, 0x39, 0x8c,
2740                0x3f, 0x10, 0x5c, 0xcc,
2741            ],
2742            Elements::ReissuanceEntropy => [
2743                0xd1, 0xd2, 0x2c, 0x49, 0x7f, 0x12, 0x9c, 0x6d, 0x6f, 0xdb, 0xe4, 0x91, 0x36, 0x4a,
2744                0x35, 0x13, 0xbc, 0xd6, 0x6e, 0x15, 0x61, 0x8c, 0xbb, 0xe2, 0xe5, 0x07, 0x39, 0xbd,
2745                0x83, 0x4d, 0xb7, 0xf8,
2746            ],
2747            Elements::RightExtend16_32 => [
2748                0x78, 0x07, 0x16, 0xd3, 0xe8, 0x29, 0x1a, 0x51, 0xe4, 0x5a, 0xda, 0x50, 0x55, 0x8e,
2749                0xfe, 0x41, 0x1c, 0x47, 0x5c, 0x08, 0x5e, 0xec, 0x5a, 0x28, 0xad, 0x97, 0x91, 0xc3,
2750                0x12, 0xfe, 0xe2, 0xbc,
2751            ],
2752            Elements::RightExtend16_64 => [
2753                0xc7, 0x70, 0x49, 0x7e, 0x45, 0x23, 0x08, 0xeb, 0xf5, 0x2e, 0x51, 0xb0, 0x58, 0x5e,
2754                0x91, 0x51, 0xe0, 0xff, 0xc3, 0x50, 0x86, 0xab, 0x77, 0x2d, 0x72, 0x41, 0x53, 0x2a,
2755                0x1b, 0xe1, 0x5e, 0x07,
2756            ],
2757            Elements::RightExtend32_64 => [
2758                0x42, 0xb4, 0x3a, 0xdc, 0x74, 0xb5, 0x26, 0x6c, 0x91, 0xd7, 0x3d, 0xf4, 0x91, 0xdc,
2759                0xae, 0x59, 0x73, 0x88, 0x04, 0xeb, 0x44, 0x0b, 0x23, 0xda, 0x32, 0x75, 0x30, 0x48,
2760                0x74, 0x86, 0xb7, 0xe8,
2761            ],
2762            Elements::RightExtend8_16 => [
2763                0xbc, 0xb2, 0x68, 0x3a, 0x8c, 0xb8, 0xb8, 0xc2, 0x35, 0xfa, 0xa8, 0x96, 0xa9, 0xc0,
2764                0x69, 0xe1, 0xb5, 0x5b, 0xb0, 0x55, 0x8e, 0x73, 0x9e, 0x70, 0xe2, 0x89, 0x14, 0x21,
2765                0x1e, 0x32, 0x75, 0xc8,
2766            ],
2767            Elements::RightExtend8_32 => [
2768                0x6d, 0xdb, 0x55, 0x48, 0xfd, 0x58, 0x3c, 0xd2, 0xd3, 0x58, 0x6e, 0x6b, 0x8b, 0xf9,
2769                0x95, 0x24, 0x6b, 0x61, 0x93, 0x4f, 0x49, 0x76, 0x44, 0x67, 0x77, 0xdd, 0x57, 0x40,
2770                0xb3, 0x19, 0xe4, 0x62,
2771            ],
2772            Elements::RightExtend8_64 => [
2773                0xda, 0x4f, 0x9c, 0x21, 0x45, 0x51, 0x26, 0x82, 0x07, 0x58, 0xa2, 0xe4, 0xb5, 0x3f,
2774                0xce, 0xb4, 0x52, 0x3e, 0x6e, 0x7a, 0x29, 0x23, 0xa1, 0xa1, 0x61, 0xfc, 0x37, 0x89,
2775                0x2a, 0xc8, 0xda, 0x2a,
2776            ],
2777            Elements::RightPadHigh16_32 => [
2778                0x3e, 0x4e, 0x5e, 0x9e, 0x71, 0xe1, 0x37, 0xa2, 0x68, 0x63, 0x43, 0xe0, 0x5a, 0xc5,
2779                0x63, 0x16, 0xac, 0xfc, 0x58, 0x99, 0x1c, 0xb3, 0x8d, 0xb1, 0xb3, 0x23, 0x44, 0x13,
2780                0xf7, 0x30, 0xa1, 0x42,
2781            ],
2782            Elements::RightPadHigh16_64 => [
2783                0xde, 0x09, 0xdf, 0x9d, 0x43, 0xdd, 0xad, 0x2d, 0x69, 0x12, 0x04, 0x98, 0x6c, 0xf0,
2784                0x81, 0x9d, 0x6b, 0x80, 0x45, 0xbc, 0xa4, 0x14, 0xd8, 0x0a, 0xf2, 0x16, 0x28, 0x92,
2785                0xa9, 0x25, 0x7e, 0xad,
2786            ],
2787            Elements::RightPadHigh1_16 => [
2788                0xff, 0x12, 0x97, 0xd8, 0x78, 0xe2, 0x6e, 0x19, 0x59, 0xbc, 0xc7, 0xe8, 0xae, 0xf9,
2789                0x7a, 0xc0, 0xb6, 0x5a, 0xdc, 0x39, 0x92, 0x3e, 0xc6, 0x50, 0x5e, 0x50, 0xf9, 0x83,
2790                0x05, 0x73, 0x3b, 0x6c,
2791            ],
2792            Elements::RightPadHigh1_32 => [
2793                0x28, 0x3f, 0x8a, 0xfb, 0x41, 0x38, 0x2d, 0x2b, 0xe1, 0x8f, 0x8a, 0x77, 0xc3, 0x14,
2794                0xba, 0x17, 0x76, 0xcb, 0x80, 0xc8, 0xec, 0x36, 0xca, 0x12, 0xaa, 0x67, 0xb3, 0x2b,
2795                0xb6, 0x4e, 0xd8, 0x43,
2796            ],
2797            Elements::RightPadHigh1_64 => [
2798                0xa3, 0x42, 0x35, 0x28, 0x60, 0xa3, 0x35, 0x0d, 0x79, 0xc3, 0xe9, 0xfc, 0x7a, 0x4a,
2799                0xb3, 0x78, 0x9b, 0x8b, 0x02, 0x97, 0x85, 0x6f, 0xd1, 0x69, 0xca, 0x4d, 0x7d, 0xe2,
2800                0x5f, 0x7d, 0x7c, 0xc4,
2801            ],
2802            Elements::RightPadHigh1_8 => [
2803                0x71, 0x03, 0xc0, 0xfe, 0x00, 0xf5, 0x22, 0xa2, 0x21, 0x6c, 0x4a, 0x6b, 0xe5, 0xf7,
2804                0xe0, 0xeb, 0x4d, 0x70, 0x3c, 0xa7, 0x8f, 0x9c, 0x59, 0x8f, 0x6b, 0x3d, 0xfd, 0xe4,
2805                0x37, 0xd8, 0x0c, 0x84,
2806            ],
2807            Elements::RightPadHigh32_64 => [
2808                0x5d, 0xc9, 0x10, 0x7d, 0x45, 0x34, 0x95, 0x8c, 0xe4, 0x42, 0x27, 0x67, 0x56, 0x3a,
2809                0x03, 0x1a, 0x38, 0x0f, 0x60, 0xd3, 0x83, 0x71, 0x48, 0xab, 0x3c, 0x8c, 0xc9, 0xc4,
2810                0xc7, 0xd9, 0x96, 0xa2,
2811            ],
2812            Elements::RightPadHigh8_16 => [
2813                0xc0, 0xe2, 0xfd, 0x46, 0xf7, 0x88, 0x3b, 0x12, 0x85, 0xa6, 0xf1, 0xa1, 0xdb, 0x96,
2814                0xd9, 0x3c, 0x25, 0x48, 0x04, 0x0f, 0xcd, 0x3f, 0x5c, 0x23, 0xfb, 0xb2, 0x0b, 0x5e,
2815                0x83, 0x03, 0x7c, 0x96,
2816            ],
2817            Elements::RightPadHigh8_32 => [
2818                0x29, 0x1e, 0x62, 0x77, 0x08, 0x52, 0x0c, 0x2c, 0xa6, 0xae, 0xce, 0x32, 0xa8, 0x77,
2819                0xb7, 0x78, 0x49, 0xc4, 0xa7, 0xa2, 0x13, 0xcb, 0x89, 0xe1, 0xbd, 0xa7, 0xc5, 0xc5,
2820                0xfe, 0x75, 0x5f, 0x73,
2821            ],
2822            Elements::RightPadHigh8_64 => [
2823                0x6b, 0x6f, 0xa2, 0x37, 0x2e, 0xd2, 0x5e, 0x4a, 0x34, 0xd4, 0xae, 0x17, 0x23, 0x42,
2824                0xad, 0xbb, 0x25, 0x9b, 0xe8, 0x98, 0x76, 0x00, 0xdb, 0x19, 0x2e, 0xcb, 0x8d, 0xa4,
2825                0x34, 0xb9, 0xd8, 0x8f,
2826            ],
2827            Elements::RightPadLow16_32 => [
2828                0x77, 0x31, 0xd5, 0x60, 0xd3, 0x75, 0x92, 0xd1, 0xa3, 0x1f, 0x73, 0x62, 0x96, 0x7a,
2829                0xb2, 0xe4, 0x75, 0x92, 0xac, 0xa6, 0xe9, 0x2a, 0xb8, 0x58, 0x82, 0x37, 0x92, 0xda,
2830                0xe5, 0xd2, 0xdb, 0x52,
2831            ],
2832            Elements::RightPadLow16_64 => [
2833                0x0f, 0xe1, 0xc0, 0xdb, 0x9d, 0x4a, 0x2d, 0x63, 0xe2, 0xba, 0x4a, 0x33, 0x11, 0x7a,
2834                0xad, 0xba, 0x64, 0x51, 0x4a, 0x2b, 0x87, 0xa7, 0xa4, 0xe7, 0x93, 0xfa, 0xac, 0xfe,
2835                0x6b, 0x36, 0x34, 0x47,
2836            ],
2837            Elements::RightPadLow1_16 => [
2838                0x79, 0x14, 0xc8, 0xf2, 0x22, 0x47, 0xc2, 0xc3, 0x4b, 0x9c, 0x84, 0xe9, 0x2d, 0x14,
2839                0x44, 0xae, 0xc2, 0xe1, 0x7a, 0x0e, 0xf5, 0x86, 0xba, 0xb2, 0x78, 0x8e, 0xe6, 0xef,
2840                0x68, 0x84, 0x0d, 0x98,
2841            ],
2842            Elements::RightPadLow1_32 => [
2843                0x31, 0xb6, 0xce, 0x26, 0xe5, 0x59, 0xf7, 0x6c, 0xf3, 0x66, 0xf4, 0x80, 0x69, 0x85,
2844                0xec, 0xc2, 0x99, 0x55, 0x0f, 0x15, 0xd4, 0xc3, 0xa6, 0x72, 0x9e, 0x29, 0xd7, 0x0e,
2845                0x39, 0x89, 0x56, 0x52,
2846            ],
2847            Elements::RightPadLow1_64 => [
2848                0xc5, 0x52, 0x4a, 0xe6, 0x54, 0x8a, 0xcd, 0x63, 0x08, 0x2d, 0x94, 0x89, 0x3e, 0x18,
2849                0xf9, 0xed, 0xbb, 0x92, 0x31, 0xe7, 0x6b, 0xb4, 0xe1, 0x1b, 0xbf, 0xf6, 0xa7, 0xbd,
2850                0x16, 0xf4, 0xb0, 0x29,
2851            ],
2852            Elements::RightPadLow1_8 => [
2853                0x59, 0xd7, 0x22, 0x70, 0xef, 0x0e, 0x8f, 0x77, 0x0c, 0x8d, 0x11, 0xf3, 0x17, 0x73,
2854                0xf9, 0xb6, 0xe9, 0x0a, 0x4a, 0xec, 0xeb, 0x5b, 0xfb, 0x3d, 0xfe, 0x96, 0x8c, 0x4e,
2855                0x9d, 0xac, 0x5f, 0xe8,
2856            ],
2857            Elements::RightPadLow32_64 => [
2858                0xd4, 0x22, 0x7d, 0x06, 0x6f, 0x18, 0xb9, 0x11, 0xd6, 0xf5, 0xd9, 0xbf, 0xb9, 0xd9,
2859                0xf4, 0x6e, 0x9a, 0xea, 0xdb, 0xbe, 0xfa, 0x34, 0xd4, 0x74, 0x43, 0x2a, 0x1e, 0x78,
2860                0x9e, 0x48, 0x86, 0xff,
2861            ],
2862            Elements::RightPadLow8_16 => [
2863                0xab, 0xa4, 0x7a, 0x53, 0x6e, 0x12, 0x27, 0xe1, 0x22, 0xba, 0xac, 0xf1, 0x9c, 0xfd,
2864                0x28, 0x23, 0xb9, 0xb7, 0x8d, 0x79, 0xcc, 0x06, 0xd3, 0x4c, 0x34, 0x8b, 0x14, 0xa1,
2865                0xa1, 0x5a, 0xbd, 0x64,
2866            ],
2867            Elements::RightPadLow8_32 => [
2868                0x8f, 0x80, 0xa6, 0xc2, 0x74, 0x71, 0x6b, 0x67, 0x22, 0x04, 0x11, 0x34, 0xea, 0x1c,
2869                0x68, 0xaa, 0xbf, 0x02, 0x13, 0x29, 0x8f, 0x4e, 0x18, 0xf8, 0xf4, 0x92, 0xdc, 0x53,
2870                0x80, 0x8a, 0x31, 0x74,
2871            ],
2872            Elements::RightPadLow8_64 => [
2873                0xd6, 0x9c, 0x85, 0xe7, 0xb2, 0xd7, 0xe9, 0x49, 0x43, 0x6c, 0xb1, 0x29, 0x5e, 0x4a,
2874                0xa7, 0x05, 0x57, 0xd7, 0x5e, 0x7c, 0xbd, 0xec, 0x02, 0xcc, 0xa8, 0x5f, 0xbf, 0xb1,
2875                0x33, 0x08, 0xb2, 0x10,
2876            ],
2877            Elements::RightRotate16 => [
2878                0xe5, 0x10, 0x70, 0x82, 0x47, 0xf9, 0x1b, 0x4f, 0x0a, 0x8a, 0x22, 0xa4, 0x46, 0xb8,
2879                0x13, 0x7d, 0x0d, 0x42, 0xbe, 0xe7, 0x4c, 0x8c, 0x1e, 0xdd, 0x6d, 0x44, 0x6e, 0xdb,
2880                0x20, 0x13, 0xb5, 0x98,
2881            ],
2882            Elements::RightRotate32 => [
2883                0x98, 0x91, 0x57, 0x31, 0x41, 0x29, 0x22, 0xdb, 0xc5, 0x16, 0xa7, 0x37, 0x3a, 0xfc,
2884                0x4d, 0xe6, 0x48, 0x09, 0xf8, 0x3b, 0x26, 0x4b, 0xcf, 0xca, 0x6a, 0xe7, 0x48, 0x83,
2885                0xdb, 0xe1, 0x04, 0xd6,
2886            ],
2887            Elements::RightRotate64 => [
2888                0x9e, 0x2f, 0xb9, 0x8a, 0xdf, 0x10, 0x29, 0x33, 0x9d, 0xbe, 0x45, 0xa2, 0x2a, 0x54,
2889                0xa3, 0x90, 0xca, 0x09, 0x86, 0xed, 0xce, 0xa3, 0x2e, 0xac, 0xb8, 0x2e, 0xbc, 0xc8,
2890                0x94, 0xa2, 0x71, 0x1a,
2891            ],
2892            Elements::RightRotate8 => [
2893                0x00, 0xc7, 0xc2, 0x6d, 0x95, 0xa5, 0x0b, 0x5a, 0xf9, 0x34, 0x9f, 0xfe, 0x47, 0xe1,
2894                0xd4, 0x3f, 0x3d, 0x76, 0x1f, 0x17, 0xa7, 0x45, 0x3c, 0x98, 0x47, 0x91, 0xe8, 0x7d,
2895                0xc6, 0xa3, 0x11, 0xc8,
2896            ],
2897            Elements::RightShift16 => [
2898                0x8b, 0x5e, 0x0f, 0xeb, 0x95, 0x81, 0x30, 0xf0, 0x50, 0x83, 0x32, 0x15, 0x9e, 0x54,
2899                0xc2, 0xdf, 0x98, 0xaf, 0x83, 0x52, 0x1a, 0xca, 0xb3, 0x08, 0x4f, 0xd4, 0xf7, 0xc3,
2900                0xa2, 0xcc, 0xea, 0x77,
2901            ],
2902            Elements::RightShift32 => [
2903                0x4b, 0x1f, 0x25, 0x80, 0xe0, 0x85, 0x0d, 0x38, 0xe2, 0xa1, 0x15, 0x73, 0x38, 0x05,
2904                0x2f, 0x1c, 0x37, 0x9f, 0x9d, 0x81, 0x57, 0xf6, 0x2d, 0x33, 0x89, 0x0a, 0xf2, 0x4f,
2905                0xd9, 0xa7, 0xf7, 0x3e,
2906            ],
2907            Elements::RightShift64 => [
2908                0x91, 0xa2, 0x97, 0xd7, 0xb5, 0x8a, 0x39, 0x3b, 0xf5, 0x90, 0x25, 0x94, 0x77, 0x47,
2909                0xc8, 0x6d, 0xd4, 0x87, 0x65, 0x9c, 0xc5, 0x6f, 0xb5, 0xa6, 0xf6, 0x43, 0x99, 0x55,
2910                0x12, 0x9a, 0x95, 0x63,
2911            ],
2912            Elements::RightShift8 => [
2913                0xa4, 0xc3, 0x54, 0x6f, 0xf2, 0x7e, 0x56, 0xd6, 0x4e, 0x91, 0x8a, 0xb2, 0xfa, 0x6d,
2914                0x00, 0xfc, 0x27, 0x04, 0x58, 0x5b, 0x25, 0xbd, 0xe0, 0x04, 0x9d, 0x6d, 0x8f, 0x48,
2915                0xd8, 0xcf, 0x1c, 0xd0,
2916            ],
2917            Elements::RightShiftWith16 => [
2918                0xfd, 0x97, 0x70, 0x30, 0xe3, 0xa2, 0x5a, 0x32, 0xe7, 0x75, 0xb8, 0xd5, 0xe8, 0x71,
2919                0x74, 0xa7, 0xa9, 0xe8, 0x73, 0x1e, 0xc3, 0x6c, 0xf1, 0x32, 0x64, 0x20, 0xad, 0x91,
2920                0x50, 0x2e, 0x6e, 0x98,
2921            ],
2922            Elements::RightShiftWith32 => [
2923                0x28, 0x29, 0xba, 0x02, 0x1f, 0x54, 0x07, 0x7a, 0xff, 0xb6, 0x6a, 0xc6, 0xb6, 0xdf,
2924                0xd3, 0xfe, 0xf3, 0x8b, 0xc4, 0x14, 0x91, 0x84, 0x5a, 0x41, 0xce, 0x9d, 0xd3, 0x70,
2925                0x58, 0x6c, 0x2d, 0x04,
2926            ],
2927            Elements::RightShiftWith64 => [
2928                0x00, 0x6f, 0xa3, 0xc5, 0x45, 0x79, 0x75, 0x47, 0x86, 0xfc, 0x64, 0xdc, 0x32, 0xe1,
2929                0x9a, 0x22, 0x5c, 0xc1, 0x52, 0xc9, 0x4d, 0xee, 0xb3, 0xc6, 0xab, 0x29, 0x67, 0xdd,
2930                0xbf, 0xc6, 0x46, 0x53,
2931            ],
2932            Elements::RightShiftWith8 => [
2933                0xfc, 0xb5, 0xbe, 0x65, 0x07, 0xf0, 0xca, 0x44, 0xbe, 0x2b, 0xe1, 0xcc, 0x3c, 0x3c,
2934                0xfe, 0x39, 0x94, 0x40, 0x4b, 0x80, 0x83, 0xbd, 0x76, 0x02, 0xb2, 0x10, 0x2c, 0xb1,
2935                0xfc, 0xfa, 0x2c, 0x61,
2936            ],
2937            Elements::Rightmost16_1 => [
2938                0x3f, 0x3c, 0x43, 0x46, 0x87, 0x17, 0x42, 0x26, 0x5e, 0x87, 0xf0, 0x01, 0xb4, 0x6d,
2939                0xe7, 0xd1, 0x98, 0x75, 0x1b, 0x34, 0xfa, 0xa1, 0x80, 0x18, 0xde, 0x60, 0xc8, 0x46,
2940                0x8d, 0x9b, 0x98, 0xa4,
2941            ],
2942            Elements::Rightmost16_2 => [
2943                0x78, 0xf1, 0x71, 0x47, 0x6a, 0x3b, 0x0e, 0xd1, 0xe3, 0xa5, 0x45, 0x5a, 0x5f, 0xbb,
2944                0xcc, 0x90, 0x19, 0x81, 0xb3, 0x23, 0x0f, 0xea, 0x12, 0x64, 0x20, 0x4d, 0xac, 0xd0,
2945                0x81, 0xf9, 0x40, 0x80,
2946            ],
2947            Elements::Rightmost16_4 => [
2948                0x75, 0xa1, 0xdf, 0xb6, 0xae, 0x2c, 0x06, 0x6b, 0x2d, 0x0e, 0x20, 0x93, 0x04, 0x8a,
2949                0xdb, 0xc5, 0x0d, 0x46, 0x50, 0x65, 0x6f, 0xb2, 0xd3, 0x57, 0x8b, 0x57, 0xd9, 0xde,
2950                0x4c, 0x61, 0xc8, 0xb5,
2951            ],
2952            Elements::Rightmost16_8 => [
2953                0xee, 0x76, 0x9c, 0x1c, 0xc8, 0xa3, 0xfd, 0xd1, 0x83, 0x8f, 0xc9, 0xf0, 0x49, 0x0c,
2954                0xe7, 0x03, 0x93, 0xfd, 0x91, 0xba, 0x3c, 0xbd, 0x4a, 0xbd, 0x08, 0x64, 0x9f, 0xb9,
2955                0xc4, 0x43, 0x11, 0xbd,
2956            ],
2957            Elements::Rightmost32_1 => [
2958                0xcb, 0x0d, 0xb5, 0x69, 0xa3, 0x61, 0x86, 0xa2, 0x56, 0x05, 0xa9, 0xd2, 0xe4, 0xe1,
2959                0x0a, 0x20, 0xc1, 0x11, 0xd5, 0x0c, 0x34, 0xf1, 0x72, 0x46, 0x52, 0x0b, 0xc4, 0x54,
2960                0xd8, 0x68, 0x28, 0x36,
2961            ],
2962            Elements::Rightmost32_16 => [
2963                0x06, 0xfa, 0xa3, 0xbe, 0x67, 0x8c, 0xd6, 0xfd, 0xd7, 0xf3, 0x11, 0x2e, 0xbf, 0x2c,
2964                0x48, 0x62, 0x7a, 0xfa, 0x78, 0x75, 0xf7, 0x06, 0x8d, 0x26, 0xa9, 0xcc, 0x04, 0x5b,
2965                0x2c, 0x8f, 0x11, 0xbc,
2966            ],
2967            Elements::Rightmost32_2 => [
2968                0x00, 0xb8, 0x81, 0x5a, 0xd7, 0x42, 0x3d, 0xd5, 0x8c, 0xb9, 0x8b, 0xe8, 0x2c, 0xad,
2969                0x26, 0x67, 0x5c, 0x3b, 0xf5, 0x4a, 0x0b, 0xed, 0xba, 0xde, 0x34, 0x64, 0xb4, 0xfe,
2970                0x5a, 0x4e, 0x8c, 0xe6,
2971            ],
2972            Elements::Rightmost32_4 => [
2973                0x3d, 0xfa, 0x7a, 0x20, 0x19, 0x8e, 0x42, 0xd6, 0xa7, 0x94, 0x8c, 0x8e, 0xd8, 0xe0,
2974                0xd4, 0x7e, 0xc7, 0xc0, 0x00, 0x7b, 0x3d, 0x68, 0x66, 0xca, 0x15, 0xe3, 0xda, 0x04,
2975                0x5b, 0x85, 0x63, 0xc7,
2976            ],
2977            Elements::Rightmost32_8 => [
2978                0x17, 0xb5, 0x8d, 0x6e, 0x30, 0x4b, 0x1c, 0x7e, 0x5d, 0xbf, 0x0c, 0x4d, 0xf6, 0xfc,
2979                0xc8, 0x03, 0xc0, 0x08, 0x94, 0x4c, 0x79, 0x95, 0x55, 0x5b, 0x94, 0xe1, 0x28, 0x9b,
2980                0x25, 0x49, 0xbe, 0x99,
2981            ],
2982            Elements::Rightmost64_1 => [
2983                0x5e, 0x8f, 0xb4, 0x9f, 0xac, 0xe0, 0x34, 0x48, 0x1d, 0xc6, 0x53, 0x61, 0x8e, 0x2a,
2984                0x8b, 0x65, 0xea, 0xf0, 0x99, 0x3f, 0x28, 0x84, 0x4c, 0xc9, 0xb1, 0x30, 0xca, 0xcc,
2985                0xe4, 0x5e, 0x82, 0xde,
2986            ],
2987            Elements::Rightmost64_16 => [
2988                0xc6, 0x4c, 0xa9, 0x96, 0x55, 0x36, 0xf2, 0x37, 0xbc, 0x4d, 0x16, 0x6e, 0x4a, 0xec,
2989                0xa5, 0x6e, 0xac, 0x26, 0x62, 0xe6, 0x3a, 0xcc, 0xb9, 0x8b, 0x6e, 0x54, 0x25, 0x60,
2990                0xf9, 0xe5, 0x38, 0xda,
2991            ],
2992            Elements::Rightmost64_2 => [
2993                0x83, 0xd2, 0xda, 0x6f, 0x34, 0x20, 0xd7, 0x79, 0xbc, 0xb8, 0xf6, 0x0d, 0x0b, 0x69,
2994                0x6e, 0xed, 0x74, 0xc3, 0x1d, 0xb0, 0x8a, 0xdd, 0xbe, 0xbd, 0x12, 0x35, 0xa5, 0xdf,
2995                0x8f, 0x59, 0xc4, 0x2f,
2996            ],
2997            Elements::Rightmost64_32 => [
2998                0x7d, 0x2d, 0xff, 0x6e, 0x3d, 0xd5, 0x04, 0xbb, 0x0e, 0x57, 0x03, 0xa0, 0x33, 0x58,
2999                0x6d, 0x27, 0xd9, 0x66, 0x44, 0xc0, 0x48, 0xab, 0x34, 0xa4, 0x5b, 0xf5, 0x35, 0x12,
3000                0x9d, 0x50, 0x11, 0x67,
3001            ],
3002            Elements::Rightmost64_4 => [
3003                0x84, 0x1b, 0xbd, 0x65, 0x27, 0x42, 0xdd, 0xd3, 0xad, 0xea, 0xe4, 0x3c, 0xfe, 0xd6,
3004                0x32, 0x9f, 0x2f, 0xd6, 0x2e, 0x6f, 0xec, 0xd0, 0xfd, 0x58, 0xe3, 0xc3, 0xfb, 0x8b,
3005                0x5a, 0x0e, 0x4d, 0xd5,
3006            ],
3007            Elements::Rightmost64_8 => [
3008                0xa0, 0xa6, 0x1c, 0x76, 0x58, 0xa1, 0x86, 0x23, 0xbf, 0x1d, 0x01, 0x1a, 0x97, 0x92,
3009                0xd5, 0x18, 0xfb, 0xd0, 0x24, 0x14, 0x2a, 0x90, 0x44, 0x00, 0xec, 0xde, 0xea, 0x92,
3010                0x45, 0x7a, 0x0a, 0x81,
3011            ],
3012            Elements::Rightmost8_1 => [
3013                0x99, 0x9b, 0x68, 0x6e, 0x60, 0xb3, 0xd1, 0xec, 0xd6, 0xc6, 0xd7, 0x7f, 0xbc, 0xa8,
3014                0x2c, 0xb2, 0xab, 0xbd, 0x41, 0x82, 0xc8, 0x21, 0x12, 0x67, 0x47, 0x5f, 0xa0, 0xc1,
3015                0x90, 0x1d, 0x89, 0xf9,
3016            ],
3017            Elements::Rightmost8_2 => [
3018                0x53, 0x07, 0xff, 0xbf, 0x51, 0x6c, 0xd0, 0xee, 0xf3, 0xff, 0x43, 0x87, 0xb9, 0x05,
3019                0x2c, 0x14, 0x4a, 0x4d, 0xfa, 0x23, 0x29, 0x23, 0x7c, 0x6b, 0x27, 0x49, 0x92, 0xb2,
3020                0xc8, 0x04, 0x7b, 0x60,
3021            ],
3022            Elements::Rightmost8_4 => [
3023                0x7f, 0x52, 0xe6, 0x45, 0xbb, 0xbb, 0xd7, 0x92, 0x69, 0xc4, 0x3e, 0xf0, 0x2d, 0xb9,
3024                0x82, 0xf8, 0xc6, 0x36, 0x33, 0xc1, 0x79, 0xe4, 0x06, 0x91, 0x73, 0x93, 0x36, 0x04,
3025                0xcc, 0x63, 0x5b, 0xca,
3026            ],
3027            Elements::ScalarAdd => [
3028                0x34, 0xba, 0xa4, 0x0b, 0x2e, 0x0a, 0xa8, 0xcb, 0x7e, 0x97, 0xc7, 0x3e, 0x3e, 0xd3,
3029                0xb3, 0x65, 0xa1, 0x5b, 0x7c, 0x3f, 0x76, 0x61, 0xfb, 0x19, 0x71, 0x5e, 0xc6, 0x05,
3030                0xc1, 0x14, 0x9d, 0x11,
3031            ],
3032            Elements::ScalarInvert => [
3033                0x62, 0x31, 0xbd, 0xab, 0x73, 0xca, 0x34, 0xea, 0x7e, 0x83, 0x7d, 0xaa, 0xd6, 0x92,
3034                0xed, 0xe5, 0xba, 0xbf, 0xae, 0x09, 0xb5, 0x75, 0x6d, 0x2a, 0xb3, 0x6c, 0x5a, 0x36,
3035                0x47, 0x5a, 0x65, 0x89,
3036            ],
3037            Elements::ScalarIsZero => [
3038                0xf7, 0x5e, 0xda, 0x06, 0xce, 0x6a, 0xf0, 0x9f, 0xae, 0x37, 0xdb, 0x4e, 0x62, 0x25,
3039                0xe6, 0xa8, 0xac, 0x86, 0xa2, 0x36, 0x37, 0x62, 0x7d, 0x62, 0x64, 0x09, 0x19, 0x0f,
3040                0xf3, 0xb3, 0x9d, 0x90,
3041            ],
3042            Elements::ScalarMultiply => [
3043                0xb2, 0xbc, 0xc3, 0x90, 0xd6, 0x37, 0xb9, 0xe0, 0x3f, 0xbf, 0xc4, 0x2f, 0xff, 0x71,
3044                0xd2, 0x2e, 0x72, 0x00, 0xf6, 0x93, 0x29, 0xce, 0xf7, 0x16, 0x9e, 0x68, 0xa8, 0xc7,
3045                0x1a, 0x7f, 0x0a, 0x4b,
3046            ],
3047            Elements::ScalarMultiplyLambda => [
3048                0x89, 0xd5, 0x85, 0x5c, 0x5f, 0x85, 0xc0, 0x03, 0x5d, 0x27, 0xb0, 0xc0, 0x9e, 0x20,
3049                0x33, 0x0b, 0x00, 0x1c, 0x68, 0x4b, 0x59, 0x86, 0xab, 0xce, 0xd8, 0x36, 0x0c, 0xd3,
3050                0x9b, 0x08, 0xc4, 0xe1,
3051            ],
3052            Elements::ScalarNegate => [
3053                0x07, 0x05, 0xac, 0xdf, 0xb8, 0x66, 0x40, 0x00, 0x0e, 0x3d, 0x3b, 0xad, 0x50, 0x9a,
3054                0x14, 0xa7, 0x8c, 0x17, 0x1f, 0x61, 0xed, 0xc0, 0x84, 0x23, 0xb0, 0x42, 0xb9, 0x47,
3055                0x48, 0x43, 0x9c, 0xf8,
3056            ],
3057            Elements::ScalarNormalize => [
3058                0xa0, 0x61, 0xe1, 0x9d, 0x75, 0xc3, 0x25, 0xa2, 0x6d, 0x56, 0x5a, 0xad, 0x7e, 0x3f,
3059                0x9a, 0xe2, 0x6b, 0x22, 0x2f, 0x25, 0xe8, 0x02, 0x17, 0x4f, 0x6b, 0xac, 0xd5, 0x11,
3060                0x27, 0x7a, 0xea, 0xa5,
3061            ],
3062            Elements::ScalarSquare => [
3063                0x49, 0xf7, 0x34, 0xa2, 0x65, 0x9c, 0xa0, 0xab, 0x7c, 0x9e, 0x67, 0xfc, 0xfc, 0x3c,
3064                0x0d, 0x72, 0xaf, 0x0f, 0x91, 0x7c, 0x9e, 0xdc, 0xb9, 0x92, 0x9d, 0x17, 0x7a, 0x0f,
3065                0x0d, 0xe8, 0x9d, 0x59,
3066            ],
3067            Elements::Scale => [
3068                0xc0, 0x45, 0x43, 0xdc, 0x85, 0xef, 0x11, 0x37, 0x4a, 0x93, 0x0f, 0x4a, 0x94, 0x8e,
3069                0xb7, 0x35, 0xa6, 0x50, 0x0a, 0x1a, 0x71, 0x58, 0xd5, 0x73, 0x12, 0x3f, 0x07, 0x21,
3070                0x71, 0x75, 0xf3, 0x18,
3071            ],
3072            Elements::ScriptCMR => [
3073                0xec, 0x15, 0xf5, 0x9c, 0x52, 0x4d, 0x94, 0x14, 0x69, 0x81, 0x19, 0x54, 0x65, 0x4f,
3074                0x63, 0x58, 0x30, 0xec, 0xd7, 0xde, 0x51, 0x76, 0x62, 0xb2, 0x5c, 0xa4, 0xe8, 0xd0,
3075                0x5c, 0x2c, 0xce, 0x89,
3076            ],
3077            Elements::Sha256Block => [
3078                0x0c, 0x97, 0xa0, 0x08, 0xad, 0xe8, 0x7b, 0xb1, 0xe0, 0xac, 0x06, 0xb7, 0xd0, 0x31,
3079                0x30, 0x23, 0x36, 0x28, 0x58, 0xef, 0x90, 0xec, 0x14, 0xec, 0x9c, 0xb9, 0x5f, 0x0d,
3080                0xa9, 0x64, 0xe0, 0x08,
3081            ],
3082            Elements::Sha256Ctx8Add1 => [
3083                0x37, 0x06, 0x6c, 0x67, 0xad, 0x95, 0x24, 0x9d, 0x4b, 0xa6, 0xe1, 0x81, 0x44, 0xca,
3084                0x0a, 0x41, 0x5d, 0x9c, 0x83, 0x2a, 0xa6, 0xb6, 0x06, 0x28, 0xe9, 0x7c, 0x96, 0x7e,
3085                0xb1, 0x79, 0x33, 0x83,
3086            ],
3087            Elements::Sha256Ctx8Add128 => [
3088                0x2d, 0xcf, 0x48, 0x4c, 0x25, 0x7f, 0x67, 0x94, 0x0c, 0xa3, 0x75, 0xba, 0x98, 0xe8,
3089                0x3c, 0xe0, 0xe2, 0xa7, 0x1e, 0x16, 0xda, 0x50, 0x51, 0xd1, 0xbb, 0x19, 0xfb, 0x5f,
3090                0x34, 0x6f, 0x15, 0x4f,
3091            ],
3092            Elements::Sha256Ctx8Add16 => [
3093                0x82, 0x99, 0x25, 0x20, 0x40, 0xcb, 0x39, 0xe3, 0x26, 0xa2, 0x48, 0xd5, 0xc7, 0x88,
3094                0xf9, 0x51, 0x6d, 0x15, 0xa2, 0xff, 0x41, 0x45, 0xbb, 0x64, 0xad, 0x65, 0x77, 0xae,
3095                0x1a, 0x3e, 0xf7, 0x27,
3096            ],
3097            Elements::Sha256Ctx8Add2 => [
3098                0x8b, 0xae, 0x3e, 0x7e, 0x1e, 0xd4, 0xdc, 0xba, 0x6e, 0x64, 0x5a, 0xa1, 0x43, 0x41,
3099                0xbb, 0xae, 0x0d, 0xbb, 0x3a, 0xe2, 0x1b, 0xb6, 0x3d, 0xc0, 0x30, 0xca, 0x0e, 0x44,
3100                0x7a, 0x85, 0x7e, 0xc2,
3101            ],
3102            Elements::Sha256Ctx8Add256 => [
3103                0x44, 0xb7, 0x17, 0xe1, 0x97, 0x09, 0x99, 0xb6, 0x6b, 0x69, 0x3d, 0x8c, 0x9d, 0x1d,
3104                0x3b, 0x06, 0x05, 0xc2, 0xb7, 0xa6, 0x21, 0x3e, 0x6b, 0xa5, 0x6c, 0x69, 0xaf, 0x8d,
3105                0x7f, 0xae, 0x16, 0x86,
3106            ],
3107            Elements::Sha256Ctx8Add32 => [
3108                0x39, 0x23, 0x9a, 0x43, 0xa8, 0x4b, 0xac, 0x6f, 0x29, 0x69, 0xbf, 0xa9, 0x5b, 0xfe,
3109                0x6a, 0x04, 0xfc, 0xba, 0x80, 0x92, 0x89, 0x59, 0x39, 0xf1, 0x2a, 0x1c, 0xe0, 0xe2,
3110                0x63, 0x21, 0xec, 0x10,
3111            ],
3112            Elements::Sha256Ctx8Add4 => [
3113                0xd7, 0xd7, 0x45, 0x61, 0x4b, 0x37, 0xa7, 0xe0, 0x7d, 0xce, 0x22, 0xf6, 0x4e, 0x7b,
3114                0x1e, 0xdf, 0xe2, 0x3b, 0xed, 0xa8, 0x51, 0xf1, 0xe7, 0x6f, 0x1a, 0x6b, 0x02, 0x8f,
3115                0xcc, 0x5e, 0x9f, 0xc0,
3116            ],
3117            Elements::Sha256Ctx8Add512 => [
3118                0xbe, 0x36, 0x80, 0x32, 0xd8, 0x6e, 0xbc, 0xf2, 0x13, 0xca, 0x45, 0xba, 0x6e, 0xca,
3119                0xb5, 0x4c, 0xb1, 0xf2, 0x66, 0x1d, 0x40, 0x3d, 0xa0, 0x59, 0x06, 0x30, 0x0b, 0xc5,
3120                0x11, 0x37, 0xaa, 0xb5,
3121            ],
3122            Elements::Sha256Ctx8Add64 => [
3123                0xfd, 0xc4, 0x34, 0xce, 0x83, 0xdb, 0xdc, 0xe0, 0x78, 0x2a, 0xa3, 0x6d, 0x41, 0x8d,
3124                0xef, 0x7f, 0x99, 0xaf, 0x82, 0x93, 0xaf, 0xb2, 0x9e, 0x83, 0x9f, 0xe4, 0x94, 0x8f,
3125                0x62, 0x34, 0xf7, 0x7f,
3126            ],
3127            Elements::Sha256Ctx8Add8 => [
3128                0x9c, 0x98, 0x83, 0x30, 0x79, 0x9a, 0x68, 0x0b, 0xfe, 0x73, 0xd7, 0xca, 0xa3, 0x68,
3129                0x9f, 0xe4, 0xe4, 0x83, 0xda, 0x4e, 0xe6, 0xd8, 0x18, 0x58, 0x79, 0x27, 0xc7, 0xf4,
3130                0x33, 0x92, 0xde, 0xf7,
3131            ],
3132            Elements::Sha256Ctx8AddBuffer511 => [
3133                0xc0, 0x27, 0xe1, 0x06, 0x29, 0x96, 0xae, 0x94, 0xac, 0x39, 0x71, 0xa2, 0xc4, 0xfa,
3134                0xe5, 0x49, 0x97, 0xeb, 0xf0, 0x9b, 0x9f, 0x7d, 0xa5, 0x75, 0x63, 0x9b, 0xe6, 0x17,
3135                0x16, 0x7f, 0x02, 0xe3,
3136            ],
3137            Elements::Sha256Ctx8Finalize => [
3138                0xcb, 0xba, 0x1f, 0x1d, 0x8a, 0x97, 0xab, 0x4d, 0x1f, 0xa9, 0x68, 0x6e, 0x7a, 0xee,
3139                0xf0, 0x66, 0xfb, 0x5b, 0xf2, 0x90, 0x71, 0x6e, 0xae, 0x10, 0xe7, 0x0b, 0x61, 0x99,
3140                0x96, 0xc5, 0x95, 0x94,
3141            ],
3142            Elements::Sha256Ctx8Init => [
3143                0xa5, 0x3c, 0x76, 0x79, 0xe3, 0xae, 0x03, 0x47, 0xd4, 0xd7, 0x91, 0x26, 0xa7, 0xc7,
3144                0xe4, 0x9a, 0xc0, 0xde, 0xc9, 0x0c, 0xdf, 0x93, 0x57, 0x99, 0xcd, 0xdb, 0x58, 0xda,
3145                0x8f, 0x44, 0x96, 0xe4,
3146            ],
3147            Elements::Sha256Iv => [
3148                0x73, 0x89, 0xf0, 0x02, 0x53, 0x05, 0xdc, 0xe8, 0x28, 0xd4, 0xa1, 0xfe, 0x83, 0x74,
3149                0x30, 0x46, 0xa3, 0x67, 0xc9, 0x23, 0xf1, 0x8a, 0xbf, 0x36, 0x5e, 0x39, 0x1e, 0x5b,
3150                0x04, 0xaf, 0x1a, 0x47,
3151            ],
3152            Elements::SigAllHash => [
3153                0x6a, 0xc5, 0x3d, 0x3f, 0x93, 0xb8, 0xca, 0xf3, 0xea, 0x85, 0x34, 0xae, 0x61, 0x2a,
3154                0xbd, 0x32, 0x32, 0x5d, 0x2b, 0x0f, 0xec, 0x17, 0xde, 0x36, 0xaf, 0x0f, 0x71, 0xaa,
3155                0x97, 0x8f, 0x7c, 0xde,
3156            ],
3157            Elements::Some1 => [
3158                0xfb, 0xda, 0xd6, 0xb0, 0x22, 0xa0, 0xc7, 0x8f, 0xf3, 0x56, 0x04, 0xaa, 0xfa, 0xcd,
3159                0x27, 0xcc, 0x10, 0xf5, 0x1e, 0xe0, 0x69, 0x8c, 0x41, 0xf1, 0xad, 0xa9, 0x03, 0x97,
3160                0x61, 0x8d, 0x52, 0x6f,
3161            ],
3162            Elements::Some16 => [
3163                0x7e, 0x2c, 0xcd, 0xbf, 0xc2, 0x4d, 0xd8, 0xd8, 0xa9, 0x04, 0xb0, 0x17, 0xdd, 0x4f,
3164                0x57, 0xe7, 0xc8, 0x74, 0x96, 0x34, 0x8a, 0xca, 0x7d, 0x04, 0x58, 0xc9, 0xd1, 0x6b,
3165                0x68, 0xbc, 0xda, 0x1c,
3166            ],
3167            Elements::Some32 => [
3168                0x45, 0x36, 0xae, 0xb1, 0x21, 0xc4, 0x27, 0x3f, 0xfc, 0x2a, 0x48, 0xfe, 0xd9, 0xee,
3169                0xd0, 0x31, 0x2e, 0xbd, 0x97, 0x2d, 0xec, 0x56, 0x81, 0xf4, 0x7e, 0xad, 0x0f, 0x62,
3170                0xd9, 0x54, 0x45, 0x2a,
3171            ],
3172            Elements::Some64 => [
3173                0x7f, 0x0b, 0xbd, 0x9d, 0x66, 0x31, 0xc1, 0x30, 0x9f, 0x90, 0x1c, 0x2f, 0x0d, 0x7a,
3174                0x0d, 0x28, 0x4a, 0x34, 0x41, 0x6c, 0xf7, 0x50, 0xdb, 0x1f, 0xe2, 0xb9, 0xf3, 0xd6,
3175                0xed, 0x70, 0x94, 0x09,
3176            ],
3177            Elements::Some8 => [
3178                0x2d, 0x8c, 0x8f, 0x71, 0xee, 0x5e, 0x75, 0x82, 0xf0, 0xed, 0x65, 0xf5, 0x26, 0xc0,
3179                0x26, 0x05, 0xdc, 0xb9, 0x3c, 0x0b, 0xdd, 0xb9, 0x43, 0x3a, 0xff, 0x3f, 0x25, 0xc2,
3180                0x28, 0xac, 0xda, 0x8a,
3181            ],
3182            Elements::Subtract16 => [
3183                0x56, 0x9e, 0x6c, 0x6b, 0x39, 0xe7, 0xd8, 0x12, 0x65, 0x9b, 0x67, 0xaa, 0xc0, 0x8a,
3184                0xd1, 0x50, 0x99, 0xee, 0xad, 0x79, 0x8f, 0xd1, 0xd4, 0x2d, 0xa1, 0x7e, 0xe3, 0xf0,
3185                0xd4, 0xd4, 0x49, 0x2a,
3186            ],
3187            Elements::Subtract32 => [
3188                0x19, 0xd3, 0x5e, 0x0a, 0xf1, 0xe1, 0x65, 0x14, 0xa6, 0xdf, 0xc2, 0x9a, 0x91, 0x41,
3189                0x87, 0x13, 0x39, 0x64, 0xc4, 0x80, 0xf6, 0x60, 0xe7, 0xeb, 0x92, 0x4e, 0xe1, 0x6d,
3190                0xba, 0xa2, 0x49, 0xcb,
3191            ],
3192            Elements::Subtract64 => [
3193                0x52, 0x3e, 0x11, 0x86, 0x28, 0xbf, 0x3a, 0xc1, 0xa6, 0xbe, 0x5a, 0x72, 0xbd, 0xb1,
3194                0x14, 0x1b, 0x89, 0xe0, 0xe0, 0x01, 0xe4, 0x02, 0xad, 0xda, 0x82, 0x58, 0x79, 0x00,
3195                0x03, 0xf8, 0x8a, 0xd8,
3196            ],
3197            Elements::Subtract8 => [
3198                0x40, 0x95, 0x0b, 0x86, 0xf6, 0xf1, 0xf9, 0x93, 0x55, 0xde, 0xe1, 0x1f, 0x77, 0xda,
3199                0xf2, 0x79, 0xa0, 0xcb, 0x6c, 0x6d, 0x15, 0x6a, 0xe4, 0x4b, 0x7d, 0x5d, 0x25, 0x71,
3200                0x64, 0xb2, 0x67, 0xc5,
3201            ],
3202            Elements::Swu => [
3203                0xab, 0xf7, 0x0b, 0xe0, 0x0b, 0x30, 0xf5, 0x77, 0xf9, 0x87, 0xcb, 0x50, 0x48, 0x89,
3204                0x96, 0xba, 0x35, 0x96, 0xdb, 0xf9, 0xc1, 0xe8, 0x44, 0xa8, 0xb1, 0xb8, 0xb7, 0x10,
3205                0x85, 0x3b, 0x65, 0xeb,
3206            ],
3207            Elements::TapEnvHash => [
3208                0x72, 0x27, 0x07, 0x71, 0x93, 0xec, 0x17, 0x41, 0x8e, 0xbf, 0x78, 0x77, 0xaf, 0xdc,
3209                0x70, 0x97, 0xbd, 0x5e, 0xed, 0x57, 0xe8, 0x26, 0xdf, 0x66, 0x05, 0xc6, 0x48, 0x69,
3210                0x1d, 0x00, 0x34, 0x03,
3211            ],
3212            Elements::TapdataInit => [
3213                0x6c, 0x67, 0xe5, 0xc1, 0x07, 0x35, 0x30, 0x5e, 0xe7, 0xde, 0xb5, 0x9a, 0x6c, 0x6a,
3214                0xc2, 0xef, 0xfc, 0xab, 0x4f, 0xf7, 0xbb, 0x47, 0x9e, 0xa7, 0x00, 0x81, 0x60, 0x6e,
3215                0x60, 0x48, 0x4c, 0xa7,
3216            ],
3217            Elements::TapleafHash => [
3218                0xd4, 0x5a, 0x66, 0x1f, 0xc9, 0x10, 0x0e, 0x2e, 0xa9, 0xdf, 0x78, 0x9c, 0xa2, 0x34,
3219                0x6d, 0xa8, 0x42, 0x71, 0x7e, 0xf6, 0xa8, 0xc8, 0x24, 0x18, 0x4f, 0x2d, 0xa8, 0xc7,
3220                0xfb, 0x01, 0x62, 0x03,
3221            ],
3222            Elements::TapleafVersion => [
3223                0xdd, 0xb0, 0xed, 0xd6, 0xce, 0x1e, 0x07, 0x98, 0x3d, 0x1a, 0x62, 0x26, 0xf0, 0x0b,
3224                0x12, 0x51, 0x89, 0xaf, 0x13, 0xbd, 0x5c, 0xd0, 0x68, 0x12, 0x3a, 0xd4, 0x3f, 0x48,
3225                0x20, 0x1b, 0x00, 0x6f,
3226            ],
3227            Elements::Tappath => [
3228                0x42, 0xc0, 0xc1, 0xf2, 0xef, 0x0e, 0x28, 0xae, 0x7d, 0xef, 0xa1, 0x5e, 0x84, 0xa0,
3229                0x6f, 0x35, 0xfb, 0xf6, 0xfc, 0x89, 0x7b, 0x29, 0xf6, 0x83, 0xfe, 0x1a, 0x24, 0xe3,
3230                0x0d, 0xc5, 0x8b, 0xaf,
3231            ],
3232            Elements::TappathHash => [
3233                0x9d, 0xa9, 0x06, 0xe3, 0xec, 0x08, 0x60, 0x65, 0xbe, 0x14, 0x41, 0x36, 0xb5, 0x16,
3234                0x20, 0xb6, 0x6d, 0xdf, 0x4d, 0x71, 0x38, 0x57, 0x35, 0x4e, 0xba, 0x3b, 0x97, 0xc7,
3235                0x75, 0x85, 0xf4, 0x43,
3236            ],
3237            Elements::TotalFee => [
3238                0x4e, 0xba, 0x3f, 0x22, 0xba, 0xc0, 0xa4, 0x65, 0xe4, 0xd0, 0x8a, 0x9a, 0xc4, 0x05,
3239                0x18, 0xef, 0x97, 0x2c, 0x2e, 0x86, 0x12, 0x09, 0x0a, 0x51, 0xe3, 0x20, 0x3f, 0xcb,
3240                0xd2, 0xf4, 0xed, 0xbe,
3241            ],
3242            Elements::TransactionId => [
3243                0x08, 0xb8, 0xeb, 0x3c, 0x2d, 0x2d, 0x95, 0x84, 0x58, 0xe1, 0x63, 0xe9, 0x43, 0x34,
3244                0x95, 0x0c, 0x0b, 0xb9, 0x14, 0xa0, 0xb9, 0xd2, 0x14, 0xfc, 0x5e, 0x9d, 0xe8, 0xf7,
3245                0x0a, 0x17, 0xa0, 0xd4,
3246            ],
3247            Elements::TxHash => [
3248                0xc3, 0x61, 0x02, 0xae, 0xda, 0x8b, 0xcf, 0x62, 0xa8, 0x5e, 0x71, 0x4b, 0x18, 0xe4,
3249                0xc5, 0x0c, 0xd4, 0x17, 0xff, 0xbf, 0x86, 0xd7, 0x37, 0x34, 0xe0, 0x2c, 0xbf, 0xcb,
3250                0x53, 0x13, 0xfc, 0xcf,
3251            ],
3252            Elements::TxIsFinal => [
3253                0x8b, 0x31, 0x45, 0x72, 0x24, 0x70, 0xa0, 0x7d, 0xe9, 0x0a, 0x28, 0xba, 0x89, 0xf3,
3254                0xf8, 0x86, 0x42, 0x61, 0x00, 0x96, 0x54, 0xce, 0x86, 0x6c, 0xd8, 0xea, 0xf7, 0x6c,
3255                0x5d, 0x86, 0x26, 0xeb,
3256            ],
3257            Elements::TxLockHeight => [
3258                0xc2, 0x02, 0x57, 0xf8, 0xe7, 0x6e, 0xcd, 0x0a, 0xe7, 0xad, 0x63, 0x4f, 0x5d, 0xfa,
3259                0x68, 0xae, 0x9a, 0x5e, 0xde, 0xd0, 0xe2, 0xee, 0xbe, 0x4e, 0xe5, 0x2c, 0xb4, 0x7a,
3260                0xcf, 0xb0, 0x26, 0x4c,
3261            ],
3262            Elements::TxLockTime => [
3263                0x3e, 0xe1, 0x90, 0x05, 0x42, 0xd0, 0x1e, 0xfd, 0x4e, 0x9a, 0x01, 0xd4, 0xef, 0xb1,
3264                0xf9, 0xdd, 0x99, 0x2c, 0xed, 0x35, 0xb7, 0xa7, 0x52, 0xf8, 0x3d, 0xa5, 0x93, 0x38,
3265                0x15, 0x38, 0xde, 0xa4,
3266            ],
3267            Elements::Verify => [
3268                0x34, 0x3e, 0x6d, 0xc1, 0x6b, 0x3f, 0x52, 0xe8, 0x3e, 0x3b, 0x4c, 0xcc, 0x99, 0xb8,
3269                0xc6, 0xf9, 0x6a, 0x07, 0x4f, 0xe3, 0x99, 0x32, 0x7a, 0xf3, 0x64, 0xbc, 0x28, 0x5e,
3270                0x29, 0x97, 0x45, 0xa2,
3271            ],
3272            Elements::Version => [
3273                0x08, 0x7f, 0xc9, 0x5c, 0x41, 0x00, 0x33, 0x48, 0x75, 0x9f, 0xd8, 0x40, 0x37, 0x2c,
3274                0x6f, 0x91, 0x2d, 0x9b, 0xe4, 0xe6, 0x1e, 0xee, 0x3c, 0x6a, 0x7a, 0x40, 0xdc, 0x13,
3275                0xc9, 0xc1, 0xbc, 0x70,
3276            ],
3277            Elements::Xor1 => [
3278                0x9d, 0xc9, 0xfe, 0x42, 0xf7, 0xeb, 0x34, 0x64, 0x9f, 0x1c, 0x72, 0xd2, 0xe5, 0xdd,
3279                0x16, 0x7d, 0xb2, 0x1b, 0xe5, 0x32, 0x13, 0x72, 0xd5, 0xca, 0x7f, 0x6a, 0x18, 0x4f,
3280                0x93, 0xe0, 0x5e, 0xe3,
3281            ],
3282            Elements::Xor16 => [
3283                0x1f, 0xca, 0xf4, 0x0b, 0xde, 0xdd, 0x72, 0xe7, 0x97, 0xb0, 0x9f, 0xe7, 0x87, 0x53,
3284                0xb0, 0xab, 0x27, 0x87, 0x2c, 0x0b, 0xd1, 0x2b, 0x03, 0x49, 0x55, 0xfb, 0xfa, 0xc2,
3285                0x38, 0x12, 0xef, 0x26,
3286            ],
3287            Elements::Xor32 => [
3288                0x1d, 0x49, 0xfc, 0x94, 0xf2, 0x2b, 0x5d, 0x31, 0xb7, 0xf9, 0xef, 0xb5, 0x37, 0x8e,
3289                0x5f, 0x8a, 0x42, 0x62, 0x6a, 0xed, 0x4e, 0x92, 0x79, 0x93, 0x48, 0xd6, 0xb7, 0x88,
3290                0xdf, 0xe8, 0x6b, 0x1c,
3291            ],
3292            Elements::Xor64 => [
3293                0x7a, 0x3f, 0x3f, 0x55, 0x20, 0x47, 0x83, 0x65, 0x33, 0x44, 0x31, 0x1d, 0x1d, 0xc5,
3294                0x09, 0xd3, 0x5b, 0x66, 0x39, 0xc0, 0xd8, 0xb9, 0x67, 0xa2, 0x07, 0x80, 0x6c, 0xd8,
3295                0x7d, 0x31, 0xd6, 0xe6,
3296            ],
3297            Elements::Xor8 => [
3298                0xd8, 0x33, 0x5f, 0x48, 0x90, 0xc1, 0xd8, 0xed, 0x76, 0x6c, 0x71, 0x35, 0x90, 0x2e,
3299                0x01, 0xa0, 0x09, 0x4e, 0x3a, 0x98, 0x16, 0xf7, 0x0c, 0x84, 0x7c, 0xc3, 0xd7, 0xc0,
3300                0x00, 0x40, 0x6e, 0xfe,
3301            ],
3302            Elements::XorXor1 => [
3303                0x1e, 0x10, 0x7b, 0x05, 0xff, 0x94, 0x1d, 0x31, 0xd7, 0x57, 0x8b, 0x43, 0x73, 0x28,
3304                0xba, 0x52, 0xf3, 0xff, 0x20, 0xa0, 0x68, 0xc0, 0xd2, 0xbd, 0xef, 0x08, 0x76, 0x80,
3305                0x93, 0xcc, 0x7c, 0x63,
3306            ],
3307            Elements::XorXor16 => [
3308                0xb7, 0x76, 0x98, 0x9d, 0xa5, 0x09, 0x5c, 0x4b, 0xe9, 0x4b, 0x1a, 0xef, 0x75, 0x94,
3309                0x66, 0xe1, 0x1f, 0x63, 0x9c, 0x19, 0x39, 0x47, 0x1f, 0xa1, 0x8e, 0x36, 0xe7, 0xe4,
3310                0x90, 0xc3, 0x89, 0x61,
3311            ],
3312            Elements::XorXor32 => [
3313                0xd1, 0x68, 0xfa, 0xc1, 0xac, 0x7f, 0xc4, 0x83, 0x57, 0xbe, 0x1b, 0x65, 0x33, 0x75,
3314                0xec, 0x5e, 0x3f, 0x05, 0x82, 0x3a, 0xae, 0x6a, 0xc9, 0x85, 0xe9, 0x40, 0x3e, 0xea,
3315                0xb1, 0x2b, 0xb9, 0xf8,
3316            ],
3317            Elements::XorXor64 => [
3318                0x36, 0x1c, 0x57, 0x93, 0x0e, 0xf9, 0x7d, 0x49, 0xcb, 0xc6, 0x79, 0xfa, 0xef, 0x1e,
3319                0x3b, 0xcf, 0xfb, 0x78, 0x79, 0x95, 0xb9, 0x61, 0xe5, 0x53, 0x7d, 0x2b, 0x1e, 0xeb,
3320                0xc9, 0xc9, 0xa6, 0xe8,
3321            ],
3322            Elements::XorXor8 => [
3323                0xc2, 0xda, 0x6e, 0x9c, 0xa6, 0x4d, 0x8a, 0x73, 0xc1, 0x77, 0x26, 0x67, 0xb3, 0xd7,
3324                0xa0, 0x93, 0x8b, 0xcb, 0x8a, 0x6c, 0x43, 0xfd, 0x04, 0x73, 0xee, 0xc7, 0x1b, 0x77,
3325                0x49, 0x4a, 0xad, 0x94,
3326            ],
3327        };
3328
3329        Cmr(Midstate(bytes))
3330    }
3331
3332    fn source_ty(&self) -> TypeName {
3333        let name: &'static [u8] = match self {
3334            Elements::Add16 => b"i",
3335            Elements::Add32 => b"l",
3336            Elements::Add64 => b"*ll",
3337            Elements::Add8 => b"****22*22**22*22***22*22**22*22",
3338            Elements::All16 => b"****22*22**22*22***22*22**22*22",
3339            Elements::All32 => b"i",
3340            Elements::All64 => b"l",
3341            Elements::All8 => b"***22*22**22*22",
3342            Elements::And1 => b"*22",
3343            Elements::And16 => b"i",
3344            Elements::And32 => b"l",
3345            Elements::And64 => b"*ll",
3346            Elements::And8 => b"****22*22**22*22***22*22**22*22",
3347            Elements::AnnexHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh+1h",
3348            Elements::AssetAmountHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*+*2hh+*2hl",
3349            Elements::Bip0340Verify => b"**hh*hh",
3350            Elements::BrokenDoNotUseCheckLockDistance => b"****22*22**22*22***22*22**22*22",
3351            Elements::BrokenDoNotUseCheckLockDuration => b"****22*22**22*22***22*22**22*22",
3352            Elements::BrokenDoNotUseTxLockDistance => b"1",
3353            Elements::BrokenDoNotUseTxLockDuration => b"1",
3354            Elements::BuildTapbranch => b"*hh",
3355            Elements::BuildTapleafSimplicity => b"h",
3356            Elements::BuildTaptweak => b"*hh",
3357            Elements::CalculateAsset => b"h",
3358            Elements::CalculateConfidentialToken => b"h",
3359            Elements::CalculateExplicitToken => b"h",
3360            Elements::CalculateIssuanceEntropy => b"**hih",
3361            Elements::Ch1 => b"*2*22",
3362            Elements::Ch16 => b"*****22*22**22*22***22*22**22*22i",
3363            Elements::Ch32 => b"*il",
3364            Elements::Ch64 => b"*l*ll",
3365            Elements::Ch8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3366            Elements::CheckLockHeight => b"i",
3367            Elements::CheckLockTime => b"i",
3368            Elements::CheckSigVerify => b"**h*hh*hh",
3369            Elements::Complement1 => b"2",
3370            Elements::Complement16 => b"****22*22**22*22***22*22**22*22",
3371            Elements::Complement32 => b"i",
3372            Elements::Complement64 => b"l",
3373            Elements::Complement8 => b"***22*22**22*22",
3374            Elements::CurrentAmount => b"1",
3375            Elements::CurrentAnnexHash => b"1",
3376            Elements::CurrentAsset => b"1",
3377            Elements::CurrentIndex => b"1",
3378            Elements::CurrentIssuanceAssetAmount => b"1",
3379            Elements::CurrentIssuanceAssetProof => b"1",
3380            Elements::CurrentIssuanceTokenAmount => b"1",
3381            Elements::CurrentIssuanceTokenProof => b"1",
3382            Elements::CurrentNewIssuanceContract => b"1",
3383            Elements::CurrentPegin => b"1",
3384            Elements::CurrentPrevOutpoint => b"1",
3385            Elements::CurrentReissuanceBlinding => b"1",
3386            Elements::CurrentReissuanceEntropy => b"1",
3387            Elements::CurrentScriptHash => b"1",
3388            Elements::CurrentScriptSigHash => b"1",
3389            Elements::CurrentSequence => b"1",
3390            Elements::Decompress => b"*2h",
3391            Elements::Decrement16 => b"****22*22**22*22***22*22**22*22",
3392            Elements::Decrement32 => b"i",
3393            Elements::Decrement64 => b"l",
3394            Elements::Decrement8 => b"***22*22**22*22",
3395            Elements::DivMod128_64 => b"**lll",
3396            Elements::DivMod16 => b"i",
3397            Elements::DivMod32 => b"l",
3398            Elements::DivMod64 => b"*ll",
3399            Elements::DivMod8 => b"****22*22**22*22***22*22**22*22",
3400            Elements::Divide16 => b"i",
3401            Elements::Divide32 => b"l",
3402            Elements::Divide64 => b"*ll",
3403            Elements::Divide8 => b"****22*22**22*22***22*22**22*22",
3404            Elements::Divides16 => b"i",
3405            Elements::Divides32 => b"l",
3406            Elements::Divides64 => b"*ll",
3407            Elements::Divides8 => b"****22*22**22*22***22*22**22*22",
3408            Elements::Eq1 => b"*22",
3409            Elements::Eq16 => b"i",
3410            Elements::Eq256 => b"*hh",
3411            Elements::Eq32 => b"l",
3412            Elements::Eq64 => b"*ll",
3413            Elements::Eq8 => b"****22*22**22*22***22*22**22*22",
3414            Elements::FeAdd => b"*hh",
3415            Elements::FeInvert => b"h",
3416            Elements::FeIsOdd => b"h",
3417            Elements::FeIsZero => b"h",
3418            Elements::FeMultiply => b"*hh",
3419            Elements::FeMultiplyBeta => b"h",
3420            Elements::FeNegate => b"h",
3421            Elements::FeNormalize => b"h",
3422            Elements::FeSquare => b"h",
3423            Elements::FeSquareRoot => b"h",
3424            Elements::FullAdd16 => b"*2i",
3425            Elements::FullAdd32 => b"*2l",
3426            Elements::FullAdd64 => b"*2*ll",
3427            Elements::FullAdd8 => b"*2****22*22**22*22***22*22**22*22",
3428            Elements::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
3429            Elements::FullDecrement32 => b"*2i",
3430            Elements::FullDecrement64 => b"*2l",
3431            Elements::FullDecrement8 => b"*2***22*22**22*22",
3432            Elements::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
3433            Elements::FullIncrement32 => b"*2i",
3434            Elements::FullIncrement64 => b"*2l",
3435            Elements::FullIncrement8 => b"*2***22*22**22*22",
3436            Elements::FullLeftShift16_1 => b"*****22*22**22*22***22*22**22*222",
3437            Elements::FullLeftShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
3438            Elements::FullLeftShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
3439            Elements::FullLeftShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
3440            Elements::FullLeftShift32_1 => b"*i2",
3441            Elements::FullLeftShift32_16 => b"*i****22*22**22*22***22*22**22*22",
3442            Elements::FullLeftShift32_2 => b"*i*22",
3443            Elements::FullLeftShift32_4 => b"*i**22*22",
3444            Elements::FullLeftShift32_8 => b"*i***22*22**22*22",
3445            Elements::FullLeftShift64_1 => b"*l2",
3446            Elements::FullLeftShift64_16 => b"*l****22*22**22*22***22*22**22*22",
3447            Elements::FullLeftShift64_2 => b"*l*22",
3448            Elements::FullLeftShift64_32 => b"*li",
3449            Elements::FullLeftShift64_4 => b"*l**22*22",
3450            Elements::FullLeftShift64_8 => b"*l***22*22**22*22",
3451            Elements::FullLeftShift8_1 => b"****22*22**22*222",
3452            Elements::FullLeftShift8_2 => b"****22*22**22*22*22",
3453            Elements::FullLeftShift8_4 => b"****22*22**22*22**22*22",
3454            Elements::FullMultiply16 => b"l",
3455            Elements::FullMultiply32 => b"*ll",
3456            Elements::FullMultiply64 => b"h",
3457            Elements::FullMultiply8 => b"i",
3458            Elements::FullRightShift16_1 => b"*2****22*22**22*22***22*22**22*22",
3459            Elements::FullRightShift16_2 => b"**22****22*22**22*22***22*22**22*22",
3460            Elements::FullRightShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
3461            Elements::FullRightShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3462            Elements::FullRightShift32_1 => b"*2i",
3463            Elements::FullRightShift32_16 => b"*****22*22**22*22***22*22**22*22i",
3464            Elements::FullRightShift32_2 => b"**22i",
3465            Elements::FullRightShift32_4 => b"***22*22i",
3466            Elements::FullRightShift32_8 => b"****22*22**22*22i",
3467            Elements::FullRightShift64_1 => b"*2l",
3468            Elements::FullRightShift64_16 => b"*****22*22**22*22***22*22**22*22l",
3469            Elements::FullRightShift64_2 => b"**22l",
3470            Elements::FullRightShift64_32 => b"*il",
3471            Elements::FullRightShift64_4 => b"***22*22l",
3472            Elements::FullRightShift64_8 => b"****22*22**22*22l",
3473            Elements::FullRightShift8_1 => b"*2***22*22**22*22",
3474            Elements::FullRightShift8_2 => b"**22***22*22**22*22",
3475            Elements::FullRightShift8_4 => b"***22*22***22*22**22*22",
3476            Elements::FullSubtract16 => b"*2i",
3477            Elements::FullSubtract32 => b"*2l",
3478            Elements::FullSubtract64 => b"*2*ll",
3479            Elements::FullSubtract8 => b"*2****22*22**22*22***22*22**22*22",
3480            Elements::GeIsOnCurve => b"*hh",
3481            Elements::GeNegate => b"*hh",
3482            Elements::GejAdd => b"***hhh**hhh",
3483            Elements::GejDouble => b"**hhh",
3484            Elements::GejEquiv => b"***hhh**hhh",
3485            Elements::GejGeAdd => b"***hhh*hh",
3486            Elements::GejGeAddEx => b"***hhh*hh",
3487            Elements::GejGeEquiv => b"***hhh*hh",
3488            Elements::GejInfinity => b"1",
3489            Elements::GejIsInfinity => b"**hhh",
3490            Elements::GejIsOnCurve => b"**hhh",
3491            Elements::GejNegate => b"**hhh",
3492            Elements::GejNormalize => b"**hhh",
3493            Elements::GejRescale => b"***hhhh",
3494            Elements::GejXEquiv => b"*h**hhh",
3495            Elements::GejYIsOdd => b"**hhh",
3496            Elements::Generate => b"h",
3497            Elements::GenesisBlockHash => b"1",
3498            Elements::HashToCurve => b"h",
3499            Elements::High1 => b"1",
3500            Elements::High16 => b"1",
3501            Elements::High32 => b"1",
3502            Elements::High64 => b"1",
3503            Elements::High8 => b"1",
3504            Elements::Increment16 => b"****22*22**22*22***22*22**22*22",
3505            Elements::Increment32 => b"i",
3506            Elements::Increment64 => b"l",
3507            Elements::Increment8 => b"***22*22**22*22",
3508            Elements::InputAmount => b"i",
3509            Elements::InputAmountsHash => b"1",
3510            Elements::InputAnnexHash => b"i",
3511            Elements::InputAnnexesHash => b"1",
3512            Elements::InputAsset => b"i",
3513            Elements::InputHash => b"i",
3514            Elements::InputOutpointsHash => b"1",
3515            Elements::InputPegin => b"i",
3516            Elements::InputPrevOutpoint => b"i",
3517            Elements::InputScriptHash => b"i",
3518            Elements::InputScriptSigHash => b"i",
3519            Elements::InputScriptSigsHash => b"1",
3520            Elements::InputScriptsHash => b"1",
3521            Elements::InputSequence => b"i",
3522            Elements::InputSequencesHash => b"1",
3523            Elements::InputUtxoHash => b"i",
3524            Elements::InputUtxosHash => b"1",
3525            Elements::InputsHash => b"1",
3526            Elements::InternalKey => b"1",
3527            Elements::IsOne16 => b"****22*22**22*22***22*22**22*22",
3528            Elements::IsOne32 => b"i",
3529            Elements::IsOne64 => b"l",
3530            Elements::IsOne8 => b"***22*22**22*22",
3531            Elements::IsZero16 => b"****22*22**22*22***22*22**22*22",
3532            Elements::IsZero32 => b"i",
3533            Elements::IsZero64 => b"l",
3534            Elements::IsZero8 => b"***22*22**22*22",
3535            Elements::Issuance => b"i",
3536            Elements::IssuanceAsset => b"i",
3537            Elements::IssuanceAssetAmount => b"i",
3538            Elements::IssuanceAssetAmountsHash => b"1",
3539            Elements::IssuanceAssetProof => b"i",
3540            Elements::IssuanceBlindingEntropyHash => b"1",
3541            Elements::IssuanceEntropy => b"i",
3542            Elements::IssuanceHash => b"i",
3543            Elements::IssuanceRangeProofsHash => b"1",
3544            Elements::IssuanceToken => b"i",
3545            Elements::IssuanceTokenAmount => b"i",
3546            Elements::IssuanceTokenAmountsHash => b"1",
3547            Elements::IssuanceTokenProof => b"i",
3548            Elements::IssuancesHash => b"1",
3549            Elements::LbtcAsset => b"1",
3550            Elements::Le16 => b"i",
3551            Elements::Le32 => b"l",
3552            Elements::Le64 => b"*ll",
3553            Elements::Le8 => b"****22*22**22*22***22*22**22*22",
3554            Elements::LeftExtend16_32 => b"****22*22**22*22***22*22**22*22",
3555            Elements::LeftExtend16_64 => b"****22*22**22*22***22*22**22*22",
3556            Elements::LeftExtend1_16 => b"2",
3557            Elements::LeftExtend1_32 => b"2",
3558            Elements::LeftExtend1_64 => b"2",
3559            Elements::LeftExtend1_8 => b"2",
3560            Elements::LeftExtend32_64 => b"i",
3561            Elements::LeftExtend8_16 => b"***22*22**22*22",
3562            Elements::LeftExtend8_32 => b"***22*22**22*22",
3563            Elements::LeftExtend8_64 => b"***22*22**22*22",
3564            Elements::LeftPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
3565            Elements::LeftPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
3566            Elements::LeftPadHigh1_16 => b"2",
3567            Elements::LeftPadHigh1_32 => b"2",
3568            Elements::LeftPadHigh1_64 => b"2",
3569            Elements::LeftPadHigh1_8 => b"2",
3570            Elements::LeftPadHigh32_64 => b"i",
3571            Elements::LeftPadHigh8_16 => b"***22*22**22*22",
3572            Elements::LeftPadHigh8_32 => b"***22*22**22*22",
3573            Elements::LeftPadHigh8_64 => b"***22*22**22*22",
3574            Elements::LeftPadLow16_32 => b"****22*22**22*22***22*22**22*22",
3575            Elements::LeftPadLow16_64 => b"****22*22**22*22***22*22**22*22",
3576            Elements::LeftPadLow1_16 => b"2",
3577            Elements::LeftPadLow1_32 => b"2",
3578            Elements::LeftPadLow1_64 => b"2",
3579            Elements::LeftPadLow1_8 => b"2",
3580            Elements::LeftPadLow32_64 => b"i",
3581            Elements::LeftPadLow8_16 => b"***22*22**22*22",
3582            Elements::LeftPadLow8_32 => b"***22*22**22*22",
3583            Elements::LeftPadLow8_64 => b"***22*22**22*22",
3584            Elements::LeftRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
3585            Elements::LeftRotate32 => b"****22*22**22*22i",
3586            Elements::LeftRotate64 => b"****22*22**22*22l",
3587            Elements::LeftRotate8 => b"***22*22***22*22**22*22",
3588            Elements::LeftShift16 => b"***22*22****22*22**22*22***22*22**22*22",
3589            Elements::LeftShift32 => b"****22*22**22*22i",
3590            Elements::LeftShift64 => b"****22*22**22*22l",
3591            Elements::LeftShift8 => b"***22*22***22*22**22*22",
3592            Elements::LeftShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
3593            Elements::LeftShiftWith32 => b"*2****22*22**22*22i",
3594            Elements::LeftShiftWith64 => b"*2****22*22**22*22l",
3595            Elements::LeftShiftWith8 => b"*2***22*22***22*22**22*22",
3596            Elements::Leftmost16_1 => b"****22*22**22*22***22*22**22*22",
3597            Elements::Leftmost16_2 => b"****22*22**22*22***22*22**22*22",
3598            Elements::Leftmost16_4 => b"****22*22**22*22***22*22**22*22",
3599            Elements::Leftmost16_8 => b"****22*22**22*22***22*22**22*22",
3600            Elements::Leftmost32_1 => b"i",
3601            Elements::Leftmost32_16 => b"i",
3602            Elements::Leftmost32_2 => b"i",
3603            Elements::Leftmost32_4 => b"i",
3604            Elements::Leftmost32_8 => b"i",
3605            Elements::Leftmost64_1 => b"l",
3606            Elements::Leftmost64_16 => b"l",
3607            Elements::Leftmost64_2 => b"l",
3608            Elements::Leftmost64_32 => b"l",
3609            Elements::Leftmost64_4 => b"l",
3610            Elements::Leftmost64_8 => b"l",
3611            Elements::Leftmost8_1 => b"***22*22**22*22",
3612            Elements::Leftmost8_2 => b"***22*22**22*22",
3613            Elements::Leftmost8_4 => b"***22*22**22*22",
3614            Elements::LinearCombination1 => b"**h**hhhh",
3615            Elements::LinearVerify1 => b"***h*hhh*hh",
3616            Elements::LockTime => b"1",
3617            Elements::Low1 => b"1",
3618            Elements::Low16 => b"1",
3619            Elements::Low32 => b"1",
3620            Elements::Low64 => b"1",
3621            Elements::Low8 => b"1",
3622            Elements::Lt16 => b"i",
3623            Elements::Lt32 => b"l",
3624            Elements::Lt64 => b"*ll",
3625            Elements::Lt8 => b"****22*22**22*22***22*22**22*22",
3626            Elements::Maj1 => b"*2*22",
3627            Elements::Maj16 => b"*****22*22**22*22***22*22**22*22i",
3628            Elements::Maj32 => b"*il",
3629            Elements::Maj64 => b"*l*ll",
3630            Elements::Maj8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3631            Elements::Max16 => b"i",
3632            Elements::Max32 => b"l",
3633            Elements::Max64 => b"*ll",
3634            Elements::Max8 => b"****22*22**22*22***22*22**22*22",
3635            Elements::Median16 => b"*****22*22**22*22***22*22**22*22i",
3636            Elements::Median32 => b"*il",
3637            Elements::Median64 => b"*l*ll",
3638            Elements::Median8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3639            Elements::Min16 => b"i",
3640            Elements::Min32 => b"l",
3641            Elements::Min64 => b"*ll",
3642            Elements::Min8 => b"****22*22**22*22***22*22**22*22",
3643            Elements::Modulo16 => b"i",
3644            Elements::Modulo32 => b"l",
3645            Elements::Modulo64 => b"*ll",
3646            Elements::Modulo8 => b"****22*22**22*22***22*22**22*22",
3647            Elements::Multiply16 => b"i",
3648            Elements::Multiply32 => b"l",
3649            Elements::Multiply64 => b"*ll",
3650            Elements::Multiply8 => b"****22*22**22*22***22*22**22*22",
3651            Elements::Negate16 => b"****22*22**22*22***22*22**22*22",
3652            Elements::Negate32 => b"i",
3653            Elements::Negate64 => b"l",
3654            Elements::Negate8 => b"***22*22**22*22",
3655            Elements::NewIssuanceContract => b"i",
3656            Elements::NonceHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh+1+*2hh",
3657            Elements::NumInputs => b"1",
3658            Elements::NumOutputs => b"1",
3659            Elements::One16 => b"1",
3660            Elements::One32 => b"1",
3661            Elements::One64 => b"1",
3662            Elements::One8 => b"1",
3663            Elements::Or1 => b"*22",
3664            Elements::Or16 => b"i",
3665            Elements::Or32 => b"l",
3666            Elements::Or64 => b"*ll",
3667            Elements::Or8 => b"****22*22**22*22***22*22**22*22",
3668            Elements::OutpointHash => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*+1h*hi",
3669            Elements::OutputAmount => b"i",
3670            Elements::OutputAmountsHash => b"1",
3671            Elements::OutputAsset => b"i",
3672            Elements::OutputHash => b"i",
3673            Elements::OutputIsFee => b"i",
3674            Elements::OutputNonce => b"i",
3675            Elements::OutputNoncesHash => b"1",
3676            Elements::OutputNullDatum => b"l",
3677            Elements::OutputRangeProof => b"i",
3678            Elements::OutputRangeProofsHash => b"1",
3679            Elements::OutputScriptHash => b"i",
3680            Elements::OutputScriptsHash => b"1",
3681            Elements::OutputSurjectionProof => b"i",
3682            Elements::OutputSurjectionProofsHash => b"1",
3683            Elements::OutputsHash => b"1",
3684            Elements::ParseLock => b"i",
3685            Elements::ParseSequence => b"i",
3686            Elements::PointVerify1 => b"***h*2hh*2h",
3687            Elements::ReissuanceBlinding => b"i",
3688            Elements::ReissuanceEntropy => b"i",
3689            Elements::RightExtend16_32 => b"****22*22**22*22***22*22**22*22",
3690            Elements::RightExtend16_64 => b"****22*22**22*22***22*22**22*22",
3691            Elements::RightExtend32_64 => b"i",
3692            Elements::RightExtend8_16 => b"***22*22**22*22",
3693            Elements::RightExtend8_32 => b"***22*22**22*22",
3694            Elements::RightExtend8_64 => b"***22*22**22*22",
3695            Elements::RightPadHigh16_32 => b"****22*22**22*22***22*22**22*22",
3696            Elements::RightPadHigh16_64 => b"****22*22**22*22***22*22**22*22",
3697            Elements::RightPadHigh1_16 => b"2",
3698            Elements::RightPadHigh1_32 => b"2",
3699            Elements::RightPadHigh1_64 => b"2",
3700            Elements::RightPadHigh1_8 => b"2",
3701            Elements::RightPadHigh32_64 => b"i",
3702            Elements::RightPadHigh8_16 => b"***22*22**22*22",
3703            Elements::RightPadHigh8_32 => b"***22*22**22*22",
3704            Elements::RightPadHigh8_64 => b"***22*22**22*22",
3705            Elements::RightPadLow16_32 => b"****22*22**22*22***22*22**22*22",
3706            Elements::RightPadLow16_64 => b"****22*22**22*22***22*22**22*22",
3707            Elements::RightPadLow1_16 => b"2",
3708            Elements::RightPadLow1_32 => b"2",
3709            Elements::RightPadLow1_64 => b"2",
3710            Elements::RightPadLow1_8 => b"2",
3711            Elements::RightPadLow32_64 => b"i",
3712            Elements::RightPadLow8_16 => b"***22*22**22*22",
3713            Elements::RightPadLow8_32 => b"***22*22**22*22",
3714            Elements::RightPadLow8_64 => b"***22*22**22*22",
3715            Elements::RightRotate16 => b"***22*22****22*22**22*22***22*22**22*22",
3716            Elements::RightRotate32 => b"****22*22**22*22i",
3717            Elements::RightRotate64 => b"****22*22**22*22l",
3718            Elements::RightRotate8 => b"***22*22***22*22**22*22",
3719            Elements::RightShift16 => b"***22*22****22*22**22*22***22*22**22*22",
3720            Elements::RightShift32 => b"****22*22**22*22i",
3721            Elements::RightShift64 => b"****22*22**22*22l",
3722            Elements::RightShift8 => b"***22*22***22*22**22*22",
3723            Elements::RightShiftWith16 => b"*2***22*22****22*22**22*22***22*22**22*22",
3724            Elements::RightShiftWith32 => b"*2****22*22**22*22i",
3725            Elements::RightShiftWith64 => b"*2****22*22**22*22l",
3726            Elements::RightShiftWith8 => b"*2***22*22***22*22**22*22",
3727            Elements::Rightmost16_1 => b"****22*22**22*22***22*22**22*22",
3728            Elements::Rightmost16_2 => b"****22*22**22*22***22*22**22*22",
3729            Elements::Rightmost16_4 => b"****22*22**22*22***22*22**22*22",
3730            Elements::Rightmost16_8 => b"****22*22**22*22***22*22**22*22",
3731            Elements::Rightmost32_1 => b"i",
3732            Elements::Rightmost32_16 => b"i",
3733            Elements::Rightmost32_2 => b"i",
3734            Elements::Rightmost32_4 => b"i",
3735            Elements::Rightmost32_8 => b"i",
3736            Elements::Rightmost64_1 => b"l",
3737            Elements::Rightmost64_16 => b"l",
3738            Elements::Rightmost64_2 => b"l",
3739            Elements::Rightmost64_32 => b"l",
3740            Elements::Rightmost64_4 => b"l",
3741            Elements::Rightmost64_8 => b"l",
3742            Elements::Rightmost8_1 => b"***22*22**22*22",
3743            Elements::Rightmost8_2 => b"***22*22**22*22",
3744            Elements::Rightmost8_4 => b"***22*22**22*22",
3745            Elements::ScalarAdd => b"*hh",
3746            Elements::ScalarInvert => b"h",
3747            Elements::ScalarIsZero => b"h",
3748            Elements::ScalarMultiply => b"*hh",
3749            Elements::ScalarMultiplyLambda => b"h",
3750            Elements::ScalarNegate => b"h",
3751            Elements::ScalarNormalize => b"h",
3752            Elements::ScalarSquare => b"h",
3753            Elements::Scale => b"*h**hhh",
3754            Elements::ScriptCMR => b"1",
3755            Elements::Sha256Block => b"*h*hh",
3756            Elements::Sha256Ctx8Add1 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh***22*22**22*22",
3757            Elements::Sha256Ctx8Add128 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh**hh*hh",
3758            Elements::Sha256Ctx8Add16 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*ll",
3759            Elements::Sha256Ctx8Add2 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh****22*22**22*22***22*22**22*22",
3760            Elements::Sha256Ctx8Add256 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh***hh*hh**hh*hh",
3761            Elements::Sha256Ctx8Add32 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhh",
3762            Elements::Sha256Ctx8Add4 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhi",
3763            Elements::Sha256Ctx8Add512 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh****hh*hh**hh*hh***hh*hh**hh*hh",
3764            Elements::Sha256Ctx8Add64 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*hh",
3765            Elements::Sha256Ctx8Add8 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lhl",
3766            Elements::Sha256Ctx8AddBuffer511 => b"***+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh*+1***hh*hh**hh*hh*+1**hh*hh*+1*hh*+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22",
3767            Elements::Sha256Ctx8Finalize => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3768            Elements::Sha256Ctx8Init => b"1",
3769            Elements::Sha256Iv => b"1",
3770            Elements::SigAllHash => b"1",
3771            Elements::Some1 => b"2",
3772            Elements::Some16 => b"****22*22**22*22***22*22**22*22",
3773            Elements::Some32 => b"i",
3774            Elements::Some64 => b"l",
3775            Elements::Some8 => b"***22*22**22*22",
3776            Elements::Subtract16 => b"i",
3777            Elements::Subtract32 => b"l",
3778            Elements::Subtract64 => b"*ll",
3779            Elements::Subtract8 => b"****22*22**22*22***22*22**22*22",
3780            Elements::Swu => b"h",
3781            Elements::TapEnvHash => b"1",
3782            Elements::TapdataInit => b"1",
3783            Elements::TapleafHash => b"1",
3784            Elements::TapleafVersion => b"1",
3785            Elements::Tappath => b"***22*22**22*22",
3786            Elements::TappathHash => b"1",
3787            Elements::TotalFee => b"h",
3788            Elements::TransactionId => b"1",
3789            Elements::TxHash => b"1",
3790            Elements::TxIsFinal => b"1",
3791            Elements::TxLockHeight => b"1",
3792            Elements::TxLockTime => b"1",
3793            Elements::Verify => b"2",
3794            Elements::Version => b"1",
3795            Elements::Xor1 => b"*22",
3796            Elements::Xor16 => b"i",
3797            Elements::Xor32 => b"l",
3798            Elements::Xor64 => b"*ll",
3799            Elements::Xor8 => b"****22*22**22*22***22*22**22*22",
3800            Elements::XorXor1 => b"*2*22",
3801            Elements::XorXor16 => b"*****22*22**22*22***22*22**22*22i",
3802            Elements::XorXor32 => b"*il",
3803            Elements::XorXor64 => b"*l*ll",
3804            Elements::XorXor8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3805        };
3806
3807        TypeName(name)
3808    }
3809
3810    fn target_ty(&self) -> TypeName {
3811        let name: &'static [u8] = match self {
3812            Elements::Add16 => b"*2****22*22**22*22***22*22**22*22",
3813            Elements::Add32 => b"*2i",
3814            Elements::Add64 => b"*2l",
3815            Elements::Add8 => b"*2***22*22**22*22",
3816            Elements::All16 => b"2",
3817            Elements::All32 => b"2",
3818            Elements::All64 => b"2",
3819            Elements::All8 => b"2",
3820            Elements::And1 => b"2",
3821            Elements::And16 => b"****22*22**22*22***22*22**22*22",
3822            Elements::And32 => b"i",
3823            Elements::And64 => b"l",
3824            Elements::And8 => b"***22*22**22*22",
3825            Elements::AnnexHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3826            Elements::AssetAmountHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
3827            Elements::Bip0340Verify => b"1",
3828            Elements::BrokenDoNotUseCheckLockDistance => b"1",
3829            Elements::BrokenDoNotUseCheckLockDuration => b"1",
3830            Elements::BrokenDoNotUseTxLockDistance => b"****22*22**22*22***22*22**22*22",
3831            Elements::BrokenDoNotUseTxLockDuration => b"****22*22**22*22***22*22**22*22",
3832            Elements::BuildTapbranch => b"h",
3833            Elements::BuildTapleafSimplicity => b"h",
3834            Elements::BuildTaptweak => b"h",
3835            Elements::CalculateAsset => b"h",
3836            Elements::CalculateConfidentialToken => b"h",
3837            Elements::CalculateExplicitToken => b"h",
3838            Elements::CalculateIssuanceEntropy => b"h",
3839            Elements::Ch1 => b"2",
3840            Elements::Ch16 => b"****22*22**22*22***22*22**22*22",
3841            Elements::Ch32 => b"i",
3842            Elements::Ch64 => b"l",
3843            Elements::Ch8 => b"***22*22**22*22",
3844            Elements::CheckLockHeight => b"1",
3845            Elements::CheckLockTime => b"1",
3846            Elements::CheckSigVerify => b"1",
3847            Elements::Complement1 => b"2",
3848            Elements::Complement16 => b"****22*22**22*22***22*22**22*22",
3849            Elements::Complement32 => b"i",
3850            Elements::Complement64 => b"l",
3851            Elements::Complement8 => b"***22*22**22*22",
3852            Elements::CurrentAmount => b"*+*2hh+*2hl",
3853            Elements::CurrentAnnexHash => b"+1h",
3854            Elements::CurrentAsset => b"+*2hh",
3855            Elements::CurrentIndex => b"i",
3856            Elements::CurrentIssuanceAssetAmount => b"+1+*2hl",
3857            Elements::CurrentIssuanceAssetProof => b"h",
3858            Elements::CurrentIssuanceTokenAmount => b"+1+*2hl",
3859            Elements::CurrentIssuanceTokenProof => b"h",
3860            Elements::CurrentNewIssuanceContract => b"+1h",
3861            Elements::CurrentPegin => b"+1h",
3862            Elements::CurrentPrevOutpoint => b"*hi",
3863            Elements::CurrentReissuanceBlinding => b"+1h",
3864            Elements::CurrentReissuanceEntropy => b"+1h",
3865            Elements::CurrentScriptHash => b"h",
3866            Elements::CurrentScriptSigHash => b"h",
3867            Elements::CurrentSequence => b"i",
3868            Elements::Decompress => b"+1*hh",
3869            Elements::Decrement16 => b"*2****22*22**22*22***22*22**22*22",
3870            Elements::Decrement32 => b"*2i",
3871            Elements::Decrement64 => b"*2l",
3872            Elements::Decrement8 => b"*2***22*22**22*22",
3873            Elements::DivMod128_64 => b"*ll",
3874            Elements::DivMod16 => b"i",
3875            Elements::DivMod32 => b"l",
3876            Elements::DivMod64 => b"*ll",
3877            Elements::DivMod8 => b"****22*22**22*22***22*22**22*22",
3878            Elements::Divide16 => b"****22*22**22*22***22*22**22*22",
3879            Elements::Divide32 => b"i",
3880            Elements::Divide64 => b"l",
3881            Elements::Divide8 => b"***22*22**22*22",
3882            Elements::Divides16 => b"2",
3883            Elements::Divides32 => b"2",
3884            Elements::Divides64 => b"2",
3885            Elements::Divides8 => b"2",
3886            Elements::Eq1 => b"2",
3887            Elements::Eq16 => b"2",
3888            Elements::Eq256 => b"2",
3889            Elements::Eq32 => b"2",
3890            Elements::Eq64 => b"2",
3891            Elements::Eq8 => b"2",
3892            Elements::FeAdd => b"h",
3893            Elements::FeInvert => b"h",
3894            Elements::FeIsOdd => b"2",
3895            Elements::FeIsZero => b"2",
3896            Elements::FeMultiply => b"h",
3897            Elements::FeMultiplyBeta => b"h",
3898            Elements::FeNegate => b"h",
3899            Elements::FeNormalize => b"h",
3900            Elements::FeSquare => b"h",
3901            Elements::FeSquareRoot => b"+1h",
3902            Elements::FullAdd16 => b"*2****22*22**22*22***22*22**22*22",
3903            Elements::FullAdd32 => b"*2i",
3904            Elements::FullAdd64 => b"*2l",
3905            Elements::FullAdd8 => b"*2***22*22**22*22",
3906            Elements::FullDecrement16 => b"*2****22*22**22*22***22*22**22*22",
3907            Elements::FullDecrement32 => b"*2i",
3908            Elements::FullDecrement64 => b"*2l",
3909            Elements::FullDecrement8 => b"*2***22*22**22*22",
3910            Elements::FullIncrement16 => b"*2****22*22**22*22***22*22**22*22",
3911            Elements::FullIncrement32 => b"*2i",
3912            Elements::FullIncrement64 => b"*2l",
3913            Elements::FullIncrement8 => b"*2***22*22**22*22",
3914            Elements::FullLeftShift16_1 => b"*2****22*22**22*22***22*22**22*22",
3915            Elements::FullLeftShift16_2 => b"**22****22*22**22*22***22*22**22*22",
3916            Elements::FullLeftShift16_4 => b"***22*22****22*22**22*22***22*22**22*22",
3917            Elements::FullLeftShift16_8 => b"****22*22**22*22****22*22**22*22***22*22**22*22",
3918            Elements::FullLeftShift32_1 => b"*2i",
3919            Elements::FullLeftShift32_16 => b"*****22*22**22*22***22*22**22*22i",
3920            Elements::FullLeftShift32_2 => b"**22i",
3921            Elements::FullLeftShift32_4 => b"***22*22i",
3922            Elements::FullLeftShift32_8 => b"****22*22**22*22i",
3923            Elements::FullLeftShift64_1 => b"*2l",
3924            Elements::FullLeftShift64_16 => b"*****22*22**22*22***22*22**22*22l",
3925            Elements::FullLeftShift64_2 => b"**22l",
3926            Elements::FullLeftShift64_32 => b"*il",
3927            Elements::FullLeftShift64_4 => b"***22*22l",
3928            Elements::FullLeftShift64_8 => b"****22*22**22*22l",
3929            Elements::FullLeftShift8_1 => b"*2***22*22**22*22",
3930            Elements::FullLeftShift8_2 => b"**22***22*22**22*22",
3931            Elements::FullLeftShift8_4 => b"***22*22***22*22**22*22",
3932            Elements::FullMultiply16 => b"i",
3933            Elements::FullMultiply32 => b"l",
3934            Elements::FullMultiply64 => b"*ll",
3935            Elements::FullMultiply8 => b"****22*22**22*22***22*22**22*22",
3936            Elements::FullRightShift16_1 => b"*****22*22**22*22***22*22**22*222",
3937            Elements::FullRightShift16_2 => b"*****22*22**22*22***22*22**22*22*22",
3938            Elements::FullRightShift16_4 => b"*****22*22**22*22***22*22**22*22**22*22",
3939            Elements::FullRightShift16_8 => b"*****22*22**22*22***22*22**22*22***22*22**22*22",
3940            Elements::FullRightShift32_1 => b"*i2",
3941            Elements::FullRightShift32_16 => b"*i****22*22**22*22***22*22**22*22",
3942            Elements::FullRightShift32_2 => b"*i*22",
3943            Elements::FullRightShift32_4 => b"*i**22*22",
3944            Elements::FullRightShift32_8 => b"*i***22*22**22*22",
3945            Elements::FullRightShift64_1 => b"*l2",
3946            Elements::FullRightShift64_16 => b"*l****22*22**22*22***22*22**22*22",
3947            Elements::FullRightShift64_2 => b"*l*22",
3948            Elements::FullRightShift64_32 => b"*li",
3949            Elements::FullRightShift64_4 => b"*l**22*22",
3950            Elements::FullRightShift64_8 => b"*l***22*22**22*22",
3951            Elements::FullRightShift8_1 => b"****22*22**22*222",
3952            Elements::FullRightShift8_2 => b"****22*22**22*22*22",
3953            Elements::FullRightShift8_4 => b"****22*22**22*22**22*22",
3954            Elements::FullSubtract16 => b"*2****22*22**22*22***22*22**22*22",
3955            Elements::FullSubtract32 => b"*2i",
3956            Elements::FullSubtract64 => b"*2l",
3957            Elements::FullSubtract8 => b"*2***22*22**22*22",
3958            Elements::GeIsOnCurve => b"2",
3959            Elements::GeNegate => b"*hh",
3960            Elements::GejAdd => b"**hhh",
3961            Elements::GejDouble => b"**hhh",
3962            Elements::GejEquiv => b"2",
3963            Elements::GejGeAdd => b"**hhh",
3964            Elements::GejGeAddEx => b"*h**hhh",
3965            Elements::GejGeEquiv => b"2",
3966            Elements::GejInfinity => b"**hhh",
3967            Elements::GejIsInfinity => b"2",
3968            Elements::GejIsOnCurve => b"2",
3969            Elements::GejNegate => b"**hhh",
3970            Elements::GejNormalize => b"+1*hh",
3971            Elements::GejRescale => b"**hhh",
3972            Elements::GejXEquiv => b"2",
3973            Elements::GejYIsOdd => b"2",
3974            Elements::Generate => b"**hhh",
3975            Elements::GenesisBlockHash => b"h",
3976            Elements::HashToCurve => b"*hh",
3977            Elements::High1 => b"2",
3978            Elements::High16 => b"****22*22**22*22***22*22**22*22",
3979            Elements::High32 => b"i",
3980            Elements::High64 => b"l",
3981            Elements::High8 => b"***22*22**22*22",
3982            Elements::Increment16 => b"*2****22*22**22*22***22*22**22*22",
3983            Elements::Increment32 => b"*2i",
3984            Elements::Increment64 => b"*2l",
3985            Elements::Increment8 => b"*2***22*22**22*22",
3986            Elements::InputAmount => b"+1*+*2hh+*2hl",
3987            Elements::InputAmountsHash => b"h",
3988            Elements::InputAnnexHash => b"+1+1h",
3989            Elements::InputAnnexesHash => b"h",
3990            Elements::InputAsset => b"+1+*2hh",
3991            Elements::InputHash => b"+1h",
3992            Elements::InputOutpointsHash => b"h",
3993            Elements::InputPegin => b"+1+1h",
3994            Elements::InputPrevOutpoint => b"+1*hi",
3995            Elements::InputScriptHash => b"+1h",
3996            Elements::InputScriptSigHash => b"+1h",
3997            Elements::InputScriptSigsHash => b"h",
3998            Elements::InputScriptsHash => b"h",
3999            Elements::InputSequence => b"+1i",
4000            Elements::InputSequencesHash => b"h",
4001            Elements::InputUtxoHash => b"+1h",
4002            Elements::InputUtxosHash => b"h",
4003            Elements::InputsHash => b"h",
4004            Elements::InternalKey => b"h",
4005            Elements::IsOne16 => b"2",
4006            Elements::IsOne32 => b"2",
4007            Elements::IsOne64 => b"2",
4008            Elements::IsOne8 => b"2",
4009            Elements::IsZero16 => b"2",
4010            Elements::IsZero32 => b"2",
4011            Elements::IsZero64 => b"2",
4012            Elements::IsZero8 => b"2",
4013            Elements::Issuance => b"+1+12",
4014            Elements::IssuanceAsset => b"+1+1h",
4015            Elements::IssuanceAssetAmount => b"+1+1+*2hl",
4016            Elements::IssuanceAssetAmountsHash => b"h",
4017            Elements::IssuanceAssetProof => b"+1h",
4018            Elements::IssuanceBlindingEntropyHash => b"h",
4019            Elements::IssuanceEntropy => b"+1+1h",
4020            Elements::IssuanceHash => b"+1h",
4021            Elements::IssuanceRangeProofsHash => b"h",
4022            Elements::IssuanceToken => b"+1+1h",
4023            Elements::IssuanceTokenAmount => b"+1+1+*2hl",
4024            Elements::IssuanceTokenAmountsHash => b"h",
4025            Elements::IssuanceTokenProof => b"+1h",
4026            Elements::IssuancesHash => b"h",
4027            Elements::LbtcAsset => b"h",
4028            Elements::Le16 => b"2",
4029            Elements::Le32 => b"2",
4030            Elements::Le64 => b"2",
4031            Elements::Le8 => b"2",
4032            Elements::LeftExtend16_32 => b"i",
4033            Elements::LeftExtend16_64 => b"l",
4034            Elements::LeftExtend1_16 => b"****22*22**22*22***22*22**22*22",
4035            Elements::LeftExtend1_32 => b"i",
4036            Elements::LeftExtend1_64 => b"l",
4037            Elements::LeftExtend1_8 => b"***22*22**22*22",
4038            Elements::LeftExtend32_64 => b"l",
4039            Elements::LeftExtend8_16 => b"****22*22**22*22***22*22**22*22",
4040            Elements::LeftExtend8_32 => b"i",
4041            Elements::LeftExtend8_64 => b"l",
4042            Elements::LeftPadHigh16_32 => b"i",
4043            Elements::LeftPadHigh16_64 => b"l",
4044            Elements::LeftPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
4045            Elements::LeftPadHigh1_32 => b"i",
4046            Elements::LeftPadHigh1_64 => b"l",
4047            Elements::LeftPadHigh1_8 => b"***22*22**22*22",
4048            Elements::LeftPadHigh32_64 => b"l",
4049            Elements::LeftPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
4050            Elements::LeftPadHigh8_32 => b"i",
4051            Elements::LeftPadHigh8_64 => b"l",
4052            Elements::LeftPadLow16_32 => b"i",
4053            Elements::LeftPadLow16_64 => b"l",
4054            Elements::LeftPadLow1_16 => b"****22*22**22*22***22*22**22*22",
4055            Elements::LeftPadLow1_32 => b"i",
4056            Elements::LeftPadLow1_64 => b"l",
4057            Elements::LeftPadLow1_8 => b"***22*22**22*22",
4058            Elements::LeftPadLow32_64 => b"l",
4059            Elements::LeftPadLow8_16 => b"****22*22**22*22***22*22**22*22",
4060            Elements::LeftPadLow8_32 => b"i",
4061            Elements::LeftPadLow8_64 => b"l",
4062            Elements::LeftRotate16 => b"****22*22**22*22***22*22**22*22",
4063            Elements::LeftRotate32 => b"i",
4064            Elements::LeftRotate64 => b"l",
4065            Elements::LeftRotate8 => b"***22*22**22*22",
4066            Elements::LeftShift16 => b"****22*22**22*22***22*22**22*22",
4067            Elements::LeftShift32 => b"i",
4068            Elements::LeftShift64 => b"l",
4069            Elements::LeftShift8 => b"***22*22**22*22",
4070            Elements::LeftShiftWith16 => b"****22*22**22*22***22*22**22*22",
4071            Elements::LeftShiftWith32 => b"i",
4072            Elements::LeftShiftWith64 => b"l",
4073            Elements::LeftShiftWith8 => b"***22*22**22*22",
4074            Elements::Leftmost16_1 => b"2",
4075            Elements::Leftmost16_2 => b"*22",
4076            Elements::Leftmost16_4 => b"**22*22",
4077            Elements::Leftmost16_8 => b"***22*22**22*22",
4078            Elements::Leftmost32_1 => b"2",
4079            Elements::Leftmost32_16 => b"****22*22**22*22***22*22**22*22",
4080            Elements::Leftmost32_2 => b"*22",
4081            Elements::Leftmost32_4 => b"**22*22",
4082            Elements::Leftmost32_8 => b"***22*22**22*22",
4083            Elements::Leftmost64_1 => b"2",
4084            Elements::Leftmost64_16 => b"****22*22**22*22***22*22**22*22",
4085            Elements::Leftmost64_2 => b"*22",
4086            Elements::Leftmost64_32 => b"i",
4087            Elements::Leftmost64_4 => b"**22*22",
4088            Elements::Leftmost64_8 => b"***22*22**22*22",
4089            Elements::Leftmost8_1 => b"2",
4090            Elements::Leftmost8_2 => b"*22",
4091            Elements::Leftmost8_4 => b"**22*22",
4092            Elements::LinearCombination1 => b"**hhh",
4093            Elements::LinearVerify1 => b"1",
4094            Elements::LockTime => b"i",
4095            Elements::Low1 => b"2",
4096            Elements::Low16 => b"****22*22**22*22***22*22**22*22",
4097            Elements::Low32 => b"i",
4098            Elements::Low64 => b"l",
4099            Elements::Low8 => b"***22*22**22*22",
4100            Elements::Lt16 => b"2",
4101            Elements::Lt32 => b"2",
4102            Elements::Lt64 => b"2",
4103            Elements::Lt8 => b"2",
4104            Elements::Maj1 => b"2",
4105            Elements::Maj16 => b"****22*22**22*22***22*22**22*22",
4106            Elements::Maj32 => b"i",
4107            Elements::Maj64 => b"l",
4108            Elements::Maj8 => b"***22*22**22*22",
4109            Elements::Max16 => b"****22*22**22*22***22*22**22*22",
4110            Elements::Max32 => b"i",
4111            Elements::Max64 => b"l",
4112            Elements::Max8 => b"***22*22**22*22",
4113            Elements::Median16 => b"****22*22**22*22***22*22**22*22",
4114            Elements::Median32 => b"i",
4115            Elements::Median64 => b"l",
4116            Elements::Median8 => b"***22*22**22*22",
4117            Elements::Min16 => b"****22*22**22*22***22*22**22*22",
4118            Elements::Min32 => b"i",
4119            Elements::Min64 => b"l",
4120            Elements::Min8 => b"***22*22**22*22",
4121            Elements::Modulo16 => b"****22*22**22*22***22*22**22*22",
4122            Elements::Modulo32 => b"i",
4123            Elements::Modulo64 => b"l",
4124            Elements::Modulo8 => b"***22*22**22*22",
4125            Elements::Multiply16 => b"i",
4126            Elements::Multiply32 => b"l",
4127            Elements::Multiply64 => b"*ll",
4128            Elements::Multiply8 => b"****22*22**22*22***22*22**22*22",
4129            Elements::Negate16 => b"*2****22*22**22*22***22*22**22*22",
4130            Elements::Negate32 => b"*2i",
4131            Elements::Negate64 => b"*2l",
4132            Elements::Negate8 => b"*2***22*22**22*22",
4133            Elements::NewIssuanceContract => b"+1+1h",
4134            Elements::NonceHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4135            Elements::NumInputs => b"i",
4136            Elements::NumOutputs => b"i",
4137            Elements::One16 => b"****22*22**22*22***22*22**22*22",
4138            Elements::One32 => b"i",
4139            Elements::One64 => b"l",
4140            Elements::One8 => b"***22*22**22*22",
4141            Elements::Or1 => b"2",
4142            Elements::Or16 => b"****22*22**22*22***22*22**22*22",
4143            Elements::Or32 => b"i",
4144            Elements::Or64 => b"l",
4145            Elements::Or8 => b"***22*22**22*22",
4146            Elements::OutpointHash => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4147            Elements::OutputAmount => b"+1*+*2hh+*2hl",
4148            Elements::OutputAmountsHash => b"h",
4149            Elements::OutputAsset => b"+1+*2hh",
4150            Elements::OutputHash => b"+1h",
4151            Elements::OutputIsFee => b"+12",
4152            Elements::OutputNonce => b"+1+1+*2hh",
4153            Elements::OutputNoncesHash => b"h",
4154            Elements::OutputNullDatum => b"+1+1+**22h+2**22*22",
4155            Elements::OutputRangeProof => b"+1h",
4156            Elements::OutputRangeProofsHash => b"h",
4157            Elements::OutputScriptHash => b"+1h",
4158            Elements::OutputScriptsHash => b"h",
4159            Elements::OutputSurjectionProof => b"+1h",
4160            Elements::OutputSurjectionProofsHash => b"h",
4161            Elements::OutputsHash => b"h",
4162            Elements::ParseLock => b"+ii",
4163            Elements::ParseSequence => b"+1+****22*22**22*22***22*22**22*22****22*22**22*22***22*22**22*22",
4164            Elements::PointVerify1 => b"1",
4165            Elements::ReissuanceBlinding => b"+1+1h",
4166            Elements::ReissuanceEntropy => b"+1+1h",
4167            Elements::RightExtend16_32 => b"i",
4168            Elements::RightExtend16_64 => b"l",
4169            Elements::RightExtend32_64 => b"l",
4170            Elements::RightExtend8_16 => b"****22*22**22*22***22*22**22*22",
4171            Elements::RightExtend8_32 => b"i",
4172            Elements::RightExtend8_64 => b"l",
4173            Elements::RightPadHigh16_32 => b"i",
4174            Elements::RightPadHigh16_64 => b"l",
4175            Elements::RightPadHigh1_16 => b"****22*22**22*22***22*22**22*22",
4176            Elements::RightPadHigh1_32 => b"i",
4177            Elements::RightPadHigh1_64 => b"l",
4178            Elements::RightPadHigh1_8 => b"***22*22**22*22",
4179            Elements::RightPadHigh32_64 => b"l",
4180            Elements::RightPadHigh8_16 => b"****22*22**22*22***22*22**22*22",
4181            Elements::RightPadHigh8_32 => b"i",
4182            Elements::RightPadHigh8_64 => b"l",
4183            Elements::RightPadLow16_32 => b"i",
4184            Elements::RightPadLow16_64 => b"l",
4185            Elements::RightPadLow1_16 => b"****22*22**22*22***22*22**22*22",
4186            Elements::RightPadLow1_32 => b"i",
4187            Elements::RightPadLow1_64 => b"l",
4188            Elements::RightPadLow1_8 => b"***22*22**22*22",
4189            Elements::RightPadLow32_64 => b"l",
4190            Elements::RightPadLow8_16 => b"****22*22**22*22***22*22**22*22",
4191            Elements::RightPadLow8_32 => b"i",
4192            Elements::RightPadLow8_64 => b"l",
4193            Elements::RightRotate16 => b"****22*22**22*22***22*22**22*22",
4194            Elements::RightRotate32 => b"i",
4195            Elements::RightRotate64 => b"l",
4196            Elements::RightRotate8 => b"***22*22**22*22",
4197            Elements::RightShift16 => b"****22*22**22*22***22*22**22*22",
4198            Elements::RightShift32 => b"i",
4199            Elements::RightShift64 => b"l",
4200            Elements::RightShift8 => b"***22*22**22*22",
4201            Elements::RightShiftWith16 => b"****22*22**22*22***22*22**22*22",
4202            Elements::RightShiftWith32 => b"i",
4203            Elements::RightShiftWith64 => b"l",
4204            Elements::RightShiftWith8 => b"***22*22**22*22",
4205            Elements::Rightmost16_1 => b"2",
4206            Elements::Rightmost16_2 => b"*22",
4207            Elements::Rightmost16_4 => b"**22*22",
4208            Elements::Rightmost16_8 => b"***22*22**22*22",
4209            Elements::Rightmost32_1 => b"2",
4210            Elements::Rightmost32_16 => b"****22*22**22*22***22*22**22*22",
4211            Elements::Rightmost32_2 => b"*22",
4212            Elements::Rightmost32_4 => b"**22*22",
4213            Elements::Rightmost32_8 => b"***22*22**22*22",
4214            Elements::Rightmost64_1 => b"2",
4215            Elements::Rightmost64_16 => b"****22*22**22*22***22*22**22*22",
4216            Elements::Rightmost64_2 => b"*22",
4217            Elements::Rightmost64_32 => b"i",
4218            Elements::Rightmost64_4 => b"**22*22",
4219            Elements::Rightmost64_8 => b"***22*22**22*22",
4220            Elements::Rightmost8_1 => b"2",
4221            Elements::Rightmost8_2 => b"*22",
4222            Elements::Rightmost8_4 => b"**22*22",
4223            Elements::ScalarAdd => b"h",
4224            Elements::ScalarInvert => b"h",
4225            Elements::ScalarIsZero => b"2",
4226            Elements::ScalarMultiply => b"h",
4227            Elements::ScalarMultiplyLambda => b"h",
4228            Elements::ScalarNegate => b"h",
4229            Elements::ScalarNormalize => b"h",
4230            Elements::ScalarSquare => b"h",
4231            Elements::Scale => b"**hhh",
4232            Elements::ScriptCMR => b"h",
4233            Elements::Sha256Block => b"h",
4234            Elements::Sha256Ctx8Add1 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4235            Elements::Sha256Ctx8Add128 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4236            Elements::Sha256Ctx8Add16 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4237            Elements::Sha256Ctx8Add2 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4238            Elements::Sha256Ctx8Add256 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4239            Elements::Sha256Ctx8Add32 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4240            Elements::Sha256Ctx8Add4 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4241            Elements::Sha256Ctx8Add512 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4242            Elements::Sha256Ctx8Add64 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4243            Elements::Sha256Ctx8Add8 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4244            Elements::Sha256Ctx8AddBuffer511 => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4245            Elements::Sha256Ctx8Finalize => b"h",
4246            Elements::Sha256Ctx8Init => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4247            Elements::Sha256Iv => b"h",
4248            Elements::SigAllHash => b"h",
4249            Elements::Some1 => b"2",
4250            Elements::Some16 => b"2",
4251            Elements::Some32 => b"2",
4252            Elements::Some64 => b"2",
4253            Elements::Some8 => b"2",
4254            Elements::Subtract16 => b"*2****22*22**22*22***22*22**22*22",
4255            Elements::Subtract32 => b"*2i",
4256            Elements::Subtract64 => b"*2l",
4257            Elements::Subtract8 => b"*2***22*22**22*22",
4258            Elements::Swu => b"*hh",
4259            Elements::TapEnvHash => b"h",
4260            Elements::TapdataInit => b"**+1h*+1*ll*+1l*+1i*+1****22*22**22*22***22*22**22*22+1***22*22**22*22*lh",
4261            Elements::TapleafHash => b"h",
4262            Elements::TapleafVersion => b"***22*22**22*22",
4263            Elements::Tappath => b"+1h",
4264            Elements::TappathHash => b"h",
4265            Elements::TotalFee => b"l",
4266            Elements::TransactionId => b"h",
4267            Elements::TxHash => b"h",
4268            Elements::TxIsFinal => b"2",
4269            Elements::TxLockHeight => b"i",
4270            Elements::TxLockTime => b"i",
4271            Elements::Verify => b"1",
4272            Elements::Version => b"i",
4273            Elements::Xor1 => b"2",
4274            Elements::Xor16 => b"****22*22**22*22***22*22**22*22",
4275            Elements::Xor32 => b"i",
4276            Elements::Xor64 => b"l",
4277            Elements::Xor8 => b"***22*22**22*22",
4278            Elements::XorXor1 => b"2",
4279            Elements::XorXor16 => b"****22*22**22*22***22*22**22*22",
4280            Elements::XorXor32 => b"i",
4281            Elements::XorXor64 => b"l",
4282            Elements::XorXor8 => b"***22*22**22*22",
4283        };
4284
4285        TypeName(name)
4286    }
4287
4288    fn encode(&self, w: &mut BitWriter<&mut dyn Write>) -> std::io::Result<usize> {
4289        let (n, len) = match self {
4290            Elements::Verify => (0, 3),
4291            Elements::Low1 => (8, 6),
4292            Elements::Low8 => (37, 8),
4293            Elements::Low16 => (304, 11),
4294            Elements::Low32 => (305, 11),
4295            Elements::Low64 => (306, 11),
4296            Elements::High1 => (10, 6),
4297            Elements::High8 => (45, 8),
4298            Elements::High16 => (368, 11),
4299            Elements::High32 => (369, 11),
4300            Elements::High64 => (370, 11),
4301            Elements::Complement1 => (96, 9),
4302            Elements::Complement8 => (389, 11),
4303            Elements::Complement16 => (3120, 14),
4304            Elements::Complement32 => (3121, 14),
4305            Elements::Complement64 => (3122, 14),
4306            Elements::And1 => (98, 9),
4307            Elements::And8 => (397, 11),
4308            Elements::And16 => (3184, 14),
4309            Elements::And32 => (3185, 14),
4310            Elements::And64 => (3186, 14),
4311            Elements::Or1 => (100, 9),
4312            Elements::Or8 => (405, 11),
4313            Elements::Or16 => (3248, 14),
4314            Elements::Or32 => (3249, 14),
4315            Elements::Or64 => (3250, 14),
4316            Elements::Xor1 => (102, 9),
4317            Elements::Xor8 => (413, 11),
4318            Elements::Xor16 => (3312, 14),
4319            Elements::Xor32 => (3313, 14),
4320            Elements::Xor64 => (3314, 14),
4321            Elements::Maj1 => (208, 10),
4322            Elements::Maj8 => (837, 12),
4323            Elements::Maj16 => (6704, 15),
4324            Elements::Maj32 => (6705, 15),
4325            Elements::Maj64 => (6706, 15),
4326            Elements::XorXor1 => (210, 10),
4327            Elements::XorXor8 => (845, 12),
4328            Elements::XorXor16 => (6768, 15),
4329            Elements::XorXor32 => (6769, 15),
4330            Elements::XorXor64 => (6770, 15),
4331            Elements::Ch1 => (212, 10),
4332            Elements::Ch8 => (853, 12),
4333            Elements::Ch16 => (6832, 15),
4334            Elements::Ch32 => (6833, 15),
4335            Elements::Ch64 => (6834, 15),
4336            Elements::Some1 => (214, 10),
4337            Elements::Some8 => (861, 12),
4338            Elements::Some16 => (6896, 15),
4339            Elements::Some32 => (6897, 15),
4340            Elements::Some64 => (6898, 15),
4341            Elements::All8 => (869, 12),
4342            Elements::All16 => (6960, 15),
4343            Elements::All32 => (6961, 15),
4344            Elements::All64 => (6962, 15),
4345            Elements::Eq1 => (218, 10),
4346            Elements::Eq8 => (877, 12),
4347            Elements::Eq16 => (7024, 15),
4348            Elements::Eq32 => (7025, 15),
4349            Elements::Eq64 => (7026, 15),
4350            Elements::Eq256 => (14056, 16),
4351            Elements::FullLeftShift8_1 => (1765, 13),
4352            Elements::FullLeftShift16_1 => (14128, 16),
4353            Elements::FullLeftShift32_1 => (14129, 16),
4354            Elements::FullLeftShift64_1 => (14130, 16),
4355            Elements::FullLeftShift8_2 => (7076, 15),
4356            Elements::FullLeftShift16_2 => (7077, 15),
4357            Elements::FullLeftShift32_2 => (56624, 18),
4358            Elements::FullLeftShift64_2 => (56625, 18),
4359            Elements::FullLeftShift8_4 => (1770, 13),
4360            Elements::FullLeftShift16_4 => (7084, 15),
4361            Elements::FullLeftShift32_4 => (7085, 15),
4362            Elements::FullLeftShift64_4 => (56688, 18),
4363            Elements::FullLeftShift16_8 => (14176, 16),
4364            Elements::FullLeftShift32_8 => (56708, 18),
4365            Elements::FullLeftShift64_8 => (56709, 18),
4366            Elements::FullLeftShift32_16 => (14178, 16),
4367            Elements::FullLeftShift64_16 => (56716, 18),
4368            Elements::FullLeftShift64_32 => (14180, 16),
4369            Elements::FullRightShift8_1 => (1781, 13),
4370            Elements::FullRightShift16_1 => (14256, 16),
4371            Elements::FullRightShift32_1 => (14257, 16),
4372            Elements::FullRightShift64_1 => (14258, 16),
4373            Elements::FullRightShift8_2 => (7140, 15),
4374            Elements::FullRightShift16_2 => (7141, 15),
4375            Elements::FullRightShift32_2 => (57136, 18),
4376            Elements::FullRightShift64_2 => (57137, 18),
4377            Elements::FullRightShift8_4 => (1786, 13),
4378            Elements::FullRightShift16_4 => (7148, 15),
4379            Elements::FullRightShift32_4 => (7149, 15),
4380            Elements::FullRightShift64_4 => (57200, 18),
4381            Elements::FullRightShift16_8 => (14304, 16),
4382            Elements::FullRightShift32_8 => (57220, 18),
4383            Elements::FullRightShift64_8 => (57221, 18),
4384            Elements::FullRightShift32_16 => (14306, 16),
4385            Elements::FullRightShift64_16 => (57228, 18),
4386            Elements::FullRightShift64_32 => (14308, 16),
4387            Elements::Leftmost8_1 => (28677, 17),
4388            Elements::Leftmost16_1 => (229424, 20),
4389            Elements::Leftmost32_1 => (229425, 20),
4390            Elements::Leftmost64_1 => (229426, 20),
4391            Elements::Leftmost8_2 => (114724, 19),
4392            Elements::Leftmost16_2 => (114725, 19),
4393            Elements::Leftmost32_2 => (917808, 22),
4394            Elements::Leftmost64_2 => (917809, 22),
4395            Elements::Leftmost8_4 => (28682, 17),
4396            Elements::Leftmost16_4 => (114732, 19),
4397            Elements::Leftmost32_4 => (114733, 19),
4398            Elements::Leftmost64_4 => (917872, 22),
4399            Elements::Leftmost16_8 => (229472, 20),
4400            Elements::Leftmost32_8 => (917892, 22),
4401            Elements::Leftmost64_8 => (917893, 22),
4402            Elements::Leftmost32_16 => (229474, 20),
4403            Elements::Leftmost64_16 => (917900, 22),
4404            Elements::Leftmost64_32 => (229476, 20),
4405            Elements::Rightmost8_1 => (28693, 17),
4406            Elements::Rightmost16_1 => (229552, 20),
4407            Elements::Rightmost32_1 => (229553, 20),
4408            Elements::Rightmost64_1 => (229554, 20),
4409            Elements::Rightmost8_2 => (114788, 19),
4410            Elements::Rightmost16_2 => (114789, 19),
4411            Elements::Rightmost32_2 => (918320, 22),
4412            Elements::Rightmost64_2 => (918321, 22),
4413            Elements::Rightmost8_4 => (28698, 17),
4414            Elements::Rightmost16_4 => (114796, 19),
4415            Elements::Rightmost32_4 => (114797, 19),
4416            Elements::Rightmost64_4 => (918384, 22),
4417            Elements::Rightmost16_8 => (229600, 20),
4418            Elements::Rightmost32_8 => (918404, 22),
4419            Elements::Rightmost64_8 => (918405, 22),
4420            Elements::Rightmost32_16 => (229602, 20),
4421            Elements::Rightmost64_16 => (918412, 22),
4422            Elements::Rightmost64_32 => (229604, 20),
4423            Elements::LeftPadLow1_8 => (28709, 17),
4424            Elements::LeftPadLow1_16 => (229680, 20),
4425            Elements::LeftPadLow1_32 => (229681, 20),
4426            Elements::LeftPadLow1_64 => (229682, 20),
4427            Elements::LeftPadLow8_16 => (229728, 20),
4428            Elements::LeftPadLow8_32 => (918916, 22),
4429            Elements::LeftPadLow8_64 => (918917, 22),
4430            Elements::LeftPadLow16_32 => (229730, 20),
4431            Elements::LeftPadLow16_64 => (918924, 22),
4432            Elements::LeftPadLow32_64 => (229732, 20),
4433            Elements::LeftPadHigh1_8 => (28725, 17),
4434            Elements::LeftPadHigh1_16 => (229808, 20),
4435            Elements::LeftPadHigh1_32 => (229809, 20),
4436            Elements::LeftPadHigh1_64 => (229810, 20),
4437            Elements::LeftPadHigh8_16 => (229856, 20),
4438            Elements::LeftPadHigh8_32 => (919428, 22),
4439            Elements::LeftPadHigh8_64 => (919429, 22),
4440            Elements::LeftPadHigh16_32 => (229858, 20),
4441            Elements::LeftPadHigh16_64 => (919436, 22),
4442            Elements::LeftPadHigh32_64 => (229860, 20),
4443            Elements::LeftExtend1_8 => (28741, 17),
4444            Elements::LeftExtend1_16 => (229936, 20),
4445            Elements::LeftExtend1_32 => (229937, 20),
4446            Elements::LeftExtend1_64 => (229938, 20),
4447            Elements::LeftExtend8_16 => (229984, 20),
4448            Elements::LeftExtend8_32 => (919940, 22),
4449            Elements::LeftExtend8_64 => (919941, 22),
4450            Elements::LeftExtend16_32 => (229986, 20),
4451            Elements::LeftExtend16_64 => (919948, 22),
4452            Elements::LeftExtend32_64 => (229988, 20),
4453            Elements::RightPadLow1_8 => (28757, 17),
4454            Elements::RightPadLow1_16 => (230064, 20),
4455            Elements::RightPadLow1_32 => (230065, 20),
4456            Elements::RightPadLow1_64 => (230066, 20),
4457            Elements::RightPadLow8_16 => (230112, 20),
4458            Elements::RightPadLow8_32 => (920452, 22),
4459            Elements::RightPadLow8_64 => (920453, 22),
4460            Elements::RightPadLow16_32 => (230114, 20),
4461            Elements::RightPadLow16_64 => (920460, 22),
4462            Elements::RightPadLow32_64 => (230116, 20),
4463            Elements::RightPadHigh1_8 => (28773, 17),
4464            Elements::RightPadHigh1_16 => (230192, 20),
4465            Elements::RightPadHigh1_32 => (230193, 20),
4466            Elements::RightPadHigh1_64 => (230194, 20),
4467            Elements::RightPadHigh8_16 => (230240, 20),
4468            Elements::RightPadHigh8_32 => (920964, 22),
4469            Elements::RightPadHigh8_64 => (920965, 22),
4470            Elements::RightPadHigh16_32 => (230242, 20),
4471            Elements::RightPadHigh16_64 => (920972, 22),
4472            Elements::RightPadHigh32_64 => (230244, 20),
4473            Elements::RightExtend8_16 => (230368, 20),
4474            Elements::RightExtend8_32 => (921476, 22),
4475            Elements::RightExtend8_64 => (921477, 22),
4476            Elements::RightExtend16_32 => (230370, 20),
4477            Elements::RightExtend16_64 => (921484, 22),
4478            Elements::RightExtend32_64 => (230372, 20),
4479            Elements::LeftShiftWith8 => (14405, 16),
4480            Elements::LeftShiftWith16 => (115248, 19),
4481            Elements::LeftShiftWith32 => (115249, 19),
4482            Elements::LeftShiftWith64 => (115250, 19),
4483            Elements::RightShiftWith8 => (14413, 16),
4484            Elements::RightShiftWith16 => (115312, 19),
4485            Elements::RightShiftWith32 => (115313, 19),
4486            Elements::RightShiftWith64 => (115314, 19),
4487            Elements::LeftShift8 => (14421, 16),
4488            Elements::LeftShift16 => (115376, 19),
4489            Elements::LeftShift32 => (115377, 19),
4490            Elements::LeftShift64 => (115378, 19),
4491            Elements::RightShift8 => (14429, 16),
4492            Elements::RightShift16 => (115440, 19),
4493            Elements::RightShift32 => (115441, 19),
4494            Elements::RightShift64 => (115442, 19),
4495            Elements::LeftRotate8 => (14437, 16),
4496            Elements::LeftRotate16 => (115504, 19),
4497            Elements::LeftRotate32 => (115505, 19),
4498            Elements::LeftRotate64 => (115506, 19),
4499            Elements::RightRotate8 => (14445, 16),
4500            Elements::RightRotate16 => (115568, 19),
4501            Elements::RightRotate32 => (115569, 19),
4502            Elements::RightRotate64 => (115570, 19),
4503            Elements::One8 => (69, 8),
4504            Elements::One16 => (560, 11),
4505            Elements::One32 => (561, 11),
4506            Elements::One64 => (562, 11),
4507            Elements::FullAdd8 => (293, 10),
4508            Elements::FullAdd16 => (2352, 13),
4509            Elements::FullAdd32 => (2353, 13),
4510            Elements::FullAdd64 => (2354, 13),
4511            Elements::Add8 => (301, 10),
4512            Elements::Add16 => (2416, 13),
4513            Elements::Add32 => (2417, 13),
4514            Elements::Add64 => (2418, 13),
4515            Elements::FullIncrement8 => (2437, 13),
4516            Elements::FullIncrement16 => (19504, 16),
4517            Elements::FullIncrement32 => (19505, 16),
4518            Elements::FullIncrement64 => (19506, 16),
4519            Elements::Increment8 => (2445, 13),
4520            Elements::Increment16 => (19568, 16),
4521            Elements::Increment32 => (19569, 16),
4522            Elements::Increment64 => (19570, 16),
4523            Elements::FullSubtract8 => (2461, 13),
4524            Elements::FullSubtract16 => (19696, 16),
4525            Elements::FullSubtract32 => (19697, 16),
4526            Elements::FullSubtract64 => (19698, 16),
4527            Elements::Subtract8 => (4933, 14),
4528            Elements::Subtract16 => (39472, 17),
4529            Elements::Subtract32 => (39473, 17),
4530            Elements::Subtract64 => (39474, 17),
4531            Elements::Negate8 => (4941, 14),
4532            Elements::Negate16 => (39536, 17),
4533            Elements::Negate32 => (39537, 17),
4534            Elements::Negate64 => (39538, 17),
4535            Elements::FullDecrement8 => (4949, 14),
4536            Elements::FullDecrement16 => (39600, 17),
4537            Elements::FullDecrement32 => (39601, 17),
4538            Elements::FullDecrement64 => (39602, 17),
4539            Elements::Decrement8 => (4957, 14),
4540            Elements::Decrement16 => (39664, 17),
4541            Elements::Decrement32 => (39665, 17),
4542            Elements::Decrement64 => (39666, 17),
4543            Elements::FullMultiply8 => (4965, 14),
4544            Elements::FullMultiply16 => (39728, 17),
4545            Elements::FullMultiply32 => (39729, 17),
4546            Elements::FullMultiply64 => (39730, 17),
4547            Elements::Multiply8 => (4973, 14),
4548            Elements::Multiply16 => (39792, 17),
4549            Elements::Multiply32 => (39793, 17),
4550            Elements::Multiply64 => (39794, 17),
4551            Elements::IsZero8 => (4981, 14),
4552            Elements::IsZero16 => (39856, 17),
4553            Elements::IsZero32 => (39857, 17),
4554            Elements::IsZero64 => (39858, 17),
4555            Elements::IsOne8 => (4989, 14),
4556            Elements::IsOne16 => (39920, 17),
4557            Elements::IsOne32 => (39921, 17),
4558            Elements::IsOne64 => (39922, 17),
4559            Elements::Le8 => (79877, 18),
4560            Elements::Le16 => (639024, 21),
4561            Elements::Le32 => (639025, 21),
4562            Elements::Le64 => (639026, 21),
4563            Elements::Lt8 => (79885, 18),
4564            Elements::Lt16 => (639088, 21),
4565            Elements::Lt32 => (639089, 21),
4566            Elements::Lt64 => (639090, 21),
4567            Elements::Min8 => (79893, 18),
4568            Elements::Min16 => (639152, 21),
4569            Elements::Min32 => (639153, 21),
4570            Elements::Min64 => (639154, 21),
4571            Elements::Max8 => (79901, 18),
4572            Elements::Max16 => (639216, 21),
4573            Elements::Max32 => (639217, 21),
4574            Elements::Max64 => (639218, 21),
4575            Elements::Median8 => (79909, 18),
4576            Elements::Median16 => (639280, 21),
4577            Elements::Median32 => (639281, 21),
4578            Elements::Median64 => (639282, 21),
4579            Elements::DivMod128_64 => (639346, 21),
4580            Elements::DivMod8 => (79925, 18),
4581            Elements::DivMod16 => (639408, 21),
4582            Elements::DivMod32 => (639409, 21),
4583            Elements::DivMod64 => (639410, 21),
4584            Elements::Divide8 => (79933, 18),
4585            Elements::Divide16 => (639472, 21),
4586            Elements::Divide32 => (639473, 21),
4587            Elements::Divide64 => (639474, 21),
4588            Elements::Modulo8 => (79941, 18),
4589            Elements::Modulo16 => (639536, 21),
4590            Elements::Modulo32 => (639537, 21),
4591            Elements::Modulo64 => (639538, 21),
4592            Elements::Divides8 => (79949, 18),
4593            Elements::Divides16 => (639600, 21),
4594            Elements::Divides32 => (639601, 21),
4595            Elements::Divides64 => (639602, 21),
4596            Elements::Sha256Block => (20, 6),
4597            Elements::Sha256Iv => (84, 8),
4598            Elements::Sha256Ctx8Add1 => (170, 9),
4599            Elements::Sha256Ctx8Add2 => (684, 11),
4600            Elements::Sha256Ctx8Add4 => (685, 11),
4601            Elements::Sha256Ctx8Add8 => (5488, 14),
4602            Elements::Sha256Ctx8Add16 => (5489, 14),
4603            Elements::Sha256Ctx8Add32 => (5490, 14),
4604            Elements::Sha256Ctx8Add64 => (5491, 14),
4605            Elements::Sha256Ctx8Add128 => (10984, 15),
4606            Elements::Sha256Ctx8Add256 => (10985, 15),
4607            Elements::Sha256Ctx8Add512 => (10986, 15),
4608            Elements::Sha256Ctx8AddBuffer511 => (688, 11),
4609            Elements::Sha256Ctx8Finalize => (689, 11),
4610            Elements::Sha256Ctx8Init => (690, 11),
4611            Elements::PointVerify1 => (192, 9),
4612            Elements::Decompress => (388, 10),
4613            Elements::LinearVerify1 => (778, 11),
4614            Elements::LinearCombination1 => (6240, 14),
4615            Elements::Scale => (3121, 13),
4616            Elements::Generate => (3122, 13),
4617            Elements::GejInfinity => (3123, 13),
4618            Elements::GejNormalize => (6248, 14),
4619            Elements::GejNegate => (6249, 14),
4620            Elements::GeNegate => (6250, 14),
4621            Elements::GejDouble => (6251, 14),
4622            Elements::GejAdd => (6252, 14),
4623            Elements::GejGeAddEx => (6253, 14),
4624            Elements::GejGeAdd => (6254, 14),
4625            Elements::GejRescale => (6255, 14),
4626            Elements::GejIsInfinity => (100096, 18),
4627            Elements::GejEquiv => (100097, 18),
4628            Elements::GejGeEquiv => (100098, 18),
4629            Elements::GejXEquiv => (100099, 18),
4630            Elements::GejYIsOdd => (100100, 18),
4631            Elements::GejIsOnCurve => (100101, 18),
4632            Elements::GeIsOnCurve => (100102, 18),
4633            Elements::ScalarNormalize => (100103, 18),
4634            Elements::ScalarNegate => (100104, 18),
4635            Elements::ScalarAdd => (100105, 18),
4636            Elements::ScalarSquare => (100106, 18),
4637            Elements::ScalarMultiply => (100107, 18),
4638            Elements::ScalarMultiplyLambda => (100108, 18),
4639            Elements::ScalarInvert => (100109, 18),
4640            Elements::ScalarIsZero => (100110, 18),
4641            Elements::FeNormalize => (200227, 19),
4642            Elements::FeNegate => (200228, 19),
4643            Elements::FeAdd => (200229, 19),
4644            Elements::FeSquare => (200230, 19),
4645            Elements::FeMultiply => (200231, 19),
4646            Elements::FeMultiplyBeta => (200232, 19),
4647            Elements::FeInvert => (200233, 19),
4648            Elements::FeSquareRoot => (200234, 19),
4649            Elements::FeIsZero => (200235, 19),
4650            Elements::FeIsOdd => (200236, 19),
4651            Elements::HashToCurve => (200238, 19),
4652            Elements::Swu => (200239, 19),
4653            Elements::CheckSigVerify => (98, 8),
4654            Elements::Bip0340Verify => (396, 10),
4655            Elements::ParseLock => (102, 8),
4656            Elements::ParseSequence => (412, 10),
4657            Elements::TapdataInit => (413, 10),
4658            Elements::SigAllHash => (4, 3),
4659            Elements::TxHash => (20, 5),
4660            Elements::TapEnvHash => (21, 5),
4661            Elements::OutputsHash => (176, 8),
4662            Elements::InputsHash => (177, 8),
4663            Elements::IssuancesHash => (178, 8),
4664            Elements::InputUtxosHash => (179, 8),
4665            Elements::OutputHash => (360, 9),
4666            Elements::OutputAmountsHash => (361, 9),
4667            Elements::OutputScriptsHash => (362, 9),
4668            Elements::OutputNoncesHash => (363, 9),
4669            Elements::OutputRangeProofsHash => (364, 9),
4670            Elements::OutputSurjectionProofsHash => (365, 9),
4671            Elements::InputHash => (366, 9),
4672            Elements::InputOutpointsHash => (367, 9),
4673            Elements::InputSequencesHash => (5888, 13),
4674            Elements::InputAnnexesHash => (5889, 13),
4675            Elements::InputScriptSigsHash => (5890, 13),
4676            Elements::IssuanceHash => (5891, 13),
4677            Elements::IssuanceAssetAmountsHash => (5892, 13),
4678            Elements::IssuanceTokenAmountsHash => (5893, 13),
4679            Elements::IssuanceRangeProofsHash => (5894, 13),
4680            Elements::IssuanceBlindingEntropyHash => (5895, 13),
4681            Elements::InputUtxoHash => (5896, 13),
4682            Elements::InputAmountsHash => (5897, 13),
4683            Elements::InputScriptsHash => (5898, 13),
4684            Elements::TapleafHash => (5899, 13),
4685            Elements::TappathHash => (5900, 13),
4686            Elements::OutpointHash => (5901, 13),
4687            Elements::AssetAmountHash => (5902, 13),
4688            Elements::NonceHash => (5903, 13),
4689            Elements::AnnexHash => (11808, 14),
4690            Elements::BuildTapleafSimplicity => (11809, 14),
4691            Elements::BuildTapbranch => (11810, 14),
4692            Elements::BuildTaptweak => (11811, 14),
4693            Elements::CheckLockHeight => (24, 5),
4694            Elements::CheckLockTime => (100, 7),
4695            Elements::BrokenDoNotUseCheckLockDistance => (101, 7),
4696            Elements::BrokenDoNotUseCheckLockDuration => (816, 10),
4697            Elements::TxLockHeight => (817, 10),
4698            Elements::TxLockTime => (818, 10),
4699            Elements::BrokenDoNotUseTxLockDistance => (819, 10),
4700            Elements::BrokenDoNotUseTxLockDuration => (1640, 11),
4701            Elements::TxIsFinal => (1641, 11),
4702            Elements::Issuance => (26, 5),
4703            Elements::IssuanceAsset => (108, 7),
4704            Elements::IssuanceToken => (109, 7),
4705            Elements::IssuanceEntropy => (880, 10),
4706            Elements::CalculateIssuanceEntropy => (881, 10),
4707            Elements::CalculateAsset => (882, 10),
4708            Elements::CalculateExplicitToken => (883, 10),
4709            Elements::CalculateConfidentialToken => (1768, 11),
4710            Elements::LbtcAsset => (1769, 11),
4711            Elements::ScriptCMR => (224, 8),
4712            Elements::InternalKey => (900, 10),
4713            Elements::CurrentIndex => (901, 10),
4714            Elements::NumInputs => (7216, 13),
4715            Elements::NumOutputs => (7217, 13),
4716            Elements::LockTime => (7218, 13),
4717            Elements::OutputAsset => (7219, 13),
4718            Elements::OutputAmount => (14440, 14),
4719            Elements::OutputNonce => (14441, 14),
4720            Elements::OutputScriptHash => (14442, 14),
4721            Elements::OutputNullDatum => (14443, 14),
4722            Elements::OutputIsFee => (14444, 14),
4723            Elements::OutputSurjectionProof => (14445, 14),
4724            Elements::OutputRangeProof => (14446, 14),
4725            Elements::TotalFee => (14447, 14),
4726            Elements::CurrentPegin => (231168, 18),
4727            Elements::CurrentPrevOutpoint => (231169, 18),
4728            Elements::CurrentAsset => (231170, 18),
4729            Elements::CurrentAmount => (231171, 18),
4730            Elements::CurrentScriptHash => (231172, 18),
4731            Elements::CurrentSequence => (231173, 18),
4732            Elements::CurrentAnnexHash => (231174, 18),
4733            Elements::CurrentScriptSigHash => (231175, 18),
4734            Elements::CurrentReissuanceBlinding => (231176, 18),
4735            Elements::CurrentNewIssuanceContract => (231177, 18),
4736            Elements::CurrentReissuanceEntropy => (231178, 18),
4737            Elements::CurrentIssuanceAssetAmount => (231179, 18),
4738            Elements::CurrentIssuanceTokenAmount => (231180, 18),
4739            Elements::CurrentIssuanceAssetProof => (231181, 18),
4740            Elements::CurrentIssuanceTokenProof => (231182, 18),
4741            Elements::InputPegin => (231183, 18),
4742            Elements::InputPrevOutpoint => (462368, 19),
4743            Elements::InputAsset => (462369, 19),
4744            Elements::InputAmount => (462370, 19),
4745            Elements::InputScriptHash => (462371, 19),
4746            Elements::InputSequence => (462372, 19),
4747            Elements::InputAnnexHash => (462373, 19),
4748            Elements::InputScriptSigHash => (462374, 19),
4749            Elements::ReissuanceBlinding => (462375, 19),
4750            Elements::NewIssuanceContract => (462376, 19),
4751            Elements::ReissuanceEntropy => (462377, 19),
4752            Elements::IssuanceAssetAmount => (462378, 19),
4753            Elements::IssuanceTokenAmount => (462379, 19),
4754            Elements::IssuanceAssetProof => (462380, 19),
4755            Elements::IssuanceTokenProof => (462381, 19),
4756            Elements::TapleafVersion => (462382, 19),
4757            Elements::Tappath => (462383, 19),
4758            Elements::Version => (462384, 19),
4759            Elements::GenesisBlockHash => (462385, 19),
4760            Elements::TransactionId => (462386, 19),
4761        };
4762
4763        w.write_bits_be(n, len)
4764    }
4765
4766    fn decode<I: Iterator<Item = u8>>(bits: &mut BitIter<I>) -> Result<Self, decode::Error> where Self: Sized {
4767        decode_bits!(bits, {
4768            0 => {
4769                0 => {
4770                    0 => {Elements::Verify},
4771                    1 => {
4772                        0 => {
4773                            0 => {
4774                                0 => {Elements::Low1},
4775                                1 => {
4776                                    0 => {
4777                                        0 => {},
4778                                        1 => {Elements::Low8}
4779                                    },
4780                                    1 => {
4781                                        0 => {
4782                                            0 => {
4783                                                0 => {
4784                                                    0 => {Elements::Low16},
4785                                                    1 => {Elements::Low32}
4786                                                },
4787                                                1 => {
4788                                                    0 => {Elements::Low64},
4789                                                    1 => {}
4790                                                }
4791                                            },
4792                                            1 => {}
4793                                        },
4794                                        1 => {}
4795                                    }
4796                                }
4797                            },
4798                            1 => {
4799                                0 => {Elements::High1},
4800                                1 => {
4801                                    0 => {
4802                                        0 => {},
4803                                        1 => {Elements::High8}
4804                                    },
4805                                    1 => {
4806                                        0 => {
4807                                            0 => {
4808                                                0 => {
4809                                                    0 => {Elements::High16},
4810                                                    1 => {Elements::High32}
4811                                                },
4812                                                1 => {
4813                                                    0 => {Elements::High64},
4814                                                    1 => {}
4815                                                }
4816                                            },
4817                                            1 => {}
4818                                        },
4819                                        1 => {}
4820                                    }
4821                                }
4822                            }
4823                        },
4824                        1 => {
4825                            0 => {
4826                                0 => {
4827                                    0 => {
4828                                        0 => {
4829                                            0 => {Elements::Complement1},
4830                                            1 => {
4831                                                0 => {
4832                                                    0 => {},
4833                                                    1 => {Elements::Complement8}
4834                                                },
4835                                                1 => {
4836                                                    0 => {
4837                                                        0 => {
4838                                                            0 => {
4839                                                                0 => {Elements::Complement16},
4840                                                                1 => {Elements::Complement32}
4841                                                            },
4842                                                            1 => {
4843                                                                0 => {Elements::Complement64},
4844                                                                1 => {}
4845                                                            }
4846                                                        },
4847                                                        1 => {}
4848                                                    },
4849                                                    1 => {}
4850                                                }
4851                                            }
4852                                        },
4853                                        1 => {
4854                                            0 => {Elements::And1},
4855                                            1 => {
4856                                                0 => {
4857                                                    0 => {},
4858                                                    1 => {Elements::And8}
4859                                                },
4860                                                1 => {
4861                                                    0 => {
4862                                                        0 => {
4863                                                            0 => {
4864                                                                0 => {Elements::And16},
4865                                                                1 => {Elements::And32}
4866                                                            },
4867                                                            1 => {
4868                                                                0 => {Elements::And64},
4869                                                                1 => {}
4870                                                            }
4871                                                        },
4872                                                        1 => {}
4873                                                    },
4874                                                    1 => {}
4875                                                }
4876                                            }
4877                                        }
4878                                    },
4879                                    1 => {
4880                                        0 => {
4881                                            0 => {Elements::Or1},
4882                                            1 => {
4883                                                0 => {
4884                                                    0 => {},
4885                                                    1 => {Elements::Or8}
4886                                                },
4887                                                1 => {
4888                                                    0 => {
4889                                                        0 => {
4890                                                            0 => {
4891                                                                0 => {Elements::Or16},
4892                                                                1 => {Elements::Or32}
4893                                                            },
4894                                                            1 => {
4895                                                                0 => {Elements::Or64},
4896                                                                1 => {}
4897                                                            }
4898                                                        },
4899                                                        1 => {}
4900                                                    },
4901                                                    1 => {}
4902                                                }
4903                                            }
4904                                        },
4905                                        1 => {
4906                                            0 => {Elements::Xor1},
4907                                            1 => {
4908                                                0 => {
4909                                                    0 => {},
4910                                                    1 => {Elements::Xor8}
4911                                                },
4912                                                1 => {
4913                                                    0 => {
4914                                                        0 => {
4915                                                            0 => {
4916                                                                0 => {Elements::Xor16},
4917                                                                1 => {Elements::Xor32}
4918                                                            },
4919                                                            1 => {
4920                                                                0 => {Elements::Xor64},
4921                                                                1 => {}
4922                                                            }
4923                                                        },
4924                                                        1 => {}
4925                                                    },
4926                                                    1 => {}
4927                                                }
4928                                            }
4929                                        }
4930                                    }
4931                                },
4932                                1 => {
4933                                    0 => {
4934                                        0 => {
4935                                            0 => {
4936                                                0 => {Elements::Maj1},
4937                                                1 => {
4938                                                    0 => {
4939                                                        0 => {},
4940                                                        1 => {Elements::Maj8}
4941                                                    },
4942                                                    1 => {
4943                                                        0 => {
4944                                                            0 => {
4945                                                                0 => {
4946                                                                    0 => {Elements::Maj16},
4947                                                                    1 => {Elements::Maj32}
4948                                                                },
4949                                                                1 => {
4950                                                                    0 => {Elements::Maj64},
4951                                                                    1 => {}
4952                                                                }
4953                                                            },
4954                                                            1 => {}
4955                                                        },
4956                                                        1 => {}
4957                                                    }
4958                                                }
4959                                            },
4960                                            1 => {
4961                                                0 => {Elements::XorXor1},
4962                                                1 => {
4963                                                    0 => {
4964                                                        0 => {},
4965                                                        1 => {Elements::XorXor8}
4966                                                    },
4967                                                    1 => {
4968                                                        0 => {
4969                                                            0 => {
4970                                                                0 => {
4971                                                                    0 => {Elements::XorXor16},
4972                                                                    1 => {Elements::XorXor32}
4973                                                                },
4974                                                                1 => {
4975                                                                    0 => {Elements::XorXor64},
4976                                                                    1 => {}
4977                                                                }
4978                                                            },
4979                                                            1 => {}
4980                                                        },
4981                                                        1 => {}
4982                                                    }
4983                                                }
4984                                            }
4985                                        },
4986                                        1 => {
4987                                            0 => {
4988                                                0 => {Elements::Ch1},
4989                                                1 => {
4990                                                    0 => {
4991                                                        0 => {},
4992                                                        1 => {Elements::Ch8}
4993                                                    },
4994                                                    1 => {
4995                                                        0 => {
4996                                                            0 => {
4997                                                                0 => {
4998                                                                    0 => {Elements::Ch16},
4999                                                                    1 => {Elements::Ch32}
5000                                                                },
5001                                                                1 => {
5002                                                                    0 => {Elements::Ch64},
5003                                                                    1 => {}
5004                                                                }
5005                                                            },
5006                                                            1 => {}
5007                                                        },
5008                                                        1 => {}
5009                                                    }
5010                                                }
5011                                            },
5012                                            1 => {
5013                                                0 => {Elements::Some1},
5014                                                1 => {
5015                                                    0 => {
5016                                                        0 => {},
5017                                                        1 => {Elements::Some8}
5018                                                    },
5019                                                    1 => {
5020                                                        0 => {
5021                                                            0 => {
5022                                                                0 => {
5023                                                                    0 => {Elements::Some16},
5024                                                                    1 => {Elements::Some32}
5025                                                                },
5026                                                                1 => {
5027                                                                    0 => {Elements::Some64},
5028                                                                    1 => {}
5029                                                                }
5030                                                            },
5031                                                            1 => {}
5032                                                        },
5033                                                        1 => {}
5034                                                    }
5035                                                }
5036                                            }
5037                                        }
5038                                    },
5039                                    1 => {
5040                                        0 => {
5041                                            0 => {
5042                                                0 => {},
5043                                                1 => {
5044                                                    0 => {
5045                                                        0 => {},
5046                                                        1 => {Elements::All8}
5047                                                    },
5048                                                    1 => {
5049                                                        0 => {
5050                                                            0 => {
5051                                                                0 => {
5052                                                                    0 => {Elements::All16},
5053                                                                    1 => {Elements::All32}
5054                                                                },
5055                                                                1 => {
5056                                                                    0 => {Elements::All64},
5057                                                                    1 => {}
5058                                                                }
5059                                                            },
5060                                                            1 => {}
5061                                                        },
5062                                                        1 => {}
5063                                                    }
5064                                                }
5065                                            },
5066                                            1 => {
5067                                                0 => {Elements::Eq1},
5068                                                1 => {
5069                                                    0 => {
5070                                                        0 => {},
5071                                                        1 => {Elements::Eq8}
5072                                                    },
5073                                                    1 => {
5074                                                        0 => {
5075                                                            0 => {
5076                                                                0 => {
5077                                                                    0 => {Elements::Eq16},
5078                                                                    1 => {Elements::Eq32}
5079                                                                },
5080                                                                1 => {
5081                                                                    0 => {Elements::Eq64},
5082                                                                    1 => {}
5083                                                                }
5084                                                            },
5085                                                            1 => {
5086                                                                0 => {
5087                                                                    0 => {
5088                                                                        0 => {Elements::Eq256},
5089                                                                        1 => {}
5090                                                                    },
5091                                                                    1 => {}
5092                                                                },
5093                                                                1 => {}
5094                                                            }
5095                                                        },
5096                                                        1 => {}
5097                                                    }
5098                                                }
5099                                            }
5100                                        },
5101                                        1 => {
5102                                            0 => {
5103                                                0 => {
5104                                                    0 => {},
5105                                                    1 => {
5106                                                        0 => {
5107                                                            0 => {},
5108                                                            1 => {Elements::FullLeftShift8_1}
5109                                                        },
5110                                                        1 => {
5111                                                            0 => {
5112                                                                0 => {
5113                                                                    0 => {
5114                                                                        0 => {Elements::FullLeftShift16_1},
5115                                                                        1 => {Elements::FullLeftShift32_1}
5116                                                                    },
5117                                                                    1 => {
5118                                                                        0 => {Elements::FullLeftShift64_1},
5119                                                                        1 => {}
5120                                                                    }
5121                                                                },
5122                                                                1 => {}
5123                                                            },
5124                                                            1 => {}
5125                                                        }
5126                                                    }
5127                                                },
5128                                                1 => {
5129                                                    0 => {
5130                                                        0 => {
5131                                                            0 => {},
5132                                                            1 => {
5133                                                                0 => {
5134                                                                    0 => {Elements::FullLeftShift8_2},
5135                                                                    1 => {Elements::FullLeftShift16_2}
5136                                                                },
5137                                                                1 => {
5138                                                                    0 => {
5139                                                                        0 => {
5140                                                                            0 => {
5141                                                                                0 => {Elements::FullLeftShift32_2},
5142                                                                                1 => {Elements::FullLeftShift64_2}
5143                                                                            },
5144                                                                            1 => {}
5145                                                                        },
5146                                                                        1 => {}
5147                                                                    },
5148                                                                    1 => {}
5149                                                                }
5150                                                            }
5151                                                        },
5152                                                        1 => {
5153                                                            0 => {Elements::FullLeftShift8_4},
5154                                                            1 => {
5155                                                                0 => {
5156                                                                    0 => {Elements::FullLeftShift16_4},
5157                                                                    1 => {Elements::FullLeftShift32_4}
5158                                                                },
5159                                                                1 => {
5160                                                                    0 => {
5161                                                                        0 => {
5162                                                                            0 => {
5163                                                                                0 => {Elements::FullLeftShift64_4},
5164                                                                                1 => {}
5165                                                                            },
5166                                                                            1 => {}
5167                                                                        },
5168                                                                        1 => {}
5169                                                                    },
5170                                                                    1 => {}
5171                                                                }
5172                                                            }
5173                                                        }
5174                                                    },
5175                                                    1 => {
5176                                                        0 => {
5177                                                            0 => {
5178                                                                0 => {
5179                                                                    0 => {
5180                                                                        0 => {Elements::FullLeftShift16_8},
5181                                                                        1 => {
5182                                                                            0 => {
5183                                                                                0 => {Elements::FullLeftShift32_8},
5184                                                                                1 => {Elements::FullLeftShift64_8}
5185                                                                            },
5186                                                                            1 => {}
5187                                                                        }
5188                                                                    },
5189                                                                    1 => {
5190                                                                        0 => {Elements::FullLeftShift32_16},
5191                                                                        1 => {
5192                                                                            0 => {
5193                                                                                0 => {Elements::FullLeftShift64_16},
5194                                                                                1 => {}
5195                                                                            },
5196                                                                            1 => {}
5197                                                                        }
5198                                                                    }
5199                                                                },
5200                                                                1 => {
5201                                                                    0 => {
5202                                                                        0 => {Elements::FullLeftShift64_32},
5203                                                                        1 => {}
5204                                                                    },
5205                                                                    1 => {}
5206                                                                }
5207                                                            },
5208                                                            1 => {}
5209                                                        },
5210                                                        1 => {}
5211                                                    }
5212                                                }
5213                                            },
5214                                            1 => {
5215                                                0 => {
5216                                                    0 => {},
5217                                                    1 => {
5218                                                        0 => {
5219                                                            0 => {},
5220                                                            1 => {Elements::FullRightShift8_1}
5221                                                        },
5222                                                        1 => {
5223                                                            0 => {
5224                                                                0 => {
5225                                                                    0 => {
5226                                                                        0 => {Elements::FullRightShift16_1},
5227                                                                        1 => {Elements::FullRightShift32_1}
5228                                                                    },
5229                                                                    1 => {
5230                                                                        0 => {Elements::FullRightShift64_1},
5231                                                                        1 => {}
5232                                                                    }
5233                                                                },
5234                                                                1 => {}
5235                                                            },
5236                                                            1 => {}
5237                                                        }
5238                                                    }
5239                                                },
5240                                                1 => {
5241                                                    0 => {
5242                                                        0 => {
5243                                                            0 => {},
5244                                                            1 => {
5245                                                                0 => {
5246                                                                    0 => {Elements::FullRightShift8_2},
5247                                                                    1 => {Elements::FullRightShift16_2}
5248                                                                },
5249                                                                1 => {
5250                                                                    0 => {
5251                                                                        0 => {
5252                                                                            0 => {
5253                                                                                0 => {Elements::FullRightShift32_2},
5254                                                                                1 => {Elements::FullRightShift64_2}
5255                                                                            },
5256                                                                            1 => {}
5257                                                                        },
5258                                                                        1 => {}
5259                                                                    },
5260                                                                    1 => {}
5261                                                                }
5262                                                            }
5263                                                        },
5264                                                        1 => {
5265                                                            0 => {Elements::FullRightShift8_4},
5266                                                            1 => {
5267                                                                0 => {
5268                                                                    0 => {Elements::FullRightShift16_4},
5269                                                                    1 => {Elements::FullRightShift32_4}
5270                                                                },
5271                                                                1 => {
5272                                                                    0 => {
5273                                                                        0 => {
5274                                                                            0 => {
5275                                                                                0 => {Elements::FullRightShift64_4},
5276                                                                                1 => {}
5277                                                                            },
5278                                                                            1 => {}
5279                                                                        },
5280                                                                        1 => {}
5281                                                                    },
5282                                                                    1 => {}
5283                                                                }
5284                                                            }
5285                                                        }
5286                                                    },
5287                                                    1 => {
5288                                                        0 => {
5289                                                            0 => {
5290                                                                0 => {
5291                                                                    0 => {
5292                                                                        0 => {Elements::FullRightShift16_8},
5293                                                                        1 => {
5294                                                                            0 => {
5295                                                                                0 => {Elements::FullRightShift32_8},
5296                                                                                1 => {Elements::FullRightShift64_8}
5297                                                                            },
5298                                                                            1 => {}
5299                                                                        }
5300                                                                    },
5301                                                                    1 => {
5302                                                                        0 => {Elements::FullRightShift32_16},
5303                                                                        1 => {
5304                                                                            0 => {
5305                                                                                0 => {Elements::FullRightShift64_16},
5306                                                                                1 => {}
5307                                                                            },
5308                                                                            1 => {}
5309                                                                        }
5310                                                                    }
5311                                                                },
5312                                                                1 => {
5313                                                                    0 => {
5314                                                                        0 => {Elements::FullRightShift64_32},
5315                                                                        1 => {}
5316                                                                    },
5317                                                                    1 => {}
5318                                                                }
5319                                                            },
5320                                                            1 => {}
5321                                                        },
5322                                                        1 => {}
5323                                                    }
5324                                                }
5325                                            }
5326                                        }
5327                                    }
5328                                }
5329                            },
5330                            1 => {
5331                                0 => {
5332                                    0 => {
5333                                        0 => {
5334                                            0 => {
5335                                                0 => {
5336                                                    0 => {
5337                                                        0 => {
5338                                                            0 => {
5339                                                                0 => {
5340                                                                    0 => {},
5341                                                                    1 => {
5342                                                                        0 => {
5343                                                                            0 => {},
5344                                                                            1 => {Elements::Leftmost8_1}
5345                                                                        },
5346                                                                        1 => {
5347                                                                            0 => {
5348                                                                                0 => {
5349                                                                                    0 => {
5350                                                                                        0 => {Elements::Leftmost16_1},
5351                                                                                        1 => {Elements::Leftmost32_1}
5352                                                                                    },
5353                                                                                    1 => {
5354                                                                                        0 => {Elements::Leftmost64_1},
5355                                                                                        1 => {}
5356                                                                                    }
5357                                                                                },
5358                                                                                1 => {}
5359                                                                            },
5360                                                                            1 => {}
5361                                                                        }
5362                                                                    }
5363                                                                },
5364                                                                1 => {
5365                                                                    0 => {
5366                                                                        0 => {
5367                                                                            0 => {},
5368                                                                            1 => {
5369                                                                                0 => {
5370                                                                                    0 => {Elements::Leftmost8_2},
5371                                                                                    1 => {Elements::Leftmost16_2}
5372                                                                                },
5373                                                                                1 => {
5374                                                                                    0 => {
5375                                                                                        0 => {
5376                                                                                            0 => {
5377                                                                                                0 => {Elements::Leftmost32_2},
5378                                                                                                1 => {Elements::Leftmost64_2}
5379                                                                                            },
5380                                                                                            1 => {}
5381                                                                                        },
5382                                                                                        1 => {}
5383                                                                                    },
5384                                                                                    1 => {}
5385                                                                                }
5386                                                                            }
5387                                                                        },
5388                                                                        1 => {
5389                                                                            0 => {Elements::Leftmost8_4},
5390                                                                            1 => {
5391                                                                                0 => {
5392                                                                                    0 => {Elements::Leftmost16_4},
5393                                                                                    1 => {Elements::Leftmost32_4}
5394                                                                                },
5395                                                                                1 => {
5396                                                                                    0 => {
5397                                                                                        0 => {
5398                                                                                            0 => {
5399                                                                                                0 => {Elements::Leftmost64_4},
5400                                                                                                1 => {}
5401                                                                                            },
5402                                                                                            1 => {}
5403                                                                                        },
5404                                                                                        1 => {}
5405                                                                                    },
5406                                                                                    1 => {}
5407                                                                                }
5408                                                                            }
5409                                                                        }
5410                                                                    },
5411                                                                    1 => {
5412                                                                        0 => {
5413                                                                            0 => {
5414                                                                                0 => {
5415                                                                                    0 => {
5416                                                                                        0 => {Elements::Leftmost16_8},
5417                                                                                        1 => {
5418                                                                                            0 => {
5419                                                                                                0 => {Elements::Leftmost32_8},
5420                                                                                                1 => {Elements::Leftmost64_8}
5421                                                                                            },
5422                                                                                            1 => {}
5423                                                                                        }
5424                                                                                    },
5425                                                                                    1 => {
5426                                                                                        0 => {Elements::Leftmost32_16},
5427                                                                                        1 => {
5428                                                                                            0 => {
5429                                                                                                0 => {Elements::Leftmost64_16},
5430                                                                                                1 => {}
5431                                                                                            },
5432                                                                                            1 => {}
5433                                                                                        }
5434                                                                                    }
5435                                                                                },
5436                                                                                1 => {
5437                                                                                    0 => {
5438                                                                                        0 => {Elements::Leftmost64_32},
5439                                                                                        1 => {}
5440                                                                                    },
5441                                                                                    1 => {}
5442                                                                                }
5443                                                                            },
5444                                                                            1 => {}
5445                                                                        },
5446                                                                        1 => {}
5447                                                                    }
5448                                                                }
5449                                                            },
5450                                                            1 => {
5451                                                                0 => {
5452                                                                    0 => {},
5453                                                                    1 => {
5454                                                                        0 => {
5455                                                                            0 => {},
5456                                                                            1 => {Elements::Rightmost8_1}
5457                                                                        },
5458                                                                        1 => {
5459                                                                            0 => {
5460                                                                                0 => {
5461                                                                                    0 => {
5462                                                                                        0 => {Elements::Rightmost16_1},
5463                                                                                        1 => {Elements::Rightmost32_1}
5464                                                                                    },
5465                                                                                    1 => {
5466                                                                                        0 => {Elements::Rightmost64_1},
5467                                                                                        1 => {}
5468                                                                                    }
5469                                                                                },
5470                                                                                1 => {}
5471                                                                            },
5472                                                                            1 => {}
5473                                                                        }
5474                                                                    }
5475                                                                },
5476                                                                1 => {
5477                                                                    0 => {
5478                                                                        0 => {
5479                                                                            0 => {},
5480                                                                            1 => {
5481                                                                                0 => {
5482                                                                                    0 => {Elements::Rightmost8_2},
5483                                                                                    1 => {Elements::Rightmost16_2}
5484                                                                                },
5485                                                                                1 => {
5486                                                                                    0 => {
5487                                                                                        0 => {
5488                                                                                            0 => {
5489                                                                                                0 => {Elements::Rightmost32_2},
5490                                                                                                1 => {Elements::Rightmost64_2}
5491                                                                                            },
5492                                                                                            1 => {}
5493                                                                                        },
5494                                                                                        1 => {}
5495                                                                                    },
5496                                                                                    1 => {}
5497                                                                                }
5498                                                                            }
5499                                                                        },
5500                                                                        1 => {
5501                                                                            0 => {Elements::Rightmost8_4},
5502                                                                            1 => {
5503                                                                                0 => {
5504                                                                                    0 => {Elements::Rightmost16_4},
5505                                                                                    1 => {Elements::Rightmost32_4}
5506                                                                                },
5507                                                                                1 => {
5508                                                                                    0 => {
5509                                                                                        0 => {
5510                                                                                            0 => {
5511                                                                                                0 => {Elements::Rightmost64_4},
5512                                                                                                1 => {}
5513                                                                                            },
5514                                                                                            1 => {}
5515                                                                                        },
5516                                                                                        1 => {}
5517                                                                                    },
5518                                                                                    1 => {}
5519                                                                                }
5520                                                                            }
5521                                                                        }
5522                                                                    },
5523                                                                    1 => {
5524                                                                        0 => {
5525                                                                            0 => {
5526                                                                                0 => {
5527                                                                                    0 => {
5528                                                                                        0 => {Elements::Rightmost16_8},
5529                                                                                        1 => {
5530                                                                                            0 => {
5531                                                                                                0 => {Elements::Rightmost32_8},
5532                                                                                                1 => {Elements::Rightmost64_8}
5533                                                                                            },
5534                                                                                            1 => {}
5535                                                                                        }
5536                                                                                    },
5537                                                                                    1 => {
5538                                                                                        0 => {Elements::Rightmost32_16},
5539                                                                                        1 => {
5540                                                                                            0 => {
5541                                                                                                0 => {Elements::Rightmost64_16},
5542                                                                                                1 => {}
5543                                                                                            },
5544                                                                                            1 => {}
5545                                                                                        }
5546                                                                                    }
5547                                                                                },
5548                                                                                1 => {
5549                                                                                    0 => {
5550                                                                                        0 => {Elements::Rightmost64_32},
5551                                                                                        1 => {}
5552                                                                                    },
5553                                                                                    1 => {}
5554                                                                                }
5555                                                                            },
5556                                                                            1 => {}
5557                                                                        },
5558                                                                        1 => {}
5559                                                                    }
5560                                                                }
5561                                                            }
5562                                                        },
5563                                                        1 => {
5564                                                            0 => {
5565                                                                0 => {
5566                                                                    0 => {},
5567                                                                    1 => {
5568                                                                        0 => {
5569                                                                            0 => {},
5570                                                                            1 => {Elements::LeftPadLow1_8}
5571                                                                        },
5572                                                                        1 => {
5573                                                                            0 => {
5574                                                                                0 => {
5575                                                                                    0 => {
5576                                                                                        0 => {Elements::LeftPadLow1_16},
5577                                                                                        1 => {Elements::LeftPadLow1_32}
5578                                                                                    },
5579                                                                                    1 => {
5580                                                                                        0 => {Elements::LeftPadLow1_64},
5581                                                                                        1 => {}
5582                                                                                    }
5583                                                                                },
5584                                                                                1 => {}
5585                                                                            },
5586                                                                            1 => {}
5587                                                                        }
5588                                                                    }
5589                                                                },
5590                                                                1 => {
5591                                                                    0 => {},
5592                                                                    1 => {
5593                                                                        0 => {
5594                                                                            0 => {
5595                                                                                0 => {
5596                                                                                    0 => {
5597                                                                                        0 => {Elements::LeftPadLow8_16},
5598                                                                                        1 => {
5599                                                                                            0 => {
5600                                                                                                0 => {Elements::LeftPadLow8_32},
5601                                                                                                1 => {Elements::LeftPadLow8_64}
5602                                                                                            },
5603                                                                                            1 => {}
5604                                                                                        }
5605                                                                                    },
5606                                                                                    1 => {
5607                                                                                        0 => {Elements::LeftPadLow16_32},
5608                                                                                        1 => {
5609                                                                                            0 => {
5610                                                                                                0 => {Elements::LeftPadLow16_64},
5611                                                                                                1 => {}
5612                                                                                            },
5613                                                                                            1 => {}
5614                                                                                        }
5615                                                                                    }
5616                                                                                },
5617                                                                                1 => {
5618                                                                                    0 => {
5619                                                                                        0 => {Elements::LeftPadLow32_64},
5620                                                                                        1 => {}
5621                                                                                    },
5622                                                                                    1 => {}
5623                                                                                }
5624                                                                            },
5625                                                                            1 => {}
5626                                                                        },
5627                                                                        1 => {}
5628                                                                    }
5629                                                                }
5630                                                            },
5631                                                            1 => {
5632                                                                0 => {
5633                                                                    0 => {},
5634                                                                    1 => {
5635                                                                        0 => {
5636                                                                            0 => {},
5637                                                                            1 => {Elements::LeftPadHigh1_8}
5638                                                                        },
5639                                                                        1 => {
5640                                                                            0 => {
5641                                                                                0 => {
5642                                                                                    0 => {
5643                                                                                        0 => {Elements::LeftPadHigh1_16},
5644                                                                                        1 => {Elements::LeftPadHigh1_32}
5645                                                                                    },
5646                                                                                    1 => {
5647                                                                                        0 => {Elements::LeftPadHigh1_64},
5648                                                                                        1 => {}
5649                                                                                    }
5650                                                                                },
5651                                                                                1 => {}
5652                                                                            },
5653                                                                            1 => {}
5654                                                                        }
5655                                                                    }
5656                                                                },
5657                                                                1 => {
5658                                                                    0 => {},
5659                                                                    1 => {
5660                                                                        0 => {
5661                                                                            0 => {
5662                                                                                0 => {
5663                                                                                    0 => {
5664                                                                                        0 => {Elements::LeftPadHigh8_16},
5665                                                                                        1 => {
5666                                                                                            0 => {
5667                                                                                                0 => {Elements::LeftPadHigh8_32},
5668                                                                                                1 => {Elements::LeftPadHigh8_64}
5669                                                                                            },
5670                                                                                            1 => {}
5671                                                                                        }
5672                                                                                    },
5673                                                                                    1 => {
5674                                                                                        0 => {Elements::LeftPadHigh16_32},
5675                                                                                        1 => {
5676                                                                                            0 => {
5677                                                                                                0 => {Elements::LeftPadHigh16_64},
5678                                                                                                1 => {}
5679                                                                                            },
5680                                                                                            1 => {}
5681                                                                                        }
5682                                                                                    }
5683                                                                                },
5684                                                                                1 => {
5685                                                                                    0 => {
5686                                                                                        0 => {Elements::LeftPadHigh32_64},
5687                                                                                        1 => {}
5688                                                                                    },
5689                                                                                    1 => {}
5690                                                                                }
5691                                                                            },
5692                                                                            1 => {}
5693                                                                        },
5694                                                                        1 => {}
5695                                                                    }
5696                                                                }
5697                                                            }
5698                                                        }
5699                                                    },
5700                                                    1 => {
5701                                                        0 => {
5702                                                            0 => {
5703                                                                0 => {
5704                                                                    0 => {},
5705                                                                    1 => {
5706                                                                        0 => {
5707                                                                            0 => {},
5708                                                                            1 => {Elements::LeftExtend1_8}
5709                                                                        },
5710                                                                        1 => {
5711                                                                            0 => {
5712                                                                                0 => {
5713                                                                                    0 => {
5714                                                                                        0 => {Elements::LeftExtend1_16},
5715                                                                                        1 => {Elements::LeftExtend1_32}
5716                                                                                    },
5717                                                                                    1 => {
5718                                                                                        0 => {Elements::LeftExtend1_64},
5719                                                                                        1 => {}
5720                                                                                    }
5721                                                                                },
5722                                                                                1 => {}
5723                                                                            },
5724                                                                            1 => {}
5725                                                                        }
5726                                                                    }
5727                                                                },
5728                                                                1 => {
5729                                                                    0 => {},
5730                                                                    1 => {
5731                                                                        0 => {
5732                                                                            0 => {
5733                                                                                0 => {
5734                                                                                    0 => {
5735                                                                                        0 => {Elements::LeftExtend8_16},
5736                                                                                        1 => {
5737                                                                                            0 => {
5738                                                                                                0 => {Elements::LeftExtend8_32},
5739                                                                                                1 => {Elements::LeftExtend8_64}
5740                                                                                            },
5741                                                                                            1 => {}
5742                                                                                        }
5743                                                                                    },
5744                                                                                    1 => {
5745                                                                                        0 => {Elements::LeftExtend16_32},
5746                                                                                        1 => {
5747                                                                                            0 => {
5748                                                                                                0 => {Elements::LeftExtend16_64},
5749                                                                                                1 => {}
5750                                                                                            },
5751                                                                                            1 => {}
5752                                                                                        }
5753                                                                                    }
5754                                                                                },
5755                                                                                1 => {
5756                                                                                    0 => {
5757                                                                                        0 => {Elements::LeftExtend32_64},
5758                                                                                        1 => {}
5759                                                                                    },
5760                                                                                    1 => {}
5761                                                                                }
5762                                                                            },
5763                                                                            1 => {}
5764                                                                        },
5765                                                                        1 => {}
5766                                                                    }
5767                                                                }
5768                                                            },
5769                                                            1 => {
5770                                                                0 => {
5771                                                                    0 => {},
5772                                                                    1 => {
5773                                                                        0 => {
5774                                                                            0 => {},
5775                                                                            1 => {Elements::RightPadLow1_8}
5776                                                                        },
5777                                                                        1 => {
5778                                                                            0 => {
5779                                                                                0 => {
5780                                                                                    0 => {
5781                                                                                        0 => {Elements::RightPadLow1_16},
5782                                                                                        1 => {Elements::RightPadLow1_32}
5783                                                                                    },
5784                                                                                    1 => {
5785                                                                                        0 => {Elements::RightPadLow1_64},
5786                                                                                        1 => {}
5787                                                                                    }
5788                                                                                },
5789                                                                                1 => {}
5790                                                                            },
5791                                                                            1 => {}
5792                                                                        }
5793                                                                    }
5794                                                                },
5795                                                                1 => {
5796                                                                    0 => {},
5797                                                                    1 => {
5798                                                                        0 => {
5799                                                                            0 => {
5800                                                                                0 => {
5801                                                                                    0 => {
5802                                                                                        0 => {Elements::RightPadLow8_16},
5803                                                                                        1 => {
5804                                                                                            0 => {
5805                                                                                                0 => {Elements::RightPadLow8_32},
5806                                                                                                1 => {Elements::RightPadLow8_64}
5807                                                                                            },
5808                                                                                            1 => {}
5809                                                                                        }
5810                                                                                    },
5811                                                                                    1 => {
5812                                                                                        0 => {Elements::RightPadLow16_32},
5813                                                                                        1 => {
5814                                                                                            0 => {
5815                                                                                                0 => {Elements::RightPadLow16_64},
5816                                                                                                1 => {}
5817                                                                                            },
5818                                                                                            1 => {}
5819                                                                                        }
5820                                                                                    }
5821                                                                                },
5822                                                                                1 => {
5823                                                                                    0 => {
5824                                                                                        0 => {Elements::RightPadLow32_64},
5825                                                                                        1 => {}
5826                                                                                    },
5827                                                                                    1 => {}
5828                                                                                }
5829                                                                            },
5830                                                                            1 => {}
5831                                                                        },
5832                                                                        1 => {}
5833                                                                    }
5834                                                                }
5835                                                            }
5836                                                        },
5837                                                        1 => {
5838                                                            0 => {
5839                                                                0 => {
5840                                                                    0 => {},
5841                                                                    1 => {
5842                                                                        0 => {
5843                                                                            0 => {},
5844                                                                            1 => {Elements::RightPadHigh1_8}
5845                                                                        },
5846                                                                        1 => {
5847                                                                            0 => {
5848                                                                                0 => {
5849                                                                                    0 => {
5850                                                                                        0 => {Elements::RightPadHigh1_16},
5851                                                                                        1 => {Elements::RightPadHigh1_32}
5852                                                                                    },
5853                                                                                    1 => {
5854                                                                                        0 => {Elements::RightPadHigh1_64},
5855                                                                                        1 => {}
5856                                                                                    }
5857                                                                                },
5858                                                                                1 => {}
5859                                                                            },
5860                                                                            1 => {}
5861                                                                        }
5862                                                                    }
5863                                                                },
5864                                                                1 => {
5865                                                                    0 => {},
5866                                                                    1 => {
5867                                                                        0 => {
5868                                                                            0 => {
5869                                                                                0 => {
5870                                                                                    0 => {
5871                                                                                        0 => {Elements::RightPadHigh8_16},
5872                                                                                        1 => {
5873                                                                                            0 => {
5874                                                                                                0 => {Elements::RightPadHigh8_32},
5875                                                                                                1 => {Elements::RightPadHigh8_64}
5876                                                                                            },
5877                                                                                            1 => {}
5878                                                                                        }
5879                                                                                    },
5880                                                                                    1 => {
5881                                                                                        0 => {Elements::RightPadHigh16_32},
5882                                                                                        1 => {
5883                                                                                            0 => {
5884                                                                                                0 => {Elements::RightPadHigh16_64},
5885                                                                                                1 => {}
5886                                                                                            },
5887                                                                                            1 => {}
5888                                                                                        }
5889                                                                                    }
5890                                                                                },
5891                                                                                1 => {
5892                                                                                    0 => {
5893                                                                                        0 => {Elements::RightPadHigh32_64},
5894                                                                                        1 => {}
5895                                                                                    },
5896                                                                                    1 => {}
5897                                                                                }
5898                                                                            },
5899                                                                            1 => {}
5900                                                                        },
5901                                                                        1 => {}
5902                                                                    }
5903                                                                }
5904                                                            },
5905                                                            1 => {
5906                                                                0 => {},
5907                                                                1 => {
5908                                                                    0 => {},
5909                                                                    1 => {
5910                                                                        0 => {
5911                                                                            0 => {
5912                                                                                0 => {
5913                                                                                    0 => {
5914                                                                                        0 => {Elements::RightExtend8_16},
5915                                                                                        1 => {
5916                                                                                            0 => {
5917                                                                                                0 => {Elements::RightExtend8_32},
5918                                                                                                1 => {Elements::RightExtend8_64}
5919                                                                                            },
5920                                                                                            1 => {}
5921                                                                                        }
5922                                                                                    },
5923                                                                                    1 => {
5924                                                                                        0 => {Elements::RightExtend16_32},
5925                                                                                        1 => {
5926                                                                                            0 => {
5927                                                                                                0 => {Elements::RightExtend16_64},
5928                                                                                                1 => {}
5929                                                                                            },
5930                                                                                            1 => {}
5931                                                                                        }
5932                                                                                    }
5933                                                                                },
5934                                                                                1 => {
5935                                                                                    0 => {
5936                                                                                        0 => {Elements::RightExtend32_64},
5937                                                                                        1 => {}
5938                                                                                    },
5939                                                                                    1 => {}
5940                                                                                }
5941                                                                            },
5942                                                                            1 => {}
5943                                                                        },
5944                                                                        1 => {}
5945                                                                    }
5946                                                                }
5947                                                            }
5948                                                        }
5949                                                    }
5950                                                },
5951                                                1 => {
5952                                                    0 => {
5953                                                        0 => {
5954                                                            0 => {
5955                                                                0 => {},
5956                                                                1 => {
5957                                                                    0 => {
5958                                                                        0 => {},
5959                                                                        1 => {Elements::LeftShiftWith8}
5960                                                                    },
5961                                                                    1 => {
5962                                                                        0 => {
5963                                                                            0 => {
5964                                                                                0 => {
5965                                                                                    0 => {Elements::LeftShiftWith16},
5966                                                                                    1 => {Elements::LeftShiftWith32}
5967                                                                                },
5968                                                                                1 => {
5969                                                                                    0 => {Elements::LeftShiftWith64},
5970                                                                                    1 => {}
5971                                                                                }
5972                                                                            },
5973                                                                            1 => {}
5974                                                                        },
5975                                                                        1 => {}
5976                                                                    }
5977                                                                }
5978                                                            },
5979                                                            1 => {
5980                                                                0 => {},
5981                                                                1 => {
5982                                                                    0 => {
5983                                                                        0 => {},
5984                                                                        1 => {Elements::RightShiftWith8}
5985                                                                    },
5986                                                                    1 => {
5987                                                                        0 => {
5988                                                                            0 => {
5989                                                                                0 => {
5990                                                                                    0 => {Elements::RightShiftWith16},
5991                                                                                    1 => {Elements::RightShiftWith32}
5992                                                                                },
5993                                                                                1 => {
5994                                                                                    0 => {Elements::RightShiftWith64},
5995                                                                                    1 => {}
5996                                                                                }
5997                                                                            },
5998                                                                            1 => {}
5999                                                                        },
6000                                                                        1 => {}
6001                                                                    }
6002                                                                }
6003                                                            }
6004                                                        },
6005                                                        1 => {
6006                                                            0 => {
6007                                                                0 => {},
6008                                                                1 => {
6009                                                                    0 => {
6010                                                                        0 => {},
6011                                                                        1 => {Elements::LeftShift8}
6012                                                                    },
6013                                                                    1 => {
6014                                                                        0 => {
6015                                                                            0 => {
6016                                                                                0 => {
6017                                                                                    0 => {Elements::LeftShift16},
6018                                                                                    1 => {Elements::LeftShift32}
6019                                                                                },
6020                                                                                1 => {
6021                                                                                    0 => {Elements::LeftShift64},
6022                                                                                    1 => {}
6023                                                                                }
6024                                                                            },
6025                                                                            1 => {}
6026                                                                        },
6027                                                                        1 => {}
6028                                                                    }
6029                                                                }
6030                                                            },
6031                                                            1 => {
6032                                                                0 => {},
6033                                                                1 => {
6034                                                                    0 => {
6035                                                                        0 => {},
6036                                                                        1 => {Elements::RightShift8}
6037                                                                    },
6038                                                                    1 => {
6039                                                                        0 => {
6040                                                                            0 => {
6041                                                                                0 => {
6042                                                                                    0 => {Elements::RightShift16},
6043                                                                                    1 => {Elements::RightShift32}
6044                                                                                },
6045                                                                                1 => {
6046                                                                                    0 => {Elements::RightShift64},
6047                                                                                    1 => {}
6048                                                                                }
6049                                                                            },
6050                                                                            1 => {}
6051                                                                        },
6052                                                                        1 => {}
6053                                                                    }
6054                                                                }
6055                                                            }
6056                                                        }
6057                                                    },
6058                                                    1 => {
6059                                                        0 => {
6060                                                            0 => {
6061                                                                0 => {},
6062                                                                1 => {
6063                                                                    0 => {
6064                                                                        0 => {},
6065                                                                        1 => {Elements::LeftRotate8}
6066                                                                    },
6067                                                                    1 => {
6068                                                                        0 => {
6069                                                                            0 => {
6070                                                                                0 => {
6071                                                                                    0 => {Elements::LeftRotate16},
6072                                                                                    1 => {Elements::LeftRotate32}
6073                                                                                },
6074                                                                                1 => {
6075                                                                                    0 => {Elements::LeftRotate64},
6076                                                                                    1 => {}
6077                                                                                }
6078                                                                            },
6079                                                                            1 => {}
6080                                                                        },
6081                                                                        1 => {}
6082                                                                    }
6083                                                                }
6084                                                            },
6085                                                            1 => {
6086                                                                0 => {},
6087                                                                1 => {
6088                                                                    0 => {
6089                                                                        0 => {},
6090                                                                        1 => {Elements::RightRotate8}
6091                                                                    },
6092                                                                    1 => {
6093                                                                        0 => {
6094                                                                            0 => {
6095                                                                                0 => {
6096                                                                                    0 => {Elements::RightRotate16},
6097                                                                                    1 => {Elements::RightRotate32}
6098                                                                                },
6099                                                                                1 => {
6100                                                                                    0 => {Elements::RightRotate64},
6101                                                                                    1 => {}
6102                                                                                }
6103                                                                            },
6104                                                                            1 => {}
6105                                                                        },
6106                                                                        1 => {}
6107                                                                    }
6108                                                                }
6109                                                            }
6110                                                        },
6111                                                        1 => {}
6112                                                    }
6113                                                }
6114                                            },
6115                                            1 => {}
6116                                        },
6117                                        1 => {}
6118                                    },
6119                                    1 => {}
6120                                },
6121                                1 => {}
6122                            }
6123                        }
6124                    }
6125                },
6126                1 => {
6127                    0 => {
6128                        0 => {
6129                            0 => {
6130                                0 => {},
6131                                1 => {
6132                                    0 => {
6133                                        0 => {},
6134                                        1 => {Elements::One8}
6135                                    },
6136                                    1 => {
6137                                        0 => {
6138                                            0 => {
6139                                                0 => {
6140                                                    0 => {Elements::One16},
6141                                                    1 => {Elements::One32}
6142                                                },
6143                                                1 => {
6144                                                    0 => {Elements::One64},
6145                                                    1 => {}
6146                                                }
6147                                            },
6148                                            1 => {}
6149                                        },
6150                                        1 => {}
6151                                    }
6152                                }
6153                            },
6154                            1 => {
6155                                0 => {
6156                                    0 => {
6157                                        0 => {},
6158                                        1 => {
6159                                            0 => {
6160                                                0 => {},
6161                                                1 => {Elements::FullAdd8}
6162                                            },
6163                                            1 => {
6164                                                0 => {
6165                                                    0 => {
6166                                                        0 => {
6167                                                            0 => {Elements::FullAdd16},
6168                                                            1 => {Elements::FullAdd32}
6169                                                        },
6170                                                        1 => {
6171                                                            0 => {Elements::FullAdd64},
6172                                                            1 => {}
6173                                                        }
6174                                                    },
6175                                                    1 => {}
6176                                                },
6177                                                1 => {}
6178                                            }
6179                                        }
6180                                    },
6181                                    1 => {
6182                                        0 => {},
6183                                        1 => {
6184                                            0 => {
6185                                                0 => {},
6186                                                1 => {Elements::Add8}
6187                                            },
6188                                            1 => {
6189                                                0 => {
6190                                                    0 => {
6191                                                        0 => {
6192                                                            0 => {Elements::Add16},
6193                                                            1 => {Elements::Add32}
6194                                                        },
6195                                                        1 => {
6196                                                            0 => {Elements::Add64},
6197                                                            1 => {}
6198                                                        }
6199                                                    },
6200                                                    1 => {}
6201                                                },
6202                                                1 => {}
6203                                            }
6204                                        }
6205                                    }
6206                                },
6207                                1 => {
6208                                    0 => {
6209                                        0 => {
6210                                            0 => {
6211                                                0 => {
6212                                                    0 => {},
6213                                                    1 => {
6214                                                        0 => {
6215                                                            0 => {},
6216                                                            1 => {Elements::FullIncrement8}
6217                                                        },
6218                                                        1 => {
6219                                                            0 => {
6220                                                                0 => {
6221                                                                    0 => {
6222                                                                        0 => {Elements::FullIncrement16},
6223                                                                        1 => {Elements::FullIncrement32}
6224                                                                    },
6225                                                                    1 => {
6226                                                                        0 => {Elements::FullIncrement64},
6227                                                                        1 => {}
6228                                                                    }
6229                                                                },
6230                                                                1 => {}
6231                                                            },
6232                                                            1 => {}
6233                                                        }
6234                                                    }
6235                                                },
6236                                                1 => {
6237                                                    0 => {},
6238                                                    1 => {
6239                                                        0 => {
6240                                                            0 => {},
6241                                                            1 => {Elements::Increment8}
6242                                                        },
6243                                                        1 => {
6244                                                            0 => {
6245                                                                0 => {
6246                                                                    0 => {
6247                                                                        0 => {Elements::Increment16},
6248                                                                        1 => {Elements::Increment32}
6249                                                                    },
6250                                                                    1 => {
6251                                                                        0 => {Elements::Increment64},
6252                                                                        1 => {}
6253                                                                    }
6254                                                                },
6255                                                                1 => {}
6256                                                            },
6257                                                            1 => {}
6258                                                        }
6259                                                    }
6260                                                }
6261                                            },
6262                                            1 => {
6263                                                0 => {},
6264                                                1 => {
6265                                                    0 => {},
6266                                                    1 => {
6267                                                        0 => {
6268                                                            0 => {},
6269                                                            1 => {Elements::FullSubtract8}
6270                                                        },
6271                                                        1 => {
6272                                                            0 => {
6273                                                                0 => {
6274                                                                    0 => {
6275                                                                        0 => {Elements::FullSubtract16},
6276                                                                        1 => {Elements::FullSubtract32}
6277                                                                    },
6278                                                                    1 => {
6279                                                                        0 => {Elements::FullSubtract64},
6280                                                                        1 => {}
6281                                                                    }
6282                                                                },
6283                                                                1 => {}
6284                                                            },
6285                                                            1 => {}
6286                                                        }
6287                                                    }
6288                                                }
6289                                            }
6290                                        },
6291                                        1 => {
6292                                            0 => {
6293                                                0 => {
6294                                                    0 => {
6295                                                        0 => {},
6296                                                        1 => {
6297                                                            0 => {
6298                                                                0 => {},
6299                                                                1 => {Elements::Subtract8}
6300                                                            },
6301                                                            1 => {
6302                                                                0 => {
6303                                                                    0 => {
6304                                                                        0 => {
6305                                                                            0 => {Elements::Subtract16},
6306                                                                            1 => {Elements::Subtract32}
6307                                                                        },
6308                                                                        1 => {
6309                                                                            0 => {Elements::Subtract64},
6310                                                                            1 => {}
6311                                                                        }
6312                                                                    },
6313                                                                    1 => {}
6314                                                                },
6315                                                                1 => {}
6316                                                            }
6317                                                        }
6318                                                    },
6319                                                    1 => {
6320                                                        0 => {},
6321                                                        1 => {
6322                                                            0 => {
6323                                                                0 => {},
6324                                                                1 => {Elements::Negate8}
6325                                                            },
6326                                                            1 => {
6327                                                                0 => {
6328                                                                    0 => {
6329                                                                        0 => {
6330                                                                            0 => {Elements::Negate16},
6331                                                                            1 => {Elements::Negate32}
6332                                                                        },
6333                                                                        1 => {
6334                                                                            0 => {Elements::Negate64},
6335                                                                            1 => {}
6336                                                                        }
6337                                                                    },
6338                                                                    1 => {}
6339                                                                },
6340                                                                1 => {}
6341                                                            }
6342                                                        }
6343                                                    }
6344                                                },
6345                                                1 => {
6346                                                    0 => {
6347                                                        0 => {},
6348                                                        1 => {
6349                                                            0 => {
6350                                                                0 => {},
6351                                                                1 => {Elements::FullDecrement8}
6352                                                            },
6353                                                            1 => {
6354                                                                0 => {
6355                                                                    0 => {
6356                                                                        0 => {
6357                                                                            0 => {Elements::FullDecrement16},
6358                                                                            1 => {Elements::FullDecrement32}
6359                                                                        },
6360                                                                        1 => {
6361                                                                            0 => {Elements::FullDecrement64},
6362                                                                            1 => {}
6363                                                                        }
6364                                                                    },
6365                                                                    1 => {}
6366                                                                },
6367                                                                1 => {}
6368                                                            }
6369                                                        }
6370                                                    },
6371                                                    1 => {
6372                                                        0 => {},
6373                                                        1 => {
6374                                                            0 => {
6375                                                                0 => {},
6376                                                                1 => {Elements::Decrement8}
6377                                                            },
6378                                                            1 => {
6379                                                                0 => {
6380                                                                    0 => {
6381                                                                        0 => {
6382                                                                            0 => {Elements::Decrement16},
6383                                                                            1 => {Elements::Decrement32}
6384                                                                        },
6385                                                                        1 => {
6386                                                                            0 => {Elements::Decrement64},
6387                                                                            1 => {}
6388                                                                        }
6389                                                                    },
6390                                                                    1 => {}
6391                                                                },
6392                                                                1 => {}
6393                                                            }
6394                                                        }
6395                                                    }
6396                                                }
6397                                            },
6398                                            1 => {
6399                                                0 => {
6400                                                    0 => {
6401                                                        0 => {},
6402                                                        1 => {
6403                                                            0 => {
6404                                                                0 => {},
6405                                                                1 => {Elements::FullMultiply8}
6406                                                            },
6407                                                            1 => {
6408                                                                0 => {
6409                                                                    0 => {
6410                                                                        0 => {
6411                                                                            0 => {Elements::FullMultiply16},
6412                                                                            1 => {Elements::FullMultiply32}
6413                                                                        },
6414                                                                        1 => {
6415                                                                            0 => {Elements::FullMultiply64},
6416                                                                            1 => {}
6417                                                                        }
6418                                                                    },
6419                                                                    1 => {}
6420                                                                },
6421                                                                1 => {}
6422                                                            }
6423                                                        }
6424                                                    },
6425                                                    1 => {
6426                                                        0 => {},
6427                                                        1 => {
6428                                                            0 => {
6429                                                                0 => {},
6430                                                                1 => {Elements::Multiply8}
6431                                                            },
6432                                                            1 => {
6433                                                                0 => {
6434                                                                    0 => {
6435                                                                        0 => {
6436                                                                            0 => {Elements::Multiply16},
6437                                                                            1 => {Elements::Multiply32}
6438                                                                        },
6439                                                                        1 => {
6440                                                                            0 => {Elements::Multiply64},
6441                                                                            1 => {}
6442                                                                        }
6443                                                                    },
6444                                                                    1 => {}
6445                                                                },
6446                                                                1 => {}
6447                                                            }
6448                                                        }
6449                                                    }
6450                                                },
6451                                                1 => {
6452                                                    0 => {
6453                                                        0 => {},
6454                                                        1 => {
6455                                                            0 => {
6456                                                                0 => {},
6457                                                                1 => {Elements::IsZero8}
6458                                                            },
6459                                                            1 => {
6460                                                                0 => {
6461                                                                    0 => {
6462                                                                        0 => {
6463                                                                            0 => {Elements::IsZero16},
6464                                                                            1 => {Elements::IsZero32}
6465                                                                        },
6466                                                                        1 => {
6467                                                                            0 => {Elements::IsZero64},
6468                                                                            1 => {}
6469                                                                        }
6470                                                                    },
6471                                                                    1 => {}
6472                                                                },
6473                                                                1 => {}
6474                                                            }
6475                                                        }
6476                                                    },
6477                                                    1 => {
6478                                                        0 => {},
6479                                                        1 => {
6480                                                            0 => {
6481                                                                0 => {},
6482                                                                1 => {Elements::IsOne8}
6483                                                            },
6484                                                            1 => {
6485                                                                0 => {
6486                                                                    0 => {
6487                                                                        0 => {
6488                                                                            0 => {Elements::IsOne16},
6489                                                                            1 => {Elements::IsOne32}
6490                                                                        },
6491                                                                        1 => {
6492                                                                            0 => {Elements::IsOne64},
6493                                                                            1 => {}
6494                                                                        }
6495                                                                    },
6496                                                                    1 => {}
6497                                                                },
6498                                                                1 => {}
6499                                                            }
6500                                                        }
6501                                                    }
6502                                                }
6503                                            }
6504                                        }
6505                                    },
6506                                    1 => {
6507                                        0 => {
6508                                            0 => {
6509                                                0 => {
6510                                                    0 => {
6511                                                        0 => {
6512                                                            0 => {
6513                                                                0 => {
6514                                                                    0 => {
6515                                                                        0 => {},
6516                                                                        1 => {
6517                                                                            0 => {
6518                                                                                0 => {},
6519                                                                                1 => {Elements::Le8}
6520                                                                            },
6521                                                                            1 => {
6522                                                                                0 => {
6523                                                                                    0 => {
6524                                                                                        0 => {
6525                                                                                            0 => {Elements::Le16},
6526                                                                                            1 => {Elements::Le32}
6527                                                                                        },
6528                                                                                        1 => {
6529                                                                                            0 => {Elements::Le64},
6530                                                                                            1 => {}
6531                                                                                        }
6532                                                                                    },
6533                                                                                    1 => {}
6534                                                                                },
6535                                                                                1 => {}
6536                                                                            }
6537                                                                        }
6538                                                                    },
6539                                                                    1 => {
6540                                                                        0 => {},
6541                                                                        1 => {
6542                                                                            0 => {
6543                                                                                0 => {},
6544                                                                                1 => {Elements::Lt8}
6545                                                                            },
6546                                                                            1 => {
6547                                                                                0 => {
6548                                                                                    0 => {
6549                                                                                        0 => {
6550                                                                                            0 => {Elements::Lt16},
6551                                                                                            1 => {Elements::Lt32}
6552                                                                                        },
6553                                                                                        1 => {
6554                                                                                            0 => {Elements::Lt64},
6555                                                                                            1 => {}
6556                                                                                        }
6557                                                                                    },
6558                                                                                    1 => {}
6559                                                                                },
6560                                                                                1 => {}
6561                                                                            }
6562                                                                        }
6563                                                                    }
6564                                                                },
6565                                                                1 => {
6566                                                                    0 => {
6567                                                                        0 => {},
6568                                                                        1 => {
6569                                                                            0 => {
6570                                                                                0 => {},
6571                                                                                1 => {Elements::Min8}
6572                                                                            },
6573                                                                            1 => {
6574                                                                                0 => {
6575                                                                                    0 => {
6576                                                                                        0 => {
6577                                                                                            0 => {Elements::Min16},
6578                                                                                            1 => {Elements::Min32}
6579                                                                                        },
6580                                                                                        1 => {
6581                                                                                            0 => {Elements::Min64},
6582                                                                                            1 => {}
6583                                                                                        }
6584                                                                                    },
6585                                                                                    1 => {}
6586                                                                                },
6587                                                                                1 => {}
6588                                                                            }
6589                                                                        }
6590                                                                    },
6591                                                                    1 => {
6592                                                                        0 => {},
6593                                                                        1 => {
6594                                                                            0 => {
6595                                                                                0 => {},
6596                                                                                1 => {Elements::Max8}
6597                                                                            },
6598                                                                            1 => {
6599                                                                                0 => {
6600                                                                                    0 => {
6601                                                                                        0 => {
6602                                                                                            0 => {Elements::Max16},
6603                                                                                            1 => {Elements::Max32}
6604                                                                                        },
6605                                                                                        1 => {
6606                                                                                            0 => {Elements::Max64},
6607                                                                                            1 => {}
6608                                                                                        }
6609                                                                                    },
6610                                                                                    1 => {}
6611                                                                                },
6612                                                                                1 => {}
6613                                                                            }
6614                                                                        }
6615                                                                    }
6616                                                                }
6617                                                            },
6618                                                            1 => {
6619                                                                0 => {
6620                                                                    0 => {
6621                                                                        0 => {},
6622                                                                        1 => {
6623                                                                            0 => {
6624                                                                                0 => {},
6625                                                                                1 => {Elements::Median8}
6626                                                                            },
6627                                                                            1 => {
6628                                                                                0 => {
6629                                                                                    0 => {
6630                                                                                        0 => {
6631                                                                                            0 => {Elements::Median16},
6632                                                                                            1 => {Elements::Median32}
6633                                                                                        },
6634                                                                                        1 => {
6635                                                                                            0 => {Elements::Median64},
6636                                                                                            1 => {}
6637                                                                                        }
6638                                                                                    },
6639                                                                                    1 => {}
6640                                                                                },
6641                                                                                1 => {}
6642                                                                            }
6643                                                                        }
6644                                                                    },
6645                                                                    1 => {
6646                                                                        0 => {},
6647                                                                        1 => {
6648                                                                            0 => {},
6649                                                                            1 => {
6650                                                                                0 => {
6651                                                                                    0 => {
6652                                                                                        0 => {},
6653                                                                                        1 => {
6654                                                                                            0 => {Elements::DivMod128_64},
6655                                                                                            1 => {}
6656                                                                                        }
6657                                                                                    },
6658                                                                                    1 => {}
6659                                                                                },
6660                                                                                1 => {}
6661                                                                            }
6662                                                                        }
6663                                                                    }
6664                                                                },
6665                                                                1 => {
6666                                                                    0 => {
6667                                                                        0 => {},
6668                                                                        1 => {
6669                                                                            0 => {
6670                                                                                0 => {},
6671                                                                                1 => {Elements::DivMod8}
6672                                                                            },
6673                                                                            1 => {
6674                                                                                0 => {
6675                                                                                    0 => {
6676                                                                                        0 => {
6677                                                                                            0 => {Elements::DivMod16},
6678                                                                                            1 => {Elements::DivMod32}
6679                                                                                        },
6680                                                                                        1 => {
6681                                                                                            0 => {Elements::DivMod64},
6682                                                                                            1 => {}
6683                                                                                        }
6684                                                                                    },
6685                                                                                    1 => {}
6686                                                                                },
6687                                                                                1 => {}
6688                                                                            }
6689                                                                        }
6690                                                                    },
6691                                                                    1 => {
6692                                                                        0 => {},
6693                                                                        1 => {
6694                                                                            0 => {
6695                                                                                0 => {},
6696                                                                                1 => {Elements::Divide8}
6697                                                                            },
6698                                                                            1 => {
6699                                                                                0 => {
6700                                                                                    0 => {
6701                                                                                        0 => {
6702                                                                                            0 => {Elements::Divide16},
6703                                                                                            1 => {Elements::Divide32}
6704                                                                                        },
6705                                                                                        1 => {
6706                                                                                            0 => {Elements::Divide64},
6707                                                                                            1 => {}
6708                                                                                        }
6709                                                                                    },
6710                                                                                    1 => {}
6711                                                                                },
6712                                                                                1 => {}
6713                                                                            }
6714                                                                        }
6715                                                                    }
6716                                                                }
6717                                                            }
6718                                                        },
6719                                                        1 => {
6720                                                            0 => {
6721                                                                0 => {
6722                                                                    0 => {
6723                                                                        0 => {},
6724                                                                        1 => {
6725                                                                            0 => {
6726                                                                                0 => {},
6727                                                                                1 => {Elements::Modulo8}
6728                                                                            },
6729                                                                            1 => {
6730                                                                                0 => {
6731                                                                                    0 => {
6732                                                                                        0 => {
6733                                                                                            0 => {Elements::Modulo16},
6734                                                                                            1 => {Elements::Modulo32}
6735                                                                                        },
6736                                                                                        1 => {
6737                                                                                            0 => {Elements::Modulo64},
6738                                                                                            1 => {}
6739                                                                                        }
6740                                                                                    },
6741                                                                                    1 => {}
6742                                                                                },
6743                                                                                1 => {}
6744                                                                            }
6745                                                                        }
6746                                                                    },
6747                                                                    1 => {
6748                                                                        0 => {},
6749                                                                        1 => {
6750                                                                            0 => {
6751                                                                                0 => {},
6752                                                                                1 => {Elements::Divides8}
6753                                                                            },
6754                                                                            1 => {
6755                                                                                0 => {
6756                                                                                    0 => {
6757                                                                                        0 => {
6758                                                                                            0 => {Elements::Divides16},
6759                                                                                            1 => {Elements::Divides32}
6760                                                                                        },
6761                                                                                        1 => {
6762                                                                                            0 => {Elements::Divides64},
6763                                                                                            1 => {}
6764                                                                                        }
6765                                                                                    },
6766                                                                                    1 => {}
6767                                                                                },
6768                                                                                1 => {}
6769                                                                            }
6770                                                                        }
6771                                                                    }
6772                                                                },
6773                                                                1 => {}
6774                                                            },
6775                                                            1 => {}
6776                                                        }
6777                                                    },
6778                                                    1 => {}
6779                                                },
6780                                                1 => {}
6781                                            },
6782                                            1 => {}
6783                                        },
6784                                        1 => {}
6785                                    }
6786                                }
6787                            }
6788                        },
6789                        1 => {
6790                            0 => {
6791                                0 => {Elements::Sha256Block},
6792                                1 => {
6793                                    0 => {
6794                                        0 => {Elements::Sha256Iv},
6795                                        1 => {
6796                                            0 => {Elements::Sha256Ctx8Add1},
6797                                            1 => {
6798                                                0 => {
6799                                                    0 => {Elements::Sha256Ctx8Add2},
6800                                                    1 => {Elements::Sha256Ctx8Add4}
6801                                                },
6802                                                1 => {
6803                                                    0 => {
6804                                                        0 => {
6805                                                            0 => {
6806                                                                0 => {Elements::Sha256Ctx8Add8},
6807                                                                1 => {Elements::Sha256Ctx8Add16}
6808                                                            },
6809                                                            1 => {
6810                                                                0 => {Elements::Sha256Ctx8Add32},
6811                                                                1 => {Elements::Sha256Ctx8Add64}
6812                                                            }
6813                                                        },
6814                                                        1 => {
6815                                                            0 => {
6816                                                                0 => {
6817                                                                    0 => {Elements::Sha256Ctx8Add128},
6818                                                                    1 => {Elements::Sha256Ctx8Add256}
6819                                                                },
6820                                                                1 => {
6821                                                                    0 => {Elements::Sha256Ctx8Add512},
6822                                                                    1 => {}
6823                                                                }
6824                                                            },
6825                                                            1 => {}
6826                                                        }
6827                                                    },
6828                                                    1 => {}
6829                                                }
6830                                            }
6831                                        }
6832                                    },
6833                                    1 => {
6834                                        0 => {
6835                                            0 => {
6836                                                0 => {
6837                                                    0 => {Elements::Sha256Ctx8AddBuffer511},
6838                                                    1 => {Elements::Sha256Ctx8Finalize}
6839                                                },
6840                                                1 => {
6841                                                    0 => {Elements::Sha256Ctx8Init},
6842                                                    1 => {}
6843                                                }
6844                                            },
6845                                            1 => {}
6846                                        },
6847                                        1 => {}
6848                                    }
6849                                }
6850                            },
6851                            1 => {}
6852                        }
6853                    },
6854                    1 => {
6855                        0 => {
6856                            0 => {
6857                                0 => {
6858                                    0 => {
6859                                        0 => {
6860                                            0 => {Elements::PointVerify1},
6861                                            1 => {}
6862                                        },
6863                                        1 => {
6864                                            0 => {
6865                                                0 => {Elements::Decompress},
6866                                                1 => {
6867                                                    0 => {Elements::LinearVerify1},
6868                                                    1 => {}
6869                                                }
6870                                            },
6871                                            1 => {
6872                                                0 => {
6873                                                    0 => {
6874                                                        0 => {
6875                                                            0 => {
6876                                                                0 => {Elements::LinearCombination1},
6877                                                                1 => {}
6878                                                            },
6879                                                            1 => {Elements::Scale}
6880                                                        },
6881                                                        1 => {
6882                                                            0 => {Elements::Generate},
6883                                                            1 => {Elements::GejInfinity}
6884                                                        }
6885                                                    },
6886                                                    1 => {
6887                                                        0 => {
6888                                                            0 => {
6889                                                                0 => {Elements::GejNormalize},
6890                                                                1 => {Elements::GejNegate}
6891                                                            },
6892                                                            1 => {
6893                                                                0 => {Elements::GeNegate},
6894                                                                1 => {Elements::GejDouble}
6895                                                            }
6896                                                        },
6897                                                        1 => {
6898                                                            0 => {
6899                                                                0 => {Elements::GejAdd},
6900                                                                1 => {Elements::GejGeAddEx}
6901                                                            },
6902                                                            1 => {
6903                                                                0 => {Elements::GejGeAdd},
6904                                                                1 => {Elements::GejRescale}
6905                                                            }
6906                                                        }
6907                                                    }
6908                                                },
6909                                                1 => {
6910                                                    0 => {
6911                                                        0 => {
6912                                                            0 => {
6913                                                                0 => {
6914                                                                    0 => {
6915                                                                        0 => {
6916                                                                            0 => {
6917                                                                                0 => {Elements::GejIsInfinity},
6918                                                                                1 => {Elements::GejEquiv}
6919                                                                            },
6920                                                                            1 => {
6921                                                                                0 => {Elements::GejGeEquiv},
6922                                                                                1 => {Elements::GejXEquiv}
6923                                                                            }
6924                                                                        },
6925                                                                        1 => {
6926                                                                            0 => {
6927                                                                                0 => {Elements::GejYIsOdd},
6928                                                                                1 => {Elements::GejIsOnCurve}
6929                                                                            },
6930                                                                            1 => {
6931                                                                                0 => {Elements::GeIsOnCurve},
6932                                                                                1 => {Elements::ScalarNormalize}
6933                                                                            }
6934                                                                        }
6935                                                                    },
6936                                                                    1 => {
6937                                                                        0 => {
6938                                                                            0 => {
6939                                                                                0 => {Elements::ScalarNegate},
6940                                                                                1 => {Elements::ScalarAdd}
6941                                                                            },
6942                                                                            1 => {
6943                                                                                0 => {Elements::ScalarSquare},
6944                                                                                1 => {Elements::ScalarMultiply}
6945                                                                            }
6946                                                                        },
6947                                                                        1 => {
6948                                                                            0 => {
6949                                                                                0 => {Elements::ScalarMultiplyLambda},
6950                                                                                1 => {Elements::ScalarInvert}
6951                                                                            },
6952                                                                            1 => {
6953                                                                                0 => {Elements::ScalarIsZero},
6954                                                                                1 => {}
6955                                                                            }
6956                                                                        }
6957                                                                    }
6958                                                                },
6959                                                                1 => {
6960                                                                    0 => {
6961                                                                        0 => {
6962                                                                            0 => {
6963                                                                                0 => {},
6964                                                                                1 => {
6965                                                                                    0 => {},
6966                                                                                    1 => {Elements::FeNormalize}
6967                                                                                }
6968                                                                            },
6969                                                                            1 => {
6970                                                                                0 => {
6971                                                                                    0 => {Elements::FeNegate},
6972                                                                                    1 => {Elements::FeAdd}
6973                                                                                },
6974                                                                                1 => {
6975                                                                                    0 => {Elements::FeSquare},
6976                                                                                    1 => {Elements::FeMultiply}
6977                                                                                }
6978                                                                            }
6979                                                                        },
6980                                                                        1 => {
6981                                                                            0 => {
6982                                                                                0 => {
6983                                                                                    0 => {Elements::FeMultiplyBeta},
6984                                                                                    1 => {Elements::FeInvert}
6985                                                                                },
6986                                                                                1 => {
6987                                                                                    0 => {Elements::FeSquareRoot},
6988                                                                                    1 => {Elements::FeIsZero}
6989                                                                                }
6990                                                                            },
6991                                                                            1 => {
6992                                                                                0 => {
6993                                                                                    0 => {Elements::FeIsOdd},
6994                                                                                    1 => {}
6995                                                                                },
6996                                                                                1 => {
6997                                                                                    0 => {Elements::HashToCurve},
6998                                                                                    1 => {Elements::Swu}
6999                                                                                }
7000                                                                            }
7001                                                                        }
7002                                                                    },
7003                                                                    1 => {}
7004                                                                }
7005                                                            },
7006                                                            1 => {}
7007                                                        },
7008                                                        1 => {}
7009                                                    },
7010                                                    1 => {}
7011                                                }
7012                                            }
7013                                        }
7014                                    },
7015                                    1 => {
7016                                        0 => {Elements::CheckSigVerify},
7017                                        1 => {
7018                                            0 => {
7019                                                0 => {Elements::Bip0340Verify},
7020                                                1 => {}
7021                                            },
7022                                            1 => {}
7023                                        }
7024                                    }
7025                                },
7026                                1 => {
7027                                    0 => {},
7028                                    1 => {
7029                                        0 => {Elements::ParseLock},
7030                                        1 => {
7031                                            0 => {
7032                                                0 => {Elements::ParseSequence},
7033                                                1 => {Elements::TapdataInit}
7034                                            },
7035                                            1 => {}
7036                                        }
7037                                    }
7038                                }
7039                            },
7040                            1 => {}
7041                        },
7042                        1 => {}
7043                    }
7044                }
7045            },
7046            1 => {
7047                0 => {
7048                    0 => {Elements::SigAllHash},
7049                    1 => {
7050                        0 => {
7051                            0 => {Elements::TxHash},
7052                            1 => {Elements::TapEnvHash}
7053                        },
7054                        1 => {
7055                            0 => {
7056                                0 => {
7057                                    0 => {
7058                                        0 => {Elements::OutputsHash},
7059                                        1 => {Elements::InputsHash}
7060                                    },
7061                                    1 => {
7062                                        0 => {Elements::IssuancesHash},
7063                                        1 => {Elements::InputUtxosHash}
7064                                    }
7065                                },
7066                                1 => {
7067                                    0 => {
7068                                        0 => {
7069                                            0 => {Elements::OutputHash},
7070                                            1 => {Elements::OutputAmountsHash}
7071                                        },
7072                                        1 => {
7073                                            0 => {Elements::OutputScriptsHash},
7074                                            1 => {Elements::OutputNoncesHash}
7075                                        }
7076                                    },
7077                                    1 => {
7078                                        0 => {
7079                                            0 => {Elements::OutputRangeProofsHash},
7080                                            1 => {Elements::OutputSurjectionProofsHash}
7081                                        },
7082                                        1 => {
7083                                            0 => {Elements::InputHash},
7084                                            1 => {Elements::InputOutpointsHash}
7085                                        }
7086                                    }
7087                                }
7088                            },
7089                            1 => {
7090                                0 => {
7091                                    0 => {
7092                                        0 => {
7093                                            0 => {
7094                                                0 => {
7095                                                    0 => {
7096                                                        0 => {
7097                                                            0 => {Elements::InputSequencesHash},
7098                                                            1 => {Elements::InputAnnexesHash}
7099                                                        },
7100                                                        1 => {
7101                                                            0 => {Elements::InputScriptSigsHash},
7102                                                            1 => {Elements::IssuanceHash}
7103                                                        }
7104                                                    },
7105                                                    1 => {
7106                                                        0 => {
7107                                                            0 => {Elements::IssuanceAssetAmountsHash},
7108                                                            1 => {Elements::IssuanceTokenAmountsHash}
7109                                                        },
7110                                                        1 => {
7111                                                            0 => {Elements::IssuanceRangeProofsHash},
7112                                                            1 => {Elements::IssuanceBlindingEntropyHash}
7113                                                        }
7114                                                    }
7115                                                },
7116                                                1 => {
7117                                                    0 => {
7118                                                        0 => {
7119                                                            0 => {Elements::InputUtxoHash},
7120                                                            1 => {Elements::InputAmountsHash}
7121                                                        },
7122                                                        1 => {
7123                                                            0 => {Elements::InputScriptsHash},
7124                                                            1 => {Elements::TapleafHash}
7125                                                        }
7126                                                    },
7127                                                    1 => {
7128                                                        0 => {
7129                                                            0 => {Elements::TappathHash},
7130                                                            1 => {Elements::OutpointHash}
7131                                                        },
7132                                                        1 => {
7133                                                            0 => {Elements::AssetAmountHash},
7134                                                            1 => {Elements::NonceHash}
7135                                                        }
7136                                                    }
7137                                                }
7138                                            },
7139                                            1 => {
7140                                                0 => {
7141                                                    0 => {
7142                                                        0 => {
7143                                                            0 => {
7144                                                                0 => {Elements::AnnexHash},
7145                                                                1 => {Elements::BuildTapleafSimplicity}
7146                                                            },
7147                                                            1 => {
7148                                                                0 => {Elements::BuildTapbranch},
7149                                                                1 => {Elements::BuildTaptweak}
7150                                                            }
7151                                                        },
7152                                                        1 => {}
7153                                                    },
7154                                                    1 => {}
7155                                                },
7156                                                1 => {}
7157                                            }
7158                                        },
7159                                        1 => {}
7160                                    },
7161                                    1 => {}
7162                                },
7163                                1 => {}
7164                            }
7165                        }
7166                    }
7167                },
7168                1 => {
7169                    0 => {
7170                        0 => {
7171                            0 => {Elements::CheckLockHeight},
7172                            1 => {
7173                                0 => {
7174                                    0 => {Elements::CheckLockTime},
7175                                    1 => {Elements::BrokenDoNotUseCheckLockDistance}
7176                                },
7177                                1 => {
7178                                    0 => {
7179                                        0 => {
7180                                            0 => {
7181                                                0 => {Elements::BrokenDoNotUseCheckLockDuration},
7182                                                1 => {Elements::TxLockHeight}
7183                                            },
7184                                            1 => {
7185                                                0 => {Elements::TxLockTime},
7186                                                1 => {Elements::BrokenDoNotUseTxLockDistance}
7187                                            }
7188                                        },
7189                                        1 => {
7190                                            0 => {
7191                                                0 => {
7192                                                    0 => {Elements::BrokenDoNotUseTxLockDuration},
7193                                                    1 => {Elements::TxIsFinal}
7194                                                },
7195                                                1 => {}
7196                                            },
7197                                            1 => {}
7198                                        }
7199                                    },
7200                                    1 => {}
7201                                }
7202                            }
7203                        },
7204                        1 => {
7205                            0 => {Elements::Issuance},
7206                            1 => {
7207                                0 => {
7208                                    0 => {Elements::IssuanceAsset},
7209                                    1 => {Elements::IssuanceToken}
7210                                },
7211                                1 => {
7212                                    0 => {
7213                                        0 => {
7214                                            0 => {
7215                                                0 => {Elements::IssuanceEntropy},
7216                                                1 => {Elements::CalculateIssuanceEntropy}
7217                                            },
7218                                            1 => {
7219                                                0 => {Elements::CalculateAsset},
7220                                                1 => {Elements::CalculateExplicitToken}
7221                                            }
7222                                        },
7223                                        1 => {
7224                                            0 => {
7225                                                0 => {
7226                                                    0 => {Elements::CalculateConfidentialToken},
7227                                                    1 => {Elements::LbtcAsset}
7228                                                },
7229                                                1 => {}
7230                                            },
7231                                            1 => {}
7232                                        }
7233                                    },
7234                                    1 => {}
7235                                }
7236                            }
7237                        }
7238                    },
7239                    1 => {
7240                        0 => {
7241                            0 => {
7242                                0 => {
7243                                    0 => {
7244                                        0 => {Elements::ScriptCMR},
7245                                        1 => {
7246                                            0 => {
7247                                                0 => {Elements::InternalKey},
7248                                                1 => {Elements::CurrentIndex}
7249                                            },
7250                                            1 => {
7251                                                0 => {
7252                                                    0 => {
7253                                                        0 => {
7254                                                            0 => {Elements::NumInputs},
7255                                                            1 => {Elements::NumOutputs}
7256                                                        },
7257                                                        1 => {
7258                                                            0 => {Elements::LockTime},
7259                                                            1 => {Elements::OutputAsset}
7260                                                        }
7261                                                    },
7262                                                    1 => {
7263                                                        0 => {
7264                                                            0 => {
7265                                                                0 => {Elements::OutputAmount},
7266                                                                1 => {Elements::OutputNonce}
7267                                                            },
7268                                                            1 => {
7269                                                                0 => {Elements::OutputScriptHash},
7270                                                                1 => {Elements::OutputNullDatum}
7271                                                            }
7272                                                        },
7273                                                        1 => {
7274                                                            0 => {
7275                                                                0 => {Elements::OutputIsFee},
7276                                                                1 => {Elements::OutputSurjectionProof}
7277                                                            },
7278                                                            1 => {
7279                                                                0 => {Elements::OutputRangeProof},
7280                                                                1 => {Elements::TotalFee}
7281                                                            }
7282                                                        }
7283                                                    }
7284                                                },
7285                                                1 => {
7286                                                    0 => {
7287                                                        0 => {
7288                                                            0 => {
7289                                                                0 => {
7290                                                                    0 => {
7291                                                                        0 => {
7292                                                                            0 => {
7293                                                                                0 => {Elements::CurrentPegin},
7294                                                                                1 => {Elements::CurrentPrevOutpoint}
7295                                                                            },
7296                                                                            1 => {
7297                                                                                0 => {Elements::CurrentAsset},
7298                                                                                1 => {Elements::CurrentAmount}
7299                                                                            }
7300                                                                        },
7301                                                                        1 => {
7302                                                                            0 => {
7303                                                                                0 => {Elements::CurrentScriptHash},
7304                                                                                1 => {Elements::CurrentSequence}
7305                                                                            },
7306                                                                            1 => {
7307                                                                                0 => {Elements::CurrentAnnexHash},
7308                                                                                1 => {Elements::CurrentScriptSigHash}
7309                                                                            }
7310                                                                        }
7311                                                                    },
7312                                                                    1 => {
7313                                                                        0 => {
7314                                                                            0 => {
7315                                                                                0 => {Elements::CurrentReissuanceBlinding},
7316                                                                                1 => {Elements::CurrentNewIssuanceContract}
7317                                                                            },
7318                                                                            1 => {
7319                                                                                0 => {Elements::CurrentReissuanceEntropy},
7320                                                                                1 => {Elements::CurrentIssuanceAssetAmount}
7321                                                                            }
7322                                                                        },
7323                                                                        1 => {
7324                                                                            0 => {
7325                                                                                0 => {Elements::CurrentIssuanceTokenAmount},
7326                                                                                1 => {Elements::CurrentIssuanceAssetProof}
7327                                                                            },
7328                                                                            1 => {
7329                                                                                0 => {Elements::CurrentIssuanceTokenProof},
7330                                                                                1 => {Elements::InputPegin}
7331                                                                            }
7332                                                                        }
7333                                                                    }
7334                                                                },
7335                                                                1 => {
7336                                                                    0 => {
7337                                                                        0 => {
7338                                                                            0 => {
7339                                                                                0 => {
7340                                                                                    0 => {Elements::InputPrevOutpoint},
7341                                                                                    1 => {Elements::InputAsset}
7342                                                                                },
7343                                                                                1 => {
7344                                                                                    0 => {Elements::InputAmount},
7345                                                                                    1 => {Elements::InputScriptHash}
7346                                                                                }
7347                                                                            },
7348                                                                            1 => {
7349                                                                                0 => {
7350                                                                                    0 => {Elements::InputSequence},
7351                                                                                    1 => {Elements::InputAnnexHash}
7352                                                                                },
7353                                                                                1 => {
7354                                                                                    0 => {Elements::InputScriptSigHash},
7355                                                                                    1 => {Elements::ReissuanceBlinding}
7356                                                                                }
7357                                                                            }
7358                                                                        },
7359                                                                        1 => {
7360                                                                            0 => {
7361                                                                                0 => {
7362                                                                                    0 => {Elements::NewIssuanceContract},
7363                                                                                    1 => {Elements::ReissuanceEntropy}
7364                                                                                },
7365                                                                                1 => {
7366                                                                                    0 => {Elements::IssuanceAssetAmount},
7367                                                                                    1 => {Elements::IssuanceTokenAmount}
7368                                                                                }
7369                                                                            },
7370                                                                            1 => {
7371                                                                                0 => {
7372                                                                                    0 => {Elements::IssuanceAssetProof},
7373                                                                                    1 => {Elements::IssuanceTokenProof}
7374                                                                                },
7375                                                                                1 => {
7376                                                                                    0 => {Elements::TapleafVersion},
7377                                                                                    1 => {Elements::Tappath}
7378                                                                                }
7379                                                                            }
7380                                                                        }
7381                                                                    },
7382                                                                    1 => {
7383                                                                        0 => {
7384                                                                            0 => {
7385                                                                                0 => {
7386                                                                                    0 => {Elements::Version},
7387                                                                                    1 => {Elements::GenesisBlockHash}
7388                                                                                },
7389                                                                                1 => {
7390                                                                                    0 => {Elements::TransactionId},
7391                                                                                    1 => {}
7392                                                                                }
7393                                                                            },
7394                                                                            1 => {}
7395                                                                        },
7396                                                                        1 => {}
7397                                                                    }
7398                                                                }
7399                                                            },
7400                                                            1 => {}
7401                                                        },
7402                                                        1 => {}
7403                                                    },
7404                                                    1 => {}
7405                                                }
7406                                            }
7407                                        }
7408                                    },
7409                                    1 => {}
7410                                },
7411                                1 => {}
7412                            },
7413                            1 => {}
7414                        },
7415                        1 => {}
7416                    }
7417                }
7418            }
7419        })
7420    }
7421
7422    fn cost(&self) -> Cost {
7423        match self {
7424            Elements::Add16 => Cost::from_milliweight(108),
7425            Elements::Add32 => Cost::from_milliweight(117),
7426            Elements::Add64 => Cost::from_milliweight(109),
7427            Elements::Add8 => Cost::from_milliweight(112),
7428            Elements::All16 => Cost::from_milliweight(62),
7429            Elements::All32 => Cost::from_milliweight(65),
7430            Elements::All64 => Cost::from_milliweight(79),
7431            Elements::All8 => Cost::from_milliweight(76),
7432            Elements::And1 => Cost::from_milliweight(79),
7433            Elements::And16 => Cost::from_milliweight(88),
7434            Elements::And32 => Cost::from_milliweight(94),
7435            Elements::And64 => Cost::from_milliweight(93),
7436            Elements::And8 => Cost::from_milliweight(91),
7437            Elements::AnnexHash => Cost::from_milliweight(241),
7438            Elements::AssetAmountHash => Cost::from_milliweight(308),
7439            Elements::Bip0340Verify => Cost::from_milliweight(49087),
7440            Elements::BrokenDoNotUseCheckLockDistance => Cost::from_milliweight(105),
7441            Elements::BrokenDoNotUseCheckLockDuration => Cost::from_milliweight(102),
7442            Elements::BrokenDoNotUseTxLockDistance => Cost::from_milliweight(91),
7443            Elements::BrokenDoNotUseTxLockDuration => Cost::from_milliweight(84),
7444            Elements::BuildTapbranch => Cost::from_milliweight(2563),
7445            Elements::BuildTapleafSimplicity => Cost::from_milliweight(1843),
7446            Elements::BuildTaptweak => Cost::from_milliweight(92813),
7447            Elements::CalculateAsset => Cost::from_milliweight(807),
7448            Elements::CalculateConfidentialToken => Cost::from_milliweight(707),
7449            Elements::CalculateExplicitToken => Cost::from_milliweight(771),
7450            Elements::CalculateIssuanceEntropy => Cost::from_milliweight(2095),
7451            Elements::Ch1 => Cost::from_milliweight(78),
7452            Elements::Ch16 => Cost::from_milliweight(94),
7453            Elements::Ch32 => Cost::from_milliweight(91),
7454            Elements::Ch64 => Cost::from_milliweight(91),
7455            Elements::Ch8 => Cost::from_milliweight(77),
7456            Elements::CheckLockHeight => Cost::from_milliweight(77),
7457            Elements::CheckLockTime => Cost::from_milliweight(93),
7458            Elements::CheckSigVerify => Cost::from_milliweight(50000),
7459            Elements::Complement1 => Cost::from_milliweight(79),
7460            Elements::Complement16 => Cost::from_milliweight(75),
7461            Elements::Complement32 => Cost::from_milliweight(93),
7462            Elements::Complement64 => Cost::from_milliweight(88),
7463            Elements::Complement8 => Cost::from_milliweight(80),
7464            Elements::CurrentAmount => Cost::from_milliweight(225),
7465            Elements::CurrentAnnexHash => Cost::from_milliweight(79),
7466            Elements::CurrentAsset => Cost::from_milliweight(171),
7467            Elements::CurrentIndex => Cost::from_milliweight(88),
7468            Elements::CurrentIssuanceAssetAmount => Cost::from_milliweight(165),
7469            Elements::CurrentIssuanceAssetProof => Cost::from_milliweight(140),
7470            Elements::CurrentIssuanceTokenAmount => Cost::from_milliweight(188),
7471            Elements::CurrentIssuanceTokenProof => Cost::from_milliweight(144),
7472            Elements::CurrentNewIssuanceContract => Cost::from_milliweight(145),
7473            Elements::CurrentPegin => Cost::from_milliweight(147),
7474            Elements::CurrentPrevOutpoint => Cost::from_milliweight(156),
7475            Elements::CurrentReissuanceBlinding => Cost::from_milliweight(94),
7476            Elements::CurrentReissuanceEntropy => Cost::from_milliweight(85),
7477            Elements::CurrentScriptHash => Cost::from_milliweight(134),
7478            Elements::CurrentScriptSigHash => Cost::from_milliweight(139),
7479            Elements::CurrentSequence => Cost::from_milliweight(89),
7480            Elements::Decompress => Cost::from_milliweight(10861),
7481            Elements::Decrement16 => Cost::from_milliweight(85),
7482            Elements::Decrement32 => Cost::from_milliweight(91),
7483            Elements::Decrement64 => Cost::from_milliweight(89),
7484            Elements::Decrement8 => Cost::from_milliweight(79),
7485            Elements::DivMod128_64 => Cost::from_milliweight(208),
7486            Elements::DivMod16 => Cost::from_milliweight(118),
7487            Elements::DivMod32 => Cost::from_milliweight(115),
7488            Elements::DivMod64 => Cost::from_milliweight(86),
7489            Elements::DivMod8 => Cost::from_milliweight(128),
7490            Elements::Divide16 => Cost::from_milliweight(98),
7491            Elements::Divide32 => Cost::from_milliweight(100),
7492            Elements::Divide64 => Cost::from_milliweight(101),
7493            Elements::Divide8 => Cost::from_milliweight(108),
7494            Elements::Divides16 => Cost::from_milliweight(93),
7495            Elements::Divides32 => Cost::from_milliweight(87),
7496            Elements::Divides64 => Cost::from_milliweight(91),
7497            Elements::Divides8 => Cost::from_milliweight(98),
7498            Elements::Eq1 => Cost::from_milliweight(74),
7499            Elements::Eq16 => Cost::from_milliweight(84),
7500            Elements::Eq256 => Cost::from_milliweight(225),
7501            Elements::Eq32 => Cost::from_milliweight(88),
7502            Elements::Eq64 => Cost::from_milliweight(100),
7503            Elements::Eq8 => Cost::from_milliweight(95),
7504            Elements::FeAdd => Cost::from_milliweight(755),
7505            Elements::FeInvert => Cost::from_milliweight(3175),
7506            Elements::FeIsOdd => Cost::from_milliweight(290),
7507            Elements::FeIsZero => Cost::from_milliweight(268),
7508            Elements::FeMultiply => Cost::from_milliweight(808),
7509            Elements::FeMultiplyBeta => Cost::from_milliweight(579),
7510            Elements::FeNegate => Cost::from_milliweight(531),
7511            Elements::FeNormalize => Cost::from_milliweight(521),
7512            Elements::FeSquare => Cost::from_milliweight(556),
7513            Elements::FeSquareRoot => Cost::from_milliweight(10275),
7514            Elements::FullAdd16 => Cost::from_milliweight(121),
7515            Elements::FullAdd32 => Cost::from_milliweight(119),
7516            Elements::FullAdd64 => Cost::from_milliweight(121),
7517            Elements::FullAdd8 => Cost::from_milliweight(127),
7518            Elements::FullDecrement16 => Cost::from_milliweight(92),
7519            Elements::FullDecrement32 => Cost::from_milliweight(107),
7520            Elements::FullDecrement64 => Cost::from_milliweight(81),
7521            Elements::FullDecrement8 => Cost::from_milliweight(91),
7522            Elements::FullIncrement16 => Cost::from_milliweight(89),
7523            Elements::FullIncrement32 => Cost::from_milliweight(104),
7524            Elements::FullIncrement64 => Cost::from_milliweight(99),
7525            Elements::FullIncrement8 => Cost::from_milliweight(72),
7526            Elements::FullLeftShift16_1 => Cost::from_milliweight(83),
7527            Elements::FullLeftShift16_2 => Cost::from_milliweight(83),
7528            Elements::FullLeftShift16_4 => Cost::from_milliweight(89),
7529            Elements::FullLeftShift16_8 => Cost::from_milliweight(65),
7530            Elements::FullLeftShift32_1 => Cost::from_milliweight(84),
7531            Elements::FullLeftShift32_16 => Cost::from_milliweight(81),
7532            Elements::FullLeftShift32_2 => Cost::from_milliweight(67),
7533            Elements::FullLeftShift32_4 => Cost::from_milliweight(84),
7534            Elements::FullLeftShift32_8 => Cost::from_milliweight(91),
7535            Elements::FullLeftShift64_1 => Cost::from_milliweight(99),
7536            Elements::FullLeftShift64_16 => Cost::from_milliweight(90),
7537            Elements::FullLeftShift64_2 => Cost::from_milliweight(94),
7538            Elements::FullLeftShift64_32 => Cost::from_milliweight(86),
7539            Elements::FullLeftShift64_4 => Cost::from_milliweight(94),
7540            Elements::FullLeftShift64_8 => Cost::from_milliweight(86),
7541            Elements::FullLeftShift8_1 => Cost::from_milliweight(96),
7542            Elements::FullLeftShift8_2 => Cost::from_milliweight(96),
7543            Elements::FullLeftShift8_4 => Cost::from_milliweight(85),
7544            Elements::FullMultiply16 => Cost::from_milliweight(112),
7545            Elements::FullMultiply32 => Cost::from_milliweight(96),
7546            Elements::FullMultiply64 => Cost::from_milliweight(127),
7547            Elements::FullMultiply8 => Cost::from_milliweight(109),
7548            Elements::FullRightShift16_1 => Cost::from_milliweight(80),
7549            Elements::FullRightShift16_2 => Cost::from_milliweight(79),
7550            Elements::FullRightShift16_4 => Cost::from_milliweight(88),
7551            Elements::FullRightShift16_8 => Cost::from_milliweight(57),
7552            Elements::FullRightShift32_1 => Cost::from_milliweight(74),
7553            Elements::FullRightShift32_16 => Cost::from_milliweight(64),
7554            Elements::FullRightShift32_2 => Cost::from_milliweight(63),
7555            Elements::FullRightShift32_4 => Cost::from_milliweight(71),
7556            Elements::FullRightShift32_8 => Cost::from_milliweight(84),
7557            Elements::FullRightShift64_1 => Cost::from_milliweight(99),
7558            Elements::FullRightShift64_16 => Cost::from_milliweight(86),
7559            Elements::FullRightShift64_2 => Cost::from_milliweight(86),
7560            Elements::FullRightShift64_32 => Cost::from_milliweight(73),
7561            Elements::FullRightShift64_4 => Cost::from_milliweight(93),
7562            Elements::FullRightShift64_8 => Cost::from_milliweight(99),
7563            Elements::FullRightShift8_1 => Cost::from_milliweight(88),
7564            Elements::FullRightShift8_2 => Cost::from_milliweight(86),
7565            Elements::FullRightShift8_4 => Cost::from_milliweight(89),
7566            Elements::FullSubtract16 => Cost::from_milliweight(121),
7567            Elements::FullSubtract32 => Cost::from_milliweight(116),
7568            Elements::FullSubtract64 => Cost::from_milliweight(98),
7569            Elements::FullSubtract8 => Cost::from_milliweight(126),
7570            Elements::GeIsOnCurve => Cost::from_milliweight(642),
7571            Elements::GeNegate => Cost::from_milliweight(945),
7572            Elements::GejAdd => Cost::from_milliweight(2897),
7573            Elements::GejDouble => Cost::from_milliweight(1764),
7574            Elements::GejEquiv => Cost::from_milliweight(2220),
7575            Elements::GejGeAdd => Cost::from_milliweight(2477),
7576            Elements::GejGeAddEx => Cost::from_milliweight(2719),
7577            Elements::GejGeEquiv => Cost::from_milliweight(1765),
7578            Elements::GejInfinity => Cost::from_milliweight(716),
7579            Elements::GejIsInfinity => Cost::from_milliweight(666),
7580            Elements::GejIsOnCurve => Cost::from_milliweight(1016),
7581            Elements::GejNegate => Cost::from_milliweight(1381),
7582            Elements::GejNormalize => Cost::from_milliweight(4099),
7583            Elements::GejRescale => Cost::from_milliweight(1908),
7584            Elements::GejXEquiv => Cost::from_milliweight(1047),
7585            Elements::GejYIsOdd => Cost::from_milliweight(3651),
7586            Elements::Generate => Cost::from_milliweight(50071),
7587            Elements::GenesisBlockHash => Cost::from_milliweight(148),
7588            Elements::HashToCurve => Cost::from_milliweight(68094),
7589            Elements::High1 => Cost::from_milliweight(57),
7590            Elements::High16 => Cost::from_milliweight(66),
7591            Elements::High32 => Cost::from_milliweight(58),
7592            Elements::High64 => Cost::from_milliweight(68),
7593            Elements::High8 => Cost::from_milliweight(59),
7594            Elements::Increment16 => Cost::from_milliweight(69),
7595            Elements::Increment32 => Cost::from_milliweight(92),
7596            Elements::Increment64 => Cost::from_milliweight(87),
7597            Elements::Increment8 => Cost::from_milliweight(85),
7598            Elements::InputAmount => Cost::from_milliweight(285),
7599            Elements::InputAmountsHash => Cost::from_milliweight(140),
7600            Elements::InputAnnexHash => Cost::from_milliweight(90),
7601            Elements::InputAnnexesHash => Cost::from_milliweight(155),
7602            Elements::InputAsset => Cost::from_milliweight(162),
7603            Elements::InputHash => Cost::from_milliweight(965),
7604            Elements::InputOutpointsHash => Cost::from_milliweight(142),
7605            Elements::InputPegin => Cost::from_milliweight(151),
7606            Elements::InputPrevOutpoint => Cost::from_milliweight(160),
7607            Elements::InputScriptHash => Cost::from_milliweight(147),
7608            Elements::InputScriptSigHash => Cost::from_milliweight(153),
7609            Elements::InputScriptSigsHash => Cost::from_milliweight(138),
7610            Elements::InputScriptsHash => Cost::from_milliweight(137),
7611            Elements::InputSequence => Cost::from_milliweight(99),
7612            Elements::InputSequencesHash => Cost::from_milliweight(142),
7613            Elements::InputUtxoHash => Cost::from_milliweight(1996),
7614            Elements::InputUtxosHash => Cost::from_milliweight(140),
7615            Elements::InputsHash => Cost::from_milliweight(154),
7616            Elements::InternalKey => Cost::from_milliweight(152),
7617            Elements::IsOne16 => Cost::from_milliweight(82),
7618            Elements::IsOne32 => Cost::from_milliweight(65),
7619            Elements::IsOne64 => Cost::from_milliweight(83),
7620            Elements::IsOne8 => Cost::from_milliweight(91),
7621            Elements::IsZero16 => Cost::from_milliweight(75),
7622            Elements::IsZero32 => Cost::from_milliweight(85),
7623            Elements::IsZero64 => Cost::from_milliweight(80),
7624            Elements::IsZero8 => Cost::from_milliweight(77),
7625            Elements::Issuance => Cost::from_milliweight(91),
7626            Elements::IssuanceAsset => Cost::from_milliweight(151),
7627            Elements::IssuanceAssetAmount => Cost::from_milliweight(162),
7628            Elements::IssuanceAssetAmountsHash => Cost::from_milliweight(139),
7629            Elements::IssuanceAssetProof => Cost::from_milliweight(150),
7630            Elements::IssuanceBlindingEntropyHash => Cost::from_milliweight(129),
7631            Elements::IssuanceEntropy => Cost::from_milliweight(153),
7632            Elements::IssuanceHash => Cost::from_milliweight(3738),
7633            Elements::IssuanceRangeProofsHash => Cost::from_milliweight(129),
7634            Elements::IssuanceToken => Cost::from_milliweight(149),
7635            Elements::IssuanceTokenAmount => Cost::from_milliweight(196),
7636            Elements::IssuanceTokenAmountsHash => Cost::from_milliweight(138),
7637            Elements::IssuanceTokenProof => Cost::from_milliweight(150),
7638            Elements::IssuancesHash => Cost::from_milliweight(141),
7639            Elements::LbtcAsset => Cost::from_milliweight(145),
7640            Elements::Le16 => Cost::from_milliweight(112),
7641            Elements::Le32 => Cost::from_milliweight(93),
7642            Elements::Le64 => Cost::from_milliweight(93),
7643            Elements::Le8 => Cost::from_milliweight(109),
7644            Elements::LeftExtend16_32 => Cost::from_milliweight(86),
7645            Elements::LeftExtend16_64 => Cost::from_milliweight(89),
7646            Elements::LeftExtend1_16 => Cost::from_milliweight(67),
7647            Elements::LeftExtend1_32 => Cost::from_milliweight(60),
7648            Elements::LeftExtend1_64 => Cost::from_milliweight(76),
7649            Elements::LeftExtend1_8 => Cost::from_milliweight(65),
7650            Elements::LeftExtend32_64 => Cost::from_milliweight(63),
7651            Elements::LeftExtend8_16 => Cost::from_milliweight(88),
7652            Elements::LeftExtend8_32 => Cost::from_milliweight(90),
7653            Elements::LeftExtend8_64 => Cost::from_milliweight(107),
7654            Elements::LeftPadHigh16_32 => Cost::from_milliweight(91),
7655            Elements::LeftPadHigh16_64 => Cost::from_milliweight(110),
7656            Elements::LeftPadHigh1_16 => Cost::from_milliweight(141),
7657            Elements::LeftPadHigh1_32 => Cost::from_milliweight(263),
7658            Elements::LeftPadHigh1_64 => Cost::from_milliweight(422),
7659            Elements::LeftPadHigh1_8 => Cost::from_milliweight(99),
7660            Elements::LeftPadHigh32_64 => Cost::from_milliweight(93),
7661            Elements::LeftPadHigh8_16 => Cost::from_milliweight(88),
7662            Elements::LeftPadHigh8_32 => Cost::from_milliweight(103),
7663            Elements::LeftPadHigh8_64 => Cost::from_milliweight(136),
7664            Elements::LeftPadLow16_32 => Cost::from_milliweight(69),
7665            Elements::LeftPadLow16_64 => Cost::from_milliweight(106),
7666            Elements::LeftPadLow1_16 => Cost::from_milliweight(65),
7667            Elements::LeftPadLow1_32 => Cost::from_milliweight(63),
7668            Elements::LeftPadLow1_64 => Cost::from_milliweight(61),
7669            Elements::LeftPadLow1_8 => Cost::from_milliweight(56),
7670            Elements::LeftPadLow32_64 => Cost::from_milliweight(91),
7671            Elements::LeftPadLow8_16 => Cost::from_milliweight(66),
7672            Elements::LeftPadLow8_32 => Cost::from_milliweight(61),
7673            Elements::LeftPadLow8_64 => Cost::from_milliweight(112),
7674            Elements::LeftRotate16 => Cost::from_milliweight(77),
7675            Elements::LeftRotate32 => Cost::from_milliweight(106),
7676            Elements::LeftRotate64 => Cost::from_milliweight(98),
7677            Elements::LeftRotate8 => Cost::from_milliweight(88),
7678            Elements::LeftShift16 => Cost::from_milliweight(72),
7679            Elements::LeftShift32 => Cost::from_milliweight(78),
7680            Elements::LeftShift64 => Cost::from_milliweight(82),
7681            Elements::LeftShift8 => Cost::from_milliweight(91),
7682            Elements::LeftShiftWith16 => Cost::from_milliweight(83),
7683            Elements::LeftShiftWith32 => Cost::from_milliweight(95),
7684            Elements::LeftShiftWith64 => Cost::from_milliweight(103),
7685            Elements::LeftShiftWith8 => Cost::from_milliweight(107),
7686            Elements::Leftmost16_1 => Cost::from_milliweight(93),
7687            Elements::Leftmost16_2 => Cost::from_milliweight(90),
7688            Elements::Leftmost16_4 => Cost::from_milliweight(75),
7689            Elements::Leftmost16_8 => Cost::from_milliweight(71),
7690            Elements::Leftmost32_1 => Cost::from_milliweight(77),
7691            Elements::Leftmost32_16 => Cost::from_milliweight(102),
7692            Elements::Leftmost32_2 => Cost::from_milliweight(66),
7693            Elements::Leftmost32_4 => Cost::from_milliweight(52),
7694            Elements::Leftmost32_8 => Cost::from_milliweight(103),
7695            Elements::Leftmost64_1 => Cost::from_milliweight(78),
7696            Elements::Leftmost64_16 => Cost::from_milliweight(88),
7697            Elements::Leftmost64_2 => Cost::from_milliweight(71),
7698            Elements::Leftmost64_32 => Cost::from_milliweight(90),
7699            Elements::Leftmost64_4 => Cost::from_milliweight(79),
7700            Elements::Leftmost64_8 => Cost::from_milliweight(86),
7701            Elements::Leftmost8_1 => Cost::from_milliweight(90),
7702            Elements::Leftmost8_2 => Cost::from_milliweight(90),
7703            Elements::Leftmost8_4 => Cost::from_milliweight(87),
7704            Elements::LinearCombination1 => Cost::from_milliweight(84674),
7705            Elements::LinearVerify1 => Cost::from_milliweight(43364),
7706            Elements::LockTime => Cost::from_milliweight(85),
7707            Elements::Low1 => Cost::from_milliweight(38),
7708            Elements::Low16 => Cost::from_milliweight(69),
7709            Elements::Low32 => Cost::from_milliweight(62),
7710            Elements::Low64 => Cost::from_milliweight(47),
7711            Elements::Low8 => Cost::from_milliweight(47),
7712            Elements::Lt16 => Cost::from_milliweight(123),
7713            Elements::Lt32 => Cost::from_milliweight(107),
7714            Elements::Lt64 => Cost::from_milliweight(76),
7715            Elements::Lt8 => Cost::from_milliweight(107),
7716            Elements::Maj1 => Cost::from_milliweight(62),
7717            Elements::Maj16 => Cost::from_milliweight(80),
7718            Elements::Maj32 => Cost::from_milliweight(96),
7719            Elements::Maj64 => Cost::from_milliweight(93),
7720            Elements::Maj8 => Cost::from_milliweight(94),
7721            Elements::Max16 => Cost::from_milliweight(114),
7722            Elements::Max32 => Cost::from_milliweight(92),
7723            Elements::Max64 => Cost::from_milliweight(104),
7724            Elements::Max8 => Cost::from_milliweight(96),
7725            Elements::Median16 => Cost::from_milliweight(123),
7726            Elements::Median32 => Cost::from_milliweight(101),
7727            Elements::Median64 => Cost::from_milliweight(109),
7728            Elements::Median8 => Cost::from_milliweight(122),
7729            Elements::Min16 => Cost::from_milliweight(97),
7730            Elements::Min32 => Cost::from_milliweight(113),
7731            Elements::Min64 => Cost::from_milliweight(102),
7732            Elements::Min8 => Cost::from_milliweight(99),
7733            Elements::Modulo16 => Cost::from_milliweight(103),
7734            Elements::Modulo32 => Cost::from_milliweight(102),
7735            Elements::Modulo64 => Cost::from_milliweight(85),
7736            Elements::Modulo8 => Cost::from_milliweight(102),
7737            Elements::Multiply16 => Cost::from_milliweight(90),
7738            Elements::Multiply32 => Cost::from_milliweight(90),
7739            Elements::Multiply64 => Cost::from_milliweight(85),
7740            Elements::Multiply8 => Cost::from_milliweight(93),
7741            Elements::Negate16 => Cost::from_milliweight(70),
7742            Elements::Negate32 => Cost::from_milliweight(85),
7743            Elements::Negate64 => Cost::from_milliweight(94),
7744            Elements::Negate8 => Cost::from_milliweight(91),
7745            Elements::NewIssuanceContract => Cost::from_milliweight(157),
7746            Elements::NonceHash => Cost::from_milliweight(317),
7747            Elements::NumInputs => Cost::from_milliweight(86),
7748            Elements::NumOutputs => Cost::from_milliweight(79),
7749            Elements::One16 => Cost::from_milliweight(60),
7750            Elements::One32 => Cost::from_milliweight(59),
7751            Elements::One64 => Cost::from_milliweight(59),
7752            Elements::One8 => Cost::from_milliweight(62),
7753            Elements::Or1 => Cost::from_milliweight(77),
7754            Elements::Or16 => Cost::from_milliweight(94),
7755            Elements::Or32 => Cost::from_milliweight(105),
7756            Elements::Or64 => Cost::from_milliweight(99),
7757            Elements::Or8 => Cost::from_milliweight(93),
7758            Elements::OutpointHash => Cost::from_milliweight(319),
7759            Elements::OutputAmount => Cost::from_milliweight(298),
7760            Elements::OutputAmountsHash => Cost::from_milliweight(140),
7761            Elements::OutputAsset => Cost::from_milliweight(170),
7762            Elements::OutputHash => Cost::from_milliweight(2849),
7763            Elements::OutputIsFee => Cost::from_milliweight(92),
7764            Elements::OutputNonce => Cost::from_milliweight(196),
7765            Elements::OutputNoncesHash => Cost::from_milliweight(151),
7766            Elements::OutputNullDatum => Cost::from_milliweight(87),
7767            Elements::OutputRangeProof => Cost::from_milliweight(154),
7768            Elements::OutputRangeProofsHash => Cost::from_milliweight(136),
7769            Elements::OutputScriptHash => Cost::from_milliweight(151),
7770            Elements::OutputScriptsHash => Cost::from_milliweight(142),
7771            Elements::OutputSurjectionProof => Cost::from_milliweight(151),
7772            Elements::OutputSurjectionProofsHash => Cost::from_milliweight(138),
7773            Elements::OutputsHash => Cost::from_milliweight(135),
7774            Elements::ParseLock => Cost::from_milliweight(97),
7775            Elements::ParseSequence => Cost::from_milliweight(116),
7776            Elements::PointVerify1 => Cost::from_milliweight(41494),
7777            Elements::ReissuanceBlinding => Cost::from_milliweight(91),
7778            Elements::ReissuanceEntropy => Cost::from_milliweight(93),
7779            Elements::RightExtend16_32 => Cost::from_milliweight(74),
7780            Elements::RightExtend16_64 => Cost::from_milliweight(82),
7781            Elements::RightExtend32_64 => Cost::from_milliweight(94),
7782            Elements::RightExtend8_16 => Cost::from_milliweight(76),
7783            Elements::RightExtend8_32 => Cost::from_milliweight(106),
7784            Elements::RightExtend8_64 => Cost::from_milliweight(124),
7785            Elements::RightPadHigh16_32 => Cost::from_milliweight(70),
7786            Elements::RightPadHigh16_64 => Cost::from_milliweight(88),
7787            Elements::RightPadHigh1_16 => Cost::from_milliweight(143),
7788            Elements::RightPadHigh1_32 => Cost::from_milliweight(223),
7789            Elements::RightPadHigh1_64 => Cost::from_milliweight(476),
7790            Elements::RightPadHigh1_8 => Cost::from_milliweight(107),
7791            Elements::RightPadHigh32_64 => Cost::from_milliweight(94),
7792            Elements::RightPadHigh8_16 => Cost::from_milliweight(89),
7793            Elements::RightPadHigh8_32 => Cost::from_milliweight(110),
7794            Elements::RightPadHigh8_64 => Cost::from_milliweight(107),
7795            Elements::RightPadLow16_32 => Cost::from_milliweight(71),
7796            Elements::RightPadLow16_64 => Cost::from_milliweight(96),
7797            Elements::RightPadLow1_16 => Cost::from_milliweight(81),
7798            Elements::RightPadLow1_32 => Cost::from_milliweight(75),
7799            Elements::RightPadLow1_64 => Cost::from_milliweight(73),
7800            Elements::RightPadLow1_8 => Cost::from_milliweight(68),
7801            Elements::RightPadLow32_64 => Cost::from_milliweight(80),
7802            Elements::RightPadLow8_16 => Cost::from_milliweight(75),
7803            Elements::RightPadLow8_32 => Cost::from_milliweight(77),
7804            Elements::RightPadLow8_64 => Cost::from_milliweight(82),
7805            Elements::RightRotate16 => Cost::from_milliweight(99),
7806            Elements::RightRotate32 => Cost::from_milliweight(92),
7807            Elements::RightRotate64 => Cost::from_milliweight(93),
7808            Elements::RightRotate8 => Cost::from_milliweight(75),
7809            Elements::RightShift16 => Cost::from_milliweight(84),
7810            Elements::RightShift32 => Cost::from_milliweight(88),
7811            Elements::RightShift64 => Cost::from_milliweight(91),
7812            Elements::RightShift8 => Cost::from_milliweight(88),
7813            Elements::RightShiftWith16 => Cost::from_milliweight(105),
7814            Elements::RightShiftWith32 => Cost::from_milliweight(92),
7815            Elements::RightShiftWith64 => Cost::from_milliweight(97),
7816            Elements::RightShiftWith8 => Cost::from_milliweight(103),
7817            Elements::Rightmost16_1 => Cost::from_milliweight(70),
7818            Elements::Rightmost16_2 => Cost::from_milliweight(82),
7819            Elements::Rightmost16_4 => Cost::from_milliweight(76),
7820            Elements::Rightmost16_8 => Cost::from_milliweight(69),
7821            Elements::Rightmost32_1 => Cost::from_milliweight(90),
7822            Elements::Rightmost32_16 => Cost::from_milliweight(64),
7823            Elements::Rightmost32_2 => Cost::from_milliweight(74),
7824            Elements::Rightmost32_4 => Cost::from_milliweight(92),
7825            Elements::Rightmost32_8 => Cost::from_milliweight(78),
7826            Elements::Rightmost64_1 => Cost::from_milliweight(77),
7827            Elements::Rightmost64_16 => Cost::from_milliweight(86),
7828            Elements::Rightmost64_2 => Cost::from_milliweight(74),
7829            Elements::Rightmost64_32 => Cost::from_milliweight(76),
7830            Elements::Rightmost64_4 => Cost::from_milliweight(70),
7831            Elements::Rightmost64_8 => Cost::from_milliweight(69),
7832            Elements::Rightmost8_1 => Cost::from_milliweight(79),
7833            Elements::Rightmost8_2 => Cost::from_milliweight(98),
7834            Elements::Rightmost8_4 => Cost::from_milliweight(98),
7835            Elements::ScalarAdd => Cost::from_milliweight(739),
7836            Elements::ScalarInvert => Cost::from_milliweight(3193),
7837            Elements::ScalarIsZero => Cost::from_milliweight(271),
7838            Elements::ScalarMultiply => Cost::from_milliweight(774),
7839            Elements::ScalarMultiplyLambda => Cost::from_milliweight(557),
7840            Elements::ScalarNegate => Cost::from_milliweight(490),
7841            Elements::ScalarNormalize => Cost::from_milliweight(472),
7842            Elements::ScalarSquare => Cost::from_milliweight(575),
7843            Elements::Scale => Cost::from_milliweight(72675),
7844            Elements::ScriptCMR => Cost::from_milliweight(136),
7845            Elements::Sha256Block => Cost::from_milliweight(771),
7846            Elements::Sha256Ctx8Add1 => Cost::from_milliweight(642),
7847            Elements::Sha256Ctx8Add128 => Cost::from_milliweight(1779),
7848            Elements::Sha256Ctx8Add16 => Cost::from_milliweight(747),
7849            Elements::Sha256Ctx8Add2 => Cost::from_milliweight(661),
7850            Elements::Sha256Ctx8Add256 => Cost::from_milliweight(2912),
7851            Elements::Sha256Ctx8Add32 => Cost::from_milliweight(896),
7852            Elements::Sha256Ctx8Add4 => Cost::from_milliweight(645),
7853            Elements::Sha256Ctx8Add512 => Cost::from_milliweight(5299),
7854            Elements::Sha256Ctx8Add64 => Cost::from_milliweight(1187),
7855            Elements::Sha256Ctx8Add8 => Cost::from_milliweight(674),
7856            Elements::Sha256Ctx8AddBuffer511 => Cost::from_milliweight(5060),
7857            Elements::Sha256Ctx8Finalize => Cost::from_milliweight(835),
7858            Elements::Sha256Ctx8Init => Cost::from_milliweight(118),
7859            Elements::Sha256Iv => Cost::from_milliweight(93),
7860            Elements::SigAllHash => Cost::from_milliweight(133),
7861            Elements::Some1 => Cost::from_milliweight(70),
7862            Elements::Some16 => Cost::from_milliweight(63),
7863            Elements::Some32 => Cost::from_milliweight(64),
7864            Elements::Some64 => Cost::from_milliweight(93),
7865            Elements::Some8 => Cost::from_milliweight(75),
7866            Elements::Subtract16 => Cost::from_milliweight(113),
7867            Elements::Subtract32 => Cost::from_milliweight(118),
7868            Elements::Subtract64 => Cost::from_milliweight(115),
7869            Elements::Subtract8 => Cost::from_milliweight(109),
7870            Elements::Swu => Cost::from_milliweight(32120),
7871            Elements::TapEnvHash => Cost::from_milliweight(162),
7872            Elements::TapdataInit => Cost::from_milliweight(1178),
7873            Elements::TapleafHash => Cost::from_milliweight(136),
7874            Elements::TapleafVersion => Cost::from_milliweight(105),
7875            Elements::Tappath => Cost::from_milliweight(83),
7876            Elements::TappathHash => Cost::from_milliweight(143),
7877            Elements::TotalFee => Cost::from_milliweight(230),
7878            Elements::TransactionId => Cost::from_milliweight(139),
7879            Elements::TxHash => Cost::from_milliweight(143),
7880            Elements::TxIsFinal => Cost::from_milliweight(71),
7881            Elements::TxLockHeight => Cost::from_milliweight(80),
7882            Elements::TxLockTime => Cost::from_milliweight(80),
7883            Elements::Verify => Cost::from_milliweight(57),
7884            Elements::Version => Cost::from_milliweight(93),
7885            Elements::Xor1 => Cost::from_milliweight(67),
7886            Elements::Xor16 => Cost::from_milliweight(83),
7887            Elements::Xor32 => Cost::from_milliweight(92),
7888            Elements::Xor64 => Cost::from_milliweight(95),
7889            Elements::Xor8 => Cost::from_milliweight(85),
7890            Elements::XorXor1 => Cost::from_milliweight(72),
7891            Elements::XorXor16 => Cost::from_milliweight(79),
7892            Elements::XorXor32 => Cost::from_milliweight(96),
7893            Elements::XorXor64 => Cost::from_milliweight(93),
7894            Elements::XorXor8 => Cost::from_milliweight(98),
7895        }
7896    }
7897
7898    fn parse(s: &str) -> Result<Self, crate::Error> where Self: Sized {
7899        str::FromStr::from_str(s)
7900    }
7901}
7902
7903impl fmt::Display for Elements {
7904    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
7905        match self {
7906            Elements::Add16 => f.write_str("add_16"),
7907            Elements::Add32 => f.write_str("add_32"),
7908            Elements::Add64 => f.write_str("add_64"),
7909            Elements::Add8 => f.write_str("add_8"),
7910            Elements::All16 => f.write_str("all_16"),
7911            Elements::All32 => f.write_str("all_32"),
7912            Elements::All64 => f.write_str("all_64"),
7913            Elements::All8 => f.write_str("all_8"),
7914            Elements::And1 => f.write_str("and_1"),
7915            Elements::And16 => f.write_str("and_16"),
7916            Elements::And32 => f.write_str("and_32"),
7917            Elements::And64 => f.write_str("and_64"),
7918            Elements::And8 => f.write_str("and_8"),
7919            Elements::AnnexHash => f.write_str("annex_hash"),
7920            Elements::AssetAmountHash => f.write_str("asset_amount_hash"),
7921            Elements::Bip0340Verify => f.write_str("bip_0340_verify"),
7922            Elements::BrokenDoNotUseCheckLockDistance => f.write_str("broken_do_not_use_check_lock_distance"),
7923            Elements::BrokenDoNotUseCheckLockDuration => f.write_str("broken_do_not_use_check_lock_duration"),
7924            Elements::BrokenDoNotUseTxLockDistance => f.write_str("broken_do_not_use_tx_lock_distance"),
7925            Elements::BrokenDoNotUseTxLockDuration => f.write_str("broken_do_not_use_tx_lock_duration"),
7926            Elements::BuildTapbranch => f.write_str("build_tapbranch"),
7927            Elements::BuildTapleafSimplicity => f.write_str("build_tapleaf_simplicity"),
7928            Elements::BuildTaptweak => f.write_str("build_taptweak"),
7929            Elements::CalculateAsset => f.write_str("calculate_asset"),
7930            Elements::CalculateConfidentialToken => f.write_str("calculate_confidential_token"),
7931            Elements::CalculateExplicitToken => f.write_str("calculate_explicit_token"),
7932            Elements::CalculateIssuanceEntropy => f.write_str("calculate_issuance_entropy"),
7933            Elements::Ch1 => f.write_str("ch_1"),
7934            Elements::Ch16 => f.write_str("ch_16"),
7935            Elements::Ch32 => f.write_str("ch_32"),
7936            Elements::Ch64 => f.write_str("ch_64"),
7937            Elements::Ch8 => f.write_str("ch_8"),
7938            Elements::CheckLockHeight => f.write_str("check_lock_height"),
7939            Elements::CheckLockTime => f.write_str("check_lock_time"),
7940            Elements::CheckSigVerify => f.write_str("check_sig_verify"),
7941            Elements::Complement1 => f.write_str("complement_1"),
7942            Elements::Complement16 => f.write_str("complement_16"),
7943            Elements::Complement32 => f.write_str("complement_32"),
7944            Elements::Complement64 => f.write_str("complement_64"),
7945            Elements::Complement8 => f.write_str("complement_8"),
7946            Elements::CurrentAmount => f.write_str("current_amount"),
7947            Elements::CurrentAnnexHash => f.write_str("current_annex_hash"),
7948            Elements::CurrentAsset => f.write_str("current_asset"),
7949            Elements::CurrentIndex => f.write_str("current_index"),
7950            Elements::CurrentIssuanceAssetAmount => f.write_str("current_issuance_asset_amount"),
7951            Elements::CurrentIssuanceAssetProof => f.write_str("current_issuance_asset_proof"),
7952            Elements::CurrentIssuanceTokenAmount => f.write_str("current_issuance_token_amount"),
7953            Elements::CurrentIssuanceTokenProof => f.write_str("current_issuance_token_proof"),
7954            Elements::CurrentNewIssuanceContract => f.write_str("current_new_issuance_contract"),
7955            Elements::CurrentPegin => f.write_str("current_pegin"),
7956            Elements::CurrentPrevOutpoint => f.write_str("current_prev_outpoint"),
7957            Elements::CurrentReissuanceBlinding => f.write_str("current_reissuance_blinding"),
7958            Elements::CurrentReissuanceEntropy => f.write_str("current_reissuance_entropy"),
7959            Elements::CurrentScriptHash => f.write_str("current_script_hash"),
7960            Elements::CurrentScriptSigHash => f.write_str("current_script_sig_hash"),
7961            Elements::CurrentSequence => f.write_str("current_sequence"),
7962            Elements::Decompress => f.write_str("decompress"),
7963            Elements::Decrement16 => f.write_str("decrement_16"),
7964            Elements::Decrement32 => f.write_str("decrement_32"),
7965            Elements::Decrement64 => f.write_str("decrement_64"),
7966            Elements::Decrement8 => f.write_str("decrement_8"),
7967            Elements::DivMod128_64 => f.write_str("div_mod_128_64"),
7968            Elements::DivMod16 => f.write_str("div_mod_16"),
7969            Elements::DivMod32 => f.write_str("div_mod_32"),
7970            Elements::DivMod64 => f.write_str("div_mod_64"),
7971            Elements::DivMod8 => f.write_str("div_mod_8"),
7972            Elements::Divide16 => f.write_str("divide_16"),
7973            Elements::Divide32 => f.write_str("divide_32"),
7974            Elements::Divide64 => f.write_str("divide_64"),
7975            Elements::Divide8 => f.write_str("divide_8"),
7976            Elements::Divides16 => f.write_str("divides_16"),
7977            Elements::Divides32 => f.write_str("divides_32"),
7978            Elements::Divides64 => f.write_str("divides_64"),
7979            Elements::Divides8 => f.write_str("divides_8"),
7980            Elements::Eq1 => f.write_str("eq_1"),
7981            Elements::Eq16 => f.write_str("eq_16"),
7982            Elements::Eq256 => f.write_str("eq_256"),
7983            Elements::Eq32 => f.write_str("eq_32"),
7984            Elements::Eq64 => f.write_str("eq_64"),
7985            Elements::Eq8 => f.write_str("eq_8"),
7986            Elements::FeAdd => f.write_str("fe_add"),
7987            Elements::FeInvert => f.write_str("fe_invert"),
7988            Elements::FeIsOdd => f.write_str("fe_is_odd"),
7989            Elements::FeIsZero => f.write_str("fe_is_zero"),
7990            Elements::FeMultiply => f.write_str("fe_multiply"),
7991            Elements::FeMultiplyBeta => f.write_str("fe_multiply_beta"),
7992            Elements::FeNegate => f.write_str("fe_negate"),
7993            Elements::FeNormalize => f.write_str("fe_normalize"),
7994            Elements::FeSquare => f.write_str("fe_square"),
7995            Elements::FeSquareRoot => f.write_str("fe_square_root"),
7996            Elements::FullAdd16 => f.write_str("full_add_16"),
7997            Elements::FullAdd32 => f.write_str("full_add_32"),
7998            Elements::FullAdd64 => f.write_str("full_add_64"),
7999            Elements::FullAdd8 => f.write_str("full_add_8"),
8000            Elements::FullDecrement16 => f.write_str("full_decrement_16"),
8001            Elements::FullDecrement32 => f.write_str("full_decrement_32"),
8002            Elements::FullDecrement64 => f.write_str("full_decrement_64"),
8003            Elements::FullDecrement8 => f.write_str("full_decrement_8"),
8004            Elements::FullIncrement16 => f.write_str("full_increment_16"),
8005            Elements::FullIncrement32 => f.write_str("full_increment_32"),
8006            Elements::FullIncrement64 => f.write_str("full_increment_64"),
8007            Elements::FullIncrement8 => f.write_str("full_increment_8"),
8008            Elements::FullLeftShift16_1 => f.write_str("full_left_shift_16_1"),
8009            Elements::FullLeftShift16_2 => f.write_str("full_left_shift_16_2"),
8010            Elements::FullLeftShift16_4 => f.write_str("full_left_shift_16_4"),
8011            Elements::FullLeftShift16_8 => f.write_str("full_left_shift_16_8"),
8012            Elements::FullLeftShift32_1 => f.write_str("full_left_shift_32_1"),
8013            Elements::FullLeftShift32_16 => f.write_str("full_left_shift_32_16"),
8014            Elements::FullLeftShift32_2 => f.write_str("full_left_shift_32_2"),
8015            Elements::FullLeftShift32_4 => f.write_str("full_left_shift_32_4"),
8016            Elements::FullLeftShift32_8 => f.write_str("full_left_shift_32_8"),
8017            Elements::FullLeftShift64_1 => f.write_str("full_left_shift_64_1"),
8018            Elements::FullLeftShift64_16 => f.write_str("full_left_shift_64_16"),
8019            Elements::FullLeftShift64_2 => f.write_str("full_left_shift_64_2"),
8020            Elements::FullLeftShift64_32 => f.write_str("full_left_shift_64_32"),
8021            Elements::FullLeftShift64_4 => f.write_str("full_left_shift_64_4"),
8022            Elements::FullLeftShift64_8 => f.write_str("full_left_shift_64_8"),
8023            Elements::FullLeftShift8_1 => f.write_str("full_left_shift_8_1"),
8024            Elements::FullLeftShift8_2 => f.write_str("full_left_shift_8_2"),
8025            Elements::FullLeftShift8_4 => f.write_str("full_left_shift_8_4"),
8026            Elements::FullMultiply16 => f.write_str("full_multiply_16"),
8027            Elements::FullMultiply32 => f.write_str("full_multiply_32"),
8028            Elements::FullMultiply64 => f.write_str("full_multiply_64"),
8029            Elements::FullMultiply8 => f.write_str("full_multiply_8"),
8030            Elements::FullRightShift16_1 => f.write_str("full_right_shift_16_1"),
8031            Elements::FullRightShift16_2 => f.write_str("full_right_shift_16_2"),
8032            Elements::FullRightShift16_4 => f.write_str("full_right_shift_16_4"),
8033            Elements::FullRightShift16_8 => f.write_str("full_right_shift_16_8"),
8034            Elements::FullRightShift32_1 => f.write_str("full_right_shift_32_1"),
8035            Elements::FullRightShift32_16 => f.write_str("full_right_shift_32_16"),
8036            Elements::FullRightShift32_2 => f.write_str("full_right_shift_32_2"),
8037            Elements::FullRightShift32_4 => f.write_str("full_right_shift_32_4"),
8038            Elements::FullRightShift32_8 => f.write_str("full_right_shift_32_8"),
8039            Elements::FullRightShift64_1 => f.write_str("full_right_shift_64_1"),
8040            Elements::FullRightShift64_16 => f.write_str("full_right_shift_64_16"),
8041            Elements::FullRightShift64_2 => f.write_str("full_right_shift_64_2"),
8042            Elements::FullRightShift64_32 => f.write_str("full_right_shift_64_32"),
8043            Elements::FullRightShift64_4 => f.write_str("full_right_shift_64_4"),
8044            Elements::FullRightShift64_8 => f.write_str("full_right_shift_64_8"),
8045            Elements::FullRightShift8_1 => f.write_str("full_right_shift_8_1"),
8046            Elements::FullRightShift8_2 => f.write_str("full_right_shift_8_2"),
8047            Elements::FullRightShift8_4 => f.write_str("full_right_shift_8_4"),
8048            Elements::FullSubtract16 => f.write_str("full_subtract_16"),
8049            Elements::FullSubtract32 => f.write_str("full_subtract_32"),
8050            Elements::FullSubtract64 => f.write_str("full_subtract_64"),
8051            Elements::FullSubtract8 => f.write_str("full_subtract_8"),
8052            Elements::GeIsOnCurve => f.write_str("ge_is_on_curve"),
8053            Elements::GeNegate => f.write_str("ge_negate"),
8054            Elements::GejAdd => f.write_str("gej_add"),
8055            Elements::GejDouble => f.write_str("gej_double"),
8056            Elements::GejEquiv => f.write_str("gej_equiv"),
8057            Elements::GejGeAdd => f.write_str("gej_ge_add"),
8058            Elements::GejGeAddEx => f.write_str("gej_ge_add_ex"),
8059            Elements::GejGeEquiv => f.write_str("gej_ge_equiv"),
8060            Elements::GejInfinity => f.write_str("gej_infinity"),
8061            Elements::GejIsInfinity => f.write_str("gej_is_infinity"),
8062            Elements::GejIsOnCurve => f.write_str("gej_is_on_curve"),
8063            Elements::GejNegate => f.write_str("gej_negate"),
8064            Elements::GejNormalize => f.write_str("gej_normalize"),
8065            Elements::GejRescale => f.write_str("gej_rescale"),
8066            Elements::GejXEquiv => f.write_str("gej_x_equiv"),
8067            Elements::GejYIsOdd => f.write_str("gej_y_is_odd"),
8068            Elements::Generate => f.write_str("generate"),
8069            Elements::GenesisBlockHash => f.write_str("genesis_block_hash"),
8070            Elements::HashToCurve => f.write_str("hash_to_curve"),
8071            Elements::High1 => f.write_str("high_1"),
8072            Elements::High16 => f.write_str("high_16"),
8073            Elements::High32 => f.write_str("high_32"),
8074            Elements::High64 => f.write_str("high_64"),
8075            Elements::High8 => f.write_str("high_8"),
8076            Elements::Increment16 => f.write_str("increment_16"),
8077            Elements::Increment32 => f.write_str("increment_32"),
8078            Elements::Increment64 => f.write_str("increment_64"),
8079            Elements::Increment8 => f.write_str("increment_8"),
8080            Elements::InputAmount => f.write_str("input_amount"),
8081            Elements::InputAmountsHash => f.write_str("input_amounts_hash"),
8082            Elements::InputAnnexHash => f.write_str("input_annex_hash"),
8083            Elements::InputAnnexesHash => f.write_str("input_annexes_hash"),
8084            Elements::InputAsset => f.write_str("input_asset"),
8085            Elements::InputHash => f.write_str("input_hash"),
8086            Elements::InputOutpointsHash => f.write_str("input_outpoints_hash"),
8087            Elements::InputPegin => f.write_str("input_pegin"),
8088            Elements::InputPrevOutpoint => f.write_str("input_prev_outpoint"),
8089            Elements::InputScriptHash => f.write_str("input_script_hash"),
8090            Elements::InputScriptSigHash => f.write_str("input_script_sig_hash"),
8091            Elements::InputScriptSigsHash => f.write_str("input_script_sigs_hash"),
8092            Elements::InputScriptsHash => f.write_str("input_scripts_hash"),
8093            Elements::InputSequence => f.write_str("input_sequence"),
8094            Elements::InputSequencesHash => f.write_str("input_sequences_hash"),
8095            Elements::InputUtxoHash => f.write_str("input_utxo_hash"),
8096            Elements::InputUtxosHash => f.write_str("input_utxos_hash"),
8097            Elements::InputsHash => f.write_str("inputs_hash"),
8098            Elements::InternalKey => f.write_str("internal_key"),
8099            Elements::IsOne16 => f.write_str("is_one_16"),
8100            Elements::IsOne32 => f.write_str("is_one_32"),
8101            Elements::IsOne64 => f.write_str("is_one_64"),
8102            Elements::IsOne8 => f.write_str("is_one_8"),
8103            Elements::IsZero16 => f.write_str("is_zero_16"),
8104            Elements::IsZero32 => f.write_str("is_zero_32"),
8105            Elements::IsZero64 => f.write_str("is_zero_64"),
8106            Elements::IsZero8 => f.write_str("is_zero_8"),
8107            Elements::Issuance => f.write_str("issuance"),
8108            Elements::IssuanceAsset => f.write_str("issuance_asset"),
8109            Elements::IssuanceAssetAmount => f.write_str("issuance_asset_amount"),
8110            Elements::IssuanceAssetAmountsHash => f.write_str("issuance_asset_amounts_hash"),
8111            Elements::IssuanceAssetProof => f.write_str("issuance_asset_proof"),
8112            Elements::IssuanceBlindingEntropyHash => f.write_str("issuance_blinding_entropy_hash"),
8113            Elements::IssuanceEntropy => f.write_str("issuance_entropy"),
8114            Elements::IssuanceHash => f.write_str("issuance_hash"),
8115            Elements::IssuanceRangeProofsHash => f.write_str("issuance_range_proofs_hash"),
8116            Elements::IssuanceToken => f.write_str("issuance_token"),
8117            Elements::IssuanceTokenAmount => f.write_str("issuance_token_amount"),
8118            Elements::IssuanceTokenAmountsHash => f.write_str("issuance_token_amounts_hash"),
8119            Elements::IssuanceTokenProof => f.write_str("issuance_token_proof"),
8120            Elements::IssuancesHash => f.write_str("issuances_hash"),
8121            Elements::LbtcAsset => f.write_str("lbtc_asset"),
8122            Elements::Le16 => f.write_str("le_16"),
8123            Elements::Le32 => f.write_str("le_32"),
8124            Elements::Le64 => f.write_str("le_64"),
8125            Elements::Le8 => f.write_str("le_8"),
8126            Elements::LeftExtend16_32 => f.write_str("left_extend_16_32"),
8127            Elements::LeftExtend16_64 => f.write_str("left_extend_16_64"),
8128            Elements::LeftExtend1_16 => f.write_str("left_extend_1_16"),
8129            Elements::LeftExtend1_32 => f.write_str("left_extend_1_32"),
8130            Elements::LeftExtend1_64 => f.write_str("left_extend_1_64"),
8131            Elements::LeftExtend1_8 => f.write_str("left_extend_1_8"),
8132            Elements::LeftExtend32_64 => f.write_str("left_extend_32_64"),
8133            Elements::LeftExtend8_16 => f.write_str("left_extend_8_16"),
8134            Elements::LeftExtend8_32 => f.write_str("left_extend_8_32"),
8135            Elements::LeftExtend8_64 => f.write_str("left_extend_8_64"),
8136            Elements::LeftPadHigh16_32 => f.write_str("left_pad_high_16_32"),
8137            Elements::LeftPadHigh16_64 => f.write_str("left_pad_high_16_64"),
8138            Elements::LeftPadHigh1_16 => f.write_str("left_pad_high_1_16"),
8139            Elements::LeftPadHigh1_32 => f.write_str("left_pad_high_1_32"),
8140            Elements::LeftPadHigh1_64 => f.write_str("left_pad_high_1_64"),
8141            Elements::LeftPadHigh1_8 => f.write_str("left_pad_high_1_8"),
8142            Elements::LeftPadHigh32_64 => f.write_str("left_pad_high_32_64"),
8143            Elements::LeftPadHigh8_16 => f.write_str("left_pad_high_8_16"),
8144            Elements::LeftPadHigh8_32 => f.write_str("left_pad_high_8_32"),
8145            Elements::LeftPadHigh8_64 => f.write_str("left_pad_high_8_64"),
8146            Elements::LeftPadLow16_32 => f.write_str("left_pad_low_16_32"),
8147            Elements::LeftPadLow16_64 => f.write_str("left_pad_low_16_64"),
8148            Elements::LeftPadLow1_16 => f.write_str("left_pad_low_1_16"),
8149            Elements::LeftPadLow1_32 => f.write_str("left_pad_low_1_32"),
8150            Elements::LeftPadLow1_64 => f.write_str("left_pad_low_1_64"),
8151            Elements::LeftPadLow1_8 => f.write_str("left_pad_low_1_8"),
8152            Elements::LeftPadLow32_64 => f.write_str("left_pad_low_32_64"),
8153            Elements::LeftPadLow8_16 => f.write_str("left_pad_low_8_16"),
8154            Elements::LeftPadLow8_32 => f.write_str("left_pad_low_8_32"),
8155            Elements::LeftPadLow8_64 => f.write_str("left_pad_low_8_64"),
8156            Elements::LeftRotate16 => f.write_str("left_rotate_16"),
8157            Elements::LeftRotate32 => f.write_str("left_rotate_32"),
8158            Elements::LeftRotate64 => f.write_str("left_rotate_64"),
8159            Elements::LeftRotate8 => f.write_str("left_rotate_8"),
8160            Elements::LeftShift16 => f.write_str("left_shift_16"),
8161            Elements::LeftShift32 => f.write_str("left_shift_32"),
8162            Elements::LeftShift64 => f.write_str("left_shift_64"),
8163            Elements::LeftShift8 => f.write_str("left_shift_8"),
8164            Elements::LeftShiftWith16 => f.write_str("left_shift_with_16"),
8165            Elements::LeftShiftWith32 => f.write_str("left_shift_with_32"),
8166            Elements::LeftShiftWith64 => f.write_str("left_shift_with_64"),
8167            Elements::LeftShiftWith8 => f.write_str("left_shift_with_8"),
8168            Elements::Leftmost16_1 => f.write_str("leftmost_16_1"),
8169            Elements::Leftmost16_2 => f.write_str("leftmost_16_2"),
8170            Elements::Leftmost16_4 => f.write_str("leftmost_16_4"),
8171            Elements::Leftmost16_8 => f.write_str("leftmost_16_8"),
8172            Elements::Leftmost32_1 => f.write_str("leftmost_32_1"),
8173            Elements::Leftmost32_16 => f.write_str("leftmost_32_16"),
8174            Elements::Leftmost32_2 => f.write_str("leftmost_32_2"),
8175            Elements::Leftmost32_4 => f.write_str("leftmost_32_4"),
8176            Elements::Leftmost32_8 => f.write_str("leftmost_32_8"),
8177            Elements::Leftmost64_1 => f.write_str("leftmost_64_1"),
8178            Elements::Leftmost64_16 => f.write_str("leftmost_64_16"),
8179            Elements::Leftmost64_2 => f.write_str("leftmost_64_2"),
8180            Elements::Leftmost64_32 => f.write_str("leftmost_64_32"),
8181            Elements::Leftmost64_4 => f.write_str("leftmost_64_4"),
8182            Elements::Leftmost64_8 => f.write_str("leftmost_64_8"),
8183            Elements::Leftmost8_1 => f.write_str("leftmost_8_1"),
8184            Elements::Leftmost8_2 => f.write_str("leftmost_8_2"),
8185            Elements::Leftmost8_4 => f.write_str("leftmost_8_4"),
8186            Elements::LinearCombination1 => f.write_str("linear_combination_1"),
8187            Elements::LinearVerify1 => f.write_str("linear_verify_1"),
8188            Elements::LockTime => f.write_str("lock_time"),
8189            Elements::Low1 => f.write_str("low_1"),
8190            Elements::Low16 => f.write_str("low_16"),
8191            Elements::Low32 => f.write_str("low_32"),
8192            Elements::Low64 => f.write_str("low_64"),
8193            Elements::Low8 => f.write_str("low_8"),
8194            Elements::Lt16 => f.write_str("lt_16"),
8195            Elements::Lt32 => f.write_str("lt_32"),
8196            Elements::Lt64 => f.write_str("lt_64"),
8197            Elements::Lt8 => f.write_str("lt_8"),
8198            Elements::Maj1 => f.write_str("maj_1"),
8199            Elements::Maj16 => f.write_str("maj_16"),
8200            Elements::Maj32 => f.write_str("maj_32"),
8201            Elements::Maj64 => f.write_str("maj_64"),
8202            Elements::Maj8 => f.write_str("maj_8"),
8203            Elements::Max16 => f.write_str("max_16"),
8204            Elements::Max32 => f.write_str("max_32"),
8205            Elements::Max64 => f.write_str("max_64"),
8206            Elements::Max8 => f.write_str("max_8"),
8207            Elements::Median16 => f.write_str("median_16"),
8208            Elements::Median32 => f.write_str("median_32"),
8209            Elements::Median64 => f.write_str("median_64"),
8210            Elements::Median8 => f.write_str("median_8"),
8211            Elements::Min16 => f.write_str("min_16"),
8212            Elements::Min32 => f.write_str("min_32"),
8213            Elements::Min64 => f.write_str("min_64"),
8214            Elements::Min8 => f.write_str("min_8"),
8215            Elements::Modulo16 => f.write_str("modulo_16"),
8216            Elements::Modulo32 => f.write_str("modulo_32"),
8217            Elements::Modulo64 => f.write_str("modulo_64"),
8218            Elements::Modulo8 => f.write_str("modulo_8"),
8219            Elements::Multiply16 => f.write_str("multiply_16"),
8220            Elements::Multiply32 => f.write_str("multiply_32"),
8221            Elements::Multiply64 => f.write_str("multiply_64"),
8222            Elements::Multiply8 => f.write_str("multiply_8"),
8223            Elements::Negate16 => f.write_str("negate_16"),
8224            Elements::Negate32 => f.write_str("negate_32"),
8225            Elements::Negate64 => f.write_str("negate_64"),
8226            Elements::Negate8 => f.write_str("negate_8"),
8227            Elements::NewIssuanceContract => f.write_str("new_issuance_contract"),
8228            Elements::NonceHash => f.write_str("nonce_hash"),
8229            Elements::NumInputs => f.write_str("num_inputs"),
8230            Elements::NumOutputs => f.write_str("num_outputs"),
8231            Elements::One16 => f.write_str("one_16"),
8232            Elements::One32 => f.write_str("one_32"),
8233            Elements::One64 => f.write_str("one_64"),
8234            Elements::One8 => f.write_str("one_8"),
8235            Elements::Or1 => f.write_str("or_1"),
8236            Elements::Or16 => f.write_str("or_16"),
8237            Elements::Or32 => f.write_str("or_32"),
8238            Elements::Or64 => f.write_str("or_64"),
8239            Elements::Or8 => f.write_str("or_8"),
8240            Elements::OutpointHash => f.write_str("outpoint_hash"),
8241            Elements::OutputAmount => f.write_str("output_amount"),
8242            Elements::OutputAmountsHash => f.write_str("output_amounts_hash"),
8243            Elements::OutputAsset => f.write_str("output_asset"),
8244            Elements::OutputHash => f.write_str("output_hash"),
8245            Elements::OutputIsFee => f.write_str("output_is_fee"),
8246            Elements::OutputNonce => f.write_str("output_nonce"),
8247            Elements::OutputNoncesHash => f.write_str("output_nonces_hash"),
8248            Elements::OutputNullDatum => f.write_str("output_null_datum"),
8249            Elements::OutputRangeProof => f.write_str("output_range_proof"),
8250            Elements::OutputRangeProofsHash => f.write_str("output_range_proofs_hash"),
8251            Elements::OutputScriptHash => f.write_str("output_script_hash"),
8252            Elements::OutputScriptsHash => f.write_str("output_scripts_hash"),
8253            Elements::OutputSurjectionProof => f.write_str("output_surjection_proof"),
8254            Elements::OutputSurjectionProofsHash => f.write_str("output_surjection_proofs_hash"),
8255            Elements::OutputsHash => f.write_str("outputs_hash"),
8256            Elements::ParseLock => f.write_str("parse_lock"),
8257            Elements::ParseSequence => f.write_str("parse_sequence"),
8258            Elements::PointVerify1 => f.write_str("point_verify_1"),
8259            Elements::ReissuanceBlinding => f.write_str("reissuance_blinding"),
8260            Elements::ReissuanceEntropy => f.write_str("reissuance_entropy"),
8261            Elements::RightExtend16_32 => f.write_str("right_extend_16_32"),
8262            Elements::RightExtend16_64 => f.write_str("right_extend_16_64"),
8263            Elements::RightExtend32_64 => f.write_str("right_extend_32_64"),
8264            Elements::RightExtend8_16 => f.write_str("right_extend_8_16"),
8265            Elements::RightExtend8_32 => f.write_str("right_extend_8_32"),
8266            Elements::RightExtend8_64 => f.write_str("right_extend_8_64"),
8267            Elements::RightPadHigh16_32 => f.write_str("right_pad_high_16_32"),
8268            Elements::RightPadHigh16_64 => f.write_str("right_pad_high_16_64"),
8269            Elements::RightPadHigh1_16 => f.write_str("right_pad_high_1_16"),
8270            Elements::RightPadHigh1_32 => f.write_str("right_pad_high_1_32"),
8271            Elements::RightPadHigh1_64 => f.write_str("right_pad_high_1_64"),
8272            Elements::RightPadHigh1_8 => f.write_str("right_pad_high_1_8"),
8273            Elements::RightPadHigh32_64 => f.write_str("right_pad_high_32_64"),
8274            Elements::RightPadHigh8_16 => f.write_str("right_pad_high_8_16"),
8275            Elements::RightPadHigh8_32 => f.write_str("right_pad_high_8_32"),
8276            Elements::RightPadHigh8_64 => f.write_str("right_pad_high_8_64"),
8277            Elements::RightPadLow16_32 => f.write_str("right_pad_low_16_32"),
8278            Elements::RightPadLow16_64 => f.write_str("right_pad_low_16_64"),
8279            Elements::RightPadLow1_16 => f.write_str("right_pad_low_1_16"),
8280            Elements::RightPadLow1_32 => f.write_str("right_pad_low_1_32"),
8281            Elements::RightPadLow1_64 => f.write_str("right_pad_low_1_64"),
8282            Elements::RightPadLow1_8 => f.write_str("right_pad_low_1_8"),
8283            Elements::RightPadLow32_64 => f.write_str("right_pad_low_32_64"),
8284            Elements::RightPadLow8_16 => f.write_str("right_pad_low_8_16"),
8285            Elements::RightPadLow8_32 => f.write_str("right_pad_low_8_32"),
8286            Elements::RightPadLow8_64 => f.write_str("right_pad_low_8_64"),
8287            Elements::RightRotate16 => f.write_str("right_rotate_16"),
8288            Elements::RightRotate32 => f.write_str("right_rotate_32"),
8289            Elements::RightRotate64 => f.write_str("right_rotate_64"),
8290            Elements::RightRotate8 => f.write_str("right_rotate_8"),
8291            Elements::RightShift16 => f.write_str("right_shift_16"),
8292            Elements::RightShift32 => f.write_str("right_shift_32"),
8293            Elements::RightShift64 => f.write_str("right_shift_64"),
8294            Elements::RightShift8 => f.write_str("right_shift_8"),
8295            Elements::RightShiftWith16 => f.write_str("right_shift_with_16"),
8296            Elements::RightShiftWith32 => f.write_str("right_shift_with_32"),
8297            Elements::RightShiftWith64 => f.write_str("right_shift_with_64"),
8298            Elements::RightShiftWith8 => f.write_str("right_shift_with_8"),
8299            Elements::Rightmost16_1 => f.write_str("rightmost_16_1"),
8300            Elements::Rightmost16_2 => f.write_str("rightmost_16_2"),
8301            Elements::Rightmost16_4 => f.write_str("rightmost_16_4"),
8302            Elements::Rightmost16_8 => f.write_str("rightmost_16_8"),
8303            Elements::Rightmost32_1 => f.write_str("rightmost_32_1"),
8304            Elements::Rightmost32_16 => f.write_str("rightmost_32_16"),
8305            Elements::Rightmost32_2 => f.write_str("rightmost_32_2"),
8306            Elements::Rightmost32_4 => f.write_str("rightmost_32_4"),
8307            Elements::Rightmost32_8 => f.write_str("rightmost_32_8"),
8308            Elements::Rightmost64_1 => f.write_str("rightmost_64_1"),
8309            Elements::Rightmost64_16 => f.write_str("rightmost_64_16"),
8310            Elements::Rightmost64_2 => f.write_str("rightmost_64_2"),
8311            Elements::Rightmost64_32 => f.write_str("rightmost_64_32"),
8312            Elements::Rightmost64_4 => f.write_str("rightmost_64_4"),
8313            Elements::Rightmost64_8 => f.write_str("rightmost_64_8"),
8314            Elements::Rightmost8_1 => f.write_str("rightmost_8_1"),
8315            Elements::Rightmost8_2 => f.write_str("rightmost_8_2"),
8316            Elements::Rightmost8_4 => f.write_str("rightmost_8_4"),
8317            Elements::ScalarAdd => f.write_str("scalar_add"),
8318            Elements::ScalarInvert => f.write_str("scalar_invert"),
8319            Elements::ScalarIsZero => f.write_str("scalar_is_zero"),
8320            Elements::ScalarMultiply => f.write_str("scalar_multiply"),
8321            Elements::ScalarMultiplyLambda => f.write_str("scalar_multiply_lambda"),
8322            Elements::ScalarNegate => f.write_str("scalar_negate"),
8323            Elements::ScalarNormalize => f.write_str("scalar_normalize"),
8324            Elements::ScalarSquare => f.write_str("scalar_square"),
8325            Elements::Scale => f.write_str("scale"),
8326            Elements::ScriptCMR => f.write_str("script_cmr"),
8327            Elements::Sha256Block => f.write_str("sha_256_block"),
8328            Elements::Sha256Ctx8Add1 => f.write_str("sha_256_ctx_8_add_1"),
8329            Elements::Sha256Ctx8Add128 => f.write_str("sha_256_ctx_8_add_128"),
8330            Elements::Sha256Ctx8Add16 => f.write_str("sha_256_ctx_8_add_16"),
8331            Elements::Sha256Ctx8Add2 => f.write_str("sha_256_ctx_8_add_2"),
8332            Elements::Sha256Ctx8Add256 => f.write_str("sha_256_ctx_8_add_256"),
8333            Elements::Sha256Ctx8Add32 => f.write_str("sha_256_ctx_8_add_32"),
8334            Elements::Sha256Ctx8Add4 => f.write_str("sha_256_ctx_8_add_4"),
8335            Elements::Sha256Ctx8Add512 => f.write_str("sha_256_ctx_8_add_512"),
8336            Elements::Sha256Ctx8Add64 => f.write_str("sha_256_ctx_8_add_64"),
8337            Elements::Sha256Ctx8Add8 => f.write_str("sha_256_ctx_8_add_8"),
8338            Elements::Sha256Ctx8AddBuffer511 => f.write_str("sha_256_ctx_8_add_buffer_511"),
8339            Elements::Sha256Ctx8Finalize => f.write_str("sha_256_ctx_8_finalize"),
8340            Elements::Sha256Ctx8Init => f.write_str("sha_256_ctx_8_init"),
8341            Elements::Sha256Iv => f.write_str("sha_256_iv"),
8342            Elements::SigAllHash => f.write_str("sig_all_hash"),
8343            Elements::Some1 => f.write_str("some_1"),
8344            Elements::Some16 => f.write_str("some_16"),
8345            Elements::Some32 => f.write_str("some_32"),
8346            Elements::Some64 => f.write_str("some_64"),
8347            Elements::Some8 => f.write_str("some_8"),
8348            Elements::Subtract16 => f.write_str("subtract_16"),
8349            Elements::Subtract32 => f.write_str("subtract_32"),
8350            Elements::Subtract64 => f.write_str("subtract_64"),
8351            Elements::Subtract8 => f.write_str("subtract_8"),
8352            Elements::Swu => f.write_str("swu"),
8353            Elements::TapEnvHash => f.write_str("tap_env_hash"),
8354            Elements::TapdataInit => f.write_str("tapdata_init"),
8355            Elements::TapleafHash => f.write_str("tapleaf_hash"),
8356            Elements::TapleafVersion => f.write_str("tapleaf_version"),
8357            Elements::Tappath => f.write_str("tappath"),
8358            Elements::TappathHash => f.write_str("tappath_hash"),
8359            Elements::TotalFee => f.write_str("total_fee"),
8360            Elements::TransactionId => f.write_str("transaction_id"),
8361            Elements::TxHash => f.write_str("tx_hash"),
8362            Elements::TxIsFinal => f.write_str("tx_is_final"),
8363            Elements::TxLockHeight => f.write_str("tx_lock_height"),
8364            Elements::TxLockTime => f.write_str("tx_lock_time"),
8365            Elements::Verify => f.write_str("verify"),
8366            Elements::Version => f.write_str("version"),
8367            Elements::Xor1 => f.write_str("xor_1"),
8368            Elements::Xor16 => f.write_str("xor_16"),
8369            Elements::Xor32 => f.write_str("xor_32"),
8370            Elements::Xor64 => f.write_str("xor_64"),
8371            Elements::Xor8 => f.write_str("xor_8"),
8372            Elements::XorXor1 => f.write_str("xor_xor_1"),
8373            Elements::XorXor16 => f.write_str("xor_xor_16"),
8374            Elements::XorXor32 => f.write_str("xor_xor_32"),
8375            Elements::XorXor64 => f.write_str("xor_xor_64"),
8376            Elements::XorXor8 => f.write_str("xor_xor_8"),
8377        }
8378    }
8379}
8380
8381impl str::FromStr for Elements {
8382    type Err = crate::Error;
8383
8384    fn from_str(s: &str) -> Result<Self, Self::Err> {
8385        match s {
8386            "add_16" => Ok(Elements::Add16),
8387            "add_32" => Ok(Elements::Add32),
8388            "add_64" => Ok(Elements::Add64),
8389            "add_8" => Ok(Elements::Add8),
8390            "all_16" => Ok(Elements::All16),
8391            "all_32" => Ok(Elements::All32),
8392            "all_64" => Ok(Elements::All64),
8393            "all_8" => Ok(Elements::All8),
8394            "and_1" => Ok(Elements::And1),
8395            "and_16" => Ok(Elements::And16),
8396            "and_32" => Ok(Elements::And32),
8397            "and_64" => Ok(Elements::And64),
8398            "and_8" => Ok(Elements::And8),
8399            "annex_hash" => Ok(Elements::AnnexHash),
8400            "asset_amount_hash" => Ok(Elements::AssetAmountHash),
8401            "bip_0340_verify" => Ok(Elements::Bip0340Verify),
8402            "broken_do_not_use_check_lock_distance" => Ok(Elements::BrokenDoNotUseCheckLockDistance),
8403            "broken_do_not_use_check_lock_duration" => Ok(Elements::BrokenDoNotUseCheckLockDuration),
8404            "broken_do_not_use_tx_lock_distance" => Ok(Elements::BrokenDoNotUseTxLockDistance),
8405            "broken_do_not_use_tx_lock_duration" => Ok(Elements::BrokenDoNotUseTxLockDuration),
8406            "build_tapbranch" => Ok(Elements::BuildTapbranch),
8407            "build_tapleaf_simplicity" => Ok(Elements::BuildTapleafSimplicity),
8408            "build_taptweak" => Ok(Elements::BuildTaptweak),
8409            "calculate_asset" => Ok(Elements::CalculateAsset),
8410            "calculate_confidential_token" => Ok(Elements::CalculateConfidentialToken),
8411            "calculate_explicit_token" => Ok(Elements::CalculateExplicitToken),
8412            "calculate_issuance_entropy" => Ok(Elements::CalculateIssuanceEntropy),
8413            "ch_1" => Ok(Elements::Ch1),
8414            "ch_16" => Ok(Elements::Ch16),
8415            "ch_32" => Ok(Elements::Ch32),
8416            "ch_64" => Ok(Elements::Ch64),
8417            "ch_8" => Ok(Elements::Ch8),
8418            "check_lock_height" => Ok(Elements::CheckLockHeight),
8419            "check_lock_time" => Ok(Elements::CheckLockTime),
8420            "check_sig_verify" => Ok(Elements::CheckSigVerify),
8421            "complement_1" => Ok(Elements::Complement1),
8422            "complement_16" => Ok(Elements::Complement16),
8423            "complement_32" => Ok(Elements::Complement32),
8424            "complement_64" => Ok(Elements::Complement64),
8425            "complement_8" => Ok(Elements::Complement8),
8426            "current_amount" => Ok(Elements::CurrentAmount),
8427            "current_annex_hash" => Ok(Elements::CurrentAnnexHash),
8428            "current_asset" => Ok(Elements::CurrentAsset),
8429            "current_index" => Ok(Elements::CurrentIndex),
8430            "current_issuance_asset_amount" => Ok(Elements::CurrentIssuanceAssetAmount),
8431            "current_issuance_asset_proof" => Ok(Elements::CurrentIssuanceAssetProof),
8432            "current_issuance_token_amount" => Ok(Elements::CurrentIssuanceTokenAmount),
8433            "current_issuance_token_proof" => Ok(Elements::CurrentIssuanceTokenProof),
8434            "current_new_issuance_contract" => Ok(Elements::CurrentNewIssuanceContract),
8435            "current_pegin" => Ok(Elements::CurrentPegin),
8436            "current_prev_outpoint" => Ok(Elements::CurrentPrevOutpoint),
8437            "current_reissuance_blinding" => Ok(Elements::CurrentReissuanceBlinding),
8438            "current_reissuance_entropy" => Ok(Elements::CurrentReissuanceEntropy),
8439            "current_script_hash" => Ok(Elements::CurrentScriptHash),
8440            "current_script_sig_hash" => Ok(Elements::CurrentScriptSigHash),
8441            "current_sequence" => Ok(Elements::CurrentSequence),
8442            "decompress" => Ok(Elements::Decompress),
8443            "decrement_16" => Ok(Elements::Decrement16),
8444            "decrement_32" => Ok(Elements::Decrement32),
8445            "decrement_64" => Ok(Elements::Decrement64),
8446            "decrement_8" => Ok(Elements::Decrement8),
8447            "div_mod_128_64" => Ok(Elements::DivMod128_64),
8448            "div_mod_16" => Ok(Elements::DivMod16),
8449            "div_mod_32" => Ok(Elements::DivMod32),
8450            "div_mod_64" => Ok(Elements::DivMod64),
8451            "div_mod_8" => Ok(Elements::DivMod8),
8452            "divide_16" => Ok(Elements::Divide16),
8453            "divide_32" => Ok(Elements::Divide32),
8454            "divide_64" => Ok(Elements::Divide64),
8455            "divide_8" => Ok(Elements::Divide8),
8456            "divides_16" => Ok(Elements::Divides16),
8457            "divides_32" => Ok(Elements::Divides32),
8458            "divides_64" => Ok(Elements::Divides64),
8459            "divides_8" => Ok(Elements::Divides8),
8460            "eq_1" => Ok(Elements::Eq1),
8461            "eq_16" => Ok(Elements::Eq16),
8462            "eq_256" => Ok(Elements::Eq256),
8463            "eq_32" => Ok(Elements::Eq32),
8464            "eq_64" => Ok(Elements::Eq64),
8465            "eq_8" => Ok(Elements::Eq8),
8466            "fe_add" => Ok(Elements::FeAdd),
8467            "fe_invert" => Ok(Elements::FeInvert),
8468            "fe_is_odd" => Ok(Elements::FeIsOdd),
8469            "fe_is_zero" => Ok(Elements::FeIsZero),
8470            "fe_multiply" => Ok(Elements::FeMultiply),
8471            "fe_multiply_beta" => Ok(Elements::FeMultiplyBeta),
8472            "fe_negate" => Ok(Elements::FeNegate),
8473            "fe_normalize" => Ok(Elements::FeNormalize),
8474            "fe_square" => Ok(Elements::FeSquare),
8475            "fe_square_root" => Ok(Elements::FeSquareRoot),
8476            "full_add_16" => Ok(Elements::FullAdd16),
8477            "full_add_32" => Ok(Elements::FullAdd32),
8478            "full_add_64" => Ok(Elements::FullAdd64),
8479            "full_add_8" => Ok(Elements::FullAdd8),
8480            "full_decrement_16" => Ok(Elements::FullDecrement16),
8481            "full_decrement_32" => Ok(Elements::FullDecrement32),
8482            "full_decrement_64" => Ok(Elements::FullDecrement64),
8483            "full_decrement_8" => Ok(Elements::FullDecrement8),
8484            "full_increment_16" => Ok(Elements::FullIncrement16),
8485            "full_increment_32" => Ok(Elements::FullIncrement32),
8486            "full_increment_64" => Ok(Elements::FullIncrement64),
8487            "full_increment_8" => Ok(Elements::FullIncrement8),
8488            "full_left_shift_16_1" => Ok(Elements::FullLeftShift16_1),
8489            "full_left_shift_16_2" => Ok(Elements::FullLeftShift16_2),
8490            "full_left_shift_16_4" => Ok(Elements::FullLeftShift16_4),
8491            "full_left_shift_16_8" => Ok(Elements::FullLeftShift16_8),
8492            "full_left_shift_32_1" => Ok(Elements::FullLeftShift32_1),
8493            "full_left_shift_32_16" => Ok(Elements::FullLeftShift32_16),
8494            "full_left_shift_32_2" => Ok(Elements::FullLeftShift32_2),
8495            "full_left_shift_32_4" => Ok(Elements::FullLeftShift32_4),
8496            "full_left_shift_32_8" => Ok(Elements::FullLeftShift32_8),
8497            "full_left_shift_64_1" => Ok(Elements::FullLeftShift64_1),
8498            "full_left_shift_64_16" => Ok(Elements::FullLeftShift64_16),
8499            "full_left_shift_64_2" => Ok(Elements::FullLeftShift64_2),
8500            "full_left_shift_64_32" => Ok(Elements::FullLeftShift64_32),
8501            "full_left_shift_64_4" => Ok(Elements::FullLeftShift64_4),
8502            "full_left_shift_64_8" => Ok(Elements::FullLeftShift64_8),
8503            "full_left_shift_8_1" => Ok(Elements::FullLeftShift8_1),
8504            "full_left_shift_8_2" => Ok(Elements::FullLeftShift8_2),
8505            "full_left_shift_8_4" => Ok(Elements::FullLeftShift8_4),
8506            "full_multiply_16" => Ok(Elements::FullMultiply16),
8507            "full_multiply_32" => Ok(Elements::FullMultiply32),
8508            "full_multiply_64" => Ok(Elements::FullMultiply64),
8509            "full_multiply_8" => Ok(Elements::FullMultiply8),
8510            "full_right_shift_16_1" => Ok(Elements::FullRightShift16_1),
8511            "full_right_shift_16_2" => Ok(Elements::FullRightShift16_2),
8512            "full_right_shift_16_4" => Ok(Elements::FullRightShift16_4),
8513            "full_right_shift_16_8" => Ok(Elements::FullRightShift16_8),
8514            "full_right_shift_32_1" => Ok(Elements::FullRightShift32_1),
8515            "full_right_shift_32_16" => Ok(Elements::FullRightShift32_16),
8516            "full_right_shift_32_2" => Ok(Elements::FullRightShift32_2),
8517            "full_right_shift_32_4" => Ok(Elements::FullRightShift32_4),
8518            "full_right_shift_32_8" => Ok(Elements::FullRightShift32_8),
8519            "full_right_shift_64_1" => Ok(Elements::FullRightShift64_1),
8520            "full_right_shift_64_16" => Ok(Elements::FullRightShift64_16),
8521            "full_right_shift_64_2" => Ok(Elements::FullRightShift64_2),
8522            "full_right_shift_64_32" => Ok(Elements::FullRightShift64_32),
8523            "full_right_shift_64_4" => Ok(Elements::FullRightShift64_4),
8524            "full_right_shift_64_8" => Ok(Elements::FullRightShift64_8),
8525            "full_right_shift_8_1" => Ok(Elements::FullRightShift8_1),
8526            "full_right_shift_8_2" => Ok(Elements::FullRightShift8_2),
8527            "full_right_shift_8_4" => Ok(Elements::FullRightShift8_4),
8528            "full_subtract_16" => Ok(Elements::FullSubtract16),
8529            "full_subtract_32" => Ok(Elements::FullSubtract32),
8530            "full_subtract_64" => Ok(Elements::FullSubtract64),
8531            "full_subtract_8" => Ok(Elements::FullSubtract8),
8532            "ge_is_on_curve" => Ok(Elements::GeIsOnCurve),
8533            "ge_negate" => Ok(Elements::GeNegate),
8534            "gej_add" => Ok(Elements::GejAdd),
8535            "gej_double" => Ok(Elements::GejDouble),
8536            "gej_equiv" => Ok(Elements::GejEquiv),
8537            "gej_ge_add" => Ok(Elements::GejGeAdd),
8538            "gej_ge_add_ex" => Ok(Elements::GejGeAddEx),
8539            "gej_ge_equiv" => Ok(Elements::GejGeEquiv),
8540            "gej_infinity" => Ok(Elements::GejInfinity),
8541            "gej_is_infinity" => Ok(Elements::GejIsInfinity),
8542            "gej_is_on_curve" => Ok(Elements::GejIsOnCurve),
8543            "gej_negate" => Ok(Elements::GejNegate),
8544            "gej_normalize" => Ok(Elements::GejNormalize),
8545            "gej_rescale" => Ok(Elements::GejRescale),
8546            "gej_x_equiv" => Ok(Elements::GejXEquiv),
8547            "gej_y_is_odd" => Ok(Elements::GejYIsOdd),
8548            "generate" => Ok(Elements::Generate),
8549            "genesis_block_hash" => Ok(Elements::GenesisBlockHash),
8550            "hash_to_curve" => Ok(Elements::HashToCurve),
8551            "high_1" => Ok(Elements::High1),
8552            "high_16" => Ok(Elements::High16),
8553            "high_32" => Ok(Elements::High32),
8554            "high_64" => Ok(Elements::High64),
8555            "high_8" => Ok(Elements::High8),
8556            "increment_16" => Ok(Elements::Increment16),
8557            "increment_32" => Ok(Elements::Increment32),
8558            "increment_64" => Ok(Elements::Increment64),
8559            "increment_8" => Ok(Elements::Increment8),
8560            "input_amount" => Ok(Elements::InputAmount),
8561            "input_amounts_hash" => Ok(Elements::InputAmountsHash),
8562            "input_annex_hash" => Ok(Elements::InputAnnexHash),
8563            "input_annexes_hash" => Ok(Elements::InputAnnexesHash),
8564            "input_asset" => Ok(Elements::InputAsset),
8565            "input_hash" => Ok(Elements::InputHash),
8566            "input_outpoints_hash" => Ok(Elements::InputOutpointsHash),
8567            "input_pegin" => Ok(Elements::InputPegin),
8568            "input_prev_outpoint" => Ok(Elements::InputPrevOutpoint),
8569            "input_script_hash" => Ok(Elements::InputScriptHash),
8570            "input_script_sig_hash" => Ok(Elements::InputScriptSigHash),
8571            "input_script_sigs_hash" => Ok(Elements::InputScriptSigsHash),
8572            "input_scripts_hash" => Ok(Elements::InputScriptsHash),
8573            "input_sequence" => Ok(Elements::InputSequence),
8574            "input_sequences_hash" => Ok(Elements::InputSequencesHash),
8575            "input_utxo_hash" => Ok(Elements::InputUtxoHash),
8576            "input_utxos_hash" => Ok(Elements::InputUtxosHash),
8577            "inputs_hash" => Ok(Elements::InputsHash),
8578            "internal_key" => Ok(Elements::InternalKey),
8579            "is_one_16" => Ok(Elements::IsOne16),
8580            "is_one_32" => Ok(Elements::IsOne32),
8581            "is_one_64" => Ok(Elements::IsOne64),
8582            "is_one_8" => Ok(Elements::IsOne8),
8583            "is_zero_16" => Ok(Elements::IsZero16),
8584            "is_zero_32" => Ok(Elements::IsZero32),
8585            "is_zero_64" => Ok(Elements::IsZero64),
8586            "is_zero_8" => Ok(Elements::IsZero8),
8587            "issuance" => Ok(Elements::Issuance),
8588            "issuance_asset" => Ok(Elements::IssuanceAsset),
8589            "issuance_asset_amount" => Ok(Elements::IssuanceAssetAmount),
8590            "issuance_asset_amounts_hash" => Ok(Elements::IssuanceAssetAmountsHash),
8591            "issuance_asset_proof" => Ok(Elements::IssuanceAssetProof),
8592            "issuance_blinding_entropy_hash" => Ok(Elements::IssuanceBlindingEntropyHash),
8593            "issuance_entropy" => Ok(Elements::IssuanceEntropy),
8594            "issuance_hash" => Ok(Elements::IssuanceHash),
8595            "issuance_range_proofs_hash" => Ok(Elements::IssuanceRangeProofsHash),
8596            "issuance_token" => Ok(Elements::IssuanceToken),
8597            "issuance_token_amount" => Ok(Elements::IssuanceTokenAmount),
8598            "issuance_token_amounts_hash" => Ok(Elements::IssuanceTokenAmountsHash),
8599            "issuance_token_proof" => Ok(Elements::IssuanceTokenProof),
8600            "issuances_hash" => Ok(Elements::IssuancesHash),
8601            "lbtc_asset" => Ok(Elements::LbtcAsset),
8602            "le_16" => Ok(Elements::Le16),
8603            "le_32" => Ok(Elements::Le32),
8604            "le_64" => Ok(Elements::Le64),
8605            "le_8" => Ok(Elements::Le8),
8606            "left_extend_16_32" => Ok(Elements::LeftExtend16_32),
8607            "left_extend_16_64" => Ok(Elements::LeftExtend16_64),
8608            "left_extend_1_16" => Ok(Elements::LeftExtend1_16),
8609            "left_extend_1_32" => Ok(Elements::LeftExtend1_32),
8610            "left_extend_1_64" => Ok(Elements::LeftExtend1_64),
8611            "left_extend_1_8" => Ok(Elements::LeftExtend1_8),
8612            "left_extend_32_64" => Ok(Elements::LeftExtend32_64),
8613            "left_extend_8_16" => Ok(Elements::LeftExtend8_16),
8614            "left_extend_8_32" => Ok(Elements::LeftExtend8_32),
8615            "left_extend_8_64" => Ok(Elements::LeftExtend8_64),
8616            "left_pad_high_16_32" => Ok(Elements::LeftPadHigh16_32),
8617            "left_pad_high_16_64" => Ok(Elements::LeftPadHigh16_64),
8618            "left_pad_high_1_16" => Ok(Elements::LeftPadHigh1_16),
8619            "left_pad_high_1_32" => Ok(Elements::LeftPadHigh1_32),
8620            "left_pad_high_1_64" => Ok(Elements::LeftPadHigh1_64),
8621            "left_pad_high_1_8" => Ok(Elements::LeftPadHigh1_8),
8622            "left_pad_high_32_64" => Ok(Elements::LeftPadHigh32_64),
8623            "left_pad_high_8_16" => Ok(Elements::LeftPadHigh8_16),
8624            "left_pad_high_8_32" => Ok(Elements::LeftPadHigh8_32),
8625            "left_pad_high_8_64" => Ok(Elements::LeftPadHigh8_64),
8626            "left_pad_low_16_32" => Ok(Elements::LeftPadLow16_32),
8627            "left_pad_low_16_64" => Ok(Elements::LeftPadLow16_64),
8628            "left_pad_low_1_16" => Ok(Elements::LeftPadLow1_16),
8629            "left_pad_low_1_32" => Ok(Elements::LeftPadLow1_32),
8630            "left_pad_low_1_64" => Ok(Elements::LeftPadLow1_64),
8631            "left_pad_low_1_8" => Ok(Elements::LeftPadLow1_8),
8632            "left_pad_low_32_64" => Ok(Elements::LeftPadLow32_64),
8633            "left_pad_low_8_16" => Ok(Elements::LeftPadLow8_16),
8634            "left_pad_low_8_32" => Ok(Elements::LeftPadLow8_32),
8635            "left_pad_low_8_64" => Ok(Elements::LeftPadLow8_64),
8636            "left_rotate_16" => Ok(Elements::LeftRotate16),
8637            "left_rotate_32" => Ok(Elements::LeftRotate32),
8638            "left_rotate_64" => Ok(Elements::LeftRotate64),
8639            "left_rotate_8" => Ok(Elements::LeftRotate8),
8640            "left_shift_16" => Ok(Elements::LeftShift16),
8641            "left_shift_32" => Ok(Elements::LeftShift32),
8642            "left_shift_64" => Ok(Elements::LeftShift64),
8643            "left_shift_8" => Ok(Elements::LeftShift8),
8644            "left_shift_with_16" => Ok(Elements::LeftShiftWith16),
8645            "left_shift_with_32" => Ok(Elements::LeftShiftWith32),
8646            "left_shift_with_64" => Ok(Elements::LeftShiftWith64),
8647            "left_shift_with_8" => Ok(Elements::LeftShiftWith8),
8648            "leftmost_16_1" => Ok(Elements::Leftmost16_1),
8649            "leftmost_16_2" => Ok(Elements::Leftmost16_2),
8650            "leftmost_16_4" => Ok(Elements::Leftmost16_4),
8651            "leftmost_16_8" => Ok(Elements::Leftmost16_8),
8652            "leftmost_32_1" => Ok(Elements::Leftmost32_1),
8653            "leftmost_32_16" => Ok(Elements::Leftmost32_16),
8654            "leftmost_32_2" => Ok(Elements::Leftmost32_2),
8655            "leftmost_32_4" => Ok(Elements::Leftmost32_4),
8656            "leftmost_32_8" => Ok(Elements::Leftmost32_8),
8657            "leftmost_64_1" => Ok(Elements::Leftmost64_1),
8658            "leftmost_64_16" => Ok(Elements::Leftmost64_16),
8659            "leftmost_64_2" => Ok(Elements::Leftmost64_2),
8660            "leftmost_64_32" => Ok(Elements::Leftmost64_32),
8661            "leftmost_64_4" => Ok(Elements::Leftmost64_4),
8662            "leftmost_64_8" => Ok(Elements::Leftmost64_8),
8663            "leftmost_8_1" => Ok(Elements::Leftmost8_1),
8664            "leftmost_8_2" => Ok(Elements::Leftmost8_2),
8665            "leftmost_8_4" => Ok(Elements::Leftmost8_4),
8666            "linear_combination_1" => Ok(Elements::LinearCombination1),
8667            "linear_verify_1" => Ok(Elements::LinearVerify1),
8668            "lock_time" => Ok(Elements::LockTime),
8669            "low_1" => Ok(Elements::Low1),
8670            "low_16" => Ok(Elements::Low16),
8671            "low_32" => Ok(Elements::Low32),
8672            "low_64" => Ok(Elements::Low64),
8673            "low_8" => Ok(Elements::Low8),
8674            "lt_16" => Ok(Elements::Lt16),
8675            "lt_32" => Ok(Elements::Lt32),
8676            "lt_64" => Ok(Elements::Lt64),
8677            "lt_8" => Ok(Elements::Lt8),
8678            "maj_1" => Ok(Elements::Maj1),
8679            "maj_16" => Ok(Elements::Maj16),
8680            "maj_32" => Ok(Elements::Maj32),
8681            "maj_64" => Ok(Elements::Maj64),
8682            "maj_8" => Ok(Elements::Maj8),
8683            "max_16" => Ok(Elements::Max16),
8684            "max_32" => Ok(Elements::Max32),
8685            "max_64" => Ok(Elements::Max64),
8686            "max_8" => Ok(Elements::Max8),
8687            "median_16" => Ok(Elements::Median16),
8688            "median_32" => Ok(Elements::Median32),
8689            "median_64" => Ok(Elements::Median64),
8690            "median_8" => Ok(Elements::Median8),
8691            "min_16" => Ok(Elements::Min16),
8692            "min_32" => Ok(Elements::Min32),
8693            "min_64" => Ok(Elements::Min64),
8694            "min_8" => Ok(Elements::Min8),
8695            "modulo_16" => Ok(Elements::Modulo16),
8696            "modulo_32" => Ok(Elements::Modulo32),
8697            "modulo_64" => Ok(Elements::Modulo64),
8698            "modulo_8" => Ok(Elements::Modulo8),
8699            "multiply_16" => Ok(Elements::Multiply16),
8700            "multiply_32" => Ok(Elements::Multiply32),
8701            "multiply_64" => Ok(Elements::Multiply64),
8702            "multiply_8" => Ok(Elements::Multiply8),
8703            "negate_16" => Ok(Elements::Negate16),
8704            "negate_32" => Ok(Elements::Negate32),
8705            "negate_64" => Ok(Elements::Negate64),
8706            "negate_8" => Ok(Elements::Negate8),
8707            "new_issuance_contract" => Ok(Elements::NewIssuanceContract),
8708            "nonce_hash" => Ok(Elements::NonceHash),
8709            "num_inputs" => Ok(Elements::NumInputs),
8710            "num_outputs" => Ok(Elements::NumOutputs),
8711            "one_16" => Ok(Elements::One16),
8712            "one_32" => Ok(Elements::One32),
8713            "one_64" => Ok(Elements::One64),
8714            "one_8" => Ok(Elements::One8),
8715            "or_1" => Ok(Elements::Or1),
8716            "or_16" => Ok(Elements::Or16),
8717            "or_32" => Ok(Elements::Or32),
8718            "or_64" => Ok(Elements::Or64),
8719            "or_8" => Ok(Elements::Or8),
8720            "outpoint_hash" => Ok(Elements::OutpointHash),
8721            "output_amount" => Ok(Elements::OutputAmount),
8722            "output_amounts_hash" => Ok(Elements::OutputAmountsHash),
8723            "output_asset" => Ok(Elements::OutputAsset),
8724            "output_hash" => Ok(Elements::OutputHash),
8725            "output_is_fee" => Ok(Elements::OutputIsFee),
8726            "output_nonce" => Ok(Elements::OutputNonce),
8727            "output_nonces_hash" => Ok(Elements::OutputNoncesHash),
8728            "output_null_datum" => Ok(Elements::OutputNullDatum),
8729            "output_range_proof" => Ok(Elements::OutputRangeProof),
8730            "output_range_proofs_hash" => Ok(Elements::OutputRangeProofsHash),
8731            "output_script_hash" => Ok(Elements::OutputScriptHash),
8732            "output_scripts_hash" => Ok(Elements::OutputScriptsHash),
8733            "output_surjection_proof" => Ok(Elements::OutputSurjectionProof),
8734            "output_surjection_proofs_hash" => Ok(Elements::OutputSurjectionProofsHash),
8735            "outputs_hash" => Ok(Elements::OutputsHash),
8736            "parse_lock" => Ok(Elements::ParseLock),
8737            "parse_sequence" => Ok(Elements::ParseSequence),
8738            "point_verify_1" => Ok(Elements::PointVerify1),
8739            "reissuance_blinding" => Ok(Elements::ReissuanceBlinding),
8740            "reissuance_entropy" => Ok(Elements::ReissuanceEntropy),
8741            "right_extend_16_32" => Ok(Elements::RightExtend16_32),
8742            "right_extend_16_64" => Ok(Elements::RightExtend16_64),
8743            "right_extend_32_64" => Ok(Elements::RightExtend32_64),
8744            "right_extend_8_16" => Ok(Elements::RightExtend8_16),
8745            "right_extend_8_32" => Ok(Elements::RightExtend8_32),
8746            "right_extend_8_64" => Ok(Elements::RightExtend8_64),
8747            "right_pad_high_16_32" => Ok(Elements::RightPadHigh16_32),
8748            "right_pad_high_16_64" => Ok(Elements::RightPadHigh16_64),
8749            "right_pad_high_1_16" => Ok(Elements::RightPadHigh1_16),
8750            "right_pad_high_1_32" => Ok(Elements::RightPadHigh1_32),
8751            "right_pad_high_1_64" => Ok(Elements::RightPadHigh1_64),
8752            "right_pad_high_1_8" => Ok(Elements::RightPadHigh1_8),
8753            "right_pad_high_32_64" => Ok(Elements::RightPadHigh32_64),
8754            "right_pad_high_8_16" => Ok(Elements::RightPadHigh8_16),
8755            "right_pad_high_8_32" => Ok(Elements::RightPadHigh8_32),
8756            "right_pad_high_8_64" => Ok(Elements::RightPadHigh8_64),
8757            "right_pad_low_16_32" => Ok(Elements::RightPadLow16_32),
8758            "right_pad_low_16_64" => Ok(Elements::RightPadLow16_64),
8759            "right_pad_low_1_16" => Ok(Elements::RightPadLow1_16),
8760            "right_pad_low_1_32" => Ok(Elements::RightPadLow1_32),
8761            "right_pad_low_1_64" => Ok(Elements::RightPadLow1_64),
8762            "right_pad_low_1_8" => Ok(Elements::RightPadLow1_8),
8763            "right_pad_low_32_64" => Ok(Elements::RightPadLow32_64),
8764            "right_pad_low_8_16" => Ok(Elements::RightPadLow8_16),
8765            "right_pad_low_8_32" => Ok(Elements::RightPadLow8_32),
8766            "right_pad_low_8_64" => Ok(Elements::RightPadLow8_64),
8767            "right_rotate_16" => Ok(Elements::RightRotate16),
8768            "right_rotate_32" => Ok(Elements::RightRotate32),
8769            "right_rotate_64" => Ok(Elements::RightRotate64),
8770            "right_rotate_8" => Ok(Elements::RightRotate8),
8771            "right_shift_16" => Ok(Elements::RightShift16),
8772            "right_shift_32" => Ok(Elements::RightShift32),
8773            "right_shift_64" => Ok(Elements::RightShift64),
8774            "right_shift_8" => Ok(Elements::RightShift8),
8775            "right_shift_with_16" => Ok(Elements::RightShiftWith16),
8776            "right_shift_with_32" => Ok(Elements::RightShiftWith32),
8777            "right_shift_with_64" => Ok(Elements::RightShiftWith64),
8778            "right_shift_with_8" => Ok(Elements::RightShiftWith8),
8779            "rightmost_16_1" => Ok(Elements::Rightmost16_1),
8780            "rightmost_16_2" => Ok(Elements::Rightmost16_2),
8781            "rightmost_16_4" => Ok(Elements::Rightmost16_4),
8782            "rightmost_16_8" => Ok(Elements::Rightmost16_8),
8783            "rightmost_32_1" => Ok(Elements::Rightmost32_1),
8784            "rightmost_32_16" => Ok(Elements::Rightmost32_16),
8785            "rightmost_32_2" => Ok(Elements::Rightmost32_2),
8786            "rightmost_32_4" => Ok(Elements::Rightmost32_4),
8787            "rightmost_32_8" => Ok(Elements::Rightmost32_8),
8788            "rightmost_64_1" => Ok(Elements::Rightmost64_1),
8789            "rightmost_64_16" => Ok(Elements::Rightmost64_16),
8790            "rightmost_64_2" => Ok(Elements::Rightmost64_2),
8791            "rightmost_64_32" => Ok(Elements::Rightmost64_32),
8792            "rightmost_64_4" => Ok(Elements::Rightmost64_4),
8793            "rightmost_64_8" => Ok(Elements::Rightmost64_8),
8794            "rightmost_8_1" => Ok(Elements::Rightmost8_1),
8795            "rightmost_8_2" => Ok(Elements::Rightmost8_2),
8796            "rightmost_8_4" => Ok(Elements::Rightmost8_4),
8797            "scalar_add" => Ok(Elements::ScalarAdd),
8798            "scalar_invert" => Ok(Elements::ScalarInvert),
8799            "scalar_is_zero" => Ok(Elements::ScalarIsZero),
8800            "scalar_multiply" => Ok(Elements::ScalarMultiply),
8801            "scalar_multiply_lambda" => Ok(Elements::ScalarMultiplyLambda),
8802            "scalar_negate" => Ok(Elements::ScalarNegate),
8803            "scalar_normalize" => Ok(Elements::ScalarNormalize),
8804            "scalar_square" => Ok(Elements::ScalarSquare),
8805            "scale" => Ok(Elements::Scale),
8806            "script_cmr" => Ok(Elements::ScriptCMR),
8807            "sha_256_block" => Ok(Elements::Sha256Block),
8808            "sha_256_ctx_8_add_1" => Ok(Elements::Sha256Ctx8Add1),
8809            "sha_256_ctx_8_add_128" => Ok(Elements::Sha256Ctx8Add128),
8810            "sha_256_ctx_8_add_16" => Ok(Elements::Sha256Ctx8Add16),
8811            "sha_256_ctx_8_add_2" => Ok(Elements::Sha256Ctx8Add2),
8812            "sha_256_ctx_8_add_256" => Ok(Elements::Sha256Ctx8Add256),
8813            "sha_256_ctx_8_add_32" => Ok(Elements::Sha256Ctx8Add32),
8814            "sha_256_ctx_8_add_4" => Ok(Elements::Sha256Ctx8Add4),
8815            "sha_256_ctx_8_add_512" => Ok(Elements::Sha256Ctx8Add512),
8816            "sha_256_ctx_8_add_64" => Ok(Elements::Sha256Ctx8Add64),
8817            "sha_256_ctx_8_add_8" => Ok(Elements::Sha256Ctx8Add8),
8818            "sha_256_ctx_8_add_buffer_511" => Ok(Elements::Sha256Ctx8AddBuffer511),
8819            "sha_256_ctx_8_finalize" => Ok(Elements::Sha256Ctx8Finalize),
8820            "sha_256_ctx_8_init" => Ok(Elements::Sha256Ctx8Init),
8821            "sha_256_iv" => Ok(Elements::Sha256Iv),
8822            "sig_all_hash" => Ok(Elements::SigAllHash),
8823            "some_1" => Ok(Elements::Some1),
8824            "some_16" => Ok(Elements::Some16),
8825            "some_32" => Ok(Elements::Some32),
8826            "some_64" => Ok(Elements::Some64),
8827            "some_8" => Ok(Elements::Some8),
8828            "subtract_16" => Ok(Elements::Subtract16),
8829            "subtract_32" => Ok(Elements::Subtract32),
8830            "subtract_64" => Ok(Elements::Subtract64),
8831            "subtract_8" => Ok(Elements::Subtract8),
8832            "swu" => Ok(Elements::Swu),
8833            "tap_env_hash" => Ok(Elements::TapEnvHash),
8834            "tapdata_init" => Ok(Elements::TapdataInit),
8835            "tapleaf_hash" => Ok(Elements::TapleafHash),
8836            "tapleaf_version" => Ok(Elements::TapleafVersion),
8837            "tappath" => Ok(Elements::Tappath),
8838            "tappath_hash" => Ok(Elements::TappathHash),
8839            "total_fee" => Ok(Elements::TotalFee),
8840            "transaction_id" => Ok(Elements::TransactionId),
8841            "tx_hash" => Ok(Elements::TxHash),
8842            "tx_is_final" => Ok(Elements::TxIsFinal),
8843            "tx_lock_height" => Ok(Elements::TxLockHeight),
8844            "tx_lock_time" => Ok(Elements::TxLockTime),
8845            "verify" => Ok(Elements::Verify),
8846            "version" => Ok(Elements::Version),
8847            "xor_1" => Ok(Elements::Xor1),
8848            "xor_16" => Ok(Elements::Xor16),
8849            "xor_32" => Ok(Elements::Xor32),
8850            "xor_64" => Ok(Elements::Xor64),
8851            "xor_8" => Ok(Elements::Xor8),
8852            "xor_xor_1" => Ok(Elements::XorXor1),
8853            "xor_xor_16" => Ok(Elements::XorXor16),
8854            "xor_xor_32" => Ok(Elements::XorXor32),
8855            "xor_xor_64" => Ok(Elements::XorXor64),
8856            "xor_xor_8" => Ok(Elements::XorXor8),
8857            x => Err(crate::Error::InvalidJetName(x.to_owned())),
8858        }
8859    }
8860}
8861
8862pub(crate) fn c_jet_ptr(jet: &Elements) -> fn(&mut CFrameItem, CFrameItem, &CElementsTxEnv) -> bool {
8863    match jet {
8864        Elements::Add16 => simplicity_sys::c_jets::jets_wrapper::add_16,
8865        Elements::Add32 => simplicity_sys::c_jets::jets_wrapper::add_32,
8866        Elements::Add64 => simplicity_sys::c_jets::jets_wrapper::add_64,
8867        Elements::Add8 => simplicity_sys::c_jets::jets_wrapper::add_8,
8868        Elements::All16 => simplicity_sys::c_jets::jets_wrapper::all_16,
8869        Elements::All32 => simplicity_sys::c_jets::jets_wrapper::all_32,
8870        Elements::All64 => simplicity_sys::c_jets::jets_wrapper::all_64,
8871        Elements::All8 => simplicity_sys::c_jets::jets_wrapper::all_8,
8872        Elements::And1 => simplicity_sys::c_jets::jets_wrapper::and_1,
8873        Elements::And16 => simplicity_sys::c_jets::jets_wrapper::and_16,
8874        Elements::And32 => simplicity_sys::c_jets::jets_wrapper::and_32,
8875        Elements::And64 => simplicity_sys::c_jets::jets_wrapper::and_64,
8876        Elements::And8 => simplicity_sys::c_jets::jets_wrapper::and_8,
8877        Elements::AnnexHash => simplicity_sys::c_jets::jets_wrapper::annex_hash,
8878        Elements::AssetAmountHash => simplicity_sys::c_jets::jets_wrapper::asset_amount_hash,
8879        Elements::Bip0340Verify => simplicity_sys::c_jets::jets_wrapper::bip_0340_verify,
8880        Elements::BrokenDoNotUseCheckLockDistance => simplicity_sys::c_jets::jets_wrapper::broken_do_not_use_check_lock_distance,
8881        Elements::BrokenDoNotUseCheckLockDuration => simplicity_sys::c_jets::jets_wrapper::broken_do_not_use_check_lock_duration,
8882        Elements::BrokenDoNotUseTxLockDistance => simplicity_sys::c_jets::jets_wrapper::broken_do_not_use_tx_lock_distance,
8883        Elements::BrokenDoNotUseTxLockDuration => simplicity_sys::c_jets::jets_wrapper::broken_do_not_use_tx_lock_duration,
8884        Elements::BuildTapbranch => simplicity_sys::c_jets::jets_wrapper::build_tapbranch,
8885        Elements::BuildTapleafSimplicity => simplicity_sys::c_jets::jets_wrapper::build_tapleaf_simplicity,
8886        Elements::BuildTaptweak => simplicity_sys::c_jets::jets_wrapper::build_taptweak,
8887        Elements::CalculateAsset => simplicity_sys::c_jets::jets_wrapper::calculate_asset,
8888        Elements::CalculateConfidentialToken => simplicity_sys::c_jets::jets_wrapper::calculate_confidential_token,
8889        Elements::CalculateExplicitToken => simplicity_sys::c_jets::jets_wrapper::calculate_explicit_token,
8890        Elements::CalculateIssuanceEntropy => simplicity_sys::c_jets::jets_wrapper::calculate_issuance_entropy,
8891        Elements::Ch1 => simplicity_sys::c_jets::jets_wrapper::ch_1,
8892        Elements::Ch16 => simplicity_sys::c_jets::jets_wrapper::ch_16,
8893        Elements::Ch32 => simplicity_sys::c_jets::jets_wrapper::ch_32,
8894        Elements::Ch64 => simplicity_sys::c_jets::jets_wrapper::ch_64,
8895        Elements::Ch8 => simplicity_sys::c_jets::jets_wrapper::ch_8,
8896        Elements::CheckLockHeight => simplicity_sys::c_jets::jets_wrapper::check_lock_height,
8897        Elements::CheckLockTime => simplicity_sys::c_jets::jets_wrapper::check_lock_time,
8898        Elements::CheckSigVerify => simplicity_sys::c_jets::jets_wrapper::check_sig_verify,
8899        Elements::Complement1 => simplicity_sys::c_jets::jets_wrapper::complement_1,
8900        Elements::Complement16 => simplicity_sys::c_jets::jets_wrapper::complement_16,
8901        Elements::Complement32 => simplicity_sys::c_jets::jets_wrapper::complement_32,
8902        Elements::Complement64 => simplicity_sys::c_jets::jets_wrapper::complement_64,
8903        Elements::Complement8 => simplicity_sys::c_jets::jets_wrapper::complement_8,
8904        Elements::CurrentAmount => simplicity_sys::c_jets::jets_wrapper::current_amount,
8905        Elements::CurrentAnnexHash => simplicity_sys::c_jets::jets_wrapper::current_annex_hash,
8906        Elements::CurrentAsset => simplicity_sys::c_jets::jets_wrapper::current_asset,
8907        Elements::CurrentIndex => simplicity_sys::c_jets::jets_wrapper::current_index,
8908        Elements::CurrentIssuanceAssetAmount => simplicity_sys::c_jets::jets_wrapper::current_issuance_asset_amount,
8909        Elements::CurrentIssuanceAssetProof => simplicity_sys::c_jets::jets_wrapper::current_issuance_asset_proof,
8910        Elements::CurrentIssuanceTokenAmount => simplicity_sys::c_jets::jets_wrapper::current_issuance_token_amount,
8911        Elements::CurrentIssuanceTokenProof => simplicity_sys::c_jets::jets_wrapper::current_issuance_token_proof,
8912        Elements::CurrentNewIssuanceContract => simplicity_sys::c_jets::jets_wrapper::current_new_issuance_contract,
8913        Elements::CurrentPegin => simplicity_sys::c_jets::jets_wrapper::current_pegin,
8914        Elements::CurrentPrevOutpoint => simplicity_sys::c_jets::jets_wrapper::current_prev_outpoint,
8915        Elements::CurrentReissuanceBlinding => simplicity_sys::c_jets::jets_wrapper::current_reissuance_blinding,
8916        Elements::CurrentReissuanceEntropy => simplicity_sys::c_jets::jets_wrapper::current_reissuance_entropy,
8917        Elements::CurrentScriptHash => simplicity_sys::c_jets::jets_wrapper::current_script_hash,
8918        Elements::CurrentScriptSigHash => simplicity_sys::c_jets::jets_wrapper::current_script_sig_hash,
8919        Elements::CurrentSequence => simplicity_sys::c_jets::jets_wrapper::current_sequence,
8920        Elements::Decompress => simplicity_sys::c_jets::jets_wrapper::decompress,
8921        Elements::Decrement16 => simplicity_sys::c_jets::jets_wrapper::decrement_16,
8922        Elements::Decrement32 => simplicity_sys::c_jets::jets_wrapper::decrement_32,
8923        Elements::Decrement64 => simplicity_sys::c_jets::jets_wrapper::decrement_64,
8924        Elements::Decrement8 => simplicity_sys::c_jets::jets_wrapper::decrement_8,
8925        Elements::DivMod128_64 => simplicity_sys::c_jets::jets_wrapper::div_mod_128_64,
8926        Elements::DivMod16 => simplicity_sys::c_jets::jets_wrapper::div_mod_16,
8927        Elements::DivMod32 => simplicity_sys::c_jets::jets_wrapper::div_mod_32,
8928        Elements::DivMod64 => simplicity_sys::c_jets::jets_wrapper::div_mod_64,
8929        Elements::DivMod8 => simplicity_sys::c_jets::jets_wrapper::div_mod_8,
8930        Elements::Divide16 => simplicity_sys::c_jets::jets_wrapper::divide_16,
8931        Elements::Divide32 => simplicity_sys::c_jets::jets_wrapper::divide_32,
8932        Elements::Divide64 => simplicity_sys::c_jets::jets_wrapper::divide_64,
8933        Elements::Divide8 => simplicity_sys::c_jets::jets_wrapper::divide_8,
8934        Elements::Divides16 => simplicity_sys::c_jets::jets_wrapper::divides_16,
8935        Elements::Divides32 => simplicity_sys::c_jets::jets_wrapper::divides_32,
8936        Elements::Divides64 => simplicity_sys::c_jets::jets_wrapper::divides_64,
8937        Elements::Divides8 => simplicity_sys::c_jets::jets_wrapper::divides_8,
8938        Elements::Eq1 => simplicity_sys::c_jets::jets_wrapper::eq_1,
8939        Elements::Eq16 => simplicity_sys::c_jets::jets_wrapper::eq_16,
8940        Elements::Eq256 => simplicity_sys::c_jets::jets_wrapper::eq_256,
8941        Elements::Eq32 => simplicity_sys::c_jets::jets_wrapper::eq_32,
8942        Elements::Eq64 => simplicity_sys::c_jets::jets_wrapper::eq_64,
8943        Elements::Eq8 => simplicity_sys::c_jets::jets_wrapper::eq_8,
8944        Elements::FeAdd => simplicity_sys::c_jets::jets_wrapper::fe_add,
8945        Elements::FeInvert => simplicity_sys::c_jets::jets_wrapper::fe_invert,
8946        Elements::FeIsOdd => simplicity_sys::c_jets::jets_wrapper::fe_is_odd,
8947        Elements::FeIsZero => simplicity_sys::c_jets::jets_wrapper::fe_is_zero,
8948        Elements::FeMultiply => simplicity_sys::c_jets::jets_wrapper::fe_multiply,
8949        Elements::FeMultiplyBeta => simplicity_sys::c_jets::jets_wrapper::fe_multiply_beta,
8950        Elements::FeNegate => simplicity_sys::c_jets::jets_wrapper::fe_negate,
8951        Elements::FeNormalize => simplicity_sys::c_jets::jets_wrapper::fe_normalize,
8952        Elements::FeSquare => simplicity_sys::c_jets::jets_wrapper::fe_square,
8953        Elements::FeSquareRoot => simplicity_sys::c_jets::jets_wrapper::fe_square_root,
8954        Elements::FullAdd16 => simplicity_sys::c_jets::jets_wrapper::full_add_16,
8955        Elements::FullAdd32 => simplicity_sys::c_jets::jets_wrapper::full_add_32,
8956        Elements::FullAdd64 => simplicity_sys::c_jets::jets_wrapper::full_add_64,
8957        Elements::FullAdd8 => simplicity_sys::c_jets::jets_wrapper::full_add_8,
8958        Elements::FullDecrement16 => simplicity_sys::c_jets::jets_wrapper::full_decrement_16,
8959        Elements::FullDecrement32 => simplicity_sys::c_jets::jets_wrapper::full_decrement_32,
8960        Elements::FullDecrement64 => simplicity_sys::c_jets::jets_wrapper::full_decrement_64,
8961        Elements::FullDecrement8 => simplicity_sys::c_jets::jets_wrapper::full_decrement_8,
8962        Elements::FullIncrement16 => simplicity_sys::c_jets::jets_wrapper::full_increment_16,
8963        Elements::FullIncrement32 => simplicity_sys::c_jets::jets_wrapper::full_increment_32,
8964        Elements::FullIncrement64 => simplicity_sys::c_jets::jets_wrapper::full_increment_64,
8965        Elements::FullIncrement8 => simplicity_sys::c_jets::jets_wrapper::full_increment_8,
8966        Elements::FullLeftShift16_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_1,
8967        Elements::FullLeftShift16_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_2,
8968        Elements::FullLeftShift16_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_4,
8969        Elements::FullLeftShift16_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_16_8,
8970        Elements::FullLeftShift32_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_1,
8971        Elements::FullLeftShift32_16 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_16,
8972        Elements::FullLeftShift32_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_2,
8973        Elements::FullLeftShift32_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_4,
8974        Elements::FullLeftShift32_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_32_8,
8975        Elements::FullLeftShift64_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_1,
8976        Elements::FullLeftShift64_16 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_16,
8977        Elements::FullLeftShift64_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_2,
8978        Elements::FullLeftShift64_32 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_32,
8979        Elements::FullLeftShift64_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_4,
8980        Elements::FullLeftShift64_8 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_64_8,
8981        Elements::FullLeftShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_1,
8982        Elements::FullLeftShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_2,
8983        Elements::FullLeftShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_left_shift_8_4,
8984        Elements::FullMultiply16 => simplicity_sys::c_jets::jets_wrapper::full_multiply_16,
8985        Elements::FullMultiply32 => simplicity_sys::c_jets::jets_wrapper::full_multiply_32,
8986        Elements::FullMultiply64 => simplicity_sys::c_jets::jets_wrapper::full_multiply_64,
8987        Elements::FullMultiply8 => simplicity_sys::c_jets::jets_wrapper::full_multiply_8,
8988        Elements::FullRightShift16_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_1,
8989        Elements::FullRightShift16_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_2,
8990        Elements::FullRightShift16_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_4,
8991        Elements::FullRightShift16_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_16_8,
8992        Elements::FullRightShift32_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_1,
8993        Elements::FullRightShift32_16 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_16,
8994        Elements::FullRightShift32_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_2,
8995        Elements::FullRightShift32_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_4,
8996        Elements::FullRightShift32_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_32_8,
8997        Elements::FullRightShift64_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_1,
8998        Elements::FullRightShift64_16 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_16,
8999        Elements::FullRightShift64_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_2,
9000        Elements::FullRightShift64_32 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_32,
9001        Elements::FullRightShift64_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_4,
9002        Elements::FullRightShift64_8 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_64_8,
9003        Elements::FullRightShift8_1 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_1,
9004        Elements::FullRightShift8_2 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_2,
9005        Elements::FullRightShift8_4 => simplicity_sys::c_jets::jets_wrapper::full_right_shift_8_4,
9006        Elements::FullSubtract16 => simplicity_sys::c_jets::jets_wrapper::full_subtract_16,
9007        Elements::FullSubtract32 => simplicity_sys::c_jets::jets_wrapper::full_subtract_32,
9008        Elements::FullSubtract64 => simplicity_sys::c_jets::jets_wrapper::full_subtract_64,
9009        Elements::FullSubtract8 => simplicity_sys::c_jets::jets_wrapper::full_subtract_8,
9010        Elements::GeIsOnCurve => simplicity_sys::c_jets::jets_wrapper::ge_is_on_curve,
9011        Elements::GeNegate => simplicity_sys::c_jets::jets_wrapper::ge_negate,
9012        Elements::GejAdd => simplicity_sys::c_jets::jets_wrapper::gej_add,
9013        Elements::GejDouble => simplicity_sys::c_jets::jets_wrapper::gej_double,
9014        Elements::GejEquiv => simplicity_sys::c_jets::jets_wrapper::gej_equiv,
9015        Elements::GejGeAdd => simplicity_sys::c_jets::jets_wrapper::gej_ge_add,
9016        Elements::GejGeAddEx => simplicity_sys::c_jets::jets_wrapper::gej_ge_add_ex,
9017        Elements::GejGeEquiv => simplicity_sys::c_jets::jets_wrapper::gej_ge_equiv,
9018        Elements::GejInfinity => simplicity_sys::c_jets::jets_wrapper::gej_infinity,
9019        Elements::GejIsInfinity => simplicity_sys::c_jets::jets_wrapper::gej_is_infinity,
9020        Elements::GejIsOnCurve => simplicity_sys::c_jets::jets_wrapper::gej_is_on_curve,
9021        Elements::GejNegate => simplicity_sys::c_jets::jets_wrapper::gej_negate,
9022        Elements::GejNormalize => simplicity_sys::c_jets::jets_wrapper::gej_normalize,
9023        Elements::GejRescale => simplicity_sys::c_jets::jets_wrapper::gej_rescale,
9024        Elements::GejXEquiv => simplicity_sys::c_jets::jets_wrapper::gej_x_equiv,
9025        Elements::GejYIsOdd => simplicity_sys::c_jets::jets_wrapper::gej_y_is_odd,
9026        Elements::Generate => simplicity_sys::c_jets::jets_wrapper::generate,
9027        Elements::GenesisBlockHash => simplicity_sys::c_jets::jets_wrapper::genesis_block_hash,
9028        Elements::HashToCurve => simplicity_sys::c_jets::jets_wrapper::hash_to_curve,
9029        Elements::High1 => simplicity_sys::c_jets::jets_wrapper::high_1,
9030        Elements::High16 => simplicity_sys::c_jets::jets_wrapper::high_16,
9031        Elements::High32 => simplicity_sys::c_jets::jets_wrapper::high_32,
9032        Elements::High64 => simplicity_sys::c_jets::jets_wrapper::high_64,
9033        Elements::High8 => simplicity_sys::c_jets::jets_wrapper::high_8,
9034        Elements::Increment16 => simplicity_sys::c_jets::jets_wrapper::increment_16,
9035        Elements::Increment32 => simplicity_sys::c_jets::jets_wrapper::increment_32,
9036        Elements::Increment64 => simplicity_sys::c_jets::jets_wrapper::increment_64,
9037        Elements::Increment8 => simplicity_sys::c_jets::jets_wrapper::increment_8,
9038        Elements::InputAmount => simplicity_sys::c_jets::jets_wrapper::input_amount,
9039        Elements::InputAmountsHash => simplicity_sys::c_jets::jets_wrapper::input_amounts_hash,
9040        Elements::InputAnnexHash => simplicity_sys::c_jets::jets_wrapper::input_annex_hash,
9041        Elements::InputAnnexesHash => simplicity_sys::c_jets::jets_wrapper::input_annexes_hash,
9042        Elements::InputAsset => simplicity_sys::c_jets::jets_wrapper::input_asset,
9043        Elements::InputHash => simplicity_sys::c_jets::jets_wrapper::input_hash,
9044        Elements::InputOutpointsHash => simplicity_sys::c_jets::jets_wrapper::input_outpoints_hash,
9045        Elements::InputPegin => simplicity_sys::c_jets::jets_wrapper::input_pegin,
9046        Elements::InputPrevOutpoint => simplicity_sys::c_jets::jets_wrapper::input_prev_outpoint,
9047        Elements::InputScriptHash => simplicity_sys::c_jets::jets_wrapper::input_script_hash,
9048        Elements::InputScriptSigHash => simplicity_sys::c_jets::jets_wrapper::input_script_sig_hash,
9049        Elements::InputScriptSigsHash => simplicity_sys::c_jets::jets_wrapper::input_script_sigs_hash,
9050        Elements::InputScriptsHash => simplicity_sys::c_jets::jets_wrapper::input_scripts_hash,
9051        Elements::InputSequence => simplicity_sys::c_jets::jets_wrapper::input_sequence,
9052        Elements::InputSequencesHash => simplicity_sys::c_jets::jets_wrapper::input_sequences_hash,
9053        Elements::InputUtxoHash => simplicity_sys::c_jets::jets_wrapper::input_utxo_hash,
9054        Elements::InputUtxosHash => simplicity_sys::c_jets::jets_wrapper::input_utxos_hash,
9055        Elements::InputsHash => simplicity_sys::c_jets::jets_wrapper::inputs_hash,
9056        Elements::InternalKey => simplicity_sys::c_jets::jets_wrapper::internal_key,
9057        Elements::IsOne16 => simplicity_sys::c_jets::jets_wrapper::is_one_16,
9058        Elements::IsOne32 => simplicity_sys::c_jets::jets_wrapper::is_one_32,
9059        Elements::IsOne64 => simplicity_sys::c_jets::jets_wrapper::is_one_64,
9060        Elements::IsOne8 => simplicity_sys::c_jets::jets_wrapper::is_one_8,
9061        Elements::IsZero16 => simplicity_sys::c_jets::jets_wrapper::is_zero_16,
9062        Elements::IsZero32 => simplicity_sys::c_jets::jets_wrapper::is_zero_32,
9063        Elements::IsZero64 => simplicity_sys::c_jets::jets_wrapper::is_zero_64,
9064        Elements::IsZero8 => simplicity_sys::c_jets::jets_wrapper::is_zero_8,
9065        Elements::Issuance => simplicity_sys::c_jets::jets_wrapper::issuance,
9066        Elements::IssuanceAsset => simplicity_sys::c_jets::jets_wrapper::issuance_asset,
9067        Elements::IssuanceAssetAmount => simplicity_sys::c_jets::jets_wrapper::issuance_asset_amount,
9068        Elements::IssuanceAssetAmountsHash => simplicity_sys::c_jets::jets_wrapper::issuance_asset_amounts_hash,
9069        Elements::IssuanceAssetProof => simplicity_sys::c_jets::jets_wrapper::issuance_asset_proof,
9070        Elements::IssuanceBlindingEntropyHash => simplicity_sys::c_jets::jets_wrapper::issuance_blinding_entropy_hash,
9071        Elements::IssuanceEntropy => simplicity_sys::c_jets::jets_wrapper::issuance_entropy,
9072        Elements::IssuanceHash => simplicity_sys::c_jets::jets_wrapper::issuance_hash,
9073        Elements::IssuanceRangeProofsHash => simplicity_sys::c_jets::jets_wrapper::issuance_range_proofs_hash,
9074        Elements::IssuanceToken => simplicity_sys::c_jets::jets_wrapper::issuance_token,
9075        Elements::IssuanceTokenAmount => simplicity_sys::c_jets::jets_wrapper::issuance_token_amount,
9076        Elements::IssuanceTokenAmountsHash => simplicity_sys::c_jets::jets_wrapper::issuance_token_amounts_hash,
9077        Elements::IssuanceTokenProof => simplicity_sys::c_jets::jets_wrapper::issuance_token_proof,
9078        Elements::IssuancesHash => simplicity_sys::c_jets::jets_wrapper::issuances_hash,
9079        Elements::LbtcAsset => simplicity_sys::c_jets::jets_wrapper::lbtc_asset,
9080        Elements::Le16 => simplicity_sys::c_jets::jets_wrapper::le_16,
9081        Elements::Le32 => simplicity_sys::c_jets::jets_wrapper::le_32,
9082        Elements::Le64 => simplicity_sys::c_jets::jets_wrapper::le_64,
9083        Elements::Le8 => simplicity_sys::c_jets::jets_wrapper::le_8,
9084        Elements::LeftExtend16_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_32,
9085        Elements::LeftExtend16_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_16_64,
9086        Elements::LeftExtend1_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_16,
9087        Elements::LeftExtend1_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_32,
9088        Elements::LeftExtend1_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_64,
9089        Elements::LeftExtend1_8 => simplicity_sys::c_jets::jets_wrapper::left_extend_1_8,
9090        Elements::LeftExtend32_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_32_64,
9091        Elements::LeftExtend8_16 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_16,
9092        Elements::LeftExtend8_32 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_32,
9093        Elements::LeftExtend8_64 => simplicity_sys::c_jets::jets_wrapper::left_extend_8_64,
9094        Elements::LeftPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_32,
9095        Elements::LeftPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_16_64,
9096        Elements::LeftPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_16,
9097        Elements::LeftPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_32,
9098        Elements::LeftPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_64,
9099        Elements::LeftPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_1_8,
9100        Elements::LeftPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_32_64,
9101        Elements::LeftPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_16,
9102        Elements::LeftPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_32,
9103        Elements::LeftPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_high_8_64,
9104        Elements::LeftPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_32,
9105        Elements::LeftPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_16_64,
9106        Elements::LeftPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_16,
9107        Elements::LeftPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_32,
9108        Elements::LeftPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_64,
9109        Elements::LeftPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_1_8,
9110        Elements::LeftPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_32_64,
9111        Elements::LeftPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_16,
9112        Elements::LeftPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_32,
9113        Elements::LeftPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::left_pad_low_8_64,
9114        Elements::LeftRotate16 => simplicity_sys::c_jets::jets_wrapper::left_rotate_16,
9115        Elements::LeftRotate32 => simplicity_sys::c_jets::jets_wrapper::left_rotate_32,
9116        Elements::LeftRotate64 => simplicity_sys::c_jets::jets_wrapper::left_rotate_64,
9117        Elements::LeftRotate8 => simplicity_sys::c_jets::jets_wrapper::left_rotate_8,
9118        Elements::LeftShift16 => simplicity_sys::c_jets::jets_wrapper::left_shift_16,
9119        Elements::LeftShift32 => simplicity_sys::c_jets::jets_wrapper::left_shift_32,
9120        Elements::LeftShift64 => simplicity_sys::c_jets::jets_wrapper::left_shift_64,
9121        Elements::LeftShift8 => simplicity_sys::c_jets::jets_wrapper::left_shift_8,
9122        Elements::LeftShiftWith16 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_16,
9123        Elements::LeftShiftWith32 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_32,
9124        Elements::LeftShiftWith64 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_64,
9125        Elements::LeftShiftWith8 => simplicity_sys::c_jets::jets_wrapper::left_shift_with_8,
9126        Elements::Leftmost16_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_1,
9127        Elements::Leftmost16_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_2,
9128        Elements::Leftmost16_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_4,
9129        Elements::Leftmost16_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_16_8,
9130        Elements::Leftmost32_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_1,
9131        Elements::Leftmost32_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_16,
9132        Elements::Leftmost32_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_2,
9133        Elements::Leftmost32_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_4,
9134        Elements::Leftmost32_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_32_8,
9135        Elements::Leftmost64_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_1,
9136        Elements::Leftmost64_16 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_16,
9137        Elements::Leftmost64_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_2,
9138        Elements::Leftmost64_32 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_32,
9139        Elements::Leftmost64_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_4,
9140        Elements::Leftmost64_8 => simplicity_sys::c_jets::jets_wrapper::leftmost_64_8,
9141        Elements::Leftmost8_1 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_1,
9142        Elements::Leftmost8_2 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_2,
9143        Elements::Leftmost8_4 => simplicity_sys::c_jets::jets_wrapper::leftmost_8_4,
9144        Elements::LinearCombination1 => simplicity_sys::c_jets::jets_wrapper::linear_combination_1,
9145        Elements::LinearVerify1 => simplicity_sys::c_jets::jets_wrapper::linear_verify_1,
9146        Elements::LockTime => simplicity_sys::c_jets::jets_wrapper::lock_time,
9147        Elements::Low1 => simplicity_sys::c_jets::jets_wrapper::low_1,
9148        Elements::Low16 => simplicity_sys::c_jets::jets_wrapper::low_16,
9149        Elements::Low32 => simplicity_sys::c_jets::jets_wrapper::low_32,
9150        Elements::Low64 => simplicity_sys::c_jets::jets_wrapper::low_64,
9151        Elements::Low8 => simplicity_sys::c_jets::jets_wrapper::low_8,
9152        Elements::Lt16 => simplicity_sys::c_jets::jets_wrapper::lt_16,
9153        Elements::Lt32 => simplicity_sys::c_jets::jets_wrapper::lt_32,
9154        Elements::Lt64 => simplicity_sys::c_jets::jets_wrapper::lt_64,
9155        Elements::Lt8 => simplicity_sys::c_jets::jets_wrapper::lt_8,
9156        Elements::Maj1 => simplicity_sys::c_jets::jets_wrapper::maj_1,
9157        Elements::Maj16 => simplicity_sys::c_jets::jets_wrapper::maj_16,
9158        Elements::Maj32 => simplicity_sys::c_jets::jets_wrapper::maj_32,
9159        Elements::Maj64 => simplicity_sys::c_jets::jets_wrapper::maj_64,
9160        Elements::Maj8 => simplicity_sys::c_jets::jets_wrapper::maj_8,
9161        Elements::Max16 => simplicity_sys::c_jets::jets_wrapper::max_16,
9162        Elements::Max32 => simplicity_sys::c_jets::jets_wrapper::max_32,
9163        Elements::Max64 => simplicity_sys::c_jets::jets_wrapper::max_64,
9164        Elements::Max8 => simplicity_sys::c_jets::jets_wrapper::max_8,
9165        Elements::Median16 => simplicity_sys::c_jets::jets_wrapper::median_16,
9166        Elements::Median32 => simplicity_sys::c_jets::jets_wrapper::median_32,
9167        Elements::Median64 => simplicity_sys::c_jets::jets_wrapper::median_64,
9168        Elements::Median8 => simplicity_sys::c_jets::jets_wrapper::median_8,
9169        Elements::Min16 => simplicity_sys::c_jets::jets_wrapper::min_16,
9170        Elements::Min32 => simplicity_sys::c_jets::jets_wrapper::min_32,
9171        Elements::Min64 => simplicity_sys::c_jets::jets_wrapper::min_64,
9172        Elements::Min8 => simplicity_sys::c_jets::jets_wrapper::min_8,
9173        Elements::Modulo16 => simplicity_sys::c_jets::jets_wrapper::modulo_16,
9174        Elements::Modulo32 => simplicity_sys::c_jets::jets_wrapper::modulo_32,
9175        Elements::Modulo64 => simplicity_sys::c_jets::jets_wrapper::modulo_64,
9176        Elements::Modulo8 => simplicity_sys::c_jets::jets_wrapper::modulo_8,
9177        Elements::Multiply16 => simplicity_sys::c_jets::jets_wrapper::multiply_16,
9178        Elements::Multiply32 => simplicity_sys::c_jets::jets_wrapper::multiply_32,
9179        Elements::Multiply64 => simplicity_sys::c_jets::jets_wrapper::multiply_64,
9180        Elements::Multiply8 => simplicity_sys::c_jets::jets_wrapper::multiply_8,
9181        Elements::Negate16 => simplicity_sys::c_jets::jets_wrapper::negate_16,
9182        Elements::Negate32 => simplicity_sys::c_jets::jets_wrapper::negate_32,
9183        Elements::Negate64 => simplicity_sys::c_jets::jets_wrapper::negate_64,
9184        Elements::Negate8 => simplicity_sys::c_jets::jets_wrapper::negate_8,
9185        Elements::NewIssuanceContract => simplicity_sys::c_jets::jets_wrapper::new_issuance_contract,
9186        Elements::NonceHash => simplicity_sys::c_jets::jets_wrapper::nonce_hash,
9187        Elements::NumInputs => simplicity_sys::c_jets::jets_wrapper::num_inputs,
9188        Elements::NumOutputs => simplicity_sys::c_jets::jets_wrapper::num_outputs,
9189        Elements::One16 => simplicity_sys::c_jets::jets_wrapper::one_16,
9190        Elements::One32 => simplicity_sys::c_jets::jets_wrapper::one_32,
9191        Elements::One64 => simplicity_sys::c_jets::jets_wrapper::one_64,
9192        Elements::One8 => simplicity_sys::c_jets::jets_wrapper::one_8,
9193        Elements::Or1 => simplicity_sys::c_jets::jets_wrapper::or_1,
9194        Elements::Or16 => simplicity_sys::c_jets::jets_wrapper::or_16,
9195        Elements::Or32 => simplicity_sys::c_jets::jets_wrapper::or_32,
9196        Elements::Or64 => simplicity_sys::c_jets::jets_wrapper::or_64,
9197        Elements::Or8 => simplicity_sys::c_jets::jets_wrapper::or_8,
9198        Elements::OutpointHash => simplicity_sys::c_jets::jets_wrapper::outpoint_hash,
9199        Elements::OutputAmount => simplicity_sys::c_jets::jets_wrapper::output_amount,
9200        Elements::OutputAmountsHash => simplicity_sys::c_jets::jets_wrapper::output_amounts_hash,
9201        Elements::OutputAsset => simplicity_sys::c_jets::jets_wrapper::output_asset,
9202        Elements::OutputHash => simplicity_sys::c_jets::jets_wrapper::output_hash,
9203        Elements::OutputIsFee => simplicity_sys::c_jets::jets_wrapper::output_is_fee,
9204        Elements::OutputNonce => simplicity_sys::c_jets::jets_wrapper::output_nonce,
9205        Elements::OutputNoncesHash => simplicity_sys::c_jets::jets_wrapper::output_nonces_hash,
9206        Elements::OutputNullDatum => simplicity_sys::c_jets::jets_wrapper::output_null_datum,
9207        Elements::OutputRangeProof => simplicity_sys::c_jets::jets_wrapper::output_range_proof,
9208        Elements::OutputRangeProofsHash => simplicity_sys::c_jets::jets_wrapper::output_range_proofs_hash,
9209        Elements::OutputScriptHash => simplicity_sys::c_jets::jets_wrapper::output_script_hash,
9210        Elements::OutputScriptsHash => simplicity_sys::c_jets::jets_wrapper::output_scripts_hash,
9211        Elements::OutputSurjectionProof => simplicity_sys::c_jets::jets_wrapper::output_surjection_proof,
9212        Elements::OutputSurjectionProofsHash => simplicity_sys::c_jets::jets_wrapper::output_surjection_proofs_hash,
9213        Elements::OutputsHash => simplicity_sys::c_jets::jets_wrapper::outputs_hash,
9214        Elements::ParseLock => simplicity_sys::c_jets::jets_wrapper::parse_lock,
9215        Elements::ParseSequence => simplicity_sys::c_jets::jets_wrapper::parse_sequence,
9216        Elements::PointVerify1 => simplicity_sys::c_jets::jets_wrapper::point_verify_1,
9217        Elements::ReissuanceBlinding => simplicity_sys::c_jets::jets_wrapper::reissuance_blinding,
9218        Elements::ReissuanceEntropy => simplicity_sys::c_jets::jets_wrapper::reissuance_entropy,
9219        Elements::RightExtend16_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_32,
9220        Elements::RightExtend16_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_16_64,
9221        Elements::RightExtend32_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_32_64,
9222        Elements::RightExtend8_16 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_16,
9223        Elements::RightExtend8_32 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_32,
9224        Elements::RightExtend8_64 => simplicity_sys::c_jets::jets_wrapper::right_extend_8_64,
9225        Elements::RightPadHigh16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_32,
9226        Elements::RightPadHigh16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_16_64,
9227        Elements::RightPadHigh1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_16,
9228        Elements::RightPadHigh1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_32,
9229        Elements::RightPadHigh1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_64,
9230        Elements::RightPadHigh1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_1_8,
9231        Elements::RightPadHigh32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_32_64,
9232        Elements::RightPadHigh8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_16,
9233        Elements::RightPadHigh8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_32,
9234        Elements::RightPadHigh8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_high_8_64,
9235        Elements::RightPadLow16_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_32,
9236        Elements::RightPadLow16_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_16_64,
9237        Elements::RightPadLow1_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_16,
9238        Elements::RightPadLow1_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_32,
9239        Elements::RightPadLow1_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_64,
9240        Elements::RightPadLow1_8 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_1_8,
9241        Elements::RightPadLow32_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_32_64,
9242        Elements::RightPadLow8_16 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_16,
9243        Elements::RightPadLow8_32 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_32,
9244        Elements::RightPadLow8_64 => simplicity_sys::c_jets::jets_wrapper::right_pad_low_8_64,
9245        Elements::RightRotate16 => simplicity_sys::c_jets::jets_wrapper::right_rotate_16,
9246        Elements::RightRotate32 => simplicity_sys::c_jets::jets_wrapper::right_rotate_32,
9247        Elements::RightRotate64 => simplicity_sys::c_jets::jets_wrapper::right_rotate_64,
9248        Elements::RightRotate8 => simplicity_sys::c_jets::jets_wrapper::right_rotate_8,
9249        Elements::RightShift16 => simplicity_sys::c_jets::jets_wrapper::right_shift_16,
9250        Elements::RightShift32 => simplicity_sys::c_jets::jets_wrapper::right_shift_32,
9251        Elements::RightShift64 => simplicity_sys::c_jets::jets_wrapper::right_shift_64,
9252        Elements::RightShift8 => simplicity_sys::c_jets::jets_wrapper::right_shift_8,
9253        Elements::RightShiftWith16 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_16,
9254        Elements::RightShiftWith32 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_32,
9255        Elements::RightShiftWith64 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_64,
9256        Elements::RightShiftWith8 => simplicity_sys::c_jets::jets_wrapper::right_shift_with_8,
9257        Elements::Rightmost16_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_1,
9258        Elements::Rightmost16_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_2,
9259        Elements::Rightmost16_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_4,
9260        Elements::Rightmost16_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_16_8,
9261        Elements::Rightmost32_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_1,
9262        Elements::Rightmost32_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_16,
9263        Elements::Rightmost32_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_2,
9264        Elements::Rightmost32_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_4,
9265        Elements::Rightmost32_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_32_8,
9266        Elements::Rightmost64_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_1,
9267        Elements::Rightmost64_16 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_16,
9268        Elements::Rightmost64_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_2,
9269        Elements::Rightmost64_32 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_32,
9270        Elements::Rightmost64_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_4,
9271        Elements::Rightmost64_8 => simplicity_sys::c_jets::jets_wrapper::rightmost_64_8,
9272        Elements::Rightmost8_1 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_1,
9273        Elements::Rightmost8_2 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_2,
9274        Elements::Rightmost8_4 => simplicity_sys::c_jets::jets_wrapper::rightmost_8_4,
9275        Elements::ScalarAdd => simplicity_sys::c_jets::jets_wrapper::scalar_add,
9276        Elements::ScalarInvert => simplicity_sys::c_jets::jets_wrapper::scalar_invert,
9277        Elements::ScalarIsZero => simplicity_sys::c_jets::jets_wrapper::scalar_is_zero,
9278        Elements::ScalarMultiply => simplicity_sys::c_jets::jets_wrapper::scalar_multiply,
9279        Elements::ScalarMultiplyLambda => simplicity_sys::c_jets::jets_wrapper::scalar_multiply_lambda,
9280        Elements::ScalarNegate => simplicity_sys::c_jets::jets_wrapper::scalar_negate,
9281        Elements::ScalarNormalize => simplicity_sys::c_jets::jets_wrapper::scalar_normalize,
9282        Elements::ScalarSquare => simplicity_sys::c_jets::jets_wrapper::scalar_square,
9283        Elements::Scale => simplicity_sys::c_jets::jets_wrapper::scale,
9284        Elements::ScriptCMR => simplicity_sys::c_jets::jets_wrapper::script_cmr,
9285        Elements::Sha256Block => simplicity_sys::c_jets::jets_wrapper::sha_256_block,
9286        Elements::Sha256Ctx8Add1 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_1,
9287        Elements::Sha256Ctx8Add128 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_128,
9288        Elements::Sha256Ctx8Add16 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_16,
9289        Elements::Sha256Ctx8Add2 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_2,
9290        Elements::Sha256Ctx8Add256 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_256,
9291        Elements::Sha256Ctx8Add32 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_32,
9292        Elements::Sha256Ctx8Add4 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_4,
9293        Elements::Sha256Ctx8Add512 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_512,
9294        Elements::Sha256Ctx8Add64 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_64,
9295        Elements::Sha256Ctx8Add8 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_8,
9296        Elements::Sha256Ctx8AddBuffer511 => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_add_buffer_511,
9297        Elements::Sha256Ctx8Finalize => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_finalize,
9298        Elements::Sha256Ctx8Init => simplicity_sys::c_jets::jets_wrapper::sha_256_ctx_8_init,
9299        Elements::Sha256Iv => simplicity_sys::c_jets::jets_wrapper::sha_256_iv,
9300        Elements::SigAllHash => simplicity_sys::c_jets::jets_wrapper::sig_all_hash,
9301        Elements::Some1 => simplicity_sys::c_jets::jets_wrapper::some_1,
9302        Elements::Some16 => simplicity_sys::c_jets::jets_wrapper::some_16,
9303        Elements::Some32 => simplicity_sys::c_jets::jets_wrapper::some_32,
9304        Elements::Some64 => simplicity_sys::c_jets::jets_wrapper::some_64,
9305        Elements::Some8 => simplicity_sys::c_jets::jets_wrapper::some_8,
9306        Elements::Subtract16 => simplicity_sys::c_jets::jets_wrapper::subtract_16,
9307        Elements::Subtract32 => simplicity_sys::c_jets::jets_wrapper::subtract_32,
9308        Elements::Subtract64 => simplicity_sys::c_jets::jets_wrapper::subtract_64,
9309        Elements::Subtract8 => simplicity_sys::c_jets::jets_wrapper::subtract_8,
9310        Elements::Swu => simplicity_sys::c_jets::jets_wrapper::swu,
9311        Elements::TapEnvHash => simplicity_sys::c_jets::jets_wrapper::tap_env_hash,
9312        Elements::TapdataInit => simplicity_sys::c_jets::jets_wrapper::tapdata_init,
9313        Elements::TapleafHash => simplicity_sys::c_jets::jets_wrapper::tapleaf_hash,
9314        Elements::TapleafVersion => simplicity_sys::c_jets::jets_wrapper::tapleaf_version,
9315        Elements::Tappath => simplicity_sys::c_jets::jets_wrapper::tappath,
9316        Elements::TappathHash => simplicity_sys::c_jets::jets_wrapper::tappath_hash,
9317        Elements::TotalFee => simplicity_sys::c_jets::jets_wrapper::total_fee,
9318        Elements::TransactionId => simplicity_sys::c_jets::jets_wrapper::transaction_id,
9319        Elements::TxHash => simplicity_sys::c_jets::jets_wrapper::tx_hash,
9320        Elements::TxIsFinal => simplicity_sys::c_jets::jets_wrapper::tx_is_final,
9321        Elements::TxLockHeight => simplicity_sys::c_jets::jets_wrapper::tx_lock_height,
9322        Elements::TxLockTime => simplicity_sys::c_jets::jets_wrapper::tx_lock_time,
9323        Elements::Verify => simplicity_sys::c_jets::jets_wrapper::verify,
9324        Elements::Version => simplicity_sys::c_jets::jets_wrapper::version,
9325        Elements::Xor1 => simplicity_sys::c_jets::jets_wrapper::xor_1,
9326        Elements::Xor16 => simplicity_sys::c_jets::jets_wrapper::xor_16,
9327        Elements::Xor32 => simplicity_sys::c_jets::jets_wrapper::xor_32,
9328        Elements::Xor64 => simplicity_sys::c_jets::jets_wrapper::xor_64,
9329        Elements::Xor8 => simplicity_sys::c_jets::jets_wrapper::xor_8,
9330        Elements::XorXor1 => simplicity_sys::c_jets::jets_wrapper::xor_xor_1,
9331        Elements::XorXor16 => simplicity_sys::c_jets::jets_wrapper::xor_xor_16,
9332        Elements::XorXor32 => simplicity_sys::c_jets::jets_wrapper::xor_xor_32,
9333        Elements::XorXor64 => simplicity_sys::c_jets::jets_wrapper::xor_xor_64,
9334        Elements::XorXor8 => simplicity_sys::c_jets::jets_wrapper::xor_xor_8,
9335    }
9336}